Das UniPi Device Plugin ist für den Einsatz auf einem UniPi Gerät konzipiert.
Es ermöglicht die Konfiguration des Geräts und das Lesen und Schreiben von Daten.
Dieses Plugin ist Bestandteil des CoDaBix® für Raspberry Pi Setups. Bitte konsultieren Sie CoDaBix® Setup und erster Start für weitere Informationen darüber, wie dieses Plugin installiert und deinstalliert werden kann.
Die gesamte UniPi Device Plugin-Konfiguration befindet sich unter dem Nodepfad /System/Device/UniPi Device
.
Der Nodebaum im oberen Bild zeigt den Standardnodebaum des UniPi Device Plugins. Um einen neuen UniPi-Kanal aufzusetzen, fügen Sie einen Folder Node unter dem Node UniPi Device/Channels
hinzu, oder machen Sie einen Rechtsklick auf den UniPi Device/Channels
-Node und wählen Sie Add Channel
aus.
Für den Kanal sind keine weiteren Einstellungen notwendig.
Nachdem Sie „Save“ geklickt haben, wird die Channel-Node erstellt. Sie können den Channel starten, indem Sie diese Node auswählen und den Startbutton klicken:
Um die Einrichtung der UniPi-Variablen zu vereinfachen, stellen wir für das UniPi-Modell S103
eine
Standard Channel-Konfiguration
bereit, in der bereits die wichtigsten Variablen des UniPi Geräts definiert sind.
Diese Konfigurationsdatei lässt sich über das Kontextmenü eines UniPi-Channels importieren.
Der Zugriff auf die Daten des UniPi Geräts erfolgt über einen lokalen Modbus TCP Server. Somit werden Variablen analog zum Modbus Device Plugin definiert, im Abschnitt Variablen finden Sie die entsprechende Dokumentation.
Das UniPi Device Plugin liefert je nach zu untersuchender Schicht verschiedene Statusinformationen. Generell werden die kanalbasierten Diagnoseinformationen durch den Verbindungsstatus des Channels zum UniPi produziert. Die variablenbasierten Diagnoseinformationen werden während des Lese-/Schreibzugriffs auf die verschiedenen Variablen produziert.
Um den Status des UniPi-Kanals zu überwachen und zu diagnostizieren, werfen Sie einen Blick auf das folgende Bild:
Das obige Bild zeigt das Bedienfeld des UniPi-Kanals, das alle statusrelevanten Informationen anzeigt. Das Bedienfeld aktualisiert automatisch seine Statusinformation, wenn ein neuer Status verfügbar ist.
Statuskreis
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 aus des UniPi auszulesen und das Ergebnis in den Variablen zu speichern.
Alle kanalbezogenen Statusinformationen werden auch in die kanalspezifische Logdatei im [LoggingFolder]
protokolliert. Jede Logdatei wird nach dem Namensschema UniPi 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 UniPi Device Plugin das CoDaBix Device Modell.
Der Device Typ UniPiDevice
des Plugins definiert auch den UniPiDeviceChannel
und erweitert somit die grundlegenden CodabixDevice
und CodabixDeviceChannel
Entities. Während das UniPiDevice
nur eine Konkretisierung des CodabixDevice
darstellt, erweitert der UniPiDeviceChannel
den CodabixDeviceChannel
mit den UniPi Variable Entities.
Der Kanal wird von einem Channel Worker behandelt, der eine TCP Socket Verbindung zum lokalen Server herstellt.
Zur Fehlerdiagnosezwecken überprüft der Worker automatisch alle 10 Sekunden den Status der TCP Socket Verbindung, um den Channel
Statuscode und seine Beschreibung zu aktualisieren und Verbindungsfehler zu erkennen.
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 vom UniPi und schreibt diese in die entsprechenden CoDaBix Nodes.
Ähnlich schreibt der Channel Worker auch die Werte in den UniPi, wenn ein Client oder Plugin Werte in die Channel
Variablen schreibt.
Damit eine UniPi 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 Serverplugin verbunden ist und damit eine Subscription für die UniPi Variablennodes erstellen. In diesen Fällen liest der Channel Worker in regelmäßigen Intervallen die Variablen vom UniPi und schreibt den neuen Wert nach einer Wertänderung automatisch in die entsprechende CoDaBix® Node.
Unter dem Variables
-Node können Sie Datenpunktnodes erstellen, die vom UniPi-Gerät gelesen und geschrieben werden.
Die Value Type
-Eigenschaft muss dabei auf den entsprechenden Variablentyp festgelegt werden (Boolean
, Byte
, Int16
, UInt16
, Int32
, UInt32
und die zugehörigen Array-Typen).
Ab der Version 1.0.1 gibt es die Möglichkeit andere Datentypen aus den Modbus-Entities zu lesen, als sie über Modbus bereitgestellt werden (Boolean
in Coils / UInt16
in Registern).
Um diese Funktion abzubilden, wird die Definition des Modbus-Entität einer Variable nicht mehr wie in Version 1.0.0 über den Variablentypen festgelegt, sondern durch den Pfad der Variable definiert.
Dies führt zu Inkompatibilität bei Werten, die aus Modbus-Registern gelesen werden.
Die Migration kann durch Import der Standard Channel-Konfiguration im bestehenden UniPi-Channel durchgeführt werden. Sollte dies nicht möglich sein, da dort Änderungen vorgenommen wurden, kann die Migration auch manuell mit Hilfe der Dokumentation des Modbus Device Plugin möglich.
Name | Pfad | Zweck / Verwendung |
---|---|---|
AssemblyFolder | <CodabixInstallDir>/plugins/UniPiDevicePlugin/ | Beinhaltet die Plugin Assembly Datei. |
ConfigFolder | <CodabixDataDir>/plugins/UniPiDevicePlugin/ | Beinhaltet die Plugin Konfigurationsdatei. |
LoggingFolder | <CodabixDataDir>/log/ | Beinhaltet die Plugin Log Dateien. |
Typ | Pfad | Zweck / Verwendung |
---|---|---|
Assembly | [AssemblyFolder]/CoDaBix.UniPIDevicePlugin.dll | Die Plugin Assembly Datei. |
Logging | [LoggingFolder]/UniPi Device.<ChannelName>.log | Die Log Datei. |
Datum | 2019-01-14 |
---|---|
Version | 2.0 |
Name | UniPi Device Plugin |
---|---|
Node | /System/Devices/UniPi Device |
Version | 1.0.1 |
Name | CoDaBix.UniPiDevicePlugin.dll |
---|---|
Datum | 2018-05-28 |
Version | 1.0.1.0 |