Ethernet/IP Implizite Nachrichtenübermittlung

Durch den Einsatz der impliziten Nachrichtenübermittlung fordert WinCC OA zyklische Updates für ein definiertes Tag-Set an. Nachdem diese Anfrage von der SPS akzeptiert wurde, sendet die SPS im angegebenen Intervall UDP Datagramme, welche die Daten für das gesamte Tag-Set beinhalten. Der EIP Treiber muss nicht jedes Mal Anfragen, um Updates zu bekommen. Es wird lediglich eine periodische keep-alive Nachricht vom Treiber gesendet, die jedoch in einem niedrigeren Intervall vorkommt.

Die Anzahl der unterstützten Tag-Set Verbindungen ist abhängig vom Limit der SPS.

Es gibt einige Einschränkungen, die bedacht werden sollten:

  • WinCC OA baut immer die Verbindung auf. Verbindungen, die von der SPS ausgehen sind weder notwendig noch unterstützt. EDS Dateien sind auf keiner Seite der Verbindung notwendig (nur die mitgelieferte Datei für die SPS selbst)
  • Standardmäßig werden alle impliziten Verbindungen in einer einzigen Instanz des EIP Treibers verarbeitet. Diese Limitierung kommt daher, weil die SPSen typischerweise den Port 2222 für die implizite Nachrichtenübermittlung verwenden, und nur ein Prozess an einen angegebenen Port gebunden sein kann. Da die CPU-Last für die Verarbeitung der Nachrichten viel geringer ist als für gepollte Nachrichten, sollte dies kein Problem darstellen. Es besteht jedoch die Möglichkeit den Port mit Hilfe des Config-Eintrags [eip] implicitPort zu definieren. Der Treiber sendet der SPS dann den angegebenen Port und dieser wird dann für die Datenübertragung zum Treiber verwendet. Implizite Datenübertragung zur SPS verwendet jedoch immer den Port 2222. Jede Treiber Instanz muss einen eindeutigen Port haben, um implizite Nachrichtenübermittlung verwenden zu können.
  • Die unterstützte Anzahl und Größe der Tag-Sets hängt vom verwendeten SPS Typ ab. Eine Omron CJ2H SPS erlaubt beispielsweise bis zu 256 Tag-Sets mit je 1-8 Tags und 1440 Bytes. Ein Tag darf nicht in mehreren Tag-Sets vorkommen.
  • Während für jedes Tag-Set eine Verbindung in der SPS in Anspruch genommen wird, ist dies im WinCC OA EIP Treiber anders. Es werden hier pro Treiber Instanz bis zu 512 Sockets unterstützt, von denen eine konfigurierbare Anzahl (1-8) pro SPS für explizite Nachrichtenübermittlung verwendet werden. Ein Socket wird verwendet, um eingehende UDP Daten zu empfangen, einer, um UDP Daten zu versenden und ein weiterer Socket, um UDP Kommandos zu empfangen. Ein weiterer Socket wird temporär verwendet, um jede implizite Verbindung herzustellen, und dann freigegeben.
  • Verbindungen sind Punkt-zu-Punkt-Verbindungen, keine Multicast-Verbindungen.
  • Der Port 2222 wird für eingehende Daten verwendet und muss deshalb in der System Firewall freigegeben werden. Wenn andere Ports definiert wurden, müssen diese ebenfalls freigeben werden.

Implizite Nachrichtenübermittlung wird nur von ControlLogix und Omron SPSen unterstützt.

Omron SPS Konfiguration

Um ein Tag für die implizite Nachrichtenübermittlung zu konfigurieren, muss es mittels CX-Programmer zur Symbol-Tabelle hinzugefügt werden und als Net. Variable für Output konfiguriert werden.

Dies muss anschließend auf die SPS übertragen werden.

Weiters ist es notwendig mittels Omron Network Configuration Utility die Netzwerkkommunikation abzubilden. Dazu muss lediglich die SPS hinzugefügt werden und die zugehörige IP-Adresse angegeben werden. Es ist nicht notwendig einen Knoten für den WinCC OA Server anzulegen.

Für eine Omron CJ2H SPS muss hier der eingebaute Ethernet Adapter CJ2B-EIP21 verwendet werden.

