Suchen

Mission Jitter Null: Auf dem Weg zum perfekt synchronen Netzwerk

| Autor / Redakteur: Sajedeh Majdi, Alfons Austerhoff, Marco Zander, Walter Zander, Prof. Dr. Christian Siemers * / Johann Wiesböck

Verteilte Systeme, die Echtzeitfähigkeit und Gleichzeitigkeit bieten, sind theoretisch machbar, aber praktisch schwer zu realisieren. Eine ausgereifte Lösung für diese Herausforderung zeigt folgender Beitrag.

Firmen zum Thema

Autor Prof. Dr. Christian Siemers hält am 16. November ein digitales Seminar zu Echtzeit, Rechtzeitigkeit und Gleichzeitigkeit im Rahmen des ASE-Kongress 2020
Autor Prof. Dr. Christian Siemers hält am 16. November ein digitales Seminar zu Echtzeit, Rechtzeitigkeit und Gleichzeitigkeit im Rahmen des ASE-Kongress 2020
(Bild: Christian Siemers)

Verteilte Systeme, Echtzeitfähigkeit und Gleichzeitigkeit sind Forderungen, die – gefühlt – so gar nicht zusammenpassen wollen. Doch immer wieder wird – auch in Forschungsansätzen – die Machbarkeit von solchen Systemen nachgewiesen, nur offenbar mit schwierig zu realisierenden Randbedingungen, schwer bedienbaren Entwicklungskonzepten usw. Bei Abgleich der Definition der einzelnen Begriffe und Projektion auf reale Netzwerke ist die Herausforderung der Erfüllung aller Forderungen dann auch offensichtlich.

Echtzeitfähigkeit und Gleichzeitigkeit: Die beiden offenbar zentralen Zeitbegriffe scheinen auf den ersten Blick ähnlich oder sogar identisch zu sein, sie sind es aber nicht. Echtzeitfähigkeit wird nach ISO/IEC 2382-36:2019 [IEC_2382] als der Betrieb eines Rechensystems verstanden, bei dem Programme zur Verarbeitung anfallender Daten ständig betriebsbereit sind, derart, dass die Verarbeitungsergebnisse innerhalb einer vorgegebenen Zeitspanne verfügbar sind. Die Daten können je nach Anwendungsfall nach einer zeitlich zufälligen Verteilung oder zu vorherbestimmten Zeitpunkten anfallen.

Auf ein Netzwerk und dessen Betrieb bezogen wird die Echtzeitfähigkeit zur Rechtzeitigkeit in der Übertragung von Daten. Damit ist die garantierte Einhaltung von maximalen Übertragungszeiten das zu erfüllende Kriterium, und in einem verteilten System werden beide Teilaspekte zu einem Systemverhalten zusammengezogen.

Gleichzeitigkeit hingegen vergleicht in einem verteilten System die Zeitpunkte der Reaktionen, insbesondere in Richtung der außenwirksamen Anteile (Steuerung von Aktoren) [KS19]. Gleichzeitigkeit definiert also ein Zeitintervall (Toleranz), um das sich zwei Aktivitäten maximal unterscheiden dürfen, um als gleichzeitig zu gelten. Damit sagt Gleichzeitigkeit nichts darüber aus, wann die Reaktion erfolgt, Hauptsache, sie erfolgt in den Systemen mit einem geringen zeitlichen Unterschied, während aus Echtzeitfähigkeit zumindest ein Gleichzeitigkeitsintervall ableitbar ist: Wenn alle Teile in einem verteilten System echtzeitfähig mit der gleichen maximalen Reaktionszeit, sind sie auch gleichzeitig mit der Toleranz dieser maximalen Reaktionszeit.

Nur: Welche Lösungsansätze sind verfügbar, wenn die Gleichzeitigkeits-Toleranz wesentlicher enger gefasst ist als die Echtzeitschranke?

Zeitverhalten in Netzwerkübertragungen

Die Antwort der klassischen Automatisierungstechnik ist einfach: Eine Zyklus-basiert arbeitende Steuerung wird gewählt, und schon ist alles nach außen hin gleichzeitig. Für eine verteilte Automatisierungstechnik hingegen bringt das keine Erkenntnis, hier muss man in die Netzwerktechnik hineinschauen, um weiterzukommen. Das führte dazu, dass viele Varianten an echtzeitfähigen Netzwerken, meist auf Ethernet-Basis entstanden und entstehen, als großer neuester Ansatz z.B. das Time-Sensitive Networks (TSN) von der IEEE [IEEE802.1Q].

