Grundlagen

Das TwinCAT EAP Gerät ermöglicht die Übertragung von Daten aus beliebigen Variablen von einer TwinCAT Steuerung A zu einer TwinCAT Steuerung B via Netzwerk. Diese Variablen dienen typischerweise dazu, den Verarbeitungsprozess innerhalb einer Maschine zu steuern. Sie werden daher auch Prozessvariablen (PV) genannt. Das Senden und Empfangen kann für ein TwinCAT EAP Gerät über einen normalen Netzwerkadapter erfolgen, der von dem TwinCAT Realtime Ethernet Treiber unterstützt wird.

Die Kommunikation zwischen EAP Geräten erfolgt nach dem Publisher Subscriber Prinzip, bei dem die Sender, Publisher genannt, ihre Nachrichten an alle oder mehrere Netzwerkteilnehmer schicken, wobei ein Publisher grundsätzlich nicht weiß, wer seine Empfänger sind bzw. ob es überhaupt einen Empfänger gibt. Auf der anderen Seite gibt es Empfänger, Subscriber genannt, die sich für bestimmte Nachrichten interessieren und diese empfangen, ohne zu wissen, von welchem Publisher diese kommen bzw. ob es überhaupt einen Publisher gibt, der eine solche Nachricht verschickt.

Aufbau eines EAP Publishers

Ein EAP Publisher setzt sich aus einer Summe geschachtelter Elemente zusammen, so wie in der folgenden Abbildung grafisch veranschaulicht. Das Basiselement auf der untersten Ebene ist eine TxVariable. Sie definiert eine Ausgangsvariable, die mit einer Prozessvariablen verknüpft wird und beinhaltet ein paar weitere Eigenschaften wie z.B. einen Datentyp. Der Datentyp darf frei gewählt werden; es darf also auch ein komplexer Datentyp sein, der mehrere hundert Bytes groß ist. Es muss nur gewährleistet werden, dass die maximale Größe eines EAP Frames nicht überschritten wird (die Größe eins EAP Frames entspricht der eines Standard Ethernet Frames). Die Prozessvariable liefert während des Betriebs die Werte, die der Publisher senden soll.

Grundlagen 1:

Eine Ebene darüber werden in den TxPDO Elementen (TxPDO = TxProcessDataObjects) TxVariablen referenziert. Ein TxPDO kann mehrere TxVariablen referenzieren und fasst sie so zu einem Objekt zusammen. Das TxPDO definiert dann eine geordnete Menge von TxVariablen. Für ein TxPDO muss ebenfalls gewährleistet sein, dass die maximale Größe eines EAP Frames nicht überschritten wird.

Noch eine Ebene höher befindet sich das TxData Element (TxProcessData = TxPD), welches eine Publisher Variable repräsentiert und beim EAP als Kommunikationseinheit des Publishers begriffen wird. Das TxData referenziert ein bestimmtes TxPDO und definiert einige Eigenschaften, wie z.B. die ID der Publisher Variablen, deren Version und den Zyklustakt, mit dem die Publisher Variable überhaupt erst versendet wird. Mit Hilfe dieser Eigenschaften definiert die Publisher Variable ein Objekt auf der Senderseite, zu der eine passende Subscriber Variable auf der Empfängerseite definiert werden muss, so dass ein erfolgreicher Datenaustausch stattfinden kann.

Die Übertragung der Daten erfolgt netzwerkbasiert über das Ethernet Protokoll oder über UDP/IP. Einem TxFrame wird dann entsprechend eine Liste von TxData zugeordnet, die an die gleiche Zieladresse gesendet werden sollen. Ein TxFrame ist dabei auf eine maximale Datenlänge pro Datenpaket beschränkt. Für das Versenden einer Publisher Variable müssen dann wenigstens die folgenden Eigenschaften definiert sein:

Zieladresse:
Als Zieladresse wird in der Regel eine Multicast Adresse eingetragen, so dass die Publisher Variable automatisch an eine Gruppe von Empfängern gesendet wird. Es kann allerdings auch die Adresse eines einzelnen Empfängers eingetragen werden.

