打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
西门子博途编程-模拟量断线超量程处理(中值法)

温度PID控制时, 有多个温度测量点, 但最终只有一个温度作为反馈值参与PID控制, 我们有时会采用平均值法, 计算所有温度的平均值来作为PID的反馈值. 但在某一路温度探头断线的情况下, 温度值为零, 这时平均值就会小很多.

像这种情况下中值法比较有效.  原理如下: 对于一组温度, 模拟量转换为数字量后, 对温度值进行排序, 取中间的那个值作为PID反馈值. 如果是偶数, 取中间两个值除以2后作为反馈值.

排序采用西门子LGF的库中的希尔排序, 但它是FB的, 使用上还的带个DB块, 现修改为FC, 功能上做了简化. 程序如下:

“LGF_ShellSortReal”函数是个排序函数, 对采集的温度”data”.sourceArray 数组进行排序, 排序后的输出为 “data”.destArray. 然后对”data”.destArray 采集最中间的一个值, 这样可以删除调最小和最大的值, 最后的结果输出到value_1 中.

排序的数组长度最大不能操作1000, 如果有其它需求, 可以修改temp变量MAX_ARRAY_ELEMENTS.

这个函数就是取中值函数.

sourceArray 是乱序的温度, 排序后的温度间 destArray.

其实在现实中, 大范围的加热必然导致温度不均匀, 可以采用分段加热. 这时中值法就不是很有效了. 因为采用分段加热后, 每段就1-2组温度采集点, 像这种情况, 需要判断探头是否断线, 如果断线就切换另外一组, 可以中上篇博客中的error信号来判断.

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
用常见函数模拟抽象函数
关于西门子200smart PLC温度PID自整定
PID的作用是什么?如何实现西门子S7
公开课|西门子S7-200 SMART模拟量AI处理
模拟量标定与标定变换是什么意思?你可能不知道,掌握一个公式,确实很简单
浅谈西门子S7-1200PLC的模拟量转换,附实例演示
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服