Sonnenstand im BLIND_SHADE_S

Begonnen von N3tw124rd, 11. Juli 2012, 20:53:28

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

peewit

#15
das programm schattenberechnung hat einen in/out parameter namens xcal
nun kannst du nicht einen anderen baustein als in/out referenz einen parameter eines programmes als referenz übergeben

beim aufruf des programmes schattenberechnung hast du ja eine xcal datenstruktur dem programm übergeben, und genau diese variable (xcal datenstruktur) musst du auch deinem blind-shade baustein übergeben

nachdem die bausteine anscheinend völlig verschiedene baustein instanzen sind, wirst du deine xcal-datenstruktur einfach global definieren müssen, und dann können beide darauf zugreifen

bei codesys ist es oft möglich direkt über die baustein.instanz auf die internen variablen zuzugreifen, das ist aber schlechter programmierstil, bzw. auch eine sache die die vorgesehene kapselung der daten unterläuft, und eigentlich ganz schlimm ist.

linsenpago

Ich habe jetzt im Programm Schattenberechnung die XCAL Variable von IN/Out auf Global umgewandelt.

Beim Blind_Shade habe ich die Globale Varible nun übergeben...
Jetzt bekomme ich beim Übersetzen keinen Fehler mehr zurückgeliefert.

Einspielen und testen muss ich es allerdings noch.

Ich werde mich wieder melden! :-)

Bis dahin sage ich mal vielen Dank für die Unterstützung!

linsenpago

#17
sooo... ich habe jetzt endlich den Baustein und alles drum und dran zum laufen gebracht.

Ich bedanke mich für die Unterstützung von einem Member von hier t.arni!

Ohne seiner Hilfe hätte ich ihn nicht zum laufen gebracht.


Es gibt aber noch eine Sache die wir auch gemeinsam nicht lösen konnten.

Und zwar berechnet der Calendar_Calc Baustein Sonnenaufgang und Sonnenuntergang nicht korrekt.


Ich brechne für die Blind_night Bausteine Sonnenauf- und Untergang mit dem Baustein Sun_time. Dieser Baustein liefert andere Zeiten als Calendar_calc.

Kann jemand sagen warum?

Im moment force ich die Werte von meinem Sun_time in die XCAL Datenstruktur und damit funktioniert die Beschattung richtig. Aber das ist ja auch nicht die Lösung. Ausserdem frage ich mich ob dann auch der Sonnenstand falsch berechnet wird. Das kann ich derzeit noch nicht überprüfen, da schon seit Tagen keine Sonne scheint bei uns... ;-)

Hat jemand eine Idee?

Im Screeshot sieht man in der Liste oben die Zeit die von Calendar_calc berechnet wird und weiter unten die Zeiten die ich aus dem sun_time baustein einfach in XCAL reinschreibe.


edit: einen Fehler habe ich selbst gefunden und aus dem Beitrag entfernt.

[gelöscht durch Administrator]

peewit

hallo

der sun baustein berechnet den sonnen auf/untergang nur nach weltzeit

beim xcal baustein wird dann noch automatisch die lokalzeit berücksichtig (geo-offset 1 Stunde + Somerzeit ja/nein)

man sieht auch das beim sun-baustein das datum 2013-1-21 ist, und beim xcal ein datum vom 2013-1-22 steht
aber was du da genau programmiert hast , kann ich so nicht bewerten



linsenpago

Ja, du hast recht... Da steht der 21.01. Das ist mir gar nicht aufgefallen.

Aber auch wenn da ein Tag Unterschied ist bei der Berechnung dürfte ja nicht so eine differenz beim Ergebniss rauskommen oder?

Ich werde aber meine Programmierung nochmals checken.

linsenpago

Hier mal ein Zwischenbericht zum Thema blind_shade in meinem Projekt:

Mittlerweile läuft die Berechnung - aber nur mit Umwege.

Warum im Sun-Baustein von Calendar_calc immer der Vortag drinnen steht, konnte ich nicht herausfinden. Es gibt keine Variable die diesen Tag hineinforced.
Genauso wenig warum die berechneten Sonnenauf- und Sonnenuntergangszeiten nicht stimmen (um 2 Stunden falsch).

Ich schreibe die Werte nun einfach in die XCAL Datenstruktur und gut ist. (ich habe zuvor schon die Funktion blind_night eingebaut und die Sonnenaufgangs- und Untergangszeiten extra berechnet).

Die Testläufe bei den 2-3 Tagen mit Sonnenschein haben sehr gut funktioniert. Ich musste nur bei den Werten für den Lamellenabstand ein bisschen schummeln, da die Lamellen nicht weit genug geschlossen wurden. Ich habe hier den Wert einfach um ein paar Millimeter erhöht und jetzt werden sie weit genug geschlossen, dass keine direkte Sonneneinstrahlung mehr ins Haus kommt. Bei den Offsetwinkeln muss ich auch noch ein wenig feintunen, damit die Beschattungfunktion sich zum richtigen Zeitpunkt deaktiviert - sie bleibt im Moment noch zu lange aktiv.

Jetzt muss ich nur noch den Sonnensensor bestellen und integrieren und damit steht der Automatischen Beschattung nichts mehr im Wege!