Filter_PT1说明 (S7-1200, S7-1500) 描述 指令 Filter_PT1 是具有一阶滞后的比例传递元素,也称为 PT1 元素。Filter_PT1 可用于以下用途: • 低通滤波器,用于衰减信号中的高频分量,如噪声。 •延迟元素,用于对信号阶跃变化进行平滑处理,如控制器的设定值或输出值的阶跃变化。 • 过程仿真块,用于在 CPU中实现闭合控制回路。举例来说,这意味着可在调试之前测试 控制器。 可指定以下滤波器参数: • 比例增益 (Gain) • 滞后时间常量(Lag) 说明 连续时间 PT1 元素与 Filter_PT1 之间的差值 由于 Filter_PT1 是在 PLC程序中执行的,Filter_PT1 是 PT1 元素的离散时间实现。离散时间系统不能与相应的连续时间模型具有相同的特性。离散时间系统也可以根据周期时间仿真连续时间系统:周期时间越短、越恒定,Filter_PT1 的特性与连续时间 PT1 元素之间特性 的一致性误差越小。连续时间 PT1元素的特性为下文介绍的传递函数、时间响应和频率响 应。为了准确仿真频率响应,建议使用的Zui大周期时间为输入信号分量Zui短周期持续时间的十分 之一。举例来说,对于频率分量Zui大为 50 Hz的信号,Zui短周期持续时间为 20 ms。为了准 确仿真频率响应,建议为本例使用的Zui大周期时间为 2 ms。调用 在 OB 或FC 中,Filter_PT1 以单背景数据块的形式调用。在 FB 中,Filter_PT1 能够以单背景数据块、多背景数据块和参数背景数据块的形式调用。 调用该指令后,不会创建任何工艺对象。没有参数分配接口或调试接口可用。直接使用背景数据块分配 Filter_PT1 参数,并使用 CPU 或 HMI 中的用户程序监视表调试 Filter_PT1。 启动Filter_PT1 静态区域中的变量不具有保持性。每当 CPU 的操作状态从 STOP 切换为 RUN 后,这些变量都将通过起始值进行初始化。如果于在线模式下更改实际值并且这些值将在 CPU 的操作状态发生切换后得以保留,则将这些值备份到数据块的起始值。 在 StartMode 变量中指定 Output参数的初始化值。
错误原因:当配置文件的执行结束或停止时确定输出值的变量(使用 StopMode 配置)没有任何有效的 REAL 值。 对错误的响应: 如果Reset = FALSE,在 ErrorMode 变量中组态的替代输出值会在 Output 参数中输出被保持。 如果 Reset= TRUE,则 SubstituteOutput 继续在 Output 参数中输出。 解决方案: 确保变量是有效的 REAL 值(≠NaN,例如,16#7FFF_FFFF)。使用的变量取决于 StopMode: • StopMode = 0:WorkingData.StartValue • StopMode = 1: SubstituteOutput 其它信息: 如果要更改WorkingData.StartValue,编辑 UserData.StartValue,设置参数 Validate =TRUE。请勿手动更改 WorkingData 结构的数据。错误原因: 变量(用 StartMode配置)在首次调用指令或开始执行配置文件时确定输出值,它没有有效的 REAL 值。 对错误的响应: 如果 Reset = FALSE,在ErrorMode 变量中组态的替代输出值会在 Output 参数中输出被保持。 如果激活了配置文件执行 (Enable =TRUE),则Zui初将从此替代输出值开始。 如果 Reset = TRUE,则 SubstituteOutput 继续在 Output参数中输出。 解决方案: 确保变量是有效的 REAL 值(≠ NaN,例如,16#7FFF_FFFF)。使用的变量取决于StartMode: • StartMode = 0: WorkingData.StartValue • StartMode = 1:SubstituteOutput • StartMode = 2: Output 其它信息: 如果要更改WorkingData.StartValue,编辑 UserData.StartValue,设置参数 Validate =TRUE。请勿手动更改 WorkingData 结构的数据。 0040_0000 错误原因: 在激活配置文件的执行 (Enable =TRUE) 时,CycleTime.Value 变量具有一个无效值。 对错误的响应: 配置文件的执行被暂停。 如果 Reset =FALSE,在 ErrorMode 变量中组态的替代输出值会在 Output 参数中输出。 如果 Reset = TRUE,则SubstituteOutput 继续在 Output 参数中输出。只要不再出现此错误,就会继续执行配置文件。如果配置文件的执行预先停止,则保留替代输 出值。 解决方案: 请确保满足以下条件: •0.0 < CycleTime.Value ≤ 3.402823e+38 • CycleTime.Value 是有效的 REAL值(≠ NaN,例如 16#7FFF_FFFF) 其它信息: 要自动计算 变量 CycleTime.Value 的值,请将变量CycleTime.EnableMeasurement 设为 TRUE。
发生以下事件后首次调用Filter_PT1 期间 • CPU 操作状态切换 或 • 执行“加载初始值作为实际值”(仅适用于“所有值”(All values)选项,不适用于“jinxian 设定值”(Only setpoints) 选项) 初始化值在 Output 参数中输出。对于后续调用,Filter_PT1 将根据输入值和滤波器配置,从该初始化值开始计算输出值。 下表列出了 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_PT1 指令会检测输出值计算过程中可能出现的各种错误。即便存在未决错误,也可在输出中输出此计算结果。如果某个错误影响了输出值计算的正确性,则将在输出中输出一个 替代输出值。 请在 ErrorMode变量中指定出现某个影响输出值计算正确性的错误时将输出的替代输出值。 下表列出了 ErrorMode 变量和 Filter_PT1 在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_PT1 工作原理 (S7-1200, S7-1500) 复位响应 根据 Reset参数,Filter_PT1 执行如下操作: • 如果设置了 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_PT1 需要自上次调用Filter_PT1 以来经过的时间。 周期时间默认自动测量,并且自第二次调用起在 CycleTime.Value变量中输出。Filter_PT1 测 量每次指令调用的周期时间,可用于非等时同步调用周期,例如 OB1 中。