Рекомендуется изначально продумать содержание справочников. Можно воспользоваться импортом справочников.
Заполнение справочников не требует специального описания, важно понять применение справочников в платформе.
Название | Назначение |
---|---|
Единицы измерений | Используется при описании параметров устройств |
Классификатор объектов | Классификатор типов объектов. Каждому типу объекта соответсвует своя иконка и название. Используется в приложении Карта при выводе Объекта |
Доп. атрибуты | Перечень атрибутов, которые могут использоваться для расширения стандартного списка атрибутов объектов, рубрик и устройств |
Справочник календарей | Производственные календари с указанием праздничных дней года. Календарь связывается с объектом и используется для задания режимов работы. |
Справочник внешних систем | Список внешних систем, которым предоставляются данные платформы (см. Рук. сис. администратора) |
Расположение датчиков | Справочник задает список местоположений датчиков. Используется как фильтр при поиске датчиков |
Справочник статусов объектов | Задает список состояний объекта, например: в эксплуатации, тех. обслуживание, и т. д. Для статуса можно указать признак, по которому платформа не будет создавать событие. |
Название | Назначение |
---|---|
Справочник событий | Задает поле событий, которое должно формироваться по результатам работы контрольных процедур. Для каждого события задаются доступные каналы уведомления (Email, Telegram, Рush, …). Если какой-то канал уведомлений недоступен, то это означает, что канал заблокирован на уровне инстанса системным администратором. |
Статусы параметров | Пользовательские статусы состояния параметра. Все пользовательские статусы связаны с одним из системных статусов (критический,предупреждение, нормальный, нет контроля, не достоверно). |
Зоны | Позволяет указать для параметра типовой конфигурации (ТК) его местонахождение, либо принадлежность к группе |
Геозоны | Картографические области в виде полиномонов |
Название | Назначение |
---|---|
Классификатор устройств | Классификация типов/видов устройств. Данный классификатор ведется владельцем инстанса (root) |
Модель контроллеров | Модели физических контроллеров, для которых применяется ТК |
Название | Назначение |
---|---|
Библиотека иконок | Содержит все иконки, которые могут назначаться на статусы состояния параметра в ТК. Используются в приложении «Дашборд». |
Библиотека изображений | Графические файлы, которые используются в представлении объекта в приложении «Дашборд» |
Название | Назначение |
---|---|
Теги | Теги могут назначаться на параметры ТК, используются для быстрого поиска, либо в интересах отчетности/аналитики |
Устройства и параметры – это базовые сущности платформы. Устройством называют физический объект, которое выполняет определенные функции и характеризует свое поведение через Параметры. Параметр – это величина, характеризующая свойство какого-либо предмета, явления или процесса, которые можно измерить (например, напряжение, энергия, температура и т.п.) или зафиксировать (включение/выключение, замыкание/размыкание и т.п.).
В платформе для описания параметров в библиотеке устройств используется термин Канал. Это исключает путаницу, когда речь идет о параметре. Если используется Канал , речь идет об описании параметра в библиотеке. Если используется Параметр - это всегда о реальном параметре, у которого есть измерения.
Библиотека устройств определяет:
Устройства различаются по типам. В основном типы устройств определяют, какой брокер/шлюз обмена данными используется для получения измерений. В настоящее время поддерживаются следующие типы устройств:
/devices/<топик устройства>/controls/<топик параметра>/
Со стороны платформы такую нотацию поддерживают ПО Edge контроллеров.
Ниже представлено описание всех атрибутов устройства и правила оформления имен:
Атрибут | Значение | Описание |
---|---|---|
Название Устройства | текст (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 зависит от поддержки их со стороны драйвера. Можно описать любую структуру данных, если точно понимать, что эта структура совместима с реализацией драйвера для опроса устройств.
Базовыми харатеристиками параметра являются:
Описание атрибут канала см. ниже:
Атрибут | Значение | Описание |
---|---|---|
Имя канала | текст (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 параметрам. Управление данными параметрами позволяет убрать шум, и снижает спам несущественных данных от параметра, но пользоваться ими нужно с точным пониманием физического смысла параметра.
Описание типов данных:
Справочник с описанием портов описывает параметры опроса физического канала контроллера. Таким каналом может быть порт RS-485, порт RS-232, TCP/IP, Zigbee порт и т.д.
Параметры опроса содержат специфические ключи реализации драйвера и адрес физического порта, специфичный для прошивки модели контроллера.
Ниже приведено описание ключей, допустимых к использованию для оформления поля Подключение:
Атрибут | Тип | Описание |
---|---|---|
type | string | Тип элемента, может принимать значение base.rs, base.tcp, snmp, dlms.tcp, dlms.rs, emera, base.z2t (подробно см. документацию в разделе Inspark EDGE ) |
tcp | json | Пример: { "url" : "10.4.2.66", "port" : 502 } |
enabled | bool | Признак разрешения опроса порта. по умолчанию true. |
poll_interval | int | Интервал опроса (сек). по умолчанию 60. |
rto | int | Тайм-аут приема (мсек). по умолчанию 500. |
sto | int | Тайм-аут передачи (мсек). по умолчанию 500. |
Полный перечень возможных значений ключей для задания опроса физического порта описывается в реализации драйвера vdrive
Приведем пример оформления поля Подключения:
{ "type" : "base.rs"
, "com_port" : "/dev/ttyRS485-2"
, "baud_rate" : 9600
, "com_options" : "8N1"
, "enabled" : true
, "rto" : 1000
, "sto" : 1000
, "poll_interval" : 5
}
К IoT устройствам относятся устройства типа:
Разделение устройств на LORAWAN и CHIRPSTACK условное, поскольку оба типа относятся к LoraWAN устройствам. Но, тип LORAWAN относится к устройствам, которые подключены к серверу Actility, а второй к CHIRPSTACK.
Основная особенность оформления IoT устройств в библиотеке - это возможность оформления команд для отправки на эти устройства.
Для о7орСпециальныения команд необходимо7знать протокол устройства. Далее, на этапе настройки мониторинга такого устройства, для него будет доступено постановка такой команды в расписание. ЭтВсе устройства, которые имеют тип интеграционных систем, являются специальными. Каналы этих устройств должны быть согласованы с настрокой соответствующего конфигурационного модуля.
Воспользуйтесь импортом для загрузки таких устройств, которые опубликованы на github.com в проекте Inspark-dockerо позволяет производить мониторинг IoT устройств.
Для формирования команд, на форме IoT устройства кликнуть в меню (три точки) и выбрать пункт Внешние команды.
Атрибуты внешней команды:
Атрибут | Тип | Описание |
---|---|---|
ИМЯ | string | название команды |
ВН.КОМАНДА | string | постоянная часть внешней команды, для Lora это обычно двух-значный код |
ДАННЫЕ | string | переменная часть внешней команды, см. протокол устройства |
УСТРОЙСТВО | справочник | не заполняется |
FPORT LORAWAN | int | применимо только для Lora устройств |
Все устройства, которые имеют тип интеграционных систем, являются специальными. Каналы этих устройств должны быть согласованы с настрокой соответствующего конфигурационного модуля.
Воспользуйтесь импортом для загрузки таких устройств, которые опубликованы на github.com в проекте Inspark-docker
События различают на системные и пользовательские:
События платормы – это сущности, порождаемые работой контрольных процедур и правил.
Событие – это информация о выполнении какого-то условия, связанного с контролируемым параметром (например, превышение напряжением заданного порогового значения, срабатывание датчика и т.п.).
Платформа позволяет Администратору самостоятельно определять совокупность событий, представляющих интерес для пользователей, составляя эти события из значений и свойств других сущностей (теги подстановки).
Событиям платформы присваивается 4-значный цифровой код в формате:
TNNN, где:
Код типа | Описание типа события | Инициатор |
---|---|---|
1 | Системные события, инициируемые контроллером | Контроллеры |
2 | Системные события, инициируемые сервером | Серверы |
3 | Результаты выполнения команд, выданных контроллеру | Контроллеры |
4 | События, связанные с изменением значений некоторых параметров | Контроллеры |
5 | События, связанные с изменением состояния контролируемого объекта. Эти события пользователи могут формировать самостоятельно. | Контроллеры, cерверы |
События с кодами типов от 1 до 4 (1XХX – 4XXX) записываются в административные журналы. События с кодом типа «5» (5XXX) записываются«в «Журнал собы»ий»; код типа «5» используется для обозначения следующих событий:
Атрибуты формы создания/редактирования события:
Обычно при описании событий с кодами 5XXX используется значение типа 3. Возможные типы дополнительной информации приведены в следующей таблице.
Описание типов дополнительной информации по событиям
Тип | Описание | Формат сообщения |
---|---|---|
0 | Нет дополнительной информации или она игнорируется. В теле события будет пусто | |
1 | Произвольное значение или текст | Текстовая строка события, без изменений |
2 | Формат идентификатора параметра | В сообщении используется формат <IdParameter>, <TypeParameter>, либо <IdParameter> |
3 | Формат идентификатора и значения параметра | В сообщении используется формат <IdParameter>=<ValueParameter>, <TypeParameter>, либо <IdParameter>=<ValueParameter> |
Шаблон сообщения о событии может содержать теги подстановок, которые при обработке автоматически заменяются на реальные значения. Каждый тег в шаблоне записывается в виде %<имя тега>%. Перечень разрешенных тегов и порядок их обработки приведены ниже (п. 4.3.3).
Описание тегов и типов дополнительной информации
Имя тега | Описание | Типы доп. инфо | Использование в «Журнале событий» |
---|---|---|---|
CAT_NAME | Категория параметра (ед. измерения) | 2-3 | - |
CHANNEL_NAME | Наименование канала датчика для измерения параметра | 2-3 | - |
CHANNEL_STATE | Состояние канала устройства, связанного с параметром | 2-3 | - |
CONFIG_STATE | Статус файла конфигурации контроллера | 0-3 | - |
CONTR_SERIALNUM | Серийный номер контроллера | 0-3 | + |
CONTR_STATE | Статус контроллера | 0-3 | - |
CONTR_HEALTH_TIME | Время последнего подтверждения работоспособности контроллера | 0-3 | - |
DEVICE_NAME | Наименование датчика для измерения параметра | 2-3 | - |
DEVICE_PORT | Порт подключения датчика для измерения параметра | 2-3 | - |
EVENT_TIME | Время наступления события | 0-3 | + |
EVENT_NAME | Наименование события | 0-3 | + |
EXT_INFO | Дополнительная информация (отформатированное сообщение) | 1 | + |
OBJECT_NAME | Краткое наименование объекта | 0-3 | + |
OBJECT_FULL_NAME | Полное наименование объекта | 0-3 | + |
OBJECT_ADDRESS | Полный адрес объекта | 2-3 | + |
OBJECT_STATE | Статус объекта | 0-3 | - |
PARAM_NAME | Наименование измеряемого параметра | 2-3 | + |
PARAM_TYPE | Тип значения параметра | 2-3 | - |
PARAM_STATE | Состояние параметра | 2-3 | - |
PARAM_VALUE | Текущее значение параметра | 3 | + |
PARAM_HUMAN_VALUE | Отображаемое значение параметра | 2-3 | + |
PARAM_TIME | Время последнего изменения параметра | 2-3 | - |
SCHED_LOCK | Признак блокировки выполнения расписания на контроллере | 0-3 | - |
SCHED_STATE | Статус файла расписания | 0-3 | - |
SCHED_NAME | Наименование расписания, установленного на контроллере | 0-3 | - |
ZONE | Зона параметра | 2-3 | + |
CONNECT_NAME | Схема подключения с типовой конфигурации | 0-3 | + |
CONNECT_ADDRESS | Адрес устройства | 0-3 | + |
В текущей версии платформа предоставляет возможность пользователям подписаться на получение событий по электронной почте, месенджеру Telegram, push-уведомления для мобильных приложений и звуковое оповещение в web-клиенте платформы.
Уведомления формируются, рассылаются и администрируются по следующим правилам:
Администратор не может настроить каналы уведомления за пользователя. Все каналы уведомлений пользователь должен добавить и активировать самостоятельно в разделе «НАСТРОЙКИ» / «Подписка на события».
Шаблоны применяются в платформе для описания режимов работы параметров. Шаблоны создаются без конкретной привязки к параметру и в дальнейшем, при формировании типовой конфигурации, к параметру назначается шаблон.
Шаблон позволяет задать режимы включения/выключения параметра по различным условиям:
Если заданы все три типа, то общий график расписания строится с учетом ОБЪЕДИНЕНИЯ/ПЕРЕСЕЧЕНИЯ шаблона.
Важно! Алгоритм пересечения работает только между режимами, но не внутри режимов.