SQL Expert Mode

Dieses Kapitel umfasst alle nötigen Schritte, um den SQL Expertenmodus (SQL Expert Mode) zu benutzen. Dieser Modus ist für den Benutzer mit individuellen Anforderungen zugeschnitten. Folgende Themen werden behandelt:

  1. Erstellen eines Projektes
  2. Anlegen und Einstellen einer Datenbankkonfiguration
  3. Aktivieren eines Database Server Projektes
  4. Erstellen von SQL Befehlen mithilfe des SQL Query Editors

SQL Expert Mode

Im SQL Expert Mode kann sich der Anwender die SQL-Kommandos für zum Beispiel Insert, Select oder Update selber in der SPS zusammenbauen und über den TwinCAT Database Server zur Datenbank schicken. Ein sehr flexibler und performanter Weg. Auch sogenannte Stored Procedures, welche in der Datenbank hinterlegt sind, können aus der SPS aufgerufen werden.

Projekt erstellen

Durch die TwinCAT-Connectivity-Erweiterung für Visual Studio steht eine neue Projektvorlage zur Verfügung. Beim Erstellen eines neuen Projektes erscheint nun die Kategorie TwinCAT Connectivity Project in der Auswahl.

Um ein neues TwinCAT-Connectivity-Projekt zu erstellen, wählen Sie das Empty TwinCAT Connectivity Project, legen den Projektnamen und den Speicherort fest und fügen es mit OK der Solution hinzu. TwinCAT-Connectivity-Projekte bzw. TwinCAT-Database-Server-Projekte können so komfortabel neben TwinCAT- oder anderen Visual-Studio-Projekten angelegt werden.

SQL Expert Mode 1:

In der Solution erscheint ein neuer Projektknoten. Unterhalb des Connectivity-Projektknotens können Sie Subprojekte der unterstützten Connectivity-Funktionen ergänzen.

Mit Add können Sie dem TwinCAT-Connectivity-Projekt ein neues TwinCAT-Database-Server-Projekt hinzufügen. Das TwinCAT-Database-Server-Projekt befindet sich in der Auflistung der vorhandenen Item Templates.

SQL Expert Mode 2:

Unterhalb des TwinCAT-Connectivity-Knotens wird ein neues TwinCAT-Database-Server-Projekt angelegt.

SQL Expert Mode 3:

Dieses dient nun als Basis für die anstehende Konfiguration eines TwinCAT Database Servers. Das Dokument können Sie sowohl über die Eigenschaften im Eigenschaftsfenster, als auch über einen Editor bearbeiten.

Einem Connectivity-Projekt können Sie beliebig viele TwinCAT-Database-Server-Projekte oder andere Projekte hinzufügen, und damit auch mehrere Konfigurationen in einem Connectivity-Projekt einstellen.

Editor für Server-Einstellungen

SQL Expert Mode 4:

Im Editor Server Settings können Sie die Einstellungen für den TwinCAT Database Server bearbeiten. Diese Einstellungen betreffen den entsprechenden Server im Allgemeinen. Im Drop‑down‑Menü (1) können Sie das Zielsystem über die Ams-NetId angegeben. Dafür müssen Sie über TwinCAT eine Route zum Zielsystem anlegen. Wird eine fertige Konfiguration übertragen, werden die Einstellungen auf den TwinCAT Database Server dieses Zielsystems gespeichert.

In den Log settings konfigurieren Sie Einstellungen zum Aufzeichnen von Fehlerfällen. In einem Fehlerfall erzeugt der Database Server einen detaillierten Eintrag in einer Logdatei. Diese können Sie mit dem Information Log Viewer auslesen. In den Log Settings geben Sie einen Pfad zum Ablageort und die maximale Größe der Datei an. Zusätzlich können Sie die Genauigkeit des Logs beeinflussen. Wir empfehlen, aus Performancegründen, das Loggen nach erfolgter Fehleranalyse wieder abzuschalten, wenn es nicht mehr benötigt wird.

