# Ethernet Powerlink

Ethernet Powerlink (Offizielle Schreibweise: Ethernet POWERLINK) ist ein Echtzeit-Ethernet, um Echtzeitdaten im Mikrosekundenbereich zu übertragen. Der Hauptanwendungszweck ist die Übertragung von Prozessdaten in der Automatisierungstechnik.
Ethernet Powerlink wurde ursprünglich von der Firma B&R Industrial Automation entwickelt und wird heute von der offenen Anwender- und Anbietergruppe EPSG (Ethernet Powerlink Standardization Group) als offener Standard weiterentwickelt und spezifiziert.

## Übersicht

Von Anfang an mit Bedacht auf Standardkonformität entwickelt, führt Ethernet Powerlink einen gemischten Polling- und Zeitscheibenmechanismus zur deterministischen Übertragung von Daten ein. Damit werden erreicht:
* die garantierte Übertragung von zeitkritischen Daten in sehr kurzen isochronen Zyklen mit konfigurierbarem Zeitverhalten
* die zeitliche Synchronisation aller Netzwerkknoten mit sehr hoher Präzision im Sub-Mikrosekundenbereich
* die Übertragung des weniger zeitkritischen Datenaufkommens im reservierten asynchronen Kanal
Aktuelle Implementierungen von Ethernet Powerlink erreichen Zykluszeiten von unter 200 µs und eine zeitliche Präzision (Jitter) von weniger als 1 µs.
Ethernet Powerlink spezifiziert außerdem auch ein an CANopen angelehntes Kommunikationsprotokoll zum Nutzdatenaustausch mit Knoten im Netzwerk. Beide Teile zusammen werden von einem Powerlink Protokollstack abgehandelt. Für diesen wird keine spezielle Hardware benötigt, sodass sich sowohl Master- als auch Slaveknoten mit handelsüblichen Ethernetbausteinen realisieren lassen. Es sind daher auch quelloffene Master- und Slave-Stacks für verschiedene Betriebssysteme verfügbar.

## Datenübertragung

Da Ethernet Powerlink auf den Layern 2 und 7 im OSI-Schichtmodell angesiedelt ist, ist es grundsätzlich von der verwendeten Physik (Layer 1) unabhängig. In der Praxis wird es allerdings hauptsächlich mit Twisted-Pair-Kabeln als Fast Ethernet betrieben (100Base-TX). Dabei sind sowohl die handelsüblichen 8P8C/RJ-45 als auch die industriellen M12-Steckverbindungen zugelassen. Die Verwendung von Lichtwellenleitern ist ebenfalls möglich, wobei aber die zusätzlichen Verzögerungen durch Medienkonverter zu berücksichtigen sind.
Für eine saubere Verkabelung bezieht sich der Ethernet-Powerlink-Standard auf den IOANA-Leitfaden zur Planung und Installation industrieller Netzwerke (IAONA’s Industrial Ethernet Planning and Installation Guide). Um die Verzögerung und den Jitter zu minimieren, werden innerhalb der Echtzeit-Domäne allerdings Repeating Hubs anstelle von Switching Hubs (Switches) empfohlen.

### Versionen

Ethernet Powerlink existiert momentan in zwei Ausprägungen:
Version 1 (Ethernettyp 0x3e3f) ist ein proprietärer Ansatz von B&R, der jedoch frühzeitig als Basis für Weiterentwicklungen geöffnet wurde.
Version 2 (Ethernettyp 0x88ab) dagegen ist der aktuelle, offengelegte Standard der EPSG, welcher um verschiedene Mechanismen erweitert wurde (CANopen Geräteprofile, Powerlink Safety, Electronic Datasheets, Master Poll Response).
Obwohl beide Protokollarten starke Ähnlichkeit besitzen, beziehen sich die nachfolgenden Informationen ausschließlich auf Version 2, da Version 1 nur als Übergangslösung gilt. Einige Teilnehmer können mit beiden Protokollvarianten arbeiten.
2006 wurde von der EPSG die Entwicklung von Gigabit Powerlink angekündigt.

### Datenformat

