Probleme mit Wenn Befehle

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

Moderator: Co-Administratoren

Antworten
moddix
Beiträge: 20
Registriert: 15.04.2007, 18:44

Probleme mit Wenn Befehle

Beitrag von moddix » 05.05.2007, 07:20

Programmier Beispiel:
Ich möchte alle 5sec die PIRA anzeige auf dem display reseten sodass sie nach dem auslösen nicht immer rot sind.

wenn Alarm_PIRA_1 eingeschaltet dann
setzeposition(Alarm_PIRA_1=0)
endewenn

jetzt kommt immer Fehler in WENN Anweisung-ENDEWENN fehlt

Was ist hier falsch?
:-**************

shen
Ehrenmitglied
Beiträge: 753
Registriert: 14.07.2006, 19:24
Wohnort: Wegberg
Kontaktdaten:

Beitrag von shen » 05.05.2007, 08:57

Die Syntax von SETZEPOSITION ist falsch:

SETZEPOSITION

Syntax :

SETZEPOSITION(Objekt,Variable,Variable)

Das Bitmaps des angegebenen Objekt wird auf die neue Bildschirmposition gesetzt. Mit dieser Anweisung und der Anweisung HOLEPOSITION ist es möglich die Bitmaps von Objekten über den Bildschirm zu bewegen. Die Bildschirmposition wird durch die Variablen hinter dem Objekt festgelegt. Beide Variablen müssen vom Typ ZAHL sein.

siehe auch HOLEPOSITION

Beispiel:

Das Bitmap des Objekts Auge soll um 10 Bildschirmpunkte nach rechts und 5 Punkte nach unten verschoben werden. Auf der Seite Programmierung müssen zwei Variablen XPOS und YPOS vom Typ Zahl definiert werden.

HOLEPOSITION(AUGE,XPOS,YPOS)
XPOS:=XPOS+10
YPOS:=YPOS+5
SETZEPOSITION(AUGE,XPOS,YPOS)
Gruß
Stefan Hendricks (ehemaliger HomeMatic-Forum Betreiber)

Didi
Beiträge: 40
Registriert: 17.07.2006, 11:02

Beitrag von Didi » 08.05.2007, 20:37

Die Anweisung Setzeposition ist doch eigentlich dazu da ein Bitmpap an eine andere Stelle zu setzen, aber den Zustand des Objekts kannst du damit nicht ändern.
Ich mache es bei den Bewegungsmeldern (und auch anderen Sensoren) so:
am Ende des Sensor-Makros:
.......
WARTE ("00:00:10")
BewMelderGarten ausschalten

so wird der Bewegunsmelder immer nach 10 Sekunden (die Zeit kannst du beliebig je nach Sensor setzen) wieder auf "normal" gesetzt. Vorraussetzung ist natürlich, dass das Häckchen bei "Ausführung bei Empfang" gesetzt ist - aber das muss ja eigentlich bei Bewegungsmeldern immer so sein damit man was machen kann wenn der Melder anspricht.
Wenn man das rücksetzten in dem Makro macht hat es auch den Vorteil, dass die Anzeige immer die bestimmte Zeit dauert, wenn man einfach alle 5 Sekunden zurücksetzt kann es ja sein, dass "rot" nur für einen Sekundenbruchteil (also praktisch gar nicht sichtbar) angezeigt wird.

Viel Erfolg
Didi

Antworten

Zurück zu „homeputer Studio / Standard: Programmierbeispiele“