RampFunction(S7-1200, S7-1500) 与 CPU 和 FW 的兼容性 (S7-1200, S7-1500) 下表列出了RampFunction 的各版本及其适用的 CPU:RampFunction 描述 (S7-1200, S7-1500) 描述RampFunction 指令限制信号的压摆率。RampFunction 在输入端输出信号跳变作为输出值的 斜坡函数。例如,在以下情况下,可以使用 RampFunction 防止信号跳变: •在控制器的设定值源和设定值输入之间,实现更平滑的响应,而不影响干扰响应。 •在控制器输出和执行器输入之间,保留执行器,例如带有齿轮的电机或过程。 可以为压摆率设置以下限制: • 在正值范围内增加压摆率 •在正值范围内降低压摆率 • 在负值范围内增加压摆率 • 在负值范围内降低压摆率 RampFunction指令将输出值限制为上限和下限。 当达到压摆率限制或者达到上限或下限时,RampFunction 将关联的输出位设置为TRUE。不再有任何错误时,会立即删除输出参数 Error。 ErrorBits (DW#16#...) 说明 0000_0000无错误处于未决状态。 0000_0001 错误原因和对错误的响应: Output 参数限制为 -3.402823e+38 或+3.402823e+38。 解决方案: 当 ErrorBits ≥ 16#0001_0000 且 Reset =FALSE 时,替代输出值限制为其输出。在这种情况 下,根据 ErrorMode 变量的设定值检查以下参数: • Input •SubstituteOutput Reset = TRUE 时,检查 SubstituteOutput 参数。错误消息为 ErrorBits ≥ 16#0001_0000 的错误 如果有一个或多个错误消息为 ErrorBits ≥16#0001_0000 的错误处于未决状态,则 SplitRange 的响应如下: • 无法按预期确定输出值。将输出替代输出值。 •输出参数 Error 已置位。 • 使能输出 ENO 设为 FALSE。 一旦不再有任何错误消息为 ErrorBits ≥16#0001_0000 的错误,SplitRange 的响应如下: • 输出值会通过如下方式确定: – 当Reset = FALSE 时,通过输出值计算 – 当 Reset = TRUE 时,通过SubstituteOutput 的输出 • 使能输出 ENO 设为 TRUE。
不再有任何错误时,会立即删除输出参数 Error。 ErrorBits (DW#16#...) 说明 0001_0000错误原因: 用作输出值的 SubstituteOutput 或 Input 参数不含有效的 REAL 值。 对错误的响应: 输出设为0.0。 解决方案: 确保用作输出值的参数是有效 REAL 值(≠ NaN,例如 16#7FFF_FFFF)。用作输出值的参数 取决于Reset 和 ErrorMode: Reset ErrorMode 输出值 FALSE 0 Input FALSE 1SubstituteOutput TRUE - SubstituteOutput说明 0002_0000 错误原因:计算输出值时,Input 参数不含有效 REAL 值 (Reset = FALSE)。 对错误的响应: 在 ErrorMode变量中组态的替代输出值会在 Output 参数中输出。 ErrorMode = 0 时,0.0 用作输出值。解决方案: 确保参数 Input 是有效 REAL 值(≠NaN,例如 16#7FFF_FFFF)。 0004_0000可能的错误原因: • Points 结构中有一个或多个变量的值无效。 • 输出值计算为 Output 参数生成了一个无效的 REAL值。 对错误的响应: 在 ErrorMode 变量中组态的替代输出值会在 Output 参数中输出。 解决方案: 请确保满足以下条件:1. Points.x1 < Points.x2 2. Points.x1、Points.y1、Points.x2 和Points.y2 处于允许的取值范围(-3.402823e+38 到 3.402823e+38)内 3.Points.x1、Points.y1、Points.x2 和 Points.y2 是有效 REAL 值(≠ NaN,例如16#7FFF_FFFF) 其它信息: 请注意,Points 结构中的所有变量均不具有保持性。每当 CPU 的操作状态从 STOP切换为 RUN 后,这些变量都将通过起始值进行初始化。调用该指令后,不会创建任何工艺对象。没有参数分配接口或调试接口可用。直接使用背景数据块分配 RampFunction 参数,并使用 CPU 或 HMI 中的用户程序监视表调试 RampFunction。 启动RampFunction 静态区域中的变量不具有保持性。每当 CPU 的操作状态从 STOP 切换为 RUN后,这些变量都将通过起始值进行初始化。 如果于在线模式下更改限值的实际值并且这些值将在 CPU 的操作状态发生切换后得以保留,则将这些值备份到数据块的起始值。 在 StartMode 变量中指定 Output 参数的初始化值。 发生以下事件后首次调用RampFunction 期间 • CPU 操作状态切换 或 • 执行“加载初始值作为实际值”(仅适用于“所有值”(Allvalues) 选项,不适用于“jinxian 设定值”(Only setpoints) 选项) 初始化值在 Output参数中输出。 对于后续调用,RampFunction 将根据输入值和压摆率限制,从该初始化值开始计算输出值。 下表列出了StartMode 变量与 Output 参数之间的相关性。CPU 操作状态发生转换后, Output 列的值将在 Output参数中输出。以下内容还适用于 StartMode 变量的所有值: • UpperLimit 和 LowerLimit变量的值有效时,初始化值将被限制在这些变量的取值范围内。 只有这样才能在 Output 参数中输出初始化值。 •如果初始化值不是有效的 REAL 值,则替代输出值 将在 Output 参数中输出。替代输出值 通过 ErrorMode变量组态。替代输出值受变量 UpperLimit 和 LowerLimit 的取值范围限 制。如果替代输出值也不是有效的 REAL值,则将在 Output 参数中输出 0.0。对于后续 调用,此指令将从该替代输出值开始计算输出值。 • 只有在首次调用指令时设置了Reset = FALSE 参数、没有具有错误消息 ErrorBits ≥ 16#0002_0000的错误处于未决状态的情况下,StartMode 变量才有效。如果设置了 Reset = TRUE 参数,则SubstituteOutput 参数值将在 Output 参数中输出。如果有错误消 息为 ErrorBits ≥16#0002_0000 的错误处于未决状态,则在 ErrorMode 变量中组态的替 代输出值会在 Output参数中输出。出现错误时的响应 RampFunction 指令会检测输出值计算过程中可能出现的各种错误。即便存在未决错误,也可在输出中输出此计算结果。如果某个错误影响了输出值计算的正确性,则将在输出中输出 一个替代输出值。 请在 ErrorMode变量中指定出现某个影响输出值计算正确性的错误时将输出的替代输出值。 下表列出了 ErrorMode 变量和 RampFunction在 Output 参数中输出的替代输出值之间的相 关性: ErrorMode Output 0 Input 参数值 1SubstituteOutput 参数值 2 Output 参数中的上一个有效输出值 3 0.0 4 LowerLimit 变量值 5UpperLimit 变量值 以下内容还适用于 ErrorMode 变量的所有值: • 如果替代输出值不是一个有效的 REAL值,则会将 0.0 作为输出值输出。 • UpperLimit 和 LowerLimit变量的值有效时,替代输出值将被限制在这些变量的取值范围 内。只有这样才能在 Output 参数中输出替代输出值。 • 只有在设置了Reset = FALSE 参数的情况下 ErrorMode 变量才有效。如果设置了 Reset = TRUE 参数,则SubstituteOutput 参数值将在 Output 参数中输出。 • 如果某个影响输出值计算正确性的错误处于未决状态,则RampFunction 将在 Output 参 数中将计算得出的输出值更改为替代输出值。可能会发生输出值的跳变,具体取决于ErrorMode 变量值。 Error 参数指示是否存在错误处于未决状态。当错误不再处于未决状态时,Error 设为 FALSE。ErrorBits 参数显示了已发生的错误。ErrorBits 具有保持性,仅通过 Reset 或 ErrorAck 参数的上升沿来复位。RampFunction 工作模式 (S7-1200, S7-1500) 限制压摆率可以为输入信号的压摆率组态四个限制。以下因素决定了当前有效的限制: • Output 参数中的输出值的符号 • 更改 Output参数中输出值juedui值的方向 下表列出了压摆率限制的有效变量(基于 Output 参数): 输出 有效变量 Output ≥ 0及 |Output| 上升沿 PositiveRisingSlewRate Output ≥ 0 及 |Output| 下降沿PositiveFallingSlewRate Output < 0 及 |Output| 上升沿NegativeRisingSlewRate Output < 0 及 |Output| 下降沿NegativeFallingSlewRate 压摆率限制juedui值规定了每秒输出值的Zui大变化。 示例:对于本示例,以下情况适用: • PositiveRisingSlewRate = 10.0 • RampFunction 的调用时间= 0.1 s • Input > Output ≥ 0.0 结果: 每次调用,输出值 Output 都增加1.0(每秒增加 10.0),直到达到 Input 参数的值。 要禁用一个或多个区域的压摆率限制,请将对应的变量设为值3.402823e+38。 如果输出值 Output 当前受压摆率限制,RampFunction 会将关联的输出位设为 TRUE: •PositiveRisingSlewRate_Active • PositiveFallingSlewRate_Active •NegativeRisingSlewRate_Active • NegativeFallingSlewRate_ActiveReset 参数设为 TRUE 时,压摆率限制将无效。这意味着 SubstituteOutput 参数的跳变会导致 Output参数的跳变。