Автор Тема: MQTT arOPC  (Прочитано 1713 раз)

Оффлайн JonyBest

  • Newbie
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: MQTT arOPC
« Ответ #15 : 13.08.2020, 22:57:25 pm »
Доброго времени суток!
Есть ощущение что OPC сервер не корректно работает на отправку по QoS 2, скорее отправка происходит по QoS 0. Нет гарантированной доставки сообщения. Т.е. если плохая связь или контроллер в момент отправки сообщения от OPC сервера был занят, то сообщение не доставляется. Хотя при использовании других клиентов таких проблем нет.

Оффлайн Айрат

  • Administrator
  • Full Member
  • *****
  • Сообщений: 227
    • Просмотр профиля
Re: MQTT arOPC
« Ответ #16 : 14.08.2020, 08:38:14 am »
Добрый день!

Надо посмотреть дошли ли данные от OPC сервера до брокера.
Дело в том, что за доставку отвечает отправитель, задача OPC сервера доставить данные до MQTT брокера, а дальше уже не его зона ответственности (https://www.hivemq.com/blog/mqtt-essentials-part-6-mqtt-quality-of-service-levels/).

MQTT брокер можно настроить (https://mosquitto.org/man/mosquitto-conf-5.html), что бы выдавал подробные логи.
Тогда будет точно видно где проблема.

Айрат

Оффлайн JonyBest

  • Newbie
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: MQTT arOPC
« Ответ #17 : 14.08.2020, 09:40:05 am »
Спасибо!
 Пробовал и с отправкой данные непосредственно с OPC сервера.
 Я правильно понимаю, что именно клиент должен отправлять сообщение до тех пор, пака не получит подтверждения в получении пакета. А так как OPC сервер - это посредник между клиентом и MQTT сервером, то он не получает сведений о дошел пакет информации или нет, соответственно отправляет только один раз. Так как в своем проекте я пользуюсь СКАДой, это не клиент MQTT. Значит организация работы у меня будет по QoS 0 что бы я не выбрал.
 Правильный вывод?
« Последнее редактирование: 14.08.2020, 09:57:03 am от JonyBest »

Оффлайн Айрат

  • Administrator
  • Full Member
  • *****
  • Сообщений: 227
    • Просмотр профиля
Re: MQTT arOPC
« Ответ #18 : 14.08.2020, 11:13:19 am »
Похоже я не до конца понимаю как у вас там всё работает.
Набросайте схему пожалуйста, кто к кому и как подключен.

Айрат

Оффлайн JonyBest

  • Newbie
  • *
  • Сообщений: 11
    • Просмотр профиля
Re: MQTT arOPC
« Ответ #19 : 14.08.2020, 12:34:04 pm »
На сервере установлено:
1. MQTT брокер Mosquitto-1.6.10a
2. arOPC сервер
3. Simple-Scada

Контроллер по MQTT через вифи общается с MQTT брокером
Simple-Scada через arOPC сервер получает данные от MQTT брокером

Оффлайн Айрат

  • Administrator
  • Full Member
  • *****
  • Сообщений: 227
    • Просмотр профиля
Re: MQTT arOPC
« Ответ #20 : 14.08.2020, 13:56:42 pm »
Спасибо!
 Пробовал и с отправкой данные непосредственно с OPC сервера.
 Я правильно понимаю, что именно клиент должен отправлять сообщение до тех пор, пака не получит подтверждения в получении пакета. А так как OPC сервер - это посредник между клиентом и MQTT сервером, то он не получает сведений о дошел пакет информации или нет, соответственно отправляет только один раз. Так как в своем проекте я пользуюсь СКАДой, это не клиент MQTT. Значит организация работы у меня будет по QoS 0 что бы я не выбрал.
 Правильный вывод?

Не совсем.
Если вы с обеих сторон выберите QOS2, то вся система по нему и будет работать.
В MQTT отправитель отвечает за доставку пакета, не важно кто это, MQTT клиент или брокер. Кто отправил тот и в ответе.
MQTT клиенты, которые подключились к MQTT брокеру с QOS2, знают только о том дошёл их пакет до брокера или нет. А вот
информации от том дошёл ли этот пакет, до подписавшегося на топик клиента, они не имеют.

Если смотреть на вашу схему, то получается что пакеты от OPC сервера в любом случае попадают в MQTT брокер, т.к. весь обмен происходит внутри одной машины. И ещё, OPC сервер не отправляет повторяющиеся данные. Т.е. если вы, к примеру, со скады всё время будете писать в тег 1, пройдёт только первая запись, а потом ничего происходить не будет, т.к. значение тега не меняется.

Айрат