Wenn dies dein erster Besuch hier ist, lies bitte zuerst die Hilfe - Häufig gestellte Fragen durch. Du musst dich vermutlich registrieren, bevor du Beiträge verfassen kannst. Klicke oben auf 'Registrieren', um den Registrierungsprozess zu starten. Du kannst auch jetzt schon Beiträge lesen. Suche dir einfach das Forum aus, das dich am meisten interessiert.
Ankündigung
Einklappen
Keine Ankündigung bisher.
Tor Status funktioniert nicht mehr nach patch 2.300
IMHO sollte das 2. if gleich abgearbeitet werden, dann kommt die Rückmeldung des Antriebes und der Fahrbetrieb wird wieder angezeigt. Das ist meine Erwartungshaltung.
Wenn jedoch Tor_fahrt_AUF auf EIN bleibt, ist das für mich nicht erklärbar. Ich würde eben das Gegenteil erwarten. Der Rest steht eh im Thread.
// Check Tor fährt AUF
if event ("Garagentor hoch-4/0/1") and "Garagentor hoch-4/0/1"==EIN and "Garagentor Ausgang oben-4/0/5"==AUS and Tor_fahrt==AUS then {
Tor_fahrt_AUF=EIN;
Tor_fahrt_AB=AUS;
Tor_fahrt=EIN;
Taster_verarbeitet=EIN;
} endif
// Check Tor fährt AB
if event ("Garagentor ab-4/0/2") and "Garagentor ab-4/0/2"==EIN and "Garagentor Ausgang unten-4/0/6"==AUS and Tor_fahrt==AUS then {
Tor_fahrt_AUF=AUS;
Tor_fahrt_AB=EIN;
Tor_fahrt=EIN;
Taster_verarbeitet=EIN;
} endif
// Check Tor stop
if event ("Garagentor hoch-4/0/1") and "Garagentor hoch-4/0/1"==EIN and "Garagentor Ausgang oben-4/0/5"==AUS ) \\
or event ("Garagentor ab-4/0/2") and "Garagentor ab-4/0/2"==EIN and "Garagentor Ausgang unten-4/0/6"==AUS ) \\
and Tor_fahrt==EIN \\
and Taster_verarbeitet==AUS then {
Tor_fahrt_AUF=AUS;
Tor_fahrt_AB=AUS;
Tor_fahrt=AUS
} endif
// clear Taster event
if event("Garagentor hoch-4/0/1") or event("Garagentor ab-4/0/2") then Taster_verarbeitet=AUS endif
// Check Tor fährt via Funk (auf/ab ==)
if ("Garagentor Ausgang fährt-4/0/7"==EIN) and Tor_fahrt==AUS then Tor_fahrt=EIN endif
if ("Garagentor Ausgang fährt-4/0/7"==AUS) and Tor_fahrt==EIN then Tor_fahrt=AUS endif
[/highlight]
Dieser Lösungsansatz verwendet eine Freigabevariable und ändert nichts an der restlichen Logik -> erhebt nicht den Anspruch die eleganteste Lösung zu sein.
Wenn die Reihenfolge der Ausführung nicht klar ist, kann das Rücksetzen problemlos auch mit einem after() um 1ms verzögert werden (in einer ms kann kein weiteres Telegramm eintreffen).
Wie soll sich denn die Steuerung per Funk integrieren?
Wenn die Reihenfolge der Ausführung nicht klar ist, kann das Rücksetzen problemlos auch mit einem after() um 1ms verzögert werden (in einer ms kann kein weiteres Telegramm eintreffen).
Wie soll sich denn die Steuerung per Funk integrieren?
Ps. Ist nicht compiliert oder getestet.
Ok Super! Werde das die Tage gleich mal testen und wieder berichten.
Per Funk: wenn Tor mit dem Funksender gesteuert wird kann nicht unterschieden werden ob auf oder ab Gefahren wird. Dann lass ich die LED auf wie ab Lila blinken. Ansonsten wenn per Taster betätigt, dann auf Grün blinken und ab rot blinken. Das ist alles.
Per Funk: wenn Tor mit dem Funksender gesteuert wird kann nicht unterschieden werden ob auf oder ab Gefahren wird.
Dann würde ich da noch zusätzlich die Richtungsangabe auf AUS setzen, nur für den Fall, dass jemand am Taster einschaltet und per Funk aus. Momentan würde bei der nächsten Betätigung per Funk die alte Richtung angezeigt.
[highlight=epc]
// Check Tor fährt via Funk (auf/ab ==)
if ("Garagentor Ausgang fährt-4/0/7"==EIN) and Tor_fahrt==AUS then {
Tor_fahrt_AUF=AUS;
Tor_fahrt_AB=AUS;
Tor_fahrt=EIN;
} endif
if ("Garagentor Ausgang fährt-4/0/7"==AUS) and Tor_fahrt==EIN then Tor_fahrt=AUS; endif
[/highlight]
Dann würde ich da noch zusätzlich die Richtungsangabe auf AUS setzen, nur für den Fall, dass jemand am Taster einschaltet und per Funk aus. Momentan würde bei der nächsten Betätigung per Funk die alte Richtung angezeigt.
[highlight=epc]
// Check Tor fährt via Funk (auf/ab ==)
if ("Garagentor Ausgang fährt-4/0/7"==EIN) and Tor_fahrt==AUS then {
Tor_fahrt_AUF=AUS;
Tor_fahrt_AB=AUS;
Tor_fahrt=EIN;
} endif
if ("Garagentor Ausgang fährt-4/0/7"==AUS) and Tor_fahrt==EIN then Tor_fahrt=AUS; endif
[/highlight]
Hallo Marc,
bin leider noch nicht dazu gekommen den Code zu implementieren. Mir ist aber noch folgendes aufgefallen. Könnte es nicht je nach Abarbeitung des Programms zu folgender Situation kommen:
Taster für AUF oder AB wird betätigt. Somit wird ("Garagentor Ausgang fährt-4/0/7") == EIN - Tor_fahrt ist noch AUS und damit ist die Bedingung für Betätigung via Funk wahr und somit wird Tor_fahrt auf EIN gesetzt und Tor_fahrt_AUF sowie Tor_fahrt_AB auf AUS. Bedeutet ich hätte nicht das Ergebnis was gewollt wäre.
So habe gestern abend den Code noch implementiert und ein wenig getestet. Sieht ganz gut aus. Habe verschiedene Kombinationen mit Taster und Funkfernbedienung durchgeführt und bin immer zum richtigen Ergebnis gekommen.
Die Situation die ich thread zuvor angesprochen habe konnte ich nicht feststellen.
Dafür funktioniert aber der "Halb-Status" nicht mehr?! Wenn das Tor in einer Zwischenstellung angehalten wird sollte die Taster-LED gelb leuchten. Das funktioniert nun nicht mehr?
[highlight=epc]
// Tor HALB - Status LED gelb
if !Tor_fahrt and !Tor_fahrt_AUF and !Tor_fahrt_AB and !("Garagentor Ausgang oben-4/0/5") and !("Garagentor Ausgang unten-4/0/6") then {
write ("Garagentor LED gelb-4/0/28",EIN);
Tor_flash=AUS;
webdisplay(32,$halb$c14,BLIND,STATE4,GREY);
} endif
[/highlight]
Dafür funktioniert aber der "Halb-Status" nicht mehr?! Wenn das Tor in einer Zwischenstellung angehalten wird sollte die Taster-LED gelb leuchten. Das funktioniert nun nicht mehr?
Für Taster und Funk?
Kannst du mal posten, wie das elektrisch umgesetzt ist + wann welche GA kommt? Dann ist es einfacher, den Fehler im Code/eibPC zu finden.
Kannst du mal posten, wie das elektrisch umgesetzt ist + wann welche GA kommt? Dann ist es einfacher, den Fehler im Code/eibPC zu finden.
Ja für Taster und Funk.
Ist ein Hörmann Tor mit UAP1 Platine welche folgende Stati auf drei Binäreingänge ausgibt:
Tor-fährt -> GA "Garagentor Ausgang fährt-4/0/7"
Tor-oben -> GA "Garagentor Ausgang oben-4/0/5"
Tor-unten -> GA "Garagentor Ausgang unten-4/0/6"
Hast Du das gemeint?
Ich habe daraus geschlossen wenn Tor nicht fährt und nicht oben und nicht unten ist, muss es sich in einer Zwischenstellung befinden. Daher auch die Logik für den "Halb-Status".
Wir verarbeiten personenbezogene Daten über die Nutzer unserer Website mithilfe von Cookies und anderen Technologien, um unsere Dienste bereitzustellen. Weitere Informationen findest Du in unserer Datenschutzerklärung.
Indem Du unten auf "ICH stimme zu" klickst, stimmst Du unserer Datenschutzerklärung und unseren persönlichen Datenverarbeitungs- und Cookie-Praktiken zu, wie darin beschrieben. Du erkennst außerdem an, dass dieses Forum möglicherweise außerhalb Deines Landes gehostet wird und bist damit einverstanden, dass Deine Daten in dem Land, in dem dieses Forum gehostet wird, gesammelt, gespeichert und verarbeitet werden.
Kommentar