CODESYS

Für CODESYS stellt SQL4automation zwei Beispielprojekte zur Verfügung. Eines für CODESYS V2 und eines für CODESYS V3 Steuerungen. SQL4CODESYS kann direkt als Bibliothek eingebunden werden. SQL4CODESYS läuft auf allen CODESYS Steuerungen, die die SysSocket.lib (V3), respektive die SysLibSockets.lib (V2) unterstützen und mit einer Ethernet Schnittstelle ausgerüstet sind.

Anbindung SPS CODESYS an SQL Datenbank, MES, ERP

Für CODESYS stellt SQL4automation zwei Beispielprojekte zur Verfügung. Eines für CODESYS V2 und eines für CODESYS V3 Steuerungen. SQL4CODESYS kann direkt als Bibliothek eingebunden werden. SQL4CODESYS läuft auf allen CODESYS Steuerungen, die die SysSocket.lib (V3), respektive die SysLibSockets.lib (V2) unterstützen und mit einer Ethernet Schnittstelle ausgerüstet sind.

Einbindung der SQL4CODESYS Bibliothek

Der SQL4CODESYS Bibliothek werden Parameter wie IP-Adresse und Port des Connectors und der SQL-String übergeben. Die Rückgabewerte der SQL Abfrage werden in das zweidimensionale String Array ptTableValues geschrieben.

Einstellungen SQL4automation Link

Der SQL4automation Connector wird für CODESYS Steuerungen mit den Targeteinstellungen "Standard" betrieben. Die Konfiguration ist mit wenigen Klicks abgeschlossen.

FAQ's

Häufig gestellte Fragen zu CODESYS

Welche CODESYS-Laufzeitversionen unterstützt SQL4automation?

SQL4automation unterstützt sowohl CODESYS V2 als auch CODESYS V3. Für V3 muss die Steuerung SysSocket.lib unterstützen und CODESYS 3.5.11.0 oder höher ausführen, zuzüglich der Pflichtbibliotheken (Memory, Network, Standard, SysMem, SysTypes2 Interfaces). Für V2 ist SysLibSockets.lib erforderlich. Für beide Versionen werden Beispielprojekte mitgeliefert.

Kann SQL4automation eine Wago SPS mit einer SQL-Datenbank verbinden?

Ja. SQL4automation wurde auf den Wago-Steuerungen 750-885, 750-841, I/O-IPC, Speedway und PFC100/200 getestet und verifiziert. Alle verwenden CODESYS und unterstützen die erforderliche Socket-Bibliothek. Die SQL4CODESYS-Bibliothek wird direkt in das Wago-Projekt integriert, ohne zusätzliche Laufzeitkomponenten.

Funktioniert SQL4automation mit CODESYS-basierten Steuerungen von Drittherstellern?

Ja. SQL4automation ist kompatibel mit jeder CODESYS-basierten Steuerung, die die Standard-CODESYS-Socket-Bibliotheken unterstützt und über eine Ethernet-Schnittstelle verfügt. Dies umfasst Steuerungen von Bosch Rexroth, Wago, Festo, KEBA, Solvimus, Kendrion Kuhnke und vielen weiteren. Kontaktieren Sie uns für eine Kompatibilitätsprüfung, wenn Ihre Steuerung nicht in der Liste steht.

Wie werden SQL-Anfrageergebnisse an das CODESYS-Programm zurückgegeben?

In CODESYS V2 werden die Ergebnisse in das globale zweidimensionale String-Array saTableValues (Zeilen x Spalten) geschrieben. In CODESYS V3 wird über die stResult-Struktur sowie die Methoden GetData() und GetColumnName() zugegriffen. Zeilen- und Spaltenindizes sind 0-basiert. Kein Parsen, keine Serialisierung und keine eigene Protokollimplementierung erforderlich.

Unterstützt SQL4automation TLS-verschlüsselte Kommunikation für CODESYS?

Ja, für CODESYS V3 mit der Version-5-Bibliothek und Connector V5.1.0.0 oder höher. Die Verschlüsselung wird durch xTlsEnable = TRUE aktiviert und erfordert den Zertifikats-Allgemeinnamen, den Use Case und die TLS-Version (1.3). Zertifikate werden über den CODESYS Security Screen installiert. Verbindung immer zuerst ohne Verschlüsselung in Betrieb nehmen.

Auf welchen CODESYS SPS Steuerungen wurde die SQL4CODESYS Bibliothek erfolgreich getestet?

CODESYS SP PLC WinNT, CODESYS SP RTE, CODESYS Control Win SL, CODESYS Control RTE SL, Bosch Rexroth L20, Bosch,,, Rexroth L25, Wago 750-885, Wago 750-841, Wago I/O-IPC, Wago Speedway, Wago PFC100/200, KEBA CP-242, Solvimus auvis.box, Festo CPX, Festo CEC, Kendrion Kuhnke FIO Controller 113

Technische Daten

REQUIREMENTS & VERSION INFO
CODESYS V2 Voraussetzung CoDeSys SysLibSockets.lib muss verfügbar sein und im Bibliotheksverwalter hinzugefügt werden
CODESYS V3 Mindestversion CODESYS 3.5.11.0 oder höher
V3 Pflichtbibliotheken Memory V3.5.7.0, Network V3.5.7.0, Standard V3.5.9.0, SysMem 3.5.5.0, SysTypes2 Interfaces 3.5.4.0
TLS-Unterstuetzung TLS/SSL-verschlüsselte Kommunikation verfügbar ab CODESYS V3 (Version-5-Bibliothek) und Connector V5.1.0.0 oder höher
TLS-Bibliotheksdatei S4A_SQL4CodesysV3.compiled-library wird über S4A_SQL4CODESYS_Sample.projectarchive installiert
REQUIRED BLOCKS / LIBRARIES
  • SQL4CoDeSys.lib (V2) oder S4A_SQL4CodesysV3.compiled-library (V3)
  • SysLibSockets.lib (V2) im Bibliotheksverwalter hinzugefügt
  • Memory V3.5.7.0 (nur V3)
  • Network V3.5.7.0 (nur V3)
  • Standard V3.5.9.0 (nur V3)
  • SysMem 3.5.5.0 (nur V3)
  • SysTypes2 Interfaces 3.5.4.0 (nur V3)
