Cheetah_Schnittstelle für SQLServer

Werbung
Dokumentation
QuickHMI- Schnittstelle
für SQLServer-Datenbanken
Version 5.2
Indi.Systems GmbH
Universitätsallee 23
D-28359 Bremen
[email protected]
Tel. + 49 421-989703-30
Fax + 49 421-989703-39
Dokumentation „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 „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:

Daten-Archivierer
Hier werden alle im QuickHMI auflaufenden Daten der Endgeräte in Tabellen, der SQLServerDatenbank geschrieben.

Daten-Abbild
Komplettes Abbild der Variablen mit aktuellem Wert und Zeitpunkt, der letzten Änderung

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.

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 „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 QuickHMISystem 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, das das QuickHMI-System 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 „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, ob 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 „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 „QuickHMI-Schnittstelle für SQLServer-Datenbanken“
Um Datenquellen anzulegen und zu archivieren, wählen Sie im Projekt Explorer „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
Datenbank-verbindung 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 „QuickHMI-Schnittstelle für SQLServer-Datenbanken“
Datenarchivierung
Mit der Daten-Archivierer-Funktionalität werden alle Datenänderungen in die Archiv-Tabellen
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) auftreten)
Tel + 49 421-989703-30
Fax + 49 421-989703-39
Seite 8
Dokumentation „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) auftreten
Tel + 49 421-989703-30
Fax + 49 421-989703-39
Seite 9
Dokumentation „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 SQL-Statement ü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 „QuickHMI-Schnittstelle für SQLServer-Datenbanken“
Haben Sie Fragen?
Bei Fragen zu unserem Produkt „QuickHMI“, rufen Sie uns bitte unter der kostenlosen Hotline
an oder senden Sie uns eine E-Mail.
Kostenlose Hotline: 0800 - 72 35 102
E-Mail:
[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