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