Mostrando entradas con la etiqueta Visual Basic. Mostrar todas las entradas
Mostrando entradas con la etiqueta Visual Basic. Mostrar todas las entradas

21 de enero de 2013

Una aplicación para importar tags de Step 7-Micro/WIN a WinCC Flexible

Actualmente estoy implicado en automatizar una máquina en la que vamos a montar un PLC Siemens S7-200, concretamente una CPU 224, y como HMI un panel también Siemens modelo OP73.

A diferencia de la gama S7-300, no es posible tener integrado en un mismo proyecto el programa del PLC y el programa de la pantalla, con lo que los tags (variables) que deben compartir se deben introducir manualmente. Para hacer esta tarea más sencilla, y aprovechando las opciones para importar tags que tiene el software de programación de paneles WinCC Flexible, he hecho una sencilla aplicación en Visual Basic que me permitirá copiar y pegar tags desde Step 7-Micro/WIN y guardarlos en un fichero en formato CSV que aceptará sin problemas WinCC Flexible.

Al ejecutar la aplicación veremos la siguiente ventana:


7 de octubre de 2011

Comunicación OPC con un PLC Logix5000 desde Visual Basic

Ya he hablado en el blog de comunicación OPC, en concreto en esta entrada traté el acceso a un WinAC desde Visual Basic. Ahora, aprovechando la configuración que tengo con SoftLogix sobre una máquina virtual, voy a hacer lo mismo.

Mi prueba consistirá en crear un proyecto para SoftLogix en el que definiré un par de tags, OPC_BIT y OPC_DINT, que me servirán para probar la comunicación. En el SoftLogix no voy a hacer nada más, simplemente le transferiré el proyecto, lo pondre en modo Run y monitorizaré el contenido de los tags. Luego generaré un enlace OPC con el RSLinx y desde un programa en Visual Basic leeré y escribiré en los tags del PLC.


Para establecer una comunicación OPC necesitaré un servidor OPC, y Rockwell nos lo proporciona integrado con el RSLinx, pero ojo, deberemos asegurarnos de que no sea la versión lite. Recomiendo echar un vistazo a este documento Cómo obtener resultados con RSLinx Classic (pdf) donde se especifica para qué sirve cada versión de RSLinx.

3 de octubre de 2011

Accediendo a un PLC Simatic a través de ethernet con Libnodave

En esta entrada usé la biblioteca libre Libnodave para acceder a un PLC S7-300 desde Visual Basic a través de un adaptador serie/MPI. Varios lectores me hicieron consultas sobre si era posible usarla para acceder a un PLC S7-300/400 a través de ethernet, pero al no tener disponible un controlador adecuado para hacer pruebas pues no tenía respuesta. Sin embargo, de la entrada anterior tengo preparada una máquina virtual con WinAC RTX y su puerto ethernet como puerto de comunicaciones, que creo que es un banco de pruebas ideal para hacer pruebas con Libnodave.

Lo primero que voy a hacer es un proyecto en Step7 con un único DB, por ejemplo el DB10, con un único dato de formato BYTE. Lo transferiero al WinAC y pongo el PLC software en modo Run. Me pongo on line y monitorizo la variable.


En el PLC no voy a tocar nada más. A continuación lo que haré será una aplicación en Visual Basic, usando la biblioteca Libnodave a través de ethernet, que se conectará al PLC y leerá y escribirá en esa variable como prueba que el sistema funciona.

15 de marzo de 2011

Accediendo a un PLC Siemens desde Visual Basic: LIBNODAVE

Libnodave es una biblioteca libre de funciones para comunicar con PLC Siemens, utilizando adaptadores MPI/PPI o Ethernet. Está disponible para descarga directa aquí y viene con el código fuente, programas de prueba, bibliotecas para Linux, Windows (32 bits), .NET y ejemplos. Para programar podemos elegir una gran variedad de lenguajes y entornos: C, C++, C#, Delphi, Pascal, Perl, Visual Basic y Visual Basic for Aplications.

