A raiz de una consulta que me hicieron hace unas semanas, he estado indagando un poco cómo se puede leer y escribir sentencias SQL en TIA Portal usando un PLC. En mi caso, con un S7-1200.
La cosa es que poder, se puede, pero no me parece que a día de hoy sea demasiado amigable.
Para ponerlo en marcha he seguido la página web de Siemens sobre la conexión de un PLC a una base de datos de Microsoft SQL
El ejemplo que viene para la V17 no lo he probado ya que como os comenté a principios de año durante este 2023 me voy a centrar en usar solamente en la V16 para no tener demasiadas versiones en mi PC para hacer los cursos y tutoriales.
Pero lo cierto es que puedes descargar los archivos fuentes para versiones inferiores, importarlos y compilar lo necesario para poner todo en marcha.
Contenido
SQL en TIA Portal
Funcionar, funciona. Eso te lo garantizo porque lo he probado y tras configurar adecuadamente una máquina virtual donde instalé SQL Express para hacer las pruebas, he podido tanto leer como escribir en tablas.
Pero el sabor que me ha dejado es un poco amargo por la naturaleza propia de cómo es un PLC.
Y es que si se quiere trabajar con SQL medianamente en serio, creo que es engorroso especialmente si has de leer de la base de datos.
Par insertar nuevos registros en una tabla es sencillo y tan «solo» debes construir la sentencia SQL en el PLC, que la puedes hacer en SCL para mayor facilidad.
Pero cuando quieres recuperar datos de la BD la cosa se complica bastante y salvo que vaya a ser algo muy muy sencillo, creo que no merece la pena a día de hoy con las herramientas existentes.
Ojo, es lo que a mi me parece, que puede que a ti te parezca lo mejor que se ha inventado después de las natillas. Quien sabe.
La cuestión es que si pones un PLC en la misma red que una base de datos de SQL significa que hay un PC al otro lado del cable, y bajo mi punto de vista, y si la cosa es de cierta envergadura, creo que lo mejor a día de hoy es que las comunicaciones recaigan del lado del PC o bien de un IOT que haya de intermediario entre ambos mundos.
¿Lo usarías?
Depende un poco de tus necesidades, de las políticas de seguridad de la empresa donde lo vayas a aplicar, y del volumen de datos a intercambiar.
Por ejemplo, nosotros no tenemos conectados los PLC a la red de proceso. Usamos siempre equipos intermedios por necesidad como puede ser un PC o un IOT.
Y creo que así va a seguir siendo habida cuenta de lo que cuesta un IOT de Weidmüller por ejemplo y lo contento que estamos con su rendimiento, lo fácil que se pone en marcha y la cantidad de cosillas que puedes hacer como vemos en el curso de iniciación a la Industria 4.0.
Ni que decir tiene que lo puedes hacer con el IOT 2050 de Siemens también.
Ahora bien, si conectas el PLC a la red de proceso (con sus seguridades dadas por los chicos de IT) y el intercambio de datos es simple, puede ser una opción válida.
Me explico: por ejemplo si quieres simplemente registrar desde el PLC a la BD a modo de log de temperaturas, datos de proceso etc, creo que sí puede ser una alternativa.
También si los datos que tienes que recuperar de la BD son sencillos y de una tabla… algo muy básico.
Si la cosa ya es más compleja y tienes que leer de muchas tablas y muchos datos, creo que lo mejor es que ese trabajo te lo de hecho ya un equipo externo al PLC y que sobre él recaiga ese trabajo, bien con un PC que trabaje a modo de HMI/SCADA/Editor de recetas etc..
Pero esta solo es mi opinión de conectar SQL en TIA Portal
Quiero dejar claro que esto solo es mi opinión de los primeros contactos que he tenido.
Insisto que para que el PLC escriba en la base de datos es relativamente sencillo, pero leer de la BD no es para nada trivial a pesar del ejemplo que te dan en la web de Siemens.
Video de SQL en TIA Portal
Vamos a echar un vistazo al vídeo donde se ve trabajar esta herramienta.
¿Qué te ha parecido?
Como ves para trabajar desde el PLC al SQL no hay mucho problema, pero en la lectura me parece demasiado complicado. Es más sencillo con un IOT aunque haya que aflojar un poco la cartera. Pero estoy casi convencido que a medio plazo ahorras mucho tiempo (y por tanto dinero) haciéndolo de una forma más sencilla con un IOT que te facilite las cosas.
¿Cuál es tu impresión?
Enseño a programar PLC de Siemens a través de mis cursos.
Más información sobre mi aquí
Puedes seguirme en cualquiera de las siguientes redes sociales.
3 Comentarios
Súper interesante esta forma de gestionar los datos en una BD, he visto diferentes aplicaciones de bases SQL y todas pintan bastante complicado a la hora de leer los datos que reciben del PLC o poder jugar con ellos. Muchas gracias por estos artículos.
Un saludo.
Buenas Iñigo, te comento mi punto de vista;
Si un sistema necesita BD es por «algo», y ese algo no lo puede realizar ningún PLC, un ejemplo de «algo» sería, si necesitamos registrar los Kg de una almazara, estos deben estar relacionados con los usuarios, los cuales se deben crear, guardar, filtrar etc, si los registros del PLC son para guardar abonos de una abonadora, pues lo mismo, no serán usuarios pero serán abonos, etc,.
Por lo tanto, no es de mucha utilidad conectar un PLC a una BD, porque como mucho eso haría una mínima parte de lo que se necesite, el resto lo hace un PC o lo que sea, menos el PLC, al final necesitas algo intermedio para manejar datos, datos lo que se entiende como datos.
En definitiva, en tu introducción cambiaría «datos» por «valores», que es muy diferente una cosa de la otra, es mi opinión sobre este tema.
El nuevo reto, cuando quieras.
Saludos.
Buenas tardes; por analizar y ver el código y variables las regiones a que zona del OLC se refiere y si hay otras zonas que sean de rápida lectura o que sean de respuesta. Me informo del dispositivo IOT.
Un saludo.