Diese Anleitung beschreibt das „Schritt für Schritt“-Vorgehen, um Prozessdaten basiert auf definierbaren Triggern in eine Datenbank zu schreiben.
Als Datenquelle wird hierbei beispielhaft eine SIMATIC S7 SPS und als Datenziel eine lokale SQLite Datenbank verwendet.
Durch das einheitliche Interface, das CoDaBix für den Zugriff auf angebundene Geräte und Datenbanken bietet, ist dieses Vorgehen jedoch auf jede Art von Daten,
die in CoDaBix definiert sind, anwendbar.
Für die Ausführung der folgenden Schritte benötigen Sie einen Rechner (mit Windows oder Linux Betriebssystem),
auf dem Sie die erforderlichen Rechte besitzen, um Anwendungen installieren zu können.
Desweiteren ist eine Internetverbindung notwendig, um CoDaBix und die bereitgestellte Standardkonfiguration laden
und auf Beispieldaten von unserer öffentlichen SIMATIC S7 zugreifen zu können.
Die genauen Systemanforderungen an Hardware und Betriebssystemversion finden Sie hier:
Folgende CoDaBix Plugins sind erforderlich
In diesem Schritt installieren Sie CoDaBix auf Ihrem System.
Für diese Anleitung stellen wir Ihnen eine Grundkonfiguration
für die Prozessdatenerfassung bereit.
auf dem Sie CoDaBix verwenden wollen.
4) Restore Backup
Enter
-Taste
In diesem Beispiel sollen die Werte von zwei Variablen (Duration
und Quantity
) aus der SPS gelesen und daraus ein neuer Eintrag in einer Datenbank-Tabelle erzeugt werden,
der zusätzlich die ID
, über welche die SPS identifiziert werden kann, und den aktuellen Zeitstempel enthält.
Dieser Vorgang soll ausgeführt werden, wenn die steigende Flanke des Bits JobCompleted
in der SPS detektiert wird.
Die SPS Variablen sind wie folgt definiert:
Prozessdaten
Duration
Quantity
Trigger
JobCompleted
Die Datenbank-Tabelle namens oeemachinerecord
besitzt folgende Spalten:
ID
MachineID
Duration
Quantity
Timestamp
Um die Datenerfassung (nachfolgend Transfer
genannt) in CoDaBix abzubilden, wird sie in drei Komponenten eingeteilt:
Diese Komponenten werden über eine Ordner-Struktur innerhalb von CoDaBix abgebildet.
Dabei repräsentiert jeder Ordner, der unterhalb von /Nodes/Transfers
liegt, einen unabhängigen Transfer.
Um einen neuen Transfer anzulegen, navigieren Sie im Node-Baum zum Node „/Nodes/Transfers“.
/Nodes/Transfers
New Transfer
Edit Folder
Edit Folder
-Dialog den Namen in Data acquisition Machine02
Daraufhin sollte der Node-Baum wie folgt aussehen:
Um Variablen festzulegen, deren Werte erfasst werden sollen, müssen sich diese Variablen unter dem Folder-Node Inputs
befinden.
Neben den Variablen aus der SPS soll die ID der Maschine (für dieses Beispiel ID = 2
) erfasst werden.
Deshalb wird zuerst ein Node von dem Typen UInt16
angelegt, in dessen Wert konstant diese ID gespeichert wird:
Inputs
Add Datapoint Node
aus dem KontextmenüAdd Datapoint Node
-Dialog:ID of MAC02
als Name einUInt16
als Value TypeWrite a new Value
Write a new Value
-Dialog:2
als neuen Wert ein
Um die Werte der SPS Variablen als Eingänge für den Transfer zu definieren,
wird im Inputs
-Ordner jeweils ein verlinkter Node erstellt, dessen Linkziel den Value-Node beinhaltet, der die entsprechende SPS Variable repräsentiert.
Die Nodes, die diese Variablen abbilden, finden Sie unter dem Pfad /System/Devices/S7 TCP-IP Device/Channels/Machine 02/Variables
:
Führen Sie für diese beiden Nodes die folgenden Schritte aus, um Sie im Inputs
Folder zu verlinken:
Inputs
Add Datapoint Node
Add Datapoint Node
-Dialog:Virtual Link
-Dialog:
Da zusätzlich zu den SPS-Daten der aktuelle Zeitstempel gespeichert werden soll, muss noch eine Node hinzugefügt werden, die diesen Wert bereitstellt.
Zu diesem Zweck gibt es in CoDaBix einen vordefinierten Value-Node, der unter dem Pfad /System/Environment/DateTime/UtcNow
zu finden ist.
Beim Lesen dieser Node wird immer der aktuelle Zeitstempel zurückgegeben.
Erstellen Sie nun analog zu den vorhergehenden Schritten einen weiteren Link namens Current Timestamp
, der auf diesen Node (/System/Environment/DateTime/UtcNow
) verweist.
Analog zu den Quellen der Daten werden die Ziele unterhalb des Folder-Nodes Outputs
definiert.
Dazu soll die Tabelle oeemachinerecord
der Datenbank verwendet werden.
Die Nodes, die die Spalten dieser Tabelle repräsentieren, befinden sich unter dem Pfad /System/Exchange/SQL Exchange/Databases/OEE/Tables/oeemachinerecord/Columns
.
Legen Sie nun, analog zum vorhergehenden Schritt, unterhalb von Outputs
Linknodes an, die mit folgenden Nodes verlinkt sind:
/System/Exchange/SQL Exchange/Databases/OEE/Tables/oeemachinerecord/Columns/MachineID
/System/Exchange/SQL Exchange/Databases/OEE/Tables/oeemachinerecord/Columns/Duration
/System/Exchange/SQL Exchange/Databases/OEE/Tables/oeemachinerecord/Columns/Quantity
/System/Exchange/SQL Exchange/Databases/OEE/Tables/oeemachinerecord/Columns/Timestamp
Der Transfer-Mechanismus verwendet die Reihenfolge der Input-Nodes und Output-Nodes, um zu differenzieren, welches Datum in welchen Node geschrieben werden soll.
Der Wert des ersten Input-Nodes wird dabei in den ersten Output-Node geschrieben, der des zweiten in den zweiten Output-Node und so weiter.
Ordnen Sie nun die Nodes unter Inputs
und Outputs
per Drag-and-Drop so an, dass Sie die Reihenfolge der in diesem Screenshot entsprechen:
Um den Trigger für unser Beispiel einzurichten, legen Sie nun unter dem Triggers
-Ordner einen virtuellen Link an,
dessen Ziel der Node /System/Devices/S7 TCP-IP Device/Channels/Machine 01/Variables/JobCompleted
ist.
Somit sollte der Node-Baum wie folgt aussehen:
Nach Durchführung der vorangegangenen Schritte ist die Einrichtung der Datenerfassung abgeschlossen.
Um den Transfer zu aktivieren, muss der Wert des Nodes isActive
in dem Ordner des Transfers auf true
gesetzt werden.
Schreiben Sie dazu true
als neuen Node-Wert:
Der Trigger wird nun alle 500ms von CoDaBix gelesen und auf eine steigende Flanke geprüft.
Ist dies der Fall, werden die Inputs gelesen, der Trigger zurückgesetzt (der Wert false
geschrieben) und die Daten in die Outputs geschrieben.
Dadurch wird in der Datenbank-Tabelle ein neuer Eintrag erzeugt, der diese Daten enthält.
Das SPS Programm wartet, bis der Trigger wieder zurückgesetzt wurde.
Dann werden innerhalb von 10 Sekunden neue, zufällige Werte in die Variablen geschrieben und der Trigger wird erneut auf true
gesetzt.
Sie können die Funktionalität nun durch einen SQLite-Browser verifizieren:
<CodabixProjectDirectory>/userdata/mydata.sqlite
an. <CodabixProjectDirectory>
steht hierbei für den Pfad zum Projektverzeichnis,das Sie beim ersten Start von CoDaBix ausgewählt haben.
Dieses kann über die Settings ausgelesen werden:
oeemachinerecord
während im Takt von etwa 10 Sekunden neue hinzukommen
Eine andere Möglichkeit ist die Anzeige in der in CoDaBix integrierten Dashboard-Applikation.
Data acquisition Machine02
Inputs
, Outputs
und Triggers
aufund den Transfer der Daten zwischen den Inputs und Outputs live beobachten: