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

博途V15.1 PLC模拟量滤波程序:西门子通用,多种参数可选,智能报警,滤波功能强大,注释详...

博途V15.1 PLC模拟量滤波程序,西门子1200和1500通用,有电压或者电流或者热电偶选择,高低位和高高低低位报警,有滤波功能,非常实用的功能块,配有详细的注释,随时调用,节省编程时间

搞PLC的兄弟都懂,模拟量处理这事儿要是没整明白,分分钟被现场信号教做人。今天给大伙儿撸个实战级的模拟量滤波功能块,博途V15.1环境实测,1200/1500通吃,直接省下你80%的调试时间。

先看功能清单:电压/电流/热电偶自动适配,自带滑动滤波算法,高低位双模式报警,还带信号突变捕捉。关键这玩意儿封装得跟瑞士军刀似的,拿过来就能往项目里怼。

直接上硬菜——核心代码结构:

FUNCTION_BLOCK "AnalogProcessing" VAR_INPUT iRawValue : INT; // 原始模拟量输入 rScaleMin : REAL := 0.0; // 量程下限 rScaleMax : REAL := 27648.0; // 默认对应4-20mA eSignalType : INT := 0; // 0:电压 1:电流 2:热电偶 bEnableFilter : BOOL := TRUE; // 滤波使能 END_VAR VAR_OUTPUT rRealValue : REAL; // 工程值输出 bHighAlarm : BOOL; // 高位报警 bLowAlarm : BOOL; // 低位报警 bHHAlarm : BOOL; // 高高位报警 bLLAlarm : BOOL; // 低低位报警 END_VAR VAR aFilterBuffer : ARRAY[0..7] OF REAL; // 8次滑动窗口 rLastValid : REAL := 0.0; // 上次有效值 END_VAR

滤波算法这块用了加权移动平均,比普通平均滤波更灵敏:

// 滑动滤波处理 IF bEnableFilter THEN aFilterBuffer[0] := INT_TO_REAL(iRawValue); rRealValue := (aFilterBuffer[0] + aFilterBuffer[1]*0.9 + aFilterBuffer[2]*0.8 + aFilterBuffer[3]*0.7) / 3.4; // 更新缓存 FOR i := 7 TO 1 BY -1 DO aFilterBuffer[i] := aFilterBuffer[i-1]; END_FOR; ELSE rRealValue := INT_TO_REAL(iRawValue); END_IF;

这里给最近三次采样加了衰减系数,既抑制突变干扰又不会让响应太肉。现场实测滤除变频器干扰效果拔群,比系统自带的FIR滤波响应快0.5秒左右。

博途V15.1 PLC模拟量滤波程序,西门子1200和1500通用,有电压或者电流或者热电偶选择,高低位和高高低低位报警,有滤波功能,非常实用的功能块,配有详细的注释,随时调用,节省编程时间

报警逻辑做了双阈值设计,避免频繁抖动:

// 报警阈值计算(示例值,实际根据工况配置) rHighLimit := rScaleMax * 0.9; rLowLimit := rScaleMin * 1.1; rHHLimit := rScaleMax * 0.95; rLLLimit := rScaleMin * 1.05; // 报警判断(带死区) bHighAlarm := (rRealValue > rHighLimit) AND (rLastValid <= rHighLimit); bLowAlarm := (rRealValue < rLowLimit) AND (rLastValid >= rLowLimit); bHHAlarm := rRealValue >= rHHLimit; bLLAlarm := rRealValue <= rLLLimit; // 更新上次有效值 IF NOT (bHHAlarm OR bLLAlarm) THEN rLastValid := rRealValue; END_IF;

高低位报警带滞回判断,避免在临界点疯狂跳变。比如锅炉温度控制,设个高高位直接联锁停炉,普通高位只触发声光报警,这种分级处理贼实用。

重点说下信号类型适配:

