Garagentor Zustand abfragen

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

Moderator: Co-Administratoren

Antworten
mfreye
Beiträge: 237
Registriert: 22.12.2007, 08:01

Garagentor Zustand abfragen

Beitrag von mfreye » 07.11.2010, 18:17

Hallo zusammen,

endlich komme auch mal wieder dazu etwas herum zu Spielen.

Wir haben neue Garagentore bekommen, die ich dann auch gleich mit in da FS20 System eingebunden habe.

Da ich gerne wissen möchte ob das Tor auf ist oder zu ist, habe ich noch zwei frei Eingänge an einen Sender genutzt um also den Status des Tors ab zu fragen. Da diese nun ständig senden würden habe ich noch ein Relais in Reihe dazwischen geschaltet, welches ich über einen Ausgang ansteuern kann.

Der Sender ist auf doppelte Kanalzahl programmiert.

Zusammenfassung:

ein Reedkontakt für Tor auf (Sender_Garage_auf)
ein Reedkontakt für Tor zu (Sender_Garage_zu)
ein Relais für die Abfrage (Empfänger_Status_abfragen)

Das ganze sollte jetzt wie folgt funktionieren:

Von homestudio das Relais einschalten und warten bis eine Rückmeldung kommt (vom Sender). Dann den Ausgang, das Relais wieder ausschalten.
Wenn innerhalb von ~1sek keine Rückmeldung kommt, das ganze abbrechen und noch zweimal versuchen. Es könnte ja sein dass das Tor nicht auf oder zu ist ;)

Kann man das so machen?

zeit als Zahl (Standardwert: 0,0)
zaehler als Zahl (Standardwert: 1)

Code: Alles auswählen


zaehler := 1
zeit := 1/84600

nochmal: 

wenn zaehler > 4 dann

  gehezu ende

endewenn

Sender_Garage_zu ausschalten
Sender_Garage_auf ausschalten

Empfänger_Status_abfragen einschalten für zeit

wenn Sender_Garage_auf eingeschaltet oder Sender_Garage_zu eingeschaltet dann

  gehezu ende

sonst

  zaehler := zaehler + 1
  gehezu nochmal

endewenn

ende:

Danke für die Hilfe.

MfG
maik

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Garagentor Zustand abfragen

Beitrag von buempi » 07.11.2010, 19:13

Hallo Maik

Ich kann die Schaltung gedanklich nicht ganz nachvollziehen. Aber das Makro kommt gar nie dazu, zu senden, bis die 3x um sind. - Warum? - Es wird immer erst gesendet, wenn das ganze Makro vollständig abgearbeitet oder ein WARTE() erreicht ist.

Füge also nach dem Einschalten des "Empfänger_Status_Abfragen" eine WARTE("00:00:01") ein, und es sollte richtig ablaufen. Vielleicht musst du auch das Einschalten auf 2 Sekunden verlängern, damit einer der Kontakte noch EIN ist. Dann wäre aber auch vor dem "GEHEZU" nochmals zu warten, sonst wird das nächste Signal nicht gesendet, weil der Empfänger aus "Sicht" von Homeputer ja noch EIN ist.

Viele Grüsse
Bümpi

mfreye
Beiträge: 237
Registriert: 22.12.2007, 08:01

Re: Garagentor Zustand abfragen

Beitrag von mfreye » 07.11.2010, 20:56

Hallo Bümpi,

danke für die schnell Antwort.
Ich kann die Schaltung gedanklich nicht ganz nachvollziehen.
Will nochmal versuchen das ganze etwas besser zu erklären, ist ganz simpel.

Ich habe eine 4Kanal Sender und einen 4Kanal Empfänger in der Garage.

Der 4Kanal Empfänger schaltet:
1. das Tor auf/zu
2. das Licht in der Garage
3. eine Außenlampe
4. das Relais für die Abfrage ob das Tor auf oder zu ist

Der 4Kanal Sender schaltet:
1. Tor auf/zu
2. Licht Garage an/aus
3. Reedkontakt Tor auf
4. Reedkontakt Tor zu

Wenn die Reedkontakte belegt sind, schließen Sie und der Eingang am Sender wird geschaltet. Dadurch würde jetzt der Sender die ganze Zeit senden, um das zu verhindern, habe schaltet ich die Masse der Reedkontakte mit dem Relais. Also wenn das Relais eingeschaltet ist, wird gesendet. Wie ein Rückkanal.

Alles über homestudio, also nicht direkt.

