Стартовая страница › Форумы › Разработка и интеграция › MQTT (Message Queuing Telemetry Transport)
Помечено: MQTT, Коммуникатор
- В этой теме 152 ответа, 10 участников, последнее обновление 3 года, 7 месяцев назад сделано Mikhail.
-
АвторСообщения
-
02.03.2020 в 14:22 #14999manjey73Участник
Вы даже не правы на счет Modbus TCP. пример, ПЛК ОВен 100, 150, 154 — только один клиент может подключиться (один сокет)… Так что не все так однозначно как вам кажется.
02.03.2020 в 18:01 #15012MikhailМодератортолько один клиент может подключиться (один сокет)
Одно подключение не красит данные контроллеры )
По MQTT удобно закидывать текущие данные в облако и предоставлять данные другим системам.
Мне лично нравится OPC UA. Но нужно понимать, что клиент OPC UA, которым является Коммуникатор, должен знать IP-адрес или DNS-имя сервера — внутри сети с этим нет проблем, а если скада в облаке, то уже сложнее.19.07.2020 в 10:45 #16678Vladimir SavenkovУчастникДобрый день, Михаил.
В настоящее время обновляю RapidScada до последней версии и столкнулся с проблемой нормальной работы MQTT.Скачал драйвер по ссылке из WEB интерфейса.
Драйвер заработал с локальным MQTT mosquittoДальше началось веселье связанное с адресацией драйвера MQTT.
Ниже конфигурация MQTT: (KpMQTT_Config) и ссылка на Я диск с картинкой чтения данных драйвером.
В общих словах о проблеме:
— в KpMQTT_Config прописаны одни каналы, а в реальности другие:
— Канал 1 KpMQTT_Config — в Rapid выпадает на канал 600
— Канал 2 KpMQTT_Config — в Rapid выпадает на канал 601
— Канал 3 KpMQTT_Config — в Rapid выпадает на канал 602
— Канал 4 KpMQTT_Config — в Rapid выпадает на канал 603
— Канал 5 KpMQTT_Config — в Rapid выпадает на канал 5 (ПОПАЛ!!!!!!)
— Канал 288 KpMQTT_Config — в Rapid выпадает на канал 288 (ПОПАЛ!!!!!!)
— Канал 388 KpMQTT_Config — в Rapid выпадает на канал 388 (ПОПАЛ!!!!!!)
— Канал 488 KpMQTT_Config — в Rapid выпадает на канал 488 (ПОПАЛ!!!!!!)
— Канал 588 KpMQTT_Config — в Rapid выпадает на канал 588 (ПОПАЛ!!!!!!)
— Канал 688 KpMQTT_Config — в Rapid выпадает на канал 904
— Канал 788 KpMQTT_Config — в Rapid выпадает на канал 905
и так далее.
Каналы уже тестовые т.к. в моей конфигурации намного больше данных и потребовалось время что б понять какие каналы работаю, а какие нет, поэтому была создана тестовая конфигурация.При изменении конфигурации загрузка проходит штатно без замечаний.
Пробовал менять драйвера MQTT — старые не работают, новый работает только из WEB интерфейса и отсюда с форума с ya диска. Проблема остается неизменной — ошибка в адресах, поэтому невозможно настроится.
Спасибо за ответ.
————————————————-
<?xml version=»1.0″ encoding=»utf-8″?>
<DevTemplate><MqttParams Hostname=»127.0.0.1″ ClientID=»KpMQTTrs111″ Port=»1883″ UserName=»» Password=»»/>
<RapSrvCnf ServerHost=»127.0.0.1″ ServerPort=»10000″ ServerUser=»ScadaComm» ServerPwd=»12345″/>
<MqttSubTopics><Topic TopicName=»/mesparam1″ QosLevel=»0″ NumCnl=»1″/>
<Topic TopicName=»/mesparam2″ QosLevel=»0″ NumCnl=»2″/>
<Topic TopicName=»/mesparam3″ QosLevel=»0″ NumCnl=»3″/>
<Topic TopicName=»/mesparam4″ QosLevel=»0″ NumCnl=»4″/>
<Topic TopicName=»/mesparam5″ QosLevel=»0″ NumCnl=»5″/><Topic TopicName=»/mesparam111″ QosLevel=»0″ NumCnl=»288″/>
<Topic TopicName=»/mesparam113″ QosLevel=»0″ NumCnl=»388″/>
<Topic TopicName=»/mesparam114″ QosLevel=»0″ NumCnl=»488″/>
<Topic TopicName=»/mesparam115″ QosLevel=»0″ NumCnl=»588″/>
<Topic TopicName=»/mesparam116″ QosLevel=»0″ NumCnl=»688″/>
<Topic TopicName=»/mesparam117″ QosLevel=»0″ NumCnl=»788″/>
<Topic TopicName=»/mesparam118″ QosLevel=»0″ NumCnl=»888″/>
<Topic TopicName=»/mesparam119″ QosLevel=»0″ NumCnl=»988″/>
<Topic TopicName=»/mesparam110″ QosLevel=»0″ NumCnl=»88″/>
</MqttSubTopics>
<MqttPubTopics></MqttPubTopics>
<MqttPubCmds></MqttPubCmds>
<MqttSubCmds></MqttSubCmds>
<MqttSubJSs></MqttSubJSs>
</DevTemplate>
————————————————-
И результат (как вставить картинку не знаю) поэтому Я диск.
https://yadi.sk/i/HcQh3a2RVSj0KA
————————————————-20.07.2020 в 11:17 #16679greenfoxxУчастникДобрый день!
Приложите, пожалуйста, скрины таблицы входных каналов, а также Log.
Проверьте, загрузили ли Вы конфигурацию на сервер?01.08.2020 в 12:53 #16794Vladimir SavenkovУчастникДобрый день, Михаил.
Как уже писал ранее идет попытка перенести конфигурацию на последнюю версию RAPID SCADA.
Возникли проблемы с настройкой и работой драйвера MQTT.
Основная проблема — в файле KpMqtt_Config.xml указываются каналы в которые необходимо записывать данные из MQTT но когда смотрю в коммуникаторе (Коммуникатор \линии связи\КП у меня не совпадают каналы с указанными в KpMqtt_Config.xml (соответственно далее неправильное отображение т.к. не туда пишется)
Прошу помощи в поиске решения данной проблемы.
Прилагаю архив проекта (в котором есть файл KpMqtt_Config.xml)Что пробовал делать:
— Вместо Win7 попробовал Win10 -все то же самое (Вернулся обратно на Win7)
— Устанавливал различные версии KpMqtt.dll — не помогло
— Изменял,сокращал, полностью переписывал KpMqtt_Config.xml — не помогло (первые каналы попадают начиная с 600 и потом еще вкрапления других местах (изменений номеров каналов), но некоторые попадают правильно)В папку также положил данные работы Коммуникатора, логи (которые нашел)
Логи записаны после перезагрузки Коммуникатора (Смотреть в конец)
В Логе kp041 если его сравнить с KpMqtt_Config.xml видны все несовпадения каналовНа старой версии все работало без замечаний, Передача данных по MQTT и запись в долгосрочный архив настроена на 5с.
Ссылка на скачивание проекта и данных логов и др. https://yadi.sk/d/ex5B6nCgT6Zjxg
Прошу помощи разобраться в возникшей ситуации.
Владимир.01.08.2020 в 12:54 #16795Vladimir SavenkovУчастникПриложил (Развернутое описание в форуме).
https://yadi.sk/d/ex5B6nCgT6Zjxg02.08.2020 в 07:25 #16796RomirosУчастникУ Вас в базе привязка сигналов КП к нужным номерам каналов совпадает с тем, что в xml конфиге?
03.08.2020 в 14:21 #16811Vladimir SavenkovУчастникДобрый день,
конечно совпадает, база рабочая на предыдущей версии — все работает.
Поэтому и вопрос возник..
Но ошибка берется еще на стадии *.xml и каналы в коммуникаторе т.е. где-то в этом месте уже неправильно распределяются каналы.
Во вложении есть полностью проект. Там все совпадает с каналами в базе но есть лог из коммуникатора где каналы уже по другому стоят, что значить ошибка в чтении *.xml файла или еще где-то. Но не получается найти.03.08.2020 в 14:32 #16812manjey73УчастникУ вас в БД переменная Check0 под номером 100, а привязка в Коммуникаторе с номером 600.
з.ы. не настраивал mqtt ни разу, но уже это бросается в глаза.
03.08.2020 в 15:55 #16813Vladimir SavenkovУчастникДобрый день,
Все привязки делаются в KpMqtt_Config.xml и там этот канал на 100, а сам Коммуникатор его ставит на 600.
В этом в общем то и проблема — неправильно привязываются каналы, при этом конфигурация рабочая — я ее использую на предыдущей версии RAPIDSCADA.03.08.2020 в 16:06 #16815greenfoxxУчастникДобрый день!
Ошибка в работе происходит из-за несоответствии таблицы Входных каналов и конфигурационного файла.
В коммуникаторе таблица формируется на основе конфигурационного файла и таблицы входных каналов следующим образом:
Signal — формируется автоматически, начиная с 1 с шагом +1.
Name — имя TopicName из тега MqttSubTopics. Берется по порядку из файла.
Channel — из таблицы входных каналов по номеру сигнала.
Из конфигурационного файла в данном случае номер канала CnlNum не берется.
Таким образом, в Вашем случае номер канала в первой строке будет 600, так как сигнал 1 (первая строка из конфига TopicName=»SMS/Check0″) соответствует строке в т. Входных каналов с номером канала 600 по сигналу 1. Во второй строке входной канал будет 601, так как сигнал 2 (вторая строка из конфига TopicName=»SMS/Check1″) соответствует строке в таблице Входных каналов с номером канала 601 по сигналу 2. И т.д.
Дублирование номеров сигнала в таблице Входных каналов недопустимо (у Вас сигнал 10 дублируется, например)Для решения проблемы, заполните таблицу входных каналов в соответствии с конфигурационным файлом, избегая дублирования номеров сигнала. Т.е., например номер канала — 100, сигнал — 1, Имя — Check0. Порядок в файле и таблице должен совпадать.
В следующей версии Rapid SCADA учтем данный момент. Спасибо за полное описание проблемы.
03.08.2020 в 16:13 #16819greenfoxxУчастникСкрин из таблицы Входных каналов
https://imgur.com/a/pHfjNXi03.08.2020 в 16:27 #16820manjey73УчастникВот по этому я и делаю в своих xml параметр «Номер сигнала» и формирую таблицы так, чтобы можно было отключать активность сигналов и не позволять меняться номерам сигналов.
Когда захотел — включил, когда захотел — выключил и никто никуда не уползает.
А вариант по умолчанию тег = № сигнала — 1 в корне пагубный.
03.08.2020 в 18:07 #16825MikhailМодераторВ версии 6 сделаем привязку входного канала к тегу КП по текстовому коду тега — это упростит настройку.
04.08.2020 в 07:36 #16838Vladimir SavenkovУчастникВсем большое спасибо!
Приведу все в ному, попробую. -
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.