3. Języki (metody) programowania (arkusz IEC 1131-3)

3.5. Język (schemat drabinkowy) LD (LAD)

Semantyka pierwszego z języków graficznych - LD (LAD) (ang. Ladder Diagram), narzucona w trzeciej części normy IEC 1131 spowodowała, że jest on swoją postacią graficzną zbliżony do konstrukcji schematów elektrycznych, z wykorzystaniem m.in. obwodów przekaźnikowych z zastosowaniem ich zestyków. Uczyniono tak, aby można było stosunkowo łatwo zamienić to powszechnie stosowane sterowanie elektryczne na program dla sterownika PLC. Rozszerzeniem języka LD w stosunku do swojego „protoplasty” była możliwość używania różnych funkcji arytmetycznych, logicznych, porównań, relacji, itp. Wizualnie konstrukcja programu sterującego dla sterownika PLC w metodzie LD odróżnia się od schematu elektrycznego (stykowego) tym, iż program PLC tworzony jest na arkuszu (czytaj: ekranie programatora) niejako od lewej strony do prawej (tzn. „zestyki” programu w postaci krótkich dwóch pionowych linii występują po lewej stronie arkusza, zaś umowne „cewki” po prawej), zaś tworzenie schematu elektrycznego polega na rysowaniu obwodów niejako z góry na dół (zestyki występuję w górnej części arkusza, zaś cewki dolnej).

Norma IEC 1131-3 w zakresie języków (metod) graficznych, do których oprócz języka LD opracowano jeszcze dwa języki: FBD oraz SFC (będzie o nich mowa dalej), nakreśliła tzw. elementy graficzne wspólne, które mają zastosowanie w tworzeniu programu dla sterownika PLC w tych trzech językach programowania.

Elementy wspólne dla języków IL, FBD i SFC

Norma zdefiniowała sieć programową jako maksymalny zbiór połączonych ze sobą elementów graficznych. Przepływ wielkości pojęciowych przez jedną lub większą liczbę sieci programowych, które reprezentują system sterowania w językach IL, FBD oraz SFC może być rozpatrywany jako odpowiednio:

  • „Przepływ mocy”, analogicznie jak przepływ energii elektrycznej w systemach z przekaźnikami elektromechanicznymi, stosowany w schematach stykowych;
  •  „Przepływ sygnału”, analogicznie jak przepływ sygnałów między elementami systemu przetwarzania sygnału, stosowany w schematach sterowania cyfrowego;
  • „Przepływ działań”, analogicznie jak przepływ sterowania między elementami organizacji lub między krokami sekwensera elektromechanicznego, stosowany w schematach funkcji sekwencyjnych.

Odpowiednie wielkości pojęciowe, czyli rodzaj abstrakcji, która pozwala na analizę programu w językach graficznych, mogą „przepływać” wzdłuż linii między elementami sieci programowych, zgodnie z następującymi regułami:

  1. Przepływ mocy w języku LD powinien odbywać się od strony lewej do prawej;
  2. Przepływ sygnału w języku FBD powinien odbywać się od strony wyjścia (z prawej strony) bloku funkcji do wejścia (z lewej strony) funkcji lub bloku (bloków) funkcji połączonych ze sobą w taki sposób;
  3. Przepływ działań między elementami SFC powinien odbywać się od dolnej części kroku, poprzez odpowiednie przejście do wierzchołka następnego odpowiedniego kroku (kroków).

Norma IEC 1131-3 określa, że istnienie tzw. ścieżki sprzężenia zwrotnego w sieci programowej stwierdza się wówczas, gdy wyjście funkcji lub bloku funkcjonalnego jest wykorzystywane jako wejście funkcji lub bloku funkcjonalnego, które wystąpiły wcześniej w sieci programowej, przy czym zmienna skojarzona z tą ścieżką jest nazywana zmienną sprzężenia zwrotnego. Pojęcie ścieżki sprzężenia zwrotnego w języku LD ilustruje rys. 40.

 

 

Rysunek 40: Ścieżka sprzężenia zwrotnego w języku LD

 

Wyjście oznaczone na rysunku 40 jako „RUN” (po prawej stronie) jest wykorzystane jako jedno z trzech wejść (po lewej stronie) łącznie z innymi dwoma, czyli „START1” oraz „START2”.

Ścieżki sprzężenia zwrotnego mogą być wykorzystywane w językach graficznych według następujących zasad:

  1. Pętle jawne mogą występować tylko w języku FBD;
  2. Użytkownik powinien mieć możliwość określania działania elementów w pętli jawnej;
  3. Zmienne sprzężenia zwrotnego powinny być odpowiednio inicjowane;
  4. Z chwilą, gdy zostanie wyznaczona wartość zmiennej sprzężenia zwrotnego elementu stanowiącego zmienną wyjściową, ta nowa wartość zmiennej sprzężenia zwrotnego powinna być wykorzystywana aż do następnego wyznaczenia wartości elementu.

Norma IEC 1131-3 nakreśliła, że tzw. elementy sterowania wykonaniem utworzonego w językach LD oraz FBD programu powinny być przedstawiane w postaci odpowiednich elementów graficznych. Elementy te ilustruje Tabela 23. Widać w niej, że dla warunku skoku linia sygnału powinna rozpoczynać się w zmiennej boolowskiej, wyjściu boolowskim lub bloku funkcji, lub na linii przepływu mocy języka LD. Przekazanie zaś sterowania programem do wyznaczonej etykiety sieci powinno mieć miejsce wówczas, gdy wartość boolowska linii sygnału wynosi „1”, zatem skok bezwarunkowy stanowi szczególny przypadek skoku warunkowego.

 

