0% encontró este documento útil (0 votos)
258 vistas5 páginas

Modbus

Modbus es un protocolo de comunicaciones industrial diseñado en 1979 que es ampliamente utilizado para la conexión de dispositivos electrónicos industriales. Existen variantes de Modbus para comunicación serie y Ethernet. El modelo de datos distingue entre entradas, salidas, registros de entrada y registros de retención. Cada dispositivo tiene una dirección única y los mensajes contienen la dirección de destino.

Cargado por

Para
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
258 vistas5 páginas

Modbus

Modbus es un protocolo de comunicaciones industrial diseñado en 1979 que es ampliamente utilizado para la conexión de dispositivos electrónicos industriales. Existen variantes de Modbus para comunicación serie y Ethernet. El modelo de datos distingue entre entradas, salidas, registros de entrada y registros de retención. Cada dispositivo tiene una dirección única y los mensajes contienen la dirección de destino.

Cargado por

Para
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como TXT, PDF, TXT o lee en línea desde Scribd

Modbus

Ir a la navegaciónIr a la búsqueda
Modbus es un protocolo de comunicaciones situado en los niveles 1, 2 y 7 del Modelo
OSI, basado en la arquitectura maestro/esclavo (RTU) o cliente/servidor (TCP/IP),
diseñado en 1979 por Modicon para su gama de controladores lógicos programables
(PLCs). Convertido en un protocolo de comunicaciones estándar de facto en la
industria, es el que goza de mayor disponibilidad para la conexión de dispositivos
electrónicos industriales.1

Las principales razones por las cuales el uso de Modbus en el entorno industrial se
ha impuesto por encima de otros protocolos de comunicaciones son:

Se diseñó teniendo en cuenta su uso para aplicaciones industriales


Es público y gratuito
Es fácil de implementar y requiere poco desarrollo
Maneja bloques de datos sin suponer restricciones
Modbus permite el control de una red de dispositivos, por ejemplo un sistema de
medida de temperatura y humedad, y comunicar los resultados a un ordenador. Modbus
también se usa para la conexión de un ordenador de supervisión con una unidad
remota (RTU) en sistemas de supervisión adquisición de datos (SCADA). Existen
versiones del protocolo Modbus para puerto serie y Ethernet (Modbus/TCP).

Cada dispositivo de la red Modbus posee una dirección única. Cualquier dispositivo
puede enviar órdenes Modbus, aunque lo habitual es permitirlo sólo a un dispositivo
maestro. Cada comando Modbus contiene la dirección del dispositivo destinatario de
la orden. Todos los dispositivos reciben la trama pero solo el destinatario la
ejecuta (salvo un modo especial denominado "Broadcast"). Cada uno de los mensajes
incluye información redundante que asegura su integridad en la recepción. Los
comandos básicos Modbus permiten controlar un dispositivo RTU para modificar el
valor de alguno de sus registros o bien solicitar el contenido de dichos registros.

Existe gran cantidad de modems que aceptan el protocolo Modbus. Algunos están
específicamente diseñados para funcionar con este protocolo. Existen
implementaciones para conexión por cable, wireless, SMS o GPRS. La mayoría de
problemas presentados hacen referencia a la latencia y a la sincronización.

Índice
1 Versiones del protocolo
2 Modelo de Datos Modbus
3 Formato de la trama
4 Implementaciones
5 Limitaciones
6 Enlaces externos
7 Referencias
Versiones del protocolo
Hay muchas variantes de protocolos Modbus, existen versiones del protocolo Modbus
para el puerto serie, para Ethernet, y otros protocolos que soportan el conjunto de
protocolos TCP/IP de Internet:

Modbus RTU — Es la implementación más común disponible para Modbus. Se utiliza en


