RampFunction 输入参数参数 数据类型 默认值 说明InputREAL 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,就会计算输出值。
参数 数据类型 默认值说明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 参数 (页 412)显示了处于未决状态的错误消息。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 输出值的下限允许的值范围:<UpperLimit411指令10.7 RampFunctionPID 控制功能手册, 11/2022,A5E35300232-AF变量 数据类型 默认值 说明ErrorMode 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 = 已激活ErrorBits 参数如果多个错误处于待决状态,将通过二进制加法显示 ErrorBits的值。例如,显示ErrorBits = 16#0000_0003 表示错误 16#0000_0001 和 16#0000_0002处于待决状态。对于 RampFunction,在 ErrorBits 参数中输出的错误分为两类:• 错误消息为 ErrorBits< 16#0001_0000 的错误• 错误消息为 ErrorBits ≥ 16#0001_0000 的错误错误消息为ErrorBits < 16#0001_0000 的错误如果有一个或多个错误消息为 ErrorBits <16#0001_0000 的错误处于未决状态,则RampFunction 的响应如下:•存在此类错误,输出值也会通过如下方式确定:– 当 Reset = FALSE 时,通过输出值计算– 当 Reset = TRUE时,通过 SubstituteOutput 的输出• 输出参数 Error 已置位。• 使能输出 ENO不变。不再有任何错误时,会立即删除输出参数 Error。错误原因:当计算输出值时 (Reset =FALSE),周期时间的测量会得出无效值。对错误的响应:如果已测量周期时间的有效值,则 RampFunction 可根据CycleTime.Value 变量的上一个值计算输出值。如果先前没有测量到周期时间的有效值,则 RampFunction 仍会在Output 参数中输出通过 StartMode 变量组态的输出值。错误消息为 ErrorBits ≥ 16#0001_0000的错误如果有一个或多个错误消息为 ErrorBits ≥ 16#0001_0000 的错误处于未决状态,则RampFunction的响应如下:• 无法按预期确定输出值。将输出替代输出值。• 输出参数 Error 已置位。• 使能输出 ENO 设为 FALSE。•只要变量 LowerLimit 和 UpperLimit 含有效值,输出值限制就可保持有效。•上升速度限制不再有效。输出值的跳转可能在以下情况之一时发生:– 检测到错误时,RampFunction从已计算的输出值切换到替代输出值。是否发生跳变,取决于变量 ErrorMode 的值。–当替代输出值有效时,可对其进行更改。一旦不再有任何错误消息为 ErrorBits ≥ 16#0001_0000的错误,RampFunction 的响应如下:• 输出值会通过如下方式确定:– 当 Reset = FALSE 时,通过输出值计算–当 Reset = TRUE 时,通过 SubstituteOutput 的输出• 使能输出 ENO 设为TRUE。不再有任何错误时,会立即删除输出参数 Error。ErrorBits (DW#16#...)说明错误原因:用作输出值的SubstituteOutput 参数或另一变量不含有效的 REAL 值。对错误的响应:输出值设为 0.0,并通过变量LowerLimit 和 UpperLimit 进行限制。计算输出值时,Input 参数不含有效 REAL 值 (Reset =FALSE)。对错误的响应:替代输出值以 Output 参数输出,该参数以 ErrorMode 变量组态并受变量 UpperLimit和 LowerLimit 限制。ErrorMode = 0 时,0.0 用作输出值。输出值计算为 Output 参数生成了一个无效的REAL 值。对错误的响应:替代输出值以 Output 参数输出,该参数以 ErrorMode 变量组态并受变量 UpperLimit和 LowerLimit 限制。解决方案:检查输出值计算中涉及到的所有变量:• Input•PositiveRisingSlewRate• PositiveFallingSlewRate•NegativeRisingSlewRate• NegativeFallingSlewRate•CycleTime.Value这些变量具有有效值。采用这一变量组合时,输出值计算失败。LowerLimit 或 UpperLimit变量含有效值。对错误的响应:以下值以 Output 参数输出,具体取决于 Reset 参数:• Reset = FALSE在ErrorMode 变量中组态的替代输出值会在 Output 参数中输出。• Reset = TRUESubstituteOutput参数值以 Output 参数输出。两种情况下,Ouput 参数受限于 REAL数据类型的取值范围以下变量中至少有一个不含有效值,将执行输出值计算 (Reset = FALSE):1.PositiveRisingSlewRate2. PositiveFallingSlewRate3.NegativeRisingSlewRate4. NegativeFallingSlewRate对错误的响应:替代输出值以Output 参数输出,该参数以 ErrorMode 变量组态并受变量 UpperLimit 和 LowerLimit 限制。
首次调用指令时,用于初始化 Output 参数的变量(组态StartMode)不含有效的 REAL 值。对错误的响应:首次调用指令时,替代输出值以 Output 参数输出,该参数以ErrorMode 变量组态并受变量 LowerLimit 和UpperLimit 限制。对于后续调用,RampFunction将从该替代输出值开始计算输出值。解决方案:确保用于初始化参数 Output 的变量是有效 REAL 值(≠ NaN,例如16#7FFF_FFFF)。设置 Reset = FALSE时,在 CPU 的操作状态从 STOP 切换到 RUN后首次调用指令时初始化会生效。用于初始化 Output 参数的变量取决于 StartMode:• StartMode = 1:Substitute Output• StartMode = 2: OutputCycleTime.Value变量不含有效值,将执行输出值的计算 (Reset = FALSE)。对错误的响应:替代输出值以 Output 参数输出,该参数以ErrorMode 变量组态并受变量 UpperLimit 和 LowerLimit 限制。解决方案:请确保满足以下条件:• 0.0< CycleTime.Value ≤ 3.402823e+38• CycleTime.Value 是有效的 REAL 值(≠NaN,例如 16#7FFF_FFFF)其它信息:要自动计算 CycleTime.Value 变量的值,请将CycleTime.EnableMeasurement 变量设为 TRUE。