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