Bei Netzwerkzugriff auf dateibasierende Datenbanken wie Access Datenbanken oder SQL Compact Datenbanken müssen Sie die Option Impersonate setzen, damit sich der TwinCAT Database Server mit dem Netzwerklaufwerk verbinden kann. Diese Funktion wird zurzeit nicht unter Windows CE unterstützt.

Sie können weitere Einstellungen konfigurieren, um das Lesen aus der Datenbank zu steuern. Diese Einstellungen beziehen sich auf den TwinCAT Database Server auf dem Zielsystem:

MaxStringLength

Maximale String-Länge der Variablen in der SPS

MaxByteArrayLength

Maximale Byte-Array-Länge der Variablen in der SPS

DBNullAllowed

Gibt an, ob NULL-Werte im TwinCAT Database Server angenommen werden.

DBConnectionTimeout

Gibt die Zeit an, wann der TwinCAT Database Server bei einem Verbindungsaufbau von einem Verbindungsfehler ausgeht.

DBCommandTimeout

Gibt die Zeit an, wann der TwinCAT Database Server bei einem abgesendeten Kommando von einem Verbindungsfehler ausgeht. Bei hohen Datenmengen kann, je nach Datenbank und Infrastruktur ein Befehl durchaus sehr viel Zeit in Anspruch nehmen.

Unterstützte Datenbanktypen

SQL Expert Mode 5:

Die installierten Datenbanktypen können in den Server Einstellungen ausgewählt werden. Standardmäßig sind alle installierten Datenbanken angewählt. Der TwinCAT 3 Database Server wird die entsprechenden Datenbankschnittstellen laden. Auf diese Weise können nicht genutzte Datenbanken auf dem Zielsystem abgewählt werden.

Datenbankkonfiguration hinzufügen

Eine neue Datenbankkonfiguration können Sie mithilfe des Kommandos Add new Database über das Kontextmenü eines Database-Server-Projektes oder das entsprechende Kommando in der Toolbar hinzufügen.

SQL Expert Mode 6:

Eine neue Datenbankkonfiguration wird als Datei auf im Projektordner hinzugefügt und in das Projekt eingebunden. Wie bei allen Visual-Studio-Projekten, werden die Informationen über die neuen Dateien im Connectivity-Projekt hinterlegt.

Editor für Datenbankkonfigurationen

SQL Expert Mode 7:

Im oberen Teil des Editors wird die Datenbank ID angezeigt (1), die für einige Funktionsbausteine in der SPS benötigt wird. Den Datenbanktyp der Zieldatenbank können Sie aus dem Drop-down-Menü auswählen (2). Hier können Sie auch die Odbc-Schnittstelle für eine Datenbank nutzen, die noch nicht unterstützt wird. Beachten Sie, dass je nach Datenbank nicht alle Funktionen des TwinCAT Database Servers gewährleistet werden.

Außerdem können Sie optional eine sogenannte FailOver-Datenbank (3) auswählen, welche im ‚Configure‘-Mode beim Fehlerfall einspringt. Bei einem Verbindungsabbruch zum Netzwerk kann in einem solchen Fall automatisch gewährleistet werden, dass keine Daten verloren gehen und an anderer Stelle gespeichert werden.

Für jede Datenbank stehen zusätzlich weitere einstellbare Parameter zur Verfügung. Je nach Datenbank wird ein Connection String (5) erstellt, welcher die Verbindung zur Datenbank beschreibt. Diese Anzeige dient zur Transparenz Ihrer eingestellten Parameter.

Über die Schaltfläche CREATE (4) können Sie eine neue Datenbank erstellen. Diese Funktion wird nur angezeigt, wenn sie von der jeweiligen Datenbank unterstützt wird.

SQL Expert Mode 8:

