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



## funkdoc (27 Mai 2006)

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


----------



## AxelU (27 Mai 2006)

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?


----------



## Maxl (27 Mai 2006)

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


----------



## HeizDuese (27 Mai 2006)

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.


----------



## RolfB (27 Mai 2006)

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


----------



## Lars Weiß (27 Mai 2006)

Klasse...und ich dödel schreib mir selbst ´nen Baustein anstatt mal die Bibs durchzusehen ...


----------



## MSB (27 Mai 2006)

Armand schrieb:
			
		

> Klasse...und ich dödel schreib mir selbst ´nen Baustein anstatt mal die Bibs durchzusehen ...


Ich sage mir bei sowas immer: da weiß man was man hat! :sm10:


----------



## Andreas78 (24 Juni 2006)

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


----------



## Maxl (24 Juni 2006)

Andreas78 schrieb:
			
		

> Warum umständlich wenns auch einfach geht:
> 
> UN T1
> L S5T#1s
> ...


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


----------



## mortontower (12 Juli 2006)

*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


----------

