Jan 7, 2018 | By: Javier Ortega
En este artículo se explica como monitorizar un transductor digital multiparamétrico que mide intensidad, voltaje, potencia y frecuencia de un circuito DC
Ivy IoT Gateway es una pasarela de datos de fácil uso que permite interactuar de forma remota con dispositivos mediante el protocolo industrial Modbus.
En este ejemplo vamos a usar Ivy IoT Gateway para monitorizar un transductor digital multiparamétrico que mide intensidad, voltaje, potencia y frecuencia de un circuito DC.
Antes de empezar debemos conocer la información básica del dispositivo con el que queremos interactuar.
En este caso:
Sensor: Digital transducer
Modelo: CE-AD11B-32ES5
Descripción: Transductor digital multiparamétrico que mide intensidad, voltaje, potencia y frecuencia de un circuito DC.
Documentación: https://www.ce-transducer.com/product/details/185/103/details
Además es necesaria la información para trabajar con Modbus:
Address of register (Hex) | Contents of register |
---|---|
0x0010 | Voltage of phase A |
0x0011 | Current of phase A |
0x0012 | Voltage of phase B |
0x0013 | Current of phase B |
0x0014 | Voltage of phase C |
0x0015 | Current of phase C |
0x0016 | P: active power |
0x0017 | Q: reactive power |
0x0018 | Cos: power factor |
0x0019 | F: frequency |
Trama para leer registros:
Trama devuelta al leer registros:
Con la información anterior, nos disponemos a usar la librería que incorpora Ivy IoT Gateway para facilitar todas las comunicaciones con el protocolo Modbus.
Conectaremos Ivy IoT Gateway al sensor usando el adaptador RJ11-RS485. Encuentre en la wiki cómo realizar esta conexión físicamente.
Situados ambos en la misma red, nos conectaremos a Ivy IoT Gateway mediante ssh para crear nuestro programa y, posteriormente, ejecutarlo. Puedes ver como se hace aquí.
Puede crear el programa directamente en Ivy IoT Gateway, mediante el editor vi, o crearlo en su PC y transferirlo posteriormente a Ivy IoT Gateway mediante sftp.
Para poder usar el módulo de Modbus debemos de importarlo y crear una instancia del mismo, para ello:
from ivy_gw.modules.modbus import modbus
modbus = modbus.Modbus()
Nuestro programa se va a dividir en tres secciones para que sea más entendible.
La trama es el conjunto de bytes que va a recibir nuestro sensor. En ella se define a quien va dirigida, así cómo la acción y valores necesarios para que el sensor la interprete.
En este ejemplo vamos a leer la corriente de la fase A (0x0011), por lo que la trama enviada corresponde a:
slave = '\x01'
code_read = '\x03'
start_address = '\x00\x11'
num_of_registers = '\x00\x01'
tx = slave + code_read + start_address + num_of_registers
tx += modbus.get_crc(tx)
El valor de tx
es, para este caso:
tx = '\x01\x03\x00\x11\x00\x01\xD4\x0F'
El módulo de Modbus que incorpora Ivy IoT Gateway contiene un método para enviar la trama anteriormente creada. Para ello:
rx = modbus.raw(tx)
Este método nos devuelve otra trama con la respuesta (rx).
Si el sensor nos ha respondido correctamente, en rx
tendremos una trama con la respuesta del sensor. Un ejemplo de respuesta, podría ser la siguiente:
rx = '\x01\x03\x02\x80\x00\xD9\x84'
Dónde:
\x01
Es la dirección del esclavo\x03
Es la función de leer registros\x02
Es el número de bytes de los datos recibidos\x80\x00
Es el valor del registro solicitado\xD9\x84
Es el CRCEn este caso el valor del dato solicitado es 0x8000 => 128
Puede ver el código completo de este programa aquí
Una vez realizado el programa anterior, simplemente ejecute:
python your_program.py
Realizado todo lo anterior, ya tiene su primer programa de monitorización con Ivy IoT Gateway.
Suscríbete
Suscríbete via RSS.
Posts Recientes
Impulsa la transformación digital de tu empresa con Acelera pyme y el Kit digital
Posted on 21 Dec 2021[Post] Cómo monitorizar un sensor con Ivy IoT Gateway en 4 pasos
Posted on 07 Jan 2018