Allgemeines

Um EtherCAT zu betreiben, braucht man eine CPU, eine kompatible Netzwerkkarte, ein RJ45-Kabel und ein Slave-Gerät.

Echtzeit-Bussystem

EtherCAT ist ein Echtzeit-Bussystem, das auf Ethernet-Technologie basiert. Ein- und Ausgänge, Sensoren, Antriebe und Displays werden alle direkt durch EtherCAT erreicht.

EtherCAT-Telegramm

Allgemeines 1:

Das EtherCAT-Telegramm beginnt mit einem Ethernet-Header, gefolgt von den EtherCAT-Daten. Das Telegramm wird von der Frame Check Sequence (FCS) abgeschlossen. Die EtherCAT-Daten beginnen mit einem EtherCAT-Header, gefolgt von den EtherCAT-Datagrammen. Falls der gesamte Ethernet-Frame kleiner als 64 Bytes ist, werden 1 bis 32 Padding Bytes am Ende der EtherCAT-Daten eingefügt. Bis zu 15 Datagramme können in den EtherCAT-Daten enthalten sein. Ein Datagramm besteht aus einem Header, den zu lesenden oder zu schreibenden Daten und einem Working Counter.

„EtherCAT Header“

Der „EtherCAT Header“ teilt sich auf in eine Längenangabe, einem reservierten Bit und einer Angabe für den Protokoll-Typ.

Allgemeines 2:

Feld

Datentyp

Wert/Beschreibung

Length

11 Bit

Länge des EtherCAT-Datagrams (ohne FCS)

Reserved

1 Bit

Reserviert, 0

Type

4 Bit

Protokoll-Typ. Nur EtherCAT-Kommandos (Typ = 0x1) werden von ESCs unterstützt.

EtherCAT-Datagramm

Der „Datagram Header“ teilt sich auf in eine Angabe für den EtherCAT Kommando-Typ, einer numerischen Kennung, die vom Master für die Identifizierung von Duplikaten oder verlorengegangenen Datagrammen verwendet wird, und einer Adressenangabe. Es folgen eine Längenangabe, die die Länge der innerhalb des Datagramms folgenden Daten angibt, zwei reservierte Bits, ein Bit, um zirkulierende Frames zu verhindern, noch ein reserviertes Bit, ein Bit, das angibt, ob noch ein weiteres EtherCAT-Datagramm folgt, und schließlich ein EtherCAT Ereignis-Abfrage-Register.

Allgemeines 3:

Feld

Datentyp

Wert/Beschreibung

Cmd

BYTE

EtherCAT Kommando-Typ

Idx

BYTE

Der Index ist eine numerische Kennung, die vom Master für die Identifizierung von Duplikaten oder verlorengegangenen Datagrammen verwendet wird. Der Index sollte von den EtherCAT-Slaves nicht geändert werden.

Address

BYTE[4]

Adresse: Auto-Inkrement, Configured Station Address oder Logische Adresse

Len

11 Bit

Länge der innerhalb dieses Datagramms folgenden Daten

R

3 Bit

Reserviert, 0

C

1 Bit

Umlaufender Frame:

0: Frame läuft nicht um

1: Frame ist einmal umgelaufen

M

1 Bit

Mehrere EtherCAT Datagramme

0: Letztes EtherCAT Datagramm

1: Mindestens ein weiteres EtherCAT Datagramm folgt noch

IRQ

WORD

EtherCAT Ereignis-Abfrage-Register von allen Slave-Geräten kombiniert mit einem logischen ODER

Data

BYTE[n]

Zu lesende oder zu schreibende Daten

WKC

WORD

Working Counter

Positions-Adressierung

Die Positions-Adressierung sollte nur während des Start-Ups des EtherCAT-Systems verwendet werden, um den Feldbus zu scannen. Später sollte die Positions-Adressierung nur verwendet werden, um neu hinzugefügte Slaves zu erkennen.

