KWALIFIKACJA ELM6 - TEST WIEDZY NR 1

PYTANIE NR 36.
Wybierz prawidłowy opis działania poniższego fragmentu kodu programowania sterownika PLC.
IF S THEN
    M := TRUE;
ELSE 
    M := FALSE;
END_IF;
Gdzie S to przycisk start, a M to silnik.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Kod działa jak proste odwzorowanie:
W każdym cyklu pracy PLC sprawdzany jest stan wejścia S. Jeśli S=TRUE (przycisk wciśnięty), to M ustawiane jest na TRUE, a gdy S=FALSE, M jest FALSE. Nie ma tu pamięci ani podtrzymania, więc silnik pracuje tylko podczas trzymania przycisku.

Pełne wyjaśnienie:

Pokazany fragment programu w języku ST realizuje czystą logikę kombinacyjną, czyli taką, która nie zapamiętuje stanu. W sterowniku PLC instrukcje są wykonywane cyklicznie (w kolejnych skanach programu), dlatego wynik przypisania do zmiennej M jest w praktyce odświeżany w każdym obiegu.

Instrukcja:

IF S THEN M := TRUE; ELSE M := FALSE; END_IF;

oznacza: gdy sygnał S jest aktywny (TRUE), wyjście/zmienna M ma być TRUE; w przeciwnym razie ma być FALSE. Taki zapis można uprościć do równoważnej zależności M := S. W konsekwencji silnik (M) pracuje wyłącznie wtedy, gdy przycisk start (S) jest wciśnięty, a po puszczeniu sygnał znika i w następnym skanie PLC M przechodzi na FALSE.

Dlaczego pozostałe opisy nie pasują?

  • Opis mówiący o pozostaniu włączonym po puszczeniu przycisku odpowiada sterowaniu bistabilnemu lub samopodtrzymaniu. Do tego potrzebny byłby element pamięci (np. SET/RESET albo warunek z podtrzymaniem), którego w kodzie nie ma.
  • Stwierdzenie, że silnik nie uruchamia się nigdy, przeczy temu, że przy S=TRUE program jawnie ustawia M:=TRUE.
  • Wariant z wyłączeniem po czasie wymagałby użycia timera (funkcji czasowej) lub dodatkowej logiki odmierzającej czas. W przedstawionym fragmencie nie ma żadnych mechanizmów czasowych, więc zachowanie jest natychmiastowe w sensie skanu PLC.

W praktyce takie sterowanie nazywa się często JOG (ruch impulsowy): napęd działa tylko tak długo, jak długo operator utrzymuje sygnał sterujący. To przydatne w trybie ręcznym, do testów i precyzyjnego pozycjonowania.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
To instrukcja warunkowa: gdy warunek jest spełniony, wykonuje się blok po THEN, a gdy nie jest spełniony – blok po ELSE. W PLC kod jest wykonywany cyklicznie, więc decyzja i przypisania są odświeżane w każdym skanie programu.
To proste odwzorowanie stanu: gdy S=TRUE, program ustawia M=TRUE, a gdy S=FALSE, ustawia M=FALSE. Nie ma tu pamięci ani podtrzymania, więc M "kopiuje" S w kolejnych cyklach pracy PLC.
Samopodtrzymanie wymaga elementu pamięci (np. logiki SET/RESET, przerzutnika SR/RS albo warunku z "podtrzymaniem" M). Tutaj w gałęzi ELSE M jest zawsze zerowane, więc po zaniku S silnik zostaje wyłączony w kolejnym skanie.
JOG to sterowanie chwilowe: napęd działa tylko podczas aktywnego sygnału z przycisku. Pokazany kod dokładnie to realizuje, bo M jest TRUE wyłącznie wtedy, gdy S jest TRUE. Po puszczeniu przycisku sygnał zanika i M przechodzi na FALSE.
Najczęściej w trybie ręcznym/serwisowym: do krótkich ruchów, pozycjonowania, testów napędu, ustawiania mechanizmu oraz w sytuacjach, gdy po puszczeniu przycisku napęd ma się zatrzymać bez zwłoki. To zwiększa kontrolę operatora nad ruchem.
W samopodtrzymaniu używa się pamięci stanu, np. przerzutnika SR/RS albo warunku w stylu "M := (M AND NOT STOP) OR START". Kluczowe jest to, że po puszczeniu START zmienna M nadal może pozostać TRUE, dopóki nie zadziała STOP.
Logicznie wyjście zostanie ustawione na FALSE przy najbliższym wykonaniu programu, czyli w kolejnym cyklu zadania (skanie). W praktyce jest to bardzo szybko (zależnie od czasu cyklu), ale na egzaminie warto pamiętać, że PLC działa dyskretnie w cyklach.
Najczęstsze to: mylenie sterowania chwilowego z bistabilnym, zakładanie "pamięci" mimo braku SET/RESET, ignorowanie gałęzi ELSE (która tu zeruje M), oraz dopowiadanie działania timera, choć w kodzie nie ma funkcji czasowych.
Jeśli w programie nie ma bloków/funkcji czasowych (np. timerów) ani zmiennych odmierzających czas, to logika jest "natychmiastowa" w sensie skanu PLC. Sam IF-THEN-ELSE i przypisania TRUE/FALSE nie realizują żadnego odliczania.
Ćwicz sprowadzanie fragmentów do prostych zależności (np. M := S), analizuj oba przypadki warunku (TRUE i FALSE), pamiętaj o cyklu skanowania PLC oraz porównuj sterowanie chwilowe z rozwiązaniami z pamięcią (SR/RS, samopodtrzymanie, STOP/START).
info

Statystycznie 69% uczniów zna prawidłową odpowiedź. średnie

W praktyce zawodowej kluczowe jest to, że kod działa jak proste odwzorowanie:W każdym cyklu pracy PLC sprawdzany jest stan wejścia S.

Źródła:

  • IEC 61131-3:2013, Programmable controllers – Part 3: Programming languages (Structured Text, instrukcje warunkowe IF oraz semantyka wykonywania programu)
  • Siemens, "SIMATIC S7-1200/S7-1500, SCL (Structured Control Language)" (manual/programming guide), rozdziały dotyczące instrukcji IF i przypisań w ST/SCL
  • Beckhoff, "TwinCAT 3 PLC – Manual/Documentation", część dotycząca ST oraz cyklu wykonywania programu PLC (scan cycle/task cycle)

Materiały:

  • Podręcznik do programowania PLC w ST (rozdziały: instrukcje warunkowe, typy danych BOOL)
  • Materiały szkolne o cyklu skanowania PLC i mapowaniu wejść/wyjść
  • Ćwiczenia porównujące sterowanie chwilowe (JOG) z samopodtrzymaniem i blokiem SR/RS

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego