Conectandose a un autómata con el móvil (2/4) – libnodave

Acceder a la memoria de un S7-300 es bastante sencillo utilizando las librerías libnodave.  Vamos a hacer un pequeño programa en VisualBasic.

Aunque tenemos la opción de utilizar casi cualquier otro lenguaje de programación, existen versiones de libnodave para Windows y para Linux, e incluso una versión en Java para poder implementarla en un teléfono móvil.

Tomamos como punto de partida el ejemplo que viene en la carpeta «Excel And VB» del archivo que hemos bajado de la web. Creamos un nuevo proyecto en VB e insertamos las cabeceras que aparecen en el fichero Modul12.bas en nuestro programa. También hay que poner en algún lugar accesible (la carpeta del programa, o un directorio del PATH) el fichero libnodave.dll.

Despues de inicializar en el Form_Load la conexión, estamos listos para comunicarnos con el PLC. En este caso utilizamos el cable que está configurado en el Step-7 (revisar la documentación para cada tipo de enlace)

ph = openS7online("/S7online")
If (ph >= 0) Then di = daveNewInterface(ph, ph, "IF1", 0, daveProtoS7online, daveSpeed187k)
Call daveSetTimeout(di, 500000)
res = daveInitAdapter(di)
If res = 0 Then
  MpiPpi = 2 ' Dirección autómata
  dc = daveNewConnection(di, MpiPpi, Rack, Slot)
  res = daveConnectPLC(dc)
  If res = 0 Then
    Initialize = 0
  End If
 End If

Obtener el valor de una entrada es tan simple como hacer una llamada a la función daveReadBytes, aquí leemos un byte en la dirección dada por la variable direc:

res = daveReadBytes(dc, daveInputs, 0, direc, 1, 0)
entrada = daveGetU8(dc)

Cuando terminemos el programa, el Form_Unload cerramos la conexión para no tener problemas.

If dc <> 0 Then
  res = daveDisconnectPLC(dc)
  Call daveFree(dc)
  dc = 0
End If

Eso es todo. Con esto podemos leer cualquier entrada de la imagen de entradas (PAE) del autómata y como veremos más adelante, mandarla al teléfono por el enlace Bluetooth.

Programa de ejemplo sólo para usuarios registrados

Artículo siguiente

Artículo anterior

 

1 ping

  1. […] Artículo anterior MeneameDivúlgameDivobloggerBitacorasRedditDeliciousGoogle BuzzFacebookTwitter […]

Deja una respuesta

Tu email nunca se publicará.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies