KWALIFIKACJA ELM6 - CZERWIEC 2015

PYTANIE NR 29.
Do sterownika PLC załadowano program. Która funkcja logiczna odpowiada temu programowi?
Ilustracja przedstawia fragment programu logicznego w postaci listy instrukcji, który może być załadowany do sterownika PLC.
A.
B.
C.
D.
Wyjaśnienie poprawnej odpowiedzi:
W IL/STL instrukcje wykonują się sekwencyjnie, a każda operuje na wyniku w akumulatorze.
Po LD I0.0 wykonywane jest XOR I0.1, więc powstaje (I0.0 XOR I0.1). Następnie A I0.2 oznacza AND z I0.2, czyli ((I0.0 XOR I0.1) AND I0.2). Na końcu wynik jest przypisany do Q0.0.

Pełne wyjaśnienie:

W języku listy instrukcji IL/STL program wykonuje się linia po linii. Kluczowa jest idea akumulatora (wyniku pośredniego): instrukcja LD ładuje wartość do akumulatora, a kolejne instrukcje logiczne modyfikują ten wynik.

Analiza podanego kodu:

  • LD I0.0 – do akumulatora trafia bieżący stan wejścia I0.0.
  • XOR I0.1 – akumulator staje się wynikiem I0.0 XOR I0.1. XOR (różnica symetryczna) daje 1 wtedy, gdy dokładnie jedno z dwóch wejść ma stan 1.
  • A I0.2 – "A" oznacza logiczne AND z operandem, więc nowy wynik to (I0.0 XOR I0.1) AND I0.2.
  • = Q0.0 – wartość z akumulatora zostaje przypisana na wyjście Q0.0.

Dlatego poprawna funkcja logiczna to (I0.0 XOR I0.1) AND I0.2: najpierw powstaje wynik XOR z dwóch pierwszych wejść, a dopiero potem jest on "bramkowany" przez I0.2 (warunek zezwolenia).

Dlaczego pozostałe propozycje są błędne:

  • (I0.0 AND I0.1) OR I0.2 wymagałoby najpierw obliczyć AND I0.0 z I0.1, a potem wykonać OR z I0.2. Taki przebieg nie odpowiada sekwencji z XOR i końcowym AND.
  • (I0.0 OR I0.1) AND I0.2 myli XOR z OR. OR daje 1 już wtedy, gdy co najmniej jedno wejście jest 1, natomiast w programie użyto XOR, czyli warunku rozłączności.
  • I0.0 XOR (I0.1 AND I0.2) ma inne nawiasowanie: najpierw trzeba byłoby policzyć AND I0.1 z I0.2, a dopiero potem XOR z I0.0. W IL/STL oznaczałoby to inną kolejność instrukcji (najpierw praca na I0.1 i I0.2, potem XOR z I0.0).

Wskazówka egzaminacyjna: czytaj IL "od góry do dołu" i po każdej linii zapisz na kartce, co jest aktualnie w akumulatorze. To niemal zawsze prowadzi do jednoznacznej funkcji boolowskiej.

Dodatkowe pytania

Dodatkowe pytania (FAQ):
LD (load) ładuje do akumulatora wynik bieżącą wartość wskazanego bitu (np. wejścia). Od tej chwili kolejne instrukcje logiczne (AND/OR/XOR) działają na tej wartości, modyfikując ją krok po kroku.
XOR daje 1 tylko wtedy, gdy dokładnie jeden z dwóch sygnałów ma stan 1. OR daje 1, gdy co najmniej jeden sygnał ma 1. To częsty "hak" na egzaminie, bo OR jest intuicyjniejsze, ale nie jest równoważne XOR.
Przepisz program linia po linii i po każdej instrukcji zapisz, co jest w akumulatorze. Po LD masz pierwszy operand, po XOR/AND/OR tworzysz wyrażenie z nawiasem, a na końcu = tylko przypisuje wynik do wyjścia.
W IL/STL nie zapisujesz całego wyrażenia naraz, tylko budujesz je sekwencyjnie. Każda kolejna operacja używa aktualnego wyniku w akumulatorze, więc wcześniejsze działania stają się "wewnętrznym nawiasem" w końcowej funkcji logicznej.
Instrukcja A oznacza logiczne AND z podanym bitem (tu: I0.2). W praktyce "przepuszcza" dotychczasowy wynik tylko wtedy, gdy I0.2 ma stan 1. Gdy I0.2=0, wynik po AND będzie 0 niezależnie od poprzednich obliczeń.
I oznacza obszar wejść, a Q obszar wyjść. Zapis I0.0 to konkretny bit wejściowy, a Q0.0 to bit wyjściowy. Program oblicza logikę na wejściach, a potem przypisuje wynik na wyjście.
W typowym zapisie IL/STL = na końcu sieci oznacza przypisanie wyniku z akumulatora do wskazanego bitu (np. Q0.0). To nie jest porównanie jak w matematyce, tylko zapisanie obliczonej wartości na wyjściu.
Najczęściej myli się XOR z OR, pomija się sekwencyjność (akumulator) i błędnie zakłada inne nawiasowanie, np. że AND dotyczy tylko ostatniego wejścia. Pomaga metoda: po każdej linii dopisz aktualny wzór na wynik.
XOR stosuje się, gdy dwa warunki mają być wzajemnie wykluczające się, np. wybór jednego z dwóch trybów, sygnały kierunku lewo/prawo, albo detekcja "różnicy" stanów dwóch czujników. Potem często dodaje się AND jako warunek zezwolenia.
Wybierz 2–3 charakterystyczne przypadki wejść (np. wszystkie zera, pojedyncza jedynka, dwie jedynki) i przejdź kod linia po linii, aktualizując wynik. Jeśli w tych przypadkach porównywane funkcje dają różne wyniki, wiesz, że nie są równoważne.
info

To pytanie poprawnie rozwiązuje 44% zdających egzamin. trudne

Specjaliści zwracają uwagę: "W IL/STL instrukcje wykonują się sekwencyjnie, a każda operuje na wyniku w akumulatorze.Po LD I0.0 wykonywane jest XOR I0.1, więc powstaje (I0.0 XOR I0.1)."

Źródła:

  • IEC 61131-3:2013, Programmable controllers – Part 3: Programming languages (opis języków PLC, w tym Instruction List/IL oraz semantyka wykonywania instrukcji)
  • CODESYS Online Help – Instruction List (IL), https://help.codesys.com/ (sekcja dotycząca IL/STL i instrukcji logicznych) - accessed 2026-02-27
  • Siemens Industry Online Support – opisy języka STL/Statement List dla sterowników SIMATIC (instrukcje LD/AND/OR/XOR i praca na wyniku pośrednim), https://support.industry.siemens.com/ - accessed 2026-02-27

Materiały:

  • Norma IEC 61131-3 (opis języków PLC i semantyki IL)
  • Dokumentacja środowiska PLC (pomoc/Help) dla listy instrukcji IL/STL
  • Zadania z algebry Boole’a: tablice prawdy dla AND/OR/XOR

Aktualizacja pytania: 31.03.2026



Aktualizacja pytania: 31.03.2026
📡 Brak połączenia internetowego