Modular Multivariable Control (MMC)

This information applies to the
CompactLogix
5370,
ControlLogix
5570,
Compact GuardLogix
5370,
GuardLogix
5570,
Compact GuardLogix
5380,
CompactLogix
5380,
CompactLogix
5480,
ControlLogix
5580, and
GuardLogix
5580 controllers.
The Modular Multivariable Control (MMC) instruction controls two process variables to their setpoints using up to three control variables. The MMC instruction calculates the control variables (CV1, CV2, and CV3) in the auto mode based on the PV1 -SP1, PV2 - SP2 deviation, internal model, and tuning.
Available Languages
Ladder Diagram
This instruction is not available in ladder diagram logic.
Function Block
MMC_FB_avail_v31
Structured Text
MMC(MMC_tag);
Operands
Function Block
Operands:
Type
Format
Description
MMC tag
MODULAR MULTIVARIABLE CONTROL
structure
MMC Structure
Structured Text
Operands:
Type
Format
Description
MMC tag
MODULAR MULTIVARIABLE CONTROL
structure
MMC Structure
Structure
The following table describes the input parameters in the MMC function block.
Input Parameters
Data Type
Description
Values
EnableIn
BOOL
Enable Input. If False, the function block will not execute and outputs are not updated.
Default=TRUE
PV1
REAL
Scaled process variable input 1. This value is typically read from an analog input module.
Valid = any float
Default = 0.0
PV2
REAL
Scaled process variable input 2. This value is typically read from an analog input module.
Valid = any float
Default = 0.0
PV1Fault
BOOL
PV1 bad health indicator. If PV1 is read from an analog input, then PV1Fault will normally be controlled by the analog input fault status. If PVFault is TRUE, it indicates an error on the input module, set bit in Status.FALSE = Good Health
Default = FALSE
PV2Fault
BOOL
PV2 bad health indicator. If PV2 is read from an analog input, then PV2Fault will normally be controlled by the analog input fault status. If PVFault is TRUE, it indicates an error on the input module, set bit in Status.FALSE = Good Health
Default = FALSE
PV1EUMax
REAL
Maximum scaled value for PV1. The value of PV1 and SP1 that corresponds to 100% span of the Process Variable. If PV1EUMax ≤ PV1EUMin, set bit in Status.
Valid = PV1EUMin < PV1EUMax <= maximum positive float
Default = 100.0
PV2EUMax
REAL
Maximum scaled value for PV2. The value of PV2 and SP2 that corresponds to 100% span of the Process Variable. If PV2EUMax ≤ PV2EUMin, set bit in Status.
Valid = PV2EUMin < PV2EUMax <= maximum positive float
Default = 100.0
PV1UEMin
REAL
Minimum scaled value for PV1. The value of PV1 and SP1 that corresponds to 0% span of the Process Variable. If PV1EUMax ≤ PV1EUMin, set bit in Status.
Valid = maximum negative float <= PV1EUMin < PV1EUMax
Default = 0.0
PV2UEMin
REAL
Minimum scaled value for PV2. The value of PV2 and SP2 that corresponds to 0% span of the Process Variable. If PV1EUMax ≤ PV1EUMin, set bit in Status.
Valid = maximum negative float <= PV2EUMin < PV2EUMax
Default = 0.0
SP1Prog
REAL
SP1 Program value, scaled in PV units. SP1 is set to this value when Program control.
Valid = SP1LLimit to SP1HLimit
Default = 0.0
SP2Prog
REAL
SP2 Program value, scaled in PV units. SP2 is set to this value when Program control.
Valid = SP2LLimit to SP2HLimit
Default = 0.0
SP1Oper
REAL
SP1 Operator value, scaled in PV units. SP1 set to this value when Operator control.
If value of SP1Prog or SP1Oper < SP1LLimit or > SP1HLimit, set bit in Status and limit value used for SP.
Valid = SP1LLimit to SP1HLimit
Default = 0.0
SP2Oper
REAL
SP2 Operator value, scaled in PV units. SP2 set to this value when Operator control.
If value of SP2Prog or SP2Oper < SP2LLimit or > SP2HLimit, set bit in Status and limit value used for SP.
Valid = SP2LLimit to SP2HLimit
Default = 0.0
SP1HLimit
REAL
SP1 high limit value, scaled in PV units.
  • If SP1LLimit < PV1EUMin, or SP1HLimit > PV1EUMax, set bit in Status.
  • If SP1HLimit < SP1LLimit, set bit in Status and limit SP by using the value of S1PLLimit.
Valid = SP1LLimit to PV1EUMax
Default = 100.0
SP2HLimit
REAL
SP2 high limit value, scaled in PV units.
  • If SP2LLimit < PV2EUMin, or SP2HLimit > PV2EUMax, set bit in Status.
  • If SP2HLimit < SP2LLimit, set bit in Status and limit SP by using the value of SPLLimit.
Valid = SP2LLimit to PV2EUMax
Default = 100.0
SP1LLimit
REAL
SP1 low limit value, scaled in PV units.
  • If SP1LLimit < PV1EUMin, or SP1HLimit > PV1EUMax, set bit in Status.
  • If SP1HLimit < SP1LLimit, set bit in Status and limit SP by using the value of SPLLimit.
Valid = PV1EUMin to SP1HLimit
Default = 0.0
SP2LLimit
REAL
SP2 low limit value, scaled in PV units.
  • If SP2LLimit < PV2EUMin, or SP2HLimit > PV2EUMax, set bit in Status.
  • If SP2HLimit < SP2LLimit, set bit in Status and limit SP by using the value of SPLLimit.
Valid = PV2EUMin to SP2HLimit
Default = 0.0
CV1Fault
BOOL
Control variable 1 bad health indicator. If CV1EU controls an analog output, then CV1Fault will normally come from the analog output's fault status.
If CV1Fault is TRUE, it indicates an error on the output module, set bit in Status.FALSE = Good Health
Default = FALSE
CV2Fault
BOOL
Control variable 2 bad health indicator. If CV2EU controls an analog output, then CV2Fault will normally come from the analog output's fault status.
If CV2Fault is TRUE, it indicates an error on the output module, set bit in Status.FALSE = Good Health
Default = FALSE
CV3Fault
BOOL
Control variable 3 bad health indicator. If CV3EU controls an analog output, then CV3Fault will normally come from the analog output's fault status.
If CV3Fault is TRUE, it indicates an error on the output module, set bit in Status.FALSE = Good Health
Default = FALSE
CV1InitReq
BOOL
CV1 initialization request. While TRUE, set CV1EU to the value of CV1InitValue. This signal will normally be controlled by the In Hold status on the analog output module controlled by CV1EU or from the InitPrimary output of a secondary loop.
The instruction initialization is disabled when CV1Faulted or CV1EUSpanInv are TRUE.
Default = FALSE
CV2InitReq
BOOL
CV2 initialization request. While TRUE, set CV2EU to the value of CV2InitValue. This signal will normally be controlled by the In Hold status on the analog output module controlled by CV2EU or from the InitPrimary output of a secondary loop.
The instruction initialization is disabled when CV2Faulted or CV2EUSpanInv are TRUE.
Default = FALSE
CV3InitReq
BOOL
CV3 initialization request. While TRUE, set CV3EU to the value of CV3InitValue. This signal will normally be controlled by the In Hold status on the analog output module controlled by CV3EU or from the InitPrimary output of a secondary loop.
The instruction initialization is disabled when CV3Faulted or CV3EUSpanInv are TRUE.
Default = FALSE
CV1InitValue
REAL
CV1EU initialization value, scaled in CV1EU units. When CV1Initializing is TRUE set CV1EU equal to CV1InitValue and CV1 to the corresponding percentage value. CV1InitValue will normally come from the feedback of the analog output controlled by CV1EU or from the setpoint of a secondary loop.
The instruction initialization is disabled when CV1Faulted or CV1EUSpanInv are TRUE.
Valid = any float
Default = 0.0
CV2InitValue
REAL
CV2EU initialization value, scaled in CV2EU units. When CV2Initializing is TRUE set CV2EU equal to CV2InitValue and CV2 to the corresponding percentage value. CV2InitValue will normally come from the feedback of the analog output controlled by CV2EU or from the setpoint of a secondary loop.
The instruction initialization is disabled when CV2Faulted or CV2EUSpanInv are TRUE.
Valid = any float
Default = 0.0
CV3InitValue
REAL
CV3EU initialization value, scaled in CV3EU units. When CV3Initializing is TRUE set CV3EU equal to CV3InitValue and CV3 to the corresponding percentage value. CV3InitValue will normally come from the feedback of the analog output controlled by CV3EU or from the setpoint of a secondary loop.
The instruction initialization is disabled when CV3Faulted or CV3EUSpanInv are TRUE.
Valid = any float
Default = 0.0
CV1Prog
REAL
CV1 Program-Manual value. CV1 is set to this value when in Program control and Manual mode.
Valid = 0.0 through 100.0
Default = 0.0
CV2Prog
REAL
CV2 Program-Manual value. CV2 is set to this value when in Program control and Manual mode.
Valid = 0.0 through 100.0
Default = 0.0
CV3Prog
REAL
CV3 Program-Manual value. CV3 is set to this value when in Program control and Manual mode.
Valid = 0.0 through 100.0
Default = 0.0
CV1Oper
REAL
CV1 Operator-Manual value.
  • CV1 is set to this value when in Operator control and Manual mode. If not Operator-Manual mode, set CV1Oper to the value of CV1 at the end of each function block execution.
  • If value of CV1Prog or CV1Oper < 0 or > 100, or < CV1LLimit or > CV1HLimit when CVManLimiting is TRUE, set unique Status bit and limit value used for CV1.
Valid = 0.0 through 100.0
Default = 0.0
CV2Oper
REAL
CV2 Operator-Manual value.
  • CV2 is set to this value when in Operator control and Manual mode. If not Operator-Manual mode, set CV2Oper to the value of CV2 at the end of each function block execution.
  • If value of CV2Prog or CV2Oper < 0 or > 100, or < CV2LLimit or > CV2HLimit when CVManLimiting is TRUE, set unique Status bit and limit value used for CV2.
Valid = 0.0 through 100.0
Default = 0.0
CV3Oper
REAL
CV3 Operator-Manual value.
  • CV3 is set to this value when in Operator control and Manual mode. If not Operator-Manual mode, set CV3Oper to the value of CV3 at the end of each function block execution.
  • If value of CV3Prog or CV3Oper < 0 or > 100, or < CV3LLimit or > CV3HLimit when CVManLimiting is TRUE, set unique Status bit and limit value used for CV3.
Valid = 0.0 through 100.0
Default = 0.0
CV1OverrideValue
REAL
CV1 Override value.
  • CV1 set to this value when in Override mode. This value should correspond to a safe state output of the loop.
  • If value of CV1OverrideValue < 0 or >100, set unique Status bit and limit value used for CV1.
Valid = 0.0 through 100.0
Default = 0.0
CV2OverrideValue
REAL
CV2 Override value.
  • CV2 set to this value when in Override mode. This value should correspond to a safe state output of the loop.
  • If value of CV2OverrideValue < 0 or >100, set unique Status bit and limit value used for CV2.