Tabela 23: Symbole graficzne elementów sterowania wykonaniem programu PLC

Lp.

Symbol/Przykład

Wyjaśnienie

1.

 

2.

Skok bezwarunkowy:

Język FBD

 

 

Język LD

 

3.

Skok warunkowy:

Język FBD

 

 

Przykład:

Warunek skoku

 

 

Cel skoku

 

4.

 

 

Skok warunkowy:

Język LD

 

 

Przykład:

Warunek skoku

 

 

Cel skoku

 

5.

 

 

6.

Powrót warunkowy:

Język LD

 

 

Język FBD

 

7.

 

 

8.

 

 

 

Powrót bezwarunkowy:

z FUNCTION

 

z FUNCTION_BLOCK

(język LD)

 

 

Język LD (LAD)

Norma IEC 1131-3 narzuciła, aby program dla sterownika PLC, który został utworzony w języku LD umożliwiał temu urządzeniu wykonywanie testów oraz modyfikowanie danych za pomocą standardowych symboli graficznych. Symbole, o których mowa rozmieszczane są w tzw. sieciach programowych w sposób podobny do „szczebla” (drabiny) przekaźnikowego schematu drabinkowego (schematu stykowego). Sieci programowe języka LD są ograniczone z lewej i prawej strony przez „szyny zasilania”, które są umownym początkiem oraz końcem tej sieci – patrz p.4, pozycja 2 w Tabeli 23. (Umownym, ponieważ dla urządzenia typu sterownik PLC to, co programista tworzy na ekranie programatora w środowisku narzędziowym z językiem LD jest zamieniane na kod cyfrowy dla mikroprocesora tego urządzenia. Szyny zasilające w języku LD mają tylko upodobnić ten język do sposobu tworzenia schematu stykowego). Norma IEC 1131-3 oprócz szyn zasilających wprowadziła jeszcze szereg pojęć, związanych z językiem LD. Są one następujące:

  1. Elementy łączące i stany;
  2. Styki;
  3. Cewki;
  4. Funkcje i bloki funkcji;
  5. Kolejność wyznaczania wartości wyjściowych w sieciach programowych.

Ad 1: Norma stanowi, że elementy łączące w sieciach programowych w języku LD mogą przebiegać poziomo lub pionowo. Element łączący powinien znajdować się w stanie „ON” lub „OFF”, zależnie od odpowiadających im wartości boolowskich odpowiednio „1” lub „0”. Określenie „stan łącza” powinno być traktowane jako synonim „przypływu mocy”. Zakłada się, że lewa szyna przez cały czas znajduje się w stanie ON, przy czym nie definiuje się stanu prawej szyny. (Często w środowiskach narzędziowych dla różnych sterowników PLC prawa szyna nie występuje). Rysunek 41 ilustruje elementy łączące używane do tworzenia programu w języku LD.

 

 

Rysunek 41: Elementy łączące w języku LD: a) poziomy; b) pionowy z poziomym

 

Ad2: Styk jest elementem przekazującym stan do poziomego elementu łączącego, który znajduje się z jego prawej strony co jest równoważne funkcji boolowskiej AND stanu poziomego elementu łączącego z jego lewej strony i odpowiedniej funkcji skojarzonego boolowskiego wejścia, wyjścia lub zmiennej w pamięci (tzw. Marker). Styk nie może zmieniać wartości sprzężonej zmiennej boolowskiej. Standardowe symbole styków, które używane są w języku LD do tworzenia programu dla sterownika PLC ilustruje Tabela 24.

 

Tabela 24: Standardowe symbole styków używane w języku LD

 

Ad 3: Cewka w języku LD kopiuje bez zmian stan elementu łączącego, który znajduje się z jej lewej strony na stan elementu łączącego, który znajduje się z prawej strony i zapamiętuje odpowiednią funkcję stanu lub przejścia, znajdującego się z lewej strony elementu łączącego na sprzężoną zmienna boolowską. Standardowe symbole cewek podane są w Tabeli 25.

Ad 4: Według normy reprezentacja funkcji i bloków funkcji w języku LD powinna być zgodna z podaną wcześniej definicją z następującymi wyjątkami:

  1. Bieżące powiązania parametrów opcjonalnie mogą być przedstawione poprzez pisanie odpowiedniej danej lub zmiennej na zewnątrz bloku, w sąsiedztwie nazwy parametru formalnego wpisanego wewnątrz;
  2. W celu umożliwienia przepływu mocy przez blok, w każdym bloku powinno być wskazane co najmniej jedno wejście boolowskie i jedno wyjście boolowskie.

  Tabela 25: Standardowe symbole cewek w języku LD

 

Ad 5: Norma IEC 1131-3 stanowi, aby w obrębie jednostki organizacyjnej programu, który został napisany językiem LD, wyznaczanie wartości wyjściowych sieci programowych powinno odbywać się w kolejności od góry do dołu, w miarę ich pojawiania się w „drabinkach” programu. Powinno to się odbywać z wyłączeniem przypadków, w których kolejność ta jest modyfikowana przez elementy sterowania wykonaniem, które zawarte są w Tabeli 23.

Przykład programu dla sterownika PLC w języku LD (LAD)