1 (2019-04-19 10:53:48 отредактировано Mechatronica)

Тема: Подключение датчиков расхода топлива Eurosens RS по MODBUS к АвтоГРАФ

Подключаем датчик по интерфейсу RS-485

В конфигураторе АвтоГРАФ (версия 3.4) переходим в раздел MODBUS-Произвольные поля и добавляем интересующие нас параметры из списка регистров MODBUS датчика Eurosens (см прилагаемый файл)
Обратите внимание, что регистры Eurosens Delta указаны в нашем описании в десятичном виде,  в конфигураторе АвтоГРАФ необходимо их задать в шеснадцатиричном  виде:


agmodbus2

agmodbus3

Post's attachments

Modbus Delta Протокол обмена данными rev.0.3 ru.pdf 450.06 Кб, 1 скачиваний с 2019-04-18 

У вас нет доступа к файлу. Для загрузки необходимо зарегистрироваться!

2

Re: Подключение датчиков расхода топлива Eurosens RS по MODBUS к АвтоГРАФ

Сохраняем настройки в терминал и нажимаем кнопку "Проверка MODBUS"

AGmodbus1

3 (2019-04-19 12:05:39 отредактировано Mechatronica)

Re: Подключение датчиков расхода топлива Eurosens RS по MODBUS к АвтоГРАФ

.... и недоумеваем от полученных чисел.

Значения в регистрах двухбайтового типа будут верными.
Все четырехбайтовые значения выглядят некорректно. В чем причина?

Четырехбайтовые значения не стандартизованы 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

Данные вычисления следует проводить на стороне дисперчерского ПО с применением виртуальных датчиков и формул.