ModBus: Типи даних

Тип даних

Опис

INT16

Ціле число в діапазоні від –32 768 до 32 767
Фактичний діапазон чисел, які використовуються для точки даних, може відрізнятися

UINT16

Беззнакове ціле число в діапазоні від 0 до 65 535
Фактичний діапазон чисел, які використовуються для точки даних, може відрізнятися

ENUM

Це перелік. Можна встановити тільки одне зі значень, наведених у параметрах

BOOL

Логічне значення являє собою параметр з точно двома станами (0 — хиба/false та 1 — істина/true). Загалом усі значення більше нуля вважаються true

BITMAP*

Базова інформація складається з 16 логічних значень (біт). Значення індексуються від 0 до 15. Число, яке потрібно прочитати або записати до реєстру, утворюється із суми всіх бітів зі значенням 1 × 2 зі своїм показником степеня.

  • Біт 0: 20 = 1
  • Біт 1: 21 = 2
  • Біт 2: 22 = 4
  • Біт 3: 23 = 8
  • Біт 4: 24 = 16
  • Біт 5: 25 = 32
  • Біт 6: 26 = 64
  • Біт 7: 27 = 128
  • Біт 8: 28 = 256
  • Біт 9: 29 = 512
  • Біт 10: 210 = 1024
  • Біт 11: 211 = 2048
  • Біт 12: 212 = 4096
  • Біт 13: 213 = 8192
  • Біт 14: 214 = 16 384
  • Біт 15: 215 = 32768

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.