-
Господа, подскажите как выполнтиь реконнект при потере связи?
Библиотека MQTT_OwenPLCv1
MQTT отправка работает, все отлично ... до сбоя связи с сервером. При потере связи с сервером подключение MQTT обрывается и не пытается восстановиться, зависает.
При этом xError показывает ошибку 32772 "Is returned when FB_SocketReceive is called, if the client socket is no longer connected with the server.",
xPublish в true.
Как я понимаю сокет не сбрасывается, MQTT пытается долбиться по несуществующему на сервер
Сам себе отвечу и поделюсь решением (кривым, я .Net-чик):
В библиотеке MQTT_OwenPLCv1 при потеои связи с сервером TcpClient переходил в состояние STATE_TX и, если время WatchDog выходит, скидывает в STATE_ERROR_TRAP откуда нет выхода
В общем в состоянии STATE_TX поставил заглушку типа Return при условии ошибки m_diReturn
Теперь сокету приходится бесконечно ждать возможности отправки
Также в библиотеке MQTT_OwenPLCv1 добавил возможность указания извне идентификатора клиента sOwner
Прикрепляю проект со всеми библиотеками для Овен ПЛК100
Последний раз редактировалось ska-perm; 21.01.2022 в 08:40.
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
-
Правила форума