Timer SS wird nicht gestartet

Thomas R

Level-1
Beiträge
20
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo ich habe einen Timer programmiert der sich immer wieder neu starten soll. Dies macht er auch für eine gewisse Zeit. Irgendwann bleibt er aber stehen und startet sich nicht mehr selber.

Diese Programmzeilen werden in einem FB aufgerufen.

//Timer starten
U #DataFromGateway.AutoScanON (statische Variable) Zustand=1
UN "Timer_PosiRequest"
L S5T#2S
SS "Timer_PosiRequest"
//Auftrag ausführen
U "Timer_PosiRequest"
FP #ONS[17]
U #DataFromGateway.AutoScanON
S #SingleCommands.P20_CheckPosition01
S #SingleCommands.P21_CheckStates01
S #SingleCommands.P22_NumberOf_SPAs
//Timer zurücksetzen
U "Timer_PosiRequest"
R "Timer_PosiRequest"

Meiner Meinung nach müsste diese Logik dazu führen das der Timer immer umläuft. Wenn ich mir die Aktual-Daten ansehe ist Auto Scan = 1 und der Timer = 0, also ist die Bedingung zum Neustart erfüllt!

Kann mir jemand einen Tipp geben was ich falsch mache?

Gruß
Thomas
 
Seh ich das richtig, daß du immer mit dem Timer selbst arbeitest? Nimm einen Merker auf den du das Timerereigis legst. Diesen Merker benutzt du dann für die logischen Verküpfungen. Timer laufen unabhägig vom Zyklus der SPS, so könnte das Timererignis auch wechseln, wenn das Programm gerade mitten in deinem "Timercodestück" steckt, das Ergebis ist unsicher. Wenn du schreibst

U Timer
= M x.y

und dann immer statt

U Timer bzw. U Timer
U M x.y bzw. UN Mx.y

ist das sicher.
 
Zurück
Oben