Beispiel für eine Abfrage in die RDB

Am nachfolgenden Beispiel soll vorgeführt werden, wie man die Tabellen in Oracle auch mit relativ einfachen Mitteln wie einem Excel-Sheet abfragen kann. Die hier aufgezeigten Vorgangsweisen gelten im Grunde für alle Zugriffe auf die historischen Daten, die nicht seitens WinCC OA durchgeführt werden. Für Abfragen mit Hilfe von WinCC OA selbst gelten die bekannten Methoden.

Vorbereiten der ODBC-Datenquelle

Falls es nicht schon vorher geschehen ist, ist Oracle als neue ODBC-Datenquelle dem System bekannt zu geben. Dies erfolgt über die Systemsteuerung von Windows XP unter der Rubrik Verwaltung und dort unter Datenquellen (ODBC). Für andere Windows-Versionen gelten analoge Einstellungen.

Über die Schaltfläche Hinzufügen erhält man eine Liste mit den am System verfügbaren Datenbanktreibern. Für unser Beispiel soll die Verbindung zu einer Oracle Datenbank mit Namen ORAETM2 Verbindung aufgenommen werden.

Abbildung 1. Parametrierung der ODBC-Datenquelle

Für die Klärung der erforderlichen Optionen wenden Sie sich bitte an Ihren Systembetreuer.

Vorbereiten von Excel

Nachdem die gewünschte ODBC-Datenquelle dem System bekannt ist, kann sie jetzt in Excel dazu benutzt werden, um aus ihr Werte abzufragen und in die gewünschten Zellen eines Arbeitsblattes einzutragen. Zuerst muss die ODBC-Datenquelle in Excel eingebunden werden.

Dazu wählt man im Menü Daten den Menüpunkt Externe Daten importieren und danach den Punkt Daten importieren... . Im sich darauf öffnenden Dialog des Datenverbindungs-Assitents wählt man die Schaltfläche Neue Quelle... und erhält damit die Möglichkeit den Datenquellentyp Oracle auswählen zu können.

Abbildung 2. Datenverbindungs-Assistent in Excel

Durch Klicken auf den Button Weiter gelangt man in eine Maske, in der man die Details über Servername und Anmeldeinformationen wie Benutzername und Passwort eingeben muss. Diese Informationen erhalten Sie wieder von Ihren Systemadministrator, bzw. sie sollten sich mit den Angaben beim Installieren des RDB Archiv-Managers decken. Zumindest für den dort angegebenen User wurde ja ein eigenes Schema mit den nötigen Tabellen eingerichtet.

Sind die getätigten Angaben richtig, stößt man durch Klick auf die Schaltfläche Weiter > den Verbindungsaufbau zur gewünschten Datenquelle an. Im sich darauf öffnenden Dialog des Verbindungs-Assistenten werden die Tabellen und Views in Oracle für den angemeldeten User angezeigt.

Abbildung 3. Datenverbindungs-Assistent in Excel - Daten wählen

Nach Auswahl von z.B. dem Default-View VIEW_EVENT_HISTORY lassen sich später die dort zusammengefassten Werte mit einem SQL-Statement abfragen und (einer) Zellen im Arbeitsblatt zuordnen. Die Abfrage eines Views hat den Vorteil, dass, im Gegensatz zu Excel, der View selbst ein Joinen der in seiner Abfragen definierten Tabellen durchführt.

Abermals durch Weiter > gelangt man in die abschließende Maske des Verbindungs-Assistenten, in der man nun der neuen Verbindung einen Namen geben kann. Danach schließt man den Vorgang mit Hilfe der Schaltfläche Fertig stellen ab.

Um nun eine Abfrage der Werte per Excel durchführen zu können, wird (werden) zuerst die gewünschten Zelle(n) im Arbeitsblatt markiert. Das Ziel sei, Datenpunktname, Zeitstempel und Wert von archivierten Daten aus diesem View abzufragen. Es liegt somit auf der Hand, dass vorerst drei Zellen markiert werden.

Danach kommt es über weite Strecken zu einer Wiederholung der bei der Auswahl der Datenquelle getätigten Schritte, wobei jetzt allerdings auf die zuerst vorbereitete Datenquelle (in unserem Fall der ausgewählte VIEW_EVENT_HISTORY) zugegriffen wird.

Also wieder mit Hilfe des Menüs Daten, dem Menüpunkt Externe Daten importieren... und danach mit Daten importieren... ins Auswahlmenü der Datenquellen gelangen. Diesmal wird aber eben keine neue Datenquelle ausgesucht, sondern der zuvor ausgewählte View selektiert.

Abbildung 4. Datenquelle auswählen

Die so selektierte Datenquelle wird mit Hilfe der Schaltfläche Öffnen für lesende Zugriffe geöffnet. Im nächsten Schritt können dann die gewünschten Daten abgefragt werden. Der Dialog Daten importieren bietet Gelegenheit auf der einen Seite die zu füllenden Zellen des Arbeitsblattes zu wählen, bzw. noch eine Korrektur vorzunehmen.

Abbildung 5. Daten importieren

Mit Hilfe der Schaltfläche Abfrage bearbeiten... können dann die gewünschten Daten abgefragt werden.

Anmerkung:

Abfragen mit Wildcards dauern immer länger als gezielte Abfragen auf ein Datenpunktelement. Abfragen über mehrere Archivgruppen dauern auch länger als Abfragen über eine Archivgruppe. Abfragen können beschleunigt werden indem pro Abfrage nur Datenpunktelemente abgefragt werden, die in derselben Archivgruppe gespeichert sind.

VORSICHT:

Die Änderungen der DPIdentification-Stammdaten (unit, alias und comment), die während einer verlorenen Datenbankverbindung durchgeführt wurden, werden nicht gecached und gehen daher verloren.

VORSICHT:

Wenn eine Abfrage an den RDB-Manager zu einer Fehlermeldung führt (wenn keine Daten zurück zum Client gesendet werden, sondern eine Fehlermeldung), wird der Speicher nicht freigegeben und der Speicherverbrauch steigt.

Wir wählen dazu als Befehlstyp ein SQL-Statement, dass wie folgt aufgebaut ist:

Abbildung 6. OLE DB-Abfrage bearbeiten

Die Argumente "element", "TS", und "value_number" sind klarerweise die Namen der Tabellen, die unter anderem in diesem View enthalten sind. Eine Übersicht finden Sie unter Beschreibung der Tabellen und Views.

Anmerkung:

Zu große numerische Werte (für Oracle: ab +/1e126) werden jetzt vom RDB auf +/-9.99e125 "getrimmt".

VORSICHT:

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.

Um die Zeitstempel im richtigen Format darstellen zu können, wird die Anweisung "to_char" verwendet. Der Button OK schließt das Bearbeiten der Abfrage ab und liefert beispielsweise folgendes Ergebnis:

Abbildung 7. Fertige Abfrage in Excel