Esercitazione ASCII
avanzata Modbus


Contenuto

  1. Cos'è il protocollo Modbus ASCII?
  2. Come testare la comunicazione ASCII Modbus?
  3. Qual è la differenza tra Modbus ASCII e RTU?
  4. Modbus ASCII vs TCP
  5. Come si converte Modbus ASCII nel protocollo Modbus RTU?

Cos'è il protocollo Modbus ASCII?


Modbus è un protocollo di comunicazione seriale sviluppato dalla Modicon Corporation nel 1979. Originariamente era progettato per essere utilizzato con i controllori programmabili logici (PLC) dell'azienda. Modbus è un protocollo aperto che supporta dispositivi seriali che utilizzano i protocolli RS232/RS485/RS422. La sua semplicità e il fatto che i produttori possano incorporarlo gratuitamente nei loro prodotti ha contribuito a renderlo il metodo più popolare per il collegamento di dispositivi elettronici industriali.

Esistono due principali stili di trasmissione che vengono utilizzati quando si utilizza il protocollo Modbus. Loro sono Modbus RTU e Modbus ASCII. Questo articolo è pensato per essere un tutorial Modbus ASCII avanzato. Inizieremo con una panoramica di Modbus pertinente alle implementazioni ASCII e RTU del protocollo.

Modbus risolve il problema dell'invio di informazioni tra dispositivi elettronici su linee seriali. Il protocollo è implementato in un'architettura che segue il modello master/slave. Il master Modbus è responsabile della richiesta di informazioni dagli altri dispositivi. Esiste un master Modbus in una rete Modbus standard.

Modbus modello master/slave

Il master richiede informazioni dai dispositivi slave, che possono essere numerati fino a 247. Ogni dispositivo slave è identificato da un indirizzo slave compreso tra 1 e 247. Il processo mediante il quale il master interroga lo slave e riceve le informazioni restituite dallo slave è cosa si intende per Comunicazione Modbus. Oltre a richiedere informazioni dallo slave, il dispositivo master può anche scrivere sui registri interni del dispositivo slave.

I dati seriali vengono scambiati tra dispositivi in flussi di bit in cui ogni bit è una tensione. I dati binari vengono scambiati con un 1 che viene indicato con una tensione negativa e uno zero è rappresentato da una tensione positiva.

Il protocollo Modbus definisce i codici funzione e lo schema di codifica per il trasferimento dei dati come singoli punti (1 bit, bobine) o come registri dati a 16 bit. I pacchetti di dati sono incapsulati in base al metodo di trasmissione in uso. Il protocollo Modbus utilizza quattro tabelle distinte per memorizzare i dati nei dispositivi slave. Ci sono due bobine che memorizzano valori discreti on e off e due registri che memorizzano valori numerici. Nel caso di Modbus ASCII, i messaggi vengono passati utilizzando il set di caratteri ASCII, rendendoli più facilmente leggibili dagli occhi umani.

Come testare la comunicazione
ASCII Modbus?


Se si lavora con dispositivi seriali e con il protocollo Modbus, è probabile che a un certo punto sia necessario eseguire il debug o il monitoraggio della trasmissione dei dati seriali. Modbus Analyzer (Serial Port Monitor) è un'applicazione software dedicata sviluppata da Eltima Software che può essere utilizzata per analizzare e diagnosticare la trasmissione di dati che viaggiano attraverso le interfacce seriali del sistema.

Analizzatore di protocollo Modbus

Modbus Analyzer è un'utilità di sistema professionale e potente per visualizzare, registrare e analizzare la comunicazione 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

Per apprezzare al meglio come funziona uno strumento di test ASCII Modbus Analizzatore di protocollo Modbus ti può aiutare, diamo un'occhiata ai dati ASCII di Modbus e al formato dei messaggi.

Formato dati ASCII Modbus


Modbus ASCII utilizza il set di caratteri ASCII per rappresentare caratteri esadecimali contenenti ciascuno 4 bit di dati. Ci sono 10 bit in ogni byte in modalità ASCII Modbus. Sono costituiti da:

  • 1 bit di start
  • 7 bit di dati con il bit meno significativo inviato per primi
  • 1 bit per il completamento della parità
  • 1 bit di stop

Formato del messaggio ASCII Modbus


Il formato dei messaggi ASCII Modbus è costituito da un carattere iniziale che è due punti ":" e la fine del messaggio è definita da un ritorno a capo e un avanzamento riga. Ciò consente allo spazio tra i messaggi di essere variabile e rende Modbus ASCII adatto alla trasmissione attraverso determinati modem.

