banner

Blog

Jun 30, 2023

Modbus su WLAN (Parte 1): hardware e programmazione

Il protocollo Modbus è ampiamente utilizzato nel settore industriale per la comunicazione tra sistemi e controllori. Questo di solito viene fatto con la collaudata interfaccia RS485 e il tradizionale filo di rame. Qui presentiamo un modulo che consente di utilizzare il protocollo Modbus su una rete locale wireless (WLAN). Il modulo è costruito attorno a una scheda Espressif NodeMCU dotata di un microcontrollore ESP8266. Una scheda base Modbus supplementare consente di lavorare con segnali a 24 V, che è un livello di tensione comune nell'ambiente industriale. Per dimostrare come funziona il tutto, gli autori hanno creato un semplice controller per la porta dell'ascensore. La maggior parte dei lettori di Elektor probabilmente ha già familiarità con il modulo Espressif NodeMCU e l'IDE Arduino. Se rientri in questa categoria, puoi saltare questa introduzione e passare direttamente alla descrizione della scheda Modbus TCP. Per tutti gli altri, ecco cosa devi sapere in poche parole. Questo progetto è costruito attorno a un modulo NodeMCU (disponibile nell'Elektor Store). Il modulo è dotato di un microcontrollore Espressif ESP8266, grande all'incirca quanto un francobollo e dotato di un'interfaccia WLAN. Nonostante le sue piccole dimensioni, racchiude molta potenza di elaborazione. Le caratteristiche principali del microcontrollore ESP8266 sono riassunte inTabella 1.

La scheda NodeMCU genera la tensione di alimentazione per l'ESP8266 e si occupa dell'interfaccia di programmazione per il microcontrollore.Figura 1mostra una panoramica della piedinatura della scheda NodeMCU utilizzata nel nostro circuito Modbus.

L'IDE Arduino è molto adatto alla programmazione della scheda NodeMCU. Puoi scaricare gratuitamente la versione giusta dell'IDE Arduino per il sistema operativo del tuo computer dal sito Arduino e installarla secondo le istruzioni sul sito. Quando si esegue l'IDE per la prima volta, viene visualizzata una finestra simile a quella mostrata nella Figura 2 . Il riquadro del codice programma contiene due funzioni predefinite. In alto c'è la funzione setup(), che viene eseguita una sola volta all'avvio del programma e gestisce cose come l'inizializzazione delle interfacce del microcontrollore, e in basso c'è la funzione loop(), che normalmente contiene il codice sorgente del tuo programma .

La funzione loop() viene eseguita dopo il completamento della funzione setup(). Quando il programma raggiunge la fine della funzione loop(), ricomincia dall'inizio. L'ESP8266 gestisce l'interfaccia WLAN tra la fine e il riavvio della funzione loop(). Ciò significa che devi evitare di creare cicli infiniti nella funzione loop(), altrimenti l'ESP8266 si bloccherà inevitabilmente. Invece, il codice nella funzione loop() deve essere progettato in modo che possa essere eseguito in modo ciclico. Un gran numero di arresti anomali apparentemente misteriosi dell'ESP8266 sono causati dal fatto che il processore non ha abbastanza tempo CPU per gestire il Interfaccia Wi-Fi. Se esiste la possibilità che il codice del programma venga eseguito per un periodo prolungato, ad esempio in cicli di grandi dimensioni, è possibile utilizzare la funzione yield() o la funzione delay() per dare all'ESP8266 tempo sufficiente per la gestione della WLAN. Prima di collegare il Modulo NodeMCU nella scheda Modbus, devi collegarlo a una porta USB del tuo computer, ma prima devi fare alcune cose per avere tutto pronto. L'ESP8266 non è supportato di serie dall'IDE di Arduino, quindi è necessario prima aggiornare l'IDE. Per fare ciò, seleziona File -> Preferenze e inserisci il seguente URL nella casella URL aggiuntivi di Gestione schede: http://arduino.esp8266.com/stable/package_esp8266com_index.json Fai clic su OK, quindi seleziona Strumenti -> Scheda ... -> per aprire la finestra Gestione schede, dove dovresti cercare ESP8266 e quindi installare le schede Community ESP8266. Dopo averle installate, in Strumenti -> Scheda > vedrai la scheda NodeMCU 1.0 (modulo ESP-E12) e in Strumenti - > Porta > vedrai la porta a cui è collegata la scheda NodeMCU (/dev/ttyUSBx in Linux o COMx in Windows). Ora puoi iniziare con il primo semplice programma di test sul modulo NodeMCU. A tale scopo aprire il programma di esempio 'Blink' in File -> Esempi -> ESP8266 -> Blink. Il programma mostrato in

>1);/p>

CONDIVIDERE