Para probarlo voy a partir de la configuración que tengo hecha de las dos entradas anteriores en las que comunicaba un S5-95U con un 315-2DP por Profibus. Ahora lo que pretendo es conectarme desde mi ordenador al S7-300 para visualizar, en una aplicación en Visual Basic, las lecturas que hago de la periferia integrada del S5.

Para comunicar mi PC con el 315-2DP tengo un adaptador serie/MPI de Siemens referencia 6ES7901-2BF00-0AA0. No viene en la lista de adaptadores probados en la página de Libnodave pero ha funcionado bien, incluso a través de un adaptador USB/serie de la marca Prolific.

Para clarificar, en el siguiente esquema represento el conexionado que tengo entre los diferentes elementos:

Lo que voy a hacer en este proyecto es una aplicación en Visual Basic 2010 Express a la que voy a incorporar la biblioteca Libnodave para leer y escribir en el bloque de datos donde interactúo con la periferia del S5-95U: lo único que hará mi aplicación es leer y escribir en el DB10 del 315-2DP.

8 de febrero de 2010

Comunicación entre un PLC Beckhoff y Visual Basic

En una aplicación reciente he tenido que comunicar a través de Ethernet un PLC Beckhoff CX9010 con una aplicación programada en Visual Basic 2008 Express. Para realizar esta conexión tenemos a nuestra disposición de manera gratuita controles OCX y DLL de comunicación. Estas son las notas que resumen las pruebas que hice para obtener una comunicación óptima.

La comunicación entre el PLC y Visual Basic se realiza mediante el protocolo ADS (Automation Device Specification) y funciona sobre los protocolos TCP/IP o UDP/IP. En el PLC no es necesario realizar ninguna configuración especial. Simplemente se deben tener claras las variables que necesitamos comunicar para poder agruparlas y leerlas y/o escribirlas en una única operación. Mis primeras pruebas leían y escribían variables individualmente, pero al pasar de un pequeño número de operaciones de lectura/escritura el programa se ralentizaba. Entonces opté por agrupar todas las variables necesarias en dos estructuras, una con los datos que se van a leer desde la aplicación en Visual Basic (estructura de lectura) y otra con los datos que la aplicación podrá modificar (estructura de escritura). Como ejemplo pondré estas dos estructuras declaradas en 'Data types':

3 de septiembre de 2009

Comunicación OPC entre un PLC software WinAC RTX y Visual Basic (Parte 2ª y última)

En la 1ª parte hemos dejado lista la parte del Step7, ahora vamos a meternos con el Visual Basic.

Creamos un proyecto nuevo con el Visual Basic 2008 Express y vamos a la pestaña de 'Referencias' para añadir el componente de Siemens para acceder al OPC. Pulsamos sobre Agregar... => Referencia


En la ventana de 'Agregar referencia' vamos a la pestaña 'COM' y buscamos la línea que pone 'Siemens OPC DAAutomation 2.0'. La seleccionamos y pulsamos el botón 'Aceptar'.

1 de septiembre de 2009

Comunicación OPC entre un PLC software WinAC RTX y Visual Basic (Parte 1ª)

En esta entrada tuve mi primer contacto con un PLC software de Siemens. Ya he trabajado un poco más con él y es tan sencillo como un S7-300 o un S7-400.

Como HMI (interfaz de usuario) tenía dos opciones. Una era usar un run-time del WinCC Flexible, el cual requiere pagar por una licencia; la otra era usar el servidor OPC de Siemens que viene con el Simatic NET y programar en Visual Basic. El servidor OPC NO requiere licencia (increíble) y el Visual Basic 2008 Express es gratuito y te lo puedes bajar de Microsoft.

Estas notas describen los pasos que di para implementar la segunda opción y ha funcionado todo bastante bien.