Вопросы по ошибкам прибора ВКТ-9

У меня нет вопросов по реализации парсинга НС, но есть вопросы по самим НС.
ВКТ-9. Следующие данные взяты из таблицы данных в ЛЭРС Учет

Код.

0; 6; 7; 1; 2; 15; 14

Описание

0: Общие НС; Разность температур между каналами меньше нуля (dt3 < 0); Небаланс (по часовому массовому расходу) Gm2 > Gm1*K; Текущая температура в канале 1 ниже температуры холодной воды (t1 < tхв); Текущая температура в канале 2 ниже температуры холодной воды (t2 < tхв); Останов ТС; Внешнее питание
Задача : Представить коды в отчете в виде

Вопросы:

  1. Как понять в данных ЛЭРСа где канальные НС, а где НС ТС?
  2. Почему в лэрс код 15 - это остановка ТС, в РЭ на ВКТ-9 это код F?

Думаю причина в том, что в ЛЭРС все значения кодов представлены в десятичной системе.


Если “F” перевести из hex в dec - будет “15”.

Я выделил обсуждение начиная с вашего комментария в отдельную тему, так как исходная тема, в которой вы задали ваш вопрос, никак не относится к этому вопросу. Пожалуйста, соблюдайте правило нашего форума: один вопрос - одна тема.

  1. В таблице данных какого либо способа просмотреть какая именно ошибка ВКТ-9 возникла (по каналу или по ТС) возможности нет.
  2. @7in дал исчерпывающий ответ.

А как быть с остальными буквами ?


Или канальные НС ЛЭРС не считывает, потому вопрос не уместен?

ЛЭРС УЧЕТ считывает канальные НС. К сожалению точно информации по расшифровке данных кодов. Предположу что коды начиная с 10 заменены на буквы латинского алфавита по порядку, как это происходит при отображении числа в HEX. То есть у вас G =16, H = 17 и т.д.

Попробуйте прояснить этот вопрос в технической поддержке производителя данного прибора.

Может Вам будет это полезно. ЛЭРС умеет различать, что есть “Общие НС”, а что “Аппаратные НС”. Но с отображением этого в интерфейсе проблема.
Эти данные ЛЭРС хранит в таблице MeasurePointDeviceErrors, один из ее параметров это ArchiveType, вот по нему и можно определять, к чему относится ошибка. Эту же информацию можно получить, через Framework, может и через API, но это не смотрел.

В теме Некорректное чтение кодов ошибок ВКТ-7 [10667] [12837] - #30 от пользователя slavniy посоветовали использовать поле “DeviceErrorDescription” для получения описания НС. На рисунке ниже результат полей “DeviceErrorCodes” и “DeviceErrorDescription” :


Видно, что код 7 встречается два раза в разных архивах и имеет разное описание:

  1. в системном архиве это “Небаланс…Gm2>gm1*K” - совпадает с РЭ ВКТ9
  2. в архиве “по тепловому вводу” это “Разница температур между каналами отрицательна dt2<0” - не совпадает с описанием канальных НС в РЭ ВКТ9.
    Возможно как-то увидеть( вывести в отчет) таблицу всех возможных кодов НС для каждого типа архива с описанием? Без этой информации я не вижу возможности сделать правильный парсинг кодов НС.
    Кстати, видно что не все ошибки из поля “DeviceErrorDescription” попадают в поле “DeviceErrorCodes”, можете сказать почему?

Поддержка прибора была добавлена почти 10 лет назад. Возможно соответствие кодов НС и их описателей изменилось за это время.

Описание всех возможных кодов находится в драйвере и получить их оттуда в отчете или еще как либо не представляется возможным.

Эта ситуация наблюдается только в отчете или в таблице с данными такая же ситуация? Покажите полный скриншот всего отчета, где отражена рассматриваемая запись и скриншот таблицы с данными, где видно эту же запись архива ошибок на ту же метку времени. Также приложите скриншот заводской программы, где видно запись архива ошибок на все ту же метку времени.
Обращаю ваше внимание, что на всех скриншотах окна программ должны быть видны полностью.

