speichernde Einschaltverzögerung (SS) mit Zufallszeit für S5

ich suche eine speichernde Einschaltverzögerung mit einer zufälligen Zeit zwischen 5 und 20 Sekunden für S5.
Hi Scoby,
würde folgende Formulierung auch zutreffen?

"Ich suche wie man eine Zufallszahl für die S5 erstellt und sie dann einer speichernden Einschaltverzögerung übergibt."

Welche CPU? Ist wichtig wegen dem Befehlssatz.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Es handelt sich um eine CPU100U.

Edit:
Klar, wenns nix fertiges von Siemens gibt dann trifft diese Formulierung natürlich auch zu. ^^
 
Zuletzt bearbeitet:
Wie oft willst du darauf zugreifen?
Regelmäßig oder sporadisch?

Vielleicht würde es ja reichen wenn du einfach eine Variable in jedem Zyklus um 1 erhöhst und bei > 20 wieder bei 5 beginnst.

Wenn du dann die Zeit starten willst nimmst du den momentanen Wert und schreibst:

Code:
     FB 241 // Dual in BCD > Eingang = Laufvariable; Ausgang = MW "Zeit in BCD"
     MW "Zeit in BCD"
     L KM 0010 0000 0000 0000 (Zeitbasis für Sekunden)
     OW
     T "Zeit"
 
     U "Start"
     L "Zeit"
     SS T 1
     U T 1
     = M x.y
 
Jo das is ne gute Idee. Aber wie bekomm ich bei S5 eine 1 in den Akku 1 geladen? Mit

Code:
  L 1
gehts nicht.

Edit:
Ah, mit L KM 1 warscheinlich, oder?
 
Zuletzt bearbeitet:
Ich verzweifel hier gerade. Der schnallt die Sprungmarke einfach nicht:
 

Anhänge

  • Unbenannt.png
    Unbenannt.png
    28,2 KB · Aufrufe: 34
Ich verzweifel hier gerade. Der schnallt die Sprungmarke einfach nicht:
Oh, wenn du das genau so übernimmst, dann fehlt noch eine Kleinigkeit.
Sonst beginnt das ganze bei 1 anstatt bei 5. ;)
Code:
    :L MW 10
    :L KF 1
    :+F
    :T MW 10
    :L KF 5
    :<F
    :SPB M001
    :L MW 10
    :L KF 20
    :<= F
    :SPB M002
    :L KF 5
M001:T MW 10
M002: 
    :BE
Und wie MSB sagt, auf den Doppelpunkt achten.
In der Zeile zweimal Taste Pfeil links drücken, dann springt der Cursor über den Doppelpunkt.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Wunderbar, das scheint jetzt soweit zu funzen. Das nächste Problem ist jedoch das ich kein Plan habe wie ich diesen FB241 mit WinSPS-S5 erzeugen soll. Ich hab den jetzt ganz normal angelegt und FB241 genannt aber das ist ja warscheinlich nicht richtig ...

Im Anhang nochmal ein Bild.
 

Anhänge

  • Unbenannt.jpg
    Unbenannt.jpg
    43,9 KB · Aufrufe: 11
Wunderbar, das scheint jetzt soweit zu funzen. Das nächste Problem ist jedoch das ich kein Plan habe wie ich diesen FB241 mit WinSPS-S5 erzeugen soll. Ich hab den jetzt ganz normal angelegt und FB241 genannt aber das ist ja warscheinlich nicht richtig ...

Im Anhang nochmal ein Bild.
Der FB241 befindet sich auf der CPU.
Falls du ihn im Projekt nicht hast, einfach den Baustein von AG auf PG übertragen.
Aber so wie es bei deinem Bild ausschaut hast du ihn ja schon.
Bei Dual gibst du nun MW 10 an und ich glaube bei BCD 1 kommt der Wert in BCD raus.
Die anderen Parameter sagen mir gerade auch nichts, gib doch da mal einfach freie Merkerwörter an, und schau was rauskommt.
 
Das Problem ist das ich dort nichts hinschreiben kann. Wenn ich also bei DUAL MW 10 eingebe kommt "Befehl nicht erkannt!". Ich würde sagen das liegt daran dass ich den FB eben nicht habe. Alle Parameter die dort stehen habe ich mir ergoogelt und händisch hingeschrieben. (aus dieser Datei: http://www.elektro-kasch.de/pdf/100U.pdf)

Naja und wenn ich den FB 241 aus der CPU laden will kommt auch nur "Baustein im AG nicht vorhanden".
 
Hm ... stimmt steht ja auch da:

Integrierte Funktionsbausteine (ab CPU 102, 6ES5 102-8MA02) ;)

Okay also musses irgendwie ohne FB241 gehen ..

Edit:
Ähm ... ich hab jetzt gerade mal bisschen weiter geschaut. Soll das etwa heißen dass ich mit der CPU 100U nicht mal multiplizieren und dividieren kann? :S

Weil ich wollte jetzt die Umrechnung Dezimal in Dual selbst programmieren aber dafür brauche ich ja die Divission ...

Edit2:
LoL
also laut dem Handbuch zur CPU100 scheint das tatsächlich so zu sein. Die CPU100 kann erstmal nur + und -, ab der CPU 102 gibt es für die Division und Multiplikation extra FB's die das können - aber eben erst ab CPU102 ...

Edit3:
Ich seh gerade dass ich mit meiner Umrechnung Dezimal un dual eh falsch lag. Dual ist das ja ohnehin schon alles. Ich brauche ja Dual in BCD ... Ich glaub ich schreib diese 15 Fälle einfach mal als Sprung ins Programm rein.

Edit4:
Alles klar, das Programm scheint jetzt so zu laufen wie ich mir das vorstelle. Aber noch ne frage an Paule:
Was machen eigentlich diese 3 Zeilen hier:
Code:
     L MW "Zeit in BCD"
     L KM 0010 0000 0000 0000 (Zeitbasis für Sekunden)
     OW
     T "Zeit"

Die hab ich jetzt einfach so übernommen und es funzt damit. Aber ich kann mir überhaupt nicht wirklich vorstellen was da passiert. OW ist laut Hilfe ein oder mit Akku1 und Akku2 und wieso funzt die Zeit auch ohne KT?
 
Zuletzt bearbeitet:
Edit4:
Alles klar, das Programm scheint jetzt so zu laufen wie ich mir das vorstelle. Aber noch ne frage an Paule:
Was machen eigentlich diese 3 Zeilen hier:
Code:
     L MW "Zeit in BCD"
     L KM 0010 0000 0000 0000 (Zeitbasis für Sekunden)
     OW
     T "Zeit"

Die hab ich jetzt einfach so übernommen und es funzt damit. Aber ich kann mir überhaupt nicht wirklich vorstellen was da passiert. OW ist laut Hilfe ein oder mit Akku1 und Akku2 und wieso funzt die Zeit auch ohne KT?
Normalerweise schreibst du ja:
Code:
   L KT 5.2
Dabei ist die .2 ja die Zeitbasis.
Wenn du nun nur eine normale Zahl vorgibst, weiß das Programm ja nicht ob es Millisekunden, Sekunden oder 10 Sekunden sein sollen.
Und genau dies Zeitbasis befindet sich in den Bits 12 und 13 von den Bits 0-15.
Code:
00 = 10 ms
01 = 100 ms
10 = Sekunden
11 = 10 Sekunden
Durch das OW wird nun die Zahl für die Zeit mit der von dir nun vorgegebenen Zeitbasis "verodert",
das Ergebnis entspricht dann : LKT x.x
 
Zurück
Oben