einfaches Rolladenscript funktioniert nicht

Betrieb der FHZ-Zentralen mit contronics homeputer Standard / homeputer Studio & WEB-Server

Moderator: Co-Administratoren

mikk
Beiträge: 25
Registriert: 07.12.2017, 12:44
Danksagung erhalten: 1 Mal

einfaches Rolladenscript funktioniert nicht

Beitrag von mikk » 10.12.2017, 09:35

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

NickHM
Beiträge: 3729
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 65 Mal
Danksagung erhalten: 119 Mal

Re: einfaches Rolladenscript funktioniert nicht

Beitrag von NickHM » 10.12.2017, 11:02

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.

mikk
Beiträge: 25
Registriert: 07.12.2017, 12:44
Danksagung erhalten: 1 Mal

Re: einfaches Rolladenscript funktioniert nicht

Beitrag von mikk » 10.12.2017, 13:14

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

mikk
Beiträge: 25
Registriert: 07.12.2017, 12:44
Danksagung erhalten: 1 Mal

Re: einfaches Rolladenscript funktioniert nicht

Beitrag von mikk » 10.12.2017, 13:54

Hallo nochmal,
wenn ich das eingebe

Code: Alles auswählen

meinSA := Sonnenaufgang + "00:10:00"
erhalte ich 08.22.0000:10:00
wo liegt mein Fehler?

NickHM
Beiträge: 3729
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 65 Mal
Danksagung erhalten: 119 Mal

Re: einfaches Rolladenscript funktioniert nicht

Beitrag von NickHM » 10.12.2017, 18:40

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

mikk
Beiträge: 25
Registriert: 07.12.2017, 12:44
Danksagung erhalten: 1 Mal

Re: einfaches Rolladenscript funktioniert nicht

Beitrag von mikk » 10.12.2017, 20:48

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

NickHM
Beiträge: 3729
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 65 Mal
Danksagung erhalten: 119 Mal

Re: einfaches Rolladenscript funktioniert nicht

Beitrag von NickHM » 10.12.2017, 21:55

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.

mikk
Beiträge: 25
Registriert: 07.12.2017, 12:44
Danksagung erhalten: 1 Mal

Re: einfaches Rolladenscript funktioniert nicht

Beitrag von mikk » 11.12.2017, 10:48

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

NickHM
Beiträge: 3729
Registriert: 23.09.2017, 12:04
Hat sich bedankt: 65 Mal
Danksagung erhalten: 119 Mal

Re: einfaches Rolladenscript funktioniert nicht

Beitrag von NickHM » 11.12.2017, 11:07

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.
 

mikk
Beiträge: 25
Registriert: 07.12.2017, 12:44
Danksagung erhalten: 1 Mal

Re: einfaches Rolladenscript funktioniert nicht

Beitrag von mikk » 11.12.2017, 14:37

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

Antworten

Zurück zu „homeputer Studio / Standard: allgemeine Fragen“