Il software Modbus Sniffer può essere estremamente utile per il debug, il monitoraggio e la diagnosi dei problemi in una rete Modbus. Può essere utilizzato sia per le implementazioni Modbus RTU che ASCII.

L'utilizzo di questo strumento ti consente di:

  • Analizzare l'attività della porta seriale: è possibile aprire qualsiasi porta seriale del sistema anche se già utilizzata da un'altra applicazione. Utilizzare la raccolta di dati in tempo reale per diagnosticare rapidamente i problemi di tutte le attività della porta seriale.
  • Monitora più porte seriali contemporaneamente: un file di registro centrale conterrà tutti i dati monitorati in base al principio "first-in-first-out" per un'analisi più semplice.
  • Visualizza i tuoi dati in quattro diversi formati: utilizza queste diverse visualizzazioni singolarmente o in combinazioni per ottenere maggiori informazioni sui tuoi dati. Tabella, linea, dump e modalità terminale consentono di visualizzare i dati nel modo più adatto alle proprie esigenze.
  • Emulazione della trasmissione di dati - È possibile emulare la trasmissione di dati su dispositivi seriali in vari formati come stringa, binario, decimale e esadecimale.
  • Esportare i dati monitorati - È possibile esportare i dati in file in formato HTML, testo ASCII, testo UNICODE o formato CSV Exquisite. Nuovi dati possono essere aggiunti ai file salvati in precedenza.

Tutto sommato, Modbus Protocol Analyzer è uno strumento essenziale per chi lavora con i dispositivi seriali e il protocollo Modbus.

Qual è la differenza tra Modbus ASCII e RTU?


Sia Modbus ASCII che RTU sono stati introdotti come parte della specifica del protocollo Modbus originale. Le due varianti usano la stessa architettura master/slave e sono molto simili. Sono entrambi progettati per funzionare con dispositivi seriali, ma non sono compatibili tra loro a causa delle differenze di cui discuteremo di seguito.

Il principale fattore di differenziazione è questo Modbus RTU utilizza la codifica binaria in cui il Modbus ASCII, opportunamente denominato, utilizza il set di caratteri ASCII. Modbus RTU esegue il controllo degli errori utilizzando il rigoroso metodo CRC mentre Modbus ASCII utilizza il metodo di controllo degli errori LRC meno efficace. Anche il formato dei dati è leggermente diverso in quanto la variazione RTU utilizza un bit di avvio, 8 bit di dati e un bit di stop rispetto al formato di dati ASCII che abbiamo visto in precedenza.

La combinazione di codifica binaria e controllo degli errori CRC rende Modbus RTU adatto alle applicazioni industriali in quanto si presta a una trasmissione più efficiente rispetto all'alternativa dei caratteri ASCII. Quando si sceglie tra Modbus RTU vs ASCII, RTU è la prima scelta se le prestazioni sono una considerazione.

Modbus ASCII vs TCP


C'è un altro sapore di Modbus da considerare e che è Modbus TCP. Questa è semplicemente un'implementazione di Modbus che funziona su una rete TCP/IP. La principale differenza tra Modbus ASCII e Modbus TCP è che il controllo degli errori LRC richiesto da Modbus ASCII viene eseguito dal livello IP.

Come si converte Modbus ASCII nel protocollo Modbus RTU?


Come accennato in precedenza, i protocolli Modbus ASCII e Modbus RTU non sono compatibili tra loro. I dispositivi che utilizzano i due protocolli non possono comunicare direttamente tra loro. Ma ci sono modi per far parlare i dispositivi l'uno con l'altro.

Protocollo Modbus RTU

Per fare ciò è necessario utilizzare una soluzione hardware denominata convertitore Modbus ASCII in RTU. Questo tipo di dispositivo è fondamentalmente un traduttore che legge i dati da un dispositivo e quindi lo memorizza internamente in un altro protocollo per l'utilizzo da parte del secondo dispositivo. In questo modo i dispositivi che utilizzano qualsiasi variazione Modbus possono comunicare tra loro.

Serial Port Monitor

Requisiti: Windows (32-bit e 64-bit): XP/2003/2008/Vista/7/8/10, Windows Server 2012, Windows Server 2016 , 9.16MB dimensione
Versione 7.0.342 (13 Genn, 2018) Note di rilascio
Categoria: Communication Application