TIMER_2 Verhalten bei Programmstart

Begonnen von dieter, 16. November 2007, 14:54:06

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

dieter

Hallo,

nach Einspielen eines neuen Programms in den WAGO 857-870 und anschliessendem Programmstart wird bei TIMER_2 immer der Output TRUE. Ich betreibe den Baustein mit mode=11 (every day) und brauche Q nur für einen Zyklus, um einen Tageswechsel zu bemerken.
Was kann ich dagegen tun ?

Grüsse,
Dieter

hugo

welche uhrzeit hat du eingestellt und welche pulsdauer?

hugo

ich habe timer_2 nochmals getestet,
uhrzeit tod#00:00
dauer t#0ms (einstellung für einen zyklus)

der baustein schaltet exact um 0:00 jeden tag einen zyklus und kein puls bei programmstart

welche revision der lib hast du welches target? probiers mal in der codesys simulation

dieter

benutze oscat 2.2 mit wago 758-870
uhrzeit tod#01:00
dauer t#0ms (einstellung für einen zyklus)

kann es vielleicht sein, dass die Uhrzeit noch nicht komplett initialisiert ist, obwohl dies im ersten Baustein der Task gemacht wird, und TIMER_2 erst in einem späteren Baustein aufgerufen wird ?
Aber dann dürfte trotzdem kein Puls ausgelöst werden, da die Uhr ja auf 1970 steht, was ja in der Vergangenheit liegt.

hugo

richtig, ich teste auch mit manualler zeit und die steht beim start auch auf 1.1.1970
mein ausgang ist beim start low.

hugo

checke bitte mal in der simulation unter codesys

hugo

kann es sein das deine datumzeit bei programmstart einen undefinerten zustand hat?
oder ist es definitiv 1.1.1970 ?

dieter

Ich habe da wo der puls gesetzt wird beim programmstart einmal testweise die Uhrzeit in eine Variable geschrieben.
Es ist die richtige aktuelle Zeit.
Ich werde am Montag mal in der Simulation testen.

dieter

Ich glaub ich hab den Fehler gefunden:

Im Gegensatz zu persistenten Variablen werden Retain-Variablen allerdings bei einem erneuten
Programm-Download neu initialisiert.


teht so im Codesys-Handbuch.

Und in timer_2 ist die Variable run_date nur als RETAIN definiert:
VAR RETAIN
   run_date : DATE;
END_VAR

hugo

ja das ist richtig wir haben persisitent rausgenommen weil etliche sps controller kein filesystem haben und persistent nicht unterstützen

dieter

dann wird das wohl auch so bleiben schätze ich, oder ?
mach ich zwar nicht gerne, aber dann werd ich wohl in der LIB editieren müssen
bei einem LIB-Update muss ich dann aufpassen