LCONV

Esta função implementa uma conversão linear do valor de entrada X de acordo com a seguinte equação:

Y = (X - XMIN) * ((YMAX-YMIN)/(XMAX-XMIN)) + YMIN

     |
 YMAX|- - - - - - - - - - - - - - - .
     |                           .  :
     |                        .     :
     |                     .        :
     |                  .           :
    Y|- - - - - - - -.              :
     |            .  :              :
     |         .     :              :
     |      .        :              :
YMIN |- -.           :              :
     |   :           :              :
     |   :           :              :
     |_________________________________________
         XMIN        X              XMAX

Nota

Se a entrada X for menor ou igual a XMIN o valor da saída Y será YMIN.

Se a entrada X for maior ou igual a XMAX o valor da saída Y será YMAX.

Bloco

              LCONV
         +-------------+
REAL ----|X            |---- REAL
         |             |
REAL ----|XMIN         |
         |             |
REAL ----|XMAX         |
         |             |
REAL ----|YMIN         |
         |             |
REAL ----|YMAX         |
         +-------------+

Dica

Para conhecer melhor o recurso e suas funcionalidades acesse o vídeo tutorial: Função LCONV.

Parâmetros

Nome

Classe

Tipo

Dim.

V. Ini.

Descrição

X

Entrada

REAL

0.0

Valor de entrada

XMIN

Entrada

REAL

0.0

Valor mínimo da entrada X

XMAX

Entrada

REAL

0.0

Valor máximo da entrada X

YMIN

Entrada

REAL

0.0

Valor mínimo da saída Y

YMAX

Entrada

REAL

0.0

Valor máximo da saída Y

Exemplo

Declaração de Variáveis

Nome

Tipo

Descrição

inp_X

REAL

valor de entrada

out_Y

REAL

valor de saida convertida

Clique aqui para baixar a tabela de variáveis

Código ST

(* Exemplo de ativação do bloco LCONV dentro da POU *)

(* ... *)
(* Converte o valor obtido de uma entrada analógica para faixa de 0 .. 100 *)
out_Y := HILS.LCONV(  // LCONV
          X     := inp_X,  // [REAL] Valor de entrada
          XMIN  := 0.0,    // [REAL] Valor mínimo da entrada X
          XMAX  := 4095.0, // [REAL] Valor máximo da entrada X
          YMIN  := 0.0,    // [REAL] Valor mínimo da saída Y
          YMAX  := 100.0   // [REAL] Valor máximo da saída Y
          );

// out_Y representa o valor da entrada na faixa de 0 .. 100
(* ... *)