Стартовая страница › Форумы › Rapid SCADA на Linux-контроллерах и Raspberry Pi › Драйвер KpMQTT
Помечено: MQTT KpMQTT
- В этой теме 78 ответов, 8 участников, последнее обновление 1 год, 4 месяца назад сделано
Vasily777.
-
АвторСообщения
-
14.07.2016 в 18:41 #2556
Vyacheslav
УчастникСобрал драйвер KpMQTT.dll для взаимодействия коммуникатора по протоколу MQTT. На текущий момент реализована возможность подписки на сообщения с 0 QoS.
Основа для драйвера взята отсюда https://github.com/ericvoid/StriderMqtt
Архитектура этой библиотеки позволяет общаться с MQTT брокером в режиме опроса, что удачно соотносится с режимом работы коммуникатора.Библиотека и темплейт в архиве по ссылке: http://bergrid.trancelaciya.com/KpMQTT.zip
В параметрах для линии связи в разделе конфигурации КП для опции:
— Пауза (delay) необходимо установить значение 60.
— Тип Канал связи выбрать не задан.Для тестирования можно использовать общедоступный брокер iot.eclipse.org
14.07.2016 в 21:55 #2557Mikhail
МодераторЗамечательно!
Может быть выложите исходники драйвера на github? Тогда было бы проще скачивать, отслеживать модификации, обновлять в случае изменения базовых методов в ScadaCommCommon.dll. Без исходников через некоторое время (обычно несколько месяцев) dll драйвера станет не актуальной, т.к. постоянно совершенствуются некоторые моменты в общих библиотеках.
15.07.2016 в 21:56 #2569Vyacheslav
УчастникВыложил пока как получилось на GitHub https://github.com/bersim/OpenKPs
Код еще надо оптимизировать (неплохо будет если кто то сможет указать на явные недочеты , будет полезно для изучения и понимания) и дописывать функционал:
1. Выбор режима взаимодействия с брокером
2. Выбор типа QoS
3. Добавить параметры имя пользователя и пароль для брокера
4. Публикации топиков по команде. (тип публикации: значение, текущий срез сырым массивом байт, текущий срез в формате JSON/BSON)15.07.2016 в 22:44 #2572Mikhail
МодераторСпасибо.
Вы используете этот драйвер в работе?15.07.2016 в 22:45 #2573Mikhail
МодераторИз замечаний, которые пришли в голову:
— делайте лучше сразу на английском или на русском+английском, т.к. MQTT не привязан к географии. Можно использовать выражение Localization.UseRussian ? «Строка 1» : «String 1»
— стиль C# обычно предполагает { с новой строки — не критично конечно
— public свойства в KpMQTTLogic точно нужны именно как public?
— загрузку из файла можно вынести в отдельный метод-
Этот ответ был изменен 7 лет, 2 месяца назад от
Mikhail.
18.07.2016 в 17:42 #2585Vyacheslav
УчастникНа реальных объектах в работе не использую. Пока только как универсальную шину для передачи небольших пакетов данных в виде отдельного консольного приложения. А в составе коммуникатора пока держу его в режиме тестирования. По результатам наблюдений обнаружил что возникают моменты задержки передачи данных. Пока не понимаю с чем они связаны. Данные передаю небольшими порциями. думаю что данный драйвер не полностью реализует возможности протокола MQTT.
По коду воспользуюсь вашими советами, кроме синтаксиса {. Раньше тоже писал с новой строки и только потому, что старые версии IDE так размечали автоматом (да и во всех книжках так было). Сейчас повсеместно встречается код где { начинается сразу после скобок метода. Думаю это связано с нововведениями в .NET фреймворке когда заполняются свойства класса после его определения. На мой взгляд визуально выглядит компактней.
27.09.2016 в 11:30 #3187Vyacheslav
УчастникДобавлены новые функциональные возможности для драйвера KpMQTT:
1. Конфигурация уровня Qos сообщения.
2. Авторизация пользователя по имени и паролю
3. Публикация значений каналов из текущего среза RapidScada в MQTT брокер.https://github.com/bersim/OpenKPs/tree/master/KpMQTT
-
Этот ответ был изменен 6 лет, 12 месяцев назад от
Vyacheslav.
27.09.2016 в 12:58 #3192Mikhail
МодераторСпасибо за информацию.
Когда сайт проекта будет обновляться, нужно будет выложить информацию о драйвере.27.09.2016 в 13:00 #3193Mikhail
МодераторВ качестве пожелания в README.md указать по шагам, что необходимо сделать для подключения драйвера. Лучше всего на английском и русском.
27.09.2016 в 18:08 #3195Vyacheslav
УчастникЯ смотрел на сайте, но не нашел информации о полном перечне драйверов. Было бы неплохо если была бы организована выделенная страничка с полным перечнем драйверов, кратким описанием или ссылками на внешние ресурсы. Возможно как то отдельно сгруппировать ссылки на открытые драйвера.
Документацию буду дополнять, но только на русском.
На счет английской адаптации не уверен, что самостоятельно смогу осуществить полноценный перевод.27.09.2016 в 19:41 #3196Mikhail
МодераторДа, надо будет добавить ссылки на драйвера на странице http://rapidscada.ru/product/connectivity-and-integration/
Если можно, дополните подраздел, как подключить драйвер к Коммуникатору:
— Сколько КП может быть на линии связи
— Какой канал связи прописать
— Как подключить XML шаблон28.09.2016 в 14:39 #3203Vyacheslav
УчастникПоявился вопрос, связанный с определением количества КП.
Правильно ли я понимаю ниже следующее описание алгоритма работы Scada Communicator:
1. ScadaCommunicator запускается в виде отдельного процесса.
2. Внутри каждого процесса в зависимости от конфигурации могут запускаются отдельные потоки для активных линий связи параллельно.
3. Внутри каждого потока линии связи происходит последовательный циклический опрос активных КП. При этом общее время цикла опроса внутри потока линии связи равно сумме времен затраченных на каждое КП.-
Этот ответ был изменен 6 лет, 12 месяцев назад от
Vyacheslav.
28.09.2016 в 15:25 #3206Mikhail
МодераторДа. Каждая линия связи — отдельный поток. Разные линии связи работают параллельно независимо друг от друга. Внутри одной линии связи действия происходят последовательно. КП опрашиваются последовательно, но если задано время/период опроса, то КП пропускается в цикле опроса, пока не наступит момент опроса.
06.10.2016 в 14:31 #3238Vyacheslav
УчастникОбновлена документация для драйвера KpMQTT:
https://github.com/bersim/OpenKPs/tree/master/KpMQTTБинарная версия драйвера KpMQTT:
https://github.com/bersim/OpenKPs/files/499838/KpMQTT.zip06.10.2016 в 21:11 #3241Mikhail
МодераторКруто!
Про выкладывание на сайт у меня записано, просто сайт пока не обновлялся. -
Этот ответ был изменен 7 лет, 2 месяца назад от
-
АвторСообщения
- Вы должны авторизироваться для ответа в этой теме.