Una manera fácil de establecer una comunicación entre una aplicación de escritorio y un autómata siemens S7, es la librería gratuita libnodave.dll
Comunicación entre una aplicación de escritorio y autómata siemens S7, Libnodave.dll
LibNodave.dll es una librería gratuita para VB.NET, Java, C, C++, etc para comunicarse con los autómatas de Siemens S7 300 y S7 400. Se pueden realizar desde aplicaciones de escritorio hasta apps para moviles y tabletas, la comunicación puede realizarse desde ethernet, MPI o profibus.
Desde este link se puede descargar la librería libnodave de forma gratuita:
Al descomprimir el fichero que nos hemos descargado podemos ver diferentes directorios con algunos ejemplos de VB, de Pascal, de PERL, etc.
Para trabajar en .net tenemos la libreria libnodave.net.dll, debemos de crear una referencia a la dll libnodave.net:
y luego declarar las siguientes variables de trabajo :
'Variable daveOSerialType Private fds As libnodave.daveOSserialType 'Variable daveInterface Private di As libnodave.daveInterface 'Variable daveConnection Private dc As libnodave.daveConnection
Para crear una conexión, podemos crear un método que realiza la conexión al PLC, donde p_port y p_ip son el puerto y la IP del PLC respectivamente:
Public Function conectar() As Boolean Try If fds.rfd = 0 Then fds.rfd = libnodave.openSocket(p_port, p_ip) fds.wfd = fds.rfd di = New libnodave.daveInterface(fds, "IF1", 0, libnodave.daveProtoISOTCP, libnodave.daveSpeed187k) di.setTimeout(1000000) dc = New libnodave.daveConnection(di, 0, p_rack, p_slot) conexion = dc.connectPLC End If If conexion <> -1 Then Return True Else Return False End If Catch ex As Exception regErrores = ex.Message Return False End Try End Function
Una vez realizada la conexión con el PLC con éxito, podemos leer y escribir del PLC, para leer y escribir de un DB:
'Lectura de un db del PLC res = dc.readBytes(libnodave.daveDB, DB, inicio, longitudLeer, Nothing) dc.getS32At(puntero) 'Escritura de un db del PLC res = dc.writeBytes(libnodave.daveDB, DB, inicio, longitud, escriure)
Conclusiones
Con esta librería podemos crear fácilmente un enlace entre una aplicación de escritorio, una app para móvil, un enlace hacia una hoja excel, hacia un autómata S7 300 o 400 de forma gratuita, la experiencia que he tenido con esta librería es perfecta, tengo realizada una aplicación de escritorio con VB.NET conectada a un autómata VIPA Speed 7 y funciona a la perfección sin ningún tipo de problemas.