Salve a tutti,
recentemente ho realizzato un applicazione con scambio dati tra arduini via Modbus RS485 Half-duplex.
Per far questo ho impiegato un ic "MAX485" con "SoftwareSerial.h"
Prendendo spunto da un iniziale tutorial di cui al link sotto, ho tribulato giungendo alla conclusione che il master con libreria "doc walker" funzionava mentre con lo slave con libreria "yaacov" il dato veniva ricevuto dallo slave ma poi il master andava in timeout ad ogni poll come se non ricevesse risposta dallo slave.
(Il riscontro l'ho avuto nel momento in cui per lo slave ho utilizzato la libreria "smarmengol")
E'possibile che il problema fosse mio ma irrisolto.
Link tutorial Blink di un LED con Modbus Master su Arduino via RS485 - Video 316 - YouTube
In secondo luogo, cercando librerie alternative per entrambi master e slave, ho utilizzato la libreria "Smarmengol" riuscendo a stabilire connessione tra master e più slave con soddisfazione.
(l'applicazione funziona utilizzando indistintamente Arduino UNO R3, Arduino Nano Every, e Nano ATmega328P compatibile, a 19200)
Da quanto mi pare di capire però la libreria "Smarmengol" non permette l'eventuale impostazione diversa di bit di stop e parità e non ne sarebbe in previsione da tempo un aggiornamento.
Anche per il fatto che vorrei provare ad inserire dispositivi Modbus da commercio vorrei capire se altri hanno avuto gli stessi riscontri con le varie librerie da me provate e soprattutto se possono indicarne altre più complete (half-duplex con gestione segnale RE/DE del MAX485)
-
Prima realizzazione abbandonata:
Modbus master: utilizzo di libreria "doc walker" e risultato funzionante GitHub - 4-20ma/ModbusMaster: Enlighten your Arduino to be a Modbus master
Modbus un slave: utilizzo di libreria "yaacov" e risulato problematico GitHub - yaacov/ArduinoModbusSlave: Modbus slave library for Arduino -
Seconda realizzazione funzionante:
Modbus master: utilizzo di libreria "smarmengol" GitHub - smarmengol/Modbus-Master-Slave-for-Arduino: Modbus Master-Slave library for Arduino
Modbus multi slave: utilizzo di libreria "smarmengol"