KWALIFIKACJA ELM6 - TEST WIEDZY NR 2

PYTANIE NR 29.
Przyjrzyj się poniższemu fragmentowi kodu programu sterującego urządzeniem mechatronicznym:
if (temperatura > 70) {
    stop();
    alarm("Temperatura przekroczyła bezpieczny limit");
}
Co zrobi urządzenie, gdy temperatura przekroczy 70 stopni?
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
Warunek temperatura > 70 powoduje wykonanie instrukcji w bloku. Najpierw wywołana jest funkcja stop(), czyli zatrzymanie pracy urządzenia, a następnie alarm(...), co oznacza wysłanie/zgłoszenie komunikatu alarmowego o przekroczeniu bezpiecznego limitu.

Pełne wyjaśnienie:

W pokazanym fragmencie programu kluczowa jest instrukcja warunkowa if. Oznacza ona: "jeżeli spełniony jest warunek, wykonaj kod w nawiasach klamrowych". Warunek brzmi temperatura > 70, czyli program reaguje dopiero wtedy, gdy zmienna temperatura ma wartość większą niż 70.

Gdy temperatura przekroczy 70, wykonają się po kolei dwie instrukcje:

  • stop(); – wywołanie funkcji zatrzymania (w praktyce może oznaczać zatrzymanie napędu, przerwanie cyklu, przejście w stan bezpieczny).
  • alarm("Temperatura przekroczyła bezpieczny limit"); – zgłoszenie alarmu z podanym komunikatem (np. do panelu operatorskiego, logu zdarzeń albo systemu nadrzędnego).

Dlatego poprawna odpowiedź to: urządzenie zatrzyma się i wyśle komunikat o alarmie.

Dlaczego pozostałe odpowiedzi są niepoprawne?

  • "Urządzenie zignoruje wzrost temperatury" – kod nie ignoruje; przeciwnie, zawiera warunek i reakcję po jego spełnieniu.
  • "Urządzenie zwiększy swoją temperaturę" – program nie steruje tu wzrostem temperatury, tylko reaguje na jej wartość. Brak instrukcji typu "grzej" lub zwiększania nastawy.
  • "Urządzenie automatycznie się zresetuje" – reset nie wynika z tego fragmentu. Żeby reset nastąpił, musiałaby pojawić się odpowiednia funkcja/komenda resetu.

Wskazówka egzaminacyjna: w pytaniach o kod najpierw odczytaj warunek, a potem sprawdź, jakie funkcje są wykonywane w bloku i w jakiej kolejności.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
Oznacza sprawdzenie, czy aktualna wartość zmiennej temperatura jest większa niż 70. Jeśli tak, program wykona wszystkie polecenia wewnątrz bloku { ... }. Jeśli nie, ten blok zostanie pominięty.
Wykona się kod w bloku: najpierw stop() (zatrzymanie pracy), a potem alarm(...) (zgłoszenie alarmu z komunikatem). To typowa reakcja bezpieczeństwa na przekroczenie progu.
Kolejność ma znaczenie: najpierw system przechodzi do stanu bezpiecznego (zatrzymanie), a następnie informuje operatora lub system nadrzędny o przyczynie. W praktyce minimalizuje to ryzyko dalszego wzrostu temperatury.
Nie, zapis > 70 oznacza "ściśle większe niż 70". Dla wartości równej 70 blok się nie wykona. Gdyby miało działać także dla 70, zwykle stosuje się warunek >= 70.
To wywołanie procedury zgłaszającej stan alarmowy, np. zapalenie lampki, wpis do rejestru zdarzeń, wysłanie komunikatu na HMI/SCADA lub ustawienie bitu alarmowego. Dokładne działanie zależy od biblioteki/sterownika.
Najczęstsze to: pomylenie operatora porównania (np. > z <), przeoczenie progu (70), oraz dopisywanie w myślach działań, których nie ma w kodzie (np. "reset"). Pomaga czytanie warunek → blok → kolejność poleceń.
Stosuje się dwa progi, np. włączenie alarmu przy 71, a wyłączenie dopiero poniżej 69. W kodzie realizuje się to zwykle dodatkową zmienną stanu alarmu i osobnymi warunkami włączania/wyłączania, aby uniknąć częstych przełączeń.
Trzeba znać implementację: dokumentację biblioteki/sterownika oraz mapowanie na wyjścia (np. odcięcie napędu, zatrzymanie programu, bezpieczny moment). Na egzaminie zakłada się znaczenie zgodne z nazwą funkcji, jeśli brak innych informacji.
Tak, na poziomie programowym jest to proste zabezpieczenie: wykrywa przekroczenie progu i wywołuje reakcję awaryjną oraz alarm. W praktyce często łączy się je także z zabezpieczeniami sprzętowymi (np. termik, czujnik bezpieczeństwa).
Ćwicz krótkie fragmenty: instrukcje if, pętle, funkcje oraz obsługę sygnałów z czujników. Zawsze zadawaj sobie pytania: jaki jest warunek, co dzieje się po jego spełnieniu i czy działania są wykonywane w kolejności zapisanej w kodzie.
info

To pytanie poprawnie rozwiązuje 80% zdających egzamin. średnio łatwe

W praktyce zawodowej kluczowe jest to, że warunek temperatura &gt; 70 powoduje wykonanie instrukcji w bloku.

Źródła:

  • ISO/IEC 9899:2018 (C18), rozdział 6.8.4 "The if statement"
  • Brian W. Kernighan, Dennis M. Ritchie, "The C Programming Language", wyd. 2, rozdział 3 "Control Flow" (instrukcja if/else)
  • cppreference.com, "if statement (C)", https://en.cppreference.com/w/c/language/if (dostęp 2026-02-26)

Materiały:

  • Podstawy programowania strukturalnego (instrukcje warunkowe i bloki kodu)
  • Materiały dydaktyczne z programowania sterowników/układów wbudowanych używanych w mechatronice
  • Ćwiczenia: pisanie prostych warunków alarmowych dla czujników (temperatura, ciśnienie, prąd)

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego