MPD Skrypt cz2


Spis treści
3. MODELE SIECIOWE PROCESÓW DYSKRETNYCH ....................................4
3.1. Wprowadzenie............................................................................................................4
3.2 Podstawowe pojęcia ....................................................................................................5
3.3. Sieci znakowane .........................................................................................................8
3.4. Własności dynamiczne sieci.....................................................................................10
3.5 Czasowe sieci Petriego ..............................................................................................12
3.6. Przykłady sieciowego modelowania procesów dyskretnych...................................13
3.7. Konstrukcja drzew i grafów pokrycia znakowań ....................................................18
3.8 Oprogramowanie narzędziowe ND. .........................................................................23
3.9. Edytor i symulator PIPE..........................................................................................29
4.1 Zastosowanie .............................................................................................................34
4.2 Język GPSS ...............................................................................................................36
4.2.1 Wprowadzenie ...................................................................................................36
4.2.2 Opis podstawowych elementów języka GPSS ver World .................................41
4.2.3 Przykłady programów........................................................................................50
4.3 Przykłady do ćwiczeń i tematy zadań........................................................................54
4.4 Obsługa pakietu GPSS World ..................................................................................57
5. PROGRAMOWANIE SYSTEMÓW DYSKRETNYCH...................................67
5.1 Wprowadzenie...........................................................................................................67
5.2 Proces projektowania symulacji ................................................................................68
5.3. Elementy modelu symulacyjnego.............................................................................72
5.4 Metody symulacji dyskretnej.....................................................................................74
5.4.1. Metoda planowania zdarzeń. ............................................................................75
5.4.2. Metoda przeglądania działań. ...........................................................................77
5.4.3. PrzeglÄ…d innych metod. ....................................................................................81
5.4.3. PrzeglÄ…d innych metod. ....................................................................................82
Materiały dydaktyczne zostały przygotowane w ramach Projektu
 Politechnika XXI wieku - Program rozwojowy Politechniki Krakowskiej  najwyższej
