You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
318 lines
5.6 KiB
318 lines
5.6 KiB
4 months ago
|
FUNCTION_BLOCK BS_EVC
|
||
|
VAR_EXTERNAL
|
||
|
|
||
|
END_VAR
|
||
|
|
||
|
VAR_INPUT
|
||
|
RUN : BOOL ; (* PID功能块启用 *)
|
||
|
SET : REAL ; (* 调节目标值 *)
|
||
|
FB : REAL ; (* 调节目标值的反馈值 *)
|
||
|
Dead_Band : REAL :=0.5 ; (* 死区 *)
|
||
|
Delay : TIME :=t#30s;(* 延时时间 *)
|
||
|
SW : INT ; (* 季节模式 0夏季 1冬季 2过渡 *)
|
||
|
END_VAR
|
||
|
|
||
|
VAR_OUTPUT
|
||
|
EVC : BOOL ; (* 电磁阀控制 *)
|
||
|
END_VAR
|
||
|
|
||
|
VAR
|
||
|
ton1 : TON ;
|
||
|
ton2 : TON ;
|
||
|
END_VAR
|
||
|
|
||
|
(*Automatically declared*)
|
||
|
VAR_EXTERNAL
|
||
|
END_VAR
|
||
|
(** {* **)
|
||
|
(** **)
|
||
|
(** ʱ �䣺20191003 **)
|
||
|
(** �� ����1.0 **)
|
||
|
(** �� �ߣ�Ҧ�� **)
|
||
|
(** �� �ƣ����ŷ�/���ط�ֵ�س��� **)
|
||
|
(** ˵ �������ڵ��ŷ�/���ط����Ŀ��������ŵ�ֵ�س��� **)
|
||
|
(** �� ע���������¶ȡ�ʪ�ȵȿ��� **)
|
||
|
(** �����飺�� **)
|
||
|
(** **)
|
||
|
(** �������� **)
|
||
|
(** RUN : BOOL ; PID���ܿ����� **)
|
||
|
(** SET : REAL ; ����Ŀ��ֵ **)
|
||
|
(** FB : REAL ; ����Ŀ��ֵ�ķ���ֵ **)
|
||
|
(** Dead_Band : REAL ; ����,Ĭ��0.5 **)
|
||
|
(** Delay : TIME ; ��ʱʱ��,Ĭ��30S **)
|
||
|
(** SW : INT ; ����ģʽ 0�ļ� 1���� **)
|
||
|
(** �������� **)
|
||
|
(** EVC : BOOL ; ���ŷ�/���ط��������� **)
|
||
|
(** **)
|
||
|
(** *} **)
|
||
|
(** **)
|
||
|
(** {* **)
|
||
|
(** ���FB>SET EVC:=1 **)
|
||
|
(** FB-(SET+D)>=0 EVC:=1 **)
|
||
|
(** FB-(SET-D)<0 EVC:=0 **)
|
||
|
(** ������SET>FB EVC:=1 **)
|
||
|
(** (SET-D)-FB>=0 EVC:=1 **)
|
||
|
(** (SET+D)-FB<0 EVC:=0 **)
|
||
|
(** *} **)
|
||
|
(** ton1(pt:=Delay); **)
|
||
|
(* call - Stmt *)
|
||
|
CAL ton1 (
|
||
|
pt := Delay
|
||
|
)
|
||
|
|
||
|
(** ton2(pt:=Delay); **)
|
||
|
(* call - Stmt *)
|
||
|
CAL ton2 (
|
||
|
pt := Delay
|
||
|
)
|
||
|
|
||
|
(** **)
|
||
|
(** if RUN =1 then **)
|
||
|
(* if - Cond *)
|
||
|
LD RUN
|
||
|
EQ 1
|
||
|
JMPCN ODK_SKIP_000000000000001_000000000000001
|
||
|
|
||
|
(* then - Stmts *)
|
||
|
|
||
|
(** if SW=0 then **)
|
||
|
(* if - Cond *)
|
||
|
LD SW
|
||
|
EQ 0
|
||
|
JMPCN ODK_SKIP_000000000000002_000000000000001
|
||
|
|
||
|
(* then - Stmts *)
|
||
|
|
||
|
(** if FB-(SET+Dead_Band)>=0.0 then **)
|
||
|
(* if - Cond *)
|
||
|
LD FB
|
||
|
SUB ( SET
|
||
|
ADD Dead_Band
|
||
|
)
|
||
|
GE 0.0
|
||
|
JMPCN ODK_SKIP_000000000000003_000000000000001
|
||
|
|
||
|
(* then - Stmts *)
|
||
|
|
||
|
(** ton1.in:=1; **)
|
||
|
(* assign - Stmt *)
|
||
|
LD 1
|
||
|
ST ton1.in
|
||
|
|
||
|
JMP ODK_END_IF_000000000000003
|
||
|
|
||
|
(** else **)
|
||
|
(* else *)
|
||
|
ODK_SKIP_000000000000003_000000000000001:
|
||
|
|
||
|
(* else - Stmts *)
|
||
|
|
||
|
(** ton1.in:=0; **)
|
||
|
(* assign - Stmt *)
|
||
|
LD 0
|
||
|
ST ton1.in
|
||
|
|
||
|
(** end_if; **)
|
||
|
(* if - End *)
|
||
|
ODK_END_IF_000000000000003:
|
||
|
|
||
|
(** if ton1.q=1 then **)
|
||
|
(* if - Cond *)
|
||
|
LD ton1.q
|
||
|
EQ 1
|
||
|
JMPCN ODK_SKIP_000000000000004_000000000000001
|
||
|
|
||
|
(* then - Stmts *)
|
||
|
|
||
|
(** EVC:=1; **)
|
||
|
(* assign - Stmt *)
|
||
|
LD 1
|
||
|
ST EVC
|
||
|
|
||
|
JMP ODK_END_IF_000000000000004
|
||
|
|
||
|
(** end_if; **)
|
||
|
(* if - End *)
|
||
|
ODK_SKIP_000000000000004_000000000000001:
|
||
|
ODK_END_IF_000000000000004:
|
||
|
|
||
|
(** if FB-(SET-Dead_Band)<0.0 then **)
|
||
|
(* if - Cond *)
|
||
|
LD FB
|
||
|
SUB ( SET
|
||
|
SUB Dead_Band
|
||
|
)
|
||
|
LT 0.0
|
||
|
JMPCN ODK_SKIP_000000000000005_000000000000001
|
||
|
|
||
|
(* then - Stmts *)
|
||
|
|
||
|
(** ton2.in:=1; **)
|
||
|
(* assign - Stmt *)
|
||
|
LD 1
|
||
|
ST ton2.in
|
||
|
|
||
|
JMP ODK_END_IF_000000000000005
|
||
|
|
||
|
(** else **)
|
||
|
(* else *)
|
||
|
ODK_SKIP_000000000000005_000000000000001:
|
||
|
|
||
|
(* else - Stmts *)
|
||
|
|
||
|
(** ton2.in:=0; **)
|
||
|
(* assign - Stmt *)
|
||
|
LD 0
|
||
|
ST ton2.in
|
||
|
|
||
|
(** end_if; **)
|
||
|
(* if - End *)
|
||
|
ODK_END_IF_000000000000005:
|
||
|
|
||
|
(** if ton2.q=1 then **)
|
||
|
(* if - Cond *)
|
||
|
LD ton2.q
|
||
|
EQ 1
|
||
|
JMPCN ODK_SKIP_000000000000006_000000000000001
|
||
|
|
||
|
(* then - Stmts *)
|
||
|
|
||
|
(** EVC:=0; **)
|
||
|
(* assign - Stmt *)
|
||
|
LD 0
|
||
|
ST EVC
|
||
|
|
||
|
JMP ODK_END_IF_000000000000006
|
||
|
|
||
|
(** end_if; **)
|
||
|
(* if - End *)
|
||
|
ODK_SKIP_000000000000006_000000000000001:
|
||
|
ODK_END_IF_000000000000006:
|
||
|
|
||
|
JMP ODK_END_IF_000000000000002
|
||
|
|
||
|
(** else **)
|
||
|
(* else *)
|
||
|
ODK_SKIP_000000000000002_000000000000001:
|
||
|
|
||
|
(* else - Stmts *)
|
||
|
|
||
|
(** if (SET-Dead_Band)-FB>=0.0 then **)
|
||
|
(* if - Cond *)
|
||
|
LD SET
|
||
|
SUB Dead_Band
|
||
|
SUB FB
|
||
|
GE 0.0
|
||
|
JMPCN ODK_SKIP_000000000000007_000000000000001
|
||
|
|
||
|
(* then - Stmts *)
|
||
|
|
||
|
(** ton1.in:=1; **)
|
||
|
(* assign - Stmt *)
|
||
|
LD 1
|
||
|
ST ton1.in
|
||
|
|
||
|
JMP ODK_END_IF_000000000000007
|
||
|
|
||
|
(** else **)
|
||
|
(* else *)
|
||
|
ODK_SKIP_000000000000007_000000000000001:
|
||
|
|
||
|
(* else - Stmts *)
|
||
|
|
||
|
(** ton1.in:=0; **)
|
||
|
(* assign - Stmt *)
|
||
|
LD 0
|
||
|
ST ton1.in
|
||
|
|
||
|
(** end_if; **)
|
||
|
(* if - End *)
|
||
|
ODK_END_IF_000000000000007:
|
||
|
|
||
|
(** if ton1.q=1 then **)
|
||
|
(* if - Cond *)
|
||
|
LD ton1.q
|
||
|
EQ 1
|
||
|
JMPCN ODK_SKIP_000000000000008_000000000000001
|
||
|
|
||
|
(* then - Stmts *)
|
||
|
|
||
|
(** EVC:=1; **)
|
||
|
(* assign - Stmt *)
|
||
|
LD 1
|
||
|
ST EVC
|
||
|
|
||
|
JMP ODK_END_IF_000000000000008
|
||
|
|
||
|
(** end_if; **)
|
||
|
(* if - End *)
|
||
|
ODK_SKIP_000000000000008_000000000000001:
|
||
|
ODK_END_IF_000000000000008:
|
||
|
|
||
|
(** if (SET+Dead_Band)-FB<0.0 then **)
|
||
|
(* if - Cond *)
|
||
|
LD SET
|
||
|
ADD Dead_Band
|
||
|
SUB FB
|
||
|
LT 0.0
|
||
|
JMPCN ODK_SKIP_000000000000009_000000000000001
|
||
|
|
||
|
(* then - Stmts *)
|
||
|
|
||
|
(** ton2.in:=1; **)
|
||
|
(* assign - Stmt *)
|
||
|
LD 1
|
||
|
ST ton2.in
|
||
|
|
||
|
JMP ODK_END_IF_000000000000009
|
||
|
|
||
|
(** else **)
|
||
|
(* else *)
|
||
|
ODK_SKIP_000000000000009_000000000000001:
|
||
|
|
||
|
(* else - Stmts *)
|
||
|
|
||
|
(** ton2.in:=0; **)
|
||
|
(* assign - Stmt *)
|
||
|
LD 0
|
||
|
ST ton2.in
|
||
|
|
||
|
(** end_if; **)
|
||
|
(* if - End *)
|
||
|
ODK_END_IF_000000000000009:
|
||
|
|
||
|
(** if ton2.q=1 then **)
|
||
|
(* if - Cond *)
|
||
|
LD ton2.q
|
||
|
EQ 1
|
||
|
JMPCN ODK_SKIP_00000000000000A_000000000000001
|
||
|
|
||
|
(* then - Stmts *)
|
||
|
|
||
|
(** EVC:=0; **)
|
||
|
(* assign - Stmt *)
|
||
|
LD 0
|
||
|
ST EVC
|
||
|
|
||
|
JMP ODK_END_IF_00000000000000A
|
||
|
|
||
|
(** end_if; **)
|
||
|
(* if - End *)
|
||
|
ODK_SKIP_00000000000000A_000000000000001:
|
||
|
ODK_END_IF_00000000000000A:
|
||
|
|
||
|
(** end_if; **)
|
||
|
(* if - End *)
|
||
|
ODK_END_IF_000000000000002:
|
||
|
|
||
|
JMP ODK_END_IF_000000000000001
|
||
|
|
||
|
(** end_if; **)
|
||
|
(* if - End *)
|
||
|
ODK_SKIP_000000000000001_000000000000001:
|
||
|
ODK_END_IF_000000000000001:
|
||
|
|
||
|
(** **)
|
||
|
(** **)
|
||
|
|
||
|
END_FUNCTION_BLOCK
|