FB_BARStairwellAutomatic

FB_BARStairwellAutomatic 1:

Funktionsbaustein für eine Treppenhauslichtschaltung.

Der Baustein kennt 3 verschiedene Modi, welche über den Eingang uiLightCtrlMode eingestellt werden können:

Im Automatikbetrieb (uiLightCtrlMode=0) ist die Treppenhaussteuerung aktiv. Eine positive Flanke an bSwitch schaltet das Licht (Ausgang bOn) zunächst nur ein. Mit einer negativen Flanke wird der Haltezeitgeber gestartet. Ist die Haltezeit uiHoldTime [s] abgelaufen, beginnt als Hinweis für das bevorstehende Ausschalten eine Blinksequenz mit einer durch uiNumberPulses programmierbaren Anzahl von Blinkimpulsen. Diese Impulse haben eine Ein-Zeit von uiPulseTimeOn [ms] und eine Aus-Zeit von uiPulseTimeOff [ms].

FB_BARStairwellAutomatic 2:

Die Sequenz kann dabei jederzeit nachgestartet werden:

FB_BARStairwellAutomatic 3:

In den Hand-Betriebsmodi ist der Eingang bSwitch ohne Funktion: bei uiLightCtrlMode=1 wird der Ausgabewert bOn konstant auf TRUE und bei uiLightCtrlMode=2 konstant auf FALSE gesetzt.

FB_BARStairwellAutomatic 4:

Handmodus

Ein Wechsel in den Handmodus setzt eine bis dahin gestartete Beleuchtungssequenz zurück.

VAR_INPUT

eDataSecurityType   : E_HVACDataSecurityType;
uiLightCtrlMode     : UINT;
bSwitch             : 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.

uiLightCtrlMode: Betriebsmodus.

bSwitch: Eine steigende Flanke schaltet im Automatikbetrieb (uiLightCtrlMode=0) das Licht ein, eine fallende Flanke startet den Haltezeitgeber. Im Handbedienmodus (uiLightCtrlMode=1 oder 2) hat dieser Eingang keine Funktion.

VAR_OUTPUT

lrDimValue          : LREAL;
bOn                 : BOOL;
uiRemainingHoldTime : UINT;
bError              : BOOL;
udiErrorId          : UDINT;

lrDimValue: Um diese Funktion zu den anderen Licht-Anwenderfunktionen gleich zu halten, existiert auch hier ein Lichtausgabewert als Fließkommazahl in Prozent, obwohl das Licht nur ein- oder ausgeschaltet wird. Das bedeutet: Licht aus: lrDimValue = 0.0, Licht an: lrDimValue = 100.0.

bOn: Schaltausgang für die Beleuchtung.

uiRemainingTimeHold: Verbleibende Haltezeit in Sekunden. Ist das Licht aus oder der Hand-Bedienmodus aktiv, so steht dieser Ausgang auf "0". Mit einer steigenden Flanke an bSwitch im Automatikmodus zeigt dieser Ausgang zunächst die komplette Anzahl der Sekunden der Haltezeit (uiHoldTime) an um, beginnend mit einer fallenden Flanke an bSwitch, das Ablaufen der Haltezeit darzustellen. Solange kein Herunterzählen der Zeit stattfindet, steht dieser Ausgang auf 0.

bError: Dieser Ausgang wird auf TRUE geschaltet, wenn die eingetragenen Parameter fehlerhaft sind.

udiErrorId: Enthält den Fehlercode, sollten die eingetragenen Werte fehlerhaft sein. Siehe Fehlercodes.

VAR_IN_OUT

Damit die eingetragenen Parameter über einen Steuerungsausfall hinweg erhalten bleiben ist es erforderlich, sie als In-Out-Variablen zu deklarieren. Im Programm wird ihnen dann eine Referenz-Variable zugewiesen. Jede Änderung des Wertes dieser Referenz-Variablen wird im Funktionsbaustein persistent gespeichert und nach einem Steuerungsausfall und -wiederanlauf zurück in die Referenz-Variable geschrieben. Wären die Parameter nur als Eingangsvariablen deklariert, so könnten sie eine Referenzvariable nicht beschreiben.
Anwendungsbeispiel: example_persistent.zip.

uiHoldTime      : UINT;
uiPulseTimeOn   : UINT;
uiPulseTimeOff  : UINT;
uiNumberPulses  : UINT;

uiHoldTime: Haltezeit [s] der Treppenhaussteuerung nach fallender Flanke an bSwitch.

uiPulseTimeOn: EIN-Zeit der Vorwarnimpulse in Millisekunden.

uiPulseTimeOff: AUS-Zeit der Vorwarnimpulse in Millisekunden.

uiNumberPulses: Anzahl der Vorwarnimpulse.

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