ID:
Für jede Publisher Variable wird eine Nummer definiert, die eindeutig im gesamten Netzwerk sein muss und anhand derer die Publisher Variable von einem Subscriber identifiziert werden kann.

Zyklustakt:
Anhand des Zyklustaktes wird festgelegt, in welchem zeitlichen Rhythmus die Publisher Variable versendet wird. Beim EAP sind im Allgemeinen Zykluszeiten von wenigen Millisekunden bis zu mehreren 100 Millisekunden üblich.

Verknüpfung zu einer Prozessvariablen:
Zu guter Letzt wird noch eine Verknüpfung der Publisher Variablen mit einer Prozessvariablen benötigt, damit auch tatsächlich Prozessdaten mit Hilfe der Publisher Variable verschickt werden. Andernfalls bliebe der Wert der Publisher Variable stets null.

Aufbau eines EAP Subscribers

Die Struktur eines EAP Subscribers ist analog zu der eines Publishers und wird in der folgenden Abbildung grafisch veranschaulicht. Das Basiselement auf der untersten Ebene eines Subscribers wird dann allerdings RxVariable genannt. Die RxVariable definiert eine Eingangsvariable, die ebenfalls mit einer Prozessvariablen verknüpft wird und ein paar Eigenschaften beinhaltet wie z.B. den Datentyp. Die Prozessvariable erhält während des Betriebs die Werte, die der Subscriber empfängt.

Die Elemente der darüber liegenden Ebene werden dann entsprechend RxPDOs (RxProcessDataObjects) genannt, die jeweils eine geordnete Menge von RxVariablen definieren.

Noch eine Ebene höher befindet sich das RxData Element (RxProcessData = RxPD), welches eine Subscriber Variable repräsentiert und beim EAP als Kommunikationseinheit des Subscribers begriffen wird. Das RxData referenziert ein bestimmtes RxPDO und definiert u.a. die notwendigen Eigenschaften (ID und Version), die mit der Publisher Variablen übereinstimmen müssen, die empfangen werden soll. Für einen erfolgreichen Datenaustausch müssen die Datentypen der referenzierten RxVariable und deren Ordnung im RxPDO identisch zum TxPDO der Publisher Variable sein. Die Subscriber Variable definiert somit ein Objekt auf der Empfangsseite, zu der eine passende Publisher Variable auf der Senderseite definiert werden muss, so dass ein Datenaustausch stattfindet.

Grundlagen 2:

Dem Design des EtherCAT Automation Protocols nach ist es für einen Subscriber unerheblich, von welchem Absender die empfangenen Daten stammen. Vor allem ist es unerheblich, welche Publisher Variablen innerhalb eines Frames versendet werden. Aus diesem Grund gibt es beim Subscriber auch kein Frame Element oder ähnliches, mit Hilfe dessen bestimmte Subscriber Variablen zu einer Einheit zusammengefasst und somit nur en bloc empfangen würden. Nichts desto trotz bietet das RxData die Möglichkeit eine AMS NetID als Filteradresse zu definieren, wenn ein Subscriber nur die Publisher Variablen eines bestimmten Absenders empfangen soll. Für eine Subscriber Variable müssen dann wenigstens die folgenden Eigenschaften definiert sein:

ID:
Die ID bei einer Subscriber Variable definiert, welche Publisher Variable diese empfangen soll. Die ID ist eine Nummer, die nach Möglichkeit eindeutig für jede Publisher Variable im gesamten Netzwerk ist und anhand derer die Publisher Variable beim Empfang identifiziert wird.

Verknüpfung zu einer Prozessvariablen:
Letztlich ist auch die Verwendung einer Subscriber Variablen erst dann sinnvoll, wenn diese mit einer Prozessvariablen verknüpft ist. Erst dann werden die empfangenen Daten auch tatsächlich von der Prozessvariablen übernommen und bei der Steuerung der Maschine berücksichtigt.

 

Außerdem muss sichergestellt sein, dass die Datenlänge der Subscriber Variable identisch zur Datenlänge der Publisher Variable ist. Andernfalls wird die empfangene Publisher Variable verworfen.