S7-1200_cz.7.pdf

(513 KB) Pobierz
Elektronika Praktyczna
AutomAtykA i mechAtronikA
S7-1200
Instrukcje skalowania
i normalizacji, sterujące
wykonywaniem programu,
oraz służące do przesuwania
i obrotu danych
W  EP5/2010 przedstawiliśmy pierwszą część opisu instrukcji
obsługiwanych przez sterowniki S7-1200, w  EP6/2010 zajęliśmy
się przybliżeniem instrukcji umożliwiających wykonywanie stało-
i  zmiennoprzecinkowych operacji arytmetycznych. W  tym artykule
skupiamy się na prezentacji i  omówieniu instrukcji służących do
skalowania, normalizacji, sterowania przebiegu programu, a  także
instrukcji służących do przesuwania i  obrotu.
Instrukcje skalowania
i normalizacji
SCALE_X skaluje znormalizowany pa-
rametr VALUE (0.0 <= VALUE <= 1.0) do
typu danej i zakresu wartości wyspecyiko-
wanych przez parametry MIN i MAX
OUT = VALUE (MAX – MIN) + MIN
NORM_X normalizuje parametr VALUE
wewnątrz zakresu wartości wyspecyikowa-
nych przez parametry MIN i MAX.
elektronikaB2B.pl
144
ELEKTRONIKA PRAKTYCZNA 7/2010
AutomAtykA i mechAtronikA
677320782.083.png
S7-1200 – przegląd instrukcji
OUT = (VALUE – MIN)/(MAX – MIN),
gdzie (0.0 <= OUT <= 1.0)
• W  wyniku liniowej operacji skalowania
otrzymane wartości OUT mogą być mniej-
sze niż parametr MIN lub większe niż pa-
rametr MAX, ale zgodne z zakresem warto-
ści danych typu ustalonego dla OUT. W ta-
kich przypadkach po wykonaniu operacji
SCALE_X ustawiany jest ENO = TRUE.
• Możliwe jest, że przeskalowane liczby
nie zawierają się w dopuszczalnym za-
kresie danych typu ustalonego dla OUT.
W takich przypadkach wartość parame-
tru OUT przyjmuje wartość pośrednią
równą najmniej znaczącej części rzeczy-
wistej liczby skalowanej przed wykona-
niem końcowej konwersji na daną typu
OUT. Wówczas po wykonaniu operacji
SCALE_X ustawiany jest ENO = FALSE.
Parametr VALUE dla NORM_X powinien
być ograniczone do zakresu (MIN <= VA-
LUE <= MAX).
Jeżeli parametr VALUE jest mniejszy
niż MIN lub większy niż MAX, to operacja
liniowego skalowania może w wyniku dać
znormalizowaną wartość OUT, która jest
mniejsza od 0.0 lub większa od 1.0. W takim
przypadku po wykonaniu operacji SCALE_X
ustawiany jest ENO = TRUE.
LAD
FBD
LAD
FBD
Parametr Typ danych Opis
MIN SINT, INT, DINT,
USINT, UINT,
UDINT, REAL
Minimalna
wartość
wejściowa
zakresu
Nazwy etykiet nadaje się poprzez bez-
pośrednie wpisywanie nazwy w instrukcji
LABEL. Nazwę etykiety dla instrukcji JMP
i  JMPN wybiera się spośród dostępnych
nazw używając ikony pomocy dla parame-
trów. Można również bezpośrednio wpisać
nazwę etykiety do instrukcji JMP lub JMPN.
Instrukcję RET stosuje się do zakończenia
wykonywania bieżącego bloku.
VALUE SCALE_X: REAL
Wartość
wejściowa do
skalowania
lub normali-
zacji
LAD
FBD
NORM_X: SINT,
INT, DINT,
USINT, UINT,
UDINT, REAL
Typ
danych
MAX SINT, INT, DINT,
USINT, UINT,
UDINT, REAL
Maksymal-
na wartość
wejściowa
zakresu
Parametr
Opis
Kody warunkowe
Parametr „Return_value”
instrukcji RET jest w blo-
ku wywoływanym przy-
pisywany parametrowi
wyjściowemu ENO ramki
wywołującej blok.
Return_
Value
OUT SCALE_X: SINT,
INT, DINT,
USINT, UINT,
UDINT, REAL
Przeskalo-
wana lub
znormalizo-
wana wartość
wyjściowa
BOOL
STATUS
ENO
Warunek Wynik OUT
1 Brak błędu Ważny wynik
Wynik pośred-
ni: najmniej
znacząca część
rzeczywistej licz-
by skalowanej
przed wykona-
niem końcowej
konwersji na
daną typu OUT.
NORM_X: REAL
Opcjonalną instrukcję RET wykorzystuje
się do zakończenia wykonywania bieżącego
bloku. Zakończenie wykonywania bieżące-
go bloku nastąpi w tym miejscu i instrukcje
znajdujące się za instrukcją RET nie będą
wykonywane wtedy i tylko wtedy jeżeli na
wejściu cewki RET znajduje się zasilanie
(LAD) lub na wejściu ramki RET jest stan
TRUE (FBD). Jeżeli bieżącym blokiem jest
OB., to parametr „Return_Value” jest igno-
rowany. Jeżeli bieżącym blokiem jest FC lub
FB, to wartość parametru „Return_Value” jest
zwracana do procedury wywołującej jako
wartość ENO ramki wywołującej.
Użytkownik nie ma obowiązku wpisy-
wania instrukcji RET jako ostatniej instrukcji
bloku; jest to wykonywane automatycznie.
W  pojedynczym bloku może występować
wiele instrukcji RET.
Wejście EN ramki FC bloku kodu MAIN
musi mieć wartość TRUE aby nastąpiło roz-
poczęcie wykonywania FC.
Po wykonaniu FC, w którym zasilanie na
wejściu instrukcji RET ma wartość TRUE,
na wyjściu ENO ramki FC kodu bloku MAIN
pojawi się wartość wyspecyikowana przez
instrukcję RET w FC.
Parametr VALUE dla SCALE_X powinien
być ograniczony do zakresu (0.0 <= VALUE
<= 1.0).
Jeżeli parametr VALUE jest mniejszy od
0.0 lub większy od 1.0, to:
0
Wynik wykracza
poza ważny zakres
dla danych typu
OUT
SCALE_X: naj-
mniej znacząca
część liczby
rzeczywistej
VALUE wypełnia
przestrzeń OUT.
0
Parametry MAX
<= MIN
0
Parametr VALUE =
±INF lub ±NAN
VALUE jest
wpisywany do
OUT.
Instrukcje skoków i etykiety
Instrukcje sterujące wykonaniem pro-
gramu są wykorzystywane do warunkowego
wykonywania ciągu operacji:
JMP: Jeżeli do cewki JMP dochodzi zasi-
lanie (LAD) lub na wejściu ramki jest wartość
TRUE (FBD), to program jest kontynuowany
od pierwszej instrukcji po wyspecyikowanej
etykiecie.
JMPN: Jeżeli do cewki JMP nie dochodzi
zasilanie (LAD) lub na wejściu ramki jest
wartość FALSE (FBD), to program jest konty-
nuowany od pierwszej instrukcji po wyspe-
cyikowanej etykiecie.
Label : Docelowa etykieta dla instrukcji
skoku JMP i JMPN.
Instrukcje AND, OR i XOR
AND: logiczna operacja AND dla danych
typu BYTE, WORD i DWORD
ELEKTRONIKA PRAKTYCZNA 7/2010
145
677320782.094.png 677320782.105.png 677320782.116.png 677320782.001.png 677320782.012.png 677320782.023.png 677320782.034.png 677320782.037.png 677320782.038.png 677320782.039.png 677320782.040.png 677320782.041.png 677320782.042.png 677320782.043.png 677320782.044.png 677320782.045.png 677320782.046.png 677320782.047.png 677320782.048.png 677320782.049.png 677320782.050.png 677320782.051.png 677320782.052.png 677320782.053.png 677320782.054.png 677320782.055.png 677320782.056.png 677320782.057.png 677320782.058.png 677320782.059.png 677320782.060.png 677320782.061.png 677320782.062.png 677320782.063.png 677320782.064.png 677320782.065.png 677320782.066.png 677320782.067.png 677320782.068.png 677320782.069.png 677320782.070.png 677320782.071.png 677320782.072.png 677320782.073.png 677320782.074.png
AutomAtykA i mechAtronikA
OR: logiczna operacja OR dla danych
typu BYTE, WORD i DWORD
XOR: logiczna operacja XOR dla danych
typu BYTE, WORD i DWORD
Parametr Typ danych Opis
Kody warunkowe dla ENCO
ENCO: ciąg
bitów do zako-
dowania
DECO: wartość
do dekodowania
IN
ENCO: BYTE,
WORD, DWORD
DECO: UINT
STATUS ENO Warunek Wynik (OUT)
1 Brak błędu Ważny wynik
0
IN jest
zerem
OUT ustawiony
na zero
LAD
FBD
ENCO: wartość
zakodowana
DECO: ciąg
bitów zdekodo-
wany
ENCO: INT
DECO: BYTE,
WORD, DWORD
OUT
Instrukcje wyboru (SEL)
i multipleksowania (MUX)
SEL, w zależności od wartości parametru
G, przypisuje jedną z dwóch wartości wej-
ściowych parametrowi OUT.
MUX, w zależności od wartości parame-
tru K, przypisuje jedną z wielu wartości wej-
ściowych parametrowi OUT. Jeżeli parametr
K wykracza poza dozwolony zakres, to pa-
rametrowi OUT jest przypisywana wartość
parametru ELSE.
Parametr Typ danych Opis
Instrukcja ENCO dokonuje konwersji
parametru IN na liczbę dwójkową odpowia-
dającą ciągowi bitów znajdujących się na
najmniej znaczącej pozycji w IN i zapisuje
wynik jako parametr OUT. Jeżeli parametr IN
jest równy 0000 0001 albo 0000 0000, to do
OUT jest wpisywane 0. Jeśli parametr IN ma
wartość 0000 0000 to ENO przyjmuje war-
tość FALSE.
Instrukcja DECO dekoduje liczbę dwój-
kową z  parametru IN poprzez ustawianie
bitów znajdujących się na odpowiadających
pozycjach OUT na 1 (wszystkie pozostałe
bity są ustawione na 0). Po zakończeniu wy-
konywania instrukcji, ENO ma zawsze war-
tość TRUE.
Wybór typu danej parametru OUT in-
strukcji DECO spośród BYTE, WORD lub
DWORD ogranicza użyteczny zakres pa-
rametru IN. Jeżeli wartość parametru IN
przekracza użyteczny zakres, to wykony-
wana jest pokazana poniżej operacja modu-
lo pozwalająca wydobyć najmniej znaczące
bity.
Zakres parametru IN instrukcji DECO:
3 bity (wartość 0 – 7) IN są wykorzysty-
wane do ustalenia 1 pozycji bitu w bajcie
OUT.
4 bity (wartość 0 – 15) IN są wykorzysty-
wane do ustalenia 1 pozycji bitu w słowie
OUT.
5 bitów (wartość 0 – 31) IN jest wykorzy-
stywanych do ustalenia 1 pozycji bitu w po-
dwójnym słowie OUT.
IN1, IN2
BYTE, WORD,
DWORD
Wejścia lo-
giczne
OUT
BYTE, WORD,
DWORD
Wyjście lo-
giczne
Podczas wyboru typu danych jest usta-
wiany taki sam typ danych parametrów IN1,
IN2 i OUT. Odpowiadające sobie bity IN1
i IN2 są argumentami operacji logicznej, któ-
rej wynik jest wpisywany do OUT. Po zakoń-
czeniu wykonywania powyższych instrukcji,
ENO ma zawsze wartość TRUE.
LAD
FBD
Instrukcja inwersji
Instrukcja INV jest stosowana do wyzna-
czenia dwójkowego uzupełnienia do jedno-
ści parametru IN. Uzupełnienie do jedności
jest wykonywane poprzez inwersję każdego
bitu parametru IN (zamianę każdego 0 na 1
i 1 na 0). Po zakończeniu wykonywania in-
strukcji, ENO ma zawsze wartość TRUE.
Parametry dla SEL
LAD
FBD
Para-
metr
Typ danych Opis
Para-
metr
Typ danych Opis
G
BOOL
Prze-
łącznik
selekto-
ra:
FALSE
dla IN0
TRUE dla
IN1
IN
SINT, INT, DINT, USINT,
UINT, UDINT, BYTE,
WORD, DWORD
Element
podlegający
inwersji
SINT, INT, DINT, USINT,
UINT, UDINT, REAL, BYTE,
WORD, DWORD, TIME,
CHAR
OUT
SINT, INT, DINT, USINT,
UINT, UDINT, BYTE,
WORD, DWORD
Wyjście po
inwersji
Wartość OUT
instrukcji DECO
(dekodowanie
pojedynczej pozycji
bitu)
Typ OUT: BYTE (8
bitów)
Min. IN 0 00000001
Maks. IN 7 10000000
IN0,
IN1
Wejścia
Wartość IN instrukcji
DECO
SINT, INT, DINT, USINT,
UINT, UDINT, REAL, BYTE,
WORD, DWORD, TIME,
CHAR
Instrukcje enkodowania
i dekodowania
Polecenie ENCO koduje ciąg bitów na
liczbę dwójkową.
Polecenie DECO dekoduje liczbę dwójko-
wą na ciąg bitów.
OUT
Wyjście
Parametry dla MUX
Para-
metr
Typ danych Opis
Typ OUT: WORD (16
bitów)
Min. IN 0 0000000000000001
Maks. IN 15 1000000000000000
LAD
FBD
Wartość
selektora:
0 dla
IN0
1 dla
IN1
K
UINT
Typ OUT: DWORD
(32 bity)
SINT, INT, DINT, USINT,
UINT, UDINT, REAL, BYTE,
WORD, DWORD, TIME,
CHAR
Min. IN 0
00000000000000000
000000000000001
IN0,
IN1,
Wejścia
10000000000000000
000000000000000
Maks. IN 31
146
ELEKTRONIKA PRAKTYCZNA 7/2010
677320782.075.png 677320782.076.png 677320782.077.png 677320782.078.png 677320782.079.png 677320782.080.png 677320782.081.png 677320782.082.png 677320782.084.png 677320782.085.png 677320782.086.png 677320782.087.png 677320782.088.png 677320782.089.png 677320782.090.png 677320782.091.png 677320782.092.png 677320782.093.png 677320782.095.png 677320782.096.png 677320782.097.png 677320782.098.png 677320782.099.png 677320782.100.png 677320782.101.png 677320782.102.png 677320782.103.png 677320782.104.png 677320782.106.png 677320782.107.png 677320782.108.png 677320782.109.png 677320782.110.png 677320782.111.png 677320782.112.png 677320782.113.png 677320782.114.png 677320782.115.png 677320782.117.png 677320782.118.png 677320782.119.png 677320782.120.png 677320782.121.png 677320782.122.png 677320782.123.png 677320782.124.png 677320782.125.png 677320782.126.png
S7-1200 – przegląd instrukcji
SINT, INT, DINT, USINT,
UINT, UDINT, REAL, BYTE,
WORD, DWORD, TIME,
CHAR
Wartość
wejścio-
wa dla
podsta-
wienia
(opcjonal-
nie)
SHR: przesunięcie wzoru bitów w prawo.
SHL: przesunięcie wzoru bitów w lewo.
metru IN. Wynik jest przypisywany do para-
metru OUT. Parametr N określa o ile pozycji
bitów ma nastąpić obrót.
Instrukcja ROR powoduje obrót wzoru
bitów w prawo.
Instrukcja ROL powoduje obrót wzoru
bitów w lewo.
ELSE
LAD
FBD
SINT, INT, DINT, USINT,
UINT, UDINT, REAL, BYTE,
WORD, DWORD, TIME,
CHAR
OUT
Wyjście
LAD
FBD
Zmienne wejściowe i zmienna wyjścio-
wa muszą być tego samego typu danych.
Instrukcja SEL zawsze wybiera pomię-
dzy dwoma wartościami wejściowymi.
Instrukcja MUX wybrana po raz pierw-
szy w edytorze programu ma dwa parametry
wejściowe IN, ale można ja rozszerzyć doda-
jąc więcej parametrów IN.
Do dodawania i usuwania parametrów
wejściowych instrukcji MUX służy następu-
jąca metoda:
W celu dodania wejścia należy kliknąć
prawym klawiszem myszy na końcówkę wej-
ściową jednego z istniejących parametrów IN
i wybrać komendę „insert input”.
W celu usunięcia wejścia należy kliknąć
prawym klawiszem myszy na końcówkę wej-
ściową jednego z istniejących parametrów IN
(jeżeli jest więcej wejść niż oryginalne dwa)
i wybrać komendę „Delete”.
Para-
metr
Typ danych Opis
IN
BYTE, WORD,
DWORD
Wzór bitów do
przesunięcia
N UINT
Liczba pozycji
bitów do przesu-
nięcia
Parametr Typ danych Opis
OUT
BYTE, WORD,
DWORD
Wzór bitów po
operacji przesu-
nięcia
IN
BYTE, WORD,
DWORD
Wzór bitów
do obrotu
Liczba pozycji
bitów do
obrotu
N
UINT
Dla N = 0 nie jest wykonywane przesunię-
cie i do OUT jest przypisywana wartość IN.
Na pozycje opróżnione podczas przesu-
wania są wpisywane zera.
Jeżeli liczba pozycji do przesunięcia (N)
przekracza liczbę bitów wartości docelowej
(8 dla BYTE, 16 dla WORD i 32 dla DWORD),
to oryginalna wartość zniknie i zostanie za-
stąpiona przez zera (do OUT zostaną wpisa-
ne same zera).
Dla operacji przesuwania, ENO ma za-
wsze wartość TRUE.
OUT
BYTE, WORD,
DWORD
Wzór bitów
po operacji
obrotu
Dla N = 0 nie jest wykonywany obrót
i do OUT jest przypisywana wartość IN.
Podczas obrotu bity wysuwane z jednej
strony traiają na pozycje opróżniane z dru-
giej strony parametru docelowego; zatem ża-
den oryginalny bit nie jest tracony.
Jeżeli liczba pozycji do przesunięcia (N)
przekracza liczbę bitów wartości docelowej
(8 dla BYTE, 16 dla WORD i 32 dla DWORD),
to obrót jest nadal wykonywany.
Dla operacji obrotu, ENO ma zawsze
wartość TRUE.
Kody warunkowe
Po zakończeniu wykonywania instrukcji
SEL, ENO ma zawsze wartość TRUE.
Przykład operacji SHL dla danych typu
WORD: podczas przesuwania z lewej strony
są wpisywane zera
STATUS
ENO
(MUX)
1110
0010
1010
1101
Wartość OUT przed pierw-
szym przesunięciem
1110
0010
1010
1101
Warunek Wynik (OUT)
IN
Przykład operacji ROR dla danych typu
WORD: podczas obrotu bity wysuwane
z prawej strony traiają na pozycje opróż-
n iane z lewej strony
1 Brak błędu Ważny wynik
1100
0101
0101
1010
Bez parametru
ELSE:
OUT nie ulega
zmianie
Po pierwszym przesunięciu
w lewo
K jest większe
lub równe licz-
bie parametrów
IN
0100
0000
0000
0001
0100
0000
0000
0001
1000
1010
1011
0100
Wartość OUT przed
pierwszym obrotem
0
Po drugim przesunięciu
w lewo
IN
Z parametrem
ELSE:
OUT przyjmuje
wartość ELSE
1010
0000
0000
0000
Po trzecim przesunięciu
w lewo
0001
0101
0110
1000
Po pierwszym obrocie
w prawo
Instrukcje przesunięcia
Instrukcja przesunięcia ( shift ) jest stoso-
wana do wzoru bitów parametru IN. Wynik
jest przypisany parametrowi OUT. Parametr
N określa o ile pozycji bitów ma nastąpić
przesunięcie.
0101
0000
0000
0000
Po drugim obrocie
w prawo
Instrukcje obrotu
Instrukcje obrotu są stosowane do cy-
klicznego przesuwania wzoru bitów para-
tomasz Starak
R
E
K
L
A
M
A
automatykaB2B.pl
ELEKTRONIKA PRAKTYCZNA 7/2010
147
677320782.002.png 677320782.003.png 677320782.004.png 677320782.005.png 677320782.006.png 677320782.007.png 677320782.008.png 677320782.009.png 677320782.010.png 677320782.011.png 677320782.013.png 677320782.014.png 677320782.015.png 677320782.016.png 677320782.017.png 677320782.018.png 677320782.019.png 677320782.020.png 677320782.021.png 677320782.022.png 677320782.024.png 677320782.025.png 677320782.026.png 677320782.027.png 677320782.028.png 677320782.029.png 677320782.030.png 677320782.031.png 677320782.032.png 677320782.033.png 677320782.035.png 677320782.036.png
Zgłoś jeśli naruszono regulamin