S7-300/400提供了模拟被控对象的FB100,可以和PID控制程序FB41组成虚拟的闭环,来练习PID参数的调试。我仿照FB100的功能,编写了模拟被控对象的FB“被控对象”,其传递函数为GAIN/[(T1s+1) (T2s+1) (T2s+1)],GAIN为增益,T1、T2、T3为惯性环节的时间常数。与PID指令PID_Compact组成了下图所示的闭环。在实验项目中,GAIN为3,T1、T2、T3分别为2s、3s和0s。PID_Compact和FB“被控对象”均在周期为0.3s的OB30中调用。在OB1中定时器T1和T2组成方波振荡器,方波的周期为60s。
S7-1200的PID指令还不能仿真,可以对S7-1500的PID指令仿真,对虚拟的PID闭环做纯软件仿真。我也用硬件的S7-1500和FB“被控对象”做过实验。
博图中的PID调试窗口如下图所示,非常好用。图中的洋红色方波是给定值曲线(见曲线图右上角的图例)。单击Start按钮开始显示曲线。图中的ScaledInput曲线超调量过大。
下图是PID参数组态窗口设置PID参数的对话框。再非监控状态修改参数,用左上角的按钮切换到监控状态后,单击“下载按钮”,将参数下载到PLC,通过曲线可以看到修改参数后的效果。
下图是调试后得到的性能较好的曲线图。