Jedes Powerlinkpaket besteht aus einem Header und den eigentlichen Nutzdaten. Dieses Paket ist in einen normalen Ethernetframe eingebunden, welcher eine Größe zwischen 64 Byte und 1500 Byte aufweisen muss. Jumbo Frames (> 1500 Byte) sind in einem Powerlinknetzwerk nicht erlaubt. Als EtherType für Ethernet Powerlink wurde 0x88AB von der IEEE zugewiesen.
Der Powerlinkheader selbst setzt sich zusammen aus:
* 1 Bit Reserviert
* 7 Bit MessageType
* 8 Bit Zielknotennummer
* 8 Bit Quellknotennummer
Es sind folgende Nachrichttypen (MessageType) definiert:
| MessageType | ID | Bezeichnung der Nachricht | Verwendung | Ethernet Transfertyp |
| SoC | 0x01 | Start of Cycle | Definiert den Start eines neuen Zyklus | Multicast |
| PReq | 0x03 | PollRequest | Erfrage zyklische Daten des CN | Unicast |
| PRes | 0x04 | PollResponse | Sende aktuelle zyklische Daten des CN | Multicast |
| SoA | 0x05 | Start of Asynchronous | Signalisiere den Start der asynchronen Phase | Multicast |
| ASend | 0x06 | Asynchronous Send | Senden von asynchronen Daten | Multicast |

### Echtzeitkommunikation

Damit eine deterministische Datenübertragung garantiert werden kann, müssen Kollisionen auf dem Netzwerk vermieden werden. Dazu wird die Datenübertragung durch einen speziellen Teilnehmer, den Managing Node (MN), gesteuert. Die einzelnen Netzwerkteilnehmer, die Controlled Nodes (CN) dürfen nur dann senden, wenn sie dediziert dazu aufgefordert wurden.
Ein Zyklus beginnt mit der Nachricht Start of Cycle (SoC). Anschließend wird jeder Knoten einzeln vom MN mit einem Poll Request (PReq) abgefragt, worauf der CN mit einem Poll Response (PRes) antwortet. Da die Antworten als Ethernet-Multicast gesendet werden, können anderen Powerlinkgeräte mithören. Somit ist Querverkehr zwischen den CNs möglich. Um die Zykluszeit klein zu halten, muss nicht jedes Gerät in jedem Zyklus abgefragt werden (Multiplexed Stations). Die Antwortzeit eines Gerätes ($t_{PRes}-t_{PReq}$) ist ein wichtiges Qualitätsmerkmal.
Nach Abschluss der zyklischen Phase beginnt die asynchrone Phase mit dem Start of Asynchronous (SoA)-Paket. In dieser Phase kann jeweils ein vom MN bestimmter CN nicht-zyklische Daten senden. Über spezielle Gateways lassen sich in der asynchronen Phase Daten aus einem normalen, nicht-deterministischen Netzwerk und dem Powerlinknetzwerk austauschen.

## Objektverzeichnis

In Anlehnung an den Feldbusstandard CANopen werden bei Ethernet Powerlink alle Kommunikationsobjekte und alle Anwenderobjekte in einem Objektverzeichnis (OV) zusammengefasst. Das Objektverzeichnis ist im Powerlink-Gerätemodell das Bindeglied zwischen der Anwendung und der Kommunikationseinheit. Jeder Eintrag im Objektverzeichnis steht für ein Objekt und wird durch einen 16-bittigen Index gekennzeichnet. Pro Index können wiederum bis zu 256 Subindizes enthalten sein. Dadurch können bis zu 65536 × 254 Nutzeinträge pro Gerät unterschieden werden. (Die Subindizes 0 und 255 können nicht frei verwendet werden.) In Profilen ist die Zuordnung von Kommunikations- und Geräteprofilobjekten zu einem jeweiligen Index genau definiert, und somit wird mit dem Objektverzeichnis eine eindeutige Schnittstelle zwischen der Anwendung und der Kommunikation nach außen definiert.
| Indexbereich | Verwendung |
| 0000 | nicht genutzt |
| 0001–009F | Datentypen (Sonderfall) |
| 00A0–0FFF | reserviert |
| 1000–1FFF | Kommunikationsprofil |
| 2000–5FFF | herstellerspezifischer Bereich |
| 6000–9FFF | bis zu acht standardisierte Geräteprofile |
| A000–BFFF | standardisierte Schnittstellenprofile |
| C000–FFFF | reserviert |

