ModBus: Datatyper
Datatype | Beskrivelse |
---|---|
INT16 | Heltall i området -32768 til 32767. |
UINT16 | Heltall uten fortegn i området 0 til 65535. |
ENUM | Er en tellevariabel. Kan kun settes til en av verdiene som er oppført under parameteren. |
BOOL | En boolsk verdi er en parameter med kun to tilstander (0 – usann/false og 1 – sann/true). Generelt anses alle verdier større enn null som true. |
BITMAP* | Et sammendrag av 16 boolske verdier (bits). Verdiene nummereres fra 0 til 15. Tallet i registeret som skal leses eller skrives beregnes fra summen av alle bits med verdien 1x2 potensert med dets indeks.
|
BITMAP32 | Er et sammendrag av 32 boolske verdier (bits). Detaljer om beregningen finnes i bitmap. |
* Eksempel:
Bit 3, 6, 8, 15 er 1, alle andre er 0. Summen blir da 23+26+28+215 = 8+64+256+32768 = 33096. Omvendt rekkefølge er også mulig. I dette tilfellet kontrolleres det om det leste tallet er større enn eller lik andre potens, og man starter med biten med den høyeste indeksen. Hvis det er tilfelle, settes bit 1 og andre potens av tallet trekkes fra. Deretter gjentas kontrollen med biten med nest lavest indeks og den nettopp beregnede resten til man kommer til bit 0 eller resten er lik null. For å gjøre det tydeligere med et eksempel: Det leste tallet er 1416. Bit 15 blir 0, fordi 1416<32768. Bits 14 til 11 blir likedan 0. Bit 10 blir 1, fordi 1416>1024. Resten blir 1416-1024=392. Bit 9 blir 0, fordi 392<512. Bit 8 blir 1, fordi 392>256. Resten blir 392-256=136. Bit 7 blir 1, fordi 136>128. Resten blir 136-128=8. Bit 6 til 4 blir 0. Bit 3 blir 1, fordi 8=8. Resten blir 0. Følgelig blir de resterende bits 2 til alle 0.