内模控制 (IMC)

此信息适用于
CompactLogix
5370、
ControlLogix
5570、
Compact GuardLogix
5370、
GuardLogix
5570、
Compact GuardLogix
5380、
CompactLogix
5380、
ControlLogix
5580、
GuardLogix
5580 和 ControlLogix 5590 控制器。
内模控制 (IMC) 指令通过操纵单个控制变量输出来控制单个过程变量。该功能块执行一种算法,将实际误差信号与过程内部一阶加纯滞后模型的误差信号进行比较。在自动模式下,IMC 功能块基于 PV 与 SP 的偏差、内部模型和调谐来计算控制变量输出 (CV)。
可用语言
梯形图
此指令不可用于梯形图中。
功能块
IMC_FB_avail_v31
结构化文本
IMC(IMC_tag);
操作数
功能块
操作数:
类型:
格式
说明:
IMC 标签
INTERNAL MODEL CONTROL
结构
IMC 结构
结构化文本
操作数:
类型:
格式
说明:
IMC 标签
INTERNAL MODEL CONTROL
结构
IMC 结构
有关结构化文本中表达式语法的详细信息,请参见
结构化文本语法
部分。
重要提示: 只要 APC 块检测到增量时间 (DeltaT) 发生变化,便执行 ModelInit。因此,这些块应该仅在 DeltaT 为常量的一种 TimingMode 下运行。
  • TimingMode = 0(周期性),在周期性任务中执行这些功能块时
  • TimingMode = 1(过采样)
无论在哪种情况下,如果周期性任务的时间动态变化,或者 OversampleDT 动态变化,该块便执行 ModelInit。
由于 DeltaT 中存在抖动,因此不推荐使用下面的 TimingMode 设置:
  • TimingMode = 0(周期性),在连续任务或事件任务中执行这些功能块时
  • TimingMode = 2(实时采样)
