Sie sind auf Seite 1von 14

EQUIPOS ELECTRNICOS DE MEDIDA

4 GRADUADO EN INGENIERA MECNICA

SESIN 9 DE GRUPO REDUCIDO


CONTROL DE MDULOS ICP-CON
CON MODBUS y LabVIEW
NOTA: No es necesario imprimir este cuadernillo, se puede trabajar con el pdf y slo se
necesita entregar el Anexo.

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.)

Para ello se utilizarn los mdulos ICP-CON (en su opcin MOD-BUS) y el


LabVIEW (incorporacin de libreras MOD-BUS)

En la primera parte se estudiar el manual del M-7011 en modo MOD-BUS RTU


(serie) y se realizarn pruebas de comando con el terminal que nos ofrece la utilidad
DCON_Utility. La ventaja de esta utilidad es que en modo MOD-BUS nos calcula y aade el
checksum (obligatorio en MOD-BUS).

En la segunda parte se utilizar LabVIEW para enviar/recibir comandos MOD-BUS al


mdulo. Para finalizar se propondr la realizacin de un control tpico utilizando comandos
MOD-BUS.

Primera parte: Configuracin y pruebas manuales

Conectar los mdulos (que tengan un mdulo M-7011)

Lanzar la aplicacin DCON-Utility y comprobar que el mismo est en modo MOD-Bus. Si no


lo est, seguir los pasos para ponerlo en dicho modo.

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)

En la barra de men de la utilidad, seleccionar el modo Terminal y elegir protocolo Modbus


(aunque no activemos el Checksum la aplicacin lo pone directamente porque no es opcional)

En la figura vemos que hemos enviado al mdulo 02 la funcin 02 (read discrete),


hemos puesto la direccin base = 00 00 (ver manual del 7011) y hemos pedido 1 dato (00 01)
(el 7011 slo tiene una entrada digital). La ventaja de utilizar el terminal de la utilidad es que
no tenemos que poner el checksum porque lo hace el programa. En una aplicacin nuestra, si
usamos directamente funciones del puerto serie para mandar los comandos, tendramos que
calcular el checksum y enviarlo al final del comando.
OBSERVACIONES RESPECTO A LAS DIRECCIONES:

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.

El mapa del 7011 (m7000_address_mapping.pdf) habla de direcciones y utiliza el mapeo, por


tanto para saber el canal de un registro prescindimos del dgito alto y restamos 1 a la
direccin, adems la direccin nos la suelen dar en decimal y el canal hemos de ponerlo en
hexadecimal:

El canal de la entrada analgica es el 0 (00 00) : 30001 -> 0001 1 = 0000

El canal de la entrada interna de la temperatura de la unin (CJC) es el 128 por lo que en


hexadecimal ser 00 80

El canal de la entrada digital (discrete input) es el 0, y el de las salidas digitales (coils) el 32


(00 20 en hexadecimal)

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.

Verificacin del trfico en las transmisiones:


Las aplicaciones como el terminal del DCON_Utility y otras no siempre nos presentan en
pantalla lo que realmente se enva o recibe. A veces nos interpretan lo recibido y otras veces
mandan aadidos que no tecleamos (por ej. Checksum, carcter terminador,). Otras veces,
simplemente porque nos hemos equivocado puede que no tengamos respuesta.

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:

Con la librera RS-232, cargar y configurar el puerto COM, enviar/recibir


comandos/respuestas y acabar liberando el puerto COM. Esta opcin es similar a
lo que hemos hecho con DCON slo que cambian los comandos a enviar y adems
tendramos que calcular el checksum para enviarlo junto a estos y el de lo que
recibimos para comprobar que no hay errores de recepcin.

NI nos ofrece una librera Modbus que podemos descargar de la web de NI e


instalarla. Tambin podemos descargar demos con ejemplos. Existen diversas
versiones y tutoriales a los que se puede acceder en dicha web y de las que se han
visto algunas en clase.

Para LabVIEW se dispone de demos o ficheros .vi con ejemplos, de la


posibilidad de instalar una librera en la paleta de funciones (buscaramos en la
web de NI Instaladores de la Biblioteca de MODBUS en LabVIEW ) o de la
posibilidad de importar las funciones de un fichero .llb que ofrece una librera
similar.

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:

En esta ocasin vamos a utilizar el fichero .llb del fabricante ICPDAS:

En nuestro caso descargamos el fichero modbusrtu.zip que contiene ejemplos y el


fichero NI Modbus.llb que podemos invocar desde Select a vi:

NOTA: Estos ejemplos pueden variar segn versiones de LabVIEW, ICP-DAS,


En la misma disponemos de una serie de funciones y ejemplos para el manejo de
dispositivos MODBUS. Aunque las hemos descargado de ICP DAS son funciones genricas
MODBUS y podran utilizarse para cualquier mdulo que utilice dicho protocolo. Tambin
observamos que tenemos las mismas para MODBUS Ethernet y para Serie.

Si utilizamos estas funciones sueltas tendremos que incluir la inicializacin previa del
puerto serie.

Aplicacin con LabVIEW:

Podemos comenzar realizando un pequeo programa que nos permita comprobar distintas
funciones como las vistas en la primera parte de la sesin:

Primero configuramos el puerto serie y a continuacin implementamos la funcin MB Master


Serial Query. Finalmente cerramos el puerto serie con la funcin Close COM de la librera
RS-232. Su panel sera:

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)

Podremos leer la entrada analgica, la temperatura CJC, la entrada digital y, en particular,


provocar errores y analizarlos:
Podemos probar varios comandos,
direcciones, errores

(ver tambin el manual del ModBus)

En las figuras anteriores vemos ejemplos de transacciones correctas y con errores provocados.

Libreras de National Instrument para LabVIEW:


Como hemos dicho anteriormente, otra va para utilizar comandos de acceso a MODBUS
desde LabVIEW es descargarse de la web de National Instruments un instalador de la librera
correspondiente. Existen distintas versiones y tambin para distintas versiones de LabVIEW.
En nuestro caso descargamos la ni_modbus8_2.exe que, aunque es para la versin 8.2 de
LabVIEW, es vlida tambin para versiones superiores. El fichero es un ejecutable que en
realidad nos descomprime unos ficheros que podremos insertar en la librera siguiendo las
instrucciones:
Entraremos en un asistente:

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.)

La principal diferencia radica en que en lugar de invocarlas mediante Select a vi lo


haremos utilizando la librera.
(De hecho tambin podemos abrir con Select a vi el fichero NI Modbus.llb que hemos
instalado antes y veremos que es muy similar al que descargamos de ICPDAS.)
Caso prctico;

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: _______________________

ALUMNO 1: ___________________ ALUMNO2:_________________________

EQUIPOS ELECTRNICOS DE MEDIDA


4 GRADUADO EN INGENIERA MECNICA

SESIN 9 DE GRUPO REDUCIDO


CONTROL DE MDULOS ICP-CON
CON MODBUS y LabVIEW

ANEXO RESULTADOS
Pregunta 1: Cul es la direccin de la salida DO_1 del 7011? y el canal?

Pregunta 2: Qu obtenemos si enviamos el comando 02 05 00 21 03 00? Justificar la respuesta.

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?

c) Qu respuesta obtenemos si enviamos un 02 02 00 10 00 01? Porqu?

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 5: Porqu no podemos probar la funcin 06 con el mdulo 7011?

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

Pregunta 7: Probar y razonar la respuesta recibida al enviar el comando 02 46 00 a nuestro 7011.

Das könnte Ihnen auch gefallen