Beckhoff TwinCAT

Für Beckhoff TwinCAT stellt SQL4automation Bibliotheken und Beispielprojekte für TwinCAT V2 (SQL4TwinCAT) und TwinCAT V3 (SQL4TwinCAT3) bereit, einschließlich einer TLS/SSL-fähigen Version-5-Bibliothek für TwinCAT V3. Beide Varianten unterstützen unverschlüsselte und verschlüsselte Kommunikation.

Anbindung Beckhoff TwinCAT SPS an SQL Datenbank, MES, ERP

Für Beckhoff TwinCAT V2 und V3 stellt SQL4automation dedizierte  Bibliotheken bereit. SQL4TwinCAT (V2) verwendet die  TcpIp.lib-Socket-Funktionen. SQL4TwinCAT3 (V3) verwendet Tc2_TcpIp.lib,  Tc2_Standard und Tc2_System. Beide können auf Soft-SPS oder Hardware-SPS  ausgeführt werden. Für TwinCAT V3 ist die TCP/IP-Server-Lizenz (TF6310)  erforderlich, die von Beckhoff lizenziert wird; eine 7-Tage-Testlizenz kann  wiederholt unter Systemlizenz aktiviert werden.

Einbindung der SQL4TwinCAT Bibliothek

Die Funktionsbausteine SQL4TwinCAT (V2) und SQL4TwinCAT3 (V3)  empfangen die Connector-IP-Adresse, den Port und den SQL-String als  Parameter. Rückgabewerte werden in das saTableValues-Array geschrieben. Beide  Bibliotheken verwenden dasselbe Schritt-Sequenz-Handshake-Muster: xExecute  startet die Anfrage, xDone signalisiert den Abschluss, xError signalisiert  einen Fehler. Der Parameter xHoldConnection hält die Socket-Verbindung  zwischen Anfragen offen.

Einstellungen SQL4automation Link

Der SQL4automation Connector wird für TwinCAT V2 und V3 mit der Zieleinstellung "Standard" betrieben (bzw. "UTF-16" für  die V3-UTF-16-Variante). Die Konfiguration ist in wenigen Klicks  abgeschlossen. Detaillierte Integrationsanleitungen finden Sie im  Downloadbereich.

FAQ’s

Häufig gestellte Fragen zu Beckhoff TwinCAT

Unterstützt SQL4automation sowohl TwinCAT V2 als auch TwinCAT V3?

Ja. Separate Bibliotheken sind für TwinCAT V2 (SQL4TwinCAT mit TcpIp.lib) und TwinCAT V3 (SQL4TwinCAT3 mit Tc2_TcpIp.lib) verfügbar. Beide können auf Soft-SPS oder Hardware-SPS ausgeführt werden und folgen demselben Integrationsmuster. Eine Version-5-Bibliothek für TwinCAT V3 unterstützt zusätzlich TLS/SSL-verschlüsselte Kommunikation.

Wird eine separate Beckhoff-Lizenz benötigt, um SQL4automation mit TwinCAT zu verwenden?

Ja. Der TwinCAT TCP/IP Server ist für beide Versionen erforderlich (V2: lizenziert oder 30-Tage-Demo; V3: TF6310-Lizenz von Beckhoff). Für die Soft-SPS ist zusätzlich die TC1200 - TC3 PLC Lizenz erforderlich. Beide unterstützen wiederholte 7-Tage-Testaktivierungen unter Systemlizenz.

Was ist der Unterschied zwischen der Standard- und der UTF-16-Variante für TwinCAT V3?

Beide Varianten sind funktional identisch. Die Standard-Variante verwendet die Standard-String-Kodierung; die UTF-16-Variante verwendet UTF-16-kodierte Strings im SQL-Telegramm. Die zum Datenbank- oder Middleware-Setup passende Variante wählen. Beide unterstützen unverschlüsselte und TLS/SSL-verschlüsselte Verbindungen.

Kann SQL4automation eine Beckhoff TwinCAT SPS mit jeder SQL-Datenbank verbinden?

Ja. SQL4automation unterstützt alle ODBC-kompatiblen Datenbanken, darunter Microsoft SQL Server, MySQL, MariaDB, PostgreSQL, Oracle und SQLite. Die Datenbank wird im SQL4automation Connector konfiguriert. Am TwinCAT-Projekt sind beim Wechsel der Datenbank keine Änderungen erforderlich.

Unterstützt SQL4automation TLS/SSL-Verschlüsselung für TwinCAT?

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

Auf welchen Beckhoff TwinCAT Systemen wurde SQL4automation getestet?

SQL4automation wurde auf Beckhoff TwinCAT V2 auf der Soft-SPS ("TwinCAT PLC") und auf Hardware-SPSen sowie auf Beckhoff TwinCAT V3 auf der Soft-SPS (TC1200 Lizenz) und auf Hardware-SPSen getestet und verifiziert. Beide Versionen erfordern eine Beckhoff TCP/IP Server Lizenz (30-Tage-Demo für V2; TF6310-Lizenz für V3 mit wiederholbaren 7-Tage-Tests).

Technische Daten

