Está en la página 1de 29

Protocolo Modbus

Prof. Francisco Luna Mora.

MODBUS
Modbus fue introducido en 1979 por la compaa Modicon,
que era lder en el mercado incipiente de controladores
lgicos programables (PLC). Su objetivo era ser el protocolo
interno de comunicacin punto-a-punto, el intermedio entre
los PLCs de Modicon y los paneles de programacin que se
usaban para programar controladores. Este protocolo sigue
prosperando porque es de fcil comprensin, y por ello ha
sido utilizado por muchos ingenieros para ejercitarse en
protocolos. Adems, es un sistema abierto y se puede
utilizar sin pagar royalties. No se limita a la automatizacin
industrial; de hecho se puede encontrar en numerosos
sectores de automatizacin, incluyendo la de edificios.

Descripcin general
MODBUS
MODBUS funciona siempre en modo maestroesclavo (cliente - servidor), siendo el maestro
(cliente) quien controla en todo momento las
comunicaciones con los esclavos que pueden
ser hasta 247 (Direccin 1 a 247) . Los esclavos
(servidores) se limitan a retornar los datos
solicitados o a ejecutar la accin indicada por el
maestro. La comunicacin del maestro hacia los
esclavos puede ser de dos tipos.

Descripcin general
MODBUS
peer to peer: en que se establece comunicacin
maestro - esclavo, el maestro solicita
informacin y el esclavo responde. Se enva el
comando a un dispositivo comprendido entre las
direcciones 1 a 247.
broadcast: en que se establece comunicacin
maestro - todos los esclavos, el maestro enva
un comando a todos los esclavos de la red sin
esperar respuesta, se enva a la direccin 0.

Descripcin general
MODBUS

Descripcin general
MODBUS
Se pueden establecer comunicaciones en redes
estndar Modbus utilizando cualquiera de estos
dos modos de transmisin: ASCII o RTU. Los
usuarios seleccionan el modo deseado, junto
con los parmetros de comunicacin del puerto
serie (velocidad de transmisin en baudios,
modo de paridad, etc.), durante la configuracin
de cada controlador. El modo y los parmetros
del puerto serie tienen que ser los mismos para
todos dispositivos en una red Modbus.

Descripcin general
MODBUS
La seleccin de modo ASCII o RTU es
solamente para redes estndar Modbus.
Define los contenidos de los campos del
mensaje serie transmitido por la red. Determina
como estar empaquetada la informacin en los
campos de cdigo y mensaje.
En otras redes como MAP y Modbus Plus, los
mensajes de Modbus estn embebidos dentro
de la trama y no estn relacionados con la
transmisin serie.

MODBUS ASCII
Cuando los controladores se configuran para
comunicar en una red Modbus utilizando modo
ASCII (Cdigo Estndar Americano para
Intercambio de Informacin), cada byte, de 8
bits, de un mensaje se enva como dos
caracteres ASCII. La ventaja principal de este
modo es que permite intervalos de tiempo de
hasta un segundo entre caracteres sin
causar error.

MODBUS ASCII
Sistema de Codificacin:
Hexadecimal, caracteres ASCII 0-9, A-F
Un carcter hexadecimal en cada carcter ASCII del
mensaje.
Bits por Byte:
1 bit de comienzo
7 bits de datos, el bit menos significativo se enva primero
1 bit de paridad par/impar; o ninguno si no hay paridad
1 bit de fin si se usa control de paridad; 2 bits de fin si no
se usa control de paridad
Campo de Control de Error
Control de Redundancia Longitudinal(LRC)

MODBUS RTU
Cuando los controladores se configuran para
comunicar en una red Modbus utilizando modo
RTU (Unidad de Terminal Remota), cada byte, 8
bits, del mensaje contiene dos caracteres
hexadecimales de 4 bits. La ventaja principal de
este modo es que su mayor densidad de
caracteres permite una mejor productividad
de informacin que el modo ASCII para la
misma velocidad. Cada mensaje se transmite
conjuntamente sin interrupcin.

MODBUS RTU
Sistema de Codificacin
8 bits binarios, hexadecimal, 0-9, A- F
2 caracteres hexadecimales en cada campo de 8 bits del
mensaje.
Bits por Byte
1 bit de inicio
8 bits de datos, el bit menos significativo se enva primero
1 bit de paridad par/impar; ninguno si no se usa paridad
1 bit de fin si se usa paridad; 2 bits de fin si no hay
paridad
Campo de Control de Error
Control de Redundancia Cclica ( CRC )

