Echtzeit-Geschwindigkeit von IO-Link

IO-Link, das Ende 2018 mehr als 11 Mio. installierte Knoten erreicht hat und ein stetiges jährliches Wachstum von 40 % [1] aufweist, ist auf dem besten Weg, der dominierende Industriestandard für die Feldkommunikation in der Fabrik und darüber hinaus zu werden. Dennoch hört man oft, dass IO-Link trotz seiner vielen Vorteile zu langsam ist, wenn es um die reine Zykluszeit geht. Diese Kritik bedarf einer genaueren Analyse.

Einführung in die IO-Link Version 1.1.3

In diesem Artikel untersuchen wir die Zykluszeit von IO-Link, die auf der Version 1.1.3 basiert. IO-Link, siehe [2]. Dieses Protokoll ist für die Echtzeitkommunikation konzipiert. Daher wird garantiert, dass ein Teil des Datenstroms innerhalb eines bestimmten Zeitrahmens, der „Zykluszeit“, ankommt. Diese Daten werden als „Prozessdaten“ (PD) bezeichnet. Neben den zyklischen Daten sieht das Protokoll auch die Möglichkeit vor, sogenannte „On-Demand-Daten“ (OD) zu übertragen. Letztere werden azyklisch und ohne jede zeitliche Regelmäßigkeit ausgetauscht. Sie enthalten typischerweise Konfigurations-, Wartungs- und Ereignisinformationen. Sie alle sind für den Benutzer nicht zeitkritisch (sollen es auch nicht sein). Darüber hinaus benötigt IO-Link wie jedes Kommunikationsprotokoll eine geringe Menge an Overhead-Daten, um den Kommunikationskanal zu verwalten. Da die Geschwindigkeit, oder besser gesagt, die Zykluszeit nur für PD kritisch ist, betrachten wir nur die Menge der PD-übertragenen Daten pro Sekunde als unsere Echtzeit-Bandbreite, ausgedrückt in kbyte/s (d.h. PD-Menge/Sekunde).

Basis IO-Link Kommunikationszyklus

IO-Link-Geräte agieren nicht eigenständig.  Das bedeutet, dass ein Gerät, das eine Nachricht senden will, immer eine Anfrage vom Master benötigt. Der grundlegende Kommunikationszyklus, siehe Bild 1, besteht also aus:

  1. einem Master Request,
  2. eine Wartezeit um die Kommunikationsrichtung umzuschalten,
  3. der Antwort des Geräts und,
  4. eine zweite Wartezeit um die Kommunikationsrichtung wieder umzuschalten.
Bild 1: Basis IO-Link Zyklus

Für die Berechnung der verdrahteten IO-Link-Zykluszeit gehen wir von einem „Worst-Case“-Szenario aus, was bedeutet, dass wir jedes Mal, wenn die Norm Wertebereiche angibt, den größten Wert genommen haben. Wie in Bild 2 zu sehen ist, beträgt die Zeit zwischen den UART-Frames der Nachricht des Masters und des Geräts 1 Tbit * und 3 Tbit.  Die für den Wechsel der Kommunikationsrichtung erforderliche Wartezeit kann bis zu 10 Tbit betragen.

*Hinweis: Tbit ist die Zeit die benötigt wird um ein einzelnes Bit zu übertragen.

Bild 2: Struktur der „Master message“ und „Device message“ bei UART frame building blocks. Modified from [2]

Der Wert für Tbit ist durch die entsprechende Kommunikationsgeschwindigkeit des IO-Link-Geräts gegeben. Der Standard bietet 3 Auswahlmöglichkeiten für die serielle Kommunikationsgeschwindigkeit „COM1“, „COM2“ und „COM3“, mit jeweils 4,8 kbit/s, 38,4 kbit/s und 230,4 kbit/s.

COM type Serial speed [kbit/s] Tbit [μs]
COM1 4.8 208.3
COM2 38.4 26
COM3 230.4 4.3

