Data Table Read und Write
![]() | Systemvoraussetzungen beachten Das Data Table Read und Write kann nur mit dem TC1200 betrieben werden. |
Diese Funktion ist wie das Consumed und Produced Tag eine Kommunikation zwischen zwei EtherNet/IP™-Steuerungen mit dem Unterschied, dass es sich um eine azyklische Kommunikation handelt. Hiermit können Daten zwischen zwei Steuerungen ausgetauscht werden, die nicht zyklisch übertragen werden müssen, wie z. B. Parameter, Rezepte oder beliebige andere Daten. Die Daten können Strukturen, Arrays oder eine Kombination aus beiden sein. TwinCAT ermöglicht das Lesen und Schreiben der Daten auf eine Steuerung, darüber hinaus ist es möglich mit einer Fernsteuerung Daten von TwinCAT zu Lesen oder zu Schreiben. Im Folgenden wird das exemplarisch erklärt:
Daten, die über diesen Dienst verschickt bzw. empfangen werden sollen, müssen im TwinCAT-System bekannt gemacht werden. Diese Daten müssen als Globale Variable in einem Ordner ETHIP liegen und müssen als Merker lokiert sein. Zusätzlich muss die Bibliothek Tc2_EthernetIP eingebunden sein. Diese beinhaltet einen Funktionsbaustein für das DataTable read/write.
In beiden PLCs müssen die Datentypen übereinstimmen.
Anlegen der Variablen:
Legen Sie eine Globale Variable Liste an, die den Namen ETHIP besitzt. Fügen Sie nun zwei Variablen an wie unten im Bild zu sehen ist. Die Variablen müssen eine feste Adresse besitzen und im Merkerbereich liegen (%MBx, x Adresse). Bei unlokierten Variablen könnte sich beim Online Change die interne Adresse ändern, daher werden solche Variablen aktuell nicht unterstützt.
- 1. Übersetzen Sie das Projekt und wechseln Sie nun zum EtherNet/IP™-Scanner.
- 2. Hier wechseln Sie zum Karteireiter Explicit Msg:
- 3. Gehen Sie mit der Maus auf die leere Box, klicken Sie mit der rechten Maustaste und fügen Sie mit Add jetzt die Daten an:
- 4. Es erscheint der Dialog Add Symbols … Haken Sie die Daten an, die Sie später verwenden wollen:
- Die Daten sind im Dialog nun vorhanden.
- Als nächstes muss das TwinCAT-Projekt neu übersetzt und neu gestartet werden. Dies ist erforderlich, wenn Sie die Daten verändern, z. B. den Namen, den Merker, die Adresse, den Typ der Variablen, etc.
Lesen einer TwinCAT-Variablen von der Allen-Bradley-Steuerung aus
Als erstes muss wie beim Consumed und Produced Tag in der Konfiguration die TwinCAT-Steuerung eingetragen werden, gehen Sie hier genauso vor.
- 1. Fügen Sie unter Controller Tags die Variable Test und iTest beide als DINT ein. Nun muss ein wenig Code geschrieben werden für die Allen-Bradley (AB) Steuerung.
msg(msgTest); (* Program language: Structured Text *)
„msgTest“ muss vom Typ MESSAGE sein. - 2. Klicken Sie dann auf die msgTest Variable und konfigurieren Sie den Baustein.
- 3. Stellen Sie den Message Type auf CIP Data Table Read. Unter Source Element geben Sie den Namen ein, den Sie auch im TwinCAT-Projekt verwendet haben.
- 4. Als nächstes gehen Sie auf den Karteireiter Communication. Hier stellen Sie die Steuerung ein, von der Sie die Variable Test lesen wollen.
- Damit ist zum Lesen der Variable alles vorbereitet.
- Die Variable Test wird (auf der Beckhoff Seite) gelesen und wird (auf der AB Seite) auf die Variable iTest kopiert.
Schreiben einer TwinCAT-Variablen von der Allen-Bradley-Steuerung aus
Beim Schreiben muss ähnlich vorgegangen werden. Der MSG-Befehl muss dann das Data Table Write beschreiben. Hier ist das Source Element die Variable in der Allen-Bradley Steuerung. Das Destination Element ist die TwinCAT-Variable. Unter Communication muss auch wieder die TwinCAT-Steuerung ausgewählt werden.
Die Variable Test (auf der AB Seite) wird auf die Variable Test2 (auf die Beckhoff Seite) kopiert.
Übertragen von STRING-Variablen
Ein STRING hat auf der Rockwell Steuerung ein anderes Datenformat als auf der TwinCAT-Steuerung. Um STRING nutzen zu können gibt es in der Bibliothek Tc2_EthernetIP eine Datenstruktur vom Namen RSL5K_STRING. Diese müssen Sie benutzen, um auch STRING zu verwenden. Die entsprechenden Konvertierungen stehen ebenfalls in der Bibliothek zur Verfügung. Es dürfen nur STRING verwendet werden die kleiner/gleich 82 Zeichen besitzen.
Data Table READ/WRITE von der Beckhoff Steuerung aus
Für das DataTableRead/Write wird der SPS-Baustein FB_CIP_DATA_TABLERDWR verwendet aus der Bibliothek Tc2_EthernetIP (Siehe DataTableRDWR). Die Verwendung ist dem aus der AB-Steuerung sehr ähnlich und ist exemplarisch hier dargestellt:
Wie auf dem oben gezeigten Bild kann auch auf der TwinCAT-Seite bei einem ARRAY mit einem [*] Platzhalter gearbeitet werden. Hierfür wird im Variablennamen der ARRAY-Wert mit einem * eingefügt. Der Vorteil ist, dass damit nur Teile oder auch nur ein Element eines ARRAY gelesen bzw. geschrieben werden. Es ist also dann nicht notwendig das komplette ARRAY zu lesen oder zu schreiben.
Verwenden Sie ein ARRAY in einem ARRAY und nutzen Sie jeweils ein * wird bei allen [*] Werten der Index eingetragen. Beispiel DataARRAY[*].ValueArray[*], hier wird bei beiden der Index eingetragen.