Mqtt

Мне нужно получить данные с MQTT брокера в скаду Trace Mode. Она не поддерживает MQTT. Говорят, нужен OPC. Где его взять?

Как вариант попробовать мост https://www.npmjs.com/package/mqtt2opcua
Ну или через Modbus TCP по аналогии:

Интересный вариант через Modbus TCP. Но не пойму, почему нужно прописывать IP адрес контроллера? Ведь контроллер находится в какой-то чужой подсети. И мы его можем не знать. Может надо IP адрес MQTT брокера?

Если у вас брокер не не контроллере (через MQTT-bridge например) - то конечно брокера.

Но у брокера (сервера MQTT) есть имя пользователя и пароль. В настройках Modbus их некуда писать.
Clipboard01

На используемом вами брокере есть сервис Modbus TCP? Не понимаю, про какой пароль вопрос.

Теперь я не понимаю. Как на брокере может быть сервис Modbus TCP? Это же просто облако. Не важно, как туда попали данные. Нам их просто взять от туда надо. Для этого придуман протокол MQTT. Или не так?

Опишите подробней используемую вами схему. Вы получаете (планируете получать) данные с контроллера непосредственно или с какого-то промежуточного брокера?

Контроллер WB отсылает данные по MQTT на брокер. Мне в скаде Trace Mode надо эти данные получить. Техподдержка скады говорит что нужен OPC сервер, что его нужно спрашивать у разработчика контроллеров. На сервер (брокер) у меня вход имеется (логин, пароль). Эти данные я могу видеть с помощью MQTT Explorer. Так же я их получал в скаду Masterscada. Она уже имеет в составе MQTT протокол. А в Trace Mode нет такого протокола.

Вот, теперь гораздо понятней. То есть схема:
WB-контроллер с MQTT <-(мост)-> Сервер с MQTT —>(?) —> Trace Mode
Вам проще всего поставить на свой сервер MQTT мост для протокола OPC.
Мост ставьте отсюда: https://www.npmjs.com/package/mqtt2opcua он подпишется на /# (или куда сконфигурируете) MQTT и отдаст топики уже по OPC.

А на компьютере с установленной скадой надо тоже OPC сервер установить?

Если в вашем ПО уже есть клиент OPC - то нет.

Скорее всего в ПО Trace Mode нет OPC клиента. Там можно выбрать компонент OPC-server или OPC HDA-server. В настройках Этого компонента предлагается выбрать сервер, установленный на компьютере (пункт Сервер).
Clipboard01
Значит на компьютере уже должен быть установлен OPC-сервер. Этот OPC связывается с сервером (брокером), или с OPC, установленном на брокере. Так я понимаю процесс передачи данных?

Не подскажу про это ПО. Насчет него лучше узнать в документации. Но предполагаю что в качестве сервера можно выбрать не только локальныq, доступ же по сети.

Добрый день!

Строго говоря, вопрос не относится к Wiren Board.
Как я понял, вы забрали данные с Wiren Board на собственный сервер с MQTT-брокером, и оттуда хотите их передать в вашу SCADA.
Если ваша SCADA не поддерживает MQTT, то, видимо, это никак не сделать, и придётся искать более современную SCADA.
Другой вариант - чтобы SCADA забирала данные напрямую с контроллера Wiren Board. Тогда можно посмотреть другие протоколы - например, Wiren Board может работать как Modbus TCP Slave. Но для этого нужно организовывать подключение между контроллером Wiren Board и SCADA.

Вот поэтому и нужен OPC-сервер, который будет читать данные с MQTT-брокера и передавать их в скаду. Но, похоже, что такого OPC ещё нет.

Есть, почему же нет Debian -- Error

А мост между mqtt и орс я дал тут: