Устройства
Библиотека Устройств
Библиотека устройств определяет:
- перечень классов устройств, которые поддерживает платформа;
- определяет наименования устройства и параметров;
- задают карту опроса для модулей драйверов по одному из поддерживаемых протоколов с устройством;
- задает параметры физического порта опроса.
Фактически в Библиотеке содержаться все поддерживаемые тип устройств. Платформа не принимает данные от Устройства, которое не имеет описание в библиотеке.
Класс Устройства
Модель библиотечного Устройства показана на рисунке.
Классификатор устройств
Классификатор устройств определяет его класс. Класс описывается дополнительными атрибутами. Дополнительные атрибуты класса транслируются (передаются по наследству) всем Устройствам этого класса.
Атрибуты устройства
Ниже представлено описание всех атрибутов устройства и правила оформления имен:
Атрибут | Значение | Описание |
---|---|---|
Название Устройства | текст (string) | название устройства, например 'ПУ Сокол-100' |
Номер продукта | текст (string) | продуктовый номер производителя |
Производитель | текст (string) | наименование производителя |
Топик канала | текст (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 зависит от поддержки их со стороны драйвера. Можно описать любую структуру данных, если точно понимать, что эта структура совместима с реализацией драйвера для опроса устройств.
Каналы
Инфо
Ранее отмечалось, в Библиотеке устройств используется понятие Канал, которое эквивалентно понятию Параметр.
Базовыми харатеристиками параметра являются:
- физическая природа поведения параметра: сигнал, мгновенные значения, значения с нарастающим итогом, импульсные данные, строка, блок данных, медиа-данные, гео-данные;
- точность измерения (количество знаков после запятой);
- предельные значения параметра, имеющие физический смысл (минимальное, максимальное);
- количество точек измерений для получения достоверного значения (скользящее среднее значение); если задается одна точка, то может случиться «шторм»/шум;
- предельные значения коридора изменения параметра, при которых всегда отсылаются данные в платформу. Это помогает убирать частые одинаковые, либо незначительно изменяющиеся значения;
- указание на то, является ли параметр управляемым, т.е. поддерживает ли физическое устройство изменение значения параметра со стороны платформы.
Описание атрибут канала см. ниже:
Атрибут | Значение | Описание |
---|---|---|
Имя канала | текст (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 - высота над уровнем моря (метры).
Экземпляры Устройств (unit)
Экземпляры Устройств создаются при создании схемы сбора данных (см. Типовая конфигурация), и назначении типовой конфигурации на контроллер сбора.
Экземпляры Устройства наследуют все атрибуты Класса Устройства (библ. устройства).

Экземпляры Устройства дополнительно описываются атрибутами:
Аттрибут | Комментарий |
---|---|
SerialNumber | Серийный номер, уникальный идентификатор экземпляра (заполняется пользователем) |
RoomID | Связь с помещением, где физически находится устройство |
Availability | Текущий статус доступности устройства (ведется системой) |
Status | Статус устройства. Система поддерживает два статуса: Эксплуатация, Техническое обслуживание |
Blocked Parameters | Признак наличия заблокированных параметров у Устройства (ведется системой) |
Если у Устройства статус Эксплуатация - по такому устройству система проводит полный цикл обработки;
Если у Устройства статус Техническое обслуживание - по такому устройству система не создает событий.