KWALIFIKACJA ELM6 - TEST WIEDZY NR 4

PYTANIE NR 36.
Zinterpretuj poniższy fragment kodu programowania sterownika PLC.
IF NOT E THEN
    M := FALSE;
END_IF;
Gdzie E to czujnik krańcowy, a M to silnik.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Warunek IF NOT E jest spełniony, gdy sygnał z krańcówki E ma wartość FALSE (czujnik nieaktywny). Wtedy wykonywana jest instrukcja M := FALSE, czyli ustawienie sygnału sterującego silnikiem na 0. Zatem przy nieaktywnej krańcówce silnik zostaje wyłączony.

Pełne wyjaśnienie:

Fragment programu jest zapisany w języku ST (Structured Text). Konstrukcja IF ... THEN ... END_IF oznacza: "jeżeli warunek jest prawdziwy, wykonaj instrukcje wewnątrz bloku".

Tutaj warunek ma postać NOT E. Operator NOT neguje wartość logiczną, więc:

  • gdy E = TRUE (krańcówka aktywna), wtedy NOT E = FALSE i blok nie wykona się,
  • gdy E = FALSE (krańcówka nieaktywna), wtedy NOT E = TRUE i blok się wykona.

Wewnątrz bloku jest przypisanie M := FALSE. Znak := w ST oznacza nadanie wartości zmiennej (to nie jest porównanie). Ustawienie M na FALSE oznacza wyłączenie sygnału sterującego silnikiem (w typowym modelu: 0 na wyjściu/zmiennej sterującej).

Dlaczego pozostałe odpowiedzi są błędne?

  • "Jeżeli czujnik krańcowy jest aktywny, silnik zostaje wyłączony" – to byłoby prawdą dla warunku IF E THEN M := FALSE, ale tutaj jest negacja NOT E.
  • "Jeżeli czujnik krańcowy jest aktywny, silnik zostaje włączony" – w kodzie nie ma żadnej instrukcji ustawiającej M := TRUE, więc nie wynika z niego włączanie.
  • "Jeżeli czujnik krańcowy jest nieaktywny, silnik zostaje włączony" – jest sprzeczne z jednoznacznym przypisaniem M := FALSE wykonywanym właśnie przy nieaktywnym E.

Wskazówka egzaminacyjna: zawsze "przetłumacz" warunek na proste zdanie (tu: "jeżeli E jest FAŁSZEM") i dopiero potem oceniaj skutek przypisania.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Oznacza: "jeżeli sygnał E jest równy FALSE, to wykonaj instrukcje w bloku". Operator NOT odwraca wartość logiczną, więc blok uruchamia się tylko wtedy, gdy czujnik (E) jest nieaktywny.
Bo spełniony jest warunek NOT E, a w środku bloku znajduje się przypisanie M := FALSE. To bezpośrednio ustawia sygnał sterujący silnikiem na 0, czyli wymusza stan "wyłączony".
Nie. W kodzie występuje tylko instrukcja M := FALSE. Nie ma żadnej gałęzi ELSE ani przypisania M := TRUE, więc fragment nie opisuje włączania, a jedynie warunkowe wyłączanie.
Dla typu BOOL operator NOT zamienia TRUE na FALSE i FALSE na TRUE. To podstawowy operator logiki boolowskiej, często używany do sprawdzenia "braku sygnału", np. z krańcówki, czujnika lub zezwolenia.
W ST zapis := oznacza przypisanie (nadanie wartości zmiennej). Porównania realizuje się operatorami typu =, <>, <. Na egzaminie to częsty haczyk: ":=" zawsze zmienia wartość zmiennej.
Stosuje się je m.in. jako blokadę (interlock) lub prostą logikę "fail-safe" na poziomie aplikacji: jeśli sygnał zezwolenia znika (awaria przewodu, rozłączenie krańcówki), sterownik wymusza wyłączenie wyjścia sterującego napędem.
Najczęściej: pominięcie negacji (czytanie "IF NOT E" jak "IF E"), automatyczne skojarzenie "krańcówka aktywna = stop" niezależnie od kodu oraz dopisywanie w głowie gałęzi ELSE ("to pewnie włącza"), której w programie nie ma.
Gdy E = TRUE, warunek NOT E jest fałszywy, więc blok nie wykona się. Ten fragment nie zmienia wtedy wartości M. Jeżeli gdzieś indziej M jest ustawiane, to tamten kod decyduje o stanie.
Najprościej użyć gałęzi ELSE, np. ustawiać M na TRUE w przeciwnym przypadku. Trzeba jednak uważać na bezpieczeństwo i logikę maszyny: samo "włącz, gdy E aktywne" może być niepoprawne zależnie od roli krańcówki.
Ćwicz czytanie krótkich bloków ST: IF/ELSE, AND/OR/NOT, przypisania BOOL. Zawsze twórz tabelkę przypadków (E=TRUE/FALSE) i sprawdzaj, czy blok się wykona oraz co dokładnie zostanie przypisane do wyjścia.
info

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

Specjaliści zwracają uwagę: "Warunek IF NOT E jest spełniony, gdy sygnał z krańcówki E ma wartość FALSE (czujnik nieaktywny)."

Źródła:

  • IEC 61131-3:2013, Programmable controllers – Part 3: Programming languages (Structured Text: instrukcja IF i operatory logiczne)
  • CODESYS Online Help – Structured Text (ST) / IF statement and boolean operators: https://help.codesys.com/ (sekcje dotyczące ST/IF/Operators) - accessed 2026-02-18
  • Siemens Industry Online Support – dokumentacja SCL (Structured Control Language) / instrukcje warunkowe IF oraz typ BOOL: https://support.industry.siemens.com/ (sekcje dot. SCL/IF/BOOL) - accessed 2026-02-18

Materiały:

  • Podręcznik do IEC 61131-3 (opis języka Structured Text)
  • Dokumentacja środowiska PLC używanego w pracowni (np. opis ST/SCL i typów BOOL)
  • Ćwiczenia laboratoryjne: pisanie krótkich programów z IF/ELSIF/ELSE i testowanie w symulatorze PLC

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego