Sps

Hallo
Folgendes, ich will das Merkerwort eines Zählers als Zeitangabe für einen Taktgenerator nutzen. Wenn also zb. 2 im Zähler gesetzten sind, dann sollte der Taktgenrator mit einem Takt von 2 sec takten.
Wie bekomme ich das Merkerwort in die Zeitglieder ?
S5T# ???

Ich hoffe ihr versteht was ich meine. :)
 
AW: Sps

Hallo,

die "normalen" Zähler haben einen Ausgang im Dezimal-Format (16-bit, hexadezimal) Disen Wert des Zählers kann man nehmen und in eine 32-Bit-Ganzzahl umwandeln.
Operationen zuerst BTI und danach ITD
Danach den Wert mit 1000 multiplizieren.
Der Trick der ganzen Sache ist, dass das TIME-Format eine 32-Bit-Ganzzahl mit Vorzeichen ist. Der Zeitwert ist in ms codiert, daher auch der Faktor 1000
Und nun diesen Wert mit der vorhandenen Funktion "FC40 TIM_S5TI" in das Format S5TIME umwandeln.
Diesen Wert nun in die Timer einsetzen.
 
AW: Sps

Ähm, geht das auch einfacher ?
Ich dachte so an Sprungmarken am Ausgang des Zählers.
Kann ich den Wert nicht irgendwie mit der Sprungmarke verknüpfen ?
 
M

Mott1309

Gast
AW: Sps

Hallo,

die "normalen" Zähler haben einen Ausgang im Dezimal-Format (16-bit, hexadezimal) Disen Wert des Zählers kann man nehmen und in eine 32-Bit-Ganzzahl umwandeln.
Operationen zuerst BTI und danach ITD
Danach den Wert mit 1000 multiplizieren.
Der Trick der ganzen Sache ist, dass das TIME-Format eine 32-Bit-Ganzzahl mit Vorzeichen ist. Der Zeitwert ist in ms codiert, daher auch der Faktor 1000
Und nun diesen Wert mit der vorhandenen Funktion "FC40 TIM_S5TI" in das Format S5TIME umwandeln.
Diesen Wert nun in die Timer einsetzen.

8O

Ist das nicht ein bißchen umständlich?

Die "normalen" Zähler haben auch noch einen Ausgang im BCD-Format.
S5TIME liegt prinzipiell auch im BCD-Format vor, es fehlt nur die Zeitbasis (das, was bei der S5 bei den Zeiten hinter dem Punkt stand), und die steht in den vier höchsten Bits. Das macht die Sache eigentlich ganz einfach:

Du sorgst erstmal dafür, daß Dein Zähler nicht negativ wird. Dann greifst Du den Wert des Zählers mit einem MW als BCD am Ausgang "DEZ" ab.
Anschließend baust Du das MW wie folgt zu einer Zeit um: Du lädst als hexadezimal die gewünschte Zeitbasis mit 3 nullen hintendran (z.B. "L W#16#2000" für Zeitbasis 2 = Sekunde, 0 wäre 10ms, 1 wäre 100ms, 3 wäre 10s. Als nächstes lädst Du das Merkerwort mit Deinem Zähler darin.
Dann vergleichst Du die beiden auf 'wortweise oder' (AWL-Befehl 'OW'), Dadurch bekommst Du die Zeitbasis und den Zeitwert kombiniert.
Das Ergebnis transferierst Du wieder in das MW. Jetzt kannnst Du es als Zeitwert nach S5TIME-Format an einem der S7-Zeitbausteine verwenden.

Wenn Du Probleme hast, kann ich Dir das ganze als Beispiel per Mail zusenden. Schick mir einfach eine PN!
 

Jobs

Jobmail abonieren - keine Jobs mehr verpassen:

Ich möchte die wöchentliche Jobmail erhalten und akzeptiere die Datenschutzerklärung.
Du kannst die Jobmail jederzeit über den Link in der Mail abbestellen.

Wir verwenden Sendinblue als unsere Marketing-Plattform. Wenn Du das Formular ausfüllst und absendest, bestätigst Du, dass die von Dir angegebenen Informationen an Mailchimp zur Bearbeitung gemäß den Nutzungsbedingungen übertragen werden.

Top