max mögliche Zykluszeit

SPS-Horst

Level-1
Beiträge
18
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Wago Team,

eine Frage zu zyklischen Task's

Habe hier eine 881 mit Codesys V2.3.9.42.

Für die Berechnung von Sonnauf- bzw. Sonnuntergang nutze ich aus OSCAT den FB Sun_Time.
Den habe ich in eine seperates PRG gepackt und in eine zyklische Task gehängt.

Und da ist das Problem: was ist hier die max möglich einstellbare Intervall Zeit???

Habe z.B. T#120m eingestellt....wird ohne Fehler compiliert, aber der Task läuft ständig (wie freilaufend).

mfg
Sven
 
Hallo Sven,

grundsätzlich ist ein Tasksystem nicht dazu gedacht um zeitgesteuerte Operationen durchzuführen.
Einen offiziellen Maximalwert geibt es da nicht. Ein Test ergibt ca. 35min.

Für diese Applikation macht es sicherlich Sinn mit Timern zu arbeiten.
Alternativ wäre auch die Eventsteuerung eine Möglichkeit.
 
Na dann basiert die Taskzeit wohl doch auf einer höchst genauen Basis. Sven, du kannst mit einem Aufrufverteiler die Aufrufzeit deines FBs nahezu beliebig vervielfachen. Ob es aber Sinn macht?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Sven.
Ich habe den Baustein auch schon einmal zur Probe eingesetzt.
Den Aufruf habe ich so gestaltet, dass das Systemdatum verglichen wird mit alt und Neuwert und nur bei Differenz der Baustein aufgerufen wird.
Der Sonnenaufgang ändert sich ja am Tag nicht so oft.:)
Holger
 
Hallo in die Runde,

erst mal Danke für die Info's zu den Zykluszeiten.
Es genügt ja einmal pro Tag die Berechnung von Sun_Time auszuführen.

Ich packe die Berechnung von Suntime in einen Timer, TON sollte doch mit t#24h klarkommen:

Var
tTimer_24h:TON;
END_VAR

tTimer_24h(IN:= Not tTimer_24h.Q, PT:=t#24h);
IF tTimer_24h.Q then
Tag_Nacht_Berechnung(); //UP aufrufen
END_IF
....

edit:
zu Taskzyklus:
ist es so, das bei zulang eingestellten Taskzeiten der Task dann ständig läuft ,quasi freilaufend ist? (sagt zumindest die Onlineüberwachung)

mfg
Sven
 
Zuletzt bearbeitet:
Das würde ich so nicht machen ...
Besser wäre aus meiner Sicht : du vergleichst den aktuellen Datumstag mit einem gespeicherten Datumstag - ist dieser unterschiedlich dann startest du einmal (Flanke) deinen Berechnungs-Baustein.

Gruß
Larry
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Das würde ich so nicht machen ...
Besser wäre aus meiner Sicht : du vergleichst den aktuellen Datumstag mit einem gespeicherten Datumstag - ist dieser unterschiedlich dann startest du einmal (Flanke) deinen Berechnungs-Baustein.

Gruß
Larry



OK, das macht Sinn
die Berechnung findet dann immer 00:00:00Uhr statt

etwa so:

if akt_Date<>old_Date then
....
Berechnen;
old_Date:=akt_Date;
end_if;

mfg
Sven
 
Zurück
Oben