W języku IL (Instruction List) wykonanie instrukcji odbywa się sekwencyjnie, a wiele operacji logicznych korzysta z bieżącego wyniku (często nazywanego akumulatorem/registr em wyniku logicznego).
Krok po kroku:
- LD %M0.0 – wczytuje (ładuje) wartość logiczną bitu %M0.0 jako aktualny wynik.
- OR %M0.1 – wykonuje operację alternatywy logicznej pomiędzy aktualnym wynikiem a bitem %M0.1. W logice boolowskiej OR jest operatorem inkluzywnym: wynik jest TRUE, gdy co najmniej jeden argument jest TRUE.
- ST %M0.2 – zapisuje uzyskany wynik do bitu %M0.2.
Wniosek: %M0.2 zostanie ustawiony na TRUE wtedy i tylko wtedy, gdy %M0.0 = TRUE lub %M0.1 = TRUE (również gdy oba są TRUE).
Dlaczego pozostałe odpowiedzi są błędne?
- "%M0.0 prawdą i %M0.1 fałszem" – to opisuje tylko jeden z przypadków, w których OR daje TRUE. Pomija sytuację, gdy %M0.1 jest TRUE.
- "%M0.0 fałszem lub %M0.1 prawdą" – OR nie wymaga, aby %M0.0 był fałszywy; jeśli %M0.0 jest TRUE, wynik i tak może być TRUE niezależnie od %M0.1.
- "%M0.0 fałszem i %M0.1 fałszem" – dla OR taki zestaw daje FALSE, więc %M0.2 nie zostanie ustawiony na TRUE.
W praktyce taki fragment programu odpowiada sytuacji, w której znacznik stanu jest aktywowany przez dowolny z dwóch sygnałów (np. dwa przyciski START, dwa warunki zezwolenia, dwa czujniki wykrywające to samo zdarzenie).