Das Datagramm beinhaltet die Positions-Adresse des adressierten Slave-Gerätes als negativen Wert. Jeder Slave erhöht diese Adresse. Der Slave, der diese Adresse gleich null liest, wird adressiert und wird das zugehörige Kommando ausführen, sobald er es erhält.

Allgemeines 4:

Node-Adressierung

Node-Adressierung wird typischerweise für Registerzugriff auf einzelne und schon identifizierte Geräte verwendet.

Die Configured Station Address wird vom Master beim Start-Up zugewiesen und kann vom EtherCAT-Slave nicht verändert werden. Die Configured Station Alias Adresse ist im ESI-EEPROM (ESI: EtherCAT Slave Information) gespeichert und kann vom EtherCAT-Slave verändert werden. Der Configured Station Alias muß vom Master aktiviert werden. Das jeweilige Kommando wird ausgeführt, wenn die Node Address entweder mit der Configured Station Address oder mit dem Configured Station Alias übereinstimmt.

Modus

Feld

Datentyp

Wert/Beschreibung

Position Address / Auto Increment Address

Position

WORD

Jeder Slave erhöht den Wert Position.

Der Slave wird adressiert, wenn Position = 0.

Offset

WORD

Lokale Registeradresse oder lokale Speicheradresse des ESCs

Node Address / Configured Station Address und Configured Station Alias

Address

WORD

Der Slave wird adressiert, wenn Address der Configured Station Address entspricht oder dem Configured Station Alias (wenn aktiviert) entspricht.

Offset

WORD

Lokale Registeradresse oder lokale Speicheradresse des ESCs

Broadcast

Position

WORD

Jeder Slave erhöht das Feld Position (, welches nicht für die Adressierung verwendet wird).

Offset

WORD

Lokale Registeradresse oder lokale Speicheradresse des ESCs

Logical Address

Address

DWORD

Logische Adresse (konfiguriert von den FMMUs)

Der Slave wird adressiert, wenn die FMMU Konfiguration dem Feld Address entspricht

Broadcast-Adressierung

Die Broadcast-Adressierung wird zum Beispiel für die Initialisierung aller Slave-Geräte verwendet.

Logische-Adressierung

Logische Adressierung unterstützt die bitweise Zuordnung von Daten. Logische Adressierung verringert überflüssige Kommunikationsinhalte bei der Prozessdaten-Kommunikation.

Alle Geräte lesen von und schreiben zu demselben Adressbereich des EtherCAT-Telegramms. Jeder Slave benutzt eine Abbildungseinheit (FMMU, Fieldbus Memory Management Unit), um Daten vom logischen Prozeßdatenabbild auf seinen lokalen Adress- und Speicherbereich abzubilden. Während des Start-Ups konfiguriert der Master die FMMUs eines jeden Slaves. Indem ein Slave die Konfigurationsinformation seiner FMMUs benutzt, weiß ein Slave, welche Teile des logischen Prozessdatenabbildes auf welchen lokalen Addressbereich und Speicherbereich abgebildet werden sollen.

EtherCAT-Kommando-Typen

In der nachfolgenden Tabelle werden alle unterstützten EtherCAT-Kommando-Typen aufgelistet. Bei kombinierten Lese- und Schreibeoperationen wird die Leseoperation vor der Schreibeoperation ausgeführt.

Cmd

Abkürzung

Name

Beschreibung

0

NOP

No Operation

Ein Slave ignoriert das Kommando.

1

APRD

Auto Increment Read

Ein Slave erhöht die Adresse. Ein Slave schreibt die gelesenen Daten in das EtherCAT-Datagramm, wenn die erhaltene Adresse gleich null ist.

2

APWR

Auto Increment Write

Ein Slave erhöht die Adresse. Ein Slave schreibt Daten in einen Speicherbereich, wenn die erhaltene Adresse gleich null ist.

3

APRW

Auto Increment Read Write

