Establir una comunicació entre una aplicació d’escriptori i un autòmat siemens S7

Una manera fàcil d’establir una comunicació entre una aplicació d’escriptori i un autòmat siemens S7, és la llibreria gratuïta libnodave.dll

Comunicació entre una aplicació d’escriptori i autòmat siemens S7, Libnodave.dll

LibNodave.dll és una llibreria gratuïta per VB.NET, Java, C, C + +, etc per comunicar-se amb els autòmats de Siemens S7 300 i S7 400. Es poden realitzar des d’aplicacions d’escriptori fins apps per mòbils i tauletes, la comunicació es pot realitzar per ethernet, MPI o profibus.

es d’aquest enllaç es pot descarregar la llibreria libnodave de forma gratuïta:

libnodave.dll

En descomprimir el fitxer que ens hem descarregat podem veure diferents directoris amb alguns exemples de VB, de Pascal, de PERL, etc.

Per treballar en. Net tenim la llibreria libnodave.net.dll, hem de crear una referència a la dll libnodave.net:

referencia-vb-libnodave

i després declarar les variables de treball:

'Variable daveOSerialType
Private fds As libnodave.daveOSserialType
'Variable daveInterface
Private di As libnodave.daveInterface
'Variable daveConnection
Private dc As libnodave.daveConnection

Per crear una connexió, podem crear un mètode que realitza la connexió al PLC, on p_port i p_ip són el port i la IP del PLC respectivament:

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

Un cop realitzada la connexió amb el PLC amb èxit, podem llegir i escriure del PLC, per llegir i escriure d’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)

 Conclusions

Amb aquesta llibreria podem crear fàcilment un enllaç entre una aplicació d’escriptori, una app per a mòbil, un enllaç cap a un full excel, cap a un autòmat S7 300 o 400 de forma gratuïta, l’experiència que he tingut amb aquesta llibreria és perfecta, tinc realitzada una aplicació d’escriptori amb VB.NET connectada a un autòmat VIPA Speed ​​7 i funciona a la perfecció sense cap tipus de problemes.