FUNCTION_BLOCK IJ_FCU VAR_EXTERNAL END_VAR VAR_INPUT FCU_STRUCT_IN :FCU_IN; END_VAR VAR_OUTPUT FCU_STRUCT_OUT :FCU_OUT; END_VAR VAR FCU_RunTime :BS_Runtime; RunTon1 :TON; RunTof1 :TOF; DevCheck1_time :TIME :=t#15s; (*设备运行状态反馈*) DevCheck2_time :TIME :=t#15s; (*设备运行状态反馈*) Status0 :INT; Status1 :INT; Status2 :INT; Status3 :INT; FCU_EVC :BS_EVC; END_VAR (*Automatically declared*) VAR_EXTERNAL END_VAR (** {* **) (** **) (** ʱ 䣺20191003 **) (** 1.0 **) (** ߣҦ **) (** ƣöƷ̹ܳܿ **) (** ˵ **) (** **) (** **) (** FCU_IN:STRUCT **) (** SM :INT ; ģʽ 0ļ 1 2 **) (** Run :BOOL; ״̬ **) (** Auto :BOOL; Զ״̬ **) (** Control :BOOL; **) (** TSET :REAL; ¶趨 **) (** EVC :BOOL; ŷ **) (** EVA :BOOL; ŷԶ״̬ **) (** EVR :BOOL; ŷ״̬ **) (** EVMC :BOOL; ŷֶ **) (** EVMV :BOOL; ŷֵֶ **) (** TS :REAL; ط¶ **) (** ISO1 :BOOL; йϷ **) (** RST :BOOL; ʱۼ **) (** RSTV :REAL; ʱۼֵ **) (** END_STRUCT; **) (** **) (** FCU_OUT:STRUCT **) (** EVC :BOOL ;ˮתֵŴ100 **) (** Control :BOOL; ͣ **) (** RH :REAL; Сʱ **) (** SN :INT ; 豸״̬ **) (** END_STRUCT; **) (** **) (** ¼㹦 **) (** 1.йϻؼ,ϴ룬ֹ֧ϱ **) (** 2.ˮؿ/ֶ **) (** 3.ʱۼ **) (** **) (** ע **) (** 飺 **) (** BS_Runtime; **) (** BS_EVC; **) (** *} **) (** **) (** {******************************************************йϻؼ******************************************************} **) (** RunTon1( IN:=FCU_STRUCT_IN.Control , PT:=DevCheck1_time); **) (* call - Stmt *) CAL RunTon1 ( IN := FCU_STRUCT_IN.Control, PT := DevCheck1_time ) (** **) (** {*豸ָ豸зһ¹ϼ⣬ϲԭû硢·Ͽм̵ӴϵΪStatus0*}; **) (** FCU_STRUCT_OUT.Control:=FCU_STRUCT_IN.Control; **) (* assign - Stmt *) LD FCU_STRUCT_IN.Control ST FCU_STRUCT_OUT.Control (** if FCU_STRUCT_IN.ISO1=0 then **) (* if - Cond *) LD FCU_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 FCU_STRUCT_OUT.Control<>FCU_STRUCT_IN.Run then **) (* if - Cond *) LD FCU_STRUCT_OUT.Control NE FCU_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: 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 (** end_if; **) (* if - End *) ODK_END_IF_000000000000001: (** **) (** {*ϴ*} **) (** if FCU_STRUCT_OUT.Control<>0 then **) (* if - Cond *) LD FCU_STRUCT_OUT.Control NE 0 JMPCN ODK_SKIP_000000000000004_000000000000001 (* then - Stmts *) (** FCU_STRUCT_OUT.SN := Status0*1 ; **) (* assign - Stmt *) LD Status0 MUL 1 ST FCU_STRUCT_OUT.SN JMP ODK_END_IF_000000000000004 (** else **) (* else *) ODK_SKIP_000000000000004_000000000000001: (* else - Stmts *) (** FCU_STRUCT_OUT.SN := 0 ; **) (* assign - Stmt *) LD 0 ST FCU_STRUCT_OUT.SN (** end_if; **) (* if - End *) ODK_END_IF_000000000000004: (** **) (** {******************************************************ˮ******************************************************} **) (** if FCU_STRUCT_IN.EVMC=0 then **) (* if - Cond *) LD FCU_STRUCT_IN.EVMC EQ 0 JMPCN ODK_SKIP_000000000000005_000000000000001 (* then - Stmts *) (** if FCU_STRUCT_IN.Run=1 then **) (* if - Cond *) LD FCU_STRUCT_IN.Run EQ 1 JMPCN ODK_SKIP_000000000000006_000000000000001 (* then - Stmts *) (** {*伾*} **) (** if FCU_STRUCT_IN.SM=0 then **) (* if - Cond *) LD FCU_STRUCT_IN.SM EQ 0 JMPCN ODK_SKIP_000000000000007_000000000000001 (* then - Stmts *) (** FCU_EVC(RUN :=FCU_STRUCT_IN.RUN , SET :=FCU_STRUCT_IN.TSET , FB :=FCU_STRUCT_IN.TS , DEAD_BAND :=0.5 , DELAY :=t#60s , SW :=FCU_STRUCT_IN.SM | FCU_STRUCT_OUT.EVC:= EVC); **) (* call - Stmt *) CAL FCU_EVC ( Run := FCU_STRUCT_IN.Run, SET := FCU_STRUCT_IN.TSET, FB := FCU_STRUCT_IN.TS, DEAD_BAND := 0.5, DELAY := t#60s, SW := FCU_STRUCT_IN.SM | FCU_STRUCT_OUT.EVC := EVC ) JMP ODK_END_IF_000000000000007 (** end_if; **) (* if - End *) ODK_SKIP_000000000000007_000000000000001: ODK_END_IF_000000000000007: (** {*ȼ*} **) (** if FCU_STRUCT_IN.SM=1 then **) (* if - Cond *) LD FCU_STRUCT_IN.SM EQ 1 JMPCN ODK_SKIP_000000000000008_000000000000001 (* then - Stmts *) (** FCU_EVC(RUN :=FCU_STRUCT_IN.RUN , SET :=FCU_STRUCT_IN.TSET , FB :=FCU_STRUCT_IN.TS , DEAD_BAND :=0.5 , DELAY :=t#60s , SW :=FCU_STRUCT_IN.SM | FCU_STRUCT_OUT.EVC:= EVC); **) (* call - Stmt *) CAL FCU_EVC ( Run := FCU_STRUCT_IN.Run, SET := FCU_STRUCT_IN.TSET, FB := FCU_STRUCT_IN.TS, DEAD_BAND := 0.5, DELAY := t#60s, SW := FCU_STRUCT_IN.SM | FCU_STRUCT_OUT.EVC := EVC ) JMP ODK_END_IF_000000000000008 (** end_if; **) (* if - End *) ODK_SKIP_000000000000008_000000000000001: ODK_END_IF_000000000000008: (** {*ɼ*} **) (** if FCU_STRUCT_IN.SM=2 then **) (* if - Cond *) LD FCU_STRUCT_IN.SM EQ 2 JMPCN ODK_SKIP_000000000000009_000000000000001 (* then - Stmts *) (** FCU_STRUCT_OUT.EVC:=0; **) (* assign - Stmt *) LD 0 ST FCU_STRUCT_OUT.EVC JMP ODK_END_IF_000000000000009 (** end_if; **) (* if - End *) ODK_SKIP_000000000000009_000000000000001: ODK_END_IF_000000000000009: JMP ODK_END_IF_000000000000006 (** else **) (* else *) ODK_SKIP_000000000000006_000000000000001: (* else - Stmts *) (** FCU_STRUCT_OUT.EVC:=0 ; **) (* assign - Stmt *) LD 0 ST FCU_STRUCT_OUT.EVC (** end_if; **) (* if - End *) ODK_END_IF_000000000000006: JMP ODK_END_IF_000000000000005 (** else **) (* else *) ODK_SKIP_000000000000005_000000000000001: (* else - Stmts *) (** FCU_STRUCT_OUT.EVC:=FCU_STRUCT_IN.EVMV; **) (* assign - Stmt *) LD FCU_STRUCT_IN.EVMV ST FCU_STRUCT_OUT.EVC (** end_if; **) (* if - End *) ODK_END_IF_000000000000005: (** **) (** {******************************************************ʱۼ******************************************************} **) (** FCU_RunTime(RUN :=FCU_STRUCT_IN.Run , RUNTIMESET :=FCU_STRUCT_IN.RSTV , RUNTIMERST :=FCU_STRUCT_IN.RST ,RunTimeRec_In :=FCU_STRUCT_OUT.RH | FCU_STRUCT_OUT.RH:= RUNTIME); **) (* call - Stmt *) CAL FCU_RunTime ( Run := FCU_STRUCT_IN.Run, RUNTIMESET := FCU_STRUCT_IN.RSTV, RUNTIMERST := FCU_STRUCT_IN.RST, RunTimeRec_In := FCU_STRUCT_OUT.RH | FCU_STRUCT_OUT.RH := RUNTIME ) (** **) (** **) END_FUNCTION_BLOCK