Registrar Datos del PLC en una Base de Datos a traves de OPC y aplicación en VB.Net

En esta práctica vamos a registrar los datos que nos interesen de nuestro PLC a una Base de Datos a traves de un Servidor OPC, para ello desarrollaremos una simple aplicación en Visual Basic.Net.

Los requisitos para la práctica son contar con un Servidor OPC, en nuestro caso utilizaremos el Simatic Net de Siemens, el Visual Studio que se puede descargar  gratuitamente, y un sistema gestor de Base de Datos, en este ejemplo Access, aunque se puede utilizar otros.

Partiremos de la base que tenemos creado nuestro programa del PLC y la configuración del OPC.

1.- El primer paso será crear una nueva aplicación en Visual

2.- Una vez creada nuestra aplicación, lo que haremos será agregar la referencia OPC Automation 2.0, para ello nos vamos a:

Proyecto -> Propiedades de (nombre aplicación) , se nos abre una ventana emergente y seleccionamos la pestaña COM y agregamos dicha referencia

3.- En nuestro Form1 agregamos dos controles Button, uno será para conectarse y Registrar datos y el otro para desconectarse, nos vamos a las propiedades de cada uno de ellos y le damos un nombre generalmente se usa el btn... y le cambiamos el nombre a mostrar, tambien insertamos el control Timer

4.- Ahora ya pasaremos al Código de programación, vamos a trabajar con el espacio de nombre referente al OPC, con archivos de texto plano y Bases de Datos, así que nuestras primeras líneas de código seran:

5.- Y la declaración de las variables que vamos a utilizar en nuestro formulario.

6.- Hacemos un doble click sobre nuestro button conectar y esté es el código para conectarse a nuestro Servidor OPC Simatic Net, si todo transcurre sin ningún error activaremos el control Timer1, que nos servira para registrar los datos cada tiempo de intervalo establecido en sus propiedades

Al analizar el código, el lector se preguntara porque utilizar el archivo ItemStep7.txt, la explicación esta en que he cogido todos los simbolos creados en nuestro programa de PLC y los he copiado a un archivo de texto plano, estos serán los items que vamos a registrar, evidentemente esto se puede obviar, pero es una forma de hacerlo dinamicamente, ya que el array de items se redimensiona según la cantidad de items que contenga nuestro archivo, para que quede mas claro adjunto unas imagenes

Otra aclaración que hay que hacer es de donde sale "PLC.315 2DP" , esta es la referencia para acceder a los items a traves del OPC, que es el nombre que se le asigna al PLC, y el modelo del PLC, tambien se puede observar cuando se hace la configuración del Hardware de la estación:

Equipo PC Simatic ->Configuración ->Propiedades OPC Server ->Pestaña S7 (Utilizar simbolos) ->Seleccionados

7.- Una vez conectados al Servidor OPC , activamos el Timer, y este ejecutará el codigo en el intervalo de tiempo establecido, el código es el siguiente y los que hace es un bucle  para recorrer todos los items, leer su valor e insertarlos en la base de datos

8.- RegistrarDatos es un procedimiento que lo que haces es crear la conexión a la base de datos y ejecutar el comando pasado y la desconexión de la Base de Datos

Nuestra Base de Datos esta creada en Access 2007 y tiene una sola tabla con los siguentes campos

10.- Por último nos falta el codigo de nuestro Button desconectar

11.- Este ha sido un ejemplo básico, muy sencillo, a partir de aqui se puede mejorar y adaptar a las necesidades

Falta mencionar, que uno de los primeros ejemplos que vi y me sirvio de referencia fue en el fantastico blog Notas de Automatización

Julio del 2012