OPC ODBC
Datenaustausch zwischen OPC und relationalen Datenbanken
Viele Unternehmen nutzen heutzutage ODBC-konforme Datenbanken wie z. B. SQL Server oder Oracle zum
Speichern von Geschäftsdaten. Häufig besteht auch die Anforderung, Prozessdaten aus dem Produktionsbereich,
aus Laborsystemen usw. zu speichern und auszuwerten.
Ein solches Unternehmen muss nicht in ein eigenständiges Prozessdatenarchiv investieren, sondern kann
bestehende Ressourcen für die direkte Erfassung und Weitergabe von Prozessdaten aus der bestehenden
Datenbank einrichten und somit deren Potenzial voll ausnutzen.
Relationale Datenbanken und Verbindungsmethoden
Die meisten relationalen Datenbanken unterstützen ODBC (Open Database Communication). Dies gilt für
Microsoft SQL, Microsoft Access, Oracle, aber auch für viele relationale Open Source-Datenbanken wie MySQL
und PostgreSQL. Manchmal ist der ODBC-Treiber bereits in die Datenbank integriert, doch in einigen Fällen
(z. B. bei MySQL) muss er separat heruntergeladen werden. Mit ODBC verfügen wir über eine gemeinsame
Schnittstelle, über die wir mit unzähligen Datenbanken kommunizieren können. Damit wären wir also startklar,
richtig? Na ja, nicht wirklich. Bei vielen Datenbanken sorgt ein direkter oder nativer Treiber für höhere
Performance. So benötigt beispielsweise eine Oracle-Datenbank das OCI (Oracle Call Interface), um maximale
Performance zu erreichen.
Tabellenstrukturen:
Bei Tabellenstrukturen gibt es zwei ganz unterschiedliche Methoden zum Speichern von OPC-Daten.
Wie ein Prozessdatenarchiv (zeitorientiert)
Wie eine relationale Datenbank
Was ist der Unterschied? Am einfachsten ist es, den Unterschied in der Praxis zu erklären:
Hier zunächst die Methode, mit der ein Prozessdatenarchiv die Daten speichert:
Tagname |
Wert |
Qualität |
Zeitstempel |
Tag1 |
34 |
Good, non-specific |
11/13/2008 14:23 |
Tag2 |
15.9473 |
Good, non-specific |
11/13/2008 14:23 |
Tag1 |
34 |
Good, non-specific |
11/13/2008 14:25 |
Tag2 |
15.8645 |
Good, non-specific |
11/13/2008 14:25 |
Tag1 |
35 |
Good, non-specific |
11/13/2008 14:27 |
Tag2 |
15.9824 |
Good, non-specific |
11/13/2008 14:27 |
Tag1 |
35 |
Good, non-specific |
11/13/2008 14:29 |
Tag2 |
15.7649 |
Good, non-specific |
11/13/2008 14:29 |
Tag1 |
34 |
Good, non-specific |
11/13/2008 14:30 |
Tag2 |
15.8318 |
Good, non-specific |
11/13/2008 14:30 |
Tag1 |
34 |
Good, non-specific |
11/13/2008 14:32 |
Tag2 |
15.6214 |
Good, non-specific |
11/13/2008 14:32 |
Und so funktioniert es mit einer relationalen Tabelle:
Kennzahl# |
Zeitstempel |
Tag1 |
Tag2 |
1 |
11/13/2008 14:23 |
34 |
15.9473 |
2 |
11/13/2008 14:25 |
34 |
15.8645 |
3 |
11/13/2008 14:27 |
35 |
15.9824 |
4 |
11/13/2008 14:29 |
35 |
15.7649 |
5 |
11/13/2008 14:30 |
34 |
15.8318 |
6 |
11/13/2008 14:32 |
34 |
15.6214 |
Hier sind die einzelnen Zeilen einer Kennzahl zugeordnet.
Eintragen der Daten in eine Datenbank
Bei den meisten Prozessdatenarchiven, die es heute auf dem Markt gibt, gehören OPC-Clients zum Lieferumfang.
Dies hat einen guten Grund: Der OPC-Client ermöglicht es dem Prozessdatenarchiv, Daten aus Tausenden von Geräten
zu erfassen. Jetzt braucht es nur noch einen OPC-Server, und schon hat man Konnektivität bis direkt zum Gerät.
Für die Anbieter von Prozessdatenarchiven ist das eine feine Sache, denn sie müssen nur eine Schnittstelle
entwickeln: einen OPC-Client. Früher mussten sie unzählige Arbeitsstunden investieren, um Gerätetreiber für jedes
einzelne Gerät zu entwickeln, das der jeweilige Kunde verwenden wollte. Relationale Datenbanken wurden mit einer
anderen Zielsetzung entwickelt als Prozessdatenarchive. Viele Anwender bevorzugen es, Datenbanken auf
Nicht-Windows-Plattformen zu installieren. Dies kann zum Problem werden, wenn versucht wird, einen OPC-Client zu
integrieren, denn OPC läuft unter DCOM, und DCOM ist Microsoft-Technologie. Wenn es jedoch um die konsequente
Wahrung von DCOM-Sicherheit und um maximale Kompatibilität zwischen OPC-Anwendungen geht, führt eigentlich kein
Weg an Windows vorbei. Was das bedeuten soll: Man benötigt die Anwendung eines anderen Anbieters auf einem Windows-PC, um
OPC-Daten in eine Datenbank zu bekommen.