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

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.lryc.cn/news/2386606.html

相关文章:

  • Mysql在SQL层面的优化
  • JVM规范之栈帧
  • 【C++指南】string(四):编码
  • 深度学习之序列建模的核心技术:LSTM架构深度解析与优化策略
  • AI量化交易是什么?它是如何重塑金融世界的?
  • 分布式事务处理方案
  • CVE-2024-36467 Zabbix权限提升
  • Dify中的自定义模型插件开发例子:以xinference为例
  • crud方法命名示例
  • 尚硅谷redis7 33-36 redis持久化之RDB优缺点及数据丢失案例
  • No such file or directory: ‘ffprobe‘
  • 计算机网络-WebSocket/DNS/Cookie/Session/Token/Jwt/Nginx
  • 功能“递归模式”在 C# 7.3 中不可用,请使用 8.0 或更高的语言版本的一种兼容处理方案
  • 第4章-操作系统知识
  • 将网页带格式转化为PDF
  • 【ArcGIS】ArcGIS AI 助手----复现
  • 使用 FFmpeg 将视频转换为高质量 GIF(保留原始尺寸和帧率)
  • 《Java vs Go vs C++ vs C:四门编程语言的深度对比》
  • 充电枪IEC62196/EN 62196测试内容
  • 有效的字母异位符--LeetCode
  • SAP ERP 系统拆分的七大挑战
  • AcrelEMS 3.0智慧能源管理平台:构建企业微电网数智化中枢
  • 【HTML-12】HTML表格常用属性详解:从基础到高级应用
  • Word转PDF--自动生成目录
  • MySQL组合索引优化策略
  • Spring MVC 的的核心原理与实践指南
  • 轻量级视觉语言模型 Dolphin:高效精准的文档结构化解析利器
  • 如何安全配置数据库(MySQL/PostgreSQL/MongoDB)
  • 将 Docker 镜像从服务器A迁移到服务器B的方法
  • git merge解冲突后,add、continue提交