Valid = 0.0 through 100.0
Default = 0.0
CV3OverrideValue
REAL
CV3 Override value. CV3 set to this value when in Override mode.
This value should correspond to a safe state output of the loop.
If value of CV3OverrideValue < 0 or >100, set unique Status bit and limit value used for CV3.
Valid = 0.0 through 100.0
Default = 0.0
CVManLimiting
BOOL
Limit CV(n), where (n) can be 1, 2, or 3, in Manual mode. If Manual mode and CVManLimiting is TRUE, CV(n) will be limited by the CV(n)HLimit and CV(n)LLimit values.
Default = FALSE
CV1EUMax
REAL
Maximum value for CV1EU. The value of CV1EU that corresponds to 100% CV1.
If CVEUMax = CVEUMin, set bit in Status.
Valid = any float
Default = 100.0
CV2EUMax
REAL
Maximum value for CV2EU. The value of CV2EU that corresponds to 100% CV2.
If CVEUMax = CVEUMin, set bit in Status.
Valid = any float
Default = 100.0
CV3EUMax
REAL
Maximum value for CV3EU. The value of CV3EU that corresponds to 100% CV3.
If CVEUMax = CVEUMin, set bit in Status.
Valid = any float
Default = 100.0
CV1EUMin
REAL
Minimum value of CV1EU. The value of CV1EU that corresponds to 0% CV1.
If CVEUMax = CVEUMin, set bit in Status.
Valid = any float
Default = 0.0
CV2EUMin
REAL
Minimum value of CV2EU. The value of CV2EU that corresponds to 0% CV2.
If CVEUMax = CVEUMin, set bit in Status.
Valid = any float
Default = 0.0
CV3EUMin
REAL
Minimum value of CV3EU. The value of CV3EU that corresponds to 0% CV3.
If CVEUMax = CVEUMin, set bit in Status.
Valid = any float
Default = 0.0
CV1HLimit
REAL
CV1 high limit value. This is used to set the CV1HAlarm output. It is also used for limiting CV1 when in Auto mode or in Manual if CVManLimiting is TRUE.
  • If CV1LLimit < 0, if CV1HLimit > 100, if CV1HLimit < CV1LLimit, set bit in Status.
  • If CV1HLimit < CV1LLimit, limit CV1 by using the value of CV1LLimit.
Valid = CV1LLimit < CV1HLimit ≤ 100.0
Default = 100.0
CV2HLimit
REAL
CV2 high limit value. This is used to set the CV2HAlarm output. It is also used for limiting CV2 when in Auto mode or in Manual if CVManLimiting is TRUE.
  • If CV2LLimit < 0, if CV2HLimit > 100, if CV2HLimit < CV2LLimit, set bit in Status.
  • If CV2HLimit < CV2LLimit, limit CV2 by using the value of CV2LLimit.
Valid = CV2LLimit < CV2HLimit ≤ 100.0
Default = 100.0
CV3HLimit
REAL
CV3 high limit value. This is used to set the CV3HAlarm output. It is also used for limiting CV3 when in Auto mode or in Manual if CVManLimiting is TRUE.
  • If CV3LLimit < 0, if CV3HLimit > 100, if CV3HLimit < CV3LLimit, set bit in Status.
  • If CV3HLimit < CV3LLimit, limit CV3 by using the value of CV3LLimit.
Valid = CV3LLimit < CV3HLimit ≤ 100.0
Default = 100.0
CV1LLimit
REAL
CV1 low limit value. This is used to set the CV1LAlarm output. It is also used for limiting CV1 when in Auto mode or in Manual mode if CVManLimiting is TRUE.
  • If CV1LLimit < 0, if CV1HLimit > 100, if CV1HLimit < CV1LLimit, set bit in Status.
  • If CV1HLimit < CV1LLimit, limit CV1 by using the value of CV1LLimit.
Valid = 0.0 ≤ CV1LLimit < CV1HLimit
Default = 0.0
CV2LLimit
REAL
CV2 low limit value. This is used to set the CV2LAlarm output. It is also used for limiting CV2 when in Auto mode or in Manual mode if CVManLimiting is TRUE.
  • If CV2LLimit < 0, if CV2HLimit > 100, if CV2HLimit < CV2LLimit, set bit in Status.
  • If CV2HLimit < CV2LLimit, limit CV2 by using the value of CV2LLimit.
Valid = 0.0 ≤ CV2LLimit < CV1HLimit
Default = 0.0
CV3LLimit
REAL
CV3 low limit value. This is used to set the CV3LAlarm output. It is also used for limiting CV3 when in Auto mode or in Manual mode if CVManLimiting is TRUE.
  • If CV3LLimit < 0, if CV3HLimit > 100, if CV3HLimit < CV3LLimit, set bit in Status.
  • If CV3HLimit < CV3LLimit, limit CV by using the value of CV3LLimit.
Valid = 0.0 ≤ CV3LLimit < CV1HLimit
Default = 0.0
CV1ROCPosLimit
REAL
CV1 rate of change limit, in percent per second. Rate of change limiting is only used when in Auto mode or in Manual mode if CVManLimiting is TRUE. A value of zero disables CV1 ROC limiting.
If value of CV1ROCLimit < 0, set bit in Status and disable CV1 ROC limiting.
Valid = 0.0 to maximum positive float
Default = 0.0
CV2ROCPosLimit
REAL
CV2 rate of change limit, in percent per second. Rate of change limiting is only used when in Auto mode or in Manual mode if CVManLimiting is TRUE. A value of zero disables CV2 ROC limiting.
If value of CV2ROCLimit < 0, set bit in Status and disable CV2 ROC limiting.
Valid = 0.0 to maximum positive float
Default = 0.0
CV3ROCPosLimit
REAL
CV3 rate of change limit, in percent per second. Rate of change limiting is only used when in Auto mode or in Manual mode if CVManLimiting is TRUE. A value of zero disables CV3 ROC limiting.
If value of CV3ROCLimit < 0, set bit in Status and disable CV3 ROC limiting.
Valid = 0.0 to maximum positive float
Default = 0.0
CV1ROCNegLimit
REAL
CV1 rate of change limit, in percent per second. Rate of change limiting is only used when in Auto mode or in Manual mode if CVManLimiting is TRUE. A value of zero disables CV1 ROC limiting.
If value of CV1ROCLimit < 0, set bit in Status and disable CV1 ROC limiting.
Valid = 0.0 to maximum positive float
Default = 0.0
CV2ROCNegLimit
REAL
CV2 rate of change limit, in percent per second. Rate of change limiting is only used when in Auto mode or in Manual mode if CVManLimiting is TRUE. A value of zero disables CV2 ROC limiting.
If value of CV2ROCLimit < 0, set bit in Status and disable CV2 ROC limiting.
Valid = 0.0 to maximum positive float
Default = 0.0
CV3ROCNegLimit
REAL
CV3 rate of change limit, in percent per second. Rate of change limiting is only used when in Auto mode or in Manual mode if CVManLimiting is TRUE. A value of zero disables CV3 ROC limiting.
If value of CV3ROCLimit < 0, set bit in Status and disable CV3 ROC limiting.
Valid = 0.0 to maximum positive float
Default = 0.0
CV1HandFB
REAL
CV1 HandFeedback value. CV1 set to this value when in Hand mode and CV1HandFBFault is FALSE (good health). This value would typically come from the output of a field mounted hand/auto station and would be used to generate a bumpless transfer out of Hand mode.
If value of CV1HandFB < 0 or > 100, set unique Status bit and limit value used for CV1.
Valid = 0.0 through 100.0
Default = 0.0
CV2HandFB
REAL
CV2 HandFeedback value. CV2 set to this value when in Hand mode and CV2HandFBFault is FALSE (good health). This value would typically come from the output of a field mounted hand/auto station and would be used to generate a bumpless transfer out of Hand mode.
If value of CV2HandFB < 0 or > 100, set unique Status bit and limit value used for CV2.
Valid = 0.0 through 100.0
Default = 0.0
CV3HandFB
REAL
CV3 HandFeedback value. CV3 set to this value when in Hand mode and CV3HandFBFault is FALSE (good health). This value would typically come from the output of a field mounted hand/auto station and would be used to generate a bumpless transfer out of Hand mode.
If value of CV3HandFB < 0 or > 100, set unique Status bit and limit value used for CV3.
Valid = 0.0 through 100.0
Default = 0.0
CV1HandFBFault
BOOL
CV1HandFB value bad health indicator. If the CV1HandFB value is read from an analog input, then CV1HandFBFault will normally be controlled by the status of the analog input channel.
If CV1HandFBFault is TRUE, it indicates an error on the input module, set bit in Status.
FALSE = Good Health
Default = FALSE
CV2HandFBFault
BOOL
CV2HandFB value bad health indicator. If the CV2HandFB value is read from an analog input, then CV2HandFBFault will normally be controlled by the status of the analog input channel.
If CV2HandFBFault is TRUE, it indicates an error on the input module, set bit in Status.
FALSE = Good Health
Default = FALSE
CV3HANDFBFault
BOOL
CV3HandFB value bad health indicator. If the CV3HandFB value is read from an analog input, then CV3HandFBFault will normally be controlled by the status of the analog input channel.
If CV3HandFBFault is TRUE, it indicates an error on the input module, set bit in Status.
FALSE = Good Health
Default = FALSE
CV1Target
REAL
Target value for control variable output 1.
Valid = 0.0 through 100.0
Default = 0.0
CV2Target
REAL
Target value for control variable output 2.
Valid = 0.0 through 100.0
Default = 0.0
CV3Target
REAL
Target value for control variable output 3.
Valid = 0.0 through 100.0
Default = 0.0
CV1WindupHIn
BOOL
CV1Windup high request. When TRUE, CV1 will not be allowed to increase in value. This signal will typically be the CV1WindupHOut output from a secondary loop.
Default = FALSE
CV2WindupHIn
BOOL
CV2Windup high request. When TRUE, CV2 will not be allowed to increase in value. This signal will typically be the CV2WindupHOut output from a secondary loop.
Default = FALSE
CV3WindupHIn
BOOL
CV3Windup high request. When TRUE, CV3 will not be allowed to increase in value. This signal will typically be the CV3WindupHOut output from a secondary loop.
Default = FALSE
CV1WindupLIn
BOOL
CV1 Windup low request. When TRUE, CV1 will not be allowed to decrease in value. This signal will typically be the CV1WindupLOut output from a secondary loop.
Default = FALSE
CV2WindupLIn
BOOL
CV2 Windup low request. When TRUE, CV2 will not be allowed to decrease in value. This signal will typically be the CV2WindupLOut output from a secondary loop.
Default = FALSE
CV3WindupLIn
BOOL
CV3 Windup low request. When TRUE, CV3 will not be allowed to decrease in value. This signal will typically be the CV3WindupLOut output from a secondary loop.
Default = FALSE
GainEUSpan
BOOL
ModelGain units in EU or as % of span.
Default = FALSE
FALSE = Gain in % of span
CV1PV1ProcessGainSign
BOOL
Used only for Autotuning. Sign of the process gain (Delta PV1/Delta CV1).
  • Set to indicate a negative process gain (increase in output causes a decrease in PV1).
  • Reset to indicate a positive process gain (increase in output causes an increase in P1V).
Default = FALSE
CV2PV1ProcessGainSign
BOOL
Used only for Autotuning. Sign of the process gain (Delta PV1/Delta CV2).
  • Set to indicate a negative process gain (increase in output causes a decrease in PV1).
  • Reset to indicate a positive process gain (increase in output causes an increase in PV1).
Default = FALSE
CV3PV1ProcessGainSign
BOOL
Used only for Autotuning. Sign of the process gain (Delta PV1/Delta CV3).
  • Set to indicate a negative process gain (increase in output causes a decrease in PV1).
  • Reset to indicate a positive process gain (increase in output causes an increase in PV1).
Default = FALSE
CV1PV2ProcessGainSign
BOOL
Used only for Autotuning. Sign of the process gain (Delta PV2/Delta CV1).
  • Set to indicate a negative process gain (increase in output causes a decrease in PV2).
  • Reset to indicate a positive process gain (increase in output causes an increase in PV2).
Default = FALSE
CV1PV2ProcessGainSign
BOOL
Used only for Autotuning. Sign of the process gain (Delta PV2/Delta CV2).
  • Set to indicate a negative process gain (increase in output causes a decrease in PV2).
  • Reset to indicate a positive process gain (increase in output causes an increase in PV2).