Ein Slave erhöht die Adresse. Ein Slave schreibt die gelesenen Daten in das EtherCAT-Datagramm und schreibt die neu mitgebrachten Daten in denselben Speicherbereich, wenn die erhaltene Adresse gleich null ist.

4

FPRD

Configured Address Read

Ein Slave schreibt die gelesenen Daten in das EtherCAT-Datagramm, wenn seine Slave-Adresse mit einer der im Datagramm konfigurierten Adressen übereinstimmt.

5

FPWR

Configured Address Write

Ein Slave schreibt Daten in einen Speicherbereich, wenn seine Slave-Adresse mit einer der im Datagramm konfigurierten Adressen übereinstimmt.

6

FPRW

Configured Address Read Write

Ein Slave schreibt die gelesenen Daten in das EtherCAT-Datagramm und schreibt die neu mitgebrachten Daten in denselben Speicherbereich, wenn seine Slave-Adresse mit einer der im Datagramm konfigurierten Adressen übereinstimmt.

7

BRD

Broadcast Read

Alle Slaves schreiben ein logisches ODER der Daten vom Speicherbereich und der Daten vom EtherCAT-Datagramm in das EtherCAT-Datagramm. Alle Slaves erhöhen das Feld Position.

8

BWR

Broadcast Write

Alle Slaves schreiben Daten in einen Speicherbereich. Alle Slaves erhöhen das Feld Position.

9

BRW

Broadcast Read Write

Alle Slaves schreiben ein logisches ODER der Daten vom Speicherbereich und der Daten vom EtherCAT-Datagramm in das EtherCAT-Datagramm, alle Slaves schreiben Daten in den Speicherbereich. BRW wird typischerweise nicht benutzt. Alle Slaves erhöhen das Feld Position.

10

LRD

Logical Memory Read

Ein Slave schreibt gelesene Daten in das EtherCAT-Datagramm, wenn die erhaltene Adresse mit einem der für das Lesen konfigurierten FMMU Bereiche übereinstimmt.

11

LWR

Logical Memory Write

Slaves schreiben Daten in ihren Speicherbereich, wenn die erhaltene Adresse mit einem der für das Schreiben konfigurierten FMMU Bereiche übereinstimmt.

12

LRW

Logical Memory Read Write

Ein Slave schreibt gelesene Daten in das EtherCAT-Datagramm, wenn die erhaltene Adresse mit einem der für das Lesen konfigurierten FMMU Bereiche übereinstimmt. Slaves schreiben Daten in ihren Speicherbereich, wenn die erhaltene Adresse mit einem der für das Schreiben konfigurierten FMMU Bereiche übereinstimmt.

13

ARMW

Auto Increment Read Multiple Write

Ein Slave erhöht das Feld Adresse. Ein Slave schreibt gelesene Daten in das EtherCAT-Datagramm, wenn die erhaltene Adresse null ist, anderenfalls schreibt ein Slave Daten in den Speicherbereich.

Working Counter

Der Working Counter wird erhöht, wenn ein EtherCAT-Teilnehmer erfolgreich adressiert worden ist und eine Leseoperation, eine Schreibeoperation oder eine Lese- und Schreibeoperation erfolgreich durchgeführt worden ist. Jedem Datagramm kann ein Wert für den Working Counter zugeordnet werden, der erwartet wird, nachdem das Telegramm alle Teilnehmer durchlaufen hat. Der Master kann überprüfen, ob ein EtherCAT-Datagramm erfolgreich verarbeitet worden ist, indem er den für den Working Counter zu erwartenden Wert mit dem nach dem Durchlaufen aller Teilnehmer ankommenden und tatsächlichen Wert des Working Counters vergleicht.

Kommando

Erfolg

Erhöhung

Lese-Kommando

Keinen Erfolg

Keine Änderung

Erfolgreiches Lesen

+1

Schreibe-Kommando

Keinen Erfolg

Keine Änderung

Erfolgreiches Schreiben

+1

Lese-/Schreibe-Kommando

Keinen Erfolg

Keine Änderung

Erfolgreiches Lesen

+1

Erfolgreiches Schreiben

+2

Erfolgreiches Lesen und Schreiben

+3

„EtherCAT Slave Controller“

Allgemeines 5:

Jeder Teilnehmer sieht den EtherCAT-Frame durch ein schmales Datenfenster. Die Daten werden zur Laufzeit gelesen und geschrieben. Dabei können dem EtherCAT-Telegramm einzelne Bits oder auch größere Datenpakete entnommen oder eingefügt werden.

Bis zu 65535 Teilnehmer können am Datenaustausch teilhaben. EtherCAT ist flexibel im Hinblick auf die topologische Anordnung seiner Teilnehmer: Linien-, Baum- und Sterntopologie können konfiguriert und aufgebaut werden. Eine Ringtopologie ermöglicht Kabel-Redundanz.

EtherCAT-Schnittstellen

Ein ASIC ist ein applikationsspezifischer integrierter Schaltkreis. Der ET1100 ASIC ist zum Beispiel ein EtherCAT Slave Controller (ESC). Er kümmert sich um die EtherCAT-Kommunikation als eine Schnittstelle zwischen dem EtherCAT-Feldbus und der Slave-Applikation. Ein FPGA ist ein „Field Programmable Gate Array“.

Media Access Control „MAC“ steht für Stationszugriff auf ein Kommunikationsmedium. Mit vollem Duplex-Ethernet kann jede Station zu jeder Zeit Daten senden. Ein Physical Layer Device „PHY“ konvertiert Daten vom Ethernet Kontroller zu elektrischen oder optischen Signalen. Das Media Independent Interface „MII“ ist ein standardisiertes Interface zwischen einem Ethernet-Media Access Controller und einem Physical Layer Device. „RMII“ steht für Reduced Media Independent Interface.

Die EtherCAT-Schnittstellen und Ports verbinden den ESC mit anderen EtherCAT-Slaves und dem Master. Die MAC-Schicht ist integraler Bestandteil des ESCs. Die physikalische Schicht kann Ethernet oder EBUS sein. Die physikalische Schicht für EBUS ist voll in FPGAs oder ASICs integriert. Für Ethernet Ports stellen externe Ethernet PHYs die Verbindung zu den MII/RMII Ports des ESCs her. Die Übertragungsgeschwindigkeit für EtherCAT ist fest auf 100 Mbit/s mit voller Duplex-Kommunikation eingestellt. Der Verbindungsstatus und der Kommunikationsstatus werden dem überwachenden Gerät mitgeteilt. EtherCAT-Slaves unterstützen zwei bis vier Ports. Die logischen Ports werden im Bild mit 0-1-2-3 nummeriert, in TwinCAT werden sie mit A-B-C-D bezeichnet.

Allgemeines 6:

EtherCAT Processing Unit

Die EtherCAT Processing Unit (EPU) erhält, analysiert und verarbeitet den EtherCAT-Datenstrom. Sie ist logisch zwischen Port 0 und Port 3 angeordnet. Der Hauptzweck der EtherCAT Processing Unit ist es, den Zugriff auf die internen Register und auf den Speicherbereich des ESCs zu ermöglichen und zu koordinieren. Der Speicherbereich des ESCs kann vom EtherCAT-Master und über das Prozess-Daten-Interface (PDI) von der lokalen Applikation adressiert werden. Datenaustausch zwischen der Masterapplikation und der Slaveapplikation ist vergleichbar mit einem Speicher (Prozeßspeicher) mit zwei Ports, wobei der Speicher mit speziellen Funktionen, zum Beispiel für Konsistenzprüfung (SyncManager) und Datenabbildung (FMMU), erweitert worden ist. Die EtherCAT Processing Unit enthält die Hauptfunktionsblöcke der EtherCAT-Slaves neben dem Auto-Forwarding, der Loop-Back-Funktion und dem PDI.

