author
Bobby Brown
Publicar 2024-12-02
¿Qué es el protocolo de comunicación Modbus?

3. Tipos de protocolos de comunicación Modbus

Modbus RTU vs Modbus TCP
El protocolo de comunicación Modbus se clasifica en dos tipos principales según el estándar de comunicación utilizado: comunicación serie y comunicación por Ethernet.

1. Comunicación serie

En la comunicación serie, los datos se transmiten bit a bit, e incluye dos protocolos: Modbus RTU y Modbus ASCII.

  • Modbus RTU:
    • Utiliza codificación binaria para la transmisión de datos.
    • Se combina comúnmente con interfaces serie RS-232, RS-485 o RS-422.
    • Ideal para distancias cortas y aplicaciones con múltiples dispositivos.
    • Ampliamente utilizado en la industria por su formato de datos compacto y eficiente.
  • Modbus ASCII:
    • Utiliza el código ASCII (American Standard Code for Information Interchange) para la codificación de datos.
    • También se combina con interfaces RS-232, RS-485 o RS-422.
    • La codificación ASCII es más fácil de verificar manualmente, pero consume más espacio de almacenamiento.

2. Comunicación por Ethernet

  • Modbus TCP:
    • Opera sobre Ethernet, basado en el protocolo TCP/IP.
    • Utiliza cables de red o conexiones inalámbricas para la transmisión de datos.
    • Se aplica comúnmente en sistemas de automatización en red o configuraciones de monitoreo remoto.

Diferencias clave entre Modbus RTU y Modbus ASCII

Aunque Modbus RTU y Modbus ASCII difieren en sus formatos de codificación, la velocidad real de transmisión depende de la tasa de baudios de la interfaz serie (por ejemplo, RS-232, RS-485).

  • Modbus RTU: Formato binario, estructura de datos compacta, adecuado para entornos con ancho de banda limitado.
  • Modbus ASCII: Formato ASCII, cada byte se representa mediante dos caracteres ASCII, lo que da como resultado un mayor tamaño de datos y una transmisión más lenta.
[2][3]

4. ¿Por qué muchos PLC utilizan el protocolo Modbus?

Muchos fabricantes eligen el protocolo de comunicación Modbus para sus PLC (Controladores Lógicos Programables) debido a su simplicidad y rentabilidad. La estructura directa del protocolo y el hecho de que se puede usar libremente sin tarifas de licencia lo convierten en una opción atractiva.

