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;