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 (* 时 间: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); (*设备电气控制箱控制指令与设备运行反馈不一致故障检测,检测故障产生原因电箱没电、断路器断开、中间继电器与接触器故障等为Status0*); FCU_STRUCT_OUT.Control:=FCU_STRUCT_IN.Control; if FCU_STRUCT_IN.ISO1=0 then if RunTon1.q or not RunTof1.q then if FCU_STRUCT_OUT.Control<>FCU_STRUCT_IN.Run then Status0:=1; else Status0:=0; end_if; end_if; else Status0:=0; end_if; (*输出故障代码*) if FCU_STRUCT_OUT.Control<>0 then FCU_STRUCT_OUT.SN := Status0*1 ; else FCU_STRUCT_OUT.SN := 0 ; end_if; (******************************************************水阀控制******************************************************) if FCU_STRUCT_IN.EVMC=0 then if FCU_STRUCT_IN.Run=1 then (*制冷季*) if FCU_STRUCT_IN.SM=0 then 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); end_if; (*制热季*) if FCU_STRUCT_IN.SM=1 then 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); end_if; (*过渡季*) if FCU_STRUCT_IN.SM=2 then FCU_STRUCT_OUT.EVC:=0; end_if; else FCU_STRUCT_OUT.EVC:=0 ; end_if; else FCU_STRUCT_OUT.EVC:=FCU_STRUCT_IN.EVMV; end_if; (******************************************************运行时间累计******************************************************) FCU_RunTime(RUN :=FCU_STRUCT_IN.Run , RUNTIMESET :=FCU_STRUCT_IN.RSTV , RUNTIMERST :=FCU_STRUCT_IN.RST | FCU_STRUCT_OUT.RH:= RUNTIME); END_FUNCTION_BLOCK