Zufallsgenerator in einer SPS
- Oberwelle
- Beiträge: 8770
- Registriert: Montag 4. April 2005, 17:54
Zufallsgenerator in einer SPS
Moin..
hat jemand eine Idee, wie man eine Zufallszahl zwischen 1 und 5 generieren kann. Die SPS die ich benutze hat leider keinen Zufallsgenerator.
hat jemand eine Idee, wie man eine Zufallszahl zwischen 1 und 5 generieren kann. Die SPS die ich benutze hat leider keinen Zufallsgenerator.
.
Ich kann über die Richtigkeit / Vollständigkeit meiner Angaben keine Gewähr übernehmen. Immer alle Vorschriften beachten !
Ich kann über die Richtigkeit / Vollständigkeit meiner Angaben keine Gewähr übernehmen. Immer alle Vorschriften beachten !
-
- Null-Leiter
- Beiträge: 3426
- Registriert: Mittwoch 27. Dezember 2006, 13:10
- Wohnort: Koblenz
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.
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.
- 50Hertz
- Null-Leiter
- Beiträge: 3559
- Registriert: Sonntag 11. Februar 2007, 15:53
- Wohnort: Dümmerland
- Kontaktdaten:
Zeit zwischen zwei Tastendrücken wird gestoppt, Zehntelsekunden extrahiert und diese gerundet als Zahl zwischen 1-5 genommen, wenns >5 ist, wird -5 gerechnet.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.
So entstehen immer ganzzahlige Ergebnisse.
Gruß
50Hertz
- Oberwelle
- Beiträge: 8770
- Registriert: Montag 4. April 2005, 17:54
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...?
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
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...?
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
.
Ich kann über die Richtigkeit / Vollständigkeit meiner Angaben keine Gewähr übernehmen. Immer alle Vorschriften beachten !
Ich kann über die Richtigkeit / Vollständigkeit meiner Angaben keine Gewähr übernehmen. Immer alle Vorschriften beachten !
-
- Null-Leiter
- Beiträge: 3426
- Registriert: Mittwoch 27. Dezember 2006, 13:10
- Wohnort: Koblenz
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)
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)
- Oberwelle
- Beiträge: 8770
- Registriert: Montag 4. April 2005, 17:54
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.
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.
.
Ich kann über die Richtigkeit / Vollständigkeit meiner Angaben keine Gewähr übernehmen. Immer alle Vorschriften beachten !
Ich kann über die Richtigkeit / Vollständigkeit meiner Angaben keine Gewähr übernehmen. Immer alle Vorschriften beachten !
-
- Null-Leiter
- Beiträge: 4312
- Registriert: Donnerstag 2. August 2007, 09:10
- Wohnort: BW
- SPS
- Beiträge: 6065
- Registriert: Freitag 16. Juli 2004, 20:27
- Kontaktdaten:
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
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