OSCAT Forum

oscat.lib => oscat.lib fuer TwinCAT/CoDeSys => Thema gestartet von: N3tw124rd am 11. Juli 2012, 20:53:28

Titel: Sonnenstand im BLIND_SHADE_S
Beitrag von: N3tw124rd am 11. Juli 2012, 20:53:28
Hallo,

ich möchte den BLIND_SHADE_S verwenden um eine Automatische Beschattung zu machen und habe da ein Verständnisproblem.
Woher kennt BLIND_SHADE_S die aktuelle Sonnenposition ?
Ich finde nix wo ich die Sonnenposition übergeben kann ?!?!?!

Kann mir jemand helfen ?

Gruß
N3tw124rd
Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: Fussel0804 am 11. Juli 2012, 22:44:17
Hi!
Die Daten werden über die I/O Variable CX (Calendar) übertragen.
Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: N3tw124rd am 15. Juli 2012, 20:45:14
Hi,

danke das passt jetzt ;)
Wenn ich möchte das der Rolladen nach dem die Sonne aus dem eingestellten Winkel heraus ist hochfahren soll muß ich den MASTER_MODE auf TRUE setzen (habe ich in einem anderen Thread gelesen).
Muss dieser MASTER_MODE manuell gesetzt werden oder fest in der Konfig ?

Danke im vorraus
Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: mike_roh_soft am 15. Juli 2012, 22:33:35
Am Eingang des Baustein einmalig fest auf True setzen und gut is.
Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: linsenpago am 18. Juli 2012, 13:22:58
Ich frage mich derzeit, warum es dann den schönen Baustein "sun_pos" gibt, wenn ich dem blind_shade die position über die I/O Variable CX übergeben muss.
In der Doku wird auch ein Blind_shade ohne der CX variable gezeigt (abgeblidet)

Wie komme ich an den Baustein, wo ich das direkt übergeben kann, da ich die Sonnenstandsberechnung über sun_pos mache?
Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: Fussel0804 am 18. Juli 2012, 14:56:27
Der Baustein SUN_POS wird in der Funktion Calender_Calc aufgerufen.
Natürlich kannst du auch den SUN_POS zur Übergabe des Sonnenstandes benutzen.
Für die richtige berechnung des Sun_pos benötigst du jedoch die richtige Lokalzeit (sommer/winterzeit)
Dies kannst du per manueller umstellung oder aber per DST machen.

Lange rede kurzer sinn:
lege nen Datenbaustein vom Format CALENDAR an, trage die Sonnendaten an die richtige stelle ein und es geht.

Gruß Stefan
Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: linsenpago am 20. Juli 2012, 11:06:15
OK! soweit hab ich das verstanden.

Mein Problem liegt eher daran, die ganzen Strukturen anzulegen, damit das dann alles korrekt ausgerechnet werden kann. Ich würde mir dann auch den Baustein "sun_time" ersparen, wenn ich mal die Calendar Struktur mit calendar_calc zum laufen bringen würde.

Alle Antworten die über die Suche ausgespuckt werden befinden sich leider eine Stufe über meinem derzeitigen Wissensstand.
Ich versuche eh soviel wie möglich selbst zu schaffen, aber irgendwie komm ich auf keinen grünen Zweig. Ich bitte um Verständniss.

Wenn ich mal meinen derzeitigen Konfigstand erläutern darf:

Ich habe im Codesys I/O Pro unter dem Reiter "Ressourcen"/Globale Variablen/Globale Variablen folgendes Array hoffentlich richtig angelegt:

VAR_GLOBAL
   HOLIDAY_AT : ARRAY[0..29] OF HOLIDAY_DATA :=
(name := 'Neujahr', day := 1, month := 1, use := 1),
(name := 'Heilig Drei Könige', day := 6, month := 1, use := 1),
(name := 'Karfreitag', day := -2, month := 0, use := 1),
(name := 'Ostersonntag', day := 0, month := 0, use := 1),
(name := 'Ostermontag', day := 1, month := 0, use := 1),
(name := 'Christi Himmelfahrt', day := 39, month := 0, use := 1),
(name := 'Pfingstsonntag', day := 49, month := 0, use := 1),
(name := 'Pfingstmontag', day := 50, month := 0, use := 1),
(name := 'Fronleichnam', day := 60, month := 0, use := 1),
(name := '', day := 8, month := 8, use := 0),
(name := 'Maria Himmelfahrt', day := 15, month := 8, use := 1),
(name := '', day := 3, month := 10, use := 0),
(name := '', day := 31, month := 10, use := 0),
(name := 'Allerheiligen', day := 1, month := 11, use := 1),
(name := 'Maria Empfängnis', day := 8, month := 12, use := 1),
(name := '1. Weihnachtstag', day := 25, month := 12, use := 1),
(name := '2. Weihnachtstag', day := 26, month := 12, use := 1);
END_VAR

Ich hoffe ich habe das mal richtig gemacht...  ??? Für mich persönlich ist das in der Doku einfach zu wenig beschrieben...

Jetzt bin ich gerade dabei die Struktur Calendar anzulegen bzw. zu finden. Daran scheitert es im moment...  :'(

