Beruflich Dokumente
Kultur Dokumente
Introduccin:
En esta sesin se familiarizar al alumno con el protocolo MOD-BUS. Esta sesin se
realizar en dos das de clase. (La sesin tiene dos partes pero no necesariamente debe
hacerse una parte en cada da, el alumno distribuir su trabajo segn vaya necesitando.)
Conectar la entrada analgica a una fuente y una salida digital a un led con su resistencia de
limitacin (como en sesiones anteriores) para realizar pruebas. Pinchar sobre el 7011 y lanzar
el panel de pruebas. Verificar el funcionamiento utilizando la utilidad.
Para conocer el mapa de direcciones en modo MODBUS del 7011 nos descargaremos de la
web del fabricante el fichero m7000_address_mapping.pdf
http://www.icpdas.com/products/Remote_IO/m-7000/address_mapping/m7000_address_mapping.pdf
Comprobar el funcionamiento del mdulo (ver que cambiamos la entrada analgica, la salida
digital donde hayamos conectado el led, la entrada digital)
Como se ha comentado en clase si algunos fabricantes expresan las direcciones con 5 dgitos
el 5 dgito es un mapeo que no se utiliza a la hora de enviar la direccin (la direccin real en
ModBUS son dos bytes). Por otra parte se puede hablar de canal o de direccin. El canal
0 tiene la direccin 1, por lo que si el mapa que nos da el fabricante habla de direcciones
habr que restarle uno para tener el canal.
Para probar con el terminal del DCON_Utility, en modo MODBUS tendremos una ayuda en
la parte inferior del terminal que resulta muy til porque nos traduce los conceptos de coils,
discrete inputs, registers, a nuestro contexto Digital Output (DO), Digital Input (DI),
Analog Input (AI),
A continuacin tenemos algunas funciones a probar:
Estos ejemplos estn extrados del documento Modbus_Application_Protocol (utilizado en las
transparencias de teora), no todos son aplicables al 7011. Al construir el mensaje para enviar
el comando hay que aadir el destino al principio y el checksum al final.
Como hemos hecho en ocasiones anteriores, resulta interesante utilizar un Sniffer para
verificar lo que circula por la lnea serie:
Para ello podemos usar, por ejemplo, la aplicacin Device Monitoring Studio que es un
sniffer software y le pedimos que nos muestre los datos que circulan por el puerto COM
correspondiente.
(Obsrvese que el sniffer no sabe el significado de las tramas, por eso a veces nos las muestra
byte a byte, serie de bytes, tramas, segn las va recibiendo en el tiempo. En el ejemplo de la
figura anterior, el comando lo vemos en una trama continua mientras que la respuesta la
vemos byte a byte (probablemente el mdulo vaya ms lento que el PC ?)
Gracias al sniffer podemos ver tambin los comandos y respuestas que se intercambian
realmente, con independencia de la interpretacin que hace el programa que estemos
utilizando. Como ejemplo, vemos en la figura siguiente un error que el programa terminal nos
indica como sin respuesta. En el bus vemos que s ha habido respuesta. El terminal nos dice
que no hay respuesta correcta.
Si analizamos la respuesta de bus vemos que nos responde el mdulo 02 diciendo que hay
error (cdigo 84 = 80 + 04) y que la excepcin es la 3 (ver tabla de decisin de excepciones).
El sniffer tambin nos puede servir para comprobar, tanto en el terminal como en
aplicaciones nuestras que estemos depurando, que el trfico que se est produciendo es
correcto o no. A veces en un programa nos podemos quedar sin respuesta o con respuestas
incorrectas y al ejecutarlo no vemos nada, a lo sumo que se queda colgado el programa o que
reacciona diferente a lo que esperbamos. A la hora de depurarlo podemos ver lo que est
ocurriendo en realidad y combinarlo con la depuracin (breakpoints, paso a paso, )
Aplicacin MODBUS con LabVIEW:
Hasta ahora hemos probado los comandos manualmente en modo terminal utilizando
la utilidad del fabricante DCON_Utility. Cuando queremos acceder al mdulo desde un
programa tenemos varias opciones:
El fabricante de los mdulos nos ofrece una librera para LabVIEW tambin con
ejemplos y con funciones en un fichero .llb que podemos abrir con Select_vi:
Si utilizamos estas funciones sueltas tendremos que incluir la inicializacin previa del
puerto serie.
Podemos comenzar realizando un pequeo programa que nos permita comprobar distintas
funciones como las vistas en la primera parte de la sesin:
A partir de este ejemplo podemos manejar las entradas y salidas digitales y analgicas de
nuestro mdulo. Por ejemplo, si queremos leer la temperatura de la unin fra de la
compensacin interna de termopares que tiene el 7011, podramos hacer el siguiente programa
(que es el mismo, slo que hemos adaptado el rango para leer en grados). En el mapa
podemos ver la direccin y, adems, nos dice que el dato est en 0,01 C luego directamente
multiplicamos la respuesta por 0,01 y tenemos los grados:
Observamos que no hemos puesto bucle infinito porque vamos a realizar las ejecuciones de
una en una e ir probando distintos comandos y errores gracias a que el control que hemos
creado para la entrada de comando nos permite seleccionar diversas opciones:
(no todas valen para el 7011 y adems no podremos escribir porque no hemos puesto en el
panel el control para datos)
En las figuras anteriores vemos ejemplos de transacciones correctas y con errores provocados.
En esta versin que utilizamos aqu en realidad el asistente nos descomprime unos ficheros
(mimodbus.mnu y NI Modbus.llb) que habremos de copiar en directorios concretos de la
instalacin de nuestro LabVIEW. En nuestro caso el .mnu lo hemos copiado en el
subdirectorio menus -> categories -> Data Communication y el .llb en el subdirectorio vi.lib)
La mecnica de instalacin la explica NI en la web, (puede variar segn versiones):
Installing NI-MODBUS Library
In order to use the Library in LabVIEW, please follow these steps:
Close LabVIEW.
Copy NI Modbus.llb from the ##\vi.lib folder to the LabVIEW_ROOT\vi.lib directory where ## is your LabVIEW version (example 86 for 8.6) and is the root
folder where you installed LabVIEW.
Copy nimodbus.mnu from ##\user.lib to the LabVIEW_ROOT\user.lib directory.
Restart LabVIEW. You should see the NI Modbus palette in the User Libraries palette.
To Uninstall the Library, remove all the files copied from the previous steps.
Una vez acabada la instalacin tendremos un men MODBUS donde le hayamos indicado:
(Podemos observar que las funciones vienen a ser las mismas que nos ofreca ICPDAS.)
Una vez familiarizados con el entorno podremos realizar un control clsico como hemos
hecho en ocasiones anteriores pero esta vez utilizando comandos MODBUS.
El panel siguiente es un ejemplo como los que se han hecho en sesiones anteriores aunque,
manteniendo la idea, se puede hacer otro equivalente (por ejemplo visualizando la
temperatura de la unin CJC, o conectando un termopar real al 7011)
Si usamos un termopar K real tendremos que, previamente, configurar el 7011 para este modo
de su entrada, de esta manera tendremos el dato en grados directamente (x10), segn hemos
visto en clase.
Resultados:
Entregar el fascculo ANEXO y enviar el fichero .vi (DONDE SE PONDR
ALGUNA IDENTIFICACIN DEL GRUPO Y SUS MIEMBROS como la figura anterior) al
campus virtual a la tarea que se habilitar para ello. (Esta sesin est prevista para dos das, el
resultado final se subir el segundo da)
OBSERVACIONES / COMENTARIOS:
Dada la extensin de esta sesin 9, la misma se desarrollar en dos semanas.
GRUPO: ___________ FECHA: _______________________
ANEXO RESULTADOS
Pregunta 1: Cul es la direccin de la salida DO_1 del 7011? y el canal?
Pregunta 3: Qu tienen en comn los cdigos de error devueltos por las funciones MODBUS? (Ver el
apartado 4.5 Define MODBUS Transaction del documento Modbus_Application_Protocol_V1_1b3)
Pregunta 5:
a) Qu son el primer y el segundo 02 del comando 02 02 00 00 00 01?
b) Qu respuesta obtenemos?
Pregunta 4: Si el dato viene en doble word en hexadecimal qu valor en voltios tendra una lectura
de 70A3 Hex) (El rango es +/- 2.5V)
Pregunta 6: En qu grupo de funciones del protocolo MODBUS se englobara una funcin 70 (0x46),
porqu? (ver manual del M7018)
http://www.advindsys.com/Manuals/ICPDAS/ICP%207017-18-19-Manual.pdf