Random number function?

Hello community,

Is there a random function, in a library in AS, for ST language ?
I didn’t find anything in the help …

Thanks in advance

You could take a look at this RandomLib from GitHub.

GitHub - dv-br-automation/RandomLib: A library to generate random variables in any language in Automation Studio Project

For some use cases it might be okay to write your own simple random number generator. In my case a “Park–Miller random number generator

Here is a simple implementation:

VAR
	randomNumber : REAL;
	rngState : UDINT;
END_VAR
PROGRAM _INIT	
	rngState := 1;  // seed in rng generator (can't be 0)
END_PROGRAM

PROGRAM _CYCLIC

	// own RNG generator
	rngState := (rngState*48271) MOD 16#7fffffff;

	// random number from 0 to 1 (4 decimals)
	randomNumber := (rngState MOD 10000) / 10000.0;  

END_PROGRAM