Wczytujemy postępy z tego urządzenia…
PLC Gym
Strona główna PLC GymPoziom 1, 0 XP · Twoje postępy
Misja 59 · PRO (wymaga Pro)

Ćwiczenie: Uśrednij ostatnie N odczytów: średnia krocząca

Wygładź zaszumiony poziom. Uśredniaj tylko odczyty, które masz, i odrzucaj najstarszy.

Wylicz SmoothedLevel jako średnią z ostatnich WindowSize odczytów Level. Przechowuj je w tablicy REAL, czyli ponumerowanej liście wartości. Zsumuj je pętlą FOR, która nie wychodzi poza tablicę. Gdy Sample jest ON, pobieraj jeden odczyt w każdym cyklu. Dopóki okno nie jest pełne, dziel przez ValidCount, a nie przez N. Reset wygrywa i ustawia wynik na 0.

Ta misja jest częścią ProZałóż darmowe konto: każde konto ma darmowy okres próbny Pro do 5 grudnia.

Bez karty. Bez płacenia. Bez anulowania.

Official release: 5 December. Bądź na szczycie rankingu tego dnia i wygraj 3 miesiące Pro oraz 2 tygodnie Pro do podarowania znajomemu. 2. miejsce wygrywa 4 tygodnie. 3. miejsce wygrywa 2 tygodnie. Zasady

  • Każda lekcja, od zera
  • Każda misja i lekcja, wraz z kolejnymi poziomami
  • Praktyczny test dla każdego tytułu, z certyfikatem
  • Przewiń dowolny test, cykl po cyklu
  • Rozwiązania z objaśnieniem, gdy utkniesz
  • Konwerter kodu, ile tylko chcesz
Model 3D (zbiornik procesowy), na którym działa ta misjaPRO (wymaga Pro) misja
Jak przebiega test

Rozgrzewka używa tylko poprawnych odczytów

Test 1 z 11
Ustawione przez testSprawdzone przez testKrok 18 z 18 · 360 ms
Level
Zaawansowane
Czas
O nas 25 min
Nagroda
+450 XP
Instalacja
zbiornik procesowy 3D
Edytory: Siemens
SCL
Edytory: Rockwell
Tekst strukturalny
Edytory: Beckhoff
Tekst strukturalny
Etap
18. Zachowaj najnowsze odczyty
Wymagane działanie

Uśrednij ostatnie N odczytów: co musi robić twój kod

Zaszumiony odczyt poziomu skacze. Wygładzenie go sprawia, że dalsza logika nie reaguje na każde drgnięcie. Trendy pokazują Level i SmoothedLevel obok siebie, cykl po cyklu. Twój filtr tylko wylicza liczbę dla dalszej logiki. Nie przełącza pompy ani zaworu.

Sample i rozmiar okna
Ustaw WindowSize na liczbę całkowitą od 1 do 8 przed Reset. Nie zmieniaj jej w trakcie partii. Sample ON pobiera jeden odczyt Level w każdym cyklu. Sample OFF pozostawia SmoothedLevel i ValidCount bez zmian.
Zapełnianie i zawijanie
Gdy zapisanych jest mniej niż N odczytów, uśredniaj tylko je. Gdy bufor jest pełny, uśredniaj najnowsze N. ValidCount to liczba zapisanych odczytów, maksymalnie N. Zachowaj miejsca po przecinku. Układ bufora zależy od ciebie.
Reset
Gdy Reset jest ON, SmoothedLevel i ValidCount wynoszą 0 w każdym cyklu, nawet gdy Sample jest ON. Nowa partia musi używać tylko nowych odczytów.
Tablica zmiennych

Uśrednij ostatnie N odczytów: wejścia i wyjścia

Twój program czyta wejścia: 4 i ustawia wyjścia: 2. Nazwy są takie same w edytorze każdego producenta.

