Professional Documents
Culture Documents
Rozprawa doktorska
Promotor
dr hab. inż. Mikołaj Busłowicz
profesor Politechniki Białostockiej
Białystok, 1996
Tabela 1.1
Historia rozwoju sterowników programowalnych [95]
Rok Wydarzenie
1968 koncepcja sterownika programowalnego
1969 pierwszy sterownik: zbiór operacji logicznych, 1kB pamięci programu,
128 we/wy
1974 wieloprocesorowe PLC, wyposażone w timery, liczniki, operacje
arytmetyczne, 12kB pamięci programu i 1024 we/wy
1976 wprowadzenie zdalnych systemów we/wy
1977 pierwsze PLC oparte na mikroprocesorach
1980 inteligentne moduły we/wy, rozwój możliwości komunikacyjnych, narzędzi
programowych, zastosowanie PC, jako narzędzi wspomagających
1983 małe i tanie PLC
1985 wprowadzenie przemysłowych sieci sterowników stosowanych
do rozproszonych i hierarchicznych systemów sterowania
1
termin ang.: Programmable Logic Controller – PLC
2
CRPD – Centralna Rejestracja i Przetwarzanie Danych
9
10
11
12
Celem niniejszej pracy jest przedstawienie nowej, opracowanej przez autora, metody
realizacji sterowania binarnego. Metoda ta umożliwia łatwe łączenie funkcji sterowania
binarnego z regulacją wielkości ciągłych, ale może także być wykorzystana wyłącznie w sferze
sterowania binarnego. Pozwala ona tworzyć mikrokomputerowe systemy automatyki,
oprogramowywane zarówno na poziomie asemblera jak i języków wysokiego poziomu.
O skuteczności prezentowanej metody świadczą przykłady zrealizowanych z jej pomocą
aplikacji.
Teza pracy:
Opracowana metodologia postępowania przy automatyzowaniu binarnych, a także
binarno-ciągłych procesów przemysłowych pozwala uzyskiwać sprawnie
działające i łatwo modyfikowalne systemy automatyki „na miarę potrzeb”,
szczególnie tam, gdzie użycie standardowych rozwiązań konstrukcyjnych
i programowych oferowanych przez producentów sterowników przemysłowych
jest niemożliwe.
Za osiągnięcia własne autor uważa:
1. opracowanie metody opisu algorytmów sterowania binarnego, ułatwiającej programowanie
nietypowych układów sterowania oraz umożliwiającej łączenie sterowania binarnego
z regulacją procesów ciągłych i realizacją innych działań objętych postawionym zadaniem
sterowania;
2. opracowanie oprogramowania wspomagającego generowanie nowych i modyfikację już
istniejących aplikacji, umożliwiającego stosowanie różnych platform sprzętowych
i programowych;
3. opracowanie algorytmów przetwarzania i optymalizacji wyrażeń logicznych na poziomie
symbolicznym, wykorzystanych w translatorze języka JODA
4. zastosowanie opracowanej metody do realizacji zróżnicowanych układów sterowania
- od małego przyrządu laboratoryjnego po system automatyki kompleksowej linii
technologicznej.
Praca składa się z pięciu rozdziałów. Pierwszym z nich jest wstęp zawierający krótkie
wprowadzenie w poruszaną tematykę.
Drugi z rozdziałów ma trójdzielną strukturę. W kolejnych jego częściach są
omówione:
13
14
15
3
stosowanymi zamiennie określeniami są: „zwierne”, „normalnie otwarte”
4
stosowanymi zamiennie określeniami są: „rozwierne”, „normalnie zamknięte”
16
17
18
19
20
21
5
termin ang.: „firmware transitional logic”
22
a) b) b
1
200
a c
Xk
sk a b b c c c b
2 3
100
1 2 200 – – – b
2 – 4 – – 3 b
c
3 – 100 – 1 –
4 – – 1 – 3 4
23
6
PLD - Programmable Logic Devices
7
FPGA - Field Programmable Gate Array
24
25
y y
y
x5 x3 y x4 x1
x2
x2
x2 y=x1*x2 y
x1 x2 x1 x2
x2 x1 x1
y=x1+x2 y=x1*x2 x3
x4
26
X
d)
kanał normalnie otwarty kanał normalnie zamknięty komora zaworu
dla przelotu powietrza dla przelotu powietrza X (cewka przekaźnika)
(styki normalnie zwarte) (styki normalnie otwarte)
x x
Rys. 2.3. Przekaźnik elektryczny (a) i pneumatyczny zawór rozdzielający (b): c) - symbol
zaworu; d) - symboliczne oznaczenia elementów przekaźnika i zaworu rozdzielającego
na schematach ideowych
Chociaż następuje ciągły rozwój elektrycznych w swej naturze sterowników PLC,
układy sterowania pneumatycznego i hydraulicznego nadal znajdują dziedziny zastosowań, o
czym może świadczyć produkowanie ich elementów składowych przez różne firmy (MERA-
PIAP, FESTO-PNEUMATIC - Austria, ALPHA-Controls - Wlk. Brytania, BOSH - Niemcy,
CPOAC - Francja).
27
Tabela 2.1
a) b) styki przełączne
styki przekaźnika:
a) zwierny; b) rozwierny przekaźnika
28
a) b)
Logika drabinkowa jest efektem
standaryzacji schematów elektrycznych.
c)
Stosowana pierwotnie do układów
przekaźnikowych, pozostaje w szerokim
d)
użyciu także przy programowaniu
mikroprocesorowych PLC. Nazwa tej
Rys. 2.5. Składniki schematów
metody opisu układów sterowania wynika z drabinkowych: a) styk czynny; b) styk bierny;
jej graficznej struktury, podobnej c) cewka przekaźnika, zmienna wyjściowa;
d) funkcja specjalna
29
Przykład 2.1
RF
RB Opis sygnałówsterujących:
8
termin ang.: „ladder logic”
9
termin ang.: „rung”
30
a) c)
Przyporządkowanie sygnałów elementom M104 X4 X0
schematu drabinkowego: M101
PRACA X0 M101 M102 M103 M104
LS1 X1
LS2 X2
LS3 X3 X0
LS4 X4
F Y10 X1 M101
RF Y11 M102
RB Y12
A Y13 M102 M103
Przyporządkowanie stanów pracy przekaźnikom
w schemacie drabinkowym: X3 M102
ruch transportera M101 M103
ruch roboczy podajnika M102 M103 M104
ruch powrotny podajnika M103
praca prasy M104 X2 M103
M104
b)
Realizowane funkcje logiczne: M104 M101
M101=M104X4X0+(X0+M101)/M102/M103/M104
M102=X1M101+M102/M103 M101
M103=X3M102+M103/M104 Y10
M104=X2M103+M104/M101 M102
Y10=M101 Y11
Y11=M102 M103
Y12=M103 Y12
Y13=M104
M104
Y13
Powyższy, bardzo prosty przykład prezentuje jedynie główne idee wykorzystania
logiki drabinkowej do opisu układu sterowania. Współczesne rozwinięcia tej metody, poprzez
wspomniane wcześniej bloki funkcji specjalnych, pozwalają uwzględniać w układzie
sterowania bogate możliwości przetwarzania informacji, jakie dają mikroprocesorowe PLC.
Można jednak wskazać pewne niedostatki metody logiki drabinkowej [42, 95]:
w sterownikach sekwencyjnych, charakteryzujących się zbiorem N stanów układu, użycie
logiki drabinkowej z reguły prowadzi do zbliżonej liczby MN szczebli, z których każdy
jest zakończony umownym przekaźnikiem jako elementem pamiętającym; prowadzi to
31
Tabela 2.2
Zestawienie podstawowych symboli logicznych według standardów:
a) amerykańskiego; b) polskiego (PN-84 E-01236); c) niemieckiego
AND OR NOT NAND NOR XOR SR
SQ
a
RQ
& 1 & 1 =1 S T
b
R
c s Q
r Q
32
33
Jeszcze jedną graficzną formą opisu działania systemu jest sieć operacyjna [18, 85].
Tworzy się ją na podstawie schematu strukturalnego procesu znajdującego się w stanie
początkowym i na podstawie odpowiedniego opisu słownego.
34
a) b) c) d) e)
STOP
f) g) h)
x1 x2 x1 x2
Przy graficznym zapisie sieci operacyjnej zakłada się, jako naturalną, kolejność operacji
od góry do dołu, w związku z czym nie we wszystkich przypadkach stosuje się groty
wskazujące kierunek przejścia.
35
S START
A B
WK2=1
N
EZ1 EZ2 T
SA : SA
Prostym przykładem użycia sieci operacyjnej
WK2=1
do opisu procesu może być dozownik dwóch sypkich N
T
składników A i B, w proporcji 2:1, przedstawiony
WK1=1
na rysunku 2.11 [66]. Działanie tego urządzenia można
T
streścić na przykładzie dozownika A następująco: SB : SB
36
Definicja 2.2
Niech PN należy do sieci P/T. Sieć PN nosi nazwę zwykłej sieci Petriego (sieci markowanej)
wtedy i tylko wtedy, gdy zachodzą warunki:
(i) K(p) = p P;
(ii) W(x,y) = 1 (x,y) E.
Zwykłe sieci Petriego dzielą się jeszcze na podklasy:
maszyny stanów;
grafy znakowane;
grafy wolnego wyboru;
rozszerzone grafy wolnego wyboru.
Ich definicje i przykłady ilustrujące można znaleźć w [9], a przykład zastosowania grafu
znakowanego do syntezy układu sterowania binarnego na bramkach i przerzutnikach - w [69].
Innymi rozszerzeniami zwykłych sieci Petriego, które znalazły zastosowanie do sterowania
procesami dyskretnymi, są:
sieci z łukami wzbraniającymi;
systemy pozycja/tranzycja;
sieci czasowe, pozwalające uwzględniać rzeczywiste czasy trwania modelowanych
procesów [70, 80];
sieci kolorowane [16];
37
38
Definicja 2.3
Automatem skończonym, synchronicznym, z wyjściami nazywamy uporządkowaną piątkę
AS = < S , X , Y , , >
gdzie: S = {s1, s2, ..., sN} jest zbiorem stanów automatu, takim że ||S|| = N i 1 < N < ;
X = {x1, x2, ..., xK} jest zbiorem słów wejściowych;
jest funkcją przejść, przyporządkowującą parze (st , xt) w chwili t nowy stan w chwili
następnej t+1: (st , xt) = st+1 ;
Y = {y1, y2 , ..., yM} jest zbiorem słów wyjściowych;
jest funkcją wyjść przyjmującą jedną z poniższych postaci:
yt = (st) - dla automatu klasy Moore’a;
yt = (st, xt) - dla automatu klasy Mealy’ego.
Przez słowo wejściowe lub wyjściowe rozumie się w powyższej definicji zerojedynkową
kombinację zmiennych wejściowych lub wyjściowych.
Użytą w powyższej definicji funkcję przejść można opisać na trzy sposoby:
za pomocą zorientowanego grafu przejść, którego węzły odpowiadają stanom si S
automatu AS, a skierowane krawędzie symbolizują możliwe przejścia pomiędzy nimi i są
opisane wyrażeniami logicznymi, których spełnienie jest warunkiem realizacji tych przejść;
za pomocą tablicy przejść, która si S i xk X podaje stan następny sj S
(w szczególności może zachodzić si = sj, co oznacza brak przejścia);
za pomocą uporządkowanej listy wyrażeń logicznych warunkujących poszczególne
przejścia.
39
Przykład 2.3
Dany jest automat skończony AS o stanach S={s1, s2, s3, s4}, słowach wejściowych X={x1, x2,
x3, x4}, słowach wyjściowych Y={y1, y2, y3}. Cztery słowa wejściowe oznaczają w tym
przypadku cztery możliwe kombinacje: 00, 01, 11, 10, dwóch wejściowych zmiennych
binarnych automatu, a trzy słowa wyjściowe - kombinacje: 00, 01, 11, dwóch zmiennych
wyjściowych. Tablicę przejść, graf przejść i tablicę wyjść tego automatu podaje rysunek 2.13.
a) b) c)
x4 x1
x2
X x 1 x2 x3 x 4 s2 s3 S Y stan wyjść
S x1 x3
s1 y1 00
s1 s2 s 1 s4 s4 x3 x1 x2+x4 x3 s2 y3 11
s2 s4 s 3 s1 s2
s3 y2 01
s3 s3 s 4 s1 s4 x3+x4
s1 s4 s4 y2 01
s4 s1 s 1 s3 s4 x2 x1+x2 x4
40
Należy także wspomnieć o jeszcze jednej graficznej formie opisu zadania sterowania,
jaką są wykresy czasowe. Historia ich stosowania do prezentacji pożądanego zachowania się
sterowanego obiektu jest bardzo długa. Towarzyszyły one zwykle tekstowym opisom, jako ich
uzupełnienie, przedstawiając graficznie stany i zmiany stanów urządzenia. Z upływem lat
wykształciły się dwa ich rodzaje [85, 88]:
1. wykresy stanów, przedstawiające przebiegi czasowe wszystkich wejść i wyjść z podziałem
na odcinki czasu (kroki), w których sygnały te nie zmieniają się; wykresy te są także
stosowane przy opisie sekwencyjnych układów logicznych do wyróżniania kolejnych
stanów automatu;
2. wykresy ruchu, spotykane w dwóch odmianach:
wykresy drogi, przedstawiające ruch maszyny w układzie jednej współrzędnej, przez co
nadają się jedynie do opisu najprostszych zadań;
wykresy drogowo-czasowe, przedstawiające działanie urządzenia w układzie dwóch
współrzędnych;
Obie odmiany wykresów ruchu mogą być wzbogacone dodatkowymi symbolami
odnoszącymi się do stanu sygnałów wejściowych, wykonywanych przez mechanizmy
ruchów, zależności czasowych, itd.
Wykresy czasowe dla urządzenia do formowania detali z przykładu 2.1 przedstawia
rysunek 2.14. Inne przykłady wykresów drogowo-czasowych można znaleźć w [90].
41
LS3 RF
off
LS1
LS4
on LS2
F
RB
RF off
LS3
RB on
A A
off
LS2
42
10
LAD - LADder
43
44
11
STL - STatment List
45
2.3.3 Grafcet
12
LAN - Local Area Network
46
47
48
Język PL7-3 [9], a właściwie system programowania, powstał jako kolejna (trzecia)
implementacja standardu Grafcet w firmie Telemecanique. Przeznaczony jest on dla rodziny
sterowników TSX, a może być użytkowany, zależnie od implementacji, w konsolach
i terminalach programowania lub na komputerach osobistych. Składa się on z trzech modułów
programowania:
języka schematów przekaźnikowych;
właściwego Grafcet;
języka Litteral, będącego odpowiednikiem schematów przekaźnikowych wykorzystującym
kody mnemoniczne.
Niniejszy punkt prezentuje skrótowo moduł Grafcet systemu PL7-3.
49
50
2.3.5.1 ESTER
51
52
2.3.5.2 LOGEL
Jest to kompilator języka wyższego poziomu o tej samej nazwie, służącego do opisu
algorytmów sterowania procesów przemysłowych różnego typu. Język LOGEL nawiązuje
do filozofii opisu sterowania prezentowanej w normie GRAFCET. Podobnie jak w tej normie,
tak i w języku LOGEL występują pojęcia:
segmentu - zdefiniowanego, zamkniętego ciągu instrukcji;
53
54
2.3.6 Step-5
55
56
57
58
metoda
schemat algorytm algorytm MTS automat
strukturalny procesu sterowania cyfrowy
procesu
Proces syntezy układu sekwencyjnego składa się w tej metodzie z kilku etapów [62]:
1. opracowania algorytmu przebiegu procesu technologicznego i zapisaniu go w formie sieci
operacyjnej (opisanej pokrótce w punkcie 2.2.5);
2. opracowania algorytmu działania układu sterowania w formie sieci działań;
3. wyznaczenia równań schematowych;
4. realizacji układu sterowania.
Sieć operacyjną będącą bazą wyjściową przekształca się (transformacja sieci)
najpierw do sieci działań. Transformacja taka polega na przyporządkowaniu klatkom
operacyjnym, reprezentującym elementarne operacje systemu, zmiennych wyjściowych układu
sterowania realizujących te operacje. Następnie należy określić zasady zapisywania i
kasowania pamięci układu sterowania i zależności pomiędzy nimi a wejściowymi i
wyjściowymi zmiennymi logicznymi.
Otrzymana w powyższy sposób sieć działań prezentuje algorytm pracy układu
sterowania z uwzględnieniem stanu: wejść X, wyjść Y i pamięci M, a zależności pomiędzy
jego zmiennymi wejściowymi i wyjściowymi w sieci o N klatkach operacyjnych opisuje układ
równań [62]:
Fi(Yi) = fi’ fi” , i = 1..N
gdzie:
fi’ - zależność przedstawiająca warunki logiczne określające moment rozpoczęcia realizacji
i-tej operacji, wykorzystująca zmienne umiejscowione na wejściu tej klatki;
59
który może być spełniony jedynie przy obecności pamięci w układzie sterowania. Omówienie
reguł uzupełniania sieci działań o elementy pamięciowe można znaleźć w [63].
Jeśli chodzi o graficzną reprezentację sieci działań, to okazało się konieczne
wprowadzenie dodatkowych symboli odpowiadających: działaniom na komórkach pamięci,
ich zawartości i stanom wyjść, przedstawia je rysunek 2.18.
60
CPA×CPB=1
T
Y11: Y11 m1
IN 10 11 12 13 14 15 16 17
y11
PLC
WK2=1
START
M1 T OUT 20 21 22 23 24 25 26 27
WK1=1
m1 T
y12
EZ1=Y11+Y12 EZ2=Y2
m1
c)
Y12: Y12 m2 I10 I11 I12 I15 O21 O20
y12
WK2=1 I14 O20
START S
T
M2
I16 O21
WK1=1 R Q
m2 T I13 O21 O23 O22
m2
O22
Y2: Y2
I14 O22
STOP
WK4=1 S
M,M
1 2
T I16 O23
R Q
WK3=1 I13 O23 O24
T
Rys. 2.19. Realizacja metodą MTS sterowania do przykładu z punktu 2.2.4: a) sieć działań;
b) schemat połączeń sterownika PLC; c) zapis programu dla PLC logiką drabinkową
Metoda MTS zdaje, według jej autorów, egzamin wszędzie tam, gdzie synteza
sekwencyjnych układów sterowania metodami klasycznymi [91], z racji ich ograniczeń, jest
trudna lub wręcz niemożliwa. Praktyka wskazuje, że już przy n>3 zmiennych wejściowych
i K>8 stanach wewnętrznych automatu, projektant napotyka poważne trudności. Uzyskiwany
w tej metodzie układ równań schematowych może posłużyć:
do zaprojektowania cyfrowego układu sterowania (z przerzutnikami w charakterze komórek
pamięci);
do przygotowania programu sterownika w logice drabinkowej;
do programowania PLC metodą GRAFPOL.
61
(siłowniki) już w fazie projektowania algorytmu sterowania, przez co zmniejsza się liczbę
potrzebnych zmiennych wyjściowych układu sterowania.
62
Definicja 2.5
Algorytmem sterowania w metodzie GRAFPOL jest trójka:
GP’ = < Y , K , L >
gdzie:
Y = {Y1, Y2, ..., YK} jest skończonym zbiorem elementów zwanych zmiennymi wyjściowymi
układu sterowania;
K, L - są równoważne zbiorom sieci GRAFPOL reprezentującej algorytm procesu.
Przejście od algorytmu sterowania GP’ do rzeczywistej implementacji sterowania nie
nastręcza już większych problemów - wystarczy np. przepisać sieć GP’ na język logiki
drabinkowej powszechnie stosowany do programowania sterowników. Sieć algorytmu
sterowania GP’ może także stanowić bazę języka programowania sterowników typu STL
o następującej formie zdaniowej [64]:
„ jeśli przyczyna, to skutek ”
Zgodnie z uwagami autorów [64] metoda GRAFPOL ma, w porównaniu z szeroko
znaną metodą GRAFCET, następujące zalety:
algorytm procesu jest siecią logiczną (operacyjną) i dlatego nie wymaga on dodatkowego
modelowania;
63
64
13
IL - Instruction List
65
14
ST - Structured Text
15
LD - Ladder Diagram
16
FBD - Function Block Diagram
17
SFC - Sequential Function Chart
66
18
określenie ang. „task”
67
19
MBNF - zmodyfikowana notacja Backusa-Naura
68
69
Programując duże systemy automatyki często sięga się po języki wysokiego poziomu.
Mogą to być powszechnie znane języki Pascal, C, BASIC, ale dostępne są także języki
specjalizowane, np.: IRT-FORTRAN, Concurrent Pascal, Modula, Ada [10].
IRT-FORTRAN20 został opracowany w drugiej połowie lat siedemdziesiątych jako
rozwinięcie klasycznego języka programowania. Dostosowanie do potrzeb programowania
systemów czasu rzeczywistego osiągnięto definiując biblioteki podprogramów i funkcji
zewnętrznych. Dzięki temu składnia języka nie uległa zmianie, co sprzyjało zaakceptowaniu
nowego standardu. Dodatkowe biblioteki umożliwiają realizację zadań z zakresu:
zarządzania zadaniami użytkowymi;
wymiany informacji pomiędzy zadaniami i procesem;
20
IRT-FORTRAN - Industrial Real-Time Fortran
70
71
Podejmuje się także próby wykorzystania diagramów stanu jako podstawy języka
programowania algorytmów binarnych. Przykładem tego może być opisana w [25] metoda.
Diagram stanu jest grafem, składającym się z wierzchołków symbolizujących stany
procesu (si) i krawędzi skierowanych, pokazujących możliwe przejścia pomiędzy nimi.
Ponadto krawędzie te są opisane warunkami przejść (ci) i działaniami (ai) jakie należy wykonać
realizując dane przejście. Fragment takiego diagramu prezentuje rysunek 2.22.a. Diagram
stanów może być z łatwością przekształcony do schematu blokowego, od którego wiedzie już
prosta droga do zapisu algorytmu w języku wysokiego poziomu (rysunek 2.22.b i c).
a) b) c)
s2 s1 C stan s1
c1/a1 10 IF C1.EQ.FALSE GOTO 20
N CALL A1
c1 ?
T GOTO 30
s1
N 20 IF C2.EQ.FALSE GOTO 10
c2 ? CALL A2
T
c2/a2,a3 CALL A3
s3
GOTO 40
a1 a2
C stan s2
a3
40 . . .
s2 s3
Rys. 2.22. Ilustracja przejścia od diagramu stanu (a) poprzez schemat blokowy (b)
do języka wysokiego poziomu - FORTRANu (c)
72
a) b)
COND: MACRO CONDIT,STATE,ACT1,ACT2 S1: DW C1
DW CONDIT ; adres procedury warunku DW S11
DW NXT+2 ; adres następnego warunku DW S2
DW STATE ; adres następnego stanu DW A1
DW ACT1 ; adres procedury akcji 1 DW 0
DW ACT2 ; adres procedury akcji 2 DW 0
NXT: DW 0 ; znacznik końca rekordu S11: DW C2
ENDM DW S12
DW S3
S1: COND C1,S2,A1,0 DW A2
COND C2,S3,A2,A3 DW A3
COND CT,S1,0,0 ; CT jest adresem procedury DW 0
S2: COND C4,S4,A4,0 ; dającej zawsze wynik FALSE S12: DW CT
COND C5,S5,A4,0 DW S2
COND CT,S2,0,0 DW S1
S3: DW 0
DW 0
DW 0
S2: DW C4
Innym podejściem do wykorzystania pojęć stanów i przejść między nimi jest metoda
opisana w [42]. Jej autorzy wyróżniają kilka etapów na drodze do rozwiązania końcowego:
1. Dekompozycja zadania na mniejsze, wzajemnie powiązane podzadania, celem uproszczenia
implementacji sterownika. Część tych podzadań jest ściśle związana z wejściami
i wyjściami binarnymi, a inne są wyłącznie wewnętrznymi fragmentami działania całego
73
2.3.10.4 CODE
74
75
76
77
Jeżeli rozważymy sterownik logiczny jako samodzielny lub będący częścią większego
systemu układ, to bez trudu możemy wskazać pewne grupy sygnałów:
XO - zbiór sygnałów wejściowych z obiektu;
XW - zbiór wewnętrznych zmiennych wykorzystywanych w procesie wyznaczania
kolejnego sterowania;
XS - zbiór zewnętrznych zmiennych logicznych, będących informacją przychodzącą od
innych sterowników lub obwodów sterowania;
YO - zbiór wyjściowych sygnałów oddziałujących na obiekt;
YW - zbiór wewnętrznych wyjściowych zmiennych logicznych;
YS - zbiór wyjściowych sygnałów, wysyłanych do innych sterowników lub obwodów
sterowania.
Powyższy podział jest zilustrowany rysunkiem 3.1.
YO
sterownik
sterowane
YS RAM: urządzenie
(obiekt)
XW,YW
XS
XO
Rys. 3.1. Zewnętrzne i wewnętrzne sygnały sterownika logicznego
78
Definicja 3.2
Słowem wyjściowym yj automatu nazywamy dowolny ciąg zmiennych wyjściowych
yk Y = YO YW YS, przy czym YO .
Działanie sterownika polega na reagowaniu na zmiany sygnałów wejściowych
odpowiednimi zmianami sygnałów wyjściowych. Uwzględniając ponadto fakt wpływu
„historii” procesu na zachowanie się sterownika, dochodzi się do wniosku, że sterownik
binarny może być traktowany jako automat skończony.
W teorii układów sekwencyjnych wyróżnia się dwa podstawowe rodzaje automatów:
automat Moore’a;
automat Mealy’ego.
W odniesieniu do tego samego zadania sterowania automat Mealy’ego umożliwia w wielu
przypadkach realizację układu o mniejszej liczbie stanów wewnętrznych, ale o trudniejszym
opisie funkcji wyjść . We współczesnej technice mikroprocesorowej, przy dostępnych
z reguły dużych zasobach pamięciowych, liczba stanów automatu nie jest wielkością
krytyczną. Istotniejszy jest w miarę wygodny sposób jego opisu. Z powyższych względów
opracowana metoda JODA21 bazuje na koncepcji traktowania układu sterowania binarnego
jako automatu Moore’a.
Biorąc także pod uwagę właściwy systemom komputerowym synchronizm operacji,
polegający na ograniczeniu reagowania na zmiany sygnałów wejściowych tylko do ściśle
określonych chwil czasu, otrzymuje się model sterownika jako układu synchronicznego typu
Moore’a. Model ten można zdefiniować następująco.
21
Nazwa metody została wzięta od związanego z nią Języka Opisu Dyskretnych Automatów - JODA
79
80
81
82
83
84
Tabela 3.1
Złożoność obliczeniowa wybranych metod wartościowania wyrażeń logicznych.
n - liczba zmiennych logicznych; L - liczba implikantów w wyrażeniu logicznym;
s - długość słowa w bajtach; axx , bxx - współczynniki zależne od typu procesora docelowego.
złożoność pamięciowa złożoność czasowa
metoda programu danych algorytmu
P D C
n
tablicy wartości a1P 2 a1C
bezpośredniego wyliczania a2PC - a2C2 /(3log2n +8)+b2Cn
n
22
Definicje złożoności obliczeniowych można znaleźć np. w [8]
85
Definicja 3.4
Zakodowaną tablicą przejść TP w metodzie JODA nazywamy strukturę danych złożoną
z rekordów odnoszących się do poszczególnych stanów automatu, a zawierających:
(i) liczbę L wszystkich implikantów w funkcjach przejść ze stanu bieżącego do możliwych
stanów następnych;
(ii) zakodowane metodą maska-wzór implikanty wraz z kodami stanów następnych;
(iii) kod stanu bieżącego, kończący definiowaną strukturę.
Jak wynika z powyższej definicji zakodowana tablica przejść uwzględnia jedynie
przejścia między stanami, pomijając warunki stabilności poszczególnych stanów automatu.
Zakłada się po prostu, że stan automatu nie ulega zmianie, gdy nie zachodzą warunki jego
zmiany, dzięki temu nie trzeba wymieniać w tablicy przejść warunków stabilności.
Przykładową strukturę zakodowanej tablicy przejść automatu prezentuje niniejszy przykład.
86
Rys. 3.4. Przykład kodowania tablicy przejść dla automatu z przykładu 2.3:
a) przyporządkowanie słowom wejściowym zmiennych logicznych; b) tablica przejść;
c) zmodyfikowany graf przejść; d) funkcje przejść;
e) wynik kodowania (maski i wzory zapisane w formacie liczb szesnastkowych)
W pojedynczym rekordzie zakodowanej tablicy przejść dowolny stan następny może
występować wiele razy. Liczba jego wystąpień jest równa liczbie implikantów w zapisie APN
wyrażenia logicznego warunkującego przejście do tego stanu ze stanu bieżącego. Przyjęcie
przez dowolny z implikantów reprezentowanych słowami masek i wzorów wartości logicznej
‘1’ oznacza spełnienie całego wyrażenia logicznego i możliwość przejścia do stanu następnego
związanego z tym implikantem. Dlatego też po każdej parze słów maska-wzór wpisywany jest
kod stanu następnego. Przy zerowej wartości logicznej każdego z implikantów danego rekordu
tablicy przejść TP nie zachodzą warunki do realizacji przejścia i automat pozostaje w stanie,
którego kod kończy ten rekord.
Zakodowana zgodnie z powyższą definicją tablica przejść automatu może być
następnie zapisana do pamięci programu sterownika. Funkcjonowanie automatu polega
na cyklicznym sprawdzaniu czy dla jego bieżącego stanu spełniony jest któryś z warunków
przejść. Operacja ta polega na przejrzeniu z całej tablicy tylko jednego rekordu
odpowiadającego stanowi bieżącemu. Aktualne słowo wejściowe xi jest mnożone logicznie
przez maski i porównywane ze wzorami, tak jak przy wartościowaniu wyrażenia metodą
87
88
Przykład 3.2
Załóżmy, że automat z przykładu 3.1 jest w stanie s3 przy a = 0 i b = 0. Zmiana sygnału
b : 0 1 powoduje spełnienie warunku przejścia:
s3 - s4 = b
Do stanu s4 automat przechodzi z sygnałami wejściowymi a = 0 i b = 1. Ta kombinacja
wartości a i b spełnia kolejny warunek przejścia:
s4 - s1 = /a
Automat przechodzi więc do stanu s1.
Stosując opisany w poprzednim punkcie algorytm jednokrotny, przykładowe przejście
od stanu s3 poprzez s4 do s1 zostałoby zrealizowane w dwóch kolejnych cyklach obsługi
automatu. Gdyby jednak zmodyfikować ten algorytm, docelowy stan s1 mógłby być osiągnięty
w jednym cyklu obsługi bez większych trudności. Modyfikacja ta polega na ponownym
sprawdzeniu warunków przejść dla wyznaczonego stanu następnego (różnego od stanu
bieżącego) i aktualnej wartości słowa wejściowego y. Zmieniony algorytm przedstawiałby się
następująco.
Algorytm iteracyjny
nowy_stan := stan_bieżący;
repeat
stan_bieżący := nowy_stan;
k := 1;
with TP[stan_bieżący] do
begin
while ( k L ) and ( xi and maskak wzórk ) do
k := k+1;
if k > L then
nowy_stan := stan_bieżący
else
nowy_stan := stan_następnyk;
end;
until nowy_stan = stan_bieżący;
89
Ważnym składnikiem opisu zachowania się automatu jest jego tablica wyjść,
przyporządkowująca poszczególnym stanom wartości wyjściowych zmiennych logicznych.
Funkcją określającą zawartość tej tablicy jest użyta w definicji 3.3 funkcja : (st) = yt.
Ponieważ jednowymiarowa macierz wyjść MW przechowująca słowa wyjściowe yt jest
prostym w implementacji rozwiązaniem (uwzględniając etap kodowania i późniejsze
wykorzystywanie), została ona również zastosowana do opisu wyjść automatu-sterownika w
metodzie JODA.
Operowanie stablicowanymi słowami wyjściowymi automatu ma jeszcze jedno
uzasadnienie praktyczne. Przy konstrukcji sterownika logicznego jako specjalizowanego
systemu mikroprocesorowego konieczne jest stosowanie właściwych metod jego
programowania. Chodzi tu o wewnętrzną strukturę oprogramowania sterownika. Jednym
z elementów właściwej organizacji procesu przetwarzania informacji wejściowej i wyjściowej
jest stosowanie tzw. buforów programowych portów zewnętrznych. Są to struktury danych
w pamięci RAM sterownika będące kopią informacji odczytywanej z portów zewnętrznych lub
90
Przykład 3.3
Automat z przykładu 2.3 i przykładu a) b)
S Y stan wyjść w 1w 0 00h
3.1 ma trzy możliwe słowa
s1 y1 00 03h
wyjściowe: y1, y2 i y3. Słowa te mogą s2 y3 11 01h
być zrealizowane przez dwie zmienne s3 y2 01 01h
Do tej pory rozważano dla uproszczenia słowo wyjściowe automatu yt złożone tylko
ze zmiennych wyjściowych yO YO (zbioru sygnałów oddziałujących na sterowany obiekt).
Nie są to jedyne możliwe wyjściowe sygnały automatu. Rysunek 3.1 uwzględnia także zbiór
YS sygnałów służących koordynacji pracy różnych automatów, obsługiwanych zarówno przez
ten sam sterownik, jak i przez inne urządzenia, tworzące razem rozproszony system
automatyki. Zmienne wyjściowe należące do tego zbioru YS mogą być traktowane jako flagi,
sygnalizujące pewne specyficzne w danym zadaniu sterowania stany automatu. Flagi te mogą
przykładowo informować inne automaty o:
wystąpieniu stanów awaryjnych;
gotowości lub nie danego automatu do współpracy z innymi;
trybach pracy danego automatu.
Ze względu na duże znaczenie tych dodatkowych wyjściowych zmiennych logicznych
przewidziano w metodzie JODA użycie obok słowa wyjściowego, także słowa flag. Sposób
jego definiowania jest taki sam jak w przypadku słowa wyjściowego. Również reprezentacja
binarna wewnątrz sterownika mikroprocesorowego opiera się na tej samej, macierzowej
91
Definicja 3.5
Tablicą wyjść TW automatu w metodzie JODA nazywamy strukturę danych określającą stany
wyjść binarnych i wielowartościowych, składającą się z rekordów odnoszących się
do poszczególnych stanów automatu, a zawierających obligatoryjnie:
(i) słowo wyjściowe yO zmiennych oddziałujących na sterowany obiekt;
zaś opcjonalnie:
(ii) słowo wyjściowe yS flag służących koordynacji działania danego automatu z pozostałymi
układami sterowania;
(iii) słowo wyjściowe yW zmiennych binarnych lub zakodowanych binarnie zmiennych
wielowartościowych.
W świetle powyższej definicji przykładowa tablica wyjść automatu pokazana
na rysunku 3.5 jest zbiorem czterech jednobajtowych rekordów danych, zawierających tylko
obligatoryjne słowa wyjściowe yO. Poniżej podany jest przykład kodowania automatu, którego
funkcje przejść są uzależnione od upływu czasu.
Przykład 3.4
Zmodyfikujemy warunki przejść automatu z przykładu 3.1 tak, aby niektóre z nich
uwzględniały także zależności czasowe. W tym celu wprowadzimy nową zmienną wejściową
t, która przyjmuje wartość: logicznego ‘0’, gdy nie upłynął zadany parametrem tCSi czas
92
93
94
95
96
Słowo wejściowe automatu xt w chwili t jest wynikiem operacji łączenia trzech słów
xOt, xWt, xSt:
xt = xOt xWt xSt
W najprostszym możliwym przypadku xt = xOt, czyli zmiennymi wejściowymi automatu są
wyłącznie sygnały dwustanowe odbierane ze sterowanego obiektu. Sygnały te są grupowane
i odczytywane za pośrednictwem portów równoległych systemu mikroprocesorowego.
97
98
23
ALU - jednostka arytmetyczno-logiczna (ang. Arithmetic-Logic Unit)
99
Definicja 3.6
Tablicą TS opisu stanów automatu w metodzie JODA nazywamy strukturę danych złożoną
z rekordów o stałej długości, odpowiadających poszczególnym stanom si (i = 0..N-1)
automatu, uporządkowanych według rosnącego indeksu i, a zawierających obligatoryjnie:
(i) wskaźnik do właściwego rekordu zakodowanej tablicy przejść TP automatu;
(ii) słowo wyjściowe yO zmiennych oddziałujących na sterowany obiekt;
opcjonalnie:
(iii) słowo wyjściowe yW zmiennych binarnych lub zakodowanych binarnie zmiennych
wielowartościowych.
Wymóg stałej długości rekordów tablicy TS jest związany z umożliwieniem
szybkiego wyboru właściwego rekordu po zmianie stanu automatu. Po takiej zmianie,
dysponując jedynie kodem liczbowym (od 0 do N-1) nowego stanu, można z łatwością
wskazać odpowiadający mu rekord. Wyboru rekordu dokonuje się wykorzystując mechanizm
adresowania tablicy o znanym adresie początkowym i długości jej elementów:
adres_rekordu := adres_początku_tablicy + kod_stanu długość_rekordu
Szybki wybór rekordu tablicy TS jest ważny przy stosowaniu iteracyjnego algorytmu zmiany
stanu automatu. Potrzebną w tym przypadku informacją jest wymieniony w definicji 3.6
obligatoryjny wskaźnik do rekordu tablicy TP. Wskaźnikiem tym jest najczęściej adres
początkowy tego rekordu w przestrzeni adresowej programu. Mając dostępny ten wskaźnik-
adres można niezwłocznie przystąpić do sprawdzania warunków przejść dla nowo
osiągniętego stanu. Dzięki temu przyśpiesza się realizację iteracyjnego algorytmu zmiany
stanu. Również w przypadku algorytmu jednokrotnego posługiwanie się adresem
początkowym odpowiedniego rekordu z tablicy TP, która ma nieregularną strukturę (rekordy
o zróżnicowanej długości), usprawnia proces obsługi automatu.
100
101
Definicja 3.7
Tablicą flag TF automatu w metodzie JODA nazywamy wektor złożony z uporządkowanych
względem indeksu i słów wyjściowych ySi = (si), służących informowaniu pozostałych
układów sterowania o bieżącym stanie automatu.
Zastosowanie dla słów yS odrębnej niż w przypadku yO i yW struktury danych jest
podyktowane innym mechanizmem korzystania z tej informacji. Transmisję słów yS
do pozostałych układów sterowania, zarówno obsługiwanych przez ten sam sterownik, jak
i przez inne urządzenia, realizują wydzielone procedury obsługi wspólnych obszarów RAM
lub łączy komunikacyjnych. Transmisja informacji służącej synchronizacji pracy automatu
może być realizowany cyklicznie lub tylko na żądanie. Zwłaszcza w tym drugim przypadku
korzystne jest wydzielenie ciągu słów flagowych yS i odwoływanie się do niego na podstawie
kodu bieżącego stanu automatu.
Ponieważ wartości słów yS dla poszczególnych stanów są znane na etapie
przygotowywania opisu automatu, zapisanie ich w składni języka programowania sterownika
nie nastręcza większych trudności. Jeśli chodzi o strukturę elementów tablicy TF,
to niezależnie od wielkości słów yS właściwym rozwiązaniem jest operowanie w zapisie
pojedynczymi bajtami. Bajtowa struktura tablicy TF zdaje egzamin zwłaszcza przy wymianie
informacji za pośrednictwem łączy komunikacyjnych sterowników.
102
wyznaczenie bitów
słowa xWt
skompletowanie
słowa xSt
wyznaczenie stanu
następnego ‘stan_nast’
N stan_nast = stan_bież ?
T
stan_bież := stan_nast
programowanie timerów
na podstawie yWt
Rys. 3.7. Schemat blokowy operacji składających się na cykl obsługi automatu
103
a)
PZ PZ PZ PZ
OA OA OA OA
T T T T T
PZ O A t
TO A
OA OA
T T T T T
PZ O A P Z t
104
Twierdzenie 3.1
Warunkiem koniecznym prawidłowej pod względem czasowym pracy sterownika przy
obsłudze jednego automatu jest relacja:
T + fPZ PZ + fOA OA < 1
Dowód: Jeżeli sterownik ma pracować w czasie rzeczywistym, a tylko wtedy będzie on
spełniał zadanie sterowania, to musi reagować na wszystkie zdarzenia w skończonym
czasie i żadne z tych zdarzeń nie może być przeoczone. Reakcja na zdarzenia polega
na zrealizowaniu sekwencji operacji, zużywającej pewien czas jednostki centralnej
sterownika. W rozważanym przypadku zdarzeniami są: przerwania zegarowe o stałej
częstotliwości fPZ oraz wplecione w nie cykle obsługi automatu, powtarzające się
z częstotliwością fOA. Łącznie w ciągu 1 sekundy pracy jednostka centralna poświęca
na obsługę tych zdarzeń czas = fPZ PZ + fOA OA. Czas ten wraz z czasem T
wymaganym do realizacji zadań programu tła nie powinny przekraczać w sumie 1
sekundy. W przeciwnym przypadku dojdzie do nawarstwiania się nieobsłużonych
przerwań i załamania się systemu oprogramowania sterownika .
Wartości występujących w powyższej relacji czasów: T, PZ, OA zależą od mocy
obliczeniowej jednostki centralnej sterownika. W sytuacji, gdy przy założonym typie
mikroprocesora warunek ten nie może być spełniony, należy szukać możliwości zwiększenia
mocy obliczeniowej sterownika poprzez zmianę jego CPU24. Prawdopodobne są również
przypadki spełnienia powyższego warunku ze znaczną rezerwą czasową. Można wtedy, o ile
pozwala na to sprzęt sterownika (dostępne wolne zasoby: pamięci oraz portów wejścia
i wyjścia) i zachodzi taka potrzeba, obsłużyć więcej niż jeden automat. Na podstawie dowodu
twierdzenia 3.1 słuszne będzie następujące twierdzenie.
24
CPU - jednostka centralna komputera (sterownika) - ang. Central Processing Unit
105
a) TO A 2
PZ PZ PZ PZ
b) T O A 1 = T OA 2 OA 2
PZ PZ PZ PZ
OA1 OA1
T OA2 T T OA2 T T
P Z O A 1 O A 2 PZ OA1 t
T - p rogram tła P Z - obsługa przerwania zegarowego O A1,OA2 - procedury obsługi automatów
c) T OA 1
PZ PZ PZ PZ
OA1 OA1
T T OA2 T T OA2 T
P Z O A 1 O A2 T O A2 OA1 P Z + O A2 t
106
107
PZ PO PZ PO PZ
OA OA OA OA OA
T T T T
P Z O A PO O A t
108
I NT
PO PO
PZ PZ PZ
OA OA OA OA OA
T T T T
t
obs ługa:=1
powtórz:=1
o bs ługa:=0
obs ługa:=1
powtórz:=0
obs ługa:=0
obs ługa:=1
obs ługa:=0
obs ługa:=1
obs ługa:=0
PZ - obsługa przerwania zegarowego P O - obsługa przerwania obiektowego
T - program tła OA - obsługa automatu
Jedną z płaszczyzn dla autodiagnostyki może być sam algorytm sterowania binarnego.
Projektując automat możemy przewidzieć oprócz normalnych stanów jego pracy, tzn. takich
jakie są możliwe przy prawidłowym zachowywaniu się sterownika i obiektu, także stany
awaryjne. Przejście ze stanu normalnego do awaryjnego powinno być uwarunkowane
odpowiednim wyrażeniem logicznym. Ogólnie przyczyny przejścia automatu do stanu
awaryjnego można podzielić na dwie grupy:
brak spodziewanej reakcji obiektu na wysłane sterowanie (binarne lub ciągłe); źródłem tego
może być uszkodzenie torów przesyłowych sygnałów wejściowych i wyjściowych
sterownika, awarie wewnątrz samego obiektu, zanik zasilania czynnikiem energetycznym;
wystąpienie nieoczekiwanych zmian w sygnałach (binarnych lub ciągłych) przychodzących
z kontrolowanego obiektu, co może mieć podobne jak wyżej źródła.
Uwzględnienie w grafie przejść automatu powyższych zdarzeń polega
na wprowadzeniu do niego dodatkowych węzłów reprezentujących stany alarmowe i krawędzi
110
Drugą możliwą formą nadzorowania pracy układu sterowania jako automatu jest
kontrola na poziomie procedur wyznaczających jego nowy stan. Polega ona na analizowaniu
kolejnych stanów osiąganych przez automat i na wykrywaniu pojawiających się zapętleń
w grafie przejść. Zapętlenia te polegają na trwałym ograniczeniu w trakcie pracy automatu
zbioru wykorzystywanych stanów do pewnego zbioru SP S. W najprostszym przypadku ||SP||
= 2. Przyczyny takich zjawisk są dwojakiego rodzaju:
błąd projektowy, polegający na takim zdefiniowaniu funkcji przejść, że:
xP : (sPi,xP)=sPi+1 dla i=1..n-1 oraz (sPn,xP)=sP1
gdzie SP={sP1,...,sPn} i SP S i 1 < ||SP|| < N
111
112
113
114
115
T
czy nowy stan ? omiń_proc := 1
N omiń_proc := 0
RETURN
T c) START
omiń_proc = 1 ? proc. wielokrotnej
N
operacje
procedurai
RETURN
116
117
25
MBNF - Modified Backus-Naur Form
118
119
120
Przykład 3.5
Opis automatu z przykładu 3.4 w języku JODA może wyglądać na przykład tak:
jezyk a8051
automat 'przykladowy'
bity
t,-,-,-,-,-,a,b;
{ Znaczenie bitow:
t - flaga uplyniecia czasu char. stanu;
a,b - sygnaly wejsciowe}
wyjscia
-,-,-,-,-,-,w1,w0;
#; {deklaracja stalej jednobajtowej}
{ znaczenie wyjsc:
w1,w0 - sygnaly wyjsciowe}
stany
s1:; {stan 1}
s2:w0,w1,5; {stan 2}
s3:w0; {stan 3}
s4:w0,15; {stan 4}
funkcje
s1-s2=/a/b;
s1-s4=a;
s2-s1=a/b;
s2-s3=t*b/a;
s2-s4=t/a/b;
s3-s1=a/b;
s3-s4=b;
s4-s1=/a;
s4-s3=a/b+t;
koniec.
Poniżej jest przedstawiony plik wynikowy w asemblerze A8051 (MCS51) będący wynikiem
translacji opisu przykładowego automatu.
; CROSS-TRANSLATOR JODA 29. 3.96 / 17:43: 5
; AUTOMAT 'przykladowy'
; wykaz stanow automatu
s1: equ 0
s2: equ 1
s3: equ 2
s4: equ 3
; bloki opisu automatow:
db 00h,0 ; s1
dw s1tp ; s1
db 03h,5 ; s2
dw s2tp ; s2
db 01h,0 ; s3
dw s3tp ; s3
db 01h,15 ; s4
dw s4tp ; s4
121
122
tabela 3.3. / O5
26
termin ang. „infix”
27
termin ang. „postfix”
123
* (+
/
125
28
procesor dwurejestrowy może przechowywać w danej chwili tylko dwie wartości obliczeń pośrednich
i wykonywać na nich obliczenia
126
Jest to ostatni etap przetwarzania wyrażenia przed jego zakodowaniem w formie tablic
przejść. Jego zadaniem jest uzyskanie minimalnej liczby implikantów w zapisie wyrażenia.
Ponieważ nie zawsze zachodzi konieczność optymalizacji wyrażeń logicznych - często są one
proste z racji samego algorytmu sterowania binarnego - proces optymalizacji jest opcjonalny.
Do włączania i wyłączania tej opcji stosuje się dyrektywę ‘opt’ z parametrami ‘on/off’.
Domyślnie opcja ta jest wyłączona. W obecnej wersji translatora do optymalizacji zapisu
stosuje się dwie procedury.
Pierwszym krokiem optymalizacji jest zastosowanie reguły:
argi * Aj + argi */ Aj = argi
gdzie: argi - prosta zmienna (zanegowana lub nie) albo iloczyn zmiennych logicznych;
Aj - prosta zmienna logiczna.
Użycie powyższej reguły polega na rekurencyjnym poszukiwaniu par implikantów
spełniających warunek:
(Ii , Ij) | Ii = argk * Am i Ij = argk * /Am
Po znalezieniu takiej pary dokonuje się redukcji zapisu zgodnie z produkcją:
Ii + Ij argk
i powtarza się poszukiwanie. Za kryterium optymalności wyboru par (Ii , Ij) przyjmuje się
minimalną liczbę implikantów w postaci końcowej zapisu.
Drugą ze stosowanych do minimalizacji liczby implikantów regułę można zapisać
wzorem:
argi * argk + argi = argi
127
128
Przykład 3.6
Dany jest zakodowany w języku asemblera Z80 fragment programu opisujący zachowanie się
automatu Piły (opisanego w punkcie 4.2.2). Wobec utracenia oryginalnego pliku źródłowego
z opisem tego automatu w języku JODA, użyto translatora do odtworzenia funkcji przejść
automatu. W tym celu przygotowano specjalny plik tekstowy, zawierający skopiowane z pliku
do asemblacji tablice przejść: p0tp, p1tp itd. Całość poprzedzono zgodnie z wymaganiami
składni deklaracją języka docelowego, poleceniem dekodowania i deklaracją słowa
wejściowego automatu. W słowie wejściowym podano nazwy niektórych spośród używanych
zmiennych logicznych. Tekst przygotowany do translacji odwrotnej przedstawia się
następująco:
jezyk az80
dekoduj
bity
k07,k06,k05,-,-,-,rcp,t;
-,-,-,-,-,-,-,-;
-,-,-,-,-,-,-,-;
funkcje
p0tp: defb 1,02h,02h,00h,00h,00h,00h,p9,p0
p1tp: defb 1,00h,00h,14h,14h,00h,00h,p2,p1
129
130
131
132
133
134
135
Linia uzysku białka (inaczej: produkcji kazeiny) składa się z szeregu różnych
urządzeń współpracujących ze sobą w trakcie procesu produkcji (rysunek 4.1):
zbiorniki (tanki TM, TS1, TS2, TS3, TW) mleka, serwatki i wody technologicznej;
pasteryzatory (PM, PS, PW) mleka, serwatki i wody technologicznej;
mieszacz z koagulatorem, w którym przebiega proces powstawania kazeiny;
maturatory (MT1, MT2) przetrzymujące przez zadany czas mieszaninę;
sita, płuczka i wirówka, oddzielające powstały produkt od wody i resztek serwatki;
młynek rozdrabniający i suszarnia;
podgrzewacz środków myjących jako agregat pomocniczy.
Proces produkcji polega na mieszaniu w odpowiedniej proporcji, utrzymując
optymalne pH mieszaniny, uprzednio spasteryzowanych (w temperaturze p=9597C)
i schłodzonych (do temperatury CH=4560C) surowców, jakimi są mleko i serwatka.
Wytrącone w koagulatorze z mleka białko jest następnie przetrzymywane w tzw.
maturatorach. Po upływie zadanego czasu uzyskane białko jest oddzielane od roztworu
na sitach, płukane i odsączane w wirówce. Końcowym etapem jest rozdrobnienie białka przez
młynek i jego suszenie.
Na kompleksowe sterowanie pracą linii technologicznej składało się kilka zadań:
regulacja temperatury pasteryzacji i schładzania mleka, serwatki i wody technologicznej
za pośrednictwem zaworów regulacyjnych pary (ZP1, ZP2, ZP3) i wody chłodzącej (ZW1,
ZW2, ZW3);
regulacja proporcji mieszania mleka i serwatki (zawór stosunku ZR);
regulacja temperatury mieszaniny w koagulatorze (zawór pary ZP4);
136
TA NK TANK
TANKI
MLEKA WODY
SERWATKI
TM TS 1 TW
TS2 TS3
Z P1 Z W1 Z P2 ZW2 ZP3 Z W3
PAST.
PAST. PAST. WODY
MLEKA SERWATKI TECHNOL.
PM PS PW
PŁUCZKA
SITA
ZP4
KOAGULATOR
MATURAT ORY
ZR
pH MT1 MT2
MIESZA CZ
WIRÓWKA
Z P6
MŁYNEK
PODGRZEWACZ
ŚRODKÓW
MYJĄCYCH P ODAJNIK
SUSZA RNIA
Z P5
137
Tabela 4.1
Zestawienie sygnałów ciągłych i dwustanowych w agregatach
138
139
140
S101
Z 121 I1
Z101
S102
Z W1
Z P1
Z212 Z 213
I2
S203
S202 I3
Tabela 4.2
Wykaz stanów wyjść binarnych, algorytmów regulacji wielkości W1 i W2, oraz czasów
charakterystycznych stanów automatu Pasteryzator Mleka
Oznaczenia: stan urządzenia: 1 - włączone; 0 - wyłączone; - sterowane tylko ręcznie;
stosowane algorytmy regulacji wielkości ciągłej:
A0 - algorytm bez zmian (taki jak w poprzednim stanie); A1 - zawór ZR zamknięty;
A2 - regulacja dwupołożeniowa; A3 - regulacja PID; A4 - programowe rozgrzewanie;
A5 - zawór ZR otwarty 100%
141
- b6 t b5 b4 b3 b2 b1
s2 s1 - - - - b8 b7
Rys. 4.4. Struktura słowa zdarzeń istotnych automatu Pasteryzator Mleka
142
b2
b2t
b3 t
b3
b7
b1 t b2 b2b3 b7
PMR PMP PMPS PMW
b2 b3
b7b8
b2 b2 b3 t
b7 b8 b8 b8
b1 t
b7
s1
b3
b
s1
1
s1
PMGW
b7
b s1 PMA b7
P MWA
1 s s1
s1
s 2
2 s1
s1 s1
PMSX
s1 s1 PMB2,PMK1
PMK2 , PMK3
Rys. 4.5. Graf przejść automatu Pasteryzator Mleka - stany normalne i błędne.
bb bb
PMW PMK3 PMWA
bb
b7
PMB2
b7
bb
b5 PMB1 b 4 vb 6 bb PMA
PMK1 b4vb6
PMK2 bb
b2
b2
b
b3
v b b
bb PMPS
b1
b3 b
b5 b
bb
b4 b2
6
b
b 1 b b
b 4v b 6
b1
b1 b5
b PMR PMP
b
PMGW bb=b4 b5 b6
143
ŁD
SU
WT
WR
H1 H2
WR
WR
BD
SO
144
145
146
x7 x6 x5 x4 x3 x2 x1 -
x10 x9 x8
x27 x26 x25 x24 x23 x20
x32 x30
Rys. 4.8. Struktura słowa wyjściowego xOt automatów formatyzerki
Bxk12
P1 Bx12 P2 k06 P3 Bx
k 12
k0
k12 t 7
Bxk 12 k0 k1
By r cp 6 k06 0
Bx12
P12
k05 k06By t k0 6 P4
PA P9A P5A
k05 k05
k05 05
By
t k
t
t k 1 0
t k 0 5
k0
06
P11 W
7
y
x
df
W
P8 P7 P6 B
Wx 06
2
Wx
k1
t k06
k
k1
2 x
x
k
W
W
12
r cp k06
P0 P9 P10
k06By
Rys. 4.9. Graf przejść automatu Piły sterującego zespołem pił tnących
Bliżej zostanie przedstawiony jeden z automatów - Piły. Jego graf przejść pokazano
na rysunku 4.9. Automat ten wykorzystuje w swoich funkcjach przejść: sygnały z krańcówek
(k05, k06, k07, k10, k12), flagi informujące o stanie automatów Wózek (Wx, Wy) i Belka (Bx,
By), zmienną sygnalizującą upłynięcie czasu tCS danego stanu (t), stan klawisza pulpitu
operatorskiego (rcp) dedykowanego temu automatowi oraz wewnętrzną zmienną informującą
147
Poniżej umieszczono wynik translacji opisu automatu Piły z języka JODA na tekst
w asemblerze mikroprocesora Z80.
148
150
151
152
done
INCREM PRNFEED
key
feedk kerr
w done
t key funk c lrk pr nk feedk k ey kerr prnk kerr
funk kerr
START0 STARTA COUNT0 COUNT1 PRINT
key clrk funk kerr t cl rk
c lrk kerr key funk kerr
clr k ker r
key
t
STARB STARTC IFCLR CLEARONE MEMORY0 PRNFEEDM
t c lrk kerr done feedk k err
clr k t ker r key kerr
t pr nk kerr
t
CLEARALL DECREM MEMORY1 PRINTM
t c lrk kerr key done
Z każdym stanem automatu są związane pewne działania, takie jak: wyświetlenie lub
modyfikacja zawartości wskazanego licznika, sterowanie mechanizmem drukarki, itd.
Działania te wymagają dodatkowych operacji mikroprocesora. Potraktowano je jako
charakterystyczne algorytmy stanów i wykorzystano opisaną w punkcie 3.1.4.2 strukturę słowa
wyjściowego yt, które może zawierać także zmienne wielowartościowe wskazujące
na konieczne do wykonania w danym stanie operacje. Operacje te potraktowano jako
jednorazowe, tzn. realizowane tylko raz po przejściu automatu do nowego stanu.
Algorytm działania sumatora wymagał także uwzględnienia w pewnych stanach
zależności czasowych. Między innymi czas trwania stanu automatu został wykorzystany
do odpowiedniego rozpoznawania i reagowania na krótkotrwałe i długotrwałe wciśnięcia
klawisza CLR. Pojawiły się zatem czasy charakterystyczne tCS stanów, będące drugim
składnikiem yWt słowa yt automatu. W stanach niewymagających uwzględniania czasu przyjęto
153
jezyk a8051
automat sumator hematologiczny v.1,v.2
{ v.2 - 26.09.95 - mozliwosc wydruku z wszystkich 3 funkcji}
wyjscia
#,#; {czas w 1/4sek , numer algorytmu dodatkowego}
stany
{stany po wlaczeniu}
start0:1,0; {wstepne zerowanie}
starta:1,16; {wyswietlenie kolejnego nr probki}
startb:1,17; {zerowanie nr probki}
startc:1,18; {zmiana nr probki - wpisanie nowego z klawiatury}
{ podstawowe stany pracy i stany przy sprawdzaniu}
count0:1,12; {przygotowania do trybu zliczania}
count1:1,2; {tryb zliczania}
increm:1,3; {zwiekszenie o 1 wskazanego licznika}
decrem:1,4; {zmniejszenie o jeden wskazanego licznika}
memory0:1,5; {przygotowanie do trybu przegladu licznikow}
memory1:1,11; {tryb przegladu}
showmem:1,6; {wyswietlenie wskazanego licznika}
stat0:1,7; {przygotowanie do trybu statystycznego}
stat1:1,8; {tryb statystyczny}
showstat:1,9; {podanie %-ego udzialu wskazanego licznika}
ifclr:4,1; {czy kasowac?}
ifclrs:4,1; {czy kasowac w statystyce ?}
clearall:1,10; {zerowanie przed nowa probka}
ifclrone:4,1; {stan przejsciowy po wcisnieciu klawisza CLR}
clearone:2,15; {kasowanie tylko wybranego licznika krwinek}
print:2,14; {wydruk z funkcji zliczania podstawowego}
prnfeed:1,13; {wysuw papieru}
printm:2,14; {wydruk z funkcji przegladu licznikow}
prnfeedm:1,13; {wysuw papieru z funkcji przegladu licznikow}
prints:2,14; {wydruk z funkcji statystyki}
prnfeeds:1,13; {wysuw papieru z funkcji statystyki}
bity
t,key,kerr,done,feedk,prnk,funk,clrk; {0-wy bajt SZI}
{ t - flaga uplyniecia zadanego czasu;
key - flaga wcisniecia dowolnego klawisza;
kerr - flaga bledu klawiatury (wiecej niz 1 klawisz);
done - zakonczenie jakiegos dzialania;
feedk - klawisz FEED (wysuw papieru);
prnk - klawisz PRN (wydruk);
funk - klawisz FUN (wybor funkcji);
clrk - klawisz CLR (zerowanie)}
funkcje
{ start do pracy }
start0-starta=t/key/funk/clrk/prnk/feedk;
starta-count0=funk/kerr;
starta-startb=clrk/kerr;
starta-startc=key/clrk/funk/kerr;
startb-starta=/key;
startc-starta=/key;
{ praca podstawowa }
154
155
Tabela 4.4
Specyfikacja urządzeń i sygnałów kontrolno-sterujących oczyszczalni ścieków
156
Pras a osadu
Dys pozytornia
Reaktor 2 Reaktor 1
Kraty Przepompownia
wody technologicznej
Piaskownik
157
158
Jako standard przy przesyłaniu sygnałów binarnych przyjęto napięcie 220V AC.
Jedynie w niektórych punktach zastosowano lokalnie, z uwagi na BHP, napięcie obniżone.
159
160
161
162
l o in a
MLA
l o o in
a o in
i n
a o in
a
a
l o i n p o i n l
a
o in MS1
l o in a
MLOK MS0
p o in l a
r
in
l
r o in l a p
t
l o a in p
l
l o
p r o
t a
a o in
)
i n
l in
r
n
o
i
t( o
o
o a
r
in
i n
l
in
a
MLR MODL
l
MR0
i n p
n
str i
r
a) o l
l a p
t)
t
o
a
l (p s
l
MAA in
o
t r
p
in a
r o in l a str
r o in l a str
in
r
l (a
l o
o i n
i
t o in
t
l
o
r o
a
p)
a
r
in
s t
a
in
M RA r o MAOD
t
a
i n
o
r
l
t o l
i n(
r
r
in (a
o
o
t l
l st o
o
in
p p)
a
s
tr ( p r o a in l o in l a p
p
a ) MR 1 MA1
in
r l o a in
r o in l
r o in l o in
t
163
p o in a o in
p o in a
ISS1
a
p ISS0
o
n)
t a in
in
in
i
t(o
to
o in
t
r o in a in
ISA0 IS OD
r ISR0 t
st r o in a o o in a p
a in
t )t
r
t
p o (a in
n s r p
t
o
a
o
o
i p s
o
in
in
o in
r o in a str
a
r o in a str
o ( t)
str o in r a
str o in r a
a
r
in
a
o
in
a
p
t
o
r
r
r o in
r o in
Rys. 4.17. Graf przejść automatu sterującego pracą zwykłych urządzeń jednobiegowych
166
167
168
169
170
171
29
„Pomiary Automatyka Kontrola”
172
173
174
176
177
178
179
180
181
182
183
Tabela D.2
dwudrogowy trzydrogowy
normalnie zamknięty normalnie otwarty
dwudrogowy czterodrogowy
normalnie otwarty
trzydrogowy pięciodrogowy
normalnie zamknięty
Tabela D.3
y x3 y
x1 y=x1*x4
y=x1*x3+x1*x4 x1 y x1 x1 y
x1 x4
x3=0=const
x4 x3 x4 x4
y y=x1*x3 y
y=x1+x1*x4=x1+x4 x1 x1 x1 y
x1 y
x4 x4=0=const x3
x3=1=const
x4 x3
y y
y=x1 y
y=x1*x3+x1=x3+x1 x1 x1 x1
x1 y x3=1=const
x3 x4=0=const
x4=1=const x3
- ster. pneumatyczne - mechanizm
Symbole: - zasilanie - odpr. do atmosfery sprężyny powrotnej
wzrostemciśnienia
184
Tabela D.4
Podzbiór rozkazów sterowników ALSPA ZS do opisu sieci Grafcet
Rozkaz Znaczenie
Tabela D.5
185
30
o - zapis ósemkowy
186
Definicja 1
Systemem pozycja/tranzycja (P/T) jest uporządkowana szóstka postaci:
PN = (P,T,E,K,W,M0)
gdzie:
P,T - niepuste, skończone, wzajemnie nieprzecinające się zbiory odpowiednio:
pozycji (miejsc) i tranzycji (przejść);
E (P T) (T P) - relacja incydencji, której dziedzina dom(E) i przeciwdziedzina cod(E)
spełniają warunek:
dom(E) cod(E) = P T
K : P N - funkcja pojemności miejsc;
W : E N - funkcja krotności (przepustowości) krawędzi;
M0 : P N0 - funkcja znakowania (markowania) początkowego, spełniająca warunek:
M0(p) K(p), p P;
N - zbiór liczb naturalnych, N0 = N {0}.
Systemy P/T mogą być wykorzystywane
do opisu systemów wzajemnie uwarunkowanych
stanów i zdarzeń, w których pozycje mogą być
interpretowane jako lokalne stany (warunki),
a tranzycje - jako zdarzenia (operacje, czynności).
W danej chwili może być spełnionych jednocześnie
wiele warunków rozpatrywanej sieci. Takie spełnione
Rys. Błąd! Nieznany argument
przełącznika.. Przykładowa sieć warunki (aktywne pozycje) przyjęło się oznaczać
Petriego z trzema aktywnymi znacznikami ‘‘ (rysunek 1), a informację o bieżącym
pozycjami
położeniu znaczników rozumie się jako stan sieci.
Po wyjaśnieniu pojęcia znacznika sieci można bliżej określić znaczenie użytych
w ostatniej definicji pojęć:
K - określa liczbę znaczników, jakie dane miejsce może maksymalnie pomieścić;
187
Definicja 2
Niech: PN będzie siecią P/T i markowanie M : P N0 takie, że M(pi) K(p), p P.
Tranzycja t T jest przygotowana do palenia32 wtedy i tylko wtedy, gdy:
(i) p t, M(p) W(p,t);
(ii) p t, M(p) K(p) - W(t,p);
gdzie:
t = { p | (p,t) E} jest zbiorem miejsc wejściowych tranzycji t;
t = { p | (t,p) E} jest zbiorem miejsc wyjściowych tranzycji t.
31
w dalszej części pracy powyższy symbol, w ślad za literaturą [8], będzie oznaczać zbiór wszystkich pozycji
poprzedzających daną tranzycję, podobnie t będzie zbiorem wszystkich pozycji następujących po danej
tranzycji, analogicznie: p jest zbiorem wszystkich tranzycji poprzedzających daną pozycję, a p - zbiorem
wszystkich tranzycji następujących po danej pozycji.
32
termin „palenie” tranzycji jest stosowanym w polskiej literaturze odpowiednikiem ang. „firing”.
188
tranzycja nie
w zwykłych sieciach Petriego (o nieograniczonej
przygotowana pojemności miejsc) istotny jest tylko warunek (i);
dla tranzycji typu źródło (t T : t = 0) - tylko warunek
tranzycja (ii);
przygotowana
dla tranzycji typu ujście (t T : t = 0) - tylko warunek
tranzycja typu (i).
ujście
Postać warunków przygotowania tranzycji może
w ogólnym przypadku zależeć od składników
uporządkowanego zbioru komponentów wyznaczających
Rys. Błąd! Nieznany argument
przełącznika.. Ilustracja daną klasę sieci Petriego.
różnych typów tranzycji i ich Tranzycja przygotowana do palenia może zostać
stanów
odpalona, a bieżące znakowanie sieci przejdzie w
znakowanie kolejne (następnicze), zgodnie z zasadą określoną w poniższej definicji.
Definicja 3
Niech PN będzie siecią P/T, w której tranzycja t T jest przygotowana przez znakowanie M.
W wyniku odpalenia tej tranzycji nowe znakowanie M’ wyznacza się zgodnie z regułą:
M(p) - W(p,t) p t - t
M'(p) = M(p) + W(t,p) p t - t
M(p) - W(p,t) + W(t,p) p t t
M(p) w pozostałych przypadkach
Zakłada się zerowy czas palenia tranzycji - tzn. przejście od znakowania bieżącego M
do następniczego M’ odbywa się bez opóźnienia czasowego. Gdy jest kilka przygotowanych
tranzycji, to może być odpalona dowolna z nich. Odpalenia pozostałych dokonuje się wtedy,
gdy zostaną spełnione ich warunki przygotowania dla nowo uzyskanego znakowania M’.
Na potrzeby operowania sieciami P/T definiuje się funkcję przejścia.
Definicja 4
Niech PN będzie siecią P/T. Funkcją przejścia tej sieci nazywamy funkcję postaci
(M,t) = M’, określoną dla t T i M spełniających warunki podane w definicji 2:
189
Definicja 5
Niech PN będzie siecią P/T. Rozszerzoną funkcją przejścia tej sieci nazywamy funkcję ,
określoną dla t T i M spełniającą warunki:
(M,) = M;
(M,t) = ((M,),t) dla t przygotowanego dla (M,);
gdzie: oznacza słowo puste;
= tj1 tj2 ... tjr oznacza sekwencję tranzycji, których odpalenie przeprowadza
znakowanie M w znakowanie (M,);
taka że: M’(pi) K(pi), i=1..n , gdzie M’ = (M,t).
Sekwencję = tj1 tj2 ... tjr, zgodną z definicją 5, nazywa się sekwencją paleń,
a znakowanie M’ = (M,) - znakowaniem osiągalnym z M. Ponieważ dla danego znakowania
M można, zależnie od wyboru sekwencji paleń , osiągnąć różne znakowania M’, definiuje się
również zbiór znakowań osiągalnych.
Definicja 6
Niech PN będzie siecią P/T. Zbiorem znakowań osiągalnych ze znakowania początkowego M0
w sieci PN nazywamy zbiór R(PN,M0) spełniający warunki:
(i) M0 R(PN,M0);
(ii) M R(PN,M0) T taka że M = (M0,)
gdzie: T jest zbiorem wszystkich słów utworzonych nad alfabetem T, zawierającym także
słowo puste .
Pojęcie zbioru R(PN,M0) jest równoważne określeniu „przestrzeń stanów”
używanemu w teorii automatów i teorii sterowania. Łączy się ono z pojęciem grafu znakowań
osiągalnych:
G = ( R(PN,M0), ) , R(PN,M0) R(PN,M0)
pod warunkiem, że: t T takie że M’ = (M,t) i spełnione są warunki podane w definicji 2.
190
W reprezentacji graficznej sieć P/T jest przedstawiana jako graf skierowany o dwóch
rodzajach wierzchołków: pogrubionych kreskach odpowiadających tranzycjom i okręgach
symbolizujących pozycje. Krawędzie skierowane reprezentują elementy relacji incydencji E i
są oznaczane wartościami funkcji krotności W(x,y). Pojemność miejsc, określoną wartościami
funkcji krotności K(p), oznacza się symbolem K(p) umieszczonym w pobliżu symbolu
miejsca p (przykład 1). Jeżeli funkcje W i K są tożsamościowo równe 1, to powyższe
dodatkowe oznaczenia pomija się (np. krawędź (p1,t1) i pozycja p1).
a) t1 b) t1 c) t1
3 3 3
p1 p3 p1 p3 p1 p3
K(p3)=4 K(p3)=4 K(p3)=4
2 2 p4 2 2 p4 2 2 p4
p2 p2 p2
K(p2)=3 K(p4)=2 K(p2)=3 K(p4)=2 K(p2)=3 K(p4)=2
Definicja 7
Niech PN=(P,T,E,K,W,M0) będzie siecią P/T. Dla znakowania M i tranzycji t T,
spełniających warunki przygotowania podane w definicji 2, znakowanie następnicze wyznacza
się następująco
M’ = M + e[t] C
gdzie: e[t] - wektor jednostkowy o wymiarze m, w którym numer współrzędnej różnej od zera
odpowiada indeksowi tranzycji aktualnie przygotowanej w znakowaniu M.
Wykorzystanie macierzy incydencji nie zdaje egzaminu
pj
w przypadku sieci zawierających pętle (rysunek 4), tzn. takiej
w której:
(ti , pj) | ti T , pj P , ti pj pj
ti
gdzie:
Rys. Błąd! Nieznany pj = { t | (pj,t) E } - zbiór tranzycji wyjściowych miejsca pj;
argument przełącznika..
pj = { t | (t,pj) E } - zbiór tranzycji wejściowych miejsca pj.
Przykład pętli
w sieci P/T W takich sytuacjach rozwiązaniem jest stosowanie pary macierzy
incydencji C- i C+, z których pierwsza zawiera informację o krawędziach wychodzących z
pozycji do tranzycji, a druga - pozostałych. Zastosowanie notacji algebraicznej ilustruje
poniższy przykład.
192
p3 t1 p1 t2 p2 t3
Jak ilustruje to powyższy przykład, implementacja komputerowa algebraicznego
zapisu sieci P/T jest nieskomplikowana. W praktyce konstruowania oprogramowania
wspomagającego stosuje się obie notacje: na etapie opisywania sieci występuje bliższa
człowiekowi forma graficzna, która następnie, w celu dokonania analizy i symulacji,
jest przekształcana do postaci algebraicznej.
193
Składnia Grafcet
Grafcet jako wywodzący się z sieci Petriego jest językiem graficznym opartym, tak
jak te sieci, na systemie pozycji i tranzycji33. Twórcy standardu wprowadzili pewne
modyfikacje mające na celu umożliwienie opisu zdarzeń na dowolnym poziomie
szczegółowości. Między innymi pojawiło się pojęcie makroetapów pozwalających uzyskiwać
zwięźlejszy i czytelniejszy zapis problemu dzięki hierarchizacji opisu. Usystematyzowano
reguły tworzenia sieci, stosowania komentarzy do poszczególnych jej składników, tak aby
translacja z poziomu Grafcet do kodu sterownika mikroprocesorowego mogła być
zrealizowana algorytmem nadającym się do implementacji komputerowej [9].
Definicja 8
Siecią Grafcet jest trójka:
G=<E,T,L>
w której:
E={e1,e2,...,en} - niepusty, skończony zbiór elementów zwanych etapami34;
T={t1,t2,...,tn} - niepusty, skończony zbiór elementów zwanych tranzycjami, taki że:
ET=
L - relacja na zbiorze E T , spełniająca warunek:
L = (E T) (T E)
tzn. L jest skończonym zbiorem krawędzi skierowanych: od tranzycji do miejsc i od miejsc
do tranzycji.
Sieć Grafcet jest więc grafem zorientowanym o dwóch podstawowych typach
wierzchołków. Zarówno miejsca jak i tranzycje mają po kilka swych odmian, dzięki czemu
sieć ta umożliwia modelowanie różnorodnych procesów, tak sekwencyjnych jak
i współbieżnych. Zestawienie symboli graficznych dostępnych w Grafcet zawiera tabela D.7,
a przykładowe ich użycie - rysunek 6 [27].
33
określenia: „pozycja, tranzycja” są bezpośrednim tłumaczeniem ang. „position, transition” stosowanym
w polskojęzycznej literaturze przedmiotu, w niektórych opracowaniach spotyka się także równoważne im
określenia „miejsce, przejście”.
34
„etap” - zamienne określenie „pozycji” lub „miejsca”
194
195
koniec sekwencji
d jednoczesnych
początek sekwencji
(koniunkcyjnych)
opcjonalnych
(dysjunkcyjnych)
6 E
uwarunkowanie
operacji
e e U
powtórzenie 7 F 9 operacja
sekwencji
H warunkowa
f i*j ij
8 G 10 I
k przeskok etapu
gh 11 J
gh
koniec sekwencji
dysjunkcyjnych 12 T=45s operacja rozpoczęcia
zliczania czasu
t 13/45s warunek przejścia
zależny od czasu
196
197
Definicja 9
Etap nazywamy aktywnym od momentu rozpoczęcia jego wykonywania do rozpoczęcia etapu
następnego.
Aktywny etap jest oznaczany na grafie kropką w jego symbolu. W danej chwili
w sieci może być wiele etapów aktywnych. Dokonując animacji sieci odpowiadającej
zachowaniu się modelowanego systemu obserwowalibyśmy krążenie po sieci wzdłuż jej
krawędzi kropek - znaczników aktywności etapów. Przy uaktywnianiu procedur
współbieżnych widoczne byłoby przy tym powielanie kropek na wszystkie uaktywniane
gałęzie, a przy ich kończeniu - łączenie się kropek z poszczególnych gałęzi. Przy uaktywnianiu
makroetapów kropka wpisuje się w górnej części odpowiedniego bloku reprezentującego ten
makroetap. W trakcie działania makroetapu uaktywnianie są kolejno jego etapy składowe,
zgodnie z grafem rozwinięcia. Uaktywnienie bloku OUT makroetapu oznacza przejście całego
makroetapu w stan gotowości (zakończono realizację operacji objętych danym makroetapem),
198
Definicja 10
Stanem procesu jest zbiór informacji o stanie aktywności jego etapów.
Definicja 11
Tranzycję uważa się za przygotowaną, gdy wszystkie poprzedzające ją bezpośrednio etapy są
aktywne.
Modelowanie zachowania się systemu za pośrednictwem sieci Grafcet można ująć
w następujących regułach:
Etap początkowy reprezentuje stan procesu w momencie jego rozpoczęcia. Tranzycja
następująca po tym etapie opisana jest warunkiem oznaczającym zakończenie inicjalizacji
sterownika. Sieć Grafcet może zawierać więcej niż jeden etap początkowy.
Zmiana stanu procesu jest reprezentowana przez zapalenie tranzycji, co następuje wtedy,
gdy: wszystkie poprzedzające ją etapy są aktywne i zakończone, i gdy spełniony jest
warunek logiczny opisujący tę tranzycję.
Zapalenie tranzycji (realizacja przejścia) powoduje dezaktywację poprzedzających ją
etapów i uaktywnienie wszystkich etapów po niej następujących.
Wszystkie tranzycje przygotowane i mające spełnione warunki logiczne są zapalane
jednocześnie.
Jeżeli podczas zmiany stanu procesu ten sam etap jest jednocześnie uaktywniany
i dezaktywowany, to pozostaje on w stanie aktywnym.
Makroetap jest uaktywniany, gdy zapalona zostaje tranzycja, od której prowadzi do niego
krawędź skierowana. Uaktywnienie makroetapu jest równoznaczne z uaktywnieniem etapu
IN jego rozwinięcia.
Makroetap przechodzi w stan gotowości, gdy uaktywni się etap OUT w grafie jego
rozwinięcia.
Jeżeli makroetap jednocześnie spełnia warunki aktywności i gotowości, to uznaje się, że
jest on w stanie gotowości.
199
Tabela D.8
Przykład funkcjonowania algorytmu „górki rozrządowej” przy translacji na notację polską
Wyjściowy ciąg symboli Stos pomocniczy Wejściowy ciąg symboli
(„tor wyjazdowy”) („bocznica”) („tor wjazdowy”)
b*(e+/d+/b)*f+a*/b*/(e+d)+a;
b *(e+/d+/b)*f+a*/b*/(e+d)+a;
b * (e+/d+/b)*f+a*/b*/(e+d)+a;
b *( e+/d+/b)*f+a*/b*/(e+d)+a;
be *( +/d+/b)*f+a*/b*/(e+d)+a;
be *(+ /d+/b)*f+a*/b*/(e+d)+a;
be *(+/ d+/b)*f+a*/b*/(e+d)+a;
bed *(+/ +/b)*f+a*/b*/(e+d)+a;
b e d/ *(+ +/b)*f+a*/b*/(e+d)+a;
b e d/+ *(+ /b)*f+a*/b*/(e+d)+a;
b e d/+ *(+/ b)*f+a*/b*/(e+d)+a;
b e d/+b *(+/ )*f+a*/b*/(e+d)+a;
b e d/+b/+ * *f+a*/b*/(e+d)+a;
b e d/+b/+* * f+a*/b*/(e+d)+a;
b e d/+b/+*f * +a*/b*/(e+d)+a;
b e d/+b/+*f* +a*/b*/(e+d)+a;
b e d/+b/+*f* + a*/b*/(e+d)+a;
b e d/+b/+*f*a + */b*/(e+d)+a;
b e d/+b/+*f*a +* /b*/(e+d)+a;
b e d/+b/+*f*a +*/ b*/(e+d)+a;
b e d/+b/+*f*a b +*/ */(e+d)+a;
b e d/+b/+*f*a b/ +* */(e+d)+a;
b e d/+b/+*f*a b/* +* /(e+d)+a;
b e d/+b/+*f*a b/* +*/ (e+d)+a;
b e d/+b/+*f*a b/* +*/( e+d)+a;
b e d/+b/+*f*a b/*e +*/( +d)+a;
b e d/+b/+*f*a b/*e +*/(+ d)+a;
b e d/+b/+*f*a b/*e d +*/(+ )+a;
b e d/+b/+*f*a b/*e d+ +*/ +a;
b e d/+b/+*f*a b/*e d+/* + +a;
b e d/+b/+*f*a b/*e d+/*+ + a;
b e d/+b/+*f*a b/*e d+/*+a + ;
b e d/+b/+*f*a b/*e d+/*+a+;
200
35
W prezentowanych zapisach zmieniane fragmenty wyrażenia są przekreślone, wynik ich modyfikacji -
podkreślony.
201
Optymalizacja wyrażenia
202
203
204
205
206