Beckhoff Netzwerk Variablen - Einstellungen
Mit den Beckhoff Netzwerkvariablen (NWV) können zyklisch oder azyklisch Daten zwischen Windows-basierten PC verschickt werden. In einem Teilnehmer als Publisher (Sender) deklariert, wird eine solche Netzwerkvariable auf der Gegenseite von einem mit dem gleichen Typ deklarierten Subscriber (Abonnent) empfangen. Dieser Datenverkehr ist dem Namen nach netzwerkbasiert und setzt in seiner Konfiguration direkt auf den verwendeten Protokollen auf.
Zur Auswahl stehen dabei:
- MAC: Es wird ein ISO-Layer-2-Frame mit einer Absender- und Empfänger-MAC-Adresse verschickt, Ethertype 0x0806. Ein IP-Teil mit Ziel-IP-Adresse (z.B. 192.168.0.1) ist nicht enthalten. Deshalb kann das Telegramm über einen Switch, normalerweise aber nicht über einen Router weiterverarbeitet werden.
MAC bedeutet Media Access Control und steht hier für die (eindeutige) Hardware-Adresse, die jedes Ethernet-Gerät ab Herstellung hat. Der Ethernet-Port eines Beckhoff-PC könnte z.B. die MAC-Kennung 00:01:05:34:05.84 haben - "00:01:05" ist die Beckhoff-Kennung, der Rest bei der Herstellung gewählt. Über die Quell/Source-MAC und die Ziel/Destination-MAC-Adresse ist der Weg eines jeden Ethernet-Telegramm zwischen 2 Ethernet-Kabelenden bestimmt.
Das Ethernet-Telegramm wird durch den Ethertype x88A4 als Beckhoff Echtzeit-Ethernet identifiziert - als "Echtzeit Ethernet-Telegramm" (RT-Ethernet) wird es am regulären Windows-TCP-Stack vorbeigeschleust und bevorzugt d.h. "sofort" über den angegebenen Ethernetport des PC versendet.
Es ist einstellbar, ob das gesendete Telegramm von allen (Broadcast), vielen (Multicast) oder einem einzigen Subscriber (Unicast) empfangen werden soll. - UDP/IP: Der Empfänger wird über einen zusätzlichen IP-Header im Ethernet-Telegramm identifiziert, der UDP-Ethernet-Frame kann damit über einen Router weiterverarbeitet werden.
Auch hier stehen Broad-, Multi- und Unicast zur Verfügung und das Ethernet-Telegramm wird durch den Ethertype 0x88A4 als Beckhoff Echtzeit-Ethernet identifiziert und als RT-Protokoll im TwinCAT-PC behandelt.
Als verbindungsloses Protokoll verlangt UDP im Gegensatz zu TCP keine Empfangsbestätigung der Nachricht, der Publisher weiß also nicht ob der Subscriber die Nachricht empfangen hat. Deshalb wird zur Gegenstellenüberwachung von TwinCAT das ARP-Protokoll eingesetzt.
Über diese Adressierungsarten kommt das Telegramm mit den Prozessdaten beim Empfängergerät (Netzwerkport) an. Im Ethernet-Gerät/TwinCAT wird die Zuordnung mehrerer transportierter Prozessdaten dann über eine "Variable ID" hergestellt
Alle zu verwendenden Netzwerkvariablen müssen vor der Benutzung im System Manager deklariert werden.
Folgende Eingriffsmöglichkeiten stehen dann während des Betriebs zur Verfügung:
- das Versenden einer konfigurierten Netzwerkvariable kann dynamisch gesperrt werden
- die Ziel-IP oder Ziel-MAC kann dynamisch verändert werden
- Die Variablen-ID "Variable ID" kann dynamisch verändert werden
- der NWV-Inhalt kann verändert werden, nicht aber der Umfang (Bitgröße)
Diagnosevariablen auf Publisher- und Subscriberseite geben über die Verbindungsqualität Auskunft.
Bei der Verwendung von Netzwerkvariablen sind die zeitlichen Randbedingungen der verwendeten Netzwerkarchitektur zu berücksichtigen: Geswitcht (MAC-Adressierung) können rd. 10 ms Kommunikationszyklus und darunter erreicht werden, geroutet (IP-Adressierung) fallweise auch einige 100 ms.
Diagnosevariable "Quality" Wenn die verarbeitenden Tasks mit unterschiedlichen Zykluszeiten arbeiten oder vom Anwender der DataExchangeDivider verändert wird, ist das bei der Auswertung der Diagnosevariablen entsprechend zu berücksichtigen - ein langsamer Publisher (z.B. 100 ms) führt bei einem schnellen Subscriber (z.B. 10 ms) zu einer schlechten Verbindungsqualität im Sinne der Diagnosevariable "Quality". Ebenso ist zu berücksichtigen, wenn das Versenden eines Publishers dynamisch zeitweise gesperrt wird. Der Subscriber registriert dann eine schlechte Quality. |
Diagnosevariable "CycleIndex" Beachten Sie unteren Hinweise um zu entscheiden, ob die Variable CycleIndex von Ihnen bedient werden muss. |
Grundlagen zu Beckhoff Netzwerkvariablen
- Quality:
Zeit in [100 µs], um die diese NWV zu spät beim Publisher ankam.
Bezogener Ankunftsort:
Eingangsprozessabbild des TwinCAT-Systems
Bezogene Ankunftszeit:
Zeitpunkt, wenn im nächsten Zyklus das Eingangsabbild geladen wird
Die angezeigte "Verspätung" wird deshalb so fein skaliert ermittelt, weil die NWV-Verwaltung zyklusunabhängig direkt vom IO-Treiber verwaltet wird. Ungeachtet dessen werden die Daten einer um einige Prozent der Zykluszeit zu spät angekommene NWV erst im nächsten Task-Zyklus mit dem Lesen des Eingangsprozessabbildes berücksichtigt.
EL6601/EL6614: Auch bei Verwendung der EL66xx ist der Ankunftszeitpunkt der NWV dann, wenn die Daten im Eingangsprozessabbild des RT-Gerätes vorliegen, nicht wenn sie bei der EL66xx oder im Eingangsabbild des EtherCAT-Gerätes ankommen. -
- Variable ID
Die Variablen-ID (16 Bit) dient zur globalen Identifizierung der einzelnen Prozessdaten - deshalb darf innerhalb eines TwinCAT-Devices eine ID in der Gruppe der Publisher oder Subscriber nicht mehrmals verwendet werden, s. Abb. 2: Publisher 1 und 2 auf PC1 müssen unterschiedliche ID (10 und 8) haben, in Publisher 2 und Subscriber 1 darf aber jeweils eine ID = 8 verwendet werden.
Um eine eindeutige Zuordnung zu erreichen, wird empfohlen, für jede Datenübertragung zwischen zusammenhängenden PCs unterschiedliche IDs zu verwenden. Begründung: in Abb. 2 erhält PC2/Subscriber2 nicht nur die vorgesehene ID=8-Variable von PC1/Publisher2, sondern, da als Broadcast (!) gesendet, auch die NWV von PC3/Publisher1. Eine Unterscheidung ist in PC2 dann nicht mehr möglich! - Cycle Index
Der 16 Bit Cycle Index ist ein Zähler, der vom Publisher mit den Daten mitgesendet wird. Üblicherweise wird er mit jeder Sendung inkrementiert und lässt so einen Rückschluss auf eine ununterbrochene Übertragung zu. Er ist auf der Subscriber-Seite als CycleIndex auslesbar. Dabei unterscheidet sich sein Auftreten je nach Publisher-Plattform:
- Publisher auf einem PC: die Variable CycleIndex ist nicht sichtbar und wird automatisch zyklisch vom System Manager inkrementiert
- Publisher auf einer EL66xx: die Variable CycleIndex ist sichtbar und muss vom Anwender inkrementiert/bedient werden, damit sie auf der Subscriber-Seite ungleich 0 ist.
Datendarstellung auf unterschiedlichen Plattformen
Bitte beachten Sie, dass einfache wie komplexe Daten (WORD, ARRAYs, REAL, STRING, benutzerdefinierte Strukturen) auf unterschiedlichen Plattformen intern unterschiedlich dargestellt werden! |
x86-Plattformen arbeiten im Byte-Alignment, andere (ARM) im 2- oder 4-Byte-Alignment.
Das bedeutet, wenn eine komplexe Struktur in je einem x86/PC-PLC-Projekt und einem ARM-PLC-Projekt angelegt wird, sie jeweils eine andere effektive Größe und einen anderen inneren Aufbau haben kann.
Empfehlung zum Aufbau von Strukturen, gleichlautend auf beiden Endgeräten
- Zuerst alle 4-Byte-Variablen (müssen auf einer durch 4 teilbaren Adresse liegen)
- dann alle 2-Byte-Variablen (müssen auf einer durch 2 teilbaren Adresse liegen)
- dann alle 1-Byte-Variablen
Weitere Empfehlung
- wenn STRING(x) verwendet wird, dann gilt das "EndOfString"-Nul ebenfalls als Zeichen; somit muss x+1 durch 4 teilbar sein
- obige Regeln gelten auch für Unter-Strukturen.
Bitte beachten Sie dazu die Hinweise im Infosys, Abschnitt Struktur.
Verwendung von Busklemmen-Controllern (BCxxxx, BXxxxx)
Da auf Busklemmen-Controllern (BCxxxx, BXxxxx) die Darstellung von Fließkommazahlen (REAL) von der im x86 abweicht, können diese nicht übertragen werden. Für vorzeichenbehaftete Werte können z.B. "SINT" verwendet werden.
Einstellungen im System Manager
Erscheinungsbild der Variablen Je nach verwendeter Plattform (PC oder EL66xx) stellen sich Publisher/Subscriber unterschiedlich dar. Ein Publisher/Subscriber kann angelegt werden
|
Folgende Einstellungen können im Beckhoff System Manager TwinCAT 2.10 build 1328 vorgenommen werden:
Publisher, Box
Einstellungen zum RT-Ethernet:
- MAC-Broadcast: Sendung geht an alle Netzwerkteilnehmer, Destination-MAC FF:FF:FF:FF:FF:FF.
- Multicast: Eine Destination-MAC-Adresse wird dann zu einer Multicast-Adresse, wenn das erste Bit im ersten Byte der MAC gesetzt ist, das sog. Gruppenbit. Mit der Beckhoff-Kennung "00 01 05" wird so in Abb. 3 die Default-Ziel-Adresse "01 01 05 04 00 00" gebildet.
Für den allgemeinen Multicast-Einsatz ist der MAC-Bereich 01:00:5E:00:00:00 bis 01:00:5E:FF:FF:FF vorgesehen - dabei sind die ersten 3 Byte von der IEEE fest definiert, die hinteren 3 Byte leiten sich aus dem unteren Teil der IP-Adresse des Ziel-PC ab. Die dabei entstehende Ziel-MAC ist also im Netzwerk nie physikalisch vorhanden, sondern die Ziel-Netzwerkkarte erkennt solchermaßen gebildete Ethernet-Frames als zu ihr gesendete Multicast-Frames, obwohl der Ethernet-Port selbst eine andere, eindeutige MAC-Adresse haben kann. Da auch noch andere Regeln auf die Bildung von Multicast-MAC/IP-Adressen einwirken, sei im Weiteren auf die entsprechende Literatur verwiesen. - Unicast: entweder direkte Eingabe der Ziel-MAC oder über die AMS-Net-ID des Ziel-Gerätes, z.B. 123.456.123.456.1.1 - dann muss diese Route aber im lokalen AMS-Router eingetragen sein (Rechtsklick TwinCAT Icon in der Taskleiste --> Eigenschaften --> AMS Router)
Verwendung von Broadcast und Multicast Netzwerkvariablen, die als Broad- oder Multicast auf MAC- oder IP-Ebene verschickt werden, erzeugen je nach Zykluszeit eine hohe Netzwerklast, da sie ins gesamte anhängende Netz multipliziert werden! Einfache Netzwerkgeräte wie z.B. Drucker können dann abstürzen, bei kurzen Zykluszeiten kann auch der gesamte Netzwerkverkehr blockiert werden! Die Verwendung der Unicast-Adressierung wird dringend empfohlen, auch unter Berücksichtigung der o.a. Variablenidentifizierung. |
Weitere Einstellungen:
- Data Exchange: verwendete Taskzykluszeit * Divider ist der Rhythmus, in dem diese Netzwerkvariable versendet wird. (nicht bei EL66xx)
- VLAN Support: in Verbindung mit managebaren Switchen kann dem hier parametrierten Ethernet-Frame durch das VLAN-Tagging (Virtual Local Area Network) eine feste Route vorgegeben werden
Einstellungen zum UDP/IP - es wird das Adressierungsverfahren der IP-Vermittlungsschicht mit IP-Adressen benutzt, UDP ist ein verbindungsloses Protokoll ohne Rückmeldung.
- Broadcast: Versand an alle Teilnehmer mit Destination-IP(v4) 255.255.255.255
- Multicast: die Ziel-IP ist anzugeben, s. Anmerkungen zum MAC-Multicast
- Unicast: das Zielgerät (z.B: 192.168.0.1) angeben, dabei auf Erreichbarkeit durch die SubNetz-Maske achten
Verwendung von Broadcast und Multicast Netzwerkvariablen, die als Broad- oder Multicast auf MAC- oder IP-Ebene verschickt werden, erzeugen je nach Zykluszeit eine hohe Netzwerklast, da sie ins gesamte anhängende Netz multipliziert werden! Einfache Netzwerkgeräte wie z.B. Drucker können dann abstürzen, bei kurzen Zykluszeiten kann auch der gesamte Netzwerkverkehr blockiert werden! Die Verwendung der Unicast-Adressierung wird dringend empfohlen, auch unter Berücksichtigung der o.a. Variablenidentifizierung. |
Weitere Einstellungen:
Das ARP-Handling (ARP = Address Resolution Protocol: Zuordnung von Hardware/MAC-Adressen zu Netzwerkadressen [IP] ) wird vom Betriebssystem (Windows) verwaltet. |
- "ARP Retry Interval": Um sich über die Anwesenheit des Empfängers zu informieren, sendet der Publisher in diesem Abstand eine ARP-Anfrage (ARP Request) an das Zielgerät. Arbeitet die Netzwerkverwaltung des Empfänger-PC, antwortet dieser mit einem "ARP Reply". Deshalb nur bei Unicast sinnvoll.
In der Diagnosevariable "FrameState" wird im Fehlerfall Bit 3 gesetzt (0x0004). - "Disable Subscriber Monitoring": schaltet das vorgenannte Verfahren ab
- "Target Address changeable": dann kann die Ziel-IP dynamisch geändert werden
Publisher, Variable
Einstellungen:
- "Variable ID": Identifizierungsnummer, mit der diese Variable versendet wird, ggf. über PLC online veränderbar
- "Data Exchange": s.o. (nicht bei EL66xx)
- "On change only": NWV wird nur bei Änderung des Wertes versendet (nicht bei EL66xx)
Subscriber, Box
Einstellungen:
- "Receiving Options": lässt für diesen Subscriber nur NWV eines bestimmten Publishers zu
- "Multicast Configuration": dto.
Prozessdaten:
- "VarId": wenn aktiviert, dann ist die Variablen-Id online änderbar
Subscriber, Variable
Einstellungen:
- "Variable ID": lässt für diesen Subscriber nur NWV mit einer bestimmten ID zu, ggf. über PLC dynamisch veränderbar
- "Ignore Data Type Hash": die Hash-Berechnung wird z.Z. noch nicht unterstützt
Prozessdaten:
- "Quality": siehe o.a. Erläuterungen
- "CycleIndex": wird mit jeder erfolgreichen Übertragung inkrementiert, WENN die Gegenseite = der Publisher dies vornimmt. Wenn der Publisher ein EL66x ist, muss dort der Anwender CycleIdx inkrementieren.
- "VarData": übertragene Daten