Małgorzata KołopieĔczyk - Uniwersytet Zielonogórski
Transkrypt
Małgorzata KołopieĔczyk - Uniwersytet Zielonogórski
,POGFSFODKBOBVLPXB,/84 v*OGPSNBUZLBT[UVLBD[ZS[FNJPTP D[FSXDB$[PDIB ZASTOSOWANIE RELACYJNYCH BAZ DANYCH W PROJEKTOWANIU I SYMULACJI STEROWNIKÓW LOGICZNYCH Małgorzata KołopieĔczyk Instytut Informatyki i Elektroniki, Uniwersytet Zielonogórski 65-246 Zielona Góra, ul. Podgórna 50 e-mail: [email protected] STRESZCZENIE Celem niniejszego artykułu jest przedstawienie metody opisu układu sterowania logicznego przy wykorzystaniu mechanizmów relacyjnej bazy danych. Jako formalny jĊzyk specyfikacji układu wybrano sieü Petriego, jako jĊzyk dobrze sformalizowany i wydajny przy automatyzacji przetwarzania. Przeniesienie sieci Petriego do relacyjnej bazy danych to nie tylko efektywne przeniesienie opisu układu do systemu komputerowego. Zastosowanie standardowego jĊzyka zapytaĔ SQL pozwala na przeprowadzenie symulacji układu bezpoĞrednio w bazie danych. 1. UZASADNIENIE TEMATU Ciągły postĊp w elektronice pozwala na implementacjĊ coraz to bardziej rozbudowanych sterowników logicznych PLC (Programmable Logic Controllers). Równolegle z rosnącymi moĪliwoĞciami technologicznymi poszukiwane są nowe metody projektowania takich układów. WĞród nowoczesnych technik projektowania sterowników PLC wymieniü moĪna jĊzyk Grafcet [5] i jĊzyki wyspecyfikowane w miĊdzynarodowej normie IEC:1131-3 [4]. W celu weryfikacji poprawnoĞci oraz w celu zbadania własnoĞci projektowanego układu stosowane są formalne metody opisu układu. NajczĊĞciej stosowanym formalizmem na etapie weryfikacji są sieci Petriego [6, 3]. Sieü Petriego stanowi uogólnioną, poĞrednią formĊ w projektowaniu i badaniu właĞciwoĞci sterowników. Istnieją techniki łatwej i szybkiej translacji innych jĊzyków projektowania sterowników do sieci Petriego [6]. DostĊpnych jest wiele programów komputerowych wspierających projektowanie sterowników logicznych i ich weryfikacjĊ przy wykorzystaniu sieci Petriego oraz bardzo im bliskich jĊzyków Grafcet i SFC. Wymieniü tu moĪna m.in. aplikacje MX-SCADA, ISaGRAF, PC WORX. Istotnym utrudnieniem w integracji róĪnych aplikacji jest sposób opisu projektowanego układu w strukturach danych programów. Brak jest obecnie spójnych i ogólnie uznanych metod opisu projektowanego układu, w tym samej sieci. Istnieją co prawda pewne formaty takie jak PNSF, PNSF2 oraz zbliĪone do nich opisy oparte o jĊzyk XML. Jednak stanowią one wyłącznie formĊ poĞrednią pozwalającą na przeniesienie opisu sieci z jednego narzĊdzia do drugiego. Formaty takie nie pozwalają na bezpoĞrednią analizĊ układu w jej bieĪącej 131 postaci, nie pozwalają na badanie właĞciwoĞci dynamicznych, są mało czytelne i trudne do bezpoĞredniego przetwarzania przez programy komputerowe. Analiza i symulacja zaprojektowanego układu wciąĪ odbywa siĊ przez dedykowane aplikacje, które przechowują opis sieci w swych wewnĊtrznych strukturach danych. W artykule przedstawiono sposób zamodelowania układu logicznego w jĊzyku sieci Petriego przy wykorzystaniu mechanizmów relacyjnej bazy danych. Relacyjne bazy danych to obecnie najpopularniejszy sposób gromadzenia danych dla aplikacji [7, 9]. Sformatowana postaü danych oraz jasno sprecyzowane relacje umoĪliwiają przejrzyste opisanie nawet skomplikowanych struktur, zezwalając jednoczeĞnie na automatyczne przetwarzanie danych przez programy komputerowe. Wykorzystanie baz danych pozwala takĪe na zwiĊkszenie wydajnoĞci przetwarzania – wysoka skalowalnoĞü systemów zarządzania bazami danych RDBMS (Relational Database Management Systems) pozwala na zakodowanie nawet bardzo złoĪonych układów; techniki indeksowania i partycjonowania pozwalają na szybkie przetwarzanie ogromnych iloĞci danych, dając nieporównywalnie wiĊkszą wydajnoĞü w stosunku do przetwarzania standardowych plików komputerowych oraz niwelując ograniczenia związane z koniecznoĞcią zapamiĊtania całej struktury układu w pamiĊci operacyjnej. Zapisanie układu sterowania w relacyjnej bazie danych pozwala ponadto na symulacjĊ projektowania układu bezpoĞrednio przy wykorzystaniu standardowych jĊzyków zapytaĔ, w tym przede wszystkim jĊzyka SQL [8]. Daje to moĪliwoĞü badania własnoĞci sterownika bezpoĞrednio przez projektanta stosującego standardowy jĊzyk zapytaĔ i mającego bezpoĞredni wpływ na operacje wykonywane na modelu. 2. SIEû PETRIEGO Sieci Petriego [2, 3] umoĪliwiają badanie zjawisk współbieĪnych zachodzących w systemach wzajemnie warunkujących siĊ w czasie i przestrzeni warunków i zdarzeĔ. Oprócz projektowania i programowania sterowników logicznych, znajdują one zastosowanie takĪe w róĪnych gałĊziach przemysłu, w zadaniach planowania i sterowania przepływem produkcji, w syntezie oprogramowania systemowego itp. W sieci Petriego zdarzenia i warunki reprezentowane są abstrakcyjnymi symbolami naleĪącymi do dwóch rozdzielnych alfabetów (zbiorów). Zdarzenia odpowiadają przejĞciom (tranzycjom), warunki miejscom, a związek przeyczynowo-skutkowy miĊdzy zdarzeniami i warunkami oraz warunkami i zdarzeniami za pomocą relacji przepływu. Graficznie sieü Petriego reprezentowana jest jako struktura złoĪona z prostokątów i kółek połączonych łukami (strzałkami). Prostokąty reprezentują przejĞcia, kółka – miejsca, a łuki relacjĊ przepływu miĊdzy miejscami i przejĞciami oraz przejĞciami i miejscami. Miejsca, z których prowadzą łuki z rozpatrywanego przejĞcia nazywane są miejscami wyjĞciowymi przejĞcia. Analogicznie okreĞlane są miejsca wejĞciowe przejĞcia oraz przejĞcia wejĞciowe i 132 wyjĞciowe dla miejsc. Miejsca wejĞciowe przejĞcia przedstawiają warunki – przyczyny zdarzenia okreĞlonego tym przejĞciem. Miejsca wyjĞciowe przejĞcia reprezentują warunki – skutki zdarzenia okreĞlonego tym przejĞciem. Wystąpienie (utrzymanie siĊ) pewnego warunku przedstawione jest znakiem (znacznik, marker) wewnątrz miejsca odpowiadającego temu warunkowi. Dynamika działania modelowanego systemu dyskretnego znajduje odzwierciedlenie w przesuwaniu siĊ znaczników pomiĊdzy miejscami sieci. Lokalne zdarzenia i związane z nimi akcje przedstawiane są realizacją (zadziałaniem, zapaleniem) okreĞlonego przejĞcia. PrzejĞcie moĪe byü zrealizowane (wystąpiü), gdy wszystkie jego miejsca wejĞciowe zawierają co najmniej po jednym znaku. W kategoriach zdarzeĔ i warunków potencjalna realizacja przejĞcia odpowiada spełnieniu warunków zajĞcia okreĞlonego zdarzenia (wzbudzenie przejĞcia). Realizacja przejĞcia modeluje wystąpienie okreĞlonego zdarzenia. Realizacji przejĞcia towarzyszy usuniĊcie po jednym znaku miejsc wejĞciowych przejĞcia i dodanie po jednym znaku do miejsc wyjĞciowych przejĞcia. W ten sposób wskazuje siĊ nowe warunki – skutki wystąpienia rozpatrywanego zdarzenia. Formalnie sieü Petriego definiujemy jako uporządkowaną trójkĊ PN = (P, T, F) gdzie: 1) P ∩ T = ∅, 2) P ∪ T ≠ ∅, 3) F ⊆ (P × T) ∪ (T × P), 4) dom(F) ∪ cod(F) = P ∪ T. F jest relacją przepływu w sieci PN, dom(F) jest dziedziną relacji F, czyli dom(F) = {x: ∀ y (x, y) ∈ F}, cod(F) jeset przeciwdziedziną relacji F, czyli dom(F) = {y: ∀ (x, y) ∈ F}. x Elementy zbioru F nazywane są łukami, elementy zbioru P nazywane są miejscami (Pelementami), elementy zbioru T nazywane są tranzycjami (T-elementami). Znakowana sieü Petriego to uporządkowana szóstka MPN = (P, T, F, K, W, M0) gdzie: 1) 2) 3) 4) (P, T, F) jest siecią Petriego, K: P → N+ ∪ {∞} jest funkcją pojemnoĞci miejsc, W: F → N+ jest funkcją wagi łuków, M0: P → N jest funkcją znakowania początkowego spełniającą warunek ∀ M0(p) ≤ p∈P K(p). Za pomocą znakowaĔ (markowaĔ) opisujemy stan w jakim znajduje siĊ układ, czyli jakie miejsca są w danej chwili czasowej aktywne. Markowania zmieniają siĊ w czasie, pokazując które miejsca zostały „wykonane” i w jakiej kolejnoĞci. Formalnie opiszemy to za pomocą realizacji tranzycji: Niech MPN = (P, T, F, K, W, M0) bĊdzie znakowaną siecią Petriego, wówczas: 1) funkcja M: P → N jest nazywana znakowaniem MPN ⇔ ∀ M(p) ≤ K(p), p∈P 2) tranzycja t ∈ T jest przygotowana do realizacji (dozwolona) w oznakowaniu M ⇔ ∀ p∈P W(p, t) ≤ M(p) ≤ K(p) – W(t, p), 133 3) jeĪeli tranzycja t ∈ T jest tranzycją, która jest dozwolona w oznakowaniu M to t moĪe wystąpiü i zostaü zrealizowana. Nowe znakowanie okreĞlone M’(p) = M(p) – W(p, t) + W(t, p) dla wszystkich p ∈ P, 4) wystąpienie tranzycji t ∈ T zmienia znakowanie M na znakowanie M’, co oznacza siĊ t → poprzez M [t² M’ lub M M’. W modelowaniu sterowników logicznych stosowane są sieci 1-ograniczne, czyli takie w których pojemnoĞü miejsc wynosi 1. Definicja sieci n-ograniczonej jest nastĊpująca: 1) miejsce p ∈ P jest n-ograniczone (n ∈ N) ⇔ M ∈∀ M(p) ≤ n, [M 0 2) MPN jest n-ograniczona (n ∈ N) ⇔ ∀ p jest n-ograniczone. p∈P 3. STRUKTURA TABLIC W RELACYJNEJ BAZIE DANYCH Sieü Petriego opisująca układ sterowania logicznego jest siecią 1-ograniczoną. Podstawowe elementy sieci to miejsca i tranzycje. W relacyjnej bazie danych do opisu miejsc i tranzycji wykorzystamy dwie tablice, o nazwach STATE i TRANSITION. STATE to lista stanów (miejsc, kroków) układu, TRANSITION to lista tranzycji układu. Relacje zachodzące pomiĊdzy miejscami i tranzycjami opisane zostaną w tablicy RELATION. W tablicy tej dla jednej tranzycji moĪe wystąpiü kilka rekordów. Zbiór tranzycji z prawdziwymi warunkami przejĞcia opisano za pomocą kolejnej tablicy TRANSACTIONACTIVE. Tablica opisuje, które tranzycje są aktywne, czyli które z nich mają prawdziwe warunki i pozwalają na aktywacjĊ miejsca. WartoĞci w tej tablicy powinny byü ustawiane na podstawie warunków przy tranzycjach, jednak ten element systemu nie jest jeszcze opracowany. Wprowadzamy wiĊc do tej tablicy wartoĞü true/false, w zaleĪnoĞci od tego czy dany warunek ma byü prawdziwy czy fałszywy. Aktywne stany układu (czyli stany ze znacznikiem) opisane są w tablicy STATEACTIVE. Tablica informuje, które miejsca są aktualnie aktywne. W tablicy tej mamy wiĊc wyjĞcie układu. Miejsca aktywne zmieniają siĊ w miarĊ wykonywania kolejnych kroków symulacji w zaleĪnoĞci od warunków na tranzycjach, z zachowaniem współbieĪnoĞci i synchronizacji. 4. SYMULACJA UKŁADU PRZY WYKORZYSTANIU JĉZYKA SQL Symulacja składa siĊ z dwóch podstawowych kroków: inicjalizacji i wykonania kolejnych kroków symulacji. Inicjalizacja (restart) tworzy tablice pomocnicze, które wykorzystywane są dalej w trakcie symulacji układu. Wykonanie kroku (step) sprawdza warunki na tranzycjach i odpowiednio aktywuje kolejne miejsca układu, symulując jego działanie. Restart to inicjalizacja automatu, wygenerowanie tablic pomocniczych wykorzystywanych w trakcie symulacji. Obecnie w momencie inicjalizacji jako aktywne ustawiane jest miejsce o numerze 1, oczywiĞcie łatwo rozszerzyü system o moĪliwoĞü wyboru miejsca startowego. W 134 trakcie inicjalizacji nastĊpuje wyzerowanie miejsc i tranzycji „aktywnych”. Tabela STATECOUNT jest tablicą pomocniczą w której przechowywana jest iloĞü miejsc wejĞciowych dla kaĪdej tranzycji. Step - wykonanie kolejnego kroku symulacji automatu. W trakcie takiego kroku sprawdzane są warunki tranzycji oraz odpalane są te miejsca, dla których tranzycje wyjĞciowe są aktywne. Spradzane są przy tym warunki współbieĪnoĞci automatu. Tabela STATECOUNTACTIVE jest tablicą pomocniczą w której przechowywana jest iloĞü miejsc wejĞciowych aktywnych dla kaĪdej tranzycji. Jak łatwo zauwaĪyü, kroki 6 i 7 mogłyby zostaü zapisane w jednej instrukcji SQL wykorzystującej polecenie OUTER JOIN. Jednak system testowany był na bazie danych MS Access, w której OUTER JOIN nie jest zaimplementowany. 5. PRZYKŁAD SYMULACJI UKŁADU W celu weryfikacji modelu wykonana została prototypowa aplikacja pozwalająca na symulacjĊ układów opisanych za pomocą sieci Petriego. Jak system zarządzania bazami danych wybrano popularną aplikacjĊ Microsoft Access w wersji 7.0. Cała symulacja odbywa siĊ poprzez wywołanie odpowiednich skryptów SQL, tak wiĊc do symulacji układu nie są potrzebne Īadne inne mechanizmy oprócz tych, jakie udostĊpnia jĊzyk SQL. W celu lepszej prezentacji wyników przygotowana została prosta formatka do prezentacji danych, której wygląd przedstawiono na rys. 1. Rys. 1. Ekran symulatora W celu demonstracji działania systemu przeprowadzono symulacjĊ prostego układu którego schemat zamieszczono na rys. 2. 135 Jak widaü w układzie mamy sekwencjĊ współbieĪną oraz sekwencjĊ dywergentną, pozwala to zbadaü zachowanie modelu w przypadku współbieĪnego wykonania kilku zadaĔ, synchronizacji współbieĪnych sekwencji oraz alternatywny wybór nastĊpnej procedury sekwencyjnej. S1 T1 S2 S3 T2 S4 Model układu po przeniesieniu do relacyjnej bazy. Ze wzglĊdu na ograniczoną objĊtoĞü publikacji, szczegóły translacji pominiĊto w artykule. T3 S5 T5 S7 Symulacja układu polegała na zmianie warunków i odpalaniu kolejnych tranzcyji. Testy wykazały poprawną symulacjĊ układu. Prawidłowo zasymulowana została współbieĪnoĞü i synchronizacja układu, jak równieĪ alternatywne wybranie jednej z dwóch sekwencji. T4 S6 T7 T6 S8 T8 Rys. 2. Schemat przykładowego układu 6. PODSUMOWANIE MoĪliwe jest zamodelowaniu sterownika opisanego siecią Petriego za pomocą relacyjnej bazy danych. Istnieje moĪliwoĞü symulacji sterownika przy pomocy jĊzyka SQL. W dalszych pracach planowane jest zbadanie moĪliwoĞci weryfikacji układu oraz badania jego własnoĞci jakoĞciowych i iloĞciowych przy wykorzystaniu SQL i innych mechanizmów relacyjnej bazy danych. W chwili obecnej system nie jest wystarczająco odporny na pewne nieprawidłowoĞci w symulowanym układzie. Kolejnym zagadnieniem wartym dogłĊbniejszej analizy jest zbadanie moĪliwoĞci wykorzystania systemu do symulacji sieci Peteriego n-ograniczonych i nieograniczonych a takĪe bezpoĞredniej symulacji układów opisanych za pomocą np. jĊzyków SFC i Grafcet. LITERATURA [1] M. Adamski, M. ChodaĔ: Modelowanie układów sterowania dyskretnego z wykorzystaniem sieci SFC, Wydawnictwo PZ, 2000 [2] P. H. Starke: Sieci Petri, WNT, 1987 [3] W. Reisig: Sieci Petri, WNT, 1988 [4] International Electrotechnical Commision: International Standard IEC1131-3, 1993 [5] R. David, H. Alla: Petri Nets & Grafcet. Tools for modelling discrete event systems, Prentice Hall, 1992 [6] M. KołopieĔczyk: Modelling Process of Programmable Logic Controllers, Proc. Modelling and Symulation of Systems, 2002 [7] R. Muller: Bazy danych – jĊzyk UML w modelowaniu danych, Mikom, 2000 [8] American National Standards Institute: Databas Language-SQL ANSI X3.135, 1992 [9] T. J. Teorey: Database Modelling and Design, Morgan Kaufmann, 1999 136