Versatile Automation Random Access Network
aus Wikipedia, der freien Enzyklopädie
Versatile Automation Random Access Network (VARAN) ist eine kabelgebundene Datennetztechnologie für lokale Datennetze (LANs) mit dem Haupteinsatzgebiet im Bereich der Automatisierungstechnik. Sie ermöglicht den Datenaustausch in Form von Datenrahmen zwischen allen in einem lokalen Netz (LAN) angeschlossenen Geräten (Steuerungen, Ein-/Ausgabegeräte, Antriebe, etc.).
VARAN umfasst die Festlegungen für Kabeltypen und Stecker, beschreibt die physikalische Signalisierung und legt Paketformate und Protokolle fest. Aus Sicht des OSI-Modells spezifiziert VARAN sowohl die Bitübertragungsschicht (OSI Layer 1) als auch die Sicherungsschicht (OSI Layer 2). VARAN ist ein Protokoll nach dem Prinzip Master-Slave der Firma Sigmatek. Die VARAN-BUS-NUTZERORGANISATION wird in Zukunft die Pflege des Protokolls übernehmen.
Inhaltsverzeichnis |
[Bearbeiten] Ziele
Der Aufbau des Systems gewährleistet laut Hersteller, dass Sensoren an den Bus angeschlossen werden können und keine Subbusse notwendig sind. Die Realisierung kann sowohl in FPGAs, als auch in ASICs erfolgen. Um den Betrieb mit geringem Softwareoverhead zu ermöglichen, ist der Bus in Hardware realisiert.
[Bearbeiten] Geschichte
Sigmatek hat im Jahr 1994 ein Echtzeit-Bussystem zur Verbindung der I/O-Module der damals eingeführten Produktreihe DIAS entwickelt (DIAS-BUS). Dieser Bus ermöglicht Zugriffe auf einzelne Analogwerte oder 16 Ein/Ausgänge in ca. 7 µs. Im Laufe der Zeit wurde dieses Bussystem in einige Servo-Verstärker integriert. Bis heute sind etwa 2 Millionen derartiger Busanschaltungen ausgeliefert. VARAN ist die Weiterentwicklung des DIAS-Busses auf Ethernet-Basis. Die Aktivitäten in Bezug auf Offenlegung und Standardisierung des Systems sind mit der Gründung am 19. Juli 2006 von der Firma Sigmatek auf die VARAN-Bus-Nutzerorganisation übergegangen.
[Bearbeiten] Physikalische Grundlagen
Der Bitübertragungsschicht ist kompatibel zur IEEE802.3.
- es werden CAT5-Leitungen verwendet, die maximale Distanz zwischen 2 Busteilnehmern beträgt 100 m
- die physikalische Übertragung erfolgt mit 125 Mbit/s mittels 4B/5B-Kodierung, womit sich ein Datenstrom von 100 Mbit/s ergibt
- die Leitungseinkoppelung erfolgt über Transformatoren (galvanische Trennung)
- es werden Ethernet-PHYs und Transformatoren verwendet
[Bearbeiten] Funktionsprinzip
[Bearbeiten] Grundlagen
Grundlage ist ein Verfahren, den gesamten I/O-Bereich als großes RAM zu betrachten, in dem der Busmanager (z. B. Steuerungs-CPU) beliebig Daten lesen oder schreiben kann. Jeder Client belegt in diesem Speicher seinen eigenen Adressbereich. Für den Austausch von Informationen sind daher nur zwei grundsätzliche Operationen notwendig.
1. „Schreibe auf Adresse x die folgenden Daten ...“
2. „Lese ab Adresse y folgende Anzahl Bytes ...“.
Dies entspricht den herkömmlichen Read- und Write-Befehlen eines Prozessors, allerdings mit der Erweiterung, dass die Anzahl der zu übertragenden Daten zwischen 1 und 128 Byte beliebig wählbar ist. Damit wird jeder Datentransfer immer vom Bus-Manager initiiert und sofort vom Client beantwortet.
Im Netzwerk werden alle Geräte mit einer 16-Bit-Adresse mit jeweils 16 Bit linearem Adressraum angesprochen. Dies ergibt die maximale Netzwerkgröße von 65.536 Teilnehmern.
Anfragen des Managers werden vom angesprochenen Busteilnehmer sofort beantwortet. Kollisionen, wie sie bisher in einem Standard-Ethernet-System vorkommen, können damit nicht entstehen.
Mit jedem neuen Protokollpaket sendet der Manager einen inkrementierenden Nachrichtenzähler mit. Antwortet der Client nicht innerhalb der vereinbarten Timeout-Zeit oder ist die Antwort fehlerhaft, wiederholt der Manager dieses Paket sofort, ohne jedoch den Nachrichtenzähler zu erhöhen. Der Client erkennt damit, ob es sich um eine Wiederholung handelt. Die Anzahl der Wiederholungen ist softwaremäßig einstellbar.
In der Hochlaufphase vergibt der VARAN-Manager die Adressen an die Busteilnehmer. Neben der automatischen Zuteilung eines Adressraums für ein I/O-Modul ist eine gezielte Adressenvorgabe durch den Einsatz optionaler Wahlschalter realisierbar. Die Fehlerwahrscheinlichkeit bei der Inbetriebnahme lässt sich somit minimieren und Busteilnehmer beliebig hinzufügen oder entfernen – auch im laufenden System. Dies ist ein Vorteil gegenüber anderen Echtzeit-Ethernet-Systemen, bei denen sich möglicherweise die Datenblöcke innerhalb eines Ethernet-Frames verschieben und demzufolge sowohl die Software-Planung, als auch der Austausch von Busteilnehmern mit erheblichem Aufwand verbunden sein können.
Der Ethernet-Querverkehr wird durch den Busmanager abgehandelt. Er zerlegt die Ethernet-Frames in kleine Pakete und schickt diese über den Bus an die entsprechende Zieladresse. An jedem VARAN-Knotenpunkt werden diese Teilpakete wieder zum originalen Ethernet-Frame zusammengesetzt und sodann dem entsprechenden Teilnehmer zur Verfügung gestellt (Tunneling). Die Übertragung der Ethernet-Pakete im Buszyklus findet während der Zeitintervalle mit geringerer Priorität statt. Dies ist zum Beispiel dann der Fall, wenn die Applikation mit der Bearbeitung der I/O-Daten beschäftigt ist. der grundsätzliche Protokollaufbau besteht aus
- SOF (1 Byte) – Start of Frame
- LNG (2 Byte) – Länge des Protokollinhaltes
- CMD (1 Byte) – Protokollkennung (z. B. read, write) und Nachrichenzähler
- befehlsabhängiger Inhalt (variabel)
- CRC (2 Byte) – 16-Bit CRC
- EOF (1 Byte) – End of Frame
Die Antwort weist grundsätzlich die gleiche Struktur auf. Der Protokolloverhead beträgt daher inklusive der Rückbestätigung 14 Bytes oder 1,12 µs.
[Bearbeiten] Befehle
Global Write: Mit einem Global Write werden alle Busteilnehmer angesprochen. Dieses Kommando dient unter anderem der Adressvergabe, dem globalen Reset der Busteilnehmer und der Aussendung des Sync-Befehls. Dieser dient der Synchronisierung aller Clients und wird am Anfang jedes Buszyklus gesendet.
Memory Read: Dieser Befehl liest Daten aus dem Speicher eines Busteilnehmers. Der Befehl enthält die Startadresse und die Anzahl der zu lesenden Bytes. Der Client sendet daraufhin die angeforderten Daten.
Memory Write: Dieser Befehl schreibt Daten in den Speicher eines Busteilnehmers. Der Befehl enthält die Startadresse, die Anzahl der zu schreibenden Bytes und die zu speichernden Daten. Der Client sendet nach Empfang der Daten eine Quittierung.
Memory Read/Write: Diese Befehl erlaubt das Lesen und Schreiben innerhalb eines einzigen Befehls. Das hat den Vorteil, dass der Protokolloverhead nur einmal gesendet werden muss, was die Zykluszeit weiter reduziert.
Control Read: Dieser Befehl erlaubt einen Lesezugriff auf den Kontrollbereich eines Busteilnehmers. Informationen im Kontrollbereich sind z. B. Kalibrierdaten oder das Typenschild eines Busteilnehmers.
Control Write:Schreibender Zugriff auf den Kontrollbereich eines Busteilnehmers
Control Read/Write: Vereinigung der beiden Befehle Control Read und Control Write in ein Protokollpaket mit dem Ziel, den Overhead zu verringern.
Foreign Package Request/Response: Mit diesem Kommando können fremde Pakete durch das VARAN-Bussystem transportiert werden. Insbesondere TCP/IP oder Pakete anderer Protokolle lassen sich mit diesem Befehl an die entsprechende Zielstation senden oder von dieser abholen.
Für die Inbetriebnahme, Diagnose- und Instandhaltungsarbeiten ist es möglich, ohne VARAN-Manager direkt über Standard-Ethernet (z. B. via Notebook) auf einen Client zuzugreifen. In diesem Fall werden die VARAN-Befehle in einen Standard-Ethernet-Frame verpackt.
[Bearbeiten] Hot Plug and Play
Während des Betriebes einer Maschine ist es möglich, Busteilnehmer vom Netzwerk zu trennen oder hinzuzufügen, ohne die laufende Echtzeit-Kommunikation zu beeinflussen. In der Applikationssoftware ist definierbar, ob ein Teilnehmer als zwingend erforderlich gelten soll. Nicht zwingend erforderliche Busteilnehmer, wie z. B. Bildschirme und Bedienterminals werden zur Laufzeit erkannt und sind nach der Identifikation sofort verwendbar. Bei Ausfall eines zwingend erforderlichen Moduls lässt sich die Applikation in einen sicheren Zustand bringen, indem alle I/O-Signale definiert in einen sicheren Grundzustand geschaltet werden.
[Bearbeiten] Der Busmanager
Die Koordination des gesamten Datenverkehrs übernimmt der Bus-Manager. Das Interface zur CPU ist als RAM ausgeführt, in dem Datenobjekte zur Kommunikation mit den Clients angelegt werden. Jedes Datenobjekt besteht aus einem Descriptorfeld und einem Datenfeld. Das Descriptorfeld enthält unter anderem die anzusprechende Adresse, die Anzahl der zu übertragenden Bytes, die Kennung für Read und Write und die zulässige Retry-Anzahl. Zusätzlich wird hier auch noch festgelegt, was im Fehlerfall geschehen soll. Das anschließende Datenfeld enthält die zu sendenden bzw. die empfangenen Daten. Der Bus-Manager verfügt über mehrere, nach Prioritäten gestufte Bereiche zur Aufnahme solcher Objekte.
Oberste Priorität haben Realtime (RT)-Objekte. Der Bus-Manager sendet am Beginn jedes Buszyklus einen SYNC-Befehl und arbeitet anschließend die Liste der RT-Objekte ab. Diese Abarbeitung kann durch IRQ-Objekte unterbrochen werden. Das sind Objekte in einer getrennten Liste, die für einen Datenaustausch in Zeitintervallen kürzer als die Buszykluszeit vorgesehen sind. So ist etwa bei einer Buszykluszeit von 1 Millisekunde ein Datenaustausch alle 100 Mikrosekunden für bestimmte Daten möglich. Nach Abarbeitung der RT-Objekte werden die Objekte in der Liste für zyklische, jedoch nicht zeitkritsche Datenübertragungen bearbeitet.
[Bearbeiten] Anschlusstechnik
[Bearbeiten] Standardstecker
Für Anwendungen außerhalb des industriellen Umfeldes kann ein Standard-Netzwerkstecker (RJ-45) verwendet werden.
[Bearbeiten] Industriestecker
Für Anwendungen im industriellen Umfeld wird derzeit ein dichter Stecker (Schutzart IP67) mit integrierter Spannungsversorgung (24 V / 1 A) entwickelt. Jeder Sensor kann damit über nur ein Kabel angeschlossen werden. Dieser Stecker enthält Schirmung, Zugentlastung, Verriegelung und Vibrationsschutz.
[Bearbeiten] Bustopologie
- Es können sowohl Stern- als auch Baum- und Linienstrukturen realisiert werden
- Die Adressierung der Teilnehmer kann sowohl mit, als auch ohne Adressschalter erfolgen
- Die Sternstruktur verkürzt die Signallaufzeiten und vereinfacht das Buslayout
[Bearbeiten] Performance
Wesentlich bei Echtzeit-Ethernet-Netzwerken sind die Aktualisierungszeiten für Busteilnehmer. Für den Drive beträgt dies bei VARAN zirka 5 Mikrosekunden bei je 16 Byte Sollwert- und Istwert-Daten. Für den Einsatz von Aktoren und Sensoren ergibt sich eine Aktualisierungszeit von rund 2 Mikrosekunden. Diese Zeiten erhöhen sich – wie bei allen Echtzeit-Ethernet-Systemen – um zirka 1 Mikrosekunde pro durchlaufenem Verteilerknoten. Eine Baumstruktur ist daher bei der Auslegung einer Linienstruktur vorzuziehen.
Die Verbindung der Busteilnehmer erfolgt über Standard-CAT-5-Leitungen. Gekreuzt oder nicht gekreuzt ist dabei egal, da der PHY-Baustein in jedem Busteilnehmer ein Auto-Crossover bereitstellt. Bei einer Übertragungsrate von 100 Mbit lassen sich beim VARAN-Bus (ohne Verwendung von Verstärkern) Leitungslängen bis 100 m für Echtzeitanwendungen realisieren.
-
Datenmenge Zykluszeit Kommentar 1 Byte 2.45 µs z. B. 8 digitale Eingänge 1 Byte 2.45 µs z. B. 8 digitale Ausgänge 2 Byte 2.59 µs z. B. 16 digitale Eingänge oder 1 analoger Messwert 2 Byte 2.59 µs z. B. 16 digitale Ausgänge oder 1 analoger Sollwert 16 Byte 4.55 µs z. B. 8 analoge Messwerte oder 1 Drive Istwerte 16 Byte 4.55 µs z. B. 8 analoge Messwerte oder 1 Drive Istwerte 128 Byte 20.23 µs z. B. 64 analoge Messwerte mit einer Auflösung von 16 Bit
[Bearbeiten] Safety
Aktuell wird an einer Safety-Integration in das VARAN-System gearbeitet. Dies ermöglicht die Übertragung von Not-Aus-Signalen sowie Abschaltvorgänge (z. B. durch Lichtvorhänge) über die Maschinenebene hinaus.
[Bearbeiten] Preis
Das VARAN-Protokoll ist komplett in Hardware gelöst. Für die Hardware der Busanschaltung ergeben sich dadurch Kosten von weniger als 10 €. Zusätzlich sind folgende Lizenzkosten an die Varan-Bus-Nutzerorganisation zu entrichten.
-
Lizenzen pro Jahr Kosten in € pro Lizenz 1
20,000
10
7,407
100
2,743
1.000
1,016
10.000
0,376
100.000
0,139
1.000.000
0,052
10.000.000
0,019
Die Zuteilung der Lizenzen bedingt die Veröffentlichung der Eigenschaften des Teilnehmers. Sollen diese nicht veröffentlicht werden, kann eine geheime Device - ID beantragt werden und es fallen die doppelten Lizenzkosten an.