Sie sind auf Seite 1von 28

5.

PROTOCOLO DE COMUNICACIÓN INDUSTRIAL: MODBUS


(Rev.#A/20180507/SG)
5.1 ANTECEDENTES
MODBUS es el más antiguo y quizá el protocolo de comunicación de control industrial de
despliegue a nivel mundial.

MODBUS fue diseñado y propuesto en el año de 1979 por Gould Modicon (en la actualidad parte
de Schneider Electric) inventor del primer PLC.

MODBUS fue concebido y orientado para adquisición de datos en sistemas de control industrial
como SCADA.

MODBUS ha sido ampliamente adoptado como el estándar “de facto” (no reconocido
oficialmente pero funciona como tal) y ha sido mejorado a través de los años en varias versiones.

MODBUS se define como un protocolo de mensajería porque opera en el modo “Requerimiento-


Respuesta”.

5.2 APLICACIONES DE MODBUS DENTROL DE LA ARQUITECTURA INDUSTRIAL


Entre las aplicaciones de MODBUS se puede señalar:

5.2.1 PROTOCOLO DE COMUNICACIÓN DE SCADA


Nivel de Control de Proceso y Nivel de Gestión (Para supervisión)

Aplicaciones HMI/SCADA donde la MTU recolecta y centraliza información y ejerce acciones de


control de dispositivos de campo a través de las RTU (Dispositivos de Adquisición de Datos).

5.2.2 PROTOCOLO DE CAMPO (Fieldbus Protocolo)


Nivel de Proceso y Campo

Puede ser usado como servicio de mensajería para el intercambio de información entre
dispositivos de campo.

Para el monitoreo de redes de controladores o reguladores a través de aplicaciones de software


(aplicaciones de dispositivo).

Integración de dispositivos I/O a PLCs o RTUs.

PROTOCOLO MODBUS S. GAMBOA


Es una práctica común usar MODBUS sobre TCP/IP como protocolo de comunicación de SCADA
para la integración PLCs con HMI.

MODBUS Serial, sobre interface RS-485 bus serial para la conexión de dispositivos de campo
encargados de los lazos de control.

5.3 ARQUITECTURA DE LA TECNOLOGIA MODBUS


5.3.1 ARQUITECTURA CLIENTE/SERVIDOR
MODBUS es un protocolo de mensajería que opera en la Capa de Aplicación (Capa 7) del modelo
OSI de comunicación.

PROTOCOLO MODBUS S. GAMBOA


En MODBUS, la comunicación entre dispositivos está basada en la metodología REQUEST/REPLY
(Solicitud/Respuesta), o en algunos casos también conocida como REQUEST/RESPONSE Mode.

Y la arquitectura implementada es Cliente/Servidor, y solo el cliente puede iniciar la transacción


de información. Donde:

*CLIENTE: Aplicación de software que se ejecuta en un computador y que para realizar algunas
de sus funciones hace uso de servicios provistos por otra aplicación de software (Servidor).

*SERVIDOR: Aplicación de software desarrollada para proveer servicios a otras aplicaciones de


software. Estas aplicaciones servidor ejecutan funciones específicas cuando el cliente lo solicite,
y el resultado de la ejecución de estas funciones pueden ser accedidas por el cliente.

Si bien la arquitectura es Cliente/Servidor, es muy común que se use el término Maestro/Esclavo


justificado en que las primeras variaciones de MODBUS sobre interfaces seriales como RS-485
usaban como el mecanismo Maestro/Esclavo para el acceso al medio.

5.3.2 MENSAJES MODBUS


Para la interacción entre el cliente y el servidor, en MODBUS se define 4 tipos de mensajes en
los cuales está basada su comunicación, a estos se suman un mensaje de excepción. Los
mensajes MODBUS son:

 MODBUS Request
 MODBUS Indication
 MODBUS Response
 MODBUS Confirmation
 MODBUS Exception Response

MODBUS Request

Mensaje enviado a la red por un cliente para iniciar una transacción o sesión de comunicación.

PROTOCOLO MODBUS S. GAMBOA


MODBUS Indication

Mensaje de requerimiento que recibe el servidor que fue enviado como “Request” por el cliente.

MODBUS Response

Mensaje de respuesta enviado por el servidor frente al requerimiento del cliente.

MODBUS Confirmation

Mensaje de respuesta que recibe el cliente en respuesta a un “Request”.

Estos servicios de mensajería son usados para intercambio de información en tiempo real entre
dispositivos de campo y aplicaciones de monitoreo y control, por ejemplo para la comunicación
entre dispositivos de campo (PLCs) y el HMI/SCADA. Tambien puede aplicar en el caso de
comunicación entre dispositivos de campo donde uno de ellos hace de maestro y el resto de
dispositivos hacen de esclavos.

MODBUS Exception Response

Mensaje de respuesta enviado por el servidor cuando existe un error.

EJEMPLO: “Illegal Data Address” → la dirección del dato solicitado no es soportada.

Para un sistema o aplicación práctica:

Una sesión de comunicación se inicia con un mensaje de “Request” del cliente, el mismo que
identifica a cada servidor a través de una única dirección que es asignada a cada dispositivo que
se comunicará a través de MODBUS. Esta dirección máxima es 247, aunque en la mayoría de los
casos no suelen sobrepasar los 32 dispositivos incluidos el maestro, y que es el número máximo
de dispositivos permitidos en un interface RS-485.

PROTOCOLO MODBUS S. GAMBOA


5.4 CARACTERISTICAS Y FORMATO DE LA TRAMA MODBUS (MODBUS FRAME)
Para que MODBUS pueda ser usado para comunicar dispositivos simples como sensores,
accionamientos de velocidad con dispositivos más complejos como computadores se requiere
que la trama sea simple y fácil de entender, y que no requiera de mayor procesamiento.

Esto se logra a través de encabezados simples, con valores predefinidos y con su mensaje
implícito.

Esto se logra a través de encabezados simples, con valores predefinidos y con su mensaje
implícito.

De allí que la trama MODBUS (MODBUS Frame) contiene 4 campos en los que se busca dejar
implícito el significado de este mensaje. Estos campos son:

 Dirección (Address)
 Código de Función (Function Code)
 Datos (Data)
 Chequeo de Errores (Checksum, Error Check)

Donde las funciones de los campos son:

Address:

Dirección del servidor (esclavo) al que se le realiza el requerimiento de inicio de sesión de


comunicación. Esta dirección se mantiene tanto en el “Request” como en el “Response”, es decir
durante toda la sesión de comunicación.

Function Code:

Código de función, designación o identificador numérico con la que se identifica una acción
específica que debe ser realizada por el esclavo.

Data:

PROTOCOLO MODBUS S. GAMBOA


Contiene la dirección del registro de memoria a ser escrito o leído, y el dato a ser escrito cuando
el requerimiento es escritura.

Chequeo de Errores:

Campo de chequeo de errores que permite un seguimiento y descartar que el dato ha sido
dañando en el proceso de comunicación.

PDU (Protocol Data Unit):

Se define como PDU al conjunto “Function Code” y “Data” que son los campos que encierran o
traen implícito el objeto del mensaje.

Es decir el PDU encierra el “Comando” enviado desde el Maestro hacia el Esclavo, entre estos
comandos están:

 Control an I/O Interface


 Read from an I/O Interface
 Read a Value of a Register
 Read a Value to a Register

ADU (Application Data Unit):

Con la adición de la dirección de destinatario y el campo de chequeo de errores se forma el ADU.

5.5 CODIGO DE FUNCION MODBUS


Los Códigos de Función son un identificador numérico asignado a cada una de las posibles
acciones que pueden ser realizadas por el controlador o dispositivo destinatario del mensaje.

Se debe tener en cuenta que los Códigos de Función son diferentes para cada uno de los cuatro
tipos de registros MODBUS.

A continuación se revisan algunos Códigos de Función de Mensajes MODBUS.

5.5.1 Read coil or digital output status (Function Code = 01)


Lectura del estado de bobinas o estados de salidas digitales.

PROTOCOLO MODBUS S. GAMBOA


En el caso del campo “Data” se ha mencionado que es variable, y tanto su longitud como el
contenido dependen del objetivo del mensaje, es decir del Código de Función. Así en el caso del
Código de Función 01 se revisa tanto el mensaje “MODBUS Request” así como el “MODBUS
Response”.

Data Field en “MODBUS Request”

Initial Coil Offset: Dirección relativa de la primera bobina a leer

Number of Point: Cuantas bobinas a partir de la primera se requiere leer

Data Field en “MODBUS Response”

Byte Count: Número de bytes en los que se envía la respuesta

Coil Data: Bytes con estado de las bobinas, donde el bit menos significativo es la primera bobina.

* Los bits más significativos que no expresan un estado se coloca a cero.

5.5.2 Read digital input status – Read contact status (Function Code = 02)
Lectura del estado de contactos o estados de entradas digitales.

PROTOCOLO MODBUS S. GAMBOA


* Aplica las definiciones anteriores en cuanto al Campo “Data”.

5.5.3 Reading Holding Register (Function Code = 03)


Lectura del contenido de 1 ó más registros en el servidor, cada registro contiene 16 bits.

Para este mensaje:

Data Field en “MODBUS Request”

Starting Register: Dirección relativa del primer registro

Register Count: Número de registros a leer

Data Field en “MODBUS Response”

Byte Count: Número de bytes en los que se envía la respuesta

Register Data: Bytes con datos de registros, cada registro en 2 bytes, más significativo primero.

* El primer registro al que se apunta es el primero en ser enviado.

PROTOCOLO MODBUS S. GAMBOA


5.5.4 Reading Input Register (Function Code = 04)
Lectura del contenido de 1 ó más registros en el servidor, cada registro contiene 16 bits.

* Aplica las definiciones anteriores en cuanto al Campo “Data”.

5.5.5 Forcing a Single Coil (Function Code 05)


Cambiar el estado de una bobina o salida en el servidor.

PROTOCOLO MODBUS S. GAMBOA


5.5.6 Exception Response Message
Este tipo de mensaje se genera cuando la acción solicitada a través del mensaje “MODBUS
Request” no puede ser ejecutada por el servidor.

Los códigos cuando se envía un mensaje de excepción se muestran a continuación:

5.6 CONSIDERACIONES
 El éxito de MODBUS radica en que es relativamente fácil de usar.
 Comunica mensaje sin encabezado excesivo.
 A diferencia de otros protocolos no tiene restricciones de autenticación.
 Es un protocolo abierto.

5.7 MANEJO DE REGISTROS MODBUS


Una de las características de MODBUS es que el acceso del cliente, dispositivo que requiere
información, lo hace a través del acceso a direcciones específicas del esclavo.

El maestro puede acceder a cuatro tipos de datos MODBUS en un esclavo, estos 4 tipos de
datos se los define en los siguientes grupos:

 COILS (Discrete Outputs): Salidas a nivel de bit que pueden ser forzadas (DO)

 CONTACTS (Discrete Inputs): Entradas a nivel de bit que pueden ser leídas (DI)

 INPUT REGISTERS (Read Registers): Entradas a nivel de registro de 16 bits (IR)

PROTOCOLO MODBUS S. GAMBOA


 HOLDING REGISTERS (Write Registers): Salidas a nivel de registro de 16 bits (HR)

Esto es visto desde el punto de vista del maestro:

Estos 4 tipos de datos se encuentran ubicados en la memoria del esclavo distribuido en 4


grupos nombrados con su respectivo nombre.

Estos 4 grupos o archivos se identifican por un prefijo numérico que caracteriza el inicio de
cada dirección:

0XXXX Coils

1XXXX Contacts

3XXXX Input Register

4XXXX Holding Register

Dependiendo de la cantidad de dígitos usados para expresar la dirección, los dispositivos se


definen como dispositivo de 4, 5 ó 6 dígitos. Por ejemplo los contacts con identificador 1:

4 dígitos: 1XXX → 1001 – 1999

5 dígitos: 1XXXX → 10001 – 19999

6 dígitos: 1XXXXX → 100001 – 199999

PROTOCOLO MODBUS S. GAMBOA


En lo referente a la dirección que se asigne al primer registro, es importante indicar que existen
dos tipos de dispositivos:

 Dispositivos Base 0
 Dispositivos Base 1

En los Dispositivos Base 0 el direccionamiento de los registros inicia en 0, mientras que en los
Dispositivos Base 1 el direccionamiento de los registros inicia en 1.

Dispositivos Base 0: Primer Coil = 10000

Dispositivos Base 1: Primer Coil = 10001

Formalmente los COILS y los HOLDING REGISTER son salidas desde el maestro por lo cual son
bits y registros de escritura, pero es factible que el maestro puede saber lo que escribió.

Por su parte los CONTACTS y los INPUTS REGISTER son entradas hacia el maestro, por lo cual son
bits y registros solo de escritura.

PROTOCOLO MODBUS S. GAMBOA


De acuerdo a estas posibles acciones sobre los componentes se definen funciones que pueden
ser realizadas por grupos de datos:

5.8 PERFIL DE COMUNICACIONES MODBUS (STACK OSI)

PROTOCOLO MODBUS S. GAMBOA


5.9 CONFIGURACION DE REGISTROS MODBUS (DISPOSITIVOS NO NATIVOS)

Tener en cuenta los “Data Files”:

PROTOCOLO MODBUS S. GAMBOA


La configuración para crear los registros MODBUS se da durante el desarrollo del proyecto
para la programación del controlador.

PROTOCOLO MODBUS S. GAMBOA


PROTOCOLO MODBUS S. GAMBOA
Estos archivos de registro ahora forman parte de los archivos que pueden usarse durante la
programación.

5.10 CONFIGURACION DE MENSAJES MODBUS (MAESTRO MODBUS)


Aquí colocar mensajes en ML 1100.

PROTOCOLO MODBUS S. GAMBOA


Mensaje “MODBUS Request”

PROTOCOLO MODBUS S. GAMBOA


PROTOCOLO MODBUS S. GAMBOA
PROTOCOLO MODBUS S. GAMBOA
5.11 VARIANTES DE MODBUS
El extendido uso de MODBUS ha llevado al desarrollo de algunas variantes que se acomodan a
necesidades particulares.

Entre estas variantes se encuentran:

 MODBUS RTU
 MODBUS ASCII
 MODBUS PLUS (Modbus +)
 MODBUS TCP

A continuación algunos ejemplos de los usos de las variantes de MODBUS.

PROTOCOLO MODBUS S. GAMBOA


5.11.1 MODBUS RTU
Es considerada al variante más simple de MODBUS, la misma que soporta trasmisión binaria
sobre buses seriales, por lo que a veces es definida como MODBUS B (Binary).

MODBUS RTU usa una representación o codificación binaria de los datos, los mismos que están
codificados en grupos de 8 bits.

Esto hace que MODBUS RTU sea más compacto y más rápido que su par MODBUS ASCII, por
esto generalmente es usado para la comunicación de dispositivos durante operación normal.

Otra característica es que el campo de inicio o “START” y el campo de fin “END” de la trama se
define en tiempos equivalentes al periodo de un carácter, el mismo que puede ser 1, 3.5 o 4
veces el tiempo de un carácter de 8 bits.

Una de las desventajas es que al estar codificado en binario, su significado no se puede


interpretar directamente, siendo necesario procesamiento adicional para que pueda ser
interpretado por el ser humano.

Los campos de una trama MODBUS RTU se muestran a continuación:

* CRC = Cyclic Redundancy Check

5.11.2 MODBUS ASCII


MODBUS ASCII usa caracteres ASCII para representar los datos, y cada carácter está
representado en una unidad de datos de 7 bits.

La información al estar representada con caracteres ASCII lo hace de más fácil interpretación
para el ser humano, por lo que suele ser una opción cuando la red de comunicación está en
modo de prueba.

Una importante desventaja es que debido a que la información se representa en caracteres


ASCII, la extensión del campo de datos crece, pudiendo ser hasta el doble de un mensaje
equivalente en MODBUS RTU.

Los campos de una trama MODBUS ASCII se muestra a continuación:

* LRC = Longitud Redundancy Check

PROTOCOLO MODBUS S. GAMBOA


5.11.2.1ACCESO AL MEDIO MASTER/SLAVE SOBRE RS-485
MODBUS RTU y MODBUS ASCII son implementados sobre interfaces RS-485, si bien también se
lo realiza sobre interfaces RS-232. Es por ello que en forma general se hace referencia a MODBUS
RTU y MODBUS ASCII como MODBUS Serial.

En el caso de MODBUS Serial sobre interface RS-485, típicamente se usa el mecanismo de acceso
al medio Master/Slave. En el caso de la transmisión es serial en modo half-duplex, en el que el
maestro es quien inicia la comunicación a través del envío de un mensaje de requerimiento a
uno de los esclavos, esclavo que enviará un mensaje de respuesta acorde al requerimiento del
maestro.

Una característica importante a resaltar es que el mecanismo de acceso al medio Master/Slave


hace que la comunicación en la red sea determinística.

5.11.3 MODBUS PLUS


MODBUS PLUS se caracteriza por los siguientes aspectos:

PROTOCOLO MODBUS S. GAMBOA


 El mecanismo de acceso al medio está basado en “Token Passing”.
 Múltiples redes pueden integrarse a través de puentes MODBUS PLUS.

5.11.3.1ACCESO AL MEDIO BASADO EN TOKEN PASSING


Definido también como HDLC acrónimo de High Level Data Link Control.

Con este mecanismo de acceso al medio se busca superar la limitación de que el inicio de
comunicación este restringido a un solo “maestro”, manteniendo su característica de ser una
red determinística.

Modbus Plus, es un protocolo de red punto a punto basado en la comunicación de paso de


testigo (Token Passing). Los dispositivos Modbus Plus de una red acceden al uso del interface de
comunicación al recibir el token, que no es más que una trama de bits. Cuando un dispositivo
tiene el token, puede iniciar transacciones con otros dispositivos en la red.

5.11.3.2INTEGRACION DE MULTIPLES REDES


MODBUS fue planteada como una red de área local (LAN) para aplicaciones de control industrial.
Pero con MODBUS Plus se busca facilitar la integración entre estas redes LAN, habilitando el
intercambio de mensajes entre diferentes redes LAN Modbus a través de un dispositivo “Puente
MODBUS Plus” o “MODBUS Plus Bridge Devices”.

Para ello la Trama MODBUS Plus se modifica en sus campos, así el campo Address lleva siempre
la dirección broadcast, 00 H, y el campo Data incluye campos adicionales:

 Destination Address y Source Address


 Router Counter
 Routing Path

Router Counter: Contador de puentes por los que ha pasado el mensaje (máximo 4)

PROTOCOLO MODBUS S. GAMBOA


Routing Path: Direcciones de los dispositivos a los que deben transmitirse el mensaje en cada
red.

PROTOCOLO MODBUS S. GAMBOA


5.11.4 MODBUS TCP
MODBUS TCP fue propuesto para permitir el transporte de comandos MODBUS a través de
redes ruteables y sobre redes Ethernet.

PROTOCOLO MODBUS S. GAMBOA


Para ello la trama MODBUS es encapsulado en un segmento TCP, definiéndose como
segmento a las unidades de datos del protocolo TCP.

El encapsulamiento consiste en adjuntar a la trama MODBUS el encabezado TCP, donde se


adjunta básicamente el puerto lógico que es 502 por defecto.

Este encapsulamiento conlleva dos consideraciones importantes en MODBUS TCP:

PROTOCOLO MODBUS S. GAMBOA


MODBUS TCP requiere la asignación de un puerto lógico, para que a nivel de capa de
transporte se ejecuten las funciones de multiplexación, es decir distinguir la información de las
diferentes aplicaciones en una nodo.

La conexión entre dos dispositivos a través de MODBUS TCP debe ejecutarse acorde a las
funciones definidas para TCP como protocolo de capa de transporte.

PROTOCOLO MODBUS S. GAMBOA

Das könnte Ihnen auch gefallen