Dokumentation QuickHMI-Schnittstelle für SQLServer Datenbanken

Werbung
Dokumentation
QuickHMI-Schnittstelle
für SQLServer
Datenbanken
Version 4.0
Indi.Systems GmbH
Universitätsallee 23
D-28359 Bremen
[email protected]
Tel + 49 421-989703-30
Fax + 49 421-989703-39
Dokumentation der QuickHMI Schnittstelle für SQLServer-Datenbanken
Inhaltsverzeichnis
Was ist die QuickHMI-Schnittstelle für SQLServer Datenbanken? ............................................ 3
Für welche Zwecke können Sie die Schnittstelle einsetzen? ..................................................... 3
Was benötige ich zum Betreiben einer SQLServer-Datenbank-Schnittstelle? .......................... 4
Wie muss ich die Schnittstelle vorbereiten? .............................................................................. 5
Einstellungen vornehmen .......................................................................................................... 6
Datenarchivierung ...................................................................................................................... 8
Aktuelles Datenabbild ................................................................................................................ 9
Command-Schnittstelle ............................................................................................................ 10
Haben Sie Fragen? .................................................................................................................... 11
Indi.Systems GmbH
Universitätsallee 23
D-28359 Bremen
[email protected]
Tel + 49 421-989703-30
Fax + 49 421-989703-39
Seite 2
Dokumentation der QuickHMI Schnittstelle für SQLServer-Datenbanken
Was ist die QuickHMI-Schnittstelle für SQLServer Datenbanken?
Mit wenigen Klicks können Sie Ihrem QuickHMI-System zusätzliche Schnittstellen
hinzufügen.
Die Schnittstelle für SQL-Server bietet QuickHMI-Entwicklern eine einfache Möglichkeit, dem
Anwender über eine vorhandene SQLServer-Datenbank eine Schnittstelle mit folgenden
Features zur Verfügung zu stellen:
1. Daten-Archivierer
Hier werden alle im QuickHMI auflaufenden Daten der Endgeräte in Tabellen der
SQLServer-Datenbank geschrieben.
2. Daten-Abbild
Komplettes Abbild der Variablen mit aktuellem Wert und Zeitpunkt der letzten
Änderung
3. Command-Schnittstelle
Sie können über einfache Tabelleneinträge, Schreibbefehle an das QuickHMI-System
senden. Der Befehl wird an das QuickHMI-System übertragen und der Datensatz
danach gelöscht.
4. Automatische Reorganisation der Daten, wenn gewünscht
Für welche Zwecke können Sie die Schnittstelle einsetzen?
Für die Benutzung der Schnittstelle gibt es unzählige Einsatzmöglichkeiten. Sie steht Ihnen
immer dann zur Verfügung, wenn Sie von ‚Außerhalb‘ auf QuickHMI oder die
angeschlossenen Geräte wie SPS, Modbusteilnehmer oder ähnliche zugreifen möchten.
Außerdem können Sie die Daten für externe Auswertungen, Charts, Reports oder einfach für
Archivierungszwecke nutzen.
Zum Beispiel kann über diese Schnittstelle eine selbst programmierte Applikation auf den
Datenbestand des Systems zugreifen, auswerten, und auch Schreibbefehle in Richtung SPS
oder Bussystem absetzen.
Durch die Universalität brauchen Sie sich auch nicht mehr in diverse Scripting-Sprachen
einarbeiten, sondern benutzen eine Programmierumgebung Ihrer Wahl.
Indi.Systems GmbH
Universitätsallee 23
D-28359 Bremen
[email protected]
Tel + 49 421-989703-30
Fax + 49 421-989703-39
Seite 3
Dokumentation der QuickHMI Schnittstelle für SQLServer-Datenbanken
Was benötige ich zum Betreiben einer SQLServer-DatenbankSchnittstelle?
Zum Betreiben der QuickHMI-SQLServer-Schnittstelle benötigen Sie eine kundenseitig
vorhandene und administrierte SQLServer-Datenbank-Instanz in Version 2005 oder neuer.
Je nach aufkommender Datenmenge sowie unter Berücksichtigung der
Aufbewahrungszeit. ist auch der Einsatz der kostenlosen Express-Versionen möglich.
Die Datenbank muss von den QuickHMI-Prozessen per TCP/IP erreichbar sein, die
Kommunikation darf nicht durch Firewalls oder ähnlichem unterbrochen sein.
Die Netzwerkverbindung zwischen QuickHMI-System und SQLServer-Datenbank sollte mit
einer Geschwindigkeit von 100Mbit/s realisiert sein, niedrigere Übertragungswerte können
eventuell dazu führen, dass die Archiv-Daten nicht in der gewünschten Performance
geschrieben werden können.
Bitte beachten Sie: QuickHMI stellt keinen Datenbank-Server und auch keine
Datenbanklizenzen zur Verfügung, sondern bietet die Anbindung einer bereits vorhandenen
Datenbank an. Hierzu notwendige Datenbank- und/oder Zugriffslizenzen müssen beim
Benutzer/Kunden vorhanden sein.
Bitte beachten Sie: Die Archivierung auf eine SQLServer-Datenbank ist hoch performant und
wurde mit handelsüblicher Hardware und einer Datenmenge von 1000 Variablenänderungen
pro 100ms problemlos getestet.
Sollte aber aus unterschiedlichen Gründen das Problem auftreten, dass das QuickHMISystem höhere Datenmengen bereitstellt, als in das Archiv geschrieben werden können, so
speichert das System diese Daten im Arbeitsspeicher zwischen und arbeitet diese Daten
nacheinander ab. Wenn allerdings diese intern gespeicherte Datenmenge einen Schwellwert
von 50000 Datensätze pro Datenquelle übersteigt, werden keine neuen Datensätze
angenommen, sondern verworfen.
Das geschilderte Problem kann z.B. bei anderweitig ausgelasteter Hardware oder zu wenig
bereitgestellten Ressourcen (z.B. virtueller Server) auftreten.
Bitte überprüfen Sie aus diesen Gründen vor produktiver Nutzung die Auslastung und
Performance des SQLServer-Zielsystems.
Außerdem ist auf der Zieldatenbank eine ausreichende Menge an freiem Speicherplatz zur
Verfügung zu stellen. Eine allgemeine Empfehlung kann nur insoweit getroffen werden, dass
bei Aktivierung der Archivfunktionalität 20GB freier Speicherplatz zur Verfügung stehen
sollte, eine genaue Angabe hängt von der Anzahl benutzter Variablen sowie der Intensität
und Menge von Wechselvorgängen der Variablenwerte ab.
Indi.Systems GmbH
Universitätsallee 23
D-28359 Bremen
[email protected]
Tel + 49 421-989703-30
Fax + 49 421-989703-39
Seite 4
Dokumentation der QuickHMI Schnittstelle für SQLServer-Datenbanken
Wie muss ich die Schnittstelle vorbereiten?
Vor Nutzung müssen Sie dem QuickHMI-System einen Satz Datenbank-Objekte zur
Verfügung stellen.
Hierzu führen Sie bitte das SQL-Script create_qhmi_dbobjects_mssqlserver_v1.sql aus dem
Verzeichnis [QuickHMI Home]\Script\ auf der SQLServer-Zieldatenbank aus. Die Objekte
müssen in der Datenbank angelegt werden, das der parametrierten Verbindung des
QuickHMI-Projekts entspricht. Zum Ausführen des Skriptes benötigen Sie eventuell
Administratoren-Rechte. Das Script muss ohne Fehler ausgeführt werden und alle
Datenbank-Objekte müssen fehlerfrei zur Verfügung stehen.
Es müssen folgende Datenbank-Objekte vorhanden und gültig sein:



