EtherCAT

Slave Interface

An die Schnittstellen X101 schließt man das ankommende EtherCAT Signal an. X102 geht an weitere EtherCAT Slave Geräte. Der 10-polige DIP-Schalter ist ausschließlich für den "Hot Swap" vorgesehen (Siehe Hot Swap). Über die EtherCAT Schnittstelle kann man maximal 512 Byte Ein- und Ausgangsdaten oder 256 Variablen anschließen.

Zum Beispiel 512 Byte einzeln anlegen, würde nicht gehen, da man dafür 512 Variablen bräuchte.

Prozessdaten

Wie legt man die Prozessdaten im TwinCAT an?

Sobald ein CX8010 gescannt wird, fügt der System Manager ein "EtherCAT Slave" Gerät an. Das Interface ist sehr einfach aufgebaut und besteht in der Regel nur aus "Inputs", "Outputs" und InfoData. Wenn man auf die Inputs klickt, können Sie mit der rechten Maustaste Daten zum Interface dazufügen. Das System adressiert diese dann automatisch.

EtherCAT 1:

EtherCAT 2:

Das gleiche wird mit den Ausgängen gemacht. Verknüpfen Sie diese dann mit ihrem SPS Programm oder mit den K-Bus bzw. E-Bus Klemmen. Sollten Sie nur Verknüpfungen von Klemmen auf des EtherCAT Prozessabbild durchführen, achten sie darauf, dass beide Geräte eine Task besitzen, die diese Antriggern und das diese Task auch automatisch gestartet wird.

InfoData: Hier ist die aktuelle AMSNet ID des Interfaces hinterlegt. Den State können Sie auswerten um den Zustand der EtherCAT Slave Schnittstelle zu ermitteln.

Prozessdaten mit Strukturen

Um sich viele Verknüpfungen zu ersparen macht es Sinn, Daten die sie austauschen  wollen, in einer Datenstruktur abzulegen. Achten Sie hierbei aber darauf, das Datenstrukturen mit verschiedenen Variablen auf einem x86er System und auf einem ARM Prozessor unterschiedlich gehandhabt werden. Der ARM Prozessor legt Word (2 Byte) Variablen immer auf eine grade Adresse und bei 4 DWORD (4 Byte) Variablen auf eine durch 4 Teilbare Adresse.

Beispiel

Datenstruktur

    byTest :BYTE;

    udTest:UDINT;

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

Die Länge einer Datenstruktur können Sie auf beiden Systemen mit dem Befehl SIZEOF bestimmen. Gibt es hier einen Unterschied, ist dies schon mal ein Hinweis darauf, dass die Datenstruktur nicht passt.

Lösen kann man dieses Problem nur in dem Sie die Variablen geschickter anordnen oder mit Füll bzw. Dummy Variablen arbeiten.

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

Device-Status

Der Device-Status zeigt an ob das EtherCAT Slave Interface im OP-Modus ist und zeigt über das Toggel-Bit die Datenkommunikation an. Im Ausgangsbereich kann der EtherCAT-Status auch von der Slave-Seite beeinflusst werden.

EtherCAT 3:
EtherCAT 4:

TxPDO State "1" Node ist im OP-Modus; "0" Node ist nicht mehr im OP-Modus

TxPDO Toggle "1/0" Node ist im Datenaustausch

AIStatus Control

0x0000_0000    Normal-Betrieb (OP-Modus)
0x0001_0000    INIT-Betrieb
0x0002_0000    PREOP-Betrieb
0x0004_0000    SAFEOP-Betrieb
0x0008_0000    OP-Betrieb

Alle anderen Bits sind reserviert!

Hot Swap (Explicit Device Identification)

In Anwendungen, bei denen im laufenden Betrieb ein CX8010 gegen einen anderen CX8010 getauscht werden soll (mit unterschiedliche Applikationen auf den jeweiligen CX8010), können mit der Explicit Device Identification die einzelnen CX8010 voneinander unterschieden werden. Diese werden in eine Hot-Connect-Gruppe einsortiert.

Die Explicit Device Identification Nummer kann man über den DIP-Schalter oder per Software im System Manager einstellen. Wenn sie über den DIP-Schalter genutzt werden soll, muss sie einmalig im System Manager aktiviert werden. Der CX8010 liest den Schalter dann beim Starten des Systems ein und arbeitet dann mit dessen Einstellung.

EtherCAT 5:

ADS Interface AMS NetId

Reserviert für Erweiterungen.

Advanced Settings

Reserviert für Erweiterungen.

Distributed Clocks

Wird aktuell nicht unterstützt.