В обновлении, которое будет выпущено сегодня, в источник данных для отчетов добавлены поля
DeviceEventCodes и DeviceEventDurations.
За период одной метки времени могут происходить события относящиеся к разным типам архива и коды событий у разных архивов могут совпадать, поэтому тип архива указывается для каждого кода события.
Поле DeviceEventCodes для каждой метки времени содержит тип архива и код события в виде строки:
Тип1|Код1;Тип2|Код2; … ТипN|КодN
Поле DeviceEventDurations для каждой метки времени содержит тип архива, код и длительность события (в часах с точностью до секунд) в виде строки:
Тип1|Код1|Длительность1;Тип2|Код2|Длительность2; … ТипN|КодN|ДлительностьN
Старые аналогичные поля DeviceErrorCodes и DeviceErrorCodeDuration будут удалены в одном из будущих обновлений, поэтому в отчетных формах рекомендуем их заменить на DeviceEventCodes и DeviceEventDurations соответственно.
Во вложении отчетная форма с примером использования новых полей в скриптах. KM5.lersreport (74.2 KB)
Обновили, посмотрели, не поняли ничего, вернее поняли и спешим вам объяснить.
Вы изначально предложили такие типы архивов:
0 - Общий (системный) архив событий прибора
1 - Архив событий по тепловому вводу
2 - Архив событий по каналу
3 - Архив событий по дискретным входам
4 - Архив событий по дискретным выходам
5 - Архив смены режима работы
6 - Архив действий пользователя
Теперь смотрим документацию по ТСРВ024М/М+ (во вложении). Под Общим архивом событий мы понимаем 14 отказов (0):
Норма
Сбой часов
Сбой FRAM
Сбой FLASH
Нет связи
Отказ БД Сервис
Отказ БД Поверка
Отказ АЦП1 ПИ
Отказ АЦП2 ПИ
Семафор событий разрушен
Копия часов разрушена
Отказ по питанию
Нет временного события
Нет памяти
Перезагрузка
Под Архивом событий по тепловому вводу мы понимаем (1): 32 кода НС (для 24М); 4, 5, 10, 11, 16, 17, 22, 23, НС25-31 (для 24М+)
Под Архивом смены режима (5):
Когда мы открыли Архив событий по нашему прибору и в отчете вывели, получили что у вас перемешались все события - Архив смены режима и коды НС все попали в Общий архив, то есть там не может быть кодов 5,11,26 как мы видим, они должны выводится в Архив по тепловому вводу (1,2,3).
Понятно одно, что разных вычислителей будут свои правила вывода, так как отличаются архивы отказов и НС, но в данном случае мы хотели бы видеть ТСРВ024М+ с правильным информационным полем по отказам и НС (0|11;1|5;5|1) demo.pdf (464 KB)
Судя по всему, эти архивы сохранены ещё до того как драйвер стал разделять типы архивов. В таком случае они получают код 0 для общего архива событий.
Нужно удалить данные и опросить архивы событий заново, чтобы они получили правильные коды. К сожалению, на данный момент времени удалить данные через интерфейс пользователя невозможно.
Мы можем подготовить для вас скрипт, который очистит записи архивов событий для приборов ТСРВ-024М+. Вас устроит такой вариант?
Приведенная отчетная форма KM5.lersreport имеет чисто иллюстрационный характер и была предназначена только для прибора KM5.
Коды событий целесообразнее хранить в массиве (см. вложение EventCodesInArray.lersreport), т.к. если используется поиск кода в строке, то возможны ложные срабатывания, например, если в строке с кодами есть код 11 и код 1. EventCodesInArray.lersreport (74.9 KB)
Здравствуйте! Спасибо за ответ, хотели пересоздать вчера, но в итоге просто переопросили всего лишь. На тему скрипта удаления данных, знаете он был весьма кстати!
Спасибо за скрипт с массивами, ход мыслей как раз был таким, только хотели использовать “ассоциативный массив” Dictionary<TKey, TValue>.
Чтобы удалить все записи архива событий по ТСРВ-024М+ нужно выполнить следующую команду (“Пуск –> Все программы –> Стандартные –> Командная строка”):
sqlcmd.exe -S (local)LERS -d LERS -E -Q "DELETE de FROM DeviceEvent de INNER JOIN Complex c ON de.DeviceId = c.Complex_ID WHERE c.Complex_MeterTypeID = 154"
вопрос про скрипт с массивами событий, он тоже под КМ5 сделан?
int codes_E = new int {61, 64, 65, 66, 67, 68, 69, 71, 73, 74, 76, 79, 81, 88, 90, 91, 93, 94, 106, 114, 119, 120, 121};