万胜解密网

万胜解密网联系电话

西门子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程序

更多