Vous êtes sur la page 1sur 10

UNIVERSIDAD TCNICA DE

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.

La historia del protocolo Modbus va ligada a la historia de los PLCs. El PLC


(Controlador Lgico Programable) apareci con el propsito de eliminar el
enorme costo que significaba el mantenimiento de un sistema de control
electromecnico (basado en rels) a finales de los aos 60.

La empresa Bedford Associates (Bedford, MA) propuso a General Motors un


sistema que permita realizar cambios en las maniobras de un equipo de
control sin necesidad de modificar el cableado. A este sistema le di el nombre
de: Modular Digital Controller, o MODICON. El MODICON 084 fue el primer
PLC producido comercialmente.

La posibilidad de comunicar equipos apareci por el ao 1973. El primer


sistema que lo hizo servir fu Modbus de Modicon. Permita establecer
comunicaciones Maestro-Esclavo y Cliente-Servidor entre dispositivos
inteligentes y con dispositivos de campo (Transmitir seales digitales,

analgicas, registros e informacin de estado entre ellos)

La posibilidad de conectar los autmatas entre s permiti eliminar casi todo el


cableado de control entre mquinas, quedando solamente una lnea de
comunicacin entre ellas. A travs de sta se poda coordinar el
funcionamiento de todos los componentes de un sistema, programar a
distancia, supervisar remotamente, diagnsticar todos los elementos
conectados,etc.

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:

El cdigo era totalmente abierto y libre de royalties

Fcil y rpido de implementar

Intercambio sencillo de informacin entre equipos

Modbus define una estructura de mensaje que los controladores podrn


reconocer y utilizar sin tener en cuenta el tipo de red que stos harn servir
para comunicarse.
[3]
Que es Modbus?
El MODBUS es un protocolo de comunicacin serial basado en el modelo
maestro/esclavo, Modbus funciona siempre en modo maestro-esclavo (cliente servidor), siendo el maestro (cliente) quien controla en todo momento las
comunicaciones con los esclavos que pueden ser hasta 247. Los esclavos
(servidores) se limitan a retornar los datos solicitados o a ejecutar la accin
indicada por el maestro.
Cada esclavo debe tener una nica direccin, as el maestro sabe con quin se
debe comunicar.
[1]

Figura 1. Una relacin entre Maestro-Esclavo

Cableado y acceso al medio


Modbus hace servir RS-232C, que define las caractersticas fsicas de la
conexin.

La comunicacin es del tipo Maestro-Esclavo. Un maestro Modbus puede ser


un ordenador central o un Panel de Operador, mientras que un esclavo puede
ser un autmata programable.

A nivel fsico (cableado y estructura de red) se pueden presentar distintas


variantes de cableado:

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

Habitualmente se implementa mediante 2 hilos, pero tambin existe la


posibilidad de utilizar un cableado de 4 hilos.
[2]
El acceso al medio se realiza mediante un modelo maestro/esclavo. Un nodo
principal (maestro) realiza peticiones explcitas a cada uno de los esclavos y

procesa sus respuestas. Los esclavos no transmitirn nunca datos a no ser que
sean preguntados por el maestro y no podrn comunicarse entre s.

En cuanto al formato de los datos que se transmiten por la red, se distinguen


dos tipos de
modos de transmisin:

RTU (Remote Terminal Unit):Formato de transmisin binario (8 bits de


datos en cada byte transmitido). Es el formato habitual para la
transmisin de datos entre equipos.

ASCII: Formato basado en caracteres ASCII, en que cada grupo de 4


bits del formato RTU se codifica con un carcter ASCII (carcter
hexadecimal representado en ASCII).

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

Valor comprendido entre 1-247.

No se v afectado por si se trata de una trama de escritura o lectura.

Cuando el master pregunta al slave este campo contiene la direccin del


slave al que va dirigido. Cuando se trata de una trama de respuesta de
un slave al master este campo contiene tambin la direccin del esclavo
indicando quin es el que responde.

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:

Funcin 01 (01 hex): Lectura de seales discretas de salida (Discrete


Output Coils)

Funcin 02 (02 hex): Lectura de seales discretas de entradas


(Discrete Input Contacts)

Funcin 03 (03 hex): Lectura de registros analgicos (Analog Output


Holding Registers)

Funcin 04 (04 hex): Lectura de registros analgicos de entrada


(Analog Input Registers)

Funciones de escritura de datos:

Funcin 05 (05 hex): Escritura de una seal discreta de salida (Simple


Discrete Output Coil)

Funcin 15 (0F hex): Escritura de mltiples seales discretas de salida


(Mltiple Discrete Output Coils)

Funcin 06 (06 hex): Escritura de un Simple Analog Output Holding


Register

Funcin 16 (10 hex): Escritura Mltiple Analog Output Holding


Registers

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:

Se enva la trama Modbus con el CRC calculado.

El receptor del mensaje recibe la trama completa e internamente calcula


el CRC con los datos recibidos. Y lo compara con el CRC que le ha
llegado.
o

Si el cdigo coincide, la trama Modbus es correcta y se prosigue


con el funcionamiento normal generando la respuesta pertinente.

Si el cdigo es errneo, es decir que no coincide el CRC recibido


con el CRC no se responder a la peticin de datos por parte del
Slave, de manera que ocurrir un Timeout en recepcin del Master
y este deber entender que el Slave no ha recibido la trama
correctamente y proceder a un reintento.

[4]
Conclusiones:

Modbus es el estndar de facto de la industria desde 1979, que permite


comunicarse a millones dispositivos de automatizacin.

Modbus se utiliza para monitorear y programar dispositivos; para


comunicar dispositivos inteligentes con sensores e instrumentos; para
supervisar los dispositivos de campo utilizando PCs y HMIs.

Modbus es tambin un protocolo ideal para aplicaciones RTU donde se


utiliza comunicacin inalmbrica

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.

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/

Vous aimerez peut-être aussi