Software Modbus per test e debug

Modbus è un protocollo di comunicazione comunemente usato 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 notevolmente aumentato l'interesse per le attività legate alla robotica e all'automazione. Tutto ciò garantisce la crescita della popolarità Modbus tra dilettanti e professionisti.

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

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

Tabella dei contenuti:

  1. Informazioni sul protocollo Modbus
  2. Sviluppo e test di dispositivi Modbus
  3. Debug di sistemi di automazione basati su dispositivi Modbus
  4. Sfide di comunicazione Modbus

Informazioni sul protocollo Modbus


Modbus è un protocollo comune utilizzato nei sistemi di automazione a livello medio e inferiore (di 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 controller o sensori e il server.

La struttura tipica di un sistema di automazione che utilizza Modbus come protocollo di base è mostrata di seguito.

Protocollo Modbus

L '"ambiente" standard per il protocollo Modbus è RS485/422/232. Modbus RTU o Modbus ASCII lavoraci sopra. Nelle 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 usando 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.

Il master interagisce con i dispositivi slave nel formato richiesta-risposta. La richiesta contiene una sequenza di byte, chiamata frame, in cui il tempo tra i byte è standardizzato in base alla velocità di trasferimento dei dati e non è più lungo l'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.

Un messaggio di richiesta viene inviato nel seguente formato:

Protocollo Modbus

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:

Protocollo Modbus

Come puoi vedere, i frame di risposta e di 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à contiene ulteriori informazioni sull'errore verificatosi.

Inoltre, determinati 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 Taglia Descrizione
Ingressi discreti
solo lettura
1 bit
usato come input
Uscite bobine
lettura/scrittura
1 bit
usato per controllare discreti
Registri di input
solo lettura
16 bit
utilizzato per l'input
Tenendo registri
lettura / scrittura
16 bit
utilizzato per una varietà di cose tra cui input, output, dati di configurazione, ecc.

La descrizione completa del protocollo Modbus RTU è fornita nelle specifiche funzionali.

Quando si configura 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 su cui è installato un driver Modbus. Un'app seriale può controllare la porta di comunicazione di un server (es. COM1) in quanto riceve i dati Modbus da più sensori.

Sfortunatamente, esiste una limitazione, poiché l'apertura della porta di ricezione in più applicazioni contemporaneamente può rappresentare una sfida significativa.

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

Prova subito Virtual Serial Port Driver Pro
Prova gratuita di 14 giorni

Ora puoi duplicare il flusso di dati che entra in una porta fisica su più porte virtuali. Collegando diverse applicazioni a copie virtuali della porta COM1, tutte le app possono ottenere l'accesso condiviso alla porta fisica.

Sviluppo e test di dispositivi Modbus


Durante lo sviluppo e il debug dei dispositivi Modbus RTU, gli esperti utilizzano software e strumenti hardware specializzati. Per quanto riguarda i dispositivi hardware, la soluzione più semplice sarà il convertitore RS485 / 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 generalmente eseguita da un controller, che ha già implementato uno stack Modbus, o da un server OPC/sistema SCADA dotato di un driver Modbus.

Non prenderemo in considerazione lo sviluppo dello stack Modbus proprio in questo articolo. L'unica cosa degna di nota è la libreria FreeMODBUS, sulla base della quale è abbastanza facile costruire un dispositivo che supporti le funzioni slave Modbus.

Software efficiente per i test Modbus


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

Durante il processo di sviluppo, può verificarsi una situazione in cui un dispositivo riceve una richiesta e risponde ad essa (ciò può essere indicato dai LED di ricezione / trasmissione dei pacchetti, se tali elementi sono forniti nella progettazione 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, sarà necessario uno sniffer di porta seriale dedicato.

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. La funzionalità avanzata dell'app consente di acquisire i dati in tempo reale in modo che uno sviluppatore possa risolvere tutti i problemi una volta rilevati.

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

Modbus Tester 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 software dedicato è utile quando è necessario non solo verificare se un dispositivo funziona (ovvero rispondere correttamente alle richieste), ma anche misurare il tempo medio di errore.

La soluzione 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 semplifica il confronto e l'analisi.

Debug di sistemi di automazione basati su dispositivi Modbus


Esistono 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. Pertanto, in base alle specifiche delle attività, i requisiti per il software Modbus saranno leggermente diversi.

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

Nel caso in cui sia già disponibile una rete di dispositivi, è possibile distinguere le seguenti attività:

  • verifica l'operatività 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 consiglia di effettuare diverse sessioni e analizzare i dati raccolti per errori, mancate risposte, corruzione dei dati, ecc.

Per eseguire 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 consenta il monitoraggio di 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 di porta preinstallati o funziona contemporaneamente con più linee.

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 utilizza alcune funzioni oltre lo standard.

In questo caso, sarà una buona idea utilizzare Modbus Poll, che consente di formulare richieste arbitrarie, o un terminale che supporti funzionalità simili.

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

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 , 9.16MB dimensione
Versione 7.0.342 (13 Genn, 2018) Note di rilascio
Categoria: Communication Application