TLS / SSL ENCRYPTION
Connector-Version TLS/SSL erfordert SQL4automation Connector V5.1.0.0 oder höher und SQL4CODESYS V3 Version-5-Bibliothek
Zertifikatspfade C:\ProgramData\SQL4automation\certs\CA (RootCA)
C:\ProgramData\SQL4automation\certs\S4AConnector (Server-Zertifikat)
C:\ProgramData\SQL4automation\certs\S4AQueryTool (Query-Tool-Zertifikat)
CODESYS TLS-Parameter xTlsEnable: TRUE
sTlsCertificateCommonName: <IP-Adresse der SPS>
sTlsUseCase: SQL4automation
sTlsVersion: 1.3
Zertifikats-Einrichtung In der CODESYS-Programmierumgebung: Ansicht > Security Screen > Verbindung zur Steuerung herstellen. Client-Zertifikat unter Geräte > Eigene Zertifikate hinzufügen. Server-Zertifikat unter Geräte > Vertrauenswürdige Zertifikate hinzufügen.
Inbetriebnahme-Reihenfolge Verbindung immer OHNE TLS zuerst testen. Verschlüsselung erst aktivieren, wenn die unverschlüsselte Kommunikation funktioniert. Systemzeit vor TLS-Aktivierung prüfen.
FUNCTION BLOCK PARAMETERS
Parameter Type Description
xExecute BOOL Startet die Datenbankanfrage
sIPAddress STRING(15) IP-Adresse des SQL4automation Connectors
iPort INT Portnummer des SQL4automation Connectors
tTimeout TIME Kommunikations-Timeout
xHoldConnection BOOL Hält die Socket-Verbindung nach einer Datenbankanfrage offen
dwRequestBufferSize DWORD Größe des Anfrage-Datenpuffers (nur V3)
dwResponseBufferSize DWORD Größe des Antwort-Datenpuffers (nur V3)
dwResponseMaxReturnParams DWORD Maximale Anzahl Rückgabeparameter (Connector >= V4.0, Standard 0) (nur V3)
dwResponseMaxRows DWORD Maximale Anzahl Zeilen in der Antwort (nur V3)
dwResponseMaxColumns DWORD Maximale Anzahl Spalten in der Antwort (nur V3)
dwResponseMaxStringLen DWORD Maximale String-Länge in der Antwort (nur V3)
dwResponseCutStringLen DWORD Strings länger als dieser Wert werden abgeschnitten (0 = inaktiv) (nur V3)
xReady BOOL Ausgang: bereit für eine neue Datenbankanfrage
xBusy BOOL Ausgang: Datenbankanfrage wird ausgeführt
xDone BOOL Ausgang: Datenbankanfrage erfolgreich abgeschlossen
xError BOOL Ausgang: Datenbankanfrage mit Fehler beendet
stResult.diResultState DINT Ausgang: Status / Fehlercode (0 = kein Fehler) (V3)
stResult.dwResultRows DWORD Ausgang: Anzahl zurückgegebener Zeilen (V3)
stResult.dwResultColumns DWORD Ausgang: Anzahl zurückgegebener Spalten (V3)
diResultState DINT Ausgang: Status / Fehlercode (0 = kein Fehler) (V2)
diResultRows DINT Ausgang: Anzahl zurückgegebener Zeilen (V2)
diResultColumns DINT Ausgang: Anzahl zurückgegebener Spalten (V2)
BUFFER & GLOBAL CONSTANTS
Constant Default Description
diMaxRows 50 Maximale Anzahl Datensätze aus dem Tabellen-Array (V2)
diMaxColumns 15 Maximale Anzahl Spalten aus dem Tabellen-Array (V2)
diStringLength 40 String-Länge im Tabellen-Array (V2)
diMaxReturnParameter 5 Maximale Anzahl Rückgabeparameter (V2)
diUBoundRequestArray 20 Obere Grenze des Anfrage-String-Arrays (V2)
diRequestStringLength 80 String-Länge des Anfrage-String-Arrays (V2)
diReadDataBuffer 4096 Maximale Bytes des Lesepuffers (V2)
diSendDataBuffer 2048 Maximale Bytes des Sendepuffers (V2)
ERROR CODES (diResultState)
Error Code Description
1 Unbekannter SQL-Befehl
2 Anfrage liefert mehr Datensätze als diMaxRows. Anfrage anpassen oder diMaxRows erhöhen.
3 Anfrage liefert mehr Spalten als diMaxColumns. Anfrage anpassen oder diMaxColumns erhöhen.
5 Anfrage liefert mindestens einen Wert, der größer als MaxStringLength ist. Anfrage anpassen oder MaxStringLength erhöhen.
10 Interner Connector-Fehler
11 Interner Connector-Fehler; Datenbank kann nicht geöffnet werden
21 Keine IP-Adresse definiert (sIPAddress = '')
22 Keine Portnummer definiert (iPort = 0)
23 Anfrage-String ist leer
24 MaxRows nicht definiert (diMaxRows = 0)
25 MaxColumns nicht definiert (diMaxColumns = 0)
26 Zeiger auf TableValues-Array nicht definiert (nur V2)
27 Zeiger auf ColumnsName-Array nicht definiert (nur V2)
28 Zeiger auf Request-Array nicht definiert (nur V2)
29 MaxStringLength nicht definiert (diStringLength = 0)
30 Zeiger auf ReturnParameter-Array nicht definiert (nur V2)
41 Keine Verbindung zum SQL4automation Connector. Firewall, IP-Adresse und Port prüfen.
50 Senden des vollständigen Anfrage-Strings fehlgeschlagen. Verbindung oder TCP-Puffer prüfen. (nur V2)
51 Anfrage-String ist größer als der Sendepuffer (diSendDataBuffer)
71 Verbindung zum SQL4automation Connector kann nicht geschlossen werden (nur V2)
99 Timeout: Keine Antwort vom Connector innerhalb des Zeitfensters
>100 Fehlercodes der ODBC-Datenbankverbindung
40002 Allgemeiner Fehler in der SQL-Anfrage; Anfrage-String ist ungültig

Steigen Sie jetzt auf SQL4automation um.

Industrie­steuerungen direkt mit SQL-Datenbanken verbinden. Praxiserprobt seit 2007 für maximale Leistung und Sicherheit, ganz ohne Middleware.

CODESYS
nach Industrie