Поправил скрипт, поправил неточности в библиотеке
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
(*
|
||||
===============================================================================
|
||||
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
|
||||
Reference in New Issue
Block a user