banner

blog

Jun 30, 2023

Modbus sobre WLAN (Parte 1): Hardware e Programação

O protocolo Modbus é amplamente utilizado no setor industrial para comunicação entre sistemas e controladores. Isso geralmente é feito com a interface RS485 testada e comprovada e fio de cobre convencional. Apresentamos aqui um módulo que permite utilizar o protocolo Modbus em uma rede local sem fio (WLAN). O módulo é construído em torno de uma placa Espressif NodeMCU equipada com um microcontrolador ESP8266. Um rodapé Modbus complementar permite trabalhar com sinais de 24 V, nível de tensão comum no ambiente industrial. Para demonstrar como tudo funciona, os autores construíram um controlador simples de porta de elevador. A maioria dos leitores do Elektor provavelmente já está familiarizada com o módulo Espressif NodeMCU e o Arduino IDE. Se você se enquadra nessa categoria, pode pular esta introdução e ir direto para a descrição da placa Modbus TCP. Para todos os outros, aqui está o que você precisa saber em poucas palavras. Este projeto é construído em torno de um módulo NodeMCU (disponível na Elektor Store). O módulo é equipado com um microcontrolador Espressif ESP8266, que tem aproximadamente o tamanho de um selo postal e vem com uma interface WLAN. Apesar de seu tamanho pequeno, ele possui muito poder de processamento. Os principais recursos do microcontrolador ESP8266 estão resumidos emtabela 1.

A placa NodeMCU gera a tensão de alimentação do ESP8266 e cuida da interface de programação do microcontrolador.figura 1mostra uma visão geral da pinagem da placa NodeMCU usada em nosso circuito Modbus.

O Arduino IDE é muito adequado para programar a placa NodeMCU. Você pode baixar gratuitamente a versão correta do Arduino IDE para o sistema operacional do seu computador no site do Arduino e instalá-lo de acordo com as instruções do site. Ao executar o IDE pela primeira vez, você verá uma janela como a mostrada na Figura 2 . O painel de código do programa contém duas funções predefinidas. No topo está a função setup(), que é executada apenas uma vez quando o programa é iniciado e lida com coisas como inicializar as interfaces do microcontrolador, e na parte inferior está a função loop(), que normalmente contém o código-fonte do seu programa .

A função loop() é executada após a conclusão da função setup(). Quando o programa chega ao final da função loop(), ele recomeça desde o início. O ESP8266 gerencia a interface WLAN entre o final e o reinício da função loop(). Isso significa que você deve evitar a criação de loops infinitos na função loop(), caso contrário, o ESP8266 irá inevitavelmente travar. Em vez disso, o código na função loop() deve ser projetado para que possa ser executado de forma cíclica. Um grande número de falhas aparentemente misteriosas do ESP8266 são causadas pelo fato de que o processador não obtém tempo de CPU suficiente para gerenciar o Interface WLAN. Se houver uma chance de o código do seu programa ser executado por um longo período, por exemplo, em loops grandes, você pode usar a função yield() ou a função delay() para dar ao ESP8266 tempo suficiente para gerenciamento de WLAN. Módulo NodeMCU na placa Modbus, você deve conectá-lo a uma porta USB do seu computador, mas antes disso você deve fazer algumas coisas para deixar tudo pronto para funcionar. O ESP8266 não é suportado como padrão pelo IDE do Arduino, então primeiro você precisa atualizar o IDE. Para fazer isso, selecione Arquivo -> Preferências e insira o seguinte URL na caixa URLs adicionais do gerenciador de placa: http://arduino.esp8266.com/stable/package_esp8266com_index.jsonClique em OK e selecione Ferramentas -> Placa ... -> para abrir a janela Boards Manager, onde você deve procurar o ESP8266 e depois instalar as placas comunitárias ESP8266. Após instaladas, em Ferramentas -> Placa > você verá a placa NodeMCU 1.0 (Módulo ESP-E12), e em Ferramentas - > Porta > você verá a porta à qual a placa NodeMCU está conectada (/dev/ttyUSBx no Linux ou COMx no Windows). Agora você pode começar com o primeiro programa de teste simples no módulo NodeMCU. Para isso, abra o programa de exemplo 'Blink' em Arquivo -> Exemplos -> ESP8266 -> Blink. O programa mostrado em

>1);/p>

COMPARTILHAR