Coordinated Control (CC)

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 Coordinated Control (CC) instruction controls a single process variable by manipulating as many as three different control variables. As an option, any of the three outputs can be used as an input to create feed forward action in the controller. The CC calculates the control variables (CV1, CV2, and CV3) in the auto mode based on the PV - SP deviation, internal models, and tuning.
Available Languages
Ladder Diagram
This instruction is not available in ladder diagram logic.
Function Block
CC_FB_avail_v31
Structured Text
CC(CC_tag);
Operands
Structured Text
Operands
Type
Format
Description
CC tag
COORDINATED_ CONTROL
structure
CC Structure
See Structured Text Syntax for more information on the syntax of expressions within structured text.
IMPORTANT:
Whenever an APC block detects a change in Delta Time (DeltaT), a ModelInit will be performed. For this reason the blocks should only be run in one of the TimingModes in which DeltaT will be constant.
  • TimingMode = 0 (Periodic) while executing these function blocks in a Periodic Task
  • TimingMode = 1 (Oversample)
In either case, if the Periodic Task time is dynamically changed, or the OversampleDT is dynamically changed, the block will perform a ModelInit.
The following TimingMode setting are not recommended due to jitter in DeltaT:
  • TimingMode = 0 (Periodic) while executing these function blocks in a Continuous or Event Task
  • TimingMode = 2 (RealTimeSample)
Function Block
Operands
Type
Format
Description
CC tag
COORDINATED CONTROL
structure
CC Structure
Structure
Input Parameters
Data Type
Description
Valid and Default Values
EnableIn
BOOL
Enable Input. If False, the function block will not execute and outputs are not updated.
Default=TRUE
PV
REAL
Scaled process variable input. This value is typically read from an analog input module.
Valid = any float
Default = 0.0
PVFault
BOOL
PV bad health indicator. If PV is read from an analog input, then PVFault 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
PVEUMax
REAL
Maximum scaled value for PV. The value of PV and SP that corresponds to 100% span of the Process Variable.
If PVEUMax ≤ PVEUMin, set bit in Status.
Valid = PVEUMin < PVEUMax ≤ maximum positive float
Default = 100.0
PVEUMin
REAL
Minimum scaled value for PV. The value of PV and SP that corresponds to 0% span of the Process Variable.
If PVEUMax ≤ PVEUMin, set bit in Status.
Valid = maximum negative float ≤ PVEUMin < PVEUMax
Default = 0.0
SPProg
REAL
SP Program value, scaled in PV units. SP is set to this value when the instruction is in Program control.
Valid = SPLLimit to SPHLimit
Default = 0.0
SPOper
REAL
SP Operator value, scaled in PV units. SP set to this value  when in Operator control.
If value of SPProg or SPOper < SPLLimit or > SPHLimit, set bit in Status and limit value used for SP.
Valid = SPLLimit to SPHLimit
Default = 0.0
SPHLimit
REAL
SP high limit value, scaled in PV units.
If SPHLimit < SPLLimit or SPHLimit > PVEUMax, set bit in Status.
Valid = SPLLimit to PVEUMax
Default = 100.0
SPLLimit
REAL
SP low limit value, scaled in PV units.
If SPLLimit < PVEUMin, or SPHLimit < SPLLimit, set bit in Status and limit SP by using the value of SPLLimit.
Valid = PVEUMin to SPHLimit
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.
Default = FALSE
FALSE = Good Health
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.
Default = FALSE
FALSE = Good Health
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.
Default = FALSE
FALSE = Good Health
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.
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.
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 CV32EU or from the InitPrimary output of a secondary loop.
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 CVFaulted or CVEUSpanInv 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 CVFaulted or CVEUSpanInv 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 CVFaulted or CVEUSpanInv 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…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…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 CV1Oper < 0 or > 100, or < CV1LLimit or > CV1HLimit when CVManLimiting is TRUE, set unique Status bit and limit value used for CV.
Valid = 0.0…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 CV2Oper < 0 or > 100, or < CV2LLimit or > CV2HLimit when CVManLimiting is TRUE, set unique Status bit and limit value used for CV.
Valid = 0.0…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 CV3Oper < 0 or > 100, or < CV3LLimit or > CV3HLimit when CVManLimiting is TRUE, set unique Status bit and limit value used for CV.
Valid = 0.0…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 CV.
Valid = 0.0…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 CV.
Valid = 0.0…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 CV.
Valid = 0.0…100.0
Default = 0.0
CV1TrackValue
REAL
CV1 track value. When CVTrackReq is enabled and the CC function block is in Manual mode, the CV1TrackValue will be ignored, and the CC internal model will update its historical data with the CV1Oper or CV1Prog value. When CVTrackReq is enabled and the CC function block is in Auto, the internal model will update its historical data based on the value of CV1TrackValue.
The CV1 in this case will be allowed to move as if the CC function block was still controlling the process. This is useful in multiloop selection schemes where you want the CC function block to follow the output of a different controlling algorithm, where you would connect the output of the controlling algorithm into the CV1TrackValue.
Valid = 0.0…100.0
Default = 0.0
CV2TrackValue
REAL
CV2 track value. When CVTrackReq is enabled and the CC function block is in Manual mode, the CV2TrackValue will be ignored, and the CC internal model will update its historical data with the CV2Oper or CV2Prog value. When CVTrackReq is enabled and the CC function block is in Auto, the internal model will update its historical data based on the value of CV2TrackValue.
The CV2 in this case will be allowed to move as if the CC function block was still controlling the process. This is useful in multiloop selection schemes where you want the CC function block to follow the output of a different controlling algorithm, where you would connect the output of the controlling algorithm into the CV2TrackValue.
Valid = 0.0…100.0
Default = 0.0
CV3TrackValue
REAL
CV3 track value. When CVTrackReq is enabled and the CC function block is in Manual mode, the CV3TrackValue will be ignored, and the CC internal model will update its historical data with the CV3Oper or CV3Prog value. When CVTrackReq is enabled and the CC function block is in Auto, the internal model will update its historical data based on the value of CV3TrackValue.
The CV3 in this case will be allowed to move as if the CC function block was still controlling the process. This is useful in multiloop selection schemes where you want the CC function block to follow the output of a different controlling algorithm, where you would connect the output of the controlling algorithm into the CV3TrackValue.
Valid = 0.0…100.0
Default = 0.0
CVManLimiting
BOOL
Limit CV(n), where (n) can be 1, 2, or 3, in Manual mode request. If Manual mode and CVManLimiting is TRUE, CV 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 CV1EUMax = CV1EUMin, 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 CV2EUMax = CV2EUMin, 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 CV3EUMax = CV3EUMin, 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 CV1EUMax = CV1EUMin, 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 CV2EUMax = CV2EUMin, 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 CV3EUMax = CV3EUMin, 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 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 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 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 set bit in Status. If CV1HLimit < CV1LLimit, limit CV 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 set bit in Status. If CV2HLimit < CV2LLimit, limit CV 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 set bit in Status. If CV3HLimit < CV3LLimit, limit CV by using the value of CVLLimit.
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…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…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…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 CV1.
Valid = 0.0…100.0
Default = 0.0
CV2Target
REAL
Target value for CV2.
Valid = 0.0…100.0
Default = 0.0
CV3Target
REAL
Target value for CV3.
Valid = 0.0…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
CVxModelGain units can be represented as EU or % of span. Set to interpret ModelGain as EU, reset to interpret ModelGain as % of Span.
Default = 0
CV1ProcessGainSign
BOOL
Used only for Autotuning. Sign of the process gain (Delta PV/Delta CV1).
Set to indicate a negative process gain (increase in output causes a decrease in PV).
Reset to indicate a positive process gain (increase in output causes an increase in PV).
Default = FALSE
CV2ProcessGainSign
BOOL
Used only for Autotuning. Sign of the process gain (Delta PV/Delta CV2).
Set to indicate a negative process gain (increase in output causes a decrease in PV).
Reset to indicate a positive process gain (increase in output causes an increase in PV).
Default = FALSE
CV3ProcessGainSign
BOOL
Used only for Autotuning. Sign of the process gain (Delta PV/Delta CV3).
Set to indicate a negative process gain (increase in output causes a decrease in PV).
Reset to indicate a positive process gain (increase in output causes an increase in PV).
Default = FALSE
ProcessType
DINT
Process type selection (1=Integrating, 0=non-integrating)
Default = 0
CV1ModelGain
REAL
The internal model gain parameter for CV1. Enter a positive or negative gain depending on process direction.
Valid = maximum negative float −> maximum positive float
Default = 0.0
CV2ModelGain
REAL
The internal model gain parameter for CV2. Enter a positive or negative gain depending on process direction.
Valid = maximum negative float −> maximum positive float
Default = 0.0
CV3ModelGain
REAL
The internal model gain parameter for CV3. Enter a positive or negative gain depending on process direction.
Valid = maximum negative float −> maximum positive float
Default = 0.0
CV1ModelTC
REAL
The internal model time constant for CV1 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV2ModelTC
REAL
The internal model time constant for CV2 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV3ModelTC
REAL
The internal model time constant for CV3 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV1ModelDT
REAL
The internal model deadtime for CV1  in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV2ModelDT
REAL
The internal model deadtime for CV2 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV3ModelDT
REAL
The internal model deadtime for CV3 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV1RespTC
REAL
The tuning parameter that determines the speed of the control variable action for CV1 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV2RespTC
REAL
The tuning parameter that determines the speed of the control variable action for CV2 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
CV3RespTC
REAL
The tuning parameter that determines the speed of the control variable action for CV3 in seconds.
Valid = 0.0 to maximum positive float
Default = 0.0
Act1stCV
DINT
The first CV to act to compensate for PV-SP deviation.
1=CV1, 2=CV2, 3=CV3
Valid = 1-3
Default = 1
Act2ndCV
DINT
The second CV to act to compensate for PV-SP deviation.
1=CV1, 2=CV2, 3=CV3
Valid = 1-3
Default = 2
Act3rdCV
DINT
The third CV to act to compensate for PV-SP deviation.
1=CV1, 2=CV2, 3=CV3
Valid = 1-3
Default = 3
Target1stCV
DINT
The CV with top priority to be driven to its target value.
1=CV1, 2=CV2, 3=CV3
Valid = 1-3
Default = 1
Target2ndCV
DINT
The CV with second highest priority to be driven to its target value.
1=CV1, 2=CV2, 3=CV3
Valid = 1-3
Default = 2
Target3rdCV
DINT
The CV with third highest priority to be driven to its target value.
1=CV1, 2=CV2, 3=CV3
Valid = 1-3
Default = 3
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
CVTrackReq
BOOL
CV Track request. Set true to enable CV Tracking when autotune is OFF. Ignored in Hand and Override mode.
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.
If value of HandFB < 0 or > 100, set unique Status bit and limit value used for CV.
Default = FALSE
ProgCV1AutoReq
BOOL
Program-Auto mode request for CV1.
Set TRUE by the user program to request Auto mode.
If value of CV1HandFB < 0 or > 100, set unique Status bit and limit value used for CV1.
Default = FALSE
ProgCV2AutoReq
BOOL
Program-Auto mode request for CV2.
Set TRUE by the user program to request Auto mode.
If value of CV2HandFB < 0 or > 100, set unique Status bit and limit value used for CV2.
Default = FALSE
ProgCV3AutoReq
BOOL
Program-Auto mode request for CV3.
Set TRUE by the user program to request Auto mode.
If value of CV3HandFB < 0 or > 100, set unique Status bit and limit value used for CV3.
Default = FALSE
ProgCV1ManualReq
BOOL
Program-Manual mode request for CV1.
Set TRUE by the user program to request Manual mode.
If value of CV1HandFB < 0 or > 100, set unique Status bit and limit value used for CV1.
Default = FALSE
ProgCV2ManualReq
BOOL
Program-Manual mode request for CV2.
Set TRUE by the user program to request Manual mode.
If value of CV2HandFB < 0 or > 100, set unique Status bit and limit value used for CV2.
Default = FALSE
ProgCV3ManualReq
BOOL
Program-Manual mode request for CV3.
Set TRUE by the user program to request Manual mode.
If value of CV3HandFB < 0 or > 100, set unique Status bit and limit value used for CV3.
Default = FALSE
ProgCV1OverrideReq
BOOL
Program-Override mode request for CV1.
Set TRUE by the user program to request Override mode.
If value of CV1HandFB < 0 or > 100, set unique Status bit and limit value used for CV1.
Default = FALSE
ProgCV2OverrideReq
BOOL
Program-Override mode request for CV2.
Set TRUE by the user program to request Override mode.
If value of CV2HandFB < 0 or > 100, set unique Status bit and limit value used for CV2.
Default = FALSE
ProgCV3OverrideReq
BOOL
Program-Override mode request for CV3.
Set TRUE by the user program to request Override mode.
If value of CV3HandFB < 0 or > 100, set unique Status bit and limit value used for CV3.
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.
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.
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.
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 will reset 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 will reset 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 will reset 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 will reset 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 resets 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 resets 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 resets 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 SPProg equal to SP and CVxProg equal to CVx.
When ProgValueReset is TRUE, the instruction sets this input to FALSE.
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…2
Default = 0
OverSampleDT
REAL
Execution time for Oversample mode.
Valid = 0…4194.303 seconds
Default = 0
RTSTime
DINT
Module update period for Real Time Sampling mode.
Valid = 1…32,767
1 count = 1 ms
RTSTimeStamp
DINT
Module time stamp value for Real Time Sampling mode.
Valid = 0…32,767
(wraps from 32,767…0)
1 count = 1 ms
PVTuneLimit
REAL
PV tuning limit scaled in the PV units. When Autotune is running and predicted PV exceeds this limit, the tuning will be aborted.
Valid = any float
Default=0
AtuneTimeLimit
REAL
Maximum time for autotune to complete following the CV step change. When autotune exceeds this time, tuning will be aborted.
Valid range: any float > 0.
Default = 60 minutes
NoiseLevel
DINT
An estimate of the noise level expected on the PV to compensate for it during tuning.
The selections are: 0=low, 1=medium, 2=high
Range: 0…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%
CV1ResponseSpeed
DINT
Desired speed of closed loop response for CV1.
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
CV2ResponseSpeed
DINT
Desired speed of closed loop response for CV2.
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
CV3ResponseSpeed
DINT
Desired speed of closed loop response for CV3.
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
CV1ModelInit
BOOL
Internal model initialization switch for CV1. Refer to topic CC Function Block Model Initialization in CC Function Block Tuning.
Default = FALSE
CV2ModelInit
BOOL
Internal model initialization switch for CV2. Refer to topic CC Function Block Model Initialization in CC Function Block Tuning.
Default = FALSE
CV3ModelInit
BOOL
Internal model initialization switch for CV3. Refer to topic CC Function Block Model Initialization in CC Function Block Tuning.
Default = FALSE
Factor
REAL
Non-integrating model approximation factor. 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. 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. 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. Ignored when CV3 is not in Manual mode. The function block resets the input to FALSE.
Default = FALSE
AtuneCV1UseModel
BOOL
Use Autotune model request for CV1. 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
AtuneCV2UseModel
BOOL
Use Autotune model request for CV2. 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
AtuneCV3UseModel
BOOL
Use Autotune model request for CV3. 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. 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. 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. The function block resets input parameter to FALSE.
Default = FALSE
Output Parameters
Data Type
Description
Valid and Default Values
EnableOut
BOOL
Indicates if instruction is enabled. Cleared to false if 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 1 output. 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 2 output. 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 3 output. 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%.
DeltaCV1
REAL
Difference between the Current CV1 and the previous CV1 (Current CV1 - previous CV1).
DeltaCV2
REAL
Difference between the Current CV2 and the previous CV2 (Current CV2 - previous CV2).
DeltaCV3
REAL
Difference between the Current CV3 and the previous CV3 (Current CV3 - previous CV3).
CV1Initializing
BOOL
Initialization mode indicator for CV1.
Set TRUE when CV1InitReq or function blockFirstScan 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.
CV3initializing
BOOL
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.
CV12HAlarm
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.
SP
REAL
Current setpoint value. The value of SP is used to control CV when in the Auto or the PV Tracking mode, scaled in PV units.
SPPercent
REAL
The value of SP expressed in percent of span of PV.
SPPercent = ((SP − PVEUMin ) * 100) / PVSpan.
PV Span calculation: PVSpan =
( PVEUMax − PVEUMin )
SPHAlarm
BOOL
SP high alarm indicator. TRUE when the SP ≥ SPHLimit.
SPLAlarm
BOOL
SP low alarm indicator. TRUE when the SP ≤ SPLLimit.
PVPercent
REAL
PV expressed in percent of span.
PVPercent = (( PV − PVEUMin ) * 100) / PVSpan
PV Span calculation: PVSpan =
( PVEUMax − PVEUMin )
E
REAL
Process error. Difference between SP and PV, scaled in PV units.
EPercent
REAL
The error expressed as a percent of span.
CV1WindupHOut
BOOL
CV1 Windup high indicator.
TRUE when either a SP high or CV1 high/low limit has been reached. 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.
TRUE when either a SP high or CV2 high/low limit has been reached. 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.
TRUE when either a SP high or CV3 high/low limit has been reached. 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.
TRUE when either a SP or CV1 high/low limit has been reached. 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.
TRUE when either a SP or CV2 high/low limit has been reached. 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.
TRUE when either a SP or CV3 high/low limit has been reached. 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 CV1. TRUE when CV1 in the Manual mode.
CV2Manual
BOOL
Manual mode indicator CV2. TRUE when CV2 in the Manual mode.
CV3Manual
BOOL
Manual mode indicator 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.
CV1GainTuned
REAL
The calculated value of the internal model gain for CV1 after tuning is completed.
CV2GainTuned
REAL
The calculated value of the internal model gain for CV2 after tuning is completed.
CV3GainTuned
REAL
The calculated value of the internal model gain for CV3 after tuning is completed.
CV1TCTuned
REAL
The calculated value of the internal model time constant for CV1 after tuning is completed.
CV2TCTuned
REAL
The calculated value of the internal model time constant for CV2 after tuning is completed.
CV3TCTuned
REAL
The calculated value of the internal model time constant for CV3 after tuning is completed.
CV1DTTuned
REAL
The calculated value of the internal model deadtime for CV1 after tuning is completed.
CV2DTTuned
REAL
The calculated value of the internal model deadtime for CV2 after tuning is completed.
CV3DTTuned
REAL
The calculated value of the internal model deadtime for CV3 after tuning is completed.
CV1RespTCTunedS
REAL
The calculated value of the control variable time constant in slow response speed for CV1 after tuning is completed.
CV2RespTCTunedS
REAL
The calculated value of the control variable time constant in slow response speed for CV2 after tuning is completed.
CV3RespTCTunedS
REAL
The calculated value of the control variable time constant in slow response speed for CV3 after tuning is completed.
CV1RespTCTunedM
REAL
The calculated value of the control variable time constant in medium response speed for CV1 after tuning is completed.
CV2RespTCTunedM
REAL
The calculated value of the control variable time constant in medium response speed for CV2 after tuning is completed.
CV3RespTCTunedM
REAL
The calculated value of the control variable time constant in medium response speed for CV3 after tuning is completed.
CV1RespTCTunedF
REAL
The calculated value of the control variable time constant in fast response speed for CV1 after tuning is completed.
CV2RespTCTunedF
REAL
The calculated value of the control variable time constant in fast response speed for CV2 after tuning is completed.
CV3RespTCTunedF
REAL
The calculated value of the control variable time constant in fast response speed for CV3 after tuning is completed.
AtuneCV1On
BOOL
Set True when auto tuning for CV1 has been initiated.
AtuneCV2On
BOOL
Set True when auto tuning for CV2 has been initiated.
AtuneCV3On
BOOL
Set True when auto tuning for CV3 has been initiated.
AtuneCV1Done
BOOL
Set True when auto tuning for CV1 has completed successfully.
AtuneCV2Done
BOOL
Set True when auto tuning for CV2 has completed successfully.
AtuneCV3Done
BOOL
Set True when auto tuning for CV3 has completed successfully.
AtuneCV1Aborted
BOOL
Set True when auto tuning for CV1 has been aborted by user or due to errors that occurred during the auto tuning operation.
AtuneCV2Aborted
BOOL
Set True when auto tuning for CV2 has been aborted by user or due to errors that occurred during the auto tuning operation.
AtuneCV3Aborted
BOOL
Set True when auto tuning for CV3 has been aborted by user or due to errors that occurred during the auto tuning operation.
AtuneCV1Status
DINT
Indicates the tuning status for CV1.
AtuneCV2Status
DINT
Indicates the tuning status for CV2.
AtuneCV3Status
DINT
Indicates the tuning status for CV3.
AtuneCV1Fault
BOOL
CV1 Autotune has generated any of the following faults.
AtuneCV2Fault
BOOL
CV2 Autotune has generated any of the following faults.
AtuneCV3Fault
BOOL
CV3 Autotune has generated any of the following faults.
AtuneCV1PVOutOfLimit
BOOL
Either PV or the deadtime-step ahead prediction of PV exceeds PVTuneLimit during CV1 Autotuning. When True, CV1 Autotuning is aborted.
AtuneCV2PVOutOfLimit
BOOL
Either PV or the deadtime-step ahead prediction of PV exceeds PVTuneLimit during CV2 Autotuning. When True, CV2 Autotuning is aborted.
AtuneCV3PVOutOfLimit
BOOL
Either PV or the deadtime-step ahead prediction of PV exceeds PVTuneLimit during CV3 Autotuning. When True, CV3 Autotuning is aborted.
AtuneCV1ModeInv
BOOL
The CC mode was not Manual at start of Autotuning or the CC mode was changed from Manual during CV1 Autotuning. When True, CV1 Autotuning is not started or is aborted.
AtuneCV2ModeInv
BOOL
The CC mode was not Manual at start of Autotuning or the CC mode was changed from Manual during CV2 Autotuning. When True, CV2 Autotuning is not started or is aborted.
AtuneCV3ModeInv
BOOL
The CC mode was not Manual at start of Autotuning or the CC mode was changed from Manual during CV3 Autotuning. When True, CV3 Autotuning is not started or is aborted.
AtuneCV1WindupFault
BOOL
CV1WindupHIn or CV1WindupLIn is True at start of CV1 Autotuning or during CV1 Autotuning. When True, CV1 Autotuning is not started or is aborted.
AtuneCV2WindupFault
BOOL
CV2WindupHIn or CV2WindupLIn is True at start of CV1 Autotuning or during CV2 Autotuning. When True, CV2 Autotuning is not started or is aborted.
AtuneCV3WindupFault
BOOL
CV3WindupHIn or CV3WindupLIn is True at start of CV3 Autotuning or during CV3 Autotuning. When True, CV3 Autotuning is not started or is aborted.
AtuneCV1StepSize0
BOOL
CV1StepSizeUsed = 0 at start of CV1 Autotuning. When True, CV1 Autotuning is not started.
AtuneCV2StepSize0
BOOL
CV2StepSizeUsed = 0 at start of CV2 Autotuning. When True, CV2 Autotuning is not started.
AtuneCV3StepSize0
BOOL
CV3StepSizeUsed = 0 at start of CV3 Autotuning. When True, CV3 Autotuning is not started.
AtuneCV1LimitsFault
BOOL
CV1LimitsInv and CVManLimiting are True at start of CV1 Autotuning or during CV1 Autotuning. When True, CV1 Autotuning is not started or is aborted.
AtuneCV2LimitsFault
BOOL
CV2LimitsInv and CVManLimiting are True at start of CV2 Autotuning or during CV2 Autotuning. When True, CV2 Autotuning is not started or is aborted.
AtuneCV3LimitsFault
BOOL
CV3LimitsInv and CVManLimiting are True at start of CV3 Autotuning or during CV3 Autotuning. When True, CV3 Autotuning is not started or is aborted.
AtuneCV1InitFault
BOOL
CV1Initializing is True at start of CV1 Autotuning or during CV1 Autotuning. When True, CV1 Autotuning is not started or is aborted.
AtuneCV2InitFault
BOOL
CV2Initializing is True at start of CV2 Autotuning or during CV2 Autotuning. When True, CV2 Autotuning is not started or is aborted.
AtuneCV3InitFault
BOOL
CV3Initializing is True at start of CV3 Autotuning or during CV3 Autotuning. When True, CV3 Autotuning is not started or is aborted.
AtuneCV1EUSpanChanged
BOOL
CV1EUSpan or PVEUSpan changes during CV1 Autotuning. When True, CV1 Autotuning is aborted.
AtuneCV2EUSpanChanged
BOOL
CV2EUSpan or PVEUSpan changes during CV2 Autotuning. When True, CV2 Autotuning is aborted.
AtuneCV3EUSpanChanged
BOOL
CV3EUSpan or PVEUSpan changes during CV3 Autotuning. When True, CV3 Autotuning is aborted.
AtuneCV1Changed
BOOL
CV1Oper is changed when in Operation control or CV1Prog is changed when in Program control or CV1 becomes high/low or ROC limited during CV1 Autotuning. When True, CV1 Autotuning is aborted.
AtuneCV2Changed
BOOL
CV2Oper is changed when in Operation control or CV2Prog is changed when in Program control or CV2 becomes high/low or ROC limited during CV2 Autotuning. When True, CV2 Autotuning is aborted.
AtuneCV3Changed
BOOL
CV3Oper is changed when in Operation control or CV3Prog is changed when in Program control or CV3 becomes high/low or ROC limited during CV3 Autotuning. When True, CV3 Autotuning is aborted.
AtuneCV1Timeout
BOOL
Elapsed time is greater then AtuneTimeLimit since step test is started. When True, CV1 Autotuning is aborted.
AtuneCV2Timeout
BOOL
Elapsed time is greater then AtuneTimeLimit since step test is started. When True, CV2 Autotuning is aborted.
AtuneCV3Timeout
BOOL
Elapsed time is greater then AtuneTimeLimit since step test is started. When True, CV3 Autotuning is aborted.
AtuneCV1PVNotSettled
BOOL
The PV is changed too much to Autotune for CV1. When True, CV1 Autotuning is aborted. Wait until PV is more stable before autotuning CV1.
AtuneCV2PVNotSettled
BOOL
The PV is changed too much to Autotune for CV2. When True, CV2 Autotuning is aborted. Wait until PV is more stable before autotuning CV2.
AtuneCV3PVNotSettled
BOOL
The PV is changed too much to Autotune for CV3. When True, CV3 Autotuning is aborted. Wait until PV is more stable before autotuning CV3.
Status1
DINT
Bit mapped status of the function block.
Status2
DINT
Additional bit mapped status for the function block.
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.
A value of 0 indicates that no faults have occurred. Any parameters that could be configured with an invalid value must have a status parameter to indicate their invalid status.
PVFaulted
BOOL
Process variable PV health bad.
PVSpanInv
BOOL
The span of PV inValid, PVEUMax < PVEUMin.
SPProgInv
BOOL
SPProg < SPLLimit or > SPHLimit. Limit value used for SP.
SPOperInv
BOOL
SPOper < SPLLimit or > SPHLimit. Limit value used for SP.
SPLimitsInv
BOOL
Limits inValid: SPLLimit < PVEUMin, SPHLimit > PVEUMax, or SPHLimit < SPLLimit. If SPHLimit < SPLLimit, then limit value by using SPLLimit.
SampleTimeTooSmall
BOOL
Model DeadTime / DeltaT must be less than or equal to 200.
FactorInv
BOOL
Entered value for Factor < 0.
TimingModeInv
BOOL
Entered TimingMode inValid. If the current mode is not Override or Hand then set to Manual mode.
RTSMissed
BOOL
Only used when in Real Time Sampling mode. Is TRUE when ABS(DeltaT – RTSTime) > 1 millisecond.
RTSTimeInv
BOOL
Entered RTSTime inValid.
RTSTimeStampInv
BOOL
RTSTimeStamp inValid. If the current mode is not Override or Hand, then set to Manual mode.
DeltaTInv
BOOL
DeltaT inValid. If the current mode is not Override or Hand then, set to Manual mode.
CV1Faulted
BOOL
Control variable CV1 health bad.
CV2Faulted
BOOL
Control variable CV2 health bad.
CV3Faulted
BOOL
Control variable CV3 health bad.
CV1HandFBFaulted
BOOL
CV1 HandFB value health bad.
CV2HandFBFaulted
BOOL
CV2 HandFB value health bad.
CV3HandFBFaulted
BOOL
CV3 HandFB value health bad.
CV1ProgInv
BOOL
CV1Prog < 0 or > 100, or < CV1LLimit or > CV1HLimit when CVManLimiting is TRUE. Limit value used for CV1.
CV2ProgInv
BOOL
CV2Prog < 0 or > 100, or < CV2LLimit or > CV2HLimit when CVManLimiting is TRUE. Limit value used for CV2.
CV3ProgInv
BOOL
CV3Prog < 0 or > 100, or < CV3LLimit or > CV3HLimit when CVManLimiting is TRUE. Limit value used for CV3.
CV1OperInv
BOOL
CV1Oper < 0 or > 100, or < CV1LLimit or > CV1HLimit when CVManLimiting is TRUE. Limit value used for CV1.
CV2OperInv
BOOL
CV2Oper < 0 or > 100, or < CV2LLimit or> CV2HLimit when CVManLimiting is TRUE. Limit value used for CV2.
CV3OperInv
BOOL
CV3Oper < 0 or > 100, or < CV3LLimit or> CV3HLimit when CVManLimiting is TRUE. Limit value used for CV3.
CV1OverrideValueInv
BOOL
CV1OverrideValue < 0 or > 100. Limit value used for CV1.
CV2OverrideValueInv
BOOL
CV2OverrideValue < 0 or > 100. Limit value used for CV2.
CV3OverrideValueInv
BOOL
CV3OverrideValue < 0 or > 100. Limit value used for CV3.
CV1TrackValueInv
BOOL
Entered CV1TrackValue < 0 or > 100. Limit value used for CV1.
CV2TrackValueInv
BOOL
Entered CV2TrackValue < 0 or > 100. Limit value used for CV2.
CV3TrackValueInv
BOOL
Entered CV3TrackValue < 0 or > 100. Limit value used for CV3.
CV1EUSpanInv
BOOL
The span of CV1EU inValid, CV1EUMax equals CV1EUMin.
CV2EUSpanInv
BOOL
The span of CV2EU inValid, CV2EUMax equals CV2EUMin.
CV3EUSpanInv
BOOL
The span of CV3EU inValid, CV3EUMax equals CV3EUMin.
CV1LimitsInv
BOOL
CV1LLimit < 0, CV1HLimit > 100, or CV1HLimit <= CV1LLimit. If CV1HLimit <= CV1LLimit, limit CV1 by using CV1LLimit.
CV2LimitsInv
BOOL
CV2LLimit < 0, CV2HLimit > 100, or CV2HLimit <= CV2LLimit. If CV2HLimit <= CV2LLimit, limit CV2 by using CV2LLimit.
CV3LimitsInv
BOOL
CV3LLimit < 0, CV3HLimit > 100, or CV3HLimit <= CV3LLimit. If CV3HLimit <= CV3LLimit, limit CV3 by using CV3LLimit.
CV1ROCLimitInv
BOOL
CV1ROCLimit < 0, disables CV1 ROC limiting.
CV2ROCLimitInv
BOOL
CV2ROCLimit < 0, disables CV2 ROC limiting.
CV3ROCLimitInv
BOOL
CV3ROCLimit < 0, disables CV3 ROC limiting.
CV1HandFBInv
BOOL
CV1HandFB < 0 or > 100. Limit value used for CV1.
CV2HandFBInv
BOOL
CV2HandFB < 0 or > 100. Limit value used for CV2.
CV3HandFBInv
BOOL
CV3HandFB < 0 or > 100. Limit value used for CV3.
CV1ModelGainInv
BOOL
CV1ModelGain is 1.#QNAN or -1.#IND (Not A Number), or ± 1.$ (Infinity ∞ ).
CV2ModelGainInv
BOOL
CV2ModelGain is 1.#QNAN or -1.#IND (Not A Number), or ± 1.$ (Infinity ∞ ).
CV3ModelGainInv
BOOL
CV3ModelGain is 1.#QNAN or -1.#IND (Not A Number), or ± 1.$ (Infinity ∞ ).
CV1ModelTCInv
BOOL
CV1ModelTC < 0.
CV2ModelTCInv
BOOL
CV2ModelTC < 0.
CV3ModelTCInv
BOOL
CV3ModelTC < 0.
CV1ModelDTInv
BOOL
CV1ModelDT < 0.
CV2ModelDTInv
BOOL
CV2ModelDT < 0.
CV3ModelDTInv
BOOL
CV3ModelDT < 0.
CV1RespTCInv
BOOL
CV1RespTC < 0.
CV2RespTCInv
BOOL
CV2RespTC < 0.
CV3RespTCInv
BOOL
CV3RespTC < 0.
CV1TargetInv
BOOL
CV1Target < 0. or > 100.
CV2TargetInv
BOOL
CV2Target < 0. or > 100.
CV3TargetInv
BOOL
CV3Target < 0. or > 100.
Description
Coordinated Control is a flexible model-based algorithm that can be used in various configurations, for example:
  • Three control variables are used to control one process variable
  • Heat-cool split range control
  • Feedforward control
  • Zone temperature control
  • Constraint control
