Prozessdaten anlegen

Prozessdaten anlegen 1:

Falsch eingestellte Adressoffsets bei der EtherCAT-Slave-Schnittstelle führen zum Absturz.

Bei Geräten mit Prozessoren der Reihe Arm® auf das Alignment achten und korrektes Adressoffset in TwinCAT einstellen.

  • INT/WORD-Datentypen müssen auf einem Adressoffset mit Basis 2 liegen.
  • REAL/DWORD/DINT-Datentypen müssen auf einem Adressoffset mit Basis 4 liegen.

Über die EtherCAT-Slave-Schnittstelle (X101, X102) können maximal 512 Byte Ein- und Ausgangsdaten oder 256 Variablen ausgetauscht werden. Die 512 Byte Ein- und Ausgangsdaten können nicht einzeln angelegt werden, da dafür 512 Variablen benötigt werden.

Um viele Verknüpfungen zu vermeiden, ist es sinnvoll Daten in einer Datenstruktur abzulegen. Achten darauf, dass die verwendeten Datenstrukturen auf einem x86-System und einem Prozessor des Typs Arm® Cortex®-A9 unterschiedlich verarbeitet werden. Ein Prozessor des Typs Arm® Cortex®-A9 legt beispielsweise WORD-Variablen (2 Byte) immer auf eine gerade Adresse und DWORD-Variablen (4 Byte) auf eine durch 4 teilbare Adresse.

Datenstruktur Beispiel:
    byTest :BYTE;
    udTest:UDINT;

Datenstruktur mit BYTE- und UDINT-Variablen

Adresse Arm®

Variable Arm®

Adresse x86

Variable Arm®

Byte Offset 0

Byte

Byte Offset 0

BYTE

Byte Offset 4

UDINT

Byte Offset 1

UDINT

Summe: 8 Byte

Summe 5 Byte

Sie können die Länge einer Datenstruktur auf beiden Systemen mit dem Befehl SIZEOF bestimmen. Wenn sich die Länge der Datenstruktur unterscheidet, dann ist dies ein Hinweis darauf, dass die Datenstruktur nicht passt.

Sie können das Problem lösen, indem Sie die Variablen geschickter anordnen oder mit Füll- oder Dummy Variablen arbeiten.

Datenstruktur mit Füll- oder Dummy-Variablen.

Adresse Arm®

Variable Arm®

Adresse x86

Variable Arm®

Byte Offset 0

Byte

Byte Offset 0

BYTE

Byte Offset 1

BYTE (Dummy1)

Byte Offset 2

BYTE (Dummy2)

Byte Offset 3

BYTE (Dummy3)

Byte Offset 4

UDINT

Byte Offset 4

UDINT

Summe: 8 Byte

Summe 8 Byte

Legen Sie Prozessdaten wie folgt an:

1. Klicken Sie links in der Strukturansicht unter Devices mit rechter Maustaste auf Inputs, um Eingangsvariablen anzulegen.
Prozessdaten anlegen 2:
2. Klicken Sie im Kontextmenü auf Add New Item. Das Menü Insert Variable erscheint.
Prozessdaten anlegen 3:
3. Wählen Sie die benötigten Variablen und bestätigen mit OK. Drücken Sie auf die Schaltfläche Create Array Type, um Datenstrukturen anzulegen.
Sie haben erfolgreich Eingangsvariablen angelegt. Wiederholen Sie die Arbeitsschritte, um auf die gleiche Weise Ausgangsvariablen anzulegen.