S7: Gibts einen Timer der zb. eine 42h zeit hat?

funkdoc

Level-1
Beiträge
491
Reaktionspunkte
44
Zuviel Werbung?
-> Hier kostenlos registrieren
Gibts einen Timer der zb. eine 42h zeit hat?
die ganzen timer sind ja glaub ich auf 2h46m30s begrenzt.

oder wie kann man so was realisieren?

aber wenns geht ohne Zähler oder komplexe programmstrukturen

grtz
 
Man könnte zur Not mehrere Timer in "reihe" Schalten. Gut ok, bei 42h ist das schon ein wenig aufwendig.

Wenn ich fragen drarf, wozu benötigst du das?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
IEC-Timer müssten dafür ausreichen. Soweit ich das im Kopf habe, können die irgendwas zwischen 48 und 60h zählen. In S7 stehen SFBs zur Verfügung.


mfg
Maxl
 
42h = 86400000 ms - das passt in eine Konstante vom Typ TIME (gleicher Platzbedarf wie DWORD).

Damit sollte es doch mit einem IEC-TON noch gehen (aus der Bibliothek, System Functions Blocks den SFB 4 auswählen,) .
Die Auflösung ist theoretische 1ms- die tatsächliche Aufösung ist natürlich vom Aufrufzyklus abhängig.
 
Hallo,

wie Maxl schon schreibt, geht das problemlos mit einem
IEC Timer ( SFB4 ; SFB5 TON / TOF ). Das Format für diese
Timer ist TIME und das ist ein vorzeichen behaftetes Doppelwort
in Millisec. Größte Zeit ist damit DW#7FFF_FFFF und das sind
24 Tage;20Std;31min;23sec;647ms.(T#24d20h31m23s647ms)


mfg.
Rolf
 
Warum umständlich wenns auch einfach geht:

UN T1
L S5T#1s
SE T1

U T1
U(
L DB1.DBD0
L 0
>I
)
SPBN Skp0
L DB1.DBD0
L 1
-D
T DB1.DBD0
Skp0: NOP 0

Der Timer wird dazu benutzt um ein DWORD zu decrementiren
Bei Wert 0 ist er abgelaufen, zum starten einfach belibiegen Wert
reinschreiben.
Also ein Sekunden Timer der bis zu 138 Jahren zählt
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Andreas78 schrieb:
Warum umständlich wenns auch einfach geht:

UN T1
L S5T#1s
SE T1

U T1
U(
L DB1.DBD0
L 0
>I
)
SPBN Skp0
L DB1.DBD0
L 1
-D
T DB1.DBD0
Skp0: NOP 0

Der Timer wird dazu benutzt um ein DWORD zu decrementiren
Bei Wert 0 ist er abgelaufen, zum starten einfach belibiegen Wert
reinschreiben.
Also ein Sekunden Timer der bis zu 138 Jahren zählt

1. Taktmerker verwenden und auf Flanke auswerten - ist übersichtlicher
2. ja, schönes stück programm, aber wozu?
 
Lange Timer

Timer und Taktmerker laufen ausserhalb des Zyklus ab und werden dann im nächsten zyklus ausgewertet. Somit sind 200ms immer 200ms +x. Ich würd im OB35 ein DINT zählen und vergleichen. Somit sind wird die Zeit auch bei x jahren auf 100ms genau erreicht.

grüsse

mortontower ;)
 
Zurück
Oben