Ankündigung

Einklappen
Keine Ankündigung bisher.

"Statistik für Zeitreihen", Ausgabezyklus?

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

    X1 "Statistik für Zeitreihen", Ausgabezyklus?

    Hi!

    Ich habe leider wieder mal Probleme das Verhalten des "Statistik für Zeitreihen" Block von Host Lehner zu verstehen.

    Ziel:
    Eingangswerte über 2min speichern
    alte Werte werden rausgeschoben
    Maximalwert über diesen Zeitraum berechnen
    Jede Minute wird der Ausgang aktualisiert (sprich der aktuelle Maximalwert wird gesendet)

    Problem:
    Alle 10 Sekunden wird am Ausgang ein Wert gesendet (nicht jede Minute, wie ich erwartet hätte).

    Hoffentlich kann mir jemand sagen was ich falsch mache.

    statistik.png
    Angehängte Dateien

    #2
    Wenn nur bei einem Eingangstelegramm am Ausgang ein Wert gesendet werden soll, muss der Parameter "Zeitintervall für Aktualisierung" von 1m auf 0 geändert werden.

    Kommentar


      #3
      knxPaul Ziel ist es jede Minute den Maximalwert am Ausgang zu senden, unabhängig von der Freqzenz der eintreffenden Werte. Daher steht der Parameter "Zeitintervall für Aktualisierung" auf 1min. Würde ich den Parameter also auf 0 abändern so würde ich ja einen direkten Zusammenhang zwischen der Frequenz der eintreffenden und gesendeten Werte herstellen. Das mächte ich ja genau vermeiden.

      Kommentar


        #4
        Ich würde in diesem Fall bevorzugen, in den Eigenschaften des Eingangsbaustein auf dem Logikblatt den Trigger freizuschalten und daran einen Oszillator zu verbinden, der genau die gewünschte Frequenz der Telegramme erzeugt. Damit wird technisch gesprochen ein definiertes "Abtasten" des Eingangssignals realisiert.
        Leider finde ich kein Wort von der geplanten Anwendung, so dass ich nicht beurteilen kann, ob das den Wünschen entspricht.

        Kommentar


          #5
          Ich will aber keine Eingangswerte abtasten, ich will Ausgangstelegramme in definierten Zeitabständen schicken.
          hyman, vl kannst du mir weiterhelfen?

          Kommentar


            #6
            Ich versteh' auch nicht, warum der Baustein bei Dir alle 10 Sekunden sendet ... ist das wirklich regelmäßig? In der Simulation oder echt auf dem L1/X1? Und was passiert, wenn Du das "Zeitintervall für Aktualisierung" von 1m auf 6m änderst?
            Zuletzt geändert von hyman; 04.07.2022, 23:33.

            Kommentar


              #7
              hyman Sorry für die späte Antwort. Folgendes kann ich schon sagen, die 10 sec am Einhang kommen vom Sender, bei dem ist also eingestellt die Werte alle 10sec auf den Bus zu schicken. In der Simulation sehe ich auch, dass jede Änderung am Eingang eine Änderung am Ausgang zur Folge hat. Das würde ich mit den Einstellungen aber nicht erwarten.

              Habe auch deine Einstellung "Zeitintervall für Aktualisierung" = 6m und "Betrachtungszeitraum" = 12m in der Simulation getestet. Der Ausgang ändert sich unmittelbar wenn der Eingangswert gesetzt wurde.

              Hast du eine Idee?

              bausteininfo.png
              Angehängte Dateien

              Kommentar


                #8
                Das ist beim X1 immer so, dass ein Telegramm am Eingang ein Telegramm am Ausgang erzeugt. Wenn der Sender nicht anders kann, dann:
                Idee: Vor den Eingang einen Baustein "Send-by-.Change" setzten

                Kommentar


                  #9
                  Stimmt schon, aber man könnte ja denken, das der Baustein von hyman bei einem längeren Aktualierungsintervall dann auch keine (gleichen) Zwischenwerte sendet, nur weil am Eingang wieder etwas empfangen wurde.
                  Ich kenne die Programmierung der Bausteine nicht, würde aber erwarten, das man das Sendeintervall beeinflussen kann.
                  Gruß Bernhard

                  Kommentar


                    #10
                    knxPaul "Send-by-Change" löst mein Problem glaube ich leider auch nicht, denn am Eingang und auch am Ausgang ändert sich der Wert ja ständig. zB.: Eingangswerte 1, 2, 3, 4, 5 würden bei einem gefüllten Buffer von 0 auch die Maximum Ausgangswerte 1, 2, 3, 4, 5 generieren, und zwar mit der Frequenz der am Eingang eintreffenden Werte.

                    willisurf Genau davon bin ich eigentlich ausgegangen, insbesonders weil im Manual unter "Zeitintervall für Aktualisierung" steht "Ist dieser Wert größer als 0, so werden die Ausgänge regelmäßig im gegebenen Zeitabstand aktualisiert...".

                    Hoffe wir finden hier noch eine Lösung.
                    Hat den Baustein sonst niemand in der Form im Einsatz?

                    Kommentar


                      #11
                      Zitat von mrrobot Beitrag anzeigen
                      Genau davon bin ich eigentlich ausgegangen, insbesonders weil im Manual unter "Zeitintervall für Aktualisierung" steht "Ist dieser Wert größer als 0, so werden die Ausgänge regelmäßig im gegebenen Zeitabstand aktualisiert...".
                      Das ist in der Tat etwas irreführend formuliert. Gemeint ist, dass die Ausgänge spätestens nach dieser Zeit aktualisiert werden oder wenn neue Eingabewerte kommen. Ich muss das in der Dokumentation klarer formulieren.

                      Kommentar


                        #12
                        Ich denke das Verhalten ist unheimlich hilfreich. Wäre es vl möglich anstelle der Anpassung der Dokumentation den Code anzupassen?

                        Kommentar


                          #13
                          In der Regel ist es schon sinnvoll, dass neue Eingangstelegramme auch eine sofortige Aktualisierung der Ausgabewerte bewirken. Allenfalls könnte ich das abschaltbar machen über einen neuen Parameter. Allerdings sehe ich da keine breite Anwendung dafür.

                          Warum sendest Du alle 10s ein Eingangstelegramm wenn Du nur jede Minute einen neuen Ausgabewert willst?

                          Kommentar


                            #14
                            Das wäre für mich sehr nützlich wenn es diesen Parameter geben würde ;-)

                            Zur Anwendung - die ~10s ergeben sich zufällig aus den Windgeschwindigkeitswerten (Böhen) der Wetterstation in Kombination mit dem Parameter "Windgeschwindigkeit senden bei Änderung". Ziel ist es dabei keinen Wert zu verlieren (hohe "Abtastung" am Eingang) damit man den Maximalwert über den Beobachtungszeitraum feststellen kann, welcher dann in eine Datenbank (niedrigere Frequenz um nicht unnötig Datenbankeinträge zu generieren) eingetragen wird.

                            Wenn du eine Möglichkeit kennst wie ich selbiges mit weniger Aufwand erreichen kann bin ich natürlich auch sehr froh.

                            Kommentar


                              #15
                              Da ich die Wetterstation nicht kenne, weiß ich natürlich auch nicht, welche KOs sie anbietet. Wenn es beim häufigen Senden bleiben muss, dann brauchst Du an geeigneter Stelle in der weiteren Verarbeitung einen Eingangsbaustein oder einen Wertgenerator, der mit einem minütlichen Trigger die gewünschten Werttelegramme für Deine Datenbank erzeugt.

                              Kommentar

                              Lädt...
                              X