二阶超前滞后 (LDL2)
此信息适用于 CompactLogix 5370、ControlLogix 5570、Compact GuardLogix 5370、GuardLogix 5570、Compact GuardLogix 5380、CompactLogix 5380、ControlLogix 5580、GuardLogix 5580 和 ControlLogix 5590 控制器。
可用语言
梯形图
此指令不可用于梯形图逻辑中。
功能块

结构化文本
LDL2(LDL2_tag);
操作数
功能块
操作数 | 类型 | 格式 | 说明 |
|---|---|---|---|
LDL2 tag | LEAD_LAG_SEC_ORDER | 结构 | LDL2 结构 |
LEAD_LAG_SEC_ORDER 结构
输入参数 | 数据类型 | 说明 |
|---|---|---|
EnableIn | BOOL | 启用输入。如果为假,指令不会执行,也不会更新输出。 默认值为真。 |
In | REAL | 指令的模拟信号输入。 有效值 = 任意浮点值 默认值 = 0.0 |
Initialize | BOOL | 初始化滤波控制算法的请求。该值为真时,指令会设置 Out = In。 默认清零。 |
WLead | REAL | 超前拐角频率(弧度/秒)。如果 WLead < 最小值或 WLead > 最大值,指令会将 Status 中的相应位置位,并限制 WLead 值。如果 WLag:WLead 比率大于最大比率,该指令会将 Status 中的相应位置位,并限制 WLag 有效值 = 有效值范围请参见下文的“说明”部分。 默认值 = 0.0 |
WLag | REAL | 滞后拐角频率(弧度/秒)。如果 WLag < 最小值或 WLag > 最大值,指令会将 Status 中的相应位置位,并限制 WLag 值。如果 WLag:WLead 比率大于最大比率,该指令会将 Status 中的相应位置位,并限制 WLag。 有效值 = 有效值范围请参见下文的“说明”部分 默认值 = 0.0 |
ZetaLead | REAL | 二阶超前阻尼系数。仅在 Order = 2 时使用。如果 ZetaLead < 最小值或 ZetaLead > 最大值,该指令会将 Status 中的相应位置位,并限制 ZetaLead 值。 有效值 = 0.0 至 4.0 默认值 = 0.0 |
ZetaLag | REAL | 二阶滞后阻尼系数。仅在 Order = 2 时使用。如果 ZetaLag < 最小值或 ZetaLag > 最大值,该指令会将 Status 中的相应位置位,并限制 ZetaLag 值。 有效值 = 0.05 至 4.0 默认值 = 0.05 |
Order | REAL | 滤波器阶数。选择一阶或二阶滤波器算法。如果该值无效,指令会将 Status 中的相应位置位,并使用 Order = 2。 有效值 = 1 至 2 默认值 = 2 |
TimingMode | DINT | 选择时序执行模式。 0 = 周期性模式 1 = 过采样模式 2 = 实时采样模式 有效值 = 0 至 2 默认值 = 0 |
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 > 最大值。 |
WLagInv (Status.2) | BOOL | WLag < 最小值或 WLag > 最大值。 |
ZetaLeadInv (Status.3) | BOOL | 超前阻尼系数 < 最小值,或超前阻尼系数 > 最大值。 |
ZetaLagInv (Status.4) | BOOL | 滞后阻尼系数 < 最小值,或滞后阻尼系数 > 最大值。 |
OrderInv (Status.5) | BOOL | Order 值无效。 |
WLagRatioInv (Status.6) | BOOL | WLag:WLead 之比大于最大值。 |
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 值无效。 |
结构化文本
操作数 | 类型 | 格式 | 说明 |
|---|---|---|---|
LDL2 tag | LEAD_LAG_SEC_ORDER | 结构 | LDL2 结构 |
有关结构化文本中表达式语法的详细信息,请参见“结构化文本语法”部分。
说明
LDL2 指令滤波器用在参考强制和反馈强制控制方法中。LDL2 指令专用于恒速扫描的任务中。
LDL2 指令使用以下公式:
以下情况下: | 指令使用此拉普拉斯传递函数: |
|---|---|
Order = 1 | ![]() |
顺序 = 2 | ![]() ![]() ![]() |
各参数的限制如下(其中,DeltaT 单位为秒):
参数 | 限制 |
|---|---|
一阶 WLead LowLimit | ![]() |
二阶 WLead LowLimit | ![]() |
HighLimit | ![]() |
WLead:WLag 之比 | 如果 WLead > WLag,则无限制 如果 WLag > WLead:
|
仅限二阶 ZetaLead | 下限 = 0.0 上限 = 4.0 |
仅限二阶 ZetaLag | 下限 = 0.05 上限 = 4.0 |
只要计算出的输出值无效(NAN 或
INF),指令就会将 Out 设为无效值。当计算出的输出值有效时,该指令将初始化内部参数并设置 Out = In。
INF),指令就会将 Out 设为无效值。当计算出的输出值有效时,该指令将初始化内部参数并设置 Out = In。影响数学状态标志
否
严重/轻微故障
没有特定于此指令的故障。有关操作数相关的故障,请参见“通用属性”。
执行
功能块
条件/状态 | 执行的操作 |
|---|---|
预扫描 | EnableIn 和 EnableOut 位设置为假。 |
Tag.EnableIn 为假 | EnableIn 和 EnableOut 位设置为假。 |
Tag.EnableIn 为真 | EnableIn 和 EnableOut 位设置为真。 指令执行。 |
指令首次运行 | 不适用 |
指令首次扫描 | 重新计算系数。 |
后扫描 | EnableIn 和 EnableOut 位设置为假。 |
结构化文本
条件/状态 | 执行的操作 |
|---|---|
预扫描 | 请参见“功能块”表中的“预扫描”行。 |
正常执行 | 请参见“功能块”表中的“Tag.EnableIn 为真”行。 |
后扫描 | 请参见“功能块”表中的“后扫描”行。 |
示例
LDL2 指令可以在两个频率之间衰减或放大,具体视指令配置方式而定。设置时,超前频率可以大于滞后频率,也可以小于滞后频率,因此指令可以作为超前-滞后功能块或滞后-超前功能块,具体取决于先配置哪个频率。请注意,阶数越大,滤波器指令的执行时间越长。
本示例是 LDL2 功能块最基本的合法编程方法,仅用于展示该指令的纯文本内容和生成的代码。本示例仅供内部使用,并非可测试的用例。
滤波器 | 图形 |
|---|---|
一阶超前-滞后 (wLead < wLag) | ![]() |
二阶超前-滞后 (wLead < wLag) | ![]() |
一阶超前-滞后 (wLag < wLead) | ![]() |
二阶超前-滞后 (wLag < wLead) | ![]() |
功能块

结构化文本
LDL2_01.In := frequency_input;
LDL2_01.WLead :=
Lead_frequency;
LDL2_01.WLag := Lag_frequency;
LDL2(LDL2_01);
Lead_lag_output := LDL2_01.Out;
提供反馈










