Ankündigung

Einklappen
Keine Ankündigung bisher.

X1, Auslesen und Wiederverwenden von Werten aus Status Rückmeldungen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    X1, Auslesen und Wiederverwenden von Werten aus Status Rückmeldungen

    Versuche eine Logik zu bauen, die mich daran erinnern soll
    das Badezimmerfenster wieder zu schließen nachdem es für einen
    vorgegebenen Zeitraum zum Lüften offen stand.

    Vom grundsatz her soll ein Timer beginnen zu laufen, sobald das Fenster geöffnet wird.
    (Später soll mittels Taster noch die Möglichkeit bestehen, diese Funktion
    manuell zu unterbrechen, falls das Fenster mal tatsächlich länger offen stehen soll.)
    Soweit so gut.
    Als Signal stelle ich mir jedoch vor, dass nach 20m dann das Licht im Wohnzimmer
    in Intervallen kurz ein bzw. aus geschaltet wird. Mehrmals für eine Dauer von 30s.
    Nach den 30s soll dann aber wieder der Ausgangszustand des Lichtes geschaltet werden.
    Also je nachdem ob es vor Beginn des Intervalls ein oder ausgeschaltet war.

    Mein hauptsächliches Problem:
    Es hapert aktuell daran, dass ich den aktuellen Status vom Licht nicht vor Beginn des Intervalls
    ausgelesen bekomme und anschließend wieder gesendet.

    Kann mir da jemand mit nem Lösungsansatz auf die Sprünge helfen?




    #2
    Interessante Aufgabe.

    Den Zustand zyklisch invertieren könntest du mit einem XOR-Gatter, das gibt's im X1 als Logikblock. Also Aktor ansteuern mit Licht-GA XOR Blink-GA.


    Ich habe mal grob ein paar Blöcke zusammengeschoben, ist sicherlich noch nicht ganz komplett.

    xor.PNG
    Zuletzt geändert von Gast1961; 29.10.2018, 19:15.

    Kommentar


      #3
      Danke für die schnelle Antwort.
      Muss das gleich mal testen.
      Verstehe ich das denn richtig, dass ich dann eine zusätzliche "XOR-Blink-GA" anlegen muss?
      Habe vorher immer versucht mit dem Oszillator direkt auf die Licht-schalten-GA zu senden und dann hinterher nur wieder
      den ursprünglichen Rückmelde-Wert zu senden. (wie gesagt bisher ohne Erfolg)

      You do not have permission to view this gallery.
      This gallery has 1 photos.

      Kommentar


        #4
        Ja, in meinen Fall gibt es unterschiedliche GA: die "normale" GA für die Lichtsteuerung geht zum XOR-Eigang, das Ausgangssignal des XOR auf einer anderen GA zum Aktor.



        Kommentar


          #5
          Ich hätte da auch was:
          Speicher.JPG
          Zum Speichern nimmst Du eine Gerätegruppenadresse des X1, sowohl lesend als auch schreibend (externe GA)
          Angehängte Dateien

          Kommentar


            #6
            Hallo Jens,
            deinen Ansatz fand ich gut, also den letzten Status über eine zusätzliche GA quasi "zwischenspeichern".
            So habe ich es zumindest verstanden ;-)
            Habe das mal nachgebaut. Allerdings gab es bei deiner Variante dann immer das Problem,
            dass ich damit offenbar eine Endlosschleife beim Schalten des Lichtes erzeugt habe.
            Daher habe ich zusätzlich die Sperre unten vor dem letzten Block eingebaut.
            Die Schleife war danach kein Thema mehr, aber bekomme nach unzähligen Veruchen immernoch nicht hin,
            dass der ursprungswert am Ende wieder eingestellt wird.
            Vermutlich habe ich irgendeine (oder mehrere) Einstellungen in den Funktionsbausteinen falsch?
            Eine Idee wo der Fehler liegen könnte?
            You do not have permission to view this gallery.
            This gallery has 1 photos.

            Kommentar


              #7
              Ich denke mal am ehesten wird in den Bausteinen E/A, Oszi und Sperre irgendwo drinstehen, daß er noch was machen soll, wenn er inaktiv/entsperrt wird...
              Licht Alarm offenes Fenster und RM Licht Alarm offenes Fenster müssen aber die gleiche GA sein. Ist das so?

              Kommentar


                #8
                Leider komme ich bislang nicht weiter.
                Habe den habe es inzwischen mit unterschiedlichen Varianten getestet, jedoch ohne Erfolg.
                Wenn ich mir die simulation im GPA ansehe scheint beim Triggern der "VD Licht Bad-Lüftung" nichts am ausgang gesendet zu werden.
                Auch bei "Rückmeldung Schalten Licht" muss ich zu Beginn der Simulation am Ausgang zunächst eine 1 / 0 einstellen, da auch hier sonst
                nichts zum Ausgang getriggert wird.
                Letzer Stand war nun die Verwendung eines Variablen-Datenpunkt vom X1 als Datenpunkt-Typ Binärwert (hier VD Licht Bad-Lüftung).
                Oder muss ich eine externe Binärvariable verwenden die ich als Gruppenadress-Datenpunkt wieder einlese?
                Anbei mal ein Bild aus der Simulation zum Zeitpunkt wo eigentlich der ursprüngliche Wert wieder an "Schalten Licht" gesendet werden sollte.
                You do not have permission to view this gallery.
                This gallery has 1 photos.

                Kommentar


                  #9
                  Zitat von Dirkos Beitrag anzeigen
                  Hallo Jens,
                  deinen Ansatz fand ich gut, also den letzten Status über eine zusätzliche GA quasi "zwischenspeichern".
                  So habe ich es zumindest verstanden ;-)
                  Habe das mal nachgebaut. Allerdings gab es bei deiner Variante dann immer das Problem,
                  dass ich damit offenbar eine Endlosschleife beim Schalten des Lichtes erzeugt habe.

                  Dann setzte doch den Status der GA "Speicher Fenster" beim schliessen des Fenster auf den Ursprungswert zurück.

                  Weiterhin kannst du über eine Sperre den Ausgang vom Fenster sperren wenn der Taster gedrückt ist.

                  Kommentar


                    #10
                    Ehm, die Lösung kann ich jetzt nicht nachvollziehen? Und das hauptsächliche Problem ist ja genau, dass ich den ursprünglichen Status/Schaltzustand vom Licht nicht wieder hergestellt bekomme.
                    Abgesehen davon soll das unabhängig davon sein ob das Fenster nun tatsächlich geschlossen wurde.

                    Kommentar


                      #11
                      Du mußt schon eine GA in der ETS anlegen und mit der ETS am X1 verknüpfen.
                      Diese GA ist die Speicher-GA

                      Kommentar


                        #12
                        Ok, das hatte ich zuvor versucht. Aber vielleicht liegt da ja auch der Fehler beim Anlegen und Verknüpfen in der ETS.
                        Daher anliegend mal die Screenshots aus der ETS.
                        (Aber dennoch würde mich grundsätzlich interessieren, ob bei der Simulation im GPA bei Triggern des Eingangsbausteins keine
                        Werte ausgeworfen werden? Also wie in meinem Fall der Rückmeldewert des aktuellen Status vom Licht.)
                        Aber nun zur externen GA:
                        Ich nutze die Binärvariable 6 vom X1 und verknüpfe diese mit den beiden GA in der ETS.
                        Ist hier vielleicht schon was bei den Eigenschaften in der ETS falsch?
                        Dann lege ich die zugehörigen GA auf die Funktionsbausteine in der Logik.

                        Ergebnis ist dann eine Schleife gemäß Bus-Monitor...

                        Die dann aber aufhört, wenn ich durch öffnen des Fensters die Logik einmal angestoßen habe.

                        Dennoch geht am Ende immer das Licht aus, auch wenn es zuvor eingeschaltet war.

                        ???
                        You do not have permission to view this gallery.
                        This gallery has 8 photos.

                        Kommentar


                          #13
                          Du hast jetzt 2 verschiedene GA an den X1 angelegt, ich habe aber nur eine gemeint (die Speicher-GA)
                          Vergleiche nochmal Deine Schaltung mit meiner...

                          Kommentar


                            #14
                            Stimmt, weil ich ehrlich gesagt nicht sicher war welches der beiden KO wohl mit der GA zu verknüpfen ist?
                            Wenn ich dich richtig verstehe verwende ich dann nur ein GA (wie in meinem Fall die 7/0/11) und verbinde die mit einem der KO vom X1.
                            Welches nutze ich dann? Wert schreiben oder Wert lesen? Und muss ich dann dabei noch etwas an den Flags ändern?
                            You do not have permission to view this gallery.
                            This gallery has 1 photos.

                            Kommentar


                              #15
                              Ein "Trigger" triggert nicht nur bei einer 1 auf dem Eingang im GPA sondern auch wenn die Adresse am Bus angesprochen wird. Dh wenn die Rückmeldung auf 7/0/11 gesendet wird weil der Aktor geschalten hat sendest du das gleich nochmal an den Aktor. Das könnte Probleme bereiten. Das hat mir auch schon mal Kopfzerbrechen bereitet.

                              Du verwendest oben einen Telegrammverzögerer nach dem Fensterkontakt um nach 20 Minuten zu schalten - das würde ich durch eine Ein-Ausschaltverzögerung ersetzen wo nur Ein verzögert wird. Beim Telegrammverzögerer wird auch die 0 Verzögert aber die soll den Timer ja abbrechen weil das Fenster ja schon geschlossen ist.

                              Schalte mit deinem Oszilator einen Wertegenerator. Als Eingang für den Wert kannst du die LichtstatusGA verwenden und gleich invertieren (rechtsklick auf den kleinen schwarzen Punkt vom Ausgang des Eingangsbausteins). Wenn der Oszilator den Wertegenerator eine Gerade Anzahl mal anstößt sollte das Licht wieder die ursprüngliche Schaltstellung haben.

                              Kommentar

                              Lädt...
                              X