Integración Modbus TCP
Modbus TCP conecta HyperVisu con equipos industriales y energéticos: inversores solares, cargadores de vehículos eléctricos, bombas de calor, unidades de ventilación y PLC. HyperVisu es el cliente Modbus: consulta los registros del equipo y escribe en ellos cuando se controla un widget.
Datos necesarios: la dirección IP del dispositivo, el puerto Modbus (normalmente 502), su mapa de registros (de la documentación Modbus del fabricante) y su ID de esclavo/unidad.
Conexiones. Active primero Modbus TCP Protocol en la página Services (véase «Servicios y protocolos»); está desactivado en un servidor nuevo. Modbus TCP admite varias conexiones: cree una por servidor Modbus (por IP/puerto) en la página Connections (véase «Conexiones»). En Add connection, seleccione la tarjeta Modbus TCP e introduzca un Instance Name, la Server IP Address y un Poll Interval (seconds): la frecuencia con que HyperVisu lee todos los objetos de esa conexión. Introduzca el intervalo: el 30 gris es solo una indicación y un campo vacío hace que el servidor consulte cada 5 segundos.
El diálogo no tiene campo de puerto: la conexión se crea en el puerto 502. Si el equipo escucha en otro puerto, seleccione la nueva conexión, cambie Modbus TCP Port y pulse Save connection.
Una conexión Modbus no tiene botón Test. La comprobación se realiza mediante el estado Connected en la página Connections y el valor en vivo de un objeto vinculado.
Vincular un objeto. Vincule los registros Modbus a objetos de widget en el espacio de trabajo Devices. Para cada objeto se define:
| Ajuste | Significado |
|---|---|
| Slave ID | El identificador de unidad, 1–247. |
| Register type | Bobina, entrada discreta, registro de entrada o registro de retención. |
| Register address | La dirección del registro del mapa del dispositivo, de 0 a 65535. Se envía al equipo exactamente como se introduce: utilice la dirección del protocolo, no un número de referencia 4xxxx o 3xxxx. Atención al desfase de uno: algunos fabricantes documentan direcciones desde 1, Modbus cuenta desde 0. |
| Data type | Cómo se decodifican los registros brutos (entero de 16/32 bits con/sin signo, coma flotante, …). |
| Byte order | El orden de palabras/bytes para valores que ocupan varios registros, indicado en la documentación del fabricante. El campo solo aparece para tipos de datos que ocupan dos o más registros (32 bits, 64 bits y coma flotante). |
| Write Function | Solo registros de retención. Mantenga Automatic (FC6 / FC16) salvo que el equipo no implemente FC6; en ese caso seleccione Always FC16 (write multiple). |
| Scaling | Scale, Offset, Decimal Places y Units. La línea Formula muestra Display = (Raw × scale) + offset con un valor bruto de ejemplo fijo, no con la lectura del equipo. Una escala de 0 se interpreta como 1. |
📘 Nota: La escala y el desplazamiento del objeto se aplican antes de cualquier transformación del mismo objeto (véase «Transformaciones de valores y estado de funcionamiento»). No añada otra transformación de escalado, o el valor se escalará dos veces.
Ejemplo práctico — potencia del inversor en un contador
La documentación del inversor indica: potencia activa, registro de entrada 32080, entero de 32 bits con signo, ganancia 1, unidad W, ID de unidad 1.
- Cree una conexión Modbus TCP para el inversor: Server IP Address
192.168.1.120, Poll Interval (seconds)10(véase «Conexiones»). La conexión se crea en el puerto502. - En Devices, añada un widget Meter «Producción solar», estancia Técnica, categoría Energía. En Protocol, seleccione la conexión del inversor, que aparece con el nombre asignado.
- Abra su objeto de potencia e introduzca: Slave ID
1, Register type Input register, Register address32080, Data type INT32, Byte order según la documentación. - Defina Scaling: escala
0.001, desplazamiento0, decimales2, unidadeskW. Un valor bruto de5230se convierte en5.23 kW. - Pulse Save object, después Apply changes en la barra lateral y confirme. La conexión, el dispositivo y sus objetos se activan conjuntamente en ese momento.
- Espere al menos un intervalo de consulta. El valor en vivo aparece en la fila del widget; compárelo con la pantalla del inversor.
💡 Consejo: Active el registro en el objeto (véase «Ajustes de objetos, registro y notificaciones») para que el contador disponga de gráficos e historial en la app.

Vinculación Modbus
Los objetos Modbus se configuran en el diálogo de ajustes del objeto (abra el objeto con Edit, véase «Ajustes de objetos, registro y notificaciones»). Las secciones Modbus son:
Connection
| Campo | Descripción |
|---|---|
| Slave ID | El ID del dispositivo esclavo Modbus (1–247). |
Data Configuration
| Campo | Descripción |
|---|---|
| Register Type | La tabla de registros que se lee o escribe (por ejemplo registros de retención o de entrada). |
| Register Address | El número de registro. |
| Data Type | Cómo se interpretan los bytes del registro (tamaños de enteros, coma flotante, …). |
| Byte Order | El orden de palabras/bytes utilizado por el dispositivo. |
Scaling & Conversion
| Campo | Descripción |
|---|---|
| Scale | Multiplica el valor bruto por este factor (por ejemplo 0.1 para dividir por 10). |
| Offset | Se añade después del escalado (por ejemplo -273.15 para Kelvin → Celsius). |
| Decimal Places / Units | Precisión de visualización y unidad. |
El diálogo muestra la fórmula en vivo — Display = (Raw × scale) + offset — con un ejemplo práctico, para comprobar la conversión antes de guardar.

💡 Consejo: Los números de registro, los códigos de función y un ejemplo práctico completo se encuentran en el capítulo Modbus.