вот алгоритм из книги Петрова:
FUNCTION_BLOCK random(*.........случайное число 1..250..................*)
VAR_INPUT
en:BOOL; (*.........разрешение рандома...............*)
in:USINT; (*.........начальное значение................*)
END_VAR
(*................................................ ..................*)
VAR_OUTPUT
out:USINT:=1;
END_VAR
(*................................................ ..................*)
VAR
rt:R_TRIG;
END_VAR
================================================== ==================================
rt(clk:=en); (*--------сам код------------------------*)
IF rt.Q THEN out:=in; END_IF
(*--------------------------------*)
out:=out*170-251*(out*170/251);