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

Ćwiczenie: Zapisuj raport partii na bieżąco: szkolenie PLC SCADA

Numer partii, czas każdej fazy, sumy i szczytowa temperatura, zamknięte w chwili zakończenia partii.

Niech reaktor sam prowadzi raport partii. Numeruj każdą partię, mierz czas każdej fazy w trakcie jej trwania, zapisuj sumy załadowanych składników, czas wstrzymania i szczytową temperaturę, a po zakończeniu partii, ukończonej lub przerwanej, zamknij raport z jej wynikiem.

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 (sterowanie reaktorem okresowym), na którym działa ta misjaPRO (wymaga Pro) misja
Jak przebiega test

Nowa partia zaczyna czysty raport

Test 1 z 3
Ustawione przez testSprawdzone przez testKrok 8 z 8 · 5.3 s
Level
Zaawansowane
Czas
O nas 45 min
Nagroda
+650 XP
Instalacja
sterowanie reaktorem okresowym 3D
Edytory: Siemens
Język drabinkowy (LAD), SCL
Edytory: Rockwell
Język drabinkowy, Tekst strukturalny
Edytory: Beckhoff
Tekst strukturalny
Etap
46. SCADA 4: raport partii na bieżąco
Wymagane działanie

Zapisuj raport partii na bieżąco: co musi robić twój kod

Sterowanie partią jest napisane i działa. Napisz pod nim zapis partii. Partia trwa, gdy State wynosi 10 lub 20: trzymaj to w InBatch. Gdy InBatch się włącza, zaczyna się nowy zapis: dodaj 1 do BatchNo, ustaw Result na 0, ReportReady na FALSE, każdy czas na 0.0, a PeakTemp na Temp. Gdy Run jest włączone, dodawaj 0.02 w każdym cyklu do czasu trwającej fazy: TimeA w Phase 1, TimeB w 2, TimeHeat w 3, TimeReact w 4, TimeCool w 5, TimeDrain w 6. Gdy State wynosi 20, dodawaj 0.02 do TimeHeld zamiast tego. Gdy InBatch jest włączone, PeakTemp podąża za Temp w górę i nigdy w dół, TotalA kopiuje VolA, a TotalB kopiuje VolB. Partia kończy się, gdy State osiągnie 40 lub 30: ustaw Result na 1 dla zakończonej albo 2 dla przerwanej, a ReportReady na TRUE. Potem nic w zapisie się nie zmienia, dopóki nie zacznie się następna partia. W zakładce Ekran operatora wybierz, jak raport zapisuje czas, co pokazuje obok każdej wartości i co dostaje przerwana partia.

Nowa partia
Gdy InBatch się włącza: BatchNo + 1, Result 0, ReportReady wyłączone, czasy 0, PeakTemp := Temp.
Czasy
0.02 na cykl do bieżącej fazy podczas Run; do TimeHeld, gdy State wynosi 20.
Koniec
State 40: Result 1. State 30: Result 2. Oba ustawiają ReportReady, a raport się zatrzymuje.
Tablica zmiennych

Zapisuj raport partii na bieżąco: wejścia i wyjścia

Twój program czyta wejścia: 9 i ustawia wyjścia: 23. Jeszcze jedno wejście steruje symulacją lub pokazuje odczyt, żebyś mógł testować. Nazwy są takie same w edytorze każdego producenta.

