MUX

Retorna o valor da entrada indexada pelo parâmetro K (IN[K]); é uma função pura extensível, suportando um número variável de parâmetros IN.

Biblioteca: IEC_STD · Namespace: IEC · Tipo: função

Função

                        MUX
                  +-------------+
           INT ---|K            |--- ANY_ELEMENTARY
                  |             |
ANY_ELEMENTARY ---|IN0          |
                  |             |
ANY_ELEMENTARY ---|IN1          |
                  +-------------+

Os parâmetros INx são referenciados sequencialmente a partir de zero, ou seja, o primeiro é referenciado como IN0, o segundo como IN1 e assim sucessivamente; a função aceita ainda mais entradas (IN2, IN3, …) além das duas mostradas no diagrama. Esta função aceita nas entradas INx qualquer um dos tipos do grupo ANY_ELEMENTARY (ver Grupos de tipos de dados para a lista completa de tipos suportados).

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

Parâmetros

Nome

Direção

Tipo

Padrão

Faixa / Unidade

Descrição

K

IN

INT

—

—

Índice (base zero) da entrada INx a ser retornada.

IN0

IN

ANY_ELEMENTARY

—

—

Entrada de índice 0.

IN1

IN

ANY_ELEMENTARY

—

—

Entrada de índice 1.

Retorno / Saídas

Tipo

Faixa / Unidade

Descrição

ANY_ELEMENTARY

—

Valor da entrada INx selecionada por K.

Observações

  • Todos os parâmetros de entrada INx e o valor de retorno devem ser do mesmo tipo de dados.

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    value_1   : REAL; (* Valor 1 *)
    value_2   : REAL; (* Valor 2 *)
    value_out : REAL; (* Valor de saída *)
END_VAR

(* 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 variável value_out recebe o valor 1.5 *)
(* ... *)