Saltar al contenido
Elausys

HyperVisu / Integraciones

Integración Modbus TCP

Registros, códigos de función, consulta periódica y escalado, con un ejemplo práctico de inversor.

elausys · 27 julio 2026
En esta página

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:

AjusteSignificado
Slave IDEl identificador de unidad, 1–247.
Register typeBobina, entrada discreta, registro de entrada o registro de retención.
Register addressLa 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 typeCómo se decodifican los registros brutos (entero de 16/32 bits con/sin signo, coma flotante, …).
Byte orderEl 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 FunctionSolo registros de retención. Mantenga Automatic (FC6 / FC16) salvo que el equipo no implemente FC6; en ese caso seleccione Always FC16 (write multiple).
ScalingScale, 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.

  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 puerto 502.
  2. 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.
  3. Abra su objeto de potencia e introduzca: Slave ID 1, Register type Input register, Register address 32080, Data type INT32, Byte order según la documentación.
  4. Defina Scaling: escala 0.001, desplazamiento 0, decimales 2, unidades kW. Un valor bruto de 5230 se convierte en 5.23 kW.
  5. 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.
  6. 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.

Editor de objetos Modbus.

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

CampoDescripción
Slave IDEl ID del dispositivo esclavo Modbus (1–247).

Data Configuration

CampoDescripción
Register TypeLa tabla de registros que se lee o escribe (por ejemplo registros de retención o de entrada).
Register AddressEl número de registro.
Data TypeCómo se interpretan los bytes del registro (tamaños de enteros, coma flotante, …).
Byte OrderEl orden de palabras/bytes utilizado por el dispositivo.

Scaling & Conversion

CampoDescripción
ScaleMultiplica el valor bruto por este factor (por ejemplo 0.1 para dividir por 10).
OffsetSe añade después del escalado (por ejemplo -273.15 para Kelvin → Celsius).
Decimal Places / UnitsPrecisió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.

Ajustes del objeto Modbus.

💡 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.

Preguntas frecuentes

¿Qué información necesito para un dispositivo Modbus?

Su dirección IP, puerto, ID de esclavo/unidad y mapa de registros del fabricante, con tipos de registros, direcciones, tipos de datos y orden de bytes.

¿Necesito una conexión para cada registro?

No. Cree una conexión por IP y puerto del servidor Modbus y vincule sus registros a los objetos individuales de los widgets.

¿Por qué es incorrecta una lectura Modbus?

Compruebe la base de direcciones de los registros, el tipo de datos, el orden de bytes y el escalado con el mapa del fabricante. Algunos documentos numeran las direcciones desde uno, mientras que Modbus cuenta desde cero.

¿Cómo convierto una lectura bruta a la unidad mostrada?

Defina la escala y el desplazamiento en los ajustes del objeto. La línea Formula muestra Display = (Raw × scale) + offset con un valor bruto de ejemplo fijo, no con la lectura del equipo.

¿Con qué frecuencia se actualizan las lecturas Modbus?

Cada conexión tiene su propio intervalo de consulta. Compare el valor en vivo con la pantalla del equipo después de una consulta.

Seguir explorando

Encuentre las demás guías de este producto en la documentación.

Volver a Integraciones