Comunicación de salida Modbus

Información técnica relacionada con la salida Modbus de eGauge

AVISO:

  • En versiones anteriores al firmware v4.0, las direcciones del mapa Modbus podían cambiar si se modificaba el nombre o el contenido del registro. El firmware v4.0 añade rangos adicionales vinculados al ID del registro. Las direcciones utilizadas antes de la v4.0 aún se pueden utilizar para garantizar la compatibilidad con versiones anteriores, pero están marcadas como obsoletas y no se recomienda su uso, ya que la reconfiguración de la configuración de instalación podría modificarlas. Los registros virtuales aparecen en el orden en que aparecen en la página de configuración, lo que significa que las direcciones pueden cambiar si se añaden o eliminan registros virtuales.
  • Para obtener información sobre cómo habilitar la comunicación de salida Modbus, consulte: Cómo: habilitar y configurar la comunicación de salida Modbus

Mapa de registros Modbus

El mapa Modbus exacto depende de la configuración del dispositivo eGauge y está disponible en la pantalla de configuración del servidor Modbus. El mapa se puede visualizar en el navegador web o descargar como archivo CSV (valores separados por comas) que puede importarse a cualquier programa de hojas de cálculo.

Rango de direcciones Descripción
Marcas de tiempo
30000 -- 30003 marca de tiempo local (para usar al leer direcciones <35000)
30004 -- 30007 La marca de tiempo THD indica cuándo se adquirieron los datos que utilizan las funciones FFTarg(), FFTarg2(), FFTmag() y THD()
30008 -- 30009 Marca de tiempo del registro (para usar al leer direcciones ≥35000)
Datos locales (comprobador de canales)
30500 - 30999 Voltajes de línea (RMS)
31000 -- 31499 Voltajes de línea (CC/media)
31500 - 31999 Frecuencias de línea
32500 - 32999 Valores del sensor (media/CC)
33000 -- 33949 Frecuencias de los sensores
Datos de registro [v4.0 y superior]
34000 - 34999 Valores de registro físico acumulativos de precisión reducida (flotante)
35000 - 35999 Valores de registros virtuales acumulativos (enteros de 64 bits con signo)
36000 – 36999 Cambio de valor de registro virtual (flotante)
37000-37999 Valores de registro virtual acumulativos de precisión reducida (flotante)
38000 - 38999 Valores de registros físicos acumulativos (enteros de 64 bits con signo)
39000 - 39999 Cambio de valor de registro físico (flotante)

Datos de registro [ANTES del firmware v4.0, ahora obsoleto]

35000 - 35999 Valores de registro acumulativos (enteros de 64 bits con signo) [OBSOLETO]
36000 - 36999 Cambio de valor de registro (flotante) [OBSOLETO]
37000-37999 Valores de registro acumulativos de precisión reducida (flotante) [OBSOLETO]

En la versión 4.0 o posterior , las direcciones Modbus están vinculadas a los ID de registro de eGauge. Se pueden calcular como:

Valor acumulado de flotación física = 34000+(ID*2)

Valor físico acumulativo s64 = 38000+(ID*4)

Valor instantáneo de flotación física = 39000+(ID*2)

Los registros virtuales están en el orden en que aparecen en la página de configuración de instalación y, por lo tanto, pueden cambiar durante las eliminaciones o adiciones.

El ID del registro se puede encontrar al pasar el cursor sobre el botón eliminar registro en la página Configuración de instalación:

A continuación se muestra un ejemplo de mapa Modbus, que se puede encontrar en Configuración -> Servidor Modbus:


  • Los registros Modbus de tipo t16 son cadenas UTF-8 de longitud variable y, por lo tanto, puede ser necesario leer varios registros hasta alcanzar un carácter nulo UTF-8.

Ejemplos de transmisiones Modbus

Ejemplos de transmisiones Modbus

Ejemplo: Solicitud y respuesta de Modbus TCP para voltaje RMS L1:

Request: [00 01] [00 00] [00 06] [01] [04] [01 f4] [00 02]

[00 01] = Identificador de transacción

[00 00] = Identificador de protocolo (siempre 00 00)

[00 06] = Bytes siguientes (0x0006 = 6 bytes)

[01] = ID de unidad

[04] = Código de función (0x04 es leer registros de entrada)

[01 f4] = Dirección del registro inicial (500)

[00 02] = Número de palabras a devolver (2 palabras para valor flotante)

Response: [00 01] [00 00] [00 07] [01] [04] [04] [42 f6 2a 06]

[00 01] = Identificador de transacción

[00 00] = Identificador de protocolo (siempre 00 00)

[00 07] = Bytes siguientes (0x0007 = 7 bytes)

[01] = ID de unidad

[04] = Código de función (0x04 es leer registros de entrada)

[42 f6 2a 06] = Contenido del registro 500 y 501 respectivamente

0x42f62a06 decodificado como punto flotante big-endian (ABCD) es aproximadamente 123,08 , por lo que el voltaje L1 es 123,08 Vrms

Ejemplo: Solicitud y respuesta de Modbus RTU para voltaje RMS L1:

Request: [01] [04] [01 f4] [00 02] [31 c5]


[01] = ID de unidad

[04] = Código de función (0x04 es leer registros de entrada)

[01 f4] = Dirección del registro inicial (500)

[31 c5] = Comprobación de error CRC


Response: [01] [04] [04] [42 f6 2a 06] [90 ac]

[01] = ID de unidad

[04] = Código de función (0x04 es leer registros de entrada)

[04] = Bytes de datos a seguir (sin incluir CRC)

[42 f6 2a 06] = Contenido del registro 500 y 501 respectivamente


0x42f62a06 decodificado como punto flotante big-endian (ABCD) es aproximadamente 123,08 , por lo que el voltaje L1 es 123,08 Vrms

Notas técnicas adicionales

  • El tamaño máximo de una trama Modbus es de 255 bytes. Esto se traduce en (61) registros de 32 bits o (30) registros de 64 bits. La mayoría de los sistemas DAS y Modbus dividirán automáticamente las solicitudes para limitar el tamaño de la respuesta y evitar que supere el límite superior. Si se solicitan más registros de los que se pueden devolver en una sola trama, la respuesta podría truncarse o podría generarse una excepción.
  • Hay ayuda adicional disponible haciendo clic en los botones [?] en la página de configuración del servidor Modbus.
  • Todos los datos se proporcionan como registros de entrada Modbus y, por lo tanto, sus direcciones Modbus comienzan en 30000. La trama sin procesar enviada no incluye el prefijo '30', esto indica el código de función utilizado.
  • Para cada registro registrado por eGauge, se puede leer el valor acumulado actual y su variación desde el último segundo. El valor acumulado está disponible con resolución completa como un valor con signo de 64 bits. Para mayor comodidad, el mismo valor también está disponible, con resolución reducida, como un número de coma flotante de 32 bits. El cambio de valor solo está disponible como un número de coma flotante de 32 bits. Además de los datos del registro, también es posible leer datos medidos localmente, como voltajes de línea, frecuencias y el valor medido por cada puerto del sensor.
  • El servidor Modbus garantiza la coherencia de los datos leídos con una sola solicitud. Las marcas de tiempo se proporcionan para garantizar la coherencia cuando se leen datos con múltiples solicitudes (por ejemplo, para leer varios registros no contiguos). Esto se logra (i) leyendo la marca de tiempo, (ii) realizando las solicitudes de lectura deseadas y (iii) volviendo a leer la marca de tiempo. Si los dos valores de las marcas de tiempo coinciden, el lector puede estar seguro de la coherencia de los datos.