Der hier vorgestellte und im Protokoll mit dem Namen ZanderLink in die High-Speed Steuerungen der Fa. Zander Aachen [Zander] integrierte Ansatz geht da einen anderen Weg, der anhand von Bild 1 kurz vorgestellt werden soll.

In Bild 1a) ist die Netzwerktopologie von Ethernet II dargestellt [Wiki_ETH], die Switch-basiert Netzwerkknoten miteinander verbindet. Diese Topologie ist allgemein bekannt und universell einsetzbar, wobei u.a. die Komponenten Network IC (NIC, Ethernet-Controller) und Switch Beiträge zur Übertragungszeit und vor allem zur Unbestimmtheit dieser Zeit beitragen (Ausnahme: spezialisierte Switches).

Bild 1: Netzwerktopologie: a) klassische Netzwerk mit Switch (z.B. Ethernet II), b) Bus-Architektur von ZanderLink. Grau hinterlegt sind Teile mit ggf. unbestimmter Ausführungszeit.
Bild 1: Netzwerktopologie: a) klassische Netzwerk mit Switch (z.B. Ethernet II), b) Bus-Architektur von ZanderLink. Grau hinterlegt sind Teile mit ggf. unbestimmter Ausführungszeit.
(Bild: Christian Siemers)

Bild 1b) zeigt die Topologie von ZanderLink, das als Bussystem basierend auf EIA-485 (RS485) [Wiki_485] aufgebaut ist. Damit bedarf es einer Zuteilungsstrategie, das Medium ist nur von einem Teilnehmer nutzbar, andererseits ist das Netzwerkinterface in jeder Node als Zustandsautomat in einem FPGA integriert und damit absolut deterministisch in den Ausführungszeiten. Das wird dadurch erreicht, dass jedes Netzwerkinterface im FPGA als eigenständige, echt parallel arbeitende Logik implementiert wird.

Das bedeutet, dass die Kommunikation durch andere im FPGA programmierte Logik, insbesondere der SPS-Applikation des Anwenders, zeitlich nicht beeinflusst wird. Das gilt auch umgekehrt: Durch die echt parallele Verarbeitung wird auch die SPS-Applikation durch die Netzwerkkommunikation bezüglich Timing und Reaktionszeiten nicht beeinflusst. Um es zu verdeutlichen: Der Ansatz ist aufgrund der Kombination Bussystem mit sofortiger Verteilung an alle mit direkt im FPGA implementiertem Netzinterface so zeitpräzise und schnell.

Definitionen ZanderLink

ZanderLink wurde als Ergänzung für Industrielle Kommunikation entwickelt, mit dem Ziel und der Marktforderung eine echtzeitfähige, effiziente, räumliche begrenzte Kommunikation für verteilte Automatisierungssysteme zu ermöglichen. Folgende Eckpunkte beschreiben die Netwerkarchitektur: Netzwerk:

  • Die Anzahl der Teilnehmer an einem ZanderLink wird zur Compilezeit definiert und ist damit während der Laufzeit konstant
  • Die Übertragung erfolgt via zweier EIA/TIA-485-Verbindungen, eine für Clock, eine für Daten, so dass die Datenübertragung immer Takt-synchron erfolgt.
  • Die Teilnehmer am ZanderLink haben eine klare Reihenfolge der Kommunikation. Die Kommunikation selbst erfolgt als Datenaustausch nach dem Publisher/Subscriber-Prinzip, d.h. ein Teilnehmer sendet die aktuellen Werte, die im Programm vorgesehen sind, alle empfangenden Teilnehmer bedienen sich bei Bedarf der Informationen.
  • Ein Teilnehmer gilt als Master, sofern er a) die Clockleitung setzt sowie b) die Kommunikation nach Power-On und Time-Out beginnt. Dies ist der Teilnehmer 0, nach dessen Sendung der Teilnehmer 1 (Slave_1) usw. sendet, bis wieder Teilnehmer 0 beginnt (Round-Robin-Zuteilung).

