西门子S7-300 PLC的PID液位控制
发布时间:2012-11-29 10:01|来源:万胜PLC解密网|点击:
一、硬件选型
1、PLC及其模块选型。PLC可选用S7-300(CPU 314 IFM) , 314IFM自身带有4路模拟量输入和2路模拟量输出。
2、变频器选型。为了能调节水泵电机转速从而调节进水量,特选择西门子G110的变频器。
二、控制要求
有一水箱可向外部用户供水,用户用水量不稳定,有时大有时少。水箱进水可由水泵泵入,现需对水箱中水位进行恒液位控制,并可在0~200mm(最大值数据可根据水箱高度确定)范围内进行调节。如设定水箱水位值为100mm时,则不管水箱的出水量如何,调节进水量,都要求水箱水位能保持在100mm位置,如出水量少,则要控制进水量也少,如出水量大,则要控制进水量也大。
三、控制思路
因为液位高度与水箱底部的水压成正比,故可用一个压力传感器来检测水箱底部压力,从而确定液位高度。要控制水位恒定,需用PID算法对水位进行自动调节。把压力传感器检测到的水位信号4~20mA送入至S7-300 PLC中,在PLC中对设定值与检测值的偏差进行PID运算,运算结果输出去调节水泵电机的转速,从而调节进水量。水泵电机的转速可由变频器来进行调速。
四、电路连接
1、主电路接线图
2、PLC输入输出信号接线图
五、程序
用到的FC与FB1、FC105
SCALE功能接受一个整型值(IN),并将其转换为以工程单位表示的介于下限和上限(LO_LIM和HI_LIM)之间的实型值。将结果写入OUT。
FC105的数值换算公式为:
OUT=((FLOAT )IN -K1)/(K2-K1)*(HI_LIM-LO_LIM )+LO_LIM
对双极性,输入值范围为-27648到27648,对应K1 =-27648,K2 =+27648,
对单极性,输入值范围为0到27648,对应K1 =0,K2 =+27648,如果输入整型值大于K2,输出(OUT)将钳位于HI_LIM,并返回一个错误。如果输入整型值小于K1,输出将钳位于LO_LIM,并返回一个错误。
通过设置LO_LIM > HI_LIM可获得反向标定。使用反向转换时,输出值将随输入值的增加而减小。
2、FC106
UNSCALE功能接收一个以工程单位表示、且标定于下限和上限(LO_LIM和HI_LIM)之间的实型输入值(IN),并将其转换为一个整型值。将结果写入OUT。
UNSCALE功能使用以下等式:
OUT = [ ((IN-O_LIM)/(HI_LIM-O_LIM)) * (K2-1) ] + K1,并根据输入值是BIPOLAR还是UNIPOLAR设置常数K1和K2。
BIPOLAR:假定输出整型值介于7648和27648之间,因此,K1 = -7648.0,K2 = +27648.0
UNIPOLAR:假定输出整型值介于0和27648之间,因此,K1 = 0.0,K2 = +27648.0
如果输入值超出LO_LIM和HI_LIM范围,输出(OUT)将钳位于距其类型(BIPOLAR或UNIPOLAR)的指定范围的下限或上限较近的一方,并返回一个错误。
3、FB41
六、PLC编程1、I/O分配
2、PLC程序
- 上一篇:实例讲解西门子S7-300 PLC功能块FB
- 下一篇:没有了