Ihr Wegweiser für
industrielle Netzwerke

ControlNet-Protokoll

Die ControlNet-Spezifikation basiert auf dem klassischen OSI–Referenzmodell (ISO/IEC 7498). Controlnet besteht aus Physical Layer (1), Data Link Layer (2), Network (3), Transport Layer (4) und dem CIP Application Layer sowie den Netzwerkmanagement-Funktionen. Für den Datenaustausch dieser Datenpakete nutzt ControlNet das Producer/Consumer-Kommunikationsmodell. Anstelle individueller Quell- und Zieladressen enthalten die Datenpakete eine CID-Kennzeichnung (CID = Connection Identifier). Ein Producer (Erzeuger) gibt per Broadcast ein Datenpaket auf die Leitung und alle am Empfang interessierten Consumer (Verbaucher) können dieses Paket gleichzeitig aufnehmen, indem sie über den CID die entsprechenden Pakete herausfiltern und die enthaltenen Daten nutzen. Dieses Modell unterstützt praktisch alle bekannten Kommunikationsbeziehungen von Master/Slave über Multi-Master bis zu Peer-to-Peer.

Data Link Layer (2)

Für den Medienzugriff benutzt ControlNet ein Verfahren namens CTDMA (Concurrent Time Domain Multiple Access). Dieses wurde speziell im Hinblick auf die Performance von E/A-Daten oder Analogwerten sowie von zeitkritischen Verriegelungssignalen entworfen, die nicht unter der zusätzlichen Übertragung anderer Nachrichten für Programmier- oder Konfigurationsanwendungen leiden darf. Dabei wird ein Zeitscheibenverfahren zugrunde gelegt: Zyklische Übertragungsintervalle können zwischen 2 ms und 100 ms in der sogenannten NUT (Network Update Time) festgelegt werden. In jeder NUT wird zwischen zeitkritischen (zyklischen) und zeitunkritischen (azyklischen) Daten unterschieden.

Der Medienzugang wird den individuellen Knoten durch ein implizites Token-Verfahren innerhalb jedes Intervalls garantiert. Es gibt bei ControlNet keinen zentralen Bus-Scheduler. Die Busverwaltung erfolgt dezentral. Alle Teilnehmer werden fortlaufend synchronisiert und wissen daher zu jedem Zeitpunkt, wann sie an der Reihe sind und wer gerade sendet. Der Token-Umlauf setzt sich jeweils bis zur höchsten konfigurierten Adresse (SMAX, UMAX) fort und beginnt im nächsten NUT-Intervall wieder von vorn. Fällt ein Teilnehmer aus, so wartet der Knoten mit der nächst höheren Adresse (MAC ID) einen ”Time-Slot” ab und beginnt dann seinerseits mit dem Senden. Wird der ausgefallene Teilnehmer später wieder aktiv, reiht er sich automatisch wieder in den Sendeumlauf ein, ohne dass der Netzwerkbetrieb angehalten wird. Hat eine Station nichts zu senden, schickt sie einen "Null Frame".

In der ControlNet-Konfiguration wird die Übertragungsbandbreite für zeitkritische Daten im Voraus reserviert. Dieser zyklische Dienst (Scheduled Service) ist streng deterministisch und reproduzierbar. Die dafür reservierte Zeit richtet sich nach den zu erwartenden Applikationsanforderungen. Die übrige Zeit bis zum Ende der NUT wird für den Transport zeitunkritischer und azyklischer Daten benutzt (Unscheduled Service). Anders als im zyklischen Dienst ist dieses Zeitfenster nicht bestimmten Knoten fest zugewiesen, sondern wird je nach Bedarf von beliebigen Teilnehmern genutzt. Das bedeutet, dass die Datenübertragung im azyklischen Dienst keinerlei Auswirkung auf die zyklischen Daten hat und hinsichtlich der maximalen Übertragungszeit vorhersagbar bleibt. Zum Ende einer NUT werden im ”Guardband-Slot” Synchronisationsdaten übermittelt.

Network (3) und Transport Layer (4)

Bevor Daten übertragen werden, muss bei ControlNet eine virtuelle Verbindung zwischen zwei Applikationen aufgebaut werden. Eine solche virtuelle Verbindung ist über die beiden Endpunkte für den Datentransfer definiert. Spezielle Mechanismen stellen den Verbindungsaufbau über besondere (verbindungslose) Transfers sicher. Es gibt unterschiedliche Transportdienste für diese Verbindungen. Sie können applikationsabhängig und vielseitig kombiniert werden. Verbindungen können entweder "Multicast" oder "Peer-to-Peer" sein. Für die Initialisierung der Datenübertragung kann zwischen "zyklisch zeitgesteuert", "ereignisgesteuert" oder "applikationsgesteuert" gewählt werden. Unterschiedliche Transportklassen gewährleisten Duplikat-Erkennung, Bestätigung, Verifizierung und Fragmentierung (für lange Nachrichten).

Application-Layer (7)

ControlNet Application Layer verwendet das von DeviceNet und EtherNet/IP bekannte CIP (Common Industrial Protocol). Das CIP-Protokoll ist objektorientiert. Sowohl die Kommunikations- als auch die Applikationselemente werden als "Objekte" verstanden. Spezielle "ControlNet Messages" können Dienste anfordern, die auf korrespondierende Objektinstanzen (oder deren Attribute) angewendet werden. Dieses Schema verbessert den expliziten Zugriff auf alle Konfigurations-, Status- und Runtime-Variablen in einem Netzknoten. Gleichzeitig erlauben implizite E/A-Verbindungen einen direkten und besonders effizienten Austausch von E/A-Daten ohne zusätzliche Zwischenverarbeitung.