ZmiennaTyp danychTwój kodCo to oznacza na maszynie
StartBOOLOdczytujeWejście potrzebne twojemu kodowiRozpocznij partię
HoldBOOLOdczytujeWejście potrzebne twojemu kodowiWstrzymanie partii
RestartBOOLOdczytujeWejście potrzebne twojemu kodowiWznowienie wstrzymanej partii
AbortBOOLOdczytujeWejście potrzebne twojemu kodowiPrzerwać partię
ResetBOOLOdczytujeWejście potrzebne twojemu kodowiReset do stanu Idle
ChargeFlowREALOdczytujeWejście potrzebne twojemu kodowiPrzepływomierz dozowania, L/s
LevelREALOdczytujeWejście potrzebne twojemu kodowiZawartość, L
TempREALOdczytujeWejście potrzebne twojemu kodowiTemperatura partii, °C
AgitatorRunningBOOLOdczytujeWejście potrzebne twojemu kodowiMieszadło osiągnęło prędkość
CoolingFailBOOLNiepotrzebneDo testowania lub obserwacji; twój kod może je pominąćSpróbuj: zawodzi woda chłodząca
ValveABOOLZapisujeWyjście ustawiane przez twój kodDozowanie z pojemnika A
ValveBBOOLZapisujeWyjście ustawiane przez twój kodDozowanie z pojemnika B
AgitatorBOOLZapisujeWyjście ustawiane przez twój kodUruchom mieszadło
SteamBOOLZapisujeWyjście ustawiane przez twój kodPara do płaszcza
CoolingBOOLZapisujeWyjście ustawiane przez twój kodWoda chłodząca do płaszcza
DrainBOOLZapisujeWyjście ustawiane przez twój kodZawór spustowy dna
RunLampBOOLZapisujeWyjście ustawiane przez twój kodKolumna stanów: Running
HeldLampBOOLZapisujeWyjście ustawiane przez twój kodKolumna stanów: Held
AbortLampBOOLZapisujeWyjście ustawiane przez twój kodKolumna stanów: Aborted
CompleteLampBOOLZapisujeWyjście ustawiane przez twój kodKolumna stanów: Complete
BatchNoINTZapisujeWyjście ustawiane przez twój kodRaport: numer partii
ResultINTZapisujeWyjście ustawiane przez twój kodRaport: 0 w toku, 1 ukończona, 2 przerwana
ReportReadyBOOLZapisujeWyjście ustawiane przez twój kodRaport: partia się zakończyła, a jej raport jest zamknięty
TotalAREALZapisujeWyjście ustawiane przez twój kodRaport: załadowano A, L
TotalBREALZapisujeWyjście ustawiane przez twój kodRaport: załadowano B, L
TimeAREALZapisujeWyjście ustawiane przez twój kodRaport: sekundy ładowania A
TimeBREALZapisujeWyjście ustawiane przez twój kodRaport: sekundy ładowania B
TimeHeatREALZapisujeWyjście ustawiane przez twój kodRaport: sekundy grzania
TimeReactREALZapisujeWyjście ustawiane przez twój kodRaport: sekundy reakcji
TimeCoolREALZapisujeWyjście ustawiane przez twój kodRaport: sekundy chłodzenia
TimeDrainREALZapisujeWyjście ustawiane przez twój kodRaport: sekundy rozładunku
TimeHeldREALZapisujeWyjście ustawiane przez twój kodRaport: sekundy wstrzymania
PeakTempREALZapisujeWyjście ustawiane przez twój kodRaport: najwyższa temperatura partii, °C

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

Testy automatyczne

Zapisuj raport partii na bieżąco: co sprawdzają testy

  1. Każdy Start rozpoczyna nowy raport: BatchNo rośnie o jeden, a każda wartość zaczyna od zera.
  2. Czas każdej fazy liczy się tylko w trakcie tej fazy; czas wstrzymania liczy się osobno.
  3. PeakTemp to najwyższa temperatura partii; TotalA i TotalB to załadowane litry.
  4. Gdy partia się kończy lub zostaje przerwana, Result mówi, co zaszło, włącza się ReportReady, a raport przestaje się zmieniać.
  5. Raport zapisuje czasy w minutach i sekundach, pokazuje każdy cel obok wartości i tworzy raport także dla przerwanej partii.
  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

W zakładzie farmaceutycznym lub spożywczym każda partia zostawia raport, który dział jakości przegląda przed zwolnieniem produktu. SCADA pobiera go z PLC w chwili zakończenia partii.

Partii bez raportu nie można zwolnić, a raportowi spisanemu po fakcie nie można ufać. Tak czy inaczej, dzienna produkcja zostaje wstrzymana albo idzie do utylizacji.

Gdzie to znajdzieszWyprodukuj partię, trzymaj reakcję w ryzach i bezpiecznie zatrzymaj się w każdej chwili

Zakłady chemiczne, farmaceutyczne i spożywcze z produkcją okresową realizują receptury w fazach. Operatorzy mogą wstrzymać partię i ją wznowić albo ją przerwać; sterownik musi dokładnie wiedzieć, co jest bezpieczne w każdym stanie. Niektóre reakcje wydzielają ciepło i jeśli chłodzenie nie nadąża, wymykają się spod kontroli.

  1. ŁadowanieA, potem B
  2. Zareaguj80 °C przez 30 sJesteś tutaj
  3. ChłodzenieDo 40 °C
  4. WyrzutDo odbieralnika
Na prawdziwym obiekcie: miejsca, części i bezpieczeństwo
  • Chemia specjalistyczna i żywice
  • Farmaceutyczne i biotechnologiczne instalacje okresowe
  • Składniki i aromaty spożywcze

Niekontrolowane reakcje doprowadziły do katastrof, takich jak Seveso (1976) i T2 Laboratories (2007). Prawdziwe reaktory mają niezależne wyłączenia przy wysokiej temperaturze i układy upustowe.

ISA-88 definiuje użyty tu model stanów, więc operatorzy na całym świecie wiedzą, co znaczą Hold i Abort.

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

Idź dalej

Następne na drodze