Ir al contenido
JelinaJelina DocumentationDocumentación técnica
Volver al sitio oficial

Adquisición Modbus TCP

Modbus puede utilizar puertos serie o de red, incluida fibra óptica. RTU corresponde a la comunicación serie y TCP a Ethernet. La comunicación sigue un intercambio entre maestro y esclavo: el controlador de la pasarela actúa como cliente maestro, envía consultas y recibe las respuestas preparadas por el dispositivo Modbus esclavo.

(1) Abre Gemelo digital en CommBridge y cambia a Conectividad de dispositivos en la izquierda.

Abrir Conectividad de dispositivos

(2) Arrastra Cliente Modbus maestro, Procesamiento de datos y Carga MQTT al área de complementos para crear tres nodos.

Creación de los tres nodos

(3) Conéctalos en este orden: cliente Modbus → procesamiento de datos → carga MQTT.

Conexión del flujo de adquisición

Selecciona el protocolo Modbus-TCP.

(1) Haz doble clic en Cliente Modbus maestro y pulsa Añadir esquema.

Añadir un esquema de adquisición

(2) Completa la conexión y pulsa Siguiente.

Configuración de conexión

(3) Pulsa Añadir grupo, introduce los datos y confirma.

Configuración del grupo

(4) Pulsa Añadir datos, configura el punto y confirma.

Configuración de un punto

(5) Pulsa Finalizar para añadir el esquema de adquisición.

Esquema creado

(6) Activa su interruptor y pulsa Guardar.

Activar y guardar el esquema

(1) Pulsa Implementar en Conectividad de dispositivos y completa la implementación.

Implementación del flujo

(2) Cambia a Gemelo digital y sitúa el cursor sobre el cliente Modbus maestro para mostrar su información.

Información del nodo Modbus

(3) Selecciona el esquema para consultar los datos en tiempo real e históricos de los puntos de cada grupo.

Datos adquiridos, antes del procesamiento: Datos Modbus adquiridos

Después del procesamiento, consultando el esquema del nodo de procesamiento: Datos Modbus procesados

Solo puedes modificar puntos en modo rw o wo cuando la adquisición funciona correctamente.

(1) Pulsa Escribir en un punto, introduce el valor y confirma.

Escritura de un punto Modbus

(2) Consulta los datos históricos.

Historial después de la escritura

Parámetro Descripción Formato Ejemplo
Nombre del esquema Nombre definido por el usuario No vacío Adquisición slave
Protocolo Protocolo Modbus Modbus TCP, Modbus RTU Modbus TCP
Adquisición sincronizada Activar o desactivar la adquisición sincronizada Yes, No YES
Periodo de adquisición Intervalo entre lecturas de registros de cada grupo del esquema Número, (100,2147483647] 2000
Plazo de validez de adquisición Todos los puntos del grupo deben adquirirse dentro de este tiempo; de lo contrario se descartan los datos del grupo. Incluye el retardo entre tramas Número, (0, periodo de adquisición] 1000
Tiempo de espera Tiempo máximo de cada adquisición de un grupo; si se supera, se descarta esa lectura Número, (0, periodo de adquisición] 1000
Máximo de registros por lote Máximo de registros para adquirir puntos consecutivos por lotes Entero positivo, [1,120] 120
Retardo entre tramas Intervalo mínimo entre adquisiciones; 0 por defecto. Auméntalo si hay tiempos de espera frecuentes; en otro caso no es necesario modificarlo Milisegundos, [0,2147483647] 0
Retardo de escritura Espera adicional al escribir; necesaria para algunos equipos lentos. 0 significa sin retardo adicional Milisegundos, [0,2147483647] 0
Código de función de escritura Código utilizado para escribir registros de retención Auto, 06, 10; véase abajo Auto
Adquisición por cambios No: sin filtrado por cambios; SingleData: solo puntos modificados; WholeGroup: todo el grupo si cambia cualquier dato No, SingleData, WholeGroup SingleData
Intervalo de reinicio de adquisición por cambios Fuerza un envío si los datos no cambian durante este tiempo; 0 desactiva el envío forzado Segundos, (0,2147483647] 0
Espera adaptativa tras fallo Ajusta el tiempo hasta la siguiente adquisición según el factor; el límite es periodo × factor máximo Yes, No; véase abajo Yes
Factor de espera Factor de cambio del intervalo tras un fallo; mayor que 0 y distinto de 1 Número 2
Factor máximo de espera Límite del factor; una vez alcanzado se mantiene Número 16

Adquisición sincronizada:

  1. Yes: periodo, tiempo de espera y plazo de validez se configuran conjuntamente para todos los grupos y puntos del esquema.
  2. No: cada grupo configura esos valores por separado.

Código de escritura: Auto utiliza 06 para un registro y 10 para varios; 06 utiliza siempre 06; 10 utiliza siempre 10.

Espera adaptativa: con periodo de 1 segundo, factor 2 y máximo 16, los fallos continuos producen esperas de 1s, 2s, 4s, 8s y 16s. Con periodo de 10 segundos, factor 0.5 y máximo 0.1, producen 10s, 5s, 2.5s y 1.25s. Una adquisición correcta restablece el periodo inicial.

Si el factor es mayor que 1, el máximo debe ser superior al factor; si es menor que 1, el máximo debe ser inferior.

Parámetro Descripción Formato Ejemplo
Nombre del grupo Nombre definido por el usuario No vacío Grupo uno
Slave ID Dirección del dispositivo Modbus esclavo Número, (0,255] 1
IP Dirección IP del dispositivo Modbus Notación decimal con puntos 172.21.78.157
Puerto Puerto Modbus, 502 por defecto Número, (0,65535] 502
Periodo de adquisición Intervalo entre lecturas de registros del grupo Número, (100,2147483647] 2000
Plazo de validez Tiempo para adquirir todos los puntos; si falta alguno al vencer, se descartan todos los datos del grupo Número, (0, periodo de adquisición] 1000
Tiempo de espera Máximo de cada lectura; si se supera, se descartan sus datos Número, (0, periodo de adquisición] 1000

