3 de octubre de 2011
Accediendo a un PLC Simatic a través de ethernet con Libnodave Sobre mí
En esta entrada usé la biblioteca libre Libnodave para acceder a un PLC S7-300 desde Visual Basic a GR
través de un adaptador serie/MPI. Varios lectores me hicieron consultas sobre si era posible usarla VIGO, PONTEVEDRA, S PAIN
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 Ingeniero Técnico Industrial
preparada una máquina virtual con WinAC RTX y su puerto ethernet como puerto de comunicaciones, en Electricidad, intensificación
que creo que es un banco de pruebas ideal para hacer pruebas con Libnodave.
en Automática y Electrónica.
Lo primero que voy a hacer es un proyecto en Step7 con un único DB, por ejemplo el DB10, con un Me dedico profesionalmente a la
único dato de formato BYTE. Lo transferiero al WinAC y pongo el PLC software en modo Run. Me programación de maquinaria industrial.
pongo on line y monitorizo la variable.
Ver todo mi perfil
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.
http://notasdeautomatizacion.blogspot.com.es/2011/10/accediendo-un-plc-simatic-traves-de.html 1/22
18/2/2018 Notas de automatización: Accediendo a un PLC Simatic a través de ethernet con Libnodave
El aspecto que tendrá mi aplicación puede ser algo tan sencillo como esto:
Licencia / Contacto
daveInter.setTimeout(1000000) 'Make this longer if you have a very long response time ► 2010 (21)
http://notasdeautomatizacion.blogspot.com.es/2011/10/accediendo-un-plc-simatic-traves-de.html 3/22
18/2/2018 Notas de automatización: Accediendo a un PLC Simatic a través de ethernet con Libnodave
Else
servomotor Siemens simotion
Mensaje = "Error al abrir la conexión" sinamics Step5 Step7 TIA Portal Visual
Conectado = False Basic Visual Basic Script WinAC RTX WinCC
End If Flexible
Conectar = Conectado
Enlaces
End Function
Beckhoff Automation Technology
Public Function Desconectar() As Boolean
Bosch Rexroth
If Conectado Then
daveConex.disconnectPLC() Festo
libnodave.closeSocket(daveSerie.rfd)
Conectado = False IBHsoftec
Mensaje = "Conexión correctamente terminada." Keyence
Desconectar = True
Else Omron
Mensaje = "No existe conexión activa."
Pepperl-Fuchs
Desconectar = False
End If Pro-face
End Function
Rockwell Automation
Public Function LeerBytesDB(ByVal NumDB As Integer, _ Sew Eurodrive
ByVal Dir As Integer, _
ByVal NumBytes As Integer) As Boolean Siemens Service & Support
REEA
Dim Respuesta As Integer
Blog Motion Control
Respuesta = daveConex.readBytes(Libnodave.daveDB, NumDB, Dir, NumBytes, BufferLectura)
Blog Programación Siemens
If Respuesta = 0 Then PLC dev
Mensaje = "Leídos " & NumBytes & " bytes a partir de la dirección " & _
Dir & " en el DB " & NumDB Foro Autómatas
LeerBytesDB = True
Foros de electrónica
Else
Mensaje = "Error al leer " & NumBytes & " bytes a partir de la dirección " & _ Foro de InfoPLC
Dir & " en el DB " & NumDB
Foro OPC Foundation
LeerBytesDB = False
End If Foro técnico de Siemens
End Function
http://notasdeautomatizacion.blogspot.com.es/2011/10/accediendo-un-plc-simatic-traves-de.html 4/22
18/2/2018 Notas de automatización: Accediendo a un PLC Simatic a través de ethernet con Libnodave
ByVal Dir As Integer, _ Seguidores (75) Siguiente
ByVal NumBytes As Integer) As Boolean
Dim Respuesta As Integer
If Respuesta = 0 Then
Mensaje = "Escritos " & NumBytes & " bytes a partir de la dirección " & _
Dir & " en el DB " & NumDB
EscribirBytesDB = True Seguir
Else
Mensaje = "Error al escribir " & NumBytes & " bytes a partir de la dirección " & _
Dir & " en el DB " & NumDB
Twitter
EscribirBytesDB = False
End If
Tweets por @notasdeautom
End Function
4 may. 2017
Ejecuto mi aplicación, pongo los parámetros de conexión y pulso Conectar. Si todo va bien me
pondrá un mensaje que el enlace está realizado. Con los botones de lectura y escritura puedo ver
como modifico y leo el contenido del DB10 en mi PLC. GR @notasdeautom
Nueva entrada en el blog:
Gráfica X/Y en HMI Siemens a
partir de puntos almacenados en
un bloque de datos
(DB)notasdeautomatizacion.blog
spot.com.es/2017/04/repres…
24 abr. 2017
GR @notasdeautom
Nueva entrada en el blog: "Unas
notas sobre las novedades para
programar controladores S7-
http://notasdeautomatizacion.blogspot.com.es/2011/10/accediendo-un-plc-simatic-traves-de.html 5/22
18/2/2018 Notas de automatización: Accediendo a un PLC Simatic a través de ethernet con Libnodave
programar controladores S7
1500 en TIA
Portal"notasdeautomatizacion.bl
ogspot.com.es/2017/04/unas-n…
11 abr. 2017
GR @notasdeautom
El aspecto del blog ligeramente
renovado, después de 3 años
totalmente abandonado ya
tocaba. ¡Pronto material nuevo!
notasdeautomatizacion.blogspot.
com.es
6 b 2017
Insertar Ver en Twitter
Si nos equivocamos al dar la dirección IP o el puerto, nos dará error. Sin embargo si ponemos un rack
o slot incorrectos, puede que nos diga que la conexión está correcta, pero evidentemente no
lograremos leer ni escribir nada.
Visitas
Si quieres ver el código completo de este sencillo proyecto, lo tienes aquí. Si además quieres echar un
vistazo a la configuración de Step7 que he usado, descárgate este proyecto. 944525
Aunque esta prueba está hecha sobre un WinAC en una máquina virtual, pienso que el código servirá
para acceder a un PLC S7-300/400 con puerto ethernet. Si algún lector hace la prueba, le agradeceré
una reseña en los comentarios.
Este es un ejemplo muy sencillo, símplemente para comprobar que Libnodave funciona y es sencillo
de usar. Ahora mismo se me ocurren un par de antiguos proyectos en los que podría haber usado
Libnodave, consiguiendo abaratar su coste, al ahorrarnos licencias. Sin embargo no debemos olvidar
que Libnodave, a pesar de su buen desempeño, no tiene una empresa detrás que nos de garantía o
soporte, y que si lo usamos es por nuestra cuenta y riesgo.
59 comentarios:
Conocí LIBNODAVE gracias a ti, pero siempre he tenido un problema, la libreria dll de libnodave
no puedo compilarla al crear el "instalador" desde visual basic, tienes alguna solucion ?
Gracias de nuevo
Responder
Respuestas
Responder
Precisamente tengo que generar unos informes en excel de datos de produccion contenidos en
un DB.
Ya conocia la libreria pero nunca la habia usado y no sabia si funcionaria por Ethernet.
http://notasdeautomatizacion.blogspot.com.es/2011/10/accediendo-un-plc-simatic-traves-de.html 7/22
18/2/2018 Notas de automatización: Accediendo a un PLC Simatic a través de ethernet con Libnodave
De todas maneras, hay otra libreria que incorpora libnodave y que viene con bastante
documentacion y ejemplos en .NET (yo soy mas de C#)
http://siemensplctoolboxlib.codeplex.com/
PD: Por cierto que luego he visto la otra entrada de OPC con RS Logix y adivina que tengo que
hacer tambien....
Pues eso generar los mismos informes Excel usando OPC y el RSLInx Classic :)))))
Dentro de cada bastidor hay una serie de huecos donde poner los distintos componentes. Cada
http://notasdeautomatizacion.blogspot.com.es/2011/10/accediendo-un-plc-simatic-traves-de.html 8/22
18/2/2018 Notas de automatización: Accediendo a un PLC Simatic a través de ethernet con Libnodave
uno de estos huecos es un slot. El slot uno suele estar reservado para una fuente de
alimentación y en el dos suele colocarse el PLC.
Saludos.
Responder
Respuestas
Responder
http://notasdeautomatizacion.blogspot.com.es/2011/10/accediendo-un-plc-simatic-traves-de.html 9/22
18/2/2018 Notas de automatización: Accediendo a un PLC Simatic a través de ethernet con Libnodave
hay que controlar que los DBs que vayamos a leer o escribir NO hayan sido creados "solo para
acceso simbólico".
SI SE PONE:
L valores.N1
L N1
me dejaron un proyecto que me parecia colosal hasta que encontré tu ejemplo, te lo agradezco
mucho.
veras actualmente leo y escribo el plc desde una película flash empotrada en mi vb.
yo realmente no se mucho de plc solo he recibido un curso de LOGO de siemens por con esto he
leido y escritro las entradas fisicas de maravilla.
http://notasdeautomatizacion.blogspot.com.es/2011/10/accediendo-un-plc-simatic-traves-de.html 10/22
18/2/2018 Notas de automatización: Accediendo a un PLC Simatic a través de ethernet con Libnodave
tengo una pregunta. quisiera poder llevar mas lejos y tener lecturas analogicas, save si debería
diferir en algo o me puedes orientar??
Responder
No veo ningún inconveniente en tener lecturas analógicas, de hecho con libnodave puedes leer
del área de entradas directamente.
Un saludo.
Responder
Quiero hacer la conexión con un PLC en remoto mediante una VPN. Levanto la VPN y establezco
correctamente la comunicación con el automata, el problema es cuando quiero leer de un DB
que no lo consigo, me da error y no obtengo los datos.
Responder
Un saludo.
Responder
Tan sólo tengo una pregunta porque me pasa algo curioso y es lo siguiente.
http://notasdeautomatizacion.blogspot.com.es/2011/10/accediendo-un-plc-simatic-traves-de.html 11/22
18/2/2018 Notas de automatización: Accediendo a un PLC Simatic a través de ethernet con Libnodave
Estoy leyendo varias variables de un bloque de varios DBs, el buffer de lectura lo tengo con 200
posiciones por ejemplo, la primeras veces lee bien pero tras varias repeticiones deja de leer y la
respuesta da el código -1025 que no he logrado interpretar que es. Yo creo que es como si se
llenará el buffer pero corrígeme si me equivoco en cada lectura se sobrescriben los datos o se
guardan al final del último dato existente en el buffer.
Otra cosa que me llama la atención es que si cierro la conexión después de una lectura y la abro
antes nunca falla.
Responder
Un saludo.
Responder
Respuestas
Un saludo.
Responder
Respuestas
Un saludo.
Responder
Respuestas
Responder
Respuestas
Un saludo.
Responder
Respuestas
Un saludo.
Responder
http://notasdeautomatizacion.blogspot.com.es/2011/10/accediendo-un-plc-simatic-traves-de.html 14/22
18/2/2018 Notas de automatización: Accediendo a un PLC Simatic a través de ethernet con Libnodave
Un saludo cordial!
Responder
Respuestas
Un saludo.
Responder
Respuestas
http://notasdeautomatizacion.blogspot.com.es/2011/10/accediendo-un-plc-simatic-traves-de.html 15/22
18/2/2018 Notas de automatización: Accediendo a un PLC Simatic a través de ethernet con Libnodave
Un saludo.
Responder
Respuestas
Un saludo.
http://notasdeautomatizacion.blogspot.com.es/2011/10/accediendo-un-plc-simatic-traves-de.html 16/22
18/2/2018 Notas de automatización: Accediendo a un PLC Simatic a través de ethernet con Libnodave
con esto te devuelve en v1 el valor de dos bytes directamente P.E. Una memoria de
palabra (MW)
En direccion le pones el bloque a leer p.e. 60 para la %M60 y te devolvera los 1300 de
marras
Responder
GR, entiendes perfectamente. Y es mucho mejor solución que la opción que estaba probando de
convertir los dos bytes a binario, juntarlos y volverlos a pasar a decimal (estoy leyendo datos
desde una aplicación de visual - me olvidé comentarlo), porqué aunque funcionaba, bueno... no
hay comparación; eso demuestra la importancia de atender en clase!
http://notasdeautomatizacion.blogspot.com.es/2011/10/accediendo-un-plc-simatic-traves-de.html 17/22
18/2/2018 Notas de automatización: Accediendo a un PLC Simatic a través de ethernet con Libnodave
Como diantres funciona el davesetbit y daveclrbit? No consigo que funcionen (al menos en un
1200)
El resto de funciones principales grosso modo funcionan bien.
http://notasdeautomatizacion.blogspot.com.es/2011/10/accediendo-un-plc-simatic-traves-de.html 18/22
18/2/2018 Notas de automatización: Accediendo a un PLC Simatic a través de ethernet con Libnodave
Responder
Respuestas
Responder
Respuestas
SCADA, este entero nunca puede ser llegar a 15,por lo que yo en mi programa VB2010
lo que he hecho es añadir un TIMER con una latencia de 1 seg. en el cual programo la
lectura dicha marca de la CPU y verifica que nunca esta por encima 15 y que ha
variado cada 2 segundos, en cuanto estos estados no se cumplen genero una
desconexión del programa y usu un MSGBOX para comunicarselo al usuario, funciona
bastante bien. Espero haberte sido de ayuda,aunque llegue algo tarde ;)
Responder
soy principiante en esto de programación de PLC's siemens, al momento estoy con un proyecto
para conectar un HMI Brainchild 450 a un PLc Siemens S7 1200 vía ethernet y no lo consigo, en
el manual de la pantalla hay un ejemplo de comunicación con siemens pero no funciona en mi
proyecto.
alguien tal vez sabe que sucede...?, estoy usando El tia portal V13 y el panel studio.
http://notasdeautomatizacion.blogspot.com.es/2011/10/accediendo-un-plc-simatic-traves-de.html 20/22
18/2/2018 Notas de automatización: Accediendo a un PLC Simatic a través de ethernet con Libnodave
Respuestas
Responder
Respuestas
Responder
http://notasdeautomatizacion.blogspot.com.es/2011/10/accediendo-un-plc-simatic-traves-de.html 21/22
18/2/2018 Notas de automatización: Accediendo a un PLC Simatic a través de ethernet con Libnodave
Introduce tu comentario...
Meliá Alicante
Desde 99€
❮
Notas de automatización by notasdeautomatizacion@gmail.com is licensed under a Creative Commons Reconocimiento-No comercial 3.0 España License.
---
http://notasdeautomatizacion.blogspot.com.es/2011/10/accediendo-un-plc-simatic-traves-de.html 22/22