Пульсар API
ПО ПУЛСАР
ООО НПП "ТЕПЛОВОДОХРАН" выпускает контроллеры ПУЛЬСАР коммерческого учета ресурсов (Энергия, тепло, вода).
Ниже описан интеграционный модуль по API к серверу сбора Пульсар.
Ссылка на рабочую БД, с примерами запросов
Логин: demo
пароль: demo
По проекту, Inspark должен собирать по каждому ресурсу:
- показания общедомовых приборов учета;
- показания приборов технического учета;
- показания индивидуальных приборов учета.
Требования к модулю интеграции
Ограничения накладываемые API Программный комплекс «Пульсар» на сбор измерений для Inspark
Объекты учета поддерживаемые Пульсар имеют иерархическую структуру, но нет ни каких признаков определяющих их тип
в иерархии (например, невозможно определить общедомовой или индивидуальный прибор учета).
Объект учета на любом уровне иерархии может иметь или не иметь набор ресурсных параметров, соответственно данные можно
получить только с объекта учета у которого есть ресурсные параметры.
Ресурсный параметр предоставляемый api для объекта учета не имеет ни каких данных о типе ресурса который он
представляет, только имя и идентификатор.
Сбор данных по каждому параметру возможен через создание специальных заданий на параметр с указанием через какие
интервалы времени Пульсар будет их собирать. Пульсар не предоставляет ни какой информации о состоянии и
работоспособности датчика, только косвенно отсутствие данных с датчика за заданный период.
Устройство Пульсар и типовая конфигурация Inspark
Основываясь на представленных ограничениях, устройство с типом Pulsar должно c одним каналом.
Например, для счетчика воды с каналом потребления воды. Для ПУЭ канал потребления ЭЭ:
- Пульсар потребление воды;
- Пульсар давление воды.

В каждом устройстве по одному каналу

Далее в Inspark все по типовой схеме: "Типовая конфигурация" - "Контроллер" с подключением всех необходимых устройств
Пульсар, связка ресурсных параметров Пульсар с параметрами в Inspark осуществляется через поле параметра
"Альтернативное название (код)" в которое задается идентификатор ресурсного параметра Пульсар.

