Teniendo en cuenta Post Anteriores, en esta ocasión se ha implementado el ESP8266 como Puente para el protocolo Industrial modbus, En próximos tutoriales realizaremos la conexión de ARDUINO ESP8266 y un SCADA HMI.
Post Recomendado: ESP8266 Como Esclavo Modbus TCP IP
Explicacion de Proyecto
El modulo ESP8266,
1 – Se configura por su puerto serial como Esclavo Modbus RTU Serial, complementando con un chip MAX 232 se puede convertir de TTL a RS232.
2 – Se configura por la parte Wifi – WLAN se configura como Esclavo Modbus TCP IP por el puerto 502,
3 – Internamente en el Modulo se redireccionan 20 registros tanto de Modbus TCP IP como de Modbus RTU de la siguiente manera:
Modbus RTU –> Modbus TCP IP
Desde el Registro 0 – 9 del esclavo Modbus RTU hacia los registros 0 – 9 del esclavo Modbus TCP, todo lo que se escriba en los primeros 10 registros del Esclavo RTU se enviara en los primeros 10 del Esclavo TCP:
//// Write Modbus TCP in Modbus RTU 10 Holding Registers //// Escritura de Modbus TCP en Registros 10 Modbus RTU regBank.set(40001, Mb.MBHoldingRegister[0]); regBank.set(40002, Mb.MBHoldingRegister[1]); regBank.set(40003, Mb.MBHoldingRegister[2]); regBank.set(40004, Mb.MBHoldingRegister[3]); regBank.set(40005, Mb.MBHoldingRegister[4]); regBank.set(40006, Mb.MBHoldingRegister[5]); regBank.set(40007, Mb.MBHoldingRegister[6]); regBank.set(40008, Mb.MBHoldingRegister[7]); regBank.set(40009, Mb.MBHoldingRegister[8]); regBank.set(40010, Mb.MBHoldingRegister[9]);
Modbus TCP IP –> Modbus RTU
Desde el Registro 10 – 19 del esclavo Modbus TCP IP hacia los registros 10 – 19 del esclavo Modbus RTU, todo los que se escriba desde el registro 10 del esclavo Modbus TCP IP se enviara en los registros desde el 10 del Esclavo RTU.
//// Write Modbus RTU in Modbus TCP 10 Holding Registers //// Escritura de Modbus RTU en Registros 10 Modbus TCP Mb.MBHoldingRegister[10] = regBank.get(40011); Mb.MBHoldingRegister[11] = regBank.get(40012); Mb.MBHoldingRegister[12] = regBank.get(40013); Mb.MBHoldingRegister[13] = regBank.get(40014); Mb.MBHoldingRegister[14] = regBank.get(40015); Mb.MBHoldingRegister[15] = regBank.get(40016); Mb.MBHoldingRegister[16] = regBank.get(40017); Mb.MBHoldingRegister[17] = regBank.get(40018); Mb.MBHoldingRegister[18] = regBank.get(40019); Mb.MBHoldingRegister[19] = regBank.get(40020);
Arrancar esclavos
slave.run(); /// Run Slave Modbus RTU Mb.Run(); /// Run Slave Modbus TCP
1 ESP8266
2 Convertidor FTDI Serial USB
3 Regulador de 5 a 3.3v para alimentacion de ESP8266
ESP8266 Bridge Slave Modbus TCP – Slave Modbus RTU
Descargas: