Lokaler Fortschritt wird geladen…
PLC Gym
PLC Gym StartseiteLevel 1, 0 XP · dein Fortschritt
Mission 59 · PRO (braucht Pro)

Übung zu Mittelwert der letzten N Messwerte: gleitender Mittelwert

Glätte einen verrauschten Füllstand. Mittle nur die Messwerte, die du hast, und wirf den ältesten raus.

Berechne SmoothedLevel als Mittelwert der letzten WindowSize Level-Messwerte. Speichere sie in einem REAL-Array, einer nummerierten Liste von Werten. Summier sie mit einer FOR-Schleife, die innerhalb des Arrays bleibt. Solange Sample ON ist, nimm in jedem Zyklus einen Messwert. Bis das Fenster voll ist, teile durch ValidCount, nicht durch N. Reset gewinnt und setzt das Ergebnis auf 0.

Diese Mission gehört zu ProErstelle ein kostenloses Konto: Jedes Konto bekommt bis 5. Dezember eine kostenlose Pro-Testphase.

Ohne Karte. Nichts zu zahlen. Nichts zu kündigen.

Official release: 5 December. Steh an dem Tag ganz oben in der Bestenliste und gewinn 3 Monate Pro, plus 2 Wochen Pro zum Verschenken an einen Freund. Platz 2 gewinnt 4 Wochen. Platz 3 gewinnt 2 Wochen. Regeln

  • Jede Lektion, ab null
  • Jede Mission und Lektion, mit jedem Level
  • Ein praktischer Test für jeden Titel, mit Zertifikat
  • Jeden Test zurückspulen, Zyklus für Zyklus
  • Musterlösungen, wenn du feststeckst
  • Der Code-Konverter, so oft du willst
Die 3D-Prozesstank, auf der diese Mission läuftPRO (braucht Pro) Mission
So läuft der Test ab

Die Anlaufphase nutzt nur gültige Messwerte

Test 1 von 11
Vom Test gesetztVom Test geprüftSchritt 18 von 18 · 360 ms
Level
Fortgeschritten
Zeit
Über uns 25 Min.
Belohnung
+450 XP
Anlage
3D-Prozesstank
Editoren: Siemens
SCL
Editoren: Rockwell
Strukturierter Text
Editoren: Beckhoff
Strukturierter Text
Stufe
18. Die neuesten Messwerte behalten
Gefordertes Verhalten

Mittelwert der letzten N Messwerte: was dein Code tun muss

Ein verrauschter Füllstandswert springt herum. Glätten verhindert, dass spätere Logik auf jedes Flackern reagiert. Trends zeigt Level und SmoothedLevel nebeneinander, Zyklus für Zyklus. Dein Filter berechnet nur eine Zahl für spätere Logik. Er schaltet weder Pumpe noch Ventil.

Messen und Fenstergröße
Setz WindowSize vor Reset auf eine ganze Zahl von 1 bis 8. Behalte sie für die Charge. Sample ON nimmt in jedem Zyklus einen Level-Messwert. Sample OFF lässt SmoothedLevel und ValidCount, wie sie sind.
Auffüllen und Umlaufen
Sind weniger als N Messwerte gespeichert, mittle nur diese. Ist es voll, mittle die neuesten N. ValidCount ist die Zahl der gespeicherten Werte, bis zu N. Behalte die Nachkommastellen. Wie du den Puffer aufbaust, ist dir überlassen.
Reset
Solange Reset ON ist, sind SmoothedLevel und ValidCount in jedem Zyklus 0, auch mit Sample ON. Eine neue Charge darf nur neue Messwerte nutzen.
Variablentabelle

Mittelwert der letzten N Messwerte: Eingänge und Ausgänge

Dein Programm liest 4 Eingänge und setzt 2 Ausgänge. Die Namen sind im Editor jedes Herstellers gleich.

