Общий опрос

Добрый день, у нас мастер по команде общего опроса wirenboard’a принимает в ответ значения присланные c сot = 3, а не с сot = 20. Также, иногда без причины присылает сигналы со значением сot = 3, когда сигнал не менял значения. Что засоряет канал и логи мастера.

Добрый день.
Простите но я не понимаю про что вы пишете.
Что такое “qot”, cot"?

COT (Cause of Transmission)
QOI (Qualifier of interrogation)
Пишу про общий опрос станции wirenboard. Общий опрос это команда протокола МЭК 104, в других протоколах не слышал, что такие команды имеются.
Процедура общего опроса инициируется клиентом передачей APDU C_IC = 100, COT = 6, QOI = 20. Терминал подтверждает начало общего опроса ответом C_IC = 100, COT = 7, QOI = 20, за которым следуют M_SP = 1, COT = 20, содержащие значения дискретных событий, зарегистрированные на момент начала опроса. В одном APDU M_SP_D содержится восемь дискретных значений. Затем передаются аналоговые измерения в формате без меток времени M_ME = 9,11,13. После передачи последнего блока данных, клиенту передается C_IC = 100, COT = 10, QOI = 20.
Мы с сервера по протоколу МЭК-104 посылаем в wirenboard команду общего опроса (C_IC = 100, COT = 6, QOI = 20) , а в ответ получаем причину передачи (COT) = 3.

Сервис wb-mqtt-iec104 работает как простой шлюз между MQTT и МЭК104.
Все опубликованные в MQTT сообщения сразу отсылаются в МЭК с COT=3. Нет никаких проверок и логики вокруг значений самих сообщений. Т.е. если в MQTT опубликовано одно и то же значение несколько раз подряд, то столько же раз оно и будет отправлено в МЭК. Логику публикации надо настраивать на стороне сервиса, который публикует. В вашем случае надо смотреть, что вы транслируете в МЭК, и какой сервис выступает источником этих данных. В нём и надо настраивать логику публикации.

На запрос с QOI=20 шлюз шлёт ответ с COT=20. Но, если есть много публикаций в MQTT, могут вклиниться сообщения с COT=3. Вероятно, ваше ПО не ожидает таких сообщений после начала общего опроса?

2 лайка

Добрый день.
Есть ли еще вопросы про работу сервиса?

В мэк мы посылаем разные топики, полученные из wb-rules, полученные напрямую из устройств, как дискреты, так и аналоги. Помимо wb-rules в брокер поступают значения из wb-mqtt-mbgate. А уже сам шлюз все это посылает в wb-mqtt-iec104.

Настраивать в шлюзе mqtt-iec104?

Много это сколько? Публикаций одного топика или в целом? На данный момент COT=3 появляется, только при принудительной команде со станции - Общий опрос. Да вы правы сообщения вклиниваются, тк после cot=3, получаем cot=20.

На данный момент слушаем шлюз мэк104 командой:journalctl -u wb-mqtt-iec104 -f, чтобы определять, что посылается и приходит, но с расшифровкой пока трудности.

Нет. Я уже написал, что wb-mqtt-iec104 не имеет никаких настроек. Что опубликовано в MQTT сразу же отправляется в МЭК104. Т.е. вам надо смотреть кто в MQTT публикует, и там настраивать.

COT=3 отправляется сразу, как что-то опубликовалось в MQTT.
COT=20 - по запросу. Если во время обработки запроса, что-то опубликуется в MQTT, будет сообщение COT=3, потом COT=20.

Добрый день!
Удалось ли решить вопрос?