当前位置: 首页 > news >正文

西门子模拟量处理程序块:滤波峰值,便捷调用报警功能,适用于博图V15及以上版本

西门子1200和1500通用模拟量处理程序块,模拟量滤波程序,程序块可方便直接调用,用于过滤峰值且可以方便调用模拟量高低报警。 博图版本V15及以上。

工业现场模拟量信号处理总带着点玄学,尤其是车间里那些老设备,时不时给你来个信号跳变能把人整懵。去年在钢厂做连铸机改造时就遇到过这破事儿——热电偶信号抽风似的忽高忽低,硬是逼着我搞了个通用滤波块。今天就把这个在1200/1500上都跑得溜的模拟量处理程序解剖给大伙儿瞧瞧。

先甩个程序框架镇楼:

FUNCTION_BLOCK "AnalogProcessing" VAR_INPUT RawValue : REAL; // 原始模拟量 SampleCount : INT := 10; // 采样次数 DeadBand : REAL := 2.0; // 死区范围 HiAlarm : REAL := 80.0; // 高报警值 LoAlarm : REAL := 20.0; // 低报警值 Reset : BOOL; // 报警复位 END_VAR VAR_OUTPUT FilteredValue : REAL; // 滤波后数值 Hi_Alarm : BOOL; // 高报警 Lo_Alarm : BOOL; // 低报警 END_VAR VAR Buffer : ARRAY[1..50] OF REAL; // 环形缓冲区 Index : INT := 1; ValidSamples : INT := 0; END_VAR

这个滤波算法的核心是动态死区均值法。和传统移动平均不同,咱这货会先过滤掉突变的野值:当新采样值与前N次均值偏差超过死区时,直接扔掉这个野孩子。具体看这段处理逻辑:

// 野值过滤 IF ValidSamples >= SampleCount THEN AvgValue := SUM(Buffer) / ValidSamples; IF ABS(RawValue - AvgValue) > DeadBand THEN RETURN; // 异常值直接丢弃 END_IF; END_IF; // 环形缓冲区更新 Buffer[Index] := RawValue; Index := Index MOD SampleCount + 1; ValidSamples := MIN(ValidSamples + 1, SampleCount);

报警处理这块加了点人性化设计——双条件触发机制。当连续3个滤波后的数值越限才触发报警,避免设备抖动导致误报。看这段报警判断:

// 报警延迟触发 IF FilteredValue > HiAlarm THEN Hi_Counter := Hi_Counter + 1; ELSE Hi_Counter := 0; END_IF; Hi_Alarm := Hi_Counter >= 3 OR (Hi_Alarm AND NOT Reset);

实际调用时简单得飞起,在OB1里这么写就行:

#AnalogProc_1( RawValue := "AI_1".Channel_0, SampleCount := 15, // 1.5秒采样周期(假设100msOB) DeadBand := 5.0, HiAlarm := 750.0, LoAlarm := 200.0 ); "温度显示" := #AnalogProc_1.FilteredValue; "超温报警" := #AnalogProc_1.Hi_Alarm;

调试时踩过的坑得说道说道:某次在真空炉项目里,死区设了2%结果报警狂闪。后来发现是电磁阀动作时电源干扰,把死区调到5%立马老实。还有个细节——程序里那个Buffer数组大小别抠门,我设50是给采样次数留足余量,毕竟博图对数组越界查得严。

最后说下性能,在1515F上实测,同时处理32路模拟量CPU占用不到5%。这程序块最骚的是报警复位设计成脉冲触发,避免了长信号导致的玄学问题。代码全开放,爱咋改咋改,记得把采样次数和死区的关系调明白了——采样次数越多,死区可以越小,但响应会变慢,自己把握这个平衡点吧。

http://www.jsqmd.com/news/144678/

相关文章:

  • c# 递归算法
  • 模型没挂,是我自己把系统搞死的
  • 2025升降机厂家TOP10推荐 国内靠谱品牌榜单出炉,苏州卓高9.99分登顶 - 品牌智鉴榜
  • 基于结构特征与神经网络特征融合的手写汉字评价模型研究
  • OpenCSG社区:激发城市AI主权创新引擎
  • 深耕用户体验,「呵汤」年度会员聚会举办在即 - 资讯焦点
  • 2025年亚麻油灌装机厂家实力推荐:大豆油灌装机/导热油灌装机/机油灌装机源头厂家精选 - 品牌推荐官
  • 2025年内浮盘厂家权威推荐榜:油罐内浮盘/储罐内浮盘/不锈钢内浮盘源头厂家精选 - 品牌推荐官
  • 自动化测试报告设计分享
  • 新手前端必看:5分钟搞懂IIFE的作用与实战妙用
  • 12.24模拟赛
  • 2025年脱硝喷射器厂家实力推荐:衬四氟喷射器/消石灰喷射器/酸碱喷射器源头厂家精选 - 品牌推荐官
  • 2025年12月市政管道、波纹管、骨架管、给水管、电力管厂家推荐 - 2025年品牌推荐榜
  • 【golang】goland使用多版本go sdk的方法
  • 2025年市面上头部仓库货架生产商排行榜,中型货架/仓库货架/层板货架/重型货架/自动化立体库货架,仓库货架供货厂家排名 - 品牌推荐师
  • 2025品牌咨询全案公司哪家专业:120工具+56模块防坑指南 - 品牌排行榜
  • 超时宏定义
  • 17、做中学 | 初三下期 Golang档案操作
  • 自动化测试如何生成测试问题清单
  • 基于大数据的国内篮球联赛数据分析与可视化系统(毕设源码+文档)
  • D365 CE Power Platform 编程系列 (8):JS编程之客户端实体
  • 美团战略携手赚转鱼科技 定义黄金回收“即时服务”新时代
  • 12.26 DOM 的Element
  • RAG应用性能优化入门指南
  • 2025年12月三圣乡团建/宴席/婚宴/团建聚会/寿宴场地推荐排行榜单 - 2025年品牌推荐榜
  • 2025年12月铁铜添加剂/铝基中间合金/公司专业推荐 - 2025年品牌推荐榜
  • JVM中对于源码中符号的管理
  • 基于 YOLOv5n 的课堂手机检测系统:让“低头族”无处遁形
  • 中国刺绣文化网站作品阐释
  • 2025年防水透气阀呼吸器源头厂家权威推荐榜单:防水防尘透气阀/卡扣防水透气阀/铝合金防水透气阀源头厂家精选 - 品牌推荐官