Stäubli VAL3 / SQL4Val3
Target: "Staeubli Val3"
Voraussetzungen
Die SQL4Val3 Target-Library kann auf Stäubli CS8C Steuerungen, ab Val3 Version 7.0 eingesetzt werden.
Das Beispielprojekt kann im Stäubli Robotics Studio enthaltenen Emulator oder einer Stäubli CS8C Steuerung ausgeführt werden.
Instanz / Interface
Input-Daten
sioSocket: sioSocket Socket für die Verbindung.
SQL4ARequest
sRequest: String Array SQL Abfrage
Output-Daten
SQL4AResult
nRows: num Anzahl Zeilen der Antwort der SQL-Abfrage
nColumns: num Anzahl Spalten der Antwort der SQL-Abfrage
nState: num Status der Abfrage
sHeaders String Array Spaltennamen der Antwort
sValues 2 dimensionales String Array Rückgabewerte der Antwort
Socket erstellen
Unter Systemsteuerung Socket einen neuen Socket erstellen.
Der Socket wird als Client definiert und standardmäßig als SQL4automation definiert.
Folgende Einstellungen können vorgenommen werden:
Server Adresse: IP-Adresse des Computers des Connectors. Zum Austesten mit dem Emulator des SRS wird hier die interne IP-Adresse 127.0.0.1 verwendet, da sich Emulator und Connector auf demselben PC befinden.
Port: Der Port kann frei gewählt werden. Standardmäßig ab 11001.
Time Out: Zeit in Sekunden bis eine Exception ausgelöst wird.
Zeichenkettenende Standardmäßig 13
Bibliothek und benutzerdefinierte Datentypen in Val3 Projekt einbinden
Im Beispielprojekt sind die Bibliotheken und benutzerdefinierten Datentypen bereits ins Projekt eingegeben. Zur Ausführung des Beispielprojekts werden diese Schritte nicht benötigt. Für die Erstellung eines eigenen Projekts wird trotzdem erklärt, wie eine Bibliothek und benutzerdefinierte Datentypen in ein Projekt eingebunden werden.
Projekte
SQL4Val3 Eigentliches Programm für die SQL-Abfragen.
main Das Beispielprogramm, das die Einbindung von SQL4Val3 zeigt.
Datentypen
S4ARequest Datentyp für die SQL Anfrage
S4AResult Datentyp für die SQL Antwort
Datentypen und Bibliothek einbinden
Benutzerdefinierten Datentypen und Bibliotheken werden im Stäubli Robotics Studio unter dem Register Referenzen ins Projekt eingebunden.
Mit Rechts-Klick auf das Projekt, dem eine Referenz hinzugefügt werden soll, kann „neue Bibliothek“ für das Hinzufügen einer neuen Bibliothek und „neuer benutzerdefinierter Datentyp“ für das Hinzufügen eines neuen Datentyps, ausgewählt werden.
Mit S4ARequest.sRequest[0]="SELECT …" kann auf die Variablen der Struktur zugegriffen werden.
Durch den Aufruf
call SQL4Val3:SQL4Val3(sioSocket, S4ARequest, S4AResult)
wird eine SQL-Anfrage ausgeführt.
Beispielprojekt SQL4Val3Sample
Projekt testen
Die Ethernet Verbindung zwischen Controller/Emulator und SQL4automation Connector und Datenbank muss angeschlossen und der SQL4automation Connector gestartet sein.
Es muss ein Link mit Stäubli Target und Verbindung zur Test-Datenbank eingerichtet sein.
Wie die Verbindung zur Testdatenbank konfiguriert wird, ist unter Einrichten der Verbindung an die Testdatenbank beschrieben.
Auf dem Emulator oder dem CS8C-Controller die main Applikation starten.
Fehlercodes Return-Value
| Fehler-Nummer | Fehler-Beschreibung |
|---|---|
| 1 | Unbekannter SQL Befehl |
| 2 | Abfrage ergibt mehr Datensätze als Anzahl Zeilen S4AResult.sValues, Abfrage anpassen oder Anzahl Zeilen S4AResult.sValues vergrößern |
| 3 | Abfrage ergibt mehr Spalten als mit Anzahl Spalten S4AResult.sValues, Abfrage anpassen oder Anzahl Spalten S4AResult.sValues vergrößern |
| 5 | Abfrage gibt min. ein Wert zurück, der größer ist als mit MaxStringLength definiert, Abfrage anpassen oder MaxStringLength vergrößern |
| 10 | Interner Connector Fehler |
| 11 | Interner Connector Fehler, Datenbank kann nicht geöffnet werden |
| 23 | Request-String ist leer |
| 24 | Anzahl MaxRows nicht definiert |
| 25 | Anzahl MaxColumns nicht definiert |
| 29 | Größe MaxStringLength nicht definiert |
| >100 | Fehlernummern der ODBC Datenbankanbindung (anbei ein paar bekannte Fehlernummern) |