Mitsubishi MC
Mitsubishi MELSEC-Steuerungen über das MC-Protokoll (3E-Rahmen) anbinden - Gerätecodes, dezimale und hexadezimale Nummerierung und Leselängen.
Der Treiber Mitsubishi MC spricht mit Mitsubishi MELSEC-Steuerungen über das
MC-Protokoll, mit dem binären 3E-Rahmen über TCP, dem Rahmen, den die Reihen Q, L und iQ
sprechen. Sie adressieren Werte in der vertrauten MELSEC-Schreibweise: ein Gerätecode und
eine Nummer, etwa D100 oder M50. Legen Sie im Connector ein Gerät unter
dem Treiber Mitsubishi MC an; der Bereich zeigt nur die Felder, die dieses Protokoll
verwendet.
Verbindung
| Feld | Bedeutung | Standard |
|---|---|---|
| Host | IP-Adresse oder Hostname der Ethernet-Schnittstelle der Steuerung. | leer |
| Port | TCP-Port der Verbindung über das MC-Protokoll. 0 verwendet 5007. | 0 |
Die Kopfzeile des Geräts zeigt den zusammengesetzten Endpunkt, zum Beispiel
mcp://192.168.0.20:5007. Für diesen Treiber gibt es keine Felder für das
Abfrageintervall: Seine Tags werden einmal je Sekunde gelesen. Auf der Seite der Steuerung
muss eine TCP-Verbindung über das MC-Protokoll (SLMP) für binäre Kommunikation auf dem
gewählten Port eingerichtet sein.
Adressierung
Ein Mitsubishi-Tag wird über zwei Felder auf der Karte Quelle des Tags adressiert:
| Feld | Bedeutung | Angenommene Werte | Standard |
|---|---|---|---|
| Geräteadresse | MELSEC-Gerätecode und Nummer, z. B. D100. Pflichtfeld. |
Freitext | leer |
| Leselänge (Bytes, leer = automatisch) | Wie viele Bytes je Lesevorgang übertragen werden. Leer bemisst den Lesevorgang nach dem Datentyp. | 1 und aufwärts, leer | leer |
Die Adresse achtet nicht auf Groß- und Kleinschreibung, und der längste passende Code
gewinnt, SD100 ist also das Sonderregister 100 und nicht der Schrittmerker S. Die
Nummer ist hexadezimal bei den Geräten, die Mitsubishi hexadezimal nummeriert, also X,
Y, B, W, SB, SW, DX, DY, und dezimal bei allem anderen (X1F ist der Eingang 0x1F).
Angenommene Gerätecodes:
| Code | Gerät | Nummerierung |
|---|---|---|
M |
Merker | dezimal |
SM |
Sondermerker | dezimal |
L |
Latch-Merker | dezimal |
F |
Störmelder | dezimal |
V |
Flankenmerker | dezimal |
S |
Schrittmerker | dezimal |
X |
Eingang | hexadezimal |
Y |
Ausgang | hexadezimal |
B |
Link-Merker | hexadezimal |
SB |
Sonder-Link-Merker | hexadezimal |
DX |
Direkteingang | hexadezimal |
DY |
Direktausgang | hexadezimal |
D |
Datenregister | dezimal |
SD |
Sonderregister | dezimal |
R |
Datei-Register | dezimal |
ZR |
erweitertes Datei-Register | dezimal |
W |
Link-Register | hexadezimal |
SW |
Sonder-Link-Register | hexadezimal |
Z |
Index-Register | dezimal |
TC / TS / TN |
Timer: Spule / Kontakt / aktueller Wert | dezimal |
SC / SS / SN |
remanenter Timer: Spule / Kontakt / aktueller Wert | dezimal |
CC / CS / CN |
Zähler: Spule / Kontakt / aktueller Wert | dezimal |
Die zugrunde liegende MC-Bibliothek nimmt außerdem die Codes TT, TM, CT, CM und
A an. Die Zeile Quelladresse (Bus) auf der Karte Quelle, die nur gelesen wird, zeigt
die zusammengesetzte Adresse, während Sie tippen.
Datentypen
Die Auswahl Datentyp bietet die vier Typen an, die der Treiber überträgt:
| Datentyp | Automatische Leselänge | Hinweise |
|---|---|---|
| Boolean | 1 Byte | an einem Bit-Gerät das eine genannte Relais; an einem Wort-Gerät jedes Wort ungleich null |
| Int32 | 4 Bytes | zwei aufeinanderfolgende 16-Bit-Wörter, z. B. D100+D101 |
| Float | 4 Bytes | zwei aufeinanderfolgende Wörter mit einem IEEE-Wert einfacher Genauigkeit |
| String | 16 Bytes | Text bis zum ersten NUL des Lesepuffers |
Wortdaten kommen in der für MELSEC nativen Little-Endian-Reihenfolge an und werden automatisch entschlüsselt; eine Wahl der Byte-Reihenfolge gibt es nicht. Ein 32-Bit-Wert erstreckt sich über zwei aufeinanderfolgende Wort-Geräte. Für einen String, der länger als 16 Zeichen ist, erhöhen Sie Leselänge, bis sie den gespeicherten Text abdeckt. Leselänge ist eine Anzahl Bytes, und das Protokoll überträgt ganze 16-Bit-Wörter, eine ungerade Länge wird also auf das Wort aufgerundet, das ihr letztes Byte trägt.
Die Bit-Geräte, die der Treiber Relais für Relais liest, sind X, Y, M, L, F,
V, B, S, TS, TC, SS, SC, CS, CC, SB, DX und DY. Dort antwortet ein
Tag vom Typ Boolean für die Adresse, die Sie getippt haben, und für keine andere. Jeder
andere Code ist ein Wort-Gerät, auch der aktuelle Wert eines Timers oder eines Zählers
(TN, SN, CN) und die Link-Register (W, SW), und dort entscheidet das ganze Wort:
D100 mit dem Inhalt 0x0100 liest wahr.
Schreiben
Tags, deren Zugriff Lesen und schreiben oder Nur schreiben ist, lassen sich schreiben, und zwar auf dieselbe Geräteadresse, die der Lesevorgang verwendet. Ein Schreibvorgang auf Boolean an einem Bit-Gerät setzt oder löscht das eine genannte Relais und rührt keinen seiner Nachbarn an. Alles andere wird als ganze 16-Bit-Wörter geschrieben: zwei Wörter bei Int32 und Float, ein Wort bei einem Boolean an einem Wort-Gerät und bei String die ganze Leselänge des Tags, vorn die UTF-8-Bytes des Textes und dahinter Nullen, aufgerundet auf das letzte Wort. Ein kürzerer Text über einem längeren ersetzt daher den ganzen Wert, und vom alten überlebt nichts. Ein Text, der nicht in die erklärte Länge passt, wird abgelehnt, mit der Länge benannt im Journal, und nie auf Maß gekürzt. Ein neuer Tag beginnt als Nur lesen.
Gerätesuche
Das MC-Protokoll kennt in diesem Treiber keine Suche über Rundruf, der Connector zeigt also keine Schaltfläche Suchen. Legen Sie das Gerät und seine Adressen von Hand an.
Gut zu wissen
- Das zyklische Lesen liegt bei diesem Treiber für jeden Tag fest bei einer Sekunde; die üblichen Felder für das Abfrageintervall werden nicht gezeigt.
- Der 3E-Rahmen muss an der Steuerung als binäre (nicht ASCII-) Verbindung über MC/SLMP freigeschaltet sein; ein auf ASCII eingestellter Port antwortet diesem Treiber nicht.
- Eine nicht erreichbare Steuerung kostet beim Start nichts: Das Gerät versucht es im Hintergrund weiter, und seine Tags lesen schlechte Qualität, bis die Verbindung steht.