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调试完毕。