FB_BA_BldPosEntry

Dieser Baustein dient zur Eingabe von Stützstellen für den Baustein FB_BA_SunPrtc, falls dieser im Modus der Höhenpositionierung mit Hilfe einer Tabelle betrieben wird, siehe E_BA_PosMod.
Der Baustein FB_BA_SunPrtc bietet neben den Betriebsarten "fixe Jalousiehöhe" und "maximaler Lichteinfall" auch die Möglichkeit, die Jalousiehöhe per Tabelleneinträge in Abhängigkeit von der Sonnenhöhe zu steuern. Durch die Eingabe mehrerer Stützpunkte wird linear interpoliert die betreffende Jalousiehöhe zum entsprechenden Sonnenstand errechnet. Da falsch eingetragene Werte jedoch zu Fehlfunktionen beim FB_BA_SunPrtc führen können ist diesem der Baustein FB_BA_BldPosEntry voranzustellen. Es lassen sich vier Stützpunkte an diesem Baustein parametrieren, wobei ein fehlender Eintrag als Nulleintrag gewertet wird.
Der Baustein sortiert die eingegebenen Werte nicht selbstständig, sondern achtet darauf, dass die eingetragenen Sonnenstände der jeweiligen Stützstellen in aufsteigender Reihenfolge eingegeben wurden. Unbeabsichtigt fehlerhafte Einträge fallen dadurch schneller auf.
Die gewählten Werte für rSunElv1 .. rSunElv4 müssen auch eindeutig sein, es darf beispielsweise nicht gelten:
[ rSunElv1 = 10 ; rPos1 = 50] und gleichzeitig [rSunElv2 = 10 ; rPos2 = 30 ].
Das würde bedeuten, dass für ein und denselben Wert zwei verschiedene Zielwerte bestünden, was keinen eindeutigen funktionalen Zusammenhang bilden lässt.
Darüber hinaus müssen die Einträge für Sonnenstand und Jalousiehöhe im gültigen Bereich liegen.
Das bedeutet mathematisch, dass folgende Bedingungen erfüllt sein müssen:
- rSunElv1 < rSunElv2 < rSunElv3 < rSunElv4 - (Werte aufsteigend und ungleich)
- 0 ≤ rSunElv ≤ 90 ([°] - Gültigkeitsbereich Quellwerte)
- 0 ≤ rPos ≤ 100 (in Prozent - Gültigkeitsbereich Zielwerte)
Der Baustein überprüft die eingetragenen Werte auf diese Bedingungen hin und gibt bei Nichterfüllen Fehlermeldung aus. Zusätzlich wird der Wert bValid von ST_BA_BldPosTab auf FALSE gesetzt.
Des Weiteren sorgt der Baustein selbstständig für ein Ausfüllen der Randbereiche: Intern wird ein weiterer Stützpunkt bei rSunElv = 0 mit rBldPos1und ein weiterer oberhalb von rSunElv4 bei rSunElv = 90 mit rBldPos4 aufgestellt. Damit wird sichergestellt, dass für alle gültigen Eingabewerte 0 ≤rSunElv ≤ 90 ein sinnvoller Zielwert vorhanden ist, ohne dass ein Eintrag für rSunElv = 0 und rSunElv = 90 vom Anwender zwingend vergeben werden muss:

Die tatsächliche Anzahl an Stützstellen, welche an den Baustein FB_BA_SunPrtc übergeben wird, erhöht sich damit auf 6, siehe ST_BA_BldPosTab.
Die Interpolation der Werte erfolgt im Blendschutz-Baustein.
VAR_INPUT
rSunElv1 : REAL;
rPos1 : REAL;
rSunElv2 : REAL;
rPos2 : REAL;
rSunElv3 : REAL;
rPos3 : REAL;
rSunElv4 : REAL;
rPos4 : REAL;
rSunElv1: Sonnenstand des 1. Stützpunktes (0…90 °).
rPos1: Jalousieposition (Grad der Schließung) des 1. Stützpunktes (0…100 %).
rSunElv2: Sonnenstand des 2. Stützpunktes (0…90 °).
rPos2: Jalousieposition (Grad der Schließung) des 2. Stützpunktes (0…100 %).
rSunElv3: Sonnenstand des 3. Stützpunktes (0…90 °).
rPos3: Jalousieposition (Grad der Schließung) des 3. Stützpunktes (0…100 %).
rSunElv4: Sonnenstand des 4. Stützpunktes (0…90 °).
rPos4: Jalousieposition (Grad der Schließung) des 4. Stützpunktes (0…100 %).
VAR_OUTPUT
stBldPosTab : ST_BA_BldPosTab;
bErr : BOOL;
sErrDescr : T_MAXSTRING;
stBldPosTab: Übergabestruktur der Stützstellen, siehe ST_BA_BldPosTab.
bErr: Dieser Ausgang wird auf TRUE geschaltet, wenn die eingetragenen Parameter fehlerhaft sind.
sErrDescr: Enthält die Fehlerbeschreibung.
Fehlerbeschreibung |
---|
01: Fehler: Die x-Werte (Elevationswerte) in der Tabelle sind entweder nicht in aufsteigender Reihenfolge oder doppelt vorhanden. |
02: Fehler: Ein eingetragener Elevationswert ist außerhalb des gültigen Bereiches von 0°...90°. |
03: Fehler: Ein eingetragener Positionswert ist außerhalb des gültigen Bereiches von 0%...100%. |
Voraussetzungen
Entwicklungsumgebung | Erforderliche SPS-Bibliothek |
---|---|
TwinCAT ab v3.1.4024.7 | Tc3_BA ab v1.1.6.0 |