Wie gesagt möchte ich prüfen ob das Tor auf oder zu ist. Dazu habe ich mir vorgestellt, das Relais kurz zur schalten und zu warten bis der Sender eine Rückantwort gibt. Wenn diese nicht kommt, soll das ganze ein, zwei mal wiederholt werden. Wenn dann nichts kommt ist das Tor nicht auf und auch nicht zu, irgendwo dazwischen oder es wurden keine Befehle empfangen.

Code: Alles auswählen

Es wird immer erst gesendet, wenn das ganze Makro vollständig abgearbeitet oder ein WARTE() erreicht ist. 
Ok, dass habe ich übersehen.

Würdest Du das ganze auch so machen, oder ist ganze schlecht gelöst vom Code her?

Danke Bümpi für die tolle Hilfe!

MfG
maik

PS Einen schönen Abend noch.

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Garagentor Zustand abfragen

Beitrag von buempi » 08.11.2010, 06:13

Hallo Maik

Jetzt habe ich die Schaltung verstanden. Hatte es mir ähnlich vorgestellt, war aber nicht ganz sicher, weil doch recht aufwändig! Aber sicher eine optimale Lösung, wenn man den Zustand des Tors mit maximaler Zuverlässigkeit kennen will. Und wenn die meisten Teile eh schon ungenutzt vorhanden sind... :)
mfreye hat geschrieben:Würdest Du das ganze auch so machen, oder ist ganze schlecht gelöst vom Code her?
Ich finde es grundsätzlich gut gelöst und hätte es wohl ähnlich aufgebaut. Nur etwas ist mir in der Nacht noch eingefallen: "Zeit" ist eine Funktion in Homeputer, die Datum und Uhrzeit zurückgibt. Verwende also einen anderen Namen für die Variable oder die übliche Schreibweise "##:##:##".

Viele Grüsse
Bümpi

PS: Was sendet eigentlich der 2/4-Kanal-Sender (68-566-06?) im Modus "doppelte Kanalanzahl" bei Dauerkontakt (auch 1 Sekunde ist ja Dauerkontakt)? Wohl abwechslungsweise rauf- und runterdimmen? Und bewirkt das beides dann in Homeputer ein EIN?

Oder sendet er permanent EIN/AUS? Dann nützt die Abfrage auf EIN nichts. Du müsstest die beiden "ausschalten" weglassen und auf CT (change-time) abfragen.

mfreye
Beiträge: 237
Registriert: 22.12.2007, 08:01

Re: Garagentor Zustand abfragen

Beitrag von mfreye » 08.11.2010, 18:19

Hallo Bümpi,

also Du hast da leider Recht, es wir immer im Takt an aus gesendet. Wollte das ganze jetzt mal mit CT machen, aber bekomme das nicht hin. Verstehe evt, auch die Funktion davon nicht richtig :(

Hier mal der original Code:

Code: Alles auswählen

wenn TEST_SENDER eingeschaltet dann

**Zähler setzen
MerkerZaehler := 1

**gehezu
nochmal:
wenn MerkerZaehler < 4 dann

  **Status abfragen
  EM_SC_GA_4422 einschalten für "00:00:01"

  warte("00:00:02")

  wenn Stoppzeit(SE_SC_GA_1333.ct) <> "00:00:00" dann

    SC_GA_Status := "zu"
    gehezu ende

  endewenn

  wenn Stoppzeit(SE_SC_GA_1334.ct) <> "00:00:00" dann

    SC_GA_Status := "auf"
    gehezu ende

  endewenn

  MerkerZaehler := MerkerZaehler + 1
  gehezu nochmal

sonst

  SC_GA_Status := "unbekannt"
  gehezu ende

endewenn

**gehezu
ende:

endewenn

TEST_SENDER ausschalten
Danke für die Hilfe!

MfG
maik

buempi
Ehrenmitglied
Beiträge: 12194
Registriert: 29.07.2006, 15:58
Wohnort: Schweiz
Danksagung erhalten: 5 Mal

Re: Garagentor Zustand abfragen

Beitrag von buempi » 08.11.2010, 18:31

Hallo Maik

Du darfst nicht auf Stoppzeit(...) <> "00:00:00" abfragen. Die Funktion gibt die Zeitdauer seit der letzten Zustandsänderung des Moduls zurück. Ungleich Null wäre ja auch letzte Woche irgendwann. Frage mal auf <= "00:00:03" ab, und es müsste funktionieren.

Viele Grüsse
Bümpi

mfreye
Beiträge: 237
Registriert: 22.12.2007, 08:01

Re: Garagentor Zustand abfragen

Beitrag von mfreye » 08.11.2010, 19:31

Hey Bümpi,

läuft jetzt super :D Danke Dir!

Schönen Abend noch
Maik

Antworten

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