Сообщение от
ComradeBulkin
Да, видимо вариантов других нет. Жаль только, что придётся таймерами перегружать систему.
А много у вас параметров ?
У себя я организовал обработку тоже в коде
В alarmGroup вставлен массив строк
Так же созданы классы тревог ( для закраски разными цветами)
Далее в коде идет обработка
Код:
(*
1-10 : статусы
11-30: связь
31-40: запрос обслуживания
41-99: ошибка
*)
//Статусы состояния
//Статусы - связи
awsMessageJournalLatch2[11] :=ptawsName_Mb_dev^[1];
awsMessageJournalLatch2[12] :=ptawsName_Mb_dev^[2];
awsMessageJournalLatch2[13] :=ptawsName_Mb_dev^[3];
awsMessageJournalLatch2[14] :=ptawsName_Mb_dev^[4];
awsMessageJournalLatch2[15] :=ptawsName_Mb_dev^[5];
awsMessageJournalLatch2[16] :=ptawsName_Mb_dev^[6];
afbAlarmTrgiggerDelay[11].IN:=D1_4301_MU210_501.byModbusError <> MB_ErrorCodes.RESPONSE_SUCCESS;
afbAlarmTrgiggerDelay[12].IN:=D2_4301_MV210_101.byModbusError <> MB_ErrorCodes.RESPONSE_SUCCESS;
afbAlarmTrgiggerDelay[13].IN:=D1_3003_MV210_202.byModbusError <> MB_ErrorCodes.RESPONSE_SUCCESS;
afbAlarmTrgiggerDelay[14].IN:=D2_3003_MV210_101.byModbusError <> MB_ErrorCodes.RESPONSE_SUCCESS;
afbAlarmTrgiggerDelay[15].IN:=D3_3003_MU210_410.byModbusError <> MB_ErrorCodes.RESPONSE_SUCCESS;
afbAlarmTrgiggerDelay[16].IN:=D4_3003_MV210_101.byModbusError <> MB_ErrorCodes.RESPONSE_SUCCESS;
// Журнал событий
awsMessageJournalLatch1: ARRAY [1..100] OF WSTRING(20);
awsMessageJournalLatch2: ARRAY [1..100] OF WSTRING(60);
afbAlarmTrgiggerDelay: ARRAY [1..100] OF oscatbasic.TONOF;
В таком решении, очень просто переносится журнал из проекта в проект, т.к. таблица тревог всегда одна и та же, а весь текст в коде
Одна и та же дискретная переменная идет в два способа наблюдений:
Способ наблюдения Дискретный - для текущего журнала ( класс ошибки без архивации)
Способ наблюдения Изменение - для исторического (класс ошибки с архивацией)
Screenshot_110.png
Screenshot_111.png
Screenshot_112.png