Default = FALSE
CV1PV2ProcessGainSign
BOOL
Used only for Autotuning. Sign of the process gain (Delta PV2/Delta CV3).
  • Set to indicate a negative process gain (increase in output causes a decrease in PV2).
  • Reset to indicate a positive process gain (increase in output causes an increase in PV2).
Default = FALSE
ProcessType
DINT
Process type selection for both PV1 and PV2 (1=Integrating, 0=non-integrating)
Default = 0
CV1PV1ModelGain
REAL
The internal model gain parameter for CV1 - PV1. Enter a positive or negative gain depending on process direction.
If CV1PV1ModelGain = INF or NAN, set bit in Status.
Valid = maximum negative float −> maximum positive float
Default = 0.0
CV2PV1ModelGain
REAL
The internal model gain parameter for CV2 - PV1. Enter a positive or negative gain depending on process direction.
If CV2PV1ModelGain = INF or NAN, set bit in Status.
Valid = maximum negative float −> maximum positive float
Default = 0.0
CV3PV1ModelGain
REAL
The internal model gain parameter for CV3 - PV1. Enter a positive or negative gain depending on process direction.
If CV3PV1ModelGain = INF or NAN, set bit in Status.
Valid = maximum negative float −> maximum positive float
Default = 0.0
CV1PV2ModelGain
REAL
The internal model gain parameter for CV1 - PV2. Enter a positive or negative gain depending on process direction.
If CV1PV2ModelGain = INF or NAN, set bit in Status.
Valid = maximum negative float −> maximum positive float
Default = 0.0
CV2PV2ModelGain
REAL
The internal model gain parameter for CV2 - PV2. Enter a positive or negative gain depending on process direction.
If CV2PV2ModelGain = INF or NAN, set bit in Status.
Valid = maximum negative float −> maximum positive float
Default = 0.0
CV3PV2ModelGain
REAL
The internal model gain parameter for CV3 - PV2. Enter a positive or negative gain depending on process direction.
If CV3PV2ModelGain = INF or NAN, set bit in Status.
Valid = maximum negative float −> maximum positive float
Default = 0.0
CV1PV1ModelTC
REAL
The internal model time constant for CV1 - PV1 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV2PV1ModelTC
REAL
The internal model time constant for CV2 - PV1 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV3PV1ModelTC
REAL
The internal model time constant for CV3 - PV1 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV1PV2ModelTC
REAL
The internal model time constant for CV1 - PV2 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV2PV2ModelTC
REAL
The internal model time constant for CV2 - PV2 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV3PV2ModelTC
REAL
The internal model time constant for CV3 - PV2 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV1PV1ModelDT
REAL
The internal model deadtime for CV1 - PV1 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV2PV1ModelDT
REAL
The internal model deadtime for CV2 - PV1 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV3PV1ModelDT
REAL
The internal model deadtime for CV3 - PV1 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV1PV2ModelDT
REAL
The internal model deadtime for CV1 - PV2 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV2PV2ModelDT
REAL
The internal model deadtime for CV2 - PV2 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV3PV2ModelDT
REAL
The internal model deadtime for CV3 - PV2 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV1PV1RespTC
REAL
The tuning parameter that determines the speed of the control variable action for CV1 - PV1 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV2PV1RespTC
REAL
The tuning parameter that determines the speed of the control variable action for CV2 - PV1 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV3PV1RespTC
REAL
The tuning parameter that determines the speed of the control variable action for CV3 - PV1 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV1PV2RespTC
REAL
The tuning parameter that determines the speed of the control variable action for CV1 - PV2 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV2PV2RespTC
REAL
The tuning parameter that determines the speed of the control variable action for CV2 - PV2 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV3PV2RespTC
REAL
The tuning parameter that determines the speed of the control variable action for CV3 - PV2 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
PV1Act1stCV
DINT
The first CV to act to compensate for PV1-SP1 deviation.
1=CV1, 2=CV2, 3=CV3
Valid = 1-3
Default = 1
PV1Act2ndCV
DINT
The second CV to act to compensate for PV1-SP1 deviation.
1=CV1, 2=CV2, 3=CV3
Valid = 1-3
Default = 2
PV1Act3rdCV
DINT
The third CV to act to compensate for PV1-SP1 deviation.
1=CV1, 2=CV2, 3=CV3
Valid = 1-3
Default = 3
PV2Act1stCV
DINT
The first CV to act to compensate for PV2-SP2 deviation.
1=CV1, 2=CV2, 3=CV3
Valid = 1-3
Default = 1
PV2Act2ndCV
DINT
The second CV to act to compensate for PV2-SP2 deviation.
1=CV1, 2=CV2, 3=CV3
Valid = 1-3
Default = 2
PV2Act3rdCV
DINT
The third CV to act to compensate for PV2-SP2 deviation.
1=CV1, 2=CV2, 3=CV3
Valid = 1-3
Default = 3
TargetCV
DINT
The CV to be driven to its target value.
1=CV1, 2=CV2, 3=CV3
Valid = 1-3
Default = 3
TargetRespTC
REAL
Determines the speed with which the control variables approach the target values.
Valid = 0.0 to maximum positive float
Default = 0.0
PVTracking
BOOL
SP track PV request.
Set TRUE to enable SP to track PV. Ignored when in Auto modes. SP will only track PV when all three outputs are in manual. As soon as any output returns to Auto, PVTracking stops.
Default = FALSE
ManualAfterInit
BOOL
Manual mode after initialization request.
  • When TRUE, the appropriate CV(n), where (n) can be 1, 2, or 3, will be placed in Manual mode when CV(n)Initializing is set TRUE unless the current mode is Override or Hand.
  • When ManualAfterInit is FALSE, the CV(n) mode will not be changed.
Default = FALSE
ProgProgReq
BOOL
Program Program Request.
  • Set TRUE by the user program to request Program control. Ignored if ProgOperReq is TRUE. Holding this TRUE and ProgOperReq FALSE can be used to lock the function block into program control.
  • When ProgValueReset is TRUE, the function block resets the input to FALSE.
Default = FALSE
ProgOperReq
BOOL
Program Operator Request.
  • Set TRUE by the user program to request Operator control. Holding this TRUE can be used to lock the function block into operator control.
  • When ProgValueReset is TRUE, the function block resets the input to FALSE.
Default = FALSE
ProgCV1AutoReq
BOOL
Program-Auto mode request for CV1.
  • Set TRUE by the user program to request Auto mode.
  • When ProgValueReset is TRUE, the function block resets the input to FALSE.
Default = FALSE
ProgCV2AutoReq
BOOL
Program-Auto mode request for CV2.
  • Set TRUE by the user program to request Auto mode.
  • When ProgValueReset is TRUE, the function block resets the input to FALSE.
Default = FALSE
ProgCV3AutoReq
BOOL
Program-Auto mode request for CV3.
  • Set TRUE by the user program to request Auto mode.
  • When ProgValueReset is TRUE, the function block resets the input to FALSE.
Default = FALSE
ProgCV1ManualReq
BOOL
Program-Manual mode request for CV1.
  • Set TRUE by the user program to request Manual mode.
  • When ProgValueReset is TRUE, the function block resets the input to FALSE.
Default = FALSE
ProgCV2ManualReq
BOOL
Program-Manual mode request for CV2.
  • Set TRUE by the user program to request Manual mode.
  • When ProgValueReset is TRUE, the function block resets the input to FALSE.
Default = FALSE
ProgCV3ManualReq
BOOL
Program-Manual mode request for CV3.
  • Set TRUE by the user program to request Manual mode.
  • When ProgValueReset is TRUE, the function block resets the input to FALSE.
Default = FALSE
ProgCV1OverrideReq
BOOL
Program-Override mode request for CV1.
  • Set TRUE by the user program to request Override mode.
  • When ProgValueReset is TRUE, the function block resets the input to FALSE.
Default = FALSE
ProgCV2OverrideReq
BOOL
Program-Override mode request for CV2.
  • Set TRUE by the user program to request Override mode.
  • When ProgValueReset is TRUE, the function block resets the input to FALSE.
Default = FALSE
ProgCV3OverrideReq
BOOL
Program-Override mode request for CV3.
  • Set TRUE by the user program to request Override mode.
  • When ProgValueReset is TRUE, the function block resets the input to FALSE.
Default = FALSE
ProgCV1HandReq
BOOL
Program-Hand mode request for CV1.
  • Set TRUE by the user program to request Hand mode. This value will usually be read as a digital input from a hand/auto station.
  • When ProgValueReset is TRUE, the function block resets the input to FALSE.
Default = FALSE
ProgCV2HandReq
BOOL
Program-Hand mode request for CV2.
  • Set TRUE by the user program to request Hand mode. This value will usually be read as a digital input from a hand/auto station.
  • When ProgValueReset is TRUE, the function block resets the input to FALSE.
Default = FALSE
ProgCV3HandReq
BOOL
Program-Hand mode request for CV3.
  • Set TRUE by the user program to request Hand mode. This value will usually be read as a digital input from a hand/auto station.
  • When ProgValueReset is TRUE, the function block resets the input to FALSE.
Default = FALSE
OperProgReq
BOOL
Operator Program Request.
  • Set TRUE by the operator interface to request Program control. The function block resets this parameter to FALSE.
Default = FALSE
OperOperReq
BOOL
Operator Operator Request.
  • Set TRUE by the operator interface to request Operator control. The function block resets this parameter to FALSE.
Default = FALSE
OperCV1AutoReq
BOOL
Operator-Auto mode request for CV1.
Set TRUE by the operator interface to request Auto mode. The function block resets this parameter to FALSE.
Default = FALSE
OperCV2AutoReq
BOOL
Operator-Auto mode request for CV2.
Set TRUE by the operator interface to request Auto mode. The function block resets this parameter to FALSE.
Default = FALSE
OperCV3AutoReq
BOOL
Operator-Auto mode request for CV3.
Set TRUE by the operator interface to request Auto mode. The function block resets this parameter to FALSE.
Default = FALSE
OperCV1ManualReq
BOOL
Operator-Manual mode request for CV1.
Set TRUE by the operator interface to request Manual mode. The function block sets this parameter to FALSE.
Default = FALSE
OperCV2ManualReq
BOOL
Operator-Manual mode request for CV2.
Set TRUE by the operator interface to request Manual mode. The function block sets this parameter to FALSE.
Default = FALSE
OperCV3ManualReq
BOOL
Operator-Manual mode request for CV3.
Set TRUE by the operator interface to request Manual mode. The function block sets this parameter to FALSE.
Default = FALSE
ProgValueReset
BOOL
Reset Program control values.
When TRUE, the Prog_xxx_Req inputs are reset to FALSE. When TRUE and Program control, set SP(x)Prog = SP(x) and CV(y)Prog = CV(y), where x = 1,2 and y = 1,2,3
Default = FALSE
TimingMode
DINT
Selects Time Base Execution mode.
Value/Description
0 = Periodic mode
1 = Oversample mode
2 = Real time sampling mode
For more information about timing modes, see Function Block Attributes.
Valid = 0 through 2
Default = 0
OverSampleDT
REAL
Execution time for Oversample mode.
Valid = 0 to max. TON_Timer elapsed time (4194.303 seconds)
Default = 0
RTSTime
DINT
Module update period for Real Time Sampling mode.
Valid = 0 through 32,767
1 count = 1 ms
RTSTimeStamp
DINT
Module time stamp value for Real Time Sampling mode.
Valid = 0 through 32,767
(wraps from 32,767…0)
1 count = 1 ms
PV1TuneLimit
REAL
PV1 tuning limit scaled in the PV1 units. When Autotune is running and predicted PV1 exceeds this limit, the tuning will be aborted.
Valid = any float
Default=0
PV2TuneLimit
REAL
PV2 tuning limit scaled in the PV2 units. When Autotune is running and predicted PV2 exceeds this limit, the tuning will be aborted.
Valid = any float
Default=0
PV1AtuneTimeLimit
REAL
Maximum time in minutes for PV1 autotune to complete following the CV1 step change. When PV1 autotune exceeds this time, tuning will be aborted.
Valid range: any float > 0.
Default = 60 minutes
PV2AtuneTimeLimit
REAL
Maximum time in minutes for PV2 autotune to complete following the CV2 step change. When PV2 autotune exceeds this time, tuning will be aborted.
Valid range: any float > 0.
Default = 60 minutes
PV1NoiseLevel
DINT
An estimate of the noise level expected on the PV1 to compensate for it during tuning.
The selections are: 0=low, 1=medium, 2=high
Range: 0 through 2
Default=1
PV2NoiseLevel
DINT
An estimate of the noise level expected on the PV2 to compensate for it during tuning.
The selections are: 0=low, 1=medium, 2=high
Range: 0 through 2
Default=1
CV1StepSize
REAL
CV1 step size in percent for the tuning step test. Step size is directly added to CV1 subject to high/low limiting.
Range: -100% … 100%
Default=10%
CV2StepSize
REAL
CV2 step size in percent for the tuning step test. Step size is directly added to CV2 subject to high/low limiting.
Range: -100% … 100%
Default=10%
CV3StepSize
REAL
CV3 step size in percent for the tuning step test. Step size is directly added to CV3 subject to high/low limiting.
Range: -100% … 100%
Default=10%
CV1PV1ResponseSpeed
DINT
Desired speed of closed loop response for CV1 - PV1.
  • Slow response: ResponseSpeed=0
  • Medium response: ResponseSpeed=1
  • Fast response: ResponseSpeed=2
