Systemy sterowania współczesnych robotów
Transkrypt
Systemy sterowania współczesnych robotów
KNWS’14 1 Jacek TKACZ, Marek TONDER UNIWERSYTET ZIELONOGÓRSKI, Wydział Elektrotechniki, Informatyki i Telekomunikacji, Instytut Informatyki i Elektroniki, ul. Podgórna 50, 65-246, Zielona Góra Zintegrowany system projektowania sterowników logicznych bazujący na modelu hierarchicznych, interpretowanych i kolorowanych sieci Petriego dr inż. Jacek TKACZ 1. Wprowadzenie Absolwent Uniwersytetu Zielonogórskiego. Od 2009 roku pracownik zatrudniony na stanowisku adiunkta w Zakładzie Inżynierii Komputerowej. Prowadzi badania nad symboliczną metodą dowodzenia twierdzeń i jej praktycznymi zastosowaniami w informatyce oraz elektronice. Interesuje się nowoczesnymi technologiami projektowania i wytwarzania aplikacji, w tym aplikacji mobilnych. W latach 1997-2005 zajmował się projektowaniem i rozwojem oprogramowania dla polskich bibliotek (PROLIB). e-mail: [email protected] inż. Marek TONDER Absolwent Uniwersytetu Zielonogórskiego (2013r.). Ukończył studia informatyczne o specjalności inżynieria systemów mikroinformatycznych. Obecnie uczestnik studiów magisterskich na tej samej uczelni. Zainteresowania obejmują zagadnienia dotyczące programowania i projektowania systemów informatycznych przy użyciu nowoczesnych technologii. Pasjonat wszelkich nowinek technologicznych. e-mail: [email protected] Streszczenie Analiza rynku wykazała znikomą ilość upublicznionych rozwiązań opisujących kompletne systemy wspomagające proces projektowania sterowników logicznych i wykorzystujących do tego celu sieci Petriego. W zastosowaniach komercyjnych wykorzystywane są inne znane formaty i sposoby opisu sterowników, jednak w środowisku akademickim, ze względu na swój bogaty aparat matematyczny, popularne są również sieci Petriego. Motywacją autorów nie było jednak opracowanie kolejnego typowego edytora sieci Petriego dedykowanego sterownikom logicznym, lecz takiego który z powodzeniem będzie również współpracował z wieloma dostępnymi na rynku systemami przeznaczonymi do analizy i symulacji sieci. Słowa kluczowe: sterowniki logiczne, sieci Petriego, PNML. System for logic controller design based on hierarchical, interpreted and colored Petri net model Abstract The paper presents the new CAD system for computer-aided design of concurrent logic controllers. Modular, interpreted and colored Petri net model is selected as the main representation of logic controllers. This model is well known and used in many scientific researches. The analysis showed a negligible amount of solutions based on Petri nets and dedicated to logic controllers design. The main idea of the authors was to develop a tool for logic controllers design cooperating with available academic software. Cooperation was obtained through the use of PNML standard as a data exchange format. Implemented tool allows the user to design logic controllers graphically. The object-model library of the Petri net was prepared with a Microsoft .Net technology. Windows Presentation Foundation (WPF) graphical engine was used for the presentation layer. Logical layer and all algorithms were implemented in C# language. In addition, the implemented library can export the data in the transition-based sequent form which can be accepted by external software. External “Gentzen” software can reduce logic controller description, and then performs its transformation into hardware description language. After that direct synthesis and implementation into FPGA structure is possible. Keywords: logic controllers, Petri nets, PNML. Koncepcja systemu narodziła się w momencie projektowania różnego rodzaju algorytmów syntezy logicznej realizowanej dla sterowników. Niezbędne okazały się takie algorytmy jak kolorowanie i dekompozycja na składowe automatowe. Rozpoczęto wtedy analizę rynku pod względem dostępności produktów komercyjnych i akademickich przeznaczonych do analizy kolorowania oraz przetwarzania różnego rodzaju koncepcyjnych algorytmów bazujących na sieciach Petriego. Podczas tej analizy natrafiono na szereg aplikacji akademickich dedykowanych sieciom Petriego, z których warto wymienić tu „Tinę” oraz „WoPed”. Tak jak zakładano, programy te potrafią symulować funkcjonowanie sieci, zbadać jej podstawowe własności oraz wyznaczyć grafy współbieżności, czy znakowań osiągalnych. Działają one jednak na bardzo podstawowych klasach sieci i nie da się ich w prosty sposób zaadoptować do procesu projektowania sterowników logicznych. Najbardziej zaawansowanym narzędziem okazała się implementacja CPN Jensena [1]. Operuje ona na sieciach interpretowanych i ma zaimplementowanych najwięcej różnego rodzaju algorytmów. Wiele prac badawczych Jensena zostało opublikowanych w licznych pracach naukowych. Jednym z największym wad tego systemu, poza brakiem wsparcia dla sterowników logicznych, jest jego interfejs. Znacząco odbiega on od ogólnie przyjętych standardów Skomplikowany interfejs i zawiła dokumentacja bardzo utrudniają pracę z narzędziem, co powoduje że na przykład operacje dodania choćby tokena do miejsca wydaje się być prawie niemożliwa. Innym ciekawym rozwiązaniem, na które warto zwrócić uwagę jest system PeNCAD [2] opracowany na Uniwersytecie Zielonogórskim. Formatem danych dla tego systemu jest opracowany przez autorów PNSF (PNSF2 i PNSF3) bazujący na języku XML [3]. Zawiera on wszystkie niezbędne deklaracje przeznaczone dla sterowników logicznych jednakże nie zyskał on szerszej popularności na świecie. W wyniku przeglądu dostępnego oprogramowania zauważono tendencję wykorzystywania innego formatu danych opartego również na języku XML. Językiem tym okazał się ustandaryzowany już format PNML [4]. 2. PNML jako format wymiany danych PNML jest językiem opisującym graficzną reprezentację hierarchicznych sieci Petriego. Definiuje on miejsca, tranzycie, łuki, znakowania początkowe oraz dokładną lokalizację wszystkich obiektów na stronie. Format ten posiada ściśle zdefiniowany schemat i nie zawiera żadnych interpretacji sieci, czy też wprowadzania rozszerzeń w postaci kolorów. Specyfikacja uwzględnia jednak możliwość wprowadzania dedykowanych rozszerzeń wykorzystywanych przez różnego rodzaju specjalizowane narzędzia. Rozszerzenia te wprowadza się poprzez zastosowanie specjalnie przygotowanego znacznika XML (<toolspecific />) będącego również elementem składowym standardu PNML. Podejście takie pozwala na dużą swobodę rozbudowy oraz powoduje, że informacje zawarte w specjalnym znaczniku będą czytane i analizowane tylko przez zainteresowane nimi narzędzia. Dzięki temu mechanizmowi istnieje możliwość opisania sieci Petriego wraz ze wszystkimi niezbędnymi dla sterowników logicznych rozszerzeniami. Opis taki z powodzeniem można wczytać do systemów współpracujących z formatem PNML. Wprowadzona, dodatkowa interpretacja zostanie pominięta, natomiast możliwe będzie przeprowadzenie operacji charakterystycznych dla danego oprogramowania, na przykład dynamiczna symulacja, czy walidacja. 2 KNWS’14 3. Model obiektowy sieci Petriego 5. Implementacja interfejsu użytkownika Mając na celu odwzorowanie sieci Petriego w modelu obiektowym konieczne było opracowanie klas odpowiadającym wszystkim elementom sieci (Rys. 1). Ze względu na obszerność rysunek 1 zawiera uproszczony schemat klas i relacji między nimi. Aby umożliwić zrealizowanie wszystkich założeń projektowych dotyczących interfejsu użytkownika należało wybrać odpowiednią technologię implementacyjną. Po dokładnej analizie możliwości i efektywności rozwiązań dostępnych na rynku, wybrano technologie wchodzące w skład platformy programistycznej .NET stworzonej przez firmę Microsoft. Wybór ten pozwolił na stworzenie efektownego i intuicyjnego autorskiego interfejsu graficznego wspomagającego projektowanie i budowę sieci Petriego. Interfejs opiera się na nowoczesnym silniku graficznym WPF, który pozwala na tworzenie zaawansowanych graficznie aplikacji. Możliwość nadpisania domyślnego wyglądu każdego elementu interfejsu graficznego pozwoliła stworzyć środowisko wizualne przystosowane do zadań efektywnego budowania i edycji sieci. WPF wykorzystuje przyspieszenie sprzętowe. przekłada się to mniejsze zużycie procesora oraz lepsze efekty wizualne. Interfejs jest skalowalny i niezależny od rozdzielczości [7]. Zaproponowany interfejs użytkownika składa się z 4 zasadniczych części. Pasek narzędzi umożliwia szybki dostęp do funkcji związanych z obsługą programu. Pasek stanu pełni funkcję informacyjną. W przyborniku znajdują się elementy do budowy sieci, natomiast obszar roboczy służy do pracy z siecią. Edycja odbywa się z wykorzystaniem technologii drag&drop, elementy mogą być dowolnie przenoszone, łączone oraz modyfikowane. Każdy z elementów posiada menu kontekstowe, które zapewnia dostęp do jego cech i właściwości. W przypadku edycji podsieci praca odbywa się w oddzielnym oknie edycji podsieci. colors colors Color -colorID +colID +loopID +Color() +ToString() PetriNet colors +colorVariables +inputVariables +outputVariables +places : Place +allPlaces -transitions -arcs +connectObjectFromArc() +loadSubnet() +PetriNet() +ToString() Place -PlaceID +name +outputLists +subNet +comment +incidece +incideceIn +incideceOut +colors +outputs +inputTransitions +outputTransitions +isMacroplace +token +... +x +y +Place() +ToString() Rys. 1. Fig. 1. Arc -ArcID +name +colors +condition +sourceID +targetID +... +xCord +yCord +Arc() Transition inputPlaces outputPlaces inputTransitions outputTransitions -transitionID +name +condition +fullCondition +incidenceIn +incidenceOut +inputPlaces +outputPlaces +... +x +y +ToString() +Transition() Model obiektowy dla sieci Petriego Object model for the Petri net 6. Wnioski Atrybuty poszczególnych klas odwzorowują elementy specyfikacji PNML, przeznaczone do prezentacji graficznej sieci oraz dodatkowo definiują też brakujące rozszerzenia związane z jej interpretacją dotyczącą sterowników logicznych. Relacje pomiędzy miejscami i tranzycjami są dwukierunkowymi kolekcjami wskaźników odpowiadającymi łukom, więc klasa Arc służy tylko do graficznej ich reprezentacji. Nadmiarowa dwukierunkowość relacji opracowana została w celu ułatwienia poruszania się po modelu wykorzystywana podczas późniejszej realizacji różnego rodzaju algorytmów analitycznych [5, 6]. W wyniku prowadzonych prac powstało narzędzie CAD przeznaczone do wspomagania projektowania współbieżnych sterowników logicznych. Jego praktyczną przydatność mogą potwierdzić obecnie prowadzone prace badawcze prowadzone w Instytucie Informatyki i Elektroniki Uniwersytetu Zielonogórskiego. Na bazie zrealizowanego systemu opracowano już algorytmy heurystycznego kolorowania sieci z jednoczesnym wprowadzaniem hierarchii. Zrealizowano również projekty studenckie jak i prace inżynierskie związane z metodami dekompozycji sieci [8] oraz mechanizmami wielowariantowej syntezy logicznej. 4. Ogólna architektura systemu 7. Literatura Rdzeniem systemu jest biblioteka PetriLibrary (Rys. 2) Definiuje ona model obiektowy sieci oraz dostarcza gotowe do użycia metody badawcze. Generowany przez bibliotekę regułowy opis sekwentowy jest używany w systemie wnioskującym GENTZEN. Zrealizowana aplikacja ICPN dostarcza graficzny interfejs użytkownika wspomagający projektowanie sieci a także zapewnia kompatybilność z innymi narzędziami akademickimi dzięki użyciu ustandaryzowanego formatu PNML. Dodatkowe opcje eksportu ułatwiają późniejszą publikację modelu sieci. [1] Jensen K., Kristensen K., Wells L.: Coloured Petri nets and CPN tools for modelling and validation of concurrent systems, International Journal on Software Tools for Technology Transfer (STTT), vol. Vol. 9, no. Issue 3, pp. 213–254, 2007. [2] Węgrzyn A., Węgrzyn M.: PeNCAD system - from modeling to synthesis of concurrent con-trollers, Proceedings of IEEE East-West Design & Test Symposium - EWDTS '07, s. 384—389, Kharkov, 2007 [3] Węgrzyn A., Węgrzyn M.: Wybrane tekstowe formaty specyfikacji sieci Petriego opisujące algorytmy sterowania, Pomiary, Automatyka, Kontrola .- 2006, nr 6, wyd. spec., s. 29--31 [4] Billington J., Christensen S., Hee K., Kindler E., Kummer O., Petrucci L., Post R., Stehno C., Weber M., The Petri Net Markup Language: Concepts, Technology, and Tools, ICATPN'03 Proceedings of the 24th international conference on Applications and theory of Petri nets, Application and Theory of Petri Nets, 2003 Springer-Verlag, Berlin 2003, s. 483-505. [5] Karatkevich A.: Dynamic Analysis of Petri Net-Based Discrete Systems, volume 356 of Lecture Notes in Control and Information Sciences. Springer-Verlag, Berlin, 2007. [6] Murata T.: Petri nets: Properties, analysis and applications. Proceedings of the IEEE, Vol. 77(No. 4):541–580, 1989. [7] Cisek J., Tworzenie Nowoczesnych Aplikacji Graficznych w WPF, HELION, Gliwice, 2012. [8] Bukowiec A., Tkacz J., Gratkowski T., Gidlewicz T.: Implementation of algorithm of Petri nets distributed synthesis into FPGA, International Journal of Electronics and Telecommunications .- 2013, Vol. 59, no. 4, s. 317—324 Narzędzia akademickie Eksport · · WoPed Tina EDYTOR ICPN Inne PetriLibrary (Model obiektowy) OPROGRAMOWANIE BADAWCZE · · · · Rys. 2. Fig. 2. kolorowanie dekompozycja automatyczne wprowadzanie modelu hierarchicznego algorytmy do analizy i walidacji sieci Wysokopoziomowy schemat architektury systemu High-level diagram of the system architecture XPS WYDRUK Regułowy opis sekwentowy (zorientowany na tranzycje) System wnioskujący GENTZEN _____________________________________________________ otrzymano / received: 00.00.0000 przyjęto do druku / accepted: 00.00.0000 artykuł recenzowany