Seite 1 von 2
einfaches Rolladenscript funktioniert nicht
Verfasst: 10.12.2017, 09:35
von mikk
Hallo zusammen,
folgender Code fährt die Rollade zwar runter aber nicht rauf...
Code: Alles auswählen
wenn Uhr = Sonnenuntergang dann
Rolladen_Wohnzimmer runterfahren
endewenn
wenn Uhr = Sonnenaufgang dann
warte ("00:10:00")
Rolladen_Wohnzimmer rauffahren
endewenn
Wo liegt mein Fehler?
Vielen Dank im Vorraus
Mikk
Re: einfaches Rolladenscript funktioniert nicht
Verfasst: 10.12.2017, 11:02
von NickHM
Guten Morgen
Du lässt das Makro alle Minute ausführen, da Du ja die exakte Zeit prüfst.
Morgens wartest Du 10 min. Aber nach 1 min wird das Makro neu ausgeführt, die Warteschleife gelöscht und die Bedingung = Sonnenaufgang ist auch vorbei.
Mehrere Lösungen
- die Rolllanden nicht direkt in dem Makro fahren lassen.
In dem Makro das alle Minute läuft nur die Zeit prüfen und dann zwei externe Makros starten die jeweils die Rollladen hoch oer runter fahren. Das hat den Vorteil, dass Du alle Rollladen in einem Makro hoch fährst. Dort kannst Du verzögern und Du kannst das Makro auch noch für andere Zwecke benutzen. Wenn was angepasst wird, dann nur an der einen Stelle
- ein eigenes Objekt "meinSA" anlegen
um z.B. 01:00 ein Makro laufen lassen, dass
meinSA := Sonnenaufgang + "00:10:00" berechnet.
Dann in Deinem Minutenmakro nicht SA sondern meinSA benutzen.
Vorteil, die Verzögerung wird zentral an einer Stelle berechnet. Die Zeit ist leicht anzupassen und kann auch aus einer Variable genommen werden, die über VisuWin als Objekt einstellbar sein kann.
Re: einfaches Rolladenscript funktioniert nicht
Verfasst: 10.12.2017, 13:14
von mikk
Vielen Dank,
das muss man erst mal verstehen. Ist vom Prinzip her aber logisch.
Ich habe vorher schon Probiert mit rauf und runter Objekten das zu realisieren, bin aber leider gescheitert.
Werde mich daran nochmal versuchen.
Aber wait, wenn kürzer als die ausführungszeit funktioniert?
Ich denke an wait 5 Sekunden oder so und Programm wird alle Minute ausgeführt?
Gruß
Mikk
Re: einfaches Rolladenscript funktioniert nicht
Verfasst: 10.12.2017, 13:54
von mikk
Hallo nochmal,
wenn ich das eingebe
erhalte ich 08.22.0000:10:00
wo liegt mein Fehler?
Re: einfaches Rolladenscript funktioniert nicht
Verfasst: 10.12.2017, 18:40
von NickHM
meinSA Typ Uhr
meinSU Typ Uhr
Beispiele
Code: Alles auswählen
meinSU := Sonnenuntergang - "00:30:00
wenn meinSU > "21:30:00" dann
meinSU := "21:30:00"
endewenn
Code: Alles auswählen
meinSA := Sonnenaufgang
wenn Wochentag =+ "1000001" und meinSA < "07:50:00" dann
meinSA := "07:50:00"
sonst
wenn meinSA < "05:45:00" dann
meinSA := "05:45:00"
endewenn
endewenn
Re: einfaches Rolladenscript funktioniert nicht
Verfasst: 10.12.2017, 20:48
von mikk
Hallo NickHM,
nach langem suchen habe ich endlich gefunden wo ich variablen definieren kann.
Jetzt rechne ich in
Temp typ uhr
wann die Rollade hoch gehen soll und setze dann Rolladen_wohn_hoch bzw runter gleich tmp
einem Objekt zuweisen habe ich nicht geschafft. Und auch nicht eine Variable in VisuWin darzustellen.
so funktioniert es, schön ist anders
danke dir
Re: einfaches Rolladenscript funktioniert nicht
Verfasst: 10.12.2017, 21:55
von NickHM
mikk hat geschrieben:
so funktioniert es, schön ist anders
danke dir
Guten Abend
HPCL bedarf schon ein wenig Einarbeitung. Die integrierte Hilfe ist auch nicht so schlecht wie das alte Hilfeformat suggeriert
Und wenn Du etwas gar nicht hin bekommst kannst Du ja hier fragen, statt zu resignieren.
Re: einfaches Rolladenscript funktioniert nicht
Verfasst: 11.12.2017, 10:48
von mikk
Hallo NickMH,
jetzt habe ich nur noch das Problem das ich am ersten Tag dann keine Daten in MeinSA z.bsp. habe.
Kann ich irgendwo einstellen das beim Übertragen zuerst einmal das Makro ausgeführt wird?
Gruß Mikk
Re: einfaches Rolladenscript funktioniert nicht
Verfasst: 11.12.2017, 11:07
von NickHM
Guten Morgen
- in jedem Objekt kann man einen Startwert eingeben
- es gibt ein Makro mit dem Namen INIT_xx das beim Start ausgeführt wird. Dort kann man alle dinge eintragen, die beim Start gestartet werden sollen. Dort kann man auch weitere Makros starten. Es ist sinnvoll dort Wartezeiten von einigen Sekunden einzutragen, um nicht alles gleichzeitig zu starten
Code: Alles auswählen
variable_xx := "00:07:00"
//
starte LOG_Loeschen
//
warte("00:00:10")
starte SAU
- in der Konfiguration von HPCL kann man einstellen, dass alle variablenwerte bei einem normalen Neustart der exec wieder auf den zuletzt bekannten Wert gesetzt werden.
- in VisuWin kann man sich einen Button machnen, der das Makro startet
- in VisuWin kann man sich das Objekt anzeigen lasen und manuell einen Wert rein schreiben.
Es gibt viele Möglichkeiten das zu lösen.
und wie schon mal erwähnt, hat das Programm eine Hilfefunktion
Code: Alles auswählen
Makros sind Programme, die der Benutzer erstellen kann um die individuellen Anwendungsfunktionen seines Systems zu programmieren.
Jedes Objekt eines Moduls kann ein Makro beinhalten. Es können auch Objekte ohne Hardwarebezug (virtuelle Objekte) erstellt werden, für die ein Makro geschrieben wird.
Makros können in bestimmten Zeitintervallen oder durch den Empfang vom zugeordneten Hardwaresensor aktiviert werden.
Es gibt zwei spezielle Makrotypen, die jeweils beim Start und bei der Beendigung der ExecEngine ausgeführt werden.
Makros, deren Namen mit "INIT_" beginnen werden beim Start der ExecEngine vor allen anderen Makros ausgeführt.
Makros deren Namen mit "END_" beginnen werden beim Beenden der ExecEngine ausgeführt. Das geschieht allerdings nur wenn die ExecEngine "normal" beendet wird, d.h. durch Compilieren und Übertragen eines Projekts oder durch das Kontrollprogramm ExecEngineWin. Wird die ExecEngine durch einen Betriebssystembefehl oder WEB-Serverfunktionen beendet werden die END-Makros nicht ausgeführt.
Re: einfaches Rolladenscript funktioniert nicht
Verfasst: 11.12.2017, 14:37
von mikk
Danke dir,
in der Hilfe hatte ich schon nachgeschaut aber nichts gefunden. Nun bin ich überascht das das da drinne stand.
und zwar stehts sofort wenn man Makro eingibt, sorry, war ich zu dumm.
Gruß Mikk