Шлюз ModbusTCP, как передать статусы устройств

Добрый день.
Допустим WB7 опрашивает 10 устройств по ModbusRTU. Все эти 10 устройств я прописываю в ModbusTCP шлюзе WB7 (Server/Slave).

Вопрос: Как через шлюз ModbusTCP (Server/Slave) WB7 передавать статусы (0-не в сети, 1-в сети) опрашиваемых устройств по ModbusRTU?

Добрый день.
Уточните, что подразумеваете под “передавать статусы (0-не в сети, 1-в сети)”?

Насколько я понимаю, данных статусов нет нигде как сущности, т.е. вы никак не передадите через шлюз ModbusTCP того, чего нет.

Я понимаю вопрос так: как мне проверить есть ли обмен между WB мастером и slave-устройствами?
Обратите внимание, как формируется структура топика при ошибке опроса устройства. Допустим, вы можете создать виртуальное устройство для контроля статуса Modbus-устройства и написать правило, которое проверяет, к примеру, есть ли ошибка при чтении какого-либо регистра с устройства и при наличии данной ошибки переводить в соответствующее состояние виртуальное устройство, а затем включить данное виртуально устройство в wb-mqtt-mbgate.

Да, имелось ввиду, что:

Я же могу в wb-mqtt-mbgate добавить сразу значение meta-топика, например: wb-mr3_48/K1#error. И если тип регистра в wb-mqtt-mbgate поставить “текстовый”, то буду считывать значение “r” при ошибке (в кодировке ASCII) или так не получится?)

1 лайк

Да. Попробуйте таким образом.

Что-то не получается:(

Опишите более подробно, что не получается, чтобы я мог как-то это перепроверить у себя.

Пробовал в настройках wb-mqtt-mbgate записать канал MQTT в таком формате, по идее должен передаваться символ r/w/p при ошибке, но так не работает.

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

Добрый день.
Да, уже занимаюсь изучением JS, чтобы что-то осмысленное написать.

Был бы признателен, если бы смогли написать пример реализации такой задачи:
Создать виртуальную переменную (топик для привязки к mbgate), которая бы принимала значение=0, если нет контролируемого топика или есть ошибка, и принимала бы значение=1, если существует контролируемый топик и нет ошибок.

Если я правильно понял, то помощи можно не ожидать, верно?)

В качестве примера анализа meta можно использовать Сообщение при отключении или неисправности в Telegram - #3 от пользователя BrainRoot

2 лайка