ModBus: Datatyypit
Datatyyppi | Kuvaus |
---|---|
INT16 | Kokonaisluku alueella -32768...32767. |
UINT16 | Etumerkitön kokonaisluku alueella 0–65535. |
ENUM | On summa. Vain parametriin merkittyjä arvoja voi käyttää. |
BOOL | Boolin arvo on parametri, jossa on tarkalleen kaksi tilaa (0 – väärä/false ja 1 – tosi/true). Yleensä kaikkia nollaa suurempia arvoja pidetään tosina. |
BITMAP* | 16 boolin arvon (bitin) yhteenveto. Arvot merkitään välillä 0–15. Rekisteristä luettava tai siihen kirjoitettava luku saadaan kaikkien bittien summasta, jonka arvo on 1×2 korkeampi kuin sen hakemisto.
|
BITMAP32 | 32 boolin arvon (bitin) yhteenveto. Katso laskentatiedot Bitmapista. |
* Selventävä esimerkki:
bitit 3, 6, 8, 15 ovat 1, kaikki muut ovat 0. Summa on siis 23+26+28+215 = 8+64+256+32768 = 33096. Myös päinvastainen reitti on mahdollinen. Tällöin tarkistetaan korkeimman arvon bitistä lähtien, onko luettu luku suurempi tai sama kuin kaksoispotenssi. Jos näin on, käytetään bittiä 1 ja vähennetään luvusta kaksoispotenssi. Sen jälkeen tarkistetaan bitti, jonka hakemisto on toiseksi pienin ja juuri laskettu jäännösarvo toistetaan, kunnes ollaan bitissä 0 tai jäännösluku on nolla. Esimerkki selvennykseksi: Luettu luku on 1416. Bitistä 15 tulee 0, koska 1416<32768. Myös biteistä 14–11 tulee 0. Bitistä 10 tulee 1, koska 1416>1024. Jäännösluku on 1416-1024=392. Bitistä 9 tulee 0, koska 392<512. Bitistä 8 tulee 1, koska 392>256. Jäännösluku on 392-256=136. Bitistä 7 tulee 1, koska 136>128. Jäännösluku on 136-128=8. Biteistä 6–4 tulee 0. Bitistä 3 tulee 1, koska 8=8. Jäännösluku on 0. Näin loput bitit ovat 2 – kaikki 0.