Ir al contenido
Todos los casos

Caso de estudio · Modbus RTU y TCP · M-Duino 21

Muchos termómetros. Una sola red Modbus.

Los PLC leen las sondas por Modbus RTU y las comparten por Modbus TCP.

2variantes de Modbus: RTU y TCP
3niveles de la red: sondas, PLC locales, PLC principal
2destinos: un servidor y un Panel PC
1979el año en que Modicon publicó Modbus

Los PLC locales leen los termómetros. El PLC principal lee los PLC locales.

Una sola familia de protocolos de la sonda a la pantalla: Modbus RTU en los cables, Modbus TCP en la red.

Este caso describe un sistema para recoger lecturas de temperatura con equipos de Industrial Shields. Se escribió en 2020 con la idea de un gran registro de temperatura corporal. Esta página conserva su camino de los datos y lo aplica a la temperatura en muchos puntos. No cita a ningún cliente ni ninguna instalación, y no publica lecturas. Esta página sigue una lectura desde una sonda hasta un PLC local, después hasta el PLC principal y, al final, hasta el servidor y el Panel PC.

El reto

La temperatura de muchos puntos tiene que llegar a un solo lugar, y quedarse allí.

El objetivo es un registro muy extenso de lecturas de temperatura, para poder usar los datos en un control estadístico. Eso supone muchos termómetros, a menudo lejos unos de otros, y un solo lugar donde se guardan y se ven todas las lecturas.

01

Muchos puntos de medida

Cada punto tiene un termómetro TQS3-M con salida Modbus RTU. El esquema del caso muestra tres termómetros y tres PLC locales; no dice cuántos termómetros lee cada PLC.

02

Las lecturas tienen que viajar

Los PLC locales recogen las lecturas de sus termómetros y las envían a un PLC principal. El caso lo hacía con Modbus RTU; con el M-Duino 21, esta página usa Ethernet y Modbus TCP para ese enlace.

03

Guardar cada lectura

Un sistema servidor recibe todos los datos de temperatura y es el almacén del registro.

04

Ver qué pasa

Un Panel PC muestra lo que supervisa el PLC principal y los datos que recibe de los otros PLC.

Un protocolo abierto

Modbus es abierto: no hay que pagar licencia. Lo admite la mayoría del software HMI y SCADA, y permite integrar muchos tipos de equipos industriales.

Cómo funciona

Tres pasos: leer la sonda, recoger, compartir.

Cada paso muestra un enlace de la red. Pulsa los botones. Los paneles son simulaciones ilustrativas: direcciones, mapas de registros, tramas, tiempos de espera y temperaturas son ejemplos, no datos de una instalación.

Paso 1 · Leer las sondas

Un PLC local pregunta a cada termómetro. Cada uno responde con su lectura.

Los termómetros TQS3-M envían sus datos a los PLC locales por Modbus RTU, un protocolo binario sobre una línea serie. En Modbus RTU solo pregunta el maestro. Una forma habitual de hacerlo: el PLC local es el maestro de su propio bus RS-485 y pregunta a cada sonda por turno, por su dirección. Una sonda que no responde a tiempo cuenta como tiempo agotado. Elige un caso y pulsa Consultar las sondas.

  • Termómetros TQS3-M con salida Modbus RTU
  • Un bus RS-485 por PLC local (ejemplo)
  • Cada respuesta comprobada con su CRC
PLC local1RS-485 · Modbus RTUSonda 1Sonda 2Sonda 3
Sonda·
Temperatura·
Respuestas·
Sin respuesta·

·

PETICIÓNRESPUESTACRC OKTIEMPO AGOTADO

