Para sondear múltiples esclavos Modbus RTU conectados a una pasarela Modbus TCP (como un Moxa MGate) utilizando el CP 443-1 en PCS 7 V9.1, utilice una única conexión MB_REDCL (o MBTCP_Client) configurada con una lista de trabajos secuencial (JOBLST). Debido a que el enlace serial RS-485 de la pasarela es semidúplex (half-duplex), NetPro prohíbe que múltiples instancias de cliente compartan el mismo ID de conexión. Para esclavos con mapas de registros idénticos, configure trabajos discretos en el JOBLST especificando el Unit ID (dirección de esclavo) de destino y escriba los datos sondeados en diferentes desplazamientos de un bloque de datos compartido, o despliegue un multiplexor de copia en el diagrama CFC para descargar los valores en DBs de esclavos dedicados al completarse el trabajo.
Índice de contenidos
- Restricciones semidúplex y arquitectura de lista de trabajos de MB_REDCL
- Flujo de trabajo de configuración y mapeo de registros en DBs de datos compartidos
- Verificación
- Limitaciones y precauciones operativas
- Preguntas frecuentes para ingenieros
- Referencias técnicas
- Artículos relacionados
- Etiquetas relacionadas
Restricciones semidúplex y arquitectura de lista de trabajos de MB_REDCL
En las redes de comunicación industrial, la integración de dispositivos de campo seriales Modbus RTU (como medidores de energía, monitores de potencia o variadores de velocidad) en SIMATIC PCS 7 comúnmente utiliza una pasarela de Ethernet a serial (por ejemplo, Moxa MGate MB3180):
* La pasarela escucha en el puerto TCP de Ethernet 502 del lado del bus de planta de PCS 7.
* Realiza un puente entre los paquetes entrantes Modbus TCP y un bus serie multidrop RS-485 en el lado de campo.
* Hasta 16 o 31 esclavos Modbus RTU residen en el cable RS-485, cada uno distinguido por un Unit ID único (dirección de esclavo del 1 al 247).
Los ingenieros que intentan instanciar múltiples bloques MBTCP_Client o MB_REDCL en el diagrama CFC para sondear estos esclavos en paralelo se encuentran con barreras inmediatas:
1. Exclusividad del ID de conexión: NetPro establece una única conexión TCP (ID = 1) con la dirección IP de la pasarela. Dos bloques cliente independientes no pueden acceder al mismo ID de conexión local de forma simultánea.
2. Cuello de botella semidúplex del bus serial: RS-485 permite un solo transmisor en el cable en cualquier instante. Intentar enviar consultas en paralelo a través de múltiples bloques cliente provoca colisiones de paquetes y desbordamientos del búfer de la pasarela.
3. Mandato de sondeo secuencial: Toda la comunicación a través de una pasarela serial de un solo puerto debe realizarse de forma secuencial: Consultar esclavo 1 -> Esperar respuesta -> Consultar esclavo 2 -> Esperar respuesta.
La librería de clientes redundantes SIMATIC Modbus/TCP de Siemens (MB_REDCL / FB 1081) proporciona de forma nativa la arquitectura de Lista de trabajos (JOBLST) para resolver el sondeo de múltiples dispositivos:
* En lugar de ejecutar bloques cliente separados, una sola instancia de MB_REDCL ejecuta una matriz de tareas de comunicación definidas en un bloque de datos de parámetros.
* Cada entrada en el JOBLST define: Unit ID (dirección del esclavo de destino), Function Code (por ejemplo, FC 03), Start Register (por ejemplo, 40001), Length y Data DB Pointer.
* El bloque recorre automáticamente la lista de trabajos de forma secuencial. Cuando el trabajo 1 concluye, avanza inmediatamente al trabajo 2, garantizando un arbitraje serial determinista y libre de colisiones.
Flujo de trabajo de configuración y mapeo de registros en DBs de datos compartidos
Cuando múltiples dispositivos de campo idénticos comparten direcciones de registros idénticas, el asistente de configuración Modbus de PCS 7 restringe la creación de múltiples DBs de datos superpuestos. Para almacenar los datos de cada esclavo en variables dedicadas sin sobrescribir la memoria:
- Configuración de desplazamientos de memoria dentro de un DB maestro único:
* Cree un único bloque de datos grande (DB_Modbus_Buffer).
* Asigne matrices dedicadas:Meter_01(Bytes 0 a 39),Meter_02(Bytes 40 a 79), hastaMeter_09(Bytes 320 a 359).
* En elJOBLST, configure el trabajo 1 apuntando aDB_Modbus_Buffercomenzando en el desplazamiento de bytes0, el trabajo 2 apuntando al desplazamiento de bytes40, y así sucesivamente. - Secuencia de ingeniería paso a paso:
* En NetPro, configure una Conexión TCP no especificada desde el CP 443-1 hasta la dirección IP de la pasarela en el puerto502. Anote el ID de conexión local (por ejemplo,16#0001).
* Inicie el asistente de configuración Modbus/TCP en SIMATIC Manager y genere el DB de parámetros Modbus (MODBUS_HPARAM_CP_1).
* Abra el DB de parámetros, expandaJOBLST, y configure el Unit ID, los códigos de función, las longitudes y los distintos desplazamientos de DB para cada esclavo.
* ColoqueMB_REDCLen un OB cíclico (OB32 o OB35), interconecte el DB de parámetros y habilite la ejecución cíclica (EN_R := TRUE).
Verificación
- En el diagrama CFC, abra
MB_REDCLen modo de prueba. - Verifique que
ACT_JOBrecorra continuamente los números del1al9. - Confirme que la salida
STATUSinforme16#7000(Inactivo) o16#7002(Recibiendo) sin activarERROR = 1. - Abra
DB_Modbus_Bufferen modo de monitorización dinámica. Confirme que los datos de medición en vivo para cada esclavo se actualizan en los intervalos de sondeo esperados.
Limitaciones y precauciones operativas
- Latencia de sondeo serial: En un bus serial de 9600 baudios, la lectura de 20 registros suele requerir de 150 a 250 ms por esclavo. Sondear nueve esclavos de forma secuencial da como resultado un tiempo de actualización de ciclo de aproximadamente 2 segundos. No utilice pasarelas seriales de un solo puerto para enclavamientos de alta velocidad inferiores a un segundo.
- Establezca los tiempos de espera (timeouts) de comunicación serial de la pasarela de forma realista (típicamente de 500 ms a 1000 ms). Si un esclavo fuera de línea agota su tiempo de espera,
MB_REDCLno debe bloquearse; configure los recuentos de reintentos de tiempo de espera en 1 o 2 para que la secuencia avance rápidamente hacia los esclavos sanos. - Para buses RS-485 multipunto (multi-drop), asegúrese de que las resistencias de terminación de bus adecuadas de 120 Ω estén habilitadas en ambos extremos físicos del cable.
Preguntas frecuentes para ingenieros
- ¿Puedo acelerar el sondeo agregando una segunda pasarela?
Sí. Dividir los nueve esclavos en dos pasarelas separadas le permite configurar dos conexiones TCP independientes en NetPro, ejecutando un sondeo en paralelo a través de dos redes seriales separadas simultáneamente. - ¿Por qué el asistente Modbus rechazó mi segundo DB de parámetros?
El asistente impone una relación 1:1 entre un ID de conexión local en NetPro y el DB de parámetros. Para configurar otro DB de parámetros, debe establecer una conexión independiente en NetPro. - ¿Qué sucede si un esclavo Modbus se apaga?
La pasarela devuelve una excepción Modbus 0x0B (El dispositivo de destino de la pasarela no respondió) o agota el tiempo de espera.MB_REDCLregistra un error para ese trabajo específico y avanza inmediatamente al siguiente trabajo en la lista.
Referencias técnicas
- Manual de comunicación redundante SIMATIC Modbus/TCP a través de CP 443-1 (A5E01099652-AA).
- Manual de usuario de la pasarela Modbus Moxa MGate MB3180 / MB3280.
- Especificación del protocolo de aplicación Modbus V1.1b3.
Artículos relacionados
- Dimensionamiento de velocidades de baudios y tiempos de ciclo de sondeo en redes industriales Modbus RS-485.
- Implementación de arquitecturas maestras Modbus/TCP redundantes de alta disponibilidad en PCS 7.
Etiquetas relacionadas
PCS 7, Modbus TCP, Modbus RTU, CP 443-1, Moxa MGate, MB_REDCL, JOBLST, S7-400