Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Kone

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Profile
    • Following 0
    • Followers 0
    • Topics 0
    • Posts 1
    • Best 0
    • Groups 0

    Kone

    @Kone

    0
    Reputation
    5
    Profile views
    1
    Posts
    0
    Followers
    0
    Following
    Joined Last Online

    Kone Follow

    Latest posts made by Kone

    • RE: S7 mit Node Red (node-red-contrib-s7)

      @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
      
      posted in Node-Red
      Kone
      Kone
    Community
    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
    The ioBroker Community 2014-2023
    logo