Device Plugins

Alle Device Plugins benutzen das CoDaBix® Device Modell. Jedes Gerät das zur Verfügung gestellt wird, wird vom CoDaBix® Device Manager registriert und verwaltet.

Mögliche Geräte:

  • Physische Geräte wie:
    • SIMATIC S7 SPSen
    • Allen Bradley SPSen
    • Mitsubishi SPSen
    • Raspberry Pi erreichbar via TCP/IP
    • Arduino- / Netduino-Projekte erreichbar z.B. via USB
  • Logische Geräte wie:
    • Dateien im lokalen oder Remote-Dateisystem, z.B. eine Verbindung zu einem Remote-Laufwerk - das ist eine Datei in einem Cloud-Laufwerk oder eine Datei, die via (S)FTP zugänglich sein könnte - muss noch eingerichtet und solange bereitgehalten werden, während die Daten Zugriff auf die Datei nehmen und vom System verwaltet werden.
    • Dienstleistungen wie lokale Dienste über Shared Memory oder Remote Services, zugänglich über RPC, REST, DCOM oder andere Arten von Protokollen wie SOAP. Ein solcher lokaler / Remote Service kann auch ein OPC Server sein (siehe OPC UA Client Device Plugin).

Mögliche Geräte:

  • Physische Geräte wie:
    • SIMATIC S7 SPSen (siehe S7 Device Plugin)
    • Allen Bradley SPSen
    • Mitsubishi SPSen (siehe Melsec QJ Device Plugin)
    • Raspberry Pi erreichbar via TCP/IP
    • Arduino- / Netduino-Projekte erreichbar z.B. via USB
  • Logische Geräte wie:
    • Dateien im lokalen oder Remote-Dateisystem, z.B. eine Verbindung zu einem Remote-Laufwerk - das ist eine Datei in einem Cloud-Laufwerk oder eine Datei, die via (S)FTP zugänglich sein könnte - muss noch eingerichtet und solange bereitgehalten werden, während die Daten Zugriff auf die Datei nehmen und vom System verwaltet werden.
    • Dienstleistungen wie lokale Dienste über Shared Memory oder Remote Services, zugänglich über RPC, REST, DCOM oder andere Arten von Protokollen wie SOAP. Ein solcher lokaler / Remote Service kann auch ein OPC Server sein (siehe OPC UA Client Device Plugin).
Das CoDaBix® Device Modell erweitert das grundlegende CoDaBix® Entity Modell um für Devices typische Entities. Dabei definiert ein Device Entity die untergeordneten Entities zur Steuerung (engl. control), für Einstellungen (engl. settings), für den Status des Plugins und die diversen Kanäle (engl. channels), über die das Plugin die unterstützten Geräte an CoDaBix® anbindet.
Jedes mit CoDaBix® ausgelieferte Device Plugin lässt sich in der CoDaBix® Host Anwendung konfigurieren. Verfügt ein Plugin über Konfigurationsparameter, dann können diese im entsprechenden Device Entity modifiziert werden.

CoDaBix® verwenden

Die gesamte Konfiguration aller Device Plugins finden Sie unter dem Nodepfad /System/Devices. Dieser Wurzelnode der Device Plugins ermöglicht die vollständige Konfiguration der Device Plugins, vorausgesetzt, dass eines der aktiv verwendeten Device Plugins eigene Device Entities zur Konfiguration bereitstellt.

Anwendung verwenden

Speicherort

Falls ein Plugin eine Anwendung für die Konfiguration zur Verfügung stellt, kann es sich unter dem CoDaBix® Installationsverzeichnis befinden (ausgewählt während der Installation). Die folgende Liste zeigt die Hierarchie:

  • <CodabixInstallDir>
    • <PluginConfigurationAppName>

Zum Beispiel:

  • C:\Program Files\TIS\CoDaBix\
    • CoDaBix.S7DevicePlugin.Configurator.exe

Zum Beispiel:

  • C:\Program Files\Traeger\CoDaBix\
    • CoDaBix.S7DevicePlugin.Configurator.exe

