(* =============================================================================== Project : PLC_Library Device : - Path : Общие Name : ALARM_1 Type : FUNCTION_BLOCK Exported : 2026-07-31 11:16:16 =============================================================================== *) FUNCTION_BLOCK ALARM_1 (* Функциональный блок проверяет входное значение X на принадлежность [LO_1…HI_1]*) VAR_INPUT X : REAL; (* Контролируемое значение. *) LO_1 : REAL; (* Нижний предел 1. *) HI_1 : REAL; (* Верхний предел 1. *) HYS : REAL; (* Значение гистерезиса (берется как HYS/2 отностительно середины) *) END_VAR VAR_OUTPUT Q1_LO : BOOL := FALSE; (* Флаг «значение меньше нижнего предела 1». *) Q1_HI : BOOL := FALSE; (* Флаг «значение больше верхнего предела 1». *) END_VAR VAR tmp: REAL; END_VAR (*----- IMPLEMENTATION -----*) tmp := X - HYS * 0.5; IF tmp > LO_1 THEN Q1_LO := FALSE; END_IF; IF tmp > HI_1 THEN Q1_HI := TRUE; END_IF; tmp := tmp + HYS; IF tmp < LO_1 THEN Q1_LO := TRUE; END_IF; IF tmp < HI_1 THEN Q1_HI := FALSE; END_IF; END_FUNCTION_BLOCK