输入参数 Filter_PT1参数 数据类型 默认值说明Input REAL 0.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,就会计算输出值。10.9.5 输出参数 Filter_PT1参数 数据类型 默认值 说明Output REAL 0.0输出值输出值具有保持性。ErrorBits DWORD DW#16#0 ErrorBits 参数 (页443)显示了处于未决状态的错误消息。ErrorBits 具有保持性,会在 Reset 或 ErrorAck出现上升沿时复位。Error BOOL FALSE Error 设为 TRUE 时,至少有一个错误当前处于未决状态。10.9.6静态变量 Filter_PT1变量 数据类型 默认值 说明Gain REAL 1.0 比例增益Lag REAL 25.0滞后时间常量(以秒为单位)允许的值范围:Lag ≥ CycleTime.Value/2ErrorMode 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.ValueREAL 0.1 周期时间(以秒为单位)(两次调用之间的时间间隔)允许的值范围:CycleTime.Value >0.0CycleTime.EnableMeasurementBOOL TRUE 周期时间的自动测量• FALSE = 取消激活•TRUE = 已激活443指令10.9 Filter_PT1PID 控制功能手册, 11/2022,A5E35300232-AF10.9.7 ErrorBits 参数如果多个错误同时处于待决状态,将通过二进制加法显示ErrorBits 的值。例如,显示ErrorBits = 16#0000_0003 表示错误 16#0000_0001 和16#0000_0002 同时处于待决状态。对于 Filter_PT1,在 ErrorBits 参数中输出的错误分为两类:•错误消息为 ErrorBits < 16#0001_0000 的错误• 错误消息为 ErrorBits ≥16#0001_0000 的错误错误消息为 ErrorBits < 16#0001_0000 的错误如果有一个或多个错误消息为ErrorBits < 16#0001_0000 的错误处于未决状态,则 Filter_PT1的响应如下:•即使存在此类错误,输出值也会通过如下方式确定:– Reset = FALSE 时,通过滤波器算法计算输出值– 当 Reset =TRUE 时,通过 SubstituteOutput 的输出• 输出参数 Error 已置位。• 使能输出 ENO不变。不再有任何错误时,会立即删除输出参数 Error。ErrorBits (DW#16#...)说明0000_0000无错误处于未决状态。0000_0001 错误原因和对错误的响应:Output 参数限制为 -3.402823e+38 或+3.402823e+38。解决方案:如果在输出参数中输出由滤波器函数确定的值(Reset = FALSE 且 ErrorBits< 16#0001_0000),则检查滤波器计算中的以下变量:• Input• Gain• Lag•CycleTime.ValueErrorBits ≥ 16#0001_0000 且 Reset = FALSE时,替代输出值限制为其输出。这种情况下,请根据变量ErrorMode: 的设定值检查以下参数:• Input•SubstituteOutput• Input 和 Gain 的乘积Reset = TRUE 时,检查SubstituteOutput 参数。0000_0002 错误原因:当计算输出值时 (Reset =FALSE),周期时间的测量会得出无效值。对错误的响应:如果已测量周期时间的有效值,则 Filter_PT1 可根据CycleTime.Value 变量的上一个值计算输出值。如果先前没有测量到周期时间的有效值,则 Filter_PT1 仍会在Output 参数中输出通过 StartMode 变量组态的输出值。错误消息为 ErrorBits ≥ 16#0001_0000的错误如果有一个或多个错误消息为 ErrorBits ≥ 16#0001_0000 的错误处于未决状态,则Filter_PT1的响应如下:• 无法按预期确定输出值。将输出替代输出值。• 输出参数 Error 已置位。• 使能输出 ENO设为 FALSE。一旦不再有任何错误消息为 ErrorBits ≥ 16#0001_0000 的错误,Filter_PT1的响应如下:• 输出值会通过如下方式确定:– Reset = FALSE 时,通过滤波器算法计算输出值– 当 Reset = TRUE时,通过 SubstituteOutput 的输出• 使能输出 ENO 设为 TRUE。不再有任何错误时,会立即删除输出参数Error。ErrorBits (DW#16#...)说明错误原因:用作输出值的 SubstituteOutput参数或另一变量不含有效的 REAL 值。对错误的响应:输出设为 0.0。解决方案:确保用作输出值的变量是有效 REAL值(≠NaN,例如 16#7FFF_FFFF)。用作输出值的变量取决于 Reset和 ErrorMode:ResetErrorMode 输出值FALSE 0 InputFALSE 1 SubstituteOutputFALSE 4 Input 与Gain 之积0001_0000TRUE - SubstituteOutput0002_0000 错误原因:计算输出值时,Input参数不含有效 REAL 值 (Reset = FALSE)。对错误的响应:在 ErrorMode 变量中组态的替代输出值会在Output 参数中输出。ErrorMode = 0 时,0.0 用作输出值。解决方案:确保参数 Input 是有效 REAL值(≠NaN,例如 16#7FFF_FFFF)。0004_0000 错误原因:输出值计算为 Output 参数生成了一个无效的REAL 值。对错误的响应:在 ErrorMode 变量中组态的替代输出值会在 Output参数中输出。解决方案:检查输出值计算中涉及到的所有变量:• Input• Gain• Lag•CycleTime.Value这些变量具有有效值。采用这一变量组合时,输出值计算失败。ErrorBits (DW#16#...)说明0008_0000错误原因:Lag 或 Gain tag 不含有效值,同时将执行输出值的计算 (Reset = FALSE)。对错误的响应:在ErrorMode 变量中组态的替代输出值会在 Output 参数中输出。解决方案:请确保 Gain 和 Lag变量的值满足以下条件:• -3.402823e+38 ≤ Gain ≤ 3.402823e+38• CycleTime.Value/2≤ Lag ≤ 3.402823e+38• 这些值是有效的 REAL 值(≠ NaN,如16#7FFF_FFFF)其它信息:请注意,以下情况下可能不满足 CycleTime.Value/2 ≤ Lag 的条件:•由于程序序列中的条件调用或有效断点等原因,两次调用 Filter_PT1 的时间间隔大于 2 * Lag。• Filter_PT1背景数据块的快照作为实际值加载到 CPU 中,且快照创建时间早于 2 * Lag之前。在这些情况下,会在周期时间自动测量期间检测到错误消息 ErrorBits = 16#0008_0000。0020_0000错误原因:首次调用指令时,用于初始化 Output 参数的变量(组态 StartMode)不含有效的 REAL值。对错误的响应:首次调用指令时,会在 Output 参数中输出在 ErrorMode变量中配置的替代输出值。对于后续调用,Filter_PT1 将从该替代输出值开始计算输出值。解决方案:确保用于初始化参数 Output的变量是有效 REAL 值(≠ NaN,例如 16#7FFF_FFFF)。设置 Reset = FALSE时,在 CPU 的操作状态从STOP 切换到 RUN 后首次调用指令时初始化会生效。用于初始化 Output 参数的变量取决于 StartMode:•StartMode = 1: SubstituteOutput• StartMode = 2: Output• StartMode =4:Input 与 Gain 之积0040_0000 错误原因: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_PT2 说明说明指令 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。