Anda di halaman 1dari 3

MODBUS parte III: Qu es el MODBUS?

Publicado el Martes, 11 Septiembre 2012 18:05


El MODBUS es un protocolo de comunicacin serial basado en el modelo maestro/esclavo, a la fecha es un
estndar de facto, es pblico, muy seguro, no requiere licencias y su implementacin es relativamente fcil en
dispositivos electrnicos, por ejemplo nuestros ingenieros, usan el microcontrolador PIC16F648A programado
para responder comandos MODBUS, esas son algunas de las razones por las que goza de muchsima
aceptacin, adems de que tiene ms de 30 aos en la industria.
MODBUS sobre conexin RS-485
El protocolo MODBUS es un protocolo que usa lneas seriales, por lo que comnmente se implementa sobre
redes de comunicacin RS-485, pero tambin sobre redes que usan la comunicacin serial RS-232, incluso se
puede implementar va TCP/IP sobre una red Ethernet, en SDM se usa la implementacin MODBUS sobre
una red RS-485 como la que se vio en el articulo pasado.
Modos de Transmisin del MODBUS
Los modos de transmisin definen como se envan los paquetes de datos entre maestros y esclavos, el
protocolo MODBUS define dos principales modos de transmisin:
MODBUS RTU(Remote Terminl Unit). La comunicacin entre dispositivos se realiza por medio de datos
binarios. Esta es la opcin ms usada del protocolo y es la que se implemento en nuestras tarjetas.
MODBUS ASCII (American Standard Code for Information Interchange). La comunicacin entre dispositivos
se hace por medio de caracteres ASCII.
Comunicacin Maestro-Esclavo en MODBUS
El MODBUS siempre funciona con un maestro y uno o ms esclavos, siendo el maestro quin controla en
todo momento el inicio de la comunicacin con los esclavos, que segn la especificacin pueden ser hasta
247 en una misma red. El esclavo por otro lado se limita a retornar los datos solicitados por el maestro, as de
simple es la comunicacin usando el MODBUS, el maestro enva los mensajes y el respectivo esclavo los
responde.
Cada esclavo debe tener una nica direccin, as el maestro sabe con quin se debe comunicar. Vea la
animacin siguiente, observe cmo funciona el envi de mensajes entre el maestro y el esclavo tome en
cuenta lo siguiente:
Cada esclavo tiene su propia direccin, que puede ir desde 1 hasta 247.
El maestro siempre inicia la comunicacin enviando un paquete de informacin bien estructurado a todos los
esclavos, entre otras muchas cosas en la informacin se incluye el nmero del esclavo.
El esclavo elegido responde, enviando lo que se le pide por medio tambin de un paquete de informacin bien
estructurado.

En la animacin solo se muestra el nmero de esclavo, pero los paquetes de informacin tiene muchos otros
datos como se ver ms adelante.
Adems recuerde que el MODBUS se realiza sobre una red RS-485, como se observa en la animacin, con
ello solo se requieren dos cables entre dispositivos como se vio en el anterior articulo.
Representacin de datos en MODBUS
El protocolo MODBUS usa el concepto de tablas de datos para almacenar la informacin en un esclavo, una
tabla de datos no es ms que un bloque de memoria usado para almacenar datos en el esclavo, las tablas de
datos que usa en MODUS son cuatro y se muestran en la siguiente tabla:
Direccin MODBUS Direccin Usada en el
protocolo
Nombre de la Tabla de Datos
1 - 9999 0000 9998 Output Coils (Lectura/escritura)
10001 - 19999 0000 9998 Inputs Contact (Lectura)
30000 - 39999 0000 9998 Inputs Registers (Lectura)
40001 - 49999 0000 9998 Holding Registers (Lectura/Escritura)

Observe que hay dos direcciones, una es usada para diferenciar entre las tablas de datos, la
llamamos direccin MODBUS y la otra es la direccin usada en la comunicacin entre el maestro y el esclavo,
est es la direccin usada en la trama o paquetes de datos enviados entre maestros y esclavos, en otras
lecciones se hablar ms de estas direcciones para que queden ms claros estos conceptos. Por lo pronto
solo entreramos en detalle sobre dos elementos del MODBUS, los coils y los regstros Holding.
Output Coils
En MODBUS un coil representa un valor booleano tpicamente usado para representar una salida, solo hay
dos estados para el coil el ON y el OFF. Por ejemplo la tarjeta de relevadores usa dos coils, para activar o
desactivar precisamente dos relevadores.
El coil entonces, puede verse como una celda o un bloquecito de memoria que me permite almacenar el
estado de un bit, que puede tener solo dos valores como se vio arriba, el ON o el OFF, o en lgica binaria, un
1 o un 0, o ms cerca de la realidad fsica, tierra (0 Volts) y voltaje (5 Volts), como el lector quiera verlo, eso s
debe quedar claro que son solo dos valores por cada coil.
Hablemos de las direcciones, el coil segn la tabla de datos puede tener una direccin MODBUS, la cual yo
elijo y segn la tabla anterior, puede ser entre 1 y 9999 valores, por simplicidad, se puede elegir el coil 1 y el
coil 2 para, activar o desactivar, en nuestro caso, los relevadores de la tarjeta, pero por supuesto que yo
puedo elegir el coil 9998 y coil 9999, si yo as lo quisiera, cualquier direccin en ese rango se puede usar sin
ningn problema.
Observe la animacin siguiente, muestra varias tarjetas de relevadores como esclavos y un registro
electrnico como maestro.

Algunas anotaciones
En el intercambio de mensajes, ahora aparte de la direccin del esclavo se escribe que estado deseamos
para el coil. Aunque la animacin solo muestra los coil con el estado de ON, tambin se enva de la misma
forma el estado OFF del coil cuando as se necesite.
Note como el esclavo responde a la peticin del maestro, colocando el coil en el estado que se le pide, pero
adems regresa una trama de informacin al maestro, que prcticamente es lo mismo que se le pidi.
Sobra decir que la trama de informacin enviada por el maestro y la respuesta enviada por el esclavo, son
nmeros binarios como se ver en la siguiente leccin.
Holding Registers
Los registros Holding, representan cantidades de 16 bits, se puede ver cada registro como un bloque o celda
de memoria, que es capaz de almacenar nmeros entre 0 y 65535.
Las direcciones usadas para los registros holding inician en la direccin 40001, pero puede usarse cualquiera
de las mencionadas en la tabla para los registros holding.
Estos registros son de lectura/escritura, es decir que el maestro puede hacer peticiones de informacin para
leer el dato que est almacenado, o puede enviar peticiones para escribirle un valor al registro holding en el
momento que se requiera.
En nuestras tarjetas usamos los registros Holding para almacenar el nmero de vueltas que va dando un
encoder debido al paso de gas LP, cuando se inicia un servicio a un cliente, el encoder gira al pasar el gas,
cada vuelta del encoder, hace que el registro holding 40006 aumenten en una unidad, en el momento
deseado el registro electrnico puede hacer peticiones de informacin para saber exactamente, el valor de
cada registro. Como se mostro en la animacin anterior, el maestro siempre inicia las peticiones de
informacin, el maestro puede pedir el valor de los registros holding y el esclavo entonces responde justo con
el valor almacenado en el instante de la peticin, ms detalles de este proceso se vern en el siguiente
articulo.

Anda mungkin juga menyukai