Tabelle QHMI_DATAIMAGE mit
o Primärschlüssel PK_QHMI_DATAIMAGE
o Index IDX_QHMI_DATAIMAGE_DATASO_NAME
Tabelle QHMI_DATALOG mit
o Primärschlüssel PK_QHMI_DATALOG
o Index IX_QHMI_DATALOG_DATASOURCE
o Index IX_QHMI_DATALOG_TS
Tabelle QHMI_WRITEDATA mit
o Primärschlüssel PK_QHMI_WRITEDATA
o Index IDX_QHMI_WRITEDATA_DATASOURCE
Die im Projekt parametrierte Datenbankverbindung benötigt innerhalb der angelegten
Tabellen Insert-, Update- und Delete-Rechte.
Stehen diese Rechte nicht zur Verfügung, können Fehlfunktionen bzgl. der
Schnittstellenprozesse auftreten.
Im Besonderen müssen die Delete-Rechte vorhanden sein, ansonsten können die
Reorganisationsfunktionen alte Daten nicht aufräumen, das kann dann durch Volllaufen des
Datenträgers Probleme bis zum Datenbank- oder Windowsabsturz nach sich ziehen.
Das gleich gilt, wenn die Tabellen von externen Prozessen dauerhaft gesperrt werden. Bitte
prüfen Sie auch während des Betriebes, dass ausreichend Speicherplatz innerhalb der
Zieldatenbank zur Verfügung steht.
Indi.Systems GmbH
Universitätsallee 23
D-28359 Bremen
[email protected]
Tel + 49 421-989703-30
Fax + 49 421-989703-39
Seite 5
Dokumentation der QuickHMI Schnittstelle für SQLServer-Datenbanken
Einstellungen vornehmen
Sie können für die SQLServer-Schnittstelle folgende Einstellungen vornehmen:
1. Verbindung zur Zieldatenbank
2. Ein- oder Ausschalten der Archiv-Funktionalität
3. (Option) Maximale Anzahl Datensätze innerhalb der Zieltabelle
Wird die maximale Anzahl überschritten, werden die ältesten Datensätze
automatisch gelöscht
4. (Option) Das maximale Alter der Datensätze nach der Erstellung in Stunden
Wird das angegebene Alter der Archiv-Daten überschritten, so werden diese Daten
automatisch gelöscht
5. Ein- oder Ausschalten der automatischen Reorganisation innerhalb des Archivs.
Bei Deaktivierung werden die aufgeführten Löschfunktionen nicht ausgeführt. In
diesem Falle muss der Benutzer die Daten selbst löschen.
6. Ein oder Ausschalten der Bereitstellung eines Variablenabbildes (Image)
7. Ein- oder Ausschalten der Entgegenname von Schreibbefehlen über das
Datenbanktabellen
Indi.Systems GmbH
Universitätsallee 23
D-28359 Bremen
[email protected]
Tel + 49 421-989703-30
Fax + 49 421-989703-39
Seite 6
Dokumentation der QuickHMI Schnittstelle für SQLServer-Datenbanken
Um Datenquellen anzulegen und zu archivieren, wählen Sie im Projektexplorer
„Datenquellen“ aus und klicken Sie auf „Datenquelle hinzufügen“ oder „Datenquelle
bearbeiten“. Anschließend wählen Sie „externe Schnittstellen“.
Im sich öffnenden Fenster
können Sie jetzt „SQL Server“
durch
Aktivierung
der
zugehörigen
Checkbox
auswählen.
Für
die
Archivierung
wählen
Sie
anschließend eine Datenbankverbindung aus, welche im
Vorfeld angelegt wurde.
Klicken Sie auf „OK“ um
fortzufahren.
Indi.Systems GmbH
Universitätsallee 23
D-28359 Bremen
[email protected]
Tel + 49 421-989703-30
Fax + 49 421-989703-39
Seite 7
Dokumentation der QuickHMI Schnittstelle für SQLServer-Datenbanken
Datenarchivierung
Mit der Daten-Archivierer-Funktionalität werden alle Datenänderungen in die ArchivTabellen protokolliert. Sie können diese Daten für beliebige Zwecke nutzen.
Hierzu werden die Daten in der Tabelle [dbo].[QHMI_DATALOG] abgelegt.
Es werden folgende Informationen geschrieben:
Spalte
ID
TS
DATASOURCE
DATATYPE
VARNAME
VALUE
QUALITY
Spaltentyp
DECIMAL(38, 0) Not Null
DATETIME Not Null
VARCHAR(50) Not Null
VARCHAR(50) Not Null
VARCHAR(100) Not Null
VARCHAR(2048) Null
VARCHAR(50) Null
Indi.Systems GmbH
Universitätsallee 23
D-28359 Bremen
[email protected]
Information
Auto-Ident-Feld, Primärschlüssel
Zeitpunkt, Zeitstempel
Name der Datenquelle
Datentyp
NAME der VARIABLE
Wert der variable
Qualität (GOOD wenn die QuickHMI-Anbindung
zum Zielgerät vorschriftsmäßig arbeitet oder BAD
wenn Probleme (z.B. Timeouts) auftrete
Tel + 49 421-989703-30
Fax + 49 421-989703-39
Seite 8
Dokumentation der QuickHMI Schnittstelle für SQLServer-Datenbanken
Aktuelles Datenabbild
Mithilfe des Datenabbildes können Sie über externe Applikationen auf den Variablenvorrat
des QuickHMI-Systems zugreifen und aktuelle Zustände auslesen.
Hierzu werden die Daten in der Tabelle [dbo].[QHMI_DATAIMAGE]abgelegt.
Für jede Variable existiert eine Zeile innerhalb der Tabelle. Es werden folgende
Informationen geschrieben:
Spalte
TS
DATASOURCE
DATATYPE
VARNAME
VALUE
QUALITY
Spaltentyp
DATETIME Not Null
VARCHAR(50) Not Null
VARCHAR(50) Not Null
VARCHAR(100) Not Null
VARCHAR(2048) Null
VARCHAR(50) Null
Indi.Systems GmbH
Universitätsallee 23
D-28359 Bremen
[email protected]
Information
Zeitpunkt, Zeitstempel
Name der Datenquelle
Datentyp
NAME der VARIABLE
Wert der variable
Qualität (GOOD wenn die QuickHMI-Anbindung
zum Zielgerät vorschriftsmäßig arbeitet oder BAD
wenn Probleme (z.B. Timeouts) auftrete
Tel + 49 421-989703-30
Fax + 49 421-989703-39
Seite 9
Dokumentation der QuickHMI Schnittstelle für SQLServer-Datenbanken
Command-Schnittstelle
Mit der Command-Schnittstelle werden Sie in die Lage versetzt, über die Datenbank mittels
QuickHMI Daten in Geräte wie SPS oder Busteilnehmer, etc. zu schreiben. Die Befehle
können aus einer externen Anwendung, oder auch manuell erstellt werden.
Hierzu muss ein Datensatz mit nachfolgend beschriebenen Inhalt in der Tabelle
[dbo].[QHMI_WRITEDATA] angelegt werden. Der QuickHMI-Prozess verarbeitet die Daten
und löscht die Daten unmittelbar danach.
Für jede zu schreibende Variable ist eine Zeile innerhalb der Tabelle anzulegen. Es sind
folgende Informationen abzulegen:
Spalte
ID
TS
DATASOURCE
VARNAME
VALUE
Spaltentyp
DECIMAL(38, 0) Not Null
DATETIME Not Null
VARCHAR(50) Not Null
VARCHAR(100) Not Null
VARCHAR(2048) Null
Information
Auto-Ident-Feld, Primärschlüssel
Zeitpunkt, Zeitstempel
Name der Datenquelle
NAME der VARIABLE
zu schreibender Wert
SQL- Statement:
USE [QHMI] --Important => replace QHMI with your database name
GO INSERT INTO [dbo].[QHMI_WRITEDATA] ( DATASOURCE, VARNAME , VALUE) VALUES
( 'datasource1' ,'variable1001' ,'1001');
Wichtig: Die Spalten ID und TS werden automatisch gefüllt und brauchen nicht im SQLStatement übergeben werden.
Ein ausführbares Beispiel finden Sie im Verzeichnis:
[QuickHMI Home]\Script\example_insert_qhmi_writedata_mssqlserver.sql
Indi.Systems GmbH
Universitätsallee 23
D-28359 Bremen
[email protected]
Tel + 49 421-989703-30
Fax + 49 421-989703-39
Seite
10
Dokumentation der QuickHMI Schnittstelle für SQLServer-Datenbanken
Haben Sie Fragen?
Rufen Sie uns bitte unter der kostenlosen Hotline 0800-7235102 an, oder senden Sie Ihre
Frage an [email protected].
Wir werden Ihr Anliegen in kürzester Zeit bearbeiten oder direkt beantworten.
Indi.Systems GmbH
Universitätsallee 23
D-28359 Bremen
[email protected]
Tel + 49 421-989703-30
Fax + 49 421-989703-39
Seite
11
Herunterladen