Modbus es un protocolo de comunicaciones de datos publicado originalmente por Modicon (ahora Schneider Electric ) en 1979 para su uso con sus controladores lógicos programables (PLC). Modbus se ha convertido en un protocolo de comunicación estándar de facto y ahora es un medio comúnmente disponible para conectar dispositivos electrónicos industriales . [1]
Modbus es popular en entornos industriales porque se publica abiertamente y no tiene derechos de autor . Fue desarrollado para aplicaciones industriales, es relativamente fácil de implementar y mantener en comparación con otros estándares, y pone pocas restricciones, además del tamaño del datagrama (paquete), en el formato de los datos que se transmitirán.
El protocolo Modbus utiliza líneas de comunicación en serie de caracteres , Ethernet o el conjunto de protocolos de Internet como capa de transporte.
Modbus admite la comunicación desde y hacia varios dispositivos conectados al mismo cable o red Ethernet. Por ejemplo, puede haber un dispositivo que mida la temperatura y otro dispositivo para medir la humedad conectado al mismo cable, ambos comunicando medidas a la misma computadora .
Modbus se usa a menudo para conectar una computadora de supervisión de planta / sistema con una unidad terminal remota (RTU) en sistemas de control de supervisión y adquisición de datos ( SCADA ) en la industria de la energía eléctrica. Muchos de los tipos de datos se nombran a partir del control industrial de dispositivos de fábrica, como la lógica de escalera debido a su uso en la activación de relés: una sola salida física se llama bobina y una sola entrada física se llama entrada discreta o contacto .
La Organización Modbus [2] gestiona el desarrollo y la actualización de los protocolos Modbus desde abril de 2004, cuando Schneider Electric transfirió los derechos a esa organización. [3] La Organización Modbus es una asociación de usuarios y proveedores de dispositivos compatibles con Modbus que aboga por el uso continuo de la tecnología. [4]
Limitaciones
- Dado que Modbus se diseñó a fines de la década de 1970 para comunicarse con controladores lógicos programables, la cantidad de tipos de datos se limita a los entendidos por los PLC en ese momento. No se admiten objetos binarios grandes.
- 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 hay forma de que un dispositivo de campo "informe una excepción" (excepto a través de Ethernet TCP / IP, llamado open-mbus) - el nodo maestro debe sondear de forma rutinaria cada dispositivo de campo y buscar cambios en los datos. Esto consume ancho de banda y tiempo de red en aplicaciones donde el ancho de banda puede ser costoso, como en un enlace de radio de baja tasa de bits.
- Modbus está restringido a direccionar 247 dispositivos en un enlace de datos, lo que limita la cantidad de dispositivos de campo que se pueden conectar a una estación principal (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 en búfer para evitar brechas en la transmisión. [ aclaración necesaria ]
- El protocolo Modbus en sí mismo no proporciona seguridad contra comandos no autorizados o interceptación de datos. [5]
Tipos de objetos Modbus
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 | Espacio de dirección |
---|---|---|---|
Bobina | Leer escribir | 1 bit | 0x0000 - 0xFFFF |
Entrada discreta | Solo lectura | 1 bit | 0x0000 - 0xFFFF |
Registro de entrada | Solo lectura | 16 bits | 0x0000 - 0xFFFF |
Registro de tenencia | Leer escribir | 16 bits | 0x0000 - 0xFFFF |
Versiones de protocolo
Existen versiones del protocolo Modbus para puerto serie y para Ethernet y otros protocolos que admiten el conjunto de protocolos de Internet . Hay muchas variantes de protocolos Modbus:
- Modbus RTU (unidad terminal remota): se utiliza en la comunicación en serie y hace uso de una representación binaria compacta de los datos para la comunicación del protocolo. El formato RTU sigue los comandos / datos con una suma de verificación de verificación de redundancia cíclica como un mecanismo de verificación de errores para garantizar la confiabilidad de los datos. Modbus RTU es la implementación más común disponible para Modbus. Un mensaje Modbus RTU debe transmitirse continuamente sin vacilaciones entre caracteres. Los mensajes Modbus están enmarcados (separados) por períodos inactivos (silenciosos).
- Modbus ASCII : se utiliza en la comunicación en serie y utiliza caracteres ASCII para la comunicación del protocolo. El formato ASCII utiliza una suma de comprobación de verificación de redundancia longitudinal . Los mensajes Modbus ASCII están enmarcados por dos puntos iniciales (":") y una nueva línea al final (CR / LF).
- Modbus TCP / IP o Modbus TCP : esta es una variante de Modbus utilizada para comunicaciones a través de redes TCP / IP , que se conecta a través del puerto 502. [7] No requiere un cálculo de suma de comprobación, ya que las capas inferiores ya proporcionan protección de suma de comprobación.
- Modbus sobre TCP / IP o Modbus sobre TCP o Modbus RTU / IP : esta es una variante de Modbus que se diferencia de Modbus TCP en que se incluye una suma de comprobación en la carga útil como con 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 . [8]
- Modbus Plus (Modbus +, MB + o MBP) : Modbus Plus es propiedad de Schneider Electric y, a diferencia de las otras variantes, admite comunicaciones de igual a igual entre varios maestros. [9] Requiere un coprocesador dedicado para manejar una rápida rotación de tokens similar a HDLC . Utiliza par trenzado a 1 Mbit / sy incluye aislamiento de transformador en cada nodo, lo que hace que sea activado por transición / borde en lugar de activado por voltaje / nivel. Se requiere hardware especial para conectar Modbus Plus a una computadora, generalmente una tarjeta hecha para el 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 de petróleo y gas Pemex para su uso en el control de procesos y nunca obtuvo una adopción generalizada.
- Enron Modbus : esta es otra extensión del Modbus estándar desarrollado por Enron Corporation con soporte para enteros de 32 bits y variables de punto flotante y datos históricos y de flujo. Los tipos de datos se asignan mediante direcciones estándar. [10] Los datos históricos sirven para cumplir con un estándar de la industria del American Petroleum Institute (API) sobre cómo se deben almacenar los datos. [ cita requerida ]
El modelo de datos y las llamadas a funciones son idénticas para las primeras 4 variantes de protocolos; solo la encapsulación es diferente. Sin embargo, las variantes no son interoperables, ni tampoco los formatos de trama.
Comunicaciones y dispositivos
Cada dispositivo que se comunica (es decir, transfiere datos) en un Modbus recibe una dirección única.
En Modbus RTU, Modbus ASCII y Modbus Plus (que son todas redes RS-485 de un solo cable multipunto), solo el nodo asignado como maestro puede iniciar un comando. Todos los demás dispositivos son esclavos y responden a solicitudes y comandos.
Para los protocolos que utilizan Ethernet como Modbus TCP, cualquier dispositivo puede enviar un comando Modbus, por lo que todos pueden actuar como maestros, aunque normalmente solo un dispositivo actúa como maestro.
Hay muchos módems y puertas de enlace que admiten Modbus, ya que es un protocolo muy simple y a menudo copiado. Algunos de ellos fueron diseñados específicamente para este protocolo. Las diferentes implementaciones utilizan comunicaciones inalámbricas y alámbricas, como en la banda ISM , e incluso el servicio de mensajes cortos (SMS) o el servicio general de paquetes de radio (GPRS). Uno de los diseños más comunes de redes inalámbricas hace uso de redes de malla . Los problemas típicos que los diseñadores tienen que superar incluyen problemas de alta latencia y sincronización.
Comandos
Los comandos Modbus pueden indicarle a un dispositivo Modbus que:
- cambiar el valor en uno de sus registros, que se escribe en los registros Coil y Holding.
- leer un puerto de E / S: leer datos de puertos discretos y de bobina,
- ordenar al dispositivo que envíe uno o más valores contenidos en sus registros de Coil y Holding.
Un comando Modbus contiene la dirección Modbus del dispositivo al que está destinado (1 a 247). Solo el dispositivo direccionado responderá y actuará en el comando, aunque otros dispositivos puedan recibirlo (una excepción son los comandos de transmisión específicos enviados al nodo 0, sobre los cuales se actúa pero no se reconoce).
Todos los comandos Modbus contienen información de suma de comprobación para permitir que el destinatario detecte errores de transmisión.
Formatos de marco
Una "trama" Modbus consta de una Unidad de datos de aplicación (ADU), que encapsula una Unidad de datos de protocolo (PDU): [7]
- ADU = Dirección + PDU + Comprobación de errores,
- PDU = Código de función + Datos.
El orden de bytes de los valores en las tramas de datos de Modbus es el byte más significativo de un valor multibyte que se envía antes que los demás. Todas las variantes de Modbus utilizan uno de los siguientes formatos de trama. [1]
Formato de trama Modbus RTU (utilizado principalmente en líneas de datos seriales asíncronas como RS-485 / EIA-485 )
Nombre | Longitud (bits) | Función |
---|---|---|
Comienzo | 28 | Al menos 3 ½ caracteres de tiempo de silencio (condición de marca) |
Habla a | 8 | Dirección de la estación |
Función | 8 | Indica el código de función; por ejemplo, leer bobinas / registros de retención |
Datos | n × 8 | Los datos + la longitud se completarán según el tipo de mensaje |
CRC | dieciséis | Verificación de redundancia cíclica |
Final | 28 | Al menos 3 ½ caracteres de tiempos de silencio entre fotogramas |
Nota sobre el CRC :
- Polinomio: x 16 + x 15 + x 2 + 1 (CRC-16-ANSI también conocido como CRC-16-IBM, polinomio algebraico hexadecimal normal
8005
y inversoA001
). - Valor inicial: 65.535.
- Ejemplo de trama en hexadecimal:
01 04 02 FF FF B8 80
(cálculo CRC-16-ANSI de01
aFF
da80B8
, que se transmite primero el byte menos significativo ).
Formato de trama Modbus ASCII (utilizado principalmente en líneas seriales asíncronas de 7 u 8 bits)
Nombre | Longitud ( bytes ) | Función |
---|---|---|
Comienzo | 1 | Comienza con dos puntos : (el valor hexadecimal ASCII es 3A ) |
Habla a | 2 | Dirección de la estación |
Función | 2 | Indica los códigos de función como leer bobinas / entradas |
Datos | n × 2 | Los datos + la longitud se completarán según el tipo de mensaje |
LRC | 2 | Suma de comprobación ( comprobación de redundancia longitudinal ) |
Final | 2 | Retorno de carro - par de avance de línea (CR / LF) ( valores ASCII de 0D , 0A ) |
La dirección, la función, los datos y el LRC son todos pares de caracteres legibles hexadecimales en mayúsculas que representan valores de 8 bits (0-255). Por ejemplo, 122 (7 × 16 + 10) se representará como 7A
.
El LRC se calcula como la suma de valores de 8 bits (excluyendo los caracteres de inicio y finalización), negado ( complemento a dos ) y codificado como un valor de 8 bits. Ejemplo: si la dirección, la función y los datos se codifican como 247, 3, 19, 137, 0 y 10, su suma es 416. El complemento a dos (−416) recortado a 8 bits es 96 (por ejemplo, 256 × 2 - 416), que se representará como 60
en hexadecimal. Por lo tanto la trama siguiente: :F7031389000A60
. Se especifica para su uso solo como suma de comprobación: debido a que se calcula sobre los datos codificados en lugar de los caracteres transmitidos, su característica 'Longitudinal' no está disponible para su uso con bits de paridad para localizar errores de un solo bit.
Formato de trama Modbus TCP (utilizado principalmente en redes Ethernet )
Nombre | Longitud (bytes) | Función |
---|---|---|
Identificador de transacción | 2 | Para sincronización entre mensajes de servidor y cliente. |
Identificador de protocolo | 2 | 0 para Modbus / TCP |
Campo de longitud | 2 | Número de bytes restantes en esta trama |
Identificador de unidad | 1 | Dirección de esclavo (255 si no se usa) |
Código de función | 1 | Códigos de función como en otras variantes |
Bytes de datos | norte | Datos como respuesta o comandos |
El identificador de unidad se utiliza con dispositivos Modbus / TCP que son compuestos de varios dispositivos Modbus, por ejemplo, en pasarelas Modbus / TCP a Modbus RTU. En tal caso, el identificador de la unidad indica la dirección esclava del dispositivo detrás de la puerta de enlace. Los dispositivos con capacidad nativa Modbus / TCP generalmente ignoran el identificador de unidad.
Códigos de función / comando disponibles
Las diversas operaciones de lectura, escritura y otras se clasifican de la siguiente manera. [11] Las lecturas y escrituras más primitivas se muestran en negrita. Varias fuentes utilizan terminología alternativa, por ejemplo Force Single Coil donde el estándar usa Write Single Coil . [12]
Las entidades destacadas dentro de un esclavo Modbus son:
- Bobinas: legibles y grabables, 1 bit (apagado / encendido)
- Entradas discretas: legible, 1 bit (apagado / encendido)
- Registros de entrada: legible, 16 bits (0 a 65.535), esencialmente medidas y estados
- Holding Registers: legible y escribible, 16 bits (0 a 65,535), esencialmente valores de configuración
Tipo de función | Nombre de la función | Código de función | Comentario | ||
---|---|---|---|---|---|
Acceso a los datos | Acceso de bits | Entradas físicas discretas | Leer entradas discretas | 2 | |
Bits internos o bobinas físicas | Leer bobinas | 1 | |||
Escribir bobina simple | 5 | ||||
Escribir múltiples bobinas | 15 | ||||
Acceso de 16 bits | Registros de entrada física | Leer registros de entrada | 4 | ||
Registros internos o registros de salida física | Leer varios registros de retención | 3 | |||
Escribir registro de retención único | 6 | ||||
Escribir múltiples registros de retención | dieciséis | ||||
Leer / escribir varios registros | 23 | ||||
Máscara de registro de escritura | 22 | ||||
Leer cola FIFO | 24 | ||||
Acceso a registros de archivos | Leer registro de archivo | 20 | |||
Escribir registro de archivo | 21 | ||||
Diagnósticos | Leer estado de excepción | 7 | solo serial | ||
Diagnóstico | 8 | solo serial | |||
Obtener contador de eventos Com | 11 | solo serial | |||
Obtener registro de eventos de com | 12 | solo serial | |||
Informar ID de esclavo | 17 | solo serial | |||
Leer identificación de dispositivo | 43 | ||||
Otro | Transporte de interfaz encapsulada | 43 |
Formato de datos de solicitudes y respuestas para códigos de función principales
Las solicitudes y respuestas siguen los formatos de marco descritos anteriormente. Esta sección brinda detalles de los formatos de datos de los códigos de función más utilizados.
Código de función 1 (leer bobinas) y código de función 2 (leer entradas discretas)
Solicitud :
- Dirección de la primera bobina / entrada discreta a leer (16 bits)
- Número de bobinas / entradas discretas para leer (16 bits)
Respuesta normal :
- Número de bytes de valores de entrada de bobina / discreta a seguir (8 bits)
- Bobina / valores de entrada discreta (8 bobinas / entradas discretas por byte)
El valor de cada bobina / entrada discreta es binario (0 para apagado, 1 para encendido). La primera bobina solicitada / entrada discreta se almacena como el bit menos significativo del primer byte en respuesta.
Si el número de bobinas / entradas discretas no es un múltiplo de 8, los bits más significativos del último byte se rellenarán con ceros.
Por ejemplo, si se solicitan once bobinas, se necesitan dos bytes de valores. Supongamos que los estados de esas bobinas sucesivas son encendido, apagado, encendido, apagado, apagado, encendido, encendido, encendido, apagado, encendido, encendido , entonces la respuesta será 02 E5 06
en hexadecimal.
Debido a que el recuento de bytes devuelto en el mensaje de respuesta tiene solo 8 bits de ancho y la sobrecarga del protocolo es de 5 bytes, se puede leer un máximo de 2008 (251 x 8) entradas discretas o bobinas a la vez.
Código de función 5 (forzar / escribir bobina simple)
Solicitud :
- Dirección de la bobina (16 bits)
- Valor para forzar / escribir: 0 para apagado y 65,280 (FF00 en hexadecimal) para encendido
Respuesta normal : igual que la solicitud.
Código de función 15 (forzar / escribir múltiples bobinas)
Solicitud :
- Dirección de la primera bobina a forzar / escribir (16 bits)
- Número de bobinas para forzar / escribir (16 bits)
- Número de bytes de valores de bobina a seguir (8 bits)
- Valores de bobina (8 valores de bobina por byte)
El valor de cada bobina es binario (0 para apagado, 1 para encendido). La primera bobina solicitada se almacena como el bit menos significativo del primer byte en la solicitud.
Si el número de bobinas no es un múltiplo de 8, los bits más significativos del último byte deben rellenarse con ceros. Consulte el ejemplo de los códigos de función 1 y 2.
Respuesta normal :
- Dirección de la primera bobina (16 bits)
- número de bobinas (16 bits)
Código de función 4 (leer registros de entrada) y código de función 3 (leer registros de retención)
Solicitud :
- Dirección del primer registro para leer (16 bits)
- Número de registros para leer (16 bits)
Respuesta normal :
- Número de bytes de valores de registro a seguir (8 bits)
- Valores de registro (16 bits por registro)
Debido a que la longitud máxima de una PDU Modbus es 253 (deducida de la longitud máxima de la APU Modbus de 256 en RS485), solo se pueden solicitar hasta 125 registros a la vez. [11]
Código de función 6 (preestablecer / escribir registro de retención único)
Solicitud :
- Dirección del registro de retención para preestablecer / escribir (16 bits)
- Nuevo valor del registro de retención (16 bits)
Respuesta normal : igual que la solicitud.
Código de función 16 (preestablecer / escribir múltiples registros de retención)
Solicitud :
- Dirección del primer registro de retención para preestablecer / escribir (16 bits)
- Número de registros de retención para preestablecer / escribir (16 bits)
- Número de bytes de valores de registro a seguir (8 bits)
- Nuevos valores de registros de retención (16 bits por registro)
Debido a que los valores de registro tienen 2 bytes de ancho y solo se pueden enviar 127 bytes de valores, solo se pueden preestablecer / escribir 63 registros de retención a la vez.
Respuesta normal :
- Dirección del primer registro de retención preestablecido / escrito (16 bits)
- Número de registros de retención preestablecidos / escritos (16 bits)
Respuestas de excepción
Para una respuesta normal, el esclavo repite el código de función. Si un esclavo desea informar de un error, responderá con el código de función solicitado más 128 (hexadecimal 0x80
) (3 se convierte en 131 = hexadecimal 0x83
) y solo incluirá un byte de datos, conocido como código de excepción .
Códigos de excepción principales de Modbus
Código | Texto | Detalles |
---|---|---|
1 | Función ilegal | El esclavo no reconoce ni permite el código de función recibido en la consulta |
2 | Dirección de datos ilegales | Las direcciones de datos de algunas o todas las entidades requeridas no están permitidas o no existen en esclavo |
3 | Valor de datos ilegales | El esclavo no acepta el valor |
4 | Fallo del dispositivo esclavo | Se produjo un error irrecuperable mientras el esclavo intentaba realizar la acción solicitada |
5 | Reconocer | El esclavo ha aceptado la solicitud y la está procesando, pero se requiere un período de tiempo prolongado. Esta respuesta se devuelve para evitar que se produzca un error de tiempo de espera en el maestro. A continuación, el maestro puede emitir un mensaje de Programa de encuesta completo para determinar si se completó el procesamiento. |
6 | Dispositivo esclavo ocupado | El esclavo está procesando un comando de larga duración. El maestro debería volver a intentarlo más tarde |
7 | Reconocimiento negativo | El esclavo no puede realizar las funciones de programación. El maestro debe solicitar información de diagnóstico o error del esclavo |
8 | Error de paridad de memoria | El esclavo detectó un error de paridad en la memoria. El maestro puede volver a intentar la solicitud, pero es posible que se requiera servicio en el dispositivo esclavo |
10 | Ruta de la puerta de enlace no disponible | Especializado en pasarelas Modbus. Indica una puerta de enlace mal configurada |
11 | El dispositivo de destino de la puerta de enlace no respondió | Especializado en pasarelas Modbus. Enviado cuando el esclavo no responde |
Bobina, entrada discreta, registro de entrada, números y direcciones de registro de retención
La Organización Modbus menciona lo siguiente en el Protocolo de aplicación Modbus v1.1b [13] :
El protocolo de aplicación MODBUS define con precisión las reglas de direccionamiento de PDU.
En una PDU MODBUS cada dato se direcciona de 0 a 65535.
También define claramente un modelo de datos MODBUS compuesto por 4 bloques que comprende varios elementos numerados del 1 al n.
En el modelo de datos MODBUS, cada elemento dentro de un bloque de datos está numerado del 1 al n
Algunas convenciones gobiernan cómo se hace referencia a las entidades Modbus (bobinas, entradas discretas, registros de entrada, registros de retención).
Es importante hacer una distinción entre el número de entidad y la dirección de la entidad :
- Los números de entidad combinan el tipo de entidad y la ubicación de la entidad dentro de su tabla de descripción.
- La dirección de la entidad es la dirección inicial, un valor de 16 bits en la parte de datos de la trama Modbus. Como tal, su rango va de 0 a 65,535 (0000 a FFFF en los paquetes)
En la convención tradicional [ cita requerida ] , los números de entidad comienzan con un solo dígito que representa el tipo de entidad, seguido de cuatro dígitos que representan la ubicación de la entidad:
- Los números de bobinas comienzan con 0 y van desde 0 0001 hasta 0 9999,
- entrada discreta números comienzan con 1 y el intervalo de 1 0001 a 1 9999,
- los números de registro de entrada comienzan con 3 y van desde 3 0001 hasta 3 9999,
- Los números de registro de retención comienzan con 4 y van desde 4 0001 hasta 4 9999.
Para las comunicaciones de datos, la ubicación de la entidad (1 a 9999) se traduce en una dirección de entidad basada en 0 (0 a 9998) restando 1. Por ejemplo, para leer registros de retención que comienzan en el número 40001, la trama de datos contendrá la función código 3 (como se ve arriba) y dirección 0. Para los registros de retención que comienzan en el número 40100, la dirección será 99. Etc.
Esto limita el número de direcciones a 9999 para cada entidad. Una referencia de facto amplía esto hasta el máximo de 65.536. [14] Simplemente consiste en agregar un dígito a la lista anterior:
- los números de bobina van de 0 00001 a 0 65536,
- los números de entrada discreta van desde 1 00001 a 1 65536,
- los números de registro de entrada van desde 3 00001 a 3 65536,
- Los números de registro de retención van del 4 00001 al 4 65536.
Cuando se utiliza la referencia extendida, todas las referencias numéricas deben tener exactamente 6 dígitos. Esto evita la confusión entre bobinas y otras entidades. Por ejemplo, para conocer la diferencia entre el registro de retención # 40001 y la bobina # 40001, si la bobina # 40001 es el objetivo, debe aparecer como # 040001.
Otra forma de anotar las direcciones de los datos es usar el valor hexadecimal, que aclara el uso de los 4 dígitos en la convención tradicional mencionada anteriormente.
- los números de bobina van desde 0x 0000 hasta 0x FFFF,
- Los números de entrada discreta van desde 1x 0000 a 1x FFFF,
- los números de registro de entrada van desde 3x 0000 a 3x FFFF,
- Los números de registro de retención van desde 4x 0000 a 4x FFFF.
La ventaja de esta notación es que cuando el usuario necesita analizar los paquetes Modbus, la dirección coincide.
Mapeo JBUS
Después apareció otro protocolo de facto estrechamente relacionado con Modbus, y fue definido por la marca PLC April Automates, resultado de un esfuerzo de colaboración entre las empresas francesas Renault Automation y Merlin Gerin et Cie en 1985: JBUS . Las diferencias entre Modbus y JBUS en ese momento (número de entidades, estaciones esclavas) ahora son irrelevantes ya que este protocolo casi desapareció con la serie de PLC de abril que AEG Schneider Automation compró en 1994 y luego hizo obsoleta. Sin embargo, el nombre JBUS ha sobrevivido hasta cierto punto.
JBUS admite los códigos de función 1, 2, 3, 4, 5, 6, 15 y 16 y, por lo tanto, todas las entidades descritas anteriormente. Sin embargo, la numeración es diferente con JBUS:
- El número y la dirección coinciden: la entidad # x tiene la dirección x en el marco de datos.
- En consecuencia, el número de entidad no incluye el tipo de entidad. Por ejemplo, mantener el registro # 40010 en Modbus tendrá el registro # 9, ubicado en la dirección 9 en JBUS.
- No se admite el número 0 (y, por lo tanto, la dirección 0). El esclavo no debe implementar ningún dato real en este número y dirección y puede devolver un valor nulo o arrojar un error cuando se le solicite.
Implementaciones
Casi todas las implementaciones tienen variaciones del estándar oficial. Es posible que las diferentes variedades no se comuniquen correctamente entre equipos de diferentes proveedores. Algunas de las variaciones más comunes son:
- Tipos de datos
- Número de coma flotante IEEE
- Entero de 32 bits
- Datos de 8 bits
- Tipos de datos mixtos
- Campos de bits en enteros
- Multiplicadores para cambiar datos a / desde números enteros. 10, 100, 1000, 256 ...
- Extensiones de protocolo
- Direcciones esclavas de 16 bits
- Tamaño de datos de 32 bits (1 dirección = 32 bits de datos devueltos)
- Datos intercambiados de palabras
Grupo comercial
Modbus Organization, Inc. es una asociación comercial para la promoción y el desarrollo del protocolo Modbus. [2]
Modbus Plus
A pesar del nombre, Modbus Plus [15] no es una variante de Modbus. Es un protocolo diferente , que implica el paso de tokens .
Es una especificación patentada de Schneider Electric, aunque no está publicada en lugar de estar patentada. Normalmente se implementa utilizando un chipset personalizado disponible solo para socios de Schneider.
Ver también
- Puede transportar
Referencias
- ↑ a b Drury, Bill (2009). Manual de técnicas de control de variadores y controles (PDF) (2ª ed.). Institución de Ingeniería y Tecnología . págs. 508–.
- ^ a b "Página de inicio de Modbus" . Modbus . Organización Modbus, Inc . Consultado el 2 de agosto de 2013 .
- ^ "Preguntas frecuentes sobre Modbus" . Modbus . Organización Modbus, Inc . Consultado el 1 de noviembre de 2012 .
- ^ "Acerca de la organización Modbus" . Modbus . Organización Modbus, Inc . Consultado el 8 de noviembre de 2012 .
- ^ Palmero; Shenoi, Sujeet, eds. (23 a 25 de marzo de 2009). Protección de infraestructura crítica III . Tercera Conferencia Internacional IFIP WG 11. 10. Hannover, Nueva Hampshire: Springer. pag. 87. ISBN 3-642-04797-1.
- ^ https://modbus.org/docs/Modbus_Application_Protocol_V1_1b3.pdf
- ^ a b Modbus Messaging on TCP / IP Implementation Guide V1.0b (PDF) , Modbus Organization, Inc., 24 de octubre de 2006 , consultado el 7 de enero de 2017
- ^ "Biblioteca Java Modbus - Acerca de" . 2010 . Consultado el 7 de febrero de 2017 .
- ^ "¿Cuál es la diferencia entre Modbus y Modbus Plus?" . Schneider Electric . Consultado el 7 de febrero de 2017 .
- ^ "Simplemente Modbus - Acerca de Enron Modbus" . Simplemente Modbus . Consultado el 7 de febrero de 2017 .
- ^ a b "Protocolo de aplicación Modbus V1.1b3" (PDF) . Modbus . Organización Modbus, Inc . Consultado el 2 de agosto de 2013 .
- ^ Clarke, Gordon; Reynders, Deon (2004). Protocolos Scada modernos prácticos: Dnp3, 60870.5 y sistemas relacionados . Newnes. págs. 47–51. ISBN 0-7506-5799-5.
- ^ "Protocolo de aplicación Modbus v1.1b" (PDF) . La organización Modbus.
- ^ "Modbus 101 - Introducción a Modbus" . Soluciones de control, Inc.
- ^ "Modbus Plus - Red Modbus Plus - Resumen de productos - Schneider Electric Estados Unidos" . Schneider-electric.com . Consultado el 3 de enero de 2014 .
enlaces externos
- Especificación
- Organización Modbus con especificaciones de protocolo
- Modbus sobre línea serie V1
- Protocolo Modbus ; Modicon; 74 páginas; 2000.
- Otro
- Guía Modbus gratuita para técnicos de campo
- Tutorial del protocolo Modbus para principiantes RF Wireless World