Anschließend muss ein sogenanntes "Out – Produce" Tag-Set angelegt werden, welches bis zu 8 Tags beinhalten kann. Es ist nicht notwendig hier Verbindungen zu konfigurieren, weil diese für durch die SPS initiierte Verbindungen verwendet werden. "In-Consume" Tags werden derzeit nicht unterstützt.

Die Import Schaltfläche kann dann verwendet werden, um alle Output-Tags vom aktuellen CX-Programmer Projekt zu importieren.

Hier ist sicherzustellen, dass der PLC Status auf „Not Include“ gestellt ist.

Nachdem alle Tags des Tag-Sets definiert sind, ist es sinnvoll, die Byte-Offsets zu notieren. In dem oben angeführten Beispiel hätte MyOutArray1 ein Offset von 0 Bytes, MyOutArray2 ein 101 Byte Offset. Diese Werte müssen später in WinCC OA angegeben werden, um die Daten korrekt aus dem Tag-Set zu lesen.

Anschließend kann der Dialog mittels OK geschlossen werden. Eine weitere Meldung erscheint, welche die gesamte Größe des Tag-Sets angibt. Auch dieser Wert wird später in WinCC OA benötigt.

Zum Schluss muss jetzt das Projekt gespeichert und die Parameter zur SPS übertragen werden. Dies wird durch Rechtsklick auf die SPS im Netzwerk-Layout und anschließendem Klick auf Parameter und dann Download angestoßen.

ControlLogix SPS Konfiguration

Um implizite Nachrichtenübermittlung mit ControlLogix SPSen zu verwenden müssen entsprechende Controller Tags in Logix Studio angelegt werden. Dies kann durch Rechtsklick auf Controller Tags und anschließendem Klick auf "New" gemacht werden.

Das ausgewählte Tag kann ein Skalar, eine Liste oder ein UDT (User Defined Type) sein. Es kann jedoch nur ein Tag pro impliziter Verbindung ausgetauscht werden.

Hier ist es notwendig den Tag-Namen, Datentyp und optionale Array-Dimensionen anzugeben. Außerdem muss der Typ auf „Produced“ eingestellt werden. Es ist hier nicht notwendig eine Verbindung anzulegen.

Anschließend muss die Konfiguration gespeichert und auf die SPS übertragen werden. Die konfigurierten Tags können dann über implizite Nachrichtenübermittlung von WinCC OA empfangen werden.

Konfiguration der WinCC OA Adressen

Um implizite Tag-Sets in WinCC OA verwenden zu können müssen folgende Punkte konfiguriert sein:

  • SPS Verbindung – Die Verbindung zur SPS muss konfiguriert sein.
  • Ein Tag-Set Eintrag, mit gleichem Namen und Größe wie in der PLC konfiguriert muss existieren. Hierbei muss Groß und Kleinschreibung beachtet werden. Diese Tag-Sets sind pro SPS zu konfigurieren. Weitere Informationen hierzu sind unter Konfiguration der WinCC OA Tag-Sets zu finden
  • Ein oder mehrere Datenpunkte mit aktiven address-Configs der gegebenen SPS mit Empfangsmodus Implizit und einem angegebenen Tag-Set. Außerdem muss das Byte-Offset der Daten innerhalb des Tag-Sets angegeben sein.

Die folgende Konfiguration zeigt zum Beispiel eine Peripherie-Adresse, die Implizite Nachrichtenübermittlung verwendet, um einen dyn_int Datenpunkt mit der Transformation int16 zu empfangen. Dies bedeutet, dass jedes Listen-Element 2 Bytes groß ist. Die Adresse „MyTagSet/0:50“ gibt ein Offset von 0 Bytes und 50 Elemente an. Das Offset muss hierbei immer angegeben werden, auch wenn bei 0 gestartet wird, das Längen-Suffix hingegen ist nur bei Arrays zu verwenden.

Der Benutzer muss hier Datenpunkt Typ, Transformationsart und Offset so konfigurieren, dass die eingehenden Daten richtig interpretiert werden. Dies erlaubt zusätzliche Flexibilität, falls Daten anders zugeordnet werden sollen.

Es ist auch möglich für Datenpunkte gleiche oder überlappende Offset anzugeben.

Konfiguration der WinCC OA Tag-Sets

Um implizite Nachrichtenübermittlung nutzen zu können, müssen in WinCC OA die entsprechenden Tag-Sets der SPS angelegt werden. Hierzu kann das folgende Panel verwendet werden, welches mittels EIP Adressenkonfigurationspanel oder von System Management / Treiber / EIP durch Klicken des Tag-Sets Buttons aufgeschaltet werden kann.

