RANDOM
Esta função gera um valor inteiro pseudo-aleatório na faixa especificada pelos parâmetros MIN e MAX. Através do parâmetro NEW_SEED é possível criar uma nova semente para geração dos valores quando a função for chamada a primeira vez. Quando o parâmetro NEW_SEED for FALSE a função utiliza o valor 1 como semente e neste caso a sequencia de valores gerados será sempre a mesma. Esta opção é util para depuração.
Importante
Esta função pode não existir dependendo da versão de firmware corrente no equipamento a ser utilizado pela aplicação. Quando esta condição ocorrer será reportada uma falha no processo de compilação. Nesta situação, o usuário deverá atualizar o firmware do equipamento para que este recurso seja disponibilizado.
Bloco
RANDOM
+----------------+
DINT ---|MIN |--- DINT
| |
DINT ---|MAX |
| |
BOOL ---|NEW_SEED |
+----------------+
Parâmetro
Nome |
Classe |
Tipo |
Descrição |
MIN |
Entrada |
DINT |
Valor mínimo a ser gerado |
MAX |
Entrada |
DINT |
Valor máximo a ser gerado |
NEW_SEED |
Entrada |
BOOL |
Se true, gera uma semente na primeira chamada da função. Se false utiliza 1 como semente |
Retorno
Tipo Dado |
Descrição |
DINT |
Valor aleatório retornado pela função |
Exemplo
Declaração de variáveis
Nome |
Tipo |
Descrição |
|---|---|---|
VAL |
DINT |
Valor aleatorio |
Código ST
// Exemplo de ativação da função dentro da POU
(* ... *)
(* Simula um valor de um canal analógico aleatóriamente *)
VAL := HILS.RANDOM(0, 4095, TRUE); // retorna um valor aleatório entre 0 .. 4095
(* ... *)