La configuration système requise est la suivante :
Serveur SQL (par exemple, MySQL, non fourni par Schneider Electric)
Client SQL (par exemple, MySQL Workbench, non fourni par Schneider Electric)
Base de données créée avec le client SQL (par exemple, MySQL Workbench)
SQL Gateway (installation séparée sur le DVD de EcoStruxure Machine Expert)
Bibliothèque SqlRemoteAccess (incluse dans l'installation de EcoStruxure Machine Expert)
Pour pouvoir transférer les données, la connexion SQL doit être établie avec la SQL Gateway. Pour plus d'informations, consultez le document SQL Gateway - Guide utilisateur.
Les blocs fonction intervenant dans l'échange de données nécessitent l'adresse IP de la SQL Gateway et son port d'écoute. En outre, il convient de fournir au bloc fonction le nom de connexion par lequel la connexion à la base de données SQL est configurée au sein de la passerelle.
Déclaration :
PROGRAM WriteData_Secured
VAR
fbSqlDbRequest : SE_SQL.FB_SqlDbRequest;
stExtConnectionSettings : SE_SQL.ST_ExtendedConnectionSettings;
refRequestWstring : SE_SQL.RequestWstring;
refUserData : SE_SQL.UserData;
etSqlRequest : SE_SQL.ET_SqlRequest;
END_VAR
Mise en œuvre :
stExtConnectionSettings.wsDbConnectionName := "ConnectionCountry";
stExtConnectionSettings.wsGwIpAddress := "10.128.154.47";
stExtConnectionSettings.wGwPort := 3458;
stExtConnectionSettings.timSqlTimeout := T#5S;
stExtConnectionSettings.timSqlConnectionTimeout := T#10S;
etSqlRequest := SE_SQL.ET_SqlRequest.Write;
// SQL Command to insert a new Country
refRequestWstring[1] := "INSERT INTO world.countries (Country, CapitalCity, Language)";
refRequestWstring[2] := "values ('Germany', 'Berlin', 'german')";
IF NOT fbSqlDbRequest.q_xReady THEN
fbSqlDbRequest(i_xEnable:= TRUE,
i_xExecute:= FALSE,
i_etSqlRequest:= etSqlRequest,
i_refRequestWstring:= refRequestWstring,
i_uiNumOfWstrings:= 2,
i_refUserData:= refUserData,
iq_stExtendedConnSettings:= stExtConnectionSettings);
ELSE
fbSqlDbRequest(i_xEnable:= TRUE,
i_xExecute:= TRUE,
i_etSqlRequest:= etSqlRequest,
i_refRequestWstring:= refRequestWstring,
i_uiNumOfWstrings:= 2,
i_refUserData:= refUserData,
iq_stExtendedConnSettings:= stExtConnectionSettings);
END_IF
Désignation des paramètres utilisés
Étape |
Action |
---|---|
1 |
Dans la configuration de ST_ExtendedConnectionSettings, indiquez le nom de connexion (wsDbConnectionName) défini dans la SQL Gateway, par exemple ConnectionCountry. |
2 |
Dans la configuration de ST_ExtendedConnectionSettings, indiquez l'adresse IP (wsGwIpAddress) du PC sur lequel la passerelle s'exécute, par exemple 10.128.154.47. |
3 |
Dans la configuration de ST_ExtendedConnectionSettings, indiquez le port (wGwPort) de la passerelle (par défaut : 3458). |
4 |
Dans la configuration de ST_ExtendedConnectionSettings, indiquez le timeout (timSqlTimeout), par exemple T#5s. |
5 |
Dans la configuration de ST_ExtendedConnectionSettings, indiquez le timeout (timSqlConnectionTimeout), par exemple T#10s. |
6 |
Définissez l'entrée i_etSqlRequest sur SE_SQL.ET_SqlRequest.Write. |
7 |
Formulez votre requête d'écriture dans refRequestWstring, par exemple INSERT INTO world.countries (Country) values ('France'). |
8 |
Pour i_uiNumOfWstrings, indiquez les lignes de refRequestWstring, par exemple 2. |
9 |
Appelez le bloc fonction FB_SqlDbRequest avec les paramètres/variables ci-dessus. |
Déclaration :
PROGRAM ReadData_Secured
VAR
fbSqlDbRequest : SE_SQL.FB_SqlDbRequest;
stExtConnectionSettings : SE_SQL.ST_ExtendedConnectionSettings;
refRequestWstring : SE_SQL.RequestWstring;
refUserData : SE_SQL.UserData;
etSqlRequest : SE_SQL.ET_SqlRequest;
END_VAR
Mise en œuvre :
stExtConnectionSettings.wsDbConnectionName := "ConnectionCountry";
stExtConnectionSettings.wsGwIpAddress := "10.128.154.47";
stExtConnectionSettings.wGwPort := 3458;
stExtConnectionSettings.timSqlTimeout := T#5S;
stExtConnectionSettings.timSqlConnectionTimeout := T#10S;
etSqlRequest := SE_SQL.ET_SqlRequest.Read;
// SQL Command to read all Countries in a database
refRequestWstring[1] := "SELECT * FROM world.countries";
IF NOT fbSqlDbRequest.q_xReady THEN
fbSqlDbRequest(i_xEnable:= TRUE,
i_xExecute:= FALSE,
i_etSqlRequest:= etSqlRequest,
i_refRequestWstring:= refRequestWstring,
i_uiNumOfWstrings:= 1,
i_refUserData:= refUserData,
iq_stExtendedConnSettings:= stExtConnectionSettings);
ELSE
fbSqlDbRequest(i_xEnable:= TRUE,
i_xExecute:= TRUE,
i_etSqlRequest:= etSqlRequest,
i_refRequestWstring:= refRequestWstring,
i_uiNumOfWstrings:= 1,
i_refUserData:= refUserData,
iq_stExtendedConnSettings:= stExtConnectionSettings);
END_IF
Désignation des paramètres utilisés
Étape |
Action |
---|---|
1 |
Dans la configuration de ST_ExtendedConnectionSettings, indiquez le nom de connexion (wsDbConnectionName) défini dans la SQL Gateway, par exemple ConnectionCountry. |
2 |
Dans la configuration de ST_ExtendedConnectionSettings, indiquez l'adresse IP (wsGwIpAddress) du PC sur lequel la SQL Gateway s'exécute, par exemple 10.128.154.47. |
3 |
Dans la configuration de ST_ExtendedConnectionSettings, indiquez le port (wGwPort) de la passerelle (par défaut : 3458). |
4 |
Dans la configuration de ST_ExtendedConnectionSettings, indiquez le timeout (timSqlTimeout), par exemple T#5s. |
5 |
Dans la configuration de ST_ExtendedConnectionSettings, indiquez le timeout (timSqlConnectionTimeout ), par exemple T#10s. |
6 |
Définissez l'entrée i_etSqlRequest sur SE_SQL.ET_SqlRequest.Read. |
7 |
Formulez votre requête de lecture dans refRequestWstring, par exemple SELECT * FROM world.countries. |
8 |
Pour i_uiNumOfWstrings, indiquez les lignes de refRequestWstring, par exemple 1. |
9 |
Dans la configuration de i_refUserData, indiquez votre tableau UserData. |
10 |
Appelez le bloc fonction FB_SqlDbRequest avec les paramètres/variables ci-dessus. |
Étape |
Action |
---|---|
1 |
Dans Gc_uiMaxRows, configurez le nombre maximum de lignes du tableau ARRAY of UserData (requis uniquement pour FB_SqlDbRead), par exemple 20. Résultat : 20 lignes de la base de données configurée peuvent être lues. |
2 |
Dans Gc_uiMaxColumns, configurez le nombre maximum de colonnes du tableau ARRAY of UserData (requis uniquement pour FB_SqlDbRead), par exemple 10. Résultat : 10 colonnes de la base de données configurée peuvent être lues. |
3 |
Dans Gc_uiTableWstringLength, configurez le nombre maximum de caractères du tableau ARRAY of UserData à double entrée (requis uniquement pour FB_SqlDbRead), par exemple 200. Résultat : il est possible de lire un champ de 200 caractères dans la base de données configurée. |
4 |
Dans Gc_uiMaxRequest, configurez le nombre maximum de lignes du tableau ARRAY of RequestWstring, par exemple 20. Résultat : la requête peut être divisée en 20 lignes du tableau WSTRINGs. |
5 |
Dans Gc_uiRequestWstringLength, configurez le nombre maximum de caractères du tableau ARRAY of RequestWstring, par exemple 200. Résultat : une ligne de requête peut comprendre 200 caractères. |