Langsame Ablaufsteuerung

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

    Langsame Ablaufsteuerung

    Hat jemand von euch die Ablaufsteuerung hinter einem Taster und schaltet damit z.B. ein Licht?

    Bei mir läuft das trotz dem Zeitintervall von 20ms leider unbrauchbar langsam.
  • romildo
    Lebende Foren Legende
    • 25.08.2015
    • 5140

    #2
    Was ist eine Ablaufsteuerung, den Baustein kenne ich noch nicht?

    Nachtrag.
    Habe sie gefunden, gibt es aber nur als Beta Version.
    Da Beta, kann es schon sein, dass diese nicht so funktioniert wie gewünscht.
    Für Betas, gibt es bei Loxone die Möglichkeit ein Feedback zu geben.

    Und noch ein Nachtrag:
    Bei 20ms / Zeile wären dies pro Sekunde:
    1000ms / 20ms / 1Zeile = 50Zeilen
    Bei mir schaft er, bei einem Programm mit 4 Zeilen, 12-13 Loops/Sekunde, also 48-52 Zeilen.

    Somit kann ich da keinen Fehler erkennen.
    Zuletzt geändert von romildo; 01.11.2021, 12:40.
    lg Romildo

    Kommentar

    • Gast

      #3
      Vielen Dank für den Test, wie hast du denn die Zeit gemessen, muss ich auch mal so testen.

      Der Baustein ist im Update vom 27. Oktober dabei.

      https://www.loxone.com/dede/blog/lox...nfig-app-12-2/

      Noch der Link zum Baustein:


      Nachtrag:

      Ich habe jetzt mal folgende 2 Abläufe während 5 Sekunden laufen lassen. (Impuls an S1 und um 5 Sekunden verzögerter Impuls an R)

      P1
      if AI1 = 0
      setpulse AQ1
      endif
      goto 1
      end

      P2
      setpulse AQ1
      setpulse AQ2
      setpulse AQ3
      goto 1
      end

      An AQ1 habe ich je einen Zähler:
      Zähler P1 nach 5 Sekunden: 38 (7.6 * 4 = 30.4 Zeilen pro Sekunde)
      Zähler P2 nach 5 Sekunden: 22 (4.4 * 4 = 17.6 Zeilen pro Sekunde)

      (gemessen im Testmodus)
      Zuletzt geändert von Gast; 01.11.2021, 13:38.

      Kommentar

      • romildo
        Lebende Foren Legende
        • 25.08.2015
        • 5140

        #4
        Das Update habe ich noch nicht gemacht, da bin ich wohl etwas im Hintertreffen
        Hier ein Beispiel für den Loop
        Code:
        set AQ1 = 1
        set AQ1 = 0
        goto 1
        end
        Hier sind 3 Zeilen im Loop.
        Damit sollte mit der Eigenschaft Intervall = 20ms ca. 16-17 Loops / Sekunde angezeigt werden.
        Klicke auf die Grafik für eine vergrößerte Ansicht

Name: Ablaufsteuerung.png
Ansichten: 1102
Größe: 87,0 KB
ID: 323331
        lg Romildo

        Kommentar

        • Gast

          #5
          Hab meine Code nach deinem Beispiel umgebaut:

          if AI1 = 0
          set AQ1 = 1
          set AQ1 = 0
          endif
          goto 1
          end

          Zähler P1 nach 5 Sekunden: 49 (9.8 * 5 = 49 Zeilen pro Sekunde)
          vorher
          Zähler P1 nach 5 Sekunden: 38 (7.6 * 4 = 30.4 Zeilen pro Sekunde)

          Erstes Fazit:
          setpulse ist langsam

          Kommentar

          • romildo
            Lebende Foren Legende
            • 25.08.2015
            • 5140

            #6
            Deine Rechnung stimmt so nicht.
            Du machst ja nicht 50 Zeilen in 5 Sekunden, sondern 50 Loops à 5 Zeilen. Dies sind 250 Zeilen / 5 Sekunden, dementsprechend 50 Zeilen / Sekunde.

            Edit: Stimmt doch, mein Fehler
            Zuletzt geändert von romildo; 01.11.2021, 14:35.
            lg Romildo

            Kommentar

            • Gast

              #7
              Hab ich ja auch als Resultat:
              49 Loops in 5 Sekunden = 9.8 Loops/Sekunde => 9.8 * 5 Zeilen = 49 Zeilen pro Sekunde
              Die Logik mit setpulse:
              38 Loops in 5 Sekunden = 7.6 Loops/Sekunde => 7.6 * 4 Zeilen = 30.4 Zeilen pro Sekunde

              Stimmt doch mit deiner Aussagen überein, oder?

              Kommentar


              • romildo
                romildo kommentierte
                Kommentar bearbeiten
                Ja stimmt überein, die Aussage setup ist langsam, hat mich etwas verwirrt.
                Das sind ja ziemlich genau 20ms / Zeile

              • Gast
                Gast kommentierte
                Kommentar bearbeiten
                mit setpulse fällt sie auf 30.4 Zeilen pro Sekunden

              • romildo
                romildo kommentierte
                Kommentar bearbeiten
                Ja, so kann man sich täuschen, habe da immer setup an Stelle setpulse gelesen und es daher nicht kapiert.
                Nun ist es endlich auch in meinem Hirn angekommen
            • Gast

              #8
              Danke romildo für deinen Input.
              Meine Erkenntnisse: Solange man nicht setpulse benützt (zumindest mit if-Anweisungen und set-Anweisungen) kommt man auf die 50 Zeilen pro Sekunde.

              Zwischen einem Taster und einem Lichtbaustein fühlt sich die Ablaufsteuerung trotzdem zu langsam an, auch wenn man nur eine if-Anweisung vor der set Anweisung hat:

              if AI1 = 0
              set AQ1 = 1
              set AQ1 = 0
              endif
              end

              Der Lichtbaustein scheint den Impuls auf '+' erst abzuarbeiten wenn die Sequenz zu Ende ist. Mit einem zusätzlichen sleep war dies gefühlt ein bisschen besser (Zumindest in der Simulation).

              if AI1 = 0
              set AQ1 = 1
              set AQ1 = 0
              sleep 1
              endif
              end

              Benutze die Ablaufsteuerung vorerst nicht mehr wenn ein direkter Effekt zu sehen sein soll.


              Angehängte Dateien

              Kommentar

              • Gast

                #9
                Ein netter Herr beim Loxone Support schlug mir vor per waitcondition zu warten und zu loopen statt mit dem Schalter die Sequenz zu starten.

                Hier ein erweitertes Beispiel mit 2 Schaltern

                sleep 0.5s // ignoriere lange impulse
                waitcondition AI1 + AI2 != 0
                if AI1 = 1 // schalter 1
                set AQ1 = 1
                set AQ1 = 0
                goto 1
                endif
                if AI2 = 1 // schalter 2
                set AQ2 = 1
                set AQ2 = 0
                goto 1
                endif
                goto 1
                end



                Kommentar

                Lädt...