FB_BA_CalcSunPos

FB_BA_CalcSunPos 1:

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.

FB_BA_CalcSunPos 2:

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.

FB_BA_CalcSunPos 3: 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

TIMESTRUCT

Eingabe der aktuellen Uhrzeit als koordinierte Weltzeit. Mit Hilfe des Bausteines FB_BA_GetTime kann diese Zeit aus einem Zielsystem gelesen werden.

FB_BA_CalcSunPos 4: 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