在工艺自控控制中,经常会用到流量计来作为计量工具,比如往反应釜中加水,要求加入5m3,则就要根据瞬时流量换算成累积流量,当进水累积流量等于或大于设定流量5m3时,关闭进水阀。有时业主考虑成本,会在不重要的计量环节,共用一个流量计,比如在清洗时,三个反应釜共用一个进水流量计,这时,就要考虑如何通过三路阀门来对于每一路的累积流量。本篇所介绍的控制程序就解决了这个问题,利用SCL编程语言,可以轻松简洁的实现其控制目标。
工具/原料
博途V14
方法/步骤
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;