TIA Impuls für Timer

Neurorancer

Level-2
Beiträge
572
Reaktionspunkte
4
Zuviel Werbung?
-> Hier kostenlos registrieren
Guten Tag,

ich möchte einen Ventil ansteuern.
Dazu muss das Relais des Ventils für eine kurze Zeit an gehen.

Dazu habe ich mir Folgendes überlegt und möchte Ihre Meinung dazu wissen:

ich erstelle einen Impuls mit Hilfe von einem TP-Timer.

Damit dieser Timer an-geht muss die variable timer_start auf "true" gehen.

Code:
"IEC_Timer_0_DB".TP(IN:="timer_start",
                    PT:= T#5S,
                    Q=> "timer_ausgang");

Nun möchte ich den Timer im Programm starten.

dazu setze ich die Variable

Code:
"timer_start" := true;

Der Timer befindet sich im Programmcode "ganz oben" auf jeden Fall vor der Anweisung:

Code:
"timer_start" := true;

Wenn der Timer detektiert, dass die Variable "timer_start" auf true ist,
wird der Timer gestartet. Gleich danach prüfe ich, ob der Timer auch wirklich gestartet hat und setze die
Variable "timer_start" auf false.

Code:
"IEC_Timer_0_DB".TP(IN:="timer_start",
                    PT:= T#5S,
                    Q=> "timer_ausgang");
IF "IEC_Timer_0_DB".Q = true THEN
    "timer_start" := false;
END_IF;


Somit ergibt sich folgender Konstrukt:

.
.
Anweisungen
.
.
Code:
"IEC_Timer_0_DB".TP(IN:="timer_start",
                    PT:= T#5S,
                    Q=> "timer_ausgang");
IF "IEC_Timer_0_DB".Q = true THEN
    "timer_start" := false;
END_IF;

.
.
.
Anweisungen
.
"timer_start" := true;

.
.
.
Anweisungen
.
.


Das Ganze funktioniert ziemlich gut,
was sagt Ihr dazu? Oder wie macht Ihr das?
 
Eigentlich dürfte das nicht funktionieren. Da der Timer nie ein Timer_start im False zustand zu sehen kriegt. Es seidenn
Timer_start := true; wird bedingt übersprungen. Dann gehts.

Du musst timer_start auch nicht auf q bedingt zurücksetzen. Da TP eh auf steigende Flanke reagiert.

mfg René
 
Zurück
Oben