项目用到S7-1200,PID调节温度和压力,应用和调试中出现的问题和经验分享
PID块使用的PID Compact V2。
1、压力PID调试
1.1、根据压力PID调节泵频率,使用博途自带PID自整定效果不错,只用PI调节,自整定出来的参数基本上不用调整。
1.2、现场出现一个问题是压力变送器量程0-1000Kpa,精度0.5%,这样的话压力总是在±5Kpa波动,这样不行啊,变频器频率也会发生变化。变送器是无法更换了怎么办,考虑滤波吧,所以写了一个滤波程序。
1.3、滤波方式10个数,去掉最大最小,求平均。处理后效果不错。说到滤波程序,论坛里面好多帖子都有说明。项目中用过2种方式:第一:加权求平均;第二种方式就是前面说的这种方式,感觉都可以。
不得不说1200支持SCL语言,在数据处理方面还真是比较快捷。
2、温度PID调试
2.1、调节机构是西门子的调节阀,当时最担心的问题就是温度滞后比较大和阀门频繁动作的问题。
2.2、博途的PID还取消了死区功能,在论坛游了一圈,好多人在说死区方式可以利用PID手自动功能实现,试了一下还挺好。
2.3、温度控制精度0.5℃,死区范围内PID切手动模式,手动方式下开度为PID自动时的开度(利用上升沿赋值)。
2.4、另外就是由于温度存在滞后,PID采样周期适当放大。
3、由于使用的是西门子触摸屏+PLC,PID参数和趋势直接在触摸屏上实时监控和调整。项目应用不是太复杂的PID,自整定还是比较适合。不得不说这块西门子做的还是比较方便。
4、另外就是当PIC出现故障是,怎么实现PID自动消除故障信号。
技术文档描述为:
PID故障时,故障状态和状态代码
Error = TRUE,则此周期内至少有一条错误消息处于未决状态
ErrorBits 参数显示了处于未决状态的错误消息,通过 Reset 或 ErrorAck 的上升沿来保持 并复位 ErrorBits。
ErrorAck参数:FALSE -> TRUE 上升沿时,错误确认,清除已经离开的错误信息。
那这样是不是可以理解:当PID故障时通过触发 ErrorAck,可以自动复位PID参数。
程序里面利用时钟寄存器1S脉冲,当Error =1时或ErrorBits≠0,直接触发ErrorAck,就可以自动复位PID故障了。
5、PID其他参数设置:
5.1、控制器类型:MODE设置为自动模式,PID引脚不连接实参
5.2、过程值限值要根据实际反馈值设置,超限PID会报故障或停止,该参数可以设置的稍微大一些
5.3、对错误的响应:错误待定时的当前值;该设置下故障消失时可以自动切换故障发生前模式,其他模式参考技术手册吧