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
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.
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
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