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-Telegramms zwischen 2 Ethernet-Kabelenden bestimmt.
Das Ethernet-Telegramm wird durch den Ethertype 0x88A4 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 Subscriber-Seite geben über die Verbindungsqualität Auskunft.
Bei der Verwendung von Netzwerkvariablen sind die zeitlichen Randbedingungen der verwendeten Netzwerkarchitektur zu berücksichtigen: bei IP-Adressierung (geroutet) können fallweise einige 100 ms Kommunikationszyklus erreicht werden, bei MAC-Adressierung (geswitcht) ca. 10 ms und weniger.
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". |
Diagnosevariable "CycleIndex" Beachten Sie die 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
Hinweis:
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.
Hinweis EP6601-0002:
Auch bei Verwendung der EP6601-0002 ist der Ankunftszeitpunkt der NWV dann, wenn die Daten im Eingangsprozessabbild des RT-Gerätes vorliegen, nicht wenn sie bei der EP6601-0002 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. Beispielhafte Kommunikation über Netzwerkvariablen: 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. - 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 EP6601-0002: 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. Im Beispiel ist die Struktur im CX (und damit die dort anzulegende Netzwerkvariable) größer als im PC, auch passen die Word- und Real-Variablen nicht zueinander da im PC auf jeder Byte-Position eine Variable beginnen kann, im CX nur an jeder geradezahligen. Folgen Empfehlung zum Aufbau von Strukturen, gleichlautend auf beiden Endgeräten - dann alle 2-Byte-Variablen (müssen auf einer durch 2 teilbaren Adresse liegen) - dann alle 1-Byte-Variablen Weitere Empfehlungen - wenn STRING(x) verwendet wird, gilt das „EndOfString“-Null ebenfalls als Zeichen, somit muss x+1 durch 4 teilbar sein - obige Regeln gelten auch für Unter-Strukturen. Siehe auch Datentyp Folgen Verwendung von Busklemmen-Controllern (BICxxxx, 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 EP6601-0002) stellen sich Publisher/Subscriber unterschiedlich dar. Ein Publisher/Subscriber kann angelegt werden
|
Folgende Einstellungen können in TwinCAT 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. Einstellungen Publisher - RT Ethernet 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 EP6601-0002).
- 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:
- "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).
Anmerkung: das ARP-Handling (ARP = Address Resolution Protocol: Zuordnung von Hardware/MAC-Adressen zu Netzwerkadressen [IP]) wird vom Betriebssystem (Windows) verwaltet. - "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 EP6601-0002).
- "On change only": NWV wird nur bei Änderung des Wertes versendet (nicht bei EP6601-0002).
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 eine EP6601-0002 ist, muss dort der Anwender CycleIdx inkrementieren.
- "VarData": übertragene Daten.