Calcolatore dei tempi di polling Modbus RTU

Calcola il tempo di un carattere Modbus RTU, gli intervalli di 1,5 e 3,5 caratteri e il tempo necessario per interrogare ogni dispositivo su una linea seriale.

Modbus e collegamenti seriali Aggiornato Gratuito, senza registrazione

Valori di esempio
Parametri seriali
Parità
Bit di stop
Polling

Richieste comuni

Tempo impiegato da ogni dispositivo per iniziare a rispondere

ms

Indirizzo e CRC inclusi

bytes

Indirizzo e CRC inclusi

bytes

Tempo per interrogare tutti i dispositivi una volta

468,2ms

Una richiesta e una risposta
46,82 ms
Tempo di un carattere
1,146 ms
Intervallo tra i frame, t3.5
4,01 ms
Intervallo massimo nel frame, t1.5
1,719 ms
Cicli completi di polling al minuto
128,1 /min
Richiesta 9,167 msAttesa del dispositivo 5 msRisposta 28,65 msIntervallo, t3.5 4,01 ms
Come viene calcolato
  1. tcarattere = bit ÷ baud=11 ÷ 9600 × 1000=1,146 ms
  2. t3.5 = 3,5 × tcarattere=3,5 × 1,146=4,01 ms
  3. Scambio = (richiesta + risposta) × tcarattere + attesa + t3.5=(8 + 25) × 1,146 + 5 + 4,01=46,82 ms
  4. Ciclo = dispositivi × scambio=10 × 46,82=468,2 ms

Choose the gateway connection for this Modbus line.

Configura un sistema

Interrogare 10 dispositivi a 9600 bit/s richiede 468,2 ms per ciclo, con 46,82 ms per ciascuna richiesta e risposta, pari a 128,1 cicli completi al minuto.

Suggerimento: L'elaborazione nel dispositivo può richiedere più tempo della trasmissione dei byte. Misura il ritardo della risposta anziché ipotizzarlo.

Calcolare la durata di un ciclo di polling Modbus RTU

Una linea Modbus RTU trasporta uno scambio alla volta: il master invia una richiesta, il dispositivo la elabora e risponde, poi la linea resta silenziosa per almeno 3,5 tempi di carattere prima del frame successivo. Sommando questi tempi per tutti i dispositivi si ottiene la durata di un giro completo di polling. A 9.600 bit/s, dieci dispositivi che restituiscono ciascuno dieci registri impiegano circa mezzo secondo.

Tempo di un carattere

tchar = (1 + 8 + parità + stop) ÷ velocità

Ogni byte viaggia su 11 bit: uno di start, otto di dati, uno di parità e uno di stop; oppure due bit di stop senza parità. A 9.600 bit/s sono 1,146 ms per byte.

Intervalli tra i frame

t3.5 = 3,5 × tchar; valore raccomandato di 1,75 ms oltre 19.200 bit/s

Un silenzio di 3,5 tempi di carattere separa i frame; un'interruzione superiore a 1,5 tempi di carattere all'interno di un frame lo rende non valido. Oltre 19.200 bit/s, la guida per la linea seriale raccomanda valori fissi di 1,75 ms e 0,75 ms.

Uno scambio

scambio = (richiesta + risposta) × tchar + ritardo + t3.5

La lunghezza di richiesta e risposta comprende indirizzo e CRC: 8 byte per chiedere i registri, poi 5 più 2 byte per ogni registro nella risposta. Il ritardo del dispositivo è il tempo necessario per iniziare a rispondere; in questa stima non può essere inferiore a t3.5.

L'intera linea

ciclo = dispositivi × scambio

Il polling è sequenziale, quindi ogni dispositivo aggiunto allunga il ciclo. Nuovi tentativi e timeout lo allungano ulteriormente.

Esempi: Tempi di Modbus RTU

Dieci contatori a 9.600 bit/s

Leggere dieci registri da ciascuno di dieci contatori, con 5 ms per iniziare a rispondere, richiede 46,82 ms per scambio e 468,2 ms per ciclo. Ogni contatore può essere letto circa due volte al secondo.

Tempo per interrogare tutti i dispositivi una volta 468,2 ms Apri nella calcolatrice