Bild 2: Rahmenformat ZanderLink: a) Erstes Byte, b) 2. bis vorletztes Byte, c) letztes Byte
Bild 2: Rahmenformat ZanderLink: a) Erstes Byte, b) 2. bis vorletztes Byte, c) letztes Byte
(Bild: Christian Siemers)

Bild 2 visualisiert das Datenformat in ZanderLink, hier für ein Netzwerk mit maximal 4 Teilnehmern. Auffallend ist dabei, dass 2 Startbits verwendet werden, hingegen kein Stoppbit pro Byte. Aus Effizienzgründen wird die Sendeadresse nur zu Beginn mitgeschickt, in Form zweier Bits, so dass nur das erste Byte mit insgesamt 12 Bit verschickt wird (2 Startbits, 2 Bit Adresse, 8 Datenbits), während das letzte Byte zwecks Erkennung eine Startbit-Kombination „01“ (und nicht „00“) hat, ein ACK-Bit für den letzten Empfang sowie eine CRC-5 (Cyclic Redundancy Checksum mit 5 Bit Übertragung) [Wiki_CRC] zwecks Fehlererkennung enthält – das letzte gesendete Bit (’1‘) gilt dann als Stoppbit für das gesamte Paket, danach schaltet der Sender für ein Bit aus, um den Umschaltvorgang zu ermöglichen.

ZanderLink ist als Funktionsblock verfügbar und kann in den Steuerungen der ZX-Serie der Firma Zander, beispielsweise in der ZX09A, D und E, zur Kommunikation genutzt werden.

Bild 3: ZanderLink zur Kopplung von FPGA-basierten High-Speed-Industriesteuerungen
Bild 3: ZanderLink zur Kopplung von FPGA-basierten High-Speed-Industriesteuerungen
(Bild: Zander Aachen)

Motivation für die Entwicklung eines neuen Protokolls ist im Zeitalter von Industrie 4.0 die Bereitstellung einer High-Speed Industrievernetzung bereitzustellen, mit dem Ziel maßgeschneidert vernetzte Digital- und Analog-Real-Time-Steuerungssysteme für Industrieanwendungen zu ermöglichen. Die ZX09A besitzt beispielsweise einen ADC mit 200 kSPS, die ZX09D/E 6 voll parallele ADC mit je 200 kSPS, die auf diese Weise verteilt werden können.

Werden beispielsweise zwei ZX09D/E mit einer weiteren ZX09D/E gekoppelt, dann können je ZX09D/E vier AD-Werte á 12 Bit in die zentrale ZX09D/E in 5 µs übertragen werden (siehe Bild 3), bei 6 AD-Werten werden 6,875 µs pro Übertragung benötigt. Dies ergibt dann eine Datenrate von 145 kSPS pro Kanal aus den per ZanderLink gekoppelten Steuerungen, 200 kSPS aus der lokalen, zusammen also 18 Kanäle mit je mindestens 145 kSPS.

Gleichzeitigkeit

ZanderLink wird aktuell mit 16 MBit/s betrieben, da die verwendeten Treiberbausteine für EIA/TIA-485 maximal 20 Mbit/s zulassen. Die hierfür notwendigen 16 MHz lassen sich aus dem 24-MHz-Oszillator auf einfache Weise generieren. Mit dieser Übertragungsrate hat man für einen Austausch von 32 Bit je Knoten und 3 Knoten am Netz folgende Roundtrip-Zeiten:

Bild 4: Übertragung von 32 Bit via ZanderLink mit 3 Netzwerkknoten: Pro Datenbyte 8 Bit + 2 Startbit, Pro Knoten zu Beginn 2 Bit (Sender-Kennung), Pro Knoten als letztes Byte 2 Startbit + 1 ACK-Bit + 5 CRC-Bit + 1 Stoppbit + 1 Umschaltbit, Pro Knoten ergibt dies dann 2 Bit (Kennung) + 4 x (8 + 2) Bit (Payload) + 10 Bit (letztes Byte) = 52 Bit
Bild 4: Übertragung von 32 Bit via ZanderLink mit 3 Netzwerkknoten: Pro Datenbyte 8 Bit + 2 Startbit, Pro Knoten zu Beginn 2 Bit (Sender-Kennung), Pro Knoten als letztes Byte 2 Startbit + 1 ACK-Bit + 5 CRC-Bit + 1 Stoppbit + 1 Umschaltbit, Pro Knoten ergibt dies dann 2 Bit (Kennung) + 4 x (8 + 2) Bit (Payload) + 10 Bit (letztes Byte) = 52 Bit
(Bild: Christian Siemers)

