Jak narysować diagram stanów PLC — Stany maszyny na jednym arkuszu, a nienarysowane kombinacje w tabeli
Ostatnia zmiana: 2026-09-24 / Kategoria: Programowanie PLC, projektowanie logiki sterowania
Diagram stanów pokazuje na jednym arkuszu, w jakim stanie jest cała maszyna i który przycisk lub błąd przenosi ją dokąd. Ten poradnik jest dla projektanta sterowania PLC, który nie chce, żeby o kombinacjach brakujących w specyfikacji decydował ten, kto pisze ladder.
Start naciśnięto ponownie, gdy maszyna pracowała, i flaga pierwszego kroku ustawiła się drugi raz. Tej kombinacji nie ma w normalnym przebiegu schematu blokowego, więc autor laddera zdecydował na miejscu. Diagram pokazuje tylko strzałki, o których pomyślałeś. Kombinacje, których nie narysowano, wypełnia się komórka po komórce w tabeli stan × zdarzenie.
1. Diagram stanów zawiera tylko stany całej maszyny; kroki idą na schemat blokowy
Diagram pokazuje stany całej maszyny. Przykład ma ich 7 i nie pokazuje „oczekiwanie na detal → transport → zacisk → pobranie”, czyli kroków wykonywanych w stanie Praca. Kroki idą na Jak narysować schemat blokowy sterowania PLC jako numery kroków (10, 20, 30…) z warunkiem przejścia dalej. Wstaw tu kroki, a każde zdarzenie możliwe zewsząd, jak błąd czy pauza, potrzebuje jednej strzałki na krok.
Oba arkusze łączy numer kroku. Start z Pauzy wznawia przerwany krok; po bazowaniu zaczyna od pierwszego kroku. Po resecie z błędu, który dopuszcza wznowienie, zaczyna od początku przerwanego kroku.
To, co Jak narysować schemat blokowy sterowania PLC nazywało „krokiem (stanem)”, w tym artykule jest krokiem. Gdy stanów przybywa jak w tym przykładzie, Oczekiwanie na start i Stop po błędzie przenoszą się na ten diagram; wyjście błędu na schemacie blokowym musi wtedy mówić tylko „do Stop po błędzie”. Na maszynie, gdzie operator za każdym razem kładzie detal i naciska start, usuń warunek flagi zatrzymania cyklu i wracaj do Oczekiwania na start na końcu każdego kroku.
2. Stany to rzeczy, które trwają; strzałki to rzeczy, które się zdarzają
- Stany nazywaj jak rzeczy, które trwają, a strzałki jak rzeczy, które się zdarzają Nazwy stanów to warunki trwające jakiś czas: „praca”, „oczekiwanie na”. Nazwy strzałek to chwile: „start (naciśnięto)”, „błąd (minął czas)”. Stan o nazwie „Start” nie mówi, czy chodzi o moment naciśnięcia, czy o czas ruchu.
- Oddziel stany, w których coś się dzieje, od stanów oczekiwania Szare Bazowanie samo przechodzi do Oczekiwania na start, gdy skończy pracę. Białe Oczekiwanie na start czeka, aż człowiek naciśnie start. Bazowanie kończy się, gdy procedura dojdzie do ostatniego etapu (w Schemat blokowy bazowania (przykład) etap ustawiający bHomeDone).
- Strzałkę „z dowolnego stanu” rysuj raz, z ramki Błąd może wystąpić w każdym z 5 stanów. Zamiast 5 strzałek narysuj jedną z ramki obejmującej 5 stanów innych niż Stop po błędzie i Stop awaryjny do Stop po błędzie. Na diagramie z wszystkimi strzałkami nikt nie zauważy, że jednej brakuje.
- Narysuj, gdzie maszyna zaczyna po włączeniu zasilania W przykładzie strzałka od kropki włączenia zasilania idzie do Niezbazowany. Po zaniku zasilania detale zostają w połowie cyklu, a położenia osi są niepewne. Trzymaj zmienną stanu w pamięci podtrzymywanej, a maszyna, która straciła zasilanie w Pracy, ruszy, choć nikt nie nacisnął startu.
- Gdy jedno zdarzenie ma dwie strzałki, zrób warunki rozłączne Reset ze Stop po błędzie ma dwa cele: Oczekiwanie na start, gdy wznowienie jest dozwolone (E01 i E02 na Jak napisać specyfikację sterowania), inaczej Niezbazowany. Jeśli oba warunki mogą być spełnione naraz, o celu po cichu decyduje kolejność w programie.
- Tryby trzymaj na osobnej osi i dla każdego stanu ustal, dokąd idzie zmiana trybu Przykład pokazuje stany trybu automatycznego. Przy przełączeniu na ręczny Niezbazowany i Stop po błędzie dopuszczają ruch ręczny bez zmian, a Oczekiwanie na start przechodzi do Niezbazowany. Nikt nie wie, co przesunięto przy przezbrojeniu, więc jedno bazowanie sprawdza wszystko ponownie przed powrotem do automatu.
3. Kombinacje, których nie narysowano, wypełnij w tabeli stan × zdarzenie
Diagram ma 14 strzałek oprócz włączenia zasilania. Jako tabela to 7 stanów × 10 zdarzeń, 70 komórek, a przepisanie strzałek wypełnia tylko 25. Pozostałych 45 nigdy nie pojawia się na diagramie. Start naciśnięty w Niezbazowany, start naciśnięty ponownie w Pracy: każdą rozstrzyga się komórka po komórce.
Komórka zawiera jedną z pięciu rzeczy, a „nieprzyjmowane” to co innego niż „niemożliwe”. Komórkę nieprzyjmowaną sprawdza się przy odbiorze, naciskając przycisk i widząc, że nic się nie dzieje. Komórki niemożliwej nie da się sprawdzić naciśnięciem; jeśli jednak się zdarzy, to błąd programu i maszyna przechodzi do Stop po błędzie.
- → nazwa stanu — Przejdź do tego stanu. Jeśli zależy od warunku, wypisz „warunek → cel”
- Sam tekst — Zostań w stanie i zrób tylko to, co napisano (ustaw flagę, dopisz do historii, pokaż komunikat)
- / — Nieprzyjmowane. Nic się nie dzieje
- × — Niemożliwe
- Puste — Jeszcze nie ustalono. Do wysyłki nie może zostać żadne
| Zdarzenie \ Stan | Niezbazowany | Bazowanie | Oczekiwanie na start | Praca | Pauza | Stop po błędzie | Stop awaryjny |
|---|---|---|---|---|---|---|---|
| Bazowanie (przycisk) | → Bazowanie | / | → Bazowanie | / | / | / | / |
| Bazowanie zakończone | × | → Oczekiwanie na start | × | × | × | × | × |
| Start | Pokaż „Nie wykonano bazowania” | / | W pozycji wznowienia → Praca Nie w pozycji → pokaż „Brak pozycji wznowienia” | / | → Praca (wznów przerwany krok) | / | / |
| Pauza | / | → Niezbazowany (przerwij bazowanie) | / | → Pauza | / | / | / |
| Zatrzymanie cyklu | / | / | / | Ustaw flagę | Ustaw flagę | / | / |
| Koniec kroku | × | × | × | Flaga ustawiona → Oczekiwanie na start Brak flagi → czekaj dalej na następny detal | × | × | × |
| Błąd | → Stop po błędzie | → Stop po błędzie | → Stop po błędzie | → Stop po błędzie | → Stop po błędzie | Nowo zgłoszony błąd o innym numerze dopisz do historii (wznowienie przestaje być dozwolone) | Dopisz nowy błąd do historii |
| Reset | / | / | / | / | / | Przyczyna nadal obecna → / Wznowienie dozwolone → Oczekiwanie na start W przeciwnym razie → Niezbazowany | Przed odblokowaniem → / Odblokowano i zasilanie wróciło → Niezbazowany Brak zasilania 3 s po odblokowaniu → pokaż „Zasilanie nie wróciło” |
| Stop awaryjny | → Stop awaryjny | → Stop awaryjny | → Stop awaryjny | → Stop awaryjny | → Stop awaryjny | → Stop awaryjny | / |
| Przełączenie na ręczny | Ruch ręczny dozwolony | → Stop po błędzie | → Niezbazowany | → Stop po błędzie | → Stop po błędzie | Ruch ręczny dozwolony | Zmień tylko tryb |
„Koniec kroku” to warunek istniejący tylko w Pracy, gdy pierwszy krok (oczekiwanie na detal) czeka na następny detal. Start z Oczekiwania na start przyjmuje się tylko w pozycji wyjściowej dla pierwszego kroku albo przy spełnionych warunkach początku przerwanego kroku przy wznawianiu. Flaga zatrzymania cyklu kasuje się przy wejściu do Oczekiwania na start, Stop po błędzie lub Stop awaryjny. Wiersz błędu obejmuje E01–E04 z listy błędów; zatrzymanie awaryjne (E05) ma własny wiersz.
Komórki, przy których ludzie się wahają, to te.
- Start w Pracy to / — Trzymaj stan w jednej zmiennej i przyjmuj start tylko w Oczekiwaniu na start lub Pauzie. W ladderze łączącym flagi kroków przez SET / RST start przechodzi, gdy maszyna się rusza, i dostajesz podwójny start z początku artykułu. Ustalony w tabeli warunek siedzi w jednym miejscu: w układzie startu
- Start w Niezbazowany jest odrzucany z komunikatem — Jeśli nic się nie dzieje, operator naciska start raz za razem i woła utrzymanie ruchu. Start w Stop po błędzie zostaje /: błąd jest już wyświetlony i ekran wyjaśnia, dlaczego maszyna nie rusza
- Reset, gdy przyczyna nadal jest obecna, to / — Sygnał błędu wraca, dopóki trwa przyczyna. Odrzucenie resetu zostawia błąd na ekranie i mówi operatorowi, co naprawić
- Pauza w Bazowaniu wraca do Niezbazowany — Ustal, że przerwane bazowanie zaczyna od nowa, a nie ma czego pamiętać. Wznowienie bazowania w połowie oznacza pamiętanie, jak daleko doszła każda oś
Tabelę zrób w Excelu, nadaj jej numer wersji i wstaw do specyfikacji. Lista sprawdzania poprawności danych „/,×” z wyłączonym komunikatem o błędzie nadal pozwala wpisać „→ Oczekiwanie na start”. Puste komórki maluj na czerwono formatowaniem warunkowym =ISBLANK(B2). Dodaj zdarzenie, a jeśli nie dodasz wiersza i nie wypełnisz wszystkich 7 komórek, diagram, tabela i ladder się rozjadą.
4. Zbierz stany i zdarzenia, narysuj normalne strzałki, potem wypełnij tabelę
- Wypisz stany Weź je ze stanów pracy, które chcesz mieć na lampkach pulpitu i na ekranie. Stan to coś, do czego wchodzi się i z czego wychodzi osobnym działaniem: przyciskiem operatora, błędem, zakończeniem bazowania. Transport i zacisk, które idą dalej na warunkach czujników, to kroki i idą na schemat blokowy, nawet jeśli ekran pokazuje „transport”.
- Zbierz zdarzenia Z przycisków i przełączników pulpitu, zakończeń, warunków sprawdzanych tylko w Pracy i błędów. Błędy z listy błędów dzielą jeden wiersz; tylko zatrzymanie awaryjne ma własny. Operacje robiące to samo w każdym stanie, jak kasowanie buczka, zostają poza tabelą.
- Narysuj normalne strzałki, a to, co możliwe zewsząd, ujmij w ramkę Najpierw od włączenia zasilania do Pracy i droga powrotu po zatrzymaniu. Błąd i stop awaryjny: po jednej strzałce, z ramki.
- Zrób tabelę i wypełnij puste Przepisz strzałki z diagramu, potem wypełnij pozostałe komórki przez /, × lub tekst. Komórki, których nie możesz rozstrzygnąć, zostaw puste i zanotuj obok, kto może (klient, konstruktor, bezpieczeństwo).
5. W PLC trzymaj stan w jednej zmiennej i zmieniaj go najwyżej raz na skan
- Stan trzymaj jako numer w jednej zmiennej Wpisz numer stanu do jednej zmiennej całkowitej. Z jedną flagą na stan nic w projekcie nie zapobiega ustawieniu dwóch naraz. Zmienna niepodtrzymywana po włączeniu zasilania ma 0, więc Niezbazowany dostaje numer 0.
- Przejścia oceniaj na stanie z początku skanu i zmieniaj go najwyżej raz na skan Oceniaj względem kopii stanu pobranej na początku skanu. Napisane od góry do dołu jako „jeśli Oczekiwanie na start i start, to Praca”, niższy szczebel zobaczy świeżo wpisaną Pracę i przejdzie dalej jeszcze raz. Następny stan wpisz raz na końcu; w instrukcji CASE w ST wykonuje się tylko jedna gałąź na skan.
- Przejścia „zewsząd” pisz po przejściach dla poszczególnych stanów Kolejność: przejścia dla stanów → błąd → stop awaryjny. Wygrywa ostatnie przypisanie, więc gdy start i stop awaryjny zbiegną się w jednym skanie, wygrywa stop awaryjny. Każda strzałka z ramki na diagramie to też jedno miejsce w programie.
- Oddziel działania przy wejściu od wyjść ciągłych Działania przy wejściu wykonują się tylko w skanie, w którym zmienił się numer. Zapisuj numer błędu przy wejściu do Stop po błędzie w każdym skanie, a historia urośnie o jeden wpis na skan. Wyjścia zależne tylko od stanu, jak lampki i wyświetlanie, to jedno wyrażenie na wyjście: „czerwona = Stop po błędzie lub Stop awaryjny”.
- Niemożliwy numer idzie do Stop po błędzie W gałęzi ELSE przejdź do Stop po błędzie i pokaż numer na ekranie. Pusty ELSE albo taki, który wraca do Oczekiwania na start, ukrywa zapis z innego układu lub literówkę. To samo dotyczy sytuacji, gdy zdarzy się komórka × z tabeli.
- Przyciski to zdarzenia w chwili naciśnięcia; stop awaryjny i błędy sprawdza się, dopóki trwają Na przyciski patrz przez jeden skan zbocza narastającego. Przyjmuj je przez cały czas ON, a maszyna ruszy w chwili położenia detalu z przytrzymanym startem. Stop awaryjny i błędy odwrotnie: sprawdzaj w każdym skanie, dopóki trwają, żeby włączenie zasilania z wciśniętym przyciskiem nadal przenosiło do Stop awaryjny.
6. Potknięcia: informacja o zatrzymaniu cyklu, liczenie oczekiwania na detale, rola stopu awaryjnego
- Nic na ekranie po naciśnięciu zatrzymania cyklu — Dopóki flaga jest ustawiona, pokazuj „Przyjęto zatrzymanie cyklu”. Jeśli tylko ustawia flagę i zostaje w Pracy do końca kroku, operator nie wie, czy maszyna się zatrzymuje, czy naciśnięcie nie zadziałało
- Nieustalenie, czy oczekiwanie na detale liczy się jako praca — Uzgodnij z klientem na piśmie, przed odbiorem, które stany liczą się jako praca. W zakładach liczących dostępność z czasów stanów liczba zmienia się zależnie od tego, gdzie trafia oczekiwanie na detale. Przykład liczy je jako Pracę; PackML rozdziela Held (powody własne maszyny) od Suspended (powody przed lub za maszyną)
- Uznanie, że Stop awaryjny to stan, w którym zatrzymuje PLC — Zasilanie odcina obwód bezpieczeństwa; PLC tylko odbiera ten fakt. Spróbuj zatrzymywać przez automat stanów PLC, a nic się nie zatrzyma, gdy stanie sam PLC. Zadaniem PLC jest wyłączyć wyjścia ruchu i podtrzymania oraz wymusić kolejność powrotu (Schemat blokowy powrotu po zatrzymaniu awaryjnym (przykład))
7. 58 komórek innych niż × to punkty testu odbiorczego
58 komórek innych niż × to punkty testu. Dla komórki → sprawdź stan docelowy i działanie przy wejściu; dla komórki / naciśnij przycisk i sprawdź, że nic się nie dzieje. Błędy i stop awaryjny wywołuj z każdego stanu w ramce, nie tylko z Pracy. Przekroczenie czasu w Bazowaniu i stop awaryjny w Pauzie to kombinacje najczęściej pomijane.
Po pojedynczych komórkach przetestuj sekwencje dwóch operacji. Naciśnij zatrzymanie cyklu, potem pauzę, potem start: czy flaga nadal jest ustawiona i czy na końcu kroku zatrzymuje się w Oczekiwaniu na start? Wyłącz i włącz zasilanie w Pracy: czy startuje w Niezbazowany i nic się nie rusza (albo Stop awaryjny, jeśli przekaźnik bezpieczeństwa wymaga ręcznego resetu)? Sprawdzanie tabeli komórka po komórce nie znajdzie takich błędów kolejności.
Edytor do schematu blokowego kroków
- Flowchart Editor — Rysuje kroki wykonywane w Pracy (oczekiwanie na detal, transport, zacisk, pobranie) jako numery kroków z warunkiem przejścia dalej. Nie rysuje samego diagramu stanów.
Bez instalacji i rejestracji. Działa w przeglądarce.
Powiązane artykuły
- Jak narysować schemat blokowy sterowania PLC
- Jak napisać specyfikację sterowania
- Jak narysować wykres czasowy
- Schemat blokowy powrotu po zatrzymaniu awaryjnym (przykład)
- Schemat blokowy bazowania (przykład)
- Format danych JSON — Format, który czytają i zapisują cztery edytory, ze schematem, walidacją i przykładami
yk.builds