ТСРВ024М+, различить коды НС для сбоя по питанию и режима Наладка

В обновлении, которое будет выпущено сегодня, в источник данных для отчетов добавлены поля
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):

  1. Норма
  2. Сбой часов
  3. Сбой FRAM
  4. Сбой FLASH
  5. Нет связи
  6. Отказ БД Сервис
  7. Отказ БД Поверка
  8. Отказ АЦП1 ПИ
  9. Отказ АЦП2 ПИ
  10. Семафор событий разрушен
  11. Копия часов разрушена
  12. Отказ по питанию
  13. Нет временного события
  14. Нет памяти
  15. Перезагрузка

Под Архивом событий по тепловому вводу мы понимаем (1): 32 кода НС (для 24М); 4, 5, 10, 11, 16, 17, 22, 23, НС25-31 (для 24М+)
Под Архивом смены режима (5):

0 - «Работа»;
1 - «Наладка»;
2 - «Поверка»;
3 - «Калибровка».

Когда мы открыли Архив событий по нашему прибору и в отчете вывели, получили что у вас перемешались все события - Архив смены режима и коды НС все попали в Общий архив, то есть там не может быть кодов 5,11,26 как мы видим, они должны выводится в Архив по тепловому вводу (1,2,3).

Понятно одно, что разных вычислителей будут свои правила вывода, так как отличаются архивы отказов и НС, но в данном случае мы хотели бы видеть ТСРВ024М+ с правильным информационным полем по отказам и НС (0|11;1|5;5|1)
demo.pdf (464 KB)


str_arh_tsrv-024.pdf (206 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};

Да, коды событий для КМ5.