Technikfreak
Level-1
- Beiträge
- 19
- Reaktionspunkte
- 1
-> Hier kostenlos registrieren
Hallo an alle SPSler.
Ich habe ein Verständnisproblem mit der Verwendung der Bits einer S5Time Variable.
Die Beschreibung hier im Forum über den Aufbau, Zeitbasis usw. habe ich mir durchgelesen, aber ich komme leider nicht weiter.
Dieser Teil funktioniert wunderbar. steht 222 in der Int Variable wird nach 22,2 sek genau das gemacht was ich will.
Nun zu meinem Problem. Wenn ich eine Zahl habe die größer als 999 ist, funktioniert dieser Teil nicht mehr. Ich kann also nur Zeiten von 0,1s (1) bis 99,9s (999) vorgeben.
Wie kann ich Zeiten >99,9 verwenden?
Ich dachte an einen Vergleich und eine Änderung der Zeitbasis z.B.:
Hier würde also bei einer Zahl > 999 die Zeitbasis geändert.
leider funktioniert nur der obere Teil der Einschaltverzögerung. Mit der Zeitbasis W#16#2000 stimmen die Zeiten nicht mehr.
Gibt es eine andere Möglichkeit die Zeitdauer von 0.1 Sekunde bis zu 99.9 Minuten variabel als Einschaltverzögerung zu programmieren?
An der Integervariable kann ich nichts ändern. Also 999 muss 99,9 sekundensein, 1234 muss 123,4 Sekunden sein, wobei die Nachkommastelle bei vierstelligen Zahlen wegfallen darf.
Vielen Dank schon Mal für jede Hilfe.
Ich habe ein Verständnisproblem mit der Verwendung der Bits einer S5Time Variable.
Die Beschreibung hier im Forum über den Aufbau, Zeitbasis usw. habe ich mir durchgelesen, aber ich komme leider nicht weiter.
Code:
L INTEGERVARIABLE //Diese Variable enthält die Zeit als Int 123 = 12,3 sekunden
ITB //Wandlung BCD
UW W#16#FFF // Begrenzung auf 3 Stellen
OW W#16#1000 // Zeitbasis = 0,1 sekunden
SE "Timer 1"
U "Timer 1"
SPB mach // wenn Einschaltverzögerung abgelaufen => Sprungaufruf zu mach
Dieser Teil funktioniert wunderbar. steht 222 in der Int Variable wird nach 22,2 sek genau das gemacht was ich will.
Nun zu meinem Problem. Wenn ich eine Zahl habe die größer als 999 ist, funktioniert dieser Teil nicht mehr. Ich kann also nur Zeiten von 0,1s (1) bis 99,9s (999) vorgeben.
Wie kann ich Zeiten >99,9 verwenden?
Ich dachte an einen Vergleich und eine Änderung der Zeitbasis z.B.:
Code:
L Integervariable
L 999
>I
SPB sek // falls >999
L INTEGERVARIABLE //Diese Variable enthält die Zeit als Int 123 = 12,3 sekunden
ITB //Wandlung BCD
UW W#16#FFF // Begrenzung auf 3 Stellen
OW W#16#1000 // Zeitbasis = 0,1 sekunden
SE "Timer 1"
U "Timer 1"
SPB mach
spa end
sek: NOP 0 // Zeit > 99,9 sek
L INTEGERVARIABLE //Diese Variable enthält die Zeit zb 1200 soll 120 sekunden sein
L 10 // eine stelle weniger
/I
ITB //Wandlung BCD
UW W#16#FFF // Begrenzung auf 3 Stellen
OW W#16#2000 // Zeitbasis = 1,0 sekunden
SE "Timer 1"
U "Timer 1"
SPB mach // wenn Einschaltverzögerung abgelaufen => Sprungaufruf zu mach
Hier würde also bei einer Zahl > 999 die Zeitbasis geändert.
leider funktioniert nur der obere Teil der Einschaltverzögerung. Mit der Zeitbasis W#16#2000 stimmen die Zeiten nicht mehr.
Gibt es eine andere Möglichkeit die Zeitdauer von 0.1 Sekunde bis zu 99.9 Minuten variabel als Einschaltverzögerung zu programmieren?
An der Integervariable kann ich nichts ändern. Also 999 muss 99,9 sekundensein, 1234 muss 123,4 Sekunden sein, wobei die Nachkommastelle bei vierstelligen Zahlen wegfallen darf.
Vielen Dank schon Mal für jede Hilfe.