Esta biblioteca permite que seu ESP8266 se comunique através do protocolo Modbus. O Modbus é um protocolo do tipo mestre-escravo, utilizado em automação industrial, podendo ser utilizado em outras áreas, como por exemplo, na automação residencial.
O Modbus geralmente utiliza como meio físico as interfaces seriais RS-232 ou RS-485 (quando é chamado Modbus Serial) e TCP/IP via Ethernet ou WiFi (Modbus IP).
Na versão atual a biblioteca permite que o arduino opere como escravo, suportando o Modbus IP via rede wireless. Para mais informações sobre o Modbus consulte:
http://pt.wikipedia.org/wiki/Modbus http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf http://www.modbus.org/docs/Modbus_Messaging_Implementation_Guide_V1_0b.pdf
- Opera como escravo
- Suporta Modbus IP (TCP não keep-alive)
- Responde todos os tipos de exceção para as funções suportadas
- Suporta as seguintes funções Modbus:
- 0x01 - Read Coils
- 0x02 - Read Input Status (Read Discrete Inputs)
- 0x03 - Read Holding Registers
- 0x04 - Read Input Registers
- 0x05 - Write Single Coil
- 0x06 - Write Single Register
- 0x0F - Write Multiple Coils
- 0x10 - Write Multiple Registers
Observações:
-
Quando se usa Modbus IP o protocolo de transporte é o TCP (porta 502) e a conexão é finalizada a cada mensagem transmitida, ou seja, não é do tipo keep-alive.
-
Os offsets para acesso aos registradores são baseados em 0. Assim, tenha cuidado ao configurar seu seu supervisório ou utilitário de teste. Por exempo, no ScadaBR (http://www.scadabr.com.br) os offsets são baseados em 0, então, um registrador configurado como 100 na biblioteca será configurado como 100 no ScadaBR. Por outro lado, no software de teste CAS Modbus Scanner (http://www.chipkin.com/products/software/modbus-software/cas-modbus-scanner/) os offsets são baseados em 1, logo, um registrador configurado como 100 na biblioteca deverá ser 101 neste software.
-
No início do arquivo Modbus.h da biblioteca há uma opção para limitar o funcionamento da mesma às funções de Holding Registers, salvando espaço na memória de programa. Basta retirar o comentário da seguinte linha:
#define USE_HOLDING_REGISTERS_ONLY
Dessa forma, somente as seguintes funções são suportadas:
- 0x03 - Read Holding Registers
- 0x06 - Write Single Register
- 0x10 - Write Multiple Registers
Este README está em desenvolvimento, por enquanto, consulte os exemplos da biblioteca.
http://github.com/andresarmento/modbus-esp8266
prof (at) andresarmento (dot) com
O código neste repositório é licenciado pela BSD New License. Veja LICENSE.txt para mais informações.