Mappa e specifiche dei registri Modbus

Questo documento contiene la mappa dei registri Modbus e le relative specifiche.

Struttura dati dei messaggi Modbus

Relativamente all’ordine di trasmissione del messaggio Modbus, quando i singoli dati da trasmettere nella frame sono composti da più bytes (16 bit e oltre), viene applicato il seguente formato:

Standard Modbus transmission order:

-—————MSByte–LSByte—-(next data)—————————CRC–>

time:t0 —————————————————————— time:tN

L’ordine di trasmissione dei dati contenuti nella Frame del messaggio è conforme allo standard Modbus, con il byte piu significativo trasmesso prima, seguito dai byte meno significativi.

N.B. il CRC costituisce un’eccezione, in quanto nella sequenza temporale di trasmissione viene trasmesso prima il byte meno significativo, seguito dal byte più significativo, come anche illustrato negli esempi dei successivi paragrafi.

Formato del dato a 32 bits, quando è utilizzato il bit di segno

Modbus lower indexNext higher index
MSBSXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXLSB
Byte 0Byte 1Byte 2Byte 3

Formato del dato a 32 bits, senza segno

Modbus lower indexNext higher index
MSBXXXX XXXXXXXX XXXXXXXX XXXXXXXX XXXXLSB
Byte 0Byte 1Byte 2Byte 3

Formato del dato a 32 bits di tipo ‘float’ con segno = S, esponente = X, mantissa = M

Modbus lower indexNext higher index
MSBSXXX XXXXXMMM MMMMMMMM MMMMMMMM MMMMLSB
Byte 0Byte 1Byte 2Byte 3

Ulteriori tipi di dato gestiti dall’interfaccia Modbus non sono utilizzati e non vengono quindi descritti .

Mappa dei registri Modbus della scheda

I registri Modbus illustrati nella memory-map e nei paragrafi che seguono sono dettagliati anche rispetto agli attributi di accesso:

RO: Read Only RW: Read and Write WO: Write Only

N.B: Nella mappa registri che segue sono contenuti alcuni registri non supportati, non disponibili, e sono segnati con ‘N’ nella colonna ‘Supported’. Alcuni di questi registri sono stati previsti per utilizzi futuri: se indirizzati torneranno dati non validi, ulteriori dettagli verranno forniti dove necessario.

Alcuni registri della scheda illustrati nella mappa di memoria che segue, sono mappati su risorse Hardware della scheda e riferite ai connettori di I/O. Tali riferimenti sono illustrati nello specifico documento relativo alle connessioni scheda. Nella mappa di registri che segue la dicitura ‘Y’ nella colonna ‘HW I/O ref.’ identifica quindi una risorsa HW associata al registro.

La mappa dei registri sotto parte dall’offset ‘0’ . L’offset del registro presente nella mappa è quello da utilizzare nella compilazione del messaggio Modbus.

Modbus input register (16bit)

Modbus Register Offset (word 16bit)Data sizeDescriptionHW I/OAccessSupported
0…23Uint8[48]Device IdentificationRON
24..27Uint8[8]Spare[reserved]
28Uint8[2]Device error flags (bit-mapped:errors ,flag == 1)RON
29Uint8[2]Device status flags (bit-mapped: ,flag status)RON
30..31Uint8[4]Spare[reserved]
32Uint8[2]Digital Inputs bank#1YRO
33…35Uint8[6]Spare[reserved]
36Uint8[2]Analog #0 (press. sens)YRO
37Uint8[2]Analog #1 (temp. sens)YRO
38Uint8[2]Analog #2 (temp. sens aux)YRO
39Uint8[2]Analog #3 (temp. sens aux)YRO
40…47Uint8[16]Spare[reserved]

Modbus coils (bitmapped) <-> anche come holding regs

Modbus coils or holding registers : tab_registers[]

Modbus Register Offset (word 16bit)Data sizeDescriptionHW I/OAccessSupported
48Uint8[2]coil bank#1(coils:K1-K8) only LbyteYRW
49Uint8[2]coil bank#2(coils: K9-K16) only LbyteYRW
50Uint8[2]Digital Outputs bank#1 only LbyteYRWNote(2)
50Uint8[2]coil bank#3(coils: K17-K24) only LbyteYRWNote(2)
51Uint8[2]Spare[reserved]
52Uint8[2]PWM #0 cfgRWN
53Uint8[2]PWM #1 cfgRWN
54Uint8[2]PWM #2 cfgRWN
55Uint8[2]PWM #3 cfgRWN

Modbus holding register(16bit)

