博途V14
首先,建立变量表,输入相应的变量名称和变量地址。比如:Water_Flow_IW 地址IW260,即组态的 第一块模拟量输入模块的第三个通道。
在数据块中,建立对应的变量名称和地址,用于将模拟量采集到的通道数据转换成工程数据。比如:Water_Flow 数据类型 Real 用于存放转换后的瞬时流量。 Water_Flow_ACC 数据类型 Real 用于存放累计流量
在新建的功能块中编写其控制程序。首先是调用数据转换块,将采集流量计的电流信号经过模拟量通道转换为工程数据。(*模拟量采集转换*)'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);
编写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;
共用流量计时,程序中有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;
本篇仅为自动化工程师学习参考。