Direkte Lesefunktionen
Die in diesem Teil vorgestellten CTRL-RDB-Lesefunktionen, dienen zum Lesen von historischen Alarmen und Ereignissen aus der angekoppelten RDB.
Es kann über spezifische CTRL-RDB-Lesefunktionen direkt auf die RDB zugegriffen, d.h. direkt von der RDB gelesen, werden.
Der WinCC OA Client (UI, CTRL) unterhält eine direkte Verbindung und Kommunikation zur RDB, egal ob der RDB Archiv-Manager läuft oder nicht. Die CTRL-RDB Funktionen wurden in einer eigenen DLL implementiert und daher muss die DLL auch für die Manager, in denen Sie verwendet werden, geladen sein.
Details zur Aktivierung der Lesefunktionen siehe im Kapitel Mögliche config-Einträge bei der RDB-Archivierung bei "queryRDBdirect". Bei Verwendung der normalen WinCC OA Lesefunktionen (ohne Suffix RDB) werden diese auf die direkten Lesefunktionen in die RDB umgeleitet (falls die erforderlichen Einträge in die config-Datei parametriert sind).
Vorteil der Verwendung der RDB Lesefunktionen ist der kürzere Datenfluss (Abfragen gehen direkt in die RDB und nicht über den Umweg Event-, Data- und RDB-Manager).
Zusätzlich gibt es eigene APM Abfrage-Funktionen, die für die Abfrage einer zweiten RDB-Datenbank verwendet werden können und bei der Abfrage den DPE-Namen anstatt der Element_ID verwenden. Über die Funktionen können aus einer zweiten Datenbank Daten in ein WinCC OA Projekt abgefragt werden. Beachten Sie, dass APM-Spezifische Config-Einträge wie APMDbUser verwendet werden sollen - siehe Kapitel Mögliche config-Einträge bei der RDB-Archivierung.
Um die Leistung bei historischen Alert-Abfragen (Alert Screen) zu verbessern, können Sie die Anzahl der zusätzlich abgefragten Werte (_add_value) der Alarme begrenzen. Die Anzahl der zusätzlich gespeicherten Werte wird dadurch nicht beeinflusst oder begrenzt.
Um die maximale Anzahl der zusätzlich abzufragenden Werte festzulegen, setzen Sie in der Tabelle ARC_CONFIG den Parameter "max_add_value" auf einen Wert von 1 zu 32. Werte außerhalb des Bereiches 1 bis 32 werden ignoriert. Wenn die _add_values nicht abgefragt werden, werden diese Views nicht verwendet.
Standardmäßig werden alle 32 Standardwerte abgefragt.
CTRL-RDB-Lesefunktionen
Die Länge von Strings, die in die Datenbank geschrieben werden können ist auf 4000 Zeichen eingeschränkt.
Werden im UI mehrere Abfragen gemacht, wird Pro Abfrage mit queryRDBdirect ein Thread gestartet. Alle Threads teilen sich dieselbe DB-Verbindung. Wenn das UI geschlossen wird, soll die gerade aktive Abfrage abgebrochen werden. Die Meldung 'Database query has been cancelled', wird im UI angezeigt. Das System wartet jedoch bis die Abfrage fertig ist und schließt erst dann die Verbindung.
Systemübergreifende Queries mit unterschiedlichen Schemata funktionieren ausschließlich wenn "queryRDBdirect = 1" gesetzt wurde.
CTRL-RDB-Lesefunktionen | Originale WinCC OA Lesefunktionen |
---|---|
alertGetPeriodRDB() | alertGetPeriod() |
dpGetAsynchRDB() | dpGetAsynch() |
dpGetPeriodRDB() | dpGetPeriod() |
dpQueryRDB() | dpQuery() |
dpGetPeriodAPM | dpGetPeriod() |
dpQueryAPM | dpQuery() |
alertGetPeriodAPM | alertGetPeriod() |
dpGetAsynchAPM | dpGetAsynch() |
Die Geschwindigkeit der Funktion dpGetPeriod() wurde mit der Version 3.7 erhöht. Wesentlich schnellere Abfragen sind jetzt möglich. Um die verbesserte dpGetPeriod() zu verwenden, führen Sie ein Datenbank-Update aus indem Sie die Scripts und RDB_packages.sql ausführen. Die Scripts befinden sich im Verzeichnis <wincc_oa_path>/data/RDBSetup/ora.
Die RDB spezifischen Funktionen unterstützen die gleichen Parameter wie die WinCC OA Standardfunktionen. Nachfolgend werden die Abweichungen dokumentiert.
alertGetPeriodRDB()
Parameter: Die gleichen Parameter wie bei der Funktion alertGetPeriod() erklärt. In der RDB ist der Zeitstempel von Alarmen immer unterschiedlich und daher liefert der Parameter counts immer 0 zurück.
Beschreibung: Diese Funktion dient zum Lesen historischer Meldeattribute (alert1, alert2, ...), für welche zwischen den Zeiten t1 und t2 Meldungen in der angekoppelten RDB vorkommen.
dpGetAsynchRDB()
Parameter: Die gleichen Parameter wie bei der Funktion dpGetAsynch() erklärt.
Beschreibung: Diese Funktion dient zum Lesen historischer Datenpunktattribute (dp1, dp2, ...) zu einer bestimmten Quellzeit t aus der angekoppelten RDB.
dpGetPeriodRDB()
Parameter: Die gleichen Parameter wie bei der Funktion dpGetPeriod() erklärt.
Beschreibung: Diese Funktion dient zum Abfragen historischer Datenpunktattribute (dp1, dp2, ...) über einen bestimmten Zeitraum t1 bis t2 aus der angekoppelten RDB.
dpQueryRDB()
Parameter: Die gleichen Parameter wie bei der Funktion dpQuery() erklärt.
Beschreibung: Fragt Attributwerte mit Hilfe von SQL Statements aus der angekoppelten RDB ab.
Folgende WinCC OA spezifische Attribute werden nicht unterstützt:
_KF (Konfig)
_DT (Detail)
_AT (Attribut)
Falls sie dennoch abgefragt werden, wird mit einer Fehlermeldung darauf hingewiesen und das Query wird nicht zu Ende geführt. Für Ereignisse können sämtliche Attribute abgefragt werden.
Für Alarme können alle Attribute gemäß der Tabelle unter Beschreibung der Tabellen und Views abgefragt werden. Zusätzlich können alle Attribute abgefragt werden, die im _state Attribut codiert sind.
dpGetPeriodAPM
Die gleichen Parameter wie bei der Funktion dpGetPeriod() erklärt.
dpQueryAPM
Die gleichen Parameter wie bei der Funktion dpQuery() erklärt.
alertGetPeriodAPM
Die gleichen Parameter wie bei der Funktion alertGetPeriod() erklärt.
dpGetAsynchAPM
Die gleichen Parameter wie bei der Funktion dpGetAsynch() erklärt.
SQL-Abfragefunktionen
SQL-Abfragefunktionen können verwendet werden, um die RDB-Datenbank über die SQL abzufragen.