Seite 1 von 3

Zufallsgenerator in einer SPS

Verfasst: Donnerstag 7. August 2008, 14:35
von Oberwelle
Moin..

hat jemand eine Idee, wie man eine Zufallszahl zwischen 1 und 5 generieren kann. Die SPS die ich benutze hat leider keinen Zufallsgenerator.

:cool:

Verfasst: Donnerstag 7. August 2008, 14:38
von ohoyer
Ist hier Interaktion mit dem Benutzer gefragt, oder muss diese zu beliebigen Zuständen ermittelt werden?

Pseudozahlen kann man ermitteln, indem man z.B. die Zeit (und sei es Zeit seit dem Einschalten) ausliest, diese in ein weiterverarbeitbares Format bringt, ggf. noch mit dem Datum oder nem anderen Zähler multipliziert, und dann Modulo etc. nimmt...

Alternativ: Zeit zwischen zwei Tastendrücken wird gestoppt, Zehntelsekunden extrahiert und diese gerundet als Zahl zwischen 1-5 genommen, wenns ausserhalb 1-5 ist, geteilt 2.

Verfasst: Donnerstag 7. August 2008, 14:42
von jf27el
Die Frage ist, wie das getriggert wird.

Handtriggerung bringt fast zwangsläufig Zufallszahl.

FUB Zähler 1bis 5 (oder Null auch ?)
Auslesen auf Trigger (im ersten Durchgang)

Gruß
jf27el

Verfasst: Donnerstag 7. August 2008, 14:45
von 50Hertz
ohoyer hat geschrieben:
Alternativ: Zeit zwischen zwei Tastendrücken wird gestoppt, Zehntelsekunden extrahiert und diese gerundet als Zahl zwischen 1-5 genommen, wenns ausserhalb 1-5 ist, geteilt 2.
Zeit zwischen zwei Tastendrücken wird gestoppt, Zehntelsekunden extrahiert und diese gerundet als Zahl zwischen 1-5 genommen, wenns >5 ist, wird -5 gerechnet.
So entstehen immer ganzzahlige Ergebnisse.

Gruß
50Hertz

Verfasst: Donnerstag 7. August 2008, 15:27
von geloescht
Hallo Oberwelle,

hat das Ding einen programmierbaren Zähler?

Wenn ja, den Zähler so programmieren, dass er von eins bis fünf zählt wenn eine Taste gedrückt wird. Die Zahl, die beim Loslassen dran war wird verwertet.


Gruß

Alois

Verfasst: Donnerstag 7. August 2008, 17:05
von Oberwelle
Ich entschuldige mich für die unpräzise Frage :(

Wenn eine Pumpe länger als 3 Std läuft, soll diese mit einer anderen Pumpe tauschen ( insgesamt 5 Pumpen sind vorhanden )

Timer und Zähler jeglicher Art sind genügend vorhanden, die Zeit vom Start an oder auch die echte Zeit kann ich nicht nehmen, weil nach "3 Std" immer die "gleiche" sek. Zeit errechnet wird.

Ein Benutzer greift auch nicht ein, so daß man nicht die Zeiten nehmen könnte.

Gibt es keinen anderen Trick, wie man ein Zufallsgenerator "bauen" kann...?

:rolleyes:

Nachtrag:
Idee ??

Der Pumpenstart wird über eine Höhenstandsmessung ausgelößt ( Messwert direkt auf SPS ) , diesen Messwert könnte man ja verwenden ?! Der schwankt ständig.
Den Messwert durch schieben ( SLL und SLR ) bis auf die letzte Stelle dezimieren und diese "zufällige" Zahl benutzen ?!

Werde ich mal testen...

Die SPS ist eine Bosch CL150A

Verfasst: Donnerstag 7. August 2008, 17:55
von ohoyer
An dieser Stelle würde ich das anders machen: Es werden doch sicher auch Betriebsstundenzähler mitgeschrieben, welche Pumpe wielange in Betrieb ist/war?


Dann würde das so aussehen:

- WENN Betriebszeit Pumpe x >3h dann AUS
- Vergleich Betriebszeiten aller Pumpen
- Test, ob Pumpe mit kleinster Betriebszeit noch ggf. Ruhepause nach Abschaltung einhalten muss
- START Pumpe mit kleinster Betriebszeit

Betriebszeit ist hier die absolute Zeit, die das Teil in ihrem Leben gelaufen ist.

Den Vergleich kann man ggf. auch so realisieren, dass man Flags setzt, wer angeworfen wurde, und beim Test, wer als nächstes rangeht, schaut, wer noch nicht reihum dranwar.

- START Pumpe x
- Setze Merker Pumpex-Betrieb auf 1
- WENN Betriebszeit Pumpex >3h Pumpe3 AUS
- LESE Merker Pumpe1, WENN Pumpe1 = 0 dann pruefe auf Ruhepause, sonst Pumpe1 START
- WENN Pumpe1Betrieb=1 dann LESE Merker Pumpe2 ...
...
- Wenn Merker Pumpe5=1 dann SETZE Merker Pumpe1-5=0 (Hier sind offensichtlich alle Pumpen mal gelaufen
- LESE Merker Pumpe1 (also nochmal von vorne)

Verfasst: Donnerstag 7. August 2008, 18:10
von Oberwelle
Moin ohoyer,

wenn aber eine Pumpe zu wartungszwecken längere Zeit außer Betrieb war, wird diese die Zeit nachholen wollen....:(

Es geht nicht darum, daß alle Pumpen die gleiche Gesamt-Laufzeit haben, sondern das alle Brunnen-Pumpen die Brunnen in der Woche etwa gleichmäßig belasten.

:)

Verfasst: Donnerstag 7. August 2008, 18:28
von jf27el
Da Du sowieso jede Pumpe einmal am Tag laufen lassen solltest würde ich die nehmen die am längsten auf der "Ersatzbank" gesessen hat.:D
Welche war zum Zeitpunkt des Bedarfs am längsten aus. :cool:

Gruß
jf27el

Verfasst: Donnerstag 7. August 2008, 18:41
von SPS
hallo zusammen,

ich denke auch das Betriebsstunden ausgewertet werden sollen.
Die können ja jede Woche wieder zurückgesetzt werden.
Hat eine Pumpe wegen Wartung weniger Stunden, kann hier sicher ein Faktor eingerechnet werden. Bzw ein Wechsel erzwungen werden.

Bei Zufallszeit kann auch eine Pumpe länger laufen