background image

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.

background image

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.  

background image

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 

pełna 

możliwość 

translacji 

Łatwa 

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.

background image

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 

wejścia 

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 

Bardzo 

trudna 

możliwa 

tylko 

możliwa 

tylko 

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 

Bardzo 

trudna 

możliwa 

tylko 

możliwa 

tylko 

niektórych 

niektórych 

przypadkach  (  nie 

przypadkach  (  nie 

wszystkie  funkcje  IL 

wszystkie  funkcje  IL 

są 

dostępne 

są 

dostępne 

innych językach)

innych językach)

Bardzo 

trudna 

Bardzo 

trudna 

możliwa 

tylko 

możliwa 

tylko 

niektórych 

niektórych 

przypadkach 

nie 

przypadkach 

nie 

wszystkie funkcje IL są 

wszystkie funkcje IL są 

dostępne 

innych 

dostępne 

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

background image

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

background image

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

background image

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

background image

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

background image

28

9

s2

s3

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: 

background image

28

10

Użycie konektora (etykietki):

Użycie konektora (etykietki):

s2

s3

warunek_1 > 

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

background image

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: 

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

background image

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 

background image

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.

background image

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. 

background image

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 ) 

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

background image

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. 

background image

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ść.  

background image

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ę 

aplikacjach 

krytycznych 

to 

uwagę 

aplikacjach 

krytycznych 

czasowo) 

czasowo) 

background image

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

background image

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.   

background image

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

background image

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!

background image

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)

background image

28

24

Przykład  błędnej  konstrukcji 

Przykład  błędnej  konstrukcji 

grafu:

grafu:

background image

28

25

Przykład 

„niebezpiecznej” 

konstrukcji 

Przykład 

„niebezpiecznej” 

konstrukcji 

grafu: 

grafu: 

background image

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: 

background image

28

27

Równoważny zapis w postaci tekstowej: 

Równoważny zapis w postaci tekstowej: 

background image

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


Document Outline