Modbus Register Offset (word 16bit)Data sizeDescriptionHW I/OAccessSupported
56Uint8[2]PWM #0RW
57Uint8[2]PWM #1RW
58Uint8[2]PWM #2RW
59Uint8[2]PWM #3RW
60Uint8[2]Spare[reserved]
61Uint8[2]Spare[reserved]
62Uint8[2]Aux bank #1YWO
63Uint8[2]Spare[reserved]
64…79Uint8[32]Protocol configuration (Modbus: Slave ID, speed.. )RWN
80…87Uint8[32]Spare[reserved]
88Uint8[2]command flagsWONote(3)
89…95Uint8[32]Spare[reserved]

Note(2)

Questo registro , a seconda della configurazione hardware della scheda, potrebbe essere inutilizzato, oppure:

  • se la scheda è equipaggiata con 24 rele, fa riferimento ai rele da K17 a K24
  • se la scheda è equipaggiata con uscite digitali optoisolate fa riferimento alle uscite da OT0 a OT7

Note(3)

Questo registro quando scritto con un valore non-zero verrà effettuato il reset della scheda. La funzione di lettura non è supportata.

messagi Modbus supportati

Il protocollo Modbus supportato è il Modbus RTU.

I messaggi supportati sono i seguenti:

  • 0x01 (01d) Read Coil Status
  • 0x02 (02d) Read Input Status
  • 0x03 (03d) Read Holding Registers
  • 0x05 (05d) Force Single Coil
  • 0x06 (06d) Preset Single register
  • 0x0F (15d) Force multiple Coil
  • 0x10 (16d) Write Holding Registers

I messaggi elencati sopra possono essere utilizzati su qualunque registro della mappa, se congruenti con l’attributo di accesso.

Esempi di messaggi

CRC

Nell’esempio che segue viene mostrato il CRC che verra’ aggiunto in coda ad ogni messaggio. Il CRC è del tipo MODBUS 16, ed è calcolato con il polinomio di valore esadecimale ‘0xA001’ come definito dallo standard Modbus RTU.

0x03 (03d) Read Holding Registers

Questa funzione permette di leggere i registri . La struttura del messaggio è come segue:

Indirizzo ModbusCodice FunzioneIndirizzo di inizio, high-byteIndirizzo di inizio low-bytenumero di registri high-bytenumero di registri low-byteCRC lowCRC high
010300380004xxxx

Con l’esempio del messaggio sopra, verrano letti i registri con offset 38, 39, 40, 41 .

0x10 (16d) Write Holding Registers

Questa funzione permette di scrivere i registri (verificare la colonna ‘Access’ per la possibilita’ di scrittura)

Il messaggio è strutturato come segue:

Indirizzo ModbusCodice FunzioneIndirizzo di inizio, high-byteIndirizzo di inizio low-bytenumero di registri high-bytenumero di registri low-bytenumero di bytesData highData lowData highData lowCRC highCRC low
01160056000204001270064xxxx

Nello schema del messaggio sopra, insieme all’indirizzo Modbus e al codice funzione, ci devono essere l’indirizzo di inizio del primo registro ed il numero di registri, oltre al numero di bytes ( 2xN registri) da scrivere

Nell’esempio del messaggio sopra, verra scritto il valore ‘127’ su PWM#0 e ‘64’ su PWM#1

Per ulteriori dettagli su esempi di messaggi Modbus RTU vedere anche la documentazione sul web.


Descrizione registri Modbus

Error flags (non supportato)

E15to be defined
Error flags, 2 byte:
bits 0…15Valore: condizione di errorenote
0E0da definire per tutti i bit del registro
1E1
2E2
3E3
4E4
5E5
6E6
7E7
nEn
15

Status flags (non supportato)

Status flags, 2 byte:
bits 0…15Valore: stato dispositivonote
0Stat_0Reset Ongoing = 1 , No reset state( Running ) = 0
1Stat_1to be defined
2Stat_2to be defined
3Stat_3to be defined
4Stat_4to be defined
5Stat_5to be defined
6Stat_6to be defined
7Stat_7to be defined
nStat_nto be defined
15Stat_15to be defined

Digital inputs bank #1

Digital input bank #1, 1 byte :
bits 0…7ingresso digitale di riferimentonote
0INS0per tutti i bit(ingressi digitali ) del registro, il valore ‘0’ corrisponde all’ingresso alimentato, ‘1’ ingresso non alimentato .
1INS1
2INS2
3INS3
4INS4
5INS5
6INS6
7INS7

Analog #0 input

Analog 0, 2 byte :
byteValue: functioncomment
0:10 – 255 (LByte)8 bit A/D input 0-255 ( 0-FF hex)

Analog #1 input

Analog 1, 2 byte :
byteValue: functioncomment
0:10 – 255 (LByte)8 bit A/D input 0-255 ( 0-FF hex)

