Устройства
Библиотека Устройств
Библиотека устройств определяет:
- перечень типов устройств, которые поддерживает платформа;
- определяет наименования устройства и параметров;
- задают карту опроса для модулей драйверов по одному из поддерживаемых протоколов с устройством;
- задает параметры физического порта опроса.
Фактически в Библиотеке содержаться все поддерживаемые тип устройств. Платформа не принимает данные от Устройства, которое не имеет описание в библиотеке.
Устройства
Типы устройств
Устройства различаются по типам. Тип устройства определяют, какой тип брокера/шлюза используется для получения измерений. В настоящее время поддерживаются следующие типы устройств:
- Шлюз Insparl Gate MQTT = CONTROLLER – тип устройства, данные от которых платформа получает по MQTT-протоколу от EDGE модулей.
- Шлюз Insparl Gate LoRAWAN, типы:
- LORAWAN – устройства, которые передают данные в формате LORAWAN-пакета от платформы Actility. Платформа использует готовые шлюзы провайдеров LORAWAN-сетей, для получения данных от таких устройств необходимо, чтобы шлюз LORAWAN был подключен к платформе;
- CHIRPSTACK – устройства, которые передают данные в формате LORAWAN-пакета от платформы ChirpStack. В облачном варианте платформа предоставляет собственный сервер ChirpStack для приема данных от LoraWan пакетов, либо в платформе можно настроить взаимодействие с провайдерским сервером ChirpStack. Для данного типа устройств поддерживается двухсторонний протокол (от устройства получение данных, от платформы - посылка команд на устройство);
- Шлюз Insparl Gate NbIoT, тип:
- NBIOT - устройства, передающие пакеты по NbIoT по протоколу MQTT. Платформа может настраиваться на любой брокер MQTT, куда NbIoT-устройства шлют данные. Для данного типа устройств поддерживается двухсторонний протокол (от устройства получение данных, от платформы - посылка команд на устройство);
- Шлюзы интегрированных систем/платформ
- SIGUR – сетевой контроллер – полностью автоматизированное электронное устройство системы контроля и управления доступом от компании Sigur, которое самостоятельно обрабатывает данные со считывателей и регулирует вход и выход объекта; контроллер подключается к Ethernet-считывателям, датчикам и к исполнительным устройствам, вся информация с которых хранится в энергонезависимой памяти контроллера (FLASH и FRAM);
- PERCO - сетевой контроллер системы контроля и управления доступом от компании PERCO;
- METEO – специальное устройство платформы, которое получает данные от модуля погоды (приложение платформы). В устройство входят параметры температуры, давления, влажности. Такое устройство может использоваться в типовых конфигурациях, если требуется использовать данные погоды. Погода передается с учетом широты и долготы объекта;
- AXXONSOFT_INTELECT – устройство видео-платформы iTV ПК «ИНТЕЛЛЕКТ». Устройство может содержать различные параметры камеры: ссылка на поток, архив, детекторы камеры. Состав параметров устройства зависит от состава детекторов камер, которые способно передавать ПК «ИНТЕЛЛЕКТ».
- AXXONSOFT_NEXT – устройство видео-платформы iTV AXXON NEXT. Устройство аналогично предыдущему.
- HIKVISION - устройства медиа-платфоормы компании HikVISION (интерактивные доски, телекоммуникационные устройства);
- OB_ELEVATOR - устройство описывает состояние лифта в формате и по протоколу компании LKDS системы ОБЬ;
- ORION_BOLID - любое устройство сервера BOLID (турникет, пожарная система, сигнализация) от компании ОРИОН;
- KERONG - устройство - замок для сейфовых шкафов под управлением сервера KERONG;
- PULSAR - устройство с параметрами потребления коммерческого учета , которые запрашиваются у сервера Пульсар;
- PARKING_RPS - устройство, описывающиее турникет в паркинг от компании РПС;
- HUMAN – специальный тип устройств платформы, параметры которого вводятся вручную оператором, либо внешней программой. В отличие от других типов устройств, параметры такого устройства не имеют брокера/шлюза для обмена данными. Режим изменения данных определяет пользователь. Такие устройства используются для задания констант, которые требуются для обработки (вычислений);
Атрибуты устройства
Ниже представлено описание всех атрибутов устройства и правила оформления имен:
Атрибут | Значение | Описание |
---|---|---|
Название Устройства | текст (string) | название устройства, например 'ПУ Сокол-100' |
Номер продукта | текст (string) | продуктовый номер производителя |
Производитель | текст (string) | наименование производителя |
Тип устройства | CONTROLLER, LORAWAN, METEO, HUMAN, AXXON_NEXT, AXXSONSOFT_INTELECT, UNILIGHT | тип устройства определяет брокера обработки данных от этого устройства)) |
Топик канала | текст (string) | наименование устройства, которое будет использоваться в топике в секции /device/<Топик канала>/... |
Протокол | Выбор из списка | Для устроства типа CONTROLLER необходимо задать тип протокола, по которому опрашивается устройство. Определение типа необходимо для конфигурации драйвера. |
Классификатор устройств | Выбор из списка | Привязка устройства к определенному типу из классификатора устройств |
Конфигурация драйвера | json-структура | Содержит карту опроса устройства по поддерживаемому протоколу. |
Json структура для конфигурации драйвера вносится специалистом, который знает и понимает, как построить карту опроса для устройства.
Правила оформления:
{ "channels": [
{
<блок данных для считывания и передачи параметра>
}, ....
],
"template": [
{
<блок данных для считывания параметра>
}, ....
]
}
В секции "channels" описываются адреса регистров параметров с устройств. Все что описано в секции "channels", будет передано драйвером в вышестоящие модули.
В секции "template" инженер может описать команды на считывания данных с устройства, которые драйвер разложит по парамтерам из секции "template".
Совет
Подробное описание конфигурационных настроек опроса приведено в разделе модулей-драйверов
Например, приведем структуру json для опроса 2-х параметров по ModBusRTU протоколу (секция template не используется)
{"channels": [
{
"name": "Temperature",
"reg_type": "input",
"reg_addr": 0,
"value_type": "i16",
"scale": 0.1,
"error_value": "0x7FFF"
},
{
"name": "Humidity",
"reg_type": "input",
"reg_addr": 1,
"value_type": "i16",
"scale": 0.1,
"error_value": "0xFFFF"
}
]
}
Приведем пример с секцией template для ModBusRTU протокола. В примере ниже, драйвер будет пересылать 16 битовых параметров, но вычитывать из устроства он будет одной командой (секция template) и раскладывать далее по параметрам секции 'channels' для передачи выше.
{"channels": [
{"name": "Group1{g}5sa01:Nasos PV13 rezhim Avarija","reg_type": "status","reg_addr": 4,"value_type": "bit","read_only": true},
{"name": "Group1{g}5sa01:Nasos PV13 rezhim Avt","reg_type": "status","reg_addr": 5,"value_type": "bit","read_only": true},
{"name": "Group1{g}5sa01:Nasos PV17 rezhim Avarija","reg_type": "status","reg_addr": 6,"value_type": "bit","read_only": true},
{"name": "Group1{g}5sa01:Nasos PV13 rezhim Vkljuchen","reg_type": "status","reg_addr": 26,"value_type": "bit","read_only": true},
{"name": "Group1{g}5sa01:Nasos PV14 rezhim Avt","reg_type": "status","reg_addr": 27,"value_type": "bit","read_only": true},
{"name": "Group1{g}5sa01:Nasos PV14 rezhim Avarija","reg_type": "status","reg_addr": 28,"value_type": "bit","read_only": true},
{"name": "Group1{g}5sa01:P21 Perep davl na filt","reg_type": "status","reg_addr": 29,"value_type": "bit","read_only": true},
{"name": "Group1{g}5sa01:P5 rezhim Vkljuchen","reg_type": "status","reg_addr": 30,"value_type": "bit","read_only": true},
{"name": "Group1{g}5sa01:P5 Perep davl na filt","reg_type": "status","reg_addr": 31,"value_type": "bit","read_only": true},
{"name": "Group1{g}5sa01:P21 Perep davl na vent","reg_type": "status","reg_addr": 32,"value_type": "bit","read_only": true},
{"name": "Group1{g}5sa01:P21 Ugroza zamerzanija","reg_type": "status","reg_addr": 33,"value_type": "bit","read_only": true},
{"name": "Group1{g}5sa01:P5 rezhim Avarija","reg_type": "status","reg_addr": 34,"value_type": "bit","read_only": true},
{"name": "Group1{g}5sa01:P5 Ugroza zamerzanija","reg_type": "status","reg_addr": 35,"value_type": "bit","read_only": true},
{"name": "Group1{g}5sa01:P21 rezhim Avt","reg_type": "status","reg_addr": 36,"value_type": "bit","read_only": true},
{"name": "Group1{g}5sa01:P21 rezhim Avarija","reg_type": "status","reg_addr": 37,"value_type": "bit","read_only": true},
{"name": "Group1{g}5sa01:P21 rezhim Vkljuchen","reg_type": "status","reg_addr": 38,"value_type": "bit","read_only": true},
{"name": "Group1{g}5sa01:P5 rezhim Avt","reg_type": "status","reg_addr": 39,"value_type": "bit","read_only": true} ],
"template":[
{"reg_type": "status", "reg_addr": 4, "reg_size": 32, "value_type": "u32", "read_only": 1}
]
}
Инфо
Структура ключей json зависит от поддержки их со стороны драйвера. Можно описать любую структуру данных, если точно понимать, что эта структура совместима с реализацией драйвера для опроса устройств.
Внешние команды для специальных устройств
Обмен с устройствами, у которых тип не CONTROLLER происходит через соответствующие им системы/сервера. Функции управления, изменения свойств таким устройствами реализована в механизме Внешние команды.
Внешнюю команду нельзя задать для типа CONTROLLER, для устройств под управлеием EDGE достаточно просто указать новое значение параметра. Для интеграционных систем такая операция выполняется через API запрос, который может содержать входные параметры.
Атрибуты внешней команды:
Атрибут | Тип | Описание |
---|---|---|
ИМЯ | string | название команды |
ВН.КОМАНДА | string | постоянная часть внешней команды, для Lora это обычно двух-значный код |
ДАННЫЕ | string | переменная часть внешней команды, см. протокол устройства |
УСТРОЙСТВО | справочник | не заполняется |
FPORT LORAWAN | int | применимо только для Lora устройств |
Каналы
Инфо
Ранее отмечалось, в Библиотеке устройств используется понятие Канал, которое эквивалентно понятию Параметр.
Базовыми харатеристиками параметра являются:
- физическая природа поведения параметра: сигнал, мгновенные значения, значения с нарастающим итогом, импульсные данные, строка, блок данных, медиа-данные, гео-данные;
- точность измерения (количество знаков после запятой);
- предельные значения параметра, имеющие физический смысл (минимальное, максимальное);
- количество точек измерений для получения достоверного значения (скользящее среднее значение); если задается одна точка, то может случиться «шторм»/шум;
- предельные значения коридора изменения параметра, при которых всегда отсылаются данные в платформу. Это помогает убирать частые одинаковые, либо незначительно изменяющиеся значения;
- указание на то, является ли параметр управляемым, т.е. поддерживает ли физическое устройство изменение значения параметра со стороны платформы.
Описание атрибут канала см. ниже:
Атрибут | Значение | Описание |
---|---|---|
Имя канала | текст (string) | название канала/парамтера |
Топик канала | текст (string) | наименование канала, которое будет использоваться в топике в секции /device/<Топик канала>/controls/<Топик канала> см. описани топиков |
Единица измерений | выбор из списка | назначается из справочника Категории |
Сред. точки | число | определяет кол-во точек съема данных для пересылки в платформу значения скользящей средней |
Погрешность | число | определяет коридор значений параметра, при выходе из которого данные пересылаются сразу же, не ожидая периода опроса |
Верхний предел | число | верхний предел значения параметра, выше которого параметру присваивается статус ошибки |
Нижний предел | число | нижний предел значения параметра, ниже которого параметру присваивается статус ошибки |
Точность измерения | число | кол-во знаков после запятой для хранения числа. Например, 3 - три знака после запятой. Если значение не стоит, то хранится как приходит |
Интервал восстановления | секунды | значения интервала времени в секундах, после которого платформа переводит параметр в статус недостоверного параметра, если у него значение вышло за пределы. Если в течении указанного интервала от момента прихода недостоверного значения, пришло значение достоверное, то сбрасывает счетчик контроля |
Тип значения | выбор из списка | геометка, мгновенное значение, нарастающий итог, импульс, сигнал, строковый, текст, изображение |
Совет
Параметры Сред.точки и Погрешность определяет кол-во данных , которые могут приходить на платформу по параметру.
Приведем пример, Сред. точки=1, Погрешность = 4, Значения приходят в след. порядке: 0,1,5,6,2,... Вне зависимости от периода опроса будут передаваться след. значения: 0,5,2. Значения 1 и 6 входят в коридор погрешности.
Приведем другой пример, пусть Сред. точки = 2, Погрешность = 4, тогда для приведенного выше ряда значений будут передаваться след. данные : 0.5, 2.75, 3.18. Линия будет сглажена скользящей средней по 2 параметрам.
Управление данными параметрами позволяет убрать шум, и снижает спам несущественных данных от параметра, но пользоваться ими нужно с точным пониманием физического смысла параметра.
Описание типов данных:
- мгновенные значения: значение параметра передается как вещественное число и может быть любым (положительным, отрицательным);
- нарастающий итог: значение папаметра постоянно растет с течением времени. Такое поведение характерно для приборов учета ресурсов.
- импульсные значения: значение параметра передается в виде кол-ва импульсов за интервал времени. Используется, например, для приборов учета воды, которые отсчитывают импульсы по расходу определенного кол-ва воды.
- строка: значение параметра передается в виде строки длиной не более 1024 байта
- сигнальные значения: значения параметра передаются в виде 0 либо 1.
- текст: заначения параметра могут быть любой структуры и объема (до 65 Мб предел передачи данных по MQTT протоколу),
- изображение: значенеи параметра хранит название медиа-файла, которое хранится на web-dav сервере платформы. Для этого типа выполняются определенные условия обработки при показе изображений
в приложениях платформы. - геометка: значение параметра хранится в виде форматированной строки LON:LAT:ALT, где LAT - географическая широта (градусы и их доли), LON - долгота (градусы и их доли), ALT - высота над уровнем моря (метры).