高通滤波器 (HPF)
此信息适用于
CompactLogix
5370、ControlLogix
5570、Compact GuardLogix
5370、GuardLogix
5570、Compact GuardLogix
5380、CompactLogix
5380、ControlLogix
5580、GuardLogix
5580 和 ControlLogix 5590 控制器。HPF 指令提供一个滤波器,用来对低于截止频率的输入频率进行衰减。
可用语言
梯形图
此指令不可用于梯形图逻辑中。
功能块

结构化文本
HPF(HPF_tag);
操作数
功能块
操作数 | 类型 | 格式 | 说明 |
|---|---|---|---|
HPF tag | FILTER_HIGH_PASS | 结构 | HPF 结构 |
输入参数 | 数据类型 | 说明 |
|---|---|---|
EnableIn | BOOL | 启用输入。如果为假,指令不会执行,也不会更新输出。 默认值为真。 |
In | REAL | 指令的模拟信号输入。 有效值 = 任意浮点值 默认值 = 0.0 |
Initialize | BOOL | 初始化滤波控制算法的请求。该值为真时,指令会设置 Out = In。 默认值为假。 |
WLead | REAL | 超前频率(弧度/秒)。如果 WLead < 最小值或 WLead > 最大值,指令会将状态中的相应位置位,并限制 WLead 值。 有效值 = 有效值范围请参见下文的“说明”部分。 默认值 = 0.0 |
Order | REAL | 滤波器阶数。Order 值用于控制截止区的锐度。如果 Order 值无效,指令会将 Status 中的相应位置位,并使用 Order = 1。 有效值 = 1 至 3 默认值 = 1 |
OversampleDT | REAL | 过采样模式的执行时间。 有效值 = 0 到 4194.303 秒 默认值 = 0 |
RTSTime | DINT | 实时采样模式的模块更新周期 有效值 = 1 至 32,767 ms 默认值 = 1 |
RTSTimeStamp | DINT | 实时采样模式的模块时戳值。 有效值 = 0 至 32,767 ms 默认值 = 0 |
输出参数 | 数据类型 | 说明 |
|---|---|---|
EnableOut | BOOL | 指示指令是否处于启用状态。如果 Out 溢出,则设置为假。 |
Out | REAL | 计算所得的算法输出。 |
DeltaT | REAL | 两次更新间隔的时间。控制算法计算过程输出所用的时间(秒)。 |
Status | DINT | 功能块的状态。 |
InstructFault (Status.0) | BOOL | 该指令检测到以下执行错误之一。这不是轻微或严重的控制器错误。检查其他状态位以确定发生的情况。 |
WLeadInv (Status.1) | BOOL | WLead < 最小值或 WLead > 最大值。 |
OrderInv (Status.2) | BOOL | Order 值无效。 |
TimingModeInv (Status.27) | BOOL | TimingMode 值无效。 有关时序模式的更多信息,请参见“功能块属性”部分。 |
RTSMissed (Status.28) | BOOL | 仅用于实时采样模式。在以下情况下设置为真 ABS (DeltaT - RTSTime) > 1 毫秒。 |
RTSTimeInv (Status.29) | BOOL | RTSTime 值无效。 |
RTSTimeStampInv (Status.30) | BOOL | RTSTimeStamp 值无效。 |
DeltaTInv (Status.31) | BOOL | DeltaT 值无效。 |
结构化文本
操作数 | 类型 | 格式 | 说明 |
|---|---|---|---|
HPF tag | FILTER_HIGH_PASS | 结构 | HPF 结构 |
有关结构化文本中表达式语法的详细信息,请参见“结构化文本语法”部分。
说明
HPF 指令使用 Order 参数控制截止区的锐度。HPF 指令专用于恒速扫描的任务中。
HPF 指令使用以下公式:
以下情况下: | 指令使用此传递函数: |
|---|---|
Order = 1 | ![]() |
顺序 = 2 | ![]() |
Order = 3 | ![]() |
各参数的限制如下(其中,DeltaT 单位为秒):
参数 | 限制 |
|---|---|
一阶 WLead LowLimit | ![]() |
二阶 WLead LowLimit | ![]() |
三阶 WLead LowLimit | ![]() |
HighLimit | ![]() |
只要计算出的输出值无效(NAN 或
INF),指令就会将 Out 设为无效值。当计算出的输出值有效时,该指令将初始化内部参数并设置 Out = In。
INF),指令就会将 Out 设为无效值。当计算出的输出值有效时,该指令将初始化内部参数并设置 Out = In。影响数学状态标志
否
严重/轻微故障
没有特定于此指令的故障。有关操作数相关的故障,请参见“通用属性”。
执行
功能块
条件/状态 | 执行的操作 |
|---|---|
预扫描 | EnableIn 和 EnableOut 位设置为假。 |
Tag.EnableIn 为假 | EnableIn 和 EnableOut 位设置为假。 |
Tag.EnableIn 为真 | EnableIn 和 EnableOut 设置为真。 指令执行。 |
指令首次运行 | 不适用 |
指令首次扫描 | 重新计算系数。 |
后扫描 | EnableIn 和 EnableOut 位设置为假。 |
结构化文本
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 请参见“功能块”表中的“预扫描”行。 |
正常执行 | 请参见“功能块”表中的“Tag.EnableIn 为真”行。 |
后扫描 | 请参见“功能块”表中的“后扫描”行。 |
示例
HPF 指令将对低于所配置截止频率的信号进行衰减。该指令通常用于过滤来自电气或机械装置的低频“噪声”或干扰。用户可以选择特定的滤波器阶数,以实现不同程度的衰减。请注意,阶数越大,滤波器指令的执行时间越长。
下图显示了不同滤波器阶数对给定截止频率的影响。每张图中的理想渐进逼近曲线均增益对数和频率对数为坐标。滤波器的实际响应逼近这些曲线,但并不完全贴合。
本示例是 HPF 功能块最基本的合法编程方法,仅用于展示该指令的纯文本内容和生成的代码。本示例仅供内部使用,并非可测试的用例。
滤波器 | 图形 |
|---|---|
一阶滤波器 | ![]() |
二阶滤波器 | ![]() |
三阶滤波器 | ![]() |
功能块

结构化文本
HPF_01.In := Velocity_Feedback;
HPF_01.WLead := Cutoff_frequency;
HPF_01.Order := 2;
HPF(HPF_01);
filtered_velocity_output := HPF_01.Out
提供反馈









