Anda di halaman 1dari 4

PROTOCOLO MODBUS

SIMULADOR MODBUS TESTER.



El programa Modbus tester (Mbus.exe) es un simulador de un maestro Modbus que
realiza peticiones de datos a un esclavo y visualiza los resultados.
Puede descargarlo desde http://www.modbus.pl/download/zxy66/v19/Mtester.zip o
desde la pgina de descargas de documentos de la asignatura en la carpeta Buses de
Campo http://www.dte.us.es/docencia/etsii/itis/emc/docs/bc/mbus

La aplicacin Modbus tester tiene 3 pestaas de configuracin:

1. Modbus Settings
En esta opcin configuramos el puerto serie y el tipo de protocolo.
Especificaremos protocolo RTU y los parmetros deseados del puerto serie
(9600 N 8 1).

2. View Data
La opcin View Data permite configurar la peticin de datos que deseamos
hacer (inputs, coils etc.).
En Device Address especificamos la direccin del esclavo con la que deseamos
comunicar
En Start Address y Length especificamos la primera direccin del dato que
deseamos y el nmero de datos deseados
Scan Rate representa el tiempo entre peticiones de datos.
A la derecha de la ventana se escriben los valores obtenidos de la comunicacin.
En la parte superior derecha de la aplicacin hay contadores que indican el
nmero de peticiones realizadas y el nmero de respuestas obtenidas.
El botn Connect inicia el ciclo de peticiones de datos.

3. Comunication Spy
En esta ventana se visualizan las tramas de peticin y respuesta en hexadecimal.


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.

CLCULO DEL CRC16

El cdigo del CRC16 se describe al final del documento MODBUS OVER SERIAL
LINE V1. El algoritmo mostrado en ese documento est basado en una tabla de valores
predefinidos para reducir el tiempo de clculo del algoritmo.
Una alternativa a ese algoritmo sin utilizar las tablas de constantes se muestra a
continuacin:

unsigned short CxxDlg::Crc(unsigned char *buf , int len)
{
unsigned short crc=0xffff , i;
while(len--)
{
crc = (crc ^ *buf++);
for(i=0;i<8;i++)
{
if(crc & 1)
crc=(crc>>1)^0xA001;
else
crc=(crc>>1);
}
}
return crc;
}



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.


SIMULADOR DE ESCLAVO MODBUS

El programa RSim es un simulador gratuito, limitado en tiempo de ejecucin de un
esclavo Modbus. Puede descargar el programa desde la pgina del autor:
http://downloads.sourceforge.net/project/modrssim/mod_RSsim.exe?use_mirror=freefr
o desde la pgina de la asignatura:
http://www.dte.us.es/docencia/etsii/itis/emc/docs/bc/rsim

Descargue y ejecute la aplicacin
En la ventana principal de la aplicacin seleccione Prot: MODBUS RS-232 y en I/O
seleccione Digital Inputs.
Busque el botn Set up the communication en la parte superior derecha de la aplicacin.
Seleccione el segundo puerto serie de su ordenador (recuerde que el otro est usado por
la aplicacin Modbus tester). Seleccione los parmetros de comunicacin 9600,N,8,1 y
en el campo RST control seleccione disable.
El botn superior derecho permite abtir el puerto de comunicaciones. Asegurese de
hacerlo para que puedan funcionar las comunicaciones.
La primera lnea de la tabla de valores contiene los valores para las entradas digitales
10001-10016. Puede cambiar los valores de las entradas haciendo un doble click sobre
el valor de cualquier entrada.

Seleccione en modbus tester la peticin de entradas digitales 10001-10016 y conecte la
comunicacin entre las dos aplicaciones.
Cambie valores sobre los valores de las entradas en la aplicacin RSim y compruebe el
funcionamiento del sistema.
Revise los valores hexadecimales de peticin (azul) y respuesta (negro) en Modbus
Tester. Interprete los valores hexadecimales y ascielos con los valores de las entradas
digitales.

Anda mungkin juga menyukai