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
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.
| Valid = SP1LLimit to PV1EUMax Default = 100.0 |
SP2HLimit | REAL | SP2 high limit value, scaled in PV units.
| Valid = SP2LLimit to PV2EUMax Default = 100.0 |
SP1LLimit | REAL | SP1 low limit value, scaled in PV units.
| Valid = PV1EUMin to SP1HLimit Default = 0.0 |
SP2LLimit | REAL | SP2 low limit value, scaled in PV units.
| 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.
| Valid = 0.0 through 100.0 Default = 0.0 |
CV2Oper | REAL | CV2 Operator-Manual value.
| Valid = 0.0 through 100.0 Default = 0.0 |
CV3Oper | REAL | CV3 Operator-Manual value.
| Valid = 0.0 through 100.0 Default = 0.0 |
CV1OverrideValue | REAL | CV1 Override value.
| Valid = 0.0 through 100.0 Default = 0.0 |
CV2OverrideValue | REAL | CV2 Override value.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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.
| 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).
| Default = FALSE |
CV2PV1ProcessGainSign | BOOL | Used only for Autotuning. Sign of the process gain (Delta PV1/Delta CV2).
| Default = FALSE |
CV3PV1ProcessGainSign | BOOL | Used only for Autotuning. Sign of the process gain (Delta PV1/Delta CV3).
| Default = FALSE |
CV1PV2ProcessGainSign | BOOL | Used only for Autotuning. Sign of the process gain (Delta PV2/Delta CV1).
| Default = FALSE |
CV1PV2ProcessGainSign | BOOL | Used only for Autotuning. Sign of the process gain (Delta PV2/Delta CV2).
| Default = FALSE |
CV1PV2ProcessGainSign | BOOL | Used only for Autotuning. Sign of the process gain (Delta PV2/Delta CV3).
| 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.
| Default = FALSE |
ProgProgReq | BOOL | Program Program Request.
| Default = FALSE |
ProgOperReq | BOOL | Program Operator Request.
| Default = FALSE |
ProgCV1AutoReq | BOOL | Program-Auto mode request for CV1.
| Default = FALSE |
ProgCV2AutoReq | BOOL | Program-Auto mode request for CV2.
| Default = FALSE |
ProgCV3AutoReq | BOOL | Program-Auto mode request for CV3.
| Default = FALSE |
ProgCV1ManualReq | BOOL | Program-Manual mode request for CV1.
| Default = FALSE |
ProgCV2ManualReq | BOOL | Program-Manual mode request for CV2.
| Default = FALSE |
ProgCV3ManualReq | BOOL | Program-Manual mode request for CV3.
| Default = FALSE |
ProgCV1OverrideReq | BOOL | Program-Override mode request for CV1.
| Default = FALSE |
ProgCV2OverrideReq | BOOL | Program-Override mode request for CV2.
| Default = FALSE |
ProgCV3OverrideReq | BOOL | Program-Override mode request for CV3.
| Default = FALSE |
ProgCV1HandReq | BOOL | Program-Hand mode request for CV1.
| Default = FALSE |
ProgCV2HandReq | BOOL | Program-Hand mode request for CV2.
| Default = FALSE |
ProgCV3HandReq | BOOL | Program-Hand mode request for CV3.
| Default = FALSE |
OperProgReq | BOOL | Operator Program Request.
| Default = FALSE |
OperOperReq | BOOL | Operator Operator Request.
| 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.
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.
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.
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.
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.
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.
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
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
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
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
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
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
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.
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
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