Grundsätzliche Anfängerfrage

Atrax

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

Ich bin neu hier und habe gerade erst angefangen meine Haussteuerung zu Programmieren.
Leider fehlt mir bei folgendem Thema warscheinlich nur das Vokabular um richtig bei Google zu suchen:

In der Beschreibung der Funktion SUN_TIME aus der Oscat_basic.lib steht dass diese Funktion nur einmal am Tag aufgerufen werden soll da die Belastung für die CPU sehr hoch sei.

Meine konkrete Frage: WANN wird ein FB genau aufgerufen und durchgerechnet?
Grundsätzlich bei jedem Programmdurchlauf oder nur wenn sich einer der Eingänge ändert?

Mein Ansatz wäre gewesen einfach die einzige Variable die sich ändern könnte (UTC) nur einmal am Tag zu setzen.
Oder wäre es besser die Funktion in ein eigenes Unterprogramm zu schieben und dieses dann nur einmal am Tag aufzurufen? (Wobei ich jetzt nicht geradeheraus weiss wie ich das dann mache.)

Gruß
Carsten
 
Ich würde den Aufruf ereignisgesteuert in der Taskkonfiguration anlegen und zu einer bestimmten Uhrzeit aufrufen....
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Atrax.
Zu deiner grundsätzlichen Frage. Ein FB wird immer abgearbeitet wenn er im Zyklusumlauf dran ist. Dabei ist es egal ob sich die Eingänge ändern oder nicht. Einzige Unterschied bei den Eingängen ist "EN" (meistens links oben). Ist dieser Eingang 0 wird der Baustein nicht abgearbeitet.
In deinem konkreten Fall ist es besser einen Ereignissaufruf durchzuführen (wie KingHelmer) schon sagte.
Grüsse Holger
 
Ich hab SUN_TIME einfach täglich um 2 Uhr aufgerufen.
In der Oscat.lib findest du auch Bausteine zum Uhrzeitvergleich. Damit kannst du recht einfach fast beliebige Schaltuhren aufbauen.

Gruß
Dieter
 
Eigentlich sollte doch ein Bedingter Aufruf der FB Instanz funktionieren
header:

SunTime:SUN_TIME;
Bedingung:BOOL;

body:

IF Bedingung THEN SunTime(); END_IF
 
Zurück
Oben