background image

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 

 

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

 

background image

Modelowanie Procesów Dyskretnych 

 

5.5. Sterowanie i monitoring procesów dyskretno-ciągłych............................................85

 

5.6 Systemy SCADA/HMI ..............................................................................................95

 

 
 

 

background image

Modelowanie Procesów Dyskretnych 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

background image

Modelowanie Procesów Dyskretnych 

 

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: 

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.  

background image

Modelowanie Procesów Dyskretnych 

 

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 skierowan

y

m (g

r

afem) 

n

azywa

m

up

o

r

dk

owa

n

ą

 

t

jk

ę

 

po

s

t

ac

(V

A

γ

)

, p

rzy czy

m:  

je

s

z

bi

o

r

e

z

ł

ów g

r

a

fu

.  

background image

Modelowanie Procesów Dyskretnych 

 

A jest z

bi

o

r

e

łukó

(k

r

aw

ę

d

z

i

gr

a

f

u

t

ak

im 

ż

V

 

A = 

.  

γ

A 

 V

×

V 

j

e

st 

f

u

n

k

c

ją 

z

ac

z

ep

i

en

i

a

któ

ra 

ka

ż

d

e

mu łuk

owi 

pr

zy

pi

s

u

je 

up

o

r

dk

owa

n

ą

 

p

arę węzłów

.  

Graf 

s

kiero

wa

n

(

G 

(V

A

γ

)

,  

naz

yw

am

y g

r

afe

et

y

ki

etow

an

y

m nad 

z

bior

e

e

t

y

ki

et L (label)

j

eże

li łu

k

g

r

af

G

 ma

j

ą

 

pr

zy

p

isa

n

e ety

ki

e

t

y ze z

b

ior

L

 

 

background image

Modelowanie Procesów Dyskretnych 

 

Graf skierowany

 

G

=

(V

,

A

,

γ

)

 nazywamy grafem dwudzielnym, jeżeli zbiór 

V

 

jest sumą dwóch rozłącznych zbiorów 

V

1

,

 

V

2

 i dowolny łuk grafu G łączy 

węzły należące do rożnych zbiorów, tzn. 

 

 

 

 

 

 

 

 

 

Węzły różnych typów oznaczono odmiennymi kolorami. 

Łuki 

w  gra

f

ie 

s

iec

mogą łączyć 

t

y

l

ko węz

ł

r

óż

n

yc

h t

ypów

.  Z

e wzglę

du n

a c

h

a

-

ra

kt

e

r t

yc

h poł

ą

c

ze

ń

 d

e

finiu

je się s

i

e

ci o ro

z

m

a

it

y

ch 

w

ł

a

s

n

c

iac

s

tru

k

tu

ra

ln

yc

h

m

in.

s

i

ec

czys

t

e

siec

i  pr

os

t

e,  s

i

ec

swo

b

o

dn

ego  wy

b

o

ru

grafy 

s

y

n

c

h

ro

n

izacj

i

m

aszy

n

y s

t

a

no

we 

it

d

Sieci Petriego są przedstawiane jako grafy dwudzielne, w których własności 
dynamiczne są modelowane poprzez przepływ tzw. znaczników (markers). 

 

 
 
 
 
 
 
 
 
 

 

Sieć Petri (PN) jest uporządkowaną czwórką  PN= (P,T,F,W),

 

gdzie:  
P=(p

1

,p

2

,...,p

n

) – zbiór (skończony) miejsc (places), 

P

≠

0,  

T=(t

1

,t

2

,...,t

m

) - zbiór (skończony) przejść (transitions), 

T

≠

0,  

 ( PxT) 

 (TxP) - zbiór łuków, 

W: F

N\{0} – funkcja krotności (waga) łuku, N-zbiór liczb naturalnych.  

3.2.  Konwencja graficzna dla sieci Petriego 

p

t

t

p

p

 

 

 

P = (p

1

, p

2

T = (t

1

, t

2

F = {(p

1

, t

1

), (p

1

, t

2

), (p

2

, t

2

), (t

1

,

 

p

1

), (t

2

,

 

p

3

)} 

 1 

a

A:

 

γ

(a)

 

 (

V

1

×

V

2

 

(

V

2

×

V

1

)

 

3.1. Graf dwudzielny 

3

 

5

 

1

 

2

 

x

x

x

x

background image

Modelowanie Procesów Dyskretnych 

 

S

ieć 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.  Łukami  mogą  łączyć  się  wyłącznie 
elementy  należące  do  różnych  podzbiorów.  Łuki  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: P

N. Wartość M(p

i

) wyraża liczbę 

znaczników w miejscu p

i

. Liczba znaczników jest oznaczana na przez liczbę 

kropek. 
Znakowana sieć Petriego MPN (Marked Petri Net) jest parą: 

MPN =(PN, M

0

gdzie: M

0

 – jest znakowaniem początkowym (initial marking) sieci  

     M

0

: P 

 N  funkcja znakowania początkowego. 

 
Zbiory Int(t) ={p

P: <p, t>

F} oraz Out(t) ={p

P: <t, 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. 
 

background image

Modelowanie Procesów Dyskretnych 

 

Przejście  t

j

  jest  przygotowane  do  wzbudzenia  (firing),  jeśli  w  każdym 

miejscu  poprzedzającym  znajduje  się  co  najmniej  W(<p

i

,  tj>)  znaczników. 

Jeśli  przejście  jest  przygotowane  do  wzbudzenia,  to  może  nastąpić  jego 
wzbudzenie.  Gdy  przejście  t

j

  jest  wzbudzone,  wówczas  W(<p

i

,  t

j

>) 

znaczników  jest  usuwanych  z  każdego  miejsca  p

  Int(t)  oraz  W(<t

j

,  p

k

>) 

znaczników jest dodawanych do każdego miejsca p

k

 Out(t). 

background image

Modelowanie Procesów Dyskretnych 

 

10 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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 t

następuje zmiana znakowania z M

i

 na M

i+1 

to stosujemy oznaczenie:  
 

 
 

 
Sekwencją wzbudzenia nazywamy taką sekwencję przejść 

σ

 = t

i1

, ..., t

is

, dla 

której istnieją znakowania M

p

, M

p+1

, ..., M

p+s

 spełniające warunek: 

 
 
 

 
 

 
 

 
 
Znakowanie M

p+s 

nazywamy znakowaniem osiągalnym ze znakowania M

p

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.  

Rys 3.3.  Realizacja przejścia (firing of transition

 

   2 

 2 

t

p

 

p

•••

 

 

p

 

p

 

p

 

M

i

 

M

i+1

 

[t

i

]  

[t

i1

]  

M

p

 

M

p+1

,

 

[t

is

]  

M

p+s-1

 

M

p+s

 

  2 

 2 

t

p

 

p

 

 

p

 

p

 

p

•••

 

M

p

 

M

p+s

 

[

σ

]  

background image

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:  

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Rozważmy  przykład  sieci  przedstawionej  na  Rys.  3.4.  Przy  znakowaniu 
początkowym M

0

 = (1, 2, 0, 1, 2, 1) aktywne są przejścia t

1

, t

2

, t

4

, t

5

. Wykonanie 

sekwencji przejść 

σ

 = t

1

, t

2

, t

4

, t

6

 prowadzi odpowiednio do znakowań: 

M

1

 = (1, 3, 0, 2, 1),  

M

2

 = (1, 1, 1, 2,1),  

M

4

 = (1, 1, 1, 1, 2),  

M

6

 = (1, 0, 3, 1, 1).  

 

 

 

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 

Rys. 3.4. Sieć znakowana

 

2

 

2

 

p

t

p

t

t

p

p

t

p

t

••

 

 

 

t

 

 

••

 

 

background image

Modelowanie Procesów Dyskretnych 

 

12 

Znakowana sieć MPN jest żywą (liveness), jeśli dla każdego znakowania M 
osiągalnego  ze  znakowania  początkowego  M

0

  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: 

τ

: T

R

+

, (R

+

- jest zbiorem nieujemnych liczb wymiernych). 

W  chwili  początkowej 

τ

=0,  znakowanie  sieci  TMPN  jest  znakowaniem 

początkowym M

0

.  

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. 

 

 

background image

Modelowanie Procesów Dyskretnych 

 

13 

 

W  literaturze  dominuje  przypisanie  czasu  przejściom.  Gdy  przejście  t

i

  jest 

przygotowane  do  wzbudzenia,  wówczas  może  nastąpić  jego  wzbudzenie.  Faza 
palenia przejścia t

i

 trwa przez czas 

τ

(t

i

).  

 

 

 

 

 

 

 

 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

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: 

 
 
 

3.6. Czasowy diagram palenia tranzycji 

t

t

t

t

t

t

p

p

t

t

p

t

t

p

3.5. Czasowa sieć Petriego. 

t

1

=2; 

t

2

=4; 

t

4

=2; 

t

3

=3; 

background image

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óźniej 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.  

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

background image

Modelowanie Procesów Dyskretnych 

 

15 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

Przykład (Rys.3.8) modelu sieciowego dwóch procesów współbieżnych.   

Po  wykonaniu  przejścia  t

0

,  tranzycja 

Begin

  inicjuje  dwa  procesy 

współbieżne przez umieszczenie znaczników w miejscach p

1

 i p

2

. W takiej 

sytuacji tranzycje t

1

 oraz t

2

 są wzbudzone niezależnie.  

 
 
 
 
 
 
 
 
 

background image

Modelowanie Procesów Dyskretnych 

 

16 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
Zakończenie współbieżnych procesów jest synchronizowane przez tranzycję 
t

3

 (

ParEnd

), gdyż do wzbudzenia tegj tranzycji konieczne jest zakończenie 

dwóch procesów sekwencyjnych (znaczniki w miejscach p

3

 i p

4

).

 

 
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  M

0

)  powoduje  ograniczenie  ilości 

znaczników  zawartych  w  miejscu  p.  Dla  każdego  oznakowania  M

s

 

osiągalnego z M

jest spełniona zależność: 

M

s

(p) + M

s

(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. 
 

ParEnd

 

p

t

 

 

 

Rys. 3.8. Model procesów współbieżnych 

ParBegin

 

t

p

p

p

t

 

 

 

p

background image

Modelowanie Procesów Dyskretnych 

 

17 

 

 
 
 
 
 
 
 
 
 
 
 
 

Przykład (Rys. 3.10) modelu synchronizacji procesów. 

Miejsce p

0

 w sieci pełni funkcje synchronizujące, nie dopuszczając, aby 

dwa procesy znalazły się w stanie M

s

 takim, że M

s

(p

2

) = M

s

(p

4

) = 1, co 

modeluje wzajemne wykluczanie dostępu do obszaru krytycznego. W 
dowolnym stanie M

s

 spełniony jest bowiem warunek M

s

(p

2

) + M

s

(p

4

 1.  

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Rys 3.10. Synchronizowany dostęp do obszaru krytycznego 

p

 

p

p

t

t

p

p

 

t

t

 

 

 

 

Rys. 3.9

Procesy komunikujące się poprzez k-ograniczony bufor 

p

 

 

 

Sender

 

Receiver

 

 

 

 

 

p`

 

background image

Modelowanie Procesów Dyskretnych 

 

18 

Przykład (Rys. 3.11) sieci z możliwym stanem blokady. 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
W  sieci  na  powyższym  rysunku  może  wystąpić  stan  zakleszczenia  (brak 
ż

ywotności). Stan taki jest określony jako M(p

2

)= M(p

5

)=1 oraz M(p

i

)=0 dla 

pozostałych  miejsc  p

i

.  Stan  ten  jest  osiągany  przez  wykonanie  przejść  t

1

 

oraz t

4

 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 <t

1

, t

> albo  

<t

4

, t

5

>

 

. 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(M

0

),  takie  że  dla  każdego  miejsca  p

P  jest  spełniony 

warunek M`(p)

 M(p). 

Konstrukcja  drzewa  pokrycia  (coverability  tree)  znakowań  polega  na  
utworzeniu  drzewa  pokrywającego  wszystkie  znakowania  osiągalne  ze 

q

 

p

 

 

p

p

p

Rys 3.11. Sieć z możliwością zakleszczenia

 

 

 

 

t

t

t

 

p

p

p

 

 

 

t

t

t

background image

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. 
 
 
 
 
 
 
 
 
 
 
 
 

W przypadku a) mamy do czynienia z nieskończoną sekwencją wykonań: 
 
 

 

 

 

Wykonanie drugiej sieci b) polega na generacji kolejnych znakowań w myśl 
sekwencji: 
 
 

 

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 M

0

 stanowi korzeń drzewa i zarazem nowy węzeł.  

 

t

t

t

p

p

 

a)

 

p

p

 

t

 

b)

 

Rys. 3.12. Źródła generacji nieskończonej sekwencji znakowań

 

 
<

1, 0>

  

  

<0, 1>

  

  

<1, 0>

  

  

<0, 1>

  

    . . .           

t

t

t

t

 

. . . 

<1, i >  

  <1, i+1 >  . . . 

 

t

background image

Modelowanie Procesów Dyskretnych 

 

20 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Na  powyższym  rysunku,  wprowadzenie  symbolu 

ω

  jest  realizowane  już 

przy  pierwszym  wykonaniu  przejścia  t

1

.  Wykonanie  przejścia  t

1

  powoduje 

zmianę  stanu,  czyli  wzrost  ilości  znaczników  w  miejscu  p

2

  przy 

niezmienionych  wartościach  w  miejscach  pozostałych.  Tym  samym 
spełnione  są  warunki  wstawienia  symbolu   

ω

  na  pozycję  odpowiadające 

miejscu p

2

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 M

i

 jest osiągalne ze znakowania początkowego M

0

, jeśli w drzewie 

pokrycia istnieje węzeł M

i

 oraz ścieżka prowadząca z M

0

 do M

i

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.  

t

t

t

t

t

t

1,0,0 

1,

ω

,0 

0,1,1 

1,

ω

,0 

0,

ω

,1 

0,0,1 

0,

ω

,1 

p

p

p

 

t

 

 

t

t

Rys.3.13. Konstrukcja drzewa pokrycia dla sieci Petriego 

background image

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. 

background image

Modelowanie Procesów Dyskretnych 

 

22 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

t

t

t

p

p

t

p

t

p

t

t

t

p

p

t

p

t

p

1

t

p

Łączenie sekwencji miejsc 

Eliminacja pętli miejsca 

Eliminacja pętli przejścia 

Łączenie sekwencji przejść 

Rys. 3.14.  Wybrane  przypadki  redukcji sieci. 

background image

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

 

Sieć Petriego

 

*.ndr

 

*.net

 

Graf automatu

 

*.adr

 

*.aut

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

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

.

  

 

 

Rys. 3.17.  Ekran główny programy ND 

background image

Modelowanie Procesów Dyskretnych 

 

24 

2.  Elementy sieci. 

  

Węzły: 

  

 

       

 

 
 

 

 
 
 

 
 
 

 

 

Krawędzie:   
prostoliniowa  

 

 krzywoliniowa              krawędź 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). 

 
            

 

p0

 

- miejsce  (place

p

0

 = 1

  

 

t0 

- tranzycja t

0

 (transition)  

      dla TPN  

 0 

< ϖ

 

  

      praktycznie  0 

< τ

100

 

 

7

 

p1

 

 

p

1

 = 7

 

 

t1 

- tranzycja t

1

 (transition)  

      dla TPN  

 4 

< τ

7

  

[4 -7]

 

 

 

 

 

background image

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. 

 

N

a grupie elementów można wykonać wszystkie w/w operacje (z 

wyłączeniem edycji

 krzywizn

y

 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ęźle  

początkowym, oraz przesunięcie i puszczenie klawisza na węźle 
końcowym.  

 

 

 

Rys 3.19.  Przykład edycji czasu tranzycji 

t0

 

background image

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 

τ

  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

 

background image

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

 p

i,

 t

j  

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óźnienie 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   

background image

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.  

 

background image

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)

 

background image

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  

M1  

M2  

M3  

M4  

M5  

 
2. Średnia liczba i rozkład gęstości znaczników: 
 

 

 

 

 

 

 

 

 

Average Number of 
Tokens on a Place 

 

 

Token Probability Density 

Place 

Number of 
Tokens 

 

  

µ=0 

µ=1 

µ=2 

µ=3 

P0 

0,1667 

 

P0 

0,8333 

0,1667 

P1 

 

P1 

P2 

0,8333 

 

P2 

0,1667 

0,8333 

P3 

0,1667 

 

P3 

0,8333 

0,1667 

P4 

 

P4 

P5 

0,8333 

 

P5 

0,1667 

0,8333 

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 
Tangible States 

 

Steady State Distribution 
of Tangible States 

 

Throughput of Timed 
Transitions 

Mark  Value 

 

Marking  Value 

 

Trans 

Throughput 

M0 

0,5 

 

M0 

0,1667 

 

T4 

0,8333 

M1 

 

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 

 

M5 

0,1667 

   

 

background image

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 

 

 
 

Wszystkie wyniki można zapisać w formacie html a analizę sieciową  można 
rozszerzyć na sieć kolorowaną Rys 3.24 

 

 
 
 
 
 

 

Rys 3.23. Przykładowy graf osiągalności  

background image

Modelowanie Procesów Dyskretnych 

 

32 

 

 
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.

 

Mur

a

t

T., 

P

e

tri N

e

t

s

pr

ope

rtie

s

, a

n

a

l

y

s

i

a

nd a

p

p

li

cat

i

o

n

s

Pr

oceed

in

g

of t

he 

I

EEE

1

9

89

v

o

l

77

5.

 

R

eisig 

W

: Sieci 

P

e

triego.

WN

T 1

988 

 

Rys 3.24. Kolorowana Sieć Petriego 

background image

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

 

 
 
 
 

background image

Modelowanie Procesów Dyskretnych 

 

34 

 

4. JĘZYKI 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 odpowiedź  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 

background image

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 

background image

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ą odpowiedź, 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 

background image

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 

background image

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óźnienie, odsetek transakcji, 
które  zostały  opóźnione  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. 

background image

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 

background image

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: 
0

1. 

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 

0

8. opuszczenie kolejki, z zapisem czasu w statystykach kolejki, 

09. zachodzi  opóźnienie ś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óźnienia jest pobierana 
z  drugiego  strumienia  liczb  losowych,  a  więc  w  stosunku  do  czasów  wejścia,  
czasy opóźnień 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 

background image

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 

background image

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  znaleźć  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. 
 
 

background image

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óźnienie 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

 

background image

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 (F
acility 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óźnionej,  
H  – numer bloku dla transakcji opóźnionej 

 

background image

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 

background image

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  

background image

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  
-  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óźniana  o 
określoną ilość czasu symulacyjnego a następnie przechodzi do następnego bloku. 
Składnia bloku jest następująca: 

background image

Modelowanie Procesów Dyskretnych 

 

48 

ADVANCE A, B 

- 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:  

background image

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 

background image

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 

background image

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. 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 

Rys 4.1 Przykład harmonogramu produkcji

 

Rozwiązanie - program 

; Produkcja (kolejka, stanowiska jedno i wielokanałowe)

 

Susz  STORAGE 

  

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  

 

uruchomienie symulacji dla 4 zadań 

 

z1

 

z2

 

z3

 

z4

 

Kolejka  
transporter  

 

z1

 

z2

 

z3

 

z4

 

1

 

13

 

25

 

40

 

z1

 

z2

 

z4

 

Obróbka mechaniczna 
1 obrabiarka

 

 

52

 

13

 

25

 

40

 

52

 

67

 

79

 

z1

 

z2

 

z3

 

z4

 

0

 

z1

 

z2

 

z3

 

z3

 

1

 

10

 

19

 

28

 

45

 

75

 

60

 

90

 

malowanie i 
suszenie  
2 stanowiska

 

 

Otoczenie   
magazyn  
produktów

 

Otoczenie  systemu 
 magazyn cz

ęś

ci

 

z4

 

czas

 

?

 

background image

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         

 

0        

       3      SEIZE   

 

 

 

       4      DEPART  

 

 

 

       5      ADVANCE 

 

 

 

       6      ENTER             

 

 

       7      RELEASE 

 

 

 

       8      ADVANCE 

 

 

 

       9      LEAVE               4 

 

 

      10     TERMINATE 

 

 

 

 

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. 

background image

Modelowanie Procesów Dyskretnych 

 

53 

 

 

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 źró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

),.  

 

 

 

 

 

 
Rys 4.2 Wyniki symulacji - zajętość transportera w przykładzie nr 3  
 

background image

Modelowanie Procesów Dyskretnych 

 

54 

4.3 Przykłady do ćwiczeń i tematy zadań 

Zadania  powinny  być  wykonywane  kolejno  a  wyniki  zapisywane  w  plikach 
ź

ródłowych z numerami zadań w postaci 

zad

nr

.gps

 i w raportach  

zad

nr

.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óźniają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 )   

 
 

background image

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  

background image

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ń  

background image

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 

 

   

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 

 

Rys. 4.3  Okno główne  

background image

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 

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  

 

 

 

Rys 4.4 Podstawowe okna po uruchomeniu przykładu 

background image

Modelowanie Procesów Dyskretnych 

 

59 

W bieżącym oknie bloku pracę krokowa można kontynuować  przy pomocy ikony 
STEP     

 

 

 

                                                                                                                                                                                                                                                                                                                                                                  

 
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  

 
Wprowadź (Rys 4.5 )  etykietę   wykresu , wyrażenie i tytuł okna  
(w uproszczeniu wspólną  nazwę)  oznaczająca długość kolejki  

Q$Transp

 

Zakres czasu     

max

= 1500 min   domyślnie od t

min

 = 0 

Zakres osi pionowej  

[0, 100] 

 
Uruchom   

START 100

 

 

Rys 4.5 Komunikaty w trybie pracy krokowej i w blokach  obiektów 

background image

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 

background image

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     

max

= 200 min ,   

Zakres osi pionowej  

[0, 20] 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

Rys  4.7  Modyfikacja parametrów wykresu 

 

background image

Modelowanie Procesów Dyskretnych 

 

62 

 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

Rys  4.8 Wynik symulacji w oknie wykresu – wg nowej skali 

background image

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 

background image

Modelowanie Procesów Dyskretnych 

 

64 

 
 
 
 
 
 
 
 
 
 

 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

Rys.  4.11 SIMULA - Okna symulacji   

  

 

Rys.   4.10 SIMULA  Okno raportu statystycznego  

background image

Modelowanie Procesów Dyskretnych 

 

65 

 
 
 
 
 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

Rys  4.12  Symbole schematu blokowego GPSS Web 

 

Rys.  4.13 Przykład schematu  blokowego modelu procesów 

background image

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

"  

 

 

Literatura do rozdz. 4 

http://www.minutemansoftware.com/

 

http://www.webgpss.com/

 

 

Extract from 

a Time- and

Cost-based

GPSS

Model of an

Intermodal

Supply Chain

from the 

Far-East to

NW-Europe

Extract from 

a Time- and

Cost-based

GPSS

Model of an

Intermodal

Supply Chain

from the 

Far-East to

NW-Europe

 

Rys. 4.14  Model blokowy  GPSS złożonego problemu logistycznego 

ź

ródło:

http://www.elogmar-m.org/misc/simulationELogisticsSupplyChain.doc

 

background image

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 

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.  

background image

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 

Abstrakcyjny 

3. Zbior  

Danych  

4. Model 

Symulacyjny 

5.Weryfika-

cja Modelu 

 

6. Badania 

Symulacyjne 

Rys 5.1 Plan etapów projektu symulacji 

background image

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 

background image

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.  

background image

Modelowanie Procesów Dyskretnych 

 

71 

 

 

 

1 Problem / Cel  

2. Model 

Koncepcyjny  

Analityczny  

4. Program 

Symulacyjny 

5.Weryfikacja 

Programu 

 

6. Badania 

Symulacyjne 

Rys 5.2 Plan etapów złozonego projektu z zastosoaniem 

symulacji komputerowej  

3.Weryfika-

cja Modelu 

 

7.Weryfikacja  

Badań  

 

Przerwanie  

8 Budowa. Wdrożenie  

układu rzeczywistego 

Symulacyjne 

NO  

OK  

OK  

OK  

NO  

NO  

background image

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 

background image

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. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
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: 

Działanie

 

Obróbka e1 

0

 

 

Zdarzenie 
Poczatek 
obróbki e1

 

 

Zdarzenie 
Nadejscie  
       e2

 

 

Działanie

 

Czekanie e2 

Zdarzenie 
Poczatek 
obróbki  e2

 

 

Zdarzenie 
Nadejscie  
     e1

 

 

Działanie

 

Obróbka e2 

Działanie

 

Malowanie e1 

Zdarzenie 
Koniec 
obróbki e1

 

 

Działanie

 

Malowanie e2 

 

Proces

 

Produkcja e1 

Zdarzenie 
Koniec 
malowanie e1

 

 

Zdarzenie 
Koniec  
malowania  e2

 

 

Proces

 

Produkcja e2 

czas

 

 

Rys 5.3.  Ilustracja pojęć: zdarzenie, działanie i proces 

 

background image

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.   
 

 

background image

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 

background image

Modelowanie Procesów Dyskretnych 

 

76 

Warunki 

początkowe 

Czy Koniec ?  

 

t

P

 = t

Usunięcie 1-go 

Zdarzenia 

T

 

N

 

Aktualizacja 

czasu  

Rys. 5.4 Algorytm  planowania zdarzeń. 

 

Działanie 1-go 

Zdarzenia  

 

zgodnie z wystąpieniem następnego zdarzenia bezwarunkowego. Omówione etapy 
algorytmu będą cyklicznie powtórzone z badaniem warunku zakończenia symulacji. 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 

background image

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 t

min

 

 

2. zmniejszenie wszystkich atrybutów czasy o t

min

 

 

3. dodanie t

min

 do czasu systemowego. 

  

background image

Modelowanie Procesów Dyskretnych 

 

78 

II Czas bezwzględny 

1.  wybieranie  najmniejszego  dodatniego  atrybutu  czasu  t

min

  większego  od 

czasu systemowego, 

 

2. przyjęcie t

min 

 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 (t

min

). 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  t

min

  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 przejdź 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. 

  

background image

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 

Czy Koniec ?  

 

T

 

N

 

aktualizacja 

czasu  

Rys. 5.5. Algorytm przebiegu symulacji dyskretnej 

 w metodzie przeglądu działań. 

 

Obsługa zdarzeń 

Warunki zajścia  zdarzeń 

z ustawieniem flagi 

zmianu stanu 

flaga zmiany ?  

 

skasuj flage zmiany stanu 

T

 

background image

Modelowanie Procesów Dyskretnych 

 

80 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

Rys  5.6  Algorytm symulatora  sieci Petriego 

background image

Modelowanie Procesów Dyskretnych 

 

81 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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 wskaźników jakości, 

 

EndSearch 

- warunki zakończenia przeglądu,

 

 

Statistic_Acc 

- obróbka statystyczna dopuszczalnych rozwiązań 

 

 

Rys  5.7  Przykładowe wyniki z symulatora  sieci Petriego 

 

background image

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óźniania 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  znaleźć  w  literaturze  [Micheal  Pidd  "Computer 

Simulation in Management Science] i na stronach internetowych. 

background image

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:  
 
 
 
 
 
 
 
 

background image

Modelowanie Procesów Dyskretnych 

 

84 

 
 
 

 
 

 

desmoj.core.simulator

 - zawiera klasy rdzenia, wykorzystywane 

do zbudowania modelu i rozpoczęcia eksperymentu   

 

desmoj.core.dist

 – jest źró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  

 

ź

ródłó 

http://desmoj.sourceforge.net/basic_features.html

 

background image

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 dźwię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. 

background image

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

 

ObjCtr 

Adr 111 

RegCtr  

Adr 100 

RegCtr 

Adr 200 

LocCtr 

Adr 110 

LocCtr 

Adr 120 

LocCtr 

Adr 210 

ObjCtr  

Adr TSN 

TSN

Obj A 

TSN 

Obj B 

Obj C 

Obj F 

Obj E 

Obj D 

obiekty poza sytemowe, 
tylko wizualizacja brak 
pomiarów i sterowania. 

   retransmisja 

ObjCtrAd

 

211 

tablica 
synoptyczn

Rys. 5.8.  Wyposażenie poziomów hierarchicznego systemu 

background image

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ń. 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 

Prog. Główny 

stzuw

110

 

Dane Systemu

 

Obsł. Konsoli 

console 

Obsługa 

Ekranów 

display 

Obsługa 

Transmisji 

obstra 

Transmisja 

transm 

Archiwizacja 

archiv 

Obsł. przerw. 

czasowych 

timedate 

Inicjalizacja 

Konfiguracja 

conf

110

 

Raporty  

reports 

Disk 

Printer 

Sie

ć

 

monitor 

Keybord 

obiekty ekran 

synopt 

  

ekr

110

??

 

strumienie 

danych 

wywoływanie 

 funkcji

 

 

obsługa 
przerwań 

Rys. 5.9. Schemat związków międzymodułowych

 

background image

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  

background image

Modelowanie Procesów Dyskretnych 

 

89 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

Rys. 5.11. Ekran KP4 – sterowanie zasuwą 

 

Rys. 5.12. Ekran ZUW 

background image

Modelowanie Procesów Dyskretnych 

 

90 

 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 

 

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 

Rys. 5.13.  Ekran   Zbiorniki  

background image

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,  dźwię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ć ztint

2.exe. 

4. Wykonać polecenia z klawiatury: wpisz tekst i steruj strzałkami. 
5. Uruchomić jeszcze np 2 razy aplikacje ztint

1.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 źródłowy:. zmodyfikować wydruk, wygenerować sygnał 
dźwiękowy. 

a)  wer. TC2.  plik 

path

/

cw

6/tc2/c

tintc.c

  :

zapoznać  się  z  funkcjami 

w programie oraz edytorem 

tc

, kompilacją i wykonaniem 

Ctrl+F9 

b)  wer.  MC4  plik 

path

/

cw

6/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ć 

background image

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 

background image

Modelowanie Procesów Dyskretnych 

 

93 

 
 
 

program 

ż

ródłowy ctintc.c 

 

/************************************************************************** 
*                                                                         * 
*                   PROGRAM CTINTC.C                                      * 
*                                                                         * 
*       Test procedur zarzadzajacych obsluga przerwania czasowego         * 
*                                                                         * 
**************************************************************************/ 

#define MAIN 
#include <conio.h> 

/* int  getch(void);    int kbhit(void);           */ 

#include <stdio.h> 

/* sprintf(tekst,wzorzec, par,...), puts(tekst), 

 

    

int cprintf(*char),int putch(int),int ungetch(int);*/ 

#include <dos.h>     

/* getvect(INT), setvect(INT, Funkcja )            */ 

#include <time.h>     

/* 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:                                                                 
 -------------------------------------------------------------------------*/ 

 

background image

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; 

 

 
 
 

background image

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 okno

2  

 
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. 

background image

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 

background image

Modelowanie Procesów Dyskretnych 

 

97 

 

 

 

 
 
 
 
 
 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

 

5.16b Przykładowa konfiguracja kanału DDE obiekt   

 

 

 
5.16 c Przykładowa konfiguracja kanału DDE system

 

background image

Modelowanie Procesów Dyskretnych 

 

98 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 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)

 

 
 
 
 
 
 
 
 
 
 
 
 

 
 
 
 
 

 
Przykładowy ekran projektu przedstawia  Rys 5.18 

 

 

5.16 d. Przykładowa konfiguracja kanału DDE system cd 

 

 

Real-Time 
Trend  

Button  

Wizard  

Rys 5.17 Narzędzia do projektowania  okien 

background image

Modelowanie Procesów Dyskretnych 

 

99 

 

 
 
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.  
  

 

 

Rys 5.18  Przykładowy ekran projektu  

background image

Modelowanie Procesów Dyskretnych 

 

100 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Rys 5.20 Lista zmiennych systemowych i procesowych   

 

 

Rys 5.19 Edycja zmiennych - Windows/Tagname Directory/Select Tag   

 

background image

Modelowanie Procesów Dyskretnych 

 

101 

 

 

 

 

 

 

 

 

 

Rys. 5.21. Program skryptu

 

Rys 3.22 Ekran symulacji procesu 

background image

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