FB_HVACSchedulerPublicHolidays

Dieser Funktionsbaustein ist ein Jahreszeitschaltplaner in dem z.B. Schulferien oder Betriebsferien eingegeben werden können. Mit der Eingangsvariablen bEnable wird der Baustein aktiviert. Der Eingang dtSystemTime wird mit der aktuellen Systemzeit verknüpft. Der Ausgang bOutput wird gesetzt, wenn die Zeitschaltbedingung erfüllt ist. 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 der Zeitschaltkanäle 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. Im Gegensatz zum FB_HVACSchedulerSpecialPeriods ist hier nur eine tageweise Schaltung möglich.
![]() | Ist die Eingangsvariable bEnable = FALSE, so ist der Ausgang bOutput = FALSE. Die Zeitschaltkanäle arrHoliday sind weiterhin aktiv. |
VAR_INPUT
eDataSecurityType : E_HVACDataSecurityType;
bSetDefault : BOOL;
bEnable : BOOL;
dtSystemTime : DT;
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 bEnablewird der Funktionsbaustein frei gegeben. Ist bEnable = FALSE erfolgt keine Schaltung am Ausgang bOutput.
dtSystemTime: Mit der Variablen dtSystemTime wird dem Zeitschaltprogramm die Rechnersystemzeit übergeben.
bReset: Quittierungseingang bei einer Störung. Setzt den Merker bInvalidParameter zurück.
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 (max. 50 Tage).
tNextOff: Zeit bis zum nächsten Abschalten des Zeitschaltprogramms (max. 50 Tage).
bInvalidParameter: Bei der Plausibilitätsüberprüfung ist ein Fehler aufgetreten. Wir durch bReset wieder gelöscht.
VAR_IN_OUT
arrHoliday : ARRAY[1..20] OF ST_HVACHoliday;
arrHoliday: Die Variable arrHoliday ist ein Array mit 20 Deklarationen der Strukturvariablen ST_HVACHoliday (siehe ST_HVACHoliday).
Für jede Instanz des Funktionsbausteins FB_HVACSchedulerPublicHolidays muss ein Array vom Typ ST_HVACHoliday erzeugt werden. Die Größe des Arrays muss 20 sein, da der Funktionsbaustein insgesamt 20 Zeitkanäle verarbeitet und diese als Referenz (VAR_IN_OUT) erwartet.
Jeder Zeitschaltkanal wird mit der Variablen bEnable (Ein/Aus) freigeschaltet. Ist bEnable = FALSE ist der Zeitschaltkanal deaktiviert, eingetragene Zeiten sind dann ohne Wirkung. Für einmalige Ereignisse wird die Variable bResetAfterOn (einmalig) aktiviert. Nach dem Ablauf der in diesem Kanal eingestellten Zeit bleiben die unter uiOn_Day, uiOff_Day, uiOn_Month und uiOff_Month 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.
Beispiel

24.12. von 00:00 Uhr bis 26.12. um 23:59:59 Uhr eingeschaltet
03.10. von 00:00 Uhr bis 03.10. um 23:59:59 Uhr eingeschaltet
18.07. von 00:00 Uhr bis 19.07. um 23:59:59 Uhr eingeschaltet
1.1. bis 1.1. Zeitschaltkanal nicht aktiviert, immer ausgeschaltet!
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 |