ModBus: Datatyper
Datatyp | Beskrivning |
---|---|
INT16 | Heltal i intervallet -32768 till 32767. |
UINT16 | Osignerat heltal i området från 0 till 65535. |
ENUM | Är en uppräkning. Värdet kan endast ställas in på ett av de värden som är listade under parametern. |
BOOL | Ett booleskt värde är en parameter som kan ha exakt två värden (0 – falskt/false och 1 – sant/true). Värden större än noll räknas som true. |
BITMAP* | Är en sammanfogning av 16 booleska värden (bitar). Värdena indexeras från 0 till 15. Talet som ska läsas från eller skrivas till registret kan räknas ut genom att summera alla bitar med värdet 1 gånger 2 upphöjt till bitens index.
|
BITMAP32 | Är en sammanfogning av 32 booleska värden (bitar). Läs under Bitmap för mer information om hur värdet räknas ut. |
* Exempel för förtydligande:
Bit 3, 6, 8, 15 är 1 och alla andra är 0. Summan blir då 23+26+28+215 = 8+64+256+32768 = 33096. Det omvända hållet är också möjligt. Då kontrolleras biten med det högsta indexet för att se om talet som lästs är större än eller lika med bitens tvåpotens. Om så är fallet sätts biten till 1 och tvåpotensen subtraheras från talet. Sedan kontrolleras biten med det näst minsta indexet mot resttalet och processen upprepas tills man når bit 0 eller resttalet är lika med noll. Ett förtydligande exempel: Det lästa talet är 1416. Bit 15 sätts till 0 eftersom 1416 < 32768. Bitarna 14 till 11 sätts också till 0. Bit 10 sätts till 1 eftersom 1416 > 1024. Resttalet blir 1416 - 1024 = 392. Bit 9 sätts till 0 eftersom 392 < 512. Bit 8 sätts till 1 eftersom 392 > 256. Resttalet blir 392 - 256 = 136. Bit 7 sätts till 1 eftersom 136 > 128. Resttalet blir 136 - 128 = 8. Bitarna 6 till 4 sätts till 0. Bit 3 sätts till 1 eftersom 8 = 8. Resttalet blir 0. Därmed sätts de resterande bitarna 2 till 0 alla till 0.