Codabix ist eine plattformunabhängige I4.0 Middleware, die zur Datenkommunikation, -erfassung und -verarbeitung verwendet wird. Es beherrscht die wichtigsten proprietären Kommunikationsprotokolle, die im industriellen Umfeld im Einsatz sind.

Codabix ist eine plattformunabhängige I4.0 Middleware, die zur Datenkommunikation, -erfassung und -verarbeitung verwendet wird. Es beherrscht die wichtigsten proprietären Kommunikationsprotokolle, die im industriellen Umfeld im Einsatz sind. (Bild: Traeger, Träger)

Als Devices lassen sich SPS-Familien von Siemens, Mitsubishi, Bosch, Beckhoff, AEG, Omron und Wago an Codabix anbinden. Ebenso sind Verbindungen zu OPC Classic und OPC UA Servern möglich. Für den horizontalen Datenaustausch mit Datenspeichern gibt es Implementierungen von SQL-Treibern und der Weg der Kommunikation über strukturierte Dateien wie CSV und XML. Zudem lassen sich alle Daten ad hoc per OPC UA, REST oder der Realtime Web API SignalR Core veröffentlichen.

Unabhängig davon, über welchen Weg auf Daten zugegriffen wird, kann der Datenfluss bidirektional, also sowohl lesend als auch schreibend, stattfinden. Auf diese Weise eignet sich Codabix für die Anbindung von Maschinen an MES, PPS und ERP. Eine Anbindung der Maschinen an Industrie 4.0 Clouds ist ebenso möglich. Für die Konfiguration steht eine Weboberfläche, eine REST-Schnittstelle und der Import/Export von XML-Dateien zur Verfügung. Zudem gibt es die Möglichkeit, die vorhandenen Schnittstellen anzupassen oder die Applikation auch um eigene Schnittstellen zu erweitern.

Datenstruktur basiert auf Node-Konzept von OPC UA

Um über alle Interfaces eine einheitliche Struktur zu ermöglichen und gleichzeitig die Interoperabilität mit dem de facto Industrie 4.0 Standard OPC UA (IEC 62541) sicherzustellen, basiert die Datenstruktur auf dem Node-Konzept von OPC UA. Das heißt, alles – Datenpunkte, Geräteeigenschaften, Verbindungseinstellungen, Methoden, Verbindungsstatus, Umgebungsvariablen, Datentypen, … – wird durch einen Node repräsentiert.

Unabhängig von der Art und dem Ort der zugrundeliegenden Daten ist der Zugriff auf die Nodes immer gleich und die Schnittstellen, wie die integrierte REST API oder der integrierte OPC UA Server, bedürfen keine Schnittstellenänderung oder -erweiterung, wenn eine neue Funktion, eine zusätzliche Einstellung oder ein neues Kommunikationsprotokoll in Codabix hinzugefügt wird.

Um benutzerdefiniertes Verhalten innerhalb von Codabix zu implementieren, steht die „Scripting-Engine“ zur Verfügung. Mit Hilfe dieser kann der Anwender Funktionen implementieren, die sich eventbasiert ausführen lassen. Dazu können entweder vom System erzeugte Events, beispielsweise die Wertänderungen einer SPS-Variablen oder der Ablauf eines Timers, herangezogen oder benutzerdefinierte Events erzeugt werden. Zudem lassen sich Funktionen über externe Methodenaufrufe (etwa per HTTP oder OPC UA) triggern.

Programmiert werden Skripte in TypeScript. Neben Standard JavaScript APIs wie mathematischen Funktionen bietet Codabix über die eigene Skript API Zugriff auf die Daten und das Verhalten des Servers. So lassen sich ereignisorientiert Datensätze aus einer SPS lesen oder beim Schreiben eines Wertes via OPC UA in eine Variable eine Funktion auslösen, die diesen Wert vorverarbeitet und dann das Ergebnis der Berechnung beispielsweise an eine SPS weitergibt. Weiterhin lassen sich OEE Berechnungen durchführen oder Rule Sets (englisch für Regelsätze) zur Regelung von Prozesswerten implementieren. Jedes Skript wird geschützt in einer separaten Sandbox ausgeführt, was die Stabilität von Codabix sicherstellen soll.

Die Konfiguration von Codabix erfolgt über das integrierte Webinterface. Grundsätzlich ist die Parametrierung über ein XML-Config-File möglich. Das Format der XML-Config-Files ist frei verfügbar und entsprechend dokumentiert.
Die Konfiguration von Codabix erfolgt über das integrierte Webinterface. Grundsätzlich ist die Parametrierung über ein XML-Config-File möglich. Das Format der XML-Config-Files ist frei verfügbar und entsprechend dokumentiert. (Bild: Traeger)

Die Daten sind frei

Die Struktur und Benennung der Daten, die über die Schnittstellen von Codabix veröffentlicht werden, kann frei modelliert werden. Es spielt weder eine Rolle, wo diese Daten herkommen – SPS-Variablen, ein mit Hilfe der Scripting- Engine berechneter Wert, der Wert einer Spalte in einer Datenbanktabelle – noch wie diese Quelldaten strukturiert sind. Realisiert wird diese Entkopplung von Daten-Produzent und -Konsument durch verlinkte Nodes, die sich ähnlich zu symbolischen Links beziehungsweise Verknüpfungen verhalten, wie sie in Dateisystemen von Betriebssystemen verwendet werden. Durch diese Funktionalität ist es möglich, die Interfaces verschiedener Anlagen und Maschinen gemäß einem firmeninternen Standard zu harmonisieren und zu normieren und für den Zugriff durch übergeordnete Systeme wie ein MES oder PPS zu veröffentlichen, ohne die Maschinen selbst anpassen zu müssen. Gleichzeitig können Maschinen modifiziert oder sogar komplett ausgetauscht werden, ohne die Zugriffslogik der anderen Systeme abändern zu müssen – hier ist lediglich eine Anpassung in Codabix notwendig.

Codabix unterstützt neben der Ausführung unter Windows und Linux Desktop und Server Systemen die Installation auf IPCs und Embedded Systemen wie dem Siemens IOT2050, Dell Gateway 3000 und dem Raspberry Pi. Zudem gibt es ein offizielles Codabix Docker Image.

Der Beitrag basiert auf Unterlagen von Traeger.

Sie möchten gerne weiterlesen?