H1 Device Plugin

Das H1 Device Plugin ermöglicht das Lesen und Schreiben von Daten von SIMATIC S5 SPS-Geräten unter Verwendung des SINEC-H1-Protokolls basierend auf ISO/MAC (Industrial Ethernet).

Voraussetzungen

  • Dieses Plugin derzeit ist nur bei Codabix für Windows (x64 und x86) verfügbar.
  • Um dieses Plugin verwenden zu können, muss WinPcap 4.1.3 installiert sein.

Die gesamte H1 Device Plugin-Konfiguration befindet sich unter dem Nodepfad /System/Devices/H1 Device.

Channel

Ein H1 Device Channel repräsentiert die Verbindung zu einer H1-SPS.

Settings

Network Adapter

Die NIC (Netzwerkkarte), die für die Netzwerkkommunikation verwendet werden soll.

MAC Address

Die MAC-Adresse des Remote-Geräts.

Read SSAP/DSAP

Die SSAP-(Quell-SAP)- und DSAP-(Ziel-SAP)-Werte, die beim Lesen von Daten verwendet werden sollen. Es werden maximal 8 Zeichen verwendet.

Write SSAP/DSAP

Die SSAP-(Quell-SAP)- und DSAP-(Ziel-SAP)-Werte, die beim Schreiben von Daten verwendet werden sollen. Es werden maximal 8 Zeichen verwendet.

Passive Mode

Gibt an, welcher Teilnehmer die Verbindung initiiert:

  • No: Die lokale Maschine initiiert die Verbindung.
  • Yes: Die Remote-Maschine initiiert die Verbindung.

Hinzufügen eines Channels

Hinzufügen eines neuen H1-Channels

Um einen neuen H1-Channel zu erstellen, gehen Sie wie folgt vor:

  1. Fügen Sie einen Folder Node unter dem Node H1 Device/Channels hinzu, oder machen Sie einen Rechtsklick auf den H1 Device/Channels-Node und wählen Sie Add Channel aus.
  2. Tragen Sie im Add Channel-Dialog die Settings für die H1-Verbindung ein.
  3. Nachdem Sie „Save“ geklickt haben, wird die Channel-Node erstellt.
  4. Sie können den Kanal starten, indem Sie die Channel-Node auswählen und den Startbutton klicken.

Variablen

Unter dem Variables-Node können Sie Datenpunktnodes erstellen, die von der SPS gelesen und in diese geschrieben werden können.
Die Value Type-Eigenschaft muss entsprechend zu dem zugehörigen Operandentyp gesetzt werden. Derzeit werden folgende Typen unterstützt:

CoDaBix Type Operand
Boolean oder Boolean-Array X
Byte/SByte oder Byte-Array/SByte-Array L (Links=High Byte) or R (Rechts=Low Byte)
Int16/UInt16 oder Int16-Array/UInt16-Array W
Int32/UInt32 oder Int32-Array/UInt32-Array D
Float oder Float-Array D
TimeSpan oder TimeSpan-Array W

Beachten Sie: 32-Bit-Werte (Float, Int32) werden als zwei separate (16-Bit)-Wörter gelesen bzw. geschrieben. Wenn der Wert in der SPS sich während des Lesens ändert, kann dies dazu führen, dass ein inkonsistenter Wert gelesen wird, wenn ein Wort bereits den neuen Wert hat, aber das andere Wort noch den alten Wert.

Beachten Sie: Bit-Werte (Boolean) werden als (16-Bit)-Wort gelesen bzw. geschrieben. Wenn ein solcher Boolean-Wert geschrieben wird, wird zuerst das Wort von der SPS gelesen, dann die entsprechenden Bits geändert, und dann wird das Wort in die SPS zurückgeschrieben. Wenn ein anderer Teilnehmer gleichzeitig andere Bits dieses Worts ändert, kann dies dazu führen, dass diese Änderungen verloren gehen.

Path

Über die Path-Eigenschaft des Nodes wird die Adresse und optional der Typ und/oder (für Arrays) die Länge der Daten festgelegt. Derzeit wird nur Data Block (DB) als Datenbereich unterstützt.

DB<DB number>.D<Operand> <Offset>
DB<DB number>.D<Operand> <Offset>, <Length>
DB<DB number>.D<Operand> <Offset>, <Type>[<Length>]
DB<DB number>.DX <Offset>.<Bit>, <Length>
Platzhalter Beschreibung
<DB number> Die Nummer des Datenblocks.
<Operand> Einer der Operanden, wie sie in der obigen tabelle angegeben sind.
<Offset> Der Wort-(16-Bit)-Offset, ab dem auf die Daten zugegriffen werden soll.
<Bit> Bei der Verwendung von Boolean/Boolean-Array kann die Bitnummer des Worts von 0 bis 15 angegeben werden.
<Length> Die Länge des Arrays.
<Type> Bei der Verwendung von Integer-Typen kann optional ein BCD-Typ (Binary Coded Decimal) angegeben werden, um die Werte unter Verwendung der BCD-Kodierung abzulegen.
Es kann einer der folgenden Werte angegeben werden:
BCD: Der Wert wird BCD-kodiert.

Beispiele

