Cómo transferir datos mediante SQL Gateway entre EcoStruxure Machine Expert y cualquier base de datos

 

¿Cómo funciona?

Requisitos del sistema

Los siguientes requisitos del sistema son necesarios:

oservidor (por ejemplo, MySQL, no suministrado por Schneider Electric)

ocliente SQL (por ejemplo, MySQL Workbench, no suministrado por Schneider Electric)

obase de datos, creada con el cliente SQL (por ejemplo, MySQL Workbench)

oSQL Gateway (una instalación separada del DVD de EcoStruxure Machine Expert)

obiblioteca SqlRemoteAccess (parte de la instalación de EcoStruxure Machine Expert)

Cómo transferir datos entre SQL Gateway y cualquier base de datos a través de EcoStruxure Machine Expert

Antes de transferir los datos, debe crear la conexión SQL con la SQL Gateway. Para obtener más información, consulte la SQL Gateway User Guide.

Para poder interactuar con la SQL Gateway, es posible que necesite información acerca de SQL Gateway y de la base de datos que deberá facilitarle el administrador del entorno SQL. Necesita la dirección IP de la SQL Gateway, el nombre de conexión configurado en la SQL Gateway y el nombre de la base de datos.

NOTA: La sintaxis SQL en los ejemplos de código de esta descripción depende de un servidor MySQL; si utiliza otro servidor SQL, los comandos pueden variar.

Introducción de datos de EcoStruxure Machine Expert en la base de datos

Declaración:

PROGRAM WriteData
VAR
     fbWrite           : SE_SQL.FB_SqlDbWrite;
     stConnSettings    : SE_SQL.ST_ConnectionSettings;
     refRequestWstring : SE_SQL.RequestWstring;
END_VAR

Implementación:

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
);

Paso

Acción

1

En ST_ConnectionSettings, defina la dirección IP (wsGwIpAddress) del PC en el que se está ejecutando la pasarela. Por ejemplo, 10.128.154.47.

2

En ST_ConnectionSettings, defina el puerto de la pasarela (wGwPort); el puerto predeterminado es 3457.

3

En ST_ConnectionSettings, defina el nombre de la conexión (wsDbConnectionName) que se configura en la SQL Gateway. Por ejemplo, ConnectionCountry.

4

En ST_ConnectionSettings, defina el timeout (timSqlTimeout). Por ejemplo, T#20S.

5

Introduzca la petición para escribir en refRequestWstring. Por ejemplo, INSERT INTO world.countries (Country) values ('France').

6

En i_uiNumOfWstrings, defina sus líneas en refRequestWstring. Por ejemplo, 2.

7

Llame a la función FB_SqlDbWrite con los ajustes/parámetros/variables anteriores.

NOTA: Sólo se puede enviar una petición por llamada del bloque de funciones.

Lectura de datos de EcoStruxure Machine Expert en la base de datos

Declaración:

PROGRAM ReadData
VAR
        fbRead            : SE_SQL.FB_SqlDbRead;
        stConnSettings    : SE_SQL.ST_ConnectionSettings;
        refRequestWstring : SE_SQL.RequestWstring;
        refUserData       : SE_SQL.UserData;
END_VAR

Implementación:

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
);

Paso

Acción

1

En ST_ConnectionSettings, defina la dirección IP (wsGwIpAddress) del PC en el que se está ejecutando la SQL Gateway. Por ejemplo, 10.128.154.47.

2

En ST_ConnectionSettings, defina el puerto de la pasarela (wGwPort); el puerto predeterminado es 3457.

3

En ST_ConnectionSettings, defina el nombre de la conexión (wsDbConnectionName) que se configura en la SQL Gateway. Por ejemplo, ConnectionCountry.

4

En ST_ConnectionSettings, defina el timeout (timSqlTimeout). Por ejemplo, T#20S.

5

Escriba la petición de lectura en refRequestWstring. Por ejemplo, SELECT * FROM world.countries.

6

En i_uiNumOfWstrings, defina sus líneas en refRequestWstring. Por ejemplo, 1.

7

En i_refUserData, defina la matriz de UserData.

8

Llame a la función FB_SqlDbRead con los ajustes/parámetros/variables anteriores.

Configuración avanzada del búfer de datos/Petición con los parámetros globales

NOTA: La configuración avanzada se puede sobrescribir de forma específica para su proyecto en el Administrador de bibliotecas.

Paso

Acción

1

En Gc_uiMaxRows, defina el número máximo de filas de la ARRAY of UserData (solo es necesario para FB_SqlDbRead). Por ejemplo, 20.

Resultado: Se pueden leer 20 filas de la base de datos configurada.

2

En Gc_uiMaxColumns, defina el número máximo de columnas de la ARRAY of UserData (solo es necesario para FB_SqlDbRead). Por ejemplo, 10.

Resultado: Se pueden leer 10 columnas de la base de datos configurada.

3

En Gc_uiTableWstringLength, defina el número máximo de caracteres de la ARRAY of UserData bidimensional (solo es necesario para FB_SqlDbRead). Por ejemplo, 200.

Resultado: Se puede leer un campo de 200 caracteres de la base de datos configurada.

4

En Gc_uiMaxRequest, defina el número máximo de líneas de la ARRAY of RequestWstring. Por ejemplo, 20.

Resultado: La petición se puede dividir en 20 líneas de WSTRINGs.

5

En Gc_uiRequestWstringLength, defina el número máximo de caracteres en la ARRAY of RequestWstring. Por ejemplo, 200.

Resultado: Una línea de petición puede incluir 200 caracteres.