Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 26

Thema: Programmierung einer Logik im HS

  1. #1
    Registriert seit
    Aug 2006
    Ort
    Ulm
    Beiträge
    13

    Frage Programmierung Logik (Komforbetrieb) im HS

    Hallo zusammen,

    ich bin seit ein paar Tagen stolzer Besitzer eines HS. Habe soweit auch die meisten Grundfuntionen im HS eingebaut. Nun möchte ich mich mal an die logik-Bstlung des HS wagen und habe einfach mal versucht vollgesdes in eine Logik zu packen.

    Aufgabe:
    Komfortbetrieb Abends nach Hause:
    Wenn Garagentor oder Haustüre Abends (LUX gesteuert) aufgemacht wird und ein bestimmter LUX-Wert unterschritten wird, dann sollen in verschiedenen Zeitabständen ein paar Lichter angehen und zeitgesteuert wieder ausgehen.

    Problem:
    => die Logik funktioniert soweit, dass die Lichter zeitgesteuert an und wieder aus gehen.
    => was nicht funktioniert, dass die Lichter trotz Abhängikeit eines Lichtwertes von 350 Lux erst angehen!

    => die Verknüpfung ob oder ob nicht Funktoin ausgeführt wird habe ich mit einem UND-Gatter realisiert, die LUX-Auswertung mit einem Vergleichsgatter (<= 350). Aber dennoch geht das Licht immer an und es interessiert nicht wie hell es ist. Was mache ich falsch?

    Da ich noch ein Neuling auf dem Gebiet HS bin, würde ich mich sehr freuen, wenn Ihr mir helfen würdet. Vielen Dank für die Hilfe im Voraus.

    Grüße

    eibandy
    Geändert von eibandy (18.08.06 um 14:00 Uhr)

  2. #2
    Registriert seit
    Feb 2001
    Ort
    Nordbayern
    Beiträge
    3.830
    Gib mal dem UND-Eingang, an dem der Vergleicher hängt, als Initwert eine O = Null. (Eingang doppelklicken, 0 eintragen)


    m..myhome
    Integriertes Multimediasystem ohne Grenzen


  3. #3
    Registriert seit
    Apr 2002
    Ort
    Radevormwald
    Beiträge
    2.363

    Ausrufezeichen

    Erste Standardantwort in diesen Fällen:

    Bitte Screenshot deiner Logik posten!

    Wie soll sonst jemand erkennen, wie und ob du richtig "verdrahtet" hast?
    Gruss aus Radevormwald
    Michel
    .
    Hier bin ich jetzt zu finden: knx-user-forum.de

  4. #4
    Registriert seit
    Aug 2006
    Ort
    Ulm
    Beiträge
    13

    Frage

    Hallo Matthias und Michel,

    vielen Dank für die schnelle Reaktion.
    Sorry dass ich von der Logik kein Screenshot gepostet habe. Ich habe jetzt beide Varianten, welche ich getestet habe versucht, jedesmal das selbe Probleme.
    Ich habe es nur mal für das Garagentor hier eingestellt, für die Haustüre und die Nebeneingangstüre ist die Logik identisch. Geht aber auch nicht.

    Grüße
    eibandy

  5. #5
    Gaston ist offline Registrierter Benutzer
    Registriert seit
    Jul 2001
    Ort
    Aspelt (Luxemburg)
    Alter
    56
    Beiträge
    973
    Verwende mal beim "Kleiner Gleich" baustein den Ausgang A1 nicht "(sbc)", oder Du musst beim Und-Gatter E2 auf "0" setzen (hleicher Wert wie der SBC Ausgang) ansosnsten muss man Warten bis der Vergleich einmal richtig ist bevor eine "0" gesendet werden kann.

    Generell würde ich raten sbc-Ausgänge nur am "Ende" der Verarbeitung zu benützen, es sei den es geht Funktional nicht anders. (Ende bedeutet, Ausgänge die mit einer Ausgangsbox verbunden sind).

    Und wenn Probleme in Logiken mit sbc auftreten, die Logik solange ohne "sbc" entwickeln bis sie funktioniert (soweit dies möglich ist).

    Gruss,
    Gaston

  6. #6
    Registriert seit
    Aug 2006
    Ort
    Ulm
    Beiträge
    13
    Hallo Gaston,

    Danke für Deine Info.
    Habe wie in geposteten Info das Teil im HS programmiert. Scheint erst mal so zu gehen. Macht zumindest bei weniger als 350Lux das Licht nicht an.

    Ist die Logik so richtig???

    so nun hab ich noch Fragen.

    1.) den Wert des UND-Gatters habe ich ja auf 0 manuell (gelb) gestellt. Wie ist denn der Unterschied zwischen dem Automatischen (grünen) Eintrag und dem Manuell gestellten?

    2.) Ich würde gerne das jetzt so programmiren, dass die Lampen nur Abends und nicht Morgens angehen. Wie muss ich den das abändern? (Z.B. wegen aufschließen der Haustüre Morgens)

  7. #7
    Registriert seit
    Feb 2001
    Ort
    Nordbayern
    Beiträge
    3.830
    Zitat Zitat von eibandy Beitrag anzeigen
    Fragen.

    1.) den Wert des UND-Gatters habe ich ja auf 0 manuell (gelb) gestellt. Wie ist denn der Unterschied zwischen dem Automatischen (grünen) Eintrag und dem Manuell gestellten?
    Grün heißt: Initwert standardmäßig, gelb zeigt an, dass der Initwert manuell verstellt wurde.

    Die Ursache für dein problem liegt darin, dass der EIB und auch der HS demnach EREIGNISGESTEUERT funktioniert.

    Dein UND wird beim HS-Start mit den Initwerten vorbelegt. Und die sind beide 1. Das ist in der Regel gut so, man kann nämlich an einem 4fach-UND nur drei Eingänge belegen und der 4. spielt dann keine Rolle, da immer 1.

    das Problem sind die Vergleicher oder auch der Schwellwert. Die werden nämlich beim HS-.Start NICHT berechnet, sondern erst, wenn die Bedingung eintrifft. Bis dahin tut sich am Eingang des UND nichts, der Initwert bleibt gültig.

    Dann (ab da) stimmt auch dein UND-Eingang, aber eben nach einem Neustart nicht. Deswegen setzt man in dem Fall den UND-Eingang initmäßig auf Null, um ungewolltes Schalten zu verhindern.

    Verstanden?


    m..myhome
    Integriertes Multimediasystem ohne Grenzen


  8. #8
    Registriert seit
    Aug 2006
    Ort
    Ulm
    Beiträge
    13
    Hallo Matthias,

    vielen Dank für Deine Antwort.

    O.K. das habe ich verstanden.
    Somit schaltet sich nach abänderung jetzt mein Licht bei Neustart des HS nicht mehr ein. Funktiontiert! Danke!

    Ist die so von mir programmierte Logik o.k. oder programmiert man die von mir geforderte Funktion anderst als EIB-Spezialist?

    Sollte die Logik so o.k. sein, dann ist doch der nächste Schritt dieser, dass man gewisse Eventualitäten noch abdeckt. Somit auch jene, dass wenn über Nacht die Haustüre geschlossen ist und am Morgen aufgeschlossen wird, nicht Morgens die Logik anspricht.
    Wie wird denn die Abfrage ob Tag/Nacht oder Morgens/Abends realisiert?

    Viele Grüße
    eibandy

  9. #9
    Registriert seit
    Feb 2001
    Ort
    Nordbayern
    Beiträge
    3.830
    Ist ok so. Tag/Nacht-Umschaltung z.B. mit einber nachgeschalteten Sperre.


    m..myhome
    Integriertes Multimediasystem ohne Grenzen


  10. #10
    Registriert seit
    Aug 2006
    Ort
    Ulm
    Beiträge
    13
    Hallo Matthias,

    Das würde bedeuten, dass zwischen dem Ausgang des UND-Gatters und der Ausgangsbox die Sperre (ID 10205) eingebaut werde muss oder. Aber wie bekomme ich mit ob es nun Tag oder Nacht ist. und die muss ich die Eingänge der Sperre belegen. der Ausgang der Sperre geht wohl auf die Ausgangsbox. Habe mal eine weitere Variante4 angehängt, würde das dem so entsprechen wie Du es meinst? Nur wo bekomme die Info für den EingangE1 her? Oder ist das Falsch bw. denke ich falsch?

    Noch eine kleine Frage am Rande. (hoffe dass ich nicht nerve, bin aber leider noch etwas neu auf dem Gebiet, aber jeder fängt ja mal klein an. Sorry!)
    Ich habe ja derzeit zwei Eingangsboxen. macht das Sinn oder nimmt man nur ein und legt ein weiters Kommunikationsobjekt darunter an? Was ist denn der Unterschied bei einer oder zwei Eingangsboxen?

    Grüße

    eibandy

  11. #11
    Gaston ist offline Registrierter Benutzer
    Registriert seit
    Jul 2001
    Ort
    Aspelt (Luxemburg)
    Alter
    56
    Beiträge
    973
    Zitat Zitat von Matthias Schmidt Beitrag anzeigen
    das Problem sind die Vergleicher oder auch der Schwellwert. Die werden nämlich beim HS-.Start NICHT berechnet, sondern erst, wenn die Bedingung eintrifft. Bis dahin tut sich am Eingang des UND nichts, der Initwert bleibt gültig.

    Dann (ab da) stimmt auch dein UND-Eingang, aber eben nach einem Neustart nicht. Deswegen setzt man in dem Fall den UND-Eingang initmäßig auf Null, um ungewolltes Schalten zu verhindern.

    Verstanden?
    Hmm, ich glaub da muss ich Widersprechen . Das Problem war, wie schon gesagt, der sbc. Der verwendete Vergleicher, Baustein ID 9023 wird bei Init ausgeführt und ein Wert auf Ausgang 1 geschrieben. Der SBC Ausgang wird beim Starten jedoch nicht gesetzt. Dies ist ein Bug da es gegen das Prinzip des "Versprechen halten" der Informatik spricht.

    Diese Prinzip besagt dass die Dokumenation einer Funktion (hier ein Baustein) alles halten muss was sie verspricht (sprich dokumentiert), und nichts versprechen soll was sie nicht hälte oder später vieleicht einmal nicht halten kann.

    Das gleiche Prinzip bedeutet implizit dass der Benuter der Funktion nicht mehr informationen als die Dokumentation haben muss um die Fuinktion richtig einzusetzen.
    Im Fall hier wird weder SBC eingehalten noch kann man ohne insight in die Quellen des Moduls verstehen warum es so ist.

    Gruss,
    Gaston

  12. #12
    Registriert seit
    Feb 2001
    Ort
    Nordbayern
    Beiträge
    3.830
    Ich bin sicher, dass das sbc nicht das Problem ist.

    dacom hat da auch vor einiger Zeit was geschrieben. Der verhleicher sendet eben nicht bei Init.


    m..myhome
    Integriertes Multimediasystem ohne Grenzen


  13. #13
    Registriert seit
    Feb 2001
    Ort
    Nordbayern
    Beiträge
    3.830


    m..myhome
    Integriertes Multimediasystem ohne Grenzen


  14. #14
    Gaston ist offline Registrierter Benutzer
    Registriert seit
    Jul 2001
    Ort
    Aspelt (Luxemburg)
    Alter
    56
    Beiträge
    973
    Zitat Zitat von Matthias Schmidt Beitrag anzeigen
    Ich bin sicher, dass das sbc nicht das Problem ist.

    dacom hat da auch vor einiger Zeit was geschrieben. Der verhleicher sendet eben nicht bei Init.
    Der Vergleicher sendet bei Init nicht auf dem SBC.

    Hier ist die Logik auf logik.dat:

    ### BS : Vergleicher (<=) = 9023
    5001|9023|2|4|0|0|1 <----- Initflag ist auf 1
    5002|9023|1|0
    5002|9023|2|0
    5004|9023|1|0|1|1
    5004|9023|2|0|1|1
    5004|9023|3|0|1|2
    5004|9023|4|0|1|2
    5012|9023|0|""|"round(EN[1]*1000000) <= round(EN[2]*1000000)"|""|1|0|0|2 <--- "Normaler" Ausgang wird auch bei Init gestzt
    5012|9023|0|"(EI==0)"|"round(EN[1]*1000000) <= round(EN[2]*1000000)"|""|3|0|0|4 <--- SBC wird bei Init nicht gesetzt

  15. #15
    Registriert seit
    Aug 2006
    Ort
    Ulm
    Beiträge
    13
    Hallo Matthias, Hallo Gaston,

    ich hoffe Ihr habt keinen Stress miteinander wegen meiner Kleinigkeit?! Ich wollte einfach nur ein kleine Logik zusammen bauen und dabie etwas Unterstützung von Euch.

    Ist es denn Möglich, dass ich von Euch noch zu meinen Fragen ein paar Antworten bekomme ?

    Wäre echt super von Euch, Danke.


    Grüße
    eibandy

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •