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_3
Temat ćwiczenia:
Funkcje czasowe
Funkcje czasowe pozwalają na programową realizację opóźnień czasowych.
1. Opóźnienie załączenia TON
Człon czasowy TON można przedstawić jako blok
posiadający :
wejścia
IN (włączanie / wyłączanie) format binarny
PT (zadana wartość czasu opóźnienia) liczba całkowita
wyjścia
T (bit czasu) format binarny
CT (wartość bieżąca odmierzanego czasu) liczba całkowita
Człon czasowy mierzy czas obecności na wejściu IN sygnału 1 logicznej. Pomiar czasu odbywa się do wartości maksymalnej (32,767s , 327,76s lub 3276,7s - wynikającej z wybranej podstawy czasu). Jeżeli IN=1 przez czas dłuższy niż wartość maksymalna wynik pomiaru utrzymuje się na wartości maksymalnej. Pojawienie się na IN sygnału 0 logicznego zeruje wartość odmierzoną czasu.
Bieżąca wartość odmierzanego czasu jest zapisywana w pamięci w zarezerwowanym słowie (rejestr 16 bitowy) CT jako liczba całkowita ze znakiem wybranych jednostek czasu (podstawa czasu do wyboru: 1ms, 10ms lub 100ms). (Maksymalna liczba ze znakiem zapisana w rejestrze 16 bitowym to 32767).
Aktualizacja wartości bieżącej odbywa się w każdym cyklu pracy sterownika dopóki wejście IN=1, a wartość bieżąca nie osiągnęła wartości maksymalnej, tj. 32767 jednostek czasu.
Aby uzyskać większą dokładność mierzenia czasu należy wybrać mniejszą podstawę czasu. Maksymalna wartość odmierzonego czasu, jaką można zapisać w słowie (16 bitów) ze znakiem to:
32767 x podstawa czasu.
W słowie PT zapisana jest wartość zadana czasu opóźnienia. Procesor porównuje wartość bieżącą czasu CV z wartością zadaną opóźnienia PT. Osiągnięcie lub przekroczenie przez CV wartości PT powoduje ustawienie w stan 1 wyjścia T (bit czasu). Bit T zostaje wyzerowany gdy na wejściu IN pojawi się 0 logiczne.
Przykładowe przebiegi czasowe dla członu czasowego TON o podstawie czasu 10ms przedstawia rysunek 1. Zmiana wartości na wejściu IN z 0 na 1 w chwili t=0 uruchamia zliczanie czasu. Wartość rejestru CT zwiększa się o 1 co 100ms. Po 32,767s osiąga wartość maksymalną 32767 i utrzymuje się na tej wartości ponieważ wejście IN nadal jest równe 1.
Po czasie 10s wartość w rejestrze CT osiąga wartość zadaną PT tj. 10000 i stan bitu T zmienia się z 0 na 1.
Po zmianie stanu wejścia IN z 1 na 0 w chwili t=47s następuje wyzerowanie rejestru CT i bitu T.
W chwili t=60s następuje ponowna zmiana stanu IN z 0 na 1 i kolejne rozpoczęcie odmierzania czasu. Po 5 sekundach, zanim wartość bieżąca CT osiągnęła wartość zadaną PT, IN przyjmuje wartość 0, co powoduje zerowanie rejestru CT. Wyjście T pozostaje w stanie 0.
Rys. 1. Przykładowe przebiegi czasowe dla członu czasowego TON o podstawie czasu 10ms
2. Opóźnienie załączania z podtrzymaniem TONR
Człon czasowy TONR można przedstawić jako blok
posiadający :
wejścia
IN (włączanie) format binarny
R (kasowanie) format binarny
PT (zadana wartość czasu opóźnienia) liczba całkowita
wyjścia
T (bit czasu) format binarny
CT (wartość bieżąca odmierzanego czasu) liczba całkowita
Człon czasowy TONR zlicza czas w wybranych jednostkach, jeśli stan wejścia IN=1 i zapamiętuje odmierzony czas gdy IN=0. Ponowne pojawienie się stanu 1 na IN powoduje kontynuację odmierzania czasu. W każdym cyklu pracy sterownika wartość bieżąca CT (16 bitowy rejestr) jest uaktualniana i odzwierciedla sumaryczny czas aktywności wejścia IN (IN=1). Osiągnięcie lub przekroczenia przez CT wartości zadanej PT powoduje ustawienie bitu T. Osiągnięcie przez CT wartości maksymalnej, tj. 32767 jednostek czasu, zatrzymuje odmierzanie czasu. Wartość maksymalna przechowywana jest w pamięci, bit T pozostaje w stanie 1 niezależnie od stanu wejścia IN.
Pojawienie się sygnału kasującego na wejściu R (R=1) powoduje wyzerowanie wartości bieżącej CT i bitu T.
Rys. 2 Przykładowe przebiegi czasowe członu czasowego TONR
W chwili A wejście IN przyjmuje wartość 1 i uruchamia zliczanie czasu. W chwili B wartość bieżąca CT osiąga wartość zadaną PT i bit T przyjmuje wartość 1, a wartość CT jest dalej uaktualniana. W chwili C pojawia się sygnał kasujący R=1, co powoduje zatrzymanie zliczania czasu i wyzerowanie wartości bieżącej oraz bitu T. W chwili D sygnał kasujący znika, więc rozpoczyna się ponowne odmierzanie czasu (ponieważ IN=1) aż do chwili E, w której IN zmienia stan na 0. Po ponownym pojawieniu się stanu 1 na IN w chwili F, zliczanie czasu jest kontynuowane aż do pojawienia się 0 na IN w chwili H, przy czym w chwili G (tj. gdy wartość bieżąca CT osiąga wartość zadaną PT ) bit T zmienia stan na 1.
3. Programowanie
Do uruchamiania członu czasowego służy instrukcja
TON Txxx,PT
TONR Txxx,PT
xxx - numer członu czasowego , PT-wartość zadana
Czas zostaje uruchomiony jeżeli szczytowy bit stosu = 1 (parametr wejściowy IN).
Nowe instrukcje STL języka STEP 7MicroWin:
Operator |
Argument |
Opis |
Przykład |
TON |
Txxx, PT |
Uruchomienie członu czasowego opóźniającego załączenie (o numerze xxx) z wartością zadaną opóźnienia PT |
TON T33,100 Uruchomienie członu T33 (podstawa czasu 10ms) z wartością zadaną opóźnienia 100 jednostek (t.zn. 100x10ms=1s) |
TONR |
Txxx,PT |
Uruchomienie członu czasowego opóźniającego załączanie ( z podtrzymaniem) z wartością zadaną PT. |
TONR T0,1000 Uruchomienie członu czasowego z podtrzymaniem T0 (podstawa czasu 1ms) z wartością zadaną opóźnienia 1000 jednostek (t.zn. 1000x1ms=1s) |
MOVW |
IN, OUT |
Prześlij słowo z wejścia o podanym adresie na wyjście o podanym adresie |
MOVW T33,VW100 Prześlij wartość bieżącą czasu (CT) do słow pamięci danych VW100. |
TON
IN T
PT CT
0
10
20
30
40
t (s)
IN
32767
CT
t
PT=10000
t
1
T
1
0
50
60
70
R
TONR
IN T
R
PT CT
T
IN
CT
PT
A
B
C
D E
F G
H
t
t
t
t