MODBUS ASCII v/s RTU

Trama Modbus
TRAMA ASCII

TRAMA RTU

Como se usa el Campo


de Direccin
El campo direccin de un mensaje contiene dos caracteres
(ASCII) u ocho bits (RTU). Las direcciones vlidas para
dispositivos esclavos estn en el rango de 0-247 decimal.
Los dispositivos esclavos individuales tienen asignadas
direcciones en el rango de 1-247. El maestro se dirige a un
esclavo poniendo su direccin en el Campo Direccin del
mensaje. Cuando el esclavo enva su respuesta, coloca su
propia direccin en el Campo Direccin de la respuesta
para permitir al maestro reconocer al esclavo que est
respondiendo.
La direccin 0 se utiliza para Consulta General, la cual
todos los dispositivos esclavos reconocen

Como se usa el cdigo de


operacin
El campo Cdigo de Operacin del formato de mensaje
contiene dos caracteres (ASCII) u ocho bits (RTU). Los
cdigos vlidos estn en el rango de 1-255 decimal.
Cuando se enva un mensaje desde un maestro a un
dispositivo esclavo el campo de Cdigo de Operacin dice
al esclavo qu la clase de accin debe realizar.
Cuando el esclavo responde al maestro, utiliza el campo de
cdigo de operacin para indicar que es una respuesta
normal (libre de error) o que ha ocurrido algn tipo de error
(respuesta de excepcin).

Como se usa el cdigo de


operacin
Por ejemplo, un mensaje de maestro a esclavo para leer un
grupo de registros internos tendra el siguiente cdigo de
operacin:
0000 0011 (Hexadecimal 03)
Si el dispositivo esclavo recibe la accin solicitada sin error,
devuelve el mismo cdigo en su respuesta.
Si ocurre una excepcin, devuelve :
10000011 (Hexadecimal 83)

Contenido del Campo de Datos


El campo de informacin se construye utilizando conjuntos de
dos dgitos hexadecimales, en el rango 00-FF hexadecimal.
Estos pueden estar formados por un par de caracteres ASCII, o
por un carcter de RTU, de acuerdo con el modo de transmisin
de la red.
El campo de informacin de mensajes enviados desde un
maestro a sus dispositivos esclavos contienen informacin
adicional que el esclavo necesita para ejecutar la accin
definida en el Cdigo de Funcin. Estos pueden incluir detalles
como direcciones de registros o discretas, la cantidad de
registros a manejar, y el contador de bytes reales de informacin
en el campo.

Contenido del Campo de Datos

Por ejemplo, en la solicitud de un maestro a un esclavo para leer


un grupo de registro internos (cdigo de operacin 03), el Campo
de Datos especifica el registro inicial y cuantos registros se
quieren leer.

Contenidos del Campo de Comprobacin de


Error

En las redes estndar Modbus se utilizan dos clases de mtodo


de comprobacin de error. Los contenidos de campo de
comprobacin de error dependen del mtodo que se haya
utilizado.

Contenidos del Campo de Comprobacin de


Error
ASCII
Cuando se utiliza formato ASCII, el campo de comprobacin de
error contiene dos caracteres ASCII. Los caracteres de control de
error son el resultado de un clculo de Redundancia Longitudinal
(LRC) basado en el contenido del mensaje, excluyendo el
carcter de inicio (: ) y los caracteres finales CR LF. (Retorno de
carro + salto de linea)
Los caracteres de LRC se aaden al mensaje como ltimo
campo seguidos de los caracteres CRLF.

Contenidos del Campo de Comprobacin de


Error

RTU
Cuando se utiliza formato RTU, el campo de comprobacin de
error contiene un valor de 16 bits formado por dos bytes de 8
bits. El valor de control de error es el resultado de un clculo de
Control de Redundancia Cclica basado en el contenido del
mensaje.

Como se Transmiten los Caracteres Serie


Cuando se transmiten mensajes en redes estndar Modbus
serie, cada carcter o byte se enva con el siguiente orden (de
izquierda a derecha) :
Bit Menos Significativo (LSB) ....... Bit Mas Significativo (MSB)
Orden de bits ASCII

Orden de bits RTU

Tablas de configuracin
PLC Twido

LEER N BITS

LEER N PALABRAS

ESCRITURA DE UN BIT

ESCRITURA DE UNA
PALABRA

ESCRITURA DE N BITS

ESCRITURA DE N
PALABRAS

También podría gustarte