Ну почему невозможно? Вот описание:

описание

CommonSystemIncidents

  1. “0: Общие НС” — 1
  2. “Разность температур между каналами меньше нижнего порога (dt1 < dtнп)” — 2
  3. “Разность температур между каналами меньше нуля (dt1 < 0)” — 4
  4. “Разность температур между каналами меньше нижнего порога (dt2 < dtнп)” — 8
  5. “Разность температур между каналами меньше нуля (dt2 < 0)” — 16
  6. “Разность температур между каналами меньше нижнего порога (dt3 < dtнп)” — 32
  7. “Разность температур между каналами меньше нуля (dt3 < 0)” — 64
  8. “Небаланс (по часовому массовому расходу) Gm2 > Gm1*K” — 128
  9. “Небаланс (по часовому массовому расходу) Gm1 > Gm2*K” — 256
  10. “Тепловая энергия (общая по ТС за час) меньше нуля” — 512
  11. “Тепловая энергия в ГВС за час меньше нуля” — 1024
  12. “ТС остановлена (W=0), расчёт тепловой энергии остановлен” — 32768

HardwareIncidents

  1. “Сброс питания” — 1
  2. “Системный сброс” — 2
  3. “Отказ АЦП” — 4
  4. “Отказ RTC” — 8
  5. “Восстановление данных в FRAM” — 16
  6. “Сбой данных в FRAM” — 32
  7. “Восстановление данных в DATAFLASH” — 64
  8. “Сбой данных в DATAFLASH” — 128
  9. “Сбой данных во FLASH” — 256
  10. “Режим ПОВЕРКА” — 512
  11. “Режим НАСТРОЙКА” — 1024
  12. “Режим КАЛИБРОВКА” — 2048
  13. “Отсутствие питания” — 4096
  14. “Пониженное напряжение батареи” — 8192
  15. “Внешнее питание” — 16384

AdditionalIncidents

  1. “Сигнал на входе DIN1” — 1
  2. “Сигнал на входе DIN2” — 2
  3. “Сигнал на входе DINA” — 4
  4. “Сигнал на входе DINB” — 8
  5. “Сигнал на входе DINC” — 16
  6. “Сигнал на входе DIND” — 32
  7. “Летний период” — 64
  8. “Зимний период” — 128
  9. “Отказ tхв” — 256
  10. “Отказ Pхв” — 512
  11. “Отказ датчика температуры воздуха (Отказ tвозд)” — 1024
  12. “Температура холодной воды больше верхнего порога или меньше нижнего порога (tхв > tвп или tхв < tнп)” — 2048
  13. “Давление холодной воды больше верхнего порога или меньше нижнего порога (Pхв>Pвп или Pхв<Pнп)” — 4096
  14. “Температура воздуха больше верхнего порога или меньше нижнего порога (tвозд > tвп или tвозд < tнп)” — 8192
  15. “Общая тепловая энергия за час меньше нуля (Qобщ < 0)” — 16384

