Utilità per test o risoluzione per dispositivi e reti Modbus

Modbus è un protocollo di comunicazione comune usato in sistemi di automazione, case intelligenti, reti automatizzate per piccoli ambienti (magazzini, serre, ecc). Il protocollo serve a connettere attrezzature di vari tipi anche ad un computer casalingo. Lo sviluppo di tali progetti come Arduino e Raspberry Pi ha accresciuto l’interesse, in maniera significativa, verso i compiti correlati alla robotica ed all’automazione. Tutto questo assicura la crescita della popolarità di Modbus tra gli utenti amatoriali e professionali.

In questo articolo, copriremo i fattori chiave delle soluzioni software ed hardware per il collaudo e la correzione dei dispositivi e reti basati sul protocollo Modbus.

Se senti una familiarità con l’architettura del protocollo, puoi saltare direttamente alla descrizione del programma Modbus. Altrimenti, qui sotto troverai una breve introduzione a Modbus.

Elenco dei contenuti:

  1. Info sul protocollo Modbus
  2. Sviluppo e collaudo dei dispositivi Modbus
  3. Risoluzione dei sistemi di automazione basati sui dispositivi Modbus
  4. Sfide sulla comunicazione Modbus

Info sul protocollo Modbus


Modbus è un protocollo comune, usato nei sistemi di automazione per livelli di campo medi e bassi. Il livello medio è il livello dei controllers - dispositivi che raccolgono dati e controllano il processo tecnologico. Il livello di campo è il livello di interazione tra i sensori e controllers con il server.

La struttura tipica di un sistema di automazione che usa Modbus come suo protocollo base è qui sotto mostrata.

Protocollo Modbus

L’ambiente standard per il protocollo Modbus è RS485/422/232. Modbus RTU o Modbus ASCII ci lavora sopra. Nelle reti TCP/IP, comunque, il livello più alto del protocollo è quello di trasporto TCP e questa variante viene chiamata TCP Modbus. In questo articolo, parleremo della modalità di trasmissione RTU di Modbus.

Il protocollo Modbus viene implementato usando una relazione master-slave. Il che significa che viene sempre iniziato da un dispositivo, il master, che invia una richiesta ad uno slave (server) per aspettarne poi una risposta. Esiste sempre un master sulla rete, con da 1 a 247 slaves.

Il master interagisce con i dispositivi slave nel formato di richiesta-risposta. La richiesta contiene una sequenza di bytes, chiamata un frame (fotogramma), nel quale il tempo tra i bytes viene standardizzato in base al tasso di trasferimento dei dati e non è più lungo dell’intervallo, durante il quale è possibile trasmettere 1,5 byte di dati. In modalità RTU, i messaggi iniziano con un intervallo silenzioso, di almeno 3,5 volte i caratteri.

Una richiesta di messaggio viene inviata nel seguente formato:

Protocollo Modbus

ID - indirizzo del dispositivo (1 byte),
FN - funzione Modbus (1 byte),
[args] - argomenti di funzione (N bytes, dipendenti dalla funzione),
CRC - un checksum CRC-16 (2 bytes).

Il formato di un messaggio di risposta:

Protocollo Modbus

Da come puoi vedere, i fotogrammi di richiesta e risposta hanno costruzioni simili, tranne per il campo di dati, il quale fornisce contenuti differenti, in base alla funzione eseguita.

Nel caso in cui la funzione richiesta non sia supportata dal dispositivo slave o nel caso in cui gli argomenti nel campo [args] della richiesta non siano corretti per questo server, nel campo FN della risposta il bit alto sarà impostato su 1 e il campo dati conterrà informazioni aggiuntive sull'errore verificato.

Inoltre, dispositivi slave particolari possono avere registri specifici con informazioni aggiuntive.

I tipi di registro, referenziati nei dispositivi Modbus, includono:

Campo Accesso Dimensione Descrizione
Ingressi discreti
solo lettura
1 bit
usati come ingressi
Bobine d’uscita
lettura/scrittura
1 bit
usati per il controllo discreto
Registri di ingresso
solo lettura
16 bit
usati per l’ingresso
Registri detentivi
lettura/scrittura
16 bit
usato per una varietà di cose inclusi gli ingressi ed uscite, dati per la configurazione, ecc.

La completa descrizione del protocollo RTU di Modbus viene fornito nella sua specifica funzionale.

Quando si imposta una rete Modbus, un punto da considerare è che il protocollo abilita la trasmissione dei dati da più dispositivi, che vengono ricevuti da un singolo server o controller, avente un driver Modbus installato. Un’applicazione seriale può controllare la porta di comunicazione del server (es. COM1) dal momento che riceve i dati Modbus da molteplici sensori.

Sfortunatamente, esiste un limite sull’apertura della porta di ricezione a più applicazioni in contemporanea, la quale potrebbe porre una sfida significativa.

Esiste una soluzione al dilemma. Virtual COM Port Driver PRO di Eltima consente la creazione delle porte virtuali RS485 e la suddivisione dei dati Modbus di modo che più porte possono ricevere i dati allo stesso momento.

Prova Virtual Serial Port Driver Pro adesso
14 giorni di prova gratuita

Puoi ora duplicare il flusso di dati provenienti da una porta com fisica verso più porte virtuali. Per connettere diverse applicazioni alle copie virtuali della tua porta COM1, tutte le applicazioni possono raggiungere un accesso condiviso alla tua porta fisica.

Sviluppo e collaudo dei dispositivi Modbus


Quando si sviluppa e si correggono i dispositivi RTU di Modbus, gli esperti usano degli strumenti meccanici e programmatici specializzati. Per gli strumenti, la soluzione più semplice sarà il convertitore RS485/USB. Di tutti i dispositivi di questo tipo, probabilmente la soluzione più efficiente è la MOXA UPORT 1130/UPORT 1150. Il dispositivo è progettato per una facilità d’uso e richiede minime capacità di assemblaggio. Esistono anche soluzioni più complesse come Ethernet/RS-485 (per esempio, NPORT della MOXA).

In pratica, quando si tratta dello sviluppo dei dispositivi RTU di Modbus, la funzione slave viene implementata più spesso. I dispositivi slave includono svariati sensori, relé di controllo, moduli I/O, ecc. I dispositivi Master vengono creati meno spesso. Nelle reti di automazione, la funzione Master viene di solito eseguita sia da un controller, già implementato dallo stack Modbus, od un sistema server OPC/SCADA equipaggiato con il driver Modbus.

Non considereremo lo sviluppo dello stack Modbus in questo articolo. La sola cosa degna di menzionare è la libreria FreeMODBUS, sulla base della quale è facile costruire un dispositivo che supporti le funzioni slave di Modbus.

Programma efficiente per il collaudo Modbus


Il collaudo può essere eseguito su diversi livelli di sviluppo del dispositivo Modbus. Le soluzioni programmatiche e meccaniche per il collaudo Modbus divergono a dipesa del livello di sviluppo e dello scopo del collaudo.

Durante il processo di sviluppo, potrebbe sorgere una situazione in cui il dispositivo che riceve una richiesta a cui rispondere (indicabile sia dai LEDS di ricezione/trasmissione del pacchetto, se tali elementi sono forniti dalla progettazione, o indicabile dal rilevamento tramite l’uso di un debugger ed impostando un punto di interruzione) ma i dati non vengono mostrati su di un terminale o su di un altro programma specifico. In tal caso, avrai bisogno di un rilevatore dedicato per la porta seriale.

Serial Port Monitor è uno dei migliori programma di monitoraggio per Modbus ad oggi disponibile. Questa soluzione Modbus può leggere e registrare con facilità qualsiasi dati seriale passante sulle porte COM del sistema. La funzione avanzata dell’applicazione consente la cattura dei dati in tempo reale, in modo che uno sviluppatore possa risolvere tutti i problemi nella volta che vengono rilevati.

Serial Port Monitor è in grado di lavorare in modalità terminale, che emula il trasferimento dei dati, da una porta COM ad un dispositivo ad essa inserito. Tale opzione risulta specialmente conveniente per il collaudo di comunicazione Modbus, dal momento che consente di osservare la reazione di un dispositivo in particolare, ad un comando specifico e a dei dati specifici.

Collaudatore Modbus di Eltima Software

Serial Port Monitor logo

Serial Port Monitor

Annota ed analizza l'attività della porta seriale
4.8 Rango basato su 41+ utenti, Recensioni(75)
Scarica 14 dias do ensaio totalmente funcional
Serial Port Monitor

Il programma dedicato arriva d’aiuto quando si richiede non solo di controllare se un dispositivo funzioni o meno (cioè, rispondere alle richieste in modo corretto) ma anche misurare nel frattempo il fallimento.

La soluzione di collaudo Modbus consente l’annotazione del flusso di dati in ingresso ed uscita. In aggiunta, tutti i dati raccolti possono essere mostrati in vari modi visivi (tabella, linea, scarico, terminale), che ne rende semplice il confronto e l’analisi.

Risoluzione dei sistemi di automazione basati sui dispositivi Modbus


Esistono più varietà di specialisti che correggono i sistemi e dispositivi di automazione supportanti il protocollo Modbus, rispetto a quelli che li sviluppano. Pertanto, in base alle specifiche dei ruoli, i requisiti per il programma Modbus varieranno leggermente.

Se si necessita di connettere un controller ad un singolo dispositivo slave, puoi stabilire una comunicazione seriale usando un convertitore RS-485/USB, un PC ed un programma specializzato od un terminale. In questo caso, non si necessita di collaudare a lungo per poi analizzare numerosi documenti di registro. Pertanto, la logica dell'operazione ed il comparto di strumenti non differiranno da quelli usato nella fase di collaudo per lo sviluppo del dispositivo slave.

Nel caso si abbia già pronta una rete di dispositivi, i compiti seguenti potrebbero distinguersi:

  • controllo dell'operatività di tutti i dispositivi sulla rete (es. comunicazione con ogni dispositivo separato e verifica della correttezza della relativa risposta);

  • collaudo di carico (identificazione della capacità operativa massima del dispositivo). Si consiglia di eseguire diverse sessioni ed analizzare i dati raccolti per eventuali fallimenti, mancanze di risposte, danneggiamento dei dati, ecc.

Per raggiungere questi compiti, dovrai creare una lista di richieste col terminale od usare uno strumento specializzato come il Poll di Modbus, un simulatore master per Modbus, che consente il monitoraggio di diversi slaves Modbus e/o aree di dati nello stesso momento.

Sfide sulla comunicazione Modbus


Alcuni dei dispositivi Modbus possono avere delle impostazioni dell’interfaccia RS-485 particolari (il numero di bits dei dati, parità, il numero dei bits di arresto). I dispositivi con impostazioni diverse, non possono funzionare nella stessa rete con lo stesso master. Lo strumento più conveniente per il collaudo e la configurazione dei dispositivi è un programma terminale che supporto uno scambio veloce tra i parametri della porta preinstallata o che funzioni con diverse linee in simultanea.

Un’altra sfida è quella di fornire lo scambio dei dati con un dispositivo che funzioni su di un protocollo diverso dalle specifiche standard dell’ RTU di Modbus. Ad esempio, il protocollo slave può essere simile di logica al Modbus (struttura del pacchetto, timeouts, ecc.) ma che usa alcune funzioni oltre gli standard.

In questo caso, sarebbe una valida idea, usare il Poll di Modbus, che consente di formulare richieste arbitrarie oppure un terminale che supporti funzioni similari.

Lo standard del sistema SCADA non risulta efficiente per lavorare con tali dispositivi e la comunicazione con l’attrezzatura viene stabilita tramite un server OPC speciale.

Serial Port Monitor

Requisiti: Windows (32-bit e 64-bit): XP/2003/2008/Vista/7/8/10, Windows Server 2012, Windows Server 2012/2016/2019 , 8.15MB dimensione
Versione 8.0.388 (7 Luglio, 2020) Note di rilascio
Categoria: Serial Port Software