首页 理论教育 应用实例:PLC控制PID指令优化

应用实例:PLC控制PID指令优化

时间:2023-06-16 理论教育 版权反馈
【摘要】:两指令配合使用,使定时中断初始化并启用。由于欧姆龙的PID指令用的反馈值是二进制码。这两种情况赋给PID指令不同的控制参数。欧姆龙CS系列机的PID指令执行后,参数可即改,即其作用,就无须进行上述处理。反馈输入,即PID指令的第1操作数,直接用模拟量输入通道。图中②为执行PID指令,其输出为VD108。如需多个PID参数,可对偏差值进行判断,以选定相应的参数,但该程序没有示出。

应用实例:PLC控制PID指令优化

1.脉冲量入模拟量出PID控制

系统的原理框图见图4-42。

从图4-42可知,这里一个重要问题是,如何读入旋转码盘生产的脉冲信号,并将其转换为频率信号,以用做转速反馈值。而有了这个反馈值,加上给定值,再采用某个控制算法计算,即可得出控制量。如果控制算法合适,选用的控制参数得当,则可有效地实现系统闭环控制了。

图4-43所示为PLC控制程序,设备用的是沈阳旭风电子开发公司的SAC-PLC-TS4测试台。

978-7-111-56641-0-Chapter05-67.jpg

图4-42 PI/AOPID控制原理框图

978-7-111-56641-0-Chapter05-68.jpg

图4-43 脉冲量入模拟量出控制程序

图4-43a为欧姆龙CPM2A机程序。图中①STIM为定时中断设定及启用指令。它用“P_First_C”(仅在第一个扫描周期ON)作为执行条件。两指令配合使用,使定时中断初始化并启用。选定这些操作数的STIM指令含义是,每隔100ms定时中断一次,中断时调子程序1。

图中⑦为子程序1,它用XFER指令,把高速计数器的现值(CPM2A机高速计数器现值存于通道248、249中)传送给“BCD脉冲频率”。接着,使252.00ON,使高速计数器复位(高速计数器预设成仅用软复位)。再接着,把“BCD脉冲频率”转换成“二进制脉冲频率”。当然,为使CPM2A具有高速计数功能,还得作相应设定。

可知,这里“BCD脉冲频率”为每100ms采集的脉冲数。因为CPM2A的高速计数器用BCD码表达,故在XFER指令执行后,得到的就是BCD码的脉冲频率。

由于欧姆龙的PID指令用的反馈值是二进制码。故这里紧接着又做了BCD码到二进制码转换。

图中③为执行PID指令。仅一个执行条件。这里“参数变化”何意?当偏差与“偏差很大”比较变化时,它的常闭触点OFF一个周期,以使所选定的新参数生效。这是因为欧姆龙C系列机PID指令执行后,改变参数无效,用这么处理就能生效了。

执行PID指令后的“原码输出值”也是二进制值,故不必变换,直接用于模拟量出通道就可以了。

要补充的是,最好能依据误差变化,选择不同的控制参数,以提高控制效率。图中④进行偏差大小比较。偏差值大于“很大偏差”时,LR1.10ON,小于时,LR1.11ON。这两种情况赋给PID指令不同的控制参数。该程序用了DIST指令(见图⑤、⑥)。它是偏移传送指令,执行时,把第1个操作数传送给,第2操作数地址加第3个操作数形成的DM地址。如图所示,如偏差大于“很大偏差”时,将把500赋给“原码给定值”+1的DM地址,即存储“比例带”参数的地址;而小于时,则把2000赋给它,使控制作用弱些。还可用第3操作数的不同DIST指令,以进行其它参数修改。只是该图未把要改的参数全部列出。

欧姆龙CS系列机的PID指令执行后,参数可即改,即其作用,就无须进行上述处理。

图4-43b为S7-200机程序。图中①为初始化,为PID设定初始化参数;②为把脉冲频率转换为0~1.0的实数,而脉冲频率则用高速计数器采集;③为执行PID指令;④~⑦为数据转换计算,把控制输出传送给AQW0。如需多个PID参数,可对偏差值进行判断,以选定相应的参数,但该程序没有示出。(www.xing528.com)

978-7-111-56641-0-Chapter05-69.jpg

图4-44 电炉温度PID控制框图

2.模拟量入脉冲量出PID控制

这种闭环控制反馈输入的是模拟量,而控制输出是脉冲量。脉冲量可以是不同的输出脉冲数,不同的脉冲频率或不同的脉宽。图4-44所示的为模拟量入脉冲量出的电炉温度闭环控制框图。

从图4-44可知,它的输入与模拟量控制时的输入相同。输出要用到脉冲量。现以使用脉宽调制的脉冲输出为例,介绍它的PID控制有关程序。

图4-45为用CPM2A及S7-200机实现这个控制的程序。设备用的是沈阳旭风电子开发公司的SAC-PLC-TS3A测试台。

图4-45a为CPM2A机程序。其模拟量模块用CPM1A_MA002。

从图4-45可知,该初始化的目的把常数FEFF赋值给“工作参数设定”通道。参阅CPM1A_MA002说明书知,它使各模拟量输入通道可用电压或电流输入,范围为1~5V或1~5mA。而且,输入值已做了滤波。

由于控制电路的原因,它的参数设定设为正控制,即反馈值大,控制输出也大。这在程序上无法体现,只是在此说明。PID的参数也可用图4-43例子的处理,在此不再重复说明。故该图只是整个程序的控制及输出部分。

从图知,控制程序也仅两条指令,PID及其执行条件。PID指令的输入、输出均为二进制码。反馈输入,即PID指令的第1操作数,直接用模拟量输入通道。输出,即它的第3操作数,也是二进制码,在0~FF间变化。而脉宽调制PWM指令控制输出(第3个操作数,它的第1操作数为指定发送口,第2操作数为指定脉冲频率的10倍)用的是BCD码,而且只能在0~100间变化。故从PID计算得到输出到PWM的真正输出需进行转换。

978-7-111-56641-0-Chapter05-70.jpg

图4-45 模拟量输入脉冲量输出控制程序

该程序用了MLB(二进制运算乘10),DVB(二进制运算除25),及BCD指令就是实现这个转换。

最后不进行PID控制时,PWM输出为100,为最大值,目的是停止电炉加温。

图4-45b为S7-200机初始化程序,为脉冲宽度可调输出进行设定。输出口为Q0.1,周期为100ms。图中①为处理模拟量输入,使其始终在0~1.0之间。图中②为执行PID指令,其输出为VD108。图中③~⑥为数据转换计算,把控制输出传送给SMW80(在0~100ms之间变化),用以控制脉冲宽度。图中⑦为执行PLS指令,进行脉冲输出。如需多个PID参数,可对偏差值进行判断,以选定相应的参数,但该程序没有示出。

这里程序都不太复杂,但参数怎么设定是很关键的。设置不当,也将达不到预期的控制效果。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