Automatisierungstreff Zeitsynchronisierung in industriellem „switched“ Ethernet

Autor / Redakteur: Øyvind Holmeide,Tor Skeie / Reinhard Kluger

Die grundlegenden Prinzipien des SNTP/NTP-Internet-Zeitprotokolls und dessen Implementierung in einem Ethernet-Switch und einem von Ethernet aktivierten Endknoten zum Erhalt einer von der Netzwerklast unabhängigen Zeitgenauigkeit von unter einer Mikrosekunde (µs) ermöglichen den Ablauf industrieller Prozesse.

Anbieter zum Thema

In industriellen Automatisierungsanwendungen war der Einsatz von Ethernet-Netzwerken immer durch das Latenzzeit-Jitter bei der Übertragung der Datenpakete im Innern der Switches begrenzt. Je nach Netzwerklast, Größe des Datenpakets und Anzahl der Switches zwischen Server und Client erzeugt die Datenübertragung im Innern eines Ethernet-Switch ein Latenzzeit-Jitter von bis zu mehreren Millisekunden. Die zur Prozess-Automatisierung erforderliche präzise Datenauswertung wird hierdurch unmöglich gemacht (zum Beispiel zur Synchronisierung mehrerer Achsen in Montagemaschinen).

Die Antwort heißt: Hochpräzisions-Ethernet-Switches mit Zeitstempeln (time stamping). Hierdurch wird die zeitliche Zuordnung von Datenereignissen komplett und exakt gesichert. Komplizierte oder kritische industrielle Prozesse, in Echtzeit oder versetzt, können dann mit einem handelsüblichen SNTP-Ethernet-Protokoll verwaltet werden. Hierdurch werden bei industriellen Automatisierungsnetzwerken beträchtliche Kosteneinsparungen für Anwendungen wie Hochgeschwindigkeits-Datenerfassung, sehr schnelle mechanische Montagen oder Automatisierungen von Hoch- oder Mittelspannungs-Schaltstationen und Ähnlichem ermöglicht.

Bildergalerie

Die erzielbare Zeitgenauigkeit in einem auf „switched“ Ethernet basierenden lokalen Netzwerk, über das Daten zur zeitlichen Synchronisierung verteilt werden, hängt von zwei Faktoren ab:

  • den Zeitstempeln der ein- und ausgehenden Zeitpakete und
  • der variablen Netzwerk-Latenz.

Zu SNTP/NTP: Das SNTP- und das NTP-Protokoll sind gut gesicherte Lösungen zur Verteilung von Zeitdaten in einem IP-basierten Netzwerk. Sowohl die SNTP, als auch die NTP-Server verwenden 123 als ihre UDP-Portnummer. Der SNTP/NTP-Server enthält die Referenzuhr des Systems. Diese Uhr benutzt meist GPS, eine Funk-Zeitfrequenz oder eine freie interne Uhr als Zeitbasis.

Zu SNTP/NTP-Zeit-Aktualisierungen:

Eine SNTP/NTP-Server-Client-Implementierung basiert entweder auf einer einzeln (unicast) oder an mehrere Clients gleichzeitig (multicast) erfolgenden Übersendung der Zeitinformation.

Zu Einzeln übersendete Zeitaktualisierungen: Einzeln erfolgende Zeitaktualisierungen (unicast) werden durch eine vom Client an den Server gesendete Zeitanfrage eingeleitet, auf welche der Server mit Rücksendung des Zeitwerts antwortet. Der die Zeit anfordernde Client erzeugt einen Zeitstempel (time stamp) T0, welchen er in das Zeitanfragepaket stellt. Der Server kopiert den Zeitstempel von der Zeitanfrage in die Zeitantwort. Dieser Zeitstempel wird verwendet, um Zeitanfrage und Zeitantwort zu paaren. Der Client speichert zwei weitere, auf seiner lokalen Uhr basierende Zeitstempel, wobei es sich um die lokale Zeit T1 handelt, bei der die Zeitanfrage vom Client gesendet wird, und die lokale Zeit T4, bei der die Zeitantwort vom Client erhalten wird. Der Server erzeugt einen Zeitstempel T2 beim Erhalt der Zeitanfrage und einen Zeitstempel T3 beim Aussenden der Antwort. Die beiden letzteren Zeitstempel werden unter Bezugnahme auf die Uhr des Servers erzeugt, welche auch die Referenzuhr des Systems ist. Die Zeitstempel werden in die Zeitantwort gesetzt. Der Client kann dann die auf den vier Zeitstempeln basierenden Werte der Übertragungszeit (tpd) und des Offsets der lokalen Uhr (toffset) berechnen:

mit tpd = ((T4-T1) - (T3-T2))/2 und toffset = ((T2 - T1) + (T3 -T4))/2

An mehrere Clients gleichzeitig übersendete SNTP/NTP-Zeitaktualisierungen (Multicast) basieren auf Zeitantwort-Paketen, die in regelmäßigen Abständen an eine hierfür vorgesehne IP-Multicast-Zeitaktualisierungs-Gruppenadresse gesendet werden. Ein Multicast-Server erwartet keine Client-Anfragen. Ein Multicast-Client schließt sich der vordefinierten IP-Multicast-Gruppe an und hört auf Zeitantwort-Pakete.

Zu Zeitstempeln:

Die Zeitgenauigkeit hängt davon ab, an welcher Stelle das Zeitstempeln der ein- und ausgehenden Zeit-Datenpakete erfolgt, sowie von den Schwankungen der Netzwerk-Latenz.

Die meisten SNTP/NTP-Implementierungen führen alles Zeitstempeln in der Anwendungsschicht durch. Dies hat zur Folge, dass die bei den Clients erzielbare Zeitgenauigkeit unter der variablen Latenz beim Durchgang durch das Stack des UDP/IP-Protokolls leidet.

