Restzeitwert auslesen und umrechnen

Dr. Q

Level-1
Beiträge
1
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo.Also mein Problem besteht darin, dass ich ein variierendes Signal einlesen möchte und als Zeitwert nachher in einen Timer eingeben will.
Programm funktioniert in der Praxis.verstehe nur nicht die Herkunft der 1947 für 8s 10ms.diesen Wert habe ich durch ausprobieren ermittelt.
Das Eingangssignal TL aktiviert den Timer,stoppt der das Signal TL,so wird am Ausgang DEZ der Restwert des Timers angezeigt.
diesen speicher ich in MW15.Subtrahiere ich nun den Wert des Timers (8s) mit dem Restwert, so erhalte ich wiederrum den Wert von TL, dass ich nachher als Zeitwert in einen 2.Timer eingeben möchte.
allerdings wird der Restwert beispielsweise 8s 10ms mit dem Zahlenwert 1947 in MW 15 gespeichert.Dieser Wert ist für mich unerklärlich,handelt es sich dabei um eine Siemens interne Umrechnung?
Besten dank für die Hilfe
 

Anhänge

  • Dok1.doc
    37,5 KB · Aufrufe: 19
Bei dem verwendeten Timer handelt es sich um einen S5Timer

Hier setzt sich die Zeit S5T wie folgt zusammen:
Code:
Bit 15 u. 14: unbenutzt
Bit 13 u. 12: Zeitbasis
                  00 10ms
                  01 100ms
                  10 1s
                  11 10s
Bit 11..8: Zeitwert BCD (0..9)
Bit 7..4: Zeitwert BCD (0..9)
Bit 3..0: Zeitwert BCD (0..9)

Einfacher ist es hier aus der Standard-Lib von Step7 denn S5T Zeitwert in TIME zu wandeln da diese die Zeit als Wert in MS enthält.

Bausteine zum Umwandeln:
FC 33 S5TI_TIM
FC 40 TIM_S5TI

Gruss Daniel
 
Hallo.Also mein Problem besteht darin, dass ich ein variierendes Signal einlesen möchte und als Zeitwert nachher in einen Timer eingeben will.
Programm funktioniert in der Praxis.verstehe nur nicht die Herkunft der 1947 für 8s 10ms.diesen Wert habe ich durch ausprobieren ermittelt.
Das Eingangssignal TL aktiviert den Timer,stoppt der das Signal TL,so wird am Ausgang DEZ der Restwert des Timers angezeigt.
diesen speicher ich in MW15.Subtrahiere ich nun den Wert des Timers (8s) mit dem Restwert, so erhalte ich wiederrum den Wert von TL, dass ich nachher als Zeitwert in einen 2.Timer eingeben möchte.
allerdings wird der Restwert beispielsweise 8s 10ms mit dem Zahlenwert 1947 in MW 15 gespeichert.Dieser Wert ist für mich unerklärlich,handelt es sich dabei um eine Siemens interne Umrechnung?
Besten dank für die Hilfe

Ich möchte dazu noch anmerken, dass man nie ein "ungerades" Wort heranzieht.
Beginne mit MW (MD) 0
dann MW2
MW (MD) 4
usw

viel Erfolg
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Da ich nicht weiß, wie erfahren Dr. Q in der Programmierung ist hier noch eine Anmerkung zur Anmerkung

Es funktioniert wenn man ein ungrades Wort nimmt problemlos. Aber "man" macht es nicht es ist sozusagen "unanständig". Ein ungeschriebenes Gesetz halt.
Bei der HW Konfig gibt es glaube ich da tatsächliche Einschränkungen, daß bei gewissen Baugruppen die Anfangsadresse durch 2 oder 4 teilbar sein muss.

peter(R)
 
Zurück
Oben