Value Type Path Meaning
Int16 DB1000.DW 20 Im Datenblock 1000, greife auf das Wort bei Offset 20 zu.
Int16-Array DB1000.DW 30, 10 Im Datenblock 1000, beginne bei Offset 30 und lies/schreibe 10 Wörter (exklusiver Ende-Offset: 40).
Int32 DB1000.DD 40, BCD[4] Im Datenblock 1000, beginne bei Offset 40 und lies/schreibe vier 32-Bit-Werte (exklusiver Ende-Offset: 48) und kodiere/dekodiere die Werte als BCD.
Boolean-Array DB1000.DX 50.12, 24 Im Datenblock 1000, greife auf die Bits ab Offset 50.12 bis (exklusives) Offset 52.4 zu (die Bits werden als drei 16-Bit-Wörter gelesen/geschrieben).
Byte-Array DB1000.DR 60, 2 Im Datenblock 1000, greife auf die Bytes bei Offset 60 (Low Byte) und 61 (High Byte) zu.

Das H1 Device Plugin liefert je nach zu untersuchender Schicht verschiedene Statusinformationen. Generell werden die kanalbasierten Diagnoseinformationen durch den Verbindungsstatus des Channels zur SPS produziert. Die variablenbasierten Diagnoseinformationen werden während des Lese-/Schreibzugriffs auf die verschiedenen Variablen produziert.

Kanal

Um den Status des H1-Kanals zu überwachen und zu diagnostizieren, werfen Sie einen Blick auf das folgende Bild:

Das obige Bild zeigt das Bedienfeld des H1-Kanals, das alle statusrelevanten Informationen anzeigt. Das Bedienfeld aktualisiert automatisch seine Statusinformation, wenn ein neuer Status verfügbar ist.

Statuskreis

Farbe Bedeutung
Der Kanal ist gestoppt. Klicken Sie den -Button, um ihn zu starten.
Der Kanal startet oder stoppt gerade oder wartet auf den Verbindungsaufbau.
Der Kanal ist bereit für Lese-/Schreiboperationen. Sie können ihn durch Klick auf den -Button stoppen.
Der Kanal läuft, aber die Verbindung ist momentan fehlerhaft. Bitte überprüfen Sie den Statustext für weitere Informationen.

Variablen

Um den Status der verschiedenen Variablen zu überwachen und zu diagnostizieren, werfen Sie einen Blick auf die in CoDaBix angezeigte Status-Eigenschaft der Spalte. Benutzen Sie den Button „Read actual Value“, um die Werte von der SPS auszulesen und das Ergebnis in den Variablen zu speichern.

Logdatei

Alle kanalbezogenen Statusinformationen werden auch in die kanalspezifische Logdatei im [LoggingFolder] protokolliert. Jede Logdatei wird nach dem Namensschema H1 Device.<ChannelName>.log benannt.

Der Inhalt einer solchen Logdatei kann wie folgt aussehen:

...
2018-04-11 11:32:37.0 +2: [Error] Error (Severity=High): Code=[-1], Text=[The operation has timed-out.], Details=[]
...

Wie jedes Device Plugin erweitert das H1 Device Plugin das CoDaBix Device Modell.

Wie jedes Device Plugin erweitert das H1 Device Plugin das CoDaBix Device Modell.

Device

Der Device Typ H1Device des Plugins definiert auch den H1DeviceChannel und erweitert somit die grundlegenden CodabixDevice und CodabixDeviceChannel Entities. Während das H1Device nur eine Konkretisierung des CodabixDevice darstellt, erweitert der H1DeviceChannel den CodabixDeviceChannel mit den H1 Variable Entities.

Channel

Der Kanal wird von einem Channel Worker behandelt, der eine Netzwerkverbindung zur SPS herstellt.

Der Worker liest standardmäßig keine Werte. Wenn ein Anwender oder Plugin in CoDaBix einen synchronen Lesevorgang der Channel Variablen anfordert (z.B. mit der „Read actual value“-Funktion in der CoDaBix Webkonfiguration), liest der Channel Worker diese aus der SPS und schreibt diese in die entsprechenden CoDaBix Nodes.

Ähnlich schreibt der Channel Worker auch die Werte in die SPS, wenn ein Client oder Plugin Werte in die Channel-Variablen schreibt.

Damit eine Allen-Bradley-Variable regelmäßig gelesen wird, können Sie in der Webkonfiguration bei dem Node „History Options“ auf Yes stellen (was eine interne Subscription erstellt), oder Sie können zum Beispiel einen OPC UA Client verwenden, der mit dem OPC UA Server Plugin verbunden ist und damit eine Subscription für die Allen-Bradley Variablennodes erstellen. In diesen Fällen liest der Channel Worker in regelmäßigen Intervallen die Variablen von der SPS und schreibt den neuen Wert nach einer Wertänderung automatisch in die entsprechende CoDaBix Node.

Ordner

Name Pfad Zweck / Verwendung
AssemblyFolder <CodabixInstallDir>/plugins/H1DevicePlugin/ Beinhaltet die Plugin-Assemblydatei.
ConfigFolder <CodabixProjectDir>/plugins/H1DevicePlugin/ Beinhaltet die Plugin-Konfigurationsdatei.
LoggingFolder <CodabixProjectDir>/log/ Beinhaltet die Plugin-Logdateien.

Dateien

Typ Pfad Zweck / Verwendung
Assembly [AssemblyFolder]/CoDaBix.H1DevicePlugin.dll Die Plugin-Assembly Datei.
Logging [LoggingFolder]/H1 Device.<ChannelName>.log Die Logdatei.

Dieses Dokument

Datum 2019-11-11
Version 1.0

Plugin

Name H1 Device Plugin
Node /System/Devices/H1 Device
Version 1.0.0

Assembly

Name CoDaBix.H1DevicePlugin.dll
Datum 2020-01-07
Version 1.0.0.0