Oder gibt es vielleicht irgendwo ein Beispiel das ich einfach nachbauen kann oder eine Schritt für Schritt Anleitung? Vielleicht wäre jemand so nett soetwas zu erstellen, dann würden eventuelle Zukünftige fragen damit beantwortet?  ::)
Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: linsenpago am 04. September 2012, 13:44:20
Gibts denn wirklich niemanden der mir hier weiterhelfen könnte?
Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: peewit am 04. September 2012, 19:39:45
lege diese datenstruktur in deinem baustein genau so an , und übergebe den sun calendar_calc baustein diese datenstruktur

HOLIDAY_AT : ARRAY[0..29] OF HOLIDAY_DATA :=
(name := 'Neujahr', day := 1, month := 1, use := 1),
(name := 'Heilig Drei Könige', day := 6, month := 1, use := 1),
(name := 'Karfreitag', day := -2, month := 0, use := 1),
(name := 'Ostersonntag', day := 0, month := 0, use := 1),
(name := 'Ostermontag', day := 1, month := 0, use := 1),
(name := 'Christi Himmelfahrt', day := 39, month := 0, use := 1),
(name := 'Pfingstsonntag', day := 49, month := 0, use := 1),
(name := 'Pfingstmontag', day := 50, month := 0, use := 1),
(name := 'Fronleichnam', day := 60, month := 0, use := 1),
(name := '', day := 8, month := 8, use := 0),
(name := 'Maria Himmelfahrt', day := 15, month := 8, use := 1),
(name := '', day := 3, month := 10, use := 0),
(name := '', day := 31, month := 10, use := 0),
(name := 'Allerheiligen', day := 1, month := 11, use := 1),
(name := 'Maria Empfängnis', day := 8, month := 12, use := 1),
(name := '1. Weihnachtstag', day := 25, month := 12, use := 1),
(name := '2. Weihnachtstag', day := 26, month := 12, use := 1);
Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: linsenpago am 22. November 2012, 18:29:58
Hi!

Ich habe an meiner Steuerung weitergearbeitet und bereits vieles angepasst und einiges zum laufen gebracht...

Aber dieser Blind Shade ist mir immer noch nicht ganz klar... dafür fehlt mir einfach das nötige know how so wies aussieht..
Aber vielleicht kann mir da doch jemand weiterhelfen...

Ich habe hier mein Projekt angehängt wo man sehen kann, was ich bis jetzt gemacht habe.

Im Programm "jalousie_tests" habe ich den blind_shade zum testen eingebaut.

Berechnet wird das ganze im Programm "schattenberechnung"
Sonnenberechnung dient zum berechnen von sonnenaufgang/untergang für die Blind Night bausteine und das funktioniert ja sehr gut!


Was mache ich falsch, bzw. was fehlt mir hier noch, damit die Blind_shade funktion läuft...

Jetzt im Winter ist das noch nicht so wichtig, da wir aber ein Passivhaus haben müssen wir dann im Sommer sehr auf die Beschattung achten und bis da hin solle das schon laufen... ;-)

Ich danke euch schon mal vorab für eure hilfe!

LG
Alex

[gelöscht durch Administrator]
Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: linsenpago am 07. Dezember 2012, 13:27:31
Kann mir denn wirklich niemand helfen?   :'(
Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: Fussel0804 am 08. Dezember 2012, 17:33:32
Hi, ich will versuchen dir zu helfen.

Kannst du mir nen Screenshot vom Shade modul schicken, in dem ich sämtliche Setup-parameter von dir sehe.
ich habe leider nur ne Siemens SPS, somit kann ich mit deinem Programm nix anfangen.

Gruß Stefan
Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: linsenpago am 27. Dezember 2012, 19:39:51
Hi!

Ich komm einfach nicht drauf, was ich falsch mache...
Danke, daß du mir deine Hilfe anbietest.

Die Werte kann ich dir noch nicht liefern, da das Projekt nicht korrekt ist und es dadurch nicht laufen lassen kann...
Ich hab mal 2 Screenshots angehängt, in denen man die Fehlermeldungen lesen kann und wie die Bausteine usw. eingetragen sind. Ich hoffe das hilft dir mal um das Problem zu verstehen.

Danke im Voraus!
LG
Alex


[gelöscht durch Administrator]
Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: linsenpago am 08. Januar 2013, 11:03:05
Fussel? kannst du dazu was sagen?
Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: Fussel0804 am 09. Januar 2013, 06:28:17
Hi!

Zu den Fehlermeldungen kann ich dir leider nix sagen, da ich selbst nur Siemens programmiere.
Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: peewit am 09. Januar 2013, 07:49:25
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.
 
Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: linsenpago am 11. Januar 2013, 06:38:11
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!
Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: linsenpago am 22. Januar 2013, 11:02:01
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]
Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: peewit am 24. Januar 2013, 16:48:03
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


Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: linsenpago am 24. Januar 2013, 16:57:11
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.
Titel: Re: Sonnenstand im BLIND_SHADE_S
Beitrag von: linsenpago am 11. Februar 2013, 15:25:27
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!