¿Buscas alguna otra cosa?

Titan – NA26: Envío de registros modbus mediante HTTPS a Microsoft Azure

Detalles del escenario

Los routers Titan pueden ser utilizados como concentradores Modbus RTU o Modbus TCP o ambas cosas a la vez. Es decir, los router Titan son capaces de leer registros Modbus de dispositivos terceros y enviarlos vía MQTT, HTTP/HTTPS o FTP.

Esta nota de aplicación de muestra cómo enviar los regitros modbus vía HTTPS a la plataforma IOT de Microsoft: AZURE

Escenario de ejemplo

Disponemos de un PLC Schneider M251 conectado por bus Ethernet a un MTX-Router-Titan-3G-mini. El dispositivo MTX-Router-Titan-3G-mini debe leer ciertos registros modbus cada 1 minuto y enviarlos mediante HTTPS POST (JSON) vía 3G a la plataforma de Microsoft Azure.

Creación de IoT Hub en Azure

Desde el portal Azure es posible crear un IoT Hub. Para ello accederemos a https://portal.azure.com

Para ello hacemos click en el símbolo “+” y en el campo de búsqueda introducimos “iot”. Aparecerá “IoT Hub” y haremos click en él.

Hacemos click en el Icono azul que aparecerá “IoT Hub”.

Por último pulsaremos en el botón crear:

Especificamos los datos del IoT Hub a crear, indicando un plan de precios gratuito. Nos permitirá enviar 8000 mensajes por día. Pulsamos el botón “Crear”.

Una vez creado el IoT Hub, necesitamos averiguar la cadena de conexión con el mismo. Para ello, en el IoT Hub Creado haremos click en “Directivas de Acceso compartido” -> “iothubowner” y copiaremos el texto de “Cadena de conexión (clave principal)”. Lo necesitaremos después.

Creación de un dispositivo en el IoT Hub creado

Existen varios métodos para crear un dispositivo en un IoT Hub. En este ejemplo se utilizará el Device Explorer que puede descargarse desde https://github.com/Azure/azure-iot-sdks/releases/download/2016-11-17/SetupDeviceExplorer.msi.

Una vez instalado, ejecutamos la aplicación que encontraremos en “Inicio” -> “Todos los programas” -> “Azure IoT Hub” -> “Device Explorer”. Escribimos la cadena de conexión que apuntamos al final del punto anterior 3. Después pulsamos el botón “Update”.

Después, creamos un dispositivo desde la pestaña “Management”.

Por último creamos un SAS Token con una validez, por ejemplo de 365 días, tal y como indica la siguiente figura. Nos apuntaremos la clave generada pues la necesitaremos para configurar el MTX-Router-Titan-3G-mini. En concreto necesitamos esta parte:

SharedAccessSignature sr=mtxiothub.azure-devices.net%2Fdevices%2Fmtx1&sig=QVNOMrrU1x%2F
63GpZNWAvOmXXXXXXXXXXXXXXXXXXXUU%3D&se=1521022004.

Configuración del MTX-Router-Titan-3G-mini

En este ejemplo vamos a centrarnos en la configuración relacionada con la lectura de variables Modbus y el envío a Azure. Por supuesto para llevar a cabo este ejemplo el router debe tener bien configurada la sección Wan > Basic Settings si pretendemos enviar los datos vía 3G.

Imaginemos que queremos leer los registros Modbus 100,101,102 y 103 del PLC que tiene como IP LAN 192.168.1.251 y un servidor Modus TCP escuchando en el puerto 502. Esta sería la configuración exacta que deberíamos configurar en la sección “External Devices > Modbus Devices”.

Por último debe configurarse el Logger. Es decir, el servicio del router que envía los datos a un servidor, en este caso a Azure. Para ello debe acudirse a la sección “External Devices > Logger Configuration”.

En dicha sección deberemos indicar una configuración como la indicada en la siguiente figura.

Es muy importante especificar como modo de envío HTTPS POST (JSON).

En “Custom header1” indicaremos: Content-Type;application/json.

En “Custom header2” indicaremos el SAS token generado anteriormente:
Authorization;SharedAccessSignature sr=mtxiothub.azure-devices.net%2Fdevices%2Fmtx1&sig=
QVNOMrrU1x%2F63GpZNWAvOmXXXXXXXXXXXXXXXXXXXXUU%3D&se=1521022004

Fíjese que después de “Content-Type” y de “Authorization” el separador utilizado es punto y coma “;”.

En “Server” indicamos la url de nuestro Servidor que tendrá el formato:
{iotHub}.azure-devices.net/devices/{deviceId}/messages/events?api-version=2016-11-14

En el caso de este ejemplo:
mtxiothub.azure-devices.net/devices/mtx1/messages/events?api-version=2016-11-14

Si además, se desea que el MTX-Router-Titan-3G-mini envíe alguna información periódica sobre su estado, cobertura, IP … es posible realizarlo de forma análoga a lo anterior desde el menú “Other > Private DNS”. Introducimos exactamente el mismo server y headers que en la figura anterior.

Una vez hecho esto, debemos reiniciar el router. Tras reiniciarse y conectarse a Internet, podremos ver cómo recoge registros modbus del PLC y los envía a Azure.

Para ver los datos recibidos en azure, es posible utilizar la misma herramienta “Device Explorer”. Para ello basta con ir a la pestaña “Data” y pulsar en el botón “Monitor”.

Podremos ver tanto los JSON de la variables modbus leídas como los de estado.

Para cualquier consulta contacte con nosotros en iotsupport@mtxm2m.com.

Para dudas relacionadas con los servicios de Azure, contactar con el servicio técnico de Microsoft.