Bus RS-485 del PLC local 1 (ejemplo)

    Simulación ilustrativa. Valores de ejemplo, sin datos de una instalación. Mapa de ejemplo: direcciones de esclavo 1 a 3, registro de entrada 0 = temperatura × 10 (214 = 21,4 °C), tiempo de espera de 200 ms. El mapa de registros del TQS3-M está en su manual; el caso no lo publica. Las tramas son tramas Modbus RTU reales, con el CRC calculado en esta página.

    Paso 2 · Recoger en el PLC principal

    El PLC principal lee los PLC locales por Ethernet.

    Los PLC locales envían los datos al PLC principal. El caso lo hacía con Modbus RTU. Un M-Duino 21 tiene un puerto RS-485, y el PLC local ya lo usa para sus termómetros, así que el enlace que se puede montar hoy es Ethernet con Modbus TCP: el PLC principal es el cliente y los PLC locales son servidores. Una forma habitual de hacerlo: cada PLC local guarda las lecturas de sus sondas en unos pocos registros holding, y el PLC principal los lee en un ciclo. Elige un caso y pulsa Ejecutar un ciclo.

    • PLC principal como cliente Modbus TCP
    • PLC locales como servidores Modbus TCP, con las lecturas en registros (ejemplo)
    • Si falta una respuesta, quedan valores obsoletos, no un hueco (ejemplo)
    PLC principalcliente TCPPLC 1 · .11PLC 2 · .12PLC 3 · .13
    PLC local·
    Función·
    Lecturas·
    Obsoletas·

    ·

    LECTURA PLC 1LECTURA PLC 2LECTURA PLC 3CICLO TERMINADO

    PLC principal como cliente Modbus TCP (ejemplo)

      Simulación ilustrativa. Valores de ejemplo, sin datos de una instalación. Ejemplo: PLC locales en 192.168.1.11, .12 y .13, unidad 1, con tres registros holding cada uno (función 03), tiempo de espera de 500 ms. Un PLC local que no responde conserva sus últimos valores, marcados como obsoletos, y el PLC principal vuelve a preguntar en el ciclo siguiente. El caso unía los PLC locales y el principal con Modbus RTU y no publica el ciclo ni la gestión de errores.

      Paso 3 · Compartir por Ethernet

      Modbus TCP lleva los datos al servidor y al Panel PC.

      Desde el PLC principal, los datos viajan por Modbus TCP/IP en la red Ethernet. Funciona como Modbus RTU, pero sobre TCP e IP. Un concentrador Ethernet conecta el PLC principal con un sistema servidor, que guarda todos los datos de temperatura, y con un Panel PC, que los muestra. Elige un cliente y pulsa Leer 9 registros.

      • Modbus TCP por Ethernet desde el PLC principal
      • El sistema servidor guarda cada lectura
      • El Panel PC muestra los datos y el estado de los PLC
      PLC principalTCP 502Switch EthernetServidorPanel PC
      Cliente·
      Transacción·
      Filas guardadas·
      Valores en pantalla·

      ·

      MODBUS TCPPUERTO 502RESPUESTAGUARDADOEN PANTALLA

      Tráfico Modbus TCP (ejemplo)

        Simulación ilustrativa. Valores de ejemplo, sin datos de una instalación. Ejemplo: el PLC principal responde como servidor Modbus TCP en el puerto 502, unidad 1, registros holding 0 a 8 (las nueve lecturas de los tres PLC locales). El sistema servidor y el Panel PC los leen como clientes. El caso dice que los datos pasan por un concentrador Ethernet hacia los dos; no publica el mapa de registros.

        Arquitectura del sistema

        ¿Cómo llegan los termómetros Modbus RTU a un servidor por Modbus TCP?

        Los termómetros TQS3-M envían sus lecturas a los PLC locales por Modbus RTU en RS-485. Los PLC locales las reenvían a un PLC principal. El caso usaba Modbus RTU para ese enlace; un M-Duino 21 tiene un puerto RS-485, ocupado por los termómetros, así que esta página une los PLC locales y el principal por Ethernet con Modbus TCP. Después, el PLC principal comparte los datos por Modbus TCP, a través de un concentrador, con un sistema servidor que guarda cada lectura y con un Panel PC que las muestra. En esta página, todos los PLC son M‑Duino 21.

        Termómetros TQS3-MPLC localesGrupo 1 · RS-485 · Modbus RTUPLC 1maestro de sus sondasGrupo 2 · RS-485 · Modbus RTUPLC 2maestro de sus sondasGrupo 3 · RS-485 · Modbus RTUPLC 3maestro de sus sondasEthernet · Modbus TCPPLC principallee los PLC localesConcentrador Ethernethoy, un switchSistema servidorguarda cada lecturaPanel PCmuestra los datosEthernet · Modbus TCPEthernet · Modbus TCPUna disposición posible, vista lógica: todos los equipos Ethernet se conectan al switch. El caso unía los PLC locales y el principal con Modbus RTU.El caso no publica el número de sondas ni de PLC, las direcciones ni el mapa de registros. Un M-Duino 21 tiene un puerto RS-485.Grupo 1 · Termómetros TQS3-MModbus RTUPLC 1maestro de sus sondasGrupo 2 · Termómetros TQS3-MModbus RTUPLC 2maestro de sus sondasGrupo 3 · Termómetros TQS3-MModbus RTUPLC 3maestro de sus sondasEthernet · Modbus TCPPLC principallee los PLC localesEthernet · Modbus TCPConcentrador Ethernethoy, un switchSistema servidorguarda cada lecturaPanel PCmuestra los datosUna disposición posible, vista lógica: todos losequipos Ethernet se conectan al switch. El casounía los PLC locales y el principal con ModbusRTU. No publica el número de sondas ni de PLC,las direcciones ni el mapa de registros.
        Modbus RTU, termómetrosModbus TCP, de los PLC locales al principalModbus TCP, Ethernet
        Señales y datos
        DatoEntreEnlaceFunción
        Lectura de temperaturaEntreTermómetro → PLC localEnlaceModbus RTUFunciónCada termómetro TQS3-M da su lectura a su PLC local
        Lecturas de un grupoEntrePLC local → PLC principalEnlaceModbus TCP, EthernetFunciónEl PLC principal lee los PLC locales. El caso usaba Modbus RTU en este enlace
        Todas las lecturasEntrePLC principal → sistema servidorEnlaceModbus TCP, EthernetFunciónEl servidor guarda todo el registro de temperaturas
        Datos e instruccionesEntrePLC principal ↔ Panel PCEnlaceModbus TCP, EthernetFunciónEl Panel PC muestra lo que el PLC principal supervisa y recibe
        RedEntrePLC principal, servidor, Panel PCEnlaceConcentrador EthernetFunciónUna sola red local para los tres equipos

        Por qué funciona

        Enlaces sencillos en campo. Una sola red para los datos.

        Sin licencia

        Modbus es un protocolo abierto. Los PLC, el servidor y el panel no necesitan ninguna licencia para usarlo.

        Conocido por HMI y SCADA

        La mayoría del software HMI y SCADA admite Modbus, así que el servidor y el Panel PC pueden leer directamente el PLC principal.

        Muchos tipos de equipos

        Termómetros, PLC y otros equipos industriales con Modbus pueden compartir una misma red.

        El enlace adecuado en cada nivel

        Modbus RTU por cable serie cerca de las sondas. Modbus TCP por Ethernet donde están el servidor y el panel.

        Un maestro por bus

        En cada bus Modbus RTU, un maestro pregunta y los esclavos responden. El flujo de datos es fácil de seguir y de probar.

        Integrado en los PLC

        Los PLC M-Duino tienen RS-485 y Ethernet. Con las librerías Arduino de Industrial Shields funcionan como maestro o esclavo Modbus RTU o TCP.

        Hardware utilizado

        El mismo PLC en cada nivel. Un Panel PC para ver los datos.

        M-DUINO ETHERNET PLC ARDUINO 21, PLC industrial basado en Arduino Mega con Ethernet y RS-485 para carril DIN

        M-DUINO ETHERNET PLC ARDUINO 21

        Un PLC industrial basado en un Arduino Mega 2560 original, con Ethernet, RS-485 y RS-232, para carril DIN. Se programa con el Arduino IDE. En este caso el mismo PLC hace dos trabajos: como PLC local lee sus termómetros por Modbus RTU y responde al PLC principal por Modbus TCP; como PLC principal recoge los PLC locales y comparte los datos por Modbus TCP.

        Función
        PLC local (termómetros) y PLC principal (recoger y compartir)
        E/S
        13 entradas (6 analógicas de 0-10 V), 8 salidas (3 analógicas o PWM de 0-10 V)
        Comunicaciones
        Ethernet (W5500, 10/100 Mbit, RJ45), RS-485, RS-232, serie TTL, I2C, SPI
        Modbus
        RTU por RS-485 y TCP por Ethernet, maestro o esclavo
        Integrado
        Reloj de tiempo real, ranura microSD
        Programación
        Arduino IDE
        Alimentación
        De 12 a 24 Vdc
        Montaje
        Carril DIN TS35, IP20

        El texto del caso habla de PLC de Industrial Shields basados en Arduino y no fija el modelo. La foto de PLC del caso original es la del M-Duino 21, que sigue en el catálogo. Esta red casi no usa E/S, así que encaja un modelo compacto como el M-Duino 21. Tiene un puerto RS-485 y un puerto RS-232: un PLC local usa el RS-485 para sus termómetros y Ethernet con Modbus TCP para el enlace con el PLC principal. Otra vía, el puerto RS-232 con un convertidor de RS-232 a RS-485 para un segundo bus Modbus RTU, está por confirmar con nuestro equipo para tu modelo.

        Panel PC TouchBerry Pi de 10,1 pulgadas con Raspberry Pi 4

        TouchBerry Pi Panel PC 10.1" FLEX

        La pantalla de la red. Un Panel PC industrial con una Raspberry Pi 4, en la misma red Ethernet que el PLC principal. Como cliente Modbus TCP lee los datos del PLC principal y muestra las lecturas y el estado de los PLC.

        Función
        Interfaz visible del PLC principal
        Pantalla
        10,1"
        Ordenador
        Raspberry Pi 4
        Enlace con el PLC principal
        Ethernet, Modbus TCP

        El caso usa un Panel PC de Industrial Shields y no fija el modelo. El TouchBerry Pi Panel PC 10.1" FLEX es una opción actual, y la versión CORE es la configuración estándar; la familia también tiene modelos de 7" y de 18,5". El caso tampoco cita el sistema servidor: cualquier ordenador o servidor de la red que lea Modbus TCP puede guardar el registro.

        Preguntas sobre este caso

        ¿Cómo llegan los sensores de temperatura Modbus RTU a una red Modbus TCP?

        A través de un PLC que habla los dos. Aquí, los PLC locales leen termómetros TQS3-M por Modbus RTU en RS-485, y un PLC principal lee los PLC locales por Ethernet con Modbus TCP. El PLC principal comparte los datos por Modbus TCP con un servidor y un Panel PC. Para el sentido contrario, consulta una pasarela Modbus TCP a RTU en un PLC M-Duino.

        ¿Qué diferencia hay entre Modbus RTU y Modbus TCP?

        Modbus RTU es un protocolo binario sobre una línea serie, normalmente RS-485, con un maestro y hasta 247 direcciones de esclavo. Modbus TCP lleva las mismas funciones y registros sobre TCP/IP en Ethernet, en el puerto 502, sin el CRC de RTU porque TCP ya comprueba los datos. Lee Modbus RTU, Modbus TCP u OPC UA.

        ¿Puede un PLC local leer sus termómetros y responder al PLC principal?

        Sí. En un bus Modbus RTU solo hay un maestro, así que un PLC local necesita dos enlaces: uno para sus termómetros y otro para el PLC principal. Un M-Duino 21 tiene un puerto RS-485 y un puerto RS-232. La forma que se puede montar hoy: termómetros en RS-485 con Modbus RTU, y el enlace con el PLC principal por Ethernet con Modbus TCP. El caso usaba Modbus RTU para ese enlace; hacerlo con el puerto RS-232 y un convertidor de RS-232 a RS-485 es una alternativa a confirmar con nuestro equipo.

        ¿Cuántos termómetros caben en un bus RS-485?

        Modbus RTU admite direcciones de esclavo de 1 a 247. El límite eléctrico lo pone RS-485: 32 cargas unitarias por segmento, más con transceptores de 1/4 o 1/8 de carga unitaria, o con repetidores. Cablea en cadena, no en estrella, con terminación de 120 Ω en los dos extremos. El esquema del caso muestra tres termómetros y tres PLC locales; no dice cuántos termómetros lee cada PLC. Código: Modbus RTU con PLC basados en Arduino y ESP32.

        ¿Cómo leen el servidor y el Panel PC los datos del PLC principal?

        Como clientes Modbus TCP. El PLC principal responde como servidor Modbus TCP y guarda las lecturas en registros. El servidor las almacena; el Panel PC las muestra. Un mapa de registros claro ayuda a todos los clientes: consulta un mapa de registros Modbus TCP para una planta y Modbus TCP con PLC basados en Arduino y ESP32.

        Para ver tiempos de espera, errores de CRC y valores obsoletos en una red como esta, prueba el simulador de red Modbus.

        ¿Puede la misma red registrar la temperatura corporal?

        Con estos termómetros, no. El diseño original de 2020 tenía ese objetivo, pero el TQS3-M es una sonda industrial con cable: mide lo que toca. Medir a personas requiere equipos fabricados y aprobados para ese uso. Si uno de esos equipos tiene salida Modbus, un PLC lo puede leer como cualquier otro esclavo Modbus y añadir sus lecturas al registro.

        ¿Una red similar?

        Cuéntanos tus puntos de medida. Te responderá un ingeniero.

        Dinos cuántos puntos mides, a qué distancia están, qué sensores o contadores tienes y adónde tienen que ir los datos: un servidor, un SCADA, una pantalla. Te diremos qué controladores encajan y cómo conectarlos.

        • Respuesta de nuestro equipo técnico
        • Esquema Modbus RTU y TCP para tus instalaciones
        • PLC basados en Arduino, ESP32 o Raspberry Pi