FB_RandomGenerator - Allgemeine Informationen
Typ |
Funktionsbaustein |
Verfügbar ab |
V1.0.3.0 |
Übernommen aus |
- |
Implementiert |
- |
Versionen: |
Aktuelle Version |
Erzeugen einer Zufallszahl
Generiert bei jedem Aufruf der Methoden GetLreal oder GetDint eine Zufallszahl, die in einem Intervall mit definierten Grenzen liegt. Da die Erzeugung der Zufallszahlen nach der linearen Kongruenzmethode erfolgt, ist ein Startwert i_diNstart erforderlich, der mit der Methode Init gesetzt wird. Dieser kann eine beliebige ganze Zahl > 0 sein, die im Wertebereich des Datentyps DINT liegt. Die Methode Init muss daher einmalig aufgerufen werden, bevor die Methoden GetLreal oder GetDint aufgerufen werden.
Die lineare Kongruenzmethode erzeugt eine Folge von Zahlen nach der folgenden Vorschrift:
z(i+1) = (a * z(i)) MOD m
Hierbei müssen a und m geeignete ganze Zahlen sein. z(0) entspricht dem Startwert i_diNstart. Unser Zufallsgenerator verwendet a = 16807 und m = 2^31 - 1 (Mersenne-Primzahl). Hiermit wird eine Folge von Zahlen erzeugt, die die Periode 2^31 hat, d. h. die Werte wiederholen sich erst nach mehr als 2 Milliarden erzeugten Zahlen. Diese werden als Zufallszahlen verwendet.
HINWEIS: Die POU ist nicht adressierbar!
Die POU darf nicht aufgerufen werden.
Der Funktionsbaustein kann verwendet werden, indem man ihn über Methoden und Eigenschaften aufruft.