Filter_PT2 (S7-1200, S7-1500) 与 CPU 和 FW 的兼容性 (S7-1200,S7-1500) 下表列出了 Filter_PT2 的各版本及其适用的 CPU:Filter_PT2 说明 (S7-1200,S7-1500) 描述 指令 Filter_PT2 是具有二阶滞后的比例传递元素,也称为 PT2 元素。 Filter_PT2可用于以下用途: • 低通滤波器,用于衰减信号中的高频分量,如噪声。 •延迟元素,用于对信号阶跃变化进行平滑处理,如控制器的设定值或输出值的阶跃变化。 • 过程仿真块,用于在 CPU中实现闭合控制回路。举例来说,这意味着可在调试之前测试 控制器。 可指定以下滤波器参数: • 比例增益 (Gain) • 时间常量(TimeConstant) • 阻尼 (Damping) 说明 连续时间 PT2 元素与 Filter_PT2 之间的差值 由于Filter_PT2 是在 PLC 程序中执行的,Filter_PT2 是 PT2 元素的离散时间实现。离散时间系统不能与相应的连续时间模型具有相同的特性。离散时间系统也可以根据周期时间仿真连续时间系统:周期时间越小、越恒定,Filter_PT2 的特性与连续时间 PT2 元素的特性之 间的一致性误差越小。连续时间PT2 元素的特性为下文介绍的传递函数、时间响应和频率响 应。为了准确仿真频率响应,建议使用的Zui大周期时间为输入信号分量Zui短周期持续时间的十分 之一。举例来说,对于频率分量Zui大为 50 Hz的信号,Zui短周期持续时间为 20 ms。为了准 确仿真频率响应,建议为本例使用的Zui大周期时间为 2 ms。
调用 在 OB 或 FC中,Filter_PT2 以单背景数据块的形式调用。在 FB 中,Filter_PT2 能够以单背景数据块、多背景数据块和参数背景数据块的形式调用。 调用该指令后,不会创建任何工艺对象。没有参数分配接口或调试接口可用。直接使用背景数据块分配 Filter_PT2 参数,并使用 CPU 或 HMI 中的用户程序监视表调试 Filter_PT2。 启动Filter_PT2 静态区域中的变量不具有保持性。每当 CPU 的操作状态从 STOP 切换为 RUN 后,这些变量都将通过起始值进行初始化。如果于在线模式下更改实际值并且这些值将在 CPU 的操作状态发生切换后得以保留,则将这些值备份到数据块的起始值。 在 StartMode 变量中指定 Output 参数的初始化值。发生以下事件后首次调用 Filter_PT2 期间 • CPU 操作状态切换或 •执行“加载初始值作为实际值”(仅适用于“所有值”(All values) 选项,不适用于“jinxian 设定值”(Onlysetpoints) 选项) 初始化值在 Output 参数中输出。 对于后续调用,Filter_PT2将根据输入值和滤波器配置,从该初始化值开始计算输出值。 下表列出了 StartMode 变量与 Output 参数之间的相关性。CPU操作状态发生转换后, Output 列的值将在 Output 参数中输出。以下内容还适用于 StartMode 变量的所有值: •初始化值将限制在数据类型 REAL 的取值范围内。只有这样才能在 Output 参数中输出初 始化值。 • 如果初始化值不是有效的REAL 值,则替代输出值 将在 Output 参数中输出。替代输出值 通过 ErrorMode 变量组态。替代输出值在 Output参数中输出之前,将限制在数据类型 REAL 的取值范围内。如果替代输出值也不是有效的 REAL 值,则将在 Output 参数中输出0.0。对于后续调用,此指令将从该替代输出值开始计算输出值。 • 只有在首次调用指令时设置了 Reset = FALSE参数、没有具有错误消息 ErrorBits ≥ 16#0002_0000 的错误处于未决状态的情况下,StartMode变量才有效。如果设置了 Reset = TRUE 参数,则 SubstituteOutput 参数值将在 Output参数中输出。如果有错误消 息为 ErrorBits ≥ 16#0002_0000 的错误处于未决状态,则在 ErrorMode变量中组态的替 代输出值会在 Output 参数中输出。 出现错误时的响应 Filter_PT2指令会检测输出值计算过程中可能出现的各种错误。即便存在未决错误,也可在输出中输出此计算结果。如果某个错误影响了输出值计算的正确性,则将在输出中输出一个 替代输出值。 请在 ErrorMode变量中指定出现某个影响输出值计算正确性的错误时将输出的替代输出值。 下表列出了 ErrorMode 变量和 Filter_PT2 在Output 参数中输出的替代输出值之间的相关性: ErrorMode Output 0 Input 参数值 1SubstituteOutput 参数值 2 上一个有效滤波器输出值 0.0,如果不存在有效滤波器输出值 默认设置 ErrorMode不在 0...4 的范围内时使用 3 0.0 4 Input * Gain 乘积值。以下内容还适用于 ErrorMode变量的所有值: • 如果替代输出值不是一个有效的 REAL 值,则会将 0.0 作为输出值输出。 • 替代输出值将限制在数据类型REAL 的取值范围内。只有这样才能在 Output 参数中输出 替代输出值。 • 只有在设置了 Reset = FALSE参数的情况下 ErrorMode 变量才有效。如果设置了 Reset = TRUE 参数,则 SubstituteOutput参数值将在 Output 参数中输出。 Error 参数指示是否存在错误处于未决状态。当错误不再处于未决状态时,Error 设为FALSE。 ErrorBits 参数显示了已发生的错误。ErrorBits 具有保持性,仅通过 Reset 或 ErrorAck参数的 上升沿来复位。 Filter_PT2 工作原理 (S7-1200, S7-1500) 复位响应 根据 Reset参数,Filter_PT2 执行如下操作: • 如果设置了 Reset =TRUE 参数,则 SubstituteOutput参数值将在 Output 参数中输出。 • 如果设置了 Reset = FALSE 参数,则在 Output中输出的值将通过滤波器算法计算。 • 如果 Reset 参数从 FALSE 设为 TRUE,Output 参数值会直接切换为SubstituteOutput 参 数的值。这一转换过程中可发生输出跳转。ErrorBits 参数也会复位。 • 如果Reset 参数从 TRUE 设为 FALSE,则会增加滤波算法,从而使转换没有扰动。 使能行为 EN/ENO如果满足下列其中一个条件,则使能输出 ENO 将设为 FALSE。 • 使能输入 EN 设为 TRUE,且 Output参数由出现错误消息 ErrorBits ≥ 16#0001_0000 时 的替代输出值指定。 • 使能输入 EN 设为 FALSE。否则,使能输出 ENO 设为 TRUE。 自动测量周期时间 要计算输出值,则 Filter_PT2 需要自上次调用Filter_PT2 以来经过的时间。 周期时间默认自动测量,并且自第二次调用起在 CycleTime.Value变量中输出。Filter_PT2 测 量每次指令调用的周期时间,可用于非等距调用周期,例如 OB1中。请注意,周期时间自动测量期间的条件性调用指令、有效断点或加载快照作为实际值会延长 周期时间值。如果周期时间过长,会在错误消息ErrorBits = 16#0008_0000 中以错误形式进 行标识。 如果周期时间测量未返回有效结果,Filter_PT2会使用上一个有效的周期时间计算当前输出 值。Filter_PT2 在 ErrorBits 参数中输出错误消息。 通过设置CycleTime.EnableMeasurement 变量 = FALSE 来禁用周期时间的自动测量时,必 须在CycleTime.Value 变量中手动输入周期时间。每次调用时,Filter_PT2 都会检查 CycleTime.Value变量的有效性。 带断点的周期时间的自动测量 当 Filter_PT2的两次调用之间的断点有效时,周期时间的自动测量会得到两次调用之间经过 的实际时间。当一个断点有效时,CPU 处于 HOLD 操作状态。说明 有效断点会延长 Filter_PT2 的两次调用之间的时间间隔。 两次调用之间的时间间隔越长,Output参数中输出值的变化就越大。 时间间隔较长可能导致无法满足 TimeConstant ≥ CycleTime.Value/2的条件,会 通过错误消息 ErrorBits = 16#0008_0000 指示错误。如果无需根据带有效断点的实际时间计算输出值,请按照下列步骤操作: • 通过设置 CycleTime.EnableMeasurement变量 = FALSE 来禁用周期时间的自动测量。 • 在 CycleTime.Value变量中手动输入周期时间。在下列情况下,SubstituteOutput 用作替代输出值 • Reset = TRUE 或 •如果存在通过错误消息 ErrorBits ≥ 16#0001_0000 指示的错误,则 无法正确计算输出值,且 ErrorMode会配置为数值 1。重新启动指令 • 边沿 FALSE -> TRUE ErrorBits 已复位。 • 只要 Reset 设为TRUE,就会在输出中输出替代输出值 SubstituteOutput。 • 只要 Reset 设为FALSE,就会计算输出值。