Estas últimas semanas por motivos laborales estoy trabajando en un par de proyectos de HMI. De ahí ha nacido ViSnap7.
Uno propio, y otro en el que pedimos colaboración a una empresa externa. En ambos casos estamos trabajando con el OPC de Siemens.
La cuestión es que me ha picado el gusanillo nuevamente de trabajar con Snap7 porque si bien el OPC funciona muy bien, en general, no hubiera sido necesario usarlo teniendo la posibilidad de usar Snap7.
El creador del proyecto Snap7 es Davide Nardella, y lo puedes encontrar en http://snap7.sourceforge.net/
Este es el verdadero proyecto original y te invito a que lo visites y veas lo potente que es. Es multiplataforma y lo cierto es que funciona de lujo.
Como ya sabéis yo desarrollo mis proyectos en VB.Net y no en C#
La razón es que me da mucha pereza pasarme a C#.
Si hoy tuviera que elegir entre aprender uno u otro, elegiría C# porque tiene más soporte en Internet y es más usado. Aunque esto va por rachas, y ahora están más o menos a la par, como se puede ver en este informe de uso de diferentes lenguajes: https://www.tiobe.com/tiobe-index/
Obviando claramente que si no conocieras ningún lenguaje, a día de hoy es mejor aprender Python ya que cada vez se usa más en los entornos industriales.
Pero aún así, hay mucha gente como yo que queremos seguir desarrollando nuestros proyectos en VB.Net porque nos sentimos más cómodos y de momento, así nos va bien.
Davide con Snap7 ya dio la solución para tener Snap7 si desarrollas con VB mediante un puente entre una dll desarrollada en C# con las funciones, y su código en VB para poder acceder a dichas funciones.
Pero la gracia sería el que pudieras tener el código en VB de forma nativa sin dll ni puente alguno.
Pues ahí es donde me he puesto manos a la obra.
He cogido el código en C# de Snap7 y lo he traducido a VB.NET con alguna herramienta automática con la idea de que exista la versión en este lenguaje. Para ello me he basado en la versión 1.1.10 del código de Snap7.
La traducción no funciona correctamente así de primeras. He tenido que realizar algunos ajustes, pero básicamente el código es un clon de C#. No me voy a llevar un mérito, que no es mio.
ViSnap7
El nombre escogido es Visnap7, un nombre que quiere hacer honor a Visual Basic, y cómo no, a Snap7.
La razón de poner un nombre diferente a Snap7 es para que se vea que hay diferencia con el resto de códigos.
No es especialmente original, pero espero que esté bien diferenciado del resto.
Comenzamos en la versión 1.1.0 para que coincida con la versión de Sharp7 en la que está basada. De esta forma, si hubiera versiones futuras, la haríamos coincidir con esta.
El código
A continuación, dejo el código para que lo puedas descargar.
Descarga del código de ViSnap7
Ojo, no es el código de la plantilla de Snap7 que vemos en el curso de HMI usando Snap7.
Es solamente el archivo que puedes usar para comenzar a usar como si fuera snap7.
¿Cómo se usa?
Además de dirigirte nuevamente a la web de Snap7 (http://snap7.sourceforge.net/) en el siguiente vídeo te enseño cómo puedes comenzar a dar los primeros pasos.
¿Qué te parece?
Si usas C#, lógicamente no tiene mayor utilidad para ti.
Si usas Visual, puede que te sea útil.
¡¡Espero tus comentarios!!
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.
7 Comentarios
Iñigo si yo hago un curso de estos me darán un certificado al final de este pregunto soi de chile
Saludos Iñigo, esta genial esta mejora que haz realizado, un abrazo desde México.
Hola, me pareció interesante la demostración de ViSnap7, lo baje, no lo se ejecutar en mi W10 64 bits,
que es lo que debería bajar para ejecutarlo el framework?, saludos
Una cosa es el core, y otra el framework. Si quieres los controles ya hechos necesitas el framework.
Lógicamente necesitas instalar visual studio.
Y en cuento a Windows 10, yo estoy usando Windows 10 64 bits sin problemas.
Saludos
Hola Iñigo, he estado probando el framework y he visto que con las comunicaciones en segundo plano, los formularios no se refrescan correctamente. Es decir, al cambiar de un formulario a otro, los controles no se redibujan. Saludos.
Que es cambiar de uno a otro? El formulario principal tiene que estar abierto siempre. Al cambiar lo cierras?
Lo he probado, y yo abro dos formularios, y a mi me refresca sin problemas.
¿En qué condiciones deja de refrescar o da problemas? ¿Dejas el formulario principal abierto?