Ankündigung

Einklappen
Keine Ankündigung bisher.

Logikbaustein schreiben - Frage an die Profis

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

  • makki
    antwortet
    SA (genauso wie EA, AA) enthält bis zum Ende der Verarbeitung immer den Wert vor dem jew. Aufruf des Bausteins, nicht der Zeile.
    Für den Rest ists nach 3 Weissbier zu spät

    Makki

    Einen Kommentar schreiben:


  • pherbert
    antwortet
    ... du meinst gleitender Durchschnitt ?
    Hatte nur nach Mittelwert gesucht.

    Möchte mich aber auch gerne in die Erstellung der Bausteine etwas einarbeiten, da ich hier aktuell vorhabe ein groesseres Objekt (Bau und Heimwerkermarkt in Bonn) Steuerungstechnisch etwas zu überarbeiten.

    Wago 750-849 in fuer HLK + Gewächshaus, FS fuer die uebergreifende
    Steuerung + Visualisierung.

    Einige Dinge sind in dieser Konstellation besser im FS aufgehoben als im
    jeweiligen Codesys Projekt.

    --Philip

    Einen Kommentar schreiben:


  • MatthiasS
    antwortet
    Andere Frage:

    Warum nimmst du nicht den vorhandenen Baustein "gleitender Mittelwert mit Reset"?

    Einen Kommentar schreiben:


  • pherbert
    antwortet
    Hallo,

    bezieht sich SA (Wert einer Speicervariable vor der Berechnung) auf die
    einzelne 5012 Zeile, oder ist SA[] immer konstant, bis alle Zeilen abgearbeitet sind ?

    Ich habe nun noch das Problem, dass scheinbar die Division genau 1* zu früh ausgeführt wird, (2 *50 kwh empfangen, errechneter Mittelwert 25 khw).


    5012|0|"EC[2] and (EN[1]==1) and (EN[2]>0)"|"SN[1]+EN[2]"|""|0|0|1|0 # Speicher 1 auf alter Wert + aktueller Wert
    5012|0|"EC[2] and (EN[1]==1) and (EN[2]>0)"|"SN[2]+1"|""|3|0|2|0 # Speicher 2 um 1 inkrementieren, Anzahl der Werte auf Ausg 3
    5012|0|"SN[2]>0"|"SN[1]/SN[2]"|""|1|0|0|0 # Mittelwert ausgeben

    Danke, Philip

    Einen Kommentar schreiben:


  • Taxus
    antwortet
    Wie Matthias schon andeutete:
    Ersetze in den beiden ersten 5012-Zeilen EC[1] durch EC[2].
    Dann wirst Du noch in der zweiten Zeile dies: SN[1]==SN[1]+1 durch das: SN[1]+1 ersetzen müssen.

    Einen Kommentar schreiben:


  • pherbert
    antwortet
    Hallo, Danke fuer die schnelle Antwort,

    Eingang 1 ist immer eingeschaltet und soll den Baustein freigeben,
    Ist EN[2] nicht der soeben eingetroffene Wert. Ich dachte EC[2] wäre nur eine Bedingung um zu prüfen, ob ein neuer Wert am Eingang 2 ansteht.
    Daher die Berechnung mit EN[2].

    --Philip

    Einen Kommentar schreiben:


  • MatthiasS
    antwortet
    Eigentlich sollte doch deine Berechnung bei EC[2] stattfinden, oder?

    Was passiert an E[1]?

    Einen Kommentar schreiben:


  • pherbert
    hat ein Thema erstellt HS/FS Logikbaustein schreiben - Frage an die Profis.

    Logikbaustein schreiben - Frage an die Profis

    Hallo,

    ich benötige einen einfachen Logikbaustein zur Berechnung eines Mittelwertes aller empfangenen (kwh) Werte eines Zählers.

    Ich habe nun folgendes Versucht, allerdings gibt des Baustein keine Werte heraus. (Exceptions gibts schon mal keine ..)

    Das da noch ein Reset Eingang fehlt ist mir klar, allerdings wollte ich erst einmal einfach anfangen.

    Wo könnte der Fehler sein ?

    Danke, Philip

    #5000|"Text" Remanent(1/0)
    # Anz.Eingänge|.n.
    # Anzahl Ausgänge|.n.
    5000|"PHerbert\Mittelwert"|0|2|"Ein/Aus"|"Wert"|3|"Mittelwert"|"letzter Wert"|"Anzahl Werte"
    #5001
    # Anzahl Eingänge
    # | Ausgänge
    # | | Zeitspeicher
    # | | | Speicher
    # | | | | Berechnung bei Start
    5001|2|3|0|2|0

    # EN[x]
    #5002
    # Eingang
    # | Default Wert
    # | | 0=numerisch 1=alphanummerisch
    5002|1|0|0 # Baustein Einschalten
    5002|2|0|0 # aktueller Wert
    #SN[x]
    5003|1|0|1 # Speicher 1, Summe aller Werte
    5003|2|0|1 # Speicher 2, Anzahl der Einzelwerte

    # AN[x]
    #5004
    # Ausgang
    # | Initwert
    # | | runden binär (0/1)
    # | | | typ (1-send/2-sbc)
    # | | | | 0=numerisch 1=alphanummerisch
    5004|1|0|0|1|0 # Mittelwert
    5004|2|0|0|1|0 # Summe der Einzelwerte
    5004|3|0|0|1|0 # Anzahl der Einzelwerte

    #5012|abbruch bei bed. (0/1)|bedingung|formel|zeit|pin-ausgang|pin-offset|pin-speicher|pin-neg.ausgang

    5012|0|"EC[1] and (EN[1]==1) and (EN[2]>0)"|"SN[1]+EN[2]"|""|2|0|1|0 # Speicher 1 und Ausgang 2 auf alter Wert + aktueller Wert
    5012|0|"EC[1] and (EN[1]==1) and (EN[2]>0)"|"SN[1]==SN[1]+1"|""|3|0|2|0 # Speicher 2 um 1 inkrementieren
    5012|0|"SN[2]>0"|"SN[1]/SN[2]"|""|1|0|0|0 # Mittelwert ausgeben
Lädt...
X