REQUIREMENTS & VERSION INFO
TwinCAT V2 Bibliothek TcpIp.lib muss in der Bibliotheksverwaltung eingebunden sein. TwinCAT TCP/IP Server (CE) muss installiert sein (lizenziert oder 30-Tage-Demomodus).
TwinCAT V3 Bibliotheken Tc2_TcpIp.lib (erfordert TF6310-Lizenz), Tc2_Standard, Tc2_System. Alle müssen unter Verweise hinzugefügt werden. 7-Tage-Testlizenzen können wiederholt unter Systemlizenz aktiviert werden.
TwinCAT V3 Lizenz TF6310 - TC3 TCP/IP Lizenz von Beckhoff erforderlich. TC1200 - TC3 PLC Lizenz für Soft-SPS erforderlich (beide unterstützen 7-Tage-Tests).
TLS Connector-Version SQL4automation Connector V5.1.0.0 oder höher für TLS/SSL-Verschlüsselung erforderlich (nur TwinCAT V3 Version-5-Bibliothek).
REQUIRED BLOCKS / LIBRARIES
  • SQL4TwinCAT.lib (V2) + TcpIp.lib in der Bibliotheksverwaltung
  • SQL4TwinCAT3 Funktionsbaustein + GVL_SQL4TwinCAT3 globale Variablenliste (V3)
  • Tc2_TcpIp.lib, Tc2_Standard, Tc2_System (V3, unter Verweise hinzufügen)
TLS / SSL ENCRYPTION
Gilt für TwinCAT V3 mit Version-5-Bibliothek + Connector V5.1.0.0 oder höher
Zertifikatspfade C:\ProgramData\SQL4automation\certs\CA (RootCA)
C:\ProgramData\SQL4automation\certs\S4AConnector (Server-Zertifikat)
C:\ProgramData\SQL4automation\certs\S4AQueryTool (Query-Tool-Zertifikat)
TwinCAT TLS-Parameter xTlsEnable: TRUE
sTlsCertificateCommonName: <IP-Adresse der SPS>
sTlsUseCase: SQL4automation
sTlsVersion: 1.3
Zertifikats-Einrichtung In TwinCAT: Ansicht > Security Screen > Verbindung zur Steuerung. 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 prüfen.
FUNCTION BLOCK PARAMETERS
Parameter Type Description
xExecute BOOL Startet die Datenbankanfrage
xAbort BOOL Setzt die Verbindung zurück
sIPAddress STRING(15) IP-Adresse des SQL4automation Connectors
iPort / uiPort UINT Portnummer des SQL4automation Connectors
xHoldConnection BOOL Hält die Socket-Verbindung nach einer Datenbankanfrage offen
tTimeOut TIME Kommunikations-Timeout (V2 Standard: 30 s)
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
diResultState DINT Ausgang: Status / Fehlercode (0 = kein Fehler)
diResultRows DINT Ausgang: Anzahl zurückgegebener Zeilen
diResultColumns DINT Ausgang: Anzahl zurückgegebener Spalten
BUFFER & GLOBAL CONSTANTS
Constant Default Description
diMaxRows (V2) / gc_diMaxRows (V3) 50 / 200 Maximale Anzahl Datensätze aus dem Tabellen-Array
diMaxColumns (V2) / gc_diMaxColumns (V3) 15 Maximale Anzahl Spalten aus dem Tabellen-Array
diStringLength (V2) / gc_diStringLength (V3) 40 String-Länge im Tabellen-Array
diUBoundRequestArray / gc_diUBoundRequestArray 20 Obere Grenze des Anfrage-String-Arrays
diRequestStringLength / gc_diRequestStringLength 80 String-Länge der Anfrage-String-Array-Einträge
diReadDataBuffer / gc_diReadDataBuffer 4096 / 8192 Maximale Bytes des Lesepuffers
diSendDataBuffer / gc_diSendDataBuffer 2048 / 8192 Maximale Bytes des Sendepuffers
gc_xSetOptionsAllowed (nur V3) TRUE Aktiviert Socket-Einstellungsoptionen. Bei manchen Steuerungen deaktivieren.
ERROR CODES (diResultState)
Error Code Description
1 Unbekannter SQL-Befehl
2 Anfrage liefert mehr Datensätze als MaxRows. Anfrage anpassen oder MaxRows erhöhen.
3 Anfrage liefert mehr Spalten als MaxColumns. Anfrage anpassen oder MaxColumns erhöhen.
5 Anfrage liefert mindestens einen Wert größer als MaxStringLength. 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
22 Keine Portnummer definiert
23 Anfrage-String ist leer
24 MaxRows nicht definiert
25 MaxColumns nicht definiert
26 Zeiger auf TableValues-Array nicht definiert
27 Zeiger auf ColumnsName-Array nicht definiert
28 Zeiger auf Request-Array nicht definiert (V2) / Sendepuffer zu klein (V3)
29 MaxStringLength nicht definiert (V2) / Sendepuffer zu klein: gc_diSendDataBuffer <= gc_diRequestStringLength (V3)
30 Sendepuffer zu klein: gc_diSendDataBuffer < 5 (nur V3)
41 Keine Verbindung zum SQL4automation Connector. Firewall, IP-Adresse und Port prüfen.
51 Anfrage-String ist größer als der Sendepuffer
61 Keine Daten zum Empfang verfügbar (V2) / Fehler beim Datenlesen (V3)
71 Verbindung zum SQL4automation Connector kann nicht geschlossen werden
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.

Beckhoff TwinCAT
nach Industrie