You are on page 1of 13

Universidad Don Bosco.

Facultad de Ingeniera.
Departamento de Electrnica

RED INDUSTRIAL MODBUS

Asignatura:
Redes de Comunicacin Industrial

Docente:
Ing. Francisco Ramos

Alumnos:
Hctor Jaime Pea Linares

PL100875

Henry Alberto Orellana

OA090041

Max Leonel Turcios Bermdez

TB100173

Soyapango, Sbado 21 de Marzo del 2015

NDICE
CONTENIDO
INTRODUCCIN .................................................................................................................................................... 2
RED INDUSTRIAL MODBUS ............................................................................................................................... 3
DEFINICIN: ....................................................................................................................................................... 3
FUNCIONAMIENTO Y ELEMENTOS DE LA RED: ...................................................................................... 3
ESTRUCTURA DE LA RED MODBUS ........................................................................................................... 4
MODO DE TRANSMISIN................................................................................................................................ 4
TRAMAS DE MODBUS...................................................................................................................................... 5
DESCRIPCIN DE LA TRAMA ........................................................................................................................ 6
GLOSARIO DE TRMINOS ............................................................................................................................... 10
BIBLIOGRAFA DE CONSULTA ....................................................................................................................... 11
ANEXOS................................................................................................................................................................. 12
MODBUS SOBRE CONEXIN RS-485 ........................................................................................................ 12

INTRODUCCIN
MODBUS es un protocolo de comunicaciones industriales desarrollado en 1979 por la empresa
MODICON (ahora AEG Schneider Automation). MODBUS se considera el protocolo de
comunicaciones ms comn utilizado en entornos industriales, sistemas de automatizacin, control y
monitorizacin, a causa de que es pblico, fcil de implementar y flexible.
Muchos fabricantes utilizan este protocolo para especificar el procedimiento que el maestro y esclavo de
una red utilizan para intercambiar datos, el formato de estos datos, y el tratamiento de errores; aunque
no define estrictamente el tipo de red de comunicaciones a utilizar, por lo que se puede implementar
sobre redes basadas en Ethernet, RS-485, RS-232, etc.
Inicialmente, al no poseer una red definida, se orientaba a una conectividad a travs de lneas serie
como pueden ser RS-232 o RS-485, pero con el paso del tiempo han aparecido variantes como
la MODBUS TCP, que permite el encapsulamiento del MODBUS serie en tramas Ethernet TCP/IP de
forma sencilla, debido a que desde la percepcin del modelo OSI, el protocolo MODBUS se ubica en la
capa de aplicacin.
Este documento explica las especificaciones del protocolo MODBUS de forma general, abordando su
estructura, modos de transmisin, algunas funciones importantes del protocolo necesarias para ayudar
a comprender el funcionamiento de dicha red industrial.

RED INDUSTRIAL MODBUS


DEFINICIN:
MODBUS es un protocolo estndar que realiza una comunicacin tipo maestro-esclavo entre distintos
dispositivos conectados fsicamente con un bus serie. Este protocolo es de tipo peticin/respuesta, por
lo que en una transaccin de datos se puede identificar el dispositivo que realiza una peticin como el
cliente o maestro, y al que devuelve la respuesta como el servidor o esclavo de la comunicacin. En una
red MODBUS se dispone de un equipo maestro que puede acceder a varios equipos esclavos,
reconocidos por una direccin nica de dispositivo.
El protocolo MODBUS se encarga de la transmisin de informacin entre distintos equipos electrnicos
conectados a un mismo bus, existiendo en dicho bus, un solo dispositivo maestro (master) y varios
equipos esclavos (slaves) conectados.

Fig. 1 Configuracin maestro-esclavo en MODBUS

FUNCIONAMIENTO Y ELEMENTOS DE LA RED:


