ПО Inspark Edge устанавливается на контроллеры автоматизации и обеспечивает выполнение следующих функций:
ПО Inspark Edge требует совместимости с контроллерами. Совместимыми считаются следующие условия:
Контроллеры могут поставляться с уже пред установленным ПО. Ниже приведена инструкция, которая позволяет поставить ПО на контроллер в ручную.
Для устанвоки ПО Inspark Edge должны быть выполнены следующие условия:
Прошивка содержит все необходимое для устанвоки ПО на контроллер.
Прошивка на платформе iMX287 выполняется штатным образом.
Для контроллера на базе Onion Omega 2:
sysuprgrade -n /tmp/openwrt-ramips-mt76x8-omega2p-squashfs-sysupgrade.bin
Локальная прошивка http://10.2.2.55:8880/smart-metrix/openwrt-ramips-mt76x8-omega2p-squashfs-sysupgrade.bin может отличаться от публичной из-за задержки синхронизации между серверами.
curl -L http://releases.inspark.ru/inspark.key | apt-key add -
deb http://releases.inspark.ru/debian/stable/ <OS> main
deb http://releases.inspark.ru/debian/testing/ <OS> dev
где OS – версия операционной системы, допустимые версии: Wheezy, Jessie, Stretch.
deb [arch=all] http://releases.inspark.ru:8880/ non-free config
apt-get update
apt-get insstall <PKG>
Репозитории должны быть следующими:
src/gz smart_metrix_base http://releases.inspark.ru/smart-metrix/base
src/gz smart_metrix_packages http://releases.inspark.ru/smart-metrix/packages
src/gz smart_metrix_routing http://releases.inspark.ru/smart-metrix/routing
src/gz smart_metrix_onion http://releases.inspark.ru/smart-metrix/onion
src/gz smart_metrix_telephony http://releases.inspark.ru/smart-metrix/telephony
opkg update
opkg install <PKG>
При штатной установке на контроллере должны быть установлены следующие модули:
Модули vmon и vplan устанавливаются в папку /opt/inspark/
. При штатной установке все модули должны запуститься как демоны.
Протестируйте их рестрат командой service <имя модуля> restart
. Все модули работают от учетной записи inspark.
При старте модуля vmon, в зависимости от его режима взаимодействия с сервером, выполняются следующие операции:
vmon записывает в папку /etc/mosquitto/conf.d
файл конфигурации моста и начинает сообщать о себе по пути: /Controller/In/InitParam
. Подписавшись на топик, можно убедится , что установка прошла штаттно.
vmon был проинициализирован сервером, но не получил еще конфигурацию опроса. Для проверки состояния контроллера нужно подписаться на топик /Controller/Out/Event
и дождаться сообщения с номером 1000 (пакет жизни от контроллера).
vmon и vplan получили конфигурации с сервера и осуществляют штатно свою работу. Конфигурации должны быть в папке /etc
, файлы vmon,json, vplan.json
.
Взаимодействие между контроллером и сервером осуществляется путем обмена сообщениями по протоколу MQTT. Для реализации этого взаимодействия на стороне контроллера автоматически конфигурируется мост (Bridge) для объединения отдельных топиков очередей Mosquitto. Параметры конфигурации этого моста записываются в специальный конфигурационный файл сервера очередей контроллера (bridge.conf).
Для каждого контроллера на стороне сервера сбора участвуют:
три входных топика «/Controller/<Id>/In/+»
, где <Id>
- идентификатор контроллера;
два выходных топика «/Controller/<Id>/Out/+»
.
Параметры объединяемых топиков приведены в следующей таблице (Таблица 3). В указанной таблице для каждой пары объединяемых топиков приведены:
направление передачи данных Direct («OUT» - из контроллера в сервер сбора, «IN» - из сервера сбора в контроллер);
рекомендуемый уровень качества сервиса QoS.
Таблица 3 – Схема объединения очередей контроллера и сервера сбора для штатного режима функционирования
Топик контроллера | Топик сервера сбора | Direct | QoS |
---|---|---|---|
/Controller/Out/Measure | /Controller/<Id>/In/Measure | OUT | 1 |
/Controller/Out/Signal | /Controller/<Id>/In/Signal | OUT | 2 |
/Controller/Out/Event | /Controller/<Id>/In/Event | OUT | 2 |
/Controller/In/ Command | /Controller/<Id>/Out/Command | IN | 2 |
/Controller/In/SetValue | /Controller/<Id>/Out/SetValue | IN | 2 |
Для инициализации контроллеров используется выделенный сервер сбора, который для взаимодействия использует следующие топики:
Общая схема взаимодействия ПО Edge агента с сервером показана на схеме ниже:
Важно! vmon и vplan не взаимодействуют непосредственно с устройствами. Для этих целей необходимо использовать наше ПО уровня драйвера устройств. vmon должен получать данные в топики, которые удовлетворяют следующей структур:
/devices/<T>_<A>/controls/<K>
где T - тип устройства (датчика)
A - адрес устройства
K - имя канала
Если параметр является управляемым, то в соответствующем топике для него имеется подтопик с названием on
, куда записываются значения, которые должны быть переданы на конкретное устройство.
Для каждого канала /devices/<T>_<A>/controls/<K> драйверами устройств записывается статус операции чтения/записи с датчиками/устройствами в топик
/devices/<T>_<A>/controls/<K>/meta/error.
Исходящие сообщения помещаются в очередь с целью их передачи из контроллера на сервер сбора. Входящие сообщения поступают в очередь контроллера из сервера сбора. Управляющие сообщения используются для взаимодействия программных компонентов управляющей программы контроллера.
Для безопасносного обмена с сервером устанавливаются сертификаты openssl и используется логин пароль для логина на брокер сервера. Трафик с сервером осуществляется по порту MQTT в защищенном режиме (TLS соединение).
Сертификаты должны быть получены по доп. запросу в рамках поставки ПО.
Логин и пароль приходит с сервера вместе с конфигурацией при положительной процедуре инициализации на сервере.
Контроллер не требует дополнительного контроля либо обслуживания со стороны администраторов, практически все действия и всю информацию о текущем контроллере можно получить в административном приложении платформы. Но, для случаев расследования, настройки , аварий все модули можно запустить в режиме дебага.
Для этого в конфигурации vmon.json, vplan.json
установите mode = DEBUG
.
Логи штатно должны писаться по пути /var/log/<имя модуля>/
.
При установке ПО настраивается ротация логов. Если был включен режим debug, проконтролируйте размер тома.
Файл /etc/mosquitto/conf.d/bridge.conf определяет параметры установки моста между контроллером и сервером. Типовой файл bridge.conf должен обязательно содержать следующие строки:
connection ISS.AGAU7K3C
local_clientid ISS.AGAU7K3C
address collector:8883
remote_username user
remote_password password
persistent_client_expiration 15m
cleansession true
notifications true
bridge_protocol_version mqttv311
topic Measure out 1 /Controller/Out/ /user1/Controller/<ID_C>/In/
topic Signal out 2 /Controller/Out/ /user1/Controller/<ID_C>/In/
topic Event out 2 /Controller/Out/ /user1/Controller/<ID_C>/In/
topic Command in 2 /Controller/In/ /user1/Controller/<ID_C>/Out/
topic SetValue in 2 /Controller/In/ /user1/Controller/<ID_C>/Out/
bridge_cafile /etc/mosquitto/ca_certificates/root.pem
bridge_certfile /etc/mosquitto/certs/client.pem
bridge_keyfile /etc/mosquitto/certs/client.key
где:
collector – адрес сервера сбора;
user и password – логин и пароль пользователя для установки сессии моста;
root.pem – корневой сертификат сервера;
client.* – сертификаты клиента для установки защищенной сессии с сервером сбора.
Логин и пароль пользователя контроллер получит от сервера сбора при инициализации. Маппирование топиков также построится автоматически с использованием файлов bridge.tmp.
Обязательным условием корректной работы является наличие сертификатов для установки защищенной сессии.
В некоторых случаях желательно изменить режим mosquitto по сбросу данных на диск. По умолчанию этот сервис делает это каждые 30 мин. При большом количестве параметров и частоте опроса могут возникать проблемы с доступной оперативной памятью. В этом случае требуется выставить в файле mosquitto.conf следующие параметры:
autosave_on_changes true
autosave_interval 5000
В данном примере настройки при достижении 5000 измерений mosquitto сбрасывает БД на диск.