la comunicación serie y hace uso de una representación binaria compacta de los
datos para el protocolo de comunicación. El formato RTU sigue a los comandos/datos
con una suma de comprobación de redundancia cíclica (CRC) como un mecanismo de
comprobación de errores para garantizar la fiabilidad de los datos. Un mensaje
Modbus RTU debe transmitirse continuamente sin vacilaciones entre caracteres. Los
mensajes Modbus son entramados (separados) por períodos inactivos (silenciosos).
Modbus ASCII — Se utiliza en la comunicación serie y hace uso de caracteres ASCII
para el protocolo de comunicación. El formato ASCII utiliza un checksum de control
de redundancia longitudinal (LRC). Los mensajes Modbus ASCII están entramados por
los dos puntos principales (":") y la nueva línea (CR/LF).
Modbus TCP/IP o Modbus TCP — Se trata de una variante Modbus utilizada para
comunicaciones a través de redes TCP/IP, conectándose a través del puerto 502.2 No
requiere un cálculo de suma de verificación (checksum), ya que las capas inferiores
ya proporcionan protección de checksum.
Modbus sobre TCP/IP o Modbus sobre TCP o Modbus RTU/IP — Esta es una variante de
Modbus que difiere del Modbus TCP en que se incluye una suma de comprobación en la
carga útil como en Modbus RTU.
Modbus sobre UDP — Algunos han experimentado con el uso de Modbus sobre UDP en
redes IP, lo que elimina los gastos generales necesarios para TCP.3
Modbus Plus (Modbus+, MB+ o MBP) — Es una versión extendida del protocolo y
privativa de Schneider Electric y a diferencia de las otras variantes, soporta
comunicaciones peer-to-peer entre múltiples masters.4 Requiere un co-procesador
dedicado para manejar HDLC. Utiliza par trenzado a 1 Mbit/s y sus especificaciones
son muy semejantes al estándar EIA/RS-485 aunque no guarda compatibilidad con este,
e incluye transformador de aislamiento en cada nodo. Se requiere hardware especial
para conectar Modbus Plus a un ordenador, normalmente una tarjeta diseñada para bus
ISA, PCI o PCMCIA.
Pemex Modbus — Esta es una extensión de Modbus estándar con soporte para datos
históricos y de flujo. Fue diseñado para la compañía petrolera Pemex para su uso en
el control de procesos y nunca alcanzó un uso generalizado.
Enron Modbus — Esta es otra extensión del estándar Modbus desarrollada por Enron
Corporation con soporte para variables enteras de 32 bits y de punto flotante y
datos históricos y de flujo. Los tipos de datos se asignan utilizando direcciones
estándar.5 Los datos históricos cumplen con un estándar de la industria del
American Petroleum Institute (API, por sus siglas en inglés) según la forma en que
deben almacenarse los datos.
El modelo de datos y las llamadas de función son idénticas para las primeras 4
variantes de protocolos; Sólo la encapsulación es diferente. Sin embargo, las
variantes no son interoperables, ni sus formatos de trama tampoco.

Modelo de Datos Modbus


El modelo de datos en Modbus distingue entre entradas digitales (discrete input),
salidas digitales (coils), registros de entrada (input register) y registros de
retención (holding registers). Las entradas y salidas digitales ocupan,
evidentemente, un bit; mientras que los registros, tanto de entrada como de
retención, ocupan dos Bytes

La siguiente es una tabla de tipos de objetos proporcionados por un dispositivo


esclavo Modbus a un dispositivo maestro Modbus:

Tipo de objeto Acceso Tamaño


Discrete input Solo leer 1 bit
Coil Leer/escribir 1 bit
Input register Solo leer 16 bits
Holding register Leer/escribir 16 bits
Formato de la trama
Una trama Modbus está compuesta por una Unidad de Datos de Aplicación (ADU), que
incluye una Unidad de Datos de Protocolo (PDU):6

ADU = Dirección + PDU + Comprobación de errores,


PDU = Código de función + Datos.
Todas las variantes de Modbus usan uno de los siguientes formatos de trama.1

