sun_pos und Blind_shade verknüpft im Manual Seite 459

Begonnen von Omalik, 10. September 2009, 02:03:06

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

Omalik

In der aktuellen Version 3.10 ist im Manual ein Beispiel wie  sun_pos und Blind_shade verknüpft werden (Seite 459) . Nun sind diese Eingänge nicht mehr vorhanden sun_hor und sun_ver. Kann mir bitte jemand sagen was mein Denkfehler ist, oder wie das gedacht ist.

Besten Dank

hugo

sorry da ist ein fehler im manual, die bausteine wurden auf den neuen calendar angepasst

schau dir mal die bausteine calendar_calc und den datentyp calendar an

im prinzip musst du einen kalender definieren

var
   dein_calendar : calendar;
end_var

im programm musst injedem zyklus calendar_calc aufrufen.
es berechnet alle werte in der datenstruktur calendar (dein_calendar)
in der datenstruktur dein_calendar musst du die entsprechenden werte für deinen standort setzen.
am eingang cx von sun_pos verknüpfst du dein_calendar

dieses verfahren vereinfacht die programmierung vor allem bei mehreren jalousien und es spart gewaltig rechenzeit


hugo

das manual werden wir in der nächsten release natürlich anpassen

Omalik

Besten Dank Hugo für Deine schnelle Antwort. Werde ich gleich austesten.

Omalik

Es tut mir Leid, dass ich nochmals nachaken muss.
Mir ist das noch nicht ganz klar was der Vorteil und der Sinn vom Calendar ist. Habe das Manual und dieverse Beiträge im Forum gelesen. Leider habe ich immer noch diverse ???

ich habe folgendes gemacht:

VAR_GLOBAL
      mein_calendar : calendar;
END_VAR

Programmiert ist folgendes:

(*Systemzeit aus dem CX lesen *)
System_zeit_CX
(   NETID:=,
   Start:=tackt4 ,
   TMOUT:=tmount ,
   BUSY=> ,
   ERR=> ,
   ERRID=> ,
   TIMESTR=> );


(*Systemzeit kovertiereb auf zusammengesetztes Zeitdatum *)
System_date_time:= SET_DT(
   year:= SYSTEM_ZEIT_CX.TIMESTR.wYear,
   month:= SYSTEM_ZEIT_CX.TIMESTR.wMonth,
   day:= SYSTEM_ZEIT_CX.TIMESTR.wDay,
   HOUR:= SYSTEM_ZEIT_CX.TIMESTR.wHour,
   MINUTE:= SYSTEM_ZEIT_CX.TIMESTR.wMinute,
   SECOND:= SYSTEM_ZEIT_CX.TIMESTR.wSecond);

(*Systemzeit In "Wellzeit umwandeln *)
Utc_CX:= LTIME_TO_UTC (System_date_time, TRUE, 180);


(*Berechung der Position der Sonne zur aktuellen Zeit *)
SUN_POS_Schongau(
   latitude:= Ort_lat,
   longitude:= Ort_long,
   utc:= UTC_CX,
   B=> SUN_AZI ,
   H=> sun_high2,
   HR=> SUN_high);
;

(*Berechung Sonnenaufgang, Sonnenuntergang, Höststand der Sonne *)
SUN_TIME_Schongau(
   latitude:=Ort_lat ,
   longitude:=Ort_long ,
   utc:=System_date_time ,
   sun_midday=> sun_midday,
   sun_rise=> sun_rise ,
   sun_set=> sun_set ,
   sun_declination=> sun_declination );

(* Offet von UTC auf Local Time addieren  *)
   sun_midday_schongau := sun_midday + t#2h;
   sun_rise_schongau := sun_rise + t#2h;
   sun_set_schongau := sun_set + t#2h;
;

Muss ich jetzt alle mein_calendar.xxx zuweisen was ich berechnet habe?  :P

mein_calendar.UTC := UTC_CX;
mein_calendar.SUN_RISE :=sun_rise ;
...
usw.

Wie weiss ich, was BLIND_SHADE beim CX eingang alles benötigt?

Besten Dank für Eure Hilfe.





[gelöscht durch Administrator]

martin.k

Hi,

ich hänge beim gleichem Eingang fest und kapiere es nicht.
Ich habe ein Wago 750-841 und habe schon seit längerem eine Struktur Calendar am laufen.
Sonnenstand, Lokalzeit usw. werden berechnet.
Jetzt hänge ich an dem CX> Eingang und weis nicht mit was ich ihn füttern muss.

Grüße
Martin

martin.k

So, nach einigen Versuchen habe ich nun das Rätels gelöst:
Der Eingang am Modul CALENDAR_CALC muss als Globale Variante definiert sein.
Dann können die Werte auch für BLIND_SHADE verwendet werden.
Mein Fehler dabei war, dass ich die Werte in eigene globale Variabeln geschrieben hatte. Z.B. system_cal.LTOD = zUhrzeit
Damit war system_cal für Blind Shade verwendbar.

Ich glaube das nennt man Autodidaktik...

Grüße Martin