Description
You can use the "Decode" instruction to set a bit in the output value specified by the input value.
The "Decode" instruction reads the value at the IN input and sets the bit in the output value whose bit position corresponds to the read value. The other bits in the output value are filled with zeroes. If the value at input IN is greater than 31, a modulo 32 instruction is executed.
Parameters
The following table shows the parameters of the "Decode" instruction:
|
Parameters |
Declaration |
Data type |
Memory area |
Description |
|
|---|---|---|---|---|---|
|
S7-1200 |
S7-1500 |
||||
|
EN |
Input |
BOOL |
I, Q, M, D, L or constant |
I, Q, M, D, L, T, C or constant |
Enable input |
|
ENO |
Output |
BOOL |
I, Q, M, D, L |
I, Q, M, D, L |
Enable output |
|
IN |
Input |
UINT |
I, Q, M, D, L, P or constant |
I, Q, M, D, L, P or constant |
Position of the bit in the output value which is set. |
|
OUT |
Output |
Bit strings |
I, Q, M, D, L, P |
I, Q, M, D, L, P |
Output value |
You can select the data type of the instruction from the "???" drop-down list of the instruction box.
For additional information on valid data types, refer to "See also".
Example
The following example shows how the instruction works:
The following figure shows how the instruction works using concrete operand values:
If the "TagIn" operand has signal state "1", the instruction is executed. The instruction reads bit number "3" from the value of the operand "TagIn_Value" and sets the third bit to the value of the operand "TagOut_Value".
If no errors occur during the execution of the instruction, the output ENO has the signal state "1" and the output "TagOut" is set.