Industrial Ethernet dient dazu, den vorhandenen Ethernet-Standard um die Anforderungen aus der Prozessdatenkommunikation zu erweitern.
Es sind insbesondere folgende Anforderungen zu berücksichtigen:
- Industrielle Umgebungsbedingungen (Temperaturbereiche; Beständigkeit gegen Öl, Säuren, etc.; Vibrationen; EMV)
- Schutzarten (IPxx)
- Hutschienenmontage
- Spannungsversorgung, typ. 24 V DC
- Topologien (Häufig Ring, eher selten Stern bzw. Baum)
- Echtzeitanforderungen
Um diesen Anforderungen gerecht zu werden, sind neben Anpassungen der Hardware auch Anpassungen am Ethernet-Protokoll notwendig.
Im Gegensatz zum klassischen Ethernet können bei Industrial Ethernet Paketverluste oder unplanbare Verzögerungen nicht akzeptiert werden. Es besteht daher zwingend die Anforderung zur Echtzeitfähigkeit. Ferner sind häufig Zykluszeiten von weniger als 1 ms, bspw. für Motion-Control-Anwendungen erforderlich.
Grundsätzlich betrachtet können die Echzeit-Anforderungen wie bei den Bussystemen mit zwei Herangehensweisen erreicht werden. Dazu wird eine sog. Buszykluszeit definiert, die für alle Teilnehmer im Netzwerk gilt. Diese unterscheidet sich in folgende Phasen:
- Isochrone Phase (Deterministische Echtzeit-Kommunikation)
- Asynchrone Phase (Offene Kommunikation im klassischen Ethernet-Stil)
- Master sendet Signal zur Synchronisation.
- Master fordert Slaves auf, Nachrichten mit hoher Priorität (Echtzeit) zu senden.
- Master gibt die Erlaubnis an den Slave, asynchron Daten mit niedrigerer Priorität zu senden.
- Durch festgelegte Zeitschlitze ist jedem Netzwerkteilnehmer klar, welche Phase gerade stattfindet.
- In der isochronen Phase findet zeitgesteuerte Kommunikation statt.
- In der asynchronen Phase wird mittels CSMA-CD (Carrier Sense Multiple Access - Collision Detection) kommuniziert.
Um den Echtzeit-Anforderungen zu begegnen und die genannten Herangehensweisen zu implementieren, sind Modifikationen des typischen Netzwerk-Stacks (Ethernet-IP-TCP/UDP) erforderlich. Die Anspassungen können mittels folgender Verfahren geschehen: Quelle
- Modifikation in der Anwendungsschicht (OSI-Layer 5–7)
- Modifikationen in der Vermittlungs- (IP) und Transportschicht (TCP/UDP)(OSI-Layer 3-4)
- Modifikation in der Bitübertragungs- bzw. Sicherungsschicht (OSI-Layer 1–2)
Je weiter unten die Anpassungen erfolgen, desto besser kann die Echtzeit-Fähigkeit gewährleistet werden. Je größer die Veränderung dabei ist, desto eher kann die Kompatibilität zum klassischen Netzwerk-Stack verloren geht.
Die meisten Implementierungen sind dabei spezifisch für einen Hersteller oder ein Konglomerat von Herstellern. Eine herstellerübergreifende Kompatibilität wie beim klassischen Ethernet ist dabei nicht gegeben, wenngleich die meisten Industrial Ethernet Datenverkehre mit Standard-Hardware empfangen sowie bedingt auch gesendet werden können.
Nachfolgend werden typische Industrial Ethernet Implementierungen vorgestellt.
EtherNet/IP steht für "EtherNet Industrial Protocol". Die ursprüngliche Veröffentlichung war im März 2000.
EtherNet/IP unterstützt basiert auf IP/TCP-UDP und setzt dazu die folgenden Ports ein:
- 2222/udp
- 44818/tcp
Es werden DHCP sowie BootP unterstützt. EtherNet/IP bietet damit die Durchgängigkeit vom Office-Netzwerk in die industriellen Bereiche.
Die Echtzeitanforderungen gelten als "Soft-Realtime", wobei die die ausreichend schnelle Verteilung der Daten nur angestrebt aber nicht garantiert wird. Für die meisten industriellen Anwendungen ist das jedoch ausreichend.
Beispiel PCAPs:
- https://www.cloudshark.org/captures/76038eaa4a3b?filter=enip
- https://github.com/ITI/ICS-Security-Tools/blob/master/pcaps/Combined/Plant1.pcap
Suricata bietet einen Präprozessor für EtherNet/IP (ENIP) an: https://suricata.readthedocs.io/en/suricata-6.0.0/rules/intro.html#protocol
Diverse Regelsätze dazu können auf GitHub gefunden weden: https://github.com/digitalbond/Quickdraw-Suricata/blob/master/enip-rules
Profinet kann im übertragenen Sinne als paralleler Standard zu Profibus gesehen werden. Profinet nutzt TCP/IP und ist echtzeitfähig.
Die Anwendungen sind modular aufgebaut und können in vier Konformitätsklassen (Conformity Classes, CC) eingeteilt werden:
- Klasse A (CC-A):
- Controller und Devices sind zertifiziert, für Netzwerkkomponenten genügt ein Herstellerzertifikat zur Bescheinigung der Konformität, jedoch keine Zertifizierung
- Verkabelungen mittels Kupfer, LWL und WLAN
- Isochrone Echtzeitdaten werden via Ethernet übertragen, asynchroner Datenaustausch erfolgt mittels IP/UDP.
- Typischer Einsatz: Infrastrukturbauten, Tunnel, Gebäudeautomation
- Klasse B (CC-B):
- Alle Geräte sind zertifiziert
- Verkabelungen mittels Kupfer und LWL in geschirmter Ausführung
- Managed Switches mit Monitoring-Funktionalität und Netzwerkdiagnose (SNMP, LLDP mit Erweiterungen) sind zwingend erforderlich
- Typischer Einsatz: Fertigungsautomation, Prozessautomation
- Klasse C (CC-C):
- Wie Klasse B
- Verwendung des Isochronous Real-Time Protocols (IRT)
- Bandbreitenreservierung und präzise Zeitsynchronisation ermöglichen Positionieranwendungen
- Einführung von drei Phasen:
- Rot: Echtzeitdaten
- Orange: Zeitkritische Daten
- Grün: Übrige Ethernet Daten; mindestens 125 µs lang
- Typischer Einsatz: Motioncontrol
- Klasse D (CC-D):
- Wie Klasse C
- Im Unterschied zu den Klassen A & B findet jegliche Kommunikation auf der Ethernet-Schicht 2 statt
- Verwendung des "Precision Time Protocol (PTP)" zur Zeitsynchronisation
- Zwingend Verwendung von Time-Sensitive Networking (TSN) und Frame Preemption
- Um die genaue Umsetzung der Echzeit-Anforderungen zu verstehen, empfiehlt sich folgender Artikel: Time-Sensitive Networking
Mit Profinet können Zykluszeiten von bis zu 31,25 µs (ca. 32.000 mal pro Sekunde) erreicht werden.
Beispiel PCAPs:
- https://github.com/ITI/ICS-Security-Tools/blob/master/pcaps/profinet/profinet.pcap
- https://github.com/ITI/ICS-Security-Tools/blob/master/pcaps/Combined/Plant1.pcap
Für weitere Informationen und Grafiken zu Profinet wird auf folgende Präsentation verwiesen: https://indico.cern.ch/event/249680/attachments/431861/599339/02_Presentation_PROFINET.pdf
Sercos III ist ein häufig für Motion-Control eingesetzt Protokoll auf Basis von unverändertem Standard-Ethernet. Aufgrund der guten Eigenschaften in den Bereichen Echtzeit, Preformance und Störunempfindlichkeit gilt es als de-facto Standard für Motion-Control.
Mit Sercos 3 können für 8 Antriebe mit 8 Byte zyklisch übertragenen Daten Zykluszeiten von bis zu 31,25 µs (ca. 32.000 mal pro Sekunde) erreicht werden.
Weitere Eigenschaften:
- Master-Slave Aufbau
- Ermöglicht Standard-Ethernet Kommunikation in der freien, asynchronen Phase
- Dabei werden durch dei sog. Store-and-Forward Methode alle nicht-Sercos Daten zwischengespeichert, sofern diese während der isochronen Phase eingehen.
Beispiel PCAPs:
Der englische Wikipedia-Artikel bietet diverse weitere Informationen: https://en.wikipedia.org/wiki/SERCOS_III
EtherCAT ist ein Echtzeit-Ethernet der Firma Beckhoff. Die Technologie ist offengelegt, wird allerdings durch Patente und Lizenzen der Fa. Beckhoff geschützt. Master-Implementierungen sind kostenfrei, Slaves müssen lizensiert werden.
EtherCAT erreicht extrem niedrige Jitters von kleiner 1 µs.
Die wichtigste Eigenheit von EtherCAT ist, dass ein Ethernet-Frame nicht vollständig empfangen werden muss, um bearbeitet zu werden. In einem Slave werden die Daten ausgetauscht, während der Frame das Gerät durchläuft. Die folgende Animation stellt diesen Vorgang anschaulich dar: https://de.wikipedia.org/wiki/Datei:EthercatOperatingPrinciple.webm
EtherCAT erlaubt beliebige physische Topologien, welche aber immer in einer logischen Ringstruktur enden und keine Switches benötigen. Die Slaves öffnen und schließen dabei die Downstream-Ports, sofern dort kein weiterer Teilnehmer angeschlossen ist bzw. dieser einen Fehlerzustand meldet.
Weitere Eigenschaften:
- Für dieses Verfahren wird der typische Netzwerk-Stack mit TCP/IP nicht benötigt
- EtherCAT Master können aus Standard-Hardware ohne besondere Anforderungen gebaut werden
- EtherCAT Slaves benötigen dedizierte Controller, die die Frames beim Durchlauf bearbeiten können
- EtherCAT nutzt den IEEE 802.3 Standard ohne Modifikationen
- Ethernet over EtherCAT (EoE) erlaubt den völlig transparenten Einsatz von Standard-Ethernet Geräten. Dabei werden die Ethernet-Frames ähnlich PPPoE (DSL) durch das EtherCAT-Protokoll getunnelt.
Beispiel PCAPs: