RANDOM

Gera um valor inteiro pseudo-aleatório na faixa definida por MIN e MAX, com semente opcional; pode não estar disponível conforme a versão de firmware do equipamento. É uma função.

Biblioteca: HI_STD · Namespace: HILS · Tipo: função

Função

              RANDOM
        +----------------+
DINT ---|MIN             |--- DINT
        |                |
DINT ---|MAX             |
        |                |
BOOL ---|NEW_SEED        |
        +----------------+

A função retorna um valor pseudo-aleatório entre MIN e MAX. Quando NEW_SEED é TRUE, uma nova semente é criada na primeira chamada da função. Quando NEW_SEED é FALSE, a função usa o valor 1 como semente e a sequência de valores gerados é sempre a mesma — opção útil para depuração.

Importante

Esta função pode não existir dependendo da versão de firmware corrente no equipamento utilizado pela aplicação. Quando esta condição ocorrer, será reportada uma falha no processo de compilação; nessa situação o usuário deverá atualizar o firmware do equipamento para que este recurso seja disponibilizado.

Parâmetros

Nome

Direção

Tipo

Padrão

Faixa / Unidade

Descrição

MIN

IN

DINT

—

—

Valor mínimo a ser gerado.

MAX

IN

DINT

—

—

Valor máximo a ser gerado.

NEW_SEED

IN

BOOL

—

—

Se TRUE, gera uma semente na primeira chamada da função. Se FALSE, utiliza 1 como semente.

Retorno / Saídas

Retorna um DINT com o valor aleatório gerado na faixa MIN .. MAX.

Pré-condições

  • O firmware do equipamento deve dar suporte a esta função.

Exemplo

Clique aqui para baixar a tabela de variáveis

Código ST

VAR
    VAL : DINT; (* Valor aleatorio *)
END_VAR

(* Simula aleatoriamente o valor de um canal analogico *)
VAL := HILS.RANDOM(0, 4095, TRUE);  (* retorna um valor aleatorio entre 0 .. 4095 *)