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