FB_BA_CalcSunPos

Der Funktionsbaustein FB_BA_CalcSunPos dient zur Berechnung des Sonnenstandes durch die Angabe von Datum, Uhrzeit, geografischer Länge und geografischer Breite.
Der Sonnenstand für einen gegebenen Zeitpunkt lässt sich nach gängigen Methoden mit definierter Genauigkeit berechnen. Für Anwendungen mit mäßigen Anforderungen genügt der hier vorliegende Baustein. Als Grundlage wurde hierfür der SUNAE-Algorithmus verwendet, der einen günstigen Kompromiss zwischen Genauigkeit und Rechenaufwand darstellt.
Der Stand der Sonne an einem festen Beobachtungsort wird normalerweise mit zwei Winkelangaben bestimmt. Die eine Winkelangabe zeigt die Höhe über dem Horizont an, wobei 0° bedeutet, dass sich die Sonne in der Horizontalebene des Standortes befindet und ein Wert von 90°, dass sie sich senkrecht über dem Beobachter befindet. Die andere Winkelangabe zeigt die Richtung an, in der die Sonne steht. Bei dem SUNAE-Algorithmus wird unterschieden, ob der Beobachter auf der nördlichen (Längengrad > 0) oder auf der südlichen (Längengrad < 0) Erdhalbkugel steht. Ist der Beobachtungspunkt auf der nördlichen Erdhalbkugel, so wird ein Wert von 0° für die nördliche Sonnenrichtung zugeordnet und läuft dann im Uhrzeigersinn um den Kompass, d.h. 90° ist Osten, 180° ist Süden, 270° Westen, etc. Ist der Beobachtungspunkt auf der südlichen Erdhalbkugel, so entspricht 0° der südlichen Richtung und verläuft dann entgegen dem Uhrzeigersinn, d.h. 90° ist Osten, 180° ist Norden, 270° Westen, etc.

Bei der Angabe der Uhrzeit muss die Zeit als koordinierte Weltzeit (UTC, Universal Time Coordinated - im älteren Sprachgebrauch auch GMT, Greenwich-Mean-Time) angegeben werden.
Die geografische Breite ist die im Winkelmaß (also [°]) angegebene nördliche oder südliche Entfernung eines Ortes der Erdoberfläche vom Äquator. Die Breite kann Werte von 0° (am Äquator) bis ±90° (an den Polen) annehmen. Dabei gibt ein positives Vorzeichen die nördliche Richtung und ein negatives Vorzeichen die südliche Richtung an. Die geografische Länge ist ein Winkel, der ausgehend vom Nullmeridian 0° (künstlich festgelegte Nord-Süd-Linie) Werte bis ±180° annehmen kann. Ein positives Vorzeichen gibt die Länge in östlicher Richtung und ein negatives Vorzeichen in westlicher Richtung an. Beispiele:
Ort | geographische Länge | geographische Breite |
---|---|---|
Sydney, Australien | 151,2° | -33,9° |
New York, USA | -74,0° | 40,7° |
London, England | -0,1° | 51,5° |
Moskau, Russland | 37,6° | 55,7° |
Peking, China | 116,3° | 39,9° |
Dubai, Vereinigte Arabische Emirate | 55,3° | 25,4° |
Rio de Janeiro, Brasilien | -43,2° | -22,9° |
Hawaii, USA | -155,8° | 20,2° |
Verl, Deutschland | 8,5° | 51,9° |
Gibt der Baustein FB_BA_CalcSunPos für die Sonnenhöhe fSunElv einen negativen Wert zurück, so ist die Sonne nicht sichtbar. Dieses kann zur Bestimmung von Sonnenaufgang und Sonnenuntergang genutzt werden.
Eingänge
VAR_INPUT
fDegLngd : REAL;
fDegLatd : REAL;
tUTC : TIMESTRUCT;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
fDegLngd | REAL | Geographische Länge [°] |
fDegLatd | REAL | Geographische Breite [°] |
tUTC | Eingabe der aktuellen Uhrzeit als koordinierte Weltzeit. Mit Hilfe des Bausteines FB_BA_GetTime kann diese Zeit aus einem Zielsystem gelesen werden. |
Ausgänge
VAR_OUTPUT
fSunAzm : REAL;
fSunElv : REAL;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
fSunAzm | REAL | Sonnenrichtung (nördliche Erdhalbkugel: 0° Norden ... 90° Osten ... 180° Süden ... 270° Westen ... / südliche Erdhalbkugel: 0° Süden ... 90° Osten ... 180° Norden ... 270° Westen ...). |
fSunElv | REAL | Sonnenhöhe (0° horizontal ... 90° senkrecht). |
Voraussetzungen
Entwicklungsumgebung | Erforderliche SPS-Bibliothek |
---|---|
TwinCAT ab v3.1.4024.22 | Tc3_BA2 ab v5.2.5.0 |