Hoy te presento Snap7. Un software gratuito y libre con el que realizar tus HMI sin la necesidad de un OPC.
Contenido
¿Qué es Snap7?
Traduciendo literalmente de su manual de referencia, dice algo así como:
Snap7 es una suite de comunicaciones Ethernet multiplataforma de código abierto para la interconexión
con los PLC Siemens S7.
La compatibilidad es total en las series 300 y 400 y parcial en la 1200/1500.
También tiene compatibilidad parcial con los Simamics, S7200 y LOGO 0bA7/0BA8
Características generales
Las características más importantes son:
- Dieño en multiples arquitecturas de 32 y 64bits.
- Multiplataforma (Windows, Linux, Mac Osx…)
- No necesita de librerías de terceros ni instalación.
- Se puede programar en múltiples lenguajes: C/C++, .NET/Mono, Pascal, LabVIEW, Phyton y Node.js
Licencia
Snap7 se distribuye como una biblioteca binaria compartida con código fuente completo bajo GNU
Library or Lesser General Public License version 3.0 (LGPLv3).
Debido a esta licencia también está definido que SNAP7 se distribuye con la esperanza de que sea útil, pero sin ninguna garantía, sin ni siquiera la garantía implícita de comerciabilidad o idoneidad para un propósito en particular.
Comunicación de Snap7 con los PLC Siemens
Snap7 puede funcionar como cliente, servidor o partner con los PLC Siemens.
La parte más útil (a mi juicio) es la de cliente.
Un OPC no deja de ser un cliente, al igual que lo es Snap7Client.
Compatibilidad con los PLC Siemens
La compatibilidad de Snap7 con los PLC Siemens en la serie 300 y 400 es completa. Podemos transferir información de todo tipo como se puede ver en el siguiente cuadro:
En el caso de los PLC 1200 y 1500, no es una cobertura total, pero cubre perfectamente lo necesario para realizar un HMI
¿Dónde consigo Snap7?
Puedes ir a la página principal del proyecto donde encontrarás el fichero de descarga con el manual de usuario para que puedas ponerte en marcha.
Lo que te vas a encontrar es algo como esto:
El manual lo encontrarás en el directorio doc.
En el directorio Examples encontrarás ejemplos de lo que es capaz de hacer.
Cómo crear un HMI con Snap7
Si eres ducho en el uso de VB o cualquier otro programa, metiendo unas cuantas horas, podrás ponerlo en marcha.
Tendrás que programar cada objeto y variable que quieras usar. Todo está explicado en la documentación (en inglés).
En cambio, si no tienes los conocimientos necesarios, puede que se te haga un poco cuesta arriba.
Para ello estoy desarrollando un curso con el que dominar Snap7 y por otro lado, hacerlo mucho más sencillo.
Mucho mucho más sencillo: sea lo más parecido a un arrastrar y soltar de tal forma que solamente tengas que dar la dirección del PLC y listo.
Para ello he construido más de 15 controles (botones, led, cajas de texto, relojes analógicos…) de tal forma que solo tengas que arrastrar y soltar. Luego le das la dirección del DB donde leerás/escribirás y ¡listo!
Avance del curso
El curso va a tener 3 patas:
- Conocimiento general de uso de Snap 7
- Uso de los objetos ya creados y configurados que te entregaré
- Cómo crear nuevos objetos que se integren con los ya existentes para que vayas ampliando la biblioteca.
Te dejo con un pequeño vídeo de presentación de lo que te voy a presentar en el curso:
¿Qué te parece?
¿Te parece útil Snap 7?
Espero que sí.
Puedes bajarte Snap7 y trabajarlo por ti mismo.
Si quieres que te acompañe, y además te lo ponga mucho más fácil con un montón de horas de trabajo ya realizadas creando los objetos ya configurados, en unos días recibirás más información del curso.
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.
47 Comentarios
Es muy interesante a la hora de poder realizarlas pantalls gráficas de los diferentes ejercicios de PLCs
También para eso, pero sobre todo para HMI
Pones multiplataforma, tambien android?
Sí. Usando Moka7 (java). Tienes información en la web de Snap7.
Chevre Iguiño, imagino que también maneja gráficos de tendencia e históricos a base de datos.
Puedes hacer lo que quieras. Pero tienes que programarlo.
Saludos
Me parece muy interesante para el mantenimiento preventivo, poder coger datos del plc y actuar en consecuencia. ¿Vas a utilizar el gateway de siemens iot2000 o 2040?
Saludos
No.
Solo cliente para los plc 1200 al 1500.
Saludos
Esta interesante espero que sea pronto
Que buen articulo, gracias por compartir tus conocimientos, queria preguntarte es posible leer datos de las DB de los PLCs con snap7 y guardarlas en un base de datos mysql para utilizarlos en informes web?
Por supuesto.
Una vez hayas leído los datos puedes hacer lo que quieras con ellos.
Saludos
Esto si que me parece interesante…..Me lo apunto y me apunto.
Excelente Iñigo te felicito por tu excelentes aportaciones.
Excelente opción Íñigo, a parte de programación de PLC sé vbasic, así que voy a hacer unas pruebas. Saludos y gracias!
Excelente!! Saludos desde Argentina!
Hola buenas tardes iñigo, tenia una duda sobre un problema que me ha surgido de un programa de cruce de semaforos, al hacer la llamada del FB1 en la OB1, y poner las entradas, que son unas M20.0 estas no me activan la salidas, y por muchas vueltas que le estoy dando y buscando informacion en tus videos, no encuentro porq no se me ponen las salidas a 1, espero puedas ayudarme.
Gracias
Un saludo
Hola,
Lo siento, pero con esa información saber donde puede estar el problema es imposible.
Tendrás que repasar poco a poco cada línea y ver dónde puede estar el problema.
Limita el programa a trozos y ve comprobando hasta donde funciona correctamente hasta dar con el fallo.
Saludos
Cual es la cantidad maxima de controladores que se pueden conectar al mismo tiempo? Gracias y saludos
Pues la verdad es que no me lo he planteado y en la documentación no lo dice. En principio no hay una limitación en si mismo, ya que actúas como cliente.
Excelente Iñigo …Cuando inicia ese curso…Me interesa mucho
Yo llegue a usar el PRODAVE con step 5 en algun momento
pero era muy rigido en la epoca habria que usar pascal y habia
pocos recursos graficos…Ahora es diferente..vale la pena..
Pues sí que parece interesante. Habrá que probarlo
SNAP7!!! Que sorpresa!!! Llevo utilizando esta libreria desde hace 1 año para monitorizar algunos servicios de la fabrica. Yo utilizo Python, Qt Designer y PyQt para crear los screens. Esta sera una oportunidad para ver como lo haces utilizando VB. La comunicacion con el PLC es relativamente sencilla pero lo que se puede llegar a conseguir es realmente sorpredente. Eso si, el limite estara en los conocimientos de programacion que tengas. Animo a todo el mundo a realizar el curso porque es una forma muy economica de controlar y monitorizar tus sistemas desde el PC. Si a esto le añades una VPN para tener acceso a la red de automatas desde fuera del site, podras saber en todo momento que esta pasando en los sistemas desde cualquier lugar del planeta con acceso a Internet.
Buen aporte Iñigo. Yo me anotare al curso para ver si puedo aprender algo mas.
Saludos.
Exacto, todo se limita a programar todo y de ahí que he realizado unos cuantos objetos para facilitar muchas horas de trabajo a los que no estén muy puestos en la programación en vb
Saludos!
Hola Fran, como me puedo comunicar contigo me interesa lo de python para una aplicación en raspberry pi que estoy trabajando, donde te puedo escribir y preguntarte unas cositas, gracias Fran.
Como Siempre , excellent aporte. This software can run with s7- PLC sim?
Thanks
Hi Jose,
I tried to run Sharp7 (is a C# extension of Snap7) with the PLCSIM but I couldn’t. I know there is a video (https://www.mesta-automation.com/how-to-write-a-siemens-s7-plc-driver-with-c-and-sharp7/) where the author is using PLCSIM. I tried with no success.
Regards,
David.
Hola Iñigo,
Excelente aporte, y muy interesante. Cumple todos los requisitos para no perdérselo.
Muchas gracias por tu aportación.
Un cordial saludo
Sergio
buenas noches me gustaria seguir reciendo informacion.
Muchas gracias. Muy interesante.
Cuenta conmigo para el curso.
esta muy buena la información estoy tratando de digerirla.
Me parece un estupendo mecanismo alternativo al OPC o librerías Prodave de integración de PLC en el mundo PC. Seguro que se le puede sacar gran provecho, por ejemplo integración con bases de datos de producción, recetas, certificación de producto final, y un largo etcétera..
Enhorabuena Ínigo por ‘acercarnos’ estas novedades y, en general por el blog.
Saludos.
Hola Iñigo. Anteriormente te preguntaba como usar SNAP 7. No habia visto este enlace. Disulpa las molestias
Hola. Tengo instalado las librerías de snap7 pero no sé cómo sacar esos objetos predefinidos que comentas. Saludos y gracias por el aporte.
Los objetos son los que yo realice para el curso de hmi con snap7, no vienen con snap7.
Saludos
Hola buenas tardes, que compatibilidades tiene con el s7-200? se necesite programar algo extra para lograr la comunicacion? Saludos
Pues no mucho, en experimental como puedes ver aquí: http://snap7.sourceforge.net/s7_200.html
Saludos
Hola Iñigo. Soy Miguel Ángel Velasco Martínez. Me gustaría poder hablar contigo y encargarte que me prepares un tema con el Logo 8 de Siemens, Tengo muchos instalados en distintas cervecerías y quiero recoger alarmas en un Pc. Tengo presupuesto. Por favor, facilitame un nº de teléfono y te llamo. Gracias.
Hola Miguel Ángel,
Gracias por el ofrecimiento, pero no voy a poder realizar este tipo de encargos porque no dispongo del tiempo para este tipo de trabajos.
Saludos
Al día de hoy, existe alguna actualización de esto? Es decir, conoces o existen alternativas mas actuales que esta? Pregunto porque principalmente estoy interesado en programar HMI en Windows, y he visto otras librerías como s7.net, y quiero aprender y enfocarme en la solución mas actualizada.
Un saludo!
Pues no, y creo que snap7 cumple sobradamente con lo necesario.
Saludos
Hola, excelente desarrollo, en el video veo que compilas a 32bits, ¿lo has probado a 64bits? ¿porque visual Basic y no C#?
Saludos
Me desenvuelvo mejor en vb. Aunque estoy pensando en empezar a desarrollar en c#.
En 32 bit simplemente por mayor compatibilidad. Siempre habrá por ahí so en 32bit. Pero en principio debería funcionar en 64.
Saludos
Solo he utilizado TIA Portal v13 para un S7-1200 y una HMI touch en una aplicación de envasado de café tostado y molido. Lo hice de manera autodidacta, pero soy demasiado principiante aún.
Excelente trabajo de los cursos Íñigo.
Saludos desde Orizaba, Veracruz, México.
En Wincc se configura para que las variables se puedan actualizar máximo a 100 ms. Con snap7 has tenido oportunidad de ver la máxima velocidad de actualización.
He estado viendo la librería con Python y va bastante bien. Gracias de antemano.
No he hecho pruebas a fondo, pero 100ms debería ser posible sin problemas si está bien optimizado el código y la comunicación.
Dependiendo lógicamente el tamaño de lo que se envíe/reciba.
Ahora, tampoco creo que sea la herramienta adecuada para ello, ya que a un HMI en general no se le debería exigir esa tasa de lectura.
Me puedes enviar costo del curso
.. se pueden hacer graficos.datalog condulta de historicos con s71200
Con este soft?
Todos los precios y contenidos de cada curso, están en la pagina principal y pulsando sobre ello, viene su indice de contenidos.