Ankündigung

Einklappen
Keine Ankündigung bisher.

Logik Programmieren für RTR

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

    HS/FS Logik Programmieren für RTR

    Hallo,

    ich bastle jetzt schon länger an meiner Logik für meine RTR. Mit Hilfe des Forums bin ich auch schon ganz schön weit. Danke.

    Ich kann in der Visu schalten wie ich will, es klappt soweit. Jetzt möchte ich eine Rückkopllung einbauen wenn am Regler geschalten wird, und das entprechend der Logik anpassen.

    Wenn am Regler Komfort (1) geschalten wird, soll der Regler auch auf Komfort gegen. (Immer)
    Wenn am Regler Standby (2) geschalten wird, soll der Regler in Standby gehen, sofern die Nacht nicht aktiv ist, sollte der Eingang (3) soll der Regler in Nacht geschalten werden. Der Eingang Reglerstatus wird über das Objekt "Status Betriebswahl" angesteuert. Eine kurze Verzögerung bis die Logik durchgelaufen ist, ist O.K.

    Das Problem zur Zeit; Der Regler wurde über die Visu geschalten, das geht, und steht z.B. auf Komfort. Wenn ich den Regler am Gerät zurück in Standby schalten will, geht der Regler Kurz in Standby und dann wieder in Komfort.
    Ist die Zeit bis die Stusmeldung kommt zu lang???


    Anbei die bisherige Programmierung:
    Blau ist soweit o.k. und getestet,
    bei Rot habe ich meine Probleme.

    Danke


    # Eingänge EN[x]
    5002|1|0|0 # Standby
    5002|2|0|0 # Komfort
    5002|3|0|0 # Nacht
    5002|4|0|0 # Frost
    5002|5|0|0 # Reglerstatus

    # Ausgänge
    5004|1|2|0|1|0 # Reglerbetriebsmodus



    #Regleränderung auf Ausgang
    5012|1|"(EN[5] = 1)"|"1"|""|1|0|0|0
    5012|1|"(EN[5] = 2)"|"2"|""|1|0|0|0

    5012|1|"(EN[5] = 2) and EN[3] "|"3"|""|1|0|0|0

    # Automatik
    # 5012|0|"(not EN[1]) and (not EN[2]) and (not EN[3]) and (not EN[4])"|"0"|""|1|0|0|0

    # Standby
    5012|0|"EN[1] and (not EN[2]) and (not EN[3]) and (not EN[4])"|"2"|""|1|0|0|0

    # Komfort
    5012|0|"EN[2] and (not EN[3]) and (not EN[1]) and (not EN[4])"|"1"|""|1|0|0|0
    5012|0|"EN[2] and EN[3] and (not EN[1]) and (not EN[4])"|"1"|""|1|0|0|0

    # Nacht
    5012|0|"(not EN[2]) and EN[1] and EN[3] and (not EN[4])"|"3"|""|1|0|0|0

    # Frost
    # 5012|0|"EN[4]"|"4"|""|1|0|0|0

    #2
    #Regleränderung auf Ausgang
    5012|1|"(EN[5] == 1)"|"1"|""|1|0|0|0
    5012|1|"(EN[5] == 2)"|"2"|""|1|0|0|0
    5012|1|"(EN[5] == 2) and EN[3] "|"3"|""|1|0|0|0

    Kommentar


      #3
      Anbei die aktuelle Programmierung:
      Der Regler lässt sich über die Visu schalten wie gewünscht. Nur wenn man am Regler schalten will gibts es Probleme:

      Standby aktiv (von Visu geschalten): Regler geht kurz in Komfort und zurück.
      Komfort aktiv (von Visu geschalten): Regler geht kurz in Standby und zurück.

      Wenn Nacht aktiv:

      Standby aktiv (von Visu geschalten): Regler geht kurz in Komfort und zurück.
      Komfort aktiv (von Visu geschalten): Regler geht kurz in Nacht und zurück.

      # Eingänge EN[x]
      5002|1|0|0 # Standby
      5002|2|0|0 # Komfort
      5002|3|0|0 # Nacht
      5002|4|0|0 # Frost
      5002|5|0|0 # Reglerstatus
      # Ausgänge
      5004|1|2|0|1|0 # Reglerbetriebsmodus
      # Automatik
      # 5012|0|"(not EN[1]) and (not EN[2]) and (not EN[3]) and (not EN[4])"|"0"|""|1|0|0|0
      # Komfort
      5012|0|"EN[2] and (not EN[3]) and (not EN[1]) and (not EN[4])"|"1"|""|1|0|0|0
      5012|0|"EN[2] and EN[3] and (not EN[1]) and (not EN[4])"|"1"|""|1|0|0|0
      5012|0|"(ES[5] == 1)"|"1"|""|1|0|0|0
      # Nacht
      5012|0|"(not EN[2]) and EN[1] and EN[3] and (not EN[4])"|"3"|""|1|0|0|0
      5012|0|"(ES[5] == 2) and EN[3] "|"3"|""|1|0|0|0
      # Standby
      5012|0|"EN[1] and (not EN[2]) and (not EN[3]) and (not EN[4])"|"2"|""|1|0|0|0
      5012|0|"(ES[5] == 2)"|"2"|""|1|0|0|0
      # Frost
      # 5012|0|"EN[4]"|"4"|""|1|0|0|0

      Kommentar


        #4
        würde sagen, das hier stimmt nicht:
        5012|0|"EN[2] and EN[3] and (not EN[1]) and (not EN[4])"|"1"|""|1|0|0|0

        heisst doch:
        komfort & Nacht und nicht Standby und nicht Frost
        das geht so glaub ich nicht
        never fummel a running system...

        Kommentar


          #5
          die Zeilen ohne Eingang 5 funktionieren eigentlich, sobald der Eingang 5 ins spiel kommt, gehts nicht.

          Kommentar


            #6
            den Befehl ES[X] kenn ich nicht...
            was soll der tun?
            Was sagt debug?
            never fummel a running system...

            Kommentar


              #7
              28.10.2009 19:44:38 (163)
              File "/hs/compile/hs_logik.py", line 165, in calc
              File "case", line 0, in ?
              NameError: name 'ES' is not defined
              [5012L, 11818L, 1L, '(ES[5] == 1)', '1', '', 1L, 0L, 0L, 0L]28.10.2009 19:44:38 (163)
              File "/hs/compile/hs_logik.py", line 165, in calc
              File "case", line 0, in ?
              NameError: name 'ES' is not defined
              [5012L, 11818L, 1L, '(ES[5] == 2) and EN[3] ', '3', '', 1L, 0L, 0L, 0L]28.10.2009 19:44:38 (163)
              File "/hs/compile/hs_logik.py", line 165, in calc
              File "case", line 0, in ?
              NameError: name 'ES' is not defined
              [5012L, 11818L, 1L, '(ES[5] == 2)', '2', '', 1L, 0L, 0L, 0L]

              Kommentar


                #8
                das ists...
                name 'ES' is not defined
                Du hast den Eingang 5 nicht mit EN oder EC belegt, sondern mit dem mir und dem HS unbekannten Kürzel ES...
                Änder das mal bitte...

                5012|0|"(ES[5] == 1)"|"1"|""|1|0|0|0
                # Nacht
                5012|0|"(not EN[2]) and EN[1] and EN[3] and (not EN[4])"|"3"|""|1|0|0|0
                5012|0|"(ES[5] == 2) and EN[3] "|"3"|""|1|0|0|0
                # Standby
                5012|0|"EN[1] and (not EN[2]) and (not EN[3]) and (not EN[4])"|"2"|""|1|0|0|0
                5012|0|"(ES[5] == 2)"|"2"|""|1|0|0|0
                never fummel a running system...

                Kommentar


                  #9
                  Hallo

                  versuche es mittlerweile anders. Ich versuche den Aktuellen Betriebsstaus (1Byte) wieder in 4 einzelne Bits zu zerlegen und der Logik wieder zuzuführen. Aber der Baustein arbeitet nicht richtig. Ich sehe nur im Monitor Anzahl/Total die raufzählen, die Ausgänge ändern sich aber nicht. Was ist falsch??

                  5001|1|4|0|0|0
                  # Eingänge
                  5002|1|0|0 # Reglerstatus
                  # Ausgänge
                  5004|1|0|0|1|0 # Standby
                  5004|2|0|0|1|0 # Komfort
                  5004|3|0|0|1|0 # Nacht
                  5004|4|0|0|1|0 # Frost
                  #Regerstatus
                  5012|1|"(EC[1] == 1)"|"2"|""|1|0|0|0
                  5012|1|"(EC[1] == 2)"|"1"|""|1|0|0|0
                  5012|1|"(EC[1] == 3)"|"3"|""|1|0|0|0

                  Kommentar


                    #10
                    EC fragt ob sich der Eingang ändert, also EC kann keinen Wert annehmen. Um mit einem Wert zu Rechnen musses EN heissen.

                    Kommentar


                      #11
                      Habe EC in EN geändert aber keine Änderung.
                      Wenn ich an den Baustein einen wert anlege egal ob 1 oder 2 geht der Ausgang 1 Standby auf 1 und Ändert sich dann nicht mehr. Einzig die Anzahl der Betätigungen wird im HS-Monitor hochgezählt.

                      Habe mal versucht das Datenformat anders einzugeben also anstatt 2 habe ich auch == 2.0 oder 02 versucht. Keine Änderung.

                      Kommentar

                      Lädt...
                      X