Zahl aus virtuellem Eingang filtern?

Einklappen
X
 
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge
  • RiverRaid
    LoxBus Spammer
    • 25.08.2015
    • 304

    #1

    Zahl aus virtuellem Eingang filtern?

    Hallo Leute!

    Vielleicht sehe ich den Wald vor lauter Bäumen nicht, aber ich habe noch keine Lösung für mein Problem gefunden.

    Und zwar habe ich eine Photovoltaik von SolarEdge und Werte diese mittels dem Energiemonitor aus. Ich hatte schon 2 mal das Problem, dass der Energiemonitor nach einem Update der Config zerstört war (dh die irrsten Sachenm bzw NIL angezeigt hat).
    Ich glaube, dass das Problem entsteht, dass beim Neustarten des MS die Werte mit Skalierungsfaktor kurz nicht passen und daher den Energiemonitor in eine Art Overflow bringen:
    Klicke auf die Grafik für eine vergrößerte Ansicht

Name: filter.png
Ansichten: 658
Größe: 40,0 KB
ID: 218121

    Es geht um die 2te formel, die dann im Merker PV_EE_Energie mündet. Da würde ich gerne eine Art Filter einbauen: Wenn der Wert größer oder kleiner als eine bestimmte Grenze ist (also zB größer als 100000 und kleiner 0) soll er einfach nicht in den Merker weitergeleitet werden. Analog MinMax Begrenzer ist leider nicht wirklich sinnvoll, da ja trotzdem der maximalwert weitergereicht wird und dann alles verfälscht,



    Wie würdet ihr soetwas lösen?

    Danke & LG,
    Andi
  • romildo
    Lebende Foren Legende
    • 25.08.2015
    • 5161

    #2
    Hallo,
    Da Du die Vermutung hast, dass dies vom Neustart kommt, würde ich einen Analogspeicher verwenden und den Wert nur weitergeben wenn nicht gerade gestartet wird.
    lg Romildo

    Kommentar

    • Tico
      Lox Guru
      • 31.08.2016
      • 1035

      #3
      Ich habe ein ähnliches Problem gesehen, wenn Modbuswerte durch den Skalierungsfaktor beschädigt werden. Das Problem ist der zeitliche Unterschied zwischen der Aktualisierung des Skalenfaktors und dem zugehörigen Wert, der aktualisiert wird.

      Ich verwende den Statusblock wie unten abgebildet, um Ausreißer zu korrigieren.

      Eine bessere Option ist es, den Skalenfaktor und die entsprechende Wertaktualisierung so nah wie möglich zu halten.

      Modbus-Analogeingänge werden in der Reihenfolge verarbeitet, in der die "Sensoren" in der Config erstellt wurden. Nehmen wir an, Sie haben 20 Modbus-Sensoren -

      "I_AC_Energy_WH" war der erste Modbus-Eingang, der erstellt wurde;
      "I_AC_Energy_WH-SF" war der zehnte Modbus-Eingang, der erstellt wurde;

      Abhängig vom Polling-Intervall, dem eingestellten Timeout und der Netzwerkgeschwindigkeit kann es zu einer Differenz von ~5 Sekunden zwischen diesen beiden Werten kommen, die in der Config ankommen.

      Wenn sich der Skalenfaktor in dieser Zwischenzeit geändert hat, kann sich dein wahrer Wert um mehr als den Faktor 10 ändern.

      Legen Sie stattdessen I_AC_Energy_WH und I_AC_Energy_WH-SF als neue Modbus-Sensoren an und erstellen Sie sie sequentiell.

      Der Miniserver verarbeitet sie nun sequentiell mit minimalem Zeitabstand. Dadurch wird die Zeitdifferenz minimiert und die Möglichkeit von fehlerhaften Daten begrenzt.

      Dennoch kann es immer noch vorkommen und der Statusblock "Ausreißer" ist die nächste Behandlung.
      Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

      Kommentar

      • RiverRaid
        LoxBus Spammer
        • 25.08.2015
        • 304

        #4
        Super, danke!


        Ich werde es probieren, Herzlichen Dank für die Hilfe!

        LG,
        Andi

        Kommentar

        • Labmaster
          Lox Guru
          • 20.01.2017
          • 2592

          #5
          Warum wendet Ihr euch nicht an den Loxoen Support, sowas darf einfach nicht passieren !!!
          Das ist doch alles gebastel und hat nichts mit einer zuverlässigen Steuerung zu tun.

          Kommentar

          • Christian Fenzl
            Lebende Foren Legende
            • 31.08.2015
            • 11238

            #6
            Richtig! Sowas liest man immer wieder, dass zb die Remanenzen noch garnicht wiederhergestellt sind, wenn die SPS-Logik schon losstartet, und dann kommen unmögliche Werte oder 0, wo keine 0 sein kann.
            Die SPS darf erst starten, wenn alles initialisiert ist, auch sowas wie ein Skalierer.
            Hilfe für die Menschen der Ukraine: https://www.loxforum.com/forum/proje...Cr-die-ukraine

            Kommentar

            • Tico
              Lox Guru
              • 31.08.2016
              • 1035

              #7
              Es gibt viele Aspekte des SPS-Logik Starts, die verbessert werden müssen.

              Ein Aspekt der Modbussignalisierung ist jedoch, dass es manchmal nicht genügend Bits in einem Modbusregister gibt, um den erforderlichen Wertebereich darzustellen. Der Wert wird dann in zwei Komponenten aufgeteilt -

              1. Vereinfachter Wert mit einer kleinen Bitanforderung
              2. Skalenfaktor als Multiplikator

              Sie werden als zwei Datenströme übertragen. Der Endbenutzer muss den Wert neu erstellen. Die am besten konzipierte SPS wird immer noch Probleme haben, wenn es zeitliche Unterschiede zwischen den beiden Datenströmen gibt.

              Meine kleine Verteidigung des österreichischen Unternehmens...

              Klicke auf die Grafik für eine vergrößerte Ansicht  Name: Scale Factor.png Ansichten: 0 Größe: 29,0 KB ID: 218169
              Zuletzt geändert von Tico; 30.10.2019, 22:31.
              Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

              Kommentar

              • Tico
                Lox Guru
                • 31.08.2016
                • 1035

                #8
                RiverRaid

                Es gibt einen Eintrag in diesem Loxwiki, der für Modbus- und Skalierungsprobleme relevant ist (er stammt von einem Fronius-System, ist aber auch für SolarEdge-Modbus relevant) -



                Siehe Absatz (d), (e) und (f).

                Dies ist eine Methode, um alle Werte, die sich auf einen Skalierungsfaktor beziehen, mit einer Massenwertaktualisierung auszulösen. Dadurch wird der zeitliche Fehler vermieden, der im Modbus-Update-Zyklus verursacht wird.
                Ich spreche kein Deutsch. Gib Google Translate die Schuld, wenn ich unverständlich bin.

                Kommentar

                • RiverRaid
                  LoxBus Spammer
                  • 25.08.2015
                  • 304

                  #9
                  @Tico: Many Thanks! I will try it
                  best regards,
                  Andi

                  Kommentar

                  Lädt...