ESP8266 – 01 Esclavo Modbus TCP IP (Ethernet) para Aplicaciones Industriales

Introduccion a Modbus TCP IP

Modbus TCP IP  protocolo de comunicaciones basado en  aquitectura (TCP/IP) cliente/servidor diseñado para comunicación  Ethernet de controladores Industriales PLCs.
Ventajas sobre otros Protocolos Industriales
  1. Es público.
  2. Su implementación es fácil y requiere poco desarrollo.
  3. Maneja bloques de datos sin suponer restricciones.

Mas Informacion Modbus ..  Wikipedia.

Existen una gran cantidad de implementaciones de este protocolo en la gran variedad de lenguajes de programacion Java, Python, C, etc.
Se diria que una gran cantidad de los controladores Industriales, OPC, HMI  y Scada Utilizan Modbus TCP IP.


Importante:
Para realizar correctamente todo el proyecto que es de Gran alcance referente a su interacción con scada HMI OPC y PLC  deberias ver Antes este Post:

Arduino Mega 2560 Display Oled I2C Modbus Maestro RTU Conexion Scada Industrial

Aplicación  de Proyecto
He realizado la búsqueda de ejemplos o aplicaciones funcionales de el Modulo ESP8266 – 01
en el campo industrial, Luego de realizar pruebas con controladores PLC via Modbus RTU serial,
Realice la  implementacion del Modulo ESP8266 como esclavo TCP IP   y Arduino con un SCADA Industrial.


Explicacion de Proyecto
Se realiza la configuracion del Modulo ESP8266 como esclavo Modbus TCP/IP, se Utiliza un simulador Modbus TCP IP como Maestro de red.
1 El modulo ESP8266 enviara en el Holding Register [0] un valor Random generado internamente por el modulo, este se visualizara desde el Simulador Maestro Modbus.
2 Se utiliza el puerto serial del ESP8266 con el FTDI Serial usb para visualizar el valor Random

 

Video de Prueba  ESP8266 como esclavo Modbus TCP IP via Wifi

Materiales 

1  1 ESP8266
2  1  Convertidor FTDI Serial USB
3  1 Regulador de 5 a 3.3v para alimentacion de ESP8266

Conexiones

Descargas:

Parte 1

 
Parte 3
ESP8266 Modo Puente Modbus RTU Esclavo – Modbus TCP IP Esclavo
 

You may also like...

8 Responses

  1. hola, quisiera saber que firmware utilizaste, si el firware ATE de fábrica u otro diferente

  2. Cristian dice:

    Hola,
    para este ejemplo usas una libreria llamada ESP8266.h donde puedo descargarla?

    Gracias! fantástico aporte!

  3. Jose Almeida dice:

    Hola!
    Estoy utilizando el ejemplo "ESP8266ModbusTCPSlave.ino" en ESP8266-12e.
    Funciona muy bien, pero tengo enviar el comando de lectura o escritura dos veces para recibir el mensaje "OK" en mi simulador (Modbus pool master).
    Creo que es debido a que la conexión se cierra (no keep_alive).
    ¿Cómo hago la conexión a mantener en "Keep-Alive"?

    Gracias.

    • PDAControl dice:

      Hola
      La libreria Original tenia un inconveniente, el Maestro debia cerrar y abrir conexion para actualizar, a corto plazo lo solucione, modificando la libreria y haciendo que el esclavo cierre la conexion y el maestro solicitara conexion, muchas personas me han consultado sobre este tema y estoy probando con la libreria original sin la desconexion e implementando la libreria , pronto subire la documentacion completa
      Saludos

  4. Jose Almeida dice:

    Entiendo.
    Si yo pudiera colaborar con alguna prueba, Voy a estar disponible.

    Hice algunas pruebas en el código, dentro del ficheiro "ModbusTCPSlave.cpp", comentando el "client.stop();", contenido dentro del bloque "case MB_FC_READ_REGISTERS:".

    La conexión permanece activa, pero no actualiza el valor del registro "Mb.MBHoldingRegister[0] = (random(1, 100));", declarada en el fichero "ModbusESP8266Slave.ino".

    Saludos.

  5. PDAControl dice:

    Hola Jose
    Estas son las pruebas que te mencione anteriormente https://goo.gl/sWOqK4,con las pruebas realizadas ya no se debe detener la conexion, admiro tu interes en integrar ESP con modbus TCP, saludos

Deja un comentario