完成PID Wizard配置后,会为每个PID回路生成一个子程序PIDx_CTRL(x = 0 - 7)。在用户程序中,必须使用SM0.0始终调用这个子程序才能实现PID功能。
下图是一个最简单的PID子程序调用程序段:
图1. 调用PID子程序
其中:
在这里,给定、反馈的入口参数不是PID指令功能块所需要的0.0 - 1.0之间的实数,而可以是实际的反馈地址,或是其他变量。例如,PV_I可以是模拟量输入地址AIW0,也可以是存储器地址VW100等;Setpoint则往往来自V变量存储区,这样可以从人机操作界面(HMI)设备输入给定值。
注意:
对于PID控制系统来说,必须保证给定与过程反馈的一致性:
- 给定与反馈的物理意义一致
这取决于被控制的对象,如果是压力,则给定也必须对应于压力值;如果是温度,则给定也必须对应于温度。
- 给定与反馈的数值范围对应
如果给定直接是摄氏温度值,则反馈必须是对应的摄氏温度值;如果反馈直接使用模拟量输入的对应数值,则给定也必须向反馈的数值范围换算。
如果给定与反馈的换算有特定的比例关系也可以。如给定也可以表示为以反馈的数值范围的百分比数值。
给定与反馈的数值具体是什么数值,其取值范围究竟如何,完全取决于我们在使用“PID向导”编程时指定的给定与反馈的数值范围。其中,反馈量的数值范围不能随便自己定义,而要取决于具体应用的模拟量输入模块。
图2. 在图中c.处设置给定范围
图3. 在图中c.处设置反馈范围
假定一个PID控制系统的控制对象是压力,反馈元件的测量范围为0 - 16MPa。反馈器件的信号经过变换,以4 - 20mA电流信号的形式输入到模拟量输入模块中。据此,我们可以按下表设置给定、反馈的范围。
表1.反馈(单极性) | 给定 | |||
---|---|---|---|---|
实际物理量 | 模拟量输入数值 | 百分比形式(占0 - 16MPa的百分比) | 物理工程单位形式 | |
高限 | 16 MPa | 27648 | 100.0 | 16.0 |
低限 | 0 MPa | 5530 | 0.0 | 0.0 |
在上面的例子中,反馈和给定可以按照如下方法设置:
图4. 4 - 20mA电流信号测量时反馈范围设置
又如一个温度控制的PID系统,温度值直接由热电偶测量,输入到热电偶模块转换为温度 值。热电偶为J型,其测量范围为 -150.0°C - 1200.0 °C。则可按如下设置给定的范围。
表2.反馈(双极性) | 给定 | |||
---|---|---|---|---|
实际物理量 | 模拟量输入数值 | 百分比形式(占-150°C - 1200.0°C的百分比) | 物理工程单位形式 | |
高限 | 1200.0 °C | 12000 | 100.0 | 1200 |
低限 | -150.0 °C | -1500 | 0.0 | -150 |
在上面的例子中,反馈和给定可以按照如下方法设置
图5.采用热电偶或热电阻模块测量时反馈范围设置