Драйвер KpMQTT

Помечено: 

Просмотр 15 сообщений - с 1 по 15 (из 79 всего)
  • Автор
    Сообщения
  • #2556
    Vyacheslav
    Участник

    Собрал драйвер KpMQTT.dll для взаимодействия коммуникатора по протоколу MQTT. На текущий момент реализована возможность подписки на сообщения с 0 QoS.
    Основа для драйвера взята отсюда https://github.com/ericvoid/StriderMqtt
    Архитектура этой библиотеки позволяет общаться с MQTT брокером в режиме опроса, что удачно соотносится с режимом работы коммуникатора.

    Библиотека и темплейт в архиве по ссылке: http://bergrid.trancelaciya.com/KpMQTT.zip

    В параметрах для линии связи в разделе конфигурации КП для опции:
    — Пауза (delay) необходимо установить значение 60.
    — Тип Канал связи выбрать не задан.

    Для тестирования можно использовать общедоступный брокер iot.eclipse.org

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

    Замечательно!

    Может быть выложите исходники драйвера на github? Тогда было бы проще скачивать, отслеживать модификации, обновлять в случае изменения базовых методов в ScadaCommCommon.dll. Без исходников через некоторое время (обычно несколько месяцев) dll драйвера станет не актуальной, т.к. постоянно совершенствуются некоторые моменты в общих библиотеках.

    #2569
    Vyacheslav
    Участник

    Выложил пока как получилось на GitHub https://github.com/bersim/OpenKPs

    Код еще надо оптимизировать (неплохо будет если кто то сможет указать на явные недочеты , будет полезно для изучения и понимания) и дописывать функционал:
    1. Выбор режима взаимодействия с брокером
    2. Выбор типа QoS
    3. Добавить параметры имя пользователя и пароль для брокера
    4. Публикации топиков по команде. (тип публикации: значение, текущий срез сырым массивом байт, текущий срез в формате JSON/BSON)

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

    Спасибо.
    Вы используете этот драйвер в работе?

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

    Из замечаний, которые пришли в голову:
    — делайте лучше сразу на английском или на русском+английском, т.к. MQTT не привязан к географии. Можно использовать выражение Localization.UseRussian ? «Строка 1» : «String 1»
    — стиль C# обычно предполагает { с новой строки — не критично конечно
    — public свойства в KpMQTTLogic точно нужны именно как public?
    — загрузку из файла можно вынести в отдельный метод

    • Этот ответ был изменен 7 лет, 8 месяцев назад от Mikhail.
    #2585
    Vyacheslav
    Участник

    На реальных объектах в работе не использую. Пока только как универсальную шину для передачи небольших пакетов данных в виде отдельного консольного приложения. А в составе коммуникатора пока держу его в режиме тестирования. По результатам наблюдений обнаружил что возникают моменты задержки передачи данных. Пока не понимаю с чем они связаны. Данные передаю небольшими порциями. думаю что данный драйвер не полностью реализует возможности протокола MQTT.

    По коду воспользуюсь вашими советами, кроме синтаксиса {. Раньше тоже писал с новой строки и только потому, что старые версии IDE так размечали автоматом (да и во всех книжках так было). Сейчас повсеместно встречается код где { начинается сразу после скобок метода. Думаю это связано с нововведениями в .NET фреймворке когда заполняются свойства класса после его определения. На мой взгляд визуально выглядит компактней.

    #3187
    Vyacheslav
    Участник

    Добавлены новые функциональные возможности для драйвера KpMQTT:
    1. Конфигурация уровня Qos сообщения.
    2. Авторизация пользователя по имени и паролю
    3. Публикация значений каналов из текущего среза RapidScada в MQTT брокер.

    https://github.com/bersim/OpenKPs/tree/master/KpMQTT

    • Этот ответ был изменен 7 лет, 6 месяцев назад от Vyacheslav.
    #3192
    Mikhail
    Модератор

    Спасибо за информацию.
    Когда сайт проекта будет обновляться, нужно будет выложить информацию о драйвере.

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

    В качестве пожелания в README.md указать по шагам, что необходимо сделать для подключения драйвера. Лучше всего на английском и русском.

    #3195
    Vyacheslav
    Участник

    Я смотрел на сайте, но не нашел информации о полном перечне драйверов. Было бы неплохо если была бы организована выделенная страничка с полным перечнем драйверов, кратким описанием или ссылками на внешние ресурсы. Возможно как то отдельно сгруппировать ссылки на открытые драйвера.

    Документацию буду дополнять, но только на русском.
    На счет английской адаптации не уверен, что самостоятельно смогу осуществить полноценный перевод.

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

    Да, надо будет добавить ссылки на драйвера на странице http://rapidscada.ru/product/connectivity-and-integration/

    Если можно, дополните подраздел, как подключить драйвер к Коммуникатору:
    — Сколько КП может быть на линии связи
    — Какой канал связи прописать
    — Как подключить XML шаблон

    #3203
    Vyacheslav
    Участник

    Появился вопрос, связанный с определением количества КП.

    Правильно ли я понимаю ниже следующее описание алгоритма работы Scada Communicator:
    1. ScadaCommunicator запускается в виде отдельного процесса.
    2. Внутри каждого процесса в зависимости от конфигурации могут запускаются отдельные потоки для активных линий связи параллельно.
    3. Внутри каждого потока линии связи происходит последовательный циклический опрос активных КП. При этом общее время цикла опроса внутри потока линии связи равно сумме времен затраченных на каждое КП.

    • Этот ответ был изменен 7 лет, 6 месяцев назад от Vyacheslav.
    #3206
    Mikhail
    Модератор

    Да. Каждая линия связи — отдельный поток. Разные линии связи работают параллельно независимо друг от друга. Внутри одной линии связи действия происходят последовательно. КП опрашиваются последовательно, но если задано время/период опроса, то КП пропускается в цикле опроса, пока не наступит момент опроса.

    #3238
    Vyacheslav
    Участник

    Обновлена документация для драйвера KpMQTT:
    https://github.com/bersim/OpenKPs/tree/master/KpMQTT

    Бинарная версия драйвера KpMQTT:
    https://github.com/bersim/OpenKPs/files/499838/KpMQTT.zip

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

    Круто!
    Про выкладывание на сайт у меня записано, просто сайт пока не обновлялся.

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