FB_BA_ShdObjEntry

Dieser Baustein dient zur Verwaltung aller Verschattungselemente einer Fassade, welche global in einer Liste von Verschattungselementen hinterlegt ist. Er soll die Eingabe der Elementinformationen - auch im Hinblick auf die Nutzung der Target-Visualisierung - erleichtern. Eine schematische Darstellung der Objekte mit Beschreibung der Koordinaten ist unter Verschattungskorrektur: Grundlagen und Definitionen gegeben.

FB_BA_ShdObjEntry 1:

Funktionsbeschreibung

Die Deklaration der Verschattungselemente erfolgt in der globalen Variable:

VAR_GLOBAL
     arrShadingObject : ARRAY[1..iShadingObjects] OF ST_BA_ShdObj;
END_VAR

Jedes einzelne Element arrShadingObject[1] bis arrShadingObject[gBA_cMaxShdObj] trägt die Informationen für jeweils ein Verschattungselement (ST_BA_ShdObj). Dies sind neben dem gewählten Verschattungstyp (Viereck oder Kugel) die jeweils dazugehörigen Koordinaten. Im Falle eines Vierecks sind es die Eckpunkte (lrP1x, lrP1y, lrP1z), (lrP2x, lrP2y, lrP2z),(lrP3x, lrP3y, lrP3z) und (lrP4x, lrP4y, lrP4z) und im Falle einer Kugel der Mittelpunkt (lrMx, lrMy, lrMz) und der Radius lrRads. Zusätzlich kann über die Eingänge usiBegMth und usiEndMth die Phase der Verschattung definiert werden, was bei Objekten, wie z. B. Bäume, die im Winter kein Laub tragen, wichtig ist.

Der Baustein greift dabei über die IN-OUT-Variable arrShadingObject direkt auf das Feld dieser Informationen zu.

Anmerkung: Die Tatsache, dass die Viereckskoordinaten lrP2x, lrP2z, lrP4x, lrP4y, und lrP4z Ausgangswerte sind, ergibt sich daraus, dass sie aus den Eingabeparametern gebildet werden:

lrP2x = lrP1x; lrP2z = lrP1z; lrP4x = lrP3x; lrP4y = lrP1y; lrP4z = lrP3z;

Das schränkt die Eingabe eines Vierecks soweit ein, dass die seitlichen Kanten senkrecht auf dem Boden stehen (lrP2x = lrP1x und lrP4x = lrP3x), dass das Viereck keine Neigung hat (lrP2z = lrP1z und lrP4z = lrP3z) und nur nach "oben" also in positive y-Richtung eine unterschiedliche Höhe haben kann (lrP4y = lrP1y).

Die Verwendung des Bausteins erfolgt in drei Schritten:

Auslesen

Mit dem Eintrag an iId wird das entsprechende Element aus der Liste, arrShadingObject[iId], ausgewählt. Eine steigende Flanke an bRd liest die Daten aus. Diese Werte werden den Ein- und Ausgangsvariablen des Bausteins zugewiesen. Es handelt sich hierbei um die Eingangswerte lrP1x, lrP1y, lrP1z, lrP2y, lrP3x, lrP3y, lrP3z, lrMx, lrMy, lrMz, rRadius und dem Objekt-Enumerator eType und um die Ausgangswerte lrP2x, lrP2z, lrP4x, lrP4y, und lrP4z. Wichtig ist hierbei, dass im Schritt des Auslesens die Eingangswerte nicht überschrieben werden. So lassen sich alle Werte zunächst in einer Visualisierung anzeigen.

Ändern

In einem nächsten Programmschritt können dann die aufgeführten Eingabewerte verändert werden. Sollte am Eingang eType über den Wert "eObjectTypeTetragon" die Verwendung eines Vierecks vorgewählt sein, ergeben sich die Ausgangswerte lrP2x, lrP2z, lrP4x, lrP4y, und lrP4z aus den eingegebenen Koordinaten des Vierecks, siehe oben.

Die eingegebenen Werte werden ständig auf Plausibilität überprüft. Der Ausgang bErr zeigt an, ob die Werte gültig sind (bErr=FALSE). Sollte dies nicht der Fall sein, wird am Ausgang udiErrId/udiErrArg ein entsprechender Fehlercode ausgegeben.
Wird ein Viereck definiert, müssen lediglich die Eingänge lrP1x, lrP1y, lrP1z, lrP2y, lrP3x, lrP3y und lrP3z beschrieben werden, die Eingänge lrMx, lrMy, lrMz und lrRads brauchen nicht verknüpft zu werden. Im Falle einer Kugeldefinition müssen nur lrMx, lrMy, lrMz und lrRads beschrieben werden und die Viereckkoordinaten können unverknüpft bleiben

Schreiben

Mit einer positiven Flanke an bWrt werden die parametrierten Daten in das Listenelement mit dem Index iId geschrieben, unabhängig davon, ob sie gültige Werte darstellen oder nicht. Daher ist innerhalb der Elementstruktur ST_BA_ShdObj ein Plausibilitätsbit bVld vorhanden, das genau diese Information an den Baustein FB_BA_ShdCorr weiterreicht und dort Fehlberechnungen vorbeugt.

Diese Vorgehensweise soll nur als Vorschlag angesehen werden. Es ist natürlich auch möglich, den Baustein ganz normal in einem Schritt zu parametrieren und die eingetragenen Werte mit einer steigenden Flanke an bWrt in das entsprechende Listenelement zu schreiben.

Ein-/Ausgänge

VAR_INPUT

iId            : INT;
bRd            : BOOL;
bWrt           : BOOL;
lrP1x          : LREAL;
lrP1y          : LREAL;
lrP1z          : LREAL;
lrP2y          : LREAL;
lrP3x          : LREAL;
lrP3y          : LREAL;
lrP3z          : LREAL;
lrMx           : LREAL;
lrMy           : LREAL;
lrMz           : LREAL;
lrRads         : LREAL;
usiBegMth      : USINT;
usiEndMth      : USINT;
eType          : E_BA_ShdObjType;

iId: Index des gewählten Elementes. Dies bezieht sich auf die Auswahl eines Feldelementes des unter der IN-OUT-Variablen arrShdObj angelegten Arrays. iId darf nicht Null sein! Das ergibt sich aus der Felddefinition, welche mit 1 beginnt, siehe oben.

bRd: Mit einer positiven Flanke an diesem Eingang werden die Informationen des gewählten Elementes, arrShdObj[iId] in den Baustein gelesen und den Eingangsvariablen lrP1x bis eType sowie den Ausgangsvariablen lrP2x bis lrP4z zugewiesen. Sind zu diesem Zeitpunkt schon Daten an den Eingängen lrP1x bis eType angelegt, so werden die zuvor ausgelesenen Daten sofort mit diesen überschrieben.

bWrt: Eine positive Flanke schreibt die an den Eingängen lrP1x bis eType angelegten sowie die ermittelten und den Ausgängen lrP2x bis lrP4z zugewiesenen Werte in das gewählte Feldelement arrShdObj[iId].

lrP1x: X-Koordinate des Punktes 1 des Verschattungselementes (Viereck) [m]

lrP1y: Y-Koordinate des Punktes 1 des Verschattungselementes (Viereck) [m]

lrP1z: Z-Koordinate des Punktes 1 des Verschattungselementes (Viereck) [m]

lrP2y: Y-Koordinate des Punktes 2 des Verschattungselementes (Viereck) [m]

lrP3x: X-Koordinate des Punktes 3 des Verschattungselementes (Viereck) [m]

lrP3y: Y-Koordinate des Punktes 3 des Verschattungselementes (Viereck) [m]

lrP3z: Z-Koordinate des Punktes 3 des Verschattungselementes (Viereck) [m]

lrMx: X-Koordinate des Mittelpunktes des Verschattungselementes (Kugel) [m]

lrMy: Y-Koordinate des Mittelpunktes des Verschattungselementes (Kugel) [m]

lrMz: Z-Koordinate des Mittelpunktes des Verschattungselementes (Kugel) [m]

lrRads: Radius des Verschattungselementes (Kugel) [m]

usiBegMth: Anfang der Verschattungsperiode (Monatszahl)

usiEndMth: Ende der Verschattungsperiode (Monatszahl)

eType: Gewählter Elementtyp: Viereck oder Kugel. Siehe E_BA_ShdObjType.

Bemerkung zur Verschattungsperiode:

Die Monatseinträge dürfen nicht 0 und größer 12 sein, andernfalls sind alle Kombinationen möglich.
Beispiele:
Beginn=1, Ende=1: Verschattung im Januar.
Beginn=1, Ende=5: Verschattung von Anfang Januar bis Ende Mai.
Beginn=11, Ende=5: Verschattung von Anfang November bis Ende Mai (des folgenden Jahres).

VAR_OUTPUT

lrP2x       : LREAL;
lrP2z       : LREAL;
lrP4x       : LREAL;
lrP4y       : LREAL;
lrP4z       : LREAL;
bErr        : BOOL;
udiErrId    : UDINT;

lrP2x: Ermittelte X-Koordinate des Punktes 2 des Verschattungselementes (Viereck) [m]. Siehe "Anmerkung" oben.

lrP2z: Ermittelte Z-Koordinate des Punktes 2 des Verschattungselementes (Viereck) [m]. Siehe "Anmerkung" oben.

lrP4x: Ermittelte X-Koordinate des Punktes 4 des Verschattungselementes (Viereck) [m]. Siehe "Anmerkung" oben.

lrP4y: Ermittelte Y-Koordinate des Punktes 4 des Verschattungselementes (Viereck) [m]. Siehe "Anmerkung" oben.

lrP4z: Ermittelte Z-Koordinate des Punktes 4 des Verschattungselementes (Viereck) [m]. Siehe "Anmerkung" oben.

bErr: Ergebnis der Plausibilitätskontrolle für die eingegebenen Werte. In Bezug auf ein Viereck ist verlangt, dass der Innenwinkel 360° beträgt und die Punkte in einer Ebene liegen und vor der betrachteten Fassade liegen. Bei einer Kugel muss der Mittelpunkt ebenfalls vor der Fassade liegen und der Radius muss größer Null sein.

udiErrId / udiErrArg: Enthält die Fehlernummer und das Fehlerargument. Siehe Fehlercodes.

VAR_IN_OUT

arrShdObj : ARRAY[1..gBA_cMaxShdObj] OF ST_BA_ShdObj;

arrShdObj: Liste der Verschattungsobjekte.

Voraussetzungen

Entwicklungsumgebung

Zielsystem

erforderliche Bibliothek

erforderliches Supplement

TwinCAT 2.11 R3/x64

PC/CX

TcBA-Bibliothek ab V1.0.0

TS8040 | TwinCAT Building Automation ab V1.0.0