Prueba Básica Modbus RTU Maestro RS485 con ESP32 + XY-K485 + PZEM-016 (sin librerías)

En esta oportunidad realizaremos pruebas y explicación de el protocolo Modbus RTU implementado en ESP32 solicitando datos al Medidor de consumo Monofasico PZEM-016.

La intensión de este tutorial es:

1. Explicar de una manera sencilla la creación y el funcionamiento de un protocolo industrial en este caso el protocolo Modbus RTU utilizado e implementado en gran cantidad de aplicaciones industriales.

2. Indicar las ventajas del modulo XY-K485 como convertidor de TTL a RS485.

  • No requiere habilitación DE y RE, solo requiere Rx y Tx.
  • Alimentación desde 3.3V a 30VDC.
  • Aislamiento, fusibles térmico y protección (Diodo supresor transitorio bidireccional TVS) en la comunicación RS485.
  • Leds de indicación de recepción Rx y transmisión Tx.

3. Esta implementacion en ESP32 es netamente explicativa, no aplicarla directamente a una aplicación real en la industrial, dado que se toma lo básico del protocolo Modbus RTU de manera didáctica.

Recommended Tutorial Version in English: Basic Modbus RTU Master RS485 Test with ESP32 + XY-K485 + PZEM-016 (without libraries)

Materiales y donde Comprarlos

Conexiones

Una gran ventaja del convertidor XY-K485 es que no requiere DE/ y RE habilitación de recepción, solo con Rx y Tx realizamos la comunicación RS485.

Convertidor XY-K485

Proximo Tutorial Recomendado: Convertidor TTL a RS485.

 

Conexiones Medidor

Medidor PZEM-016 Esclavo Modbus RTU (RS485)

Tutorial Recomendado: Revisión Inicial Medidor PZEM-016 Modbus RTU RS485 de PeaceFair

Registros Modbus del Medidor PZEM-016

Cuenta con 10 registros de Lectura y 2 registros de Escritura.

  • Los 10 registros de lectura corresponden a Mediciones (Voltaje, Corriente, Potencia, Potencia Acumulada, Frecuencia y Factor de Potencia), cuenta con registro de alarma por limite máximo Potencia instantánea (Vatios).
  • Los 2 registros de escritura corresponden a valor en (Vatios) de alarma y la dirección del Esclavo.

Nota: Aunque la potencia Acumulada se puede reiniciar, en la documentación no se menciona el registro especifico.

Recommended Tutorial Version in English: Basic Modbus RTU Master RS485 Test with ESP32 + XY-K485 + PZEM-016 (without libraries)

Montaje

Modbus RTU: Envió de trama Maestro

El ESP32 envía trama maestro, solicitando registros a medidor PZEM-016 por RS485.

Documentación:

Implementacion Real:

Modbus RTU: Recepcion de trama Esclavo

El medidor PZEM-016 esclavo Modbus RTU (RS485), respuesta del medidor.

Documentación:

Implementacion Real:

Prueba 1: Codigo ESP32 Modo Puente USB a Serial

Se creo un código para crear un puente USB a Serial utilizando el ESP32.

Prueba 2 : Simulador Modbus RTU

El ESP32 en modo puente direccionamiento tramas entre Serial a Serial2, funcionando equivalente a un FTDI.

El simulador modbus permite monitorizar las tramas de envió y recepción, permitiendo mayor facilidad.

Prueba 3: Software PZEM-014 Master de PeaceFair

El ESP32 en modo puente también permite comunicar el PZEM-016 con el Software de PeaceFair.

Recommended Tutorial Version in English: Basic Modbus RTU Master RS485 Test with ESP32 + XY-K485 + PZEM-016 (without libraries)

Otros Recomendados

Prueba Arduino IDE

Se creo una trama de envió el ESP32 en modo Modbus Maestro y procesamiento de recepción de Esclavo, este código realiza los siguiente.

  • Envió de Trama Maestro.
  • Recepción de Trama Esclavo.
  • Conversión de Byte a Int.
  • Normalizacion de Registros a Mediciones.

Nota: Importante, esta implementacion en Arduino IDE basica, no utilizamos los métodos de validación de CRC o Checksum.

Simplemente enviamos la trama de solicitud de 10 registros Modbus y el Medidor PZEM-016 responde con 20 Bytes equivalente 10 registros.

Nota: Descarga código y ejemplos al final del articulo.

Este ejemplo solo realiza lectura de registros, en próximos tutoriales explicaremos como funciona la escritura de registros modbus.

Depuración Serial

Para validar la correcta comunicación ESP32 y PZEM-016 se habilito el puerto serial para depuración de tramas HEX.

 

Videos: Basic Test Modbus RTU

Video explicativo y detallado.

Conclusiones

Como se menciona inicialmente este tutorial es simplemente una breve introducción o explicación de como funcionan los protocolos específicamente Modbus RTU sobre RS485.

Esta es una implementacion básica o didáctica sin tener en cuenta los métodos de validación del protocolo CRC o Checksum, dado que es una prueba sin finalidad industrial.

El medidor PZEM-016 cuenta con 5VDC para alimentar dispositivos, en este caso no lo utilice, pero debería permitir alimentar nuestro ESP32 y el XY-K485

Aunque estamos utilizando un ESP32 en esta oportunidad no utilizaremos FreeRTOS, para simplificar el tutorial, en próximas pruebas lo implementaremos.

Este ejemplo es el inicio de otra variedad de pruebas, con algunas modificaciones podríamos adicionar comunicación MQTT o HTTP/HTTPS con plataformas IoT.

Recommended Tutorial Version in English: Basic Modbus RTU Master RS485 Test with ESP32 + XY-K485 + PZEM-016 (without libraries)

Ventajas

Respecto al hardware específicamente el convertidor XY-K485 (TTL a RS485), no requiere habilitación para Envió y Recepción (RE & DE), facilita la implementacion en otros microcontroladores, sin control de flujo.

 

Descargas

Ejemplo: ESP32 Puente Serial/Usb

264 Descargas

Ejemplo: ESP32 Maestro Modbus Basic

401 Descargas

Recomendados

Deja una respuesta