.... и недоумеваем от полученных чисел.
Значения в регистрах двухбайтового типа будут верными.
Все четырехбайтовые значения выглядят некорректно. В чем причина?
Четырехбайтовые значения не стандартизованы MODBUS, АвтоГРАФ использует иной порядок байт.
Наберем значение 3355836416 в калькуляторе Windows и переведем в шеснадцатиричный вид = C8060000.
Используя обратный порядок байт - это число 000006C8, то есть 1736.
Для получения правильных значений на стороне диспетчерского ПО (Wialon, АвтоГРАФ) необходимо осуществлять вычисления.
Цена младшего байта (№1) = 1
Цена второго байта = 256
Цена третьего байта=256*256=65536
Цена четвертого байта = 256*256*256=16777216
Считываем число Х, например, 4009754624
Определяем четвертый байт в числе:
X/16777216=4009754624/16777216=239
Остаток от деления =0
ВЫчисляем остаток X1, X - байт4*16777216, он равен нулю
Вычисляем третий байт из остатка X1: X1/65536=0/65536=0
третий байт=0
Остаток X2=X1-байт3*65536=0
Вычисляем второй байт из остатка 0/256=0
второй байт =0
Вычисляем остаток X3=0-0*256=0
Остаток будет первым байтом
теперь надо вычислить правильное значение расположив байты в обратном порядке байт4...байт1
0 0 0 239
и применим цены байт:
Число = 0*16777216+0*65535+0*256+239=239
Серийный номер датчика=239
Данные вычисления следует проводить на стороне дисперчерского ПО с применением виртуальных датчиков и формул.
Подписывайтесь на наш новостной канал RU:
https://t.me/mechatronicsbySubscribe to our Telegram news channel EN:
https://t.me/eurosensYoutube channel
https://www.youtube.com/@MechatronicsTV