KWALIFIKACJA ELM6 - TEST WIEDZY NR 1

PYTANIE NR 33.
Rozważ poniższy fragment kodu napisany w języku programowania sekwencyjnym:
    START;
    IF (Sensor1 = ON) THEN
        Motor1 = ON;
    ELSE
        Motor1 = OFF;
    ENDIF;
    STOP;
Jeżeli sensor1 jest wyłączony, jaki będzie stan Motor1 po wykonaniu tego kodu?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Gdy Sensor1 jest wyłączony, warunek (Sensor1 = ON) jest fałszywy, więc wykonuje się gałąź ELSE. W tej gałęzi program przypisuje Motor1 = OFF, dlatego po wykonaniu instrukcji IF/ELSE stan wyjścia Motor1 będzie wyłączony, niezależnie od wcześniejszego stanu.

Pełne wyjaśnienie:

Fragment programu zawiera klasyczną instrukcję warunkową IF ... THEN ... ELSE ... ENDIF. Taka konstrukcja działa w ten sposób, że:

  • jeśli warunek w nawiasie jest spełniony, wykonywane są instrukcje po słowie THEN,
  • jeśli warunek nie jest spełniony, wykonywane są instrukcje po słowie ELSE.

W rozpatrywanym kodzie warunek brzmi: (Sensor1 = ON). Założenie z pytania mówi, że Sensor1 jest wyłączony, czyli nie ma stanu ON. To oznacza, że warunek jest fałszywy, więc program przechodzi do gałęzi ELSE i wykonuje polecenie ustawienia wyjścia: Motor1 = OFF.

Dlatego odpowiedź OFF jest poprawna: program wprost wymusza stan OFF w sytuacji, gdy czujnik nie jest ON.

Pozostałe odpowiedzi są błędne, bo:

  • ON ignoruje fakt, że przy niespełnionym warunku wykonywana jest gałąź ELSE, która ustawia OFF.
  • Nieokreślony sugeruje brak jednoznaczności, ale w tym kodzie stan jest jednoznacznie przypisywany w obu gałęziach (ON albo OFF).
  • Kod jest błędny, nie da się określić stanu Motor1 jest nieuzasadnione: składnia IF/ELSE/ENDIF jest poprawna logicznie, a wynik wynika wprost z przypisania w gałęzi ELSE.

W praktyce takie instrukcje stosuje się np. do prostego sterowania napędem: czujnik aktywny → włącz napęd, czujnik nieaktywny → wyłącz napęd. To podstawowy wzorzec w automatyce i mechatronice.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Instrukcja IF/ELSE wybiera jedną z dwóch ścieżek wykonania programu. Gdy warunek jest spełniony, wykonywany jest blok po THEN. Gdy warunek jest niespełniony, wykonywany jest blok po ELSE. To podstawowy mechanizm podejmowania decyzji w sterowniku.
Taki zapis oznacza sprawdzenie, czy wejście Sensor1 ma stan ON. Jeśli tak, warunek jest prawdziwy. Jeśli czujnik jest wyłączony (OFF), warunek jest fałszywy i program przechodzi do części ELSE.
Bo przy fałszywym warunku wykonywana jest gałąź ELSE, a w niej program ustawia wyjście: Motor1 = OFF. To jest jawne przypisanie stanu, więc wynik nie zależy od domysłów ani od poprzedniej wartości wyjścia.
W wielu programach brak ELSE może zostawić wyjście bez zmiany w danym cyklu, więc stan zależałby od wcześniejszej wartości (tzw. "ostatni stan"). W tym zadaniu jednak ELSE występuje, więc stan Motor1 jest określony w każdym przypadku.
Najczęściej pomija się gałąź ELSE albo zakłada, że po słowie START silnik zawsze ma się włączyć. Inny błąd to nieuwaga: uczeń czyta warunek pobieżnie i nie sprawdza, czy czujnik jest ON czy OFF w treści zadania.
Niekoniecznie. W wielu przykładach START/STOP to nazwy kroków, etykiet lub procedur, a nie automatyczne komendy sterujące silnikiem. O stanie wyjścia decydują przede wszystkim przypisania typu Motor1 = ON/OFF wykonane w logice programu.
Wystarczy ocenić warunek logiczny: jeśli wejście nie jest ON, warunek jest fałszywy. Następnie śledzi się przepływ programu: fałsz → wykonanie bloku ELSE. Na końcu sprawdza się, jakie przypisanie w tym bloku ustawia wyjście.
Gdy urządzenie ma reagować bezpośrednio na sygnał z czujnika, np. przenośnik uruchamia się po wykryciu detalu, a zatrzymuje po zaniku detalu. To typowe w prostych stacjach montażowych, sorterach i układach transportu wewnętrznego.
Zależy od języka i środowiska. W niektórych językach symbol = bywa używany do porównania w warunku, a przypisanie jest realizowane inaczej (np. :=). W praktyce na egzaminie trzeba znać konwencję przyjętą w danym zapisie i czytać kontekst instrukcji.
Może realizować prostą blokadę funkcjonalną (brak sygnału → wyłącz napęd), ale nie zastępuje to wymagań bezpieczeństwa maszyn. W rzeczywistych układach bezpieczeństwa stosuje się dedykowane obwody/urządzenia i procedury, a PLC standardowe nie zawsze spełnia wymagany poziom niezawodności.
info

Około 71% zdających odpowiada poprawnie na to pytanie. średnio łatwe

Według specjalistów z branży: "Gdy Sensor1 jest wyłączony, warunek (Sensor1 = ON) jest fałszywy, więc wykonuje się gałąź ELSE."

Źródła:

  • IEC 61131-3:2013, Programmable controllers — Part 3: Programming languages (Structured Text / języki programowania PLC) – opis konstrukcji IF/THEN/ELSE
  • PN-EN 61131-3 (odpowiednik europejski/PN dla IEC 61131-3), część dotycząca języków programowania PLC i semantyki instrukcji warunkowych

Materiały:

  • Materiały dydaktyczne do podstaw PLC i języka ST (Structured Text) zgodnego z IEC 61131-3
  • Ćwiczenia z analizy przepływu sterowania (IF/ELSE) na krótkich fragmentach kodu
  • Dokumentacja środowiska PLC używanego w pracowni (np. instrukcja języka ST/SCL w danym systemie)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego