Wymaganie zadania brzmi: mimo chwilowych logicznych stanów 0 na wejściu %I0.2 (przy spełnionym warunku %M0.0=1), wyjście %Q0.7 ma pozostać w stanie 1 przez 5 minut licząc od pierwszego uaktywnienia %I0.2. Kluczowe są więc dwa elementy: uruchomienie w chwili pierwszej aktywacji (najczęściej zbocze narastające) oraz podtrzymanie wyjścia przez stały czas, nawet gdy wejście chwilowo spada do 0.
Timer TON (opóźnione załączenie) działa tak, że zaczyna odmierzać czas dopiero gdy jego wejście jest w stanie 1 i zwykle wymaga utrzymania tego stanu przez cały okres odmierzania. Jeżeli w trakcie odmierzania pojawią się chwilowe zera, w typowej implementacji dochodzi do przerwania odmierzania i/lub resetu wyjścia timera. To jest sprzeczne z wymaganiem "niezależnie od krótkich stanów 0".
Timer TP (impuls) jest przeznaczony właśnie do sytuacji, gdy krótkie zdarzenie (uaktywnienie wejścia) ma wyzwolić impuls o zadanej długości. Po wykryciu aktywacji (najczęściej zbocza narastającego na wejściu timera) timer ustawia wyjście na 1 na zadany czas (np. PT = 5 minut) i utrzymuje je przez ten czas, nawet jeśli sygnał wejściowy w międzyczasie zaniknie. To dokładnie odpowiada opisowi: "5 minut od pierwszego uaktywnienia".
Dlaczego pozostałe propozycje są błędne:
- "Należy w miejsce instrukcji zegara TON wstawić instrukcję TONR" — timer retencyjny zachowuje wartość odmierzania między cyklami/zanikami, ale nie gwarantuje prostego "impulsu 5 minut od pierwszego wyzwolenia". Może też prowadzić do nieoczekiwanego wznawiania odmierzania po kolejnych aktywacjach, zamiast jednorazowego impulsu.
- "Należy uzupełnić program o instrukcję podtrzymania stanu %I0.2" — wejście fizyczne %I0.2 jest sygnałem z obiektu i nie powinno być "podtrzymywane" programowo jako wejście; podtrzymywać należy efekt logiczny (np. marker lub wyjście) na podstawie zdarzenia. W praktyce i tak prowadziłoby to do implementacji funkcji impulsu/podtrzymania, którą najczytelniej realizuje TP.
- "Należy zmienić instrukcję AND na instrukcję OR" — zmiana operatora logicznego nie rozwiązuje problemu czasowego i odporności na chwilowe zaniki. To modyfikuje warunek załączenia, ale nie gwarantuje utrzymania stanu 1 przez 5 minut od pierwszego zdarzenia.
Wniosek: aby spełnić wymaganie stałego podtrzymania %Q0.7 przez 5 minut od pierwszej aktywacji %I0.2 (mimo krótkich spadków), właściwą modyfikacją jest użycie timera TP zamiast TON.