Modelowanie procesów transportowych w magazynie elementów produkcyjnych Krzysztof Franczok 1 1 Fabryka Maszyn ROTOX Sp. z o.o. Pokój k/opola, kfranczok@op.pl Wreferacie przedstawiono propozycję metody modelowania procesów transportowych w magazynie z wykorzystaniem zmodyfikowanej sieci Petriego i instrukcji CASE OF języka strukturalnego ST. Zaprezentowano model procesów w magazynie, charakteryzujących się jedną drogą załadunkową i jedną drogą rozładunkową oraz jednoczesnymi operacjami załadunku i rozładunku elementów produkcyjnych. Opisano procedury modelowania procesów dyskretnych w wybranych strefach magazynu, uwzględniając również współbieżne procesy kolizyjne. Pokazano również praktyczny przykład implementacji algorytmu w środowisku PLC. Proponowana metoda modelowania procesów umożliwia uproszczenie i przyspieszenie procesu projektowania algorytmów sterowania oraz weryfikację algorytmów sterowania w warunkach symulacyjnych przed ich wdrożeniem do realnych warunków eksploatacji. 1. Wprowadzenie Do sterowania przepływem elementów produkcyjnych w procesie produkcji, można stosować różnego rodzaju magazyny buforujące i sortujące takie elementy. Magazyn elementów produkcyjnych stanowi część systemu przepływu podzespołów w ciągu produkcyjnym, gdzie zachodzą procesy transportowe, które mają charakter współbieżnych i sekwencyjnych procesów dyskretnych. Do modelowania tego rodzaju procesów dobrze nadają się sieci Petriego. Praca magazynu elementów produkcyjnych (rysunek 1) w najprostszym ujęciu polega na: przyjmowaniu elementów produkcyjnych np. szyb okiennych, charakteryzujących się różnymi właściwościami fizycznymi, podawanymi na wejściu magazynu, w sposób stochastyczny, układaniu elementów w miejscach magazynowania (półkach), które są ustalane w procesie analizy optymalnego położenia, w czasie rzeczywistym, na podstawie określonych kryteriów, których celem jest uporządkowanie wkładanych elementów. wydawaniu elementów produkcyjnych wg określonego porządku, który nie jest z góry założony lecz jest znany dopiero w chwili wywołania określonych elementów produkcyjnych. Żądania wywołania elementów produkcyjnych należy traktować jako zdarzenia o charakterze stochastycznym, gdyż czas i rodzaj zapotrzebowania na elementy, które należy wytransportować z magazynu zależne są od czynników zewnętrznych, którą mogą się w sposób dynamiczny zmieniać. 1
Magazyn elementów produkcyjnych, można podzielić na trzy części funkcjonalne : strefa załadunku - służąca do napełniania magazynu elementów produkcyjnych, strefa magazynowa - służąca do przechowywania elementów produkcyjnych, strefa rozładunkowa - służąca do wydawania elementów produkcyjnych zażądanych w procesie produkcji. Strefy załadunku i rozładunku stanowią granice między częścią magazynu pracującą automatycznie bez udziału człowieka, a częścią stanowiącą połączenie z otoczeniem, gdzie decydujący wpływ na działanie magazynu ma udział człowieka. Do zadań realizowanych przez algorytmy sterujące przepływem elementów produkcyjnych w magazynie można zaliczyć: przyjmowanie elementów produkcyjnych do magazynu, określenie typu, gabarytów szyby, przynależności do zlecenia, przynależności do okna. Dane te służą jako parametry wejściowe do algorytmu decyzyjnego sterowania przepływem danego elementu produkcyjnego, wyszukiwanie optymalnego miejsca w magazynie w zależności od parametrów wejściowych, realizację funkcji sortowania elementów produkcyjnych według założonych kryteriów, realizację funkcji wytyczania optymalnej trasy przejazdu wózka transportowego, realizację funkcji kompletowania zlecenia wydawania elementów produkcyjnych i kolejności realizacji tych zleceń w zależności od założonych kryteriów i warunków zewnętrznych, sterowanie wózkami transportowymi, segmentami rolkowymi, obrotnicami, pochylniami, w celu umożliwienia optymalnego, a zarazem bezkolizyjnego napełniania i opróżniania magazynu elementów produkcyjnych. Rysunek 1: Schemat blokowy magazynu elementów produkcyjnych. [opracowanie własne] Oznaczenia: S1.n S2.n SW1 SW2 Kn numer segmentu transportowego załadunku (S1.1 - S1.4) numer segmentu transportowego rozładunku (S2.1 - S2.4) wózek transportowy załadunku wózek transportowym rozładunku numer przegrody w wózku transportowym Rn numer półki magazynowej (R1 - R18) W pracy przedstawiono propozycję metody modelowania algorytmów sterowania wybranymi procesami sekwencyjnymi i współbieżnymi występującymi w magazynie elementów produkcyjnych z wykorzystaniem zmodyfikowanych sieci Petriego. Zaproponowano też sposób implementacji modelu algorytmu w środowisku PLC [1]. Metoda ta ma na celu uproszczenie realizacji słownie opisanych potrzeb, co do sposobu działania procesu, oraz umożliwienie formalnej analizy algorytmów, pozwalającej na wykrywanie i usuwanie błędów w algorytmach już na etapie projektowania [7]. 2
2. Charakterystyka dyskretnych procesów w magazynie Magazyn sortujący i porządkujący elementy produkcyjne jest złożonym obiektem sterowania, w którym zachodzą procesy dyskretne o różnym charakterze. Praca w systemie czasu rzeczywistego magazynu elementów produkcyjnych jest procesem w pewnym stopniu chaotycznym. Obsługa napływających zleceń produkcyjnych powoduje, iż stan początkowy ustawień maszyny zmienia się nieprzewidywalnie w czasie jej pracy. Nie można ściśle przewidzieć kolejek zleceń dla wózków załadunkowych i rozładunkowych, miejsc postojów wózków, stanu załadowania magazynu, aktualnego stanu pracy itp. Niepewność parametrów powoduje, iż sterowanie obiektem nie jest zagadnieniem prostym. W magazynie jako obiekcie sterowania można wyróżnić procesy w których występuje współdziałanie człowieka z maszyną jak i praca w pełni automatyczna. Do procesów, w których istotną rolę odgrywa człowiek, zaliczyć można wkładanie elementów na segmenty załadunku, wysyłanie do magazynu żądań określonych elementów, czy też ich zdejmowanie z segmentów rozładunku. Procesy te charakteryzują się występowaniem zdarzeń o charakterze stochastycznym, co oznacza, że opóźnienia czasowe ich wystąpienia są wartościami losowymi o zadanym rozkładzie prawdopodobieństwa. Trudno jest jednoznacznie określić w jakich odstępach czasu operator maszyny będzie wkładał elementy produkcyjne na segment transportowy załadunku, czy też w jakich odstępach czasu będzie zdejmował elementy produkcyjne z segmentów transportowych rozładunku. Stan zajętości segmentów załadunku i rozładunku ma zaś wpływ, na to czy proces automatyczny wprowadzania i wyprowadzania elementów produkcyjnych może być realizowany. Do procesów w pełni zautomatyzowanych zaliczyć można działanie algorytmów: sterowania wózkami transportowymi, szukania optymalnego miejsca w magazynie, sortowania i innych. W procesach tych występują zdarzenia o charakterze deterministycznym, czyli takie, których wykonanie zależy od spełnienia ściśle określonych warunków. Ich spełnienie zaś, powoduje zmianę stanu obiektu sterowania. Na zachodzące, w magazynie elementów produkcyjnych, procesy kluczowy wpływ może mieć czas i związane z nim zjawiska dynamiczne. W przypadku ruchu wózków transportowych we wspólnym obszarze, wpływ na zdarzenia kolizyjne może mieć czas wykonywania operacji, czas potrzebny na przemieszczenie się wózka transportowego do obszaru, w którym nie może dojść do kolizji i inne. Zachodzi też potrzeba uwzględnienia, dużego zróżnicowania elementów produkcyjnych z punktu widzenia ich właściwości, takich jak gabaryty, czy rodzaj materiału. Zróżnicowanie to ma istotny wpływ na sposób realizacji procesów transportowych. W magazynie elementów produkcyjnych występują również zdarzenia, które powinny być realizowane jednocześnie, ale z pewnym względów nie jest to możliwe. Do takich zdarzeń można zaliczyć jednoczesne zapotrzebowanie na wprowadzenie elementu do magazynu oraz wyprowadzenie innego elementu z magazynu, z wykorzystaniem tego samego zasobu jakim jest np. wózek transportowy. W tego rodzaju sytuacji konieczne jest wprowadzenie priorytetów dla poszczególnych klas procesów. Aby możliwe było zamodelowanie siecią Petriego, algorytmów sterujących uwzględniających charakter procesów występujących w magazynie, należy dobrać odpowiedni do danego obszaru zastosowania typ sieci. 3. Sieci Petriego do modelowania procesów w magazynie Sieci Petriego stanowią wygodny sposób opisu procesów sekwencyjnych i współbieżnych. W zależności od potrzeb można definiować sieci Petriego, różniące się pewnymi właściwościami [5]. W przypadku magazynu elementów produkcyjnych, sieć Petriego, w zależności od obszaru zastosowania, musi spełniać warunki pozwalające na odwzorowanie istotnych właściwości procesów zachodzących w magazynie. W świetle przedstawionej w poprzednim rozdziale charakterystyki dys- 3
kretnych procesów występujących w magazynie, sieć spełniająca te warunki powinna być: kolorowana, czasowa, stochastyczna, priorytetowa. Tego typu sieć można opisać jako piętnastkę [6]: S = {P, T, I, O, H, M 0, τ, X, Γ, C, G, E, R, r 0, B} (1) gdzie: P zbiór miejsc T zbiór tranzycji, T P = I, O, H funkcje odpowiednio wejścia, wyjścia oraz inhibitory, IOH : T B(P ), gdzie B(P ) jest wielozbiorem nad zbiorem P, zaś funkcje I, O, H są określone dla danej tranzycji t T jako: t + = {p P : I(t, p) > 0} zbiór wejść tranzycji t, t = {p P : O(t, p) > 0} zbiór wyjść tranzycji t, t o = {p P : H(t, p) > 0} zbiór inhibitorów tranzycji t, M 0 : P Z + jest znakowaniem początkowym τ : T P R + funkcja opóźnień, określająca opóźnienie statyczne τ(t) tranzycji t przenoszącej znaczniki do miejsca p X : T P R + zmienna losowa, opisująca losowy czas realizacji zdarzenia ruchowego (tranzycji) t prowadzącego do sytuacji ruchowej (miejsca P ). Γ niepusty skończony zbiór kolorów C funkcja określająca jakiego koloru znaczniki mogą być przechowywane w danym miejscu C : P Γ G funkcja określająca warunki, jakie muszą być spełnione, aby tranzycja mogła być odpalona. Są to wyrażenia zawierające zmienne typów należących do Γ, dla których można dokonać wartościowania dającego w rezultacie wartość logiczną E funkcja opisująca tzw. wagi łuków, tzn. wyrażenia zawierające zmienne typów należących do Γ, dla których można dokonać wartościowania dającego w rezultacie wielozbiór nad typem koloru przypisanego do miejsca, które znajduje się na początku lub na końcu danego łuku. R zbiór znaczników czasowych (zwanych też punktami czasowymi lub pieczątkami czasowymi), zamknięty ze względu na operację dodawania, r 0 B : T R + czas początkowy, r R funkcja określająca priorytet tranzycji t, funkcja ta ma zastosowanie tylko dla tranzycji jednocześnie aktywnych, w której to sytuacji możliwy jest swobodny wybór tranzycji do odpalenia Ustalone sytuacje ruchowe odpowiadają miejscom w sieci, zaś zdarzenia ruchowe tranzycjom. Znaczniki w miejscach sieci mogą być identyfikowane jako uczestnicy ruchu (np. szyby) lub stany otoczenia [6]. Stosując sieć Petriego możliwe jest określenie żywotności, ograniczoności, grafu osiągalności, zbioru osiągalności, występowanie zakleszczeń w algorytmie. Z punktu widzenia sterowania, najistotniejszą własnością sieci modelującej procesy ruchowe jest osiągalność wybranych stanów ze znakowania początkowego M0 [6]. Do przeprowadzenia analizy grafu osiągalności, celowym staje się redukcja złożonych sieci Petriego z wykorzystaniem dostępnych metod [7, 8]. Redukcja sieci przydatna jest również do celów implementacji modelu w środowisku sterownika PLC [1, 2]. W przypadku gdy analizie poddawany jest jedynie ciąg zdarzeń, prowadzących do badanej sytuacji, czy też ciąg zdarzeń będących konsekwencją pewnego zdarzenia inicjującego, wystarczające do modelowania procesów ruchowych, może być zastosowanie nieczasowych sieci Petriego [6]. Zastosowanie w tym przypadku technik analitycznych właściwych dla sieci Petriego może przyspieszyć uzyskiwanie zadawalających wyników o dużej dokładności [6]. W pracy pokazano przykłady algorytmów zamodelowanych z wykorzystaniem znakowanej sieci Petriego, w odniesieniu do rozpatrywanych procesów dyskretnych, zachodzących w magazynie. 4. Opis procedur występujących w wybranych algorytmach procesów dyskretnych 4.1. Model procesu w strefie załadunku Jednym z procesów dyskretnych zachodzących w magazynie elementów produkcyjnych jest proces załadunku. Strefa załadunku składa się z elementów transportowych podzielonych na segmenty transportowe S1.1 do S1.4 (rysunek 1). Służą one do buforowania kolejki szyb i tym samym redukcję wpływu stochastycznego charakteru pracy człowieka na pracę magazynu. 4
Wózek transportowy SW1 może pobierać szyby z kolejki, wprowadzając je w optymalny sposób na przegrody wózka. Wózek SW1 może być wyposażony w jedną, dwie lub więcej przegród. Każda przegroda może przyjąć do dwóch szyb. Takie rozwiązanie umożliwia załadunek szyb, na każdą z przegród zależnie od wyniku zastosowanego algorytmu sterowania procesem załadunku. Realizacja algorytmu sortowania może odbywać się w następujący sposób. Wózek transportowy SW1 rozpoczyna pracę od ustawienia się do segmentów załadunku, w sposób umożliwiający wprowadzenie, pierwszej szyby na przegrodę K1. Wybór numeru przegrody dla kolejnej szyby, uwarunkowany jest wynikiem działania algorytmu decyzyjnego, wykonywanego w miejscu P50 sieci Petriego (rysunek 2). Wykonanie algorytmu decyzyjnego jest powtarzane po każdorazowym wprowadzeniu kolejnej szyby na wózek, co sprawia, że wynik wnioskowania jest wyznaczany w czasie rzeczywistym w zależności od zmieniającej się w czasie ilości szyb na segmentach podających. Algorytm decyzyjny można schematycznie przedstawić jako blok o wielu wejściach i jednym wyjściu. Parametry wejściowe stanowi zbiór U1 (właściwości szyb na segmentach S1.1 S1.4), zbiór U2 (właściwości szyb na wózku SW1), oraz zbiór U3 (właściwości wózka SW1), zaś parametrem wyjściowym jest warunek odpalenia tranzycji przyjmujący wartości ze zbioru Y1 = [K1,K2,R], gdzie : K1 załadunek szyby na przegrodę K1 poprzez odpalenie tranzycji T60 K2 załadunek szyby na przegrodę K2 poprzez odpalenie tranzycji T100 R koniec załadunku szyb poprzez odpalenie tranzycji T150 Jeśli wynik algorytmu wskaże przegrodę K1, odpalana jest tranzycja T60 i wykonywana jest sekwencja ustawienia przegrody K1 do segmentu załadunkowego i pobrania szyby. Po wykonaniu tej sekwencji zostaje odpalona tranzycja T91, co skutkuje powrotem sekwencji do miejsca P50 i ponownym wykonaniem algorytmu decyzyjnego. Analogicznie w przypadku wyboru przegrody K2, odpalana jest tranzycja T100, a po wykonaniu sekwencji dojazdu i załadunku szyby, tranzycja T131. Taka konstrukcja algorytmu załadunku, umożliwia optymalizowanie załadunku w czasie rzeczywistym w sposób rekurencyjny. Algorytm decyzyjny może mieć formę prostych reguł logicznych lub może przyjąć postać regulatora rozmytego [3]. Rysunek 2: Model w postaci sieci Petriego, algorytmu sekwencyjnego sterowania załadunkiem szyb do magazynu Wiedza o właściwościach każdej z szyb znajdujących się na segmentach buforujących, umożliwia sterowanie załadunkiem w sposób maksymalnie wykorzystujący miejsce na wózku, a jednocześnie pozwala zoptymalizować proces odkładania szyb na półki, by wózek SW1 jak najkrócej przebywał w strefie krytycznej. Strefa krytyczna rozumiana jest jako obszar, w którym pracują jednocześnie dwa wózki transportowe, SW1 służący do wprowadzania szyb do magazynu oraz SW2 służący do 5
wywożenia szyb z magazynu (rysunek 1). W strefie krytycznej zachodzi ryzyko wystąpienia kolizji wózków transportowych, wynikające z potrzeby dostępu danego wózka do obszarów zajętych przez wózek drugi. Sposób rozwiązywania kolizji opisany jest w dalszej części referatu. Po umieszczeniu określonej ilości szyb na wózku transportowym, następuje przejście programu do miejsca P150, gdzie realizowany jest algorytm syntezy zlecenia Z, określającego sposób umiejscowienia szyb na półkach magazynowych. Zadaniem tego algorytmu jest znalezienie optymalnej półki dla danej szyby, spełniającej określone kryteria oceny. Wynik działania algorytmu przeszukiwania półek magazynu, przyjmuje postać zlecenia Z, zawierającego kolejność rozładunku szyb z wózka na półki magazynowe. Oznaczenia: Pn Ti P0 P50 P60 P100 P150 P200 P300 - numer miejsca w sieci Petriego - numer tranzycji w sieci Petriego - P40 - sekwencja przejazdu wózka do pozycji początkowej - miejsce decyzji o sposobie załadunku - P90 - sekwencja załadunku szyby z segmentu S1.4 na przegrodę K1 wózka SW1 P130 - sekwencja załadunku szyby na przegrodę K2 wózka SW1 P160 - sekwencja szukania odpowiednich półek magazynowych P250 - sekwencja odkładania szyby z przegrody K1 wózka SW1 na półkę Rn P350 - sekwencja odkładania szyby z przegrody K2 wózka SW1 na półkę Rn W miejscu P170 (rysunek 2) w wyniku działania algorytmu decyzyjnego, następuje decyzja o wyborze przegrody wózka z której ma być odkładana szyba. Parametrem wejściowym algorytmu jest zbiór informacji zawarty w zleceniu Z, zaś parametrem wyjściowym jest warunek odpalenia tranzycji przyjmujący wartości ze zbioru Y2= [K1,K2,R], gdzie : K1 odkładanie szyby z przegrody K1 na półkę Rn, poprzez odpalenie tranzycji T200 K2 odkładanie szyby z przegrody K2 na półkę Rn, poprzez odpalenie tranzycji T300 R koniec odkładania szyb na półki, poprzez odpalenie tranzycji T400 W zależności od tego, czy ma nastąpić rozładunek szyb z przegrody K1, czy K2 odpalane są odpowiednio tranzycje T200 lub T300. Po wykonaniu sekwencji dojazdu do określonej w zleceniu Z, półki magazynowej i odłożenia określonej liczby szyb z przegrody wózka na półkę, następuje przejście do miejsca decyzji P170, gdzie następuje ponowne wykonanie algorytmu decyzyjnego. 4.2. Model procesu w strefie rozładunku W analogiczny do załadunku sposób modelowany jest algorytm wywożenia szyb z magazynu. Model również podzielony jest na określone sekwencje działania, których wybór odbywa się w miejscach decyzyjnych. Na rysunku 3. przedstawiony jest model algorytmu rozładunku, na którym widać dwa miejsca decyzyjne P30 oraz P100. Oznaczenia: Pn Ti P0 P30 P100 P140 P150 P160 P170 P180 - numer miejsca w sieci Petriego - numer tranzycji w sieci Petriego P20 - sekwencja przejazdu wózka do pozycji początkowej - miejsce decyzji o wyborze algorytmu szukania szyb w magazynie - miejsce decyzji o wyborze odpowiedniej sekwencji P143 - sekwencja przejazdu wózka na pozycję bezpieczną - antykolizyjną P153 - sekwencja załadunku szyby z półki Rn na przegrodę K1 wózka SW2 P163 - sekwencja załadunku szyby z półki Rn na przegrodę K2 wózka SW2 P173 - sekwencja odkładania szyby z przegrody K1 wózka SW2 na półkę Rn P183 - sekwencja odkładania szyby z przegrody K2 wózka SW2 na półkę Rn W punkcie P30 wybierana jest metoda budowy zlecenia wywożenia szyb. W punkcie P100 znajduje się algorytm sterujący wyborem przegrody Kn, wózka transportowego. W zależności od wyboru przegrody wózka i rodzaju operacji (pobranie szyby z półki, odłożenie szyby na segment odbierający), wybierana jest odpowiednia sekwencja działania. Jako przykład można podać sekwencję P150-P152. Zadaniem jej jest wywołanie przejazdu wózka na pozycję określonej w zleceniu półki, a następnie pobraniu określonej w zleceniu ilości szyb z tej półki. Po wykonaniu tej sekwencji, program wraca do punktu decyzyjnego P100, gdzie podejmowana jest decyzja o dalszym działaniu.. 6
Rysunek 3: Model algorytmu wywożenia szyb z magazynu [opracowanie własne]. 4.3. Problemy modelowania współbieżnych procesów kolizyjnych W magazynie elementów produkcyjnych procesy załadunku i rozładunku, w zależności od zastosowanego rozwiązania, mogą odbywać się przemiennie z wykorzystaniem tego samego wózka transportowego, lub jednocześnie z wykorzystaniem różnych wózków transportowych dedykowanych do danego rodzaju działania. W przypadku jednoczesnej pracy wózków transportowych (rysunek 1), zachodzi problem możliwych kolizji. Kolizje te spowodowane są korzystaniem przez obydwa wózki transportowe z tych samych zasobów jakimi są półki Rn magazynu. Wózki transportowe jako elementy autonomiczne realizują określone zadania niezależnie od siebie, ale w momencie wystąpienia ryzyka zaistnienia sytuacji kolizyjnej, musi zadziałać mechanizm zapobiegający takiemu zdarzeniu. Mechanizm ten pełni rolę nadrzędną nad algorytmami realizującymi poszczególne procesy i może być również zamodelowany siecią Petriego, a następnie zaimplementowany z wykorzystaniem instrukcji CASE OF języka strukturalnego [1]. W pracy [1] wskazano sposób wpływania na zmianę przebiegu procesu sekwencyjnego o charakterze podrzędnym, przez proces o charakterze nadrzędnym, w implementacjach rozwiązywanych za pomocą instrukcji CASE OF. Na rysunku 3. przedstawiona została sekwencja przejazdu wózka na pozycję bezpieczną (P140-P142), która jest wykonywana w wyniku wpływu (poprzez wywłaszczenie) nadrzędnego mechanizmu zapobiegania kolizji na niezależny w pewnym stopniu proces wywożenia szyb. Inne sposoby rozwiązywania problemów związanych ze współbieżnością procesów, których konsekwencją są kolizje, można znaleźć w [4]. 5. Zmodyfikowana sieć Petriego z wykorzystaniem instrukcji CASE OF języka ST Koncepcja modelowania algorytmów dyskretnych procesów produkcyjnych, zakłada trzyetapowe działanie. W pierwszym etapie należy zaprojektować model w postaci sieci Petriego. W etapie drugim należy dokonać sprawdzenia formalnego modelu. Ostatni trzeci etap polega na implementacji sieci Petriego w środowisku sterowników PLC z wykorzystaniem instrukcji CASE OF języka strukturalnego ST [1]. Wykorzystując zasadę działania sterownika programowalnego, który wykonuje program cyklicznie, 7
można użyć właściwości instrukcji CASE OF do budowy programu sekwencyjnego. Odpowiednie sterowanie wieloma pojedynczymi sekwencjami programu, pozwala na realizację procesów współbieżnych i ich synchronizację [1]. Z wykorzystaniem instrukcji CASE OF, w zależności od nieujemnej wartości całkowitej zmiennej P, wykonywane są instrukcje zawarte tylko dla danego przypadku określonego wartością zmiennej P. W ramach tego przypadku można wykonywać dowolną ilość instrukcji, pętli iteracyjnych, operacji arytmetycznych. Wszystkie pozostałe przypadki nie są brane pod uwagę podczas wykonywania programu. Możemy zatem założyć, że dla określonej wartości całkowitej, nieujemnej n, przyjmowanej przez zmienną P, program znajduje się w określonym stanie miejscu P. Dopóki zmienna P będzie przyjmowała określoną wartość n, tak długo sterownik programowalny w każdym cyklu pracy będzie wykonywał instrukcje zadeklarowane dla przypadku P=n. Zmiana wartości zmiennej P spowoduje, że sterownik programowalny będzie wykonywał instrukcje dla nowego przypadku P, a zatem zmieni stan miejsce w sekwencji [1]. Aby możliwe było przejście do nowego stanu procesu sekwencyjnego, konieczna jest zmiana wartości zmiennej P. W tym celu konieczne jest zadeklarowanie warunków odpalenia tranzycji. Taka deklaracja może przyjąć postać instrukcji if then i musi być umieszczona w ramach aktywnego miejsca P. Spełnienie warunków if then w czasie aktywności miejsca P spowoduje zmianę wartości zmiennej P, na taką jaka odpowiada pożądanemu miejscu procesu sekwencyjnego. W kolejnym cyklu pracy, sterownik wykona instrukcje zawarte w ramach nowego miejsca. Możliwe jest wprowadzenie więcej niż jednej instrukcji warunkowej if then w ramach jednego aktywnego miejsca P co odpowiada kilku tranzycjom stanowiącym wybór alternatywny. Za pomocą instrukcji warunkowej if then, możliwe jest uruchomienie więcej niż jednego nowego procesu sekwencyjnego, co odpowiada tranzycji dzielącej sekwencje na dwa procesy współbieżne. Porównanie fragmentu sieci Petriego i implementacji w języku ST przedstawiono na rysunku 4. Program rozpoczyna pracę z wartością początkową P=0. Dopóki nie zostanie spełniony warunek C = true, sterownik PLC będzie w każdym kolejnym cyklu programu wykonywał instrukcje przewidziane w miejscu P0. Inne części programu nie będą wykonywane przez sterownik. W momencie spełnienia warunku C = true, program przypisuje zmiennej P wartość 9, co powoduje, że w kolejnym cyklu pracy program będzie wykonywany tylko w ramach miejsca P9. Rysunek 4: Przykład programu sekwencyjnego napisanego z wykorzystaniem instrukcji CASE OF [opracowanie własne]. Dzięki właściwościom instrukcji CASE OF możemy w pełni i bezpośrednio odwzorować strukturę opisaną za pomocą sieci Petriego [1]. Istotnym jest fakt, że sterownik wykonuje tylko tę część programu, która jest zawarta w ramach aktywnego miejsca określonego wartością zmiennej P, co ułatwia analizę zarówno modelu jak i programu. Synchronizacja dwóch procesów współbieżnych wymaga wyodrębnienia makro miejsc P30 oraz P40 w sieci Petriego, do dwóch osobnych sekwencji, wywoływanych w makro miejscu nadrzędnym P10 powstałym w wyniku redukcji modelu z rysunku 5-A. Zakończenie obu współbieżnie wykonywa- 8
nych sekwencji skutkuje odpaleniem tranzycji T4 (rysunek 5a) i powrotem znacznika do miejsca początkowego. W ten sposób możliwa jest synchronizacja dowolnej liczby procesów współbieżnych, z dokładnością do jednego cyklu sterownika. Rysunek 5: Przykład programu sekwencyjnego napisanego z wykorzystaniem instrukcji CASE OF [opracowanie własne]. Więcej informacji na temat metody przekształcania sieci Petriego do postaci programu dla sterownika PLC z wykorzystaniem instrukcji CASE OF, oraz informacji o związanych z tą metodą korzyściach, można znaleźć w [1]. 6. Podsumowanie Magazyny elementów produkcyjnych są elementami kluczowymi w procesie produkcji, dlatego wszelkie działania i testy na funkcjonującym obiekcie, mogące prowadzić do zakłócenia pracy magazynu, są bardzo niebezpieczne z punktu widzenia zachowania ciągłości procesu produkcji. Z tego względu celowym jest prowadzenie badań algorytmów w warunkach symulacyjnych, przed ich wprowadzeniem do rzeczywistego obiektu. Bardzo pomocne są w tym modele algorytmów w postaci sieci Petriego, pozwalające już na etapie projektowania wykluczyć ewentualne błędy prowadzące do wystąpienia kolizji i blokad. Celem niniejszego referatu jest zasygnalizowanie problematyki i zaproponowanie metody rozwiązywania tego typu zagadnień dla celów sterowania w środowisku sterowników swobodnie programowalnych. W pracy skupiono się na modelowaniu i analizie algorytmów dla grupy zadań sterujących przepływem elementów produkcyjnych. Większość algorytmów stosowanych w magazynie elementów produkcyjnych, oparta jest na wykonywaniu sekwencyjnych i współbieżnych procesów dyskretnych. Charakter procesów zachodzących w magazynie elementów produkcyjnych, wymaga zastosowania do modelowania, zmodyfikowanej sieci Petriego dopasowanej swymi własnościami do właściwości analizowanego procesu. Aby umożliwić przeprowadzenie określonych analiz, jak również w celu ułatwienia implementacji modelu w środowisku sterownika PLC, korzystne jest stosowanie metod redukcji sieci Petriego, dla określonych obszarów działania. Pewne analizy działania algorytmów sterowania procesami dyskretnymi korzystnie i wystarczająco można przedstawić za pomocą zmodyfikowanej znakowanej sieci Petriego, co znacznie upraszcza proces projektowania [6]. Z tego względu procesy opisane w tej pracy zamodelowano za pomocą takiej sieci Petriego. Algorytmy realizowane są w postaci modeli wykorzystujących sieci Petriego, które następnie są przekształcane do postaci programu dla sterownika PLC z wykorzystaniem instrukcji CASE OF języka strukturalnego ST [1]. Przedstawiona w referacie metoda modelowania i implementacji algorytmów sterowania procesami transportowymi, upraszcza i przyspiesza proces projektowania, gdyż nie wymaga przekształcania sieci do postaci logicznej. Każdemu miejscu w sieci Petriego odpowiada fragment programu określony wartością zmiennej P, co umożliwia wprowadzenie do 9
programu, w sposób prosty i jednoznaczny, modyfikacji wprowadzonych do sieci Petriego. Metoda ta pozwala też na weryfikację algorytmów w warunkach symulacyjnych, przed ich wdrożeniem do rzeczywistego obiektu. Wykorzystanie sieci Petriego do projektowania algorytmów sterowania procesami dyskretnymi umożliwia budowanie hierarchicznych modeli, w których decyzje o wyborze określonej sekwencji działania podejmowane są z wykorzystaniem, różnego rodzaju klas algorytmów, które mogą być projektowane jako układy o wielu wejściach i wielu wyjściach. Wyniki na wyjściach takich układów decydują o wyborze odpowiedniej sekwencji pracy. Określona sekwencja działania, może zaś wywoływać wykonanie wielu współbieżnych procesów podrzędnych [2]. Wszystkie zaprezentowane algorytmy zostały zaprojektowane i zaimplementowane w rzeczywistych obiektach magazynowych, z wykorzystaniem proponowanej metody, i dobrze spełniają swoje zadania. Literatura [1] Franczok K., Metoda modelowania procesów sekwencyjnych i współbieżnych w środowisku sterowników PLC, Pomiary Automatyka Robotyka, No. 1, pp. 98 104 (2014) [2] Franczok K., A Petri net based control method for concurrent and sequentual processes in a storehouse, Zeszyty Naukowe Politechniki Opolskiej, seria Elektryka, No. 352/2014 vol. 70, pp. 21-22, Pokrzywna (2014) [3] Gniewek L., Rozmyta interpretowana sieć Petriego jako układ sterowania, Pomiary Automatyka Robotyka, Vol. 55, No. 7, pp. 494 497 (2009) [4] Reisig W., Petrinetze, Modelierungstechnik, Analysemethoden, Fallstudien, Vieweg+Treubner Verlag Springer Fachmedien, Wiesbaden (2010) [5] Skorupski J., Sieci Petriego jako narzędzie do modelowania procesów ruchowych w transporcie, Prace Naukowe Politechniki Warszawskiej, Vol. 78, pp. 69 84, Warszawa (2011) [6] Skorupski J., Modelowanie procedur startu i lądowania z wykorzystaniem sieci Petriego, Prace Naukowe Politechniki Warszawskiej, Vol. 95, pp. 455 467, Warszawa (2013) [7] Szpyrka M., Formalna weryfikacja wymagań systemów czasu rzeczywistego, Wydawnictwa AGH, Vol. 2, pp. 109 129, (2000) [8] Szpyrka M., Sieć Petriego w modelowaniu i analizie systemów współbieżnych, Wydawnictwa Naukowo-Techniczne, 2008 10