Ankündigung

Einklappen
Keine Ankündigung bisher.

Performance Beeinflussung durch Logikbausteine

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

    Performance Beeinflussung durch Logikbausteine

    Hallo,

    bin ja immer noch auf der Suche nach den Gründen für meine Verzögerungen, siehe Thema https://knx-user-forum.de/showthread.php?t=1852 .
    Da ich in umfangreicher Art und Weise Betriebsstunden erfasse, verwende ich sehr häufig den Baustein DatumUhrzeit->14ByteText von der Seite www.eib4fun.de.
    Mir scheint fasst, als ob derjenige wäre, welcher ....



    Kann man herausfinden, wie lange die Berechnung eines Bausteins dauert?
    Ist es günstiger, für jeden Verbraucher, dessen Betriebsstunden ich erfasse, eine eigenes Blatt anzulegen? Hatte bis jetzt pro Raum und dann zum Teil bis zu 10 der Bausteine.

    Danke für die Hilfe.

    PepsiMox

    #2
    In welchem Zyklus (E2) des Betriebsstundenzählers fragst du denn ab?
    Gruß Jörg.


    "Wir sind nicht die ersten, die dieses Feature einbauen, aber wir werden es am besten umsetzen."
    (Steve Jobs)

    Kommentar


      #3
      Wollte es genau wissen und habe daher den Sekundentakt vorgegeben.

      Ist es nun besser pro Zähler ein Blatt oder kann ich mehere in einem zusammenfassen?

      PepsiMox

      Kommentar


        #4
        Die Verwendung von Ordnern und Blättern im Experten ist für die Performance des HS nicht von Bedeutung. Sie dient ausschliesslich der besseren Übersicht
        Gruss aus Radevormwald
        Michel

        Kommentar


          #5
          ...mal abgesehen von der Anzahl der Arbeitsblätter.

          Wirkt sich die Anzahl vorhandener Logikbausteine auf die Performance des HS aus???

          Ich lege der Einfachheit und Übersichtlichkeit halber mehrere Logiken an, obwohl es vielleicht sparsamer, mit weniger Logikbausteinen ebenso realisierbar wäre. Ist das ratsam?

          Kommentar


            #6
            Zitat von Michel Beitrag anzeigen
            Die Verwendung von Ordnern und Blättern im Experten ist für die Performance des HS nicht von Bedeutung. Sie dient ausschliesslich der besseren Übersicht
            Verwunderung.

            Ist es nicht so, dass, ändert sich der Wert einer GA in einem Blatt alle Bausteine in dem Blatt neu berechnet werden?
            Sollte es da nicht einen Unterschied machen, ob nur drei oder zum Beispiel 40 Baustein in einem Blatt berechnet werden müssen?

            PepsiMox

            Kommentar


              #7
              Nein. Ändert sich eine GA, werden alle Bausteine mit dieser GA an einem Eingang neu berechnet, egal wo sie sich im Experten befinden.
              Gruss aus Radevormwald
              Michel

              Kommentar


                #8
                Zitat von Michel Beitrag anzeigen
                Nein. Ändert sich eine GA, werden alle Bausteine mit dieser GA an einem Eingang neu berechnet, egal wo sie sich im Experten befinden.

                und der Rest der Bausteine entsprechender Blätter wird nur dann neu berechnet, wenn sich auch an deren Eingang etwas ändert?

                PepsiMox

                Kommentar


                  #9
                  Alle Logibausteine werden beim Übertragen zusammengefasst und an den HS übermittelt.

                  Der HS geht in JEDEM Zyklus ALLE Bausteine durch und berechnet sie neu.

                  Edit:
                  Deswegen wird in komplexen Bausteinen - damit nicht alle Zeilen unnötigerweise durchgegangen werden - beispielsweise am Anfang das eingefügt:


                  #################################################
                  5012|1|"not EC[1]"|"0"|""|0|0|0|0


                  Das bedeutet, dass die Abarbeitung des betreffenden Bausteines abgebrochen wird, wenn sich Eingang 1 nicht geandert hat. Der HS geht dann weiter zum nachsten Baustein.
                  Gruß Matthias
                  EIB übersetzt meine Frau mit "Ehepaar Ist Beschäftigt"
                  - PN nur für PERSÖNLICHES!

                  Kommentar


                    #10
                    Hallo Matthias,

                    das beobachte ich anders. Es müsste nach Deiner Darstellung möglich sein, in einem Baustein eine interne Variable mit jedem Berechnungszyklus hochzuzählen, also auch dann, wenn sich an keinem der Eingänge des Bausteins etwas getan hat. (Das Ergebnis, also die Frequenz, hätte mich wirklich interessiert ).

                    Ich habe zum Test einen Baustein geschrieben (angehängt), Funktion:
                    • Zähle bei jedem Aufruf / Durchlauf einen internen Zähler hoch.
                    • Zähle, wie oft der Triggereingang angepingt wird
                    • Wenn der Triggereingang eine 1 erhält, gib beide Zähler aus
                    • Ausserdem habe ich noch eine Sperre eingebaut, um den Wahnsinn ggf. zu stoppen
                    Das Ergebnis ist langweilig und läßt den Schluß zu, dass der Baustein tatsächlich nur berechnet wird, wenn sich an einem Eingang (oder EI oder OC) etwas getan hat.

                    Habe ich hier einen Denkfehler?
                    Angehängte Dateien
                    Gruß, Rainer

                    Kommentar


                      #11
                      Also:
                      meine Aussage und die von Matthias widersprechen sich nicht.
                      Nachwievor gilt der erste Logiksatz:

                      Die HS/FS-Logik ist eventgesteuert!
                      -> eine geänderte Gruppenadresse löst, mangels Verwendung als Eingang, keine Neuberechnung des Bausteins aus.

                      Ändert sich jedoch der Wert eines Eingangs, wird der Baustein neu berechnet, es sei denn, Matthias Bedingung,sofern vorhanden, greift.
                      Gruss aus Radevormwald
                      Michel

                      Kommentar


                        #12
                        HS-Logiksätze

                        Hi Michel,

                        eben gemäß Deinem ersten -Logiksatz habe ich es (eventgesteuert) immer verstanden und war deshalb durch das unkonditionale
                        Zitat von MatthiasS Beitrag anzeigen
                        ... Der HS geht in JEDEM Zyklus ALLE Bausteine durch und berechnet sie neu.
                        irritiert. Ok, abgehakt.
                        Gruß, Rainer

                        Kommentar


                          #13
                          Die HS/FS-Logik ist eventgesteuert!
                          Dieser Satz wird immer wieder gerne in diesem Zusammenhang zitiert. Er ist zwar richtig, aber genau so wie man ein Quadrat auch Rechteck nennen kann. Es ist richtig dass die Logik vom HS event getriggert ist, mit der eigentlichen Implementation, nähmlich dass jeder Baustein event getriggert ist hat dies aber wenig zu tun. Die Logik könnte sehr wohl eventgetriggert sein ohne dass dies auf jeden Baustein zutreffen würde.

                          Die jetzige Abarbeitung der Logikblättern ist dem EIB nachempfunden und jeder Baustein stellt darin ein EIB Gerät dar. Diese Abarbeitungsmethode wirft einige Probleme im Datenfluss innerhalb eines Logikblattes auf und ich bin guter Hoffnung dass sich daran in der Zukunft was ändern könnte.

                          Gruss,
                          Gaston

                          Kommentar


                            #14
                            Hallo,
                            und danke für die anschauliche Erläuterung, Gaston. Ich hatte mir (ohne jegliche Kenntnisse von dem, was unter der Oberfläche des Experten passiert) die interne Abarbeitung der Module wegen der (aus Anwendersicht) eventgesteuerten Bearbeitung immer im Sinne der Abarbeitung einer Interruptqueue vorgestellt, dass also tatsächlich nur einzelne Module abgearbeitet werden.

                            Nun habe ich aus Euren Hinweisen von der internen Abarbeitung die Vorstellung gebildet, dass

                            a) der Experte bei der Übertragung des Projekts die Module in eine bestimmte Reihenfolge bringt (möglicherweise blattorientiert)
                            b) der HS diese Reihenfolge zyklisch abarbeitet, unabhängig davon, ob für das in der Liste gerade berechnete Modul ein Event (Telegramm) eingetroffen ist,
                            c) jeder Baustein vollständig durchlaufen und berechnet wird, bis eine Abbruchbedingung (oder eof) erfüllt ist,
                            d) die Schreibvorgänge des Bausteins auf S, O und A aber nur ausgeführt werden, wenn bei der Berechnung ein EI oder OC oder EC festgestellt wird

                            Paßt das so etwa für den Hausgebrauch?

                            Da die Ausgangsfrage dieses Threads ja die Performance war, stelle ich mir schon die Frage, warum bei komplexen Modulen eine a-priori-Abbruchbedingung zum Performancetuning vom Entwickler eingetragen werden muss. Der Experte könnte dies anhand der Komplexität eines Bausteins selbstständig optimieren, sogar für jeden Baustein unterschiedlich. Vermutlich ist der HS für die meisten Anwendungen einfach schnell genug .
                            Gruß, Rainer

                            Kommentar


                              #15
                              Vielleicht kann ja jemand mit einem guten Kontakt zu Dacom da für Klärung sorgen. Ich denke das wäre ein guter Artikel für das Wiki und könnte sicherlich helfen zu verstehen wie man Logiken am besten für den HS einsetzt.

                              Kommentar

                              Lädt...
                              X