ZESPÓŁ SZKÓŁ ELEKTRONICZNYCH -TECHNIKUM ELEKTRONICZNE
w Zielonej Górze
Veo - Pracownia układów mikroprocesorowych i mikrokomputerów
Vsk - Pracownia systemów mikroprocesorowych
Przewodnik do ćwiczeń
Nr ćwiczenia - S7_5
Temat ćwiczenia:
Podprogramy, przerwania i skoki.
(Realizacja funkcji złożonych na sterowniku)
1. Cykliczne przetwarzanie programu. Podprogramy
Program użytkownika umieszczony jest w bloku organizacyjnym OB1. Blok ten jest wywoływany przez system operacyjny sterownika cyklicznie.
Najprostszy program zapisany w OB1 może składać się z ciągu instrukcji wykonywanych kolejno, aż do ostatniej instrukcji MEND, po wykonaniu której cykl się powtarza. Program tak skonstruowany nazywa się programem liniowym.
W przypadku bardziej złożonych algorytmów tworzy się program o strukturze modularnej, który można podzielić na mniejsze części. Program taki oprócz modułu liniowego (stanowiącego program główny) zawiera ponadto moduły warunkowe - podprocedury. Podprocedurą (podprogramem) nazywa się wyodrębnioną sekwencję rozkazów, która realizuje określone operacje oraz ma jednoznacznie identyfikującą ją nazwę. W języku STEP 7MicroWin podprocedury mają nazwy:
SBR n
(n jest numerem podprocedury. Dla sterownika S7-212 n jest od 0 do 15).
Program główny wykonywany jest cyklicznie, natomiast podprocedury wywoływane są opcjonalnie - przy spełnieniu określonego warunku.
Do wywołania podprocedury n służy rozkaz skoku:
CALL n
Jest to rozkaz skoku ze śladem, t.zn.z zapamiętaniem powrotnego adresu instrukcji położonej bezpośrednio za rozkazem wywołania.
Powrót z podprogramu umożliwia rozkaz bezwarunkowy:
RET
lub warunkowy:
CRET
Rozkaz CALL n jest wykonywany jeżeli szczytowy bit stosu jest równy 1.
2. Przetwarzanie programu sterowane przerwaniami
Przetwarzanie sterowane przerwaniami odbywa się wtedy, gdy sygnał przychodzący od obiektu powoduje, że procesor w sterowniku przerywa cykliczne przetwarzanie programu i realizuje program specjalny. Po wykonaniu tego programu procesor kontynuuje przetwarzanie w programie cyklicznym.
Źródła przerwań
W sterowniku S7-212 przerwania mogą wywoływać następujące zdarzenia:
Zdarzenie
|
Nr zdarzenia |
Odbiór danych |
8 |
Koniec transmisji danych |
9 |
Zbocze dodatnie na wejściu I0.0 |
0 |
Zbocze ujemne na wejściu I0.0 |
1 |
Osiągnięcie wartości zadanej przez licznik szybki HSC0 |
12 |
Przerwanie czasowe |
10 |
Program obsługi przerwania ma etykietę
INT n
(n w S7-212: 0 do 31).
Powrót z programu obsługi przerwania do programu głównego realizuje instrukcja:
RETI
Przydzielenie programu obsługi przerwania INT n do określonego zdarzenia dokonuje się w instrukcją:
ATCH n, nr zdarzenia
Odłączenie zdarzenia od programu obsługi przerwania wykonuje się instrukcją:
DTCH nr zdarzenia
Odblokowanie wszystkich przerwań realizuje instrukcja:
ENI
Zablokowanie przerwań realizuje instrukcja:
DISI
3. Nowe instrukcje STL
Operator |
Argument |
Opis |
Uwagi |
JMP |
n |
skok do etykiety n |
n od 0 do 63 |
LBL |
n |
etykieta |
|
CALL |
n |
wywołanie podprogramu |
n od 0 do 15 |
SBR |
n |
oznaczenie początku podprogramu |
|
RET |
|
bezwarunkowy powrót z podprogramu |
|
CRET |
|
warunkowy powrót z podprogramu |
|
INT |
n |
oznaczenie początku programu obsługi przerwania |
n od 0 do 31 |
RETI |
|
powrót z programu obsługi przerwania |
|
CRETI |
|
warunkowy powrót z programu obsługi przerwania |
|
ENI |
|
odblokowanie przerwań |
|
DISI |
|
zablokowanie przerwań |
|
ATCH |
n,nr zdarzenia |
Przydzielenie programu obsługi przerwania INTn do określonego numeru zdarzenia |
|
DTCH |
nr zdarzenia |
Odłączenie zdarzenia od programu obsługi przerwania |
|
4/4
...
...
...
....
MEND
OB1
wynik poprzedniej operacji ustawia
szczytowy bit stosu S0
...............................................................
...................................................................
................................................................
MEND
Tak
bit stosu S0
ustawiony ?
skocz do podprocedury obsługi zdarzenia SBR1
Nie
Kontynuuj program
główny
OB1
SBR1
...........
...........
RET