Modbus - Modbus

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 .

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 utiliza 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 relés de activación : una sola salida física se llama bobina y una sola entrada física se llama entrada discreta o contacto .

El desarrollo y la actualización de los protocolos Modbus han sido gestionados por la Organización Modbus desde abril de 2004, cuando Schneider Electric transfirió los derechos a esa organización. 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. Modbus Organization, Inc. es una asociación comercial para la promoción y el desarrollo del protocolo Modbus.

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 cliente / servidor (anteriormente 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 cliente debe sondear cada uno de forma rutinaria dispositivo de campo y busque 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.
  • El protocolo Modbus en sí mismo no proporciona seguridad contra comandos no autorizados o interceptación de datos.

Tipos de objetos Modbus

La siguiente es una tabla de tipos de objetos proporcionados por un dispositivo servidor Modbus a un dispositivo cliente 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 es la implementación más común disponible para Modbus. Modbus RTU utiliza 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. 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 que se utiliza para comunicaciones a través de redes TCP / IP , que se conecta a través del puerto 502. No requiere un cálculo de suma de verificación, ya que las capas inferiores ya brindan protección de suma de verificació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 .
  • 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 clientes. Requiere un coprocesador dedicado para manejar una rápida rotación de token 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 utilizando direcciones estándar. 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.

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 Cliente puede iniciar un comando. Todos los demás dispositivos son servidores 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 clientes, aunque normalmente solo un dispositivo actúa como cliente.

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):

  • 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 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.

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)
Dirección 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
Fin 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 8005y inverso A001).
  • Valor inicial: 65.535.
  • Ejemplo de trama en hexadecimal: 01 04 02 FF FF B8 80(cálculo CRC-16-ANSI de 01a FFda 80B8, 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)
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 Los datos + la longitud se completarán según el tipo de mensaje
LRC 2 Suma de comprobación ( comprobación de redundancia longitudinal )
Fin 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 60en hexadecimal. Por lo tanto la trama siguiente: :F7031389000A60<CR><LF>. 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 del servidor (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 del servidor 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. 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 .
Las entidades destacadas dentro de un servidor 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: legibles y escribibles, 16 bits (0 a 65,535), esencialmente valores de configuración
Códigos de función Modbus
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 en serie
Diagnóstico 8 solo en serie
Obtener contador de eventos Com 11 solo en serie
Obtener registro de eventos de com 12 solo en serie
ID del servidor de informes 17 solo en serie
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 discreta / bobina 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 06en 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.

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 servidor repite el código de función. Si un servidor desea informar 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 servidor 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 el servidor
3 Valor de datos ilegales El servidor no acepta el valor
4 Fallo del dispositivo del servidor Se produjo un error irrecuperable mientras el servidor intentaba realizar la acción solicitada
5 Reconocer El servidor 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 cliente. A continuación, el cliente puede emitir un mensaje de Programa de encuesta completo para determinar si se completó el procesamiento.
6 Dispositivo de servidor ocupado El servidor está procesando un comando de larga duración. el cliente debe volver a intentarlo más tarde
7 Reconocimiento negativo El servidor no puede realizar las funciones de programación. El cliente debe solicitar información de diagnóstico o error del servidor
8 Error de paridad de memoria El servidor detectó un error de paridad en la memoria. El cliente puede volver a intentar la solicitud, pero es posible que se requiera servicio en el dispositivo del servidor
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 servidor 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:

El protocolo de aplicación Modbus define con precisión las reglas de direccionamiento de la 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 se numera 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, 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. Consiste simplemente en sumar 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 n. ° 40001 y la bobina n. ° 40001, si la bobina n. ° 40001 es el objetivo, debe aparecer como n. ° 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

Otro protocolo de facto estrechamente relacionado con Modbus apareció después, 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 de servidor) 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 servidor 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 de servidor de 16 bits
    • Tamaño de datos de 32 bits (1 dirección = 32 bits de datos devueltos)
    • Datos intercambiados de palabras

Modbus Plus

A pesar del nombre, Modbus Plus 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

Referencias

enlaces externos

Especificación
Otro