Konfigurationsdatei verwenden

Speicherort

Falls ein Plugin eine Konfigurationsdatei zur Verfügung stellt, kann diese in einem pluginspezifischen Verzeichnis liegen. Dieses Verzeichnis ist wiederum innerhalb des „plugins“-Verzeichnisses im CoDaBix® Datenverzeichnis (konfiguriert in CoDaBix). Die folgende Liste zeigt die Hierarchie:

  • <CodabixDataDir>
    • plugins\
      • <PluginConfigurationFileName>

Zum Beispiel:

  • D:\Data\TIS\CoDaBix.Data\
    • CoDaBix.S7DevicePlugin.Settings.xml
    • [CoDaBix.S7DevicePlugin.Settings.xsd]

Zum Beispiel:

  • D:\Data\Traeger\CoDaBix.Data\
    • CoDaBix.S7DevicePlugin.Settings.xml
    • [CoDaBix.S7DevicePlugin.Settings.xsd]

Struktur

Jedes CoDaBix® Plugin definiert die Wurzel seiner Elementstruktur durch das PluginSettings Element, wie in Konfiguration - Verwenden einer Konfigurationsdatei beschrieben. Ein Device Plugin erweitert seine XML-Struktur anhand des Device Elements, während die weiteren definierten Child Elemente abhängig sind von der Implementierung des Plugins und seiner eigenen definierten Elemente und Attribute.

Jedes CoDaBix® Plugin definiert die Wurzel seiner Elementstruktur durch das PluginSettings Element, wie in Konfiguration - Verwenden einer Konfigurationsdatei beschrieben. Ein Device Plugin erweitert seine XML-Struktur anhand des Device Elements, während die weiteren definierten Child Elemente abhängig sind von der Implementierung des Plugins und seiner eigenen definierten Elemente und Attribute.

Device Element
Das Device Element dient als Container für das Channels Element. Dieses Element konfiguriert den kompletten Typ des Devices, das durch das Device Plugin bereitgestellt werden soll, während die weiteren definierten Child Elemente, eigens definierten Elemente und Attribute von der Implementierung im Plugin abhängig sind.

Das Device Element kann wie folgt aussehen:

<Device>
  <Channels />
</Device>

Channels Element
Das Channels Element dient als Container für ein oder mehrere Channel Elemente. Dieses Element pflegt alle Channels, die mit dem Typ in Verbindnung stehen und durch das Device Plugin bereitgestellt werden, während die weiteren Child Elemente von der Implementierung der eigenen Elemente und Attribute im Plugin abhängig sind.

Das Channels Element kann wie folgt aussehen:

<Channels>
  <!-- 0-n Channel elements -->
</Channels>

Channel Element
Das Channel Element dient als Container für die Settings Elemente, während die weiteren Child Elemente von der Implementierung der eigenen Elemente und Attribute im Plugin abhängig sind.

Jedes Channel Element stellt die folgende Liste von Attributen bereit:

Verpflichtent Type Purpose
Identifier nein GUID Der generische eindeutige Identifizierer des Kanals.
Name ja String Der eindeutige Name (im Channels Element) des Kanals.

Das Channel Element kann wie folgt aussehen:

<Channel Name="Channel No. 1">
  <Settings />
</Channel>

Settings Element
Das Settings Element definiert das Attribut, um den Kanal einzurichten. Dieses Attribut konfiguriert die Kanalverbindungsparameter, während die weiteren Child Elemente von der Implementierung der eigenen Elemente und Attribute im Plugin abhängig sind.

Das Settings Element kann wie folgt aussehen:

<Settings />

Beispiel Konfigurationsdatei

DevicePlugin.Settings.xml
<?xml version="1.0" encoding="utf-8" ?>
<PluginSettings xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Device>
    <Channels>
      <Channel>
        <Settings />
        <!-- Plugin specific child elements -->
      </Channel>
    </Channels>
  </Device>
  <!-- Plugin specific child elements  -->
</PluginSettings>