Come possiamo aiutarti oggi?

Cos'è un Modbus e come funziona?

Questo documento descrive come funziona modbus e cosa è necessario fare per una corretta installazione.

Linea di prodotto:

Tutte le linee di prodotto

Ambiente:

Tutti i numeri di serie

Causa:

Installazione

Spiegazione:

Che cos'è Modbus?

Il Modbus è un protocollo di comunicazione seriale sviluppato da Modicon pubblicato da Modicon® nel 1979 per l'utilizzo con i suoi controllori logici programmabili (PLC). In termini semplici, è un metodo utilizzato per trasmettere informazioni su linee seriali tra dispositivi elettronici. Il dispositivo che richiede le informazioni è chiamato Modbus Client e i dispositivi che forniscono le informazioni sono Modbus Server. In una rete Modbus standard, sono presenti un client e fino a 247 server, ciascuno con un unico indirizzo server da 1 a 247. Il client può anche scrivere informazioni sui server.

La specifica Modbus ufficiale è disponibile all'indirizzo http://www.modbus.org/

A cosa serve?

Il Modbus è un protocollo aperto, il che significa che è gratuito per i produttori integrare le proprie apparecchiature senza dover pagare royalties. È diventato un protocollo di comunicazione standard nell'industria ed è ora il mezzo più comunemente disponibile per collegare dispositivi elettronici industriali. È ampiamente utilizzato da molti produttori in molti settori. Il Modbus viene in genere utilizzato per trasmettere i segnali dalla strumentazione e dai dispositivi di controllo a un controller principale o a un sistema di raccolta dati, ad esempio un sistema che misura la temperatura e l'umidità e comunica i risultati a un computer. Il Modbus viene spesso utilizzato per collegare un computer di supervisione con un'unità terminale remota (RTU) nei sistemi di controllo di supervisione e acquisizione dati (SCADA). Esistono versioni del protocollo Modbus per linee seriali (Modbus RTU e Modbus ASCII) e per Ethernet (Modbus TCP).

Come funziona?

Il Modbus viene trasmesso su linee seriali tra i dispositivi. La configurazione più semplice sarebbe un singolo cavo seriale che collega le porte seriali su due dispositivi, un client e un server.

...

I dati vengono inviati come serie di uno e zero chiamati bit. Ogni bit viene inviato come tensione. Gli zeri vengono inviati come tensioni positive e uno come negative. I bit vengono inviati molto rapidamente. Una velocità di trasmissione tipica è di 9600 baud (bit al secondo).

Cos'è l'esadecimale?

Durante la risoluzione dei problemi, può essere utile vedere i dati grezzi effettivi trasmessi. Le lunghe stringhe di uno e zero sono difficili da leggere; quindi, i bit sono combinati e mostrati in esadecimale. Ogni blocco di 4 bit è rappresentato da uno dei sedici caratteri da 0 a F.

...

Ogni blocco di 8 bit (detto byte) è rappresentato da una delle 256 coppie di caratteri da 00 a FF.

Come vengono archiviati i dati in Standard Modbus?

Le informazioni sono memorizzate nel dispositivo Server in quattro diverse tabelle. Due tabelle memorizzano valori discreti on/off (bobine) e due memorizzano valori numerici (registri). Le bobine e i registri hanno ciascuno una tabella di sola lettura e una tabella di lettura-scrittura. Ogni tabella ha 9999 valori. Ogni bobina o contatto è a 1 bit e ha un indirizzo dati compreso tra 0000 e 270E. Ogni registro è 1 parola = 16 bit = 2 byte e ha anche un indirizzo dati compreso tra 0000 e 270E.

...

I numeri di bobina/registro possono essere pensati come nomi di posizione poiché non compaiono nei messaggi effettivi. Gli indirizzi dati vengono utilizzati nei messaggi. Ad esempio, il primo Holding Register, numero 40001, ha l'indirizzo dati 0000. La differenza tra questi due valori è l'offset. Ogni tavolo ha un diverso offset. 1, 10001, 30001 e 40001.

Qual è l'ID del server?

A ciascun server in una rete viene assegnato un indirizzo di unità univoco da 1 a 247. Quando il client richiede dati, il primo byte che invia è l'indirizzo del server. In questo modo ogni server sa dopo il primo byte se ignorare o meno il messaggio.

Cos'è un codice funzione?

