ModBus: Типове данни
Тип на данните | Описание |
---|---|
INT16 | Цяло число в диапазона от -32768 до 32767. |
UINT16 | Цяло число без символ в диапазона от 0 до 65535. |
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+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.