Strumenti efficienti per test e debug di dispositivi e reti basati su Modbus

Olga Weis

Modbus è un protocollo di comunicazione comunemente utilizzato in sistemi di automazione industriale, sistemi di casa intelligente, reti automatizzate di piccoli oggetti (magazzini, serre, ecc.). Il protocollo serve anche per collegare apparecchiature di vario tipo a un computer di casa. Lo sviluppo di progetti come Arduino e Raspberry Pi ha aumentato significativamente l'interesse per le attività legate alla robotica e all'automazione. Tutto ciò garantisce la crescita della popolarità di Modbus tra amatori e professionisti.

In questo articolo, tratteremo le funzionalità chiave del software e delle soluzioni hardware esistenti per testare e eseguire il debug di dispositivi e reti basate sul protocollo Modbus.

Se hai familiarità con l'architettura del protocollo, puoi saltare direttamente a descrizione del software Modbus. In caso contrario, di seguito troverete una breve introduzione a Modbus.

Contenuto


  1. Informazioni sul protocollo Modbus
  2. Sviluppo e test dei dispositivi Modbus
  3. Debugging di sistemi di automazione basati su dispositivi Modbus

Informazioni sul protocollo Modbus


Modbus è un protocollo comune utilizzato nei sistemi di automazione a livello medio e inferiore (campo). Il livello intermedio è il livello dei controller: dispositivi che raccolgono dati e controllano il processo tecnologico. Il livello di campo è il livello di interazione tra sensori e controllori o sensori e il server. Maggiori dettagli sui livelli nei sistemi di automazione possono essere trovati qui.

Di seguito viene mostrata la struttura tipica di un sistema di automazione che utilizza Modbus come protocollo di base.

Protocollo Modbus

L'ambiente' standard per il protocollo Modbus è RS-485/422/232. Modbus RTU o Modbus ASCII funzionano su di esso. In Reti TCP / IP, tuttavia, il protocollo di livello superiore è il protocollo di trasporto TCP e questa variante è denominata Modbus TCP. In questo articolo parleremo della modalità di trasmissione Modbus RTU.

Il protocollo Modbus è implementato utilizzando una relazione master-slave. Ciò significa che la comunicazione viene sempre avviata da un dispositivo, il master, che invia una richiesta a uno slave (server) e attende una risposta. C'è sempre un master sulla rete e da 1 a 247 slave. (Ulteriori informazioni sui dispositivi Modbus sono disponibili sul Sito ufficiale Modbus).

Il master interagisce con i dispositivi slave nel formato richiesta-risposta. La richiesta contiene una sequenza di byte, denominata frame, in cui il tempo tra byte è standardizzato a seconda della velocità di trasferimento dei dati e non è più l'intervallo durante il quale possono essere trasmessi 1,5 byte di dati. In modalità RTU, i messaggi iniziano con un intervallo di silenzio di almeno 3,5 caratteri.

Un messaggio di richiesta viene inviato nel seguente formato:

Un messaggio di richiesta

ID - indirizzo del dispositivo (1 byte),
FN - Funzione Modbus (1 byte),
[args] - argomenti della funzione (N byte, a seconda della funzione),
CRC - un checksum CRC-16 (2 byte).

Il formato di un messaggio di risposta:

Un messaggio di risposta

Come potete vedere, i frame di risposta e richiesta hanno costruzioni simili, ad eccezione del campo Dati, che fornisce contenuti diversi a seconda della funzione eseguita.

Nel caso in cui la funzione richiesta non sia supportata dal dispositivo slave o 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 sarà contenere ulteriori informazioni sull'errore si è verificato.

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

I tipi di registri a cui si fa riferimento nei dispositivi Modbus includono quanto segue:

Campo Accesso Dimensione Descrizione
Ingressi discreti
solo lettura
1 bit
usato come input
Uscite di bobine
lettura / scrittura
1 bit
usato per controllare discreti
Registri di ingresso
solo lettura
16 bit
usato per l'input
Registri
lettura / scrittura
16 bit
utilizzato per una varietà di cose inclusi input, output, dati di configurazione, ecc.

La descrizione completa del protocollo Modbus RTU è fornita nella sua specificazioni funzionali.

Quando si imposta una rete Modbus, un punto da considerare è che il protocollo consente la trasmissione di dati da più dispositivi che devono essere ricevuti da un singolo server o controller con installato un driver Modbus. Un'app seriale può controllare la porta di comunicazione di un server (ad esempio COM1) poiché riceve i dati Modbus da più sensori.

Sfortunatamente c'è una limitazione, poiché aprire la porta di ricezione in più applicazioni contemporaneamente può rappresentare una sfida significativa.

C'è una soluzione a questo dilemma. Virtual COM Port Driver PRO da Eltima consente la creazione di porte virtuali RS485 e la divisione dei dati Modbus in modo che più porte possano ricevere i dati contemporaneamente.

È ora possibile duplicare il flusso di dati in entrata in una porta fisica su più porte virtuali. Collegando diverse applicazioni a copie virtuali della tua porta COM1, tutte le app possono raggiungere l'accesso condiviso alla tua porta fisica.

Sviluppo e test dei dispositivi Modbus


Durante lo sviluppo e il debug di dispositivi Modbus RTU, gli esperti utilizzano strumenti software e hardware specializzati. Per quanto riguarda i dispositivi hardware, la soluzione più semplice sarà il convertitore RS-485 / USB. Di tutti i dispositivi di questo tipo, probabilmente la soluzione più efficiente è MOXA UPORT 1130 / UPORT 1150. Il dispositivo è progettato per essere facile da usare e richiede competenze minime per essere assemblato. Esistono anche soluzioni più complesse come Ethernet / RS-485 (ad esempio, NPORT di MOXA).

