PDA

Просмотр полной версии : ПД150....R получение показа по modbas



Alex Pivov
07.01.2022, 11:51
Установлен датчик ПД150....R, точный тип не суть дела - на выходе он должен работать по модбасу. Подключили, получили, интересуют только показания, по модбас списку, адрес 0013, переменная 4 байтная, поэтому, это уже домыслы пошли, передается в 2 регистра баса, 13 и 14, хочется в это верить. Числа я получаю, на контроллер regul r200 , он с codesys, и пытаюсь их свернуть обратно, в типа с плавающей точкой. Свёрнутое число не имеет ничего общего с исходными показаниями. ВОПРОСы: те ли адреса, какой порядок байт , может их местами поменять надо? Может в регистрах ещё нужна по байтовая реверсия? В некоторых кортроллерах так. Если по итогу: какова методика получения исходного значения.

Евгений Кислов
07.01.2022, 12:02
те ли адреса

Адреса регистров измеренного давления - 0x0013-0x0014 (HEX).


может их местами поменять надо?

Может быть - это устанавливается опытным путем.


Если по итогу: какова методика получения исходного значения.

1. Считать значения регистров 0x0013-0x0014 с помощью функции 0x03 (Read Holding Registers).
2. Преобразовать их в проекте для Epsilon LD в переменную типа REAL удобным вам способом.

Alex Pivov
07.01.2022, 12:46
Да, получаю, преобразовываю. И даже цифры вижу. В регистрах что то типа, в 13м = 16484, в 13м= 18905, ну они меняются конечно. При слиянии в реал значение тоже плавает, и что характерно, даже рядом не бывает с тем, что на экране, то 1,2345677 с е-18, через 5 секунд, 2,3567 с е+16. Реально на экране 3,2. И даже с учётом шкалы от -500 па до +500 па, хотелось бы такую скачку не видеть и хоть какие то значения из диапазона.

Евгений Кислов
07.01.2022, 13:09
Да, получаю, преобразовываю

Покажите скриншотами, как вы выполняете преобразование.

kondor3000
07.01.2022, 13:51
Да, получаю, преобразовываю. И даже цифры вижу. В регистрах что то типа, в 13м = 16484, в 13м= 18905, ну они меняются конечно. При слиянии в реал значение тоже плавает, и что характерно, даже рядом не бывает с тем, что на экране, то 1,2345677 с е-18, через 5 секунд, 2,3567 с е+16. Реально на экране 3,2. И даже с учётом шкалы от -500 па до +500 па, хотелось бы такую скачку не видеть и хоть какие то значения из диапазона.

Пока не расставите байты и регистры в правильном порядке, так и будут непонятные цифры (будут прыгать от + к -), смотри скрин 58640

Alex Pivov
07.01.2022, 13:55
Отправляю. Всё ж думаю фишка с перестановкой байт. В инстре про модбас на стр.66 описано, но хочется знать в какой порядок надо переставлять, а то вариантов много.

Евгений Кислов
07.01.2022, 14:00
Отправляю. Всё ж думаю фишка с перестановкой байт. В инстре про модбас на стр.66 описано, но хочется знать в какой порядок надо переставлять, а то вариантов много.

Посмотрите рис. 4.8.8 - там показано, что можно привязать отдельные WORD из объединения к полям канала.
Варианта как их привязать - всего два (0/1 и 1/0). Попробуйте для начала это проверить.

kondor3000
07.01.2022, 14:13
Отправляю. Всё ж думаю фишка с перестановкой байт. В инстре про модбас на стр.66 описано, но хочется знать в какой порядок надо переставлять, а то вариантов много.

При перестановке регистров местами будет 3.128418 58645

Alex Pivov
07.01.2022, 14:32
Байты попереставлять в разных вариантах вроде бы не сложно, но эти контроллеры regul это то ещё испытание. После каждого обновления проги codesys , перезапуск, и занимает он по 20-30 минут. Зубы крошатся уже. Вот и думал , датчик ОВЕН и форум овен, может специ сразу и скажут как от их датчиков получить результат, чисто чтоб зубы сберечь.

Alex Pivov
07.01.2022, 15:04
Да, спасибо. Действительно, перестановки регистров хватило. Изменил порядок и 30 минут перезапускался. Но сейчас значение вижу. Все спасибо за помощь. Итог, датчики овен по модбасу требуют обратный порядок регистров - если показания, то сначал рег.14, вторым рег.13. В шестнадцатиричной номера.