Добрый день, у нас мастер по команде общего опроса 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. Вероятно, ваше ПО не ожидает таких сообщений после начала общего опроса?
Добрый день.
Есть ли еще вопросы про работу сервиса?
В мэк мы посылаем разные топики, полученные из 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.
Добрый день!
Удалось ли решить вопрос?