You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

122 lines
3.4 KiB

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 ,RunTimeRec_In :=FCU_STRUCT_OUT.RH | FCU_STRUCT_OUT.RH:= RUNTIME);
END_FUNCTION_BLOCK