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_4
Temat ćwiczenia:
Funkcje liczenia
1.Przeznaczenie liczników
Sterowniki programowalne umożliwiają realizację funkcji liczenia. W układach sterowania liczniki wykorzystuje się najczęściej do:
zliczania impulsów (zdarzeń, obiektów) do nastawionej wartości w celu realizacji kolejnego kroku algorytmu;
wykonywania okreslonego zadania do momentu kiedy licznik osiągnie nastawioną wartość zadaną.
bieżącej kontroli liczby zliczanych obiektów.
2. Nowe instrukcje STL
Operator |
Argument |
Opis |
Przykład |
Uwagi |
CTU |
Cxxx, PV |
Licznik zliczający w górę (C0 -C47) |
CTU C12, 100 |
xxx: 0 do 47; 0 do 63 PV-wart. zadana |
CTUD |
Cxxx, PV |
Licznik dwukierunkowy(C48-C63) |
CTUD C63, 12 |
|
LDW= |
N1,N2
|
Ładuj na stos wynik porównania N1 (=,>=,<=) N2 |
LDW= VW0, 3 |
|
LDW>= |
|
|
LDW>= MW2,VW0 |
|
LDW<= |
|
|
LDW<= C0, 5 |
|
AW= |
N1,N2 |
Iloczyn wyniku porównania N1 (=, >=, <=) N2 i szczytu stosu. Wynik iloczynu zapisany na stos. |
AW= VW2,5 |
|
AW>= |
|
|
AW>= T0, 50 |
|
AW<= |
|
|
AW<= C48, VW10 |
|
OW= |
|
Suma logiczna wyniku porównania N1 (=, >=, <=) N2 i szczytu stosu. Wynik sumy zapisany na stos |
OW= VW560, 20 |
|
OW>= |
|
|
OW>= MW3, C0 |
|
OW<= |
|
|
OW<= T0, 250 |
|
Instrukcje porównania LDW, AW, OW porównują wartości dwóch słów (N1,N2).
Argumenty N1, N2:
VW pamięć danych
T bieżąca wartość czasu zapisana w słowie członu czasowego
C aktualna liczba zliczonych impulsów zapisana w słowie licznika
IW rejestr obrazu wejść
QW rejestr obrazu wyjść
MW pamięć znaczników
SMW znaczniki specjalne
AC akumulator
AIW wejścia analogowe
stała
Litera W przy symbolu zmiennej oznacz słowo (word). Zmienne T, C, AC nie są wyróżniane literą W, ponieważ zawsze są adresowane jako słowo.
LDW= N1,N2 |
Jeżeli N1=N2 wynik porównania jest 1 logiczną. W przeciwnym wypadku wynik porównania jest 0 logicznym.
|
AW= N1,N2 |
|
OW= N1,N2 |
|
LDW>= N1,N2 |
Jeżeli N1>=N2 wynik porównania jest 1 logiczną. W przeciwnym wypadku wynik porównania jest 0 logicznym.
|
AW>= N1,N2 |
|
OW>= N1,N2 |
|
LDW<= N1,N2 |
Jeżeli N1<=N2 wynik porównania jest 1 logiczną. W przeciwnym wypadku wynik porównania jest 0 logicznym.
|
AW<= N1,N2 |
|
OW<= N1,N2 |
|
3. Liczniki dostępne w sterowniku Simatic S7-212
Sterowniki S7-212 posiadają:
liczniki zliczające w górę CTU (C0 - C47)
liczniki dwukierunkowe CTUD (C48 - C63)
3.1. Licznik zliczający w górę CTU
Licznik CTU można przedstawić jako blok funkcyjny
posiadający :
wejścia
CU format binarny
R (zerowanie) format binarny
PV (zadana liczba impulsów) liczba całkowita
wyjścia
C (bit stanu licznika) format binarny
CV (aktualna liczba impulsów) liczba całkowita
Licznik zlicza zbocza narastające sygnału pojawiającego się na wejściu CU. Wynik zliczania podawany jest na wyjście CV.
Aktualna liczba impulsów CV zapisywana jest w pamięci danych w słowie (16 bitów) i traktowana jest jako liczba ze znakiem. Może przyjmować wartości od -32767 do +32767. Do tego słowa można wpisać wartość początkową zliczania lub można przesłać jego zawartość do innej komórki pamięci (też do słowa).
Jeżeli liczba impulsów CV (Current Value) osiągnie lub przekroczy liczbę zadaną na wejściu PV (Preset Value), to bit stanu C przyjmie wartość 1.
Wejście R zeruje licznik (wartość aktualną CV i bit stanu C).
3.2. Licznik dwukierunkowy CTUD
Licznik CTUD można przedstawić jako blok funkcyjny
posiadający :
wejścia
CU (zliczanie w górę) format binarny
CD (zliczanie w dół) format binarny
R (zerowanie) format binarny
PV (zadana liczba impulsów) liczba całkowita
wyjścia
C (bit stanu licznika) format binarny
CV (aktualna liczba impulsów) liczba całkowita
Wartość licznika (CV) jest zwiększana lub zmniejszana, gdy na odpowiednim wejściu (UP lub CD) pojawia się zbocze narastające.
Jeżeli liczba impulsów CV (Current Value) osiągnie lub przekroczy liczbę zadaną na wejściu PV (Preset Value), to bit stanu C przyjmie wartość 1.
Wejście R zeruje licznik (wartość aktualną CV i bit stanu C).
Zakres zliczanych impulsów (CV) jest taki sam jak dla licznika CTU . Zapisywanie wartości początkowej zliczania i przesyłanie wartości aktualnej do innych obszarów pamięci odbywa się tak samo jak dla licznika CTU (za pomocą instrukcji MOVW).
4. Programowanie
4.1. Uruchomienie licznika
Uruchomienie licznika wymaga załadowania jego wejść (CU, CD, R) na stos i określenia wartości zadanej.
licznik CTU
LD I0.0 //wejście zliczania w górę
LD I0.1 //wejście reset
CTU C33,10 //ustawienie wartości zadanej na 10
licznik CTU
LD I0.0 //wejście zliczania w górę
LD I0.1 //wejście zliczania w dół
LD I0.2 //wejście reset
CTUD C48,20 //ustawienie wartości zadanej na 20
4.2. Wykorzystanie bitu stanu licznika
Bit C licznika =1 jeżeli wartość aktualna >= wartości zadanej. Można sprawdzać stan bitu C i wykonanie operacji logicznej uzależniać od tego stanu.
Przykład:
Gdy liczba zliczanych impulsów w liczniku C33 będzie >= 10 (wartość zadana) powinno załączyć się wyjście Q0.0:
LD C33 //ładuj na stos stan bitu C33
= Q0.0 //jeżeli na szczycie stosu jest stan 1 (tzn. jeżeli stan bitu C33 jest 1) załącz Q0.0
4.3. Wykorzystanie aktualnej wartości przechowywanej w liczniku
Aktualną wartość licznika można przesyłać - służy do tego celu instrukcja MOVW.
Przykład:
Przesłanie aktualnej wartości licznika C33 do słowa pamięci VW0:
MOVW C33, VW0
Aktualną wartość licznika można porównywać z wartościami zapisanymi w innych komórkach pamięci (słowach) lub ze stałymi liczbowymi.
Przykład:
Jeżeli aktualna wartość licznika C33 jest >= 15 powinno załączyć się wyjście Q0.1 Jeżeli aktualna wartość licznika C33 jest >= 20 i <= 25 powinno załączyć się wyjście Q0.2.
LDW >= C33,15 //Sprawdź, czy zawartość licznika C33 jest >= 15. Jeżeli tak wynikiem sprawdzenia jest 1. Jeżeli nie wynikiem sprawdzenia jest 0. Ładuj na szczyt stosu wynik sprawdzenia.
= Q0.1 //Jeżeli na szczycie stosu jest stan 1 załącz wyjście Q0.1
LDW>= C33, 20 //Sprawdź czy zawartość licznika C33 jest >= 20 jeżeli tak ładuj na szczyt stosu 1.
AW<= C33,25 /Sprawdź czy zawartość licznika C33 jest <= 25. Jeżeli tak wynik sprawdzenia wynosi 1. Jeżeli nie wynik sprawdzenia wynosi 0. Wykonaj iloczyn logiczny wyniku sprawdzenia i bitu na szczycie stosu. Wynik iloczynu zapisz na szczycie stosu.
= Q0.2 //jeżeli na szczycie stosu jest stan 1 załącz wyjście Q0.2
2/4
CTU
CU C
R
PV CV
CTUD
CU C
CD
R
PV CV