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