Venti dispositivi con letture più lunghe a 19.200 bit/s

Leggendo cinquanta registri da ciascuno di venti dispositivi, ogni risposta contiene 105 byte e il ciclo dura 1.435 ms anche con velocità doppia. Leggere pochi blocchi contigui lunghi è di norma più rapido che inviare molte richieste brevi.

Tempo per interrogare tutti i dispositivi una volta 1435 ms Apri nella calcolatrice

Un dispositivo lento su una linea occupata

Trenta dispositivi che impiegano ciascuno 20 ms per rispondere e restituiscono cinquanta registri: 153,5 ms per scambio e 4.605 ms per ciclo. A questa scala, dividere i dispositivi fra due linee dimezza la durata del giro.

Tempo per interrogare tutti i dispositivi una volta 4605 ms Apri nella calcolatrice

Tempo dei caratteri e intervalli Modbus RTU in base alla velocità

Per caratteri a 11 bit (parità pari, un bit di stop), con una richiesta di 8 byte, una risposta di 25 byte per dieci registri e 5 ms per l'inizio della risposta del dispositivo.

Tempo dei caratteri e intervalli Modbus RTU in base alla velocità, valori in ms
Velocità in bit (bit/s)Carattere (ms)t1.5 (ms)t3.5 (ms)Uno scambio (ms)
12009,16713,75032,083366,7
24004,5836,87516,042183,3
48002,2923,4388,02191,7
96001,1461,7194,01046,8
19.2000,5730,8592,00525,9
38.4000,2860,7501,75016,2
57.6000,1910,7501,75013,1
115.2000,0950,7501,7509,9

Scarica questa tabella (CSV)

Domande su Tempi di Modbus RTU

Che cosa significa t3.5 in Modbus RTU?

È l'intervallo di silenzio di 3,5 tempi di carattere che separa i frame. Il ricevitore interpreta un intervallo di questa durata come fine del frame. A 9.600 bit/s con caratteri a 11 bit vale 4,01 ms; oltre 19.200 bit/s la guida seriale raccomanda un intervallo fisso di 1,75 ms.

Quanto rapidamente posso interrogare una linea Modbus RTU?

Somma la durata degli scambi, uno per dispositivo e per ciclo. Più dispositivi, risposte lunghe, dispositivi lenti e nuovi tentativi allungano il giro. Per ottenere più letture al secondo, aumenta la velocità in bit, leggi blocchi contigui o distribuisci i dispositivi su più linee.

Perché 11 bit per carattere?

La guida Modbus per la linea seriale specifica 11 bit: start, otto bit di dati, parità e un bit di stop, oppure nessuna parità e due bit di stop. Molti dispositivi accettano anche nessuna parità con un solo bit di stop, ma questa configurazione è fuori specifica.

Una velocità in bit maggiore aiuta sempre?

Solo finché il ritardo di risposta dei dispositivi non prevale. A 115.200 bit/s, i byte richiedono una frazione di millisecondo, ma un dispositivo che necessita di 20 ms per rispondere determina il ritmo. Cavi lunghi e terminazione scadente limitano inoltre la velocità affidabile.

Limiti di questo risultato

  • La stima del ciclo esclude nuovi tentativi, timeout, broadcast, pianificazione del sistema operativo e altri master.
  • Il ritardo di risposta inserito deve misurare il tempo tra la fine della richiesta e l'inizio della risposta; il calcolo impone almeno t3.5.
  • Questa è una stima ideale e sequenziale, con uno scambio della stessa dimensione per ogni dispositivo. Calcoli con formati non conformi da 10 o 12 bit sono esplorativi e non attestano la conformità Modbus.

Misuralo continuamente

Un modulo ZMB interroga la propria linea RS-485 vicino all'apparecchiatura. Ogni dispositivo Modbus, o piccolo gruppo, dispone così di una linea corta e veloce anziché condividere un unico bus lungo.

Guide correlate

Fonti

  1. MODBUS over Serial Line Specification and Implementation Guide V1.02 (si apre in una nuova scheda) (PDF) Modbus Organization, 2006-12-20
  2. REF601/REJ601 Modbus Communication Protocol Manual (si apre in una nuova scheda) (PDF) ABB, 1MDU072231-YN