FB_HVACScheduler1ch

FB_HVACScheduler1ch 1:

Dieser Funktionsbaustein ist eine Wochenzeitschaltuhr mit einem Zeitschaltkanal. Dem Zeitschaltkanal kann eine beliebige Kombination von Wochentagen zugewiesen werden. Der Zeitschaltkanal kann für einmalige oder wiederkehrende Ereignisse definiert werden. Als Ausgänge stehen neben dem Schaltsignal, die Ein- und Ausschaltflanken, sowie der nächste Ein- bzw. Ausschaltpunkt als Countdown zur Verfügung. Die Daten des Zeitschaltkanals werden als Referenz übergeben. Der Baustein ist daher in der Lage, die Daten auf Veränderung zu überprüfen und als persistente Daten zu sichern. Nach dem Booten stehen die Daten damit auch der GLT wieder zur Verfügung. Der Ein- und Ausschaltpunkt kann sekundengenau vorgegeben werden, dazu dienen die Variablen tiOn_ss und tiOff_ss des jeweiligen Zeitkanals.

FB_HVACScheduler1ch 2:

Ist die Eingangsvariable bEnable = FALSE, so ist der Ausgang bOutput = FALSE. Der Zeitschaltkanal stTimeChannel ist weiterhin aktiv.

VAR_INPUT

eDataSecurityType : E_HVACDataSecurityType;
bSetDefault       : BOOL;
bEnable           : BOOL;
dtSystemTime      : DT;
uiOffsetBefore    : UINT;
bReset            : BOOL;

eDataSecurityType:Wenn eDataSecurityType:= eHVACDataSecurityType_Persistent ist, werden die persistenten VAR_IN_OUT-Variablen des Funktionsbausteins bei einer Wertänderung im Flash des Rechners abgelegt. Dafür ist es zwingend erforderlich den Funktionsbaustein FB_HVACPersistentDataHandling einmalig im Hauptprogramm, das zyklisch aufgerufen wird, zu instanziieren. Ansonsten wird der instanziierte FB intern nicht freigegeben.

Eine Wertänderung kann vom Gebäudeleitsystem, einem lokalen Bediengerät oder von einem Schreibzugriff von TwinCAT aus erfolgen. Beim Neustart des Rechners werden die gesicherten Daten automatisch vom Flash in den RAM zurück gelesen.

Anwendungsbeispiel: example_persistent.zip

Bei eDataSecurityType:= eHVACDataSecurityType_Idle werden die persistent deklarierten Variablen nicht spannungsausfallsicher gespeichert.

Hinweis

Eine sich zyklisch ändernde Variable darf niemals mit der IN_OUT-Variablen eines Funktionsbausteins verbunden werden, wenn eDataSecurityType:= eHVACDataSecurityType_Persistent ist. Es würde zu einem frühzeitigen Verschleiß des Flashspeichers führen.

bSetDefault: Wenn die Variable TRUE ist, werden die Default-Werte der VAR_IN_OUT Variablen übernommen.

bEnable: Mit der Variablen bEnable wird der Funktionsbaustein frei gegeben. Ist bEnable = FALSE erfolgt keine Schaltung am Ausgang bOutput.

dtSystemTime: Mit der Variablen dtSystemTime wird dem Zeitschaltprogramm die Rechnersystemzeit übergeben.

uiOffsetBefore: Der Einschaltzeitpunkt wird um die Anzahl Minuten vorverlegt. Diese Funktionalität ist nutzbar für das zeitoptimierte Einschalten von Heizkreisen. Es können maximal 240 min, also 4h eingegeben werden. Sollte der Einschaltzeitpunkt über Mitternacht hinweg auf den Vortag fallen, so wird als Einschaltzeitpunkt Mitternacht gewählt. Der Ausschaltpunkt wird nicht beeinflusst.

bReset: Quittierungseingang bei einer Störung. Setzt den Merker bInvalidParameter zurück

Beispiel 1:

Einschaltzeitpunkt von 1:30 Uhr bis 5:30 Uhr, uiOffsetBefore hat den Wert 150 min. Der Einschaltzeitpunkt wird nur um 90min auf 0:00 Uhr vorverlegt.

FB_HVACScheduler1ch 3:

Beispiel 2:

Einschaltzeitpunkt von 13:30 Uhr bis 17:30 Uhr, uiOffsetBefore hat den Wert 150min. Der Einschaltzeitpunkt wird um 150min auf 11:00 Uhr vorverlegt.

FB_HVACScheduler1ch 4:

VAR_OUTPUT

bOutput          : BOOL;
bEdgeOn          : BOOL;
bEdgeOff         : BOOL;
tNextOn          : TIME;
tNextOff         : TIME;
bInvalidParameter: BOOL;

bOutput: Ist gleich TRUE wenn einer der Zeitschaltkanäle eingeschaltet hat.

bEdgeOn: Ist für einen SPS-Zyklus TRUE nach dem Einschalten von bOutput.

bEdgeOff: Ist für einen SPS-Zyklus TRUE nach dem Ausschalten von bOutput.

tNextOn: Zeit bis zum nächsten Einschalten des Zeitschaltprogramms. Maximalwert 10080 Minuten (1 Woche).

tNextOff: Zeit bis zum nächsten Abschalten des Zeitschaltprogramms. Maximale Voraussage bis Mitternacht.

bInvalidParameter: Bei der Plausibilitätsüberprüfung ist ein Fehler aufgetreten. Wir durch bReset wieder gelöscht.

VAR_IN_OUT

stTimeChannel     : ST_HVACTimeChannel;

stTimeChannel: Mit der Variable stTimeChannel ist es möglich eine Einschaltzeit pro Wochentag zu generieren (siehe ST_HVACTimeChannel).

Besonderheiten bei der Uhrzeiteingabe

Es gilt:

FB_HVACScheduler1ch 5:

Es gilt:

Ist die Einschaltzeit im Wert größer als die Ausschaltzeit, so wird über Mitternacht bis zum nächsten Tag hinein eingeschaltet, unabhängig davon ob der nächste Tag angewählt ist.

FB_HVACScheduler1ch 6:

Diese Vorgabe ergibt:

FB_HVACScheduler1ch 7:

Für jede Instanz des Funktionsbausteins FB_HVACScheduler1ch muss eine Strukturvariable vom Typ ST_HVACTimeChannel erzeugt werden, die als Referenz (VAR_IN_OUT) übergeben wird.

Beispiel:

VAR_GLOBAL 
    stTimeChannel : ST_HVACTimeChannel;
END_VAR

Innerhalb des Wochenplaners wird jeder Zeitschaltkanal mit der Variablen bEnable (Ein/Aus) frei geschaltet. Ist bEnable = FALSE ist der Zeitschaltkanal deaktiviert, eingetragene Zeiten sind dann ohne Wirkung. Ist bAllDays (Mo-So) = TRUE, dann gelten die eingestellten Zeiten von uiOn_hh, uiOn_mm, uiOff_hh und uiOff_mm für alle Wochentage von Montag bis Sonntag. Wenn bAllDays FALSE ist, können die Wochentage mit den Variablen bMonday bis bSunday selektiv einem Zeitschaltkanal zugewiesen werden. Für einmalige Ereignisse wird die Variable bResetAfterOn (einmalig) aktiviert. Nach dem Ablauf der in diesem Kanal eingestellten Zeit bleiben die unter uiOn_hh, uiOn_mm, uiOff_hh, uiOff_mm und den Wochentagen erstellten Einträge erhalten. Die Variable bEnable (Ein/Aus) wird jedoch auf FALSE zurückgesetzt. So kann ein einmaliges Ereignis einmal definiert und bei Bedarf wieder aktiviert werden.

Voraussetzungen

Entwicklungsumgebung

erforderliche Bibliothek

Erforderliche Function

TwinCAT 3.1 ab Build 4022.16

Tc2_HVAC V3.3.1.0

TF8000 | TC3 HVAC V1.0.0.0