### Geräteprofile

Für eine Reihe von Geräteklassen wurden Geräteprofile definiert. Diese Geräteprofile definieren die Funktionalität und den Aufbau des Objektverzeichnisses für die jeweiligen Geräte. Durch die Nutzung von Geräten, welche einem bestimmten Profil entsprechen, wird eine höhere Unabhängigkeit von Geräteherstellern erreicht. Ethernet Powerlink verwendet dabei die Geräteprofile von CANopen. Transformationsregeln legen dabei fest, welche Objekte der CANopen-Geräteprofile bei Powerlink-Geräten verwendet werden. Dabei wird der Tatsache Rechnung getragen, dass bei Powerlink die Länge der Nutzdatenpakete (PDOs) größer ist.

### Electronic Datasheets

Für die Nutzung von Powerlink-Geräten sind elektronische Datenblätter nötig. Diese werden als XDD-Dateien (XML Device Description) abgelegt, die dem standardisierten XML-Format nach ISO 15745-4 entsprechen, und beschreiben sowohl die wichtigsten Parameter der Objekte des Objektverzeichnis eines Gerätes als auch weitere Parameter wie z. B. die unterstützten Kommunikationsdienste. Konfigurationstools können Datenblatt-Dateien einlesen und mit ihrer Hilfe mit dem jeweiligen Gerät kommunizieren und es gegebenenfalls parametrisieren.

## Standardisierung

Ethernet Powerlink wurde in die Normen IEC 61784-2, IEC 61158-3, IEC 61158-4, IEC 61158-5 und IEC 61158-6 aufgenommen. (Die Norm IEC 61784-2 spezifiziert Kommunikationsprofile, die Norm IEC 61158 Dienste und Protokolle von Feldbussen.)
In der asynchronen Phase lassen sich beliebige Ethernetframes verschicken. Daher können u. a. alle IP-basierten Protokolle auf höheren Schichten, wie TCP, UDP und darüber, im Ethernet-Powerlink-Netzwerk eingesetzt werden. Im Einzelnen unterstützt Ethernet Powerlink folgende Standards:
* IEEE 802.3 (Fast Ethernet)
* IP-basierte Protokolle (ICMP, UDP, TCP, …)
* Standard Geräteprofile: CANopen EN 50325-4 für die Automatisierung
* IEC 61588 für die Echtzeit Domänen Synchronisation (zukünftige Versionen)

## Diagnose

Es können Standard-Diagnose-Werkzeuge wie Wireshark (freie Software) oder Omnipeek (kommerziell) verwendet werden. Für gezieltere Diagnose sind entsprechende Werkzeuge auf der EPSG-Website aufgeführt.

## Übertragung sicherheitskritischer Daten

Für sicherheitskritische Anwendungen lässt sich Powerlink mit dem zusätzlichen, offenen Sicherheitsprotokoll openSAFETY (vormals Ethernet Powerlink Safety) erweitern. Die sicherheitskritischen Daten werden bei openSAFETY in zwei Subframes aufgeteilt und mit Prüfsummen gesichert. Die Sicherheitsfunktion des Netzwerks wird durch eine eigene Sicherheitssteuerung bereitgestellt. Sichere und nichtsichere Teilnehmer können in einem Netzwerk koexistieren und auch für die Sicherheitsfunktion nicht wesentliche Daten austauschen.
openSAFETY ist als Protokoll für den Application Layer implementiert. Als solches kann es auf einer Vielzahl von Industrial Ethernet Netztopologien implementiert werden. openSAFETY ist durch den TÜV Rheinland sowie den TÜV Süd geprüft, und für den Einsatz bei sicherheitskritischen Anwendungen gemäß IEC 61508 SIL 3 und Kategorie 4 der Euronorm 954-1 freigegeben.