Introduction to the ControlLogix Enhanced Select (ESEL) Instruction
All things considered, the ControlLogix Enhanced Select (ESEL) simply selects between tags to choose the best suited value to use in logic. For example, if you have two process variables for a PID, you might select the lowest, highest, or average of the values. Another option is to manually select the value by using an input tag on the instruction. At the present time the Enhanced Select is only available in Function Blocks or Structured Text.
Consider the following tags. I’ve created all 5 tags as DINT (Double Integer). I’ve populated the values with numbers to simulate real world values. The result of our ESEL instruction is placed into ESELOutput.
Set up the ControlLogix Enhanced Select (ESEL) Instruction
Next, we’ll set up the logic as follows:
Click the Ellipsis (three dots) to enter the configuration screen for the instruction.
We’ll set the selector mode to 1. A selector mode of 0 = Manual Select. A value of 1 = High Select. 2 = Low Select. 3 = Median Select, and 4 = Average Select. If the selector mode is 0, then you will feed a value into the ProgSelector as long as the instruction is in program control mode. Be sure to set the InsUsed to the number of inputs we have… In this case, 4.
Test your work
Now, I’ll download and test the work. Since our SelectMode = 1, we should see the highest value of input in the ESELOutput tag.
As you can see, since the mode = 1, the instruction picked the highest value of the 4 inputs, which is 20.
Next, we’ll change the mode to 2, which is Low Select.
The output is 1, which is the lowest value of all of the inputs.
Similarly, with a mode of 3, we see the median value is 2. That’s the number after which half the values are higher.
Finally, with a mode of 4, our output is the average of the Inputs, which is 10.5.
If we set the Select Mode to 0, and turn on the ProgProgReq bit, we will manually feed a value into the ProgSelect input. This allows the program to select which input the instruction sends out. In this case, the value of the SelectorTag is 3. This value goes into the ProgSelector. With the Select mode set to 0 (Manual), our output comes from the third input. This value is currently 19.
For more information, please visit the category page for ControlLogix!
— Ricky Bryce