Für einen Roundtrip mit 3 Steuerungen werden demnach 156 Bit gesendet, was bei 16 MBit/s zu einer Gesamtzeit von 9,75 µs/Roundtrip führt. In einem solchen System ist es also möglich, trotz der moderaten 16 MBit/s innerhalb von 10 µs vollständig zu synchronisieren und damit in diesem Zeitraum zu reagieren (Anmerkung: Die Steuerungen benötigen dann zur Reaktion noch 1 µs Rechenzeit und 1 µs Verzögerung an den Ausgangstreibern, um die Reaktion an die gesteuerte Maschine zu übermitteln). Dies bedeutet, dass trotz eines verteilten Systems eine garantierte Reaktionszeit von 12 µs eingehalten wird.

Zur Erreichung der Gleichzeitigkeit können alle Steuerungen zum gleichen Zeitpunkt zur Übernahme der Werte in die Reaktionsroutine getriggert werden. Unter der Annahme, dass ein Zyklus für die Applikation in der Reihenfolge Master, Slave_1, Slave_2 abläuft, können alle Steuerungen auf das Ende der Transmission von Slave_2 per Trigger synchronisiert werden. Hierzu sei ein Blick in den Funktionsblock, der zur Integration von ZanderLink in die Applikationen dient, gestattet:

ZLINK3( OUTPUT_TO_LINK, INPUT_FROM_LINK_1, INPUT_FROM_LINK_2, ERROR_PACKET, NO_LINK_AVAIL, END_OF_TRANS, END_OF_REC_1, END_OF_REC_2, NUM_OF_IF, ZL_ADDRESS, SPEED, NUM_OF_BIT_IN_1, NUM_OF_BIT_IN_2, NUM_OF_BIT_OUT );

Die fett gedruckten (binären) Signale END_OF_TRANS zeigen das Ende der eigenen Transmission sowie END_OF_REC_1 und END_OF_REC_2 das jeweilige Ende des Empfangs von der Station 1 bzw. 2 an, jeweils durch positive Flanke. Die Zuordnung von Station 1|2 ist abhängig von der eigenen Stationsnummer, für den Master z.B. ist Station 1 == Slave_1, Station 2 == Slave_2, für Slave_1 gilt Station 1 == Master, Station 2 == Slave_2 usw.

Hierdurch kann die Bearbeitung von Slave_2 durch dessen Signal END_OF_TRANS, und bei Master und Slave_1 jeweils durch END_OF_REC_2 getriggert werden. Die Trigger sind alle nahezu gleichzeitig, mögliche Ursachen für minimale Differenzen sind, dass

  • die Phasengeschwindigkeit auf dem Kabel (Twisted Pair) im Minimum 200000 km/s beträgt, bei einer angenommenen maximalen Entfernung von 10 m das Signal also 50 ns benötigt,
  • die Oszillatoren auf den Steuerungen zwar mit identischer Taktrate, aber beliebiger Phasenverschiebung laufen – bei 24 MHz also eine maximale Latenz von 41,7 ns entsteht sowie
  • die Treiberbausteine ca. 120 ns (30 ns Output, 90 ns Input) an Verzögerung liefern.

Hieraus resultiert eine Toleranzsumme von 190 +/- 20 ns bei der Gleichzeitigkeit. Diese Toleranz ist während des Betriebs praktisch unverändert, zeigt also einen Jitter von Null, so dass ZanderLink als perfekt synchrones Netzwerk angesehen werden kann.

Webinar Echtzeit, Rechtzeitigkeit und Gleichzeitigkeit

In einem halbtägigen Onlineseminar erklärt Prof. Dr. Christian Siemers am 16. November das Thema ‚Zeitsynchronisation über Netzwerke als Grundlage von Gleichzeitigkeit‘ im Rahmen des ASE-Kongress 2020.

Zum Programm und zur Anmeldung

Wie geht es weiter?