The following illustration is an example of the Coordinated Control closed loop configuration.
CC closed loop configuration
In this example, CV1 is in Manual mode, CV2 is driven to its target value, and CV3 is the active control. The following table describes this example in detail.
Name
Description
CV1
Is in Manual mode
CV2
Is driven to its target value (CV2 = Target1stCV)
CV3
Is the active control (CV3 = Act1stCV)
This example could be a heat cooled system with a feed forward where:
  • CV1 is feed forward;
  • CV2 is cooling;
  • CV3 heating.
Since CV1 is in Manual mode, CV3 target value as the lowest priority goal cannot be accomplished. PV will be maintained at the setpoint by using CV3, and at the same time CV2 will be driven to its target value (2nd priority goal).
If the operator changes the CV1 manual value, the control variable will take the change into account when calculating new CV3 and CV2.
M1
CV1 - PV First order lag with deadtime model
M2
CV2 - PV First order lag with deadtime model
M3
CV3 - PV First order lag with deadtime model
T
Target Response
C3
Model based algorithm to control PV by using CV3
Y1, Y2, Y3
Model outputs of M1, M2, M3
Y
PV prediction
Affects Math Status Flags
No
Major/Minor Faults
None specific to this instruction. See Common Attributes for operand-related faults.
Execution
Function Block
Condition/State
Action Taken
Prescan
EnableIn and EnableOut bits are cleared to false.
Tag.EnableIn is false
EnableIn and EnableOut bits are cleared to false.
Tag.EnableIn is true
EnableIn and EnableOut bits are set to true.
The instruction executes.
Instruction first run
N/A.
Instruction first scan
N/A
Postscan
EnableIn and EnableOut bits are cleared to false.
Structured Text
Condition/State
Action Taken
Prescan
See Prescan in the Function Block table.
Normal Execution
See Tag.EnableIn is true in the Function Block table.
Postscan
See Postscan in the Function Block table.
Example
Function Block
CC_FB_ex_v31
Structured Text
ccTag.PV := ccInput1;
ccTag.SPProg := ccInput2;
ccTag.CV1Prog := ccInput3;
ccTag.CV2Prog := ccInput4;
ccTag.CV3Prog := ccInput5;
CC(ccTag);
ccOutput1 := ccTag.CV1EU;
ccOutput2 := ccTag.CV2EU;
ccOutput3 := ccTag.CV3EU;
Provide Feedback
Have questions or feedback about this documentation? Please submit your feedback here.