Trotz Verwendung von NTP- oder ähnlichen Filtermethoden liegt dann die typische Zeitgenauigkeit im Millisekundenbereich.

Der Server fügt den Zeitantwort-Paketen sowohl den Empfangs-Zeitstempel der Zeitanfrage T2 als auch den Sendezeitstempel der Zeitantwort T3 bei. Der Zeitstempel T3 wird somit in das Paket gestellt bevor dieses übersendet wird.

Zeitstempeln am Ethernet-Treiber:

Die Empfangszeitstempel, z.B. T2 und T4, werden in der Interrupt-Service-Routine (ISR) von Ethernet erstellt, wohingegen der Client-Sendezeitstempel T1 in der Ethernet-Senderoutine des Ethernet-Treibers erzeugt wird. Die Erstellung des Zeitstempels T3 ist etwas komplizierter, da dieser bereits in dem in der Anwendungsschicht erzeugten Antwort-Paket enthalten ist.

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Das Sendezeitstempeln kann sehr genau sein, wohingegen die entsprechenden Empfangszeitstempel unter Jitter in der Interrupt-Latenz leiden können, was von der RTOS-Implementierung und der Belastung der Rechnerplattform abhängt. Eine verwendbare alternative Software-Lösung zur Behebung dieses Problems besteht in der Implementierung eines von RTOS unabhängigen ISR, welches das Zeitstempeln der eingehenden Zeitdatenpakete erledigt.

Die Zeitgenauigkeit liegt typischerweise in der Größenordnung von einigen Zehntelmikrosekunden bis 100 Mikrosekunden.

Das Zeitstempeln kann im Ethernet-Controller in Hardware implementiert werden oder zum Beispiel in einem separaten FPGA erfolgen, das als medienunabhängige Schnittstelle (MII) zwischen Ethernet-Controller und Ethernet-PHY-Chip fungiert. Bei Durchführung des Zeitstempelns innerhalb der Hardware kann eine äußerst präzise zeitliche Synchronisierung erzielt werden. Die Genauigkeit bei den Zeit-Clients kann bei Verwendung dieser Methode und Vorhandensein einer Direktverbindung zwischen Server und Client eine Mikrosekunde unterschreiten.

Warum ist die Switch-Latenz problematisch?

Die meisten neueren Ethernet-Switch-Designs basieren auf einer „Store-and-forward“-Technologie. Dies heißt, ein Ethernet-Paket muss vollständig an einem Eingangs-Port empfangen werden, bevor es auf Bit-Fehler überprüft und an den entsprechenden Ausgangs-Port übermittelt werden kann. Die Latenz hängt somit von der Geschwindigkeit des Drop-Links und den Paketgrößen ab. So wird zum Beispiel ein Ethernet-Paket maximaler Größe (1522 Bytes) an einem 10-Mbps-Drop-Link auf Grund des „store-and-forward“-Mechanismus um 1,2 Millisekunden verzögert. Ein entsprechendes 100-Mbps-Drop-Link erzeugt eine Verzögerung von 122 Mikrosekunden. Zusätzliche Verzögerungen des Pakets können sich ergeben, wenn andere Pakete in der Ausgabe-Warteschlange auf ihre Übertragung am gleichen Ausgangs-Port warten. Die Switch-Latenz kann auch in Folge einer allgemeinen Switch-Belastung schwanken. NTP- oder ähnliche Filtertechniken können verwendet werden, um die Auswirkungen variabler Netzwerk-Latenz zu reduzieren.

Time-Server im Ethernet-Switch

Das Switch-Latenz-Problem kann durch Integrierung des Zeit-Servers im Ethernet-Switch behoben werden. Bei Verwendung dieser Implementierung befindet sich nur ein Drop-Link zwischen dem Server und dem Client und die Genauigkeit des Timings wird von der Netzwerklast unabhängig gemacht, wenn die Zeit-Pakete ihre Zeitstempel über Hardware erhalten. Eine Genauigkeit von unter einer Mikrosekunde kann beim Client der Zeitdaten erzielt werden, wenn dieser auch die Zeitstempel in Hardware erstellt.

Wie erzielt man einen präzisen T3-Zeitstempel?

Die SNTP-Zeitantwort enthält sowohl den Empfangszeitstempel des Zeitanfragepakets T2 als auch den Sendezeitstempel T3 des Zeitantwort-Pakets. Die tatsächliche Zeit muss deshalb beim Auftreffen des Zeitantwort-Pakets auf dem Drop-Link den Wert T3 haben. Dies bedeutet, dass der Server deterministischen Zugang zu den Netzmedien haben muss. Folgende Implementierungen können verwendet werden:

  • Die Flusskontrolleigenschaft des Ethernet-Switchs kann im Falle von Vollduplex-Verbindung verwendet werden um das Antwortpaket solange zurückzuhalten bis die Absolutzeit gleich dem in der Zeitantwort gegebenen T3-Zeitstempel ist.
  • Die Rückstau-Eigenschaften des Ethernet-Switch können im Falle einer Halbduplex-Verbindung verwendet werden um das Antwortpaket solange zurückzuhalten bis die Absolutzeit gleich dem in der Zeitantwort gegebenen T3-Zeitstempel ist.
  • Für beide Drop-Links (halb- und vollduplex) kann die Sendung eines Testpakets gegebener Länge verwendet werden. Das Zeitantwort-Paket ist dann unmittelbar nach dem Testpaket zu senden.

Øyvind Holmeide, Westermo Ontime, Tor Skeie,ABB Corporate Research

(ID:288792)