Einsteiger: SUN_TIME / CALENDAR / UTC_TO_LTIME

Begonnen von MarcJ, 05. März 2014, 14:32:34

Vorheriges Thema - Nächstes Thema

0 Mitglieder und 1 Gast betrachten dieses Thema.

MarcJ

Hallo zusammen.
Ich hoffe ich kann mich hier an euch wenden.
Ich bin neu in der Automatisierung und habe mir für mein kleines Gebäudeautomatisierungsprojekt eine Wago 841 zugelegt (Jalousiensteuerung)
Ich habe nun auch schon die Steuerung zum laufen bekommen (die Ausgänge tun das was sie sollen an den Eingängen).
Nun möchte ich aber auch gerne die Zeiten zum Sonnen Auf / Untergang mittels SUN_TIME berechnen.
Aber ich scheitere gnadenlos an der Zeit hin und herrechnerei.
Ich kriege jedesmal Fehlermeldungen und ich weiß langsam nicht mehr was ich machen soll!

Vielleicht habe ich auch noch nicht so die Ahnung von Varialbeln und deklarationen.
Ich hoffe es "erbahrmt" sich jemand mir vielleicht anzunehmen. :)

Viele Grüße und Danke schon einmal im vorraus
Marc...


[gelöscht durch Administrator]

martin.k

Hi,

die 9 in der Klammer zeigt Dir die Zeile in der der Fehler ist.
CALENDAR in Zeile 7 hat kein ; am Ende. Das darf nicht sein.
Außerdem ist CALENDAR ganz alleine...
Schon die Zeile 4 ist nicht gut. Schreibe das ; an das Ende.
Zeile 5 sollte nicht mit einem ; beginnen.

So kommst Du mal ein Stück weiter...
Gruß
Martin

MarcJ

Hi.
Danke für den Tipp. Ich weiß, ich tu mich im Moment vllt noch ein bissel schwer, weil ich auch erst einsteige in die Automatisierungswelt.

Ich habe nun den Baustein CALENDAR_CALC mit den entsprechenden Eingängen versehen, und auf SPE ein True gesetzt.
Wie und vor allem Wo kann ich jetzt die berechneten Daten verwenden, bzw mit welchem Baustein mir anzeigen lassen?? z.B. SUN_RISE

Sorry das ich solch "kleinkram" wissen möchte.
Danke schon einmal im voraus
Marc...

martin.k

Verwenden kannst die Zeit für viele Sachen. Ich habe z.B. einen Sonnensensor. Wenn es dunkel wird gibt er ein Signal. Manchmal war es bei einem starken Gewitter aber schon um 14 Uhr so dunkel das der Sensor geschaltet hat. Nun mache ich: Sonnenuntergangszeitpunkt minus 30 min ist kleiner als aktuelle Uhrzeit dann "Dunkelheit möglich" = TRUE.

Was meinst du mit "anzeigen lassen" ? Hast Du einen Bildschirm?

Such mal hier im Forum und schau dir die geposteten Screenshots an. Da findest Du immer wieder interessante Sachen und Lösungswege. Vielleicht findest Du auch ein Projekt, was du runterladen kannst und dann studieren.
Dann möchte ich noch auf www.sps-home.de.vu verweisen. Da gibts auch tolle Screenshots ;-)

Sei mutig und probier aus.
Gruß
Martin

MarcJ

Hey
Danke für den Tipp.
Ich bin schon mutig. Soviel kann man ja nich kaputt machen. :)
Nur manchmal weiß ich echt einfach nich weiter.
Klar versucht man ja immer alle Fehler erst selbst zu beheben (Internetrecherche, oder einfach Versuchen)
Aber zum Beispiel hier:
Ich weiß noch nicht einmal was der Fehler heißen soll.
Alle Ausgäne sind verknüpft, es fehlt meines erachtens auch kein ; oder was anderes!?
Weiß jemand was das soll?

Danke schon einmal.
Gruß Marc...


[gelöscht durch Administrator]

MarcJ

Hallo...
OK, Hat geklappt.
Ich habe in letzter instanz einfach das Programm gelöscht un noch einmal neu gesnchrieben.

Kann mir evtneull jemand beantworten wie ich denn nun die Variabeln aus CALENDAR in weiteren Programmen verwenden kann?
Muss ich die noch irgendwo definieren, bzw Global zur verfügung stellen??
Sorry habe leider nichts darüber gefunden.
Ich würde nun gerne eine Zeitschaltuhr damit schalten.

Gruß Marc...

martin.k

Hi

Die Zeitschaltuhr braucht die aktuelle Zeit. Also verwendest Du deine Variable "lokale Zeit" vom Typ DT. An der Zeitschaltuhr z.B. Timer_2 aus der Building Lib, ist der Eingang  DT_IN
Dort schreibst Du deine "lokale Zeit" dran.

Viel Erfolg !

linsenpago

Hi!

Als kurze Ergänzung hier...

der Baustein "CALENDAR_CALC" stellt seine Berechnungen in eine Globale Variable vom Typ "CALENDAR" Namens "XCAL" zur Verfügung.

Aufrufen kannst du diese Werte wenn du z.b. einfach mal einen Eingang erstellst und F2 drückst.
Dort suchst du dir dann einfach unter "Globale Variable" den Punkt "XCAL" und öffnest mit dem "+" die Struktur... Dort einfach einen Wert auswählen und du siehst dann auf deinem Erstellten Eingang den Wert. (wenn bereits alles richtig berechnet wurde und du online bist)

Diesen Werkt kannst du dann einfach einem anderen Baustein übergeben wenn der Datentyp passt.
Wie du schon richtig erkannt hast, passen die Datentypen nicht immer mit den erwarteten Typen von den Bausteinen überein. Dann musst du die einfach mit einem zwischengeschaltenen Baustein in das passende Format umrechnen. (gibt es eigentlich für alles)

Ich hoffe das war halbwegs verständlich Erklärt.
Ich habe genauso wie du von null angefangen und mittlerweile habe ich meine Haussteuerung mit automatischer Sonnenstandsberechnung, Raffstorelamellennachführung, eigener Alarmanlage, Visu, Steuerung per SMS usw. am laufen und bin sehr zufrieden damit.
Frage aber nicht wieviele Stunden ich da an Selbststudium und herumprobieren reingesteckt habe.. ;-)

Wenn du noch weitere Fragen hast, einfach melden!

LG
Alex

mattsches

... und vielleicht noch eine Präzisierung zur Ergänzung:

Die erwähnte globale Variable "XCAL" wird nicht etwa von CALENDAR_CALC erzeugt. Der Baustein erwartet lediglich, dass an seinem Anschluss "XCAL" eine Variable vom Typ "CALENDAR" übergeben wird. Die kann, muss aber nicht global deklariert sein; global bietet sich in dem Fall jedoch an.

Die Deklaration machst Du dann im Reiter "Ressourcen", "Globale_Variablen". Zum Beispiel so:

XCAL : CALENDAR;

oder aber - wenn Dir der Variablenname besser gefällt:

HansdampfinallenGassen : CALENDAR;

In dem Fall müsstest Du beim Aufruf des CALENDAR_CALC halt "HansdampfinallenGassen" an den Bausteineingang "XCAL" schreiben. Und an jeder beliebigen Stelle in Deinem Programm könntest Du dann mit HansdampfinallenGassen.SUN_RISE die berechnete Sonnenaufgangszeit abgreifen.

Sinnvoll ist das nicht, also bleib' lieber bei Alex' Empfehlung und nenne das Ding XCAL, CalendarData oder so. Aber deklarieren musst Du es selbst, darum ging es mir.

Grüße,
mattsches