1. 功能块概览
- 名称:
FB_CTRL_ACTUAL_VALUE_FILTER
(实际值滤波控制功能块)。 - 作用:对测量输入值进行合理性检查( plausibility check )和滤波处理,防止异常跳变(如传感器信号突变)对控制系统的干扰。
2. 输入输出(I/O)
-
输入(Inputs):
-
In
(FLOAT):滤波的输入值(如传感器测量值)。 -
ManValue
(FLOAT):手动模式下的输出值(用于手动控制场景)。 -
eMode
(E_CTRL_MODE
):操作模式(如自动 / 手动切换,需参考文档第 173 页定义)。
-
-
输出(Outputs)
-
fOut
(FLOAT):滤波后输出值。 -
eState
(E_CTRL_STATE
):功能块状态(如正常 / 异常)。 -
eErrorId
(E_CTRL_ERRORCODES
):错误编号(关联文档第 173 页,bError
为真时生效)。 -
bError
(BOOL):错误标志(错误发生时置为TRUE
)。
-
输入输出(In/Out)
-
stParams
(ST_CTRL_ACTUAL_VALUE_FILTER_PARAMS
):参数结构体,包含:-
tCtrlCycleTime
(TIME):控制周期(默认T#0ms
,配置滤波周期)。 -
tTaskCycleTime
(TIME):任务周期(任务执行间隔,同步滤波)。 -
fDeltaMax
(FLOAT):最大允许差值(超限触发抑制 / 外推,见滤波逻辑)。
-
3. 使用注意事项
-
合理性检查:若连续两次采样值的差值(
DeltaMax
,需配置,图中未显式标注)超过设定窗口,当前输入值被抑制(最多 3 个周期)。 -
输出处理:
- 抑制期(≤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_IDLE | 0 | 空闲模式(控制器未激活,等待任务)。 |
eCTRL_MODE_PASSIVE | 1 | 被动模式(监控状态,不主动控制,仅反馈信息)。 |
eCTRL_MODE_ACTIVE | 2 | 主动模式(正常运行,执行控制逻辑,如 PID 调节、运动控制)。 |
eCTRL_MODE_RESET | 3 | 复位模式(重置控制器状态,清除故障或初始化参数)。 |
eCTRL_MODE_MANUAL | 4 | 手动模式(操作人员直接干预,替代自动程序,用于调试或紧急操作)。 |
eCTRL_MODE_TUNE | 5 | 调整模式(如 PID 参数自整定、系统校准,优化控制性能)。 |
eCTRL_MODE_SELFTEST | 6 | 自检模式(控制器执行自我诊断,检查硬件 / 软件状态,确保系统可靠)。 |
eCTRL_MODE_SYNC_MOVEMENT | 7 | 同步运动模式(多轴 / 设备协同运动,如机器人轨迹同步、生产线联动)。 |
应用场景:
- 工业控制:在自动化生产线、机器人系统中,通过切换模式实现设备的状态管理(如手动调试→自动运行→自检维护)。
- 代码可读性:枚举值符号化表示模式,避免硬编码数字,提升程序可维护性(如
eCTRL_MODE_ACTIVE
比2
更直观)。