Skip to main content

8. Opis programowania krokowego

Programowanie strukturalne jest wiodącym trendem w dziedzinie projektowania oprogramowania. Korzyściami takiej metody programowania są: dobra czytelność, łatwa obsługa, wygodne aktualizacje, wysoka jakość i niezawodność. Aplikacje sterujące, składające się z wielu sekwencyjnie wykonanych zadań, są trudne w konserwacji, gdy ich implementacja oparta jest na klasycznym języku drabinkowym. Dlatego też należy łączyć wykorzystywane na szeroką skalę schematy drabinkowe z elementami programowania sekwencyjnego stworzonymi specjalnie na potrzeby przebiegu pracy maszyny. Instrukcje krokowe sprawiają, że projektowanie staje się wydajniejsze, oszczędne czasowo i łatwe do opanowania. Ten rodzaj programowania, który łączy w sobie sterowanie procesem ze schematem drabinkowym nosi nazwę krokowego języka drabinkowego.

Podstawową jednostką krokowego schematu drabinkowego jest krok. Krok jest odpowiednikiem indywidualnego ruchu (kroku) podczas pracy maszyny. Całkowity proces pracy maszyny lub proces sterowania sekwencyjnego jest szeregową lub równoległą kombinacją kroków. Procedura realizowana krok po kroku pozwala na łatwiejsze zrozumienie działania maszyny tak, aby jej działanie i obsługa stały się bardziej efektywne i prostsze.

8.1. Zasada działania krokowego schematu drabinkowego

Przykład 

image.png

Opis: 

1. 
  STP Sxxx  jest symbolem reprezentującym krok Sxxx z zakresu S0~S999. Podczas wykonywania kroku (stan WŁ), wykonywana zostaje operacja zapisana na schemacie drabinkowym w prawej odnodze kroku, a stan poprzedniego kroku i zapisanych w nim wyjść będzie WYŁ.

2.   Po uruchomieniu programu, M1924 (marker pierwszego skanu) będzie aktywny. Nastąpi przejście do pierwszego kroku S0 (S0 WŁ), podczas gdy wszystkie pozostałe kroki będą nieaktywne, np. stany wszystkich wyjść Y1~Y5 będą WYŁ. Oznacza to, że stan M1924 WŁàS0 WŁàY0 WŁ i status Y0 pozostanie WŁ do momentu, aż styki X1 lub X2 staną się aktywne.

3.  Przy założeniu, że X2 będzie aktywny jako pierwszy, zostanie wykonane przejście do ścieżki S21.

 

image.png

Y2 pozostanie WŁ do momentu, aż X5 będzie WŁ.

4.  Przy założeniu, że X5 jest WŁ, proces przejdzie do kroku S23.

image.png

Y4 i Y5 pozostaną WŁ do momentu aż X6 będzie WŁ.

※Jeżeli X10 jest WŁ, to Y5 będzie WŁ.

5.  Przy założeniu, że X6 zostanie WŁ, proces przejdzie do S0.

image.png

Po tym, cykl sterowania zostaje zakończony i rozpoczyna się nowy cykl.

8.2. Podstawowe układy krokowego schematu drabinkowego

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

8.3. Wprowadzenie do instrukcji krokowych : STP. FROM, TO i STPEND

image.png

Instrukcja ta jest krokiem inicjującym, od którego rozpoczyna się sterowanie krokowe każdego procesu maszyny. W serii FBs istnieje 8 kroków inicjujących (S0~S7), tj. PLC może zrealizować kontrolę do 8 procesów równocześnie. Każdy proces może działać niezależnie lub generować wyniki będące wykorzystywane w pozostałych procesach.

Przykład 1 Po każdym uruchomieniu sterownia przejdź do kroku inicjującego S0

image.png

Przykład 2 Za każdym razem gdy urządzenie jest uruchamiane, naciskany jest przycisk lub urządzenie działa nieprawidłowo, następuje automatyczne przejście do kroku inicjującego S0 (gotowości).

image.png

Opis: X0: Ręczny przycisk, M0: marker informujący o nieprawidłowej pracy maszyny.

image.png

Instrukcja ta jest krokiem. Każdemu kroku procesu odpowiada jedna instrukcja kroku w sekwencji. Jeżeli stan kroku jest WŁ, to krok jest aktywny i realizowany jest program drabinkowy odpowiadający temu krokowi.

Przykład

image.png

Opis: 

  1. Po załączeniu sterownika, inicjujący krok S0 i Y0 są WŁ.
  2.  Przy pojawieniu się warunku przejścia X10 WŁ (w rzeczywistym zastosowaniu warunek przejścia może być tworzony przez szeregową lub równoległą kombinację styków X, Y, M, T i C), aktywowany jest krok S20. System automatycznie wyłączy krok S0 w tym samym skanie programu, co spowoduje przejście Y0 w stan WYŁ..

    image.png

  3.  Jeżeli warunek przejścia X11 jest WŁ, to krok S0 jest WŁ, Y0 jest WŁ, natomiast S20, Y1 i Y2 będą WYŁ w tej samej chwili.

image.png

image.png

Instrukcja opisuje krok źródłowy przejścia, tj. przejścia z kroku Sxxx do kolejnego kroku, w skorelowaniu z warunkiem przejścia.

Przykład

image.png

Opis

  1. Po załączeniu sterownika, inicjujący krok S0 jest WŁ. Jeżeli X0 jest WŁ, to Y0 będzie WŁ.
  2. Jeżeli S0 jest WŁ:               a. jeżeli X1 jest WŁ, to krok S20 i Y0 będą WŁ.

b. jeżeli X2 jest WŁ, to krok S21 i Y2 będą WŁ

c. jeżeli X3 jest WŁ, to krok S22 i Y3 będą WŁ

d. jeżeli X1, X2 i X3 są jednocześnie WŁ, to najpierw krok S20 będzie WŁ, a krok S21 lub S22 nie będzie WŁ.

e. jeżeli X2 i X3 są jednocześnie WŁ, to najpierw krok S21 będzie WŁ, a krok S22 nie będzie WŁ

3. Przy S20 WŁ, jeżeli X5 i X7 są jednocześnie WŁ, to krok S23 będzie WŁ, Y4 będzie WŁ, a S20 i Y1 będą WYŁ.

4. Przy S21 WŁ, jeżeli X4 jest WŁ, to krok S0 będzie WŁ, a S21 i Y1 będą WYŁ

5. Przy S22 WŁ, jeżeli X6 i X7 są jednocześnie WŁ, to krok S23 będzie WŁ, Y4 będzie WŁ, a S22 i Y3 będą WYŁ

                           6. Przy S23 WŁ, jeżeli X8 jest WŁ, to krok S0 będzie WŁ, a S23 i Y4 będą WYŁ

image.png

Poniższa instrukcja określa krok, do którego ma być wykonane przejście.

Przykład

image.png

Opis:

  1. Po załączeniu sterownika, inicjujący krok S0 jest WŁ. Jeżeli X0 jest WŁ, to Y0 będzie WŁ
  2.  Jeżeli S0 jest WŁ i jeżeli X1 jest WŁ, to kroki S20 i S21 będą WŁ jednocześnie. Y1 i Y2 także będą WŁ.
  3. Przy S21 WŁ, jeżeli X2 jest WŁ, to krok S22 będzie WŁ, Y3 będzie WŁ, a S21 i Y2 będą WYŁ.
  4. Jeżeli S20 i S22 są WŁ jednocześnie i warunek transferu X3 jest WŁ, to krok S23 będzie WŁ (jeżeli X4 jest WŁ, to Y4 będzie WŁ), a S20 i S22 oraz Y1 i Y3 zostaną automatycznie wyłączone.
  5. Przy S23 WŁ, jeżeli X5 jest WŁ, to proces przejdzie do początkowego kroku, tj. S0 będzie WŁ, aS23 i Y4 będą WYŁ.
  6. Przy S23 WŁ, jeżeli X8 jest WŁ, to krok S0 będzie WŁ, a S23 i Y4 będą WYŁ

