MQTT (Message Queuing Telemetry Transport)

Помечено: ,

Просмотр 15 сообщений - с 136 по 150 (из 153 всего)
  • Автор
    Сообщения
  • #14999
    manjey73
    Участник

    Вы даже не правы на счет Modbus TCP. пример, ПЛК ОВен 100, 150, 154 — только один клиент может подключиться (один сокет)… Так что не все так однозначно как вам кажется.

    #15012
    Mikhail
    Модератор

    только один клиент может подключиться (один сокет)

    Одно подключение не красит данные контроллеры )

    По MQTT удобно закидывать текущие данные в облако и предоставлять данные другим системам.
    Мне лично нравится OPC UA. Но нужно понимать, что клиент OPC UA, которым является Коммуникатор, должен знать IP-адрес или DNS-имя сервера — внутри сети с этим нет проблем, а если скада в облаке, то уже сложнее.

    #16678
    Vladimir 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
    ————————————————-

    #16679
    greenfoxx
    Участник

    Добрый день!
    Приложите, пожалуйста, скрины таблицы входных каналов, а также Log.
    Проверьте, загрузили ли Вы конфигурацию на сервер?

    #16794
    Vladimir 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

    Прошу помощи разобраться в возникшей ситуации.
    Владимир.

    #16795
    Vladimir Savenkov
    Участник

    Приложил (Развернутое описание в форуме).
    https://yadi.sk/d/ex5B6nCgT6Zjxg

    #16796
    Romiros
    Участник

    У Вас в базе привязка сигналов КП к нужным номерам каналов совпадает с тем, что в xml конфиге?

    #16811
    Vladimir Savenkov
    Участник

    Добрый день,
    конечно совпадает, база рабочая на предыдущей версии — все работает.
    Поэтому и вопрос возник..
    Но ошибка берется еще на стадии *.xml и каналы в коммуникаторе т.е. где-то в этом месте уже неправильно распределяются каналы.
    Во вложении есть полностью проект. Там все совпадает с каналами в базе но есть лог из коммуникатора где каналы уже по другому стоят, что значить ошибка в чтении *.xml файла или еще где-то. Но не получается найти.

    #16812
    manjey73
    Участник

    У вас в БД переменная Check0 под номером 100, а привязка в Коммуникаторе с номером 600.

    з.ы. не настраивал mqtt ни разу, но уже это бросается в глаза.

    #16813
    Vladimir Savenkov
    Участник

    Добрый день,
    Все привязки делаются в KpMqtt_Config.xml и там этот канал на 100, а сам Коммуникатор его ставит на 600.
    В этом в общем то и проблема — неправильно привязываются каналы, при этом конфигурация рабочая — я ее использую на предыдущей версии RAPIDSCADA.

    #16815
    greenfoxx
    Участник

    Добрый день!
    Ошибка в работе происходит из-за несоответствии таблицы Входных каналов и конфигурационного файла.
    В коммуникаторе таблица формируется на основе конфигурационного файла и таблицы входных каналов следующим образом:
    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 учтем данный момент. Спасибо за полное описание проблемы.

    • Этот ответ был изменен 3 года, 7 месяцев назад от greenfoxx.
    • Этот ответ был изменен 3 года, 7 месяцев назад от greenfoxx.
    #16819
    greenfoxx
    Участник

    Скрин из таблицы Входных каналов
    https://imgur.com/a/pHfjNXi

    #16820
    manjey73
    Участник

    Вот по этому я и делаю в своих xml параметр «Номер сигнала» и формирую таблицы так, чтобы можно было отключать активность сигналов и не позволять меняться номерам сигналов.

    Когда захотел — включил, когда захотел — выключил и никто никуда не уползает.

    А вариант по умолчанию тег = № сигнала — 1 в корне пагубный.

    #16825
    Mikhail
    Модератор

    В версии 6 сделаем привязку входного канала к тегу КП по текстовому коду тега — это упростит настройку.

    #16838
    Vladimir Savenkov
    Участник

    Всем большое спасибо!
    Приведу все в ному, попробую.

Просмотр 15 сообщений - с 136 по 150 (из 153 всего)
  • Вы должны авторизироваться для ответа в этой теме.