IS_VALID

Verifica se o valor real de entrada é um número válido, retornando TRUE para um real válido e FALSE quando o valor é NAN (Not A Number), +INF ou -INF. É uma função (sem estado; não requer instância).

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

Função

                 IS_VALID
             +--------------+
             |              |
ANY_REAL ----|IN            |---- BOOL
             |              |
             +--------------+

A função avalia o parâmetro IN e retorna um BOOL indicando se ele representa um número real válido. Valores especiais de ponto flutuante — NAN, +INF e -INF — resultam em FALSE, permitindo detectar operações que produziram resultados inválidos (por exemplo, divisão por zero).

Parâmetros

Nome

Direção

Tipo

Padrão

Faixa / Unidade

Descrição

IN

IN

ANY_REAL

—

—

Valor real a ser validado.

Retorno / Saídas

Retorna BOOL: TRUE se IN for um valor real válido; FALSE se IN for NAN, +INF ou -INF.

Observações

  • Útil para validar o resultado de operações aritméticas em ponto flutuante antes de utilizá-lo, evitando a propagação de valores inválidos.

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    r_val : REAL := 3.14; (* Variavel a ser avaliada *)
END_VAR

(* Exemplo de ativacao da funcao dentro da POU *)
(* ... *)
IF (IS_VALID(r_val)) THEN
  (* r_val e um valor valido *)
  r_val := r_val / 0.0;
  IF (NOT IS_VALID(r_val)) THEN
    (* r_val e um valor invalido (INF) -> tratamento de erro *)
    ;
  END_IF;
END_IF;