Vorgehensweise zur Übertragung von Daten über das SQL Gateway zwischen EcoStruxure Machine Expert und einer beliebigen Datenbank
Folgende systemspezifische Anforderungen sind zu beachten:
oServer (z. B. MySQL, von Schneider Electric nicht bereitgestellt)
oSQL-Client (z. B. MySQL Workbench, von Schneider Electric nicht bereitgestellt)
oDatenbank, erstellt mit dem SQL-Client (z. B. MySQL Workbench)
oSQL Gateway (separate Installation auf der EcoStruxure Machine Expert-DVD)
oSqlRemoteAccess-Bibliothek (Teil der Installation von EcoStruxure Machine Expert)
Vorgehensweise zur Übertragung von Daten über das SQL Gateway von EcoStruxure Machine Expert in eine beliebige Datenbank
Vor der Übertragung von Daten muss die SQL-Verbindung mithilfe des SQL Gateway hergestellt werden. Detaillierte Informationen hierzu finden Sie im Benutzerhandbuch des SQL-Gateways.
Um mit dem SQL Gateway kommunizieren zu können, müssen Sie beim Administrator der SQL-Umgebung ggf. Umständen Informationen zum SQL Gateway sowie zur Datenbank anfordern. Sie benötigen die IP-Adresse des SQL Gateway, den im SQL Gateway konfigurierten Verbindungsnamen sowie den Namen der Datenbank.
HINWEIS: Die in den Codebeispielen in dieser Bescchreibung verwendete SQL-Syntax beruht auf einem MySQL-Server. Wenn Sie einen anderen SQL-Server verwenden, können die Befehle unterschiedlich ausfallen.
Schreiben von Daten vom EcoStruxure Machine Expert in die Datenbank
Deklaration:
PROGRAM WriteData
VAR
fbWrite : SE_SQL.FB_SqlDbWrite;
stConnSettings : SE_SQL.ST_ConnectionSettings;
refRequestWstring : SE_SQL.RequestWstring;
END_VAR
Implementierung:
stConnSettings.wsDbConnectionName := "ConnectionCountry";
stConnSettings.wGwPort := 3457;
stConnSettings.wsGwIpAddress := "10.128.154.47";
stConnSettings.timSqlTimeout := T#20S;
//SQL Command to insert a new Country - MySQL-Syntax: INSERT INTO <database name>.<table name> (column1...columnN) values (value1...valueN)
//SQLite-Syntax: without "<database name>.")
refRequestWstring[1] := "INSERT INTO world.countries (Country, CapitalCity, Language)";
refRequestWstring[2] := "values ('Germany', 'Berlin', 'german')";
fbWrite( i_xExecute := TRUE,
iq_stConnSettings := stConnSettings,
i_refRequestWstring := refRequestWstring,
i_uiNumOfWstrings := 2
);
Schritt |
Aktion |
---|---|
1 |
Stellen Sie in ST_ConnectionSettings die IP-Adresse (wsGwIpAddress) Ihres PC ein, auf dem das Gateway ausgeführt wird. Beispiel: 10.128.154.47. |
2 |
Legen Sie in ST_ConnectionSettings den Port (wGwPort) des Gateways fest (Standardeinstellung: 3457). |
3 |
Geben Sie in ST_ConnectionSettings den in den SQL Gateway konfigurierten Verbindungsnamen (wsDbConnectionName) an. Beispiel: ConnectionCountry. |
4 |
Stellen Sie in ST_ConnectionSettings das Timeout (timSqlTimeout) ein. Beispiel: T#20S. |
5 |
Schreiben Sie Ihren Schreibrequest in refRequestWstring. Beispiel: INSERT INTO world.countries (Country) values ('France'). |
6 |
Stellen Sie in i_uiNumOfWstrings die Zeilen in refRequestWstring ein. Beispiel: 2. |
7 |
Rufen Sie FB_SqlDbWrite mit den oben aufgeführten Einstellungen/Parametern/Variablen auf. |
HINWEIS: Pro Funktionsbausteinaufruf kann nur jeweils ein Request gesendet werden.
Auslesen von Daten von EcoStruxure Machine Expert in die Datenbank
Deklaration:
PROGRAM ReadData
VAR
fbRead : SE_SQL.FB_SqlDbRead;
stConnSettings : SE_SQL.ST_ConnectionSettings;
refRequestWstring : SE_SQL.RequestWstring;
refUserData : SE_SQL.UserData;
END_VAR
Implementierung:
stConnSettings.wsDbConnectionName := "ConnectionCountry";
stConnSettings.wGwPort := 3457;
stConnSettings.wsGwIpAddress := "10.128.154.47";
stConnSettings.timSqlTimeout := T#1 M;
//SQL Command to read all Countries in the database - MySQL-Syntax: SELECT (column1...columnN) FROM <database name>.<table name> [where <column>=<value>]
//SQLite-Syntax: without "<database name>."
refRequestWstring[1] := "SELECT * FROM world.countries";
fbRead ( i_xExecute := TRUE,
iq_stConnSettings := stConnSettings,
i_refRequestWstring := refRequestWstring,
i_uiNumOfWstrings := 1,
i_refUserData := refUserData
);
Schritt |
Aktion |
---|---|
1 |
Stellen Sie in ST_ConnectionSettings die IP-Adresse (wsGwIpAddress) Ihres PC ein, auf dem das SQL Gateway ausgeführt wird. Beispiel: 10.128.154.47. |
2 |
Legen Sie in ST_ConnectionSettings den Port (wGwPort) des Gateways fest (Standardeinstellung: 3457). |
3 |
Geben Sie in ST_ConnectionSettings den im SQL Gateway konfigurierten Verbindungsnamen (wsDbConnectionName) an. Beispiel: ConnectionCountry. |
4 |
Stellen Sie in ST_ConnectionSettings das Timeout (timSqlTimeout) ein. Beispiel: T#20S. |
5 |
Schreiben Sie Ihren Leserequest in refRequestWstring. Beispiel: SELECT * FROM world.countries. |
6 |
Stellen Sie in i_uiNumOfWstrings die Zeilen in refRequestWstring ein. Beispiel: 1. |
7 |
Geben Sie in i_refUserData das UserData-Array (Benutzerdaten) an. |
8 |
Rufen Sie FB_SqlDbRead mit den oben aufgeführten Einstellungen/Parametern/Variablen auf. |
Erweiterte Einstellungen für den Datenpuffer / Request mit den globalen Parametern
HINWEIS: Die erweiterten Einstellungen können speziell für Ihr Projekt im Bibliotheksverwalter überschrieben werden.
Schritt |
Aktion |
---|---|
1 |
Legen Sie in Gc_uiMaxRows die maximale Anzahl an Zeilen für das ARRAY of UserData fest (nur erforderlich für FB_SqlDbRead). Beispiel: 20. Ergebnis: In der konfigurierten Datenbank können 20 Zeilen gelesen werden. |
2 |
Legen Sie in Gc_uiMaxColumns die maximale Anzahl an Spalten für das ARRAY of UserData fest (nur erforderlich für FB_SqlDbRead). Beispiel: 10. Ergebnis: In der konfigurierten Datenbank können 10 Spalten gelesen werden. |
3 |
Legen Sie in Gc_uiTableWstringLength die maximale Anzahl an Zeichen im zweidimensionalen ARRAY of UserData fest (nur erforderlich für FB_SqlDbRead). Beispiel: 200. Ergebnis: In der konfigurierten Datenbank können 200 Zeichen gelesen werden. |
4 |
Legen Sie in Gc_uiMaxRequest die maximale Anzahl an Zeilen für das ARRAY of RequestWstring fest. Beispiel: 20. Ergebnis: Der Request kann in 20 WSTRINGs-Zeilen aufgespalten werden. |
5 |
Legen Sie in Gc_uiRequestWstringLength die maximale Anzahl an Zeichen im ARRAY of RequestWstring fest. Beispiel: 200. Ergebnis: Eine Request-Zeile kann 200 Zeichen umfassen. |