FB_HVACSchedulerSpecialPeriods

FB_HVACSchedulerSpecialPeriods 1:

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. Der Ein- und Ausschaltpunkt am jeweiligen Tag kann minutengenau vorgegeben werden.

FB_HVACSchedulerSpecialPeriods 2:

Ist die Eingangsvariable bEnable = FALSE, so ist der Ausgang bOutput = FALSE. Die Zeitschaltkanäle arrPeriod 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 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.

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 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

arrPeriod         : ARRAY[1..20] OF ST_HVACPeriod;

arrPeriod: Die Variable arrPeriod ist ein Array mit 20 Deklarationen der Strukturvariablen ST_HVACPeriod (siehe ST_HVACPeriod).

Für jede Instanz des Funktionsbausteins FB_HVACSchedulerSpecialPeriods muss ein Array vom Typ ST_HVACPeriod 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.

Besonderheiten bei der Uhrzeiteingabe

Es gilt:

Einschaltzeit 00:00:00: Einschalten beginnt um 0 Uhr des gewählten Tags.

Ausschaltzeit 00:00:00: Es wird um 23:59:59 Uhr des gewählten Tags ausgeschaltet.

FB_HVACSchedulerSpecialPeriods 3:

Jeder Zeitschaltkanal wird mit der Variablen bEnable (Ein/Aus) frei geschaltet. 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_hh, uiOn_mm, uiOff_hh, uiOff_mm, 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:

FB_HVACSchedulerSpecialPeriods 4:

12.01. von 12:20 Uhr bis 14.01. um 12:00 Uhr eingeschaltet

23.06. von 00:00 Uhr bis 25.08. um 23:59:59 Uhr eingeschaltet

03.10. von 12:00 Uhr bis 03.10. um 18:00 Uhr eingeschaltet, einmalig!

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