Sie können auch unbekannte Datenbanken mit einer ODBC-Schnittstelle konfigurieren. Dafür wählen Sie im in der Drop-down-Liste ODBC Type den Eintrag „Unknown Database“ und fügen über die Befehle im Kontextmenü Parameter hinzu. Diese können auch Passwörter beinhalten, welche dann verschlüsselt abgespeichert werden. Daraus kann der gewünschte Connection String zusammengestellt werden. Beachten Sie, dass nur begrenzte Funktionen des TwinCAT Database Servers genutzt werden können. Nur die expliziten Funktionsbausteine des SQL Expert Modes werden unterstützt.

Projekt aktivieren

Um ein konfiguriertes Projekt auf dem TwinCAT Database Server zu aktivieren, verwenden Sie im Kontextmenü des TwinCAT-Database-Server-Projektes das Kommando Activate Configuration.

SQL Expert Mode 9:

SQL Query Editor

Der SQL Query Editor ist ein Tool des Database Servers, um die Entwicklung Ihrer Applikation zu unterstützen. Mit dem Tool können Verbindungen und SQL-Befehle getestet und die Kompatibilität zwischen SPS und Datenbanken geprüft werden.

SQL Expert Mode 10:

ID

Bezeichnung

Funktion

1

Zielsystem

Auswahl des Zielsystems mit installiertem TwinCAT Database Server

2

Datenbank

Auswahl der konfigurierten Datenbankverbindung

3

Tabelle

Auswahl der vorhandenen Tabellen in der Datenbank

4

Kopieren für SPS

Kopieren des SQL-Befehls in den SPS-String. Dieser kann in den SPS‑Quellcode kopiert werden. Die Sonderzeichen werden automatisch erfasst und formatiert.

5

Export TC3

Exportieren des Tabellen-Schemas in eine SPS-Struktur. Diese kann beispielsweise im Programm für SQL-Befehle verwendet werden.

6

Get Table Schema

Auslesen der Tabellenstruktur

7

Create Cmd

Erstellen eines SQL-Befehls, basierend auf der Tabellenstruktur

8

Execute

Ausführen des SQL-Befehls

Wählen Sie dazu zunächst das Zielsystem aus den Routen Ihres TwinCAT-Systems aus (1). Der TwinCAT Database Server muss dafür auf dem Zielsystem installiert sein. Falls in der Konfiguration eine NoSql-Datenbank gespeichert sein sollte, ist zusätzlich noch ein NoSQL-Tab sichtbar. Die Dokumentation dazu finden Sie in einem späteren Unterpunkt.

Wenn Sie die Datenbankkonfigurationen auf dem Zielsystem aktiviert haben, werden alle konfigurierten Datenbanken (2) angezeigt. Weiterhin können Sie eine der verfügbaren Tabellen (3) von der Datenbank auswählen. Bezogen auf diese Tabelle können Sie einen SQL-Befehl aus dem SQL Query Editor heraus erzeugen und zur Datenbank senden. Je nach Datenbanktyp haben die SQL-Befehle eine unterschiedliche Syntax.

Um die einzelnen SQL-Befehle zu erzeugen, stehen Ihnen drei Kommandos zur Verfügung:

Auf die Unterschiede der einzelnen SQL-Befehle wird im Folgenden separat eingegangen.

Bemerkung: Da die Syntax der SQL-Befehle oft mit der Syntax im ST-Code von TwinCAT kollidiert, bietet der SQL Query Editor das Kommando "Kopieren für SPS" (4). Mit dem Kommando werden die erzeugten und getesteten SQL-Befehle mit der richtigen Formatierung für Sonderzeichen für den ST-Programmcode in den Zwischenspeicher kopiert.

Create-Table-Befehl

In der Registerkarte CREATE TABLE können Tabellen innerhalb der Datenbank erzeugt werden. Je nach Anforderung können Sie der Tabelle weitere Spalten hinzufügen (+). Nachdem Sie Spaltenname und -typ festgelegt haben, können Sie zusätzliche Properties angegeben, um zum Beispiel automatisch generierte IDs zu erzeugen.

