Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Node-Red
  5. S7 mit Node Red (node-red-contrib-s7)

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    14
    1
    158

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    12
    1
    567

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

S7 mit Node Red (node-red-contrib-s7)

Geplant Angeheftet Gesperrt Verschoben Node-Red
92 Beiträge 9 Kommentatoren 12.2k Aufrufe 9 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • WalW Wal

    @fu_zhou ,
    es waren doch noch mehr User denen das aufgefallen ist, wenn die auch noch einmal testen könnten ...
    So schnell wage ich noch kein Pull Request, ;-) lass mal noch eine Woche so laufen.

    HF_SPSlerH Offline
    HF_SPSlerH Offline
    HF_SPSler
    schrieb am zuletzt editiert von
    #70

    Moin @wal ,

    ich gehöre auch zu denen die Probleme mit den Ausreißern in den Werten haben :) Leider habe ich tagsüber nicht die Möglichkeit Tests durchzuführen da ich meine private S7 mit dem iobroker gekoppelt habe und mir auf der Arbeit aktuell keine Möglichkeit besteht eine S7 mit einem iobroker zu koppeln.

    Aber ich könnte jetzt heute Abend mal eine Trace aufzeichnen, zumindest für ein paar stunden. Jedoch weiß ich leider noch nicht wie man den Adapter von Github installiert bekommt, da bin ich noch totales Greenhorn.

    S7 1214 (Master) + Logo!8(Slave Erdgeschoss) + Logo!8 (Slave Obergeschoss) + S7 1214 (Slave Garage/Nebengebäude)

    WalW 1 Antwort Letzte Antwort
    0
    • HF_SPSlerH HF_SPSler

      Moin @wal ,

      ich gehöre auch zu denen die Probleme mit den Ausreißern in den Werten haben :) Leider habe ich tagsüber nicht die Möglichkeit Tests durchzuführen da ich meine private S7 mit dem iobroker gekoppelt habe und mir auf der Arbeit aktuell keine Möglichkeit besteht eine S7 mit einem iobroker zu koppeln.

      Aber ich könnte jetzt heute Abend mal eine Trace aufzeichnen, zumindest für ein paar stunden. Jedoch weiß ich leider noch nicht wie man den Adapter von Github installiert bekommt, da bin ich noch totales Greenhorn.

      WalW Offline
      WalW Offline
      Wal
      Developer
      schrieb am zuletzt editiert von
      #71

      @hf_spsler ,
      du rufst die Adapter in deinem ioBroker auf und klickst auf die Katze im weißen Kreis.
      Danach auf Benutzerdefiniert und kopierst die oben gepostete Github Url hinein, jetzt auf den Button installieren klicken.

      Gruß
      Walter

      DoorIO-Adapter
      wioBrowser-Adapter und wioBrowser

      HF_SPSlerH 1 Antwort Letzte Antwort
      0
      • WalW Wal

        @hf_spsler ,
        du rufst die Adapter in deinem ioBroker auf und klickst auf die Katze im weißen Kreis.
        Danach auf Benutzerdefiniert und kopierst die oben gepostete Github Url hinein, jetzt auf den Button installieren klicken.

        HF_SPSlerH Offline
        HF_SPSlerH Offline
        HF_SPSler
        schrieb am zuletzt editiert von
        #72

        @wal Okay :+1: Muss dafür der bereits installierte Adapter erst entfernt werden? Der ist mit über 200 DB Adressen bereits für Iqontrol in Verwendung :fearful:

        S7 1214 (Master) + Logo!8(Slave Erdgeschoss) + Logo!8 (Slave Obergeschoss) + S7 1214 (Slave Garage/Nebengebäude)

        WalW 2 Antworten Letzte Antwort
        0
        • HF_SPSlerH HF_SPSler

          @wal Okay :+1: Muss dafür der bereits installierte Adapter erst entfernt werden? Der ist mit über 200 DB Adressen bereits für Iqontrol in Verwendung :fearful:

          WalW Offline
          WalW Offline
          Wal
          Developer
          schrieb am zuletzt editiert von
          #73

          @hf_spsler ,
          nein

          Gruß
          Walter

          DoorIO-Adapter
          wioBrowser-Adapter und wioBrowser

          1 Antwort Letzte Antwort
          0
          • HF_SPSlerH HF_SPSler

            @wal Okay :+1: Muss dafür der bereits installierte Adapter erst entfernt werden? Der ist mit über 200 DB Adressen bereits für Iqontrol in Verwendung :fearful:

            WalW Offline
            WalW Offline
            Wal
            Developer
            schrieb am zuletzt editiert von
            #74

            @hf_spsler ,
            hoffe aber dein ioBroker ist einigermaßen aktuell.

            Gruß
            Walter

            DoorIO-Adapter
            wioBrowser-Adapter und wioBrowser

            HF_SPSlerH 1 Antwort Letzte Antwort
            0
            • WalW Wal

              @hf_spsler ,
              hoffe aber dein ioBroker ist einigermaßen aktuell.

              HF_SPSlerH Offline
              HF_SPSlerH Offline
              HF_SPSler
              schrieb am zuletzt editiert von
              #75

              @wal Der müssste brandaktuell sein, am Wochende erst ein Backup der SD-Karte gezogen anschließend alles geupdatet was mir vorgeschlagen wurde und anschließend wieder ein SD-Karten Backup angefertigt.

              S7 1214 (Master) + Logo!8(Slave Erdgeschoss) + Logo!8 (Slave Obergeschoss) + S7 1214 (Slave Garage/Nebengebäude)

              1 Antwort Letzte Antwort
              1
              • WalW Offline
                WalW Offline
                Wal
                Developer
                schrieb am zuletzt editiert von
                #76

                Nachdem mein Test jetzt 28 Stunden ohne Fehler durchlief, habe ich das Skript deaktiviert.
                Falls @HF_SPSler eine positive Rückmeldung gibt, werde ich doch den Pull Request früher einreichen.

                Gruß
                Walter

                DoorIO-Adapter
                wioBrowser-Adapter und wioBrowser

                HF_SPSlerH 1 Antwort Letzte Antwort
                0
                • WalW Wal

                  Nachdem mein Test jetzt 28 Stunden ohne Fehler durchlief, habe ich das Skript deaktiviert.
                  Falls @HF_SPSler eine positive Rückmeldung gibt, werde ich doch den Pull Request früher einreichen.

                  HF_SPSlerH Offline
                  HF_SPSlerH Offline
                  HF_SPSler
                  schrieb am zuletzt editiert von
                  #77

                  @wal Ich weis nicht wie eilig du es hast, ich kann unter der Woche leider immer nur ein paar Stunden testen. Bis jetzt läuft es seit fast vier Stunden ohne Ausreißer, jedoch habe ich nur eine kleine Fangschaltung programmiert die bei weitem nicht alle bisher springenden Werte abfängt. Dazu fehlte mir am heutigen Abend die Zeit.

                  S7 1214 (Master) + Logo!8(Slave Erdgeschoss) + Logo!8 (Slave Obergeschoss) + S7 1214 (Slave Garage/Nebengebäude)

                  fu_zhouF WalW 2 Antworten Letzte Antwort
                  0
                  • HF_SPSlerH HF_SPSler

                    @wal Ich weis nicht wie eilig du es hast, ich kann unter der Woche leider immer nur ein paar Stunden testen. Bis jetzt läuft es seit fast vier Stunden ohne Ausreißer, jedoch habe ich nur eine kleine Fangschaltung programmiert die bei weitem nicht alle bisher springenden Werte abfängt. Dazu fehlte mir am heutigen Abend die Zeit.

                    fu_zhouF Offline
                    fu_zhouF Offline
                    fu_zhou
                    schrieb am zuletzt editiert von fu_zhou
                    #78

                    @hf_spsler Der Test läuft ja quasi von selbst, du überprüfst einfach die gelesenen Werte (die du vorher in die S7 schreibst: Haken bei Abfrage + Haken bei RW) auf Ausreißer, z.B. mit Blockly und lässt bei Abweichung einen Log-Eintrag los, den kannst du dann im iobroker im Protokoll finden (wenn er auftritt):
                    e8dfb3e5-ce10-4184-b5cb-c112f78c1868-image.png

                    • Reserve92 = DB22.DBD92 (REAL) bei mir
                    • Der Wert ist nie >99 oder < -99 beim Schreiben
                    • Wenn der Wert >99 oder < -99 gelesen wird, werden die 3 Zeilen im Protokoll als Kategorie "Debug" eingetragen
                    • Das Protokoll kannst du ja über mehrere Tage einsehen (LOG HERUNTERLADEN) und dann einfach nach "Abweichung" suchen

                    Synology DS920+ VM, S7-315 PN mit ET200S

                    HF_SPSlerH 1 Antwort Letzte Antwort
                    0
                    • HF_SPSlerH HF_SPSler

                      @wal Ich weis nicht wie eilig du es hast, ich kann unter der Woche leider immer nur ein paar Stunden testen. Bis jetzt läuft es seit fast vier Stunden ohne Ausreißer, jedoch habe ich nur eine kleine Fangschaltung programmiert die bei weitem nicht alle bisher springenden Werte abfängt. Dazu fehlte mir am heutigen Abend die Zeit.

                      WalW Offline
                      WalW Offline
                      Wal
                      Developer
                      schrieb am zuletzt editiert von
                      #79

                      @hf_spsler ,
                      so eilig jetzt nicht. ;-)

                      Gruß
                      Walter

                      DoorIO-Adapter
                      wioBrowser-Adapter und wioBrowser

                      fu_zhouF 1 Antwort Letzte Antwort
                      0
                      • fu_zhouF fu_zhou

                        @hf_spsler Der Test läuft ja quasi von selbst, du überprüfst einfach die gelesenen Werte (die du vorher in die S7 schreibst: Haken bei Abfrage + Haken bei RW) auf Ausreißer, z.B. mit Blockly und lässt bei Abweichung einen Log-Eintrag los, den kannst du dann im iobroker im Protokoll finden (wenn er auftritt):
                        e8dfb3e5-ce10-4184-b5cb-c112f78c1868-image.png

                        • Reserve92 = DB22.DBD92 (REAL) bei mir
                        • Der Wert ist nie >99 oder < -99 beim Schreiben
                        • Wenn der Wert >99 oder < -99 gelesen wird, werden die 3 Zeilen im Protokoll als Kategorie "Debug" eingetragen
                        • Das Protokoll kannst du ja über mehrere Tage einsehen (LOG HERUNTERLADEN) und dann einfach nach "Abweichung" suchen
                        HF_SPSlerH Offline
                        HF_SPSlerH Offline
                        HF_SPSler
                        schrieb am zuletzt editiert von
                        #80

                        @fu_zhou Okay, ich versuche das heute Abend mal nach Feierabend umzusetzen :+1:

                        S7 1214 (Master) + Logo!8(Slave Erdgeschoss) + Logo!8 (Slave Obergeschoss) + S7 1214 (Slave Garage/Nebengebäude)

                        1 Antwort Letzte Antwort
                        0
                        • WalW Wal

                          @hf_spsler ,
                          so eilig jetzt nicht. ;-)

                          fu_zhouF Offline
                          fu_zhouF Offline
                          fu_zhou
                          schrieb am zuletzt editiert von fu_zhou
                          #81

                          @wal Ich habe den node-snap7 issue mal geschlossen und im iobroker.S7 issue einen Aufruf zum Mittesten gestartet. Ich glaube aber nicht, dass da viel zurückkommt. Bei mir läuft das Ganze mit sämtlichen Test-Skripten parallel zum Produktivbetrieb stabil über die letzten Tage. Sobald du den Mut zum Pull hast, würde ich auch den iobroker.S7 issue auf Github schließen.

                          Synology DS920+ VM, S7-315 PN mit ET200S

                          WalW 1 Antwort Letzte Antwort
                          1
                          • fu_zhouF fu_zhou

                            @wal Ich habe den node-snap7 issue mal geschlossen und im iobroker.S7 issue einen Aufruf zum Mittesten gestartet. Ich glaube aber nicht, dass da viel zurückkommt. Bei mir läuft das Ganze mit sämtlichen Test-Skripten parallel zum Produktivbetrieb stabil über die letzten Tage. Sobald du den Mut zum Pull hast, würde ich auch den iobroker.S7 issue auf Github schließen.

                            WalW Offline
                            WalW Offline
                            Wal
                            Developer
                            schrieb am zuletzt editiert von
                            #82

                            @fu_zhou ,
                            ich lasse @HF_SPSler noch ein paar Tage Zeit (ein Paar sind 2 ;-) )für eine Rückmeldung und wenn die positiv ist werde ich den Pull Request starten.

                            Gruß
                            Walter

                            DoorIO-Adapter
                            wioBrowser-Adapter und wioBrowser

                            HF_SPSlerH 1 Antwort Letzte Antwort
                            0
                            • WalW Wal

                              @fu_zhou ,
                              ich lasse @HF_SPSler noch ein paar Tage Zeit (ein Paar sind 2 ;-) )für eine Rückmeldung und wenn die positiv ist werde ich den Pull Request starten.

                              HF_SPSlerH Offline
                              HF_SPSlerH Offline
                              HF_SPSler
                              schrieb am zuletzt editiert von HF_SPSler
                              #83

                              @wal Moin zusammen.

                              Ich habe jetzt die letzten zwei Tage insgesamt fünf Variablen auf SPS Seite auf Ausreißer überprüft und wenn einer Aufgetreten wäre einen Zähler hochgezählt. Was soll ich sagen, der Zähler ist auch nach zwei Tagen immer noch 0 - es ist also aus meiner Sicht davon auszugehen, dass es zu keinen Ausreißern mehr kommt :clap: :clap:

                              Um ganz sicher zu gehen dass ich nicht irgendeinen Denkfehler bei dem Testaufbau drin hab hier meine Vorgehensweise:

                              5cb77d24-9afc-47a4-8ef6-646dfdd25390-grafik.png

                              PS: Bei AmbientTemperature nicht wundern, da sich der betreffende Akku im Gartenhaus befindet ist er mit einer Heizmatte versehen und der Temperaturfühler der eigentlich die Raumtemperatur im Gartenhaus misst wird aktuell dazu mißbraucht die Heizmatte zu messen. die 30°C sind also plausibel :blush:

                              S7 1214 (Master) + Logo!8(Slave Erdgeschoss) + Logo!8 (Slave Obergeschoss) + S7 1214 (Slave Garage/Nebengebäude)

                              WalW fu_zhouF 2 Antworten Letzte Antwort
                              1
                              • HF_SPSlerH HF_SPSler

                                @wal Moin zusammen.

                                Ich habe jetzt die letzten zwei Tage insgesamt fünf Variablen auf SPS Seite auf Ausreißer überprüft und wenn einer Aufgetreten wäre einen Zähler hochgezählt. Was soll ich sagen, der Zähler ist auch nach zwei Tagen immer noch 0 - es ist also aus meiner Sicht davon auszugehen, dass es zu keinen Ausreißern mehr kommt :clap: :clap:

                                Um ganz sicher zu gehen dass ich nicht irgendeinen Denkfehler bei dem Testaufbau drin hab hier meine Vorgehensweise:

                                5cb77d24-9afc-47a4-8ef6-646dfdd25390-grafik.png

                                PS: Bei AmbientTemperature nicht wundern, da sich der betreffende Akku im Gartenhaus befindet ist er mit einer Heizmatte versehen und der Temperaturfühler der eigentlich die Raumtemperatur im Gartenhaus misst wird aktuell dazu mißbraucht die Heizmatte zu messen. die 30°C sind also plausibel :blush:

                                WalW Offline
                                WalW Offline
                                Wal
                                Developer
                                schrieb am zuletzt editiert von
                                #84

                                @hf_spsler ,
                                das scl müsste stimmen, danke.

                                Gruß
                                Walter

                                DoorIO-Adapter
                                wioBrowser-Adapter und wioBrowser

                                1 Antwort Letzte Antwort
                                0
                                • HF_SPSlerH HF_SPSler

                                  @wal Moin zusammen.

                                  Ich habe jetzt die letzten zwei Tage insgesamt fünf Variablen auf SPS Seite auf Ausreißer überprüft und wenn einer Aufgetreten wäre einen Zähler hochgezählt. Was soll ich sagen, der Zähler ist auch nach zwei Tagen immer noch 0 - es ist also aus meiner Sicht davon auszugehen, dass es zu keinen Ausreißern mehr kommt :clap: :clap:

                                  Um ganz sicher zu gehen dass ich nicht irgendeinen Denkfehler bei dem Testaufbau drin hab hier meine Vorgehensweise:

                                  5cb77d24-9afc-47a4-8ef6-646dfdd25390-grafik.png

                                  PS: Bei AmbientTemperature nicht wundern, da sich der betreffende Akku im Gartenhaus befindet ist er mit einer Heizmatte versehen und der Temperaturfühler der eigentlich die Raumtemperatur im Gartenhaus misst wird aktuell dazu mißbraucht die Heizmatte zu messen. die 30°C sind also plausibel :blush:

                                  fu_zhouF Offline
                                  fu_zhouF Offline
                                  fu_zhou
                                  schrieb am zuletzt editiert von
                                  #85

                                  @hf_spsler Nachdem du gem. deiner Signatur Logos im Einsatz hast: Willst du hier mal eine Einschätzung abgeben?
                                  https://github.com/ioBroker/ioBroker.s7/issues/301#issue-2080449908

                                  Synology DS920+ VM, S7-315 PN mit ET200S

                                  HF_SPSlerH 1 Antwort Letzte Antwort
                                  0
                                  • fu_zhouF fu_zhou

                                    @hf_spsler Nachdem du gem. deiner Signatur Logos im Einsatz hast: Willst du hier mal eine Einschätzung abgeben?
                                    https://github.com/ioBroker/ioBroker.s7/issues/301#issue-2080449908

                                    HF_SPSlerH Offline
                                    HF_SPSlerH Offline
                                    HF_SPSler
                                    schrieb am zuletzt editiert von
                                    #86

                                    @fu_zhou Moin, kurz zum S7 Adapter bezüglich Ausreißer: Bis jetzt keinerlei Auffälligkeiten, der Zähler steht noch immer bei 0 :+1:

                                    Bezüglich Logo: Meine Logos übernehmen Sensor- Aktoraktivitäten in den jeweiligen Geschossen, sie sind aber als Slaves an die S7 angebunden und haben zum Iobroker keinen Kontakt. Einzig die S7 als Kopf-SPS kommuniziert über einen DB mit Iobroker. Da kann ich leider nichts sinnvolles beitragen.

                                    S7 1214 (Master) + Logo!8(Slave Erdgeschoss) + Logo!8 (Slave Obergeschoss) + S7 1214 (Slave Garage/Nebengebäude)

                                    KoneK 1 Antwort Letzte Antwort
                                    0
                                    • HF_SPSlerH HF_SPSler

                                      @fu_zhou Moin, kurz zum S7 Adapter bezüglich Ausreißer: Bis jetzt keinerlei Auffälligkeiten, der Zähler steht noch immer bei 0 :+1:

                                      Bezüglich Logo: Meine Logos übernehmen Sensor- Aktoraktivitäten in den jeweiligen Geschossen, sie sind aber als Slaves an die S7 angebunden und haben zum Iobroker keinen Kontakt. Einzig die S7 als Kopf-SPS kommuniziert über einen DB mit Iobroker. Da kann ich leider nichts sinnvolles beitragen.

                                      KoneK Offline
                                      KoneK Offline
                                      Kone
                                      schrieb am zuletzt editiert von Kone
                                      #87

                                      @hf_spsler
                                      ich hab filtere die aussreißer in der s7 raus mit diesem baustein.

                                      FUNCTION_BLOCK "Mittelwert_Real_gleite4"
                                      { S7_Optimized_Access := 'FALSE' }
                                      VERSION : 0.1
                                      //Der Baustein  berechnet über 4 Messwerte hinweg einen gleitenden Mittelwert. 
                                      //Die Bildung des Mittelwertes basiert auf folgender Gleichung:
                                      //Yi=(X1+X2+X3+...+X4)/4.  Einen Schritt später werden die Messwerte wie folgt 
                                      //durchgeschoben.
                                      //Yi+1=(X2+X3+...+X4)/4.
                                      //Wird der Baustein z.B. nur alle 100ms einmal durchlaufen, so mittelt er über 
                                      //1,0 Sek. hinweg die Messwerte.
                                         VAR_INPUT 
                                            Eingangswert : Real;
                                            Max_Positiv : Real := 32000.0;
                                            Max_Negativ : Real := 0.0;
                                         END_VAR
                                      
                                         VAR_OUTPUT 
                                            Mittelwert_Ausgang : Real;
                                            Zahlenbereich_Fehler : Bool;
                                         END_VAR
                                      
                                         VAR_IN_OUT 
                                            Start_oder_Reset : Bool;
                                         END_VAR
                                      
                                         VAR 
                                            Messwert_Schiebereg : Real;
                                            Messwert_Schiebereg1 : Real;
                                            Messwert_Schiebereg2 : Real;
                                            Messwert_Schiebereg3 : Real;
                                            Messwert_Schiebereg4 : Real;
                                           
                                            Summe_der_Messwerte : Real;
                                            FP_Takt : Bool;
                                         END_VAR
                                      
                                         VAR_TEMP 
                                            Zu_klein : Bool;
                                            zu_Positiv : Bool;
                                            zu_Negativ : Bool;
                                         END_VAR
                                      
                                      
                                      BEGIN
                                      NETWORK
                                      TITLE = Arbeitstakt aufbereitung
                                            A "SysDat_DB100".BlinkTakt_500msek_AnwPgm;
                                            FP #FP_Takt;
                                            JCN druu;
                                      
                                      NETWORK
                                      TITLE = Prüfung des Zahlenbereiches
                                      
                                            L #Eingangswert;
                                            A OV;
                                            = #Zahlenbereich_Fehler;
                                            JC druu;
                                      
                                            L #Max_Positiv          ;// grösste pos. Zahl stutzen
                                            L #Eingangswert;
                                            <R;
                                            = #zu_Positiv;
                                            A #zu_Positiv;
                                            JCN zpos;
                                            L #Mittelwert_Ausgang;
                                            T #Eingangswert;
                                            SET;
                                            = #Zahlenbereich_Fehler;
                                      zpos:      L #Max_Negativ               ;// grösste neg. Zahl stutzen
                                            L #Eingangswert;
                                            >R;
                                            = #zu_Negativ;
                                            A #zu_Negativ;
                                            JCN zneg;
                                            L #Mittelwert_Ausgang;
                                            T #Eingangswert;
                                            SET;
                                            = #Zahlenbereich_Fehler;
                                      
                                      
                                      NETWORK
                                      TITLE = Alles löschen
                                      zneg:      A #Start_oder_Reset;
                                            JCN ruek;
                                            L 0.0;
                                            T #Mittelwert_Ausgang;
                                            T #Messwert_Schiebereg1;
                                            T #Messwert_Schiebereg2;
                                            T #Messwert_Schiebereg3;
                                            T #Messwert_Schiebereg4;
                                            
                                            T #Summe_der_Messwerte;
                                            SET;
                                            R #Start_oder_Reset;
                                      
                                      ruek:      NOP 0;
                                      
                                      
                                      NETWORK
                                      TITLE = Mittelwertberechnung Teil 1
                                            L #Eingangswert             ;// Neun Wert hinzufügen
                                            L #Summe_der_Messwerte;
                                            +R;
                                            T #Summe_der_Messwerte;
                                      
                                      
                                      NETWORK
                                      TITLE = Eins weiter Schieben
                                            L #Messwert_Schiebereg3;
                                            T #Messwert_Schiebereg4;
                                            L #Messwert_Schiebereg2;
                                            T #Messwert_Schiebereg3;
                                            L #Messwert_Schiebereg1;
                                            T #Messwert_Schiebereg2;
                                      
                                            L #Eingangswert;
                                            T #Messwert_Schiebereg1;
                                      
                                      
                                      NETWORK
                                      TITLE = Mittelwertberechnung Teil 2
                                            L #Summe_der_Messwerte      ;// Ältesten Wert abziehen
                                            L #Messwert_Schiebereg4;
                                            -R;
                                            T #Summe_der_Messwerte;
                                            L 3.0;
                                            /R;
                                            T #Mittelwert_Ausgang;
                                      druu:      NOP 0;
                                      
                                      
                                      END_FUNCTION_BLOCK
                                      
                                      HF_SPSlerH 1 Antwort Letzte Antwort
                                      0
                                      • mickymM Offline
                                        mickymM Offline
                                        mickym
                                        Most Active
                                        schrieb am zuletzt editiert von
                                        #88

                                        Mit der normalen Filternode im Nahbandmodus kann man Ausreiser ganz einfach rausfiltern ohne Mittelwerte. Die verfälschen nur.

                                        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

                                        1 Antwort Letzte Antwort
                                        0
                                        • KoneK Kone

                                          @hf_spsler
                                          ich hab filtere die aussreißer in der s7 raus mit diesem baustein.

                                          FUNCTION_BLOCK "Mittelwert_Real_gleite4"
                                          { S7_Optimized_Access := 'FALSE' }
                                          VERSION : 0.1
                                          //Der Baustein  berechnet über 4 Messwerte hinweg einen gleitenden Mittelwert. 
                                          //Die Bildung des Mittelwertes basiert auf folgender Gleichung:
                                          //Yi=(X1+X2+X3+...+X4)/4.  Einen Schritt später werden die Messwerte wie folgt 
                                          //durchgeschoben.
                                          //Yi+1=(X2+X3+...+X4)/4.
                                          //Wird der Baustein z.B. nur alle 100ms einmal durchlaufen, so mittelt er über 
                                          //1,0 Sek. hinweg die Messwerte.
                                             VAR_INPUT 
                                                Eingangswert : Real;
                                                Max_Positiv : Real := 32000.0;
                                                Max_Negativ : Real := 0.0;
                                             END_VAR
                                          
                                             VAR_OUTPUT 
                                                Mittelwert_Ausgang : Real;
                                                Zahlenbereich_Fehler : Bool;
                                             END_VAR
                                          
                                             VAR_IN_OUT 
                                                Start_oder_Reset : Bool;
                                             END_VAR
                                          
                                             VAR 
                                                Messwert_Schiebereg : Real;
                                                Messwert_Schiebereg1 : Real;
                                                Messwert_Schiebereg2 : Real;
                                                Messwert_Schiebereg3 : Real;
                                                Messwert_Schiebereg4 : Real;
                                               
                                                Summe_der_Messwerte : Real;
                                                FP_Takt : Bool;
                                             END_VAR
                                          
                                             VAR_TEMP 
                                                Zu_klein : Bool;
                                                zu_Positiv : Bool;
                                                zu_Negativ : Bool;
                                             END_VAR
                                          
                                          
                                          BEGIN
                                          NETWORK
                                          TITLE = Arbeitstakt aufbereitung
                                                A "SysDat_DB100".BlinkTakt_500msek_AnwPgm;
                                                FP #FP_Takt;
                                                JCN druu;
                                          
                                          NETWORK
                                          TITLE = Prüfung des Zahlenbereiches
                                          
                                                L #Eingangswert;
                                                A OV;
                                                = #Zahlenbereich_Fehler;
                                                JC druu;
                                          
                                                L #Max_Positiv          ;// grösste pos. Zahl stutzen
                                                L #Eingangswert;
                                                <R;
                                                = #zu_Positiv;
                                                A #zu_Positiv;
                                                JCN zpos;
                                                L #Mittelwert_Ausgang;
                                                T #Eingangswert;
                                                SET;
                                                = #Zahlenbereich_Fehler;
                                          zpos:      L #Max_Negativ               ;// grösste neg. Zahl stutzen
                                                L #Eingangswert;
                                                >R;
                                                = #zu_Negativ;
                                                A #zu_Negativ;
                                                JCN zneg;
                                                L #Mittelwert_Ausgang;
                                                T #Eingangswert;
                                                SET;
                                                = #Zahlenbereich_Fehler;
                                          
                                          
                                          NETWORK
                                          TITLE = Alles löschen
                                          zneg:      A #Start_oder_Reset;
                                                JCN ruek;
                                                L 0.0;
                                                T #Mittelwert_Ausgang;
                                                T #Messwert_Schiebereg1;
                                                T #Messwert_Schiebereg2;
                                                T #Messwert_Schiebereg3;
                                                T #Messwert_Schiebereg4;
                                                
                                                T #Summe_der_Messwerte;
                                                SET;
                                                R #Start_oder_Reset;
                                          
                                          ruek:      NOP 0;
                                          
                                          
                                          NETWORK
                                          TITLE = Mittelwertberechnung Teil 1
                                                L #Eingangswert             ;// Neun Wert hinzufügen
                                                L #Summe_der_Messwerte;
                                                +R;
                                                T #Summe_der_Messwerte;
                                          
                                          
                                          NETWORK
                                          TITLE = Eins weiter Schieben
                                                L #Messwert_Schiebereg3;
                                                T #Messwert_Schiebereg4;
                                                L #Messwert_Schiebereg2;
                                                T #Messwert_Schiebereg3;
                                                L #Messwert_Schiebereg1;
                                                T #Messwert_Schiebereg2;
                                          
                                                L #Eingangswert;
                                                T #Messwert_Schiebereg1;
                                          
                                          
                                          NETWORK
                                          TITLE = Mittelwertberechnung Teil 2
                                                L #Summe_der_Messwerte      ;// Ältesten Wert abziehen
                                                L #Messwert_Schiebereg4;
                                                -R;
                                                T #Summe_der_Messwerte;
                                                L 3.0;
                                                /R;
                                                T #Mittelwert_Ausgang;
                                          druu:      NOP 0;
                                          
                                          
                                          END_FUNCTION_BLOCK
                                          
                                          HF_SPSlerH Offline
                                          HF_SPSlerH Offline
                                          HF_SPSler
                                          schrieb am zuletzt editiert von
                                          #89

                                          @kone Moin, nun, einen Monat nach meinem letzten Post zur Außreißerthematik, nachdem ja eine erfolgreich Änderung im S7 Adapter erfolgte, benötige ich keinen Workaround mehr um durch Software entstandene Außreißer heraus zu filtern - aber trotzdem danke für deinen Ansatz :+1:

                                          S7 1214 (Master) + Logo!8(Slave Erdgeschoss) + Logo!8 (Slave Obergeschoss) + S7 1214 (Slave Garage/Nebengebäude)

                                          WalW 1 Antwort Letzte Antwort
                                          0
                                          Antworten
                                          • In einem neuen Thema antworten
                                          Anmelden zum Antworten
                                          • Älteste zuerst
                                          • Neuste zuerst
                                          • Meiste Stimmen


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          292

                                          Online

                                          32.5k

                                          Benutzer

                                          81.8k

                                          Themen

                                          1.3m

                                          Beiträge
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Anmelden

                                          • Du hast noch kein Konto? Registrieren

                                          • Anmelden oder registrieren, um zu suchen
                                          • Erster Beitrag
                                            Letzter Beitrag
                                          0
                                          • Home
                                          • Aktuell
                                          • Tags
                                          • Ungelesen 0
                                          • Kategorien
                                          • Unreplied
                                          • Beliebt
                                          • GitHub
                                          • Docu
                                          • Hilfe