Il secondo byte inviato dal Client è il codice Funzione. Questo numero indica al server a quale tabella accedere e se leggere o scrivere sulla tabella.

...

Che cos'è un CRC?

CRC è l'acronimo di Cyclic Redundancy Check. Sono due byte aggiunti alla fine di ogni messaggio modbus per il rilevamento degli errori. Ogni byte nel messaggio viene utilizzato per calcolare il CRC. Il dispositivo ricevente calcola anche il CRC e lo confronta con il CRC del dispositivo mittente. Se anche un solo bit nel messaggio viene ricevuto in modo errato, i CRC saranno diversi e si verificherà un errore. .

Quali sono i formati dei comandi e delle risposte Modbus?

...

Cosa sono i tipi di dati?

L'esempio per FC03 mostra che il registro 40108 contiene AE41 che converte nei 16 bit 1010 1110 0100 0001 Ottimo! Ma cosa significa? Beh, potrebbe significare alcune cose. Il registro 40108 potrebbe essere definito come uno qualsiasi di questi tipi di dati a 16 bit:

Un registro 40108 di numero intero senza segno a 16 bit (un numero intero compreso tra 0 e 65535) contiene AE41 = 44.609 (conversione da esadecimale a decimale)

Un numero intero con segno a 16 bit (un numero intero compreso tra -32768 e 32767) AE41 = -20.927 (conversione da esadecimale a decimale che va a capo, se è superiore a 32767, sottrai 65536)

Una stringa ASCII di due caratteri (2 lettere digitate) AE41 = ® A

Un valore on/off discreto (funziona allo stesso modo degli interi a 16 bit con un valore di 0 o 1. I dati esadecimali sarebbero 0000 o 0001) Il registro 40108 potrebbe anche essere combinato con

40109 per formare uno di questi tipi di dati a 32 bit:

Un numero intero senza segno a 32 bit (un numero compreso tra 0 e 4.294.967.295) 40108.40109 = AE41 5652 = 2.923.517.522

Un numero intero con segno a 32 bit (un numero compreso tra -2.147.483.648 e 2.147.483.647) AE41 5652 = -1.371.449.774

Un numero in virgola mobile IEEE a doppia precisione a 32 bit. Questa è una formula matematica che consente di rappresentare qualsiasi numero reale (un numero con punti decimali) da 32 bit con una precisione di circa sette cifre. AE41 5652 = -4.395978 E-11 Di seguito è riportato un foglio elettronico di calcolo float IEEE per input di 4 byte o 2 parole. Per scaricare una copia, fare clic con il pulsante destro del mouse e selezionare Salva oggetto con nome...

Una stringa ASCII di quattro caratteri (4 lettere digitate) AE41 5652 = ® A V R È possibile combinare più registri per formare stringhe ASCII più lunghe. Ciascun registro viene utilizzato per memorizzare due caratteri ASCII (due byte).

Cos'è l'ordinamento di byte e parole?

La specifica Modbus non definisce esattamente come i dati vengono memorizzati nei registri. Pertanto, alcuni produttori hanno implementato il modbus nelle proprie apparecchiature per memorizzare e trasmettere prima il byte più alto seguito da quello più basso. (AE prima del 41). In alternativa, altri memorizzano e trasmettono prima il byte inferiore (41 prima di AE). Allo stesso modo, quando i registri sono combinati per rappresentare tipi di dati a 32 bit, alcuni dispositivi memorizzano i 16 bit più alti (parola alta) nel primo registro e la parola bassa rimanente nel secondo (AE41 prima di 5652) mentre altri fanno il contrario (5652 prima AE41) Non importa in quale ordine vengono inviati i byte o le parole, purché il dispositivo ricevente sappia in che direzione aspettarselo. Ad esempio, se il numero 29.235.175.522 doveva essere inviato come numero intero senza segno a 32 bit, potrebbe essere organizzato in uno di questi quattro modi.

AE41 5652 byte alto prima parola alta prima

5652 AE41 byte alto prima parola bassa prima

41AE 5256 byte basso prima parola alta prima

5256 41AE primo byte basso prima parola bassa

Cos'è una mappa Modbus?

Una mappa Modbus è semplicemente un elenco per un singolo dispositivo server che definisce quali sono i dati (ad es. letture di pressione o temperatura)

- dove sono archiviati i dati (quali tabelle e indirizzi dati)

- come vengono archiviati i dati (tipi di dati, ordinamento di byte e parole)

Alcuni dispositivi sono costruiti con una mappa fissa definita dal produttore. Mentre altri dispositivi consentono all'operatore di configurare o programmare una mappa personalizzata per soddisfare le proprie esigenze.

Qual è la differenza tra Modbus ASCII e Modbus RTU?

Modbus RTU e Modbus ASCII comunicano lo stesso protocollo. L'unica differenza è che i byte trasmessi via cavo sono presentati come binari con RTU e come leggibili ASCII con Modbus RTU. importante da notare su RTU è che il messaggio RTU non ha un'indicazione di inizio di testo. La parte ricevente nelle comunicazioni utilizza un tempo di "silenzio" per determinare l'inizio di un nuovo messaggio. ASCII ha un token di inizio testo. I messaggi binari sono più brevi di ASCII e quindi teoricamente più veloci da trasmettere/ricevere. Potresti essere felice di vedere velocità di aggiornamento di circa 100 ms nel tuo HMI/SCADA e potresti scegliere una delle due comunicazioni.

Riepilogo:

- è possibile utilizzare RTU

- utilizzare ASCII nel caso in cui RTU dia problemi di timeout su WinNT o quando si utilizzano mezzi di comunicazione lenti come 300 bps o modem dialup La maggior parte dei server OPC per Modbus supporta comunicazioni ASCII e RTU.

Cosa sono gli indirizzi di registro estesi?

Poiché l'intervallo dei registri di mantenimento dell'uscita analogica va da 40001 a 49999, ciò implica che non possono esserci più di 9999 registri. Sebbene questo sia in genere sufficiente per la maggior parte delle applicazioni, ci sono casi in cui più registri sarebbero vantaggiosi. I registri da 40001 a 49999 corrispondono agli indirizzi dati da 0000 a 270E. Se utilizziamo gli indirizzi dati rimanenti da 270F a FFFF, possono essere disponibili oltre sei volte più registri, 65536 in totale. Ciò corrisponderebbe ai numeri di registro da 40001 a 105536. Molti driver software Modbus (per PC client) sono stati scritti con i limiti da 40001 a 49999 e non possono accedere ai registri estesi nei dispositivi server. E molti dispositivi server non supportano le mappe che utilizzano i registri estesi. Ma d'altra parte, alcuni dispositivi server supportano questi registri e alcuni software client possono accedervi, soprattutto se viene scritto software personalizzato.

Come funziona l'indirizzamento del server a 2 byte?

Poiché un singolo byte viene normalmente utilizzato per definire l'indirizzo del server e ciascun server su una rete richiede un indirizzo univoco, il numero di server su una rete è limitato a 256. Il limite definito nella specifica Modbus è ancora inferiore a 247. Per ottenere oltre questo limite è possibile modificare il protocollo per utilizzare due byte per l'indirizzo. Il client e i server sarebbero tutti tenuti a supportare questa modifica. L'indirizzamento a due byte estende il limite del numero di server in una rete a 65535. Per impostazione predefinita, il software Simply Modbus utilizza l'indirizzamento a 1 byte. Quando viene immesso un indirizzo maggiore di 255, il software passa automaticamente all'indirizzamento a 2 byte e rimane in questa modalità per tutti gli indirizzi finché l'indirizzamento a 2 byte non viene disattivato manualmente.

Come puoi inviare eventi e dati storici?

Enron Modbus include comandi per lo spostamento di eventi e dati storici.

Cos'è l'Enron Modbus?

Enron Modbus è una modifica del protocollo di comunicazione standard Modicon modbus sviluppato da Enron Corporation.

Vedere Enron Modbus per i dettagli.

Schneider Electric Italy

Approfondisci
Range di Prodotto:
Approfondisci
Range di Prodotto:
  • Documentazione prodotti
  • Software scaricabili
  • Selettore prodotto
  • Sostituzione del prodotto
  • Supporto Guidato e Contact Center
  • Trova i nostri uffici
  • Ottieni un preventivo
  • Dove acquistare
  • Comunità di Schneider Electric
  • Carriere
  • Lavora con noi
  • Profilo aziendale
  • Segnala una cattiva condotta
  • Accessibilità
  • Newsroom
  • Investitori
  • EcoStruxure
  • Blog
  • Informativa privacy
  • Informativa sui cookie
  • Note legali
  • Change your cookie settings