news 2026/6/10 17:14:31

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
西门子模拟量处理程序块:滤波峰值,便捷调用报警功能,适用于博图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%。这程序块最骚的是报警复位设计成脉冲触发,避免了长信号导致的玄学问题。代码全开放,爱咋改咋改,记得把采样次数和死区的关系调明白了——采样次数越多,死区可以越小,但响应会变慢,自己把握这个平衡点吧。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 14:52:59

构建高效任务中心:CDC 数据同步的工程实践与架构权衡

构建高效任务中心:CDC 数据同步的工程实践与架构权衡 在现代业务系统中,任务中心(Task Center)作为连接数据与行动的核心枢纽,其核心能力之一是从上游业务数据库中可靠、高效、低延迟地同步关键状态变更,并…

作者头像 李华
网站建设 2026/6/10 16:04:48

自动化测试报告设计分享

在软件质量保障体系中,自动化测试已成为不可或缺的环节。然而,测试的价值不仅在于执行过程,更在于结果的呈现与分析。一份精心设计的自动化测试报告,能够将复杂的测试数据转化为有价值的洞察,帮助团队快速定位问题、评…

作者头像 李华
网站建设 2026/6/10 19:16:21

中国刺绣文化网站作品阐释

一、设计过程1. 需求分析与概念设计在设计中国刺绣文化网站之初,进行了详尽的市场调研和需求分析。中国刺绣文化源远流长,拥有深厚的文化底蕴和广泛的受众基础。然而,随着现代生活节奏的加快,传统刺绣文化的传播和普及面临诸多挑战…

作者头像 李华
网站建设 2026/6/10 16:03:43

软件工程的国家标准和机器人制作的国家标准

文章目录一、软件工程的国家标准(中国)1️⃣ 软件工程核心通用标准✅ **GB/T 8566—2007**2️⃣ 软件质量与管理相关标准3️⃣ 软件开发过程与文档规范📌 小结(软件工程)二、机器人制作的国家标准(中国&…

作者头像 李华
网站建设 2026/6/10 20:34:08

Linux 服务管理

systemd 介绍系统启动管理进程CentOS 5 使用 Sys init 引导系统启动,启动速度最慢,采用串行方式启动,无论进程相互之间有无依赖关系。CentOS 6 使用 Upstart init 引导系统启动,启动速度快一点,有依赖的进程之间依次启…

作者头像 李华
网站建设 2026/6/10 14:48:36

【计算机毕业设计案例】基于springboot的汽车租赁管理系统“车辆管理 - 订单履约 - 数据分析(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华