Convertitore di indirizzi Modbus

Converti un indirizzo Modbus scritto come nel manuale del dispositivo (40001, 400001, numerazione da uno o da zero) nelle altre convenzioni, compreso l'offset trasmesso.

Modbus e collegamenti seriali Aggiornato Gratuito, senza registrazione

40108Riferimento a 5 cifre
400108Riferimento a 6 cifre
108Numero da 1
107Da 0, trasmesso

Registro holding, offset 107 (0x006B).

Registri adiacenti

Offset da 0come indicato
  1. 10440105
  2. 10540106
  3. 10640107uno sotto
  4. 10740108
  5. 10840109uno sopra
  6. 10940110
  7. 11040111

Leggi il registro adiacente? Manuale e software potrebbero contare rispettivamente da 0 e da 1: prova il registro vicino.

Le quattro tabelle

  • 0xBobinebit singolilettura 01, scrittura 05 e 15
  • 1xIngressi discretibit singoli, sola letturalettura 02
  • 3xRegistri di ingressoparole a 16 bit, sola letturalettura 04
  • 4xRegistri holdingparole a 16 bitlettura 03, scrittura 06 e 16

Richiesta di lettura di questo registro

  1. 03funzione
  2. 00indirizzo, byte alto
  3. 6Bindirizzo, byte basso
  4. 00quantità, byte alto
  5. 01quantità, byte basso

La cifra iniziale di un riferimento (4) non viene trasmessa: la funzione 03 seleziona la tabella e 0x006B è l’indirizzo.

Completa il frame RTU dell’unità 1 con il relativo CRC
Indirizzo nel manuale
Forma scritta
Tabella dei registri
Tabella

Offset trasmesso, da 0

107

Offset esadecimale
0x006B
Numero da 1
108
Riferimento a 5 cifre
40108
Riferimento a 6 cifre
400108
Codice funzione di lettura
03

Registro holding, identificato dal 4 iniziale del riferimento. Il codice funzione seleziona la tabella; la cifra non viene trasmessa.

Come viene calcolato
  1. Offset = indirizzo − 40001=40108 − 40001=107
  2. Esadecimale = offset in base 16=107=0x006B

Registro holding 40108 corrisponde all’indirizzo 107 (0x006B) nella richiesta Modbus.

Suggerimento: Se ogni valore letto corrisponde al registro adiacente, il software e il manuale usano numerazioni diverse, da zero o da uno. Sposta l'indirizzo di una posizione e verifica il valore.

Convertire un riferimento Modbus nell'indirizzo del registro

Nei manuali gli indirizzi Modbus compaiono in forme diverse: 40001, 400001, registro 1 e indirizzo 0 possono indicare lo stesso registro holding. La richiesta Modbus contiene l'indirizzo da zero, tra 0 e 65535, mentre il codice funzione seleziona la tabella. Per convertire 40001, sottrai il primo riferimento della tabella: 40001 − 40001 = 0. Inserisci un riferimento a cinque o sei cifre esattamente come nel manuale: il calcolatore ricava la tabella dalla prima cifra. Per un numero da uno o da zero, seleziona la tabella.

Riferimento a cinque cifre (40001)

indirizzo = riferimento − 40001

La prima cifra indica la tabella: 0 per le bobine, 1 per gli ingressi discreti, 3 per i registri di ingresso e 4 per quelli holding. Sottrai 00001, 10001, 30001 o 40001. Questa forma copre solo 9.999 elementi per tabella.

Riferimento a sei cifre (400001)

indirizzo = riferimento − 400001

È la stessa convenzione, ma permette 65.536 elementi per tabella. Sottrai 000001, 100001, 300001 o 400001.

Numero di registro da uno

indirizzo = numero − 1

Alcune mappe numerano i registri a partire da 1 senza una cifra che indichi la tabella. Il registro 1 corrisponde all'indirizzo 0.

Indirizzo da zero

indirizzo = numero

Le mappe destinate ai programmatori spesso riportano l'indirizzo esattamente come compare nella richiesta, talvolta in esadecimale.

Il codice funzione seleziona la tabella, non l'indirizzo: 01 legge le bobine, 02 gli ingressi discreti, 03 i registri holding e 04 i registri di ingresso. Il 4 di 40001 indica l'uso della funzione 03 e non viene trasmesso.

Esempi: indirizzi dei registri Modbus

Tensione di un contatore al riferimento 30001

Il manuale di un contatore indica la tensione di fase al riferimento 30001. È il primo registro di ingresso: leggilo con la funzione 04 all'indirizzo 0.

Offset trasmesso, da 0 0 Apri nella calcolatrice

Lettura spostata di un registro dal riferimento 40108

La mappa indica un setpoint al riferimento 40108. La richiesta usa quindi la funzione 03 all'indirizzo 107 (0x006B). Inserendo 108 si legge il registro successivo, e si può ottenere un valore plausibile ma errato. Verifica prima un registro con un valore noto.

Offset trasmesso, da 0 107 Apri nella calcolatrice

Riferimento a sei cifre oltre 9999

Le mappe più grandi usano riferimenti a sei cifre perché la forma a cinque cifre termina a 49999. Il riferimento 412001 indica l'indirizzo 12000 (0x2EE0) di un registro holding.

Offset trasmesso, da 0 12000 Apri nella calcolatrice

Intervalli dei riferimenti Modbus per tabella

Primo e ultimo riferimento a cinque cifre di ogni tabella e inizio della forma a sei cifre. Nella richiesta ogni intervallo inizia all'indirizzo 0.

TabellaPrimo a cinque cifreUltimo a cinque cifrePrimo a sei cifre
Bobine0000109999000001
Ingressi discreti1000119999100001
Registri di ingresso3000139999300001
Registri holding4000149999400001

Scarica questa tabella (CSV)

Domande su indirizzi dei registri Modbus

40001 indica il registro numero 40001?

No. Indica il primo registro holding, il cui indirizzo nella richiesta è 0. Il 4 iniziale identifica la tabella e la parte restante si conta da uno.

Perché la lettura Modbus è spostata di un registro?

Una causa comune è confondere la numerazione da zero con quella da uno: la mappa conta da uno e il software da zero, o viceversa. Se la lettura sembra appartenere al registro vicino, sposta l'indirizzo di uno e confronta.

Quale codice funzione legge i registri holding?

La funzione 03 legge i registri holding e la 04 quelli di ingresso. La 06 scrive un registro holding e la 16 (0x10) ne scrive più di uno.

Qual è l'indirizzo Modbus più alto?

65535 (0xFFFF) in ogni tabella, perché il campo dell'indirizzo nella richiesta ha 16 bit. I riferimenti a cinque cifre non superano 9999 in una tabella; quelli a sei cifre arrivano oltre.

Limiti di questo risultato

  • Verifica i dati di partenza, la mappa del dispositivo e le condizioni di installazione prima di usare il risultato.

Misuralo continuamente

Uno ZMB collega un dispositivo Modbus RS-485 alla rete wireless. Gli ingressi discreti e i registri di ingresso sono di sola lettura; le bobine e i registri holding possono essere scrivibili se il dispositivo lo consente. Il Gateway può leggere direttamente anche dispositivi Modbus.

Guide correlate

Fonti

  1. MODBUS Application Protocol Specification V1.1b3 (si apre in una nuova scheda) (PDF) Modbus Organization, 2012-04-26
  2. An Introduction to Modbus (si apre in una nuova scheda) Modbus Organization, accessed 2026-09-14