调用在 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 Output0 Input 参数值1SubstituteOutput 参数值2 上一个有效滤波器输出值0.0,如果不存在有效滤波器输出值默认设置ErrorMode 不在0...4 的范围内时使用3 0.04 Input * Gain 乘积值以下内容还适用于 ErrorMode 变量的所有值:•如果替代输出值不是一个有效的 REAL 值,则会将 0.0 作为输出值输出。• 替代输出值将限制在数据类型 REAL的取值范围内。只有这样才能在 Output 参数中输出替代输出值。• 只有在设置了 Reset = FALSE 参数的情况下ErrorMode 变量才有效。如果设置了 Reset =TRUE 参数,则 SubstituteOutput 参数值将在Output 参数中输出。Error 参数指示是否存在错误处于未决状态。当错误不再处于未决状态时,Error设为FALSE。ErrorBits 参数显示了已发生的错误。ErrorBits 具有保持性,仅通过 Reset 或ErrorAck参数的上升沿来复位。 Filter_PT2 工作原理复位响应根据 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。474PID 控制功能手册,11/2023, A5E35300232-AG指令10.10 Filter_PT2自动测量周期时间要计算输出值,则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 变量中手动输入周期时间。输入参数 Filter_PT2参数 数据类型 默认值 说明Input REAL0.0 输入值SubstituteOutputREAL 0.0 在下列情况下,SubstituteOutput 用作替代输出值•Reset = TRUE或• 如果存在通过错误消息 ErrorBits ≥ 16#0001_0000指示的错误,则无法正确计算输出值,且 ErrorMode 会配置为数值 1。ErrorAck BOOL FALSE 删除错误消息•边沿 FALSE -> TRUEErrorBits 已复位。Reset BOOL FALSE 重新启动指令• 边沿 FALSE-> TRUEErrorBits 已复位。• 只要 Reset 设为 TRUE,就会在输出中输出替代输出值SubstituteOutput。• 只要 Reset 设为 FALSE,就会计算输出值。当计算输出值时 (Reset =FALSE),周期时间的测量会得出无效值。对错误的响应:如果已测量周期时间的有效值,则 Filter_PT2 可根据CycleTime.Value 变量的上一个值计算输出值。如果先前没有测量到周期时间的有效值,则 Filter_PT2 仍会在Output 参数中输出通过 StartMode 变量组态的输出值。如果有一个或多个错误消息为 ErrorBits <16#0001_0000 的错误处于未决状态,则 Filter_PT2的响应如下:• 即使存在此类错误,输出值也会通过如下方式确定:–当 Reset = FALSE, 时,通过滤波器算法计算输出值– 当 Reset = TRUE 时,通过SubstituteOutput 的输出• 输出参数 Error 已置位。• 使能输出 ENO不变。不再有任何错误时,会立即删除输出参数 Error。• 无法按预期确定输出值。将输出替代输出值。• 输出参数 Error已置位。• 使能输出 ENO 设为 FALSE。一旦不再有任何错误消息为 ErrorBits ≥ 16#0001_0000的错误,Filter_PT2 的响应如下:• 输出值会通过如下方式确定:– Reset = FALSE 时,通过滤波器算法计算输出值–当 Reset = TRUE 时,通过 SubstituteOutput 的输出• 使能输出 ENO 设为TRUE。不再有任何错误时,会立即删除输出参数 Error。输出值计算为 Output 参数生成了一个无效的 REAL值。对错误的响应:在 ErrorMode 变量中组态的替代输出值会在 Output参数中输出。解决方案:检查输出值计算中涉及到的所有变量:• Input• Gain• TimeConstant• Damping•CycleTime.Value这些变量具有有效值。采用这一变量组合时,输出值计算失败。Gain、TimeConstant 或Damping tag 不含有效值,同时将执行输出值的计算 (Reset = FALSE)。对错误的响应:在 ErrorMode变量中组态的替代输出值会在 Output 参数中输出。解决方案:请确保 Gain、TimeConstant 和 Damping变量的值满足以下条件:• -3.402823e+38 ≤ Gain ≤ 3.402823e+38• CycleTime.Value/2≤ TimeConstant ≤ 3.402823e+38• 0.0 < Damping ≤ 3.402823e+38•这些值是有效的 REAL 值(≠ NaN,如 16#7FFF_FFFF)其它信息:请注意,以下情况下可能不满足CycleTime.Value/2 ≤ TimeConstant 的条件:• 由于程序序列中的条件调用或有效断点等原因,两次调用Filter_PT2 的时间间隔大于2 * TimeConstant。• Filter_PT2 背景数据块的快照作为实际值加载到CPU 中,且快照创建时间早于 2 * TimeConstant 之前。首次调用指令时,用于初始化 Output 参数的变量(组态StartMode)不含有效的 REAL 值。对错误的响应:首次调用指令时,会在 Output 参数中输出在 ErrorMode变量中配置的替代输出值。对于后续调用,Filter_PT2 将从该替代输出值开始计算输出值。解决方案:确保用于初始化参数 Output的变量是有效 REAL 值(≠ NaN,例如 16#7FFF_FFFF)。设置 Reset = FALSE时,在 CPU 的操作状态从STOP 切换到 RUN 后首次调用指令时初始化会生效。用于初始化 Output 参数的变量取决于 StartMode:•StartMode = 1: SubstituteOutput• StartMode = 2: Output• StartMode =4: Input 与 Gain 之积。