image.png

Instrukcja ta reprezentuje zakończenie procesu. Aby procesy działały prawidłowo należy umieścić tę instrukcję w programie, na końcu każdego procesu rozpoczynającego się krokiem inicjującym.

PLC może kontrolować do 8 procesów krokowych (inicjowanych krokami S0~S7) równocześnie. W związku z tym można wprowadzić do 8-miu instrukcji STPEND.

Przykład

image.png

Opis  Po załączeniu sterownika, 8 procesów krokowych będzie aktywnych równocześnie.

8.4. Uwagi dotyczące tworzenia krokowego schematu drabinkowego

Uwagi:

●         Język drabinkowy i programowanie krokowe mogą być wykorzystywane w programie sterownika równocześnie.

●         Istnieje 8 kroków, S0~S7, które mogą być wykorzystane jako punkt początkowy i nazywają się je „krokami inicjującymi”.

●         Kiedy PLC zaczyna pracę, konieczna jest aktywacja kroku inicjującego. Do aktywowania kroku inicjującego może być wykorzystany marker systemowy M1924 (pierwszy skan programu).

●         Z wyjątkiem kroków inicjujących, aktywacja pozostałych kroków musi być wywołana poprzednim krokiem.

●         Aby program krokowy przeszedł proces sprawdzenia składni, musi rozpoczynać się krokiem inicjującym a kończyć instrukcją STPEND.

●         Istnieje 980 kroków, S20~S999, które mogą być używane dowolnie. Jednakże wykorzystane już numery kroków nie mogą być użyte po raz kolejny. Kroki S500~S999 są podtrzymywane (zakres ten może być zmieniany przez użytkowników) - mogą być użyte w przypadku konieczności kontynuowania procesu po wyłączeniu maszyny.

●         Generalnie, krok powinien składać się z trzech elementów: wyjścia sterującego, warunków przejścia i kroku docelowego przejścia.

●         Instrukcje MC i SKP nie mogą być zastosowane w programie krokowym ani w podprogramach. Zaleca się unikania instrukcji JMP.

●         Jeżeli wymagane jest, aby punkt wyjściowy kroku został w stanie WŁ po wyjściu z tego kroku, należy zastosować wyjście SET w celu ustawienia tego wyjścia na stałe, a po tym, odpowiednio wyjścia RST, w celu ustawienia go ponownie w stan WYŁ.

●         Maksymalna ilość poziomych ścieżek, patrząc w dół od kroku inicjującego, wynosi 16. Jednakże do jednego kroku może być przypisanych do 8 rozgałęzień.

●         Jeżeli M1918=0, a w pętli sterującej master (FUN 0) lub w programie krokowym wykorzystywana są funkcje reagujące na zbocze narastające (PULSE), to przed takimi funkcjami musi znaleźć się instrukcja TU. Na przykład:

image.png

Przykład 1

image.png

Opis

                         1. Wprowadź warunek przejścia do kroku inicjującego S0

2. Wprowadź S0 i warunki rozejścia do S20, S0 i S21

3. Wprowadź S20

4. Wprowadź S21

5. Wprowadź zejście z S20 i S21

6. Wprowadź S22

Przykład 2

image.png

Opis

                          1. Wprowadź warunek przejścia do kroku inicjującego S0

2. Wprowadź S0 i warunki rozejścia do S20 i S22

3. Wprowadź S20

4. Wprowadź S21

5. Wprowadź S22

6. Wprowadź zejście z S21 i S22

7. Wprowadź S23

Przykład 3

image.png

Opis

                          1. Wprowadź warunek przejścia do kroku inicjującego S0

2. Wprowadź S0 i warunki rozejścia do S20 i S24

3. Wprowadź S20

4. Wprowadź S20 i rozejście równoległe do S21 i S22

5. Wprowadź S21

6. Wprowadź S22

7. Wprowadź zejście równoległe z S21 i S22

8. Wprowadź S23

9. Wprowadź S24

10. Wprowadź zejście z S23 i S24

8.5. Przykłady zastosowań

Przykład 1 Chwyć obiekt ze zbiornika A i włóż go do zbiornika B

 image.png

 image.png

 image.png

Przykład 2 Proces mieszania płynów

 image.png

s  Punkty wejściowe: Wyłącznik krańcowy „pusty” X1
Wyłącznik krańcowy „brak płynu” X2
Wyłącznik krańcowy „pusty” X3
Wyłącznik przepełnienia X4
Przycisk ostrzegawczy X5
Przycisk start X6
Przycisk mycia wodą X7

s  Wskaźniki ostrzegawcze: Opróżnij wysuszony materiał Y1
Nieodpowiedni płyn Y2
Opróżnij jednostkę mieszającą Y3
Przeciążony silnik Y4

s  Punkty wyjściowe: Zawór wlotowy osuszonego materiału Y5
Zawór wlotowy osuszonego materiału Y6
Zawór wlotowy płynu Y7
Zawór elektromagnetyczny uruchamiający silnik Y8
Zawór wlotowy czystej wody Y9
Zawór wylotowy końcowego produktu Y10

s  Wyjście ważące: CH0(R3840)

s  M1918=0

image.png

Przykład 3 Światła przy przejściu dla pieszych

image.png

image.png

●         Schemat sterowania światłami przy przejściu dla pieszych

image.png

●         Program sterowania światłami przy przejściu dla pieszych

image.png

8.6. Kody błędów składni w programowaniu krokowym

Kody błędów związane z programowaniem krokowym są następujące:

E51    : TO(S0-S7) musi rozpoczynać się instrukcją ORG.

E52    : TO(S20-S999) nie może rozpoczynać się instrukcją ORG.

E53    : Instrukcja TO bez odpowiedniej instrukcji FROM.

E54    : Instrukcja TO musi występować po instrukcji TO, AND, OR, ANDLD lub ORLD.

E56    : Przed instrukcją FROM muszą znajdować się instrukcje AND, OR, ANDLD lub ORLD.

E57    :Instrukcja po FROM nie może być cewką ani funkcją.

E58    :Cewka lub funkcja musi znajdować się przed FROM w linii STEP.

E59    : Ponad 8 TO# w jednej linii.

E60    : Ponad 8 FROM# w jednej linii.

E61    : TO(S0-S19) musi znajdować się w pierwszym wierszu linii.

E62    : Styk zajmuje miejsce dla instrukcji TO.

E72    : Podwojona instrukcja TO Sxx.

E73    : Podwojona instrukcja STP sxx.

E74    : Podwojona instrukcja FROM sxx.

E76    : STP(S0~S19) bez dopasowanej instrukcji STPEND lub STPEND bez dopasowanej instrukcji STP(S0~S19).

E78    : Instrukcje TO(S20~S999), STP (S20~S999) lub FROM znajdują się przed STP(S0~S19) lub brak STP (S0~S19).

E79    : Instrukcje STP Sxx lub FROM Sxx znajdują się przed TO Sxx lub brak TO Sxx.

E80    : Instrukcja FROM Sxx znajduje się przed STP Sxx lub brak STP Sxx.

E81    : Maksymalna liczba odgałęzień musi być <=16.

E82    : Maksymalna liczba odgałęzień na tym samym poziomie musi być<=16.

E83    : Nie wprowadzono instrukcji STP w sekwencji TO->STP->FROM.

E84    : Definicja sekwencji STP#  nie jest poprzedzona sekwencją TO#.

E85    : Zejście nie odpowiada odpowiedniemu rozejściu.

E86    : Niedozwolone zastosowanie STP lub FROM przed zejściem instrukcją TO.

E87    : STP# lub FROM# znajdują się przed odpowiednią instrukcją TO#.

E88    : W tej gałęzi, STP# lub FROM# znajduje się przed odpowiednią instrukcją TO#.

E89    : FROM# znajduje się przed odpowiadającą mu instrukcją TO# lub STP#.

E90    : Nieprawidłowe zastosowanie To# w równoległej gałęzi.

E91    : Funkcja sterowania przepływem programu nie może być użyta w obrębie programu krokowego.