jakości dydaktyka dla przyszłych polskich inżynierów
współfinansowanego ze środków Unii Europejskiej w ramach Europejskiego Funduszu
Społecznego. Umowa o dofinansowanie nr UDA-POKL.04.01.01-00-029/10-00
Niniejsza publikacja jest rozpowszechniana bezpłatnie
Modelowanie Procesów Dyskretnych 2
5.5. Sterowanie i monitoring procesów dyskretno-ciągłych............................................85
5.6 Systemy SCADA/HMI..............................................................................................95
Modelowanie Procesów Dyskretnych 3
Modelowanie Procesów Dyskretnych 4
3. MODELE SIECIOWE PROCESÓW DYSKRETNYCH
3.1. Wprowadzenie
Sieci Petriego (Petri nets) są narzędziem do modelowania, stosowanym w
wielu różnych dziedzinach nauki, w szczególności informatyki, automatyki
i robotyki. Charakteryzuje je intuicyjny graficzny język modelowania,
wspierany przez zaawansowane metody formalnej analizy ich własności.
Naturalnym zjawiskiem w sieciach Petriego jest współbieżność
wykonywanych akcji, dlatego też są one najczęściej postrzegane jako
narzędzie do modelowania dyskretnych procesów współbieżnych.
Sieci, których definicję rozbudowano o parametr czasu, mogą być
stosowane do modelowania systemów czasu rzeczywistego.
Typowe zastosowania sieci Petriego to:
1 Modelowanie obliczeń współbieżnych.
2. Modelowananie procesów technologicznych i przemysłowych.
Sieci Petriego zostały zdefiniowane przez Carla Petriego, w jego pracy
doktorskiej na Politechnice Darmstadt. Teoria sieci Petriego rozwija siÄ™ od
lat 60-tych, zapoczÄ…tkowana opublikowaniem pracy:
Petri C.A.: Kommunikation mit Automaten. University of Bonn 1962.
Petri C.A.:Communication with Automata. Technical report New York
1965.
W wyniku ponad czterdziestoletniego rozwoju tej teorii powstało wiele
różnych klas sieci i rozszerzonych zakresów zastosowań. W zależności od
potrzeb definicjÄ™ sieci zmieniano i dostosowywano do rozwiÄ…zywanych
problemów. Dzięki różnorodności znanych obecnie klas sieci można
stosunkowo łatwo dobrać klasę najwłaściwszą dla danej dziedziny
zastosowań. Różnorodność ta jednak utrudnia opracowanie jednolitych
metod analizy różnych klas sieci.
Sieć Petriego jest przedstawiana jako graf dwudzielny. Może ona mieć
strukturą hierarchiczną, znacznie ułatwiającą modelowanie złożonych
systemów.
Możliwa jest symulacja pracy sieci (najczęściej wspomagana przez
odpowiednie narzędzia komputerowe), dzięki której model taki staje się
wirtualnym prototypem projektowanego systemu.
Modelowanie Procesów Dyskretnych 5
Oprócz reprezentacji graficznej i możliwości symulacji pracy, na uwagę
zasługuje rozbudowana teoria. Różnorodność klas sieci powoduje, że
metody ich analizy znacznie się różnią. Dla sieci o najprostszej strukturze
istnieje najszerszy wachlarz tych metod i są one stosunkowo łatwe w użyciu.
W przypadku sieci bardziej rozbudowanych, możliwości formalnej analizy
są zazwyczaj uboższe lub trudniejsze do zastosowania.
Sieci Petriego są podstawowym językiem modelowania współbieżności i
synchronizacji dyskretnych procesów. Modelowanie z zastosowaniem sieci
Petriego pozwala na przedstawienie aspektów systemu, powiązanych ze
współbieżnością działania, współdzieleniem zasobów, komunikacją między
procesami oraz synchronizacją przebiegających procesów.
Sieci mają szczególne zastosowania w:
" projektowaniu i specyfikacji systemów procesów dyskretnych,
systemów czasu rzeczywistego, systemów wbudowanych,
" analizie poprawności oprogramowania (weryfikacja, walidacja),
" ocenie wydajności i niezawodności systemów procesów dyskretnych.
W celu oceny wydajności systemów, sieci Petriego są wzbogacane o
czynnik czasu. W swojej pierwotnej formie sieci miały ograniczone
możliwości.
Różnorodność istniejących klas sieci Petriego, a także narzędzi
programowych spowodowała, że nie istnieje jednolita notacja ich opisu.
Notacje graficzne sieci różnią się w zależności od wybranego
oprogramowania, ale różnice te nie są zbyt zasadnicze. Sytuacja wygląda
inaczej, w przypadku formalnego opisu sieci, gdyż nawet w obrębie jednej
klasy stosuje się różne notacje.
3.2 Podstawowe pojęcia
JednÄ… z zasadniczych cech sieci Petriego jest ich stosunkowo prosta i
intuicyjna reprezentacja graficzna, wspólna dla wszystkich klas sieci. Sieci
Petriego są przedstawiane w postaci grafów skierowanych, zawierających
dwa rodzaje węzłów (grafy dwudzielne) nazywanych miejscami i
przejściami. Tych dwóch rodzajów węzłów używa się odpowiednio do
reprezentowania stanów i aktywności modelowanego systemu.
Grafem skierowanym (grafem) nazywamy uporządkowaną trójkę postaci G = (V,
A, Å‚), przy czym:
V jest zbiorem węzłów grafu.
Modelowanie Procesów Dyskretnych 6
A jest zbiorem łuków (krawędzi) grafu, takim że V)" A = ".
Å‚: A V×V jest funkcjÄ… zaczepienia, która każdemu Å‚ukowi przypisuje
uporządkowaną parę węzłów.
Graf skierowany (G = (V, A, Å‚), nazywamy grafem etykietowanym nad zbiorem
etykiet L (label), jeżeli łuki grafu G mają przypisane etykiety ze zbioru L.
Modelowanie Procesów Dyskretnych 7
Graf skierowany G=(V,A,ł) nazywamy grafem dwudzielnym, jeżeli zbiór V
jest sumą dwóch rozłącznych zbiorów V1, V2 i dowolny łuk grafu G łączy
węzły należące do rożnych zbiorów, tzn.
"a"A: Å‚(a) " (V1×V2) *" (V2×V1)
x2
2 x4
1
3
x1
5
x3
3.1. Graf dwudzielny
Węzły różnych typów oznaczono odmiennymi kolorami.
Auki w grafie sieci mogą łączyć tylko węzły różnych typów. Ze względu na cha-
rakter tych połączeń definiuje się sieci o rozmaitych własnościach strukturalnych,
m. in.: sieci czyste, sieci proste, sieci swobodnego wyboru, grafy synchronizacji,
maszyny stanowe itd.
Sieci Petriego są przedstawiane jako grafy dwudzielne, w których własności
dynamiczne są modelowane poprzez przepływ tzw. znaczników (markers).
p1
p2 P = (p1, p2)
T = (t1, t2)
F = {(p1, t1), (p1, t2), (p2, t2), (t1, p1), (t2, p3)}
t2
t1
W a" 1
p3
3.2. Konwencja graficzna dla sieci Petriego
Sieć Petri (PN) jest uporządkowaną czwórką PN= (P,T,F,W),
gdzie:
P=(p1,p2,...,pn)  zbiór (skończony) miejsc (places), ćłPćł`"0,
T=(t1,t2,...,tm) - zbiór (skończony) przejść (transitions), ćłTćł`"0,
F ‚" ( PxT) *" (TxP) - zbiór Å‚uków,
W: FN\{0}  funkcja krotności (waga) łuku, N-zbiór liczb naturalnych.
Modelowanie Procesów Dyskretnych 8
Sieć Petriego jako graf dwudzielny, w którym wyróżnia się dwa rozłączne
podzbiory wierzchołków: zbiór miejsc i zbiór przejść.
W reprezentacji graficznej, miejsca przedstawiane są w postaci kółek,
natomiast przejścia w postaci kresek. Aukami mogą łączyć się wyłącznie
elementy należące do różnych podzbiorów. Auki mogą być wielokrotne.
Jeżeli krotność łuku f"F spełnia zależność W(f)>1, to łuk obciążony jest
liczbą W(f). Jeśli W(f)=1, to symbol 1 jest pomijany.
Powyższa definicja sieci pozwala scharakteryzować strukturę sieci, ale nie daje
możliwości opisu jej zachowania. Aby można było w pełni modelować systemy
współbieżne musimy rozszerzyć tę definicję o znakowanie, które reprezentuje stan
modelowanego systemu i ulega zmianie w trakcie symulacji pracy sieci.
3.3. Sieci znakowane
W celu modelowania systemów współbieżnych, należy rozszerzyć te
definicję o znakowanie, które reprezentuje stan modelowanego systemu i
ulega zmianie w trakcie symulacji pracy sieci. Znakowanie sieci umożliwia
opis własności dynamicznych, które są modelowane przez przepływ
znaczników powodowany drożnością, wzbudzeniem (firing) przejść sieci.
Znakowanie PN jest funkcją M: PN. Wartość M(pi) wyraża liczbę
znaczników w miejscu pi. Liczba znaczników jest oznaczana na przez liczbę
kropek.
Znakowana sieć Petriego MPN (Marked Petri Net) jest parą:
MPN =(PN, M0)
gdzie: M0  jest znakowaniem poczÄ…tkowym (initial marking) sieci
M0: P N funkcja znakowania poczÄ…tkowego.
Zbiory Int(t) ={p"P: "F} oraz Out(t) ={p"P: "F} jest zbiorem
miejsc wejściowych oraz wyjściowych przejścia t.
W podobny sposób są zdefiniowane zbiory Int(p), Out(p) przejść
wejściowych (wyjściowych) miejsca p.
Dowolne miejsce p nazywa się miejscem wejściowym dla przejścia t, jeśli
istnieje łuk łączący, skierowany od tego miejsca do przejścia t. Wykonanie
dowolnego przejścia (palenia się tranzycji) w sieci polega na pobraniu
znaczników z miejsc wejściowych danego przejścia i wstawienia
znaczników do miejsc wyjściowych. Ilość znaczników pobieranych jest
określona przez wagi przypisane do odpowiednich łuków.
Modelowanie Procesów Dyskretnych 9
Przejście tj jest przygotowane do wzbudzenia (firing), jeśli w każdym
miejscu poprzedzającym znajduje się co najmniej W() znaczników.
Jeśli przejście jest przygotowane do wzbudzenia, to może nastąpić jego
wzbudzenie. Gdy przejście tj jest wzbudzone, wówczas W()
znaczników jest usuwanych z każdego miejsca pi " Int(t) oraz W()
znaczników jest dodawanych do każdego miejsca pk" Out(t).
Modelowanie Procesów Dyskretnych 10
p1 p2 p3 p1 p2 p3
" " " "
" " "
2 2
t1 t1
2 2
" " "
" "
p4 p5 p4 p5
Rys 3.3. Realizacja przejścia (firing of transition)
3.4. Własności dynamiczne sieci
Analiza zachowania sieci jest związana z badaniem własności kolejnych jej
stanów, w tym przypadku znakowań osiągalnych z znakowania
początkowego. Problem osiągalności określonego znakowania (stanu) jest
więc podstawowym przy analizie sieci.
Jeżeli w wyniku wzbudzenia przejścia ti następuje zmiana znakowania z Mi na Mi+1
to stosujemy oznaczenie:
[ti]
Mi Mi+1
SekwencjÄ… wzbudzenia nazywamy takÄ… sekwencjÄ™ przejść Ã = ti1, ..., tis, dla
której istnieją znakowania Mp, Mp+1, ..., Mp+s spełniające warunek:
[tis]
[ti1]
Mp+s-1 Mp+s
Mp Mp+1,
[Ã]
Mp Mp+s
Znakowanie Mp+s nazywamy znakowaniem osiÄ…galnym ze znakowania Mp.
Możliwość przesyłania większej liczby znaczników przy wzbudzeniu
pojedynczego przejścia ma wpływ na aktywność danego przejścia oraz zmianę
poszczególnych znakowań sieci.
Modelowanie Procesów Dyskretnych 11
Przejście t"T jest aktywne przy znakowaniu M (jest M-aktywne), jeżeli każde z
jego miejsc wejściowych zawiera co najmniej tyle znaczników, ile wynosi waga
łuku prowadzącego od tego miejsca do przejścia t.
Jeżeli przejście t jest M-aktywne, to nowe znakowanie M' uzyskane w wyniku
wykonania przejścia t jest określone w sposób następujący:
M(p)  W(p,t) gdy p"In(t)  Out(t)
M(p) + W(t,p) gdy p"Out(t)  In(t)
M`(p) =
M(p) - W(p,t) + W(t,p) gdy p"In(t) )" Out(t)
M(p) w pozostałych przypadkach
p2
t2
t1
" "
t6
2 p3
p1
"
2
" " "
t5
t3
p5 t4 p4
Rys. 3.4. Sieć znakowana
Rozważmy przykład sieci przedstawionej na Rys. 3.4. Przy znakowaniu
początkowym M0 = (1, 2, 0, 1, 2, 1) aktywne są przejścia t1, t2, t4, t5. Wykonanie
sekwencji przejść à = t1, t2, t4, t6, prowadzi odpowiednio do znakowaÅ„:
M1 = (1, 3, 0, 2, 1),
M2 = (1, 1, 1, 2,1),
M4 = (1, 1, 1, 1, 2),
M6 = (1, 0, 3, 1, 1).
Modelowanie Procesów Dyskretnych 12
Znakowana sieć MPN jest żywą (liveness), jeśli dla każdego znakowania M
osiągalnego ze znakowania początkowego M0 i dla każdego przejścia t"T,
istnieje sekwencja palenia umożliwiająca palenie przejścia t.
Zagadnienie żywotności jest niezwykle istotne w analizie własności
systemów współbieżnych. Klasycznie żywotność jest kojarzona z ciągłością
działania, np. system czasu rzeczywistego powinien być zawsze gotowy do
obsługi zdarzeń zachodzących w jego otoczeniu.
Znakowana sieć MPN jest k- ograniczona (k-bounded), jeśli przy dowolnym
osiągalnym znakowaniu, w każdym miejscu ilość znaczników nie
przekracza liczby k.
Znakowana sieć MPN jest bezpieczna (safed), jeśli jest 1-ograniczona.
Ograniczoność sieci wiążę się z pojęciem bezpieczeństwa systemów.
Definicja bezpieczeństwa oznacza niemożliwość wystąpienia
niepożądanych stanów podczas działania systemu. W przypadku sieci
Petriego niepożądane stany dotyczą najczęściej nieograniczonego wzrostu
liczby znaczników w pewnych miejscach sieci. Własność bezpieczeństwa
jest charakterystyczna dla pewnej klasy sieci zwanych sieciami warunkowo-
zdarzeniowymi C/E (Condition-Event). Wystąpienie znaczników we
wszystkich miejscach wejściowych odpowiada spełnieniu wszystkich
warunków wystąpienia zdarzenia. Fakt zaistnienia zdarzenia jest opisywany
przez wykonanie przejścia. W takim przypadku dla każdego miejsca
możliwe są tylko dwa oznakowania: brak znacznika (niespełnienie warunku)
i wystąpienie pojedynczego znacznika  spełnienie warunku.
3.5 Czasowe sieci Petriego
Definicja 3.12.
Czasowa znakowana sieć Petrego TMPN (Timed Marked Petri Net) jest
parÄ… TMPN=(MPN,Ä),
gdzie: Ä: TR+, (R+- jest zbiorem nieujemnych liczb wymiernych).
W chwili poczÄ…tkowej Ä=0, znakowanie sieci TMPN jest znakowaniem
poczÄ…tkowym M0.
Dodanie parametru czasu do definicji sieci Petriego umożliwia ocenę wydajności
systemów. Istnieją dwa sposoby przypisania czasu elementom sieci Petriego do
przejść (tranzycji) lub miejsc.
Modelowanie Procesów Dyskretnych 13
W literaturze dominuje przypisanie czasu przejściom. Gdy przejście ti jest
przygotowane do wzbudzenia, wówczas może nastąpić jego wzbudzenie. Faza
palenia przejÅ›cia ti trwa przez czas Ä(ti).
p2
t1
p4
t3
t2
t1=2; t2=4;
t4
t4=2; t3=3;
p5
p3
3.5. Czasowa sieć Petriego.
t6
t5
t4
t3
t2
t1
7
1 2 3
4 6
5
3.6. Czasowy diagram palenia tranzycji
3.6. Przykłady sieciowego modelowania procesów dyskretnych
Sieci Petriego są uniwersalnym modelem szerokiej klasy procesów
dyskretnych, wobec tego miejsca i przejścia mogą być różnie
interpretowane, w zależności od modelowanego systemu. Najczęściej
spotykane interpretacje:
Modelowanie Procesów Dyskretnych 14
Miejsca wejściowe Przejścia Miejsca wyjściowe
Prewarunki Zdarzenie Postwarunki
Zasoby żądane Operacja lub zadanie Zasoby zwalniane
Dane wejściowe Wykonanie obliczeń (akcji) Wyniki
Warunki Klauzula logiki Konkluzje
Sygnały wejściowe Przetwarzanie Sygnały wyjściowe
Wymienione reprezentacje charakteryzują się różnym stopniem abstrakcji,
co może decydować o różnych wymaganiach względem własności sieci.
Przykładowo przy rozważaniu systemu rozdziału zasobów, znaczniki mogą
reprezentować jednostki zasobu określonego typu i w związku z tym będą
interpretowane jako elementy, których ogólna ilość jest stała.
Z kolei w sieciach warunkowo-zdarzeniowe prewarunek poprzedza
zdarzenie i jest przesłanką wystąpienia zdarzenia. Wystąpienie zdarzenia
kończy obowiązywanie prewarunku i zaczyna obowiązywać postwarunek.
Przykład (Rys.3.7) modelu automatu w postaci sieci Petriego, akceptującego
monety 5 i 10 zł. i sprzedającego dwa rodzaje produktów w cenie o 15 i 20
zł.
Sygnały wejściowe z otoczenia są specyfikowane poprzez strzałki
swobodne do odpowiednich przejść. Etykiety tych strzałek oznaczają rodzaj
monety wrzucanej w odpowiednich stanach do otworu automatu. Napisy
przy miejscach wskazują kwotę przyjętą przez automat.
Automat początkowo znajduje się w stanie Wait, pózniej w zależności od
wrzucanej monety przechodzi do stanu 5 lub 10. Czynności te są
kontynuowane aż do osiągnięcia żądanej kwoty. Wprowadzono dodatkową
parę sygnałów wejściowych, która jest używana do akceptacji kupna OK
lub odrzucenia NOK i zwrotu pieniędzy.
Modelowanie Procesów Dyskretnych 15
Przykład (Rys.3.8) modelu sieciowego dwóch procesów współbieżnych.
Po wykonaniu przejścia t0, tranzycja Begin inicjuje dwa procesy
współbieżne przez umieszczenie znaczników w miejscach p1 i p2. W takiej
sytuacji tranzycje t1 oraz t2 są wzbudzone niezależnie.
Modelowanie Procesów Dyskretnych 16
t0
ParBegin
p2
p1
t2
t1
p0 "
p3 p4
ParEnd
Rys. 3.8. Model procesów współbieżnych
Zakończenie współbieżnych procesów jest synchronizowane przez tranzycję
t3 (ParEnd), gdyż do wzbudzenia tegj tranzycji konieczne jest zakończenie
dwóch procesów sekwencyjnych (znaczniki w miejscach p3 i p4).
Przykład (Rys.3.9) modelu procesów komunikujących się poprzez ograniczony
bufor.
Własność ograniczoności sieci nie dopuszcza do nieograniczonego wzrostu ilości
znaczników w dowolnym miejscu sieci. Jest to istotne wymaganie, w
szczególności uniemożliwiające nieskończone wykonywanie wyłącznie pewnych
fragmentów sieci.
Proces nadawcy może wykonywać się ściśle określoną liczbę razy i
przesyłać znaczniki do miejsca p. Dodatkowe miejsce p z k znacznikami
(przy znakowaniu początkowym M0) powoduje ograniczenie ilości
znaczników zawartych w miejscu p. Dla każdego oznakowania Ms
osiągalnego z M0 jest spełniona zależność:
Ms(p) + Ms(p ) = k
Ilość znaczników w sieci nie przekracza wartości k. Taki sposób
poprawiania struktury powinien być zastosowany w kontekście wszystkich
miejsc, w których może wystąpić nieograniczony wzrost ilości znaczników.
Modelowanie Procesów Dyskretnych 17
Sender
.
Receiver
" "
p
k
p`
Rys. 3.9. Procesy komunikujÄ…ce siÄ™ poprzez k-ograniczony bufor
Przykład (Rys. 3.10) modelu synchronizacji procesów.
Miejsce p0 w sieci pełni funkcje synchronizujące, nie dopuszczając, aby
dwa procesy znalazły się w stanie Ms takim, że Ms(p2) = Ms(p4) = 1, co
modeluje wzajemne wykluczanie dostępu do obszaru krytycznego. W
dowolnym stanie Ms spełniony jest bowiem warunek Ms(p2) + Ms(p4) d" 1.
p1
p3
" "
p0
t3
t1
"
p2 p4
t2 t4
Rys 3.10. Synchronizowany dostęp do obszaru krytycznego
Modelowanie Procesów Dyskretnych 18
Przykład (Rys. 3.11) sieci z możliwym stanem blokady.
p1
p4
p "
"
"
t1
t4
q
p2
p5
"
t2
t5
p3
p6
t3
t6
Rys 3.11. Sieć z możliwością zakleszczenia
W sieci na powyższym rysunku może wystąpić stan zakleszczenia (brak
żywotności). Stan taki jest określony jako M(p2)= M(p5)=1 oraz M(pi)=0 dla
pozostałych miejsc pi. Stan ten jest osiągany przez wykonanie przejść t1
oraz t4 w dowolnej kolejności.
Z drugiej strony, sieć może wykonywać się nieograniczenie, jeśli tylko w
każdym procesie będziemy wykonywać dwa kolejne przejścia albo
. Tego typu sekwencje wykonania będą nieskończone.
3.7. Konstrukcja drzew i grafów pokrycia znakowań
Znakowanie M sieci MPN nazywamy pokrywalnym, jeżeli istnieje
znakowanie M`"R(M0), takie że dla każdego miejsca p"P jest spełniony
warunek M`(p)e" M(p).
Konstrukcja drzewa pokrycia (coverability tree) znakowań polega na
utworzeniu drzewa pokrywajÄ…cego wszystkie znakowania osiÄ…galne ze
Modelowanie Procesów Dyskretnych 19
stanu początkowego. Wykonanie dowolnej sieci jest w ogólności (i
najczęściej) reprezentowane przez nieskończone sekwencje realizacji
odpowiednich przejść sieci. Konstrukcja drzewa o skończonej ilości
wierzchołków wymagać więc będzie wprowadzenia pewnych uproszczeń.
W ogólnym przypadku możemy mówić o dwóch przyczynach
powodujących generację nieskończonych sekwencji stanów osiągalnych:
powtarzające się sekwencje wykonań pewnych przejść oraz nieograniczony
wzrost ilości znaczników w pewnych miejscach.
p1
p1 "
"
t2 t1
t2
t1
p2
b)
a)
p2
Rys. 3.12. yródła generacji nieskończonej sekwencji znakowań
W przypadku a) mamy do czynienia z nieskończoną sekwencją wykonań:
t1 t2 t1 t2
<1, 0> <0, 1> <1, 0> <0, 1> . . .
Wykonanie drugiej sieci b) polega na generacji kolejnych znakowań w myśl
sekwencji: t1
. . . <1, i > <1, i+1 > . . .
W przypadku powtarzających się sekwencji możemy zakończyć generację w
momencie osiÄ…gniÄ™cia stanu powtórzonego <1, É>. Wprowadza siÄ™ symbol
nieskoÅ„czonoÅ›ci É taki, że dla dowolnej skoÅ„czonej liczby caÅ‚kowitej n speÅ‚nione sÄ…
zależnoÅ›ci É>n, É+n=É. Kolejne stany bÄ™dÄ… pochÅ‚aniane przez oznakowanie
<1, É>. Drzewo pokrycia bÄ™dzie budowane z wykorzystaniem powyższych dwóch
mechanizmów. Algorytm konstrukcji drzewa będzie posługiwać się następującą
klasyfikacją węzłów drzewa:
- węzły nowe, czyli takie które nie były jeszcze przetwarzane,
- węzły powtórzone, które pojawiły się już na danej ścieżce budowania drzewa,
- węzły końcowe, dla których nie ma znakowania następnego.
Znakowanie początkowe M0 stanowi korzeń drzewa i zarazem nowy węzeł.
Modelowanie Procesów Dyskretnych 20
p
1,0,0
"
t1 t2
t2
t1
0,1,1
1,É,0
t3
t1 t2
p t3 p 0,0,1
1,É,0 0,É,1
t3
0,É,1
Rys.3.13. Konstrukcja drzewa pokrycia dla sieci Petriego
Na powyższym rysunku, wprowadzenie symbolu É jest realizowane już
przy pierwszym wykonaniu przejścia t1. Wykonanie przejścia t1 powoduje
zmianę stanu, czyli wzrost ilości znaczników w miejscu p2 przy
niezmienionych wartościach w miejscach pozostałych. Tym samym
speÅ‚nione sÄ… warunki wstawienia symbolu É na pozycjÄ™ odpowiadajÄ…ce
miejscu p2.
Drzewo pokrycia znakowań składa się ze skończonej ilości węzłów, co
umożliwia badanie własności dynamicznych, w szczególności można podać
następujące:
Sieć PN jest ograniczona, gdy symbol É nie wystÄ™puje w drzewie pokrycia.
Wówczas drzewo stanów osiągalnych jest skończone.
Sieć PN jest bezpieczna, gdy w węzłach drzewa występują znakowania
składające się wyłącznie z zer i jedynek,
Przejście t jest martwe, jeśli w drzewie pokrycia nie występuje łuk etykietowany
przez t.
Znakowanie Mi jest osiągalne ze znakowania początkowego M0, jeśli w drzewie
pokrycia istnieje węzeł Mi oraz ścieżka prowadząca z M0 do Mi.
Wyżej wymienione własności mogą być analizowane przez przeglądanie
drzewa pokrycia. Dynamiczne własności sieci Petriego mogą być również
opisywane przez równania macierzowe.
Modelowanie Procesów Dyskretnych 21
Podstawowe redukcje sieci zachowujące własność: żywotności,
ograniczoności i bezpieczeństwa. Oznacza to, że jeśli sieć przed
transformacją miała, którąkolwiek z tych własności, to sieć uzyskana w
wyniku zastosowania transformacji zachowuje również odpowiednie
własności.
Modelowanie Procesów Dyskretnych 22
Aączenie sekwencji miejsc Aączenie sekwencji przejść
Eliminacja pętli miejsca Eliminacja pętli przejścia
p3
p3 t4 p4
t3
p3
t4
t4
p1
p1
p1
t2 t1
t2 t1 t2
t2
p2
p2
t2
Rys. 3.14. Wybrane przypadki redukcji sieci.
Modelowanie Procesów Dyskretnych 23
3.8 Oprogramowanie narzędziowe ND.
Program ND (Net Draw) jest jednym z narzędzi pakietu TINA (Timed
Integrated Net Analyzer). Przeznaczony jest do edycji i symulacji sieci Petriego
zarówno deterministycznej jak i stochastycznej. Edytor pozwala na graficzną i
tekstową prezentację sieci, natomiast symulator umożliwia realizację trybu pracy
krokowej oraz automatycznej symulacji. Dodatkowo program zapewnia analizÄ™
wybranych właściwości sieci [1] [2][3].
Dane wejściowe programu są zapisane w pliku tekstowym z rozszerzeniem, które
kojarzy go z wybranym modelem sieci i sposobem prezentacji (widokiem).
model / widok graficzny tekstowy
*.ndr *.net
Sieć Petriego
*.adr *.aut
Graf automatu
Rys. 3.17. Ekran główny programy ND
I. Tryb edycji.
Edytor uruchamia siÄ™ poleceniem nd.exe.
1. Skrócony zapis działania klawiszem myszy.
LK - lewy klik,
PK - prawy klik,
SK - środkowy klik.
Modelowanie Procesów Dyskretnych 24
2. Elementy sieci.
Węzły:
7 p1 p1 = 7
p0 - miejsce (place)
p0 = 1
- tranzycja t0 (transition) - tranzycja t1 (transition)
t0 t1
dla TPN 0 < Ö < " dla TPN 4 < Ä1 < 7
[4 -7]
praktycznie 0 < Ä0 < 100
Krawędzie:
prostoliniowa krzywoliniowa krawędz z wagą (waga>1)
3. Modyfikacja elementów graficznych.
Położenie węzłów i opisów: LK, przesunięcie.
Usuwanie węzła i krawędzi: LK, [Delete] lub
LK, [Ctrl+X] lub
LK, PK, LK na wybór Cut.
Kopiowanie i wstawienie: LK, [Ctlr+C] [Ctlr +V].
Edycja krawędzi: LK, przesunięcie znaczników
promienia krzywizny
(edges rays).
Modelowanie Procesów Dyskretnych 25
4. Ustawienie ogólnego sposobu aktualizowania krawędzi poprzez menu:
View / redraw edges
Ò! auto - zachowuje bieżący tryb,
Ò! straight - tryb prostoliniowy,
Ò! keep rays - tryb krzywoliniowy z zachowaniem kierunków
5. Operacje grupujÄ…ce.
Na grupie elementów można wykonać wszystkie w/w operacje (z
wyłączeniem edycji krzywizny krawędzi).
Grupowanie elementów  LK, zaznaczenie prostokątnej ramki.
Dodawanie do grupy i usuwanie z grupy - [Ctlr]+LK na wybranym elemencie.
6. Dodawanie nowych elementów.
Wprowadzanie nowych elementów realizowane jest poprzez kliknięcie na
wybranej pozycji środkowym klawiszem myszy [SK] odpowiednio dla:
miejsca - SK,
tranzycji - [Ctlr]+SK,
krawędzi - naciśnięcie środkowym klawiszem myszy na wybranym węzle
początkowym, oraz przesunięcie i puszczenie klawisza na węzle
końcowym.
Rys 3.19. Przykład edycji czasu tranzycji t0
Modelowanie Procesów Dyskretnych 26
7. Modyfikacja parametrów.
Parametry (attributes) elementów sieci można modyfikować w odpowiednim
oknie dialogowym, otwieranym poprzez kliknięcie prawym klawiszem myszy
[PK] na wybranym elemencie.
Waga (weight) - [PK] na krawędzi.
Identyfikator (name) - obligatoryjny i nadawany automatycznie (możliwy do
edycji) unikalny ciąg znaków alfanumerycznych (uży-
wany w raportach wynikowych).
Etykieta (label) - opcjonalny unikalny ciąg znaków alfanumerycznych
Czas (interval) - czas palenia siÄ™ tranzycji Äi " R+ dla sieci czasowych
(deterministycznych) należy ustawić na jednakowej
wartości zakresu losowania wybierając pierwszy na liście
przypadek oznaczony symbolem [- , -].
Program ND pozwala na symulację również czasowych sieci stochastycznych dla
wielu różnych specyficznych sposobów generowania czasu palenia się tranzycji
(Rys 3.19).
Rys 3.20. Przykład edycji argumentów miejsca p2
Modelowanie Procesów Dyskretnych 27
Uwagi ogólne:
- edycja położenia węzła modyfikuje także przyległe krawędzie,
- liczba znaczników jest dodatnią liczbą całkowitą domyślnie równa zero,
- wagi krawędzi domyślnie ustawione są na wartość równą 1,
- położenie parametrów można zmienić w zakresie 8 ustalonych pozycji
wokół symbolu graficznego (dla tranzycji także wnętrze symbolu),
- identyfikatory węzłów pi, tj są automatycznie numerowane od zera, ale
można je zmieniać z zachowaniem unikalności,
- w edycji graficznej ważne jest dokonywanie właściwego, wyboru elementu
np. krawędzi lub bliskiej okolicy a nie opisu np. tranzycji.
II. Tryb symulacji.
Przebieg symulacji można śledzić, zapisywać i odtwarzać zarówno w trybie
ręcznym jak i automatycznym przechodząc wzajemnie z jednego trybu do
drugiego w trakcie symulacji.
1. Z trybu edycji przechodzi siÄ™ do trybu symulacji przez menu:
Tools Ò! stepper simulator
a wraca automatycznie przez:
- zamknięcie okna symulacji: [Alt+F4 ], [ Ctrl+q ] lub menu:
File Ò! return to edytor [Ctrl+q]
2. W automatycznym trybie symulacji można wprowadzić opóznienie zwalniające
szybkość jej wizualizacji przez zaznaczenie w menu :
Mode Ò! firing duration (ms).
na poziome 0, 1, 10, 1000
3. Aktywacja zapisu do pliku namefile.scn przez zaznaczenie w menu:
Mode Ò! record history
4. Odtworzenie zapisanej symulacji w menu:
File Ò! open history
wybór pliku namefile.scn
5. Symulacja może być przeprowadzona w trybie sieci czasowej (TPN)
Mode Ò! timed
lub zwykłej (PN)
Mode Ò! untimed
Modelowanie Procesów Dyskretnych 28
6. Inicjalizacja trybu automatycznej symulacji:
- uruchomienie: przycisk [Rand],
- zatrzymanie: przycisk [Stop].
7. Nawigacja:
- przejście na początek [|<] zapisanej historii stanów,
- na koniec [|>] zapisanej historii stanów,
- przejście do poprzedniego [<] następnego [>] stanu,
- wybrane, istotne stany można zapamiętać wybierając przycisk [M]
- zapamiętane stany można odtworzyć wybierając przyciskiem
[>>] następny zapamiętany stan
lub przyciskiem [<<] poprzedni zapamiętany stan.
6. Ręczne sterowanie symulacją.
Jeżeli w trybie zwykłym jest co najmniej jedna przygotowana do przejścia
tranzycja (oznaczona czerwonym tłem ( np: t0 na Rys 3.21) to można:
- nacisnąć lewy klawisz na aktywnej tranzycji (przygotowanej do przejścia)
wprowadzając chwilowy stan przejściowy, zachodzi zmiana (zmniejszenie)
stanu markowania w miejscach wejściowych aktywnej tranzycji i oznaczenie
jej czerwoną ramką z białym tłem,
- następnie po zwolnieniu klawisza występuje zmiana markowania na wyjściu
oznaczająca osiągnięcie nowego stanu markowania.
W trybie czasowej sieci Petriego dodatkowo występuje ręczne sterowanie
czasem symulacji. Jeżeli nie ma przygotowanej do przejścia tranzycji a
występują tranzycje oznaczone szarym tłem to można przesunąć znacznik czasu
(delay) w sposób skokowy ą 1 lub ciągły do chwili uaktywnienia co najmniej
Ä…
Ä…
Ä…
jednej tranzycji. Czas do momentu uaktywnienia siÄ™ tranzycji (zmiany stanu)
jest na bieżąco wizualizowany.
Modelowanie Procesów Dyskretnych 29
3.9. Edytor i symulator PIPE
Opisany w poprzednim podrozdziale program ND z pakietu TINA posiada
ciekawe rozwiązania w zakresie śledzenia symulacji szczególnie dla
stochastycznych sieci Petriego, ale ma także wiele ograniczeń np: brak możliwości
ograniczenia ilości znaczników (pojemności miejsc), symulacji sieci kolorowanych
oraz graficznej reprezentacji wyników z analizy sieci.
DrugÄ… propozycjÄ… w zakresie symulacji sieci Petriego jest program PIPE
(Platform Independent Petri Net Editor), posiadajÄ…cy bardziej rozbudowanÄ…
funkcjonalność. Program PIPE Rys. 3.22) jest niezależnym od platformy
narzędziem do tworzenia i analizy sieci Petriego a ponadto:
- należy do otwartego oprogramowania (open source),
- posiada przyjazny w użyciu interfejs np.: skalowalną grafikę,
- zawiera wiele modułów do analiz: metody inwariantów, symulacji, przestrzeni
stanów, klasyfikacji, porównań, macierzy incydencji i wektora markowania,
- umożliwia generowanie grafu osiągalności (coverability tree) - pokrycia
znakowań pkt 3.7 i Rys. 3.23,
- zapewnia możliwość symulacji sieci kolorowanych,
- umożliwia eksportowanie sieci Petriego w formacie graficznym.
Rys 3.22 Ekran programu pipe w trybie animacji (bieżącej symulacji)
Modelowanie Procesów Dyskretnych 30
Podstawowy ekran programu w trybie animacji przedstawia Rys 3.22 a wyniki
analiz tej sieci przedstawione sÄ… w kolejnych w tabelach.
1. Zbior stabilnych stanów markowania:
Set of Tangible States
P0 P1 P2 P3 P4 P5 P6 P7
M0 0 0 1 0 0 1 0 3
M1 0 0 1 1 0 0 0 3
M2 0 0 1 0 0 1 1 2
M3 0 0 1 0 0 1 2 1
M4 0 0 1 0 0 1 3 0
M5 1 0 0 0 0 1 3 0
2. Średnia liczba i rozkład gęstości znaczników:
Average Number of
Token Probability Density
Tokens on a Place
Number of
Place µ=0 µ=1 µ=2 µ=3
Tokens
P0 0,1667 P0 0,8333 0,1667 0 0
P1 0 P1 1 0 0 0
P2 0,8333 P2 0,1667 0,8333 0 0
P3 0,1667 P3 0,8333 0,1667 0 0
P4 0 P4 1 0 0 0
P5 0,8333 P5 0,1667 0,8333 0 0
P6 1,5 P6 0,3333 0,1667 0,1667 0,3333
P7 1,5 P7 0,3333 0,1667 0,1667 0,3333
3. Czas trwania i rozkład stabilnych stanów oraz przepustowość czasowa tranzycji
Sojourn times for Steady State Distribution Throughput of Timed
Tangible States of Tangible States Transitions
Mark Value Marking Value Trans Throughput
M0 0,5 M0 0,1667 T4 0,8333
M1 1 M1 0,1667 T5 0,8333
M2 0,5 M2 0,1667
M3 0,5 M3 0,1667
M4 0,5 M4 0,1667
M5 1 M5 0,1667
Modelowanie Procesów Dyskretnych 31
4. Ogólne parametry czasowe symulacji
State space exploration took 0,304s
Solving the steady state distribution took 0,116s
Total time was 0,504s
Rys 3.23. Przykładowy graf osiągalności
Wszystkie wyniki można zapisać w formacie html a analizę sieciową można
rozszerzyć na sieć kolorowaną Rys 3.24
Modelowanie Procesów Dyskretnych 32
Rys 3.24. Kolorowana Sieć Petriego
Literatura do rozdz. 3.
1. Berthomieu B., Vernadat F., The tool TINA. Construction of Abstract State
Spaces for Petri Nets and Time Petri Nets. International Journal of Production
Research, Vol. 42, No 14, July 2004.
2. Berthomieu B., Diaz M., Modeling and verification of time dependent systems
using time Petri nets. IEEE Transactions on Software Engineering, 17(3),
1991.
3. Berthomieu B., Vernadat F., State class constructions for branching analysis
of Time Petri nets. Springer Verlag, LNCS, 2003.
4. Murata T., Petri Nets: properties, analysis and applications. Proceedings of the
IEEE, 1989, vol. 77.
5. Reisig W: Sieci Petriego.WNT 1988
Modelowanie Procesów Dyskretnych 33
6. Ross K., Wright C., Matematyka dyskretna. PWN 1996.
7. Szpyrka M.,Sieci Petriego w modelowaniu i analizie systemów współbieżnych.
WNT, 2008.
8. Wilson R.,Wprowadzenie do teorii grafów. PWN 1998.
Strona internetowa.
http://pipe2.sourceforge.net/ - Platform Independent Petri net Editor 2
Modelowanie Procesów Dyskretnych 34
4. JZYKI SYMULACYJNE SYSTEMÓW DYSKRETNYCH
4.1 Zastosowanie
Symulacja dyskretna często dotyczy systemów z kolejkowaniem zadań, takich
jak np. kasy w supermarketach czy linie produkcyjne w fabrykach. Symulacja
umożliwia natychmiastowe sprawdzanie nowych konstrukcji maszyn, automatów i
robotów w warunkach ich pracy, łącznie z ich programami sterującymi (tzw.
wirtualne uruchomienie produkcji). Dzięki takiej symulacji możemy dowolnie
testować kolejne zmiany w systemie np. nowe wymiary elementów, parametry czy
procedury pracy i do tego nie zakłócając produkcji rzeczywistych urządzeń. Nowy
program sterujący zostaje przesłany do sterownika rzeczywistego urządzenia
dopiero po jego gruntownym przetestowaniu i przy dziesiątkach tysięcy różnych
parametrów manualne poszukiwanie właściwej konfiguracji systemu może być
bardzo uciążliwe.
Zakres zastosowań jest bardzo szeroki i obejmuje np.: procesy obliczeniowe i
transmisję danych systemach informatycznych, ogólną produkcję i specjalizowane
linie produkcyjne, automatykÄ™ i robotykÄ™, logistykÄ™, magazyny, w tym transport
surowców, produktów i towarów, obsługę stanowisk np.: w szpitalach, bankach i
urzędach oraz w innych punktach usługowych a także złożoną sieć linii
komunikacyjnych.
Poprzez wczesne testowanie nowych rozwiązań można zaoszczędzić czas i
pieniądze uzyskując odpowiedz na wiele istotnych pytań: co produkować, gdzie i
kiedy, jak minimalizować koszty prowadzenia działalności z zachowaniem
odpowiedniej jakości i odpowiedniego stopnia zadowolenia klientów lub w jaki
sposób określić najlepsze rozplanowanie środków transportu i personelu - czy
można to samo wykonać np. z mniejszą liczbą maszyn?.
Symulacja pozwala na przetestowanie nowych rozwiązań dotyczących
ulepszenia programów sterujących i optymalizujących tj. zmniejszających ilość
przestojów oraz zwiększających wydajność systemów produkcyjnych, magazynu
czy całego systemu logistycznego. Z punktu widzenia optymalizacji opisana
problematyka często sprowadza się do likwidacji tzw. wąskich gardeł oraz
właściwego rozwiązania ogólnie pojętego problemu obsługi kolejek zadań.
Przykładem może być obsługa kolejki w aplikacji służącej do komunikacji w
firmie, której zadaniem jest usprawnienie telefonicznej obsługi klientów
(http://www.ipfon.pl/callcenter.htm)). Taka usługa pozwala między innymi na tym,
że wielu pracowników - w tym także rozproszonych po całym świecie - może
obsługiwać jedną wspólną linię telefoniczną. Istotne jest w tym przypadku
Modelowanie Procesów Dyskretnych 35
zapewnienie inteligentnego kształtowania obciążenia konsultantów przejawiające
się między innymi w tym, że klienci nigdy nie usłyszą sygnału zajętości a w
zamian za to zostaną wprowadzeni do kolejki i poinformowani o ilości osób
oczekujących na połączenie z konsultantem (agentem) wraz szacowanym czasem
oczekiwania na to połączenie a okres oczekiwania zostanie umilony odsłuchaniem
muzyki. Z drugiej strony konsultant odbierający połączenia może być infor-
mowany o tym, że aktualne połączenie pochodzi z kolejki wraz z podanym czasem
oczekiwania klienta a ponadto może na bieżąco w przeglądarce internetowej
śledzić stan kolejki i decydować o skróceniu czasu rozmowy lub przełączeniu
klienta na innego konsultanta (specjalisty).
Inny przykład kolejkowania dotyczy aplikacji realizującej kopiowanie plików z
serwerów hostujących w warunkach pozwalających na efektywniejsze wyko-
rzystanie internetu przy ograniczonej szybkości transmisji, minimalizacji kosztów i
czasu. Oczywiście ustawianie w kolejce plików oczekujących na skopiowanie nie
przyśpieszy prędkości, która nadal zależeć będzie od lokalnego dostawcy internetu,
ale jednak można oszacować koszty związane z płatnym kontem, ograniczeniem
prędkości, czasem oczekiwania na przyjęcie kolejnego zlecenia i maksymalną
ilością plików ustawionych przez administratora strony dla darmowych kont a
także własnych strat czasu związanych z oczekiwaniem na kolejne pliki i
zatrzymaniem obsługi.
Omawiane przykłady możliwe do symulacji dotyczą ogólnej problematyki
problemów decyzyjnych i szeregowania zadań. Przykładem może być kolejne
opracowanie (http://www.jstor.org/pss/2629693), którego celem jest określenie i
ocena poziomu wykorzystania w szpitalu sal operacyjnych i zaplecza (gabinetów
lekarskich, sal operacyjnych, laboratoriów, pomieszczeń zabiegowych) a także sal
chorych pod różnymi względami mającymi na celu dobro pacjenta. Kryteria oceny
biorą pod uwagę ograniczenia, dotyczące konkretnego szpitala, z którego uzyskano
dane empiryczne, jednak model i podejście zostały zaprojektowane z myślą o
ogólnych zastosowaniach. Model został zaprogramowany w GPSS, w badaniach
symulacyjnych przyjęto losowe wartości parametrów modelu ograniczone otrzy-
manymi z pomiarów zakresami i kryteria optymalizacji, pochodzące z aktywnej
działalności szpitala "w świecie rzeczywistym". Uzyskane wyniki zostały
zastosowane i potwierdziły, że efektywność wykorzystania zasobów może być
uzyskana przy jednoczesnym spełnieniu ograniczeń podyktowanych normalną
działalnością szpitala i koniecznością obniżenia kosztów.
W momencie, podejmowania decyzji, bardzo często nie wiemy, czy ta decyzja
jest optymalna. Dopiero po pewnym czasie, czyli po uzyskaniu większej ilości
informacji, dowiadujemy się o trafności naszego wyboru. Celem może być taka
strategia decydowania, aby zminimalizować straty w pesymistycznym przebiegu
przyszłych wydarzeń.
Tematyka problemów decyzyjnych jest ściśle powiązana ze sferami technologii
informatycznych, ekonomii i zarządzania, dotyczy zagadnień związanych z
Modelowanie Procesów Dyskretnych 36
pozyskiwaniem danych i ich obiektywną analizą, która pozwala na podejmowanie
optymalnych decyzji.
W sferze technologii informatycznych przykładem jest problem kolejkowania
zadań w maszynie wieloprocesorowej. System w momencie uzyskania nowego
zadania do zrealizowania, musi przydzielić mu procesor, który będzie go w stanie
efektywnie zrealizować. Problem polega na tym, że podjęta decyzja może być
nieoptymalna w stosunku do danych nadchodzących w przyszłości, których nie
znamy. W takiej sytuacji, standardowe rozwiÄ…zania sÄ… nieadekwatne. Potrzebne
jest stworzenie mechanizmów, które dawałyby natychmiastową odpowiedz, nawet
przy niepełnej informacji i minimalizowałyby one straty spowodowane przyszłym,
niekorzystnym scenariuszem wydarzeń. Celem w tym przypadku byłaby minima-
lizacja ilości potrzebnych procesorów oraz optymalizacja czasu i efektywności
systemu. Przykładem z zakresu ekonomii i zarządzania może być problem
zarządzania przepływem produktów w firmie, dopasowania produkcji do potrzeb
rynku, zarządzanie transportem, środkami produkcji, czy też zasobami ludzkimi.
Nieznajomość przyszłych potrzeb rynku, pociąga za sobą brak wiedzy, o tym jak
powinniśmy modyfikować ofertę, a tym samym utratę sprawności i zwiększenie
kosztów w takich czynnościach wewnątrz firmy jak przepływ pracowników,
danych, półproduktów i środków produkcji.
Poza tym utrudnia planowanie w doszkalaniu pracowników i zakupu nowych
urządzeń. Problemy te na ogół są rozwiązywane przez ludzi opierających się na
doświadczeniu i intuicji. To niestety z powodu braku wsparcia oprogramowaniem
opartym na solidnych podstawach teoretycznych prowadzi do utraty optymalności
stosowanych dotychczasowych rozwiązań.
Opracowanie odpowiedniego programu z wykorzystaniem języka symulacyj-
nego może posłużyć w realizacji praktycznych celów. Bazując na nich zaistnieje
możliwość tworzenia oprogramowania wspomagającego mechanizmy decydowa-
nia w firmach i innych organizacjach. Poza tym będą przydatne w komputerowych
systemach wieloprocesorowych usprawniając i zmniejszając koszty działania
systemu.
4.2 Język GPSS
4.2.1 Wprowadzenie
GPSS (ang. General Purpose Simulation Software - pierwotnie Gordon's
Programmable Simulation System) jest językiem programowania stosowanym do
symulacji komputerowej procesów w szczególności procesów dyskretnych. Język
został stworzony w latach 60-tych przez Geoffreya Gordona. Pierwotna nazwa
została zmieniona, gdy zdecydowano się wydać język, jako produkt komercyjny.
Aktualnie są dostępne pełne funkcjonalnie darmowe wersje edukacyjne jedynie o
Modelowanie Procesów Dyskretnych 37
ograniczonej pojemności modelu. Język w jego obecnym kształcie jest wynikiem
ponad kilkudziesięciu lat ewolucji. Podczas gdy GPSS ma swoje korzenie w
początkach systemów typu mainframe, to jego podstawowe idee okazały się
odpowiednie do wykorzystania we współczesnych problemach z wykorzystaniem
nowoczesnych środowisk informatycznych. Popularność GPSS wynika w części, z
dużej mocy wyrażania rzeczywistości (język, reguły składni i semantyki);. Aby
osiągnąć podobny cel krótki i łatwy do zrozumienia model GPSS, wymagałby
wielu stron kodowania w języku algorytmicznym (C, Pascal, Fortran). Użytkownik
pakietu symulacyjnego GPSS może skoncentrować się na istotnych zagadnieniach
dotyczących modelu, ponieważ elementy samego języka zbierają statystyki,
generują tabele wyników i wykonują wiele żmudnych i złożonych zadań.
Język posiada wiele realizacji (GPSS/PC, GPSS/W, GPSS/H), pomiędzy
którymi występują nieznaczne różnice  jednak podstawowe zasady są wspólne.
Symulacja z zastosowaniem języka GPSS, opiera się na metodzie interakcji
procesów, w którym połączono zalety metody planowania z metodą przeglądu i
wyboru zdarzeń zapewniając efektywne obliczenia zarówno dla dużej ilości zadań i
zdarzeń (patrz rozdz. 5). Ogólnie symulacja polega na grupowaniu działań w
procesy wykonywane na pojedynczych dynamicznych obiektach (transakcjach),
które po wprowadzane do systemu, są przekazywane przez kolejne bloki z
rejestrowaniem ich stanu od chwili pojawienia się w systemie aż do chwili zaniku.
Na wstępie omówione zostaną ogólne własności języka i przedstawione
niektóre podstawowe pojęcia, umożliwiające wstępne zrozumienie szerokiego
zakresu zastosowań, mocy i obsługi tego języka w symulacji.
GPSS dostarcza zestaw abstrakcyjnych elementów różnych typów i zestaw
operacji, określanych jako bloki, które wykonują określone czynności dla tych
elementów. Transakcja jest takim elementem, który przechodzi przez ciąg bloków,
wprowadzonych do modelu badanego systemu. Stan elementu modelu określa
szczegóły sposobu działania bloku danego typu. Na przykład blok, który daje
możliwość dla pewnej transakcji na przejęcie kontroli nad wybranym sprzętem nie
pozwoli tego dokonać, jeżeli ten sprzęt jest już w stanie maksymalnej zajętości.
GPSS udostępnia wiele różnych rodzajów obiektów. Obiekt reprezentujący
wyposażenie lub urządzenie (ang. facilities np.: maszyna, procesor, pojazd), może
być w danej chwili używany (zajęty) przez co najwyżej jedną transakcję. Z kolei
obiekt cechujący się pewną ograniczoną pojemnością może reprezentować
magazyn (ang. storage), ale także np.: pamięć, ładowność pojazdu, czyli obiekty,
których pojemność określona jest wymaganiami projektowanego systemu.
Wreszcie, przełącznik logiczny jest prostym elementem (on/off), który może być
ustawiany i testowany w celu dokonania zmiany ścieżki przepływu transakcji
poprzez bloki modelu.
Należy podkreślić, że wszystkie omówione obiekty są abstrakcyjne. W
symulacji konkretnego modelu np. funkcjonowania fabryki, transakcje mogÄ…
stanowić montowane jednostki, urządzenia mogą reprezentować spawającego
Modelowanie Procesów Dyskretnych 38
robota a przełączniki logiczne mogą być wykorzystane do symulacji awarii
maszyny lub do jej sterowania.
W przypadku modelowania sieci szybkiej komunikacji, transakcjami mogą być
przesyłane wiadomości, urządzeniami linie przesyłowe a z kolei magazyny
stanowić bufory pamięci. Niezależnie od zastosowań, obiekty GPSS stanowią
naturalne równolegle działające modele elementów i procesów badanego lub
projektowanego systemu w świecie rzeczywistym.
W trakcie przemieszczania się transakcji poprzez bloki, realizacja określonych
działań na obiektach, jest zapamiętywana w postaci wielu rodzajów statystyk
dostępnych w trakcie symulacji jak i włączanych automatycznie do generowanego
raportu w chwili zakończenia symulacji (np.: średnia ilościowa, średni czas
obecności, wartość maksymalna itp.). Dodatkowe wyniki i raporty są tworzone
przez procesy kolejkowe, które generują odpowiednie raporty statystyczne, takie
jak: maksymalna i średnia długość kolejki, średnie opóznienie, odsetek transakcji,
które zostały opóznione lub natychmiast obsłużone. Wyniki są gromadzone w
postaci wartości próbek w tabeli częstotliwości wystąpień (histogramie).
GPSS zapewnia zasadniczy mechanizm kontroli, który gwarantuje, że
współzawodnictwo pomiędzy transakcjami (na przykład za korzystanie z obiektu)
jest arbitralnie rozstrzygane i w ten sposób transakcje są przenoszone przez bloki
modelu w sposób uporządkowany i efektywny. Ten mechanizm kontroli jest
zarządzany także przez zegar GPSS a, który stanowi podstawę czasu symulacji
modelu
Zegar GPSS a jest także abstrakcyjny, mierząc czas w umownych jednostkach
zegarowych, interpretowanych odpowiednio przez projektanta. W modelu
procesów produkcyjnych jednostka zegarowa może odpowiadać sekundzie lub
minucie, podczas gdy w sieci komunikacyjnej bardziej odpowiednia może być
wyższa rozdzielczość np. rzędu milisekund. Z kolei w systemie logistycznego
zaopatrzenia będzie wymagana bardzo niska rozdzielczość rzędu godziny lub doby.
Zdefiniowane funkcje wspomagają realizacje różnych relacji w obliczeniach
numerycznych. Mogą one być wykorzystywane do generowania zmiennych
losowych z teoretycznych lub empirycznych rozkładów prawdopodobieństwa.
Zmienne losowe można wykorzystać do zmiany zachowania transakcji w
zależności od zachowania się całego systemu, wybranych obiektów lub atrybutów
transakcji.
Wartości zmienne są używane do wykonywania obliczeń arytmetycznych we
wszystkich implementacjach GPSS, przy czym charakteryzujÄ… siÄ™ one
zróżnicowaną elastycznością w różnych w wersjach języka GPSS. GPSS/W,
GPSS/VX i GPSS/C pozwala na używanie wyrażeń arytmetycznych wszędzie tam,
gdzie jest dozwolone używanie wartości stałych.
Niektóre przypadki modelowanych sytuacji mogą skorzystać z koncepcji
zawartych w grupach jednostek jednakowego typu a w innych sytuacjach korzystne
będzie użycie bloków operujących na pojedynczych elementach.
Modelowanie Procesów Dyskretnych 39
Transakcja ma własny zestaw atrybutów numerycznych oraz prywatną nazwę
parametru, którą można wykorzystać do przechowywania różnych informacji
wymaganych przez użytkownika, takich jak numer identyfikacyjny części, rozmiar
lub waga przedmiotu reprezentowanego przez transakcjÄ™.
Szeroki zestaw standardowych atrybutów numerycznych (SNA) zapewnia
wygodny dostępu do automatycznego zapisu składników modelu, które mogą być
używane wszędzie tam gdzie jest dopuszczone użycie wartości numerycznych.
Przykładowo, jeżeli zmienna Q$OBS reprezentuje długość kolejki to może być
użyta w prostej sytuacji podjęcia decyzji o wyborze kolejki w bloku testującym
TEST L Q$OBS, FN$DOP, WYJSCIE
Przykładowe parametry bloku TEST pozwalają transakcji na przejście jeśli
aktualna długość kolejki o nazwie OBS jest mniejsza niż wartość zwracana przez
funkcjÄ™ DOP lub w przeciwnym wypadku przekierowywuje jÄ… do bloku WYJSCIE.
Z kolei funkcja DOP może zwrócić wartość zmiennej losowej o dowolnym
rozkładzie prawdopodobieństwa, wartość zmiennej z pory dnia czasu symulacyj-
nego lub wartość zależną od aktualnego parametru innych urządzeń np pojemności
(reprezentowanej przez parametr transakcji). Pierwszy znak wraz ze znakiem
dolara oznacza odniesienie siÄ™ do predefiniowanych nazw systemowych SNA.
GPSS zapewnia możliwość interaktywnego śledzenia przebiegu symulacji,
które pozwala na ustawianie pułapek w modelu oraz obserwację parametrów
obiektów modelu podczas krokowego przebiegu symulacji. Każda kolejna wersja
pakietu symulacyjnego opartego na języku GPSS, wprowadza dodatkowe
innowacyjne narzędzia przeznaczone do debugowania i śledzenia symulacji w
sposób coraz bardziej efektywny. Uwarunkowane pułapki i animowane prezentacje
pozwalajÄ… na optymalizacjÄ™ procesu projektowania a dla gotowego modelu na
skrócenie rzeczywistego czasu badań symulacyjnych.
Wstępny, prosty przykład pozwoli na zapoznanie się z elementarnymi zasadami
programowania i podstawowymi blokami języka GPSS World. Program modeluje
obsługę sprzedaży biletów dla klientów oczekujących w indywidualnych kolejkach
do trzech kas. Założono że obiekty reprezentują kasjerów biletowych obsługu-
jących transakcje klientów.
Przykład nr 1
01 SIMULATE
02 TSObs EQU 30 ; sredni czas obsługi
03 DTWej FUNCTION RN1,C3 ; rozkład równomierny(RN) i ciągły
04 0,4/.5,2/1,1 ; z 3-ma odcinkami liniowymi(C3)
05 GENERATE 10,FN$DTWej ; zgłaszanie się klientów
06 QUEUE Kolejka ; z ustawieniem na koncu
07 SEIZE Kasa ; zajęcie stanowiska kasowego
08 DEPART Kolejka ; z opuszczeniem kolejki
09 ADVANCE UNIFORM(2,TSObs-2,TSObs+2) ; czas obsługi
Modelowanie Procesów Dyskretnych 40
10. RELEASE Kasa ; zwolnienie kasy
11. TERMINATE 1 ; zwolnienie jednej transakcji
12. START 100
W kolejnych wierszach modelu o numerach:
01. SIMULATE - opcjonalna instrukcja oznaczajÄ…cÄ… poczÄ…tek symulacji,
02. TSObs EQU - wartość TSObs = 30 to średnia czasu obsługi w kasie biletowej,
03,04. - linie definiują funkcję, która generuje przekształcenie ciągłej zmiennej
losowej z przedziału [0, 1) z pierwszego strumienia rozkładu normalnego
równomiernego (RN1), do zależności wg wartości zadanych punktów (z
interpolacją wartości pośrednich),
05. klienci przybywają średnio co 10 jednostek czasu z odchyleniem określonym
przez funkcje w liniach 03 i 04,
06. ustawienie się klienta na końcu kolejki,
07. kiedy kasa jest dostępna następuje jej zajęcie oraz
08. opuszczenie kolejki, z zapisem czasu w statystykach kolejki,
09. zachodzi opóznienie średnio o TSObs jednostek z odchyleniem o 2 jednostki
w obu kierunkach, związane z czasem obsługi klienta w kasie.
10. zwolnienie kasy i z umożliwieniem zajęcia jej przez kolejnego klienta.
11. zakończenie jednego cyklu obsługi klienta.
12. uruchomienie symulacji dla 100 klientów do momentu aż wszyscy zostaną
usunięci z procesu osiągając kolejno blok TERMINATE.
W linii 09 okres czasu w którym kasa jest zajęta jest losowo wybrany z
jednakowym prawdopodobieństwem (wg rozkładu równomiernego) z przedziału
od 28 do 32 jednostek a liczba określająca aktualny czas opóznienia jest pobierana
z drugiego strumienia liczb losowych, a więc w stosunku do czasów wejścia,
czasy opóznień są statystycznie niezależne.
Standardowy raport zawiera nagłówek, listę nazw stałych przypisanymi wartoś-
ciami i zmiennych z identyfikatorami numerycznymi oraz szereg danych statys-
tycznych z przebiegu symulacji np: ENTRY COUNT  liczba wejść do każdego
bloku, nazwa kolejki (QUEUE) i maksymalna jej długość.
GPSS World Simulation Report - s0bilet
Saturday, October 15, 2010 01:19:58
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 2998.582 7 1 0
NAME VALUE
DTWEJ 10001.000
KASA 10003.000
KOLEJKA 10002.000
TSOBS 30.000
Modelowanie Procesów Dyskretnych 41
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 136 0 0
2 QUEUE 136 35 0
3 SEIZE 101 1 0
4 DEPART 100 0 0
5 ADVANCE 100 0 0
6 RELEASE 100 0 0
7 TERMINATE 100 0 0
FACILITY ENTRIES UTIL. AVE. TIME AVAIL. OWNER PEND INTER RETRY DELAY
KASA 101 0.997 29.589 1 101 0 0 0 35
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
KOLEJKA 36 36 136 1 18.097 399.009 401.965 0
W modelu może być wiele równolegle przebiegających procesów w odrębnych
segmentach, ale pomiędzy nimi mogą występować wzajemne interakcje a o tym
który proces decyduje o zakończeniu symulacji określa sposób usuwania transakcji
w bloku TERMINATE. Ponadto w przypadku konieczności wyboru decyzji o
pierwszeństwie wykonania operacji można określić jej priorytet. Omówione
problemy wyjaśnia prosty przykład:
Przykład nr 2;
; proces 1 który decyduje o zakonczeniu symulacji
; gdy inny nie zmienia swojego licznika
01 GENERATE 10,0 ; wprowadza co 10 jedn. z priorytet domyslny 0
02 TERMINATE 1 ; zmienia (dekrementuje) licznik tranzycji
; proces 2  równoległy
03 GENERATE 20,0,,,-1 ; priorytet niższy = -1 wprowadzi 49 transakcji
; LUB po zmianie priorytetu
; GENERATE 20,0,,,1 ;priorytet wyższy =1 wprowadzi 50 transakcji
05 TERMINATE ; bez zmainy licznika - proces 1 decyduje o końcu symulacji
06 START 100 ; zakonczenie symulacji po 1000= 100x10 jedn. czasu
Zakończenie symulacji następuje po upływie 1000 jedn. czasu ponieważ decyduje
o tym obsłużenie 100 transakcji procesu 1 w odstępach 10 jednostek czasu.
4.2.2 Opis podstawowych elementów języka GPSS ver World
Pełny opis języka zawiera ponad kilkadziesiąt instrukcji, z których większość
ma od 2 do 7 parametrów. Jest to wiedza, która może być wykorzystana tylko po
jej bardzo dobrym opanowaniu i będzie użyteczna w przypadku modelowania
złożonych i skomplikowanych procesów - wymaga sporego niekiedy długotrwa-
łego procesu szkolenia i praktycznego doświadczenia. Poniżej przedstawione
Modelowanie Procesów Dyskretnych 42
zostały tylko najbardziej podstawowe i najczęściej używane elementy języka oraz
ogólne zasady jego używania, których zastosowanie będzie wystarczające do
rozwiązania załączonych zadań. Pełny opis parametrów wraz z przykładami
załączono w pkt 6. Z kolei kompletny opis języka, można znalezć w bogatej
dokumentacji dołączonej do pakietu GPSS World.
Transakcje (ang. Transaction)
Transakcja jest dynamicznym obiektem o ściśle określonym zbiorze atrybutów
(w GPSS Parameters). Transakcje sÄ… tworzone pojedynczo lub w zestawach w
bloku GENERATE a następnie podzas symulacji przechodzią przez kolejne bloki
niekiedy wraz z innymi jednostkami GPSS. W zestawie transakcja może się
składać z wielu identycznych elementów np: kilka towarów transportowanych
przez pojazd.
Sposobem na identyfikacjÄ™ transakcji w systemie (procesie) rzeczywistym i tym
samym na jej reprezentację po wprowadzeniu do modelu GPSS jest jej słowny
sposób opisu. Opis takie zawiera często użycie z czasownika np. jak: "wejście do
czegoś ,  przejście przez coś ,  zgłosić się do czegoś , itp . Ten czasownik może
reprezentować typ bloku w GPSS jak np w zdaniu,  Transakcja zajęła urządzenie
(ang. Transaction SEIZE s Facility), która bezpośrednio reprezentuje operację na
typie bloku SEIZE. Każda transakcja aktualnie podczas symulacji może być w
dokładnie jednym bloku, ale większość bloków może zawierać wiele transakcji.
Każda transakcja zajmuje jeden blok, potem następny i tak dalej, aż do jej
usunięcia (ang. TERMINATE) lub zakończenia symulacji. Transakcje czasami są
w stanie oczekiwania przed blokiem, aż odpowiednie korzystne warunki zostaną
spełnione uprawniające do jego zajęcia. Bloki zapisane w kolejnych liniach
programu GPSS przepuszczają kolejne transakcje, pod warunkiem, że nie natrafią
one na blok TRANSFER, który może ją przesłać do innego bloku nie będącego w
aktualnej sekwencji.
Systemowe atrybuty numeryczne (SNA)
Systemowe atrybuty numeryczne (SNA - System Numerical Attribute) sÄ… pre-
definiowanymi zmiennymi opisującymi ogólny stan symulacji (np.: symulowany
czas) a także związanymi z większością bloków (np. długością kolejki w bloku
QUEUE). Zmienne SNA udostępniają wartości numeryczne lub łańcuchowe i
mogą być stosowane w instrukcjach i wyrażeniach GPSS. Są one ściśle związane z
obiektami więc ich znaczenie najlepiej poznawać równocześnie z opisem tych
obiektów.
Modelowanie Procesów Dyskretnych 43
Obiekty blokowe
Obiekt blokowy (ang. Block entity) jest podstawowym elementem
strukturalnym programu symulacyjnego. Określenie to jest związane z możli-
wością przedstawienia programu symulacyjnego w postaci schematu blokowego
(patrz rozdz. 4.5). Bloki są identyfikowane poprzez nazwy, które sugerują ich
zastosowanie w realizacji pewnych akcji np: generowanie, zajęcie lub zakończenie
zwykle napisane dużymi literami odnoszą się odpowiednio do bloków
GENERATE, SEIZE i TERMINATE. Każdy z bloków ma listę argumentów
oddzielonych przecinkami. Kolejność pozycji argumentów będzie oznaczony
dużymi literami alfabetu w zwykłym porządku alfabetycznym. Bloki mogą mieć
opcjonalnie unikalne etykiety, których nazwy można wykorzystać w sugerowaniu
wykorzystania tego bloku w procesie rzeczywistym. Składnia bloku.
etykieta TYPBLOKU A, B, C, ... ; komentarz po średniku
Argumenty, które mogą być pominięte przyjmują domyślne wartości ale ich
pozycje muszą być zaznaczone przez przecinki. Wyjątkiem jest możliwość
pomijania argumentów domyślnych od końca listy np w przykładzie nr 2 linia 03.
Oznacz to, że gdy wszystkie argumenty końcowe są nieistotne lub domyślne to
mogą być pominięte wraz z przecinkami.
Lista i opis podstawowych (najczęściej używanych bloków)
GENERATE - blok tworzący transakcje, będą się pojawiały w symulacji w
określonym odstępie czasowym, ilości i z określonym priorytetem (w nawiasach
podano domyślne wartości).
GENERATE A,B,C,D,E
A  czas pomiędzy dwoma kolejnymi transakcjami (odstęp), (A=0)
B  rozrzut, (odchylenie, tolerancja) dla wartoći A, która jest wartością średnią
równomiernego rozkładu prawdopodobieństwa (B=0)
C  opóznienie dla pierwszej transakcji,
D  maksymalna liczba ograniczajÄ…ca liczbÄ™ wprowadzonych transakcji, (D = ")
E  priorytet transakcji (E = 0 do 9)
Przykłady
GENERATE 50 ; transakcja jest generowana w odstępie co 50 jedn. czasu
GENERATE 20, 2.5 ; odstęp czasu losowy o rozkładzie równomiernym w
; przedziale [17.5, 22.5] lub 20Ä…2.5
GENERATE (EXPONENTIAL(nr, , ²)) ; z parametrami rozkÅ‚adu ekspotencjal-
; nego f(x) = 1/² exp(- (x-) / ² )
GENERATE , , , 1 ; wygenerowanie pojedynczej transakcji
Modelowanie Procesów Dyskretnych 44
ASSIGN  blok przypisujący lub modyfikujący wartość parametru transakcji, -
jeżeli parametr nie istnieje to jest on tworzony:
ASSIGN A, B, C
A - numer parametru lub nazwa aktywnej transakcji opcjonalnie zakończona
znakiem + lub -, znak +/- oznacza, że wartość argumentu B należy
odpowiednio dodać do / odjąć od oryginalnej wartości parametru A.
B - wymagany argument (nazwa, numer, string, wyrażenie w nawiasach lub SNA)
C - opcjonalna nazwa funkcji, której wartość będzie mnożona przez B.
Przykłady
ASSIGN Licz+, 1 ; inkrementacja licznika Licz o 1
ASSIGN P1, 10 ; pierwszemu parametru transakcji przypisano wartosc 10
Stanowisko obsługi jednokanałowej - FACILITY
Stanowisko obsługi jest obiektem, posiadającym kilka cech, z których
najważniejszym jest własność zajętości. Stanowisko jest tworzone automatycznie
gdy pierwsza transakcja osiągnęła blok, który korzysta z tego stanowiska.
Stanowiska nie muszą być deklarowane i definiowane przez instrukcje sterujące.
GPSS posiada kilka bloków, które używają i wykonują akcje dotyczące stanowisk:
SEIZE A - zajęcie stanowiska jednokanałowego A;
RELEASE A - zwolnienie stanowiska jednokanałowego A.
A - nazwa lub numer stanowiska,urządzenia lub wyposażenia
Przykłady:
SEIZE Kasa ; ustawienie siÄ™ przy okienku o nazwie Kasa
RELEASE Kasa ; odejście od okienka o nazwie Kasa
FAVAIL A - udostępnienie urządzenia jednokanałowego A (Facility AVAILable).
Przykład:
FAVAIL Kasa1 ; ustawienie dostępności do stanowiska Kasa1.
FUNAVAIL (Facility UNAVAILable) ustawianie niedostępności (blokada)
urządzenia jednokanałowego i określenie dalszego losu tak zatrzymanej
transakcji.
FUNAVAIL A,B,C,D,E,F,G,H - zablokowanie stanowiska jednokanałowego
A  nazwa urządzania, stanowiska jednokanałowego
B  tryb traktowania transakcji: usunięcie (RE), kontynuacja (CO),
C  nr bloku dla przerwanej transakcji,
D  nr parametru przechowujÄ…cego czas pobytu (gdy RE),
E  tryb traktowania dla wywłaszczonych transakcji (RE, CO),
F  nr bloku dla wywłaszczonej transakcji,
G  tryb traktowania dla transakcji opóznionej,
H  numer bloku dla transakcji opóznionej
Modelowanie Procesów Dyskretnych 45
Przykłady: A B C D E F G H
FUNAVAIL Kasa1, RE, Kasa2, 30, RE, Rez, CO
Ustawienie niedostępności do stanowiska Kasa1.
C = Kasa2 - transakcja z Kasa1 jest przesyłana do bloku Kasa2,
D = 30  parametr który przechowuje czas pobytu transakcji,
F = Rez - transakcje wywłaszczone wcześniej są przesyłane do bloku Rez
FUNAVAIL Kasa ; ustanowienie niedostępności stanowiska Kasa
Standardowe Atrybuty Numeryczne (SNA)  dla stanowiska jednokanałowego
FNrObiektu - zwraca stan zajętości stanowiska
FnrObiektu - zwraca wartość 1 gdy stanowisko jest aktualnie zajęte
oraz wartość 0 w przeciwnym wypadku
NrObiektu - symbol oznaczajacy liczbÄ™/ nazwÄ™ obiektu.
Stanowisko wielokanałowe (grupa urządzeń) - STORAGE
Stanowisko wielokanałowe jest złożone z wielu nierozróżnialnych i równo-
uprawnionych jednostek pozwalających na obsługę wielu transakcji. Stanowisko
musi być jawnie zadeklarowane z podaniem rozmiaru przez instrukcję:
Nazwa STORAGE A
Nazwa - obowiÄ…zkowa etykieta reprezentujÄ…ca identyfikator stanowiska
A  wymagany rozmiar (pojemność, ilość stanowisk, liczba jednostek składo-
wania itp., dostępnych dla transakcji).
Bloki GPSS, które mogą obsługiwać stanowiska wielokanałowe:
ENTER A,B uwarunkowane wejście i zajęcie stanowiska wielokanałowego
A - nazwa (identyfikator) stanowiska wielokanałowego
B - zajęcie B jednostek (domyślnie 1) ;
Warunki zajęcia to wolne B jednostek stanowiska i jego dostępność stanowiska A
LEAVE A,B - zwolnienie stanowiska wielokanałowego
A - nazwa (identyfikator) stanowiska wielokanałowego
B - zwolnienie B jednostek (domyślnie B=1) ;
SUNAVAIL A - blokuje stanowisko wielokanałowe (jest niedostępne)
A - nazwa (identyfikator) stanowiska wielokanałowego
SAVAIL A - odblokowanie stanowisko wielokanałowego ( jest udostępnione)
A - nazwa (identyfikator) stanowiska wielokanałowego
Ogólnie bloki ENTER i LEAVE maja po dwa argumenty, z których pierwszy
jest wymagany i wskazuje stanowisko wielokanałowe, które jest odpowiednio
Modelowanie Procesów Dyskretnych 46
zajmowane i zwalniane, natomiast drugi to liczba zajmowanych i zwalnianych
przez transakcję kanałów. Jeżeli tylko jeden kanał ma być zajęty lub zwolniony to
drugi argument można pominąć.
Bloki SAVAIL i SUNAVAIL wymagają tylko jednego argumentu, który repre-
zentuje blokowane i udostępniane stanowisko wielokanałowe. Gdy transakcja
pojawi się na wejściu do stanowiska wielokanałowego wykorzystuje (zajmuje)
jeden lub więcej kanałów określonych przez argument B. Transakcja może mieć
zakazane wejście do bloku ENTER jeśli on nie spełnia warunków obsługi.
Transakcja jest zatrzymana i oczekuje do czasu aż inne transakcje zwolnią kanały
przez wejście do bloku LEAVE.
Praktycznie bloki ENTER i LEAVE są używane do aktualizacji statystyk
związanych z obsługą stanowisk wielokanałowych, szereg zmiennych SNA służy
do ich zapamiętania np są to:
RNrObiektu  pozostała do wykorzystania (Rest) przez transakcje ilość kanałów
na stanowisku wielokanałowym NrObiektu,
SNrObiektu  użyta (zmagazynowana  Store) aktualnie ilość kanałów przez
transakcje na stanowisku wielokanałowym NrObiektu,
SANrObiektu  średnia użyta (zmagazynowana  Store Average) aktualnie ilość
kanałów przez transakcje na stan. wielokanałowym NrObiektu,
SCNrObiektu  ilość użytych kanałów (Store Count) na stanowisku
wielokanałowym NrObiektu,
SENrObiektu  sprawdza niedostępność stanowiska (Store Empty) przyjmując
wartość równą 1 jeśli stanowisko wielokanałowe NrObiektu jest całkowicie
niewykorzystane a wartość 0 w przeciwnym przypadku,
SFNrObiekt  sprawdza dostępność stanowiska (Store Full) przyjmując wartość
równą 1 jeśli stanowisko wielokanałowe NrObiektu jest całkowicie
wykorzystane a wartość 0 w przeciwnym przypadku,
SRNrObiekt  stopień wykorzystania (Utilization) stanowiska wielokanałowego
NrObiekt określający stosunek średniego czasu w którym stanowisko było
zajęte do całkowitego czasu symulacji wyrażona w postaci ułamka tysięcznego
SMNrObiekt - Maksymalna ilość kanałów używana na stanowisku
wielokanałowym NrObiektu,
STNrObiektu - Średni czas zajętości dla pojedynczego kanału używanego na
stanowisku wielokanałowym NrObiektu,
SVNrObiekt - Sprawdza dostępność stanowiska (Store Full) przyjmując wartość
równą 1 jeśli stanowisko wielokanałowe NrObiektu jest dostępne a wartość 0
w przeciwnym przypadku.
Kolejki i bloki kolejek
Kolejki są używane głównie do zbierania danych statystycznych, takich jak
aktualna długość, ilość wejść, średni czas pobytu i inne. Śledzą one także
transakcje, które są zablokowane przed wejściem na zajęte stanowisko
Modelowanie Procesów Dyskretnych 47
jednokanałowe i pełne stanowisko wielokanałowe. Analogicznie jak stanowisko
jednokanałowe kolejka jest tworzona gdy pierwszy obiekt transakcji osiągnie blok,
który używa kolejki. Kolejkę obsługuje dwuargumentowy blok QUEUE, w którym
zachodzi wzrost zawartości obiektów oraz DEPART, w którym, zachodzi
zmniejszenie zawartości obiektów w kolejce.
QUEUE A,B  wejście do kolejki
A - nazwa lub numer z kolejki
B - opcjonalna liczba obiektów (domyślnie 1) wchodząca do kolejki A
DEPART A,B
A - nazwa lub numer z kolejki
B - opcjonalna liczba obiektów (domyślnie 1) wychodząca z kolejki A
Bloki z obsługą kolejki są ściśle jest związane z blokami obsługi stanowisk i ich
operacje są naprzemienne tj. SEIZE lub ENTER pomiędzy QUEUE i DEPART a
następnie RELEASE lub LEAVE. W w/w przykładzie nr 1 dotyczącym obsługi w
kasie biletowej osoba w kolejce (linia 08) opuszcza ją dopiero po pomyślnym
podejściu do kasy (linia 07).
Z obsługą kolejek związanych jest szereg zmiennych SNA, które są używane do
generowania danych statystycznych.
Przykładowo są to:
QNrObiektu - aktualna długość kolejki NrObiektu określona przez licznik ilości
transakcji
QANrObiektu - średnia ważona w czasie długość
QCNrObiektu - suma wszystkich wejść do kolejki NrObiektu.
QMNrObiektu - maksymalna długość kolejki NrObiektu
QTNrObiektu - średni czas pobytu transakcji w kolejce NrObiektu z
uwzględnieniem wszystkich transakcji.
QTABLE - deklaracja i inicjalizaja parametrów dla danych statystycznych
gromadzonych w postaci rozkładów częstotliwości
Nazwa QTABLE A, B, C, D
A - nazwa bloku kolejki
B - górna granica zapisu pierwszego zakresu częstotliwości.
C - rozmiar zakresu częstotliwości.
D  ilość zakresów częstotliwości.
ADVANCE
Blok ADVANCE jest jedynym blokiem, który jest ściśle związany z postępem
czasu. Gdy transakcja dochodzi do bloku ADVANCE jest ona opózniana o
określoną ilość czasu symulacyjnego a następnie przechodzi do następnego bloku.
Składnia bloku jest następująca:
Modelowanie Procesów Dyskretnych 48
ADVANCE A, B
A - wymagany średni przyrost czasu.
B - opcjonalnie rozrzut, odchylenie, tolerancja dla wartości A która jest
wartością średnią rozkładu równomiernego, (B=0)
Przyrost czasu można określić na kilka sposobów. Jeśli jest tylko argument A to
określa on deterministyczny przyrost czasu. Jeśli są oba argumenty A i B a B nie
jest funkcją to przyrost czasu jest liczbą losową z przedziału A - B i A + B
włącznie. Jeśli B jest funkcją to jej wartość po pomnożeniu przez argument A
określa przyrost czasu, który może być zależny od innych zmiennych w symulacji.
FUNCTION
Funkcje GPSS funkcji są używane do określenia wartości na podstawie innych
argumentów np. liczb losowych i wartości systemowych SNA. Funkcja jest
określona przez linię nagłówka z poleceniem FUNCTION z parametrami i
ewentualnym komentarzem oraz w kolejno następujących po sobie liniach
specyfikację danych w postaci pary wartości x, f(x) oddzielonych znakiem / .
Nazwa FUNCTION A, B ; komentarz
x1,y1 / x2,y2 ...
... xn,yn
A  argument (zmienna niezależna - wejściowa)
B  oznacza typ funkcji i liczba par, która pojawią się w specyfikacji danych
będących liczbami stałymi, nazwami lub zmiennymi SNA.
Istnieje 5 różnych typów argumentów funkcji, z których najczęściej ma
zastosowanie typ C gdzie funkcja jest ciągła z interpolowanymi liniowo
wartościami pośrednimi lub typ D dla dyskretnych wartości funkcji gdzie każda
wartość argumentu lub gęstości prawdopodobieństwa ma przypisaną osobną
wartość.
Dla typu C jeśli argument zawarty jest w określonym segmencie linii, to jest
wykonywana interpolacja liniowa. Na przykład dla funkcji
Output FUNCTION V$Input,C5
1.1,10.1/20.5,98.7/33.3,889.2
93.5,2003/200.4,8743
jeśli V$Input wynosi 25, to FN$Output zwraca wynik obliczenia:
98,7 + (889.2-98.7) * (25-20.5) / (33.3-20.5).
Sterowanie kolejnością przepływu transakcji.
TRANSFER
Blok TRANSFER A,B,C umożliwia przeskok transakcji do innego bloku nie
będącego w sekwencji. Może on być: bezwarunkowy, warunkowy lub
probabilistyczny. Ogólnie tryb działania pracy dotyczący transferu określa
parametr A a B i C to numery bloków lub ich lokalizacje.
Tryb bezwarunkowy:
Modelowanie Procesów Dyskretnych 49
Parametr A  jest pusty a aktywna transakcja zawsze przechodzi do bloku B -
transakcja nigdy uzyskuje odmowy wejścia do bloku TRANSFER ale jeśli
dostaje odmowę wejścia do bloku docelowego B to pozostaje w bloku
TRANSFER.
Tryb losowy:
Parametr A określa prawdopodobieństwo (0 1) przy którym aktywna transakcja
przechodzi do bloku określonego argumentem C oraz z prawdopodobieństwem
1 A do bloku określonego przez operand B. Jeśli parametr B jest pusty to
transakcja przechodzi do następnego bloku sekwencyjnego (NSB) - jest to
najczęstsze zastosowanie bloku TRANSFER.
Tryb warunkowy:
Gdy parametr A jest równy BOTH to blok określony przez parametr B jest
testowany i gdy są warunki na przyjęcie aktualnej transakcji to następuje jej
przejście do tego bloku W przeciwnym wypadku testowany jest blok C i on
przejmuje transakcję. Kiedy żaden ze wskazanych bloków nie może przejąć
transakcji, czeka ona w bloku TRANSFER na spełnieni któregokolwiek warunku
Składnia:
TRANSFER A,B,C
A  brak parametru oznacza przejście bezwarunkowe do etykiety w parametrze B
albo słowo BOTH (przejście warunkowe) albo wartość prawdopodobieństwa
przejścia np wartość p,
B  etykieta przejścia bezwarunkowego albo pierwsza etykieta dla przejścia
warunkowego albo etykieta przejścia o prawdopodobieństwie 1-p dla transakcji,
C  druga etykieta przejścia (przejście warunkowe) albo etykieta przejścia o
prawdopodobieństwie p
Przykłady
TRANSFER , Wyjscie ; przejście bezwarunkowe do bloku z etykietą Wyjscie
TRANSFER BOTH, S1,S2 ;przejście warunkowe  w pierwszej kolejności
; do bloku z etykietą S1, a gdy jest niemożliwe do bloku z etykietą S2
TRANSFER .35, S1, S2 ; przejście losowe z prawdopodobieństwem 0.65
; do bloku z etykietą S1 i z prawdopodobieństwem 0.35 do bloku z etykietą S2
TEST
Blok TEST porównuje wartości, zwykle zmienne SNA i steruje przejściem
transakcji na podstawie wyników porównania z użyciem zwykłych operatorów
relacyjnych. Jest to kolejny sposób, aby umożliwić niesekwencyjne działania
symulacji. Składnia bloku testującego ma postać:
TEST O A, B, C - sterowanie przejściem transakcji z badaniem warunku;
O  operator warunkowy, typ relacji (G, GE, E, NE, LE, L),
Oznaczenia:
G  większe; GE  większe lub równe; E  równe; NE  nierówne;
LE  mniejsze lub równe; L  mniejsze
Modelowanie Procesów Dyskretnych 50
A  pierwszy argument relacji (nazwa/numer obiektu, wartość wyrażenia),
B  drugi argument relacji (nazwa/numer obiektu, wartość wyrażenia),
C - etykieta (numer) bloku dla przypadku False.
Przykłady:
TEST LE Q$S1,4,KONIEC ; zajęcie stan. S1, gdy kolejka przed nim jest nie
większa od 4; w przeciwnym przyp. przejście do bloku z etykietą KONIEC
TEST E Steruj, 3, Transport ; gdy kod sterowania Steruj jest równy 3 to
transakcja przechodzi dalej, jeżeli nie, to idzie do bloku Transport
GATE
Blok GATE podobnie jak TEST steruje przejściem transakcji ale na podstawie
stanu urządzeń jest to następny sposób, na niesekwencyjne działanie symulacji.
Składnia bloku testującego ma postać:
GATE O A,B Sterowanie przepuszczeniem transakcji z badaniem warunku;
O  operator warunkowy, kodowanie stanu urzÄ…dzenia
(FNV, FV, I, LS, LR, M, NI, NM, NU, SE, SF, SNE, SNF, SNV, SV, U),
A  nazwa lub numer obiektu testowanego,
B  etykieta (numer) bloku dla przypadku nieprawdy . Oznaczenia:
Stanowisko Facility:
FNV/FV (nie)dostępne; NI/I  (nie)jest w przerwaniu; NU/U  (nie)jest w użyciu
Przełącznik Logic switch: LS / LR  ustawienie/ zerowanie
Blok MATCH: NM /M (nie) posiada powiÄ…zanÄ…(ej) transakcjÄ™(i)
Stanowisko Storage: SE/SF  jest puste/pełne; SNE/SNF  nie jest puste/pełne ;
SNV/ SV  (nie)jest dostępne; (nie to samo co pełne/puste);
Przykłady
GATE SNF Susz ;Zajęcie stanowiska Susz, gdy jest ono puste (Storage Not Full)
GATE NU Kasa1,Kasa2 ; Przejście do Kasa1, gdy jest wolna (NotUsed) , a w
przeciwnym przypadku przejście do stanowiska Kasa2
4.2.3 Przykłady programów
Przykład nr 3.
Prosty przykład harmonogramu produkcji częsci przedstawia Rys. 4.1. Surowiec
do produkcji z magazynu wejściowego jest podawany kolejno na transporter co 9
min. Następnie jest on po uchwyceniu przez robota, obrabiany mechanicznie i
malowany przez okres 12 min po czym robot jest zwalniany poprzez pozostawienie
części do wysuszenia na wolnym stanowisku w suszarce na okres 27 min. W celu
zwiększenia przepustowości suszarka może pomieścić równocześnie 2 części.
Gotowe części są wyprowadzane do magazynu wyrobów gotowych. Należy
napisać program modelujący opisany proces w języku GPSS zakładając, że
1. suszenie będzie modelowane blokiem 2-kanałowym w przeciwieństwie do 1-
kanałowej obróbki.
2. symulacja będzie przeprowadzona dla czterech 4 identycznych części
Modelowanie Procesów Dyskretnych 51
3. długość kolejki na transporterze będzie zarejestrowana na wykresie do 20 min
4. proces rozpoczyna siÄ™ w pierwszej minucie czasu symulacji.
Otoczenie systemu
z1 z2
z3
z4
magazyn części
1 28 45 60 75 90
0 10
19
czas
z1 z2 z3 z4
Kolejka
transporter
?
z1 z4
z2 z3
Obróbka mechaniczna
1 52
13 25 40
1 obrabiarka
z4
z2
malowanie i
suszenie
z1
z3
2 stanowiska
40
52
67
25
79
13
Otoczenie
magazyn
z1 z3 z4
z2
produktów
Rys 4.1 Przykład harmonogramu produkcji
RozwiÄ…zanie - program
; Produkcja (kolejka, stanowiska jedno i wielokanałowe)
Susz STORAGE 2 ; 2 stanowiska do suszenia
GENERATE 9,,1,4 ; co 9 min, od 1 min, 4 zadania
QUEUE Transp ; zajęcie miejsca na transporterze
SEIZE Obrab ; zajęcie obrabiarki
DEPART Transp ; zwolnienie miejsca na transporterze
ADVANCE 12 ; obróbka w czasie 12 min.
ENTER Susz ; zajęcie suszarki
RELEASE Obrab ; zwolnienie obrabiarki
ADVANCE 27 ; malowanie i suszenie (27 min.)
LEAVE Susz ; zwolnienie suszarki
TERMINATE 1 ; zakończenie zadania
START 4 ; uruchomienie symulacji dla 4 zadań
Modelowanie Procesów Dyskretnych 52
Standardowy raport z symulacji
GPSS World Simulation Report  Prod3.12.1 Tue, Oct 18, 2010 00:18:21
START TIME END TIME BLOCKS FACILITIES STORAGES
0.000 79.000 10 1 1
NAME VALUE
OBRAB 10002.000
SUSZ 10000.000
TRANSP 10001.000
LABEL LOC BLOCK TYPE ENTRY COUNT CURRENT COUNT RETRY
1 GENERATE 4 0 0
2 QUEUE 4 0 0
3 SEIZE 4 0 0
4 DEPART 4 0 0
5 ADVANCE 4 0 0
6 ENTER 4 0 0
7 RELEASE 4 0 0
8 ADVANCE 4 0 0
9 LEAVE 4 0 0
10 TERMINATE 4 0 0
FACILITY ENTR UTIL. AVE. T.AVAIL. OWNER PEND INTER RETRY DELAY
OBRAB 4 0.646 12.750 1 0 0 0 0 0
QUEUE MAX CONT. ENTRY ENTRY(0) AVE.CONT. AVE.TIME AVE.(-0) RETRY
TRANSP 1 0 4 1 0.266 5.250 7.000 0
STORAGE CAP. REM. MIN. MAX. ENTRIES AVL. AVE.C. UTIL. RETRY DELAY
SUSZ 2 2 0 2 4 1 1.367 0.684 0 0
Na Rys 4.2 przedstawiono graficzne wyniki symulacji przykładu 3.
Modelowanie Procesów Dyskretnych 53
Rys 4.2 Wyniki symulacji - zajętość transportera w przykładzie nr 3
Pozostałe przykłady objaśniające inne bloki a w szczególności dotyczące bloków
sterujących są zawarte i dostępne w plikach zródłowych na serwerze w katalogu do
ćwiczeń oraz opisane w rozdz. 4.3. Ponadto należy skorzystać z dostępnego na
serwerze szczegółowego podręcznika i pomocy do wersji GPSS World.
Złożoność języka GPSS, konieczność pamiętania składni kilkudziesięciu bloków, z
których większość posiada wiele parametrów, powoduje że język ten traci na
popularności. Z drugiej jednak strony konieczność symulacji procesów
dyskretnych a szczególności procesów obsługi masowej jest coraz powszechniejsza.
Obserwuje się zatem pojawianie się na rynku coraz większej ilości aplikacji o
bardziej przyjaznej obsłudze, korzystającej z graficznego środowiska 3D
prowadzonej z powodzeniem przez osoby nie pracujące bezpośrednio w branży IT
(np. Flexim http://www.flexsim.com/flexsim),.
Modelowanie Procesów Dyskretnych 54
4.3 Przykłady do ćwiczeń i tematy zadań
Zadania powinny być wykonywane kolejno a wyniki zapisywane w plikach
zródłowych z numerami zadań w postaci zadnr.gps i w raportach zadnr.gpr
1. Obsługa stanowiska jednokanałowego z zadaną ilością zakończonych zadań
Problem: Ile wynosi czas obsługi i maksymalna długość kolejki w myjni
samochodowej dla 100 klientów napływających w sposób równomierny w
przedziale od 2 do 12 minut. Czas mycia samochodu (z manewrowaniem) wynosi
3 - 9 min. Rozwiązanie - Przykład programu w pliku Myjnia01
Zad 1.0 Napisz program symulujący pracę drukarki dla 20 plików jako urządzenia
jednokanałowego pobierającego pliki do drukowania z kolejki FIFO na
serwerze wydruku. Kolejka ma nieograniczoną pojemność, wydruki nadchodzą
w przedziale czasu od 5 do 10 min, a czas wydruku wynosi od 10 do 20 min
2. Obsługa z zadanym czasem stanowiska jednokanałowego
Zad 2.0 Napisz program symulujący 10 godz. pracę obsługi drukarki (w tym
20+60+20 min przerw) jako urządzenia jednokanałowego pobierającego pliki
do drukowania z kolejki FIFO zorganizowanej na serwerze wydruku. Kolejka
ma nieograniczoną pojemność, wydruki nadchodzą w przedziale czasu od 5 do
10 min, a czas wydruku wynosi od 10 do 20 min
Wskazówka - zastosować bloki z przykładu Myjnia01
Zdefiniować proces symulacji czasu złożony z jednego zadania o odpowiednim
czasie trwania i priorytecie 5
Zad 2.1 Modyfikacja Zad 2.0 - Zmiana (uproszczenie) generacji czasu symulacji -
uprościć usuwając blok opózniający, pozostawić pozostałe parametry bez
zmian
Zad 2.2 Modyfikacja Zad 2.1 - Zwiększenie dokładności pomiaru czasu - zmiana
jednostki czasu na 0.1 min
Zad 2.3 Modyfikacja Zad 2.2 - Dwukrotne zwolnienie (w stosunku do zad 2.2)
zmniejszenie ilości nadchodzących zadań w jednostce czasu,
Zad 2.4 Modyfikacja. Zad 2.3 Dwukrotne przyspieszenie (w stosunku do zad 2.2)
zwiększenie częstości (ilości jw. porównać wyniki )
Modelowanie Procesów Dyskretnych 55
3. Obsługa stanowiska wielokanałowego (o identycznych parametrach )
Przykład obsługi myjni na jednym z wielu identycznych stanowisk Myjnia03)
Zad 3.0 Modyfikacja Zad 2.4 symulacja 8 godz. pracy urządzeń wielokanałowych
zespołu 3 drukarek DRUK Symulacja wydruku zadań na jednej pierwszej
wolnej drukarce wybranej z zespołu 3 identycznych drukarek
Wskazówka - zastos: STORAGE, ENTER, LEAVE (patrz Myjnia03.gps)
Zad 3.1 Modyfikacja Zad 3.0 - uszkodzenie (brak) jednej drukarki w zespole
Zad 3.2 Modyfikacja Zad 3.0 - uszkodzenie (brak) dwóch drukarek (porównać
wynik z Zad 2 o tych samych parametrach )
Zad 3.3 Modyfikacja Zad 3.0 - wszystkie drukarki po pierwszym wydruku
zatrzymujÄ… siÄ™
Zad 3.4 Modyfikacja Zad 3.0 - wprowadzenie nowego procesu obsługi dla zadań
uprzywilejowanych
Zadania uprzywilejowane do wydruku nadchodzą rzadziej, ale mają dłuższy czas
wydruku np co 10 min oraz mają najwyższy priorytet (uwaga szef profesor
może wyrzucić z roboty !!! )
4. Obsługa 2 stanowisk jednokanałowych z określeniem warunków wyboru
Przykład: Myjnia04.gpr (myjnia ręczna i automatyczna) zastosowanie bloku
TRANSFER do zmiany kolejności przemieszczania się zadań - mycie na dwóch
stanowiskach do których są indywidualne kolejki, wybór kolejki stanowiska
przypadkowy z określonym prawdopodobieństwem - samochody nie mogą
zmieniać stanowiska po wybraniu kolejki (Przykład)
Zad 4.0 Wprowadzenie dwóch drukarek DR1 i DR2 wraz z indywidualnymi
serwerami. Wybór sprzętu dla nadchodzących zadań jest uwarunkowany
jednakowym prawdopodobieństwem dla jednakowych drukarek jak w Zad 2.0)
Zad 4.1 Modyfikacja (4.0) poprzez zmianę prawdopodobieństwa i czasu obsługi.
Dobrać prawdopodobieństwo dla przypadku gdy drukarka DR1 przyspieszyła
dwukrotnie wydruk
Zad 4.2 Modyfikacja (4.0) poprzez usuniecie warunku prawdopodobieństwa i
czasu obsługi drukarki
Zad 4.3 Modyfikacja (4.0) z jednym serwerem wydruku wprowadzić wybór
bezwarunkowy ( warunek BOTH A, B określa wybór A a gdy zajęte B )
5. Obsługa 2 stanowisk jednokanałowych z określeniem warunków wyboru
dobranym wg aktualnego stanu obsługi (parametrów)
Przykład Myjnia05 (myjnia ręczna i automatyczna) zastosowanie bloku TEST
Zad 5.0 Obsługa sterowania zadaniami na 2-ch stanowiskach jednokanałowych
Modelowanie Procesów Dyskretnych 56
6. Porównanie obsługi zadań wg zasady FIFO i SPT
Symulacja pracy narzędziowni
Pewien pracownik pracuje w narzędziowni a jego zadaniem jest sprawdzenie,
konserwacja i przyjmowanie/wydawanie narzędzi, uzywanych przez mechaników
naprawiających maszyny. Narzędzia te są zbyt kosztowne i jest ich równocześnie
zbyt wiele, by każdy mechanik posiadał je w swoim podręcznym wyposażeniu
naprawczym. Czas pomiędzy dwoma kolejnymi zapotrzebowaniami na wydanie
tych narzędzi oraz czas potrzebny na przygotowanie i wydanie potrzebnego
narzędzia (czas obsługi mechanika) zależą od mechanika. Rozkłady
prawdopodobieństw i ich parametry dla czasów pomiędzy zapotrzebowaniami oraz
obsługi dwóch typów mechanika są następujące:
Zad 6.0 Pracownik narzędziowni stosuje regulamin obsługi FCFS (pierwszy
przyszedł, pierwszy obsłużony: First Come, First Served). Jednakże jest także
propozycja zastosowania SPT (najkrótszy czas obsługi: Shortest Processing
Time), ponieważ prawdopodobne jest zmniejszenie wtedy średniej liczby
mechaników oczekujących na obsługę przez pracownika narzędziowni. Może to
wtedy spowodować oszczędności, ponieważ: (1) zmniejszony zostanie czas
oczekiwania w narzędziowni, (2) zmniejszony zostanie czas naprawy psujących
się maszyn. Zbuduj model 8-godzinnego dnia pracy narzędziowni dla dwóch
wariantów regulaminu obsługi mechaników. Czy regulamin SPT spowoduje
zmniejszenie liczby mechaników oczekujących na obsługę?.
Wskazówka: Wykorzystać priorytety obsługi zadań
Modelowanie Procesów Dyskretnych 57
4.4 Obsługa pakietu GPSS World
Zapoznanie się z obsługą pakietu symulacyjnego GPSS World Student
przeprowadzone będzie na przykładzie programu prod3.gps omówionego w
rozdz. 4.2.2.
1. W katalogu path/cw4/GPSS/ uruchomić GPSSws.exe
Rys. 4.3 Okno główne
2. Otworzyć plik prod3.gps w katalogu path/cw4/
File -> Open
3. Zapoznać się z treścią programu w oknie edytora
4. Uruchomić symulacje (Rys 4.3)
Command -> Create Simulation
W wyniku przeprowadzonej pomyślnie symulacji uzyskano dodatkowe okna
standardowy raport (REPORT) oraz w oknie JOURNAL tzw. dziennika
Modelowanie Procesów Dyskretnych 58
zawierającego ślad symulacji przedstawiający w czasie rzeczywistym komunikaty
o wybranych zdarzeniach i ich parametrach.
Zawartość okien można zapisać, wydrukować i wykorzystać w szczegółowej
analizie procesu
- w dzienniku można zapisać wyniki śledzenia TRACE / UNTRACE).
- wyniki śledzenia obserwujemy także na bieżąco w trybie pracy krokowej
Rys 4.4 Podstawowe okna po uruchomeniu przykładu
5. Symulacja krokowa.
Eliminujemy automatyczny START wprowadzajÄ…c
komentarz w ostatniej linii . ; START
Następnie kompilujemy
Command -> Create Simulation
Powtarzamy wielokrotnie
Command -> Step 1
Wyniki obserwujemy
w oknie dziennika(Rys 4.4)
lub w oknie obiektów blokowych (BLOCK ENTITIES ) (Rys 4.5)
Okno z obiektami blokowymi włączamy jednorazowo przez
Command -> Window ->
Simulation Window -> Block Window
Modelowanie Procesów Dyskretnych 59
W bieżącym oknie bloku pracę krokowa można kontynuować przy pomocy ikony
STEP
Rys 4.5 Komunikaty w trybie pracy krokowej i w blokach obiektów
6. Generowanie wykresów
Wykresy przedstawione będą w szerszym horyzoncie czasowym
W tym celu :
Usuń ograniczenie na ilość zadań - pozostaw GENERATE 9
Zapisz program pod nowa nazwÄ… Prod30
Otwórz okno wykresu
Simulation Window -> Plot Window
Wprowadz (Rys 4.5 ) etykietę wykresu , wyrażenie i tytuł okna
(w uproszczeniu wspólną nazwę) oznaczająca długość kolejki Q$Transp
Zakres czasu t max= 1500 min domyślnie od tmin = 0
Zakres osi pionowej [0, 100]
Uruchom START 100
Modelowanie Procesów Dyskretnych 60
Wynik na Rys 4.6
Rys 4.5 Edycja parametrów wykresu
Rys 4.6 Wynik symulacji w oknie wykresu  długość kolejki
Modelowanie Procesów Dyskretnych 61
7. Skalowanie
Szczegóły wykresu zobaczymy po zmianie skali Rys 4.8
Parametry wykresu można zmodyfikować (Rys 4.7) przez
Edit -> Plot Window
Wprowadzamy
Zakres czasu t max= 200 min ,
Zakres osi pionowej [0, 20]
Rys 4.7 Modyfikacja parametrów wykresu
Modelowanie Procesów Dyskretnych 62
Rys 4.8 Wynik symulacji w oknie wykresu  wg nowej skali
Modelowanie Procesów Dyskretnych 63
4.5 Inne wersje pakietów GPSS
GPSS jako język wszedł do niektórych pakietów symulacyjnych także dla układów
ciągłych. Przykładem może być implementacja w pakiecie SIMULA (Rys 4.9, 4.10,
4.11) gdzie wprowadzono graficznÄ… realizacjÄ™ programu przy pomocy symboli
blokowych.
W wersji internetowej WebGPSS budowę programu można też zrealizować
przy pomocy elementów schematu blokowego (Rys 4.12) - przykład takiej
realizacji przedstawia Rys 4.13.
Rys. 4.9 SIMULA Okna: schematu blokowego, symboli bloków i ich parametrów oraz
wyników wykreślnych i raportu statystycznego
Modelowanie Procesów Dyskretnych 64
Rys. 4.10 SIMULA Okno raportu statystycznego
Rys. 4.11 SIMULA - Okna symulacji
Modelowanie Procesów Dyskretnych 65
Rys 4.12 Symbole schematu blokowego GPSS Web
Rys. 4.13 Przykład schematu blokowego modelu procesów
Modelowanie Procesów Dyskretnych 66
Przykład zastosowania schematu blokowego przedstawia Rys 4.14. Jest to
fragment schematu blokowego GPSS, który został zastosowany do praktycznego
rozwiązanego pewnego złożonego problemu. Szczegóły tego schematu są
niedostępne, ze względu na prawa autorskie, ale złożoność ogólnej struktury
przekonuje nas o aktualności problematyki i o stosowanych narzędziach
symulacyjnych. RozwiÄ…zany problem dotyczy budowy modelu procesu
logistycznego - organizacji transportu i produkcji na Dalekim Wschodzie w tzw.
łańcuchu dostaw. Szczegółowy opis procesu jest dostępny w artykule
"http://www.elogmar-m.org/misc/simulationELogisticsSupplyChain.doc"
Extract from
Extract from
a Time- and
a Time- and
Cost-based
Cost-based
GPSS
GPSS
Model of an
Model of an
Intermodal
Intermodal
Supply Chain
Supply Chain
from the
from the
Far-East to
Far-East to
NW-Europe
NW-Europe
Rys. 4.14 Model blokowy GPSS złożonego problemu logistycznego
zródło:http://www.elogmar-m.org/misc/simulationELogisticsSupplyChain.doc
Literatura do rozdz. 4
http://www.minutemansoftware.com/
http://www.webgpss.com/
Modelowanie Procesów Dyskretnych 67
5. PROGRAMOWANIE SYSTEMÓW DYSKRETNYCH
5.1 Wprowadzenie
Programowanie systemów dyskretnych, w głównej mierze opiera się na
tworzeniu oprogramowania do symulacji komputerowej dyskretnych procesów
zachodzących w modelach systemów rzeczywistych. Symulacja komputerowa jest
metodą, która w pewnym zakresie używając odpowiednich modeli
matematycznych pozwala na odtwarzanie zjawisk zachodzących w świecie
rzeczywistym (niekiedy uzyskujemy jedynie ocenę niektórych parametrów i
właściwości symulowanego systemu rzeczywistego). Istotne jest w tym przypadku
modelowanie przy użyciu programów komputerowych i praktyczna realizacja
symulacji z wykorzystaniem sprzętu komputerowego. Symulacja umożliwia
uzyskanie informacji o procesach, dla których bezpośrednia obserwacja jest
niemożliwa lub zbyt kosztowna.
Symulacja procesów dyskretnych - dotyczy procesów, których stan zmienia się
tylko w dyskretnych punktach czasu i zależy od zmian stanów systemu.
Do istotnych zalet symulacji komputerowych należy możliwość przetestowania
procesu w sposób oszczędny i bezpieczny, z jednej strony unikając błędów i
kosztów związanych z testami i poprawkami dla układu rzeczywistego a z drugiej
także wczesnego wykrywania błędów i świadomego symulowania sytuacji
awaryjnych. Modelowanie czasu w systemie pozwala na jego skalowanie i w
efekcie skrócenie czasu przeprowadzenia wielu badań symulacyjnych i znalezienia
najlepszych rozwiązań możliwych do zastosowania w rzeczywistości. Z symulacji
może skorzystać zarówno projektant jak i przyszły użytkownik, którzy wspólnie
mając do dyspozycji środki wizualizacyjne, mogą poznać ograniczenia, lepiej
zrozumieć proces i wspólnie skonsultować najlepsze rozwiązania.
Symulacja jest tylko pewnym przybliżeniem rzeczywistości i stąd wynikają
także jej wady oraz ograniczenia w uzyskaniu zadawalających rezultatów.
Konieczne jest w tym przypadku duże doświadczenie projektanta, ażeby
adekwatnie do założonego celu symulacji uwzględnić w modelu wszystkie jego
aspekty. W przypadku złożonych problemów symulacyjnych istotne mogą być
także koszty samego oprogramowania symulacyjnego, przeprowadzanych testów,
generowania wyników symulacyjnych a także konieczność zaangażowania w
projekcie grona specjalistów w celu interpretacji złożonych wyników.
Z reguły koszty symulacji są pomijalne i warto ją przeprowadzać, ale należy
jednak przeanalizować jej zastosowanie biorąc pod uwagę dalsze prognozowanie
kosztów.
Modelowanie Procesów Dyskretnych 68
5.2 Proces projektowania symulacji
W rozdziale tym przedstawiony zostanie ogólny plan etapów symulacji,
opracowany na podstawie [Branks, Carson, Nelson and Nicol  Discrete Event
System Simulation ] i omówiony pod kątem symulacji jako pewnego
przedsięwzięcia projektowego. Rysunek 5.1 przedstawia ogólną postać takiego
przedsięwzięcia, złożonego z szeregu etapów.
1. Problem, Cel
i Harmonogram
2. Model 3. Zbior
Abstrakcyjny Danych
4. Model
Symulacyjny
5.Weryfika-
cja Modelu
6. Badania
Symulacyjne
Rys 5.1 Plan etapów projektu symulacji
Modelowanie Procesów Dyskretnych 69
Etap 1: Sformułowanie problemu. Cel i harmonogram.
Symulowana rzeczywistość i występujące zjawiska powinny być dobrze
sprecyzowane. Programista lub analityk w przypadku wieloosobowego
zespołu projektowego sporządza specyfikację wymagań. Na tym etapie
powinien być jasno sformułowany cel symulacji. Są to istotne założenia, które
powinny być w postaci dokumentu uzgodnione z ewentualnym klientem lub
zespołem kontrolno-nadzorczym. Istotne jest też na tym etapie określenie i
uzgodnienie ogólnego harmonogramu, przydziału zasobów i oszacowanie
kosztów.
Etap 2: Model Abstrakcyjny.
Zbudowanie modelu, w którym rzeczywistość zostaje zastąpiona przez
abstrakcyjne modele matematyczne. Formalizm reguł matematycznych
wspomaga dalsze zrozumienie procesu i uściśla wstępne założenia. Na tym
etapie wymagane sÄ… niekiedy konsultacje specjalistyczne z zakresu dziedziny
symulowanej rzeczywistości.
Etap 3: Zbiór Danych.
Zebranie danych wejściowych jest konieczne do skonkretyzowania badanego
procesu i do weryfikacji adekwatności przyjętego modelu abstrakcyjnego. Na
tym etapie powinien być opracowywany plan testów jakości. Z uwagi na
efektywność czasową etap te można wykonać równolegle w stosunku do 2-go
etapu.
Etap 4: Model symulacyjny.
Zaprogramowanie symulacji jest najważniejszym etapem, w którym następuje
zastosowanie narzędzi symulacyjnych, języków oraz procedur bibliotecznych
do realizacji programu modelu, jego wstępne uruchomienie i przetestowanie.
Na tym etapie wymagana jest przede wszystkim specjalistyczna wiedza
programisty.
Etap 5: Weryfikacja modelu.
Weryfikacja modelu pozwala na wychwycenie błędów projektowania, które
wymuszają konieczność powrotu do wcześniejszego etapu. Zasadniczą
poprawność modelu należy zweryfikować wg opracowanych na etapie 3 testów
jakości.
Etap 6: Badana symulacyjne.
Przeprowadzenie badań symulacyjnych jest zasadniczym celem projektu. Na
tym etapie należy zadbać o dobrą dokumentację, która będzie pomocna nie
Modelowanie Procesów Dyskretnych 70
tylko w realizacji praktycznej rzeczywistego układu ale także stanowiła istotny
element w realizacji przyszłych projektów.
Omówiony proces projektowania jest tylko pewnym szablonem i powinien być
skonkretyzowany w zależności od szczególnych okoliczności projektu.
Zasadniczym kryterium są tutaj nie tylko cele projektowania, ale także
wykorzystywane środki programistyczne. Zawężając problematykę do zakresu
symulacji komputerowej należy sprecyzować podstawowy cel projektu, a przede
wszystkim wykorzystywane narzędzia programistyczne.
Cel projektu może być:
C1: Ogólny - narzędzia, pakiet symulacyjny z ewentualnym uszczegółowieniem
na system dyskretny, ciągły i współbieżny.
C2: Szczegółowy  aplikacja dla ściśle sprecyzowanego zagadnienia lub ich
pewnej klasy wynikającej z założonego obszaru zastosowań branżowych.
W zakresie środków programistycznych można zastosować:
P1: Pakiet symulacyjny - gotowe dostępne na rynku narzędzie oparte często na
określonym języku symulacyjnym wyższego poziomu dopasowane do
bardziej lub mniej ogólnych zastosowań i o zróżnicowanej funkcjonalności.
P2. Język programowania poziomu niższego (proceduralny lub obiektowy)
wraz pakietem wspomagajÄ…cym projektowanie aplikacji i niekiedy
wyposażony w dodatkowe biblioteki pozwalające na realizacje wybranych
podproblemów symulacyjnych.
Biorąc pod uwagę w/w wymienione podziały najbardziej złożonym projektem
jest kombinacja (C1, P2) wymagajÄ…ca bardzo dobrego przygotowania teore-
tycznego w aspekcie teorii systemów, a także praktycznego w zakresie
wykorzystania narzędzi informatycznych. Decyzja o zastosowaniu tej kombinacji
ma też sens w przypadku przewidywanego wielokrotnego profesjonalnego
wykorzystania. Często zaczątkiem tego rozwiązania może być wieloletnia praktyka
w realizacji pozostałych kombinacji (C2, P1) i (C2, P2) oraz (C2, P2). Z uwagi na
szeroką dostępność pakietów, rozwiązanie (C2, P1) jest stosowane dosyć często,
chociaż wymaga ono niekiedy dość dużego wstępnego nakładu pracy.
Atrakcyjność tego rozwiązania polega też na mniejszym zaangażowaniu
przyszłych użytkowników przeprowadzających badania symulacyjne w zakresie
wiedzy IT.
Złożone i poważniejsze problemy powinny też być rozwiązywane na bardziej
szczegółowym poziomie weryfikacji, w którym symulacja jest pewnym istotnym
etapem, ale nie zasadniczym celem. Taki model przedstawia sieć działań na Rys
5.2, w którym dodatkowo należy zweryfikować prawidłowy wybór koncepcji
rozwiązania i określenie modelu analitycznego, a także ocenić wyniki badań
symulacyjnych, które potwierdzą decyzję o wdrożeniu realizacji układu fizycznego.
Modelowanie Procesów Dyskretnych 71
1 Problem / Cel
2. Model
Koncepcyjny
Analityczny
3.Weryfika- NO
Przerwanie
cja Modelu
OK
4. Program
Symulacyjny
5.Weryfikacja
NO
Programu
OK
6. Badania
Symulacyjne
7.Weryfikacja
NO
Badań
OK
8 Budowa. Wdrożenie
układu rzeczywistego
Symulacyjne
Rys 5.2 Plan etapów złozonego projektu z zastosoaniem
symulacji komputerowej
Modelowanie Procesów Dyskretnych 72
Często na podstawie wyników symulacji określa się kryteria jakości i w tym
przypadku symulacja może być elementem automatycznie działającego programu
optymalizacyjnego  wybierające najlepsze rozwiązania. Przykład tak
postawionego problemu ilustruje rys 5.6
5.3. Elementy modelu symulacyjnego
Zawężając rozważania do zakresu metod symulacji dyskretnej należy wyróżnić
wiele elementów modelu, ale do podstawowych należą: zdarzenia, działania i
procesy. Są one składnikami każdego schematu organizującego przebieg obliczeń
symulacyjnych, chociaż w szczegółowych opisach pakietów i algorytmów
symulacyjnych mogą być używane inne równoważne i dodatkowe określenia np:
obiekty i ich atrybuty, uwarunkowane zgłoszenia, transakcje, operacje, czynności,
stany itp.
Podane elementy wynikają także z podstawowej definicji symulacji procesu
dyskretnego podanej przez R. E. Shanon a i zmodyfikowanej przez J. B. Evans a:
Obiekty opisane atrybutami po spełnieniu określonych warunków kreują w
ramach działań sekwencje zdarzeń zmieniających stan systemu.
Rozpoczynając budowę modelu należy jednoznacznie opisać problem, który
będzie rozwiązany metodami symulacyjnymi. Istotna w opisie jest identyfikacja
zdarzeń i działań, które występując zmieniają stan obiektów. Mimo, że zdarzenie
jest  nieuchwytną migawką tzn. nie jest związane z upływem czasu to jednak jest
ono bardzo często od niego uzależnione, występując w określonej chwili
(wymuszone czasem zdarzenie synchroniczne) lub uwarunkowane wystÄ…pieniem
innych zdarzeń. Czasami wiele zdarzeń może wystąpić w tej samej chwili czasu,
ale w sekwencji przyczynowo-skutkowej ale także niestety w nieokreślonej. W tym
przypadku możemy wybrnąć z kłopotu przez ustalenie priorytetu, który może
jednak podnieść nam złożoność modelu. Z uwagi na istotną rolę zdarzeń
wymagamy w opisie słownym nawet pewnej nadmiarowości, w rodzaju  początek
czegoś i koniec  czegoś gdzie to  coś jest logicznie związane z określonym
działaniem.
Reasumując, zdarzenie w określonym chwilowym czasie wiąże się ze zmianą
stanu obiektów reprezentowanych w systemie poprzez zmianę ich atrybutów, ale
także poprzez wprowadzanie nowych i usuwanie istniejących obiektów.
Z kolei działanie, przyjmując odpowiednią szczegółowość modelu może się
składać z jednej lub wielu niepodzielnych operacji, które mogą wpływać na zmianę
stanu systemu. Czasami działania określane są też mianem czynności.
Ciąg uporządkowanych w czasie zdarzeń związanych z każdym pojedynczym
obiektem jest określony mianem procesu, który przebiega od chwili wejścia
obiektu do systemu aż do chwili jego wyjścia. W ten sposób też działania na
Modelowanie Procesów Dyskretnych 73
obiektach określone są poprzez chronologiczne zdarzenia wchodzące w skład
procesu. Zdarzenia mogą zachodzić w sposób:
- bezwarunkowy, który jest bezpośrednio zależny od czasu,
- warunkowy, który jest pośrednio zależny od czasu poprzez zmiany stanu
systemu, uzależnione z kolei od innych z czasem związanych zdarzeń.
Omówione pojęcia ilustruje Rys. 5.3, przedstawiający historię zdarzeń związaną z
powtarzajÄ…cym siÄ™ prostym procesem produkcyjnym.
Zdarzenie
Zdarzenie
Nadejscie
Koniec
e1
obróbki e1
Zdarzenie
Zdarzenie
Zdarzenie Koniec
Zdarzenie
Zdarzenie
Poczatek
Poczatek malowania e2
Nadejscie
Koniec
obróbki e2
obróbki e1
e2
malowanie e1
0
czas
Działanie Działanie
Obróbka e1 Malowanie e1
Działanie Działanie
Działanie
Malowanie e2
Obróbka e2
Czekanie e2
Proces
Produkcja e1
Proces
Produkcja e2
Rys 5.3. Ilustracja pojęć: zdarzenie, działanie i proces
Często używanymi pojęciami w opisywaniu procesów dyskretnych jest pojęcie
transakcji, które przyjęło się z angielskiego odpowiednika transaction spotykanego
w dokumentacji pakietów symulacyjnych. Transakcje opisują przemieszczanie się
obiektu oraz zmiany jego stanu.
Budując model symulacyjny systemu dyskretnego należy w nim wyróżnić
następujące elementy:
Modelowanie Procesów Dyskretnych 74
- zegar systemowy - rejestruje czas modelowanego systemu rzeczywistego,
- kalendarz systemowy - sterowany zegarem systemowym, to zbiór informacji
o zdarzeniach (typ zdarzeń i parametry zdarzeń),
- transakcje, obiekty mobilne pojawiajÄ…ce siÄ™ w systemie jako zdarzenia,
(zgłoszenia), które posiadają argumenty przemieszczają się, zmieniają zasoby
systemu (obiekty stacjonarne) i tym samym mają wpływ na zmianę stanu
systemu,
- zasoby mogą być pojedyncze lub złożone, w odróżnieniu do pozostałych
obiektów są obiektami statycznymi systemu, określane są jako jednokanałowe
i wielokanałowe stanowiska obsługi.
5.4 Metody symulacji dyskretnej
Omawiając w sposób bardziej ścisły metody symulacji dyskretnej należy także
omówić szczególne przypadki symulacji, dla których jest ona przeprowadzana w
warunkach zależnych od zewnętrznych sygnałów (czynników). Można zapewnić
możliwość interakcji użytkownika z programem symulacyjnym w trakcie
prowadzenia obliczeń w tym śledzenia realizacji symulacji z otrzymywaniem
bieżących wyników oraz wprowadzania zmian do modelu w trakcie działania
programu symulacyjnego. Istotna jest możliwość zawieszenia wykonywanej
symulacji np: w celu przejęcia sterowania procesem, zmiany parametrów a nawet
struktury modelu. W tak prowadzonej symulacji często jednak trzeba zapewnić
odpowiednią szybkość przeprowadzanych obliczeń dostosowaną do operatora,
która nie może być zbyt duża ze względu na ograniczoną szybkość jego reakcji
oraz także zbyt małą biorąc pod uwagę sensowny czas symulacji. Bardzo ważne
jest rozróżnienie pojęcia czasu symulowanego i czasu rzeczywistego obliczeń
symulacyjnych. W przypadku, gdy te czasy pokrywają się można przyjąć, że mamy
do czynienia z tzw. symulacjÄ… w czasie rzeczywistym w przeciwnym przypadku
zapewniając stały współczynnik proporcjonalności łatwo określamy symulację z
uwzględnieniem skali czasu.
BiorÄ…c pod uwagÄ™ rzeczywiste uwarunkowania czasowe i dodatkowo
połączenie ze wspomnianą wcześniej symulacją interaktywną uzyskuje się
symulator o specyficznych zastosowaniach uwzględniający także procesy ciągłe np.
w celach treningowych lub edukacyjnych. Systemy symulacyjne o takim
charakterze są częściowo omówione w rozdz. 5.5.
W kolejnych rozdziałach omówione będą dwie podstawowe metody symulacji
dyskretnej ze szczególnym uwzględnieniem zastosowanej algorytmizacji.
Modelowanie Procesów Dyskretnych 75
5.4.1. Metoda planowania zdarzeń.
Metoda planowania zdarzeń (event oriented discrete simulation) oparta jest na
kalendarzu zdarzeń, specjalnej struktury będącej zbiorem opisanych zdarzeń.
Zastosowany kalendarz zdarzeń definiuje kolejność zdarzeń bezwarunkowych
wraz ze szczegółową specyfikacją czynności, które powinny być zrealizowane po
tym zdarzeniu. Jest to zbiór zawierający dane o typie, atrybutach i czasie
wystÄ…pienia zdarzenia zorganizowany w postaci listy lub kopca. Aktualny czas
wyznacza zawsze pierwsze zdarzenie na liście a uporządkowanie (planowanie)
ustala się na podstawie atrybutów czasów pozostałych zdarzeń. W szczególności
należy:
- zapewnić ogólne sterowanie przebiegiem symulacji w oparciu o dynamiczny
kalendarz zdarzeń,
- zapamiętać w kalendarza tylko zdarzenia bezpośrednio zależne od czasu
(bezwarunkowe),
- zaplanować kolejne zdarzenia bezwarunkowe dla działań, które zostały
określone dla wcześniejszego zdarzenia,
- wprowadzić działania związane z zaistnieniem zdarzenia warunkowego do
czynności dotyczących zdarzeń bezwarunkowych, które będą rozpatrywane
tylko przy okazji działań bezwarunkowych.
Wprowadzanie zdarzeń w systemie ma charakter planowania czasów oraz typów i
parametrów zdarzeń bezwarunkowych, które będą zachodzić w systemie.
WystÄ…pienie zdarzenia bezwarunkowego w symulacji dyskretnej wg metody
planowania zdarzeń, pociąga za sobą wykonanie sekwencji czynności związanych
z wystąpieniem tego zdarzenia, w tym dotyczących zdarzeń warunkowych.
Przykładowo po zakończeniu obróbki należy zwolnić obrabiarkę, sprawdzić
kolejkę następnych zgłoszonych części do obróbki, a następnie zgodnie z
regulaminem kolejki wprowadzić do obróbki kolejną część. Charakterystyczne w
tej metodzie jest planowanie sposobu generowania następstwa zdarzeń
bezwarunkowych.
Rysunek 5.4 przedstawia szkic algorytmu symulacyjnego omawianej metody
planowania zdarzeń. Algorytm rozpoczyna się ustaleniem stanu początkowego i
parametrami modelu symulacyjnego a także przyjęciem wartości czasu
symulacyjnego, odpowiadającej wartości początkowej czasu rozpoczęcia
pierwszego zdarzenia występującego w kalendarzu. Kolejno należy wykonać
działania związane z obsługą tego zdarzenia. Jest to najbardziej złożona część
algorytmu, ponieważ wśród wykonywanych czynności może zachodzić zdarzenie
bezwarunkowe, czynności zdarzeń warunkowych oraz zaplanowanie poprzez wpis
do kalendarza następnych zdarzeń. W kolejnym etapie należy zaprogramować
usunięcie zrealizowanego zadania z kalendarza i zaktualizować czas symulacji
Modelowanie Procesów Dyskretnych 76
zgodnie z wystąpieniem następnego zdarzenia bezwarunkowego. Omówione etapy
algorytmu będą cyklicznie powtórzone z badaniem warunku zakończenia symulacji.
Warunki
poczÄ…tkowe
Aktualizacja
czasu
T
Czy Koniec ?
N
Działanie 1-go
Zdarzenia
Usunięcie 1-go
Zdarzenia
tP = tN
Rys. 5.4 Algorytm planowania zdarzeń.
Analizę szczegółowa algorytmu przeprowadzimy na prostym modelu obróbki
na wielu identycznych obrabiarkach. Założymy, że bezwarunkowo następuje
pojawienie się części do obróbki oraz biorąc pod uwagę zadany czas obróbki także
bezwarunkowe jest zdarzenie dotyczące zakończenia obróbki. Natomiast zdarzenie
dotyczące rozpoczęcia obróbki, jest zdarzeniem warunkowym, ponieważ ta
Modelowanie Procesów Dyskretnych 77
czynność zależy od istnienia, co najmniej jednej wolnej obrabiarki i części do
obróbki.
Zgodnie z ogólnym schematem symulacyjnym Rys 5.4 w pętli głównej istotne jest
określenie opisujące jedynie procedurę związaną z obsługą pierwszego zadania na
liście zadań czasowych bezwarunkowych natomiast złożoność symulacji kryje się
w wykonaniu procedur opisujących realizację tych zadań i ich planowaniu z
uwzględnieniem zadań warunkowych.
Procedury te dotyczÄ…:
- nadejścia części do obróbki: zaplanowanie przyjęcia następnej części,
sprawdzenie dostępności obrabiarki i odpowiednio zajęcie jej i zaplanowanie
zakończenia obróbki lub w przeciwnym wypadku wstawienie na końcu kolejki.
- zakończenia obróbki: jeżeli jest w kolejce część do obróbki to należy ją usunąć z
kolejki i zaplanować zakończenie jej obróbki a w przeciwnym wypadku
obrabiarka powinna być zwolniona.
Reasumując metoda opiera się na szeregowaniu zdarzeń czasowych i realizacji
zdarzeń warunkowych w ramach procedur czasowych. W złożonych problemach w
porządkowaniu zdarzeń oprócz omówionego typowego wstawiania nowych zadań
oraz ich usuwania mogą również zachodzić zdarzenia związane z odwołaniem
zdarzeń lub ich realokacją związaną ze zmianą czasu ich wystąpienia.
Ponadto powiększeniu może ulec także ilością zdarzeń i wtedy istotne może być
zastosowanie odpowiednich struktur danych i algorytmów które zapewnią
optymalna złożoność obliczeniową w realizacji opisanych operacji.
5.4.2. Metoda przeglądania działań.
Algorytm metody przeglądu i wyboru działań (activity scanning approach)
polega na wyborze działań, które z nich z chwilą zajścia określonego zdarzenia
powinny być rozpoczęte, a które zakończone. Wyboru dokonuje się przeglądając
wszystkie zadania zależne od czasu jak i od stanu systemu i wybór działań polega
na rozpatrywaniu wszystkich działań systemu celem określenia, które z nich z
chwilą zajścia określonego zdarzenia powinny być rozpoczęte, a które zakończone.
Atrybuty czasowe obiektów mogą określać chwilę symulowanego czasu (charakter
bezwzględny) lub czas pozostający do pojawienia się zdarzenia (charakter
względny). Wynikają stąd dwa przypadki algorytmu aktualizacji czasu, które
przebiegają następująco:
I. Czas względny
1. wybieranie najmniejszego dodatniego atrybutu czasu tmin
2. zmniejszenie wszystkich atrybutów czasy o tmin
3. dodanie tmin do czasu systemowego.
Modelowanie Procesów Dyskretnych 78
II Czas bezwzględny
1. wybieranie najmniejszego dodatniego atrybutu czasu tmin większego od
czasu systemowego,
2. przyjęcie tmin jako czas systemowy
Oznacza to:
- wprowadzenie do kalendarza zdarzeń bezwarunkowych, bezpośrednio
zależnych od czasu oraz zdarzeń warunkowych,
- rozpatrywanie czynności związanych ze zdarzeniami warunkowymi
niezależnie od wystąpienia zdarzeń bezwarunkowych,
- sterowanie przebiegiem symulacji w oparciu o listę warunków, jakie
powinny być spełnione by zaszło w systemie określone zdarzenie.
Wprowadzanie zdarzeń w systemie odbywa się poprzez cykliczne sprawdzanie
listy warunków, które powinny być spełniane przy zachodzeniu zdarzeń.
Algorytm przebiegu symulacji modelu zbudowanego w oparciu o metodÄ™
przeglądu i wyboru działań przedstawia rysunek 5.5. Po ustaleniu warunków
początkowych systemu (stan początkowy systemu, parametry systemu) należy
wykonać badanie listy warunków wystąpienia zdarzeń dla chwili czasu systemu, w
której zajdzie najbliższe zdarzenie (tmin). Jeżeli dla określonego zdarzenia spełnione
są warunki jego zajścia, to oznacza to, że doszło do zajścia tego zdarzenia (zmiany
stanu systemu) i należy wtedy przesunąć czas systemu do chwili tmin wystąpienia
tego zdarzenia i wykonać procedurę czynności związanych z tym zdarzeniem
(obsługi zdarzenia). Powyższe czynności ulegają powtórzeniu z badaniem warunku
zakończenia obliczeń symulacyjnych.
Rozpatrzmy przykładową symulację wielokanałowego, otwartego systemu
obsługi. Konstrukcja modelu symulacyjnego opisującego ten system przy
zastosowaniu metody przeglądu i wyboru działań oparta jest na analizie warunków
zajścia wszystkich zdarzeń systemu, bezwarunkowych i warunkowych. Algorytm
symulacji funkcjonowania tego systemu obsługi jest następujący:
1. Ustalenie warunków początkowych.
2. Sprawdzenie, czy spełniony jest jakikolwiek warunek końca symulacji i
gdy jest spełniony, to zakończenie obliczeń symulacyjnych, w przeciwnym
przypadku przejdz do kroku 3.
3. Skasowanie flagi zmiany stanu (będzie ustawiana w chwili zmiany stanu)
4. Sprawdzenie dla wszystkich zdarzeń warunków ich zajścia i jeżeli warunek
ten jest spełniony, to wykonanie czynności obsługi tego zdarzenia i
ustawienie flagi zmiany stanu.
5. Jeżeli flaga zmiany stanu jest ustawiona to powrót do pkt 3
6. Zwiększenie czasu systemowego i przejście do kroku 2.
Modelowanie Procesów Dyskretnych 79
Inny przypadek zastosowania algorytmu przeglÄ…du przedstawiono na Rys 5.6,.
Jest to specjalistyczny algorytm programu realizujÄ…cy symulacjÄ™ sieci Petriego
wraz optymalizacją i z generacją wykresów Gantta Rys 5.7.
Warunki
poczÄ…tkowe
aktualizacja
czasu
T
Czy Koniec ?
N
skasuj flage zmiany stanu
Obsługa zdarzeń
Warunki zajścia zdarzeń
z ustawieniem flagi
zmianu stanu
T
flaga zmiany ?
Rys. 5.5. Algorytm przebiegu symulacji dyskretnej
w metodzie przeglądu działań.
Modelowanie Procesów Dyskretnych 80
Rys 5.6 Algorytm symulatora sieci Petriego
Modelowanie Procesów Dyskretnych 81
Rys 5.7 Przykładowe wyniki z symulatora sieci Petriego
Opis podstawowych procedur algorytmu z rys 5.6
- Input_Net_Data - dane wejściowe struktura i stałe parametry sieci,
- Init_Place_Vec - dane inicjujące wartości znakowania początkowego,
- Init_Simul_Data - warunki poczÄ…tkowe symulacji (np globalny czas),
- End_Simulation - warunki zakończenia symulacji (odtwarzanie stanów),
- Fire_Off - zakończenie wzbudzenia tranzycji,
- Mark_Move - określenie nowego znakowania osiągalnego,
- Freon - uwarunkowane wzbudzenie tranzycji,
- No_Time_Fire - zmiana stanu dla tranzycji o zerowym czasie wzbudzenia,
- Tracing_Output - zapamiętanie bieżącego stanu z ewentualną wizualizacją,
- Next_Global_Time - obliczenie następnej chwili zmiany znakowania,
- Act_Local_Times - obliczenie i aktualizacja lokalnych czasów (zegarów)
- Histogram - histogramowa analiza wyników symulacji,
- Find_Cycle - określenie czasu cyklu pracy systemu,
- Simul_Reports - obliczenie i zapamiętanie wskazników jakości,
- EndSearch - warunki zakończenia przeglądu,
- Statistic_Acc - obróbka statystyczna dopuszczalnych rozwiązań
Modelowanie Procesów Dyskretnych 82
5.4.3. PrzeglÄ…d innych metod.
W rozdziale zostały przedstawione jedynie wybrane podstawowe algorytmy
symulacji dyskretnej. Wraz z rozwojem zarówno ogólnych pakietów symulacyj-
nych a także specjalistycznych pojawiają się także nowe metody symulacji.
Budowane są także biblioteki procedur, które można wykorzystać w modelowaniu
wykorzystując ogólno dostępne języki programowania. Bardzo często nowe
metody powstajÄ… na bazie innych metod i sÄ… one oparte na opisanych metodach
łącząc zalety metody planowania i przeglądu. Do takich metod należy metoda ABC
łącząca omówione metody. Z metody planowania przyjęty jest czas pierwszego
zdarzenia (Advance of simulation time), wybór jego obsługi (Bounded event) i
usuniecie z kolejki. Z kolei metoda przeglądu wprowadza uwzględnienie zdarzeń
warunkowych (Conditional events) ich wybór i wykonanie. włączając w algorytm
kontrolę flagi zmiany stanu. Powstają także pewne modyfikacje gdzie przykładem
może być metoda przeglądu i wyboru działań, która z kolei w połączeniu z metodą
planowania określana jest jako metoda interakcji procesów (process interaction
approach). W tych rozwiÄ…zaniach stosuje siÄ™ metody aktywowania, zawieszania i
opózniania procesów.
W efektywnym projektowaniu programu w szczególności dla złożonych
problemów, konieczny jest podział funkcjonalny i strukturalny. Taki podział
pozwala też na implementacje gotowych do wykorzystania uniwersalnych bibliotek
procedur W związku z tym przedstawiona zostanie koncepcja tzw. podejścia
trójwarstwowego [Fishman, George S  Concepts and methods in discrete event
digital simulation ] Zakłada ona występowanie trzech warstw
- poziom koordynatora (Executive), który przejmuje rolę zarządzającą przebiegi
symulacji (aktualizacja czasu sterowanie wykonywaniem procedur i
zakończeniem symulacji.
- poziom procedur (Operations) zasadnicze funkcje programu, które mogą być
zgrupowane jako moduły i przyporządkowane do danych obiektów, mogą też
być różnymi blokami procedur, które są wykonane przez obiekty.
- poziom pomocniczy (Detailed routines) będący zbiorem procedur wspomagają-
cych warstwÄ™ procedur (np. generatory liczb losowych, generatory statystyk i
ich wykresów, procedury kontroli błędów itp.)
Wyróżnione są cztery typy koordynatorów:
- Zdarzeniowy (Event)
- Działaniowy (Activity)
- Procesowy (Process)
- Podejście trójfazowe (The three-phase approach)
Szczegółowy opis można znalezć w literaturze [Micheal Pidd "Computer
Simulation in Management Science] i na stronach internetowych.
Modelowanie Procesów Dyskretnych 83
W opisach bardzo często zachodzi duże podobieństwo, które trudno ściśle
sprecyzować w przypadku ich ogólnego charakteru. Stąd często nie ma różnicy de
facto a wynika ona jedynie z zastosowanego nazewnictwa. W zwiÄ…zku z
powstaniem nowych języków lub raczej rozbudowy ich dotychczasowych wersji
np. przez wprowadzenie elementów programowania obiektowego powstają nowe
metody symulacyjne, które bazując na podstawowych algorytmach wykorzystują
elementy programowania obiektowego. W wyniku takich działań powstaje szereg
bibliotek dla różnych języków np. dla języka Java.
Wśród programistów zajmujących się budowaniem modeli symulacyjnych
pewną popularność uzyskał oparty na Javie obiektowy Framework Desmo-J
http://desmoj.sourceforge.net/home.html
http://asiwww.informatik.unihamburg.de/themen/sim/forschung/Simulation/Desmo-J/
Skrót  DESMO-J" pochodzi od słów "Discrete Event Simulation and MOdelling in
Java" i sama już nazwa wskazuje na dwie istotne właściwości:
Desmo-J wspiera paradygmat symulacji dyskretnych zdarzeń spełniając
wszystkie wymagania symulacji zdarzeń występujących w dyskretnych
punktach czasu.
Desmo-J jest zaimplementowana w powszechnie uzywanym przez programistów
języku Java.
Framework DESMO-J posiada wiele cech, które znacznie ułatwiają projektowanie
symulacji w postaci:
- zestawu komponentów takich jak: kolejki, generatory liczb pseudolosowych i
kolekcje danych określające zachowanie modeli, bytów, wydarzeń czy
procesów i abstrakcyjne klasy, które zmuszają programistę do projektowania
zgodnie z przyjętymi zasadami.
- infrastrukturę symulacji tzn.: środowisko planowania, listę wydarzeń i zegar
czasu symulacji
- automatyczne generatory raportów z przebiegu symulacji na podstawie
informacji pobieranej z każdego symulowanego obiektu
DESMO-J jest zbudowana z wielu pakietów:
Modelowanie Procesów Dyskretnych 84
zródłó http://desmoj.sourceforge.net/basic_features.html
" desmoj.core.simulator - zawiera klasy rdzenia, wykorzystywane
do zbudowania modelu i rozpoczęcia eksperymentu
" desmoj.core.dist  jest zródłem metod generujących liczby
pseudolosowe
" desmoj.core.exception zawiera klasy dla wewnętrznego
obsługiwania wyjątków i może bezpiecznie zostać zignorowany przez
programistów.
" desmoj.core.report - automatyczne generowanie raportów w wielu
formatach, najczęściej w formacie XML.
" desmoj.core.statistic  wspiera opracowanie wyników
statycznych generowanych po zakończonej symulacji  obejmują funkcje:
max, min, średnia, odchylenie standardowe, histogram, suma.
" desmoj.core.advancedModellingFeatures  posiada
mechanizmy zapewniajÄ…ce zaawansowanÄ… na poziomie abstrakcyjnym
synchronizacjÄ™ przebiegu symulacji.
" desmoj.extension. zawiera składniki,ułatwiające budowanie
modelu w domenach aplikacji np logistyka i produkcja.
" desmoj.extension experimentation - podstawowy graficzny
interfejs użytkownika ułatwiający prowadzenie eksperymentu i prezentacje
wyników w technologich 2d i 3d
Modelowanie Procesów Dyskretnych 85
5.5. Sterowanie i monitoring procesów dyskretno-ciągłych
Systemy monitoringu i sterowanie procesami technologicznymi z obsługą
przerwań czasowych i sprzętowych z reguły zapewniają:
1. Odbiór danych sygnałów ciągłych i dyskretnych: analogowe, impulsowe,
binarne i stany obiektów.
2. Wysyłanie danych lokalnych i retransmisja odebranych do stacji nadrzędnych.
3. Rejestracja danych z obiektów technologicznych w tablicach systemowych.
4. Wizualizacja znakowa pomiarów i stanu obiektów na ekranach synoptycznych
a także z uwzględnieniem animacji graficznej stanu i pomiarów dla
wybranych procesów.
5. Rejestrowanie i archiwizacja stanów awaryjnych.
6. Sygnalizacja wizualna i dzwiękowa zdarzeń i sytuacji awaryjnych.
7. Obsługa na ekranie zestawu o zaistniałych zdarzeniach i sytuacjach
awaryjnych i z podaniem aktualnego ich statusu.
8. Raportowanie danych w zadanym zakresie czasu i poziomie dyskretyzacji i
wyników zagregowanych w określonych przedziałach czasowych.
9. Monitorowanie stanu transmisji w sieciowej strukturze sterowników.
10. Wysyłanie i odbiór poczty komputerowej.
11. Przygotowanie danych (kompresja) dla tablicy synoptycznej).
12. Zestawienie komend i poleceń sterujących, pomoc.
13. Obsługa menu systemowego (GUI) użytkownika.
14. Obsługa konserwatorska i testująca stany pracy sytemu.
Zadania i wyposażenie na poziomach hierarchicznego rozproszonego systemu
(Rys.5.8)
1. Poziom Centralny(CentrCtr) - konsola operatorska, synoptyka graficzna,
raporty, archiwizacja, badanie trendów, transmisja globalna, retransmisja.
2. Regionalny (RegCtr) - konsola operatorska, ekran tryb graficzny, agregacja
danych, raporty, archiwizacja, transmisja, obsługa tablicy synoptycznej.
3. Lokalny (LocCtr) - konsola operatorska, ekran tekstowo-semigraficzny,
transmisja globalna, agregacja, skalowanie, obsługa komend sterowania
zdalnego.
4. Obiektowy (ObjCtr) - brak stałej konsoli, obsługa mikroprocesorowa: odczyt z
układów AKP, obsługa sterownia, algorytmy regulacji bezpośredniej,
transmisja lokalna.
5. Obiekty (Obj n) Automatyki Kontrolno Pomiarowej (AKP): układy pomiarowe,
czujniki, przetworniki A/C i C/A, liczniki, rejestry, inne układy i bramki
logiczne, specjalizowane układy mikroprocesorowe.
Modelowanie Procesów Dyskretnych 86
6. Obiekty Procesu Technologicznego - (urzÄ…dzenia i media technologiczne)
napędy maszyn roboczych, materiały, surowce, układy: transportowe, zasilające,
kontrolujÄ…ce i sterujÄ…ce.
CentrCtr
Adr 000
retransmisja
RegCtr
ObjCtr
RegCtr
Adr 200
Adr TSN
Adr 100
TSN
TSN
LocCtr
LocCtr
LocCtr
Adr 210
Adr 110
Adr 120
tablica
synoptyczn
a
Obj D ObjCtrAd
ObjCtr
Obj E
Obj C
r 211
Adr 111
Obj F
Obj A
Obj B
obiekty poza sytemowe,
tylko wizualizacja brak
pomiarów i sterowania.
Rys. 5.8. Wyposażenie poziomów hierarchicznego systemu
Modelowanie Procesów Dyskretnych 87
Realizacja tak złożonych zadań wymaga ścisłej klasyfikacji wszystkich
projektowanych funkcji i zgrupowania ich w funkcjonalnych modułach. Na
rysunku (Rys 5.9) przedstawiono pewien przykładowy ogólny podział na takie
moduły. Z założonej funkcjonalności wynika także, opracowanie odpowiednich
struktur danych i związków zachodzących między nimi, które zapewnią efektywny
do nich dostęp i ich obsługę. Rozwiązanie tego problemu będzie przedmiotem
ćwiczeń.
obiekty ekran
monitor
synopt
ekr110??
Keybord
Inicjalizacja
Obsługa
Konfiguracja
Ekranów
Obsł. Konsoli
conf110
display
console
Prog. Główny Obsługa
Obsł. przerw.
stzuw110
Transmisji
czasowych
obstra
timedate
Dane Systemu
Archiwizacja
Raporty
Transmisja
archiv
reports
transm
Printer
Disk
Sieć
obsługa
strumienie wywoływanie
przerwań
danych
funkcji
Rys. 5.9. Schemat związków międzymodułowych
Modelowanie Procesów Dyskretnych 88
5.5.2. Przykłady aplikacji monitoringu procesów technologicznych.
Ćwiczenia
Przedstawione w pkt. 5.5.1 założenia doczekały się praktycznej realizacji, w
postaci dwóch aplikacji. Ze względu na ich historyczny charakter (lata 1989-92 i
1994-97) posiadają one dość rygorystyczne ograniczenia w zakresie interakcji z
użytkownikiem wynikające z limitowanego w tamtych czasach dostępu do
wielkości i jakości sprzętu a także oprogramowania. Warto jednak poznać te
rozwiązania ponieważ one dalej obowiązują tylko, że są ukryte w złożonych
procedurach i dostępne na najniższym poziomie w profesjonalnych rozwiązaniach.
Uwaga: path/ oznacza indywidualną ścieżkę do przekopiowanych z serwera
materiałów do ćwiczeń
A. Uruchomienie aplikacji RPW (Rys 5.10)
1. Zmień rozdzielczość ekranu na 800x600 i włącz autoukrywanie paska zadań w
menu Start
2. W katalogu path/cw5/RPW uruchomić s.bat
3. Przejść na ekrany ZUW, KP3, Nastawn, wykonać sterowanie wybraną zasuwą.
4. Prześledzić opis stanu obiektów i pomiarów na ekranie Legenda, wysłać pocztę
i zakończyć program
Rys. 5.10. Ekran główny RPW
Modelowanie Procesów Dyskretnych 89
Rys. 5.11. Ekran KP4  sterowanie zasuwÄ…
Rys. 5.12. Ekran ZUW
Modelowanie Procesów Dyskretnych 90
Rys. 5.13. Ekran Zbiorniki
B. Aplikacji konsolowa na platformie systemu Win XP  Rys. 5.13
1. W katalogu path/cw5/zuw/ uruchomić s.bat.
2. Przejść klawiszami strzałek na ekran Zbiorniki RII )
3. Włączyć CapsLock (symulacja awarii transmisji) i po pewnym czasie
wyÅ‚Ä…czyć (ok ½ minuty) zaobserwować i zinterpretować efekt migotania
danych na ekranach.
4. Przejść na ekran Awarie (Rys 5.14)  wykonać strzałkami przewijanie ekranu.
5. Podjąć próbę odbioru poczty (menu główne)  obsłużyć komunikat.
6. Napisać i wysłać pocztę ( menu główne  nadrzędne)
Rys 1.2
Rys. 5.14. Ekran awarii
Modelowanie Procesów Dyskretnych 91
C. Opracowanie algorytmu programu testujÄ…cego przerwanie i projektu
podstawowej obsługi.
Na tym etapie zostanie uruchomiony i przetestowany przykład programu
będący niewielkim ale podstawowym fragmentem z zaprezentowanych w punktach
A i B złożonych funkcjonalnie aplikacji. Fragment ten dotyczy między innymi
dyskretnego synchronicznego w czasie procesu wyświetlania danych pomiarowych
na ekranie. Należy podkreślić że większość zdarzeń w omawianych systemach jest
czasowo uwarunkowana (np: animacje, dzwięki, synchroniczna transmisja,
timeout y określające czasy reakcji użytkownika na wybrane zdarzenia itp.).
Ponadto istotnym założeniem jest bezpośrednie wykorzystanie obsługi przerwania
czasowego sterowanego impulsami zegara czasu rzeczywistego pozwalajÄ…ce na
bardzo szybką i niezawodną obsługę zdarzeń. Szybkość i niezawodność obsługi
jest często bardzo istotnym warunkiem realizacji sterowania procesami
szybkozmiennymi i ważnymi z punktu widzenia bezpiecznego ich przebiegu.
Zadanie dotyczy uruchomienia aplikacji konsolowej.
1. W katalogu path/cw6/ uruchomic ztint1.exe. (zad. time interrupt)
2. Zaobserwować na ekranie (Rys 5.15) zmiany czasu, animację mijających
sekund oraz wydruk wartości z 1 sekundowym time'outem.
3. W katalogu path/cw6/ uruchomić ztint2.exe.
4. Wykonać polecenia z klawiatury: wpisz tekst i steruj strzałkami.
5. Uruchomić jeszcze np 2 razy aplikacje ztint1.exe i zaobserwować
równoległą realizację wszystkich procesów obliczeniowych (obserwowana
współbieżność była prawidłowo zrealizowana dopiero od wersji. Windows
NT )
6. Wybrać wersję kompilatora TC2 lub MC4, wchodząc do odpowiedniego
katalogu i zapoznać się z funkcjami obsługi przerwania czasowego testując
wskazany program zródłowy:. zmodyfikować wydruk, wygenerować sygnał
dzwiękowy.
a) wer. TC2. plik path/cw6/tc2/ctintc.c :zapoznać się z funkcjami
w programie oraz edytorem tc, kompilacjÄ… i wykonaniem Ctrl+F9
b) wer. MC4 plik path/cw6/ctint.c: zapoznać się z funkcjami w
programie z edytorem - mec , kompilacjÄ… - ct, linkowaniem - lkt i
wykonaniem ctint
7. Opracować algorytm obsługi wydruku i następnie pozostałych operacji
odwołując się do obsługi przerwań z zegara i z klawiatury i wzorując się na
działaniu ztint1.exe, Na podstawie opracowanego algorytmu napisać
Modelowanie Procesów Dyskretnych 92
program zad5.c. Uwaga w zadaniu wykorzystać wstępnie przygotowany
program z procedurami obsługi przerwań plik ctintc.c
8. Opracować własny projekt programu modelującego układ rzeczywisty.
Wzorując się na działaniu ztint2.exe, rozszerzyć obsługę zdarzeń i
procesów dyskretnych wzbogacając program o własne pomysły. Opracować i
załączyć do projektu strukturę danych, przeprowadzić symulację testującą
Rys. 5.15. Ekrany dla programów zad1mtime i zad2mtime
Modelowanie Procesów Dyskretnych 93
program żródłowy ctintc.c
/**************************************************************************
* *
* PROGRAM CTINTC.C *
* *
* Test procedur zarzadzajacych obsluga przerwania czasowego *
* *
**************************************************************************/
#define MAIN
#include /* int getch(void); int kbhit(void); */
#include /* sprintf(tekst,wzorzec, par,...), puts(tekst),
int cprintf(*char),int putch(int),int ungetch(int);*/
#include /* getvect(INT), setvect(INT, Funkcja ) */
#include /* time_t czas; time( &czas );
tt = *localtime( &czas ); struct tm tt; */
#define INT 0x1C /* numer dla przerwania czasowego 18 razy na sek */
/* Prototypy funkcji wlasnych modulu */
void Intr_Init( void );
void interrupt far Intr_Obsluga( void );
void Intr_Close( void );
static void (interrupt far * intr_old )();
/* poprzednie przerwanie */
/*-----------------------------------------------------------------------
| PROCEDURA Intr_Init
| CEL: Procedura inicjalizuje obsługę - przerwania czasowego kod 1C.
| PARAMETRY: brak.
| ODWOLANIA:
| -----------------------------------------------------------------------*/
void Intr_Init( void ) {
intr_old = getvect( INT ); /*zapamietaj aktualna obsługe*/
setvect( INT, Intr_Obsluga); /* ustaw nową obsługę */
}
/*--------------------------------------------------------------------------
| PROCEDURA Intr_Close
| CEL: Procedura odtwarza obsługę przerwania czasowego
| PARAMETRY: brak.
| ODWOLANIA:
-------------------------------------------------------------------------*/
void Intr_Close( void ) {
setvect(INT, intr_old); /*odtworzenie obsługi przerwania*/
}
/*--------------------------------------------------------------------------
| PROCEDURA Intr_Obsluga( void ){
| CEL: Procedura obsługiwana przez przerwanie czasowe
| PARAMETRY: brak.
| ODWOLANIA:
-------------------------------------------------------------------------*/
Modelowanie Procesów Dyskretnych 94
void interrupt far Intr_Obsluga( void ){
/* ????????????
tutaj napisz kod funkcji zgodny z
opracowanym na ćwiczeniach algorytmem symulacji . */
};
/*--------------------------------------------------------------------------
| PROCEDURA MAIN
| CEL: Koordynuje i obsługuje podstawowe zadania systemu ...
| PARAMETRY: brak.
| ODWOLANIA:
-------------------------------------------------------------------------*/
int main()
{ // PROGRAM testujacy
int i=15000;
char buf1[80];
clrscr(); // MS4 system("cls");
Intr_Init();
gotoxy(40,10); // MS4 _settextposition(10,40);
sprintf(buf1,"%10d",i);
cprintf(buf1); // MS4 _outtext(buf1)
Intr_Close();
gotoxy(25,20);
getch();
return 0;
}
Modelowanie Procesów Dyskretnych 95
5.6 Systemy SCADA/HMI
Systemy pozyskiwania danych procesowych z graficznÄ… wizualizacjÄ…
SCADA/HMI (Supervisory Control And Data Acquisition/Human Machine
Interface).
I. Uruchomienie przykładowego projektu (Rys 5.16).
1. Wykonać kopię katalogu cw7 w
"C:\Documents and Settings\swoj_login
2. Otworzyć okno poleceń (konsolę) w katalogu
"C:\Documents and Settings\swoj_login\cw7
3. Uruchomić log swoj_login (mapowanie katalogu na dysk K:)
4. Uruchomić programy do komunikacji DDE, np Excel Zeszyt1.xls
Histdata, tymczasowo zatrzymać aktualizację łącza, ustawić dla
uwikłanych formuł:
Narzędzia/Opcje/Przeliczanie  Iteracje = Tak ,
Maksymalna liczba iteracji = 1
5. Uruchomić w trybie wykonywalnym (Viewer - runtime) intouch
wskazać K:\newapp\example i kliknąć prawą ikonę,
zignorować brak klucza i potwierdzić wybór okno2
dokończyć aktualizację łącza DDE np.Excel Zeszyt1.xls
6. Uruchomić w trybie projektowania okien (Window Maker)
intouch wybrać projekt K:\newapp\example\
i kliknąć lewą ikonę) a następnie zignorować brak klucza i potwierdzić
wybór okno2
II. Wizualizacja i sterowanie w przykładowym modelu układu.
7. Obsłużyć kolejno:
- przycisk lub przełącznik lub tekst [Wyłączony/Załączony] lub Ctrl+Shift+S,
- zaobserwować linię czasu na wykresie,
- zmienić Ciśnienie i Force
- zaobserwować pojawianie się i odwoływanie alarmów i oraz zmiany na
wykresie,
- nacisnąć przycisk, moto 10[On/Off],
- zaobserwować wyniki na przyrządzie wskazówkowym oraz w opisach
tekstowych nacisnąć przycisk Otwórz Okno o1,
- zmodyfikować okres trendu historycznego zmienić parametr i zamknąć okno
8. Powrót na ekran projektowania i przegląd elementów modelu układu.
Modelowanie Procesów Dyskretnych 96
9. Słownik zmiennych systemowych (ze znakiem $) oraz użytkownika menu
Special/ Tagname Dictionary/ Select.
10. Skrypty i właściwości wyzwalające zdarzenia wg pkt 7 ( Double Click)
- ogólne aplikacji - menu Special/ Scripts/ Application Scripts/ On Startup
- obiektów  np podwójne kliknięcie przycisku moto / Action / On Key Down
- tekst Zal/Wył., obsługa okna Sterowanie Message i przycisków On /Off i
klawisza Ctrl+Shift+S
- tekst Alarm, obsługa kolorów i migotania Sterowanie Message
- Force, realizacja Next Links dla opcji
User Inputs = Analog Text Color = Analog zaobserwować zmianę kolorów
11. Realizacja pozostałych elementów - kliknij na wykres oraz wybrane obiekty
- zinterpretuj parametry modelu układu
12. Realizacja połączenia DDE np. Intouch => Excel
Zeszyt1.A4 = VIEW|TAGNAME ! t0
Zeszyt1.A1 = VIEW | TAGNAME ! Cisnienie
Zeszyt1.B1= 25 los()=> Zakłocenie Cisnienia(ZmDDE)
5.16a Przykładowe okno aplikacji
Modelowanie Procesów Dyskretnych 97
5.16b Przykładowa konfiguracja kanału DDE obiekt
5.16 c Przykładowa konfiguracja kanału DDE system
Modelowanie Procesów Dyskretnych 98
5.16 d. Przykładowa konfiguracja kanału DDE system cd
Realizacja prostego projektu - na dowolnie wybrany temat
Opracowanie projektu prostej aplikacji - wizualizacja i sterowanie wybranym
układem z wykorzystać połączenie dwukierunkowego DDE
- wykorzystać narzędzia (Rys 5.17) do zamodelowania ekranów synoptycznych
własnego projektu)
Real-Time
Trend
Button
Wizard
Rys 5.17 Narzędzia do projektowania okien
Przykładowy ekran projektu przedstawia Rys 5.18
Modelowanie Procesów Dyskretnych 99
Rys 5.18 Przykładowy ekran projektu
Intouch ver 10.0
Aktualnie firma Wonderware udostępnia wersję Demo w wersji 10.0,
której wybrane ekrany Rys 19, & Rys 21- przedstawiają aplikację w stanie
edycji modelu a Rys 22. w stanie symulacji Na ćwiczeniach należy
zapoznać się z rozszerzona funkcjonalnością tej wersji.
Modelowanie Procesów Dyskretnych 100
Rys 5.19 Edycja zmiennych - Windows/Tagname Directory/Select Tag
Rys 5.20 Lista zmiennych systemowych i procesowych
Modelowanie Procesów Dyskretnych 101
Rys. 5.21. Program skryptu.
Rys 3.22 Ekran symulacji procesu
Modelowanie Procesów Dyskretnych 102
Literatura (do rozdz. 5.).
1. Kondratowicz L., Modelowanie symulacyjne systemów. WN-T, 1978.
2. Perkowski P.: Technika symulacji cyfrowej, WN-T, Warszawa 1980.
3. Tyszer J., Symulacja cyfrowa, WN-T, Warszawa 1990.
4. Raczynski S. ""Modelling and Simulation , Wiley; 2006
5. Winiecki W., Jacek Nowak J., Stanik S., Graficzne zintegrowane środowiska
programowe do projektowania komputerowych systemów pomiarowo-
kontrolnych. Wydawnictwo MIKOM, 2001.
6. Woolfson M.M., Pert G.J. ""An introduction to computer simulation"", Oxford
University Press, USA, 1999
7. Evans J.B, Structures of discrete event simulation: an introduction to the
engagement strategy"", Prentice Hall, 1988
Strony internetowe.
1. http://warp.cpsc.ucalgary.ca/
2. http://www.dcs.ed.ac.uk/home/hase/simjava/
3. http://jist.ece.cornell.edu/jist-user/
4. http://asi-www.informatik.uni-
hamburg.de/themen/sim/forschung/Simulation/Desmo-J/
5. www.astor.com.pl/www/Produkty_i_technologie/
6. http://www.wonderware.com.pl/www/index.php/wizualizacja-hmi/wonderware-
intouch.html


Wyszukiwarka

Podobne podstrony:
MPD Skrypt
chemia skrypt cz2
8 37 Skrypty w Visual Studio (2)
nerki cz2
MATLAB cw Skrypty
syst oper skrypty 2
Skrypt Latex
skrypt rozdz 2 4
Biochemia zwierzÄ…t skrypt UR
T2 Skrypt do lab OU Rozdział 6 Wiercenie 3
Skrypt 1
SKRYPT ELEKTROTECHNIKA ZADANIA PRDZMIENNY3 FAZOWY 14
Fotogrametria cz12 teledetekcja cz2

więcej podobnych podstron