FUNCTION_BLOCK IJ_DAHUPID 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 :BS_PID; DAHU_WPID :BS_PID; DAHU_RunTime :BS_Runtime; DAHU_WVCTEMP :REAL; RunTon1 :TON; RunTon2 :TON; RunTof1 :TOF; RunTof2 :TOF; DevCheck1_time :TIME :=t#15s; (*设备运行状态反馈*) DevCheck2_time :TIME :=t#15s; (*设备运行状态反馈*) Status0 :INT; Status1 :INT; Status2 :INT; Status3 :INT; DAHU_SPID_VP :REAL; DAHU_SPID_VI :REAL; DAHU_WPID_VP :REAL; DAHU_WPID_VI :REAL; PID_in :BOOL; PID_timer :TON; END_VAR (*Automatically declared*) VAR_EXTERNAL END_VAR (** {* **) (** **) (** ʱ 䣺20200603 **) (** 1.3 **) (** ߣҦ **) (** ƣöƵյܿ **) (** ˵ **) (** 趨¶Ŀ¶ȹϵΪֵʱˮ0 **) (** **) (** **) (** DAHU_STRUCT_IN. **) (** SM :INT ; ģʽ 0ļ 1 2 **) (** Run :BOOL; ״̬ **) (** Fault :BOOL; ״̬ **) (** Auto :BOOL; Զ״̬ **) (** Control :BOOL; **) (** TSET :REAL; ¶趨 **) (** WVMC :BOOL; ˮֶ **) (** WVMV :REAL; ˮֵֶ **) (** RTS :REAL; ط¶ **) (** RST :BOOL; ʱۼ **) (** RSTV :REAL; ʱۼֵ **) (** FPS :BOOL; ѹ **) (** ISO1 :BOOL; йϷ **) (** ISO2 :BOOL; ѹ **) (** VP :REAL; PI趨ֵP **) (** VI :REAL; PI趨ֵI **) (** **) (** DAHU_STRUCT_OUT. **) (** WVCS :INT ; ˮתֵŴ100 **) (** Control :BOOL; ͣ **) (** RH :REAL; Сʱ **) (** SN :INT ; 豸״̬ **) (** **) (** ¼㹦 **) (** 1.йϻؼ,ϴ룬ֹ֧ϱ **) (** 2.ˮPID/ֶ **) (** 3.ʱۼ **) (** **) (** ע **) (** 飺 **) (** BS_PID; **) (** BS_Runtime; **) (** **) (** *} **) (** **) (** {******************************************************йϻؼ******************************************************} **) (** RunTon1( IN:=DAHU_STRUCT_IN.Control , PT:=DevCheck1_time ); **) (* call - Stmt *) CAL RunTon1 ( IN := DAHU_STRUCT_IN.Control, PT := DevCheck1_time ) (** RunTof1( IN:=DAHU_STRUCT_IN.Control , PT:=DevCheck1_time ); **) (* call - Stmt *) CAL RunTof1 ( IN := DAHU_STRUCT_IN.Control, PT := DevCheck1_time ) (** RunTon2( IN:=DAHU_STRUCT_IN.Control , PT:=DevCheck2_time ); **) (* call - Stmt *) CAL RunTon2 ( IN := DAHU_STRUCT_IN.Control, PT := DevCheck2_time ) (** RunTof2( IN:=DAHU_STRUCT_IN.Control , PT:=DevCheck2_time ); **) (* call - Stmt *) CAL RunTof2 ( IN := DAHU_STRUCT_IN.Control, PT := DevCheck2_time ) (** **) (** {*豸ָ豸зһ¹ϼ⣬ϲԭû硢·Ͽм̵ӴϵΪStatus0*}; **) (** DAHU_STRUCT_OUT.Control:=DAHU_STRUCT_IN.Control; **) (* assign - Stmt *) LD DAHU_STRUCT_IN.Control ST DAHU_STRUCT_OUT.Control (** if DAHU_STRUCT_IN.ISO1=0 then **) (* if - Cond *) LD DAHU_STRUCT_IN.ISO1 EQ 0 JMPCN ODK_SKIP_000000000000001_000000000000001 (* then - Stmts *) (** if RunTon1.q or not RunTof1.q then **) (* if - Cond *) LD RunTon1.q OR ( RunTof1.q NOT ) JMPCN ODK_SKIP_000000000000002_000000000000001 (* then - Stmts *) (** if DAHU_STRUCT_OUT.Control<>DAHU_STRUCT_IN.Run then **) (* if - Cond *) LD DAHU_STRUCT_OUT.Control NE DAHU_STRUCT_IN.Run JMPCN ODK_SKIP_000000000000003_000000000000001 (* then - Stmts *) (** Status0:=1; **) (* assign - Stmt *) LD 1 ST Status0 JMP ODK_END_IF_000000000000003 (** else **) (* else *) ODK_SKIP_000000000000003_000000000000001: (* else - Stmts *) (** Status0:=0; **) (* assign - Stmt *) LD 0 ST Status0 (** end_if; **) (* if - End *) ODK_END_IF_000000000000003: (** if DAHU_STRUCT_IN.Fault=1 then **) (* if - Cond *) LD DAHU_STRUCT_IN.Fault EQ 1 JMPCN ODK_SKIP_000000000000004_000000000000001 (* then - Stmts *) (** Status1:=1; **) (* assign - Stmt *) LD 1 ST Status1 JMP ODK_END_IF_000000000000004 (** else **) (* else *) ODK_SKIP_000000000000004_000000000000001: (* else - Stmts *) (** Status1:=0; **) (* assign - Stmt *) LD 0 ST Status1 (** end_if; **) (* if - End *) ODK_END_IF_000000000000004: JMP ODK_END_IF_000000000000002 (** end_if; **) (* if - End *) ODK_SKIP_000000000000002_000000000000001: ODK_END_IF_000000000000002: JMP ODK_END_IF_000000000000001 (** else **) (* else *) ODK_SKIP_000000000000001_000000000000001: (* else - Stmts *) (** Status0:=0; **) (* assign - Stmt *) LD 0 ST Status0 (** Status1:=0; **) (* assign - Stmt *) LD 0 ST Status1 (** end_if; **) (* if - End *) ODK_END_IF_000000000000001: (** **) (** {*豸ָ豸зһ¹ϼ⣬ϲѹ޻ؼź*}; **) (** if DAHU_STRUCT_IN.ISO2=0 then **) (* if - Cond *) LD DAHU_STRUCT_IN.ISO2 EQ 0 JMPCN ODK_SKIP_000000000000005_000000000000001 (* then - Stmts *) (** if RunTon2.q or not RunTof2.q then **) (* if - Cond *) LD RunTon2.q OR ( RunTof2.q NOT ) JMPCN ODK_SKIP_000000000000006_000000000000001 (* then - Stmts *) (** if DAHU_STRUCT_OUT.Control<>DAHU_STRUCT_IN.FPS then **) (* if - Cond *) LD DAHU_STRUCT_OUT.Control NE DAHU_STRUCT_IN.FPS JMPCN ODK_SKIP_000000000000007_000000000000001 (* then - Stmts *) (** Status2:=1; **) (* assign - Stmt *) LD 1 ST Status2 JMP ODK_END_IF_000000000000007 (** else **) (* else *) ODK_SKIP_000000000000007_000000000000001: (* else - Stmts *) (** Status2:=0; **) (* assign - Stmt *) LD 0 ST Status2 (** end_if; **) (* if - End *) ODK_END_IF_000000000000007: JMP ODK_END_IF_000000000000006 (** end_if; **) (* if - End *) ODK_SKIP_000000000000006_000000000000001: ODK_END_IF_000000000000006: JMP ODK_END_IF_000000000000005 (** else **) (* else *) ODK_SKIP_000000000000005_000000000000001: (* else - Stmts *) (** Status2:=0; **) (* assign - Stmt *) LD 0 ST Status2 (** end_if; **) (* if - End *) ODK_END_IF_000000000000005: (** **) (** **) (** {*ϴ*} **) (** if DAHU_STRUCT_OUT.Control<>0 then **) (* if - Cond *) LD DAHU_STRUCT_OUT.Control NE 0 JMPCN ODK_SKIP_000000000000008_000000000000001 (* then - Stmts *) (** DAHU_STRUCT_OUT.SN := Status0*1 + Status1*4 + Status2*8; **) (* assign - Stmt *) LD Status0 MUL 1 ADD ( Status1 MUL 4 ) ADD ( Status2 MUL 8 ) ST DAHU_STRUCT_OUT.SN JMP ODK_END_IF_000000000000008 (** else **) (* else *) ODK_SKIP_000000000000008_000000000000001: (* else - Stmts *) (** DAHU_STRUCT_OUT.SN := 0 ; **) (* assign - Stmt *) LD 0 ST DAHU_STRUCT_OUT.SN (** end_if; **) (* if - End *) ODK_END_IF_000000000000008: (** **) (** {******************************************************ˮ******************************************************} **) (** **) (** 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_000000000000009_000000000000001 (* then - Stmts *) (** if DAHU_STRUCT_IN.Run=1 then **) (* if - Cond *) LD DAHU_STRUCT_IN.Run EQ 1 JMPCN ODK_SKIP_00000000000000A_000000000000001 (* then - Stmts *) (** if DAHU_STRUCT_IN.VP<>0.0 and DAHU_STRUCT_IN.VI<>0.0 then **) (* if - Cond *) LD DAHU_STRUCT_IN.VP NE 0.0 AND ( DAHU_STRUCT_IN.VI NE 0.0 ) JMPCN ODK_SKIP_00000000000000B_000000000000001 (* then - Stmts *) (** DAHU_SPID_VP:=-DAHU_STRUCT_IN.VP; **) (* assign - Stmt *) LD DAHU_STRUCT_IN.VP NEG ST DAHU_SPID_VP (** DAHU_SPID_VI:=-DAHU_STRUCT_IN.VI; **) (* assign - Stmt *) LD DAHU_STRUCT_IN.VI NEG ST DAHU_SPID_VI (** DAHU_WPID_VP:=DAHU_STRUCT_IN.VP; **) (* assign - Stmt *) LD DAHU_STRUCT_IN.VP ST DAHU_WPID_VP (** DAHU_WPID_VI:=DAHU_STRUCT_IN.VI; **) (* assign - Stmt *) LD DAHU_STRUCT_IN.VI ST DAHU_WPID_VI JMP ODK_END_IF_00000000000000B (** else **) (* else *) ODK_SKIP_00000000000000B_000000000000001: (* else - Stmts *) (** DAHU_SPID_VP:=-30.0; **) (* assign - Stmt *) LD -30.0 ST DAHU_SPID_VP (** DAHU_SPID_VI:=-150.0; **) (* assign - Stmt *) LD -150.0 ST DAHU_SPID_VI (** DAHU_WPID_VP:=30.0; **) (* assign - Stmt *) LD 30.0 ST DAHU_WPID_VP (** DAHU_WPID_VI:=150.0; **) (* assign - Stmt *) LD 150.0 ST DAHU_WPID_VI (** end_if; **) (* if - End *) ODK_END_IF_00000000000000B: (** {*伾*} **) (** if DAHU_STRUCT_IN.SM=0 then **) (* if - Cond *) LD DAHU_STRUCT_IN.SM EQ 0 JMPCN ODK_SKIP_00000000000000C_000000000000001 (* then - Stmts *) (** if DAHU_STRUCT_IN.RTS-DAHU_STRUCT_IN.TSET>=3.0 then **) (* if - Cond *) LD DAHU_STRUCT_IN.RTS SUB DAHU_STRUCT_IN.TSET GE 3.0 JMPCN ODK_SKIP_00000000000000D_000000000000001 (* then - Stmts *) (** DAHU_WVCTEMP:=100.0; **) (* assign - Stmt *) LD 100.0 ST DAHU_WVCTEMP JMP ODK_END_IF_00000000000000D (** end_if; **) (* if - End *) ODK_SKIP_00000000000000D_000000000000001: ODK_END_IF_00000000000000D: (** 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: (** if PID_timer.q then **) (* if - Cond *) LD PID_timer.q JMPCN ODK_SKIP_00000000000000F_000000000000001 (* then - Stmts *) (** DAHU_SPID(RUN:= DAHU_STRUCT_IN.RUN,STOP_D:=1,STOP_I:=0,SET:=DAHU_STRUCT_IN.TSET,FB:=DAHU_STRUCT_IN.RTS,KFB:=1.0,KP:=DAHU_SPID_VP,TI:=DAHU_SPID_VI,TD:=-1.0,DEAD_BAND:=0.2,YMAX:=100.0,YMIN:=0.0 | DAHU_WVCTEMP:=OUT); **) (* call - Stmt *) CAL DAHU_SPID ( Run := DAHU_STRUCT_IN.Run, STOP_D := 1, STOP_I := 0, SET := DAHU_STRUCT_IN.TSET, FB := DAHU_STRUCT_IN.RTS, KFB := 1.0, KP := DAHU_SPID_VP, TI := DAHU_SPID_VI, TD := -1.0, DEAD_BAND := 0.2, YMAX := 100.0, YMIN := 0.0 | DAHU_WVCTEMP := OUT ) JMP ODK_END_IF_00000000000000F (** end_if; **) (* if - End *) ODK_SKIP_00000000000000F_000000000000001: ODK_END_IF_00000000000000F: JMP ODK_END_IF_00000000000000C (** **) (** end_if; **) (* if - End *) ODK_SKIP_00000000000000C_000000000000001: ODK_END_IF_00000000000000C: (** {*ȼ*} **) (** if DAHU_STRUCT_IN.SM=1 then **) (* if - Cond *) LD DAHU_STRUCT_IN.SM EQ 1 JMPCN ODK_SKIP_00000000000000G_000000000000001 (* then - Stmts *) (** if DAHU_STRUCT_IN.TSET-DAHU_STRUCT_IN.RTS>=3.0 then **) (* if - Cond *) LD DAHU_STRUCT_IN.TSET SUB DAHU_STRUCT_IN.RTS GE 3.0 JMPCN ODK_SKIP_00000000000000H_000000000000001 (* then - Stmts *) (** DAHU_WVCTEMP:=100.0; **) (* assign - Stmt *) LD 100.0 ST DAHU_WVCTEMP 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_00000000000000I_000000000000001 (* then - Stmts *) (** DAHU_WVCTEMP:=0.0; **) (* assign - Stmt *) LD 0.0 ST DAHU_WVCTEMP JMP ODK_END_IF_00000000000000I (** end_if; **) (* if - End *) ODK_SKIP_00000000000000I_000000000000001: ODK_END_IF_00000000000000I: (** if PID_timer.q then **) (* if - Cond *) LD PID_timer.q JMPCN ODK_SKIP_00000000000000J_000000000000001 (* then - Stmts *) (** DAHU_WPID(RUN:= DAHU_STRUCT_IN.RUN,STOP_D:=1,STOP_I:=0,SET:=DAHU_STRUCT_IN.TSET,FB:=DAHU_STRUCT_IN.RTS,KFB:=1.0,KP:=DAHU_WPID_VP,TI:=DAHU_WPID_VI,TD:=1.0,DEAD_BAND:=0.2,YMAX:=100.0,YMIN:=0.0 | DAHU_WVCTEMP:=OUT); **) (* call - Stmt *) CAL DAHU_WPID ( Run := DAHU_STRUCT_IN.Run, STOP_D := 1, STOP_I := 0, SET := DAHU_STRUCT_IN.TSET, FB := DAHU_STRUCT_IN.RTS, KFB := 1.0, KP := DAHU_WPID_VP, TI := DAHU_WPID_VI, TD := 1.0, DEAD_BAND := 0.2, YMAX := 100.0, YMIN := 0.0 | DAHU_WVCTEMP := OUT ) JMP ODK_END_IF_00000000000000J (** end_if; **) (* if - End *) ODK_SKIP_00000000000000J_000000000000001: ODK_END_IF_00000000000000J: JMP ODK_END_IF_00000000000000G (** end_if; **) (* if - End *) ODK_SKIP_00000000000000G_000000000000001: ODK_END_IF_00000000000000G: (** {*ɼ*} **) (** 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_00000000000000A (** else **) (* else *) ODK_SKIP_00000000000000A_000000000000001: (* else - Stmts *) (** DAHU_WVCTEMP:=0.0; **) (* assign - Stmt *) LD 0.0 ST DAHU_WVCTEMP (** end_if; **) (* if - End *) ODK_END_IF_00000000000000A: JMP ODK_END_IF_000000000000009 (** else **) (* else *) ODK_SKIP_000000000000009_000000000000001: (* else - Stmts *) (** DAHU_WVCTEMP:=DAHU_STRUCT_IN.WVMV; **) (* assign - Stmt *) LD DAHU_STRUCT_IN.WVMV ST DAHU_WVCTEMP (** end_if; **) (* if - End *) ODK_END_IF_000000000000009: (** **) (** {*ˮֵת*} **) (** 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 (** **) (** {******************************************************ʱۼ******************************************************} **) (** DAHU_RunTime(RUN :=DAHU_STRUCT_IN.Run , RUNTIMESET :=DAHU_STRUCT_IN.RSTV , RUNTIMERST :=DAHU_STRUCT_IN.RST ,RunTimeRec_In :=DAHU_STRUCT_OUT.RH | DAHU_STRUCT_OUT.RH:= RUNTIME); **) (* call - Stmt *) CAL DAHU_RunTime ( Run := DAHU_STRUCT_IN.Run, RUNTIMESET := DAHU_STRUCT_IN.RSTV, RUNTIMERST := DAHU_STRUCT_IN.RST, RunTimeRec_In := DAHU_STRUCT_OUT.RH | DAHU_STRUCT_OUT.RH := RUNTIME ) (** **) (** **) END_FUNCTION_BLOCK