Leer o escribir a SQL server express

  • 4 Respuestas
  • 55 Vistas

Esteban E

  • Aprendiz
  • **
  • Mensajes: 55
Leer o escribir a SQL server express
« : noviembre 20, 2017, 20:59:55 pm »
Hola Vi en una parte que con un post se puede enviar información y que había un scrip para enviar a sql. Lo que estoy necesitando es poder leer y escribir en una base de datos sql server valores tomados. Y escribir valores.


Saludos.

Esteban

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1762
  • Soporte Técnico
Re:Leer o escribir a SQL server express
« Respuesta #1 : noviembre 21, 2017, 10:54:14 am »
Hola Vi en una parte que con un post se puede enviar información y que había un scrip para enviar a sql. Lo que estoy necesitando es poder leer y escribir en una base de datos sql server valores tomados. Y escribir valores.

Buenos días Esteban,

Se puede indirectamente. Es decir, mediante el cliente web del PLC podes enviar una petición GET o POST al servidor web.

En una petición GET o POST podes enviar texto o valores.

Luego, en el servidor web tenes que manejar los datos recibidos, lo cual podes hacerlo con lenguaje PHP (que cualquier server soporta) y desde ese punto usas PHP para escribir la base de datos SQL.

La nota de aplicación AN032 te explica como enviar datos al servidor web utilizando el cliente web del PLC.

También explica un ejemplo de como capturar dichos datos con PHP en el servidor.

Te copio a continuación el script PHP que se expone en la nota de aplicación:

Código: (PHP) [Seleccionar]
<?php
 
// Obtener valores recibidos via HTTP GET.
 
$field1 $_GET["field1"];
 
$field2 $_GET["field2"];
 
$field3 $_GET["field3"];
 
$field4 $_GET["field4"];

 
// Obtener cadena de fecha/hora actual.
 
$datetime date("Y/m/d H:i:s");

 
// Armar cadena con datos recibidos.
 
$logString sprintf("Time: %s Field1: %s Field2: %s Field3: %s
 Field4: %s\r\n"
$datetime$field1,
 
$field2$field3$field4);

 
// Agregar cadena con datos recibidos al archivo log.txt.
 
file_put_contents("log.txt"$logStringFILE_APPEND);

 
// Responder con mensaje.
 
echo "Log OK! Hello from PHP!\r\n"
?>


El anterior script PHP, captura 4 valores transmitidos por el PLC y los almacena en un archivo de texto llamado log.txt en el servidor web.

Cada vez que recibe una peticion GET del PLC con datos transmitidos, los va almacenando en una linea nueva de log.txt:

Ejemplo:

Código: (log.txt) [Seleccionar]
Time: 2016/10/11 13:39:44 Field1: 0 Field2: 0 Field3: 0 Field4: 0
Time: 2016/10/11 13:40:14 Field1: 1 Field2: 2 Field3: 3 Field4: 4
Time: 2016/10/11 13:40:44 Field1: 2 Field2: 4 Field3: 6 Field4: 8
Time: 2016/10/11 13:41:14 Field1: 3 Field2: 6 Field3: 9 Field4: 12
Time: 2016/10/11 13:41:44 Field1: 4 Field2: 8 Field3: 12 Field4: 16
Time: 2016/10/11 13:42:14 Field1: 5 Field2: 10 Field3: 15 Field4: 20
Time: 2016/10/11 13:42:45 Field1: 6 Field2: 12 Field3: 18 Field4: 24
Time: 2016/10/11 13:43:15 Field1: 7 Field2: 14 Field3: 21 Field4: 28
Time: 2016/10/11 13:43:45 Field1: 8 Field2: 16 Field3: 24 Field4: 32
Time: 2016/10/11 13:44:15 Field1: 9 Field2: 18 Field3: 27 Field4: 36


En el caso anterior, el PLC cada 30 segundos envió al servidor web 4 campos field1, field2, field3 y field4, con valores numéricos que se incrementan.

A partir de dicho ejemplo (ver nota de aplicación AN032 ) te queda desde PHP insertar los datos en tu base de datos SQL en el servidor web.

Te dejo unos links sobre SQL y PHP:

http://aprende-web.net/progra/sql/sql_1.php

http://programacion.net/articulo/como_interactuar_con_una_base_de_datos_mysql_usando_php_141

Hay bastante información en google sobre PHP y SQL.

Saludos
« Última Modificación: noviembre 21, 2017, 10:58:32 am por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1762
  • Soporte Técnico
Re:Leer o escribir a SQL server express
« Respuesta #2 : noviembre 21, 2017, 11:06:23 am »
Recién leo que pusiste SQL server express, no se si es un servidor independiente sin acceso web, pero en general se usa SQL en conjunto con un servidor-web, que es para donde esta enfocado la nota de aplicación AN032 comentada.

Por ejemplo, viene soft listo para utilizar, un ejemplo es UwAmp, podes bajarlo en:

https://www.uwamp.com/en/

Con UwAmp al ejecutarlo, tenes en tu PC un servidor Web + SQL (MySQL) + PHP.

Es muy fácil experimentar y además te sirve de base por si luego querés migrar a un servidor en algún hosting pago (es la misma tecnología).
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com

Esteban E

  • Aprendiz
  • **
  • Mensajes: 55
Re:Leer o escribir a SQL server express
« Respuesta #3 : noviembre 21, 2017, 13:41:23 pm »
Buenas tardes. Perfecto si para hacerlo asi lo entendí lo único que me faltaría es alguna aplicaron que lea los datos de una web. Porque todo lo que vi en la AN032 es para enviar datos y no para tomar registros, eso es asi ? O estoy mirando mal ?



Saludos.

Esteban

Soporte

  • Global Moderator
  • Experto
  • *****
  • Mensajes: 1762
  • Soporte Técnico
Re:Leer o escribir a SQL server express
« Respuesta #4 : noviembre 21, 2017, 19:42:27 pm »
Buenas tardes. Perfecto si para hacerlo asi lo entendí lo único que me faltaría es alguna aplicaron que lea los datos de una web. Porque todo lo que vi en la AN032 es para enviar datos y no para tomar registros, eso es asi ? O estoy mirando mal ?

¿Es decir lo que necesitas es leer datos o respuesta de una página web?.

Podes usar la función Pawn HttpSendGetBodyData() o el componente análogo en Ladder.

La misma almacena los primeros 308 bytes recibidos del cuerpo de una página web (la parte que se visualiza).

Podes crear una página donde por ejemplo en los primeros bytes tenga por ejemplo alguna palabra y procesar luego el buffer con los datos recibidos.

Es decir, por ejemplo, usas PHP o HTML (si no es dinámica) en el servidor para que la página registro1.php tenga en su primera linea la información a leer y luego desde el PLC, haces una petición GET a registro1.php. El PLC se conecta como si fuera un "navegador" y obtiene la página.

Esa es una forma.

Otra alternativa es hacer la forma inversa:

Podes activar el PLC como servidor web (ademas de ser cliente), y desde el servidor web de la PC mediante PHP envías una petición POST al PLC con algún dato númerico (por ejemplo). El PLC lo recibe y lo procesa. Esta forma es más simple desde el punto de vista del PLC o más prolija porque ya tiene los mecanismos y no tenes que procesar buffers. Necesitas conocer la dirección IP del PLC.

Avísame si no comprendés el concepto.

Saludos.
« Última Modificación: noviembre 21, 2017, 19:46:16 pm por Soporte »
SOPORTE TÉCNICO

Slicetex Electronics
www.slicetex.com