使用 PID 指令向导编程时,指令向导会自动调用 PID 指令,并且编写外围的控制变量标准化换算、定时采样等功能。用户在使用 PID 指令向导时,需要在用户程序中用 SM0.0 调用指令向导生成的子程序(如 PIDx_INIT 子程序)。PID 向导可以生成带自动/手动切换功能的子程序,这个子程序使用一个数字量点为“1”、“0”的状态来控制是否投入 PID 自动控制。
到目前为止(STEP 7-Micro/WIN V4.0 SP5),使用 PID 向导生成的子程序时,由于用户程序不能直接使用 PID 指令,它的无扰切换能力因为隔了外壳子程序,所以受到了局限。如果对无扰切换要求比较严格,需要另外编一些程序加以处理。
考察如下 PID 控制子程序。
图 1. PID 向导生成的指令
图中:
a.过程反馈量
b.设定值,实数
c.自动/手动控制,“1”=自动,“0”=手动
d.手动控制输出值,0.0 - 1.0 之间的一个实数
e.PID 控制输出值
要实现无扰动切换,必须:
.在从自动向手动切换时,使手动输出值(VD2004)等于当前的实际控制输出值;
.在从手动向自动切换使,使设定值相当于当前的过程反馈值。
为此,可编写类似下图所示的程序,放在 PID 控制子程序之前: 无扰切换处理程序
图 2. 无扰切换处理程序 图中:
a.自动/手动切换控制点
b.从自动向手动切换时,使手动输出值等于实际当前值
c.从手动向自动切换时,把当前反馈量换算为相应的给定值
上述程序中的 Scale_I_to_R 就是量程变换指令库中的子程序。这是为了解决过程反馈与设定值之间的换算问题。用户也可以自己编程换算,或者根据反馈与给定的取值范围决定是否需要换算。
此段程序适用于 STEP 7-Micro/WIN V4.0 SP5 及以前版本,仅供参考,如果在实际项目中使用,上述程序未必一定适用。用户需要根据实际工艺决定自己的编程思路。
(责任编辑:admin) |