Lokale voortgang laden…
PLC Gym
PLC Gym-homeNiveau 1, 0 XP · je voortgang
Missie 59 · PRO (vraagt Pro)

Oefening over Gemiddelde van de laatste N metingen: voortschrijdend gemiddelde

Maak een rommelig niveau glad. Neem alleen het gemiddelde van de metingen die je hebt en laat de oudste vallen.

Bereken SmoothedLevel als het gemiddelde van de laatste WindowSize Level-metingen. Bewaar ze in een REAL-array, een genummerde lijst van waarden. Tel ze op met een FOR-lus die binnen de array blijft. Zolang Sample ON is, neem je elke cyclus één meting. Zolang het venster niet vol is, deel je door ValidCount, niet door N. Reset wint en zet het resultaat op 0.

Deze missie hoort bij ProMaak een gratis account aan: elk account krijgt een gratis Pro-proefperiode tot 5 december.

Geen creditcard. Niets te betalen. Niets op te zeggen.

Official release: 5 December. Sta op die dag bovenaan de ranglijst en win 3 maanden Pro, plus 2 weken Pro om aan een vriend te geven. De 2e plaats wint 4 weken. De 3e plaats wint 2 weken. Regels

  • Elke les, vanaf nul
  • Elke missie en les, naarmate je niveau stijgt
  • Een praktijktest voor elke titel, met een certificaat
  • Spoel elke test terug, één cyclus tegelijk
  • Uitgewerkte oplossingen als je vastzit
  • De codeconverter, zoveel je wilt
De 3D-procestank waarop deze missie draaitPRO (vraagt Pro) missie
Hoe de test verloopt

Opwarmen gebruikt alleen geldige metingen

Test 1 van 11
Ingesteld door de testGecontroleerd door de testStap 18 van 18 · 360 ms
Level
Gevorderd
Tijd
Over ons 25 min
Beloning
+450 XP
Opstelling
3D-procestank
Editors voor Siemens
SCL
Editors voor Rockwell
Gestructureerde tekst
Editors voor Beckhoff
Gestructureerde tekst
Fase
18. De laatste waarden bewaren
Vereist gedrag

Gemiddelde van de laatste N metingen: wat je code moet doen

Een rommelige niveaumeting springt heen en weer. Gladstrijken zorgt dat latere logica niet op elke flikkering reageert. Trends toont Level en SmoothedLevel naast elkaar, cyclus voor cyclus. Je filter berekent alleen een getal voor latere logica. Het schakelt de pomp of klep niet.

Sample en venstergrootte
Zet WindowSize op een geheel getal van 1 tot 8 vóór Reset. Houd het gelijk voor de batch. Sample ON neemt elke cyclus één Level-meting. Sample OFF laat SmoothedLevel en ValidCount zoals ze zijn.
Vullen en rondgaan
Als er minder dan N metingen zijn opgeslagen, neem dan alleen het gemiddelde van die. Zodra het vol is, neem het gemiddelde van de nieuwste N. ValidCount is het aantal opgeslagen metingen, tot N. Behoud de decimalen. Hoe je de buffer indeelt, is aan jou.
Reset
Zolang Reset ON is, zijn SmoothedLevel en ValidCount elke cyclus 0, ook met Sample ON. Een nieuwe batch mag alleen nieuwe metingen gebruiken.
Tagtabel

Gemiddelde van de laatste N metingen: ingangen en uitgangen

Je programma leest 4 ingangen en stuurt 2 uitgangen. De namen zijn hetzelfde in de editor van elk merk.

TagDatatypeJouw codeWat het betekent op de machine
ResetBOOLLeestEen ingang die je code nodig heeftReset-drukknop
LevelREALLeestEen ingang die je code nodig heeftTankniveau, %
SampleBOOLLeestEen ingang die je code nodig heeftZolang ON, neem elke cyclus één Level-meting.
WindowSizeDINTLeestEen ingang die je code nodig heeftHoeveel metingen je middelt (N), van 1 tot 8. Stel het in vóór Reset en houd het voor de batch.
ValidCountDINTSchrijftEen uitgang die je code zetHoeveel metingen tot nu toe zijn opgeslagen. Nooit meer dan WindowSize.
SmoothedLevelREALSchrijftEen uitgang die je code zetGemiddelde van de laatste N metingen, in %.

Schrijf in Siemens SCL de eigen tags van een blok met een # ervoor, zoals TIA Portal dat doet: #Reset. Rockwell en TwinCAT gebruik alleen de naam: Reset.

Automatische tests

Gemiddelde van de laatste N metingen: wat de tests controleren

  1. Werkt voor elke N van 1 tot 8, tijdens het vullen en na vele keren rondgaan.
  2. Met Sample OFF blijven het gemiddelde en de telling stilstaan. Met Sample ingedrukt ON voegt elke cyclus een meting toe.
  3. Reset maakt het venster leeg, ook met Sample ON. Behoud de decimalen in metingen.
  1. Probeer het Gebruik de knoppen onder het model en kijk hoe de opstelling reageert.
  2. Oplossing testen Elke controle draait met één druk op je code.
  3. Terugspoelen PRO (vraagt Pro) Mislukt er een, ga dan cyclus voor cyclus terug om te zien waarom.

Vast bij deze missie? Vraag het de leden in de Kleedkamer.

Waarom het ertoe doet

Waar je dit in de praktijk tegenkomt

Rimpelingen op het oppervlak laten de niveaumeting van een fabriekstank heen en weer springen. De operator wil een rustiger getal op het scherm.

De laatste paar metingen middelen maakt de rimpelingen vlakker. Lege plekken meetellen geeft een vals lage meting. Oude metingen te lang bewaren verbergt een echte verandering.

Waar je dit tegenkomtEén batch drank maken

In een drankenfabriek laten kleppen afgemeten hoeveelheden water en siroop in een mengtank. Een elektrische mixer mengt ze tot één batch. Een uitlaatklep stuurt de drank dan naar een buffertank. Vandaar tappen vulmachines hem in flessen.

  1. IngrediënttanksBevatten het water en de siroop
  2. MengtankEén batch vullen, mengen en metenJe bent hier
  3. BuffertankHoudt de afgewerkte drank klaar
  4. FlessenvullerDoet de drank in flessen
Op een echte locatie: plekken, onderdelen en veiligheid
  • Drankenfabriek — water en siroop mengen
  • Verffabriek — ingrediënten mengen tot een gelijkmatige kleur
  • Waterzuivering — een afgemeten chemisch mengsel voorbereiden
  • Brouwerij — water verwarmen om apparatuur te wassen

Een volle tank sluit zijn eigen inlaat niet. Er blijft water binnenkomen tot de klep sluit, dus een open inlaat kan de ruimte laten overstromen.

Een verwarmer die niet door vloeistof is bedekt, kan oververhit raken. Echte tanks hebben naast het PLC-programma aparte veiligheidsvoorzieningen.

De afmetingen, tijden en doorsneden zijn keuzes voor het onderwijs, geen tekening van één echte installatie.

Ga door

Hierna op de route