Documentos de Académico
Documentos de Profesional
Documentos de Cultura
ModBus Parte1
ModBus Parte1
COMPROBACIN DE LA APLICACIN
En la pestaa Modbus Settings seleccionar uno de los puertos serie disponibles COMx,
protocolo RTU y los parmetros 9600 N 8 1.
En la pestaa View Data seleccionar:
Device address: 1
Data type: 1 Inputs
Start address: 1
Lenght: 8
Scan rate: 10000 ms (10s)
Data format: bit
Observe que en la parte derecha de la ventana se muestra una tabla con las direcciones
10001-10008 y sus valores asociados.
En la parte superior derecha se muestra el nmero de peticiones realizadas (polls) y el
nmero de respuestas correctas a esas peticiones. Pulse sobre el botn Clear para poner
a cero los contadores.
Pulse el botn Connect para que comiencen las peticiones de datos.
Cuando vea el contador Polls a 1 significa que se ha realizado la primera peticin.
Pulse sobre el botn Disconnect para detener las peticiones.
Seleccione ahora la pestaa Communication Spy.
En la ventana aparecen caracteres en color azul que representan los bytes transmitidos.
Cada byte est representado en hexadecimal entre corchetes.
La trama transmitida consta de los siguientes bytes: 01 02 00 00 00 08 79 CC.
El primer byte representa la direccin del esclavo al que se le hace la peticin.
El segundo byte es el cdigo de funcin modbus. En este caso la funcin 2 es la de
peticin de entradas digitales.
El tercer y cuarto byte son 00 00. Este valor es la direccin de la primera entrada digital
que se desea. Como hemos seleccionado el valor 1 para la primera direccin el valor
que se transmite al esclavo es direccin inicial -1 y por tanto el valor 0. Los dos bytes
representan el valor de la direccin inicial como un dato de 16 bits con el byte alto en
primer lugar y el byte de menor peso en segundo lugar.
Los dos bytes siguientes 00 08 representan el nmero de entradas consecutivas que
pedimos al esclavo. En nuestro caso hemos seccionado para el campo Lenght el valor 8.
El valor Lenght es un dato de 16 bits que se representa en dos bytes con el byte alto el
primer lugar y el byte bajo en segundo lugar.
Los dos ltimos bytes son el CRC16 de la trama. El CRC16 es una informacin de 16
bits que se calcula a partir de los valores anteriores de la trama 01 02 00 00 00 08. Los
16 bits se representan en la trama con el byte bajo en primer lugar y el byte alto en
segundo lugar. En nuestro ejemplo el CRC16 obtenido es 0x79CC.
TRAMAS DE DATOS
Modifique varias veces los datos de las peticiones: direccin del esclavo, cdigo de la
funcin, direccin de inicio etc.
Observe los bytes transmitidos y comprubelos con los valores configurados.
Comprobar el algoritmo con los valores de las tramas de prueba obtenidos con el
programa Modbus Tester.
Para mostrar el resultado en hexadecimal puede usar una variable del tipo CString y
representar el valor en hexadecimal usando el mtodo Format con el argumento %x.
Para ver el resultado en pantalla puede usar la funcin AfxMessageBox.