Skip to content

Instantly share code, notes, and snippets.

@e-cite
Created July 7, 2021 16:25
Show Gist options
  • Save e-cite/fd93cc38f5a7d7bc00926f0276ea0fec to your computer and use it in GitHub Desktop.
Save e-cite/fd93cc38f5a7d7bc00926f0276ea0fec to your computer and use it in GitHub Desktop.
Wiki: Industrial Ethernet

Industrial Ethernet

Grundlagen

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.

Echtzeit-Ethernet / Real-Time-Ethernet (RTE)

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-Slave

  • 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.

Verteilte Uhren / Zeitschlitzverfahren

  • 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.

Modifikationen des bestehenden Netzwerk-Stacks

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.

Ausgewählte Industrial Ethernet Standards

Nachfolgend werden typische Industrial Ethernet Implementierungen vorgestellt.

EtherNet/IP

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:

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

Quelle

Profinet

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:

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 3

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

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:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment