升温/持温 (RMPS)

此信息适用于
CompactLogix
5370、
ControlLogix
5570、
Compact GuardLogix
5370、
GuardLogix
5570、
Compact GuardLogix
5380、
CompactLogix
5380、
ControlLogix
5580、
GuardLogix
5580 和 ControlLogix 5590 控制器。
升温/持温 (RMPS) 指令提供一系列交替出现升温和持温周期的分段。
可用语言
梯形图
此指令不可用于梯形图逻辑中。
功能块
RMPS_FB_avail_v31
结构化文本
RMPS(RMPS_tag,RampValue,SoakValue,SoakTime);
操作数
功能块
操作数
类型
格式
说明
RMPS tag
RAMP_SOAK
结构
RMPS 结构
RampValue
REAL
数组
升温值数组。输入每个分段(0 到 NumberOfSegs-1)的升温值。升温值可采用时间(分钟)或速率(单位/分钟)两种形式输入。TimeRate 参数指示升温值的指定方式。如果升温值无效,指令会将 Status 中的相应位置位,并切换到“操作员手动”或“程序保持”模式。此数组的大小至少应与 NumberOfSegs 相当。
有效值 = 0.0 到最大正浮点值
SoakValue
REAL
数组
持温值数组。输入每个分段(0 到 NumberOfSegs-1)的持温值。此数组的大小至少应与 NumberOfSegs 相当。
有效值 = 任意浮点值
SoakTime
REAL
数组
持温时间数组。输入每个分段(0 到 NumberOfSegs-1)的持温时间。持温时间以分钟为单位输入。如果持温值无效,指令会将 Status 中的相应位置位,并切换到“操作员手动”或“程序保持”模式。此数组的大小至少应与 NumberOfSegs 相当。
有效值 = 0.0 到最大正浮点值
结构化文本
操作数
类型
格式
说明
RMPS tag
RAMP_SOAK
结构
RMPS 结构
RampValue
REAL
数组
升温值数组。输入每个分段(0 到 NumberOfSegs-1)的升温值。升温值可采用时间(分钟)或速率(单位/分钟)两种形式输入。TimeRate 参数指示升温值的指定方式。如果升温值无效,指令会将 Status 中的相应位置位,并切换到“操作员手动”或“程序保持”模式。此数组的大小至少应与 NumberOfSegs 相当。
有效值 = 0.0 到最大正浮点值
SoakValue
REAL
数组
持温值数组。输入每个分段(0 到 NumberOfSegs-1)的持温值。此数组的大小至少应与 NumberOfSegs 相当。
有效值 = 任意浮点值
SoakTime
REAL
数组
持温时间数组。输入每个分段(0 到 NumberOfSegs-1)的持温时间。持温时间以分钟为单位输入。如果持温值无效,指令会将 Status 中的相应位置位,并切换到“操作员手动”或“程序保持”模式。此数组的大小至少应与 NumberOfSegs 相当。
有效值 = 0.0 到最大正浮点值
有关结构化文本中表达式语法的详细信息,请参见
结构化文本语法
部分。
RMPS 结构
指定各指令的唯一 RMPS 结构。
输入参数
数据类型
说明
EnableIn
BOOL
启用输入。如果为假,指令不会执行,也不会更新输出。
默认值为真。
PV
REAL
将缩放后的模拟温度信号输入到指令中。
有效值 = 任意浮点值
默认值 = 0.0
PVFault
BOOL
PV 状况不良指示器。如果该值为真,指令将进入“程序保持”模式或“操作员手动”模式,并将 Status 中的相应位置位。
默认值为假。
NumberOfSegs
DINT
分段数。指定指令使用的升温/持温分段数。RampValue、SoakValue 和 SoakTime 数组的大小至少应等于 NumberOfSegs。如果该值无效,指令将进入“操作员手动”或“程序保持”模式,并将 Status 中的相应位置位。
有效值 = 1 到(RampValue、SoakValue 或 SoakTime 数组的最小大小)
默认值 = 1
ManHoldAftInit
BOOL
初始化后进入手动/保持模式。如果该值为真,升温/持温过程在初始化完成后将进入“操作员手动”或“程序保持”模式。否则,升温/持温过程在初始化完成后将保持其先前模式。
默认值为假。
CyclicSingle
BOOL
循环/单次执行。真值表示循环操作,假值表示单次操作。循环操作模式会不断重复升温/持温曲线。单次操作模式会执行一次升温/持温曲线,然后停止。
默认值为假。
TimeRate
BOOL
以时间/速率配置升温值。如果以达到持温温度的时间(分钟)输入 RampValue 参数值,则该值为真。如果以速率(单位/分钟)输入 RampValue 参数值,则该值为假。
默认值为假。
GuarRamp
BOOL
保证升温。如果该值为真且指令处于自动模式,则当 PV 与输出值之差大于 RampDeadband 时,暂停升温。
默认清零。
RampDeadband
REAL
保证升温的死区值。指定在启用 GuarRamp 的情况下 PV 与输出值之间允许的差值(工程单位)。如果该值无效,指令将设置 RampDeadband = 0.0 并置位 Status 中的相应位。
有效值 = 任何 Greater than or equal to 0.0 的浮点数
默认值 = 0.0
GuarSoak
BOOL
保证持温。如果该值为真且指令处于自动模式,则当 PV 与输出值之差大于 SoakDeadband 时,持温计时器清零。
默认值为假。
SoakDeadband
REAL
保证持温的死区值。指定在启用 GuarSoak 的情况下 PV 与输出值之间允许的差值(工程单位)。如果该值无效,指令将设置 SoakDeadband = 0.0 并置位 Status 中的相应位。
有效值 = 任何 Greater than or equal to 0.0 的浮点数
默认值 = 0.0
CurrentSegProg
DINT
程序控制模式下的当前分段。用户程序将请求的 CurrentSeg 值写入此输入。当升温/持温过程处于“程序手动”模式时,使用该值。如果该值无效,指令会将 Status 中的相应位置位。
有效值 = 0 到 NumberOfSegs-1
默认值 = 0
OutProg
REAL
程序控制模式下的输出。用户程序将请求的 Out 值写入此输入。当升温/持温过程处于“程序手动”模式时,使用该值。
有效值 = 任意浮点值
默认值 = 0.0
SoakTimeProg
REAL
程序控制模式下的持温时间。用户程序将请求的 SoakTimeLeft 值写入此输入。当升温/持温过程处于“程序手动”模式时,使用该值。如果该值无效,指令会将 Status 中的相应位置位。
有效值 = 0.0 到最大正浮点值
默认值 = 0.0
CurrentSegOper
DINT
操作员控制模式下的当前分段。操作员界面将请求的 CurrentSeg 值写入此输入。当升温/持温过程处于“操作员手动”模式时,使用该值。如果该值无效,指令会将 Status 中的相应位置位。
有效值 = 0 到 NumberOfSegs-1
默认值 = 0
OutOper
REAL
操作员控制模式下的输出。操作员界面将请求的 Out 值写入此输入。当升温/持温过程处于“操作员手动”模式时,使用该值。
有效值 = 任意浮点值
默认值 = 0.0
SoakTimeOper
REAL
操作员控制模式下的持温时间。操作员界面将请求的 SoakTimeLeft 值写入此输入。当升温/持温过程处于“操作员手动”模式时,使用该值。如果该值无效,指令会将 Status 中的相应位置位。
有效值 = 0.0 到最大正浮点值
默认值 = 0.0
ProgProgReq
BOOL
程序发出的程序控制请求。由用户程序设置为真可请求程序控制模式。如果 ProgOperReq 为真,则忽略该值。若此参数保持为真,并且 ProgOperReq 保持为假,会将指令锁定在程序控制模式。
默认值为假。
ProgOperReq
BOOL
程序发出的操作员控制请求。由用户程序设置为真可请求操作员控制模式。若将此参数保持为真,会将该指令锁定在操作员控制模式。
默认值为假。
ProgAutoReq
BOOL
程序自动模式请求。由用户程序设置为真可请求升温/持温过程进入自动模式。如果回路处于操作员控制模式、ProgManualReq 为真或者 ProgHoldReq 为真,则忽略该值。
默认值为假。
ProgManualReq
BOOL
程序手动模式请求。由用户程序设置为真可请求升温/持温过程进入手动模式。如果升温/持温过程处于操作员控制模式或者 ProgHoldReq 为真,则忽略该值。
默认值为假。
ProgHoldReq
BOOL
程序保持模式请求。由用户程序设置为真可请求停止升温/持温,同时不改变 Out、CurrentSeg 或 SoakTimeLeft 值。当从升温/持温获取设置点的 PID 回路退出级联时,该值也非常有用。操作员也可以通过将升温/持温设置为操作员手动模式来达到相同效果。
默认值为假。
OperProgReq
BOOL
操作员发出的程序控制请求。由操作员界面设置为真以请求程序控制模式。如果 ProgOperReq 为真,则忽略该值。指令将该输入设置为假。
默认值为假。
OperOperReq
BOOL
操作员发出的操作员控制请求。由操作员界面设置为真可请求操作员控制模式。如果 ProgProgReq 为真且 ProgOperReq 为假,则忽略该值。指令将该输入设置为假。
默认值为假。
OperAutoReq
BOOL
操作员自动模式请求。由操作员界面设置为真可请求升温/持温过程进入自动模式。如果回路处于程序控制模式或 OperManualReq 为真,则忽略该值。指令将该输入设置为假。
默认值为假。
OperManualReq
BOOL
操作员手动模式请求。由操作员界面设置为真可请求升温/持温过程进入手动模式。如果回路处于程序控制模式,则忽略该值。指令将该输入设置为假。
默认值为假。
Initialize
BOOL
初始化程序和操作员值。如果该值为真且处于手动模式,则指令会设置 CurrentSegProg = 0、CurrentSegOper = 0、SoakTimeProg = SoakTime[0] 以及 SoakTimeOper = SoakTime[0]。处于自动或保持模式时,将忽略 Initialize 值。指令会将此参数设置为假。
默认值为假。
ProgValueReset
BOOL
将程序控制值复位。如果该值为真,则指令会将 ProgProgReq、ProgOperReq、ProgAutoReq、ProgHoldReq 和 ProgManualReq 设置为假。
默认值为假。
输出参数
数据类型
说明
EnableOut
BOOL
指示指令是否处于启用状态。如果 Out 溢出,则设置为假。
Out
REAL
升温/持温指令的输出。
CurrentSeg
DINT
当前分段号。显示升温/持温循环的当前分段号。分段编号从 0 开始。
SoakTimeLeft
REAL
剩余持温时间。显示当前持温时间。
GuarRampOn
BOOL
保证升温状态。如果正在使用保证升温功能,并且升温因 PV 与输出值之差大于 RampDeadband 而暂停,则该值设置为真。
GuarSoakOn
BOOL
保证持温状态。如果正在使用保证持温功能,并且持温计时器因 PV 与输出值之差大于 SoakDeadband 而清零,则该值设置为真。
ProgOper
BOOL
程序/操作员控制指示器。在程序控制模式下为真。在操作员控制模式下为假。
Auto
BOOL
自动模式。当升温/持温处于“程序自动”模式或“操作员自动”模式时为真。
Manual
BOOL
手动模式。当升温/持温处于“程序手动”模式或“操作员手动”模式时为真。
Hold
BOOL
保持模式。当升温/持温处于程序“保持”模式时为真。
Status
DINT
功能块的状态。
InstructFault (Status.0)
BOOL
该指令检测到以下执行错误之一。这不是轻微或严重的控制器错误。检查其他状态位以确定发生的情况。
PVFaulted (Status.1)
BOOL
PV 状况不良。
NumberOfSegsInv (Status.2)
BOOL
NumberOfSegs 值无效,或与数组大小不兼容。
RampDeadbandInv (Status.3)
BOOL
RampDeadband 值无效。
SoakDeadbandInv (Status.4)
BOOL
SoakDeadband 值无效。
CurrSegProgInv (Status.5)
BOOL
CurrSegProg 值无效。
SoakTimeProgInv (Status.6)
BOOL
SoakTimeProg 值无效。
CurrSegOperInv (Status.7)
BOOL
CurrSegOper 值无效。
SoakTimeOperInv (Status.8)
BOOL
SoakTimeOper 值无效。
RampValueInv (Status.9)
BOOL
RampValue 值无效。
SoakTimeInv (Status.10)
BOOL
SoakTime 值无效。
说明
RMPS 指令通常用于在批量加热过程中提供温度曲线。该指令的输出通常作为 PID 回路设置点的输入。
一旦计算出的输出值无效(NAN 或 Plus or Minus sign INF),指令会设置 Out = 无效值,并将数学溢出状态标志置位。内部参数不会更新。在每次的后续扫描过程中,都会使用上一次扫描(输出有效)的内部参数计算输出。
监视 RMPS 指令
RMPS 指令有相应的操作员面板。
影响数学状态标志
严重/轻微故障
没有特定于此指令的故障。有关操作数相关的故障,请参阅 通用属性
执行
功能块
条件/状态
执行的操作
预扫描
EnableIn 和 EnableOut 位设置为假。
Tag.EnableIn 为假
EnableIn 和 EnableOut 位设置为假。
Tag.EnableIn 为真
EnableIn 和 EnableOut 位设置为真。
指令执行。
指令首次运行
将 CurrentSeg 清零。
将模式设置为操作员手动模式。
如果 SoakTime[0] 有效,则将 SoakTimeProg 和 SoakTimeOper 设置为 SoakTime[0]。
指令首次扫描
将所有操作员请求输入清零。
如果 ProgValueReset 为真,则将所有程序请求输入清零。
如果当前处于保持模式,则将操作员控制模式设置为手动模式。
后扫描
EnableIn 和 EnableOut 位设置为假。
结构化文本
条件/状态
执行的操作
预扫描
请参见“功能块”表中的“预扫描”行。
正常执行
请参见“功能块”表中的“Tag.EnableIn 为真”行。
后扫描
请参见“功能块”表中的“后扫描”行。
指令首次扫描后的初始模式
下表所示为基于程序请求输入所获得的最终控制模式。
首次扫描开始时的控制模式
ProgOperReq
ProgProgReq
ProgValueReset
FirstRun
首次扫描结束时的控制模式
操作员控制
不适用
程序控制
不适用
不适用
不适用
操作员控制
程序控制
不适用
操作员控制
不适用
不适用
操作员控制
操作员控制
不适用
程序控制
不适用
不适用
程序控制
程序控制
下表所示为基于“手动”、“自动”和“保持”模式请求所获得的最终控制模式。
首次扫描开始时的控制模式
操作员
自动
请求
操作员
手动
请求
程序
自动
请求
程序
手动
请求
程序
挂起
请求
手动
挂起
初始化后
程序
重置
首次
运行
首次扫描结束时的
控制模式
操作员控制
不适用
不适用
不适用
不适用
不适用
不适用
操作员当前模式
不适用
不适用
不适用
不适用
不适用
不适用
不适用
操作员手动模式
不适用
不适用
不适用
不适用
不适用
不适用
不适用
程序控制
不适用
不适用
不适用
程序当前模式
不适用
不适用
不适用
不适用
不适用
不适用
不适用
不适用
程序自动模式
不适用
不适用
不适用
不适用
程序手动模式
不适用
不适用
不适用
不适用
不适用
程序保持模式
不适用
不适用
不适用
不适用
不适用
不适用
不适用
示例
在此示例中,RMPS 指令将驱动 PIDE 指令的设置点。当 PIDE 指令处于“级联/比率”模式时,使用 RMPS 指令的输出作为设置点。如果要使用保证升温和/或保证持温功能,可选择将 PIDE 指令的 PV 送入 RMPS 指令的 PV 输入。
在此示例中,AutoclaveRSSoakValue、AutoclaveRSSoakTime 和 AutoclaveRSRampValue 数组均为包含 10 个元素的 REAL 数组,最多允许使用 10 段 RMPS 曲线。
功能块
RMPS_FB_ex_v31
在程序控制与操作员控制之间切换
RMPS 指令可以通过用户程序或操作员界面进行控制。可随时更改控制模式。
RMPS Switch between
(1) ProgOperReq 保持为真时,指令锁定为操作员控制模式。
(2) ProgProgReq 保持为真且 ProgOperReq 为假时,指令锁定为程序控制模式。
当 ProgAutoReq、ProgManualReq 和 ProgHoldReq 输入均为假时,如果从操作员控制转换到程序控制模式,将按如下规则确定模式:
如果转换前指令处于“操作员自动”模式,则转换为“程序自动”模式。
如果转换前指令处于“操作员手动”模式,则转换为“程序手动”模式。
当 OperAutoReq 和 OperManualReq 输入均为假时,如果从程序控制转换到操作员控制模式,将按如下规则确定模式:
如果转换前指令处于“程序自动”模式,则转换为“操作员自动”模式。
如果转换前指令处于“程序手动”或“程序保持”模式,则转换为“操作员手动”模式。
程序控制
下图所示为 RMPS 指令在程序控制模式下的工作情况。
RPMS_Program Control
(1) 在单次(非循环)执行过程中,如果要在完成一次升温/持温曲线后再次执行升温/持温曲线,必须将 ProgAutoReq 从假切换为真。
(2) 如果将指令配置为单次执行,则在自动模式下完成升温/持温曲线时,指令将转换为保持模式。
(3) 如果 PVFaulted 为真或以下任一输入无效,指令将进入保持模式:NumberOfSegs、CurrentSegProg 或 SoakTimeProg。
下表介绍各种可能的程序控制模式。
模式
说明
程序自动模式
在自动模式下,指令将按顺序执行升温/持温曲线。
程序手动模式
在手动模式下,由用户程序直接控制指令的 Out 输出。CurrentSegProg、SoakTimeProg 和 OutProg 输入将传送到 CurrentSeg、SoakTimeLeft 和 Out 输出。当指令进入自动模式时,升温/持温函数继续使用上次由用户程序输入的值。如果 CurrentSegProg 和 SoakTimeProg 无效,则不会传输到相应输出。
当 ProgValueReset 置位且指令不处于“程序手动”模式时,为“无扰动地”转换到手动模式,CurrentSegProg、SoakTimeProg 和 OutProg 输入会持续更新为当前的 CurrentSeg、SoakTimeLeft 和 Out 值。
程序保持模式
在保持模式下,指令的输出保持当前值不变。如果在此模式下通过将 ProgOperReq 置位来切换到操作员控制模式,指令将进入“操作员手动”模式。
操作员控制
下图所示为 RMPS 指令在操作员控制模式下的工作情况。
RPMS_Operator Control
(1) 如果将指令配置为单次执行,则在自动模式下完成升温/持温曲线时,指令将转换为手动模式。
(2) 如果 PVFaulted 为真或以下任一输入无效,指令将进入手动模式:NumberOfSegs、CurrentSegOper 或 SoakTimeOper。
下表介绍各种可能的操作员控制模式。
模式
说明
操作员自动模式
在自动模式下,指令将按顺序执行升温/持温曲线。
操作员手动模式
在手动模式下,由操作员直接控制指令的 Out 输出。CurrentSegOper、SoakTimeOper 和 OutOper 输入将传送到 CurrentSeg、SoakTimeLeft 和 Out 输出。当指令进入自动模式时,升温/持温函数继续使用上次由操作员输入的值。如果 CurrentSegOper 和 SoakTimeOper 无效,则不会传输到相应输出。
当指令不处于“操作员手动”模式时,为“无扰动地”转换到手动模式,CurrentSegOper、SoakTimeOper 和 OutOper 输入会持续更新为当前的 CurrentSeg、SoakTimeLeft 和 Out 值。
执行升温/持温曲线
下图说明 RMPS 指令执行升温/持温曲线的过程。
RPMS_executing ramp soak profile
(1) Out = SoakValue 时升温过程结束。如果在升温期间 Out > SoakValue,则将 Out 限定为 SoakValue。
(2) 当 Out 保持不变的时间达到当前分段的 SoakTime 所指定的时长时,持温过程结束。如果执行的分段并非最后一个分段,则 CurrentSeg 增加一。
(3) 最后一个设定分段的持温过程结束,指令配置为循环执行。指令设置 CurrentSeg = 0。
(4) 最后一个设定分段的持温过程结束,指令配置为单次执行。
(5) 返回自动模式时,指令将决定是否继续执行升温或持温。下一步动作取决于当前分段的 Out、SoakTimeLeft 和 SoakValue 值。如果当前分段的 Out=SoakValue 且 SoakTimeLeft =0,则表明当前分段完成,下一分段开始。
升温
在升温循环中,Out 将由前一分段的 SoakValue 值升温至当前分段的 SoakValue 值。升温经过的时间由 RampValue 参数定义。
如果 Out 值 < 当前分段的目标 SoakValue 值,则升温过程为正向。如果根据升温公式计算出的新 Out 值超过目标 SoakValue 值,则 Out 值将设置为目标 SoakValue 值。
如果 Out 值 > 当前分段的目标 SoakValue 值,则升温过程为负向。如果根据升温公式计算出的新 Out 值小于目标 SoakValue 值,则 Out 值将设置为目标 SoakValue 值。
每个分段都有相应的升温值。可选择以时间或速率为单位设定升温值。所有分段必须设定为相同的单位。下表介绍各个升温选项:
参数
说明
基于时间的升温
TimeRate 设置为真时,采用基于时间的升温(分钟)
将计算当前分段的变化率,并在 Out 值基础上相加或相减,直至 Out 值达到当前分段的持温值。在下面的公式中,DeltaT 是指自指令最后一次执行起经过的时间(分钟)。
RPMS time-based ramping
其中,RampStart 是当前分段开始时的 Out 值。
基于速率的升温
TimeRate 清零时,采用基于速率的升温(单位/分钟)
在 Out 值的基础上加上或减去设定的变化率,直至 Out 值达到当前分段的持温值。在下面的公式中,DeltaT 是指自指令最后一次执行起经过的时间(分钟)。
RPMS_rated based ramping
保证升温
将 GuarRamp 输入设置为真时,启用保证升温。启用后,指令将监视 Out 与 PV 之间的差值。如果该差值超过设定的 RampDeadband 值,则输出保持不变,直至 PV 与 Out 的差值进入死区范围。当 Out 值由于保证升温的作用而保持不变时,输出 GuarRampOn 将设置为真。
持温
持温过程是指在下一个升温-持温分段开始前块输出保持不变的时间段。在持温循环期间,输出会在进入下一分段之前的设定时间内保持为 SoakValue 值。持温期间的输出保持时间在 SoakTime 参数中设定。
每个分段都有对应的 SoakValue 和 SoakTime 值。当 Out 升温至当前分段的 SoakValue 值时,持温过程开始。SoakTimeLeft 值表示剩余的输出保持时间(分钟)。在升温期间,SoakTimeLeft 将设置为当前分段的 SoakTime 值。升温过程完成后,SoakTimeLeft 值开始减小,以反映当前分段的剩余时间(分钟)。经过 SoakTime 时间后,SoakTimeLeft = 0。
保证持温
将 GuarSoak 输入设置为真时,启用保证持温。启用后,指令将监视 Out 与 PV 之间的差值。如果该差值超过 SoakDeadband 值,将暂停持温循环的计时,同时将内部持温计时器清零。当 Out 与 PV 之间的差值重新进入死区范围内时,继续计时。当计时由于保证持温的作用而暂停时,输出 GuarSoakOn 将设置为真。
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal