Модуль реле 6-канальный (ModBus-RTU WB-MR6C)и Modbus Poll

Купил у вас Модуль реле 6-канальный (ModBus-RTU WB-MR6C) для расширения существующей автоматизации дома на оборудовании фирмы Разумный дом (контроллер PWU12). Данный блок куплен для подключения датчиков протечки фирмы Гидролок. В описании к Модулю реле 6-канальный (ModBus-RTU WB-MR6C) написано, что входы по умолчанию, привязаны к выходам, что в реальности так и есть. Есть возможность отвязать входы от выходов, но здесь возник вопрос. Все свои блоки РД настраивал через программу Modbus Poll, но для WB-MR6C это оказалось проблематично. При подключении указывает, что значения не верные, при этом настройки подключения сделаны правильно. При этом поменять значения регистра можно также как и адрес устройства. Задача -изменить значения входов для работы с датчиками протечек. Какой софт можно использовать для этого. Кстати, при подключении к контроллеру можно работать с реле, но работа не стабильная, нужно нажимать на значок по 3 раза.

Есть же в описании к модулю, как изменить адрес/регисры.
Например, заходите на WB SSH-ой, останавливаетете процесс wb-mqtt-serial, modbus’овской утилитой на известный адрес модуля пишете нужное значение в нужный регистр.
Например:
service wb-mqtt-serial stop
modbus_client --debug -mrtu -pnone -s2 /dev/ttyAPP1 -a33 -t0x06 -r5 3
service wb-mqtt-serial start

a 33 – 33 адрес (slave address) модуля (у меня такой, к примеру).
0x 06 – записать в один регистр хранения (WriteSingle Register).
r 5 – регистр # 5 (режим работы кнопок).
3 – 0: кнопки без фиксации; 1: выключатель с фиксацией; 3: отключить управление с помощью кнопок

Всё. Все физические “входы” будут изменять соотвествующие контролы (Input *) без изменения состояения реле. Можно изменить поведение конкретного входа (поведение будет отличаться от других).

Добрый день, Urasik!

В ModbusPoll выбираете в строке команд “06” Write single register" (Alt-F6), в окошке указываете адрес (Slave ID), регистр (Address) 5 и Value – 3. Затем нажимаете Send. Так вы отвяжете все входы от всех выходов.

Значок по три раза вы нажимаете в интерфейсе PWU12? Скорость, четность, стопбиты правильно настроены? Что за линия? общий ли GND?

Спасибо всем за ответы. Проблема в том, что у меня уже есть котроллер фирмы Разумный дом Rabbit PWU12. Мне не хватило модулей входов и выходов и я решил "расширится "модулем WB-MR6C,то есть сэкономить денег. Обычно с оборудованием РД используется программа Modbus Poll, но с данным блоком она работает не корректно, то есть я не могу посмотреть значения регистров. При всем этом, могу менять регистры, посылкой команд. Согласно инструкции изменил адрес устройства, отвязал входы от выходов посылкой команды 3 в реестр 5. Далее прописываю вход в контроллере и выставляю обновление входа каждую секунду. Затем замыкаю gnd и канал перемычкой, но изменение канала не отображается. Все параметры( скорость, четность и стоп биты 9600-8-n-2) совпадают у обоих производителей. Надо где-то покапать ещё но пока не знаю где.

А это какая-то демо-версия или версия с привязкой к оборудованию? Она на чем запускается, на ПК? А в качестве мастера шины используется сам PWU12?

Modbus Poll в системах Разумный дом используется для конфигурации подключеных Modbus RTU блоков. То есть входы имеют разнообразные типы и их можно конфигурировать с помощью программы. Эта программа работает с пк. Купили блок, выставили адрес и типы входов. Далее подключаете к контроллеру и там задаете номер блока, смещение и прочее. В контроллере есть свой программатор на языке С. Все что нужно по подсказкам сделать скрипты.

Если нужно больше информации по этой системе, спрашивайте.

Так всё у вас происходит: Настройка при помощи утилиты “Modbus Poll”, да?
Преобразователь USB-RS485 вы используете при настройке?

Да, всё верно, с помощью этой программы нужно задать адрес и типы вводов. Все остальное делается контроллере.

Преобразователь нужен только для первичной настройки модулей. В принципе, регистры можно менять и через контроллер, но это дольше.

Вот смотрите, что я нашел в документации на ваш контроллер в разделе “5.4.4. Общие особенности работы с компонентами”: “Modbus: (Coils, Holding Register, Input Register)
Данные со связанных устройств контроллером не запрашиваются. Для обновления текущего состояния необходимо считать значение из связанного устройства функцией «Обновить компонент» сценария.
Если вы работаете через преобразователь напрямую с устройством, записывая и считывания значения регистров контактов реле, то все работает, как надо? Или тоже через раз на третий?

Сценарий обновления для входа прописан с интервалом в 1 секунду. Реле по прежнему срабатывают по разному, бывает, что сразу а бывает и со второго или третьего раза. С реле больших проблем не вижу в моем случае, а вот то, что входы не реагируют на изменения, это плохо. И что делать, не знаю. Пытался менять значения входов 0 и 1 и 100 и 101. Жаль, что не вышло сэкономить и скорее всего придется покупать блок фирмы РД. Какая-то не совместимость.

А что с “входами” не так? Коротеньк замыкаете - не “срабатывает”? Долго (или выключатель с фиксацией) - срабатывает?

А получается управлять релейным модулем через USB-RS485 конвертер? Минуя “зайку”? Просто напрямую?

В том то и дело, что если замыкаю вход с gnd, то ничего и не происходит. Уже менял разные настройки и прочее. Не хочет, хоть ты лопни.

Напрямую управлять реле можно через Modbus Poll

Нее, я не программно, я железно: к чему у вас подключен модуль реле, когда вы запускаете Modbus Poll?

А что должно происходить при замыкании входов с GND – у вас в контроллере что-то прописано, да? Считывание состояния входов и реакция на их состояние? Или там какой-то иной уровень абстракции, чем просто “вход 1” - “устройство 2”?

Вы совершенно уверены, что релейный модуль исправен, так? Но есть проблема управлять им разумдомовским контроллером? Что-то я запутался вообще вконец! :slight_smile:

Давайте попробуем внести ясность, что к чему подключается. До подключения любых элементов к контроллеру , нужно через переходник подключить новый блок к пк и с помощью программы Modbus Poll настроить адрес устройства и тип входов. После подключается настроеный блок к контроллеру (отключив его от пк). В контроллере настраиваем вход путем выбора адреса, смещения, тип input register. Ещё нужно прописать какие значения принимает элемент при изменении 1 или 0. В моем случае адрес релейный модуль 7, смещение 2 (от 0 до 6). В родном РД релейном модуле при замыкании общего провода и входа происходит изменение состояния с 0 на 1. В моем блоке этого не произошло. Блок скорее всего здоровый, так как при привязке входов к выходам все работает как в инструкции. Таким образом в настоящее время не могу управлять входами. Но вся тема началась с того, что в программе Modbus Poll не отображается регистры. При этом продукция РД с протоколом Modbus RTU отображается нормально. Даже китайские штучки отображаются.

Добрый день!

Про совместимость нашего устройства с контроллером Разумного дома мы ничего, к сожалению, сказать не можем. То, что мы гарантируем как производитель - это то, что наши устройства (в данном случае, релейный модуль) правильно работают по протоколу Modbus.

Поэтому давайте сосредоточимся на проверке работоспособности нашего релейного модуля.

Для этого временно уберите все устройства Разумного дома, а наш модуль подсоедините к ПК через переходник USB-RS485. Далее, с помощью любой утилиты (в том числе Modbus Poll) получите значения следующих регистров:

  1. 128 holding
  2. 5 holding
  3. 0 discrete
    Затем замкните вход под номером 1 на землю (GND), и получите значение регистра
  4. 0 discrete

и напишите это всё сюда. Если хотите, можете показать скриншоты.

Так в том то все и дело, что регистры не отображается в программе Modbus Poll. Пишет invalid value data. Команды послать я могу и реле управлять тоже получается. И все что вы рекомендуте сделать, тоже работает. Завтра скину скриншот