sterownie brama jednym prziciskiem naciskam zaczyna się otwierać naciskam po raz drugi się zatrzymuje naciskam 3 zaczyna się zamykać naciskam 4 zatrzymuje sie i potem ponownie zachodzi proces , zrób to w formie drabinkowej
do programu tia portal
Kluczowe punkty
• Detekcja zbocza narastającego przycisku (R_TRIG)
• Licznik modulo 4 (CTU) → zmienna „Stan” = 0…3
• Dekodowanie stanu do wyjść i zatrzymań
• Blokady wzajemne silników, timery watchdog
Wejścia:
I0.0 = Przycisk_Sterujący (NO)
I0.1 = Krańcówka_Otwarta (NO – zwiera gdy w pełni otwarta)
I0.2 = Krańcówka_Zamknięta (NO – zwiera gdy w pełni zamknięta)
Wyjścia:
Q0.0 = Silnik_OTWÓRZ
Q0.1 = Silnik_ZAMKNIJ
Markery / DB:
M0.0 = R_TRIG.Q (zbocze przycisku)
MW10 (Int) = Stan (0-3)
(Alternatywnie DB „FB_Brama”.Stan)
╔════════════════════════════════════════════════════════════════╗
║ Network 1 – Detekcja zbocza narastającego ║
╚════════════════════════════════════════════════════════════════╝
| Przycisk_Sterujący (I0.0) -----[R_TRIG]---- M0.0 (Edge) |
╔════════════════════════════════════════════════════════════════╗
║ Network 2 – Licznik modulo 4 ║
╚════════════════════════════════════════════════════════════════╝
| Edge M0.0 ---- CU CTU_Cykl (CV=Stan PV=3) |
| Edge M0.0 ---- R (reset po CV=3) |
╔════════════════════════════════════════════════════════════════╗
║ Network 3 – Automatyczne zatrzymanie na krańcówkach ║
╚════════════════════════════════════════════════════════════════╝
| (Stan=1) AND I0.1 → MOVE 2 → Stan // osiągnięto pełne otwarcie
| (Stan=3) AND I0.2 → MOVE 0 → Stan // osiągnięto pełne zamknięcie
╔════════════════════════════════════════════════════════════════╗
║ Network 4 – Dekoder stanu → wyjścia ║
╚════════════════════════════════════════════════════════════════╝
| Stan==1 AND NOT I0.1 --------------------( ) Q0.0 (OTWÓRZ) |
| Stan==3 AND NOT I0.2 --------------------( ) Q0.1 (ZAMKNIJ)|
| // Dodatkowe NO Q-blokady wzajemne: NOT Q0.1 w gałęzi OTWÓRZ |
| // oraz NOT Q0.0 w gałęzi ZAMKNIJ |
Interpretacja stanów:
0 – Brama zatrzymana (po zamknięciu) – oba silniki wyłączone
1 – OTWIERANIE (Q0.0=1)
2 – Zatrzymana w trakcie otwierania
3 – ZAMYKANIE (Q0.1=1)
Przebieg:
• Pierwszy impuls → CTU: Stan=1 → Q0.0=1 (otwieranie)
• Drugi impuls → Stan=2 → wyłączenie silników
• Trzeci impuls → Stan=3 → Q0.1=1 (zamykanie)
• Czwarty impuls → Stan resetuje do 0 → stop
Program realizuje dyskretny automat Moore’a; liczenie impulsów jest najprostszą implementacją maszyny stanów. R_TRIG eliminuje drgania styków (każdy cykl CPU = 1 zbocze). Krańcówki nadpisują stan, co gwarantuje, że silniki wyłączą się przy pozycjach krańcowych nawet bez kolejnego naciśnięcia.
Schemat sprawdzi się w bramach posesyjnych, roletach, siłownikach liniowych i podnośnikach, gdzie wymagany jest tryb „przytrzymaj-zatrzymaj-powrót”.
• Moduł CTU „CTU_Cykl” należy dodać z biblioteki standardowej, nadać instancji DB.
• Reset CTU realizujemy, gdy CV=3 AND Edge=1 (lub osobną siecią MOVE 0 po CV≥4).
• Blokady silników: zawsze NOT drugiego wyjścia w gałęzi sterującej; chroni przed jednoczesnym zasileniem obu styczników.
• Timery watchdog (TON 20 s) zabezpieczą przed ciągłą pracą w razie awarii krańcówki.
Zaprezentowana logika drabinkowa wykorzystuje:
• R_TRIG do rejestracji każdego naciśnięcia przycisku,
• licznik CTU modulo 4 jako prostą maszynę stanów,
• dekoder stanów sterujący wyjściami oraz krańcówkami.
Takie rozwiązanie spełnia wymagany cykl (OTWIERANIE → STOP → ZAMYKANIE → STOP) przy zachowaniu blokad, możliwości rozbudowy o elementy bezpieczeństwa i zgodności z aktualnymi normami przemysłowymi.