Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
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.
Puede ser usado como servicio de mensajería para el intercambio de información entre
dispositivos de campo.
MODBUS Serial, sobre interface RS-485 bus serial para la conexión de dispositivos de campo
encargados de los lazos de control.
*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).
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.
Mensaje de requerimiento que recibe el servidor que fue enviado como “Request” por el cliente.
MODBUS Response
MODBUS Confirmation
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.
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.
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)
Address:
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:
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.
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:
Se debe tener en cuenta que los Códigos de Función son diferentes para cada uno de los cuatro
tipos de registros MODBUS.
Coil Data: Bytes con estado de las bobinas, donde el bit menos significativo es la primera bobina.
5.5.2 Read digital input status – Read contact status (Function Code = 02)
Lectura del estado de contactos o estados de entradas digitales.
Register Data: Bytes con datos de registros, cada registro en 2 bytes, más significativo primero.
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.
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)
Estos 4 grupos o archivos se identifican por un prefijo numérico que caracteriza el inicio de
cada dirección:
0XXXX Coils
1XXXX Contacts
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.
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.
MODBUS RTU
MODBUS ASCII
MODBUS PLUS (Modbus +)
MODBUS TCP
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.
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.
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.
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.
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:
Router Counter: Contador de puentes por los que ha pasado el mensaje (máximo 4)
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.