ModBus: Adattípusok
Adattípus | Megnevezés |
---|---|
INT16 | Egész szám -32 768 és +32 767 között. |
UINT16 | Előjel nélküli egész szám 0 és 65 535 között. |
ENUM | Felsorolás. Csak a paraméterekben felsorolt értékek közül lehet választani. |
BOOL | A logikai típusú érték pontosan két állapotú (0: hamis/false vagy 1: igaz/true) paraméter. Általában minden nullánál nagyobb értéket igaznak kell tekinteni. |
BITMAP* | 16 logikai értékből (bitből) álló adattömb. Az értékek 0 és 15 között vannak indexelve. A regiszterből kiolvasható vagy oda beírható szám úgy adódik, hogy az összes 1 értékű bitet meg kell szorozni 2-nek az indexük szerinti hatványával, majd ezeket a részösszegeket össze kell adni.
|
BITMAP32 | 32 logikai értékből (bitből) álló adattömb. A számítás részleteit lásd a BITMAP leírásánál. |
* Példa az egyértelműsítéshez:
A 3-as, 6-os, 8-as és 15-ös bit 1, az összes többi 0. Az összeg ekkor 23+26+28+215 = 8+64+256+32 768 = 33 096. Fordított módon is el lehet járni, vagyis ha a számérték van meg, és a biteket kell meghatározni. A legmagasabb indexű bitből kiindulva, ellenőrizzük, hogy a kiolvasott szám nagyobb-e vagy egyenlő-e a kettő adott hatványával. Ha igen, akkor az 1-es bitet 1-re kell állítani, és a kettő hatványát ki kell vonni a számból. Ezután megismételjük a vizsgálatot az eggyel kisebb indexű bittel és az iménti maradék számmal addig, amíg el nem érjük a 0-s bitet, vagy a maradék szám nulla nem lesz. Példa az egyértelműsítéshez: A kiolvasott szám 1 416. A 15-ös bit 0 lesz, mert 1 416 < 32 768. A 14–11-es bitek szintén 0 értékűek lesznek. A 10-es bit 1 lesz, mert 1 416 > 1 024. A maradék 1 416-1 024=392. A 9-es bit 0 lesz, mert 392 < 512. A 8-as bit 1 lesz, mert 392 > 256. A maradék 392-256=136. A 7-es bit 1 lesz, mert 136 > 128. A maradék 136-128=8. A 6–4-es bitek 0 értékűek lesznek. A 3-as bit 1 lesz, mert 8=8. A maradék 0. Ezzel a maradék 2–0-s bitek mind 0 értékűek.