If ResponseSpeed is less than 0, Slow response is used. If ResponseSpeed is greater than 2, Fast response is used.
Range: 0…2
Default=1
CV2PV1ResponseSpeed
DINT
Desired speed of closed loop response for CV2 PV1.
  • Slow response: ResponseSpeed=0
  • Medium response: ResponseSpeed=1
  • Fast response: ResponseSpeed=2
If ResponseSpeed is less than 0, Slow response is used. If ResponseSpeed is greater than 2, Fast response is used.
Range: 0…2
Default=1
CV3PV1ResponseSpeed
DINT
Desired speed of closed loop response for CV3 PV1.
  • Slow response: ResponseSpeed=0
  • Medium response: ResponseSpeed=1
  • Fast response: ResponseSpeed=2
If ResponseSpeed is less than 0, Slow response is used. If ResponseSpeed is greater than 2, Fast response is used.
Range: 0 through 2
Default=1
CV1PV2ResponseSpeed
DINT
Desired speed of closed loop response for CV1 PV2.
  • Slow response: ResponseSpeed=0
  • Medium response: ResponseSpeed=1
  • Fast response: ResponseSpeed=2
If ResponseSpeed is less than 0, Slow response is used. If ResponseSpeed is greater than 2, Fast response is used.
Range: 0 through 2
Default=1
CV2PV2ResponseSpeed
DINT
Desired speed of closed loop response for CV2 PV2.
  • Slow response: ResponseSpeed=0
  • Medium response: ResponseSpeed=1
  • Fast response: ResponseSpeed=2
If ResponseSpeed is less than 0, Slow response is used. If ResponseSpeed is greater than 2, Fast response is used.
Range: 0 through 2
Default=1
CV3PV2ResponseSpeed
DINT
Desired speed of closed loop response for CV3 PV2.
  • Slow response: ResponseSpeed=0
  • Medium response: ResponseSpeed=1
  • Fast response: ResponseSpeed=2
If ResponseSpeed is less than 0, Slow response is used. If ResponseSpeed is greater than 2, Fast response is used.
Range: 0 through 2
Default=1
CV1PV1ModelInit
BOOL
Internal model initialization switch for CV1 - PV1. Refer to Function Block Attributes.
Default = FALSE
CV2PV1ModelInit
BOOL
Internal model initialization switch for CV2 - PV1. Refer to Function Block Attributes.
Default = FALSE
CV3PV1ModelInit
BOOL
Internal model initialization switch for CV3 - PV1. Refer to Function Block Attributes.
Default = FALSE
CV1PV2ModelInit
BOOL
Internal model initialization switch for CV1 - PV2. Refer to Function Block Attributes.
Default = FALSE
CV2PV2ModelInit
BOOL
Internal model initialization switch for CV2 - PV2. Refer to Function Block Attributes.
Default = FALSE
CV3PV2ModelInit
BOOL
Internal model initialization switch for CV3 - PV2. Refer to Function Block Attributes.
Default = FALSE
PV1Factor
REAL
Non-integrating model approximation factor for PV1. Only used for integrating process types.
Default = 100
PV2Factor
Non-integrating model approximation factor for PV2. Only used for integrating process types.
Default = 100
AtuneCV1Start
BOOL
Start Autotune request for CV1. Set True to initiate auto tuning of the CV1 output for both PV1 and PV2. Ignored when CV1 is not in Manual mode. The function block resets the input to FALSE.
Default = FALSE
AtuneCV2Start
BOOL
Start Autotune request for CV2. Set True to initiate auto tuning of the CV2 output for both PV1 and PV2. Ignored when CV2 is not in Manual mode. The function block resets the input to FALSE.
Default = FALSE
AtuneCV3Start
BOOL
Start Autotune request for CV3. Set True to initiate auto tuning of the CV3 output for both PV1 and PV2. Ignored when CV3 is not in Manual mode. The function block resets the input to FALSE.
Default = FALSE
AtuneCV1PV1UseModel
BOOL
Use Autotune model request for CV1 - PV1. Set True to replace the current model parameters with the calculated Autotune model parameters. The function block resets the input parameter to FALSE.
Default = FALSE
AtuneCV2PV1UseModel
BOOL
Use Autotune model request for CV2 - PV1. Set True to replace the current model parameters with the calculated Autotune model parameters. The function block resets the input parameter to FALSE.
Default = FALSE
AtuneCV3PV1UseModel
BOOL
Use Autotune model request for CV3 - PV1. Set True to replace the current model parameters with the calculated Autotune model parameters. The function block resets the input parameter to FALSE.
Default = FALSE
AtuneCV1PV2UseModel
BOOL
Use Autotune model request for CV1 - PV2. Set True to replace the current model parameters with the calculated Autotune model parameters. The function block resets the input parameter to FALSE.
Default = FALSE
AtuneCV2PV2UseModel
BOOL
Use Autotune model request for CV2 - PV2. Set True to replace the current model parameters with the calculated Autotune model parameters. The function block resets the input parameter to FALSE.
Default = FALSE
AtuneCV3PV2UseModel
BOOL
Use Autotune model request for CV3 - PV2. Set True to replace the current model parameters with the calculated Autotune model parameters. The function block resets the input parameter to FALSE.
Default = FALSE
AtuneCV1Abort
BOOL
Abort Autotune request for CV1. Set True to abort the auto tuning of CV1 output for both PV1 and PV2. The function block resets input parameter to FALSE.
Default = FALSE
AtuneCV2Abort
BOOL
Abort Autotune request for CV2. Set True to abort the auto tuning of CV2 output or both PV1 and PV2. The function block resets input parameter to FALSE.
Default = FALSE
AtuneCV3Abort
BOOL
Abort Autotune request for CV3. Set True to abort the auto tuning of CV3 output or both PV1 and PV2. The function block resets input parameter to FALSE.
Default = FALSE
The following table describes the output parameters in the MMC function block.
Output Parameters
Data Type
Description
Values
EnableOut
BOOL
Indicates if instruction is enabled. Cleared to false if any one of CV1EU, CV2EU or CV3EU overflows.
CV1EU
REAL
Scaled control variable output for CV1. Scaled by using CV1EUMax and CV1EUMin, where CV1EUMax corresponds to 100% and CV1EUMin corresponds to 0%. This output is typically used to control an analog output module or a secondary loop.
CV1EU = (CV1 * CV1EUSpan / 100) + CV1EUMin
CV1EU span calculation: CV1EUSpan = (CV1EUMax – CV1EUMin)
CV2EU
REAL
Scaled control variable output for CV2. Scaled by using CV2EUMax and CV2EUMin, where CV2EUMax corresponds to 100% and CV2EUMin corresponds to 0%. This output is typically used to control an analog output module or a secondary loop.
CV2EU = (CV2 * CV2EUSpan / 100) + CV2EUMin
CV2EU span calculation: CV2EUSpan = (CV2EUMax – CV2EUMin)
CV3EU
REAL
Scaled control variable output for CV3. Scaled by using CV3EUMax and CV3EUMin, where CV3EUMax corresponds to 100% and CV3EUMin corresponds to 0%. This output is typically used to control an analog output module or a secondary loop.
CV3EU = (CV3 * CV3EUSpan / 100) + CV3EUMin
CV3EU span calculation: CV3EUSpan = (CV3EUMax − CV3EUMin)
CV1
REAL
Control variable output for CV1. This value will always be expressed as 0…100%. CV1 is limited by CV1HLimit and CV1LLimit when in Auto mode or in Manual mode if CVManLimiting is TRUE; otherwise limited by 0 and 100%.
CV2
REAL
Control variable output for CV2. This value will always be expressed as 0…100%. CV2 is limited by CV2HLimit and CV2LLimit when in Auto mode or in Manual mode if CVManLimiting is TRUE; otherwise limited by 0 and 100%.
CV3
REAL
Control variable output for CV3. This value will always be expressed as 0…100%. CV3 is limited by CV3HLimit and CV3LLimit when in Auto mode or in Manual mode if CVManLimiting is TRUE; otherwise limited by 0 and 100%.
CV1Initializing
BOOL
Initialization mode indicator for CV1. Set TRUE when CV1InitReq, function blockFirstScan or OLCFirstRun, are TRUE, or on a TRUE to FALSE transition of CV1Fault (bad to good). CV1Initializing is set FALSE after the function block has been initialized and CV1InitReq is no longer TRUE.
CV2nitializing
BOOL
Initialization mode indicator for CV2. Set TRUE when CV2InitReq, function blockFirstScan or OLCFirstRun, are TRUE, or on a TRUE to FALSE transition of CV2Fault (bad to good). CV2Initializing is set FALSE after the function block has been initialized and CV2InitReq is no longer TRUE.
CV3nitializing
BOOL
Initialization mode indicator for CV3. Set TRUE when CV3InitReq, function blockFirstScan or OLCFirstRun, are TRUE, or on a TRUE to FALSE transition of CV3Fault (bad to good). CV3Initializing is set FALSE after the function block has been initialized and CV3InitReq is no longer TRUE.
CV1HAlarm
BOOL
CV1 high alarm indicator. TRUE when the calculated value for CV1 > 100 or CV1HLimit.
CV2HAlarm
BOOL
CV2 high alarm indicator. TRUE when the calculated value for CV2 > 100 or CV2HLimit.
CV3HAlarm
BOOL
CV3 high alarm indicator. TRUE when the calculated value for CV3 > 100 or CV3HLimit.
CV1LAlarm
BOOL
CV1 low alarm indicator. TRUE when the calculated value for CV1 < 0 or CV1LLimit.
CV2LAlarm
BOOL
CV2 low alarm indicator. TRUE when the calculated value for CV2 < 0 or CV2LLimit.
CV3LAlarm
BOOL
CV3 low alarm indicator. TRUE when the calculated value for CV3 < 0 or CV3LLimit.
CV1ROCPosAlarm
BOOL
CV1 rate of change alarm indicator. TRUE when the calculated rate of change for CV1 exceeds CV1ROCPosLimit.
CV2ROCPosAlarm
BOOL
CV2 rate of change alarm indicator. TRUE when the calculated rate of change for CV2 exceeds CV2ROCPosLimit.
CV3ROCPosAlarm
BOOL
CV3 rate of change alarm indicator. TRUE when the calculated rate of change for CV3 exceeds CV3ROCPosLimit.
CV1ROCNegAlarm
BOOL
CV1 rate of change alarm indicator. TRUE when the calculated rate of change for CV1 exceeds CV1ROCNegLimit.
CV2ROCNegAlarm
BOOL
CV2 rate of change alarm indicator. TRUE when the calculated rate of change for CV2 exceeds CV2ROCNegLimit.
CV3ROCNegAlarm
BOOL
CV3 rate of change alarm indicator. TRUE when the calculated rate of change for CV3 exceeds CV3ROCNegLimit.
SP1
REAL
Current setpoint 1 value. The value of SP1 is used to control CV when in the Auto or the PV1 Tracking mode, scaled in PV1 units.
SP2
REAL
Current setpoint 2 value. The value of SP2 is used to control CV when in the Auto or the PV2 Tracking mode, scaled in PV2 units.
SP1Percent
REAL
The value of SP1 expressed in percent of span of PV1.
SP1Percent = ((SP1 − PV1EUMin ) * 100) / PV1Span
where PV1Span = PV1EUMax – PV1EUMin
SP2Percent
The value of SP2 expressed in percent of span of PV2.
SP2Percent = ((SP2 − PV2EUMin ) * 100) / PV2Span
where PV2Span = PV2EUMax – PV1EUMin
SP1HAlarm
BOOL
SP1 high alarm indicator. TRUE when the SP1 >= SP1HLimit.
SP2HAlarm
BOOL
SP2 high alarm indicator. TRUE when the SP2 >= SP2HLimit.
SP1LAlarm
BOOL
SP1 low alarm indicator. TRUE when the SP1 <= SP1LLimit.
SP2LAlarm
BOOL
SP2 low alarm indicator. TRUE when the SP2 <= SP2LLimit.
PV1Percent
REAL
PV1 expressed in percent of span.
PV1Percent = (( PV1 − PV1EUMin ) * 100) / PV1Span
PV1 Span calculation: PV1Span =
( PV1EUMax - PV1EUMin )
PV2Percent
REAL
PV2 expressed in percent of span.
PV2Percent = (( PV2 − PV2EUMin ) * 100) / PV2Span
PV2 Span calculation: PV2Span =
( PV2EUMax − PV2EUMin )
E1
REAL
Process1 error. Difference between SP1 and PV1, scaled in PV1 units.
E2
REAL
Process2 error. Difference between SP2 and PV2, scaled in PV2 units.
E1Percent
REAL
The error expressed as a percent of span for process 1.
E2Percent
REAL
The error expressed as a percent of span for process 2.
CV1WindupHOut
BOOL
CV1 Windup high indicator.
CV1WindupHOut is set to true when
  • SP1HAlarm or SP2HAlarm is true or
  • ModelGain is positive and CV1HAlarm is true or
  • ModelGain is negative and CV1LAlarm is true.