Analog #2 input

Analog 2, 2 byte :
byteValue: functioncomment
0:10 – 255 (LByte)8 bit A/D input 0-255 ( 0-FF hex)

Analog #3 input

Analog 3, 2 byte :
byteValue: functioncomment
0:10 – 255 (LByte)8 bit A/D input 0-255 ( 0-3FF hex)

Rele(Coils) o holding regs

Coil bank #1

Coil bank #1, 1 byte :
bits 0…7_ rele di riferimento: _note
0K1per ciascun rele del registro : ‘1’ alimentato, contatto chiuso, ‘0’ disattivo
1K2
2K3
3K4
4K5
5K6
6K7
7K8

Coil bank #2

Coil bank #2, 1 byte :
bits 0…7rele di riferimento:note
0K9per ciascun rele del registro : ‘1’ alimentato, contatto chiuso, ‘0’ disattivo
1K10
2K11
3K12
4K13
5K14
6K15
7K16

Coil bank #3 (se supportato dall’hardware)

Coil bank #3, 1 byte :
bits 0…7rele di riferimento:note
0K17per ciascun rele del registro : ‘1’ alimentato, contatto chiuso, ‘0’ disattivo
1K18
2K19
3K20
4K21
5K22
6K23
7K24

Digital output bank #1 (se supportato dall’hardware)

Digital output bank #1, 1 byte :
bits 0…7output digitale di riferimentonote
0OT0per tutti i bit(uscite digitali ,open-collector) del registro, il valore ‘0’ corrisponde ai terminali di uscita ‘aperti’ ‘1’ corrisponde ai terminali di uscita ‘chiusi’
1OT1
2OT2
3OT3
4OT4
5OT5
6OT6
7OT7

Aux bank #1

Aux bank #1, 1 byte
bits 0…7Funzionenote
0Buzzer0 = Off, 1 = On(suono)
1non definito
2non definito
3non definito
4non definito
5non definito
6non definito
7non definito

Command flags

Command flags, 2 byte
bits 0…15Funzionenote
0Resetcomando di Reset: 0 = Off, 1 = On(reset dispositivo)
1Cmd _1
2Cmd _2
3Cmd _3
4Cmd _4
5Cmd _5
6Cmd _6
7Cmd _7
nCmd _n
15Cmd _15

Holding register

Protocol configuration (non supportato)

PWM #0 Cfg (non supportato)

PWM #1 Cfg (non supportato)

PWM #2 Cfg (non supportato)

PWM #3 Cfg (non supportato)

PWM #0 Setup

PWM 0, 2 byte
byteValorenote
0:10 – 255 (LByte)8 bit PWM (D/A) output 0-255 ( 0-FF hex)

PWM #1 Setup

PWM 1, 2 byte
byteValorenote
0:10 – 255 (LByte)8 bit PWM (D/A) output 0-255 ( 0-FF hex)

PWM #2 Setup

PWM 2, 2 byte
byteValorenote
0:10 – 255 (LByte)8 bit PWM (D/A) output 0-255 ( 0-FF hex)

PWM #3 Setup

PWM 3, 2 byte
byteValorenote
0:10 – 255 (LByte)8 bit PWM (D/A) output 0-255 ( 0-FF hex)

Selio

by CTA

Moduli I/O per applicazioni industriali, con 8, 16 e 24 relè. Tutte le schede relè Selio presentano un equipaggiamento potente e flessibile: ingressi e usciti digitali ed analogici, protocollo Modbus pronto all'uso, connessioni robuste e semplici, ed elementi on-board che ne arricchiscono ulteriormente le funzionalità.

Caratteristiche

Casi d'uso

Video

Download

Approfondimenti

Contattaci

Iscriviti

Selio • un brand di CTA Electronics • IT09176980960 • Progettazione e realizzazione al 100% italiane • Copyright © 2025 • Tutti i diritti riservati • Privacy Policy

Impostazione Cookie

Questo sito utilizza i cookies. Puoi scegliere di consentire o rifiutare determinati tipi di cookie. Ulteriori informazioni sull'uso dei cookie sono disponibili nella nostra informativa sulla privacy.

Questi cookie consentono la funzionalità di base del sito web. Il sito non funzionerebbe senza di essi.

Questi cookie servono a raccogliere statistiche di utilizzo, con IP anonimo, che ci aiutano a migliorare il sito web.

Welcome!
We are an experienced team that provides fast and accurate answers to your questions.
Conversations
    New conversation
    View all

    All

    • All
    • Smileys & Emotions
    • People & Body
    • Animals & Nature
    • Food & Drink
    • Travel & Places
    • Activities
    • Objects
    • Symbols