Wykorzystanie programowania sekwencyjnego i współbieżnego w sterowaniu przykładowymi procesami przemysłowymi
2. Programy współbieżne dla przykładowych procesów przemysłowych
2.2. Sterowanie urządzeniem do transportu materiałów sypkich – część 2-ga - program PLC
9. Program PLC dla sterowania urządzeniem transportowym z rysunku 79
SIECI PROGRAMOWE LAD DLA DZIAŁAŃ REALIZOWANYCH POZA JĄDREM ALGORYTMU SFC
SIECI PROGRAMOWE LAD REALIZUJĄCE BLOKI DZIAŁANIA W ALGORYTMIE SFC
Rysunek 86: Sieci programowe LAD dla realizacji algorytmu SFC dla sterowania urządzeniem z rysunku 79
10. Podsumowanie dotyczące sterowania urządzeniem transportowym z rysunku 79
Przypomnijmy, że przekształcenie dowolnego algorytmu SFC na program sterujący PLC (już o tym mówiono, że nie dotyczy to środowisk programistycznych, w których z „automatu” tworzą one kod sterujący w postaci programu dla sterownika PLC) wymaga „trzymania” się przez programistę pewnych zasad, które już zapewne Czytelnik zauważył, a które autor pokazał w zaprezentowanych wcześniej programach PLC. Przypomnijmy, że chodzi m.in. o rezerwację pamięci programu na jądro algorytmu SFC, w którym adresy znaczników programu PLC reprezentują poszczególne kroki algorytmu, oraz że znacznik kroku następnego, który został ustawiony jako kolejny zeruje znacznik kroku poprzedniego.
Należy podkreślić, że zachowanie powyższych oraz innych zasad jest szczególnie wymagane w przypadku, gdy tworzony jest program PLC „pod” algorytm SFC, zawierający nie tylko sterowanie sekwencyjne, ale zawierający również i procedury realizowane współbieżnie, jak algorytm SFC z rysunku 85 dla sterowania urządzeniem transportowym z rysunku 79. Jak Czytelnik zauważył algorytm ten zawiera dwa ciągi, które inicjowane są jednocześnie po spełnieniu tranzycji T1. Takie rozgałęzienie algorytmu SFC po zapaleniu tej tranzycji programowo może być realizowane na dwa następujące sposoby:
1. pierwotne ustawienie znacznika pierwszego kroku ciągu 1’… (t. M10.1 odnosząc to do rysunku 85) i dalej realizacja tego ciągu jak dla sterowania sekwencyjnego, następnie ustawienie znacznika pierwszego kroku ciągu 1’’… (tj. M12.1) i powtórzenie powyższego – tak postąpiono w przykładzie powyżej – patrz sieci programowe dla ciągu 1’… od Network 16 do Network 31 i dla ciągu 1’’ od Network 32 do Network 46, lub
2. jednoczesne (nie zaś oddzielne jak w p.1) ustawienie znaczników pierwszych kroków tych dwóch ciągów (M10.1 i M12.1) i następnie tworzenie sieci programowych oddzielnie, najpierw dla ciągu 1’… a potem 1’’…, tak jak to zrobiono w przykładzie powyżej. Odnosząc to do tego przykładu sieć programowa Network 16 wyglądałaby tak, jak na rysunku 87.
Rysunek 87: Realizacja jednoczesnego ustawienia znaczników pierwszych kroków w dwóch ciągach: 1’…. oraz 1’’….
Zakończenie procedury realizowanej współbieżnie, czyli to, co dotyczy tej drugiej linii przerywanej algorytmu SFC na rysunku 85 (Czytelnik zapewne zorientował się, że sieć programowa zilustrowana na rysunku 87 realizuje pierwszą linię przerywaną tego algorytmu) również musi być programowo zrealizowane poprzez użycie właściwej konstrukcji sieci programowej. Przypomnijmy zatem sieć programową Network 47 zilustrowaną na rysunku 88.
Rysunek 88: Zakończenie procedury współbieżnej po zaistnieniu ostatnich kroków ciągów 1’… i 1’’… i zapaleniu T9
W tym przypadku nie ma dwóch wariantów zakończenia procedury realizowanej współbieżnie jak to miało miejsce z jej uruchomieniem. Zaistnienie Kroku nr 9, który jest już w sterowaniu sekwencyjnym jest możliwe dopiero wtedy, gdy zaistnieją ostatnie kroki w ciągach 1’… i 1’’ oraz zapali się Tranzycja T9 - górna gałąź sieci Network 47. Dolna gałąź tej sieci przyczynia się do zaistnienia Kroku nr 9, ale ponownego, po Kroku nr 10 oraz Tranzycji T9’, czyli już w sterowaniu sekwencyjnym.