En una red con protocolo MODBUS, el master pregunta y los slaves responden o actan en funcin de
lo que este diga. Un dispositivo conectado al bus como maestro, solicita informacin al resto de
dispositivos que estn conectados como esclavos y son quienes suministran la informacin al primero.
Al implementar una red MODBUS habr un master y hasta un mximo de 247 dispositivos slaves. Esta
limitacin est determinada por el simple hecho que en una trama de este tipo la direccin del esclavo
se representa con un solo Byte, existiendo algunas direcciones reservadas para propsitos especficos.
Todos los dispositivos esclavos deben tener una direccin asignada que debe estar comprendida entre
1 y 247, sin repetir, ya que no pueden coexistir dos dispositivos esclavos con la misma
direccin MODBUS. Dentro de la trama MODBUS RTU, la direccin del esclavo corresponde al primer
Byte. En MODBUS el master no slo puede ejercer la funcin de recompilar informacin de los esclavos
mediante preguntas, sino que puede interactuar con ellos o alterar su estado, pudiendo escribir adems
de leer informacin en cualquiera de ellos.

ESTRUCTURA DE LA RED MODBUS


Algunas especificaciones que definen la estructura de una red MODBUS, se enuncian a continuacin:
El medio fsico de comunicacin puede ser RS-485, fibra ptica, RS-422, lazo de corriente.
El medio fsico de conexin de la red puede ser un bus half-duplex (RS-485 o fibra ptica) o
dplex (RS-422, lazo de corriente o fibra ptica)
La comunicacin es asncrona y las velocidades de transmisin previstas van desde los 75
baudios a 19,200 baudios.
La mxima distancia entre estaciones depende del nivel fsico, pudiendo alcanzar hasta 1200m
sin necesidad de repetidores.

MODO DE TRANSMISIN
MODBUS RTU (REMOTE TERMINAL UNIT)
Se caracteriza por que los bytes se envan en forma binaria, sin ningn tipo de conversin. Este modo
de transmisin est pensado para comunicaciones en bus serie y tiene como ventaja principal el
aprovechamiento del canal de comunicacin, mejorando la velocidad de la transmisin de los datos. El
inconveniente es que requiere una gestin de tiempos entre Bytes recibidos para saber cundo
empiezan y terminan las tramas.

Fig. 2 Aplicacin MODBUS RTU

MODBUS ASCII
Los datos se codifican como caracteres ASCII, ofrece una facilidad de deteccin del principio y del fin
de trama gracias a los campos de inicio y fin (caracteres ":" y "CRLF"), con independencia de los tiempos
de la transmisin del canal de comunicacin.

TRAMAS DE MODBUS
Un mensaje consiste en una secuencia de caracteres que puedan ser interpretados por el receptor. Esta
secuencia de caracteres se conoce como trama. Para sincronizar la trama, los dispositivos receptores
monitorizan el intervalo de tiempo transcurrido entre caracteres recibidos.
Dado que MODBUS es un protocolo de nivel de aplicacin, se requiere utilizarlo sobre una pila de
protocolos que resuelva los temas especficos del tipo de red empleada.

Fig. 3 Comunicacin MODBUS

Las tramas de MODBUS pueden ser de tres tipos: RTU, ASCII y MODBUSTCP. MODBUS RTU y ASCII
estn pensados para ser utilizadas directamente sobre un medio fsico serie asncrono, como por
ejemplo EIA/TIA RS-232, EIA/TIA RS-485, o EIA RS-422. En contraste, MODBUSTCP est desarrollado
para funcionar sobre redes que utilizan la arquitectura TCP/IP, por lo que permite usar MODBUS sobre
redes como Ethernet o WiFi.

Fig. 4 Tramas MODBUS RTU y ASCII

