ModBus: Типове данни

Тип на данните

Описание

INT16

Цяло число в диапазона от -32768 до 32767.
Реално използваният диапазон от числа за определени данни може да се различава.

UINT16

Цяло число без символ в диапазона от 0 до 65535.
Реално използваният диапазон от числа за определени данни може да се различава.

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 = 16384
  • Бит 15: 215 = 32768

BITMAP32

Обобщение от 32 булеви стойности (битове). За подробности за изчислението прочетете Bitmap.

* Пример, за да илюстрираме:
Бит 3, 6, 8, 15 са 1 всички други са 0. Тогава сумата е 23+26+28+215 = 8+64+256+32768 = 33096. Също така е възможен обратният път. При това се проверява, започвайки от бита с най-висок индекс, дали прочетеното число е по-голямо или равно на степента на две. Ако е така, се задава бит 1 и степента на две се изважда от числото. След това тестът се повтаря с бита със следващия най-малък индекс, а оставащото число се повтаря, докато не се достигне бит 0, или оставащото число е нула. Пример за илюстриране: Прочетената цифра е 1416. Бит 15 става 0, понеже 1416<32768. Битове 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 стават всички 0.