MUX
Retorna o valor da entrada indexada pelo parâmetro K ou seja IN[K]. Esta é uma função extensível suportanto um número variável de parâmetros IN. Estes parâmetros são referenciados sequencialmente a partir de zero ou seja, o primeiro parâmetro é referenciado como IN0, o segundo como IN1 e assim sucessivamente.
Nota
Se o valor do parâmetro K for menor ou igual a zero a função retornará o valor do parâmetro IN0. Se o valor de K for maior ou igual ao número de elementos - 1 a função retornará o valor do último elemento ( IN[K-1] ).
Bloco
MUX
+-------------+
INT ---|K |--- ANY_ELEMENTARY
| |
ANY_ELEMENTARY ---|IN0 |
| |
ANY_ELEMENTARY ---|IN1 |
+-------------+
Nota
Esta função aceita nas entradas INx qualquer um dos parâmetros do tipo ANY_ELEMENTARY como entrada a ser selecionada. Consulte os Grupos de tipos de dados para identificar quais os tipos suportados pela função.
Note que, todos os parâmetros de entrada INx e o valor de retorno devem ser do mesmo tipo.
Parâmetro
Nome |
Classe |
Tipo |
Descrição |
K |
Entrada |
INT |
Entrada de seleção |
IN0 |
Entrada |
ANY_ELEMENTARY |
Entrada 0 |
IN1 |
Entrada |
ANY_ELEMENTARY |
Entrada 1 |
Retorno
Tipo Dado |
Descrição |
ANY_ELEMENTARY |
Valor resultante da operação. |
Exemplo
Declaração de Variáveis
Nome |
Classe |
Tipo |
Descrição |
|---|---|---|---|
value_1 |
Local |
REAL |
Valor 1 |
value_2 |
Local |
REAL |
Valor 2 |
value_out |
Local |
REAL |
Valor de saída |
Código ST
// Exemplo de ativação da função dentro da POU
(* ... *)
value_1 := 1.5 (* Valor 1 a ser avaliado *)
value_2 := 5.3; (* Valor 2 a ser avaliado *)
value_out := MUX(K:= 0, IN0:= value_1, IN1:= value_2);
(* A variavel value_out recebe o valor 1.5 *)
(* ... *)