ChannelIncidents

  1. “Отказ ПР1” — 1
  2. “Отказ ПР2” — 2
  3. “Отказ ПР3” — 4
  4. “Объемный расход в канале 1 больше верхнего порога расхода (G1 > Gвп1)” — 8
  5. “Объемный расход в канале 2 больше верхнего порога расхода (G1 > Gвп2)” — 16
  6. “Объемный расход в канале 3 больше верхнего порога расхода (G1 > Gвп3)” — 32
  7. “Объемный расход в канале 1 больше величины отсечки, но меньше соответствующей заданной величины нижнего порога расхода (Gотс1 < G1 < Gнп1)” — 64
  8. “Объемный расход в канале 2 больше величины отсечки, но меньше соответствующей заданной величины нижнего порога расхода (Gотс2 < G2 < Gнп2)” — 128
  9. “Объемный расход в канале 3 больше величины отсечки, но меньше соответствующей заданной величины нижнего порога расхода (Gотс3 < G3 < Gнп3)” — 256
  10. “Объемный расход в канале меньше величины отсечки (G1 < Gотс1)” — 512
  11. “Объемный расход в канале меньше величины отсечки (G2 < Gотс2)” — 1024
  12. “Объемный расход в канале меньше величины отсечки (G3 < Gотс3)” — 2048
  13. “Отказ преобразователя температуры 1” — 4096
  14. “Отказ преобразователя температуры 2” — 8192
  15. “Отказ преобразователя температуры 3” — 16384
  16. “Температура в канале 1 больше допустимого верхнего порога (t1 > t_вп1)” — 32768
  17. “Температура в канале 2 больше допустимого верхнего порога (t2 > t_вп2)” — 65536
  18. “Температура в канале 3 больше допустимого верхнего порога (t3 > t_вп3)” — 131072
  19. “Температура в канале 1 меньше допустимого нижнего порога (t1 < t_нп1)” — 262144
  20. “Температура в канале 2 меньше допустимого нижнего порога (t2 < t_нп2)” — 524288
  21. “Температура в канале 3 меньше допустимого нижнего порога (t3 < t_нп3)” — 1048576
  22. “Отказ преобразователя давления 1” — 2097152
  23. “Отказ преобразователя давления 2” — 4194304
  24. “Отказ преобразователя давления 3” — 8388608
  25. “Давление в канале 1 больше допустимого верхнего порога (P1 > P_вп1)” — 16777216
  26. “Давление в канале 2 больше допустимого верхнего порога (P2 > P_вп2)” — 33554432
  27. “Давление в канале 3 больше допустимого верхнего порога (P3 > P_вп3)” — 67108864
  28. “Давление в канале 1 меньше допустимого нижнего порога (P1 < P_нп1)” — 134217728
  29. “Давление в канале 2 меньше допустимого нижнего порога (P2 < P_нп2)” — 268435456
  30. “Давление в канале 3 меньше допустимого нижнего порога (P3 < P_нп3)” — 536870912

HeatSysIncidents

  1. “Внешнее событие” — 1
  2. “Текущая температура в канале 1 ниже температуры холодной воды (t1 < tхв)” — 2
  3. “Текущая температура в канале 2 ниже температуры холодной воды (t2 < tхв)” — 4
  4. “Текущая температура в канале 3 ниже температуры холодной воды (t3 < tхв)” — 8
  5. “Разница температур между каналами меньше допустимого значения (dt1 < dt_нп1)” — 16
  6. “Разница температур между каналами отрицательна (dt1 < 0)” — 32
  7. “Разница температур между каналами меньше допустимого значения (dt2 < dt_нп2)” — 64
  8. “Разница температур между каналами отрицательна (dt2 < 0)” — 128
  9. “Небаланс расходов теплоносителя… g1*K > g2 > g1” — 256
  10. “Небаланс расходов теплоносителя… g2 > g1*K” — 512
  11. “Небаланс расходов теплоносителя… g2*K > g1 > g2” — 1024
  12. “Небаланс расходов теплоносителя… g1 > g2*K” — 2048

Немного подредактировал ваше сообщение, убрав в спойлер приведенное описание.

Приведенные вами перечисления являются внутренними перечислениями драйвера ВКТ-9 и взаимодействие с ними на программном уровне невозможно, тогда как задача @MAK, на сколько я вижу из его сообщения, иметь возможность получать данные описания из программы для их вывода в отчете, а такой возможности, как уже писал выше, нет. Я предположу, что вы попросту декомпилировали Службу опроса ЛЭРС УЧЕТ и сохранили получившиеся перечисления драйвера ВКТ-9, так как в исходном виде они записаны несколько иначе.
Чтобы задействовать приведенные перечисления, пользователю придется их воссоздать в отчете вручную, а это можно было сделать в целом по документации прибора, что собственно и было сделано нами при реализации драйвера ВКТ-9.

1 лайк