Mitsubishi MC

Mitsubishi MELSEC-Steuerungen über das MC-Protokoll (3E-Rahmen) anbinden - Gerätecodes, dezimale und hexadezimale Nummerierung und Leselängen.

Als Markdown ansehen

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
Hostadresse IP-Adresse oder Hostname der Ethernet-Schnittstelle der Steuerung. leer
Port TCP-Port der Verbindung über das MC-Protokoll, 1 bis 65535. Ein leeres Feld zeigt 5007 grau, und das Gerät wird über diesen Port angewählt; ein mit 0 gespeichertes Gerät liest sich genauso. 5007

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 braucht es eine Verbindung über das MC-Protokoll (SLMP), TCP und binär, auf dem gewählten Port: Die Steuerung vorbereiten sagt, wo sie angelegt wird.

Die Steuerung vorbereiten

Eine MELSEC-CPU bietet das MC-Protokoll nur auf einer Verbindung an, die ihr Projekt anlegt, und lehnt ein Schreiben im RUN ab, solange ihr Ethernet-Port es nicht erlaubt. Die Einstellungen werden im Engineering-Werkzeug vorgenommen und mit den Parametern in die CPU geschrieben (Online > Write to PLC); die CPU liest sie beim Start, setzen Sie sie danach also zurück oder schalten Sie sie aus und wieder ein.

Einstellung GX Works3 (iQ-R, iQ-F) GX Works2 (Q, L) Ohne sie
Eine MC-Verbindung, TCP, auf dem Port des Geräts Module Parameter > Ethernet Port > Basic Settings > External Device Configuration: Ziehen Sie ein SLMP Connection Module in die Tabelle, mit Protocol TCP und dem Port des Geräts als Port No. PLC Parameter > Built-in Ethernet Port Setting > Open Setting: eine Zeile mit Protocol TCP, Open System MC Protocol und dem Port des Geräts als Host Station Port No. Die CPU lehnt die Verbindung auf diesem Port ab, und das Gerät bleibt offline.
Communication Data Code auf binär Module Parameter > Ethernet Port > Basic Settings: Binary. PLC Parameter > Built-in Ethernet Port Setting: Binary Code. Die CPU antwortet in ASCII-Zeichen oder gar nicht, und kein Tag liest.
Schreiben im RUN erlaubt iQ-R: Module Parameter > Ethernet Port > Basic Settings, Enable/Disable Online Change auf Enable All (SLMP). PLC Parameter > Built-in Ethernet Port Setting, Enable online change (FTP, MC Protocol) angehakt. Die CPU liest normal und lehnt jedes Schreiben ab, solange sie im RUN ist, mit dem Endcode 0x0055.

Eine CPU der Reihe Q oder L behält die Ports 5000 bis 5009 sich selbst vor, ihre MC-Verbindung kann also nicht 5007 nehmen, den Standard des Geräts: Geben Sie ihr einen anderen Port, zum Beispiel 5010, und tragen Sie diesen im Port des Geräts ein. GX Works2 zeigt Host Station Port No. unter Umständen hexadezimal, dort ist 5010 gleich 1392. Der Datencode gilt für den ganzen Ethernet-Port: Ein anderes Programm, das auf diesem Port in ASCII mit der CPU spricht, muss ebenfalls auf binär umgestellt werden.

Lehnt die CPU den Port ab, antwortet sie in ASCII oder lehnt sie ein Schreiben im RUN ab, sagt die Seite des Geräts, welche Einstellung es ist, mit diesen Schritten und dem Port, den das Gerät wählt, in einem Hinweis, der von selbst verschwindet, sobald die CPU annimmt. Für ein im RUN abgelehntes Schreiben nennt er die Tags, deren Schreiben abgelehnt wurde. Das Journal und der Agent lesen dieselben Schritte.

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.

Ein Lesevorgang, den die Steuerung ablehnt, etwa eine Adresse hinter dem Ende ihres Bereichs, lässt dieses Tag ohne Wert, und sein Fehler nennt den Endcode und was er laut Handbuch bedeutet, zum Beispiel end code 0xC056 (the request goes past the last address of the device). Alle anderen Tags des Geräts lesen weiter.

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 neues Tag beginnt als Nur lesen.

Ein Schreibvorgang, den die Steuerung ablehnt, kommt abgelehnt zurück und nennt den Endcode und seine Bedeutung auf dieselbe Weise. Ein Schreiben, das abgelehnt wird, weil die CPU im RUN ist (Endcode 0x0055), sagt auch die Seite des Geräts, mit der Einstellung, die es erlaubt (siehe Die Steuerung vorbereiten).

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 jedes Tag fest bei einer Sekunde; die üblichen Felder für das Abfrageintervall werden nicht gezeigt.
  • Der Treiber spricht nur den binären 3E-Rahmen, nie ASCII: Eine auf ASCII-Code eingestellte Verbindung liest nichts (siehe Die Steuerung vorbereiten).
  • 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.
  • Die TCP-Verbindung hat 5 Sekunden, um sich zu öffnen, und jede Anfrage 10 Sekunden, um beantwortet zu werden. Eine Steuerung, die die Verbindung annimmt und nicht rechtzeitig antwortet, wird getrennt und erneut versucht wie eine nicht erreichbare; ihr Fehler nennt den Port und die zwei üblichen Gründe: eine CPU der Reihe Q oder L, deren Port auf ASCII-Code eingestellt ist und die auf eine binäre Anfrage nichts antwortet, oder ein Gerät, das auf diesem Port nicht das MC-Protokoll spricht.