Алгоритм работы модуля
Модуль долженработать в двух режимах:
- печать конфигурации Пульсар
- сбор данный с ПК Пульсар
Печать конфигурации Пульсар
В этом режиме модуль в лог выдает по всей иерархии объектов Пульсар названия и идентификаторы объектов учета и
ресурсные параметры с их названием и идентификаторами которые собираются на объектах учета. Также дополнительно
выводится информация о последних архивных данных за текущие сутки (чтобы оценить возможность или наличие сбора данных
на этом объекте по данному параметру)
2024-05-16 12:17:07.189 INFO [r.infsys.sem.pulsar.PrintApplication] (main) AccountingObject=AccountingObject(id=531, name=Дом Новая 51В, parentId=10, parameters=[ResourceParameter(id=3836, name=Газ-Антисаб. Выход1, accountingId=531), ResourceParameter(id=2433, name=Газ-Объём1 раб.(м3), accountingId=531), ResourceParameter(id=3847, name=Газ-Время нормальной работы, accountingId=531), ResourceParameter(id=3849, name=Газ-Объем раб. общ.(м3) без коррекции, accountingId=531), ResourceParameter(id=3845, name=Газ-Объём2 раб.(м3), accountingId=531), ResourceParameter(id=3848, name=Газ-Ошибки, accountingId=531), ResourceParameter(id=3846, name=Газ-Температура газа (гр.С), accountingId=531), ResourceParameter(id=3850, name=Газ-Объём3 ст. общ.(м3), accountingId=531), ResourceParameter(id=3713, name=ХВС-Давление1(МПа), accountingId=531), ResourceParameter(id=2441, name=ХВС-Объём1(м3), accountingId=531), ResourceParameter(id=3769, name=ХВС-Объём4(м3), accountingId=531), ResourceParameter(id=265, name=Электроэнергия-Актив1 т.1(кВт*ч), accountingId=531), ResourceParameter(id=2172, name=Электроэнергия-Актив1 т.2(кВт*ч), accountingId=531), ResourceParameter(id=2175, name=Электроэнергия-Актив1 т.3(кВт*ч), accountingId=531), ResourceParameter(id=2180, name=Электроэнергия-Актив1 т.4(кВт*ч), accountingId=531), ResourceParameter(id=926, name=Электроэнергия-Реакт1 т.1(кВт*ч), accountingId=531), ResourceParameter(id=3696, name=Электроэнергия-U1 Ввод1(В), accountingId=531), ResourceParameter(id=3695, name=Электроэнергия-U2 Ввод1(В), accountingId=531), ResourceParameter(id=3694, name=Электроэнергия-U3 Ввод1(В), accountingId=531), ResourceParameter(id=271, name=Электроэнергия-Актив2 т.1(кВт*ч), accountingId=531), ResourceParameter(id=2169, name=Электроэнергия-Актив2 т.2(кВт*ч), accountingId=531), ResourceParameter(id=2174, name=Электроэнергия-Актив2 т.3(кВт*ч), accountingId=531), ResourceParameter(id=2178, name=Электроэнергия-Актив2 т.4(кВт*ч), accountingId=531), ResourceParameter(id=925, name=Электроэнергия-Реакт2 т.1(кВт*ч), accountingId=531), ResourceParameter(id=3699, name=Электроэнергия-U1 Ввод2(В), accountingId=531), ResourceParameter(id=3697, name=Электроэнергия-U2 Ввод2(В), accountingId=531), ResourceParameter(id=3698, name=Электроэнергия-U3 Ввод2(В), accountingId=531), ResourceParameter(id=2151, name=Электроэнергия-Актив3 т.1(кВт*ч), accountingId=531), ResourceParameter(id=2150, name=Электроэнергия-Реакт3 т.1(кВт*ч), accountingId=531), ResourceParameter(id=2153, name=Электроэнергия-Актив4 т.1(кВт*ч), accountingId=531), ResourceParameter(id=2152, name=Электроэнергия-Реакт4 т.1(кВт*ч), accountingId=531)])
2024-05-16 12:17:07.222 INFO [r.infsys.sem.pulsar.PrintApplication] (main) ArchiveValue=ArchiveValue(value=334252.8125, date=2024-05-16T00:00:00, quality=192, parameterId=2433)
2024-05-16 12:17:07.222 INFO [r.infsys.sem.pulsar.PrintApplication] (main) ArchiveValue=ArchiveValue(value=334255.90625, date=2024-05-16T01:00:00, quality=192, parameterId=2433)
2024-05-16 12:17:07.222 INFO [r.infsys.sem.pulsar.PrintApplication] (main) ArchiveValue=ArchiveValue(value=334258.90625, date=2024-05-16T02:00:00, quality=192, parameterId=2433)
2024-05-16 12:17:07.222 INFO [r.infsys.sem.pulsar.PrintApplication] (main) ArchiveValue=ArchiveValue(value=334262.0, date=2024-05-16T03:00:00, quality=192, parameterId=2433)
2024-05-16 12:17:07.222 INFO [r.infsys.sem.pulsar.PrintApplication] (main) ArchiveValue=ArchiveValue(value=334265.0, date=2024-05-16T04:00:00, quality=192, parameterId=2433)
2024-05-16 12:17:07.222 INFO [r.infsys.sem.pulsar.PrintApplication] (main) ArchiveValue=ArchiveValue(value=334268.09375, date=2024-05-16T05:00:00, quality=192, parameterId=2433)
2024-05-16 12:17:07.222 INFO [r.infsys.sem.pulsar.PrintApplication] (main) ArchiveValue=ArchiveValue(value=334271.09375, date=2024-05-16T06:00:00, quality=192, parameterId=2433)
2024-05-16 12:17:07.222 INFO [r.infsys.sem.pulsar.PrintApplication] (main) ArchiveValue=ArchiveValue(value=334274.09375, date=2024-05-16T07:00:00, quality=192, parameterId=2433)
2024-05-16 12:17:07.222 INFO [r.infsys.sem.pulsar.PrintApplication] (main) ArchiveValue=ArchiveValue(value=334277.0, date=2024-05-16T08:00:00, quality=192, parameterId=2433)
2024-05-16 12:17:07.222 INFO [r.infsys.sem.pulsar.PrintApplication] (main) ArchiveValue=ArchiveValue(value=334279.59375, date=2024-05-16T09:00:00, quality=192, parameterId=2433)
2024-05-16 12:17:07.222 INFO [r.infsys.sem.pulsar.PrintApplication] (main) ArchiveValue=ArchiveValue(value=334282.0, date=2024-05-16T10:00:00, quality=192, parameterId=2433)
2024-05-16 12:17:07.222 INFO [r.infsys.sem.pulsar.PrintApplication] (main) ArchiveValue=ArchiveValue(value=334284.40625, date=2024-05-16T11:00:00, quality=192, parameterId=2433)
2024-05-16 12:17:07.222 INFO [r.infsys.sem.pulsar.PrintApplication] (main) ArchiveValue=ArchiveValue(value=334286.09375, date=2024-05-16T12:00:00, quality=192, parameterId=2433)
Из представленного лога можно определить, что на объекте Дом Новая 51В много собирается параметров по Газу, Воде,
Электроэнергии, но за последние сутки данные собирались только по электроэнергии, причину отсутствия остальных данных
определить не возможно и вероятно в режиме сбор данных информация о данных параметрах поступать тоже не будет
Сбор данных с ПК Пульсар
Алгоритм работы модуля для сбора измерений:
- считывание всех параметров на контроллере, которые связаны с устройством c классификатором PULSAR;
- проверка наличия у параметра на контроллере заполненного поля "Альтернативное название код", при отсутствии логирование;
- проверка наличия ресурсных параметров заданных в Inspark в ПК Пульсар, при отсутствии логирование
- создание заданий на опрос значений параметров в соответствии с настройкой типового параметра "Интервал опроса" в Пульсар;
- периодическое раз в минут определение заданий по которым появились новые данные в Пульсар;
- чтение данных по заданиям и отправка измерений по параметрам в Inspark;
- пункты 1-4 периодически по настройке в конфиге должны обновлять данные из Inspark и Пульсар