ErrorBits参数如果多个错误同时处于待决状态,将通过二进制加法显示 ErrorBits 的值。例如,显示ErrorBits =16#0000_0003 表示错误 16#0000_0001 和 16#0000_0002 同时处于待决状态。对于Filter_Universal,在 ErrorBits 参数中输出的错误分为两类:• 错误消息为 ErrorBits<16#0001_0000的错误尽管有错误,仍可以计算输出值.• 错误消息为 ErrorBits ≥16#0001_0000的错误。该错误会阻止输出值的计算。将输出替代输出值。错误消息为 ErrorBits <16#0001_0000 的错误如果有一个或多个错误消息为 ErrorBits < 16#0001_0000的错误处于未决状态,则Filter_Universal 的响应如下:• 即使存在此类错误,输出值也会通过如下方式确定:– 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 参数:ErrorBits ≥ 16#0001_0000 且 Reset =FALSE 时,替代输出值限制为其输出。这种情况下,请根据变量ErrorMode: 的设定值检查以下参数:• Input•SubstituteOutputReset = TRUE 时,检查 SubstituteOutput 参数。错误消息为ErrorBits ≥ 16#0001_0000 的错误如果有一个或多个错误消息为 ErrorBits ≥ 16#0001_0000的错误处于未决状态,则Filter_Universal 的响应如下:• 无法按预期确定输出值。将输出替代输出值。• 输出参数Error 已置位。• 使能输出 ENO 设为 FALSE。一旦不再有任何错误消息为 ErrorBits ≥ 16#0001_0000的错误,Filter_Universal 的响应如下:• 输出值会通过如下方式确定:– Reset = FALSE时,通过滤波器算法计算输出值– 当 Reset = TRUE 时,通过 SubstituteOutput 的输出• 使能输出 ENO设为 TRUE。504PID 控制功能手册, 11/2023, A5E35300232-AG指令10.12Filter_Universal不再有任何错误时,会立即删除输出参数Error。ErrorBits(DW#16#...)描述错误原因:用作输出值的 SubstituteOutput参数或另一变量不含有效的 REAL 值。对错误的响应:输出设为 0.0。解决方案:确保用作输出值的变量是有效 REAL值(≠NaN,例如 16#7FFF_FFFF)。用作输出值的变量取决于 Reset和 ErrorMode:ResetErrorMode 输出值FALSE 0 InputFALSE 1 SubstituteOutput0001_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• Frequency• Bandwidth• Type•Characteristic• Order•CycleTime.Value这些变量具有有效值。采用这一变量组合时,输出值计算失败。0008_0000错误原因:执行输出值计算时,一个或多个滤波参数的值无效 (Reset = FALSE)。对错误的响应:在 ErrorMode变量中组态的替代输出值会在 Output 参数中输出。解决方案:确保滤波参数值满足以下条件:• 0.0 < Frequency< 0.5 / CycleTime.Value• 0.0 ≤ Bandwidth < 0.5 /CycleTime.Value - Frequency• 0 ≤ Type ≤ 3• 0 ≤ Characteristic ≤ 2•0 ≤ Order ≤ 10505指令10.12 Filter_UniversalPID 控制功能手册, 11/2023,A5E35300232-AGErrorBits(DW#16#...)描述0010_0000 错误原因:周期时间自动检测失败的原因是Filter_Universal 不是在循环中断 OB 中调用的。对错误的响应:在 ErrorMode 变量中组态的替代输出值会在Output 参数中输出。解决方案:确保 Filter_Universal 是在循环中断 OB 中调用的。其它信息:可以通过设置变量CycleTime.EnableDetection = FALSE 禁用周期时间自动检测。然后需要在变量CycleTime.Value中手动指定周期时间。如果在循环中断 OB 的外部调用Filter_Universal,会对滤波器行为产生不利影响,因为在这种情况下实际周期时间并不恒定。0020_0000错误原因:首次调用指令时,用于初始化 Output 参数的变量(组态 StartMode)不含有效的 REAL值。对错误的响应:首次调用指令时,会在 Output 参数中输出在 ErrorMode变量中配置的替代输出值。对于后续调用,Filter_Universal将从该替代输出值开始计算输出值。解决方案:确保用于初始化参数“输出”的变量是有效 REAL 值(≠ NaN,例如16#7FFF_FFFF)。设置 Reset = FALSE时,在 CPU 的操作状态从 STOP 切换到 RUN后首次调用指令时初始化会生效。用于初始化 Output 参数的变量取决于 StartMode:• StartMode = 1:SubstituteOutput• StartMode = 2: Output0040_0000错误原因:CycleTime.Value 变量不含有效值,同时将执行输出值的计算 (Reset = FALSE)。对错误的响应:在ErrorMode 变量中组态的替代输出值会在 Output 参数中输出。解决方案:请确保满足以下条件:• 0.0 <CycleTime.Value ≤ 3.402823e+38• CycleTime.Value 是有效的 REAL 值(≠NaN,例如 16#7FFF_FFFF)其它信息:要自动计算 CycleTime.Value 变量的值,请将CycleTime.EnableDetection 变量设为 TRUE。0080_0000错误原因:周期时间自动检测期间发生内部错误。对错误的响应:在 ErrorMode 变量中组态的替代输出值会在 Output参数中输出。解决方案:确保是在循环中断 OB 中调用的 Filter_Universal。如果错误继续出现,请联系 SIMATIC客户支持。其它信息:可以通过设置变量 CycleTime.EnableDetection = FALSE来禁用周期时间自动检测。然后需要在变量CycleTime.Value 中手动指定周期时间。