The Control Selector (CTLSL) function block selects one of three control signals to perform override control to a PID function block. The block supports mode control. The outputs are calculated based on the actual operation mode, which is determined by parameter values and input value statuses.
There are no standard alarms in this function block. Custom alarms are supported.

Control Selector Function Block
BKCAL_IN is the analog input value and status from a downstream block's BKCAL_OUT output that is used for backward output tracking for bumpless transfer.
SEL_1 is the first input value to the selector.
SEL_2 is the second input value to the selector.
SEL_3 is the third input value to the selector.
BKCAL_SEL1 is the selector output value associated with SEL_1 for backward output tracking to an upstream PID function block.
BKCAL_SEL2 is the selector output value associated with SEL_2 for backward output tracking to an upstream PID function block.
BKCAL_SEL3 is the selector output value associated with SEL_3 for backward output tracking to an upstream PID function block.
OUT is the output value and status.
The following diagram shows the internal components of the Control Selector function block:

Control Selector Function Block Schematic Diagram
The Control Selector function block picks the high, low, or middle control signal from two or three PID function block primary outputs and places it at the Control Selector block's primary output. Three back calculation outputs are sent to upstream PID function blocks.
At the beginning of each scan period, the block calculates the actual mode according to the input status, target mode, and configured parameter settings. The block steps into the calculated actual mode or stays in the original mode.
Next, the block calculates the forward path primary output:
Note In Auto mode, when any of the connected SEL_ 1, SEL_2 or SEL_3 inputs have Bad status during block execution, the block transitions its actual mode to Man. When the Bad SEL_1, SEL_2 or SEL_3 input transitions back to Good status, the block resumes Auto operation.
All the output parameter status values are set to indicate the status of the block and the status of the corresponding parameter.
Output Limit Scaling
On download, the limits are set to the high and low end of the scale. They might be changed by subsequent overrides, which are part of the download.
On run time, the following restrictions apply:
If the new scale causes a limit to be outside of these rules, DeltaV forces the limit within the rules.
The OUT parameters are not changed as a result of changing the scale or limits. However, the algorithm might change OUT on the next pass.
Output Selection and Limiting
You can limit the output by configuring the OUT_HI_LIM and OUT_LO_LIM parameters.
The Control Selector function block supports four modes:
Out of Service (OOS)
Initialization Manual (IMan)
Manual (Man)
Automatic (Auto)
For complete descriptions of the supported modes, refer to the Function Block Modes topic.
The statuses of OUT, BKCAL_SEL1, BKCAL_SEL2 and BKCAL_SEL3 are mode dependent.
Manual Mode
The status of OUT is set to Good: Cascade, Constant. The status of BKCAL_SEL1, BKCAL_SEL2 and BKCAL_SEL3 are set to Good: Cascade, Not Invited (NI). The value of BKCAL_SEL1, BKCAL_SEL2 and BKCAL_SEL3 are set to the value of OUT.
Automatic Mode
OUT status is set to Good: Cascade. The limit status of the selected input (SEL_1, SEL_2 or SEL_3) is also copied to OUT.
The status and value of the BKCAL_SEL1, BKCAL_SEL2 or BKCAL_SEL3 parameter corresponding to the selected input is set equal to the OUT status and value. When the OUT status is limited, its limit status is also copied to the associated BKCAL_SEL[x] parameter and its value is set equal to the selected input value. When the OUT status is not limited but the BKCAL_IN status from the downstream block indicates it is limited, the BKCAL_IN limit status and value is copied to the associated BKCAL_SEL[x] parameter.
The status and value of the BKCAL_SEL[x] parameters that do not correspond to the selected input (the non-selected BKCAL_SEL[x] parameters) are set equal to the status and value of the BKCAL_SEL[x] parameter that corresponds to the selected input after its value and status is determined as above. The substatus of the non-selected BKCAL_SEL(x) parameters are set to Not Selected.
When the SEL_TYPE is Low value, the limit status of the non-selected BKCAL_SEL(x) parameters are set to High Limited. When the SEL_TYPE is High value, the limit status of the non-selected BKCAL_SEL(x) parameters are set to Low Limited. When the SEL_TYPE is Middle value, the limit status of the BKCAL_SEL(x) that corresponds to the lowest SEL(x) input is set to Low Limited. The limit status of the BKCAL_SEL(x) that corresponds to the highest SEL(x) input is set to High Limited.
Initialization Manual Mode
When the BKCAL_IN status indicates Initiate Request (IR), the status of OUT is set to Good: Cascade, Initiate Acknowledge (IA). Otherwise, the status of OUT is set to Good: Cascade. The value of OUT is set equal to the value of BKCAL_IN. The value and status of BKCAL_SEL1, BKCAL_SEL2 and BKCAL_SEL3 are set to the value and status of BKCAL_IN.
Out of Service Mode
The statuses of all output parameters are set to Bad: Out of Service.
The following table lists the system parameters for the Control Selector function block:
Control Selector Function Block System Parameters
Parameter |
Units |
Description |
| ABNORM_ACTIVE | None | The indication that a block error condition not selected in BAD_MASK (on the function block level) is True (Active) or the indication that an error condition (at the module level) not selected in MERROR_MASK is True (Active) or a module status not selected in MSTATUS_MASK is True (Active). |
| ALERT_KEY* | None | A user-assigned identification number reported in alarm messages from the block that allows HMI applications to sort and filter alarms and events. Set this parameter for each function block to indicate the physical unit the function block is associated with. This information can be used in the host for sorting alarms, and so on. |
| BAD_ACTIVE | None | The indication that a block error condition selected in BAD_MASK (at the function block level) is True (Active) or the indication that an error condition (at the module level) selected in MERROR_MASK is True (Active) or a module status selected in MSTATUS_MASK is True (Active). |
| BAD_MASK | None | The set of active error conditions that triggers a user-defined Bad condition. The user selects a subset of block error (BLOCK_ERR) conditions in the BAD_MASK parameter. When any of these conditions are True, the BAD_ACTIVE parameter becomes True. When any of the BLOCK_ERR conditions that are not included in BAD_MASK are True, ABNORM_ACTIVE becomes True. |
| BKCAL_IN | Supplied by source | The analog input value and status from another block's BKCAL_OUT output that is used by an upstream block for bumpless transfer. |
| BKCAL_SEL1 | EU of OUT_SCALE | The selector output value associated with SEL_1 for backward output tracking. |
| BKCAL_SEL2 | EU of OUT_SCALE | The selector output value associated with SEL_2 for backward output tracking. |
| BKCAL_SEL3 | EU of OUT_SCALE | The selector output value associated with SEL_3 for backward output tracking. |
| BLOCK_ERR | None | The
summary of active error
conditions associated
with the block. The
block error for the
Control Selector
function block is:
|
| MODE | None | The mode record of the block. Contains the actual, target, permitted, and normal modes. |
| OUT | EU of OUT_SCALE | The analog output value and status. |
| OUT_HI_LIM | EU of OUT_SCALE | The maximum output value allowed. |
| OUT_LO_LIM | EU of OUT_SCALE | The minimum output value allowed |
| OUT_SCALE | None | The high and low scale values, engineering units code, and number of digits to the right of the decimal point associated with OUT. |
| SEL_1 | Supplied by source | The first input value to the selector. |
| SEL_2 | Supplied by source | The second input value to the selector. |
| SEL_3 | Supplied by source | The third input value to the selector. |
| SEL_TYPE | None | The selector type: High, Low, or Middle value. |
| ST_REV* | None | The revision level of the static data associated with the function block. To support tracking changes in static parameter fields, the associated block's static revision parameter is incremented each time a static parameter field value is changed. Also, the associated block's static revision parameter is incremented if a static parameter field is written but the value is not changed. |
| STATUS_OPTS* | None | Use status
options to set how
status is handled and
processed. The available
options are:
|
| STRATEGY* | None | Used to identify groupings of blocks. This data is not checked or processed by the block. |
* These parameters are only visible when the function block is extended to a Fieldbus device.
Note Default values and data type information for the parameters are available by expanding the Parameter View window.
The Control Selector function block is ideal for providing automatic override control. This function block can take three control signals as input. The user can select SEL_TYPE = Low, Medium, or High for various control configurations.

Control Selector Function Block Diagram Example
Use the Control Selector function block in a situation where flow is the primary control variable but pressure must be controlled in the event that it rises to a dangerous level. The following figure illustrates this example:

Flow Control with Pressure Override
In this example, both the flow and pressure PID blocks control a supply valve. The flow PID operates in a pressure regime below a safety limit. Since this is a low pressure for the pressure PID, it sends a high output signal to the supply valve, telling it to open more to increase the pressure.
At normal operating pressures, the pressure PID's high SP requests a maximum valve opening to increase pressure. The flow PID's signal is lower than that of the pressure PID. In this case, SEL_TYPE is set to Low so that the Control Selector function block sends the flow PID's signal on to the supply valve and blocks the pressure PID's signal.
If the flow stream's pressure rises to a dangerous level, the pressure PID sends a low signal to the supply valve, telling it to close. When this output signal falls below that from the flow PID, the Control Selector function block begins to pass the pressure PID's signal and block the flow PID's signal.