- Visión general de Jelina
- CommBridge
- Adquisición de datos
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. Crear nodos
Sección titulada «1. Crear nodos»(1) Abre Gemelo digital en CommBridge y cambia a Conectividad de dispositivos en la izquierda.

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

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

2. Crear un esquema
Sección titulada «2. Crear un esquema»Selecciona el protocolo
Modbus-TCP.
(1) Haz doble clic en Cliente Modbus maestro y pulsa Añadir esquema.

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

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

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

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

(6) Activa su interruptor y pulsa Guardar.

3. Consultar resultados
Sección titulada «3. Consultar resultados»(1) Pulsa Implementar en Conectividad de dispositivos y completa la implementación.

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

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

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

4. Escribir datos
Sección titulada «4. Escribir datos»Solo puedes modificar puntos en modo
rwowocuando la adquisición funciona correctamente.
(1) Pulsa Escribir en un punto, introduce el valor y confirma.

(2) Consulta los datos históricos.

5. Descripción de la configuración
Sección titulada «5. Descripción de la configuración»Conexión
Sección titulada «Conexión»| 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:
- Yes: periodo, tiempo de espera y plazo de validez se configuran conjuntamente para todos los grupos y puntos del esquema.
- 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.
Añadir grupos
Sección titulada «Añadir grupos»| 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.
Añadir datos
Sección titulada «Añadir datos»| 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.
- Para Discrete y Coils, el tipo predeterminado es boolean.
- 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.
- 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:
- AB: un registro de una palabra, con el byte más significativo primero y el menos significativo después, big-endian.
- 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:
- ABCD: dos palabras, palabra alta primero y byte alto primero dentro de cada palabra, big-endian.
- BADC: dos palabras, palabra alta primero y byte bajo primero dentro de cada palabra, big-endian con intercambio de bytes.
- CDAB: dos palabras, palabra baja primero y byte alto primero dentro de cada palabra, little-endian con intercambio de bytes.
- DCBA: dos palabras, palabra baja primero y byte bajo primero dentro de cada palabra, little-endian.
6. Parámetros del protocolo Modbus
Sección titulada «6. Parámetros del protocolo Modbus»El tipo de registro determina el tipo de datos, la cantidad de registros y el modo de acceso.
Tipos de registros
Sección titulada «Tipos de registros»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 |
Tipos de datos
Sección titulada «Tipos de datos»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.
- Tipos originales: uint16, int16, uint32, int32, float, boolean, combine, string y hex string.
- 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.
- 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 |