ModBus: Tipi di dati

Tipi di dati

Descrizione

INT16

Numero intero nell’intervallo che va da -32768 a 32767.
L’intervallo reale di numeri utilizzato per un punto dati può essere diverso.

UINT16

Numero intero nell’intervallo che va da 0 a 65535.
L’intervallo reale di numeri utilizzato per un punto dati può essere diverso.

ENUM

È un’enumerazione. È possibile impostare solo uno dei valori sopracitati nei parametri.

BOOL

Un valore booleano è un parametro con esattamente due stati (0 - falso/false e 1 - vero/true). In generale vengono valutati come "true" tutti i valori superiori a zero.

BITMAP*

È un riepilogo dei 16 valori booleani (bit). I valori sono indicizzati da 0 a 15. Il numero da leggere o scrivere nel registro è la somma di tutti i bit con il valore 1×2 rispondente al loro indice.

  • Bit 0: 20 = 1
  • Bit 1: 21 = 2
  • Bit 2: 22 = 4
  • Bit 3: 23 = 8
  • Bit 4: 24 = 16
  • Bit 5: 25 = 32
  • Bit 6: 26 = 64
  • Bit 7: 27 = 128
  • Bit 8: 28 = 256
  • Bit 9: 29 = 512
  • Bit 10: 210 = 1024
  • Bit 11: 211 = 2048
  • Bit 12: 212 = 4096
  • Bit 13: 213 = 8192
  • Bit 14: 214 = 16384
  • Bit 15: 215=32768

BITMAP32

È un riepilogo dei 32 valori booleani (bit). Per dettagli relativi al calcolo, leggere in base ai Bitmap.

* Esempio di chiarimento:
i bit 3, 6, 8, 15 sono 1, gli altri sono 0. La somma è quindi 23+26+28+215 = 8+64+256+32768 = 33096. È possibile anche il procedimento inverso. In questo caso si parte con il controllo del bit con l’indice più alto se il numero letto risulta maggiore o uguale alla potenza di due. Se lo è, il bit 1 viene impostato e la potenza di due risulta diversa dal numero. Quindi, il controllo viene ripetuto con il bit con l’indice più piccolo e il numero residuo già calcolato fino a quando non si raggiunge il bit 0 o il numero residuo non risulta nullo. Un esempio per chiarire: Il numero letto è 1416. Il bit 15 sarà 0, perché 1416<32768. Anche i bit da 14 a 11 saranno 0. Il bit 10 sarà 1, perché 1416>1024. Il numero residuo sarà 1416-1024=392. Il bit 9 sarà 0, perché 392<512. Il bit 8 sarà 1, perché 392>256. Il numero residuo sarà 392-256=136. Il bit 7 sarà 1, perché 136>128. Il numero residuo sarà 136-128=8. I bit da 6 a 4 saranno 0. Il bit 3 sarà 1, perché 8=8. Il numero residuo sarà 0. Così i bit rimanenti da 2 saranno tutti 0.