Эх. Натолкнулся опять на моменты, которые пока не могу осознать. Теперь ситуация такова. Есть FB, от которого созданы два инстанса. В каждом инстансе свой MQTT Client, который настроен на разные Subscribe topic. Инстансы вызываются один за другим, в каждом раз в 3 секунды выставляется i_xSubsribe := TRUE; и затем в каждом инстансе на каждом цикле выполнения программы вызывается mqtt(); Что я наблюдаю в итоге?
1. Допустим, в подписанных в MQTT_Client топиках установлены одинаковые значения (строка "ON"). В брокере я меняю один из топиков в "OFF". И вижу, что оба инстанса получили этот OFF, хотя ожидал, что только один инстанс должен был его получить. Если опять значение топика в брокере установить в ON - эту строку опять получат оба MQTT_Client.
2. Через некоторое время (3-4 минуты) MQTT Client выбрасывает Exception. Какое - не могу понять (где вообще это увидеть?). При этом q_sDiagMsg принимает значение "$04$10", а в q_sLastReceivedMessage выводится полная абракадабра.
Может ли такое произойти из-за одновременного запроса от двух клиентов к брокеру (вызов идет в одном цикле)? Как понять, в чем причина exception?




Ответить с цитированием