Драйвер KpMQTT

Помечено: 

В этой теме 44 ответа, 5 участников, последнее обновление Аватар evolver 13 час., 25 мин. назад.

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

    Добавлена новая функция публикации стандартных и бинарных команд.

    Ссылка на бинарную версию драйвера: KpMQTT для Rapid Scada 5.5.0

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

    Обновил ссылку в репозитории Rapid SCADA.
    А почему пост в теме Raspberry, разве драйвер только для линукса?

    #8270
    Аватар
    Vyacheslav
    Участник

    Изначально меня интересовала работа именно на Raspberry PI, но для удобства если это возможно можно перенести ветку в другой раздел или могу создать тему в другом разделе.
    Разработка данного драйвера происходит под Linux (Mono). Тестирование работы драйвера производится для Linux и Windows.

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

    Пусть тема пока остаётся здесь )

    #8720
    Аватар
    Vyacheslav
    Участник

    Опубликована новая версия драйвера KpMQTT для RapidScada 5.5.1

    В новой версии добавлена возможность подписываться на топики MQTT, данные из которых передаются в команды RapidScada.
    Возможно настроить 4 типа команд:
    1. Стандартная команда.
    2. Бинарная команда из HEX строки.
    3. Бинарная команда из текста.
    4. Команда внеочередного опроса КП.

    Ссылка на бинарный файл KpMQTT

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

    Спасибо. Обновил ссылку в репозитории.
    Думаю, было бы полезно вести историю версий, например, на гитхабе.

    #10213
    Аватар
    Vyacheslav
    Участник

    Добавлена возможность обработки сообщений в формате JSON с помощью обработчиков, написанных на JavaScript.

    Обновлена документация для драйвера KpMQTT:

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

    Бинарная версия драйвера KpMQTT:

    https://github.com/bersim/OpenKPs/releases/download/5.0.11/KpMQTT.zip

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

    Хорошая новость!
    Обновлю ссылки в репозитории на этой неделе.

    #13070
    Аватар
    evolver
    Участник

    Добрый день.
    Скачал архив KpMQTT.zip, внутри архива 4 файла:
    1) KpMQTT.dll
    2) KpMQTT_Config.xml
    3) job.js
    4) Jint.dll

    Насколько я понял:
    — KpMQTT.dll копируем в ScadaComm\KP\
    — KpMQTT_Config.xml копируем в ScadaComm\Config
    а остальные файлы (Jint.dll, job.js) куда?

    #13071
    Аватар
    Romiros
    Участник

    jint.dll обычно кладется сюда в ScadaComm\
    Путь к job.js Вы прописываете в конфигурационном файле, так что кладите куда удобно. Есть документация с примерами, почитайте.

    #13242
    Аватар
    evolver
    Участник

    Раз уж нормальной инструкции нет на MQTT, то напишу я. Создавал методом проб и ошибок, если что не так, поправляйте.
    Идея проекта — сбор данных о климате в квартире.
    Помимо RapidScada (у меня 5.0.7.0) нужен будет еще Mosquitto (брокер для MQTT), ну и для проверки и настройки работы MQTT-брокера MQTTBox.
    1. Mosquitto.
    — Идем на страничку https://mosquitto.org/download/ и там выбираем для своей системы дистрибутив. Т.к. у меня все крутиться на Windows 7 x64, соответственно выбираю mosquitto-1.6.4-install-windows-x64.

    Рис. 01

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

    Рис. 02

    2. MQTTBox
    — Идем на страничку MQTTBox http://workswithweb.com/html/mqttbox/installing_apps.html#install_on_windows и качаем что нужно, либо *.zip, либо *.exe если хоти установить. Устанавливаем, все по умолчанию.
    — Проверяем что работает Mosquitto. В диспетчере задач должна работать задача mosquitto.

    Рис. 03

    — Открываем MQTTBox. Выбираем MENU -> MQTT CLIENTS -> Create MQTT Client.

    Рис. 04

    Т.к. Mosquitto у меня установлен на одном компьютере со SCADA, то в поле host я пишу localhost иначе нужно будет прописать адрес, либо IP компьютера на котором будет стоять MQTT-брокер.

    Рис. 05

    Если все настроили нормально, появится зеленая кнопка Connected.
    Дальше, настройки следующие. Topic to publish — топик в который мы будем писать сообщения, Topic to subscribe — топик который будем читать, в данном случае все.

    Рис. 06

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

    Рис. 07

    3. MQTT-драйвер для RapidScada
    Я скачал *.zip с 4-мя файлами в архиве, не помню где, но наверное можно на форуме спросить. В архиве лежат следующие файлы: KpMQTT.dll, KpMQTT_Config.xml, job.js, Jint.dll.
    Т.к. каиалог со скадой у меня лежит в C:\SCADA, соотвественно:
    KpMQTT.dll копируем в C:\SCADA\ScadaComm\KP;
    KpMQTT_Config.xml и job.js (можно положить куда угодно и путь мзменить в см. ниже ) копируем в C:\SCADA\ScadaComm\Config;
    Jint.dll копируем C:\SCADA\ScadaComm.
    В файле конфигурации (KpMQTT_Config.xml) находим строчку и меняем ее на (верно для моего пути установки RapidScada)
    <MqttParams Hostname=»127.0.0.1″ ClientID=»KpMQTT» Port=»1883″ UserName=»» Password=»»/> — для настройки на локальный MQTT-брокер Mosquitto
    и <MqttSubJSs>
    <Topic TopicName=»/mesparam11″ QosLevel=»0″ CnlCnt=»1″ JSHandlerPath=»C:\SCADA\ScadaComm\Config\job.js»/>
    Почему здесь mesparam11 — не знаю, но работет.
    Дальше по образу и подобию инструкции по MODBUS из документации, создаем в SCADA-Администраторе -> База конфигурации -> Система: Объект, Линии связи, КП, Входные каналы для нашего устройсвта MQTT. Причем еслт все сделали правльно, то при добавлении КП, в таблице в столбце «Тип КП» должен появится MQTT.

    Рис. 08

    И в SCADA-Администраторе -> База конфигурации -> Справочники -> Типы КП должен появится MQTT с соответствующим именем DLL.

    Рис. 09

    3. Настройка RapidScada-коммуникатора
    Открываем SCADA-коммуникатор выбираем Линии связи -> Импорт линий связи КП. Ставим галочку на нашем устройстве MQTT, жмем импорт.
    Дальше вибираем сообветствующую линию и переходим на вкладку опрос КП. Если в таблице пусто, то жмем «желтую стрелочку» импорт линий и добавляем нужную. Если есть, то проыеряем чтобы было так как на рисунке ниже. В командной строке я прописал имя конфигурационного файла (возможно оно нужно, возможно нет) т.к. у меня не работало без заполнения этого поля.
    После перезапуска SCADA-сервера и SCADA-коммуникатора. Можно увидеть в статистике линии периодическое изменение действия: Сеанс, Передача, Обмен. А использую настроенный MQTTBox можно изменять значения.

    Рис. 10

    • Ответ изменён 1 неделя, 1 день назад пользователем Аватар evolver.
    • Ответ изменён 1 неделя, 1 день назад пользователем Аватар evolver.
    • Ответ изменён 1 неделя, 1 день назад пользователем Аватар evolver.
    • Ответ изменён 1 неделя, 1 день назад пользователем Аватар evolver.
    #13254
    Mikhail
    Mikhail
    Модератор

    Большое спасибо!
    Если Вы снимете аналогичную инструкцию на видео, то мы выложим её на YouTube-канале.
    Бесплатные программы для съемки видео:
    CamStudio — съемка с экрана
    HandBrake — конвертер форматов

    #13270
    Аватар
    evolver
    Участник

    Да уже все установил и настроил.
    Хотел отредактировать опечатки, но не могу. Почему?

    #13275
    Taw
    Taw
    Участник

    Очень граммотно изложено. Я использовал предпоследнюю версию драйвера без JSON. А сейчас все воспроизвел и все работает в последней версии драйвера. Команды тоже отправляются.
    Вопрос:
    1. Мы в файле конфигурации прописываем что подписку на топик сохраняем по указанному пути в файл job.js. Создаем веб-страницу, подключаем в ней этот JavaScript файл job.js . Не могли бы пояснить и привести пример считывания значения из этого файла в вебстранице на JavaScript?

    #13276
    Taw
    Taw
    Участник

    2. Не могли бы вы привести пример настройки MQTT для глобального брокера? Например broker.mqtt-dashboard.com или https://www.cloudmqtt.com. В принципе любого бесплатного. Я использовал eclipse и mosquitto. Но пару дней назад они упали. И не могу поднять их снова.

Просмотр 15 сообщений - с 16 по 30 (из 45 всего)

Для ответа в этой теме необходимо авторизоваться.