This signal will typically be used by the WindupHIn input to limit the windup of the CV1 output on a primary loop.
CV2WindupHOut
BOOL
CV2 Windup high indicator.
CV2WindupHOut is set to true when
  • SP1HAlarm or SP2HAlarm is true or
  • ModelGain is positive and CV2HAlarm is true or
  • ModelGain is negative and CV2LAlarm is true.
This signal will typically be used by the WindupHIn input to limit the windup of the CV2 output on a primary loop.
CV3WindupHOut
BOOL
CV3 Windup high indicator.
CV3WindupHOut is set to true when
  • SP1HAlarm or SP2HAlarm is true or
  • ModelGain is positive and CV3HAlarm is true or
  • ModelGain is negative and CV3LAlarm is true.
This signal will typically be used by the WindupHIn input to limit the windup of the CV3 output on a primary loop.
CV1WindupLOut
BOOL
CV1 Windup low indicator.
CV1WindupLOut is set to true when
  • SP1LAlarm or SP2LAlarm is true or
  • ModelGain is positive and CV1LAlarm is true or
  • ModelGain is negative and CV1HAlarm is true.
This signal will typically be used by the WindupLIn input to limit the windup of the CV1 output on a primary loop.
CV2WindupLOut
BOOL
CV2 Windup low indicator.
CV2WindupLOut is set to true when
  • SP1LAlarm or SP2LAlarm is true or
  • ModelGain is positive and CV2LAlarm is true or
  • ModelGain is negative and CV2HAlarm is true.
This signal will typically be used by the WindupLIn input to limit the windup of the CV2 output on a primary loop.
CV3WindupLOut
BOOL
CV3 Windup low indicator.
CV3WindupLOut is set to true when
  • SP1LAlarm or SP2LAlarm is true or
  • ModelGain is positive and CV3LAlarm is true or
  • ModelGain is negative and CV3HAlarm is true.
