ModBus: Типи даних
Тип даних | Опис |
---|---|
INT16 | Ціле число в діапазоні від –32 768 до 32 767 |
UINT16 | Беззнакове ціле число в діапазоні від 0 до 65 535 |
ENUM | Це перелік. Можна встановити тільки одне зі значень, наведених у параметрах |
BOOL | Логічне значення являє собою параметр з точно двома станами (0 — хиба/false та 1 — істина/true). Загалом усі значення більше нуля вважаються true |
BITMAP* | Базова інформація складається з 16 логічних значень (біт). Значення індексуються від 0 до 15. Число, яке потрібно прочитати або записати до реєстру, утворюється із суми всіх бітів зі значенням 1 × 2 зі своїм показником степеня.
|
BITMAP32 | Базова інформація складається з 32 логічних значень (біт). Детальніше про розрахунок див. у Bitmap |
* Приклад для пояснення:
біти 3, 6, 8, 15 дорівнюють 1, решта — 0. Тоді сума дорівнює 23 + 26 + 28 + 215 = 8 + 64 + 256 + 32 768 = 33 096. Також можливий зворотний порядок. У цьому випадку перевіряється, починаючи з біта з показником найвищої степені, якщо прочитане число більше або дорівнює степені два. Якщо це так, біт 1 установлений, та степінь двох віднімається від числа. Після цього перевірка повторюється з бітом з наступним меншим показником степеня, а число, що залишилося, розраховується, доки не буде досягнутий біт 0, або число не стане дорівнювати нулю. Приклад для пояснення: прочитане число — 1416. Біт 15 стає 0, тому що 1416 < 32 768. Біти від 14 до 11 також стають 0. Біт 10 стає 1, тому що 1416 > 1024. Число, що залишилося, буде 1416 – 1024 = 392. Біт 9 стає 0, тому що 392 < 512. Біт 8 стає 1, тому що 392 > 256. Число, що залишилося, буде 392 – 256 = 136. Біт 7 стає 1, тому що 136 > 128. Число, що залишилося, буде 136 – 128 = 8. Біти з 6 по 4 будуть 0. Біт 3 стає 1, тому що 8 = 8. Число, що залишилося, буде 0. Отже, біти, які залишилися, від 2 до всіх 0.