SIEMENS西门子 模拟式输入端模块 6ES7 134-6JD00-0CA1
在 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 设定值”(Only setpoints) 选项) 初始化值在 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 Output 0 Input 参数值 1 SubstituteOutput 参数值 2 上一个有效滤波器输出值 0.0,如果不存在有效滤波器输出值 默认设置 ErrorMode 不在 0...3 的范围内时使用。
以下内容还适用于 ErrorMode 变量的所有值: • 如果替代输出值不是一个有效的 REAL 值,则会将 0.0 作为输出值输出。 • 替代输出值将限制在数据类型 REAL 的取值范围内。只有这样才能在 Output 参数中输出 替代输出值。 • 只有在设置了 Reset = FALSE 参数的情况下 ErrorMode 变量才有效。如果设置了 Reset = TRUE 参数,则 SubstituteOutput 参数值将在 Output 参数中输出。 Error 参数指示是否存在错误处于未决状态。当错误不再处于未决状态时,Error 设为 FALSE。 ErrorBits 参数显示了已发生的错误。ErrorBits 具有保持性,仅通过 Reset 或 ErrorAck 参数的 上升沿来复位。 Filter_DT1 工作原理 (S7-1200, S7-1500) 复位响应 根据 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 变量的有效性。 带断点的周期时间的自动测量 当 Filter_DT1 的两次调用之间的断点有效时,周期时间的自动测量会得到两次调用之间经过 的实际时间。当一个断点有效时,CPU 处于 HOLD 操作状态。 说明 有效断点会延长 Filter_DT1 的两次调用之间的时间间隔。 两次调用之间的时间间隔越长,Output 参数中输出值的变化就越大。 此外,时间间隔较长可能导致无法满足 Lag ≥ CycleTime.Value/2 或 Td ≥ CycleTime.Value 的 条件。随后会检测到错误并指示错误消息 ErrorBits = 16#0008_0000 。 如果无需根据带有效断点的实际时间计算输出值,请按照下列步骤操作: • 通过设置 CycleTime.EnableMeasurement 变量 = FALSE 来禁用周期时间的自动测量。 • 在 CycleTime.Value 变量中手动输入周期时间。 输入参数 Filter_DT1 (S7-1200, S7-1500) 参数 数据类型 默认值 说明 Input REAL 0.0 输入值 Substitute Output REAL 0.0 在下列情况下,SubstituteOutput 用作替代输出值 • Reset = TRUE 或 • 如果存在通过错误消息 ErrorBits ≥ 16#0001_0000 指示的错误,则 无法正确计算输出值,且 ErrorMode 会配置为数值 1。参数 数据类型 默认值 说明 ErrorAck BOOL FALSE 删除错误消息 • 边沿 FALSE -> TRUE ErrorBits 已复位。 Reset BOOL FALSE 重新启动指令 • 边沿 FALSE -> TRUE ErrorBits 已复位。 • 只要 Reset 设为 TRUE,就会在输出中输出替代输出值 SubstituteOutput。 • 只要 Reset 设为 FALSE,就会计算输出值。 输出参数 Filter_DT1 (S7-1200, S7-1500) 参数 数据类型 默认值 说明 Output REAL 0.0 输出值 输出值具有保持性。 ErrorBits DWORD DW#16#0 ErrorBits 参数(页 5415)显示了处于未决状态的错误消息。ErrorBits 具 有保持性,会在 Reset 或 ErrorAck 出现上升沿时复位。 Error BOOL FALSE Error 设为 TRUE 时,至少有一个错误当前处于未决状态。 静态变量 Filter_DT1 (S7-1200, S7-1500) 变量 数据类型 默认值 说明 Td REAL 25.0 微分作用时间(以秒为单位) 允许的值范围:Td ≥ CycleTime.Value Lag REAL 5.0 滞后时间常量(以秒为单位) 允许的值范围:Lag ≥ CycleTime.Value/2 ErrorMode INT 2 选择出现错误后的替代输出值 • 0 = Input • 1 = SubstituteOutput • 2 = 上一个有效滤波器输出值 • 3 = 0.0 允许的值范围:0 到 3