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_1
Temat ćwiczenia:
STEP 7/MicroWin
(Język programowania sterowników programowalnych S7-200)
Realizacja funkcji binarnych.
1.Podstawowe dane techniczne sterownika programowalnego Simatic S7-212
Pamięć RAM 1 kB
Pamięć EEPROM 1 kB
Podtrzymywanie danych 128 bajtów przechowywane w EEPROM
wszystkie dane (RAM) podtrzymywane przez wolno rozładowujący się kondensator
Czas podtrzymania danych 50 godzin
Wejścia / wyjścia cyfrowe wbudowane 8 / 6
rodzaje wyjść DC (prąd wy 0,5A , tranzystor)
wyjścia przekaźnikowe (prąd wy 2A, przekaźnik)
AC (prąd wy 1A, triak)
Znaczniki 128
Liczniki 64 (zakres liczenia do 32767)
Człony czasowe 64
Zakres czasu 2 człony czasowe od 1ms do 30s
8 członów czasowych od 10ms do 5min.
54 człony czasowe od 100ms do 54min.
Szybkie liczniki 1 do 2kHz (liczenie w górę lub w dół)
Komunikacja wbudowany interfejs RS485 do podłączenia programatora, komputera PC lub innego urządzenia z portem szeregowym
2.Programowanie
Do programowania sterowników Simatic S7-200 wykorzystuje się język STEP-7MicroWin. Umożliwia on pisanie programów w postaci:
schematu drabinkowego LAD Ladder Diagram)
listy instrukcji STL (Statement List)
Za pomocą schematu drabinkowego nie można zapisać wszystkich programów. Pełne możliwości daje lista instrukcji.
Podstawowym elementem programu napisanego w postaci STL jest instrukcja. Pojedyncza instrukcja realizuje pewne elementarne operacje na wskazanych argumentach. Ciąg instrukcji realizujących bardziej złożone operacje tworzy segment (network). Zestaw segmentów realizujących złożone funkcje tworzy blok. Do zarządzania programem użytkownika służy tzw. blok organizacyjny OB1.
Program powinien mieć budowę strukturalną, tzn. powinien dzielić się na fragmenty (podprocedury) , które stanowią zamkniętą całość i są związane z określoną funkcją. Poszczególne fragmenty mogą być wykonywane kolejno lub mogą być wywoływane w dowolnych miejscach programu głównego.
Program główny, programy obsługi przerwań i wyróżnione podprocedury umieszczany jest w bloku OB1. Dane zapisywane są w blokach danych DB.
Realizacja programu przebiega następująco:
system operacyjny cyklicznie wywołuje blok OB1 (maksymalny czas cyklu 300ms)
w obrębie bloku segmenty wykonywane są kolejno jeden po drugim lub w kolejności wynikającej z instrukcji skoku
w obrębie segmentu wykonywane są kolejno poszczególne instrukcje jedna po drugiej lub w kolejności wynikającej z instrukcji skoku.
Format instrukcji
W instrukcjach języka STEP 7MicroWin używa się następujące typy danych:
bit, bajt, słowo, podwójne słowo.
Bit |
Zmienna mogąca przyjmować wartość logiczną 0 i 1 |
Bajt B |
Zmienna zawierająca 8 kolejnych bitów. Zakres wartości od 0 do FF H. |
Słowo W |
Dwa kolejne bajty (16 bitów). Zakres wartości od -32768 do +32767. |
Podwójne słowo D |
Cztery kolejne bajty (32 bity). |
Każda instrukcja składa się z operatora i argumentu.
Instrukcja |
||
Operator |
Argument |
|
|
Symbol |
Parametr |
Operator jest skrótową nazwą operacji, która ma zostać wykonana (np. iloczyn logiczny, suma logiczna i t.d).
Argument zawiera dane potrzebne do wykonania operacji i określa stałe lub zmienne poddane operacji. Składa się z symbolu i parametru. Symbol określa typ zmiennej (np. wejście). Parametr podaje adres zmiennej.
Adres może dotyczyć bitu, bajtu, słowa lub podwójnego słowa (w zależności od typu danej).
Adres bitowy podaje najpierw numer bajtu a następnie numer bitu w tym bajcie. Np. adres 0.0 oznacza bit 0 w bajcie 0. Adres 1.0 oznacza bit 0 w bajcie 1.
Adres bajtowy podaje numer bajtu.
Adres słowa podaje numer starszego bajtu w słowie
Uwaga: Słowo składa się z dwóch kolejnych bajtów, np. słowo o adresie 10 (W 10) zawiera bajt 10 i 11.
Adres podwójnego słowa podaje numer najstarszego bajtu w podwójnym słowie
Uwaga: Podwójne słowo składa się z czterech kolejnych bajtów. Np. podwójne słowo o adresie 10 (D 10) zawiera bajty 10, 11, 12, 13.
MSB |
|
|
|
|
|
|
LSB |
31 |
24 |
23 |
16 |
15 |
8 |
7 |
0 |
MSB |
LSB |
MSB |
LSB |
MSB |
LSB |
MSB |
LSB |
bajt 10 |
bajt 11 |
bajt 12 |
bajt 13 |
||||
|
|
|
|
W języku STEP 7MicroWin argumentami mogą być następujące typy zmiennych:
Wejście dwustanowe (Input)
I |
Na początku każdego cyklu pracy system operacyjny odczytuje stan wszystkich wejść dwustanowych i zapisuje ich wartości w specjalnym obszarze pamięci (tzw. obrazie wejść). Zmienna ta reprezentuje fizyczne wejście dwustanowe. |
Zmienne tego typu można adresować jako: bit wejściowy I (np. I0.2) Bajt wejściowy IB (np. IB0) Słowo wejściowe IW (np. IW0) Podwójne słowo wejściowe ID (np. ID0) |
Wyjście dwustanowe (Output)
Q
|
W czasie wykonywania programu wyznaczane są wartości wielkości wyjściowych i zapisywane w specjalnym obszarze pamięci (tzw. obrazie wyjść). Pod koniec każdego cyklu pracy wartości z obrazy wyjść są przekazywane na wyjścia. |
Zmienne tego typu można adresować jako: bit wyjściowy Q (np. Q0.2) Bajt wyjściowy QB (np. QB0) Słowo wyjściowe QW (np. QW0) Podwójne słowo wyjściowe QD (np. QD0) |
Znaczniki - wewnętrzna zmienna dwustanowa (w pamięci danych) (Memory) M |
Zmienna wewnętrzna wykorzystywana do przechowywania binarnych wyników pośrednich |
Zmienne tego typu można adresować jako: bit znaczników M. (np. M0.2) Bajt znaczników MB (np. MB0) Słowo znaczników MW (np. MW0) Podwójne słowo znaczników MD (np. MD0) |
Dana (Variable memory) V |
Reprezentuje wewnętrzną pamięć danych. Jest wykorzystywana do pamiętania cyfrowych wyników pośrednich |
Zmienne tego typu można adresować jako: bit danych V (np. V20.0) Bajt danych VB (np. VB20) Słowo danych VW(np. VW20) Podwójne słowo danych VD (np. VD20) |
Zmienna dotycząca czasomierza (Timer) T
|
Do realizacji funkcji czasowych |
Zmienną adresuje się jako słowo (np. T33) bit (np. T33) |
Zmienna dotycząca licznika (Counter)
C
|
Do realizacji funkcji liczenia |
Zmienną adresuje się jako słowo (np. C5) bit (np. C5) |
Zmienna dotycząca akumulatora (Accumulator) AC |
Do przechowywania wyników pośrednich |
Zmienna adresuje się jako: bajt (np. AC2) słowo (np. AC2) podwójne słowo (np. AC2) |
Znaczniki specjalne (Special Memory) SM |
Do realizacji m.in. funkcji kontrolnych |
Zmienna adresuje się jako: bit (np. SM0.0) bajt (np. SMB20) słowo (np. SMW34) podwójne słowo (np. SMD36) |
Stała (Constant) K |
Do wprowadzania wartości stałych |
Adresuje się jako: bajt słowo podwójne słowo |
Wejścia analogowe (Analog Input) AI |
Dostępne przy wykorzystaniu modułu rozszerzającego |
Zmienną adresuje się jako słowo (np. AIW0) |
Wyjścia analogowe (Analog Output) AQ |
Dostępne przy wykorzystaniu modułu rozszerzającego |
Zmienną adresuje się jako słowo (np. AQW0) |
Szybki licznik (High_Speed Counter)
HC |
Do zliczania impulsów wejściowych o częstotliwości do 2kHz |
Zmienna adresuje się jako podwójne słowo ( HC0) |
Zakresy dopuszczalnych adresów dla poszczególnych zmiennych:
Wbudowane wejścia dwustanowe I0.0 - I0.7
Wbudowane wyjścia dwustanowe Q0.0 - Q0.5
Znaczniki M0.0 - M15.7 (16 bajtów: MB0 - MB15))
Pamięć danych VB0 - VB1023 (1 kB)
Człony czasowe T0 - T63
Liczniki C0 - C63
Stałe liczba max. 32 bitowa
Akumulatory AC0 - AC3
Licznik specjalny HC0
3.Lista instrukcji
Lista instrukcji sterownika S7-200 obejmuje instrukcje: binarne, arytmetyczne, przesyłania, sterujące, instrukcje szybkie i specjalne.
Podstawowe instrukcje binarne:
Operator |
Argument |
Opis |
Przykład |
LD |
bit n |
Ładuj na stos stan bitu n |
LD I0.0 |
LDN |
bit n |
Ładuj na stos negację stanu bitu n |
LDN I0.1 |
A |
bit n |
Iloczyn logiczny stanu bitu n ze stanem bitu na szczycie stosu. Wynik iloczynu umieszczony na szczycie stosu. |
A I0.2 |
AN |
bit n |
Iloczyn logiczny negacji bitu n ze stanem bitu na szczycie stosu. Wynik iloczynu umieszczony na szczycie stosu. |
AN M0.1 |
O |
bit n |
Suma logiczna stanu bitu n ze stanem bitu na szczycie stosu. Wynik sumy umieszczony na szczycie stosu. |
O I0.5 |
ON |
bit n |
Suma logiczna negacji bitu n ze stanem bitu na szczycie stosu. Wynik sumy umieszczony na szczycie stosu. |
ON M2.1 |
NOT |
bez argumentu |
Negacja bitu szczytowego stosu |
|
= |
bit n |
Przesłanie wyniku poprzedniej operacji (ze szczytu stosu) na bit n.
|
= Q0.2 |
4. Przykłady wykorzystania instrukcji języka STEP 7MicroWin w prostych układach kombinacyjnych
Realizacja 3 wejściowej bramki logicznej iloczynu
Funkcja logiczna opisująca ten układ:
Q0.0 = I0.0xI0.2xM1.0.
Program realizujący tę funkcję w zapisie STL :
LD I0.0 |
Ładuj na szczyt stos stan bitu I0.0 |
|
A I0.2 |
Wykonaj iloczyn logiczny(AND) stanu bitu I0.2 z bitem na szczycie stosu (I0.0) , wynik zapisz na szczycie stosu (I0.0*I0.2) |
|
A M1.0 |
Wykonaj iloczyn logiczny stanu bitu M1.0 z bitem szczytowym stosu , wynik zapisz na szczycie stosu (I0.0*I0.2*M1.0) |
|
=Q0.0 |
Prześlij wynik ze szczytu stosu do bitu Q0.0 |
b) Realizacja funkcji
LD I0.1 |
Ładuj na stos stan bitu I0.1 |
O I0.2 |
Wykonaj sumę logiczną (OR) stanu bitu I0.2 z bitem na szczycie stosu (I0.1). Wynik zapisz na szczycie stosu (I0.1 + I0.2). |
O I0.5 |
Wykonaj sumę logiczną stanu bitu I0.3 z bitem szczytowym stosu, wynik zapisz na szczycie stosu (I0.5 + I0.1 + I0.2). |
NOT |
Wykonaj negację bitu na szczycie stosu |
= Q0.3 |
Prześlij wynik ze szczytu stosu do bitu Q0.3 |
6
W 10
W 12
W 11
D 10
I0.0 (We1)
I0.2 (We2)
M1.0 (We3)
Q0.0 (Wy)
I0.1 (We1)
I0.2 (We2)
I0.5 (We3)
Q0.3 (Wy)
Q0.3 = I0.1 + I0.2 + I0.5