Zadanie, siemens LAD - Gaszenie/zapalanie lamp i diod

Witam,
Uczę się na własną rękę programowania w LAD. Chciałbym rozwiązać następujący problem:

Sterownik PLC zapala diody i lampy.
Jeżeli dioda i lampa = 0, przycisk S1 zapala diody.
Ponowne naciśnięcie S1, jeżeli diody=1 - zapala lampy.
Diody i lampy gaszone są przyciskiem S2,

Próbowałem zrobić na wiele sposobów, wydaje mi się, że najczytelniej jest na przerzutnikach :
https://zapodaj.net/cb3ed10aa969d.jpg.html

Obecnie przycisk S1 zapala mi diody i lampy jednocześnie, dokładnie to chyba cykl po cyklu. Najpierw diody potem lampy.
A ja chciałbym aby po zapaleniu diod program zaczekał na ponowne wciśnięcie przycisku S1.

Może mi ktoś dać jakąś wskazówkę?
Będę wdzięczny,
Norfi

Umieść lampy o network wcześniej

1 polubienie

Hej , może kod z SCL ci pomoże.
Sprawdzałem w symulatorze i działa prawidłowo.

Dioda i Lampa jako input typu Bool
Przycisk S1 i S2 jako output typu Bool
Zbocze narastające i ostatni stan w bazie danych jako typ Bool

“DB_MyFirstDataBlock”.S1_edge := “di_S1” AND NOT “DB_MyFirstDataBlock”.S1_old;
“DB_MyFirstDataBlock”.S1_old := “di_S1”;

IF “di_S2” THEN // Jeśli naciśnięto S2
“dq_Led” := FALSE; // Wyłącz diodę
“dq_Lamp” := FALSE; // Wyłącz lampę
ELSIF “DB_MyFirstDataBlock”.S1_edge THEN // Jeśli naciśnięto S1
IF NOT “dq_Led” THEN // Jeśli dioda jest wyłączona
“dq_Led” := TRUE; // Włącz diodę
ELSIF NOT “dq_Lamp” THEN // Jeśli lampa jest wyłączona
“dq_Lamp” := TRUE; // Włącz lampę
END_IF;
END_IF;

Jak ktoś ma jakieś pomocne uwagi to proszę bo obecnie robię kurs PLC SCL na iAutomatyka i jestem świeży w tym.

Pozdrawiam