Durch das Ausführen des Kommandos kann der Tabellenname bestimmt werden. Die Tabelle mit der konfigurierten Tabellenstruktur wird erstellt.

SQL Expert Mode 11:

Insert-Befehl

Der Insert-Befehl gibt die Möglichkeit, Datensätze in die Tabelle zu schreiben. Nachdem die Tabellenstruktur abgeholt wurde, können die Werte unter „Value“ verändert werden. Wenn daraufhin das Kommando erzeugt wird, stehen diese Werte automatisch im Insert-Befehl im richtigen Format. Durch das Ausführen des Befehls werden diese Werte in die Tabelle geschrieben.

SQL Expert Mode 12:

Wenn eine automatische ID-Erzeugung verwendet wird, kann dieser Wert nicht angepasst werden.

SQL Expert Mode 13:

Select-Befehl

In der Registerkarte SELECT können Select-Befehle erstellt und abgesendet werden. Select-Befehle ermöglichen es, Datensätze aus Datenbanken abzurufen. Nach dem Ausführen des Befehls werden Werte zurückgeliefert, wenn diese in der Tabelle vorhanden sind. In der Anzeige der Tabellenstruktur werden sie unter „Value“ gelistet. Die Pfeile unter der Anzeige dienen zur Navigation durch die einzelnen Datensätze.

SQL Expert Mode 14:

Delete-Befehl

Der Delete-Befehl verfügt über zwei Funktionsweisen.

  1. DELETE Records: Löscht den Inhalt einer Tabelle.
  2. DROP Table: Löscht die gesamte Tabelle.

Auch diesen SQL-Befehl können Sie vor dem Senden anpassen, um z. B. nur einen bestimmten Bereich der Tabelle zu löschen.

SQL Expert Mode 15:

Stored Procedures

Der TwinCAT Database Server unterstützt „Stored Procedures“, die viele Datenbanken bereitstellen, um komplexere Abfragen auf der Datenbankebene zu verarbeiten oder eine vereinfachte Schnittstelle zur Verfügung zu stellen.

Falls Stored Procedures in der Datenbank und Tabelle vorhanden sind, können Sie diese erfassen und auswählen (1). Die Ein- und Ausgabeparameter können Sie automatisch aufnehmen (2) und in die Tabellen in der Anzeige übertragen (3)(4).

Dort werden der Parametertyp, Name und Datentyp angezeigt. Zusätzlich können Sie hier Werte einfügen, um die Stored Procedure mit den Eingabewerten mit „Execute“ auszuführen. Das Ergebnis wird daraufhin in den Ausgabewerten angezeigt (4). Bei mehreren zurückgelieferten Datensätzen ist ein Durchschalten mit den Pfeiltasten möglich. Diese Funktionalität dient als Entwicklungshilfe für den Aufruf in der SPS. Dort werden diese Ergebnisse bei einem Aufruf des entsprechenden Funktionsbausteins zurückgeliefert.

SQL Expert Mode 16:

InformationLog View zur Diagnose

Um fehlerhaftes Verhalten zu diagnostizieren, steht der InformationLog View zur Verfügung.

Der InformationLog View ist ein Tool, um die Logdateien vom TwinCAT Database Server auszulesen. Protokollierte Informationen werden mit einem Zeitstempel, IDs und Fehlermeldungen im Klartext angezeigt.

Die Log-Dateien können nicht nur über den direkten Dateizugriff eingesehen oder geleert werden, sondern auch direkt über das Target. Gerade für verteilte Database Server im Netzwerk ist dies vorteilhaft, um einen schnellen und einfachen Zugriff auf die Logdatei zu erlangen. Für diesen Zugriff muss eine Route zum Zielgerät bestehen.

SQL Expert Mode 17: