1.应用基本信息
在S7-300/400系统中,CONT_C是一个非常常用的PID功能块,广泛应用于温度、流量控制。我是控制系统开发工程师,在将控制系统PLC从S7-300/400升级到S7-1500后,使用PID_COMPACT替代CONT_C作为PID控制功能块。
2.问题描述
CONT_C是一个基础的PID功能块,其所有参数(包括P值、I值、D值、循环时间等)都需要指定,通过变量赋值,可以在HMI设备上输入各个参数值。使用这个功能块对调试工程师提出了挑战,需要调试工程师具备丰富的经验,也因此流传着各种PID的调试口诀。
S7-1500提供了全新的PID功能块PID_COMPACT,该功能块实现了参数自整定功能,通过控制回路的自动整定,确定PID控制器的各个参数。使用该功能块降低对调试工程师的经验要求,即使是刚入门的调试工程师,也能快速完成PID参数的整定。
网上有很多教程,讲授如何使用PID_COMPACT的这一功能,但基本上都是通过TIA-TORTAL软件的组态及调试界面完成的。现在,我们需要通过编程的方式,通过HMI设备完成这个功能,使得调试工程师可以脱离PC而整定PID参数。
3.问题的分析及解决
PID_COMPACT的赋值接口是非常简洁的,大量的数据隐藏在了背景数据块中。
将接口展开,展示了输入参数ModeActivate和输入/输出参数Mode。
Mode参数为INT型,指定 PID_Compact 将转换到的工作模式。 选项包括:
· Mode = 0:未激活
· Mode = 1:预调节
· Mode = 2:精确调节
· Mode = 3:自动模式
· Mode = 4:手动模式
ModeActivate参数为BOOL型,上升沿激活Mode参数中保存的工作模式。
这是TIA-PORTAL软件的PID调试界面。
为Mode参数赋与不同的值,相当于在调试界面选择了不同的工作模式,ModeActivate参数上升沿相当于按下了Start按钮。
在PID_Compact功能块的背景数据块中,有一个.PIDSelfTune.TIR.State参数,表示自整定的步骤,是这样定义的:
· State = -100:无法进行精确调节。将首先执行预调节。
· State = 0:初始化精确调节
· State = 200:计算标准偏差
· State = 300:尝试达到设定值
· State = 400:尝试使用现有 PID 参数达到设定值(如果预调节已成功)
· State = 500:确定波动并计算参数
· State = 9900:精确调节已成功
· State = 1:精确调节未成功
可以使用这个参数来判断自整定是否完成。有了这些参数的支持,就可以通过编程来完成自整定过程了。
定义一个BOOL型变量,表示自整定开始,由HMI设备置位。
在不同的工作状态下,为Mode参数赋与不同的值。
为ModeActivate参数赋与上升沿,这里使用了1Hz方波信号。
将自整定的过程赋与相应变量,显示于HMI设备上。
PID_Compact参数自整定完成后,复位自整定开始变量。
将自整定的结果赋与相应变量,显示于HMI设备上。
HMI的界面设计如下图:
参数调整按钮,用于置位自整定开始变量。
整定过程的步骤显示。
建立一个值表,当表示过程的变量为不同值时,显示不同的步骤内容。
自整定结果的显示。
4.经验总结
PID_Compact提供了强大的参数自整定功能,大大方便了调试工程师的调试工作,但基于TIA-PORTAL软件的调试界面则完全依赖于PC。这里介绍的方法通过编程实现了这一过程,并通过HMI设备的界面设计,脱离了PC使得PID参数的调整更方便了。