PID多用于对温度、压力、流量等过程变量的闭环控制,是PLC不可缺少的功能之一,与S7-300/400相比S7-1500集成的PID功能参数化更加简单,调试更加方便,自整定的鲁棒性更强,可以大大节省工程时间。本篇我们来介绍S7-1500 PLC的PID功能。
下面我们开始介绍如何实现西门子S7-1500的PID功能。为了便于演示,在程序中调用了一个过程仿真函数,由于对积分微分时间的精确计算,PID函数必须在循环中断OB中调用,为此,首先在项目中点击“添加新块”,选择“组织块”和“Cyclic Interrupt”类型,设置循环时间为500ms,代表该OB块每隔500ms被调用执行一次。
在“指令”栏中选择“工艺”指令组,在“PID控制”文件夹中,选择“PID_Compact”指令,将它拖放到循环中断OB中,在弹出的“调用选项”对话框中,可以定义新生成的PID工艺对象即一个数据块的名称,点击“确定”,这样将创建一个PID工艺对象。
PID函数的设定值可以直接在数据块中赋值,过程值“Input”表示通过用户程序赋值,“Input_PER”表示通过模拟量进行反馈。示例中,过程值连接到过程仿真的输出MD20,“Output”表示输出一个浮点值,“Output_PER”表示直接通过模拟量输出。示例中,输出MD24用于连接到过程仿真的输入。赋值完成后保存项目。其他的PID的参数设置则通过PID“工艺对象”进行参数化。
在项目导航中打卡“工艺对象”,可以看到新建的PID工艺对象“DB1”,双击“组态”图标进入参数化界面。在“基本设置”栏中可以设置“控制器类型”,例如设置在CPU启动后PID的控制模式为自动。在“Input/Output参数”栏中选择反馈和输出通道,必须与程序中调用PID函数的赋值相匹配。在“过程值设置”栏中可以设置过程值的上下限和模拟量反馈的标定值。在“高级设置”栏中可以设置调节规则和PID参数。在这里设置PID的采样时间必须与调用周期匹配,例如500ms。配置完成后存盘编译并下载到PLC中。
项目下载后,可以开始进行PID的调节。点击“调试”图标进入调试界面,选择视图的采样周期,例如0.3S。点击“Start”按钮进入在线模式,在“调节”模式中可以选择预调节和精细调节,初始阶段可以选择预调节,如果震荡则需要精细调节。如果直接选择精细调节,则先进行预调节,然后再进行精细调节,示例中先进行预调节。参数调节需要一个设定阶跃作为触发条件,例如将设定值增加50%,然后点击“Start”按钮启动预调节功能,在调节状态栏中可以看到调节进度和状态信息。几分钟后,从状态栏中可以看到预调节完成信息,但是从采样图中可以看到过程值和输出值反复震荡,说明调节效果不理想。在这样情况下可以选择精细调节,将操作模式选择精细调节,然后点击“Start”按钮启动精细调节功能。又过了几分钟,精细调节完成,过程值和输出值平滑,效果理想。
可以将自调节的结果上传到离线项目中,在组态界面可以得到调节后PID具体的参数值。为了同步PID参数在PLC中的装载值,可以将离线数据再次下载到PLC中,操作不会影响PID参数在PLC的实际运行值,这样一路PID调试完毕。