Das perfekt synchrone Netzwerk ZanderLink ist so schnell, echtzeitfähig und mit sehr geringer Gleichzeitigkeits-Toleranz synchronisierend, weil es ein exklusives Netzwerk in Busarchitektur nutzt, jede Sendung an alle Empfänger übertragen wird und – besonders wichtig – die Netzwerkbedienung unmittelbar in einem FPGA in einem dedizierten Bereich erfolgt. Anders wären die Werte nicht erreichbar.

Die enge Kopplung per perfekt synchronem Netzwerk hat zurzeit noch eine Lücke: Die Fehlererkennung bzw. die Fehlerfolgenvermeidung bei Übertragungsfehlern. Nach dem bisherigen System wird ein Empfangsfehler erst bei der nächsten Transmission des entsprechenden Knotens mitgeteilt, was ggf. zu spät ist, und die Integration von expliziten ACK/NAK-Meldungen (Acknowledged/Not Acknowledged) würde das verteilte System doch erheblich ausbremsen.

Ein möglicher Lösungsansatz wäre ein Zeit-Slot nach dem letzten Byte, in dem der Sender bereits ausgeschaltet hat, die empfangenden Stationen aber ihren Fehler durch Setzen einer ‚0‘ auf der RS485-Leitung bekanntgeben. Dieses Verfahren ist nicht neu, z.B. bei CAN [Wiki_CAN] durchaus üblich, hier kann entweder nach allen Transmissionen oder nach einer – die als letzte Transmission eines Roundtrip definiert ist – einen entsprechenden NAK-Slot integriert werden.

Aufgrund der Laufzeiten in den Treibern und auf dem Kabel werden hier einige Bitzeiten notwendig sein, um eine sichere Fehlerübertragung zu gewährleisten. Die Integration sowie der Test dieser Fehlererkennung und Fehlerfolgenvermeidung sind Gegenstand der zukünftigen Arbeiten.

Literatur und Links zum Thema

[ASE-Kongress] Neues Onlineseminar von Christian Siemers am 16. November 2020: Echtzeit, Rechtzeitigkeit und Gleichzeitigkeit – Zeitsynchronisation über Netzwerke als Grundlage von Gleichzeitigkeit https://www.elektronikpraxis.vogel.de/redirect/965978/aHR0cDovL3d3dy5hc2Uta29uZ3Jlc3MuZGUvZGUvcHJvZ3JhbW0tMjAyMA/7a292da1db069178a9444cc7de554ece9578b6dea70540b8015fc807/article/

[IEC_2382] https://www.elektronikpraxis.vogel.de/redirect/965978/aHR0cHM6Ly93d3cuaXNvLm9yZy9zdGFuZGFyZC82NjY5Mi5odG1s/74f6c1c60f7cb364f2522d06f1b79f5c27686ac03ce5b1d6ae7da980/article/

[IEEE802.1Q] IEEE 802.1Q-2018 – IEEE Standard for Local and Metropolitan Area Networks Bridges and Bridged Networks. https://www.elektronikpraxis.vogel.de/redirect/965978/aHR0cHM6Ly9zdGFuZGFyZHMuaWVlZS5vcmcvc3RhbmRhcmQvODAyXzFRLTIwMTguaHRtbA/a0335a59300a33b6ca72490775ef2395bced5d31ce806b31b55985a7/article/

[KS19] Christian Kettler, Christian Siemers: „Gleichzeitigkeit durch Programmbefehle im Sourcecode erzeugen“, Automation Software Engineering Kongress 2019, Sindelfingen.

[Wiki_485] EIA-485

[Wiki_CAN] CAN bus

[Wiki_CRC] Zyklische Redundanzprüfung

[Wiki_ETH] Switch (Netzwerktechnik)

[Zander] High-Speed Industrie Steuerungen

* Hauptautor: Christian Siemers ist Professor für Automatisierungstechnik und Elektronik an der TU Clausthal sowie für Prozessortechnik an der FH Nordhausen tätig.

* Sajedeh Majdi studiert Informatik (Master) an der TU Clausthal und befasst sich im Rahmen eines Forschungsprojektes mit Gleichzeitigkeit in verteilten Systemen.

* Walter Zander und Marco Zander sind Geschäftsführer und Mitinhaber der Zander GmbH & Co. KG, Aachen.

* Alfons Austerhoff arbeitet in der Entwicklung bei Firma Zander und hat maßgeblich an der Entwicklung der FPGA-basierten Steuerungen der ZX-Familie mitgearbeitet.

(ID:46875687)