Modbus RTU, indirizzamento e impostazioni di comunicazione
Guida tradotta e selezionata alla messa in servizio dei due moduli. Le tabelle complete dei registri specifici dei dispositivi sono collegate di seguito.
Protocollo e impostazioni predefinite
Modbus RTU utilizza RS-485. Le operazioni standard comprendono la lettura di coil (0x01), ingressi discreti (0x02), registri holding (0x03) e registri di ingresso (0x04), e la scrittura di una singola coil (0x05), un singolo registro holding (0x06), più coil (0x0F) o più registri holding (0x10).
Le impostazioni seriali di fabbrica sono 9600 bit/s, 8 bit di dati, nessuna parità e 2 bit di stop. Il firmware attuale tollera una mancata corrispondenza dei bit di stop, ma è comunque opportuno utilizzare impostazioni identiche. Utilizzare un indirizzo univoco del dispositivo da 1 a 247; l’indirizzo di fabbrica è stampato sull’involucro.
Rilevamento e modifica degli indirizzi
Utilizzare la scansione del bus del controllore per rilevare i dispositivi e risolvere i conflitti di indirizzo. Per l’accesso diretto da riga di comando, arrestare gli altri software che utilizzano la porta seriale e riavviarli al termine.
systemctl stop wb-mqtt-serial modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a1 -t0x06 -r128 12 systemctl start wb-mqtt-serial
Questo esempio modifica l’indirizzo da 1 a 12 scrivendo nel registro holding 128. Sostituire porta, indirizzo e parametri seriali con quelli del dispositivo effettivo.
Se l’indirizzo è sconosciuto, una scrittura broadcast usando l’indirizzo 0 può assegnare un nuovo indirizzo, ma collegare solo il dispositivo interessato: ogni dispositivo che riceve il broadcast può applicare la modifica. È previsto un timeout perché le scritture broadcast non ricevono risposta. Preferire il rilevamento quando possibile.
Velocità in baud e parità
Il registro holding 110 memorizza la velocità in baud divisa per 100. Per 115200 bit/s, scrivere 1152 usando le vecchie impostazioni di comunicazione, quindi impostare il master sulla nuova velocità. Il registro 111 imposta la parità (0 nessuna, 1 dispari, 2 pari); il registro 112 seleziona 1 o 2 bit di stop.
modbus_client --debug -mrtu -b9600 -pnone -s2 /dev/ttyRS485-1 -a12 -t0x06 -r110 1152
Le velocità elevate richiedono un cablaggio corretto del bus. Tutti i dispositivi su una porta condivisa devono utilizzare impostazioni compatibili.
Fast Modbus
Fast Modbus aggiunge il rilevamento rapido dei dispositivi e l’interrogazione degli eventi. Il master abilita esplicitamente l’estensione; i master Modbus convenzionali rimangono compatibili. Non tutti i registri generano eventi: quelli che li supportano sono contrassegnati da ⚡ nelle mappe dei registri. La trasmissione degli eventi riduce la latenza quando molti dispositivi condividono il bus.