Datenbank zu anderen Systemen
Wenn Sie Daten gesichert transferieren wollen, hat es sich bewährt, dies über ein Handshake-Verfahren zu realisieren. Für relationale Datenbanken wie dem Microsoft SQL Server bietet sich hierzu die Funktion „Transferierte Werte markieren“ an.
Die fachlichen Grundlagen dazu finden Sie bei den relationalen Datenbank-Transferobjekten sowie beim Transferstatus-Trigger.
Hierbei wird in einer Spalte der Tabelle der Status des Transfers festgehalten. Standardmäßig verwendet der OPC Router dafür folgende Werte:
0 Nicht transferiert
1 Transferiert
2 Fehler beim Transferieren
Diese Werte entsprechen den aktuellen Standardwerten des OPC Router für die Transferstatus-Markierung und können bei Bedarf an die jeweilige Anwendung angepasst werden.
Unabhängig davon sollten Sie für die Transferspalte in der Datenbanktabelle festlegen, mit welchem Wert neue Datensätze initial angelegt werden. Die Spalte sollte keine NULL-Werte zulassen und einen zum gewünschten Prozess passenden Standardwert der Tabelle erhalten.
Wenn neue Datensätze unmittelbar zur Übertragung anstehen sollen, bietet sich als Standardwert der Tabelle der Wert für „Nicht transferiert“ an, im Standard also 0.
Wenn neue Datensätze dagegen zunächst nicht automatisch verarbeitet werden sollen, kann die Spalte in der Tabelle auch mit dem Wert für „Transferiert“ oder einem anderen fachlich passenden Zustand vorbelegt werden, im Standard zum Beispiel mit 1. In diesem Fall wird der Datensatz erst dann verarbeitet, wenn ein nachgelagerter Prozess den Transferstatus gezielt auf den Wert für „Nicht transferiert“ setzt.
Dies führt in der Regel dazu, dass Applikationen, die angebunden werden sollen, bei denen diese Spalte hinzugefügt wird, weiterhin fehlerfrei laufen, da der SQL-Server bei einem Insert diese Spalte automatisch mit einem Wert befüllen kann. Der OPC Router weiß dadurch, dass dieser Datensatz noch nicht transferiert wurde und überträgt diesen mit dem nächsten Zyklus.
Sie können in einer Tabelle mehrere Transfer-Status-Spalten hinzufügen, wenn sie denselben Datensatz in unterschiedlichen Prozess-Schritten verwenden möchten.
Dies ist zum Beispiel hilfreich, wenn Sie einen Datensatz an unterschiedlichen Stationen drucken oder weiterverarbeiten möchten.
Wiederholung im Fehlerfall
Der OPC Router unterstützt mit DB Select und dem Transferstatus-Trigger die Möglichkeit der Wiederholung im Fehlerfall, wenn zum Beispiel das Zielsystem nicht erreichbar ist. Verwenden Sie hierzu eine weitere Spalte zum Festhalten der Fehleranzahl. Dadurch wird der Transfer beim Überschreiten einer Fehleranzahl-Schwelle automatisch abgebrochen und der Datensatz als final fehlerhaft markiert. Zusätzlich kann eine Zeitverzögerung für die Wiederholung im Fehlerfall eingestellt werden.
Es ist möglich, über eine zusätzliche OPC-Router-Verbindung eine Alarmierung bei fehlerhaften Transferzuständen zu aktivieren.
Schrittweise Konfiguration eines Transfer-Spalten-Handshakes
-
Fügen Sie Ihrer Tabelle eine zusätzliche Spalte
TransferStatehinzu und setzen Sie den Standardwert auf0, ohne Nullwerte zuzulassen.
-
Fügen Sie den Transferstatus-Trigger zu Ihrer OPC-Router-Verbindung hinzu und öffnen Sie ihn mit einem Doppelklick zum Bearbeiten. Wählen Sie Ihre Datenbank, Ihre Tabelle und anschließend die angelegte Spalte
TransferStatezum Markieren aus.
-
Wählen Sie im Trigger die Spalten aus, die Sie verwenden möchten, und speichern Sie die Einstellungen.

-
Erstellen Sie die eigentliche Verbindung zum Zielsystem. Im gezeigten Beispiel werden Druckdaten an einen Windows-Drucker gesendet und die Produktion aktiviert.

-
Schreiben Sie nun Daten in die Tabelle und setzen Sie den Transferstatus auf
0. Dadurch wird die Verbindung ausgelöst und die Daten werden an das Zielsystem gesendet.
-
Im Microsoft SQL Server Management Studio können Sie anschließend sehen, dass der Datensatz mit dem Transferstatus
1markiert wurde und damit erfolgreich übertragen wurde.