FB_Ramp

FB_Ramp 1:

Funktionsblock zur Realisierung einer Lichtrampe.

Durch eine steigende Flanke am Eingang bOn wird das Licht auf den Maximalwert (32767) geschaltet - eine steigende Flanke am Eingang bOff schaltet das Licht wieder aus.Steigende Flanken am Eingang bToggle invertieren den jeweiligen Lichtzustand. Eine positive Flanke am Eingang bStart läßt den Baustein das Licht vom aktuellen Wert auf nEndLevel dimmen. Die dazu benötigte Zeit wird durch tRampTime festgelegt. Alle Eingänge sind nur aktiv, solange bEnable auf TRUE steht, ansonsten wird der Baustein intern zurückgesetzt.

VAR_INPUT

bEnable           : BOOL;
bOn               : BOOL;
bOff              : BOOL;
bToggle           : BOOL;
bStart            : BOOL;
nEndLevel         : BYTE;
tRampTime         : TIME := t#10s;
nOptions          : DWORD;

bEnable: Solange dieser Eingang auf TRUE steht, sind die Eingänge bOn, bOff, bToggle und bStart aktiv. Ein negativer Zustand deaktiviert die Eingänge und setzt den Baustein zurück.

bOn: Eine steigende Flanke schaltet nLightLevel direkt auf den den Maximalwert (32767).

bOff: Eine steigende Flanke schaltet nLightLevel unmittelbar auf "0".

bToggle: Schaltet den Lichtzustand zwischen An (32767) und Aus (0) jeweils hin und her.

bStart: Liegt an diesem Eingang eine steigende Flanke an, so wird das Licht vom derzeitigen Wert auf nEndLevel herauf bzw. herabgedimmt. Die dafür benötigte Zeit wird mit tRampTime festgelegt. Der Dimmvorgang kann jederzeit durch bOn, bOff oder bToggle unterbrochen werden.

nEndLevel: Zielwert des Dimmvorgangs.

tRampTime: Rampenzeit, siehe bStart. (Voreingestellter Wert: 10 Sekunden).

nOptions: Reserviert für zukünftige Entwicklungen.

VAR_OUTPUT

bLight            : BOOL;
bBusy             : BOOL;
bError            : BOOL;
nErrorId          : UDINT;

bLight: Dieser Ausgang ist gesetzt, solange nLightLevel größer als 0 ist.

bBusy: Dieser Ausgang ist immer dann aktiv, solange eine Befehlsabarbeitung (bOn, bOff, bToggle oder Rampenfahrt) aktiv ist.

bError: Dieser Ausgang wird auf TRUE geschaltet, wenn bei der Ausführung eines Befehls ein Fehler aufgetreten ist. Der befehlsspezifische Fehlercode ist in nErrorId enthalten. Wird durch das Ausführen eines Befehls an den Eingängen auf FALSE zurückgesetzt.

nErrorId: Enthält den befehlsspezifischen Fehlercode des zuletzt ausgeführten Befehls. Wird durch das Ausführen eines Befehls an den Eingängen auf 0 zurückgesetzt. Siehe Fehlercodes.

VAR_IN_OUT

nLightLevel           : UINT;

nLightLevel: Ausgabe-Stellgröße des Bausteines und Verweis auf den Lichtausgangswert. Dieser Wert ist deshalb als IN-Out-Variable definiert, weil der Funktionsbaustein den Lichtwert zum einen ausliest und zum anderen beschreibt.