Zu Beginn sind hier keine Tag-Sets konfiguriert. Es muss hier jedoch für jedes SPS Tag-Set, mit dem mit WinCC OA kommuniziert werden soll, ein eigener Eintrag erstellt werden. Name und Größe der Tag-Sets müssen exakt der SPS Konfiguration entsprechen.

Eine Omron CJ2H SPS erlaubt bis zu 256 Tag-Sets, wobei jeweils eine Verbindung in der SPS benötigt wird. Tag Sets werden für eine SPS konfiguriert, derselbe Name kann also für mehrere SPSen genutzt werden, es muss aber für jede SPS ein eigener Eintrag erstellt werden.

Erstellen

Erstellt einen neuen Tag-Set Datenpunkt mit einem festgelegten Namen und Defaultwerten. Die Konfiguration wird erst übernommen, wenn die "Übernehmen"-Schaltfläche ausgewählt wurde. Um die Konfiguration eines Tag-Set Datenpunktes zu ändern, muss diese in der Auswahlliste gewählt, geändert und durch Klicken auf die "Übernehmen"-Schaltfläche gespeichert werden.

Entfernen

Durch diese Schaltfläche wird der gewählte Datenpunkt nach Bestätigung einer Sicherheitsabfrage gelöscht.

Einstellungen

Die Aktualisierungsrate gibt an, wie oft die SPS Tag-Sets sendet. Es ist hier möglich bis zu 20ms zu definieren, kleine Werte können jedoch die Performance des WinCC OA Event Managers beeinträchtigen. Es können Arrays statt einzelnen Werten verwendet werden, um die Systemlast zu optimieren. Für den Einsatz in einem Produktivsystem sollte immer der Alt/Neu-Vergleich aktiviert werden, um die Systemlast zu reduzieren.

Das "Wieder verbinden"-Textfeld gibt an, nach wie vielen Sekunden erneute Verbindungsversuche im Fehlerfall durchgeführt werden.

Größe gibt die Gesamtgröße des Tag-Sets in Bytes an. Der Wert muss der Einstellung des SPS Tag-Sets entsprechen.

Datenverpackung bei ControlLogix Benutzerdefinierten Typen

Leider geben die Tools nicht die Byte-Offsets für jedes Strukturelement an, wenn benutzerdefinierte Strukturen von einer ControlLogix SPS implizit übermittelt werden. Um diese Byte-Offsets händisch zu ermitteln müssen folgende Punkte beachtet werden.

Wenn der Datentyp sich von einem Feld zum nächsten ändert, füllt die SPS bis zum nächsten 4-Byte Block auf, erst danach beginnt das nächste Feld. Ein solcher Typ könnte zum Beispiel folgendermaßen angelegt sein:

Name Typ Größe Offset
MyInt1 INT 2 0
(reserved) - 2 -
MyDint1 DINT 4 4
MyReal1 REAL 4 8
MySInt1 SINT 1 12
(reserved) - 3 -
UDT2.ComErr INT 2 16
(reserved) - 2 -
UDT2.Auto BOOL 1 20
(reserved) - 3 -
UDT2.OPLast REAL 4 24
UDT2.OffAlm BOOL 1 28
UDT2.OnAlm BOOL 1 29
(reserved) - 2 -
UDT2.PVLast REAL 4 32
UDT2.PVRaw REAL 4 36

Die Gesamtgröße des obigen Beispiels würde 40 Bytes betragen.

Die Gesamtgröße kann jedoch auch mit Hilfe des Tools ausgelesen werden, dazu muss Data Types / User-Defined / used UDT gewählt werden.

Tag-Set aktiv wird verwendet, um das Tag-Set zu aktivieren oder zu deaktivieren.

Information

Das Status Textfeld zeigt den aktuellen Status des Tag-Sets an. Im Fehlerfall werden hier zusätzliche Informationen angezeigt, die bei der Fehlersuche helfen.

Anzahl gibt an, wie viele Transaktionen für dieses Tag-Set seit Aktivierung oder Treiberneustart abgeschlossen wurden. Der Wert wird standardmäßig alle 5 Sekunden aktualisiert, dies kann jedoch mit Hilfe des Konfig-Eintrags „StatCheckInterval“ verändert werden.