Auto-Forwarder

Der Auto-Forwarder erhält die Ethernet-Frames, führt eine Überprüfung der Frames durch und leitet sie weiter zur Loop-Back-Funktion. Die Zeitstempel der erhaltenen Frames werden vom Auto-Forwarder generiert.

Loop-Back-Funktion

Die Loop-Back-Funktion leitet Ethernet Frames zum nächsten logischen Port weiter, wenn es an einem Port keinen Link gibt, wenn der Port nicht erreichbar ist oder wenn die Schleife für den Port geschlossen ist. Die Loop-Back-Funktion von Port 0 leitet die Frames an die EtherCAT Processing Unit weiter. Die Loop-Einstellungen können vom EtherCAT-Master kontrolliert werden.

FMMU

Fieldbus Memory Management Units werden dazu benutzt, logische Adressen bitweise auf physikalische Adressen des ESCs abzubilden.

SyncManager

SyncManager sind verantwortlich für einen konsistenten Datenaustausch und für die Mailbox-Kommunikation zwischen dem EtherCAT-Master und den EtherCAT-Slaves. Die Kommunikationsrichtung kann für jeden SyncManager eingestellt werden. Lesevorgänge oder Schreibevorgänge können für den EtherCAT-Master und einen angeschlossenen Mikrocontroller Ereignisse erzeugen. Die SyncManager sind für den hauptsächlichen Unterschied zwischen einem ESC und einem Speicher mit zwei Ports verantwortlich, weil sie in Abhängigkeit vom SyncManager Status Adressen auf verschiedene Buffer abbilden und Zugriffe blockieren. Das ist auch der fundamentale Grund für Einschränkungen in der Bandbreite der PDI Schnittstelle.

Monitoring

Die Monitoring-Einheit enthält Bausteine für das Zählen von Fehlern, und sie enthält Watchdogs. Die Watchdogs überwachen die Kommunikation. Die Fehlerzähler helfen bei der Analyse von Fehlern.

Reset

Der integrierte Reset-Kontroller beobachtet die Spannungsversorgung und kontrolliert externe und interne Resets. Ihn gibt es nur in den Beckhoff ET1100 ASICs und den Beckhoff ET1200 ASICs.

Distributed Clocks

Distributed Clocks erlauben eine präzise synchronisierte Erzeugung von Ausgangssignalen, ein präzise synchronisiertes Einlesen von Eingängen und ein Erzeugen von Zeitstempeln für Ereignisse. Die Synchronisierung kann das gesamte EtherCAT-Netzwerk umspannen.

Memory

Ein EtherCAT-Slave kann einen Adressraum von bis zu 64 Kbyte haben. Der erste Block von 4Kbyte, 0x0000-0x0fff, wird für Register und für Benutzerspeicher verwendet. Der Speicher von der Adresse 0x1000 bis zur Adresse 60 Kbyte wird als Prozeßdatenspeicher verwendet. Die Größe des Prozeßdatenspeichers hängt vom Gerät ab. Der ESC Adressbereich ist direkt vom EtherCAT-Master oder einem angefügten Mikrokontroller ansprechbar.

Process Data Interface

In Abhängigkeit vom ESC gibt es mehrere Typen von PDIs: Digitales-I/O, SPI-Slave, 8-16 Bit Mikrokontroller, On-Chip-Bus, Viel-Zweck-I/O.

ESI-EEPROM

Für die ESC-Konfiguration und die Gerätebeschreibung wird ein nicht-flüchtiger Speicher benötigt.

Status

Der Status-Block liefert ESC-Information und Applikationsstatus-Information. Er kontrolliert externe LEDs, wie die Applikations-RUN-LED oder die Applikations-ERR-LED, wie die Port-Link-LEDs oder die Port-Aktivitäts-LEDs.