La serie SDM230 es una solución avanzada de monitoreo de energía multifuncional monofásica con salidas opcionales como Pulsado, RS485 RTU Modbus y Mbus. Equipado con botones de configuración y visualización para facilitar la navegación a través de los diversos parámetros y configuraciones. Alojado para montaje en riel DIN, protección IP51 y conexión directa de hasta 100A. Modos de medición seleccionables utilizando nuestro software de configuraciones gratuito para visualización de kWh, Total kWh (Importación + Exportación), Importación kWh y Net kWh (Exportación - Importación) Certificado en el Reino Unido de acuerdo con la Directiva de la UE 2014/32/EU. Número de certificado MID 0120 / SGS0206.
En este artículo, demostramos cómo conectar la serie SDM230M a un maestro Modbus utilizando Modbus RTU. Luego mostramos cómo el maestro Modbus envía los datos recopilados a Ubidots utilizando HTTP.
Requisitos
Una cuenta activa de Ubidots
Un dispositivo maestro Modbus RTU con Node-RED.
1. Configuración
Conecte la serie SDM230M a su red eléctrica de acuerdo con sus requisitos. A continuación se muestra un esquema de conexión breve. Para instrucciones detalladas, consulte la hoja de datos.
Una vez que las líneas de alimentación estén conectadas, conecte la serie SDM230M al maestro Modbus a través de la interfaz RS-485.
Tasa de baudios de conexión Modbus
Esta guía utiliza una tasa de 9600 baudios. Para otras configuraciones de tasa de baudios, consulte el manual de configuración.
2. Configuración del maestro Modbus
Asegúrese de que la instalación de Node-Red de su dispositivo tenga el nodo "Modbus Read", si no es así, dirígete al siguiente enlace para obtener información sobre el proceso de instalación.
Navegue a la interfaz de Node-RED en su dispositivo maestro Modbus y busque "Modbus" en la paleta de nodos.
Agregue un nodo "Modbus Read" a su flujo. Una vez colocado, haga doble clic en él y luego haga clic en el botón "Agregar nuevo cliente modbus...". Esto mostrará la configuración serial para el maestro modbus:
Aquí, configure los parámetros seriales de acuerdo con su configuración. En esta guía, se utilizaron los siguientes ajustes:
Tasa de baudios: 9600.
Dirección del maestro Modbus: 1.
Configure los otros ajustes según lo requiera.
Después de guardar los cambios anteriores, volverá a la configuración del nodo "Modbus Read". Este nodo está configurado para leer la variable "Voltios de Línea a Neutro". Utilice la configuración a continuación para obtener el valor de esta variable, o ajuste la "Dirección" según sea necesario para su configuración. Para información sobre las variables y sus direcciones Modbus, consulte el siguiente manual de referencia.
Opcional: recuperar variables de "corriente" y "energía activa total"
Agregue otros dos nodos "Modbus read" y configúrelos como se muestra arriba, solo cambiando la "Dirección" para que coincida con las siguientes direcciones para cada variable:
Variable | Dirección Modbus (Hex) | Dirección Modbus (Dec) |
voltios de línea a neutro | 00 | 00 |
corriente | 06 | 06 |
Energía activa total | 56 | 86 |
Después de eso, tendrá 3 nodos "Modbus read":
Arrastre y suelte 3 módulos "function" y conéctelos a la salida de los nodos "Modbus read" como se muestra a continuación:
Haga doble clic en cualquiera de los nodos "function" colocados anteriormente y pegue el siguiente código, solo tiene que reemplazar el nombre de la variable:
// Acceder al msg.payload que contiene el objetoconst bufferArray = msg.payload.buffer;// Extraer bytes del array de bufferconst highByteFirstRegister = bufferArray[0] & 0xFF;const lowByteFirstRegister = bufferArray[1] & 0xFF;const highByteSecondRegister = bufferArray[2] & 0xFF;const lowByteSecondRegister = bufferArray[3] & 0xFF;// Combinar bytes en un entero de 32 bits (big-endian)const combinedValue = (highByteFirstRegister << 24) | (lowByteFirstRegister << 16) | (highByteSecondRegister << 8) | lowByteSecondRegister;// Convertir a número de punto flotante usando el formato IEEE 754const float32Buffer = new ArrayBuffer(4);const float32View = new DataView(float32Buffer);float32View.setUint32(0, combinedValue, false); // false para big-endian// Reemplace el nombre de la variable aquí en lugar de "voltaje"const voltage = float32View.getFloat32(0, false); // false para big-endian// Reemplace el nombre de la variable aquí en lugar de "voltaje" (la clave)return { payload: { voltage: voltage } };
Haga lo mismo para los otros 2 nodos de función, solo cambiando los nombres de las variables según su requerimiento. Agregue otro nodo "function" y conecte la salida de los 3 nodos "function" anteriores a la entrada de este. Debería obtener algo como se muestra a continuación:
Haga doble clic en ese nodo y agregue lo siguiente, solo reemplazando <UBIDOTS-TOKEN> por su token de Ubidots:
msg.headers = { 'Content-Type' : 'application/json', 'X-Auth-Token' : 'UBIDOTS-TOKEN'}return msg;
Nota: Las versiones más recientes de node-red implementan nativamente una configuración para establecer los encabezados, por lo que este paso no es necesario.
3. Enviar datos a Ubidots
Arrastre y suelte un nodo "http request" y un nodo "debug" y conéctelos juntos a los nodos anteriores como se muestra a continuación:
Haga doble clic en el nodo "http request" y complete el campo como:
Método: Este es el método de la solicitud HTTP. Se requiere POST para enviar datos.
URL: https://industrial.api.ubidots.com/api/v1.6/devices/<your-device-label>. Este es el endpoint utilizado para enviar datos a Ubidots. Aquí deberá reemplazar su etiqueta de dispositivo.
Haga clic en el botón "Done" para guardar los cambios y luego haga clic en el botón "Deploy" para implementar los cambios en el dispositivo. Después de hacerlo, podrá ver un nuevo dispositivo en Ubidots con las variables mencionadas anteriormente: