调用在 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 参数中输出。450PID 控制功能手册, 11/2022,A5E35300232-AF指令10.10 Filter_PT2对于后续调用,Filter_PT2将根据输入值和滤波器配置,从该初始化值开始计算输出值。下表列出了 StartMode 变量与 Outp以下内容还适用于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。自动测量周期时间要计算输出值,则 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,就会计算输出值。
输出参数 Filter_PT2参数 数据类型 默认值 说明OutputREAL 0.0 输出值输出值具有保持性。ErrorBits DWORD DW#16#0 ErrorBits 参数 (页454)显示了处于未决状态的错误消息。ErrorBits 具有保持性,会在 Reset 或 ErrorAck出现上升沿时复位。Error BOOL FALSE Error 设为 TRUE 时,至少有一个错误当前处于未决状态。10.10.6静态变量 Filter_PT2变量 数据类型 默认值 说明Gain REAL 1.0 比例增益TimeConstant REAL25.0 时间常量(以秒为单位)允许的值范围:TimeConstant ≥ CycleTime.Value/2Damping REAL1.0 阻尼允许的值范围:Damping > 0.0ErrorMode INT 2 选择出现错误后的替代输出值• 0 =Input• 1 = SubstituteOutput• 2 = 上一个有效滤波器输出值• 3 = 0.0• 4 = Input *Gain允许的值范围:0 到 4StartMode INT 2 选择指令首次调用的输出值• 0 = Input• 1 =SubstituteOutput• 2 = 上一个输出值• 3 = 0.0• 4 = Input * Gain允许的值范围:0 到4CycleTime AuxFct_CycleTime - 周期时间数据CycleTime.Value REAL 0.1周期时间(以秒为单位)(两次调用之间的时间间隔)允许的值范围:CycleTime.Value >0.0CycleTime.EnableMeasurementBOOL TRUE 周期时间的自动测量• FALSE = 取消激活•TRUE = 已激活10.10.7 ErrorBits 参数如果多个错误处于待决状态,将通过二进制加法显示 ErrorBits的值。例如,显示ErrorBits = 16#0000_0003 表示错误 16#0000_0001 和 16#0000_0002处于待决状态。对于 Filter_PT2,在 ErrorBits 参数中输出的错误分为两类:• 错误消息为ErrorBits如果有一个或多个错误消息为 ErrorBits < 16#0001_0000 的错误处于未决状态,则Filter_PT2的响应如下:• 存在此类错误,输出值也会通过如下方式确定:– 当 Reset = FALSE,时,通过滤波器算法计算输出值– 当 Reset = TRUE 时,通过 SubstituteOutput 的输出• 输出参数Error 已置位。• 使能输出 ENO 不变。不再有任何错误时,会立即删除输出参数 Error。Output 参数限制为-3.402823e+38 或 +3.402823e+38。解决方案:如果在输出参数中输出由滤波器函数确定的值(Reset =FALSE 且 ErrorBits < 16#0001_0000),则检查滤波器计算中的以下变量:• Input• Gain•TimeConstant• Damping• CycleTime.Value当 ErrorBits ≥ 16#0001_0000 且Reset = FALSE 时,替代输出值限制为其输出。在这种情况下,根据ErrorMode 变量的设定值检查以下参数:•Input• SubstituteOutput• Input 和 Gain 的乘积Reset = TRUE 时,检查SubstituteOutput 参数。错误原因:当计算输出值时 (Reset =FALSE),周期时间的测量会得出无效值。对错误的响应:如果已测量周期时间的有效值,则 Filter_PT2 可根据CycleTime.Value 变量的上一个值计算输出值。如果先前没有测量到周期时间的有效值,则 Filter_PT2 仍会在Output 参数中输出通过 StartMode 变量组态的输出值。