28
1
Wykład 11
Wykład 11
•
Sprawy organizacyjne
Sprawy organizacyjne
•
Translacja oprogramowania napisanego w
Translacja oprogramowania napisanego w
różnych językach,
różnych językach,
•
Graf Sekwencji ( SFC)
Graf Sekwencji ( SFC)
Uwagi wstępne,
Uwagi wstępne,
Etapy, przejścia, działania,
Etapy, przejścia, działania,
Sekwencje,
Sekwencje,
Reguły konstrukcji grafów,
Reguły konstrukcji grafów,
„
„
Dobry styl programowania”
Dobry styl programowania”
Przykłady błędów oraz „niebezpiecznych
Przykłady błędów oraz „niebezpiecznych
konstrukcji grafów,
konstrukcji grafów,
Forma tekstowa SFC,
Forma tekstowa SFC,
Uwagi końcowe.
Uwagi końcowe.
28
2
UWAGA!
UWAGA!
•
19 05 2009 ( za tydzień) – w terminie
19 05 2009 ( za tydzień) – w terminie
wykładu
konsultacje
dotyczące
pytań
wykładu
konsultacje
dotyczące
pytań
egzaminacyjnych,
egzaminacyjnych,
•
26 05 2009 – termin „0” egzaminu
26 05 2009 – termin „0” egzaminu
( godzina i sala ta sama, co wykład),
( godzina i sala ta sama, co wykład),
•
Wpis ocen z terminu „0”: 02 06 termin i
Wpis ocen z terminu „0”: 02 06 termin i
sala tam gdzie wykład,
sala tam gdzie wykład,
•
Termin 1 egzaminu: 16 06 2009 – godzina i
Termin 1 egzaminu: 16 06 2009 – godzina i
sala będą podane.
sala będą podane.
28
3
Możliwości translacji oprogramowania
Możliwości translacji oprogramowania
napisanego w różnych językach.
napisanego w różnych językach.
Uwagi wstępne.
Uwagi wstępne.
•
Łatwa
i
pełna
możliwość
translacji
Łatwa
i
pełna
możliwość
translacji
oprogramowania napisanego w różnych
oprogramowania napisanego w różnych
językach była jednym z fundamentalnych
językach była jednym z fundamentalnych
założeń podczas tworzenia normy IEC 1131.
założeń podczas tworzenia normy IEC 1131.
•
Niestety, było to tylko „myślenie życzeniowe”,
Niestety, było to tylko „myślenie życzeniowe”,
ponieważ w praktyce taka translacja nie zawsze
ponieważ w praktyce taka translacja nie zawsze
jest możliwa. Utrudnienia są spowodowane
jest możliwa. Utrudnienia są spowodowane
różnymi czynnikami, które zostaną omówione.
różnymi czynnikami, które zostaną omówione.
28
4
LD
LD
FBD
FBD
IL
IL
ST
ST
L
L
D
D
•
Prosta ( oba
Prosta ( oba
języki zbliżone
języki zbliżone
do siebie).
do siebie).
Możliwa,
ale
Możliwa,
ale
nie
zawsze
nie
zawsze
prosta
prosta
( problemy z
( problemy z
EN i ENO –
EN i ENO –
mogą one być
mogą one być
używane jako
używane jako
dodatkowe
dodatkowe
wejścia
i
wejścia
i
wyjścia)
wyjścia)
•
Funkcje
logiczne
Funkcje
logiczne
łatwe do translacji
łatwe do translacji
•
Problemy z EN i
Problemy z EN i
ENO.
ENO.
F
F
B
B
D
D
•
Prosta ( oba
Prosta ( oba
języki
zbliżone
języki
zbliżone
do siebie).
do siebie).
Możliwa, ale nie
Możliwa, ale nie
zawsze łatwa. EN
zawsze łatwa. EN
i ENO mogą być
i ENO mogą być
używane
jako
używane
jako
dodatkowe
dodatkowe
wejście i wyjście.
wejście i wyjście.
•
Funkcje
logiczne
Funkcje
logiczne
łatwe do translacji
łatwe do translacji
•
Problemy z EN i
Problemy z EN i
ENO.
ENO.
IL
IL
Bardzo
trudna
i
Bardzo
trudna
i
możliwa
tylko
w
możliwa
tylko
w
niektórych
niektórych
przypadkach
(
nie
przypadkach
(
nie
wszystkie funkcje IL
wszystkie funkcje IL
są dostępne w innych
są dostępne w innych
językach)
językach)
Bardzo
trudna
i
Bardzo
trudna
i
możliwa
tylko
w
możliwa
tylko
w
niektórych
niektórych
przypadkach ( nie
przypadkach ( nie
wszystkie funkcje IL
wszystkie funkcje IL
są
dostępne
w
są
dostępne
w
innych językach)
innych językach)
Bardzo
trudna
i
Bardzo
trudna
i
możliwa
tylko
w
możliwa
tylko
w
niektórych
niektórych
przypadkach
(
nie
przypadkach
(
nie
wszystkie funkcje IL są
wszystkie funkcje IL są
dostępne
w
innych
dostępne
w
innych
językach)
językach)
S
S
T
T
Nie zawsze możliwa
Nie zawsze możliwa
( np. pętle, IF THEN
( np. pętle, IF THEN
ELSE, itp.)
ELSE, itp.)
•
Odwołania do tablic i
Odwołania do tablic i
struktur niemożliwe w
struktur niemożliwe w
LD
LD
Nie zawsze możliwa (
Nie zawsze możliwa (
np. pętle, IF THEN
np. pętle, IF THEN
ELSE, itp.)
ELSE, itp.)
•
Odwołania do tablic
Odwołania do tablic
i struktur niemożliwe
i struktur niemożliwe
w LD
w LD
Zawsze możliwa
Zawsze możliwa
(
wykonywana
(
wykonywana
podczas
podczas
kompilacji).
kompilacji).
28
5
Graf Sekwencji ( SFC)
Graf Sekwencji ( SFC)
Uwagi wstępne.
Uwagi wstępne.
•
SFC jest narzędziem dedykowanym do budowy
SFC jest narzędziem dedykowanym do budowy
programów
programów
sterowania sekwencyjnego
sterowania sekwencyjnego
(tzn. takich,
(tzn. takich,
które zawierają łatwe do zdefiniowania etapy, działania
które zawierają łatwe do zdefiniowania etapy, działania
wykonywane w każdym etapie oraz jednoznacznie
wykonywane w każdym etapie oraz jednoznacznie
zdefiniowane warunki przejść pomiędzy etapami )
zdefiniowane warunki przejść pomiędzy etapami )
•
Dobry
przykład
sterowania
sekwencyjnego
to
Dobry
przykład
sterowania
sekwencyjnego
to
sterowanie pralką.
sterowanie pralką.
•
Metodologia SFC bazuje na sieciach Petriego P/T oraz
Metodologia SFC bazuje na sieciach Petriego P/T oraz
Grafcecie.
Grafcecie.
•
SFC pozwala opisać: wszystkie możliwe etapy
SFC pozwala opisać: wszystkie możliwe etapy
programu, wszystkie warunki przejścia pomiędzy
programu, wszystkie warunki przejścia pomiędzy
etapami i działania wykonywane w każdym z etapów .
etapami i działania wykonywane w każdym z etapów .
•
Element oprogramowania zbudowany z użyciem SFC
Element oprogramowania zbudowany z użyciem SFC
jest zawsze elementem dynamicznym – musi to być FB
jest zawsze elementem dynamicznym – musi to być FB
lub program.
lub program.
•
Plik źródłowy zbudowany z użyciem SFC musi zawsze
Plik źródłowy zbudowany z użyciem SFC musi zawsze
być kompilowany.
być kompilowany.
•
Graf jest budowany z użyciem innych języków
Graf jest budowany z użyciem innych języków
programowania.
programowania.
•
Graf jest budowany z trzech typów elementów:
Graf jest budowany z trzech typów elementów:
•
etapów,
etapów,
•
przejść,
przejść,
•
działań.
działań.
28
6
Etap reprezentuje określony, konkretny stan programu.
Etap reprezentuje określony, konkretny stan programu.
Musi mieć swoją jednoznaczną nazwę i w każdym grafie
Musi mieć swoją jednoznaczną nazwę i w każdym grafie
jeden etap może pojawić się tylko jeden raz. Dla
jeden etap może pojawić się tylko jeden raz. Dla
pojedynczego grafu etap ma charakter
pojedynczego grafu etap ma charakter
lokalny.
lokalny.
{
nazwa
}
Etap początkowy
Etap początkowy
Dla każdego grafu może być zdefiniowany
Dla każdego grafu może być zdefiniowany
tylko jeden
tylko jeden
etap początkowy, jest on
etap początkowy, jest on
aktywowany wyłącznie podczas
aktywowany wyłącznie podczas
zimnego
zimnego
restartu.
restartu.
{
nazwa
}
Zwykły
Zwykły
etap
etap
Rodzaje etapów:
Rodzaje etapów:
Etap
Etap
y
y
28
7
Z każdym etapem są skojarzone dwie zmienne,
Z każdym etapem są skojarzone dwie zmienne,
przydatne do synchronizacji i monitorowania etapu. Ich
przydatne do synchronizacji i monitorowania etapu. Ich
wartość jest dostępna w innych częściach grafu:
wartość jest dostępna w innych częściach grafu:
<
<
Nazwa Etapu
Nazwa Etapu
>.X – flaga aktywności etapu
>.X – flaga aktywności etapu
Zmienna typu BOOL, równa TRUE podczas aktywności
Zmienna typu BOOL, równa TRUE podczas aktywności
etapu.
etapu.
<
<
Nazwa Etapu
Nazwa Etapu
>.
>.
T – czas trwania etapu
T – czas trwania etapu
Zmienna typu TIME. Gdy etap startuje, jest ustawiany na
Zmienna typu TIME. Gdy etap startuje, jest ustawiany na
0. Podczas aktywności etapu jest aktualizowany przez
0. Podczas aktywności etapu jest aktualizowany przez
RTC i opisuje czas trwania tego etapu. Wartość tej
RTC i opisuje czas trwania tego etapu. Wartość tej
zmiennej jest pamiętana po zakończeniu etapu i jest
zmiennej jest pamiętana po zakończeniu etapu i jest
kasowana i uruchamiana ponownie przez jego następne
kasowana i uruchamiana ponownie przez jego następne
uruchomienie.
uruchomienie.
Przykład zastosowania:
Przykład zastosowania:
Fill
Stir
Fill.T > T#10m
Fill.T > T#10m
28
8
Przejścia
Przejścia
Przejście
opisuje
warunki
zakończenia
Przejście
opisuje
warunki
zakończenia
poprzedniego etapu i rozpoczęcia następnego.
poprzedniego etapu i rozpoczęcia następnego.
•
Każde przejście musi mieć zdefiniowany
Każde przejście musi mieć zdefiniowany
warunek.
warunek.
•
Przejście jest zawsze opisane przez zmienną
Przejście jest zawsze opisane przez zmienną
lub wyrażenie typu boolowskiego, w przejściu
lub wyrażenie typu boolowskiego, w przejściu
można też użyć jako warunek stałą: TRUE lub
można też użyć jako warunek stałą: TRUE lub
FALSE ( np. gdy wymaga tego poprawna
FALSE ( np. gdy wymaga tego poprawna
konstrukcja grafu)
konstrukcja grafu)
•
Warunek przejścia może być opisany każdym
Warunek przejścia może być opisany każdym
z języków programowania PLC.
z języków programowania PLC.
•
Przejście może być też reprezentowane przez
Przejście może być też reprezentowane przez
swoją nazwę lub etykietkę.
swoją nazwę lub etykietkę.
28
9
s2
s3
a
b
Język LD:
Język LD:
s2
s3
&
b
a
Język FBD:
Język FBD:
s2
s3
a AND NOT b
Język ST:
Język ST:
28
10
Użycie konektora (etykietki):
Użycie konektora (etykietki):
s2
s3
warunek_1 >
a
b
warunek_1
>
Etykietka może być użyta do opisania warunku
Etykietka może być użyta do opisania warunku
pokazanego w innej części grafu ( w celu poprawienia
pokazanego w innej części grafu ( w celu poprawienia
jego czytelności ).
jego czytelności ).
28
11
Przejścia z własnymi nazwami ( ang. Named Transitions):
Przejścia z własnymi nazwami ( ang. Named Transitions):
s2
s3
Trans_23
Definicja w języku LD:
Definicja w języku LD:
a
b
Trans_23
TRANSITION Trans_23:
TRANSITION Trans_23:
END_TRANSITION
END_TRANSITION
•
Przejście z nazwą zdefiniowane jeden raz, może być
Przejście z nazwą zdefiniowane jeden raz, może być
wielokrotnie użyte w programie,
wielokrotnie użyte w programie,
•
Definicja przejścia może się znajdować np. na innej
Definicja przejścia może się znajdować np. na innej
stronie programu.
stronie programu.
•
Do zdefiniowania może być użyty każdy z języków.
Do zdefiniowania może być użyty każdy z języków.
Ogólna
postać
Ogólna
postać
wywołania przejścia z
wywołania przejścia z
nazwą:
nazwą:
28
12
Język FBD:
Język FBD:
TRANSITION Trans_23:
TRANSITION Trans_23:
END_TRANSITION
END_TRANSITION
&
b
a
Trans_23
Trans_23
Język ST:
Język ST:
TRANSITION Trans_23:
TRANSITION Trans_23:
:= a & NOT b;
:= a & NOT b;
END_TRANSITION
END_TRANSITION
Język IL:
Język IL:
TRANSITION
TRANSITION
Trans_23:
Trans_23:
LD a
LD a
AND N b
AND N b
END_TRANSITION
END_TRANSITION
28
13
Działania
Działania
Działanie opisuje, co musi być wykonane
Działanie opisuje, co musi być wykonane
podczas aktywności etapu, z którym jest
podczas aktywności etapu, z którym jest
skojarzone.
skojarzone.
•
Każdy etap w SFC może być skojarzony z jednym lub
Każdy etap w SFC może być skojarzony z jednym lub
kilkoma działaniami ( etapy nie zawierające działań też
kilkoma działaniami ( etapy nie zawierające działań też
są dopuszczalne)
są dopuszczalne)
•
Są także dopuszczalne tzw. „działania permanentne”
Są także dopuszczalne tzw. „działania permanentne”
( tzn. nie skojarzone z żadnym etapem). Są one
( tzn. nie skojarzone z żadnym etapem). Są one
wykonywane w sposób ciągły przez cały czas
wykonywane w sposób ciągły przez cały czas
aktywności FB zawierającego graf, niezależnie od
aktywności FB zawierającego graf, niezależnie od
aktywności etapów)
aktywności etapów)
•
Korelacja czasowa pomiędzy aktywnością etapu i
Korelacja czasowa pomiędzy aktywnością etapu i
skojarzonego z tym etapem działania jest określona
skojarzonego z tym etapem działania jest określona
przez tzw.
przez tzw.
kwalifikatory
kwalifikatory
,
,
•
Działanie może być zdefiniowane z użyciem dowolnego
Działanie może być zdefiniowane z użyciem dowolnego
języka programowania PLC
języka programowania PLC
.
.
•
UWAGA:
UWAGA:
Norma nie ogranicza złożoności i typów
Norma nie ogranicza złożoności i typów
instrukcji użytych do opisu działań, ale w praktyce takie
instrukcji użytych do opisu działań, ale w praktyce takie
ograniczenia występują: np. w SIEMENSIE mogą być
ograniczenia występują: np. w SIEMENSIE mogą być
użyte wyłącznie instrukcje logiczne oraz wywołania FC i
użyte wyłącznie instrukcje logiczne oraz wywołania FC i
instancji FB.
instancji FB.
28
14
Ogólna
graficzna
reprezentacja
Ogólna
graficzna
reprezentacja
działania:
działania:
Kwalifikat
Kwalifikat
or
or
działania
działania
Nazwa
Nazwa
działania
działania
Zmienna
Zmienna
zwrotna
zwrotna
(opcjonaln
(opcjonaln
a)
a)
<Instrukcje>
<Instrukcje>
Zmienna zwrotna może być użyta np. do
Zmienna zwrotna może być użyta np. do
sprawdzania, czy wykonanie etapu zostało
sprawdzania, czy wykonanie etapu zostało
zakończone i można przejść do etapu
zakończone i można przejść do etapu
następnego.
następnego.
28
15
Kwalifikatory działania.
Kwalifikatory działania.
Kwalifikator
określa
korelację
czasową
pomiędzy
Kwalifikator
określa
korelację
czasową
pomiędzy
aktywnością etapu i aktywnością skojarzonego z tym
aktywnością etapu i aktywnością skojarzonego z tym
etapem działania.
etapem działania.
Norma opisuje następujące kwalifikatory:
Norma opisuje następujące kwalifikatory:
Kwalifikato
Kwalifikato
r
r
Opis
Opis
(brak), N
(brak), N
Kwalifikator domyślny: działanie jest wykonywane przez cały czas
Kwalifikator domyślny: działanie jest wykonywane przez cały czas
aktywności etapu, nie jest wykonywane, gdy etap nie jest aktywny.
aktywności etapu, nie jest wykonywane, gdy etap nie jest aktywny.
R
R
Kasuje aktywność działania ( które było wykonywane po użyciu
Kasuje aktywność działania ( które było wykonywane po użyciu
kwalifikatora S )
kwalifikatora S )
S
S
Ustawia aktywność działania ( działanie jest wykonywane dopóty, dopóki
Ustawia aktywność działania ( działanie jest wykonywane dopóty, dopóki
nie zostanie skasowane kwalifikatorem R )
nie zostanie skasowane kwalifikatorem R )
L
L
Działanie jest wykonywane co najwyżej przez określony czas. Jeżeli etap się
Działanie jest wykonywane co najwyżej przez określony czas. Jeżeli etap się
zakończy wcześniej, to działanie także się kończy.
zakończy wcześniej, to działanie także się kończy.
D
D
Załączenie działania z opóźnieniem – jeżeli etap się zakończy przed
Załączenie działania z opóźnieniem – jeżeli etap się zakończy przed
zadanym czasem opóźnienia, to działanie nie będzie wykonywane,
zadanym czasem opóźnienia, to działanie nie będzie wykonywane,
zakończenie wykonywania wraz z zakończeniem aktywności etapu.
zakończenie wykonywania wraz z zakończeniem aktywności etapu.
P
P
Działanie „pulsacyjne” – jeden raz wykonane przy starcie i jeden raz przy
Działanie „pulsacyjne” – jeden raz wykonane przy starcie i jeden raz przy
zakończeniu aktywności etapu.
zakończeniu aktywności etapu.
P1
P1
Działanie „pulsacyjne” – jeden raz wykonane przy starcie etapu.
Działanie „pulsacyjne” – jeden raz wykonane przy starcie etapu.
P0
P0
Działanie „pulsacyjne” – jeden raz wykonane przy zakończeniu etapu.
Działanie „pulsacyjne” – jeden raz wykonane przy zakończeniu etapu.
SD
SD
Załączenie z opóźnieniem i z zapamiętaniem – działanie startuje po
Załączenie z opóźnieniem i z zapamiętaniem – działanie startuje po
zadanym czasie nawet jak etap przestał być wcześniej aktywny.
zadanym czasie nawet jak etap przestał być wcześniej aktywny.
DS
DS
Załączenie działania z opóźnieniem – jeżeli etap się zakończy przed
Załączenie działania z opóźnieniem – jeżeli etap się zakończy przed
zadanym czasem opóźnienia, to działanie nie będzie wykonywane,
zadanym czasem opóźnienia, to działanie nie będzie wykonywane,
zakończenie wykonywania po zadanym czasie .
zakończenie wykonywania po zadanym czasie .
SL
SL
Działanie jest wykonywane przez określony czas ( niezależnie od
Działanie jest wykonywane przez określony czas ( niezależnie od
aktywności etapu).
aktywności etapu).
28
16
Uwagi:
Uwagi:
1.
1.
Kwalifikatory: L, D, SD, DS i SL wymagają
Kwalifikatory: L, D, SD, DS i SL wymagają
dodatkowego parametru – czasu trwania,
dodatkowego parametru – czasu trwania,
2.
2.
Kwalifikatory: P0 i P1 są proponowane w nowej
Kwalifikatory: P0 i P1 są proponowane w nowej
wersji normy.
wersji normy.
Graficzna reprezentacja etapu, przejścia i działania:
Graficzna reprezentacja etapu, przejścia i działania:
Kwalifikat
Kwalifikat
or
or
działania
działania
Nazwa
Nazwa
<Instrukcje>
<Instrukcje>
Etap
Przejście
Przejście
Działanie
Działanie
Uwaga
Uwaga
Forma graficzna tej reprezentacji zależy od konkretnego
Forma graficzna tej reprezentacji zależy od konkretnego
systemu PLC – np. czasem działanie jest ukryte wewnątrz
systemu PLC – np. czasem działanie jest ukryte wewnątrz
etapu.
etapu.
28
17
Reguły konstrukcji grafu:
Reguły konstrukcji grafu:
1.
1.
Dwa etapy nie mogą być bezpośrednio
Dwa etapy nie mogą być bezpośrednio
połączone, muszą być rozdzielone przejściem,
połączone, muszą być rozdzielone przejściem,
2.
2.
Dwa przejścia nie mogą być bezpośrednio
Dwa przejścia nie mogą być bezpośrednio
połączone, muszą być rozdzielone etapem,
połączone, muszą być rozdzielone etapem,
3.
3.
Jeżeli przejście od jednego etapu prowadzi do
Jeżeli przejście od jednego etapu prowadzi do
kilku następnych, to taki etap prowadzi do
kilku następnych, to taki etap prowadzi do
sekwencji
współbieżnych,
które
są
sekwencji
współbieżnych,
które
są
wykonywane niezależnie.
wykonywane niezależnie.
4.
4.
Podczas projektowania grafu można też
Podczas projektowania grafu można też
zdefiniować odpowiednią formę graficzną dla
zdefiniować odpowiednią formę graficzną dla
aktywnych i nieaktywnych etapów i przejść.
aktywnych i nieaktywnych etapów i przejść.
28
18
5.
5.
Gdy więcej niż jedno przejście jest aktywne
Gdy więcej niż jedno przejście jest aktywne
w tym samym czasie, wszystkie aktywacje i
w tym samym czasie, wszystkie aktywacje i
deaktywacje pojawiają się w tym samym
deaktywacje pojawiają się w tym samym
czasie. Nie ma różnic czasowych pomiędzy
czasie. Nie ma różnic czasowych pomiędzy
wykonaniami równoległych przejść ( tzn. w
wykonaniami równoległych przejść ( tzn. w
SFC nie występują hazardy)
SFC nie występują hazardy)
Uwaga:
Uwaga:
Czas wykonania instancji FB zawierającej
Czas wykonania instancji FB zawierającej
SFC może być dość długi! ( Należy zwrócić na
SFC może być dość długi! ( Należy zwrócić na
to
uwagę
w
aplikacjach
krytycznych
to
uwagę
w
aplikacjach
krytycznych
czasowo)
czasowo)
28
19
Typy sekwencji.
Typy sekwencji.
s2
s3
t1
Sekwencja prosta:
Sekwencja prosta:
Realizacja wyboru sekwencji:
Realizacja wyboru sekwencji:
Problem pojawia się, gdy t2 i t3 są
Problem pojawia się, gdy t2 i t3 są
jednocześnie
jednocześnie
prawdą, gdyż może być
prawdą, gdyż może być
wybrana
wybrana
tylko jedna
tylko jedna
ścieżka.
ścieżka.
Priorytet
Priorytet
domyślny:
domyślny:
Metody wyboru ścieżki:
Metody wyboru ścieżki:
Priorytet definiowany przez użytkownika :
Priorytet definiowany przez użytkownika :
s2
s3
t2
s4
t3
*
*
s2
s3
t2
s4
t3
*
*
2
2
1
1
28
20
s7
s5
t4
s6
t5
s2
s3
t2
s4
t3
.
.
Sekwencje wykluczające się:
Sekwencje wykluczające się:
Przejście jest realizowane wyłącznie wtedy, gdy
Przejście jest realizowane wyłącznie wtedy, gdy
tylko jeden
tylko jeden
warunek jest prawdą. Jeżeli tak nie jest, to przejście nie jest
warunek jest prawdą. Jeżeli tak nie jest, to przejście nie jest
wykonywane. Jest to
wykonywane. Jest to
zalecany
zalecany
sposób realizacji wyboru
sposób realizacji wyboru
sekwencji.
sekwencji.
Zakończenie
wyboru
Zakończenie
wyboru
sekwencji:
sekwencji:
Są tu te same problemy, co przy
Są tu te same problemy, co przy
początku i są stosowane te
początku i są stosowane te
same podejścia.
same podejścia.
28
21
Specjalne wersje wyboru sekwencji:
Specjalne wersje wyboru sekwencji:
Ominięcie sekwencji:
Ominięcie sekwencji:
Pętla:
Pętla:
s15
s16
t15
t15
s17
t16
t16
t1
t1
7
7
s14
t18
t18
s18
t14
t14
UWAGA:
UWAGA:
W tych konstrukcjach stosujemy te same metody wyboru ścieżki,
W tych konstrukcjach stosujemy te same metody wyboru ścieżki,
jak wyżej ( domyślne, definiowane i wykluczające się)
jak wyżej ( domyślne, definiowane i wykluczające się)
s10
s11
t10
t10
s12
t11
t11
t12
t12
s9
t9
t9
s13
t8
t8
28
22
Sekwencje współbieżne.
Sekwencje współbieżne.
Początek sekwencji współbieżnych:
Początek sekwencji współbieżnych:
s20
s21
s19
t20
t20
Zakończenie sekwencji współbieżnych:
Zakończenie sekwencji współbieżnych:
s22
s23
s24
t21
t21
WAŻNE:
WAŻNE:
Aby
zakończenie
Aby
zakończenie
mogło
być
mogło
być
zrealizowane,
zrealizowane,
wszystkie
wszystkie
współbieżne
współbieżne
sekwencje
muszą
sekwencje
muszą
być aktywne!
być aktywne!
28
23
„
„
Dobry styl programowania” z użyciem SFC:
Dobry styl programowania” z użyciem SFC:
•
Należy używać skojarzeniowych nazw etapów, przejść i
Należy używać skojarzeniowych nazw etapów, przejść i
działań,
działań,
•
Grafy
powinny
być
możliwie
proste
czytelne.
Grafy
powinny
być
możliwie
proste
czytelne.
„Zagnieżdżanie” grafów jest możliwe i zalecane w celu
„Zagnieżdżanie” grafów jest możliwe i zalecane w celu
poprawy czytelności programu.
poprawy czytelności programu.
•
Należy unikać lub zredukować do minimum interakcje
Należy unikać lub zredukować do minimum interakcje
pomiędzy różnymi sekwencjami równoległymi.
pomiędzy różnymi sekwencjami równoległymi.
•
Należy unikać uruchamiania różnych etapów w różnych
Należy unikać uruchamiania różnych etapów w różnych
alternatywnych sekwencjach z użyciem tych samych
alternatywnych sekwencjach z użyciem tych samych
zmiennych.
zmiennych.
•
Podczas konfiguracji „zagnieżdżonych” grafów należy
Podczas konfiguracji „zagnieżdżonych” grafów należy
dokładnie analizować sytuacje, gdy działanie w
dokładnie analizować sytuacje, gdy działanie w
„podgrafie” ma być zatrzymane z poziomu wyższego. W
„podgrafie” ma być zatrzymane z poziomu wyższego. W
takiej sytuacji należy zawsze sprawdzić, czy takie
takiej sytuacji należy zawsze sprawdzić, czy takie
zatrzymanie działania może być poprawnie zrealizowane.
zatrzymanie działania może być poprawnie zrealizowane.
•
Należy unikać „niebezpiecznych” konstrukcji grafu
Należy unikać „niebezpiecznych” konstrukcji grafu
( zob. przykłady)
( zob. przykłady)
28
24
Przykład błędnej konstrukcji
Przykład błędnej konstrukcji
grafu:
grafu:
28
25
Przykład
„niebezpiecznej”
konstrukcji
Przykład
„niebezpiecznej”
konstrukcji
grafu:
grafu:
28
26
Tekstowa postać SFC.
Tekstowa postać SFC.
SFC może być także zapisany w formie tekstowej. Norma
SFC może być także zapisany w formie tekstowej. Norma
opisuje odpowiednie konstrukcje językowe do zapisu
opisuje odpowiednie konstrukcje językowe do zapisu
etapów, przejść i działań. Poniżej przykład z książki
etapów, przejść i działań. Poniżej przykład z książki
Lewisa:
Lewisa:
Postać graficzna:
Postać graficzna:
28
27
Równoważny zapis w postaci tekstowej:
Równoważny zapis w postaci tekstowej:
28
28
Uwagi końcowe.
Uwagi końcowe.
•
SFC bazuje na znanych standardach (sieci Petriego i
SFC bazuje na znanych standardach (sieci Petriego i
Grafcet) i jest powszechnie stosowany w praktyce
Grafcet) i jest powszechnie stosowany w praktyce
przemysłowej.
przemysłowej.
•
Jest to dobre narzędzie do konfiguracji złożonego
Jest to dobre narzędzie do konfiguracji złożonego
sterowania sekwencyjnego z wieloma alternatywnymi
sterowania sekwencyjnego z wieloma alternatywnymi
ścieżkami,
ścieżkami,
•
SFC zapewnia także możliwość realizacji sekwencji
SFC zapewnia także możliwość realizacji sekwencji
współbieżnych,
współbieżnych,
•
Przejścia i działania są konfigurowane z użyciem
Przejścia i działania są konfigurowane z użyciem
znormalizowanych języków programowania PLC,
znormalizowanych języków programowania PLC,
•
Dodatkowe możliwości daje stosowanie kwalifikatorów
Dodatkowe możliwości daje stosowanie kwalifikatorów
działań,
działań,
•
Jest także możliwa hierarchiczna konstrukcja grafów,
Jest także możliwa hierarchiczna konstrukcja grafów,
•
SFC jest narzędziem do budowy bloków funkcyjnych i
SFC jest narzędziem do budowy bloków funkcyjnych i
programów.
programów.
•
Forma tekstowa SFC jest przewidziana w celu
Forma tekstowa SFC jest przewidziana w celu
ułatwienia przenoszenia oprogramowania pomiędzy
ułatwienia przenoszenia oprogramowania pomiędzy
różnymi systemami
różnymi systemami