S71500 流量累积及共用流量计的控制策略
1、首先,建立变量表,输入相应的变量名称和变量地址。
比如:Water_Flow_IW 地址IW260,即组态的 第一块模拟量输入模块的第三个通道。

2、在数据块中,建立对应的变量名称和地址,用于将模拟量采集到的通道数据转换成工程数据。
比如:Water_Flow 数据类型 Real 用于存放转换后的瞬时流量。
Water_Flow_ACC 数据类型 Real 用于存放累计流量

3、在新建的功能块中编写其控制程序。
首先是调用数据转换块,将采集流量计的电流信号经过模拟量通道转换为工程数据。
(*
模拟量采集转换
*)
"SCALE_ITR"(IN_INT:="Water_Flow_IW",
IN_SH:=27648,
IN_SL:=0,
OUT_SH:=30,
OUT_SL:=0,
X:=35,
RX:=2,
IN_OUT:="DB_TO_AI".Water_Flow);

4、编写1s时钟定时器并获取其上升沿脉冲,每一秒钟对瞬时流量进行累积,瞬时流量单位为m3/h,要除以3600转换为m3/s,然后进行累积。
(*
1s时钟定时器
*)
"IEC_Timer_11_DB".TON(IN:=NOT "Time_1s_bit",
PT:=T#1s,
Q=>"Time_1s_bit");
(*
1s定时器脉冲信号
*)
"R_TRIG_DB_2"(CLK:="Time_1s_bit",
Q=>"Time_1s_Pluse");
(*
流量累积
*)
IF "Time_1s_Pluse" THEN
"Flow_ACC"(Flow_In := "DB_TO_AI".Water_Flow,
Flow_ACC_Out := "DB_TO_AI".Water_Flow_ACC);
END_IF;

5、共用流量计时,程序中有3路进水共用一台流量计,三路进水阀通过进行联锁,保证任何时候都只有一路打开,当进水阀门开启时,流量计累积流量累积的是这一路的进水流量,阀门关闭后,立刻清零。
(*
三路管道共用一个流量计,单路进行转换
*)
IF "Water_XV01_bit" THEN
"Water_XV02_bit" := 0
;
"Water_XV03_bit" := 0
;
"Water_XV01_RS" := 1
;
"DB_TO_AI".Water_MV01_Flow_ACC := "DB_TO_AI".Water_Flow_ACC
;
ELSE
"Water_XV01_RS" := 0
;
"DB_TO_AI".Water_MV01_Flow_ACC := 0
;
END_IF;
