La funzione ritorna un numero random compreso tra 0.0 e 1.0. E’ possibile definire impostando lo stato del parametro Cmd se si vuole avere un nuovo numero random (Cmd:=TRUE) oppure quello memorizzato con la precedente esecuzione della funzione (Cmd:=FALSE). Function
Descrizione
Cmd (BOOL) Indica il valore random che deve essere ritornato. Se TRUE viene salvato e ritornato un nuovo valore random. Se FALSE viene ritornato il valore random salvato dalla precedente chiamata alla funzione con Cmd:=TRUE.
La funzione ritorna una variabile (REAL) con un valore random compreso tra 0.0 e 1.0.

Esempi
Come utilizzare gli esempi.
ST_SysGetRandom: Viene eseguito il lampeggio di una uscita logica con un tempo random compreso tra 1 e 3 secondi.
ST_RandomTime: Settando da debug la variabile Calculate viene calcolato un tempo random compreso tra i valori di range definiti.
LogicLab (Ptp116, ST_SysGetRandom)
PROGRAM ST_SysGetRandom
VAR
BOut : BOOL; (* Blink output *)
TimeBf : UDINT; (* Time buffer (mS) *)
BTime : REAL; (* Blink time (S) *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_SysGetRandom"
// *****************************************************************************
// This program blinks an output with a random time, time in the range from 1
// to 3 sec.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// PROGRAM INIT
// -------------------------------------------------------------------------
// Program init.
IF (SysFirstLoop) THEN
TimeBf:=SysTimeGetMs(); //Time buffer (mS)
BTime:=1.0+(SysGetRandom(TRUE)*2.0); //Blink time (S)
END_IF;
// -------------------------------------------------------------------------
// BLINKING
// -------------------------------------------------------------------------
// Blinks the output.
IF ((SysTimeGetMs()-TimeBf) > TO_UDINT(BTime*1000.0)) THEN
TimeBf:=SysTimeGetMs(); //Time buffer (mS)
BTime:=1.0+(SysGetRandom(TRUE)*2.0); //Blink time (S)
BOut:=NOT(BOut); //Blink output
END_IF;
// [End of file]
CODESYS (Ptp161, ST_SysGetRandom)
PROGRAM ST_SysGetRandom
VAR
TimeBf : UDINT; //Time buffer (uS)
BTime : REAL; //Blink time (S)
BOut : BOOL; //Blink output
END_VAR
// *****************************************************************************
// PROGRAM "ST_SysGetRandom"
// *****************************************************************************
// This program blinks an output with a random time, time in the range from 1
// to 3 sec.
// -----------------------------------------------------------------------------
// -------------------------------------------------------------------------
// PROGRAM INIT
// -------------------------------------------------------------------------
// Program init.
IF (GBVar.SysFirstLoop) THEN
TimeBf:=SysGetSysTime(TRUE); //Time buffer (uS)
BTime:=1.0+(SysGetRandom(TRUE)*2.0); //Blink time (S)
END_IF;
// -------------------------------------------------------------------------
// BLINKING
// -------------------------------------------------------------------------
// Blinks the output.
IF ((SysGetSysTime(TRUE)-TimeBf) > TO_UDINT(BTime*1000000.0)) THEN
TimeBf:=SysGetSysTime(TRUE); //Time buffer (uS)
BTime:=1.0+(SysGetRandom(TRUE)*2.0); //Blink time (S)
BOut:=NOT(BOut); //Blink output
END_IF;
// [End of file]
LogicLab (Ptp116, ST_RandomTime)
PROGRAM ST_RandomTime
VAR
Calculate : BOOL; (* Calculate command *)
TimeMin : REAL; (* Minimum time (S) *)
TimeMax : REAL; (* Maximum time (S) *)
TimeRnd : REAL; (* Random time (S) *)
END_VAR
// *****************************************************************************
// PROGRAM "ST_RandomTime"
// *****************************************************************************
// This program calculates a random time in a defined range of values.
// -----------------------------------------------------------------------------
// Define the range.
TimeMin:=120.0; //Minimum time (S)
TimeMax:=240.0; //Maximum time (S)
// By activating the "Calculate" variable a random time is calculated.
IF (Calculate) THEN
Calculate:=FALSE; //Calculate command
TimeRnd:=TimeMin+(SysGetRandom(TRUE)*(TimeMax-TimeMin)); //Random time (S)
END_IF;
// [End of file]