Ventajas clave de Modbus para PLCs:

  1. Estructura simple y sin licencias:

    Modbus es fácil de implementar, lo que reduce la complejidad y el costo del desarrollo.

  2. Compatibilidad con múltiples interfaces:
    • Compatible con interfaces RS-232, RS-485 y TCP/IP.
    • Se adapta a varios medios físicos de transmisión, como cables de par trenzado, fibra óptica y redes inalámbricas.
  3. Flexibilidad entre diferentes tipos de protocolos:

    Como se menciona en la tercera sección, los protocolos Modbus pueden ajustarse para diferentes redes.

  • Redes Fieldbus: Protocolos como Modbus RTU, Profibus, CC-Link y CAN suelen utilizar RS-485 para la comunicación, admitiendo arquitecturas maestro-esclavo o conexiones entre controladores, dispositivos y nodos.
  • Redes Ethernet: Protocolos como Modbus TCP, PROFINET, EtherCAT y EtherNet/IP permiten una comunicación eficiente entre clientes y servidores o entre controladores y dispositivos.
  • Alta compatibilidad con redes industriales:

    Modbus es altamente compatible con redes Ethernet y RS-485, satisfaciendo las necesidades de los sistemas de automatización industrial.

  • Debido a su simplicidad, versatilidad y excelente compatibilidad con los estándares de comunicación industrial, Modbus se ha convertido en el protocolo de comunicación preferido por muchos fabricantes de PLC. Ofrece soluciones confiables y eficientes tanto para aplicaciones basadas en Fieldbus como en Ethernet.
    Tipo de Protocolo Nombre del Protocolo Red Rol
    Ethernet Industrial Modbus-TCP Ethernet Cliente y Servidor
    PROFINET Ethernet Controlador y Dispositivo
    EtherCAT Ethernet Maestro y Esclavo
    EtherNet/IP Ethernet Controlador y Dispositivo
    Fieldbus Modbus-RTU RS485 Maestro y Esclavo
    Profibus RS485 Maestro y Esclavo
    CC-Link RS485 Maestro y Esclavo
    CAN RS485 Controlador y Nodo

    *Protocolos comunes y sus funciones respectivas

    [4] [5]

    5-2、Tipos de Registros de Datos del Protocolo Modbus

    (El siguiente contenido se ha compilado desde Modbus Tools - Introducción a Modbus RTU. Para una explicación más detallada de los tipos de registros y códigos de función, consulte las fuentes originales).

    El protocolo Modbus categoriza el área de almacenamiento de datos en cuatro tipos principales, gestionados mediante códigos de función según el tipo de dato:
    • Entradas Discretas: Datos binarios de solo lectura, correspondientes al código de función 0x02, usados para leer el estado de dispositivos.
    • Bobinas (Coils): Datos binarios de lectura/escritura, correspondientes al código de función 0x01, comúnmente usados para controlar interruptores.
    • Registros de Entrada: Datos analógicos de solo lectura, correspondientes al código de función 0x04, usados para monitorear sensores u otros dispositivos de entrada.
    • Registros de Retención (Holding Registers): Datos analógicos de lectura/escritura, correspondientes a los códigos de función 0x03 y 0x06, típicamente usados para establecer parámetros o estados del dispositivo.
    [6]

    5-3、Códigos de Función Modbus y sus Operaciones

    El protocolo Modbus define varios códigos de función que controlan cómo un dispositivo lee o escribe datos. Los códigos de función comunes y sus aplicaciones son los siguientes:
    1. 0x01 - Leer Bobinas: Lee el estado encendido/apagado de dispositivos, comúnmente usado para monitorear interruptores o relevadores.
    2. 0x02 - Leer Entradas Discretas: Monitorea el estado de entradas binarias, como botones o sensores.
    3. 0x03 - Leer Registros de Retención: Monitorea parámetros de operación o estados, típicamente usado para leer configuraciones o datos de funcionamiento.
    4. 0x04 - Leer Registros de Entrada: Usado para monitorear entradas analógicas, como datos de sensores de temperatura o presión.
    5. 0x05 - Escribir una Bobina: Controla el estado encendido/apagado de un solo dispositivo.
    6. 0x06 - Escribir un Registro de Retención: Modifica parámetros del dispositivo, como velocidad o temperatura.
    7. 0x0F (15) - Escribir Múltiples Bobinas: Controla varios dispositivos al mismo tiempo.
    8. 0x10 (16) - Escribir Múltiples Registros de Retención: Establece múltiples parámetros del dispositivo simultáneamente.

    5-4、¿Qué es el Formato Modicon?

    El formato Modicon especifica la estructura de numeración de direcciones para Modbus, asociando rangos de direcciones específicos con códigos de función. Este diseño permite a los operadores ingresar solo una dirección sin especificar manualmente un código de función, reduciendo errores y simplificando la comunicación.
    Referencia:Modicon Modbus Protocol Reference Guide

    5-5、¿Qué significan +40001 / +30001?

    Según el formato Modicon, Modbus utiliza rangos de direcciones específicos para denotar diferentes tipos de registros. Por ejemplo: 0001–39999: Registros de Entrada (código de función 04), 40001–49999: Registros de Retención (código de función 03).

    ¿Qué significa +40001?
    En el formato Modicon, el rango de direcciones 40001–49999 corresponde a Registros de Retención accedidos mediante el código de función 03. Aquí, 40001 actúa como dirección base. Por ejemplo, 40001 representa el primer registro con un desplazamiento de 0000, lo que indica que la posición de lectura es 0000.
    Cuando un usuario ingresa 40005, Modbus reconoce automáticamente que las direcciones 40001–49999 corresponden a Registros de Retención (Función 03). Según la lógica de direccionamiento, Modbus interpreta 40005 como 40001 + 0004, leyendo así la posición 0004 dentro del registro de la función 03.

    Código de Función Modbus
    [7]

    6. Implementación del Monitoreo de Flujo entre un PLC y un Caudalímetro usando RS485 y Modbus RTU

    En el protocolo Modbus, cada campo de datos tiene un significado y posición específicos. Los usuarios deben ingresar una secuencia de códigos que representan: "dirección esclava, código de función (para leer registros de entrada), dirección del registro, número de registros a leer y código de verificación CRC". Al recibir estos datos, el maestro Modbus analiza cada campo según el formato Modbus para determinar la operación en el esclavo objetivo, como leer o escribir un registro. A continuación, se muestra un ejemplo de implementación de monitoreo de flujo entre un PLC y un caudalímetro utilizando RS485 y Modbus RTU:
    - Configuración de Hardware: Asegúrese de que tanto el caudalímetro como el PLC tengan interfaces RS485 y soporten comunicación Modbus RTU. Conecte el PLC y el caudalímetro mediante cableado de comunicación RS485.
    - Configuración de Modbus RTU y Diseño del Programa: Configure la dirección Modbus del caudalímetro (por ejemplo, la dirección esclava) y parámetros como la tasa de baudios. Configure el PLC con las funciones maestras Modbus adecuadas y defina los datos que se leerán. Asegúrese de que los parámetros de comunicación (baudios, bits de datos, bits de parada y paridad) coincidan tanto en el PLC como en el caudalímetro.
    Diagrama de Operación por Computadora
    El caudalímetro transmite datos al PLC a través de la interfaz RS485, donde el PLC lee los datos usando el protocolo Modbus RTU. Los datos del caudalímetro se muestran en tiempo real en una interfaz de monitoreo en computadora, mostrando una curva de lecturas de flujo.
    En la comunicación Modbus RTU, un paquete Modbus incluye el campo de dirección, el código de función, el campo de datos y el código de verificación de errores (verificación CRC). TX representa la señal de solicitud transmitida, mientras que RX es la señal de respuesta.
    Señal de solicitud TX TX 01 04 00 64 00 01 70 15
    01: Dirección del esclavo.
    04: Código de función (para lectura de registros de entrada).
    00 64: Dirección del registro (dirección 100).
    00 01: Número de registros a leer (1 registro).
    70 15: Código CRC para integridad de datos.
    Señal de respuesta RX RX 01 04 02 00 BB F0
    01: Dirección del esclavo, indicando que la respuesta proviene del dispositivo con dirección 1.
    04: Código de función, confirmando que es una respuesta de “lectura de registros de entrada”.
    02: Longitud de datos, indicando 2 bytes de datos.
    00 BB: Valor de datos, un número de 16 bits. En hexadecimal, 00BB equivale a 187 en decimal.
    F0: Código CRC, verificando la integridad del paquete.
    Estos datos de flujo también pueden ser convertidos por un gateway a otros protocolos (por ejemplo, Modbus TCP) o capas físicas (como Wi-Fi) y transmitidos por Ethernet a un servidor remoto para almacenamiento en la nube. Esto permite la supervisión remota del estado de producción y la generación automática de informes. Por ejemplo, si se detectan datos de flujo anormales, el sistema puede enviar alertas automáticamente mediante un sistema de notificación, mejorando la eficiencia de producción y facilitando la gestión.
    [8]

    References

    1. ^ 帶你認識物聯網 Modbus 通訊協議-WARREN LO
    2. ^ Modbus协议的通信方式有几种 - 小頭菜
    3. ^ Understanding Modbus Protocol - RTU vs TCP vs ASCII - OPS Telecom
    4. ^ Modbus RTU 通訊協定介紹 - 力誠科技
    5. ^ Modbus RTU簡介(上) - iT 幫幫忙
    6. ^ Modbus协议数据类型只有这四种 - 小頭菜
    7. ^ MODBUS 位址加40001 / 30001,為什麼就可以不用輸入功能碼? - PLC
    Productos que también pueden interesarte
    Artículos relacionados

    Contáctanos