S7-1200_cz.5.pdf

(569 KB) Pobierz
automatyka i mechatronika
i mechatronika
S7-1200: instrukcje
programowania
Sterowniki S7-1200 to najnowsze w  ofercie firmy Siemens,
doskonale wyposażone PLC, przeznaczone do małych i  średnich
systemów automatyki. Projekty dla nich można przygotowywać za
pomocą pakietu TIA Portal (Totally Integrated Automation), który
wyposażono w  edytory języków LAD i  FBD. W  artykule pokazujemy
polecenia FBD obsługiwane przez S7-1200.
Stosowany coraz częściej przy progra-
mowaniu PLC graficzny język FBD (Function
Block Diagram)
jest przyjazny dla elektroni-
ków znających technikę cyfrową: zamiast nie
zawsze oczywistych symboli wykorzystywa-
nych w LAD, programiści posługują się funk-
torami logicznymi oraz parametryzowanymi
blokami funkcjonalnymi, których wygląd jest
bliski standardowym funktorom logicznym.
W  artykule przedstawiamy ekspreso-
wy przegląd podstawowych instrukcji FBD
obsługiwanych przez sterowniki S7-1200.
Warto zwrócić uwagę, że wygoda korzysta-
nia z  zaawansowanych instrukcji FBD jest
nieporównywalnie większa niż w przypadku
LAD, który to język powstał w erze automa-
tyki „przekaźnikowej”.
Dodatkowe materiały
na CD i FTP
łączonego wejścia adres bit czy symboliczną
nazwę bitu. Kiedy wykonywana jest instruk-
cja danej ramki, wtedy na wejście ramki jest
podawany bieżący stan logiczny bitów i jeśli
wynik działania jest prawdziwy, to na wyj-
ściu pojawia się stan
True
(prawda).
Logika bitowa
Ramki AND, OR i  XOR.
W  języku pro-
gramowania FBD są dostępne ramki operacji
logicznych AND (&), OR (>=1) i  XOR (x),
w  których użytkownik może wyspecyfiko-
wać wartości bitów wejściowych i  wyjścio-
wych poszczególnych funkcji. Może również
wykonać połączenia z  innymi ramkami lo-
gicznymi, co pozwala utworzyć własną logi-
kę kombinacyjną.
Wejścia i wyjście ramki można połączyć
z inną ramką logiczną lub podać dla niepo-
Funkcja logiczna anD
Funkcja logiczna or
Funkcja logiczna Xor
Inwerter logiczny NOT.
Inwerter NOT
neguje wejściowy stan logiczny.
ELEKTRONIKA PRAKTYCZNA 5/2010
136
S7-1200: instrukcje programowania
bitu w pamięci. Jeżeli te stany wskazują, że
nastąpiła interesująca nas zmiana na wej-
ściu, to jest sygnalizowane wykrycie zbocza
poprzez wpisanie na wyjście stanu TRUE.
W  przeciwnym wypadku stanem wyjścio-
wym jest FALSE.
ramka anD z jednym wejściem
zanegowanym
ramka anD z zanegowanymi wejściem
i wyjściem
Ramka wyjściowa.
W języku FBD stosu-
je się ramki sterujące („=” i „/=”), w których
użytkownik podaje adres bitu wyjściowego
ramki. Wejścia i  wyjścia ramki mogą być
łączone z  innymi ramkami logicznymi lub
można podawać adresy bitów. Zależności
stanów logicznych są następujące:
Zerowanie r
Ustawianie i  zerowanie pola bitowego
SET_BF i  RESET_BF.
Instrukcje ustawiania
i zerowania pola bitowego muszą zajmować
skrajne, prawe pozycje w gałęzi.
– Kiedy SET_BF jest aktywowany, wtedy
wartość 1 jest przypisywana „n” bitom,
począwszy od adresu OUT. Kiedy SET_
BF nie jest aktywowany, wtedy OUT nie
ulega zmianie.
– RESET_BF przypisuje wartość 0 „n” bi-
tom, począwszy od adresu OUT. Kiedy
RESET_BF nie jest aktywowany, wtedy
OUT nie ulega zmianie.
Układy czasowe – timery
Instrukcje związane z  układami czaso-
wymi są wykorzystywane do generowania
programowanych opóźnień:
– TP: Układ czasowy
Pulse Timer
generuje
impuls o ustalonym czasie trwania.
– TON: Układ czasowy
ON-delay timer
ustawia stan swojego wyjścia Q na ON
(włączony) po upływie zadanego czasu
opóźnienia.
– TOF: Układ czasowy
OFF-delay timer
kasuje stan swojego wyjścia Q na OFF
(wyłączony) po upływie zadanego czasu
opóźnienia.
– TONR: Układ czasowy
ON-delay Reten-
tive timer
ustawia stan swojego wyjścia
na ON (włączony) po upływie zadanego
czasu opóźnienia. Upływający czas jest
naliczany przez wiele okresów, aż do
chwili, gdy zliczany upływ czasu zosta-
nie wyzerowany za pomocą wejścia R.
– RT: Kasowanie układu czasowego po-
przez wyzerowanie danych timera
w  określonym egzemplarzu bloku da-
nych układu czasowego.
Każdy układ czasowy wykorzystuje do
pamiętania danych timera strukturę prze-
chowywaną w  bloku danych timera. Blok
danych jest przypisywany timerowi przez
użytkownika wtedy, kiedy instrukcja timera
jest umieszczana w edytorze.
Kiedy instrukcja dotycząca timera zosta-
je umieszczona w bloku funkcji, wtedy moż-
na wybrać opcję zwielokrotnienia egzempla-
rzy bloku danych. Nazwy struktur timerów
mogą być różne, z oddzielnymi strukturami
danych, ale dane timera są zawarte w jednym
bloku danych i  nie są wymagane oddzielne
bloki danych dla każdego timera. W ten spo-
sób redukuje się czas przetwarzania i pamięć
niezbędną do obsługi timerów. Nie wystę-
puje żadna interakcja pomiędzy strukturami
danych timerów we współdzielonych wie-
lokrotnych egzemplarzach bloków danych.
Symbole timerów wraz z  krótkim opisem
umieszczono w tab. 2.
Parametr IN uruchamia i  zatrzymuje ti-
mery:
– Zmiana stanu parametru IN z 0 na 1 uru-
chamia timery TP, TON i TONR.
– Zmiana stanu parametru IN z 1 na 0 uru-
chamia timer TOF.
Efekty zmiany stanu parametrów PT i IN:
– TP:
– Zmiana PT nie daje żadnego efektu
podczas pracy timera.
– Zmiana IN nie daje żadnego efektu
podczas pracy timera.
FBD: Set_BF
ramka sterująca
Zanegowana ramka sterująca
ramka sterująca z zanegowanym
wyjściem
– Jeżeli w wyjściowej ramce sterującej stan
wejścia wynosi 1, to wartość bitu OUT
jest ustalana na 1.
– Jeżeli w wyjściowej ramce sterującej stan
wejścia wynosi 0, to wartość bitu OUT
jest ustalana na 0.
– Jeżeli w  zanegowanej wyjściowej ramce
sterującej stan wejścia wynosi 1, to war-
tość bitu OUT jest ustalana na 0.
– Jeżeli w  zanegowanej wyjściowej ramce
sterującej stan wejścia wynosi 0, to war-
tość bitu OUT jest ustalana na 1.
FBD: reSet_BF
Przerzutniki RS i  SR.
RS jest przerzut-
nikiem z  dominującym wejściem ustawia-
jącym. Jeżeli oba sygnały, ustawiający (S1)
i  kasujący (R), przyjmują wartość TRUE, to
pod adres wyjściowy OUT zostanie wpisana
wartość 1.
SR jest przerzutnikiem z  dominującym
wejściem kasującym. Jeżeli oba, sygnały
ustawiający (S1) i  kasujący (R), przyjmują
wartość TRUE, to pod adres wyjściowy OUT
zastanie wpisana wartość 0.
Parametr OUT określa adres bitu, który
jest ustawiany lub kasowany. Opcjonalny
sygnał wyjściowy Q odtwarza stan bitu spod
adresu OUT.
Instrukcje ustawiania i kasowania
S i R: Ustawianie (Set) i zerowanie (Re-
set)
stanu bitu.
Instrukcje zerowania i usta-
wiania stanu bitu można umieszczać w  do-
wolnym miejscu sieci.
– Kiedy S (Set) jest aktywowany, wtedy war-
tość zmiennej pod adresem OUT przyjmu-
je stan wysoki (1). Kiedy S nie jest aktywo-
wany, wtedy OUT nie ulega zmianie.
– Kiedy R (Reset) jest aktywowany, wtedy
wartość danej pod adresem OUT przyj-
muje stan niski (0). Kiedy R nie jest akty-
wowany, wtedy OUT nie ulega zmianie.
FBD: rS
FBD: Sr
Instrukcje operacji na zboczach
narastających i opadających
Detekcja przejścia dodatniego i  ujem-
nego.
Instrukcje związane z detekcją zboczy
sygnałów wymieniono w 
tab.  1.
Wszystkie
używają bitu pamięci (M_BIT) do pamięta-
nia poprzedniego stanu monitorowanego sy-
gnału wejściowego. Zbocze jest wykrywane
poprzez porównanie stanu wejścia ze stanem
ustawianie S
ELEKTRONIKA PRAKTYCZNA 5/2010
137
automatyka i mechatronika
– TON:
– Zmiana PT nie daje żadnego efektu
podczas pracy timera.
– Zmiana IN na FALSE podczas pracy
timera zeruje i zatrzymuje timer.
– TOF:
– Zmiana PT nie daje żadnego efektu
podczas pracy timera.
– Zmiana IN na TRUE podczas pracy ti-
mera zeruje i zatrzymuje timer.
– TONR:
– Zmiana PT nie ma żadnego efektu
podczas pracy timera, ale skutkuje
w czasie, gdy timer wznawia pracę.
– Zmiana IN na FALSE podczas pracy
timera zatrzymuje timer ale go nie ze-
ruje. Zmiana IN z powrotem na TRUE
powoduje, że timer rozpoczyna pracę
od zliczonej wartości czasu.
Przebiegi charakteryzujące pracę time-
rów pokazano na
rys. 1.
tab. 1. instrukcje związane z  detekcją zboczy sygnałów
ramka P
yjściowy stan ramki ma wartoś
datnia zmiana (wyłączony
true wtedy, gdy jest wykryta do
-
Liczniki
Instrukcje dotyczące liczników są stoso-
wane do zliczania wewnętrznych zdarzeń
w programie i zewnętrznych zdarzeń procesu:
– CTU to licznik zliczający w górę,
– CTD to licznik zliczający w dół,
– CTUD to licznik zliczający w  górę
i w dół.
Każdy licznik wykorzystuje do pamięta-
nia danych strukturę przechowywaną w blo-
ku danych. Blok danych jest przypisywany
timerowi przez użytkownika wtedy, gdy in-
strukcja dotycząca licznika jest umieszczona
w edytorze. Te instrukcje korzystają z liczni-
ków programowych i  ich maksymalna szyb-
kość zliczania jest ograniczona częstością
wykonywania OB, w których są umieszczone.
Kiedy instrukcja dotycząca licznika zo-
staje umieszczona w bloku funkcji, to można
wybrać opcję zwielokrotnienia egzemplarzy
bloku danych; nazwy struktur liczników
mogą być różne z  oddzielnymi strukturami
danych, ale dane licznika są zawarte w jed-
nym bloku danych i  są nie wymagane od-
dzielne bloki danych dla każdego licznika.
W ten sposób redukuje się czas przetwarza-
nia i pamięć niezbędną do obsługi liczników.
Nie występuje żadna interakcja pomiędzy
strukturami danych liczników we współ-
dzielonych wielokrotnych egzemplarzach
bloków danych. Symbole liczników umiesz-
czono w tab. 3.
Zakres zliczania zależy od wybranego
typu danych. Jeżeli zliczenia są liczbami cał-
kowitymi bez znaku, to w dół można zliczać
do zera, a w górę aż do granicy zakresu. Jeże-
li zliczenia są liczbami całkowitymi ze zna-
kiem, to w dół można zliczać aż do ujemnej
granicy liczby całkowitej, a w górę do dodat-
niej granicy liczby całkowitej.
CTU:
Jeżeli wartość parametru CU zmie-
nia się z  0 na 1, to CTU zlicza w  górę o  1.
Jeżeli wartość parametru CV (current
count
a)
b)
c)
rys. 1. Przebiegi charakteryzujące pracę timerów, a) ton: Przebieg czasowy on-delay,
b) toF: Przebieg czasowy oFF-delay, c) tonr: Przebieg czasowy on-delay retentive
ELEKTRONIKA PRAKTYCZNA 5/2010
138
S7-1200: instrukcje programowania
liczby całkowite bez zna-
ku (dla PV = 3).
CTD:
Jeżeli wartość
parametru CD zmienia
się z 0 na 1, to CTU zlicza
w dół o 1. Jeżeli wartość
parametru CV jest więk-
sza lub równa 0, to para-
metr wyjściowy licznika
Q = 1.
Jeżeli wartość para-
rys. 2. Przebieg czasowy licznika ctu zliczają-
metru LOAD zmienia się
cego liczby całkowite bez znaku (dla PV = 3)
z  0 na 1, to war-
tość parametru PV
rys. 4. Przebieg czasowy w przypadku licznika ctuD zlicza-
(preset
count value
jącego liczby całkowite bez znaku (dla PV = 4)
– ustalona wartość
zliczeń) jest wpisywana do licznika
Jeżeli wartość parametru LOAD zmienia
jako nowa wartość CV.
się z  0 na 1, to wartość parametru PV jest
Na
rys. 2
przedstawiono prze-
wpisywana do licznika jako nowa wartość
bieg czasowy w przypadku licznika
CV. Jeżeli wartość parametru kasującego R
CTD zliczającego liczby całkowite
zmienia się z 0 na 1, to bieżąca wartość zli-
bez znaku (dla PV = 3).
czeń zostaje skasowana do 0.
CTUD:
CTUD zlicza o 1 w górę
Na
rys. 3
przedstawiono przebieg czaso-
rys. 3. Przebieg czasowy w przypadku licznika ctD
wy w przypadku licznika CTUD zliczającego
zliczającego liczby całkowite bez znaku (dla PV = 3)
lub w  dół przy każdej zmianie
z  0 na 1 na wejściach CU (count
liczby całkowite bez znaku (dla PV = 4).
value
– bieżąca wartość zliczeń) jest większa
up
– zliczanie w  górę) lub CD (count
down
tomasz Starak
lub równa wartości parametru PV (preset
co-
– zliczanie w dół). Jeżeli wartość parametru
tab. 3. Symbole liczników
unt value
– ustalona wartość zliczeń), to pa-
CV (current
count value
– bieżąca wartość
rametr wyjściowy licznika Q = 1.
zliczeń) jest równa lub większa od wartości
Z  rozwijanej listy
Jeżeli wartość parametru kasującego R
parametru PV (preset
value
– ustalona war-
pod nazwą ramki
zmienia się z 0 na 1, to bieżąca wartość zli-
tość), to parametr wyjściowy licznika QU =
nale y wybra
typ
czeń zostaje skasowana do 0.
1. Jeżeli wartość parametru CV jest mniejsza
zliczanych danych
Na
rys. 2
przedstawiono przebieg czaso-
lub równa 0, to parametr wyjściowy licznika
wy w  przypadku licznika CTU zliczającego
QD = 1.
tab. 2. Symbole timerów
ytkownik mo e
nada
własną
nazwę
counter
name
blokowi
danych licznika,
która opisuje, jaką
unkcję pełni licznik
w  procesie
u
timery tP, ton, toF mają takie same parametry wejściowe i  wyjściowe
timer tonr ma dodatkowo wejściowy parametr kasujący r. u ytkownik
mo e nada
własną nazwę timer name
blokowi danych timera, która
opisuje, jaką
unkcję pełni timer w  procesie
R
E
K
L
A
M
A
ELEKTRONIKA PRAKTYCZNA 5/2010
139
Zgłoś jeśli naruszono regulamin