ZmiennaTyp danychTwój kodCo to oznacza na maszynie
ResetBOOLOdczytujeWejście potrzebne twojemu kodowiPrzycisk Reset
LevelREALOdczytujeWejście potrzebne twojemu kodowiPoziom w zbiorniku, %
SampleBOOLOdczytujeWejście potrzebne twojemu kodowiGdy ON, pobieraj jeden odczyt Level w każdym cyklu.
WindowSizeDINTOdczytujeWejście potrzebne twojemu kodowiIle odczytów uśredniać (N), od 1 do 8. Ustaw przed Reset i nie zmieniaj w trakcie partii.
ValidCountDINTZapisujeWyjście ustawiane przez twój kodIle odczytów jest dotąd zapisanych. Nigdy więcej niż WindowSize.
SmoothedLevelREALZapisujeWyjście ustawiane przez twój kodŚrednia z ostatnich N odczytów, w %.

W Siemens SCL pisz własne zmienne bloku z # na początku, tak jak robi to TIA Portal: #Reset. Rockwell i TwinCAT używaj samej nazwy: Reset.

Testy automatyczne

Uśrednij ostatnie N odczytów: co sprawdzają testy

  1. Działa dla każdego N od 1 do 8, podczas zapełniania i po wielokrotnym zawinięciu.
  2. Gdy Sample jest OFF, średnia i licznik się nie zmieniają. Gdy Sample jest trzymany ON, każdy cykl dodaje odczyt.
  3. Reset opróżnia okno, nawet gdy Sample jest ON. Zachowaj miejsca po przecinku w odczytach.
  1. Wypróbuj Użyj przycisków pod modelem i obserwuj, jak reaguje instalacja.
  2. Sprawdź rozwiązanie Jedno naciśnięcie uruchamia wszystkie sprawdzenia twojego kodu.
  3. Przewiń PRO (wymaga Pro) Jeśli któreś nie przejdzie, cofaj się cykl po cyklu, aby zobaczyć dlaczego.

Utknąłeś w tej misji? Zapytaj członków w Szatnia.

Dlaczego to ważne

Gdzie zobaczysz to w zakładzie

Fale na powierzchni sprawiają, że odczyt poziomu zbiornika w fabryce skacze. Operator chce na wyświetlaczu stabilniejszej liczby.

Uśrednienie kilku ostatnich odczytów wygładza fale. Liczenie pustych miejsc daje fałszywie niski odczyt. Trzymanie starych odczytów zbyt długo ukrywa prawdziwą zmianę.

Gdzie to znajdzieszPrzygotowanie jednej partii napoju

W fabryce napojów zawory wpuszczają odmierzone ilości wody i syropu do zbiornika mieszającego. Mieszadło elektryczne łączy je w jedną partię. Zawór wylotowy przesyła potem napój do zbiornika buforowego. Stamtąd rozlewają go maszyny do napełniania.

  1. Zbiorniki składnikówPrzechowują wodę i syrop
  2. Zbiornik mieszającyNapełnij, wymieszaj i zmierz jedną partięJesteś tutaj
  3. Zbiornik buforowyTrzyma gotowy napój w gotowości
  4. Napełniarka butelekRozlewa napój do butelek
Na prawdziwym obiekcie: miejsca, części i bezpieczeństwo
  • Fabryka napojów — mieszanie wody i syropu
  • Fabryka farb — mieszanie składników do jednolitego koloru
  • Stacja uzdatniania wody — przygotowanie odmierzonej mieszaniny chemicznej
  • Browar — podgrzewanie wody do mycia urządzeń

Pełny zbiornik nie zamyka sam swojego wlotu. Woda płynie, dopóki zawór się nie zamknie, więc otwarty wlot może zalać pomieszczenie.

Grzałka, której nie przykrywa ciecz, może się przegrzać. Prawdziwe zbiorniki mają oprócz programu PLC osobne urządzenia bezpieczeństwa.

Rozmiary, czasy i przekroje to wybory dydaktyczne, a nie rysunek jakiejkolwiek prawdziwej instalacji.

Idź dalej

Następne na drodze