¿Buscas alguna otra cosa?

Titan – NA22: Leyendo dispositivos W-MBus mediante Modbus TCP

Detalles del escenario

Los router Titan (que cuenten con la tarjeta W-MBus opcional) pueden ser usados como conversor de protocolos Modbus TCP – Wireless M-Bus. En la actualidad existen infinidad de plataformas que usan el protocolo Modbus TCP para realizar lecturas remotas sobre dispositivos varios (contadores, analizadores de redes, … ). Mediante el MTX-Router-Titan-3G podrá seguir utilizando las mismas plataformas software existentes, es decir, que podrá seguir usando el protocolo Modbus TCP para leer dispositivos Wireless M-Bus (OMS).

Escenario de ejemplo

Esta nota de aplicación pretende demostrar de manera clara cómo configurar el router Titan para que actúe como conversor Modbus TCP <> Wireless-Mbus. Para ello vamos a llevar a cabo un ejemplo completo. Imaginemos que tenemos un edificio con contadores de pulsos Wireless M-Bus conectados a contadores de agua y simplemente queremos poder leer dichos contadores vía Modbus-TCP de forma remota usando la red 3G

Configuración WAN

Para dar salida a Internet al router Titan vía 3G o 4G debemos acceder a la pantalla de configuración WAN > Basic Settings y configurarla con el APN, User y Password acordes a la tarjeta SIM utilizada. De forma análoga a la pantalla siguiente:

No olvidar seleccionar Remote Management si se pretende poder gestionar el router Titan de forma remota a través de 3G/4G.

Configuración de la tarjeta W-MBus

Ahora configuraremos apropiadamente la tarjeta W-MBus del router Titan. Como dicha tarjeta está conectada en el puerto USB del router Titan, iremos a la sección “Serial Settings > Serial Port5 USB” y configuraremos la velocidad adecuada, paridad, etc … a la que trabaja la tarjeta W-MBus:

Seguidamente configuramos la tarjeta W-MBus propiamente dicha, indicando que está conectada en el puerto USB, escogemos el modo W-MBus, como ventana de tiempo “0”, un filtro opcional para indicar el fabricante de los contadores a gestionar, el modo Parser (obligatorio para poder realizar lecturas Modbus) y dejamos sin seleccionar la casilla “Logger” ya que los datos no se van a enviar a una Plataforma WEB ni por FTP, sino que pretendemos leerlos por Modbus TCP.

Por puesto podemos añadir un filtro por número de serie de contador. Es decir, podemos especificar dentro del router Titan, los números de serie de los dispositivos Wireless M-Bus de los que pretendemos recoger los datos (hasta 500 dispositivos). Para ello, en la zona inferior de pantalla de la figura anterior pulsamos sobre el botón “SERIAL NUMBER FILTER” y podremos introducir nuestros dispositivos.

Configuración de Modbus TCP

Ahora configuraremos el router Titan para poder ser usado como Modbus Slave TCP. De esa manera nos podremos comunicar con él remotamente para realizar las lecturas recibidas de dispositivos Wireless M-Bus. Para ello, desde el menú “Other > Modbus TCP Slave” activamos la casilla “Enabled” (para activar el servicio) y el puerto TCP escogido, que por defecto es 502.

Tras pulsar en el botón “SAVE CONFIG” y reiniciar el MTX-Router-Titan-3G ya estaríamos en disposición de conectarnos remotamente y leer los contadores Wireless M-Bus mediante protocolo Modbus TCP.

Esta nota de aplicación está muy resumida, prestando atención a lo imprescindible, pero por supuesto pueden configurarse servicios OpenVPN para comunicaciones seguras, firewall, comunicaciones por SMS, actualizaciones remotas, … Para cualquier detalle consulte el manual de usuario, las notas de aplicación o escriba un email a gsmsupport@matrix.es.

Probando la configuración

En la zona inferior de la pantalla anterior (Other > Modbus TCP Slave) dispone de un mapa de memoria MODBUS relacionado con los dispositivos Wireless M-Bus.