Formato de trama Modbus RTU (utilizado principalmente en líneas asíncronas de 8


bits como RS-485)
Nombre Longitud (bits) Función
Inicio 28 Al menos 3 1⁄2 Tiempos de silencio
Dirección 8 Station address
Función 8 Indica el código de función; Por ejemplo, leer los registros de
bobinas/retención
Datos n × 8 Datos + La longitud se rellenará dependiendo del tipo de mensaje
CRC 16 Verificación de redundancia cíclica (CRC)
Fin 28 Al menos 3 1⁄2 Tiempos de silencio entre tramas
Nota sobre el CRC:

Polinomial: x16 + x15 + x2 + 1 (CRC-16-ANSI también conocido como CRC-16-IBM,


Polinomio algebraico hexadecimal normal siendo 8005 e inverso A001).
Valor inicial: 65.535
Ejemplo de trama en hexadecimal: 01 04 02 FF FF B8 80 (Cálculo CRC-16-ANSI desde 01
a FF da 80B8, que se transmite el byte menos significativo primero).
Formato de trama Modbus ASCII (utilizado principalmente en líneas serie asíncronas
de 7 u 8 bits)
Nombre Longitud (Bytes) Función
Inicio 1 Comienza con dos puntos : (El valor hex ASCII es 3A)
Dirección 2 Dirección de la estación
Función 2 Indica los códigos de función como leer bobinas / entradas
Datos n × 2 Datos + La longitud se rellenará dependiendo del tipo de mensaje
LRC 2 Verificación de redundancia longitudinal (LCR)
Fin 2 Par retorno de carro/avance de línea (CR/LF) (Valores ASCII de 0D, 0A)
Dirección, función, datos y LRC son todos pares legibles de caracteres
hexadecimales que representan valores de 8 bits (0-255). Por ejemplo, 122 (7 x 16 +
10) se representará como 7A.

LRC se calcula como la suma de valores de 8 bits, negados (complemento de dos) y


codificado como un valor de 8 bits. Ejemplo: si la dirección, la función y los
datos codifican como 247, 3, 19, 137, 0 y 10, su suma es 416. El complemento de dos
(-416) recortado a 8 bits es 96 (por ejemplo 256 × 2 - 416) Que se representará
como 60 en hexadecimal. Por lo tanto el siguiente trama: :F7031389000A60<CR><LF>.

Formato de trama Modbus TCP (utilizado principalmente en redes Ethernet)


Nombre Longitud (Bytes) Función
Identificador de la transacción 2 Para la sincronización entre mensajes de
servidor y cliente
Identificador del protocolo 2 0 para Modbus/TCP
Campo de longitud 2 Número de bytes en esta trama
Identificador de unidad 1 Dirección del esclavo (255 si no se usa)
Código de función 1 Códigos de función como en otras variantes
Bytes de datos n Datos como respuesta o comandos
El identificador de unidad se utiliza con dispositivos Modbus/TCP que son
compuestos de varios dispositivos Modbus en las pasarelas Modbus/TCP a Modbus RTU.
En tal caso, el identificador de unidad indica la dirección de esclavo del
dispositivo detrás de la pasarela. Normalmente, los dispositivos compatibles con
Modbus/TCP ignoran el identificador de unidad.

El orden de bytes para valores en tramas de datos Modbus es big-endian (MSB, byte
más significativo de un valor recibido primero).

Implementaciones
Todas las implementaciones presentan variaciones respecto al estándar oficial.
Algunas de las variaciones más habituales son:

Tipos de Datos
Coma Flotante IEEE
Entero 32 bits
Datos 8 bits
Tipos de datos mixtos
Campos de bits en enteros
Multiplicadores para cambio de datos a/de entero. 10, 100, 1000, 256...
Extensiones del Protocolo
Direcciones de esclavo de 16 bits
Tamaño de datos de 32 bits (1 dirección = 32 bits de datos devueltos.)
Limitaciones
Dado que Modbus fue diseñado a finales de los setenta para comunicarse con
controladores lógicos programables, el número de tipos de datos se limita a
aquellos entendidos por los PLC en ese momento. Los objetos binarios grandes no son
compatibles
No existe una forma estándar para que un nodo encuentre la descripción de un objeto
de datos, por ejemplo, para determinar si un valor de registro representa una
temperatura entre 30 y 175 grados.
Dado que Modbus es un protocolo maestro / esclavo, no es posible que un dispositivo
de campo "informe por excepción" (excepto a través de Ethernet TCP / IP, llamado
open-mbus) - el nodo maestro debe rutinariamente encuestar cada dispositivo de
campo y buscar cambios en los datos. Esto consume ancho de banda y tiempo de red en
aplicaciones en las que el ancho de banda puede ser costoso, como por ejemplo un
enlace de radio de baja velocidad binaria.
Modbus está restringido al direccionamiento de 254 dispositivos en un enlace de
datos, lo que limita el número de dispositivos de campo que pueden conectarse a una
estación maestra (una vez más, Ethernet TCP/IP es una excepción).
Las transmisiones Modbus deben ser contiguas, lo que limita los tipos de
dispositivos de comunicaciones remotas a aquellos que pueden almacenar datos para
evitar lagunas en la transmisión.
El protocolo Modbus no ofrece seguridad contra órdenes no autorizadas o
interceptación de datos.7
Enlaces externos
Modbus-IDA
Teoria Modbus
Simulador Gratuito Modbus
Descripción detallada del protocolo Modbus
IANA (Internet Assigned Numbers Authority)
Resumen del Protocolo
Preguntas básicas sobre el funcionamiento de Modbus
Referencias
Drury, Bill (2009). Control Techniques Drives and Controls Handbook (PDF) (2nd
edición). Institution of Engineering and Technology. pp. 508-. (requiere
suscripción).
Modbus Messaging on TCP/IP Implementation Guide V1.0b, Modbus Organization, Inc.,
24 de octubre de 2006, consultado el 7 de enero de 2017
«Java Modbus Library - About». 2010. Consultado el 7 de febrero de 2017.
«What is the difference between Modbus and Modbus Plus?». Schneider Electric.
Consultado el 7 de febrero de 2017.
«Simply Modbus - About Enron Modbus». Simply Modbus. Consultado el 7 de febrero de
2017.
«Modbus Messaging On TCP/IP Implementation Guide». Modbus Organization. Modbus-
IDA.
Palmer; Shenoi, Sujeet, eds. (23–25 March 2009). Critical Infrastructure
Protection III. Third IFIP WG 11. 10 International Conference. Hanover, New
Hampshire: Springer. p. 87. ISBN 3-642-04797-1.
Control de autoridades
Proyectos WikimediaWd Datos: Q1135322
Categorías: BusesModelo OSIEthernetAutomatización
Menú de navegación
No has accedidoDiscusiónContribucionesCrear una cuentaAcceder
ArtículoDiscusión
LeerEditarVer historialBuscar
Buscar en Wikipedia
Portada
Portal de la comunidad
Actualidad
Cambios recientes
Páginas nuevas
Página aleatoria
Ayuda
Donaciones
Notificar un error
Herramientas
Lo que enlaza aquí
Cambios en enlazadas
Subir archivo
Páginas especiales
Enlace permanente
Información de la página
Elemento de Wikidata
Citar esta página
Imprimir/exportar
Crear un libro
Descargar como PDF
Versión para imprimir

En otros idiomas
Deutsch
English
Français
Bahasa Indonesia
日本語
한국어
Português
Русский
中文
10 más
Editar enlaces
Esta página se editó por última vez el 4 jul 2020 a las 15:29.
El texto está disponible bajo la Licencia Creative Commons Atribución Compartir
Igual 3.0; pueden aplicarse cláusulas adicionales. Al usar este sitio, usted acepta
nuestros términos de uso y nuestra política de privacidad.
Wikipedia® es una marca registrada de la Fundación Wikimedia, Inc., una
organización sin ánimo de lucro.

También podría gustarte