This signal will typically be used by the WindupLIn input to limit the windup of the CV3 output on a primary loop.
ProgOper
BOOL
Program/Operator control indicator. TRUE when in Program control. FALSE when in Operator control.
CV1Auto
BOOL
Auto mode indicator for CV1. TRUE when CV1 in the Auto mode.
CV2Auto
BOOL
Auto mode indicator for CV2. TRUE when CV2 in the Auto mode.
CV2Auto
BOOL
Auto mode indicator for CV3. TRUE when CV3 in the Auto mode.
CV1Manual
BOOL
Manual mode indicator for CV1. TRUE when CV1 in the Manual mode.
CV2Manual
BOOL
Manual mode indicator for CV2. TRUE when CV2 in the Manual mode.
CV3Manual
BOOL
Manual mode indicator for CV3. TRUE when CV3 in the Manual mode.
CV1Override
BOOL
Override mode indicator for CV1. TRUE when CV1 in the Override mode.
CV2Override
BOOL
Override mode indicator for CV2. TRUE when CV2 in the Override mode.
CV3Override
BOOL
Override mode indicator for CV3. TRUE when CV3 in the Override mode.
CV1Hand
BOOL
Hand mode indicator for CV1. TRUE when CV1 in the Hand mode.
CV2Hand
BOOL
Hand mode indicator for CV2. TRUE when CV2 in the Hand mode.
CV3Hand
BOOL
Hand mode indicator for CV3. TRUE when CV3 in the Hand mode.
DeltaT
REAL
Elapsed time between updates in seconds.
CV1StepSizeUsed
REAL
Actual CV1 step size used for tuning.
CV2StepSizeUsed
REAL
Actual CV2 step size used for tuning.
CV3StepSizeUsed
REAL
Actual CV3 step size used for tuning.
CV1PV1GainTuned
REAL
The calculated value of the internal model gain for CV1 - PV1 after tuning is completed.
CV2PV1GainTuned
REAL
The calculated value of the internal model gain for CV2 - PV1 after tuning is completed.
CV3PV1GainTuned
REAL
The calculated value of the internal model gain for CV3 - PV1 after tuning is completed.
CV1PV2GainTuned
REA:
The calculated value of the internal model gain for CV1 - PV2 after tuning is completed.
CV2PV2GainTuned
REAL
The calculated value of the internal model gain for CV2 - PV2 after tuning is completed.
CV3PV2GainTuned
REA:
The calculated value of the internal model gain for CV3 - PV2 after tuning is completed.
CV1PV1TCTuned
REAL
The calculated value of the internal model time constant for CV1 - PV1 after tuning is completed.
CV2PV1TCTuned
REAL
The calculated value of the internal model time constant for CV2 - PV1 after tuning is completed.
CV3PV1TCTuned
REAL
The calculated value of the internal model time constant for CV3 - PV1 after tuning is completed.
CV1PV2TCTuned
REAL
The calculated value of the internal model time constant for CV1 - PV2 after tuning is completed.
CV2PV2TCTuned
REAL
The calculated value of the internal model time constant for CV2 - PV2 after tuning is completed.
CV3PV2TCTuned
REAL
The calculated value of the internal model time constant for CV3 - PV2 after tuning is completed.
CV1PV1DTTuned
REAL
The calculated value of the internal model deadtime for CV1 - PV1 after tuning is completed.
CV2PV1DTTuned
REAL
The calculated value of the internal model deadtime for CV2 - PV1 after tuning is completed.
CV3PV1DTTuned
REAL
The calculated value of the internal model deadtime for CV3 - PV1 after tuning is completed.
CV1PV2DTTuned
REAL
The calculated value of the internal model deadtime for CV1 - PV2 after tuning is completed.
CV2PV2DTTuned
REAL
The calculated value of the internal model deadtime for CV2 - PV2 after tuning is completed.
CV3PV2DTTuned
REAL
The calculated value of the internal model deadtime for CV3 - PV2 after tuning is completed.
CV1PV1RespTCTunedS
REAL
The calculated value of the control variable time constant in slow response speed for CV1 - PV1 after tuning is completed.
CV2PV1RespTCTunedS
REAL
The calculated value of the control variable time constant in slow response speed for CV2 - PV1 after tuning is completed.
CV3PV1RespTCTunedS
REAL
The calculated value of the control variable time constant in slow response speed for CV3 - PV1 after tuning is completed.
CV1PV2RespTCTunedS
REAL
The calculated value of the control variable time constant in slow response speed for CV1 - PV2 after tuning is completed.
CV2PV2RespTCTunedS
REAL
The calculated value of the control variable time constant in slow response speed for CV2 - PV2 after tuning is completed.
CV3PV2RespTCTunedS
REAL
The calculated value of the control variable time constant in slow response speed for CV3 - PV2 after tuning is completed.
CV1PV1RespTCTunedM
REAL
The calculated value of the control variable time constant in medium response speed for CV1 - PV1 after tuning is completed.
CV2PV1RespTCTunedM
REAL
The calculated value of the control variable time constant in medium response speed for CV2 - PV1 after tuning is completed.
CV3PV1RespTCTunedM
REAL
The calculated value of the control variable time constant in medium response speed for CV3 - PV1 after tuning is completed.
CV1PV2RespTCTunedM
REAL
The calculated value of the control variable time constant in medium response speed for CV1 - PV2 after tuning is completed.
CV2PV2RespTCTunedM
REAL
The calculated value of the control variable time constant in medium response speed for CV2 - PV2 after tuning is completed.
CV3PV2RespTCTunedM
REAL
The calculated value of the control variable time constant in medium response speed for CV3 - PV2 after tuning is completed.
CV1PV1RespTCTunedF
REAL
The calculated value of the control variable time constant in fast response speed for CV1 - PV1 after tuning is completed.
CV2PV1RespTCTunedF
REAL
The calculated value of the control variable time constant in fast response speed for CV2 - PV1 after tuning is completed.
CV3PV1RespTCTunedF
REAL
The calculated value of the control variable time constant in fast response speed for CV3 - PV1 after tuning is completed.
CV1PV2RespTCTunedF
REAL
The calculated value of the control variable time constant in fast response speed for CV1 - PV2 after tuning is completed.
CV2PV2RespTCTunedF
REAL
The calculated value of the control variable time constant in fast response speed for CV2 - PV2 after tuning is completed.
CV3PV2RespTCTunedF
REAL
The calculated value of the control variable time constant in fast response speed for CV3 - PV2 after tuning is completed.
AtuneCV1PV1On
BOOL
Set True when auto tuning for CV1 - PV1 has been initiated.
AtuneCV2PV1On
BOOL
Set True when auto tuning for CV2 - PV1 has been initiated.
AtuneCV3PV1On
BOOL
Set True when auto tuning for CV3 - PV1 has been initiated.
AtuneCV1PV1Done
BOOL
Set True when auto tuning for CV1 - PV1 has completed successfully.
AtuneCV2PV1Done
BOOL
Set True when auto tuning for CV2 - PV1 has completed successfully.
AtuneCV3PV1Done
BOOL
Set True when auto tuning for CV3 - PV1 has completed successfully.
AtuneCV1PV1Aborted
BOOL
Set True when auto tuning for CV1 - PV1 has been aborted by user or due to errors that occurred during the auto tuning operation.
AtuneCV2PV1Aborted
BOOL
Set True when auto tuning for CV2 - PV1 has been aborted by user or due to errors that occurred during the auto tuning operation.
AtuneCV3PV1Aborted
BOOL
Set True when auto tuning for CV3 PV1 has been aborted by user or due to errors that occurred during the auto tuning operation.
AtuneCV1PV2On
BOOL
Set True with auto tuning for CV1 - PV2 has be initiated.
AtuneCV2PV2On
BOOL
Set True with auto tuning for CV2 - PV2 has be initiated.
AtuneCV3PV2On
BOOL
Set True with auto tuning for CV3 - PV2 has be initiated.
AtuneCV1PV2Done
BOOL
Set True when auto tuning for CV1 - PV2 has completed successfully.
AtuneCV2PV2Done
BOOL
Set True when auto tuning for CV2 - PV2 has completed successfully.
AtuneCV3PV2Done
BOOL
Set True when auto tuning for CV3 - PV2 has completed successfully.
ATuneCV1PV2Aborted
BOOL
Set True when auto tuning for CV1-PV2 has been aborted by user or due to errors that occurred during the auto tuning operation.
ATuneCV2PV2Aborted
BOOL
Set True when auto tuning for CV2-PV2 has been aborted by user or due to errors that occurred during the auto tuning operation.
ATuneCV3PV2Aborted
BOOL
Set True when auto tuning for CV3-PV2 has been aborted by user or due to errors that occurred during the auto tuning operation.
AtuneCV1PV1Status
DINT
Bit mapped status for CV1 - PV1. A value of 0 indicates that no faults have occurred.
AtuneCV2PV1Status
DINT
Bit mapped status for CV2 - PV1. A value of 0 indicates that no faults have occurred.
AtuneCV3PV1Status
DINT
Bit mapped status for CV3 - PV1.
A value of 0 indicates that no faults have occurred.
AtuneCV1PV2Status
DINT
Bit mapped status for CV1 - PV2. A value of 0 indicates that no faults have occurred.
AtuneCV2PV2Status
DINT
Bit mapped status for CV2 - PV2. A value of 0 indicates that no faults have occurred.
AtuneCV3PV2Status
DINT
Bit mapped status for CV3 - PV2. A value of 0 indicates that no faults have occurred.
AtuneCV1PV1Fault
BOOL
CV1 - PV1 Autotune has generated any of the following faults.
Bit 0 of AtuneCV1PV1Status
AtuneCV2PV1Fault
BOOL
CV2 - PV1 Autotune has generated any of the following faults.
Bit 0 of AtuneCV2PV1Status
AtuneCV3PV1Fault
BOOL
CV3 - PV1 Autotune has generated any of the following faults.
Bit 0 of AtuneCV3PV1Status
AtuneCV1PV1OutOfLimit
BOOL
Either PV1 or the deadtime-step ahead prediction of PV1 exceeds PV1TuneLimit during CV1 - PV1 Autotuning. When True, CV1 - PV1 Autotuning is aborted.
Bit 1 of AtuneCV1PV1Status
AtuneCV2PV1OutOfLimit
BOOL
Either PV1 or the deadtime-step ahead prediction of PV1 exceeds PV1TuneLimit during CV2 - PV1 Autotuning. When True, CV2 - PV1 Autotuning is aborted.
Bit 1 of AtuneCV2PV1Status
AtuneCV3PV1OutOfLimit
BOOL
Either PV1 or the deadtime-step ahead prediction of PV1 exceeds PV1TuneLimit during CV3 - PV1 Autotuning. When True, CV3 - PV1 Autotuning is aborted.
Bit 1 of AtuneCV3PV1Status
AtuneCV1PV1ModeInv
BOOL
The MMC mode was not Manual at start of Autotuning or the MMC mode was changed from Manual during CV1 - PV1 Autotuning. When True, CV1 - PV1 Autotuning is not started or is aborted.
Bit 2 of AtuneCV1PV1Status
AtuneCV2PV1ModeInv
BOOL
The MMC mode was not Manual at start of Autotuning or the MMC mode was changed from Manual during CV2 - PV1 Autotuning. When True, CV2 - PV1 Autotuning is not started or is aborted.
Bit 2 of AtuneCV2PV1Status
AtuneCV3PV1ModeInv
BOOL
The MMC mode was not Manual at start of Autotuning or the MMC mode was changed from Manual during CV3 - PV1 Autotuning. When True, CV3 - PV1 Autotuning is not started or is aborted.
Bit 2 of AtuneCV3PV1Status
AtuneCV1PV1WindupFault
BOOL
CV1WindupHIn or CV1WindupLIn is True at start of CV1 - PV1 Autotuning or during CV1 - PV1 Autotuning. When True, CV1 - PV1 Autotuning is not started or is aborted.
Bit 3 of AtuneCV1PV1Status
AtuneCV2PV1WindupFault
BOOL
CV2WindupHIn or CV2WindupLIn is True at start of CV2 - PV1 Autotuning or during CV2 - PV1 Autotuning. When True, CV2 - PV1 Autotuning is not started or is aborted.
Bit 3 of AtuneCV2PV1Status
AtuneCV3PV1WindupFault
BOOL
CV3WindupHIn or CV3WindupLIn is True at start of CV3 - PV1 Autotuning or during CV3 - PV1 Autotuning. When True, CV3 - PV1 Autotuning is not started or is aborted.
Bit 3 of AtuneCV3PV1Status
AtuneCV1PV1StepSize0
BOOL
CV1StepSizeUsed = 0 at start of CV1 - PV1 Autotuning. When True, CV1 - PV1 Autotuning is not started.
Bit 4 of AtuneCV1PV1Status
AtuneCV2PV1StepSize0
BOOL
CV2StepSizeUsed = 0 at start of CV2 - PV1 Autotuning. When True, CV2 - PV1 Autotuning is not started.
Bit 4 of AtuneCV2PV1Status
AtuneCV3PV1StepSize0
BOOL
CV3StepSizeUsed = 0 at start of CV3 - PV1 Autotuning. When True, CV3 - PV1 Autotuning is not started.
Bit 4 of AtuneCV3PV1Status
AtuneCV1PV1LimitsFault
BOOL
CV1LimitsInv and CVManLimiting are True at start of CV1 - PV1 Autotuning or during CV1 - PV1 Autotuning. When True, CV1 - PV1 Autotuning is not started or is aborted.
Bit 5 of AtuneCV1PV1Status
AtuneCV2PV1LimitsFault
BOOL
CV2LimitsInv and CVManLimiting are True at start of CV2 - PV1 Autotuning or during CV2 - PV1 Autotuning. When True, CV2 _PV1 Autotuning is not started or is aborted.
Bit 5 of AtuneCV2PV1Status
AtuneCV3PV1LimitsFault
BOOL
CV3LimitsInv and CVManLimiting are True at start of CV3 - PV1 Autotuning or during CV3 - PV1 Autotuning. When True, CV3 - PV1 Autotuning is not started or is aborted.
Bit 5 of AtuneCV3PV1Status
AtuneCV1PV1InitFault
BOOL
CV1Initializing is True at start of CV1 - PV1 Autotuning or during CV1 - PV1 Autotuning. When True, CV1 - PV1 Autotuning is not started or is aborted.
Bit 6 of AtuneCV1PV1Status
AtuneCV2PV1InitFault
BOOL
CV2Initializing is True at start of CV2 - PV1 Autotuning or during CV2 - PV1 Autotuning. When True, CV2 - PV1 Autotuning is not started or is aborted.
Bit 6 of AtuneCV2PV1Status
AtuneCV3PV1InitFault
BOOL
CV3Initializing is True at start of CV3 - PV1 Autotuning or during CV3 - PV1 Autotuning. When True, CV3 - PV1 Autotuning is not started or is aborted.
Bit 6 of AtuneCV3PV1Status
AtuneCV1PV1EUSpanChanged
BOOL
CV1EUSpan or PV1EUSpan changes during CV1 - PV1 Autotuning. When True, CV1 - PV1 Autotuning is aborted.
Bit 7 of AtuneCV1PV1Status
AtuneCV2PV1EUSpanChanged
BOOL
CV2EUSpan or PV1EUSpan changes during CV2 - PV1 Autotuning. When True, CV2 - PV1 Autotuning is aborted.
Bit 7 of AtuneCV2PV1Status
AtuneCV3PV1EUSpanChanged
BOOL
CV3EUSpan or PV1EUSpan changes during CV3 - PV1 Autotuning. When True, CV3 - PV1 Autotuning is aborted.
Bit 7 of AtuneCV3PV1Status
AtuneCV1PV1Changed
BOOL
CV1Oper is changed when in Operator control or CV1Prog is changed when in Program control or CV1 becomes high/low or ROC limited during CV1 - PV1 Autotuning. When True, CV1 - PV1 Autotuning is aborted.
Bit 8 of AtuneCV1PV1Status
AtuneCV2PV1Changed
BOOL
CV2Oper is changed when in Operator control or CV2Prog is changed when in Program control or CV2 becomes high/low or ROC limited during CV2 - PV1 Autotuning. When True, CV2 - PV1 Autotuning is aborted.
Bit 8 of AtuneCV2PV1Status
AtuneCV3PV1Changed
BOOL
CV3Oper is changed when in Operator control or CV3Prog is changed when in Program control or CV3 becomes high/low or ROC limited during CV3 - PV1 Autotuning. When True, CV3 - PV1 Autotuning is aborted.
Bit 8 of AtuneCV3PV1Status
AtuneCV1PV1Timeout
BOOL
Elapsed time is greater then PV1AtuneTimeLimit since step test is started. When True, CV1 - PV1 Autotuning is aborted.
Bit 9 of AtuneCV1PV1Status
AtuneCV2PV1Timeout
BOOL
Elapsed time is greater then PV1AtuneTimeLimit since step test is started. When True, CV2 - PV1 Autotuning is aborted.
Bit 9 of AtuneCV2PV1Status
AtuneCV3PV1Timeout
BOOL
Elapsed time is greater then PV1AtuneTimeLimit since step test is started. When True, CV3 - PV1 Autotuning is aborted.
Bit 9 of AtuneCV3PV1Status
AtuneCV1PV1NotSettled
BOOL
The PV1 is changed too much to Autotune for CV1 - PV1. When True, CV1 - PV1 Autotuning is aborted. Wait until PV1 is more stable before autotuning CV1 - PV1.
Bit 10 of AtuneCV1PV1Status
AtuneCV2PV1NotSettled
BOOL
The PV1 is changed too much to Autotune for CV2 - PV1. When True, CV2 - PV1 Autotuning is aborted. Wait until PV1 is more stable before autotuning CV2 - PV1.
Bit 10 of AtuneCV2PV1Status
AtuneCV3PV1NotSettled
BOOL
The PV1 is changed too much to Autotune for CV3 - PV1. When True, CV3 - PV1 Autotuning is aborted. Wait until PV1 is more stable before autotuning CV3 - PV1.
Bit 10 of AtuneCV3PV1Status
AtuneCV1PV2Fault
BOOL
CV1 - PV2 Autotune has generated any of the following faults.
Bit 0 of AtuneCV1PV2Status
AtuneCV2PV2Faul
BOOL
CV2 - PV2 Autotune has generated any of the following faults.
Bit 0 of AtuneCV2PV2Status
AtuneCV3PV2Fault
BOOL
CV3 - PV2 Autotune has generated any of the following faults.
Bit 0 of AtuneCV3PV2Status
AtuneCV1PV2OutOfLimit
BOOL
Either PV2 or the deadtime-step ahead prediction of PV2 exceeds PV2TuneLimit during CV1 - PV2 Autotuning. When True, CV1 - PV2 Autotuning is aborted.
Bit 1 of AtuneCV1PV2Status
AtuneCV2PV2OutOfLimit
BOOL
Either PV2 or the deadtime-step ahead prediction of PV2 exceeds PV2TuneLimit during CV2 - PV2 Autotuning. When True, CV2 - PV2 Autotuning is aborted.
Bit 1 of AtuneCV2PV2Status
AtuneCV3PV2OutOfLimit
BOOL
Either PV2 or the deadtime-step ahead prediction of PV2 exceeds PV2TuneLimit during CV3 - PV2 Autotuning. When True, CV3 - PV2 Autotuning is aborted.
Bit 1 of AtuneCV3PV2Status
AtuneCV1PV2ModeInv
BOOL
The MMC mode was not Manual at start of Autotuning or the MMC mode was changed from Manual during CV1-PV2 Autotuning. When True, CV1-PV2 Autotuning is not started or is aborted.
Bit 2 of AtuneCV1PV2Status
AtuneCV2PV2ModeInv
BOOL
The MMC mode was not Manual at start of Autotuning or the MMC mode was changed from Manual during CV2-PV2 Autotuning. When True, CV2-PV2 Autotuning is not started or is aborted.
Bit 2 of AtuneCV2PV2Status
AtuneCV3PV2ModeInv
BOOL
The MMC mode was not Manual at start of Autotuning or the MMC mode was changed from Manual during CV3-PV2 Autotuning. When True, CV3-PV2 Autotuning is not started or is aborted.
Bit 2 of AtuneCV3PV2Status
AtuneCV1PV2WindupFault
BOOL
CV1WindupHIn or CV1WindupLIn is True at start of CV1 - PV2 Autotuning or during CV1 - PV2 Autotuning. When True, CV1 - PV2 Autotuning is not started or is aborted.
Bit 3 of AtuneCV1PV2Status
AtuneCV2PV2WindupFault
BOOL
CV2WindupHIn or CV2WindupLIn is True at start of CV2 - PV2 Autotuning or during CV2 - PV2 Autotuning. When True, CV2 - PV2 Autotuning is not started or is aborted.
Bit 3 of AtuneCV2PV2Status
AtuneCV3PV2WindupFault
BOOL
CV3WindupHIn or CV3WindupLIn is True at start of CV3 - PV2 Autotuning or during CV3 - PV2 Autotuning. When True, CV3 - PV2 Autotuning is not started or is aborted.
Bit 3 of AtuneCV3PV2Status
AtuneCV1PV2StepSize0
BOOL
CV1StepSizeUsed = 0 at start of CV1 - PV2 Autotuning. When True, CV1 - PV2 Autotuning is not started.
Bit 4 of AtuneCV1PV2Status
AtuneCV2PV2StepSize0
BOOL
CV2StepSizeUsed = 0 at start of CV2 - PV2 Autotuning. When True, CV2 - PV2 Autotuning is not started.
Bit 4 of AtuneCV2PV2Status
AtuneCV3PV2StepSize0
BOOL
CV3StepSizeUsed = 0 at start of CV3 - PV2 Autotuning. When True, CV3 - PV2 Autotuning is not started.
Bit 4 of AtuneC3PV2Status
AtuneCV1PV2LimitsFault
BOOL
CV1LimitsInv and CVManLimiting are True at start of CV1 - PV2 Autotuning or during CV1 - PV2 Autotuning. When True, CV1 - PV2 Autotuning is not started or is aborted.
Bit 5 of AtuneCV1PV2Status
AtuneCV2PV2LimitsFault
BOOL
CV2LimitsInv and CVManLimiting are True at start of CV2 - PV2 Autotuning or during CV2 - PV2 Autotuning. When True, CV2 - PV2 Autotuning is not started or is aborted.
Bit 5 of AtuneCV2PV2Status
AtuneCV3PV2LimitsFault
BOOL
CV3LimitsInv and CVManLimiting are True at start of CV3 - PV2 Autotuning or during CV3 - PV2 Autotuning. When True, CV3 - PV2 Autotuning is not started or is aborted.
Bit 5 of AtuneCV3PV2Status
AtuneCV1PV2InitFault
BOOL
CV1Initializing is True at start of CV1 - PV2 Autotuning or during CV1 - PV2 Autotuning. When True, CV1 - PV2 Autotuning is not started or is aborted.
Bit 6 of AtuneCV1PV2Status
AtuneCV2PV2InitFault
BOOL
CV2Initializing is True at start of CV2 - PV2 Autotuning or during CV2 - PV2 Autotuning. When True, CV2 - PV2 Autotuning is not started or is aborted.
Bit 6 of AtuneCV2PV2Status
AtuneCV3PV2InitFault
BOOL
CV3Initializing is True at start of CV3 - PV2 Autotuning or during CV3 - PV2 Autotuning. When True, CV3 - PV2 Autotuning is not started or is aborted.
Bit 6 of AtuneCV3PV2Status
AtuneCV1PV2EUSpanChanged
BOOL
CV1EUSpan or PV2EUSpan changes during CV1 - PV2 Autotuning. When True, CV1 - PV2 Autotuning is aborted.
Bit 7 of AtuneCV1PV2Status
AtuneCV2PV2EUSpanChanged
BOOL
CV2EUSpan or PV2EUSpan changes during CV2 - PV2 Autotuning. When True, CV2 - PV2 Autotuning is aborted.
Bit 7 of AtuneCV2PV2Status
AtuneCV3PV2EUSpanChanged
BOOL
CV3EUSpan or PV2EUSpan changes during CV2 - PV3 Autotuning. When True, CV3 - PV2 Autotuning is aborted.
Bit 7 of AtuneCV3PV2Status
AtuneCV1PV2Changed
BOOL
CV1Oper is changed when in Operator control or CV1Prog is changed when in Program control or CV1 becomes high/low or ROC limited during CV1 - PV2 Autotuning. When True, CV1 - PV2 Autotuning is aborted.
Bit 8 of AtuneCV1PV2Status
AtuneCV2PV2Changed
BOOL
CV2Oper is changed when in Operator control or CV2Prog is changed when in Program control or CV2 becomes high/low or ROC limited during CV2 - PV2 Autotuning. When True, CV2 - PV2 Autotuning is aborted.
Bit 8 of AtuneCV2PV2Status
AtuneCV3PV2Changed
BOOL
CV3Oper is changed when in Operator control or CV3Prog is changed when in Program control or CV3 becomes high/low or ROC limited during CV3 - PV2 Autotuning. When True, CV3 - PV2 Autotuning is aborted.
Bit 8 of AtuneCV3PV2Status
AtuneCV1PV2Timeout
BOOL
Elapsed time is greater then PV2AtuneTimeLimit since step test is started. When True, CV1 - PV2 Autotuning is aborted.
Bit 9 of AtuneCV1PV2Status
AtuneCV2PV2Timeout
BOOL
Elapsed time is greater then PV2AtuneTimeLimit since step test is started. When True, CV2 - PV2 Autotuning is aborted.
Bit 9 of AtuneCV2PV2Status
AtuneCV3PV2Timeout
BOOL
Elapsed time is greater then PV2AtuneTimeLimit since step test is started. When True, CV3 - PV2 Autotuning is aborted.
Bit 9 of AtuneCV3PV2Status
AtuneCV1PV2NotSettled
BOOL
The PV2 is changed too much to Autotune for CV1-PV2. When True, CV1-PV2 Autotuning is aborted. Wait until PV2 is more stable before autotuning CV1-PV2.
Bit 10 of AtuneCV1PV2Status
AtuneCV2PV2NotSettled
BOOL
The PV2 is changed too much to Autotune for CV2-PV2. When True, CV2-PV2 Autotuning is aborted. Wait until PV2 is more stable before autotuning CV2-PV2.
Bit 10 of AtuneCV2PV2Status
AtuneCV3PV2NotSettled
BOOL
The PV2 is changed too much to Autotune for CV3-PV2. When True, CV3-PV2 Autotuning is aborted. Wait until PV2 is more stable before autotuning CV3-PV2.
Bit 10 of AtuneCV3PV2Status
Status1
DINT
Bit mapped status of the function block. A value of 0 indicates that no faults have occurred. Any parameter that could be configured with an invalid value must have a status parameter bit to indicate its invalid status.
Status2
DINT
Additional bit mapped status for the function block. A value of 0 indicates that no faults have occurred. Any parameter that could be configured with an invalid value must have a status parameter bit to indicate its invalid status.
Status3CV1
DINT
Additional bit mapped CV1 status for the function block. A value of 0 indicates that no faults have occurred.
Status3CV2
DINT
Additional bit mapped CV2 status for the function block. A value of 0 indicates that no faults have occurred.
Status3CV3
DINT
Additional bit mapped CV3 status for the function block. A value of 0 indicates that no faults have occurred.
InstructFault
BOOL
The function block has generated a fault. Indicates state of bits in Status1, Status2, and Status3CV(n), where (n) can be 1, 2, or 3.
Bit 0 of Status1
PV1Faulted
BOOL
Process variable PV1 health bad.
Bit 1 of Status1
PV2Faulted
BOOL
Process variable PV2 health bad.
Bit 2 of Status1
PV1SpanInv
BOOL
The span of PV1 inValid, PV1EUMax < PV1EUMin.
Bit 3 of Status1
PV2SpanInv
BOOL
The span of PV2 inValid, PV2EUMax < PV2EUMin.
Bit 4 of Status1
SP1ProgInv
BOOL
SP1Prog < SP1LLimit or > SP1HLimit. Limit value used for SP1.
Bit 5 of Status1
SP2ProgInv
BOOL
SP2Prog < SP2LLimit or > SP2HLimit. Limit value used for SP2.
Bit 6 of Status1
SP1OperInv
BOOL
SP1Oper < SP1LLimit or > SP1HLimit. Limit value used for SP1.
Bit 7 of Status1
SP2OperInv
BOOL
SP2Oper < SP2LLimit or > SP2HLimit. Limit value used for SP2.
Bit 8 of Status1
SP1LimitsInv
BOOL
Limits inValid: SP1LLimit < PV1EUMin, SP1HLimit > PV1EUMax, or SP1HLimit < SP1LLimit. If SP1HLimit < SP1LLimit, then limit value by using SP1LLimit.
Bit 9 of Status1
SP2LimitsInv
BOOL
Limits inValid: SP2LLimit < PV2EUMin, SP2HLimit > PV2EUMax, or SP2HLimit < SP2LLimit. If SP2HLimit < SP2LLimit, then limit value by using SP2LLimit.
Bit 10 of Status1
SampleTimeTooSmall
BOOL
Model DeadTime / DeltaT must be less than or equal to 200.
Bit 11 of Status1
PV1FactorInv
BOOL
Entered value for Factor1 < 0.
Bit 12 of Status1
PV2FactorInv
BOOL
Entered value for Factor2 < 0.
Bit 13 of Status1
TimingModeInv
BOOL
Entered TimingMode inValid. If the current mode is not Override or Hand then set to Manual mode.
Bit 27 of Status2
RTSMissed
BOOL
Only used when in Real Time Sampling mode. Is TRUE when ABS(DeltaT – RTSTime) > 1 millisecond.
Bit 28 of Status2.
RTSTimeInv
BOOL
Entered RTSTime inValid.
Bit 29 of Status2.
RTSTimeStampInv
BOOL
RTSTimeStamp inValid. If the current mode is not Override or Hand, then set to Manual mode.
Bit 30 of Status2.
DeltaTInv
BOOL
DeltaT inValid. If the current mode is not Override or Hand then set to Manual mode.
Bit 31 of Status2.
CV1Faulted
BOOL
Control variable CV1 health bad.
Bit 0 of Status3CV1
CV2Faulted
BOOL
Control variable CV2 health bad.
Bit 0 of Status3CV2
CV3Faulted
BOOL
Control variable CV3 health bad.
Bit 0 of Status3CV3
CV1HandFBFaulted
BOOL
CV1 HandFB value health bad.
Bit 1 of Status3CV1
CV2HandFBFaulted
BOOL
CV2 HandFB value health bad.
Bit 1 of Status3CV2
CV3HandFBFaulted
BOOL
CV3 HandFB value health bad.
Bit 1 of Status3CV3
CV1ProgInv
BOOL
CV1Prog < 0 or > 100, or < CV1LLimit or > CV1HLimit when CVManLimiting is TRUE. Limit value used for CV1.
Bit 2 of Status3CV1
CV2ProgInv
BOOL
CV2Prog < 0 or > 100, or < CV2LLimit or > CV2HLimit when CVManLimiting is TRUE. Limit value used for CV2.
Bit 2 of Status3CV2
CV3ProgInv
BOOL
CV3Prog < 0 or > 100, or < CV3LLimit or > CV3HLimit when CVManLimiting is TRUE. Limit value used for CV3.
Bit 2 of Status3CV3
CV1OperInv
BOOL
CV1Oper < 0 or > 100, or < CV1LLimit or > CV1HLimit when CVManLimiting is TRUE. Limit value used for CV1.
Bit 3 of Status3CV1
CV2OperInv
BOOL
CV2Oper < 0 or > 100, or < CV2LLimit or > CV2HLimit when CVManLimiting is TRUE. Limit value used for CV2.
Bit 3 of Status3CV2
CV3OperInv
BOOL
CV3Oper < 0 or > 100, or < CV3LLimit or > CV3HLimit when CVManLimiting is TRUE. Limit value used for CV3.
Bit 3 of Status3CV3
CV1OverrideValueInv
BOOL
CV1OverrideValue < 0 or > 100. Limit value used for CV1.
Bit 4 of Status3CV1
CV2OverrideValueInv
BOOL
CV2OverrideValue < 0 or > 100. Limit value used for CV2.
Bit 4 of Status3CV2
CV3OverrideValueInv
BOOL
CV3OverrideValue < 0 or > 100. Limit value used for CV3.
Bit 4 of Status3CV3
CV1EUSpanInv
BOOL
The span of CV1EU invalid, CV1EUMax equals CV1EUMin.
Bit 5 of Status3CV1
CV2EUSpanInv
BOOL
The span of CV2EU invalid, CV2EUMax equals CV2EUMin.
Bit 5 of Status3CV2
CV3EUSpanInv
BOOL
The span of CV3EU invalid, CV3EUMax equals CV3EUMin.
Bit 5 of Status3CV3
CV1LimitsInv
BOOL
CV1LLimit < 0, CV1HLimit > 100, or CV1HLimit <= CV1LLimit. If CV1HLimit <= CV1LLimit, limit CV1 by using CV1LLimit.
Bit 6 of Status3CV1
CV2LimitsInv
BOOL
CV2LLimit < 0, CV2HLimit > 100, or CV2HLimit <= CV2LLimit. If CV2HLimit <= CV2LLimit, limit CV2 by using CV2LLimit.
Bit 6 of Status3CV2
CV3LimitsInv
BOOL
CV3LLimit < 0, CV3HLimit > 100, or CV3HLimit <= CV3LLimit. If CV3HLimit <= CV3LLimit, limit CV3 by using CV3LLimit.
Bit 6 of Status3CV3
CV1ROCLimitInv
BOOL
Entered value for CV1ROCLimit < 0, disables CV1 ROC limiting.
Bit 7 of Status3CV1
CV2ROCLimitInv
BOOL
Entered value for CV2ROCLimit < 0, disables CV2 ROC limiting.
Bit 7 of Status3CV2
CV3ROCLimitInv
BOOL
Entered value for CV3ROCLimit < 0, disables CV3 ROC limiting.
Bit 7 of Status3CV3
CV1HandFBInv
BOOL
CV1 HandFB < 0 or > 100. Limit value used for CV1.
Bit 8 of Status3CV1
CV2HandFBInv
BOOL
CV2 HandFB < 0 or > 100. Limit value used for CV2.
Bit 8 of Status3CV2
CV3HandFBInv
BOOL
CV3 HandFB < 0 or > 100. Limit value used for CV3.
Bit 8 of Status3CV3
CV1PV1ModelGainInv
BOOL
CV1PV1ModelGain is 1.#QNAN or -1.#IND. (Not A Number), or ± 1.$ ( Infinity ∞ ).
Bit 9 of Status3CV1
CV2PV1ModelGainInv
BOOL
Entered value for CV2 - PV1 Model Gain is 1.#QNAN or -1.#IND. (Not A Number), or ± 1.$ ( Infinity ∞
Bit 9 of Status3CV2
CV3PV1ModelGainInv
BOOL
Entered value for CV3 - PV1 Model Gain is 1.#QNAN or -1.#IND. (Not A Number), or ± 1.$
(Infinity ∞).
Bit 9 of Status3CV3
CV1PV2ModelGainInv
BOOL
CV1PV2ModelGain is 1.#QNAN or -1.#IND. (Not A Number), or ± 1.$ ( Infinity ∞ ).
Bit 10 of Status3CV1
CV2PV2ModelGainInv
BOOL
Entered value for CV2 - PV2 Model Gain is 1.#QNAN or -1.#IND. (Not A Number), or ± 1.$ ( Infinity ∞ ).
Bit 10 of Status3CV2
CV3PV2ModelGainInv
BOOL
Entered value for CV3 - PV2 Model Gain is 1.#QNAN or -1.#IND. (Not A Number), or ± 1.$
(Infinity ∞).
Bit 10 of Status3CV3
CV1PV1ModelTCInv
BOOL
Entered value for CV1 - PV1 Model Time Constant < 0.
Bit 11 of Status3CV1
CV2PV1ModelTCInv
BOOL
Entered value for CV2 - PV1 Model Time Constant < 0.
Bit 11 of Status3CV2
CV3PV1ModelTCInv
BOOL
Entered value for CV3 - PV1 Model Time Constant < 0.
Bit 11 of Status3CV3
CV1PV2ModelTCInv
BOOL
Entered value for CV1 - PV2 Model Time Constant < 0.
Bit 12 of Status3CV1
CV2PV2ModelTCInv
BOOL
Entered value for CV2 - PV2 Model Time Constant < 0.
Bit 12 of Status3CV2
CV3PV2ModelTCInv
BOOL
Entered value for CV3 - PV2 Model Time Constant < 0.
Bit 12 of Status3CV3
CV1PV1ModelDTInv
BOOL
Entered value for CV1-PV1 Model Deadtime < 0.
Bit 13 of Status3CV1
CV2PV1ModelDTInv
BOOL
Entered value for CV2-PV1 Model Deadtime < 0.
Bit 13 of Status3CV2
CV3PV1ModelDTInv
BOOL
Entered value for CV3 - PV1 Model Deadtime < 0.
Bit 13 of Status3CV3
CV1PV2ModelDTInv
BOOL
Entered value for CV1-PV2 Model Deadtime < 0.
Bit 14 of Status3CV1
CV2PV2ModelDTInv
BOOL
Entered value for CV2-PV2 Model Deadtime < 0.
Bit 14 of Status3CV2
CV3PV2ModelDTInv
BOOL
Entered value for CV3 - PV2 Model Deadtime < 0.
Bit 14 of Status3CV3
CV1PV1RespTCInv
BOOL
Entered value for CV1-PV1 Response Time Constant < 0.
Bit 15 of Status3CV1
CV2PV1RespTCInv
BOOL
Entered value for CV2-PV1 Response Time Constant < 0.
Bit 15 of Status3CV2
CV3PV1RespTCInv
BOOL
Entered value for CV3 - PV1 Response Time Constant < 0.
Bit 15 of Status3CV3
CV1PV2RespTCInv
BOOL
Entered value for CV1-PV2 Response Time Constant < 0.
Bit 16 of Status3CV1
CV2PV2RespTCInv
BOOL
Entered value for CV2-PV2 Response Time Constant < 0.
Bit 16 of Status3CV2
CV3PV2RespTCInv
BOOL
Entered value for CV3 - PV2 Response Time Constant < 0.
Bit 16 of Status3CV3
CV1TargetInv
BOOL
Entered value for CV1 Target < 0. or > 100.
Bit 17 of Status3CV1
CV2TargetInv
BOOL
Entered value for CV2 Target < 0. or > 100.
Bit 17 of Status3CV2
CV3TargetInv
BOOL
Entered value for CV3 Target < 0. or > 100.
Bit 17 of Status3CV3
Description
The MMC is a flexible model-based algorithm that can be used in two basic configuration modes:
  • Three control variables used to control two interacting process variables
  • Two control variables used to control two interacting process variables
Following is an MMC function block splitter example configuration.
MMC Description
Item
Description
M11
Internal model CV1 - PV1
M21
Internal model CV2 - PV1
M31
Internal model CV3 - PV1
M12
Internal model CV1 - PV2
M22
Internal model CV2 - PV2
M32
Internal model CV3 - PV2
T
Target response
C11, C22
Model-predictive function blocks (IMC) currently controlling PV1 and PV2 to SP1 and SP2, respectively
Y11, Y21, Y31, Y12, Y22, Y32
Model outputs of M11, M21, M31, M12, M22, M32
Y1
PV1 prediction
Y2
PV2 prediction
CV1 (Reflux ratio)
Controls PV1 (Top composition) in Coordinated Control (CC1).
CV2 (Stream Flow)
Controls PV2 (Bottom composition) in Coordinated Control (CC2)
CV3
Drives the Target value through a target response.
Affects Math Status Flags
No
Major/Minor Faults
None specific to this instruction. See Index Through Arrays for Array-Indexing Faults
Execution
Note that iin Structured Text, EnableIn is always true during a normal scan. Therefore, if the instruction is in the control path activated by the logic, it will execute.
Refer to Refer to Function Block Attributes.for more details including definitions and general behavior for all Function Block instructions.
All conditions below the shaded area can only occur during Normal Scan mode.
Condition/State
Action Taken
Prescan
.EnableIn and .EnableOut bits are cleared to false.
Postscan
.EnableIn and .EnableOut bits are cleared to false.
EnableIn is false
.EnableIn and .EnableOut bits are cleared to false.
Instruction first run
No state specific action taken.
Primary algorithm not executed, however will validate input parameters.
Instruction first scan
No state specific action taken.
Primary algorithm not executed, however will validate input parameters.
EnableIn is true
.EnableIn and .EnableOut bits are set to true.
The instruction's main algorithm will be executed and outputs will be updated.
Native Implementation
Platform
Intrinsics/Main Function
ABRisc / ARM
ABRisc assembly code
void FB_ModularMultivariableControl(UINT32 *pulArg0Ptr)
RCA
MMC(instance)
void FB_ModularMultivariableControl(UINT32 *pulArg0Ptr)
SoftLogix (X86)
void rts$MMC(UINT32 *pFbdBlock)
Example
Function Block
MMC_FB_ex_v31
Structured Text
mmcTag.PV1 := mmcInput1;
mmcTag.PV2 := mmcInput2;
mmcTag.SP1Prog := mmcInput3;
mmcTag.SP2Prog := mmcInput4;
mmcTag.CV1Prog := mmcInput5;
mmcTag.CV2Prog := mmcInput6;
mmcTag.CV3Prog := mmcInput7;
MMC(mmcTag);
mmcOutput1 := mmcTag.CV1EU;
mmcOutput2 := mmcTag.CV2EU;
mmcOutput3 := mmcTag.CV3EU;
Provide Feedback
Have questions or feedback about this documentation? Please submit your feedback here.