VariableDatentypDein CodeWas es an der Maschine bedeutet
ResetBOOLLiestEin Eingang, den dein Code brauchtReset-Taster
LevelREALLiestEin Eingang, den dein Code brauchtTankfüllstand, %
SampleBOOLLiestEin Eingang, den dein Code brauchtSolange ON, in jedem Zyklus einen Level-Messwert nehmen.
WindowSizeDINTLiestEin Eingang, den dein Code brauchtWie viele Messwerte gemittelt werden (N), von 1 bis 8. Stell es vor Reset ein und behalte es für die Charge.
ValidCountDINTSchreibtEin Ausgang, den dein Code setztWie viele Messwerte bisher gespeichert sind. Nie mehr als WindowSize.
SmoothedLevelREALSchreibtEin Ausgang, den dein Code setztMittelwert der letzten N Messwerte, in %.

In Siemens SCL schreibst du die eigenen Variablen eines Bausteins mit # davor, wie TIA Portal es tut: #Reset. Rockwell und TwinCAT verwende einfach den Namen: Reset.

Automatische Tests

Mittelwert der letzten N Messwerte: was die Tests prüfen

  1. Funktioniert für jedes N von 1 bis 8, beim Auffüllen und nach vielen Umläufen.
  2. Mit Sample OFF bleiben Mittelwert und Anzahl stehen. Mit Sample dauerhaft ON fügt jeder Zyklus einen Messwert hinzu.
  3. Reset leert das Fenster, auch mit Sample ON. Behalte die Nachkommastellen der Messwerte.
  1. Ausprobieren Nutze die Tasten unter dem Modell und sieh, wie die Anlage reagiert.
  2. Lösung testen Jede Prüfung läuft mit einem Druck auf deinem Code.
  3. Zurückspulen PRO (braucht Pro) Wenn eine fehlschlägt, geh sie Zyklus für Zyklus zurück, um zu sehen, warum.

Hängst du bei dieser Mission fest? Frag die Mitglieder in der Umkleide.

Warum es wichtig ist

Wo du das im Betrieb sehen würdest

Wellen auf der Oberfläche lassen den Füllstandsmesswert eines Fabriktanks springen. Die Bedienperson möchte eine ruhigere Zahl auf der Anzeige.

Den Mittelwert der letzten Messwerte zu bilden, glättet die Wellen. Leere Plätze mitzuzählen, gibt einen falschen, zu niedrigen Wert. Alte Messwerte zu lange zu behalten, verbirgt eine echte Änderung.

Wo du das findestEine Charge Getränk herstellen

In einer Getränkefabrik lassen Ventile abgemessene Mengen Wasser und Sirup in einen Mischbehälter. Ein elektrischer Mischer verrührt sie zu einer Charge. Ein Auslassventil schickt das Getränk dann in einen Lagertank. Von dort füllen Abfüllmaschinen es in Flaschen.

  1. ZutatentanksEnthalten Wasser und Sirup
  2. MischbehälterEine Charge füllen, mischen und abmessenDu bist hier
  3. LagertankHält das fertige Getränk bereit
  4. FlaschenabfüllerFüllt das Getränk in Flaschen
In einer echten Anlage: Orte, Teile und Sicherheit
  • Getränkefabrik — Wasser und Sirup mischen
  • Farbenfabrik — Zutaten zu einem gleichmäßigen Farbton mischen
  • Wasserwerk — eine abgemessene chemische Mischung ansetzen
  • Brauerei — Wasser zum Reinigen der Anlagen erhitzen

Ein voller Tank schließt seinen Zulauf nicht selbst. Wasser kommt weiter, bis das Ventil schließt, also kann ein offener Zulauf den Raum überfluten.

Eine Heizung, die nicht von Flüssigkeit bedeckt ist, kann überhitzen. Echte Tanks haben zusätzlich zum SPS-Programm eigene Sicherheitseinrichtungen.

Die Größen, Zeiten und Schnittansichten sind didaktische Entscheidungen, keine Zeichnung einer bestimmten echten Anlage.

Mach weiter

Als Nächstes auf dem Weg