Programowanie krokowe jest niezastąpione tam, gdzie występują sekwencyjne układy sterowania. Umożliwia programiście szybsze pisanie programów i łatwiejszą diagnostykę – interesuje nas tylko obecnie wykonywany krok, nie musimy skupiać się na warunkach występujących w innych częściach programu. Dodatkową korzyścią takiej metody programowania jest dobra czytelność i łatwość przy edycji programu. Aplikacje sterujące, składające się z wielu sekwencyjnie wykonanych zadań, zazwyczaj są trudne w diagnostyce i wprowadzaniu zmian, gdy są oparte na klasycznym języku drabinkowym.
Podstawowym elementem programowania krokowego jest krok [STP] – interesuje nas warunek wejścia do kroku, następnie, gdy już w nim jesteśmy – to, co ma się w nim wykonać, a potem warunek przejścia do kolejnego kroku.
Aby dodać elementy języka krokowego do programu należy wybrać przycisk funkcje [F] i umieścić w obszarze programu, jak pokazano poniżej:
Podstawowym elementem języka krokowego, jak już wspomniano, jest krok. Po wybraniu z funkcji zakładki programowanie krokowe i funkcji STP, pojawi nam się następujące okno dialogowe:
W pole [S:] możemy wprowadzić numer kroku. Kroki początkowe, rozpoczynające sekwencję, numerowane są od S0 do S7. Po wybraniu tego kroku, funkcja zmieni nazwę na [STPI]:
Kroki kolejne numerowane są od S20-S999, oznaczane jako [STP]:
Aby przejść do danego kroku lub rozpocząć sekwencję poprzez wejście w krok inicjujący, należy wykorzystać funkcję [TO] i podać numer kroku, do którego będzie się odwoływać:
Przechodząc między krokami, można również wykorzystać funkcję [FROM] w połączeniu z funkcją [TO]:
Po dodaniu nowego kroku, po prawej stronie mamy dostępny tylko obszar (1), w którym umieszczamy poszczególne komendy do wykonania w danym kroku. Aby mieć dostęp do obszaru (2), w którym umieszczamy warunek przejścia do kolejnego kroku oraz funkcję [TO], należy linię pionową umieścić w obszarze kwadratu funkcji [STP]:
W najprostszym układzie możemy utworzyć pojedynczą ścieżkę, z warunkami wejścia do poszczególnych kroków, komendami wykonywanymi w krokach oraz warunkami przejścia do kolejnego kroku. W bardziej zaawansowanych aplikacjach można zastosować rozejście selektywne, gdzie wychodząc z danego kroku możemy dać wybór ścieżki, którą wykona program. Alternatywnym rozwiązaniem jest skorzystanie z rozejścia równoległego, gdzie poszczególne ścieżki wykonują się w tym samym czasie. Przy zejściu równoległym program oczekuje na wykonanie wszystkich ścieżek i dopiero wtedy realizuje kolejne kroki:
Aby zrealizować ścieżki selektywne należy przy wyjściu z kroku zastosować co najmniej dwie funkcje [TO] wraz z odpowiednim warunkiem, a następnie można skorzystać z takiej samej ilości funkcji [FROM], co jednak w tym przypadku nie jest koniecznie:
W przypadku ścieżki równoległej należy przy wyjściu z kroku zastosować co najmniej dwie funkcje [TO] wraz z odpowiednim warunkiem, jednakże łączącą linię pionową należy umieścić na funkcji [TO]. Pojawią się dwie pionowe kreski, jak pokazano poniżej. Następnie konieczne jest skorzystanie z takiej samej ilości funkcji [FROM]:
Kroki nie muszą być wykonywane kolejno, po warunku przejścia można umieścić dowolny krok w tej samej lub innej pętli, jak pokazano poniżej:
Pętla może działać w cyklu zamkniętym, wykonywać pojedynczy cykl lub można wykorzystać obie funkcje w programowaniu krokowym:
Jak pokazano na poniższym obrazie, pojedynczą pętlę można rozbudować w znacznym stopniu w zależności od złożoności aplikacji:
Część praktyczna
Wypróbujmy program realizujący sekwencyjną pracę manipulatora, którego szkic poglądowy przedstawiono na poniższym rysunku (gdzie: wyjścia Y0~Y3 – kierunki ruchu członów manipulatora, Y4 – zamknięcie chwytaka, X0~X3 – czujniki krańcowe ruchu).
Sekwencja ruchów:
– otwarcie chwytaka przy uruchomieniu programu
– ruch w prawo (Y1) do krańcówki X1
– opuszczenie chwytaka (Y3) do krańcówki X3
– odczekanie 2s
– zamknięcie chwytaka
– podniesienie chwytaka (Y2) do krańcówki X2
– ruch w lewo (Y0) do krańcówki X0
– otwarcie chwytaka
– odczekanie 2s
– rozpoczęcie cyklu od początku
Rozwiązanie klasyczne tego zagadnienia wyglądałoby następująco:
Wykorzystując programowanie krokowe, program realizujący ten algorytm może wyglądać następująco:
Aby uzyskać więcej informacji na temat programowania krokowego polecamy skorzystać z instrukcji.
lub obejrzeć poniższy film:
Zapraszam do kolejnej części kursu.
![]() |
Autor: Jarosław PawełekAbsolwent Akademii Górniczo – Hutniczej im. Stanisława Staszica w Krakowie na kierunku Automatyka i Robotyka ze specjalnością Automatyka i Metrologia. Przygodę z automatyką rozpoczynał w firmie od stanowiska praktykanta. Przechodząc kolejno na stanowisko Doradcy ds. technicznych oraz obecnie zajmując stanowisko Kierownika Działu Wsparcia Technicznego stara się zapewniać najlepsze wsparcie merytoryczne dla naszych klientów. Prywatnie miłośnik fotografii. |