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

Beckhoff PLC 功能块 FB_CTRL_ACTUAL_VALUE_FILTER (模拟量滤波)

1. 功能块概览

  • 名称FB_CTRL_ACTUAL_VALUE_FILTER(实际值滤波控制功能块)。
  • 作用:对测量输入值进行合理性检查( plausibility check )和滤波处理,防止异常跳变(如传感器信号突变)对控制系统的干扰。

2. 输入输出(I/O)

  1. 输入(Inputs)
    • In(FLOAT):滤波的输入值(如传感器测量值)。

    • ManValue(FLOAT):手动模式下的输出值(用于手动控制场景)。

    • eModeE_CTRL_MODE):操作模式(如自动 / 手动切换,需参考文档第 173 页定义)。

  2. 输出(Outputs)
    • fOut(FLOAT):滤波后输出值。

    • eStateE_CTRL_STATE:功能块状态(如正常 / 异常)。

    • eErrorIdE_CTRL_ERRORCODES:错误编号(关联文档第 173 页,bError 为真时生效)。

    • bError(BOOL):错误标志(错误发生时置为 TRUE)。

      输入输出(In/Out)
  • stParamsST_CTRL_ACTUAL_VALUE_FILTER_PARAMS:参数结构体,包含:

    • tCtrlCycleTime(TIME):控制周期(默认 T#0ms,配置滤波周期)。

    • tTaskCycleTime(TIME):任务周期(任务执行间隔,同步滤波)。

    • fDeltaMax(FLOAT):最大允许差值(超限触发抑制 / 外推,见滤波逻辑)。

3. 使用注意事项

  1. 合理性检查:若连续两次采样值的差值(DeltaMax,需配置,图中未显式标注)超过设定窗口,当前输入值被抑制(最多 3 个周期)。
  2. 输出处理
    • 抑制期(≤3 周期):输出 fOut 基于前一次输入值外推( extrapolate ,如线性外推),避免突变。
    • 超限处理(>3 周期):若差值持续超限,输出重新跟随输入值(fOut 直接取 In,不再抑制)。
  3. 行为示意图
    • 虚线(fin):原始输入(含突变)。
    • 实线(fOut):滤波后输出(突变时先外推,超限后跟随输入)。

4. 技术细节

  • 版本:2.2.4,文档编号 TF4100(Beckhoff TwinCAT 相关文档)。
  • 应用场景:工业控制系统(如运动控制、过程控制)中,对传感器信号(如位置、温度、压力)进行预处理,确保控制系统接收稳定、合理的输入值,提升鲁棒性。

3. 功能与应用

  • 信号滤波:通过 stParams 配置周期和突变阈值(fDeltaMax),对输入信号(如传感器数据)进行合理性检查,抑制异常突变(最多 3 周期外推,见前文行为逻辑),输出稳定的 fOut
  • 错误处理bError 实时监测异常,eErrorId 提供具体错误代码,支持系统诊断(如参数错误、输入超限)。

附录:操作模式描述

操作模式解析:

图中定义了枚举类型 E_CTRL_MODE,用于描述控制器的操作模式,各枚举值含义如下:

枚举值数值描述
eCTRL_MODE_IDLE0空闲模式(控制器未激活,等待任务)。
eCTRL_MODE_PASSIVE1被动模式(监控状态,不主动控制,仅反馈信息)。
eCTRL_MODE_ACTIVE2主动模式(正常运行,执行控制逻辑,如 PID 调节、运动控制)。
eCTRL_MODE_RESET3复位模式(重置控制器状态,清除故障或初始化参数)。
eCTRL_MODE_MANUAL4手动模式(操作人员直接干预,替代自动程序,用于调试或紧急操作)。
eCTRL_MODE_TUNE5调整模式(如 PID 参数自整定、系统校准,优化控制性能)。
eCTRL_MODE_SELFTEST6自检模式(控制器执行自我诊断,检查硬件 / 软件状态,确保系统可靠)。
eCTRL_MODE_SYNC_MOVEMENT7同步运动模式(多轴 / 设备协同运动,如机器人轨迹同步、生产线联动)。

应用场景:

  • 工业控制:在自动化生产线、机器人系统中,通过切换模式实现设备的状态管理(如手动调试→自动运行→自检维护)。
  • 代码可读性:枚举值符号化表示模式,避免硬编码数字,提升程序可维护性(如 eCTRL_MODE_ACTIVE 比 2 更直观)。
http://www.xdnf.cn/news/9076.html

相关文章:

  • vSphere 7.0 client 提示HTTP状态 500- 内部服务器错误
  • GROUP BY SQL
  • 【动态规划】子数组系列(一)
  • 【备战秋招】C++音视频开发经典面试题整理
  • 学校住宿管理系统——仙盟创梦IDE
  • OpenGL Chan视频学习-7 How I Deal with Shaders in OpenGL
  • 0基础学习Linux之揭开朦胧一面:环境基础开发工具
  • java8函数式接口(函数式接口的匿名实现类作为某些方法的入参)
  • 2025年5月系统架构设计师考试真题回忆版
  • 7.安卓逆向2-frida hook技术-介绍
  • 重学计算机网络之命令整理
  • 数据加密技术:守护网络通信安全的基石
  • ceph 报错 full ratio(s) out of order
  • Elasticsearch数据同步方案
  • VS Code设置Dev Containers: Reopen in Container
  • MongoDB基础知识(浅显)
  • docker compose yml 启动的容器中,如何使用linux环境变量赋值
  • Python 进阶学习
  • [CSS3]rem移动适配
  • *HTML `<script>` 标签中的核心属性解析:掌控脚本加载与执行的艺术
  • 力扣HOT100之回溯:79. 单词搜索
  • 常见小问题(Open Folder as PyCharm Project)
  • Veeam Backup 13 beta ui 方式备份 VMware esxi 虚拟机
  • 报错:ImportError: cannot import name ‘metadata‘ from ‘importlib‘
  • springboot启动流程
  • Golang 的协程调度小结
  • Java-synchronized学习总结
  • 目标检测 TaskAlignedAssigner 原理
  • leetcode617.合并二叉树:递归思想下的树结构融合艺术
  • 拥塞控制算法cubic 和bbr