CASE eSignalType OF 0: // 电压信号处理 rRealValue := (rRealValue / 27648.0) * 10.0; // 0-10V 1: // 4-20mA转换 IF rRealValue < 5529.6 THEN // 4mA对应值 rRealValue := rScaleMin; ELSE rRealValue := ((rRealValue - 5529.6) / (27648.0 - 5529.6)) * (rScaleMax - rScaleMin) + rScaleMin; END_IF; 2: // 热电偶线性化(简化版) rRealValue := rRealValue * 0.1; // 根据实际分度表完善 END_CASE;

电流量程处理特意加了断线检测,当输入值低于4mA对应数字量时直接取量程下限,这个在传感器断线时能准确触发低报警,而不是显示个乱跳的数值。

实际调用示例:

#AnalogProcessing_1( iRawValue := "AI_1".RAW_VALUE, rScaleMin := 0.0, rScaleMax := 100.0, eSignalType := 1, bEnableFilter := TRUE );

完事儿直接读输出参数就行,报警标志位都给你整得明明白白。注释里写了每个参数的设置要点,比如热电偶类型需要自己完善线性化表格,滤波深度不建议超过10次采样等等。

这个功能块最骚的地方在于异常恢复机制——当信号从报警区回到正常范围时,会自动用最后一次有效值做渐变,避免执行机构突然大幅动作。毕竟咱搞自动化的,稳字当头才是王道。

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

相关文章:

  • Docker化国标视频平台:WVP-PRO与ZLMediaKit的协同部署实战
  • 专业级二维码生成器功能对比:为何二维彩虹是设计与商务的终极优选? - 企业推荐官【官方】
  • 【Java】TOP-K问题
  • 实战演练:用快马AI快速打造集成终端功能的服务器监控与部署面板
  • 当 AI 开始一本正经地胡说八道:DeepSeek 幻觉率 14%给技术人的警示
  • 面向嘈杂语音的对话建模新挑战
  • 手把手教你用Python实现TOTP动态验证码生成器(附完整代码)
  • AI同事抑郁症诊断报告:大模型存在主义危机爆发
  • 牧苏苏传 辣个男人回来了 4/6
  • 2026最权威的五大降AI率平台实际效果
  • 焊接仓储笼、仓储箱、周转箱、网格铁框、金属周转箱、仓储货架网、仓储货架网片厂家电话 - 企业推荐官【官方】
  • 我用Hermes Agent的经历——对比OpenClaw
  • 硕博生一定要尽快掌握用AI绘图啊!!
  • 电-气综合能源系统能量与备用调度:基于Wasserstein距离和CVaR条件风险价值的分布鲁...
  • 快速降AI率哪款工具最值得试?按需求推荐 - 我要发一区
  • Rust所有权与借用规则深度解析:从踩坑到理解
  • 面向对象高级(多态)
  • 想找国内知名光变UV变色纱线生产厂家?这3家值得关注 - 企业推荐官【官方】
  • 靠谱的厚板吸塑实力厂家 - 企业推荐官【官方】
  • 手把手教你用R-Studio恢复误删文件:从下载到恢复的保姆级避坑指南
  • 告别数据映射困惑:手把手教你配置ADRV9009的JESD204B接口(以BR3109为例)
  • 鼎捷T100程序开发实战:从核心类型到高效开发全解析
  • Windows系统性能优化全景指南:从诊断到长效管理的科学路径
  • 【OpenCode】opencode配置minimax2.7【day2】
  • 语文_中考_古诗词
  • 双编码器在UR5机器人零力拖动中的实现与优化
  • YALMIP求解器设置避坑指南:从`verbose`到`relax`,这些参数设置错了可能让你白算一整天
  • 终极Windows右键菜单优化指南:如何用ContextMenuManager快速清理杂乱菜单
  • CVPR/ICCV跟踪新趋势解读:对比学习如何让MOT模型学会“认人”?
  • 夜光荧光发光纱线生产厂家怎么选?认准正规靠谱源头不踩坑 - 企业推荐官【官方】