ModBus: типы данных
Тип данных | Описание |
---|---|
INT16 | Целое число в диапазоне от –32768 до 32767 |
UINT16 | Целое число без знака в диапазоне от 0 до 65535 |
ENUM | Это маркированный список. Можно установить только одно из указанных для параметра значений. |
BOOL | Булево значение — это параметр с двумя точными положениями (0 — ложь/false и 1 — истина/true). Обычно все значения больше нуля считаются true. |
BITMAP* | Это свод 16 булевых значений (биты). Значения индексируются от 0 до 15. Число, которое необходимо считать в реестре или записать в реестр, получается в результате суммы всех битов и значения 1, умноженного на 2 в степени их индекса.
|
BITMAP32 | Это свод 32 булевых значений (биты). Для подробностей по расчету см. «Битовый массив» |
* Пример для пояснения
Бит 3, 6, 8, 15 равен 1, все остальные — 0. Тогда сумма составляет 23 + 26 + 28 + 215 = 8 + 64 + 256 + 32768 = 33096. Возможен также обратный ход. При этом проверяется исходящий бит с максимальным индексом, является ли считанное число больше или равно степени числа 2. Если условие верно, то устанавливается бит 1, и степень числа 2 убирается. После этого проверка бита со следующим минимальным индексом и прямо рассчитанным остаточным числом повторяется, пока не будет достигнут бит 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.