AMBATO
MDULO DE INTERFAZ DE PC
PROTOCOLO MODBUS
AUTOR:
ELMER S. BARAHONA G.
AMBATO, 7 DE JUNIO DEL 2015
Santiago Barahona
Santiagobarahona7@gmail.com
Introduccin
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.
Desarrollo
El Protocolo MODBUS
Historia
Hasta los aos 60, el control industrial se vena realizando mediante lgica
cableada a base de rels electromecnicos. El desarrollo de la electrnica hizo
posible la implantacin de los dispositivos con microprocesador, tambin
llamados Autmatas Programables o Controladores Lgicos Programables.
Debido a las dificultades que siempre han presentado los sistemas cerrados
(propietarios), en 1979, Modicon public de forma abierta y estandariz el
protocolo, ganando inmediatamente seguidores en la industria, debido a que:
Interfaz RS232:Cableado punto a punto basado en el estndar TIA/EIA232-E. Utilizado para distancias cortas y comunicacin entre dos
equipos.
Interfaz RS485: Cableado multipunto basado en el estndar TIA/EIA485-E. Es un bus con la lnea de comunicacin balanceada (permite
mayores distancias que la comunicacin RS232) y con varios
participantes simultneos (Las direcciones vlidas van desde 0 a 247).
procesa sus respuestas. Los esclavos no transmitirn nunca datos a no ser que
sean preguntados por el maestro y no podrn comunicarse entre s.
[3]
Estructura:
Como en cualquier protocolo de campo destinado al intercambio de informacin
entre un servidor y los dispositivos esclavo, el protocolo Modbus RTU sigue una
estructura de trama bien definida por campos. Como veris la estructura de
trama Modbus es muy sencilla, siendo uno de los motivos de su xito junto a ser
un protocolo abierto y a no estar orientado a conexin
As pues la estructura bsica de una trama Modbus RTU, tanto de lectura como
escritura, es la que se muestra a continuacin:
Direccin Esclavo
Limita el nmero de esclavos que podemos tener conectados de forma correcta
al bus serie Modbus. Dado que existen direcciones reservadas para propsitos
especiales como el broadcast el valor que puede ir de 1 a 247.
Funcin Modbus
Con este campo se especifica que accin requiere el master del slave al que va
dirigida la trama. Con el paso de los aos se han ido aadiendo ms funciones
especificas. En cualquier caso, os explico las mas utilizadas y/o genricas.
En este caso, el valor contenido en este campo si que puede variar si se trata de
una trama Master->Slave o si por el contrario es Slave->Master. El valor de este
byte se ver modificado en la trama de respuesta slo cuando exista algn error
en el campo de datos de la trama Modbus enviada por el Master, no cuando el
cdigo de comprobacin de errores de esta sea errneo. Reiterando lo dicho, si
la trama del Master es correcta, la trama de respuesta tiene este byte con el
mismo valor. En el caso de existir error el Slave responder con la misma funcin
que en la trama enviada por el Master pero con la mscara 080 aplicada. Por
ejemplo: si el mster enva una trama con funcin 003 correcta el Slave
responder con el mismo campo y el mismo valor, 003; si por el contrario
contiene algn error, el Master aplicar la mscara 080 y responder con una
trama con el valor 083. Poco a poco, mas adelante explicar con mas detalle la
trama de error de respuesta para que quede mas claro. Ahora centrmonos en
los casos no excepcionales y sin error. Pues primero se gatea y despus se
camina.
Funciones de lectura de datos:
Byte de datos
Este campo depender tanto en contenido como en longitud de la funcin que
se indique en el campo anterior (Funcin) as como de si se trata de una trama
Master-Slave o de respuesta Slave-Master.
En este post podis ver como son cada una de las funciones. He preferido
dedicarle un post por su variabilidad.
CRC Campo de comprobacin de errores
Este campo consta de dos bytes y como en cualquier otro protocolo en el caso
de Modbus sirve para la deteccin de errores en la trama. El CRC (Cyclic
Redundancy Check o comprobacin de redundancia cclica) es un cdigo ms
que frecuente en la deteccin de errores en redes digitales, sistemas de
almacenamiento para la deteccin de modificacin accidental de los datos o en
este caso para comprobar la integridad de los datos en su transmisin por buses
de campo.
Para el clculo del CRC se utilizan cada uno de los bytes que conforman la trama.
El procedimiento es el siguiente:
[4]
Conclusiones:
Cada esclavo tiene su propia direccin, que puede ir desde 1 hasta 247.
Referencias:
[1] A. Creus Sol, Transmisores, Instrumentacin Industrial. 8Ed, Editorial
Marcombo.
[2] J. Colomer LLins, J. Melndez, J. Ayza, Introduccin a la monitorizacin y
supervisin experta de procesos: mtodos y herramientas, Sistemas de
supervisin., 1ra, Editorial Cetisa Boixareu, 2000.
[3] Informacin Detallada sobre el Protocolo Modbus [Online] 2014, Disponible
en: file:///C:/Users/Jorge/Downloads/NI-Tutorial-52134-es.pdf.
[4] Modbus [Online] Disponible en: http://www.modbus.org/