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