Cómo leer un dispositivo Wireless M-Bus vía Modbus TCP

Si nos fijamos en el mapa de memoria Modbus, veremos que las posiciones de los registros 5000 a 5003 son para leer / escribir el nº de serie del dispositivo Wireless M-Bus. Por lo tanto lo primero que haremos es escribir en dichos registros el nº de serie del dispositivo que pretendemos leer.

Si el nº de serie Wireless M-Bus es 0646100002180307, escribimos en los registros 5000, 5001, 5002, 5003 los WORDS:

Registro 5000: 0646 (en decimal 1606)
Registro 5001: 1000 (en decimal 4096)
Registro 5002: 0218 (en decimal 536)
Registro 5003: 0307 (en decimal 775)

Escribimos en los registros 5000, 5001, 5002, 5003 los WORDS:

Una vez escrito el contador a leer, simplemente tenemos que leer desde los registros 5000 a 5179, donde estará toda la información del dispositivo Wireless M-Bus solicitado.

Registro 5004: > 0: no datos | 1: datos válidos.

Devuelve un 0 cuando por ejemplo no existan datos dentro del router Titan de un dispositivo W-MBus con el Nº de serie indicado o bien no se hayan recibido datos. Devolverá un 1 cuando los datos devueltos en los siguientes registros son válidos.

Registro 5005: > Año: 2000 … 2100

Devuelve el año de la última lectura recogida del dispositivo Wireless M-Bus

Registro 5006: > Mes: 1 … 12

Devuelve el mes de la última lectura recogida del dispositivo Wireless M-Bus

Registro 5007: > Día: 1 … 31

Devuelve el día de la última lectura recogida del dispositivo Wireless M-Bus

Registro 5008: > Hora: 0 … 23

Devuelve la hora de la última lectura recogida del dispositivo Wireless M-Bus

Registro 5009: > Minutos: 0 … 59

Devuelve los minutos de la última lectura recogida del dispositivo Wireless M-Bus

Registro 5010: > Segundos: 0 … 59

Devuelve los segundos de la última lectura recogida del dispositivo Wireless M-Bus

Registro 5011: > RSSI: 0 … 100

Devuelve el RSSI recogida por el router Titan del dispositivo comunicante

Registro 5012: > ERROR: 0 … 255

Devuelve el byte de ERROR del dispositivo Wireless M-Bus

Registro 5013: > NUM DATA: 0 … 20

Devuelve cuantos tokens de datos se han recogido del disposito Wireless M-Bus. Es decir, el número de DIFx, VIFx, DATAx que se han recogido.

Registro 5020-5021: > DIF1: 0x00000000 … 0xFFFFFFFF

Devuelve el DIF1 (Data Information Field) del Token1

Registro 5022-5023: > VIF1: 0x00000000 … 0xFFFFFFFF

Devuelve el VIF1 (Value Information Field) del Token1

Registro 5024-5027: > DATA1: 0x0000000000000000 … 0xFFFFFFFFFFFFFFFF

Devuelve el DATA1 (dato) del Token1

Registro 5028-5029: > DIF2: 0x00000000 … 0xFFFFFFFF

Devuelve el DIF2 (Data Information Field) del Token2

Registro 5030-5031: > VIF2: 0x00000000 … 0xFFFFFFFF

Devuelve el VIF2 (Value Information Field) del Token2

Registro 5032-5035: > DATA2: 0x0000000000000000 … 0xFFFFFFFFFFFFFFFF

Devuelve el DATA2 (dato) del Token2

Registro 5172-5173: > DIF20: 0x00000000 … 0xFFFFFFFF

Devuelve el DIF20 (Data Information Field) del Token20

Registro 5174-5175: > VIF20: 0x00000000 … 0xFFFFFFFF

Devuelve el VIF20 (Value Information Field) del Token20

Registro 5176-5179: > DATA20: 0x0000000000000000 … 0xFFFFFFFFFFFFFFFF

Devuelve el DATA20 (dato) del Token20