结构
输入参数
数据类型
说明
有效值和默认值
EnableIn
BOOL
启用输入。如果为“假”,则功能块不执行,输出也不会更新。
默认值 = 真
PV
REAL
经过标定的过程变量输入。该值通常从模拟输入模块中读取。
有效值 = 任意浮点值
默认值 = 0.0
PVFault
BOOL
PV 不良状况指示器。如果从模拟输入读取 PV,则 PVFault 通常由模拟输入故障状态控制。
如果 PVFault 为“真”,则表示输入模块发生错误,并且会将 Status 中的相应位置位。
默认值 = 假
假 = 状况良好
PVUEMax
REAL
PV 的最大标定值。对应于过程变量的 100% 量程的 PV 和 SP 的值。如果 PVEUMax ≤ PVEUMin,则将 Status 中的相应位置位。
有效值 = PVEUMin < PVEUMax ≤ 最大正浮点值
默认值 = 100.0
PVUEMin
REAL
PV 的最小标定值。对应于过程变量的 0% 量程的 PV 和 SP 的值。如果 PVEUMax ≤ PVEUMin,则将 Status 中的相应位置位。
有效值 = 最大负浮点值 ≤ PVEUMin < PVEUMax
默认值 = 0.0
SPProg
REAL
SP 程序值,以 PV 单位标定。在程序控制模式下,SP 设置为此值。
如果 SPProg 或 SPOper 的值 < SPLLimit 或 > SPHLimit,则将 Status 中的相应位置位,并限制 SP 的值。
有效值 = SPLLimit 到 SPHLimit
默认值 = 0.0
SPOper
REAL
SP 操作员值,以 PV 单位标定。在操作员控制模式下,SP 设置为此值。
如果 SPProg 或 SPOper 的值 < SPLLimit 或 > SPHLimit,则将 Status 中的相应位置位,并限制 SP 的值。
有效值 = SPLLimit 到 SPHLimit
默认值 = 0.0
SPCascade
REAL
SP 级联值,以 PV 单位标定。如果级联/比率模式和 UseRatio 为 FALSE,则 SP 设置为此值,这通常是主回路的 CVEU。如果 CascadeRatio 模式和 UseRatio 为 TRUE,则 SP 设置为此值乘以 Ratio。
如果 SPCascade 值 < SPLLimit 或 > SPHLimit,则会将 Status 中的相应位置位,并限制 SP 的值。
有效值 = SPLLimit 到 SPHLimit
默认值 = 0.0
SPHLimit
REAL
SP 上限值,以 PV 单位标定。
如果 SPHLimit < SPLLimit 或 SPHLimit > PVEUMax,则将 Status 中的相应位置位。
有效值 = SPLLimit 到 PVEUMax
默认值 = 100.0
SPLLimit
REAL
SP 下限值,以 PV 单位标定。
如果 SPLLimit < PVEUMin 或 SPHLimit < SPLLimit,则将 Status 中的相应位置位,并使用 SPLLimit 的值限制 SP。
有效值 = PVEUMin 到 SPHLimit
默认值 = 0.0
UseRatio
BOOL
允许比率控制。设置为 TRUE 时,可在 CascadeRatio 模式下启用比率控制。
默认值 = 假
RatioProg
REAL
程序控制模式下的比率乘数,无单位(例如标量)。在程序控制模式下,Ratio 和 RatioOper 设置为此值。
如果 RatioProg 或 RatioOper < RatioLLimit 或 > RatioHLimit,则会将 Status 中的相应位置位,并限制 Ratio 值。
有效值 = RatioLLimit 到 RatioHLimit
默认值 = 1.0
RatioOper
REAL
操作员控制模式下的比率乘数,无单位(例如标量)。在操作员控制模式下,Ratio 设置为此值。
如果 RatioProg 或 RatioOper < RatioLLimit 或 > RatioHLimit,则会将 Status 中的相应位置位,并限制 Ratio 值。
有效值 = RatioLLimit 到 RatioHLimit
默认值 = 1.0
RatioHLimit
REAL
比率上限值,无单位(例如标量)。限制从 RatioProg 或 RatioOper 获取的 Ratio 值。
如果 RatioLLimit < 0,则会将 Status 中的相应位置位,并将值限定为零。如果 RatioHLimit < RatioLLimit,则会将 Status 中的相应位置位,并使用 RatioLLimit 值限制 Ratio 值。
有效值 = RatioLLimit 到最大正浮点值
默认值 = 1.0
RatioLLimit
REAL
比率下限值,无单位(例如标量)。限制从 RatioProg 或 RatioOper 获取的 Ratio 值。
如果 RatioLLimit < 0,则会将 Status 中的相应位置位,并将值限定为零。如果 RatioHLimit < RatioLLimit,则会将 Status 中的相应位置位,并使用 RatioLLimit 值限制 Ratio 值。
有效值 = 0.0 到 RatioHLimit
默认值 = 1.0
CVFault
BOOL
控制变量不良状况指示器。如果 CVEU 控制模拟输出,则 CVFault 通常来自于模拟输出的故障状态。
如果 CVFault 为真,则表示输出模块存在错误,会将 Status 中的相应位置位。
默认值 = 假
假 = 状况良好
CVInitReq
BOOL
CV 初始化请求。当为真时,会将 CVEU 设置为 CVInitValue 的值。此信号通常由受 CVEU 控制的模拟输出模块的 In Hold 状态控制,或者来自次级 IMC 回路的 InitPrimary 输出。
默认值 = 假
CVInitValue
REAL
CVEU 初始化值,以 CVEU 单位标定。当 CVInitializing 为真时,将 CVEU 设置为 CVInitValue 且 CV 等于相应的百分比值。CVInitValue 通常来自于受 CVEU 控制的模拟输出的反馈,或者次级回路的设置点。当 CVFaulted 或 CVEUSpanInv 为真(不良)时,会禁用功能块初始化。
有效值 = 任意浮点值
默认值 = 0.0
CVProg
REAL
程序-手动模式下的 CV 值。在程序控制和手动模式下,CV 设置为此值。
如果 CVProg 或 CVOper 的值 < 0 或 > 100,或者当 CVManLimiting 为真时 < CVLLimit 或 > CVHLimit,则将 Status 中的相应位置位,并限制 CV 的值。
有效值 = 0.0 至 100.0
默认值 = 0.0
CVOper
REAL
操作员-手动模式下的 CV 值。在操作员控制和手动模式下,CV 设置为此值。如果未处于操作员-手动模式,则在每个功能块执行结束时,将 CVOper 设置为 CV 值。
如果 CVProg 或 CVOper 的值 < 0 或 > 100,或者当 CVManLimiting 为真时 < CVLLimit 或 > CVHLimit,则将 Status 中的相应位置位,并限制 CV 的值。
有效值 = 0.0 至 100.0
默认值 = 0.0
CVOverrideValue
REAL
超控模式下的 CV 值。在超控模式下,CV 设置为此值。
此值应对应于 IMC 回路的安全状态输出。如果 CVOverrideValue 的值 < 0 或 >100,则将 Status 中的相应位置位,并限制 CV 的值。
有效值 = 0.0 至 100.0
默认值 = 0.0
CVTrackValue
REAL
CV 跟踪值。当启用 CVTrackReq 且 IMC 功能块处于手动模式时,将忽略 CVTrackValue 值,IMC 内部模型将以 CVOper 或 CVProg 值更新其历史数据。当启用 CVTrackReq 且 IMC 功能块处于自动模式时,内部模型将根据 CVTrackValue 的值更新其历史数据。这种情况下,CV 值将可以正常变化,就如同 IMC 功能块仍在控制该过程。在多回路选择方案中,如果希望 IMC 功能块跟随不同控制算法的输出,则该功能将非常有用,可将控制算法的输出连接到 CVTrackValue。
有效值 = 0.0 至 100.0
默认值 = 0.0
CVManLimiting
BOOL
在手动模式下限制 CV 的请求。在手动模式下,如果 CVManLimiting 为真,则 CV 由 CVHLimit 和 CVLLimit 值限制。
默认值 = 假
CVEUMax
REAL
CVEU 的最大值。对应于 100% CV 的 CVEU 值。如果 CVEUMax = CVEUMin,则会将 Status 中的相应位置位。
有效值 = 任意浮点值
默认值 = 100.0
CVEUMin
REAL
CVEU 的最小值。对应于 0% CV 的 CVEU 值。如果 CVEUMax = CVEUMin,则会将 Status 中的相应位置位。
有效值 = 任意浮点值
默认值 = 0.0
CVHLimit
REAL
CV 上限值。该值用于设置 CVHAlarm 输出。当处于自动或级联/比率模式,或者处于手动模式并且 CVManLimiting 设置为真时,该值也用于对 CV 值进行限制。
如果 CVLLimit < 0、CVHLimit > 100 或 CVHLimit < CVLLimit,则将 Status 中的相应位置位。如果 CVHLimit < CVLLimit,则使用 CVLLimit 值限制 CV 值。
有效值 = CVLLimit < CVHLimit ≤ 100.0
默认值 = 100.0
CVLLimit
REAL
CV 下限值。该值用于设置 CVLAlarm 输出。当处于自动或级联/比率模式,或者处于手动模式并且 CVManLimiting 设置为真时,该值也用于对 CV 值进行限制。
如果 CVLLimit < 0、CVHLimit > 100 或 CVHLimit < CVLLimit,则将 Status 中的相应位置位。
如果 CVHLimit < CVLLimit,则使用 CVLLimit 值限制 CV 值。
有效值 = 0.0 ≤ CVLLimit < CVHLimit
默认值 = 0.0
CVROCPosLimit
REAL
CV 递增变化率限值(百分比/秒)。
仅当处于自动或 CascadeRatio 模式,或者处于手动模式并且 CVManLimiting 为 TRUE 时,才会使用变化率限值。
该值为零值时,禁用 CV ROC 限制。
如果 CVROCPOSLimit 的值 < 0,则会将 Status 中的相应位置位,并禁用 CV ROC 限制。
有效值 = 0.0 到最大正浮点值
默认值 = 0.0
CVROCNegLimit
REAL
CV 递减变化率限值(百分比/秒)。
仅当处于自动或 CascadeRatio 模式,或者处于手动模式并且 CVManLimiting 为 TRUE 时,才会使用变化率限值。
该值为零值时,禁用 CV ROC 限制。
如果 CVROCNegLimit 的值 < 0,则会将 Status 中的相应位置位,并禁用 CV ROC 限制。
有效值 = 0.0 到最大正浮点值
默认值 = 0.0
HandFB
REAL
CV HandFeedback 值。当处于手动模式下且 HandFBFault 为假(状况良好)时,将 CV 设置为该值。该值通常来自现场安装的手控/自动站的输出,用于在手控模式下进行无扰动转换。
如果 HandFB 值 < 0 或 > 100,指令将 Status 中的相应位置位,并限制 CV 的值。
有效值 = 0.0 至 100.0
默认值 = 0.0
HandFBFault
BOOL
HandFB 值不良状况指示器。如果从模拟输入读取 HandFB 值,则 HandFBFault 通常由模拟输入通道的状态控制。
HandFBFault 为真时,指示该输入模块存在错误,并且会将 Status 中的相应位置位。
默认值 = 假
假 = 状况良好
WindupHIn
BOOL
积分饱和上限请求。该值为真时,不允许 CV 值增大。该信号通常来自次级回路的 WindupHOut 输出。
默认值 = 假
WinduplIn
BOOL
积分饱和下限请求。该值为真时,不允许 CV 值减小。该信号通常来自次级回路的 WindupLOut 输出。
默认值 = 假
GainEUSpan
BOOL
ModelGain 单位(EU 或量程百分比)。
CV ModelGain 单位(EU 或量程百分比)。置位时将 ModelGain 表示为 EU,复位时将 ModelGain 表示为量程百分数。
默认值 = 假
真 = EU 形式的增益
FALSE = 量程百分比形式的增益
ProcessGainSign
BOOL
仅用于自动调谐。过程增益符号 (Delta PV/Delta CV)。
置位指示负过程增益(输出增大会导致 PV 减小)。
复位指示正过程增益(输出增大会导致 PV 增大)。
默认值 = 假
ProcessType
DINT
过程类型选项(1 = 积分,0 = 非积分)
默认值 = 0
ModelGain
REAL
内模增益参数。根据过程方向输入正增益或负增益。
有效值 = 最大负浮点值 −> 最大正浮点值
默认值 = 0.0
ModelTC
REAL
内模时间常数(秒)。
有效值 = 0.0 到最大正浮点值
默认值 = 0.0
ModelDT
REAL
内模死区时间(秒)。
有效值 = 0.0 到最大正浮点值
默认值 = 0.0
RespTC
REAL
用于确定控制变量操作速度的调谐参数(秒)。
有效值 = 0.0 到最大正浮点值
默认值 = 0.0
PVTracking
BOOL
SP 跟踪 PV 请求。设置为真可以使 SP 跟踪 PV。级联/比率模式或自动模式下忽略该值。
默认值 = 假
CVTrackReq
BOOL
CV 跟踪请求。若设置为真,则在自动调谐设置为“关”时启用 CV 跟踪。手控和超控模式下忽略该参数。
默认值 = 假
AllowCasRat
BOOL
允许级联/比率模式。设置为 TRUE 时,允许通过 ProgCasRatReq 或 OperCasRatReq 选择 CascadeRatio 模式。
默认值 = 假
ManualAfterInit
BOOL
初始化后进入手动模式的请求。
该值为真时,如果 CVInitializing 设置为真,除非当前模式为超控或手控模式,否则功能块将切换为手动模式。
当 ManualAfterInit 为 FALSE 时,功能块的模式保持不变。
默认值 = 假
ProgProgReq
BOOL
程序发出的程序控制请求。
由用户程序设置为真请求程序控制模式。如果 ProgOperReq 为真,则忽略该值。如果该值保持为真且 ProgOperReq 为假,则可将功能块锁定在程序控制模式。
当 ProgValueReset 为真时,功能块将输入复位(假)。
默认值 = 假
ProgOperReq
BOOL
程序发出的操作员控制请求。由用户程序设置为真可请求操作员控制模式。如果该值保持为真,则可将功能块锁定在操作员控制模式。当 ProgValueReset 为真时,功能块将输入复位(假)。
默认值 = 假
ProgCasRatReq
BOOL
程序-级联/比率模式请求。由用户程序设置为真可请求级联/比率模式。当 ProgValueReset 为真时,功能块将输入复位(假)。
默认值 = 假
ProgAutoReq
BOOL
程序-自动模式请求。由用户程序设置为真可请求自动模式。当 ProgValueReset 为真时,功能块将输入复位(假)。
默认值 = 假
ProgManualReq
BOOL
程序-手动模式请求。由用户程序设置为真可请求手动模式。当 ProgValueReset 为真时,功能块将输入复位(假)。
默认值 = 假
ProgOverrideReq
BOOL
程序-超控模式请求。由用户程序设置为真可请求超控模式。当 ProgValueReset 为真时,功能块将输入复位(假)。
默认值 = 假
ProgHandReq
BOOL
程序-手控模式请求。由用户程序设置为真可请求手控模式。该值通常以数字输入的形式从手控/自动工作站读取。当 ProgValueReset 为真时,功能块将输入复位(假)。
默认值 = 假
OperProgReq
BOOL
操作员发出的程序控制请求。由操作员界面设置为 TRUE 可请求程序控制模式。功能块将此参数复位(假)。
默认值 = 假
OperOperReq
操作员发出的操作员控制请求。由操作员界面设置为真可请求操作员控制模式。功能块将此参数复位(假)。
默认值 = 假
OperCasRatReq
BOOL
操作员-级联/比率模式请求。由操作员界面设置为 TRUE 可请求 CascadeRatio 模式。功能块将此参数复位(假)。
默认值 = 假
OperAutoReq
BOOL
操作员-自动模式请求。由操作员界面设置为真可请求自动模式。功能块将此参数复位(假)。
默认值 = 假
OperManualReq
BOOL
操作员-手动模式请求。由操作员界面设置为真可请求手动模式。功能块将此参数复位(假)。
默认值 = 假
ProgValueReset
BOOL
将程序控制值复位。该值为真时,Prog_xxx_Req 输入复位(假)。
该值为真且处于程序控制模式下时,将 SPProg 设置为等于 SP,将 CVProg 设置为等于 CV。
当 ProgValueReset 为真时,功能块将此参数复位(假)。
默认值 = 假
TimingMode
DINT
选择时基执行模式。
值/说明
0 = 周期性模式
1 = 过采样模式
2 = 实时采样模式
有关时序模式的更多信息,请参见“功能块属性”部分。
有效值 = 0 至 2
默认值 = 0
OverSampleDT
REAL
过采样模式的执行时间。
有效值 = 0 到 TON_Timer 经过的最长时间(4194.303 秒)
默认值 = 0
RTSTime
DINT
实时采样模式的模块更新周期。
有效值 = 1 至 32,767
1 次计数 = 1 ms
RTSTimeStamp
DINT
实时采样模式的模块时戳值。
有效值 = 0 至 32,767
(从 32,767 跳回到 0)
1 次计数 = 1 ms
PVTuneLimit
REAL
以 PV 单位标定的 PV 调谐限值。当自动调谐正在运行并且预测 PV 值超过此限值时,调谐过程将中止。
范围:任意浮点值
默认值 = 0
AtuneTimeLimit
REAL
CV 发生阶跃变化后完成自动调谐所需的最长时间。自动调谐时间超出此时间时,调谐将会中止。
有效值范围:任意 > 0 的浮点值。
默认值 = 60 分钟
NoiseLevel
DINT
PV 的噪声级别估计值,在调谐期间可对该值进行补偿。
可选项包括:0 = 低、1 = 中、2 = 高
范围:0 至 2
默认值 = 1
CVStepSize
REAL
调谐阶跃测试所用的 CV 步长(百分比)。步长将直接加到 CV(不超出上限/下限范围)。
范围:-100% … 100%
默认值 = 10%
ResponseSpeed
DINT
所需的闭环响应速度。
慢速响应:ResponseSpeed=0
中速响应:ResponseSpeed=1
快速响应:ResponseSpeed=2。
如果 ResponseSpeed 小于 0,则使用慢速响应。如果 ResponseSpeed 大于 2,则使用快速响应。
范围:0 至 2
默认值 = 1
ModelInit
BOOL
内模初始化开关。
默认值 = 假
Factor
REAL
非积分模型近似因子。仅用于积分过程类型。
默认值 = 100
AtuneStart
BOOL
启动自动调谐的请求。该值为真时,启动功能块的自动调谐。如果 IMC 未处于手动模式,则忽略该值。功能块将此参数复位(假)。
默认值 = 假
AtuneUseModel
BOOL
使用自动调谐模型请求。该值为真时,以计算出的自动调谐模型参数替换当前模型参数。功能块将该输入参数设置为假。
默认值 = 假
AtuneAbort
BOOL
中止自动调谐的请求。该值为真时,中止 IMC 功能块的自动调谐。功能块将该输入参数设置为假。
默认值 = 假
输出参数
数据类型
说明
有效值和默认值
EnableOut
BOOL
指示指令是否处于启用状态。如果 CVEU 溢出,则设置为假。
CVEU
REAL
标定控制变量输出。使用 CVEUMax 和 CVEUMin 标定,其中 CVEUMax 对应于 100%,CVEUMin 对应于 0%。此输出通常用于控制模拟输出模块或次级回路。
CVEU = (CV * CVEUSpan / 100) + CVEUMin
CVEU 量程计算:CVEUSpan = ( CVEUMax − CVEUMin )
CV
REAL
控制变量输出。此值始终以 0…100% 表示。处于自动模式、级联/比率模式或手动模式且 CVManLimiting 为真时,CV 限定在 CVHLimit 和 CVLLimit 之间;否则,将限定在 0 和 100% 之间。
DeltaCV
REAL
当前 CV 与上一 CV 之间的差值(当前 CV - 上一 CV)。
CVInitializing
BOOL
初始化模式指示器。当 CVInitReq 或功能块 FirstScan 为真,或者 CVFault 由真变为假(由不良转为良好)时,该值设置为真。当功能块初始化完毕且 CVInitReq 不再为真后,CVInitializing 将设置为假。
CVHAlarm
BOOL
CV 上限报警指示器。当 CV 的计算值 > 100 或 CVHLimit 时为 TRUE。
CVLAlarm
BOOL
CV 下限报警指示器。计算的 CV 值 < 0 或 CVLLimit 时为真。
CVROCPosAlarm
BOOL
CV 变化率报警指示器。计算的 CV 变化率超出 CVROCPosLimit 时为真。
CVROCNegAlarm
REAL
CV 变化率报警指示器。计算的 CV 变化率超出 CVROCNegLimit 时为真。
SP
REAL
当前设置点的值。SP 值用于在自动、级联/比率或 PV 跟踪模式下控制 CV,以 PV 单位标定。
SPPercent
REAL
以 PV 量程百分比表示的 SP 值。
SPPercent = ((SP − PVEUMin ) * 100) / PVSpan
其中
PVSpan = PVEUMax − PVEUMin
SPHAlarm
BOOL
SP 上限报警指示器。当 SP ≥ SPHLimit 时为真。
SPLAlarm
BOOL
SP 下限报警指示器。当 SP ≤ SPLLimit 时为真。
PVPercent
REAL
以量程百分比表示的 PV。
PVPercent = (( PV − PVEUMin ) * 100) / PVSpan
PV 量程计算:PVSpan =
( PVEUMax − PVEUMin )
E
REAL
过程误差。SP 与 PV 之间的差值,以 PV 单位标定。
EPercent
REAL
以量程百分比形式表示的误差。
InitPrimary
BOOL
初始化主回路命令。当未处于级联/比率模式或 CVInitializing 为真时,为真。此信号通常供主回路的 CVInitReq 输入使用。
WindupHOut
BOOL
积分饱和上限指示器。当达到 SP 上限或 CV 上限/下限时为真。此信号通常供 WindupHIn 输入使用,用以限制主回路上 CV 输出的积分饱和。
WindupLOut
BOOL
积分饱和下限指示器。当达到 SP 或 CV 上限/下限时为真。此信号通常供 WindupLIn 输入使用,用以限制主回路上 CV 输出的积分饱和。
Ratio
REAL
当前比率乘数,无单位。
RatioHAlarm
BOOL
比率上限报警指示器。当 Ratio > RatioHLimit 时为真。
RatioLAlarm
BOOL
比率下限报警指示器。当 Ratio < RatioLLimit 时为真。
ProgOper
BOOL
程序/操作员控制指示器。在程序控制模式下为真 (TRUE)。在操作员控制模式下为假 (FALSE)。
CasRat
BOOL
级联/比率模式指示器。在 CascadeRatio 模式下为 TRUE。
Auto
BOOL
自动模式指示器。处于自动模式时为真。
Manual
BOOL
手动模式指示器。处于手动模式时为真。
Override
BOOL
超控模式指示器。处于超控模式时为真。
Hand
BOOL
手控模式指示器。处于手控模式时为真。
DeltaT
REAL
两次更新间隔的时间(秒)。
StepSizeUsed
REAL
调谐中使用的实际 CV 步长。
GainTuned
REAL
调谐完毕后计算出的内模增益值。
TCTuned
REAL
调谐完毕后计算出的内模时间常数。
DTTuned
REAL
调谐完毕后计算出的内模死区时间值。
RespTCTunedS
REAL
调谐完毕后计算出的慢速响应速度下的控制变量时间常数。
RespTCTunedM
REAL
调谐完毕后计算出的中速响应速度下的控制变量时间常数。
RespTCTunedF
REAL
调谐完毕后计算出的快速响应速度下的控制变量时间常数。
AtuneOn
BOOL
启动自动调谐后设置为真。
AtuneDone
BOOL
自动调谐成功完成后设置为真。
AtuneAborted
BOOL
当自动调谐由用户中止,或者因自动调谐过程中出错而中止时,设置为真。
AtuneStatus
DINT
指示功能块的调谐状态。
AtuneFault
BOOL
自动调谐产生以下任一故障。
AtuneStatus 的位 0
AtunePVOutOfLimit
BOOL
在自动调谐过程中,PV 或 PV 死区时间步提前预测值超过 PVTuneLimit。该值为真时,自动调谐过程将中止。
AtuneStatus 的位 1
AtuneModeInv
BOOL
IMC 模式在自动调谐开始时并非手动模式,或者在自动调谐过程中由手动模式切换为其他模式。该值为真时,自动调谐不会启动或者将会中止。
AtuneStatus 的位 2
AtuneCVWindupFault
BOOL
在自动调谐开始时或自动调谐期间,WindupHIn 或 WindupLIn 为真。该值为真时,自动调谐不会启动或者将会中止。
AtuneStatus 的位 3
AtuneStepSize0
BOOL
自动调谐开始时,StepSizeUsed = 0。该值为真时,自动调谐不会启动。
AtuneStatus 的位 4
AtuneCVLimitsFault
BOOL
在自动调谐开始时或自动调谐期间,CVLimitsInv 和 CVManLimiting 为真。该值为真时,自动调谐不会启动或者将会中止。
AtuneStatus 的位 5
AtuneCVInitFault
BOOL
在自动调谐开始时或自动调谐期间,CVInitializing 为真。该值为真时,自动调谐不会启动或者将会中止。
AtuneStatus 的位 6
AtuneEUSpanChanged
BOOL
在自动调谐期间,CVEUSpan 或 PVEUSpan 发生改变。该值为真时,自动调谐过程将中止。
AtuneStatus 的位 7
AtuneCVChanged
BOOL
CVOper(操作员控制模式)或 CVProg(程序控制模式)发生改变,或者 CV 在自动调谐期间达到上/下限或 ROC 限制。该值为真时,自动调谐过程
将中止。
AtuneStatus 的位 8
AtuneTimeout
BOOL
自阶跃测试开始起经过的时间长于 AtuneTimeLimit。该值为真时,自动调谐过程将中止。
AtuneStatus 的位 9
AtunePVNotSettled
BOOL
PV 变化过大而无法进行自动调谐。该值为真时,自动调谐过程将中止。等待 PV 达到更稳定状态再进行自动调谐。
AtuneStatus 的位 10
Status1
DINT
功能块的位映射状态。
Status2
DINT
功能块的附加位映射状态。
InstructFault
BOOL
功能块发生故障。指示 Status1 和 Status2 相应位的状态。
值为 0 时表示未发生故障。任何可能配置为无效值的参数都必须具有状态参数,来指示其无效状态。
Status1 的位 0
PVFaulted
BOOL
过程变量 PV 状况不良。
Status1 的位 1
CVFaulted
BOOL
控制变量 CV 故障
Status1 的位 2
HandFBFaulted
BOOL
HandFB 值状况不良
Status1 的位 3
PVSpanInv
BOOL
PV 量程无效,PVEUMax < PVEUMin。
Status1 的位 4
SPProgInv
BOOL
SPProg < SPLLimit 或 > SPHLimit。限制 SP 的值。
Status1 的位 5
SPOperInv
BOOL
SPOper < SPLLimit 或 > SPHLimit。限制 SP 的值。
Status1 的位 6
SPCascadeInv
BOOL
SPCascade < SPLLimit 或 > SPHLimit。限制 SP 的值。
Status1 的位 7
SPLimitsInv
BOOL
限值无效:SPLLimit < PVEUMin,SPHLimit > PVEUMax 或 SPHLimit < SPLLimit。如果 SPHLimit < SPLLimit,则使用 SPLLimit 对值进行限制。
Status1 的位 8
RatioLimitsInv
BOOL
比率上下限无效,下限 < 0 或上限 < 下限。
Status1 的位 9
RatioProgInv
BOOL
RatioProg < RatioLLimit 或 > RatioHLimit。将限制 Ratio 的值。
Status1 的位 10
RatioOperInv
BOOL
RatioOper < RatioLLimit 或 > RatioHLimit。将限制 Ratio 的值。
Status1 的位 11
CVProgInv
BOOL
CVProg < 0 或 > 100,或者当 CVManLimiting 为真时,< CVLLimit 或 > CVHLimit。将限制 CV 的值。
Status1 的位 12
CVOperInv
BOOL
CVOper < 0 或 > 100,或者当 CVManLimiting 为真时,< CVLLimit 或 > CVHLimit。将限制 CV 的值。
Status1 的位 13
CVOverrideValueInv
BOOL
CVOverrideValue < 0 或 > 100。将限制 CV 的值。
Status1 的位 14
CVTrackValueInv
BOOL
CVTrackValue < 0 或 > 100。将限制 CV 的值。
Status1 的位 15
CVEUSpanInv
BOOL
CVEU 的量程无效,CVEUMax 等于 CVEUMin。
Status1 的位 16
CVLimitsInv
BOOL
CVLLimit < 0、CVHLimit > 100 或 CVHLimit <= CVLLimit。如果 CVHLimit <= CVLLimit,则使用 CVLLimit 限制 CV 值。
Status1 的位 17
CVROCLimitInv
BOOL
CVROCLimit < 0,禁用 ROC 限制。
Status1 的位 18
HandFBInv
BOOL
HandFB < 0 或 > 100。将限制 CV 的值。
Status1 的位 19
SampleTimeTooSmall
BOOL
模型死区时间/DeltaT 必须小于或等于 200。
Status1 的位 20
FactorInv
BOOL
Factor 值 < 0。
Status1 的位 21
ModuleGainInv
BOOL
ModelGain 为 1.#QNAN 或 -1.#IND(非数字),或者 ± 1.$(无穷大 ∞)
Status1 的位 22
ModelTCInv
BOOL
ModelTC < 0。
Status1 的位 23
ModelDTInv
BOOL
ModelDT < 0。
Status1 的位 24
RespTCInv
BOOL
RespTC < 0。
Status1 的位 25
TimingModelInv
BOOL
TimingMode 无效。如果当前模式不是超控或手控模式,则设置为手动模式。
Status2 的位 27
RTSMissed
BOOL
仅用于实时采样模式。ABS(DeltaT - RTSTime) > 1 毫秒时为真。
Status2 的位 28。
RTSTimeInv
BOOL
RTSTime 无效。
Status2 的位 29。
RTSTimeStampInv
BOOL
RTSTimeStamp 无效。如果当前模式不是超控或手控模式,则设置为手动模式。
Status2 的位 30。
DeltaTInv
BOOL
DeltaT 无效。如果当前模式不是超控或手控模式,则设置为手动模式。
Status2 的位 31。
说明
下图所示为 IMC 功能块的配置。
IMC Description
每次执行时,IMC 功能块都会将实际 PV 测量值与 PV 预测值进行比较。其结果称为扰动估计值,代表未测得过程扰动性与建模不精确性的综合效应。扰动估计值用作与控制变量设置点的偏差。在无扰动和完美建模的理想情况下,扰动估计值(反馈信号)变为零。
一阶模型
M = K/(T*s+1)*exp(-D*s)
模型取反
Inv = (T*s+1)/K
一阶滤波器
F = 1/(e*s+1)
PV 预测值 = exp(-D*s)/(e*s+1) *(SP - 扰动估计值)
K...
模型增益
T...
模型时间常数
D...
模型死区时间
e...
响应时间常数
s...
拉普拉斯变量
功能块随后计算 CV 值(使用 CVHLimit、CVLLimit 和变化率限值)和 PV 预测值。
当控制死区时间较长的过程时,IMC 功能块比 PID 控制变量更具优势,因此可代替 PID 功能块。
对于积分过程类型(例如液位控制和位置控制),使用内部非积分模型来近似模拟积分过程。使用 Factor 参数将确定的积分过程模型转换为用于 CV 计算的非积分内部模型。这对于稳定的 IMC 执行非常必要。
影响数学状态标志
严重/轻微故障
没有特定于此指令的故障。有关操作数相关的故障,请参阅 通用属性
执行
功能块
条件/状态
执行的操作
预扫描
EnableIn 和 EnableOut 位设置为假。
Tag.EnableIn 为假
EnableIn 和 EnableOut 位设置为假。
Tag.EnableIn 为真
EnableIn 和 .EnableOut 位设置为真。
指令执行。
指令首次运行
不适用
指令首次扫描
不适用
后扫描
EnableIn 和 EnableOut 位设置为假。
结构化文本
条件/状态
执行的操作
预扫描
请参见“功能块”表中的“预扫描”行。
正常执行
请参见“功能块”表中的“Tag.EnableIn 为真”行。
后扫描
请参见“功能块”表中的“后扫描”行。
示例
功能块
IMC_FB_ex_v31
结构化文本
imcTag.PV := imcInput1;
imcTag.SPProg := imcInput2;
imcTag.CVProg := imcInput3;
IMC(imcTag);
imcOutput1 := imcTag.CVEU;
提供反馈
对本文档有问题或反馈吗? 请在这里提交您的反馈
Normal