RampFunction工作模式限制压摆率可以为输入信号的压摆率组态四个限制。以下因素决定了当前有效的限制:• Output 参数中的输出值的符号• 更改Output 参数中输出值juedui值的方向下表列出了压摆率限制的有效变量(基于 Output 参数):每次调用,输出值Output 都增加 1.0(每秒增加 10.0),直到达到 Input参数的值。要禁用一个或多个区域的压摆率限制,请将对应的变量设为值 3.402823e+38。如果输出值 Output当前受压摆率限制,RampFunction 会将关联的输出位设为 TRUE:•PositiveRisingSlewRate_Active• PositiveFallingSlewRate_Active•NegativeRisingSlewRate_Active• NegativeFallingSlewRate_ActiveReset参数设为 TRUE 时,压摆率限制将无效。这意味着 SubstituteOutput 参数的跳变会导致Output参数的跳变。每次调用时,RampFunction 都会检查是否满足变量PositiveRisingSlewRate、PositiveFallingSlewRate、NegativeRisingSlewRate和 NegativeFallingSlewRate 的以下条件:• 值处于允许的取值范围(大于 0.0 且小于等于3.402823e+38)内• 值为有效的 REAL 值(≠ NaN,如16#7FFF_FFFF)如果不满足其中的一个或多个条件,则替代输出值将在 Output 参数中输出。相应的错误消息在ErrorBits 参数中输出。限制输出值只要变量 UpperLimit 和 LowerLimit 的值有效,输出值 Output将始终受限于这些变量的取值范围。输出值 Output 当前受此取值范围限制时,RampFunction 会将关联的输出位设为TRUE:• UpperLimit_Active•LowerLimit_Active输出值限制的优先级高于压摆率限制。因此,如果需要遵循变量 UpperLimit 和LowerLimit 的限制,则变量 UpperLimit 和 LowerLimit 的更改将导致输出值 Output发生跳变。在这种情况下,不考虑压摆率的限制。示例:如果 UpperLimit 从 100.0 减到 80.0,而参数 Input 和Output 的值为 90.0,则输出值 Output跳变为 80.0。无论是否超出组态的压摆率限制,输出值 Output 都会跳变为80.0。每次调用时,RampFunction 都会检查是否满足以下条件:• LowerLimit < UpperLimit•LowerLimit 和 UpperLimit 处于允许的取值范围(-3.402823e+38 到 3.402823e+38)内•LowerLimit 和 UpperLimit 是有效的 REAL 值(≠ NaN,例如16#7FFF_FFFF)如果不满足其中的一个或多个条件,则替代输出值将在 Output 参数中输出。相应的错误消息在ErrorBits 参数中输出。此外,每次调用时,RampFunction 都会检查输出值 Output 是否具有允许的 REAL数据类型取值范围(-3.402823e+38 到 3.402823e+38)。如果输出值的计算产生无效 REAL 值,则替代输出值将在Output 参数中输出。在 ErrorMode 变量中组态替代输出值。使能行为 EN/ENO如果满足下列其中一个条件,则使能输出ENO 将设为 FALSE。• 使能输入 EN 设为 TRUE,且 Output 参数由出现错误消息 ErrorBits ≥16#0001_0000 时的替代输出值指定。• 使能输入 EN 设为 FALSE。否则,使能输出 ENO 设为TRUE。自动测量周期时间要计算输出值的压摆率,则 RampFunction 需要自上次调用 RampFunction以来经过的时间。周期时间默认自动测量,并且自第二次调用起在 CycleTime.Value变量中输出。RampFunction测量每次指令调用的周期时间,因此可用于非等时同步调用周期,例如 OB1中。请注意,周期时间自动测量期间的条件性调用指令、有效断点或加载快照作为实际值会延长周期时间值。如果周期时间测量未返回有效结果,RampFunction会使用上一个有效的周期时间计算当前输出值。此外,RampFunction 在 ErrorBits 参数中输出错误消息。通过设置CycleTime.EnableMeasurement 变量 = FALSE 来禁用周期时间的自动测量时,必须在CycleTime.Value 变量中手动输入周期时间。每次调用时,RampFunction 都会检查CycleTime.Value变量的有效性。带断点的周期时间的自动测量当 RampFunction的两次调用之间的断点有效时,周期时间的自动测量会得到两次调用之间经过的实际时间。当一个断点有效时,CPU 处于 HOLD操作状态。说明有效断点会延长 RampFunction 的两次调用之间的时间间隔。两次调用之间的时间间隔越长,Output参数中输出值的Zui大允许变化就越大。示例:对于本示例,以下情况适用:• PositiveRisingSlewRate = 10.0•RampFunction 的调用时间 = 0.1 s• Input > Output ≥0.0没有断点时的结果:每次调用,输出值 Output 都增加 1.0,直到达到 Input参数值。带十秒有效断点时的结果:下次调用时,输出值 Output 将增加100.0。如果无需根据带有效断点的实际时间计算输出值,请按照下列步骤操作:• 通过设置变量CycleTime.EnableMeasurement = FALSE 来禁用周期时间的自动测量。• 在CycleTime.Value 变量中手动输入周期时间。RampFunction 输出参数参数 数据类型 默认值 说明OutputREAL 0.0 输出值PositiveRisingSlewRate_ActiveBOOL FALSE 当PositiveRisingSlewRate_Active = TRUE 时,输出值当前受PositiveRisingSlewRate的限制。PositiveFallingSlewRate_ActiveBOOL FALSE 当PositiveFallingSlewRate_Active = TRUE 时,将通过PositiveFallingSlewRate限制当前的输出值。NegativeRisingSlewRate_ActiveBOOL FALSE 当NegativeRisingSlewRate_Active = TRUE 时,将通过NegativeRisingSlewRate限制当前的输出值。NegativeFallingSlewRate_ActiveBOOL FALSE 当NegativeFallingSlewRate_Active = TRUE 时,将通过NegativeFallingSlewRate限制当前的输出值。UpperLimit_Active BOOL FALSE 当 UpperLimit_Active = TRUE时,将通过 UpperLimit 限制当前的输出值。LowerLimit_Active BOOL FALSE 当LowerLimit_Active = TRUE 时,将通过 LowerLimit 限制当前的输出值。ErrorBits DWORDDW#16#0 ErrorBits 参数 (页 433)显示了处于未决状态的错误消息。ErrorBits 具有保持性,通过 Reset或 ErrorAck 的上升沿复位。Error BOOL FALSE 当 Error = TRUE时,至少有一个错误当前处于未决状态。RampFunction 静态变量变量 数据类型 默认值说明PositiveRisingSlewRate REAL 10.0在上升juedui值的正向范围内以每秒对输出值的上升速度进行限制PositiveRisingSlewRate =3.402823e+38 时,将禁用上升速度限制。允许的取值范围:> 0.0PositiveFallingSlewRateREAL 10.0 在下降juedui值的正向范围内以每秒对输出值的上升速度进行限制PositiveFallingSlewRate =3.402823e+38 时,将禁用上升速度限制。允许的取值范围:> 0.0NegativeRisingSlewRateREAL 10.0 在上升juedui值的负向范围内以每秒对输出值的上升速度进行限制NegativeRisingSlewRate =3.402823e+38 时,将禁用上升速度限制。允许的取值范围:>0.0NegativeFallingSlewRateREAL 10.0在下降juedui值的负向范围内以每秒对输出值的上升速度进行限制NegativeFallingSlewRate =3.402823e+38 时,将禁用上升速度限制。允许的取值范围:> 0.0UpperLimit REAL 100.0输出值的上限允许的值范围:> LowerLimitLowerLimit REAL 0.0 输出值的下限允许的值范围:<UpperLimitErrorMode INT 2 选择出现错误后的替代输出值• 0 = Input• 1 =SubstituteOutput• 2 = 上一个有效输出值• 3 = 0.0• 4 = LowerLimit• 5 =UpperLimit允许的值范围:0 到 5StartMode INT 2 选择指令首次调用的输出值• 0 = Input• 1 =SubstituteOutput• 2 = 上一个输出值• 3 = 0.0• 4 = LowerLimit• 5 =UpperLimit允许的值范围:0 到 5CycleTime AuxFct_CycleTime -周期时间数据CycleTime.Value REAL 0.1 指令两次调用之间的时间间隔以秒计允许的取值范围:>0.0CycleTime.EnableMeasurementBOOL TRUE 周期时间的自动测量• FALSE = 取消激活•TRUE = 已激活。