Nota: Si Adquisición sincronizada es No, los ajustes se aplican a los puntos de todo el grupo. Modbus limita la cantidad por lectura. En este complemento, un bloque consecutivo de Holding Register o Input Register admite como máximo 120 registros; Discrete y Coils admiten como máximo 2000 puntos.

Parámetro Condición Descripción Formato Ejemplo
Alias del dato Nombre único del punto dentro del grupo No vacío; no comienza por número o guion bajo ni contiene espacios M
Dirección Dirección de registro única en el grupo Dirección de registro; no puede repetirse dentro del grupo Número, (0,2147483647) 0
Tipo de registro Código de operación Modbus Holding Register, Input Register, Discrete, Coils; véase abajo Holding Register
Tipo de datos Depende del tipo de registro Tipo original de los datos uint16, int16, uint32, int32, float, boolean, combine, string, hex string; véase abajo uint16
Orden de bytes Depende de registro y tipo de datos Orden en memoria para datos de más de un byte AB, BA, ABCD, CDAB, BADC, DCBA; véase abajo AB
Número de registros Depende de registro y tipo de datos Cantidad de registros utilizada por el tipo Véase abajo 1
Modo de acceso Depende del registro ro: solo lectura; rw: lectura y escritura; wo: solo escritura ro, rw, wo ro
Cálculo Fórmula definida mediante el alias del dato {M}/10
Desplazamiento Tipo de datos bit Desplazamiento de bits desde el más significativo al menos significativo después de aplicar el orden de bytes Número, [0,15]

Por ejemplo, si el atributo de temperatura del dispositivo está en la dirección 1, configura la dirección del registro como 1.

  1. Para Discrete y Coils, el tipo predeterminado es boolean.
  2. Para uint16, int16 y combine, el orden puede ser AB o BA; para uint32, int32 y float, ABCD, CDAB, BADC o DCBA. Los demás tipos no tienen ajuste de orden de bytes.
  3. Discrete y Coils utilizan un registro por defecto; uint16, int16 y boolean también uno; uint32, int32 y float utilizan dos; combine permite uno o dos; string y hex string permiten introducir la cantidad manualmente.

Orden de 16 bits:

  1. AB: un registro de una palabra, con el byte más significativo primero y el menos significativo después, big-endian.
  2. BA: un registro de una palabra, con el byte menos significativo primero y el más significativo después, little-endian.

Orden de 32 bits:

  1. ABCD: dos palabras, palabra alta primero y byte alto primero dentro de cada palabra, big-endian.
  2. BADC: dos palabras, palabra alta primero y byte bajo primero dentro de cada palabra, big-endian con intercambio de bytes.
  3. CDAB: dos palabras, palabra baja primero y byte alto primero dentro de cada palabra, little-endian con intercambio de bytes.
  4. DCBA: dos palabras, palabra baja primero y byte bajo primero dentro de cada palabra, little-endian.

El tipo de registro determina el tipo de datos, la cantidad de registros y el modo de acceso.

0x, 1x, 3x y 4x son los rangos de direcciones definidos por Modbus.

Tipo Nombre Dirección PLC Dirección de protocolo Acceso Descripción
Holding Register Registro de retención (4x) 40001-49999 0000H-FFFFH Lectura y escritura; lectura 0x03, escritura 0x06 Parámetros de salida o almacenados que se establecen durante el funcionamiento del controlador
Input Register Registro de entrada (3x) 30001-39999 0000H-FFFFH Solo lectura, 0x04 Parámetros que el controlador obtiene de equipos externos
Discrete Entrada discreta (1x) 10001-19999 0000H-FFFFH Solo lectura, 0x02 Estado de entrada modificado externamente
Coils Bobina (0x) 00001-09999 0000H-FFFFH Lectura 0x01; escritura individual 0x05 o múltiple 0x0F Salida cuyo estado puede escribirse y leerse

Se determinan mediante el tipo original, el intercambio de bytes dentro de registros y el intercambio del orden de registros. Cada letra representa un byte.

  1. Tipos originales: uint16, int16, uint32, int32, float, boolean, combine, string y hex string.
  2. Intercambio de bytes: intercambia los dos grupos de ocho bits de un registro de 16 bits. AB sitúa primero el byte alto; BA, el bajo.
  3. Intercambio de palabras: intercambia los grupos de 16 bits de un dato de 32 bits, como ABCD y CDAB.

Tipos originales:

Nombre Descripción Registros
uint16 Entero sin signo de 16 bits 1
int16 Entero con signo de 16 bits 1
uint32 Entero sin signo de 32 bits 2
int32 Entero con signo de 32 bits 2
float Coma flotante de 32 bits 2
combine 1, 2
boolean Valor booleano 1
string Cadena ASCII Configurable
hex string Cadena hexadecimal Configurable

Orden de bytes y palabras:

Valor Descripción
AB Registro de dos bytes, byte alto primero y bajo después
BA Registro de dos bytes, byte bajo primero y alto después
ABCD Dos palabras, palabra alta primero y byte alto primero en cada palabra, big-endian
BADC Dos palabras, palabra alta primero y byte bajo primero, big-endian con intercambio de bytes
CDAB Dos palabras, palabra baja primero y byte alto primero, little-endian con intercambio de bytes
DCBA Dos palabras, palabra baja primero y byte bajo primero, little-endian