Тема / Topic: Проблема с адресом канала Float для модуля Овен МВ110-8А
ivved
Junior Member / Новичок
Участник № / Member № 6874
отправлено / posted
Добрый день, я работаю с данным модулем по Modbus-RTU. Согласно документации на модуль, каждый аналоговый вход занимает адреса 0x0 - 0x5 включительно, причем адреса 0x4,0x5 - значение канала измеренного значения типа float. Все регистры с 0 по 3 читаются корректно, при использовании функции Rin_Word(4). При обращении к каналу Modbus через Rin_Float(4) с адресом 0x4 - читается некорректное значение. Но если установить адрес 0x3 - показания верны. Тоже самое происходит и с любым другим каналом данного модуля, нужно устанавливать адрес на единицу меньше. В чем может быть проблема?
Сообщения / Posts 4 | Из / From: Россия
| IP / IP: IP адрес / IP address |
ivved
Junior Member / Новичок
Участник № / Member № 6874
отправлено / posted
Спасибо, тестовый пример со скриншотом измеренных значений и проектом отправил на почту
Сообщения / Posts 4 | Из / From: Россия
| IP / IP: IP адрес / IP address |
отправлено / posted
В стандарте Modbus не оговорен порядок размещения FLOAT-числа в памяти. Во встроенном драйвере Trace Mode 6 по умолчанию предполагается, что в младшем регистре хранится младшая часть мантиссы, а в старшем – старшая часть мантиссы и порядок числа.
Судя по присланным Вами данным, в модуле ОВЕН МВ110-8А принят другой порядок размещения: в старшем регистре хранится младшая часть мантиссы, а в младшем – старшая часть мантиссы и порядок числа.
Для адаптации к подобным особенностям в Trace Mode 6 предусмотрены специальные настроечные средства (см. раздел документации “Обмен с контроллерами и УСО/Обмен по встроенным протоколам/Обмен по Modbus”).
Вам выслан файл конфигурирования запуска узла, который следует поместить в папку узла (см. раздел “Приложения/Задание параметров работы мониторов). Это должно исправить ситуацию.
Сообщения / Posts 17293 | Из / From: Россия
| IP / IP: IP адрес / IP address |