DESCRIPCIN DE LA TRAMA
Direccin Esclavo
En el caso de las tramas enviadas por el maestro, el campo de nmero de esclavo indica la direccin
del destinatario de esta trama.
Funcin MODBUS
La siguiente tabla muestra las funciones ms utilizadas en las peticiones y respuestas de MODBUS, con
sus cdigos.
CDIGOS DE FUNCIN MS COMUNES DE MODBUS
Cdigo
Cdigo
Funcin
decimal hexadecimal
1
16#01
Leer estado de marcas y salidas digitales
(bobinas)
2
16#02
Leer estado de entradas digitales
3
16#03
Leer registros
4
16#04
Leer entradas analgicas
5
16#05
Forzar valor de una salida digital (bobina)
6
16#06
Establecer valor de un registro
15
16#0F
Forzar mltiples marcas o salidas digitales
(bobinas)
16
16#10
Establecer mltiples registros

Tipo de datos
Bit
Bit
Entero 16 bits
Entero 16 bits
Bit
Entero 16 bits
Bit
Entero 16 bits

TABLA 1 Funciones ms comunes de MODBUS

El formato de los campos de funcin y de datos de las tramas de MODBUS depende de la funcin
utilizada. La figura 5 muestra el patrn de esos campos para las tramas de peticin (request), respuesta
(response) y error. Est ultima trama es un caso especial de respuesta enviada por un esclavo cuando
tiene problemas para atender una peticin.
A continuacin se describen los smbolos utilizados en el esquema de la Figura.

FUNC. CODE (F): Cdigo de la funcin MODBUS a ejecutar en el esclavo.


START DIR. (D): Direccin de inicio del primer objeto de datos afectado por la funcin.
COUNT (C): Cantidad de objetos a leer o escribir.
DATA (D): Datos a escribir en los registros u objetos del dispositivo.
SATUS (ST): Valor actual de los objetos del dispositivo. Permite verificar que una escritura ha
sido realizada correctamente, o, en caso de lectura permite obtener los datos ledos.
ERROR. CODE (EC): Cdigo de error de MODBUS. Se corresponde normalmente al valor 16#80
ms el valor de la funcin que origin el error.
EXCEPCION. CODE: Cdigo de excepcin (indica que ha causado el error).
ACR: Es un acrnimo que se compone de tres letras, la primera es si se trata de un comando de
lectura (R) o escritura (W) en el dispositivo. La segunda se refiere al tipo de objeto de datos sobre
el que acta dicho comando C: Coil o bobina (1 bit), D: Discrete o entrada digital (1 bit), R:
Register o registro (16 bits), I: Input o entrada analgica (16 bits). Y la ltima letra se corresponde
con una M (Multiple) si la funcin acta sobre mltiples objetos y S (Single) si acta sobre uno.

Fig. 5: Formato de las peticiones y respuestas de MODBUS.

Leer N bits (Cdigo de funcin 01 o 02)


Esta funcin permite al usuario obtener los valores lgicos (ON/OFF) de los bits del dispositivo
direccionado. Los datos de respuesta van empaquetados en bytes de manera que el primer bit solicitado
ocupa el bit de menos peso del primer byte de datos. Los siguientes van a continuacin de manera que
si no son un nmero mltiplo de 8, el ltimo byte se completa con ceros.
Leer N Registros (Cdigo de funcin 03 o 04)
Esta funcin permite al usuario obtener los valores de los registros del dispositivo direccionado. Estos
registros almacenan los valores numricos de los parmetros y variables del controlador. El rango de
los datos vara de 0 a 65536. Los datos correspondientes a direcciones de registros que pasan de la
ltima direccin vlida de parmetros se asignan a cero (00 00).
Funcin para escribir 1 bit (Cdigo de funcin 05)
Esta funcin permite al usuario escribir los valores lgicos (ON/OFF) de los bits del dispositivo
direccionado. Para desactivar el bit se debe enviar 00h, y para activarlo se debe enviar 01h o FFh. ste
valor se debe escribir en el byte ms significativo.
Funcin para escribir un registro (Cdigo de funcin 06)
Esta funcin permite al usuario modificar el contenido de los parmetros del dispositivo direccionado.
Los valores se envan escalados segn el factor de escala correspondiente a cada parmetro, en un
rango entre 0000h y FFFFh. Las tramas de comunicacin para esta funcin estn ilustradas en las tablas