Jeder UART-Frame enthält 8 Bit Nutzdaten und 3 Bit Overhead (START, PARITY und STOP). Somit erfordert die Übertragung von 8 Bits tatsächlich 11 Tbit Zeit.

Bild 3: Struktur eines UART frame. Source [2]

IO-Link Message sequence types

Die Länge der einzelnen Geräte- und Masternachrichten wird erwartungsgemäß durch die Wahl des Nachrichtensequenztyps beeinflusst. In diesem Artikel werden wir den Typ 1_x (siehe Bild 4) nicht verwenden, da seine Verwendung auf IO-Link 1.0 Geräte beschränkt ist. IO-Link 1.0 wird für neue Designs nicht mehr empfohlen.

Für die Echtzeit-Bandbreitenberechnung überträgt PD, in Abbildung 4 grün dargestellt, die Informationen. Dennoch beeinflusst die Anzahl der OD die Länge der Gesamtübertragung und muss daher ebenfalls berücksichtigt werden.  Für die Typen 2_1 bis 2_6 ist die Anzahl der PD- und OD-Oktetts* festgelegt. Beim Typ 2_V kann die Anzahl der PD- und OD-Oktetts zwischen 1 und 32 Oktett für PD und zwischen 1, 2, 8 und 32 Oktett für OD konfiguriert werden.

*Hinweis: Oktett = 8 Bits, diese Nomenklatur wird in der IO-Link-Norm verwendet.

Bild 4: M-Sequence types. MC: M-Sequence Control, CKT: Checksum type, PD: Process data, OD: On-demand data, CKS: Check-sum status. Source [2]

Unter Berücksichtigung aller oben genannten Faktoren kann man die Echtzeit-Bandbreite gegen die Zykluszeit auftragen. Die Summe der Zeitabschnitte (1)+(2)+(3)+(4), die in Bild 2 dargestellt sind, ergibt die Länge eines Zyklus. Die Echtzeit-Bandbreite ergibt sich also aus der Division der Länge der PD in kBit durch die Zykluszeit in Sekunden. Das Ergebnis wird dann in Bild 5 in kbit/s dargestellt.

Die größte Echtzeit-Datenübertragung wird zum Beispiel mit COM 3 mit 1 Oktett OD und 32 Oktetten PD erreicht. Aus Bild 5 geht also eine Zykluszeit von 2,24 ms hervor. Also 32*8 bit/2,24 ms = 114,3 kbit/s 

Bild 5: IO-Link Echtzeit Datenübertragungsrate.

Zusammenfassung

Wie erwartet bietet COM3 (dunkelblau in Bild 5) sowohl die beste Leistung in Bezug auf die Echtzeit-Bandbreite als auch auf die Zykluszeit.

Die schnellste Zykluszeit wird mit dem Typ 2_V mit 1 Oktett PD und 1 Oktett OD erreicht. Typ 2_1 und Typ 2_3 bieten ebenfalls die gleiche Leistung.

Die beste Echtzeit-Bandbreite wird mit Typ 2_V mit 32 Oktett PD und 1 Oktett OD erreicht.

Ein weiterer bemerkenswerter Punkt ist, dass IO-Link selbst bei Verwendung von OD mit 8 Oktetten und PD mit 4 Oktetten immer noch eine Zykluszeit von unter einer Millisekunde mit COM3 erreicht.

Zusammenfassend lässt sich sagen, dass IO-Link problemlos Kommunikationszyklen von unter einer Millisekunde erreichen kann, vorausgesetzt, der Geräteentwickler wählt das richtige Verhältnis zwischen PD und OD.  

 

Originalpost von Pascal Gaggero

Referenzen

[1] www.io-link.com, 15.05.2019
[2] IO-Link Interface and System, v 1.1.3, June 2019

0 0 votes
Article Rating
Abonnieren
Benachrichtige mich bei
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
%d bloggers like this: