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

3 Likes

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
1 Like