Funcin 15 ( Force Multiple Coils )


Permite la modificacin simultanea de varios bits de DOs en el esclavo, pasndolos a OFF (0) o a ON
(1) segn convenga. Acta sobre la zona de memoria de las DOs (@0XXXX).
As en el comando se pasan la direccin inicial (direccin del primer bit o mando a modificar) y la cantidad
y estado de cada uno de los sucesivos mandos (bits) a modificar.
Funcin 16 (Preset multiple registers)
Permite realizar la escritura en un grupo de AOs, y por tanto acta sobre la zona de AOs (@4XXXX). Se
debe especificar la direccin a partir de la que queremos comenzar a actualizar valores, el nmero de
valores que queremos actualizar, y la lista de valores que queremos asignar a estos registros. Aunque
se est escribiendo en el rango de registros o valores numricos, los registros son direccionados a partir
de la direccin 0 (es decir el registro @40001 se direcciona 0).
Cdigos de error
Comnmente, los errores que aparecen durante las operaciones de acceso y programacin de
dispositivos tienen relacin con datos no vlidos en la trama, tal como se ve en la tabla 2.
Cuando un dispositivo detecta un error de esta naturaleza, la respuesta al master consiste en la direccin
del dispositivo, el cdigo de la funcin, el cdigo de error y el CRC. Para indicar que la respuesta es una
notificacin de error, el bit de ms peso del cdigo de la funcin est activado.
Cdigo
01

Tipo de Error
Funcin invalida

02

Direccin Invalida

03
04

Dato invalido
Falla en el dispositivo

05

Reconocimiento (ACK)

06

Ocupado

07

Reconocimiento Negativo
(ACK)

Significado
La funcin recibida no est permitida
en el esclavo
La direccin est fuera del rango
permitido
El dato contiene un valor no valido.
El controlador no responde o ha
ocurrido un error.
Se ha aceptado la funcin y se est
procesando.
El mensaje ha sido recibido sin error,
pero el dispositivo no puede
procesarlo en este momento.
La funcin solicitada no puede
realizarse en este momento.

TABLA 2 Errores ms comunes en las operaciones de acceso

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 Maestro-esclavo o de respuesta esclavoMaestro.
Control de errores LRC o CRC:
Se utiliza un sistema de deteccin de errores diferente dependiendo del tipo de codificacin utilizado (ASCII
o RTU). En el caso de la codificacin ASCII es el checksum (o Longitud Redundancy Check LRC) en mdulo
16 expresado en ASCII (2 caracteres representan 1 byte), sin considerar el ":" ni el CR LF de la trama. En
la codificacin RTU se utiliza el mtodo de CRC (Cyclical Redundancy Check) codificado en 2 bytes (16 bits).

GLOSARIO DE TRMINOS
ASCII:
American Standard Code for Information Interchange
Modos de transmisin MODBUS:
Los modos de transmisin definen como se envan los paquetes de datos entre maestros y esclavos
RTU:
Unidad Terminal Remota. Define a un dispositivo basado en microprocesadores, el cual permite obtener
seales independientes de los procesos y enviar la informacin a un sitio remoto donde se procese.
Tabla de datos 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

10

BIBLIOGRAFA DE CONSULTA
Sitios Web:
MODBUS parte III: Qu es el MODBUS?, http://www.tecdigitaldelbajio.com/blog/27-modbus-

parte-iii-que-es-el-modbus.html, consultado el 18 de Marzo de 2015.


El protocolo MODBUS, http://www.tolaemon.com/docs/modbus.htm, consultado el 21 de
Marzo de 2015.

11

ANEXOS
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 RS232, incluso se puede implementar va TCP/IP sobre una red Ethernet, en SDM se usa la implementacin
MODBUS sobre una red RS-485.

Fig. 6: Representacin de comunicacin MODBUS de RS232 a RS485

Fig. 7: Representacin de comunicacin MODBUS Wireless RS232/RS485

12

You might also like