Добавил комментарии к блокам
This commit is contained in:
@@ -5,50 +5,48 @@
|
||||
Path : Fastwel
|
||||
Name : AIM725_Status
|
||||
Type : FUNCTION_BLOCK
|
||||
Exported : 2026-07-31 11:16:16
|
||||
===============================================================================
|
||||
*)
|
||||
|
||||
FUNCTION_BLOCK AIM725_Status
|
||||
(*
|
||||
Модуль формирования статуса
|
||||
Гистерезис по отключению и задержка по включению
|
||||
-1 - нет связи с датчиком
|
||||
0 - не определено
|
||||
1 - норма
|
||||
2 - предупредительный по нижнему уровню
|
||||
3 - аварийный по нижнему уровню
|
||||
4 - предупредительный по верхнему уровню,
|
||||
5 - аварийный по верхнему уровню
|
||||
Модуль формирования статуса
|
||||
Гистерезис по отключению и задержка по включению
|
||||
|
||||
-1 - нет связи с датчиком
|
||||
0 - не определено
|
||||
1 - норма
|
||||
2 - предупредительный по нижнему уровню
|
||||
3 - аварийный по нижнему уровню
|
||||
4 - предупредительный по верхнему уровню,
|
||||
5 - аварийный по верхнему уровню
|
||||
*)
|
||||
VAR_INPUT
|
||||
Input: REAL;
|
||||
fail_hi: REAL:=3.402823466E+38;
|
||||
delta_fail_hi: REAL := 0;
|
||||
time_fail_hi: TIME :=t#0s;
|
||||
warn_hi: REAL:=3.402823466E+38;
|
||||
delta_warn_hi: REAL := 0;
|
||||
time_warn_hi: TIME :=t#0s;
|
||||
warn_low: REAL:=-3.402823466E+38;
|
||||
delta_warn_low: REAL := 0;
|
||||
time_warn_low: TIME :=t#0s;
|
||||
fail_low: REAL:=-3.402823466E+38;
|
||||
delta_fail_low: REAL := 0;
|
||||
time_fail_low: TIME :=t#0s;
|
||||
Modul_status: BYTE;
|
||||
Chanel_num: BYTE;
|
||||
Input: REAL; (* Контролируемое значение *)
|
||||
fail_hi: REAL:=3.402823466E+38; (* Порог аварии по верхнему уровню *)
|
||||
delta_fail_hi: REAL := 0; (* Гистерезис возврата из fail_hi *)
|
||||
time_fail_hi: TIME :=t#0s; (* Выдержка времени на срабатывание fail_hi *)
|
||||
warn_hi: REAL:=3.402823466E+38; (* Порог предупреждения по верхнему уровню *)
|
||||
delta_warn_hi: REAL := 0; (* Гистерезис возврата из warn_hi *)
|
||||
time_warn_hi: TIME :=t#0s; (* Выдержка времени на срабатывание warn_hi *)
|
||||
warn_low: REAL:=-3.402823466E+38; (* Порог предупреждения по нижнему уровню *)
|
||||
delta_warn_low: REAL := 0; (* Гистерезис возврата из warn_low *)
|
||||
time_warn_low: TIME :=t#0s; (* Выдержка времени на срабатывание warn_low *)
|
||||
fail_low: REAL:=-3.402823466E+38; (* Порог аварии по нижнему уровню *)
|
||||
delta_fail_low: REAL := 0; (* Гистерезис возврата из fail_low *)
|
||||
time_fail_low: TIME :=t#0s; (* Выдержка времени на срабатывание fail_low *)
|
||||
Modul_status: BYTE; (* Байт статуса модуля АЦП (биты диагностики по каналам) *)
|
||||
Chanel_num: BYTE; (* Номер канала модуля (1 или 2), определяет какие биты Modul_status проверяются *)
|
||||
END_VAR
|
||||
VAR_OUTPUT
|
||||
Status: INT;
|
||||
T_mod: INT;
|
||||
Status: AnalogValueState; (* Итоговый статус аналогового значения *)
|
||||
T_mod: INT; (* Значение Input, приведенное к INT; -500 при отсутствии связи (no_signal) *)
|
||||
END_VAR
|
||||
VAR
|
||||
(* !!! ВНУТРЕННИЕ НЕВЫХОДНЫЕ ПЕРЕМЕННЫЕ!!! *)
|
||||
TON_fail_hi: TON;
|
||||
TON_warn_hi: TON;
|
||||
TON_warn_low: TON;
|
||||
TON_fail_low: TON;
|
||||
(* !!! ВНУТРЕННИЕ ВЫХОДНЫЕ ПЕРЕМЕННЫЕ!!! *)
|
||||
fail_hi_st: BOOL;
|
||||
warn_hi_st: BOOL;
|
||||
normal_st: BOOL;
|
||||
@@ -75,18 +73,18 @@ IF TON_warn_hi.Q THEN warn_hi_st := TRUE; ELSIF (Input < warn_hi - delta_warn_hi
|
||||
normal_st := (NOT(no_signal_st) AND NOT(fail_low_st) AND NOT(warn_low_st) AND NOT(warn_hi_st) AND NOT(fail_hi_st));
|
||||
|
||||
IF no_signal_st THEN
|
||||
Status := - INT#1;
|
||||
Status := AnalogValueState.no_signal;
|
||||
ELSIF fail_hi_st THEN
|
||||
Status := INT#5;
|
||||
Status := AnalogValueState.fail_hi;
|
||||
ELSIF fail_low_st THEN
|
||||
Status := INT#3;
|
||||
Status := AnalogValueState.fail_low;
|
||||
ELSIF warn_hi_st THEN
|
||||
Status := INT#4;
|
||||
Status := AnalogValueState.warn_hi;
|
||||
ELSIF warn_low_st THEN
|
||||
Status := INT#2;
|
||||
Status := AnalogValueState.warn_low;
|
||||
ELSIF normal_st THEN
|
||||
Status := INT#1;
|
||||
Status := AnalogValueState.normal;
|
||||
ELSE
|
||||
Status := INT#0;
|
||||
Status := AnalogValueState.undefined;
|
||||
END_IF;
|
||||
END_FUNCTION_BLOCK
|
||||
|
||||
Reference in New Issue
Block a user