|
| 1 | +Biblioteca Modbus para ESP8266 |
| 2 | +============================== |
| 3 | + |
| 4 | +Esta biblioteca permite que seu ESP8266 se comunique através do protocolo Modbus. |
| 5 | +O Modbus é um protocolo do tipo mestre-escravo, utilizado em automação industrial, |
| 6 | +podendo ser utilizado em outras áreas, como por exemplo, na automação residencial. |
| 7 | + |
| 8 | +O Modbus geralmente utiliza como meio físico as interfaces seriais RS-232 ou RS-485 |
| 9 | +(quando é chamado Modbus Serial) e TCP/IP via Ethernet ou WiFi (Modbus IP). |
| 10 | + |
| 11 | +Na versão atual a biblioteca permite que o arduino opere como escravo, suportando |
| 12 | +tando Modbus IP via rede wireless. Para mais informações sobre o Modbus consulte: |
| 13 | + |
| 14 | +http://pt.wikipedia.org/wiki/Modbus |
| 15 | +http://www.modbus.org/docs/Modbus_Application_Protocol_V1_1b.pdf |
| 16 | +http://www.modbus.org/docs/Modbus_Messaging_Implementation_Guide_V1_0b.pdf |
| 17 | + |
| 18 | +Características |
| 19 | +=============== |
| 20 | + |
| 21 | +<ul> |
| 22 | +<li>Opera como escravo</li> |
| 23 | +<li>Suporta Modbus IP (TCP não keep-alive)</li> |
| 24 | +<li>Responde todos os tipos de exceção para as funções suportadas</li> |
| 25 | +<li>Suporta as seguintes funções Modbus:</li> |
| 26 | +<ul> |
| 27 | + <li>0x01 - Read Coils</li> |
| 28 | + <li>0x02 - Read Input Status (Read Discrete Inputs)</li> |
| 29 | + <li>0x03 - Read Holding Registers</li> |
| 30 | + <li>0x04 - Read Input Registers</li> |
| 31 | + <li>0x05 - Write Single Coil</li> |
| 32 | + <li>0x06 - Write Single Register</li> |
| 33 | + <li>0x0F - Write Multiple Coils</li> |
| 34 | + <li>0x10 - Write Multiple Registers</li> |
| 35 | +</ul> |
| 36 | +</ul> |
| 37 | + |
| 38 | +<b>Observações:</b> |
| 39 | + |
| 40 | +1. Quando se usa Modbus IP o protocolo de transporte é o TCP (porta 502) e a conexão |
| 41 | +é finalizada a cada mensagem transmitida, ou seja, não é do tipo keep-alive. |
| 42 | + |
| 43 | +2. Os offsets para acesso aos registradores são baseados em 0. Assim, tenha cuidado |
| 44 | +ao configurar seu seu supervisório ou utilitário de teste. Por exempo, no ScadaBR |
| 45 | +(http://www.scadabr.com.br) os offsets são baseados em 0, então, um registrador |
| 46 | +configurado como 100 na biblioteca será configurado como 100 no ScadaBR. Por outro |
| 47 | +lado, no software de teste CAS Modbus Scanner (http://www.chipkin.com/products/software/modbus-software/cas-modbus-scanner/) |
| 48 | +os offsets são baseados em 1, logo, um registrador configurado como 100 na biblioteca |
| 49 | +deverá ser 101 neste software. |
| 50 | + |
| 51 | +3. No início do arquivo Modbus.h da biblioteca há uma opção para limitar o funcionamento |
| 52 | +da mesma às funções de Holding Registers, salvando espaço na memória de programa. |
| 53 | +Basta retirar o comentário da seguinte linha: |
| 54 | + |
| 55 | +``` |
| 56 | +#define USE_HOLDING_REGISTERS_ONLY |
| 57 | +``` |
| 58 | +Dessa forma, somente as seguintes funções são suportadas: |
| 59 | +<ul> |
| 60 | + <li>0x03 - Read Holding Registers</li> |
| 61 | + <li>0x06 - Write Single Register</li> |
| 62 | + <li>0x10 - Write Multiple Registers</li> |
| 63 | +</ul> |
| 64 | + |
| 65 | +Como utilizar |
| 66 | +============= |
| 67 | + |
| 68 | + |
| 69 | +Contribuições |
| 70 | +============= |
| 71 | +http://github.com/andresarmento/modbus-esp8266<br> |
| 72 | +prof (at) andresarmento (dot) com |
| 73 | + |
| 74 | +Licença |
| 75 | +======= |
| 76 | + |
| 77 | +O código neste repositório é licenciado pela BSD New License. |
| 78 | +Veja [LICENSE.txt](LICENSE.txt) para mais informações. |
| 79 | + |
| 80 | + |
0 commit comments