In pratica, quando si tratta dello sviluppo di dispositivi Modbus RTU, la funzione slave viene implementata più spesso. I dispositivi slave includono vari sensori, relè controllati, moduli I / O, ecc. I dispositivi master vengono creati meno spesso. Nelle reti di automazione, la funzione master viene solitamente eseguita da un controller, che ha già implementato uno stack Modbus, o un sistema OPC Server / SCADA dotato di un driver Modbus.

Non considereremo lo sviluppo di stack Modbus proprio in questo articolo. L'unica cosa che vale la pena menzionare è la libreria FreeMODBUS, sulla base della quale è abbastanza facile costruire un dispositivo che supporti le funzioni slave Modbus.

Software efficiente per il test Modbus


I test possono essere eseguiti su diversi livelli di sviluppo del dispositivo Modbus. Il Software di prova Modbus e le soluzioni hardware variano a seconda della fase di sviluppo e dello scopo del test.

Uno degli strumenti più utili utilizzati nelle fasi iniziali del test del dispositivo è il terminale Modbus. Questa soluzione consente di creare manualmente una richiesta, inviarla e analizzare la risposta.

Durante il processo di sviluppo, può sorgere una situazione quando un dispositivo riceve una richiesta e risponde (può essere indicata dai LED di ricezione / trasmissione pacchetto, se tali elementi sono forniti nel progetto o rilevati utilizzando un debugger e un'impostazione un punto di interruzione) ma i dati non vengono visualizzati nel terminale o in un altro programma specializzato. In questo caso, è necessario uno sniffer dedicato per la porta seriale.

Serial Port Monitor è uno dei migliori software di monitoraggio Modbus disponibili oggi. Questa soluzione Modbus può facilmente leggere e registrare qualsiasi dato seriale che passa attraverso le porte COM del sistema. Le funzionalità avanzate dell'app consentono di acquisire dati in tempo reale in modo che uno sviluppatore possa risolvere tutti i problemi una volta rilevati.

Serial Port Monitor è in grado di lavorare nella modalità terminale che emula il trasferimento dei dati da una porta COM monitorata a un dispositivo inserito in esso. Questa opzione è particolarmente utile per il test di comunicazione Modbus, poiché consente di osservare la reazione di un particolare dispositivo a un comando e dati specifici.

Serial Port Monitor

Serial Port Monitor è un software professionale per testare e eseguire il debug di dispositivi e reti basati su Modbus
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 software dedicato è utile quando è necessario non solo verificare se un dispositivo funziona (ovvero risponde correttamente alle richieste) ma anche misurare il tempo medio fino al guasto.

La soluzione di tester Modbus consente di registrare i flussi di dati in entrata e in uscita. Inoltre, tutti i dati raccolti possono essere visualizzati in diverse viste (tabella, linea, dump, terminale), il che rende semplice il confronto e l'analisi.

Debugging di sistemi di automazione basati su dispositivi Modbus


Ci sono molti più specialisti che eseguono il debug di sistemi e dispositivi di automazione che supportano il protocollo Modbus rispetto a quelli che sviluppano questi dispositivi. Quindi, in base alle specifiche delle attività, i requisiti per Software Modbus RTU sarà leggermente diverso

Se è necessario collegare un controller a un dispositivo slave singolo, è possibile stabilire una comunicazione seriale utilizzando il convertitore RS-485 / USB, un PC e un software o terminale specializzato. In questo caso, non sono necessari lunghi test, seguiti dall'analisi di numerosi file di registro. Quindi, la logica dell'operazione e il set di strumenti non differiranno da quelli utilizzati nella fase di test dello sviluppo dei dispositivi slave.

Nel caso in cui si disponga già di una rete di dispositivi pronta, è possibile distinguere le seguenti attività:

  • verifica dell'operabilità di tutti i dispositivi sulla rete (ovvero comunicazione con ciascun dispositivo separato e verifica della correttezza della sua risposta);
  • test di carico (identificazione della massima capacità operativa del dispositivo). Si raccomanda di fare diverse sessioni e analizzare i dati raccolti per guasti, mancate risposte, corruzione dei dati, ecc.

Per svolgere queste attività, è necessario un terminale con la possibilità di creare un elenco di richieste o uno strumento specializzato come Modbus Poll, un simulatore master Modbus che consente di monitorare più slave Modbus e / o aree dati contemporaneamente.

Sfide di comunicazione Modbus


Alcuni dispositivi Modbus possono avere particolari impostazioni dell'interfaccia RS-485 (il numero di bit di dati, la parità, il numero di bit di stop). I dispositivi con impostazioni diverse non possono funzionare nella stessa rete con lo stesso master. Lo strumento più conveniente per testare e configurare tali dispositivi è un programma terminale che supporta il passaggio rapido tra i parametri della porta preinstallata o funziona con più linee contemporaneamente.

Un'altra sfida consiste nel fornire lo scambio di dati con un dispositivo che funziona su un protocollo diverso dalle specifiche standard di Modbus RTU. Ad esempio, il protocollo dello slave può essere logicamente simile a Modbus (struttura del pacchetto, timeout, ecc.) Ma utilizzare alcune funzioni oltre lo standard.

In questo caso, è consigliabile utilizzare Modbus Poll, che consente di formulare richieste arbitrarie o un terminale che supporta funzionalità simili.

Il sistema SCADA standard non è efficiente per il funzionamento con tali dispositivi e la comunicazione con l'apparecchiatura è stabilita tramite uno speciale server OPC.

Serial Port Monitor

Requisiti: Windows XP/2003/2008/Vista/7/8/10/Server 2012 , 9.16MB dimensione
Versione 7.0.342 (14 Genn, 2018) Note di rilascio
Categoria: Serial Port Software