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.
 
 
 
 
 
 

529 lines
10 KiB

FUNCTION_BLOCK IJDAHU
VAR_EXTERNAL
END_VAR
VAR_INPUT
DAHU_STRUCT_IN :DAHU_IN;
END_VAR
VAR_OUTPUT
DAHU_STRUCT_OUT :DAHU_OUT;
END_VAR
VAR
DAHU_SPID :PID;
DAHU_WPID :PID;
DAHU_WVCTEMP :REAL;
DAHU_SPID_VP :REAL;
DAHU_SPID_VI :REAL;
DAHU_WPID_VP :REAL;
DAHU_WPID_VI :REAL;
PID_in :BOOL;
PID_timer :TON;
DAHU_R :BOOL;
FPSSIM_timer :TON;
END_VAR
(*Automatically declared*)
VAR_EXTERNAL
END_VAR
(** {******************************检测风机运行类别 0压差或电流值 1仅压差 2仅电流*************************************} **)
(** **)
(** if DAHU_STRUCT_IN.RunMode=0 then **)
(* if - Cond *)
LD DAHU_STRUCT_IN.RunMode
EQ 0
JMPCN ODK_SKIP_000000000000001_000000000000001
(* then - Stmts *)
(** if DAHU_STRUCT_IN.FPS=1 or DAHU_STRUCT_IN.CTV>50 then **)
(* if - Cond *)
LD DAHU_STRUCT_IN.FPS
EQ 1
OR ( DAHU_STRUCT_IN.CTV
GT 50
)
JMPCN ODK_SKIP_000000000000002_000000000000001
(* then - Stmts *)
(** DAHU_R:= 1; **)
(* assign - Stmt *)
LD 1
ST DAHU_R
JMP ODK_END_IF_000000000000002
(** else **)
(* else *)
ODK_SKIP_000000000000002_000000000000001:
(* else - Stmts *)
(** DAHU_R:= 0; **)
(* assign - Stmt *)
LD 0
ST DAHU_R
(** 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:
(** if DAHU_STRUCT_IN.RunMode=1 then **)
(* if - Cond *)
LD DAHU_STRUCT_IN.RunMode
EQ 1
JMPCN ODK_SKIP_000000000000003_000000000000001
(* then - Stmts *)
(** if DAHU_STRUCT_IN.FPS=1 then **)
(* if - Cond *)
LD DAHU_STRUCT_IN.FPS
EQ 1
JMPCN ODK_SKIP_000000000000004_000000000000001
(* then - Stmts *)
(** DAHU_R:= 1; **)
(* assign - Stmt *)
LD 1
ST DAHU_R
JMP ODK_END_IF_000000000000004
(** else **)
(* else *)
ODK_SKIP_000000000000004_000000000000001:
(* else - Stmts *)
(** DAHU_R:= 0; **)
(* assign - Stmt *)
LD 0
ST DAHU_R
(** end_if; **)
(* if - End *)
ODK_END_IF_000000000000004:
JMP ODK_END_IF_000000000000003
(** end_if; **)
(* if - End *)
ODK_SKIP_000000000000003_000000000000001:
ODK_END_IF_000000000000003:
(** if DAHU_STRUCT_IN.RunMode=2 then **)
(* if - Cond *)
LD DAHU_STRUCT_IN.RunMode
EQ 2
JMPCN ODK_SKIP_000000000000005_000000000000001
(* then - Stmts *)
(** if DAHU_STRUCT_IN.CTV>50 then **)
(* if - Cond *)
LD DAHU_STRUCT_IN.CTV
GT 50
JMPCN ODK_SKIP_000000000000006_000000000000001
(* then - Stmts *)
(** DAHU_R:= 1; **)
(* assign - Stmt *)
LD 1
ST DAHU_R
JMP ODK_END_IF_000000000000006
(** else **)
(* else *)
ODK_SKIP_000000000000006_000000000000001:
(* else - Stmts *)
(** DAHU_R:= 0; **)
(* assign - Stmt *)
LD 0
ST DAHU_R
(** end_if; **)
(* if - End *)
ODK_END_IF_000000000000006:
JMP ODK_END_IF_000000000000005
(** end_if; **)
(* if - End *)
ODK_SKIP_000000000000005_000000000000001:
ODK_END_IF_000000000000005:
(** {******************************************************压差信号模拟**************************************************} **)
(** {********************************************原则上不使用,谨慎使用**************************************************} **)
(** **)
(** FPSSIM_timer( IN:=DAHU_R , PT:=t#2s ); **)
(* call - Stmt *)
CAL FPSSIM_timer (
IN := DAHU_R,
PT := t#2s
)
(** if DAHU_R=1 then **)
(* if - Cond *)
LD DAHU_R
EQ 1
JMPCN ODK_SKIP_000000000000007_000000000000001
(* then - Stmts *)
(** DAHU_STRUCT_OUT.FPSSIM:=FPSSIM_timer.q; **)
(* assign - Stmt *)
LD FPSSIM_timer.q
ST DAHU_STRUCT_OUT.FPSSIM
JMP ODK_END_IF_000000000000007
(** else **)
(* else *)
ODK_SKIP_000000000000007_000000000000001:
(* else - Stmts *)
(** DAHU_STRUCT_OUT.FPSSIM:=0; **)
(* assign - Stmt *)
LD 0
ST DAHU_STRUCT_OUT.FPSSIM
(** end_if; **)
(* if - End *)
ODK_END_IF_000000000000007:
(** **)
(** {******************************************************水阀控制******************************************************} **)
(** **)
(** PID_in:= not PID_timer.q; **)
(* assign - Stmt *)
LD PID_timer.q
NOT
ST PID_in
(** PID_timer(in:=PID_in, pt:=t#1s );{*PID积分时间*} **)
(* call - Stmt *)
CAL PID_timer (
IN := PID_in,
PT := t#1s
)
(** **)
(** if DAHU_STRUCT_IN.WVMC=0 then **)
(* if - Cond *)
LD DAHU_STRUCT_IN.WVMC
EQ 0
JMPCN ODK_SKIP_000000000000008_000000000000001
(* then - Stmts *)
(** if DAHU_R=1 then **)
(* if - Cond *)
LD DAHU_R
EQ 1
JMPCN ODK_SKIP_000000000000009_000000000000001
(* then - Stmts *)
(** {*制冷季*} **)
(** if DAHU_STRUCT_IN.SM=0 then **)
(* if - Cond *)
LD DAHU_STRUCT_IN.SM
EQ 0
JMPCN ODK_SKIP_00000000000000A_000000000000001
(* then - Stmts *)
(** if DAHU_STRUCT_IN.RTS-DAHU_STRUCT_IN.TSET>=2.0 then **)
(* if - Cond *)
LD DAHU_STRUCT_IN.RTS
SUB DAHU_STRUCT_IN.TSET
GE 2.0
JMPCN ODK_SKIP_00000000000000B_000000000000001
(* then - Stmts *)
(** DAHU_WVCTEMP:=100.0; **)
(* assign - Stmt *)
LD 100.0
ST DAHU_WVCTEMP
JMP ODK_END_IF_00000000000000B
(** end_if; **)
(* if - End *)
ODK_SKIP_00000000000000B_000000000000001:
ODK_END_IF_00000000000000B:
(** if DAHU_STRUCT_IN.RTS-DAHU_STRUCT_IN.TSET>0.2 and DAHU_STRUCT_IN.RTS-DAHU_STRUCT_IN.TSET<2.0 then {*死区*} **)
(* if - Cond *)
LD DAHU_STRUCT_IN.RTS
SUB DAHU_STRUCT_IN.TSET
GT 0.2
AND ( DAHU_STRUCT_IN.RTS
SUB DAHU_STRUCT_IN.TSET
LT 2.0
)
JMPCN ODK_SKIP_00000000000000C_000000000000001
(* then - Stmts *)
(** if PID_timer.q then **)
(* if - Cond *)
LD PID_timer.q
JMPCN ODK_SKIP_00000000000000D_000000000000001
(* then - Stmts *)
(** DAHU_WVCTEMP:=(DAHU_STRUCT_IN.RTS-DAHU_STRUCT_IN.TSET)*49.0; **)
(* assign - Stmt *)
LD DAHU_STRUCT_IN.RTS
SUB DAHU_STRUCT_IN.TSET
MUL 49.0
ST DAHU_WVCTEMP
JMP ODK_END_IF_00000000000000D
(** end_if; **)
(* if - End *)
ODK_SKIP_00000000000000D_000000000000001:
ODK_END_IF_00000000000000D:
JMP ODK_END_IF_00000000000000C
(** end_if; **)
(* if - End *)
ODK_SKIP_00000000000000C_000000000000001:
ODK_END_IF_00000000000000C:
(** if DAHU_STRUCT_IN.RTS-DAHU_STRUCT_IN.TSET<=0.0 then **)
(* if - Cond *)
LD DAHU_STRUCT_IN.RTS
SUB DAHU_STRUCT_IN.TSET
LE 0.0
JMPCN ODK_SKIP_00000000000000E_000000000000001
(* then - Stmts *)
(** DAHU_WVCTEMP:=0.0; **)
(* assign - Stmt *)
LD 0.0
ST DAHU_WVCTEMP
JMP ODK_END_IF_00000000000000E
(** end_if; **)
(* if - End *)
ODK_SKIP_00000000000000E_000000000000001:
ODK_END_IF_00000000000000E:
JMP ODK_END_IF_00000000000000A
(** end_if; **)
(* if - End *)
ODK_SKIP_00000000000000A_000000000000001:
ODK_END_IF_00000000000000A:
(** {*制热季*} **)
(** if DAHU_STRUCT_IN.SM=1 then **)
(* if - Cond *)
LD DAHU_STRUCT_IN.SM
EQ 1
JMPCN ODK_SKIP_00000000000000F_000000000000001
(* then - Stmts *)
(** if DAHU_STRUCT_IN.TSET-DAHU_STRUCT_IN.RTS>=2.0 then **)
(* if - Cond *)
LD DAHU_STRUCT_IN.TSET
SUB DAHU_STRUCT_IN.RTS
GE 2.0
JMPCN ODK_SKIP_00000000000000G_000000000000001
(* then - Stmts *)
(** DAHU_WVCTEMP:=100.0; **)
(* assign - Stmt *)
LD 100.0
ST DAHU_WVCTEMP
JMP ODK_END_IF_00000000000000G
(** end_if; **)
(* if - End *)
ODK_SKIP_00000000000000G_000000000000001:
ODK_END_IF_00000000000000G:
(** if DAHU_STRUCT_IN.TSET-DAHU_STRUCT_IN.RTS>0.2 and DAHU_STRUCT_IN.TSET-DAHU_STRUCT_IN.RTS<2.0 then {*死区*} **)
(* if - Cond *)
LD DAHU_STRUCT_IN.TSET
SUB DAHU_STRUCT_IN.RTS
GT 0.2
AND ( DAHU_STRUCT_IN.TSET
SUB DAHU_STRUCT_IN.RTS
LT 2.0
)
JMPCN ODK_SKIP_00000000000000H_000000000000001
(* then - Stmts *)
(** if PID_timer.q then **)
(* if - Cond *)
LD PID_timer.q
JMPCN ODK_SKIP_00000000000000I_000000000000001
(* then - Stmts *)
(** DAHU_WVCTEMP:=(DAHU_STRUCT_IN.TSET-DAHU_STRUCT_IN.RTS)*49.0; **)
(* assign - Stmt *)
LD DAHU_STRUCT_IN.TSET
SUB DAHU_STRUCT_IN.RTS
MUL 49.0
ST DAHU_WVCTEMP
JMP ODK_END_IF_00000000000000I
(** end_if; **)
(* if - End *)
ODK_SKIP_00000000000000I_000000000000001:
ODK_END_IF_00000000000000I:
JMP ODK_END_IF_00000000000000H
(** end_if; **)
(* if - End *)
ODK_SKIP_00000000000000H_000000000000001:
ODK_END_IF_00000000000000H:
(** if DAHU_STRUCT_IN.TSET-DAHU_STRUCT_IN.RTS<=0.0 then **)
(* if - Cond *)
LD DAHU_STRUCT_IN.TSET
SUB DAHU_STRUCT_IN.RTS
LE 0.0
JMPCN ODK_SKIP_00000000000000J_000000000000001
(* then - Stmts *)
(** DAHU_WVCTEMP:=0.0; **)
(* assign - Stmt *)
LD 0.0
ST DAHU_WVCTEMP
JMP ODK_END_IF_00000000000000J
(** end_if; **)
(* if - End *)
ODK_SKIP_00000000000000J_000000000000001:
ODK_END_IF_00000000000000J:
JMP ODK_END_IF_00000000000000F
(** end_if; **)
(* if - End *)
ODK_SKIP_00000000000000F_000000000000001:
ODK_END_IF_00000000000000F:
(** {*过渡季*} **)
(** if DAHU_STRUCT_IN.SM=2 then **)
(* if - Cond *)
LD DAHU_STRUCT_IN.SM
EQ 2
JMPCN ODK_SKIP_00000000000000K_000000000000001
(* then - Stmts *)
(** DAHU_WVCTEMP:=0.0; **)
(* assign - Stmt *)
LD 0.0
ST DAHU_WVCTEMP
JMP ODK_END_IF_00000000000000K
(** end_if; **)
(* if - End *)
ODK_SKIP_00000000000000K_000000000000001:
ODK_END_IF_00000000000000K:
JMP ODK_END_IF_000000000000009
(** else **)
(* else *)
ODK_SKIP_000000000000009_000000000000001:
(* else - Stmts *)
(** DAHU_WVCTEMP:=0.0; **)
(* assign - Stmt *)
LD 0.0
ST DAHU_WVCTEMP
(** end_if; **)
(* if - End *)
ODK_END_IF_000000000000009:
JMP ODK_END_IF_000000000000008
(** elsif DAHU_STRUCT_IN.WVMC=1 then **)
(* elseif - Cond *)
ODK_SKIP_000000000000008_000000000000001:
LD DAHU_STRUCT_IN.WVMC
EQ 1
JMPCN ODK_SKIP_000000000000008_000000000000002
(* elsif - Stmts *)
(** DAHU_WVCTEMP:=DAHU_STRUCT_IN.WVMV; **)
(* assign - Stmt *)
LD DAHU_STRUCT_IN.WVMV
ST DAHU_WVCTEMP
JMP ODK_END_IF_000000000000008
(** else **)
(* else *)
ODK_SKIP_000000000000008_000000000000002:
(* else - Stmts *)
(** DAHU_WVCTEMP:=100.0; **)
(* assign - Stmt *)
LD 100.0
ST DAHU_WVCTEMP
(** end_if; **)
(* if - End *)
ODK_END_IF_000000000000008:
(** **)
(** {*水阀赋值量程转换*} **)
(** DAHU_STRUCT_OUT.WVCS:=REAL_TO_INT(DAHU_WVCTEMP*100.0); **)
(* assign - Stmt *)
LD DAHU_WVCTEMP
MUL 100.0
REAL_TO_INT
ST DAHU_STRUCT_OUT.WVCS
(** **)
(** **)
(** **)
END_FUNCTION_BLOCK