Egzaminy można znaleźć na stronie OKE oke.krakow.pl/zawodowy/arkusze15 w miejscu 15 zmieniasz na rok który Cię interesuje. Co do Grafcet większość uczyłem się z internetu m.in: załącznik Trochę mało czasu zostało ale najbardziej pomogła mi książka http://obrazki.elektroda.pl/5845350400_1465993902_thumb.jpg Jest w niej super opisany cały schemat tworzenia SFC, najczęściej popełniane błędy, co prawda na poziomie technika połowy informacji z tej ksiązki się nie wykorzysta, ale na pewno pomoże w takim stopniu by dobrze napisać SFC.
& lt; & lt; Powrót
PL7 Micro / Junior / Pro
Instrukcja U˝ytkownika
(wersja V3. )
.
A
Informacje ogólne o PL7 1
Rozdzia∏ 1
Opis oprogramowania PL7 Micro/Junior/Pro
1.1
1 Informacje ogólne
J´zyk PL7 - przedstawienie
1.1-1 Charakterystyka wst´pna
J´zyk PL7 Junior stanowi oprogramowanie dla sterowników TSX 37 i TSX/PMX/PCX 57
pracujàcych w Êrodowisku Windows. Natomiast j´zyk PL7 Micro s∏u˝y do programowania
tylko sterowników TSX 37.
J´zyk PL7 Pro dodatkowo daje, w odniesieniu do j´zyka PL7 Junior, mo˝liwoÊç
tworzenia bloków funkcyjnych typu DFB (Derived Function Block - blok tworzony przez
u˝ytkownika) oraz ekranów kontroli przebiegu procesu sterowania (runtime screen).
Oprogramowanie PL7 Prodyn stanowi narz´dzie u˝ytkowe sterowników serii TSX 37
oraz TSX/PMX/PCX 57 umo˝liwiajàce sterowanie, diagnostyk´ i ich obs∏ug´. Nie mo˝e
byç ono u˝yte do tworzenia czy te˝ modyfikowania aplikacji.
Oprogramowanie PL7 (1) tworzà:
• Graficzny j´zyk Ladder (LD), s∏u˝àcy do definiowania diagramów drabinkowych
(Ladder diagrams), przeznaczonych szczególnie do przetwarzania kombinacyjnego.
Przy tworzeniu diagramów korzysta si´ ze styków (contact), cewek (coil) oraz
bloków (block). Obliczenia numeryczne zapisuje si´ wewnàtrz bloków.
• J´zyk logiczny List (IL), który stanowi kod maszynowy dla zapisywania logicznych
i numerycznych operacji przetwarzania.
(1) Nazwa PL7 u˝ywana w niniejszej dokumentacji odnosi si´ do PL7 Junior, PL7 Micro,
PL7 Pro oraz PL7 Prodyn.
___________________________________________________________________________
1/1
A
• Strukturalny j´zyk tekstowy (ST) umo˝liwiajàcy strukturalny zapis przetwarzania
logicznego i numerycznego.
• Graficzny j´zyk Grafcet s∏u˝àcy do graficznego i strukturalnego przedstawiania
sekwencji systemu sterowania.
Wymienione powy˝ej j´zyki zawierajà zdefiniowane wst´pnie bloki funkcyjne (zegary,
liczniki, itp.), które mo˝na wykorzystaç przy tworzeniu danej aplikacji (komunikacja
analogowa, odliczanie, itp.) oraz w funkcjach specjalnych (zarzàdzanie czasem,
∏aƒcuchy znaków, itp.).
Obiektom j´zykowym mo˝na przypisywaç symbole.
Oprogramowanie PL7 jest zgodne z normà IEC 1131-3. Warunki, przy spe∏nieniu
których zostaje zachowany standard zestawiono w tabelach zgodnoÊci zamieszczonych
w Dodatku: cz´Êç B, rozdzia∏ 6.
___________________________________________________________________________
1/2
A
Informacje ogólne o PL7
1
1.1-2 Struktura jednozadaniowa
Jest to struktura domyÊlna. Program zawiera jedno zadanie - g∏ówne (master task).
Zadanie g∏ówne Master
Zadanie to mo˝e byç cykliczne (ustawienie domyÊlne) lub okresowe. W przypadku
dzia∏ania cyklicznego kolejne " przebiegi " zadania sà ∏àczone jeden z drugim, bez
przerw. Przy dzia∏aniu okresowym " przebiegi " zadania nast´pujà po sobie w zdefiniowanym przez u˝ytkownika okresie.
1.1-3 Struktura wielozadaniowa
Struktura wielozadaniowa w przypadku sterowników TSX 37 oraz TSX 57 pozwala na
uzyskanie lepszych efektów poprzez zastosowanie aplikacji pracujàcych w czasie
rzeczywistym, w których ka˝dej aplikacji przypisany jest specjalny program. Ka˝dy
z tych programów jest zarzàdzany przez zadanie.
Zadania te sà w stosunku do siebie niezale˝ne i sà wykonywane równolegle przez
g∏ówny procesor, który decyduje zarówno o ich priorytecie jak i o ich wykonaniu.
Zalety struktury tego typu:
• optymalne wykorzystanie mocy procesora,
• uproszczenie projektowania; ka˝de zadanie zapisuje si´ i poprawia niezale˝nie.od
pozosta∏ych,
• nadanie aplikacji okreÊlonej struktury; ka˝de zadanie pe∏ni unikatowà funkcj´,
• optymalizacja dost´pnoÊci.
System wielozadaniowy mo˝e sk∏adaç si´ z zadania g∏ównego MASTER, szybkiego
FAST oraz 8 - 64 (w zale˝noÊci od rodzaju procesora) zadaƒ wyzwalanych zdarzeniami.
Zadanie g∏ówne
MASTER
-
Zadanie szybkie
FAST
Priorytet
Zadania wyzwalane
zdarzeniami
+
Zadanie szybkie FAST
Zadanie szybkie (opcjonalne) jest zadaniem okresowym i s∏u˝y do realizacji szybkich
operacji przetwarzania z wy˝szym priorytetem w stosunku do zadania g∏ównego
MASTER. Zaprogramowane zadanie jest automatycznie uruchamiane przez system
podczas inicjacji (start-up). Mo˝na je zatrzymywaç oraz uruchamiaç za poÊrednictwem
bitu systemowego.
Zadania wyzwalane zdarzeniami (event-triggered task)
W odró˝nieniu od zadania opisanego powy˝ej zadania tego typu nie sà okresowe.
Sà one wyzwalane (uruchamiane) przez pewne modu∏y. Te zadania majà najwy˝szy
priorytet. Ich przetwarzanie odbywa si´ odpowiednio szybko tak, ˝e nie zak∏ócajà
wykonywania innych zadaƒ.
___________________________________________________________________________
1/3
A
1.1-4 Programowane strukturalne i modu∏owe
Zadania w j´zyku PL7 sk∏adajà si´ z kilku cz´Êci (zwanych sekcjami) oraz procedur.
Ka˝dà z sekcji programuje si´ w j´zyku, który najlepiej odpowiada rodzajowi
zastosowanego procesu.
MAST
FAST
Komora (LD)
Piec_1(Grafcet)
Zdarz.
EVT0
Alarm_Komora (LD)
Monitor_Sekcja(LD)
Przetw.wst´pne PRL (LD)
Alarm_Piec(ST)
Diagram CHART
Alarm_Czyszczenie(ST)
Przetw.koƒcowe POST(LD)
Suszenie (LD)
Proced.
SR0
Proced.
SR0
Czyszczenie(ST)
Podzia∏ na sekcje oznacza, ˝e mo˝na stworzyç program stukturalny oraz mo˝na
z ∏atwoÊcià generowaç lub te˝ do∏àczaç modu∏y programu.
Procedury (podprogramy) mogà byç wywo∏ywane z dowolnej sekcji zadania, do
którego nale˝à oraz z innych procedur tego samego zadania.
___________________________________________________________________________
1/4
A
Informacje ogólne o PL7
1
1.1-5 Programowanie symboliczne
U˝ytkownik mo˝e wprowadzaç lub wyÊwietlaç obiekty za pomocà:
• ich adresów (na przyk∏ad: %Q2.5),
• ∏aƒcucha znaków (max. 32 znaki) rozpoznawanego jako symbol (na przyk∏ad
Fc_door).
Uwaga
Obiekty sprz´˝one z blokiem typu DFB (blok w∏asny u˝ytkownika) sà obiektami czysto
symbolicznymi.
Przyk∏ad: symboliczne wyÊwietlanie obiektów w j´zyku Ladder.
W j´zyku Ladder mo˝na jednoczeÊnie wyÊwietlaç adresy i symbole.
Wykorzystywane symbole mo˝na wprowadzaç przed lub podczas edycji programu.
Baza symboli, zarzàdzana przy pomocy edytora zmiennych (variables) ma charakter
globalny dla danej stacji (sterownika).
Uwaga
Niektóre modu∏y specjalne umo˝liwiajà automatyczne przypisywanie symboli obiektom, które sà
z nimi sprz´˝one.
___________________________________________________________________________
1/5
A
1.1-6 Instrukcje j´zyka PL7
Wszystkie j´zyki oprogramowania PL7 pos∏ugujà si´ tymi samymi instrukcjami.
Wszystkie instrukcje sà szczegó∏owo opisane w cz´Êci B niniejszej dokumentacji.
W celu uproszczenia instrukcje zosta∏y podzielone na dwie grupy: instrukcje podstawowe
oraz instrukcje z∏o˝one.
Instrukcje podstawowe
Instrukcje te obejmujà podstawowe instrukcje logiczne, wst´pnie zdefiniowane bloki
funkcyjne oraz arytmetyczne i logiczne operacje na liczbach ca∏kowitych.
Instrukcje z∏o˝one
Instrukcje te u˝ywane sà przy programowaniu zaawansowanym.
Instrukcje te dajà dwojaki efekt:
• w stosunku do j´zyka PL7: zwi´kszajà mo˝liwoÊci j´zyka poprzez zastosowanie
funkcji specjalnych (dzia∏anie na ∏aƒcuchach znaków, zarzàdzanie czasem, itp.),
• w stosunku do aplikacji: umo˝liwiajà zaprogramowanie specjalnych funkcji dla danej
aplikacji. Mogà to byç na przyk∏ad funkcje wykorzystywane do nawiàzania komunikacji:
- PRINT do wysy∏ania komunikatu zawierajàcego ∏aƒcuch standardowych znaków do
terminala albo na drukark´,
- SEND do wysy∏ania komunikatu do aplikacji,
- PID: funkcja regulatora PID.
Wywo∏anie funkcji - ekran pomocy
Ekran wywo∏ania funkcji umo˝liwia dost´p do wszystkich funkcji j´zyka. Mo˝na go
wywo∏ywaç w ka˝dym momencie, nawet podczas programowania.
___________________________________________________________________________
1/6
A
Informacje ogólne o PL7
1
1.1-7 Bloki funkcyjne
Do tworzenia bloków typu DFB dla sterowników serii Premium s∏u˝y j´zyk PL7 Pro.
Tworzy si´ je w strukturalnym j´zyku tekstowym (ST) i mogà byç one u˝yte w sekcji
lub procedurze bez wzgl´du na to w jakim j´zyku sà one napisane (mo˝na je stosowaç
równie˝ w j´zyku PL7 Junior).
Przyk∏ad zastosowania bloku DFB w programie napisanym w j´zyku Ladder.
Blok funkcyjny DFB sk∏ada si´ z nast´pujàcych elementów:
•
•
•
•
nazwy
parametrów wejÊç i wyjÊç
zmiennych globalnych i w∏asnych
kodu w j´zyku strukturalnym ST.
Blok typu DFB mo˝e mieç maksymalnie
15 wejÊç i/lub We/Wy (I/O) oraz 15 wyjÊç
i/lub We/Wy (I/O).
Raz utworzony blok DFB mo˝e byç wykorzystywany w aplikacji wielokrotnie.
U˝ytkownik programuje dla danego j´zyka
model DFB (rozpoznawany jako typu bloku
DFB), a przed ka˝dym u˝yciem definiuje
nazw´ bloku korzystajàc przy tym z edytora
zmiennych lub te˝ ekranu wywo∏ania
funkcji.
Nazwa bloku DFB
WejÊcia
Inputs
WyjÊcia
Outputs
We/Wy
I/O
Zmienne globalne
Zmienne w∏asne
Kod w j´zyku ST
___________________________________________________________________________
1/7
A
1.2
Adresy obiektów
1.2-1 Definiowanie g∏ównych obiektów logicznych
Bity I/O (wejÊç i wyjÊç)
Bity te stanowià logiczne odwzorowanie elektrycznych stanów wejÊç i wyjÊç.
Bity wewn´trzne (internal bits)
Bity wewn´trzne %Mi s∏u˝à do zapami´tywania stanów poÊrednich w trakcie
wykonywania programu.
Uwaga: Nie u˝ywane bity I/O nie mogà byç wykorzystane jako bity wewn´trzne.
Bity systemowe
Bity systemowe %S0 do %S127 umo˝liwiajà monitorowanie poprawnoÊci dzia∏ania
sterownika oraz przebiegu realizacji programu. Rola oraz sposób wykorzystywania
tych obiektów zosta∏y szczegó∏owo opisane w rozdziale 3.1 cz´Êci B.
Bity bloków funkcyjnych
WartoÊci bitów bloków funkcyjnych odpowiadajà stanom wyjÊç bloków. WyjÊcia bloków
mogà byç pod∏àczone bezpoÊrednio lub wykorzystywane jako obiekty.
Bity wydzielone ze s∏ów (wors extract bits)
Przy u˝yciu PL7 mo˝liwe jest wydzielenie dowolnego z 16 bitów tworzàcych s∏owo.
Bity statusu kroków i skoków (macro-step) j´zyka Grafcet
Do identyfikowania statusu kroku i diagramu, skoku j oraz kroku i w skoku j s∏u˝à
odpowiednie bity statusu: dla kroków %Xi, dla skoków %XMj oraz dla kroków
w skokach %Xi.j (dla wejÊç i wyjÊç kroków w skokach - odpowiednio Xj.IN oraz Xj.OUT).
Lista argumentów operacji na bitach
W tabeli poni˝ej zestawiono list´ wszystkich typów argumentów logicznych.
Rodzaj
Adres
(lub wartoÊç)
Dost´p w trybie
zapisu (1)
Patrz
Rozdz. Cz´Êç
WartoÊç bezpoÊr.
0 lub 1 (Fa∏sz lub Prawda)
–
1.2-4
A
Bity wejÊç
Bity wyjÊç
%Ix.i lub %IXx.i
%Qx.i lub %QXx.i
nie
tak
1.2-2
1.2-3
A
Internal bits
%Mi lub %MXi
tak
System bits
%Si
w zale˝noÊci od i
3.1
B
Bity bloków
funkcyjnych
np.: %TMi.Q
%DRi.F.....
nie
1.2-5
A
5.2
A
–
Bity Grafcet-u
%Xi, %XMj, %Xj.i...
tak
Bity ze s∏ów
np.: %MW10:X5
zal. od typu s∏owa 1.2-4
A
(1) Zapisywanie przez program lub w trybie poprawiania (adjust mode) za pomocà terminala.
___________________________________________________________________________
1/8
A
Informacje ogólne o PL7
1
1.2-2 Adresowanie obiektów zwiàzanych z modu∏em I/O TSX 37
Adresy podstawowych s∏ów oraz bitów obiektów dla modu∏ów I/O (We/Wy) definiuje si´
w nast´pujàcy sposób:
%
IQ
lub
Symbol
Rodzaj
obiektu:
I = wejœcie
Q =wyjœcie
X, W lub
D
Format
X = logiczny
W = s◊owo
D = s◊owo podwójne
.
x
i
Nr kana◊u
i = 0-127
lub MOD
Pozycja
x= nr pozycji
w panelu
• Rodzaj obiektu
I lub Q: Fizyczne wejÊcia i wyjÊcia modu∏u dokonujàcego wymiany w sposób ukryty
(niejawny) przy ka˝dym wykonaniu zadania, do którego sà one pod∏àczone.
Uwaga: Je˝eli istnieje taka potrzeba, to na ˝àdanie (request) aplikacji (patrz opis
w instrukcji funkcji aplikacji), mo˝na dokonywaç wymiany danych pozosta∏ych typów
(status, s∏owa poleceƒ, itp.).
• Format
Dla obiektów zapisanych w formacie logicznym mo˝na pomijaç x. Formaty pozosta∏ych
obektów takich, jak bajt, s∏owo, s∏owo podwójnej precyzji zosta∏y opisane w rozdziale
1.2-4.
• Numer i pozycja kana∏u
Sterowniki TSX`37 majà budow´ modu∏owà 2-adresowà. Pozycj´ ka˝dego z modu∏ów
sterownika TSX 37 (modu∏u bazowego Base i modu∏u rozszerzenia Extension)
pokazano na rysunku poni˝ej.
TSX 37-10
TSX 37-21/22
1
5
7
2
Baza
3
4
6
8
Rozszerzenie
1
0
3
5
7
9
2
4
6
8
10
Baza
Rozszerzenie
Modu∏y standardowe adresuje si´ jak dwa modu∏y pó∏formatowe (patrz tabela poni˝ej).
Na przyk∏ad modu∏ zawierajàcy 64 We/Wy jest widziany jak dwa modu∏y: 32-wejÊciowy
modu∏ umieszczony w slocie 5 oraz 32-wyjÊciowy, umieszczony w slocie 6.
___________________________________________________________________________
1/9
A
Modu∏
Pó∏format
Format standardowy
4Q
8Q
12 I
28 I/O
32 I
32 Q
64 I/O
Nr kana∏u: i
0 to 3
0 do 7
0 do 11
0 do 15
0 do 15
0 do 15
0 do 31
0 do 11
0 do 15
0 do 15
0 do 31
Pozycja i nr kan.
(x = pozycja)
x.0
do
x.3
x.0
do
x.7
x.0
do
x.11
x.0
do
x.15
x.0
do
x.15
x.0
do
x.15
x.0
do
x.31
(x+1).0
(x+1).0
(x+1).0
(x+1).0
do
do
do
do
(x+1).11 (x+1).15 (x+1).15 (x+1).31
Uwaga:
Numer kana∏u mo˝na zastàpiç symbolem " MOD " , co umo˝liwia dost´p do danych globalnych
modu∏u.
• Ranga: za numerem kana∏u mo˝na wstawiç dodatkowy indeks. Umo˝liwia to
rozró˝nienie obiektów tego samego typu sprz´˝onych z tym samym kana∏em (patrz
opis funkcji aplikacji w odpowiedniej instrukcji).
ERR:
ERR sygnalizuje b∏àd modu∏u lub kana∏u.
Przyk∏ady:
Przyk∏ady %I4.MOD.ERR : informacja o b∏´dzie w module 4
%I4.3.ERR : informacja o b∏´dzie w kanale 3 modu∏u 4.
Uwaga:
Podczas adresowania operacji pom´dzy elementami sieci oraz podczas adresowania zdalnego
wejÊç i wyjÊç nale˝y do numeru pozycji w module dodaç kompletnà Êcie˝k´ dost´pu do stacji.
Przyk∏ady
%I1.5 kana∏ wejÊciowy nr 5 modu∏u
umieszczonego na pozycji nr 1.
%I3.8 kana∏ wejÊciowy nr 8 modu∏u o formacie zwyk∏ym umieszczonego
na pozycjach nr 3 i 4.
%Q4.5 kana∏ wyjÊciowy nr 5 modu∏u
o formacie standardowym
umieszczonego na pozycjach
nr 3 i 4.
%I5.MOD.ERR informacja o b∏´dzie
modu∏u umieszczonym na pozycji
nr 5.
%I1.5 %I3.8
%I5.MOD.ERR
%IW8.0
TSX 37-10
1
5
7
2
Modu∏
podstawowy
3
4
6
8
%Q4.5
Modu∏
rozszerzenia
%IW8.0 kana∏ wejÊciowy nr 0 modu∏u
pó∏formatowego umieszczonego
na pozycji nr 8.
___________________________________________________________________________
1/10
A
Informacje ogólne o PL7
1
1.2-3 Adresowanie obiektów modu∏u I/O TSX/PMX/PCX 57
Sk∏adnia adresów s∏ów podstawowych i bitów obiektów w module I/O jest nast´pujàca:
%
Symbol
I lublub
Q
Rodzaj
obiektu
I = wejœcie
Q = wyjœcie
X, W D
x
Format
X = logiczny
W = s◊owo
D = s◊owo podwójne
y
Adres
panela
x = 0-7
.
Pozycja
modu◊u
y = 00-10
i
Nr kana◊u
i = 0-127
lub MOD
• Rodzaj obiektu
I lub Q: Fizyczne wejÊcia i wyjÊcia modu∏u dokonujàcego wymiany w sposób ukryty
(niejawny) przy ka˝dym wykonaniu zadania, do którego sà one pod∏àczone.
Uwaga: Je˝eli istnieje taka potrzeba, to na ˝àdanie (request) aplikacji (patrz opis
funkcji specjalnych aplikacji), mo˝na dokonywaç wymiany danych pozosta∏ych
typów (status, s∏owa poleceƒ, itp.).
• Format (rozmiar)
Dla obiektów zapisanych w formacie logicznym mo˝na pomijaç X. Formaty pozosta∏ych
obektów (bajt, s∏owo, s∏owo podwójne) opisano w rozdziale 1.2-4.
• Adresowanie kana∏ów
Adres kana∏u zale˝y od adresu panela (rack), fizycznej pozycji modu∏u w panelu oraz
od numeru kana∏u.
Uwaga:
•Listy obiektów sprz´˝onych z poszczególnymi modu∏ami nale˝y szukaç w instrukcji zawierajàcej
opis funkcji aplikacji.
•Zdalne adresowanie wejÊç i wyjÊç I/O opisano w instrukcji funkcji zwiàzanych z aplikacjami
zatytu∏owanej " Common features of application-specific functions " .
___________________________________________________________________________
1/11
A
Adres panela (x) i pozycja modu∏u (y)
Panele TSX-a
Adres panela: x
Pozycja modu∏u: y
RKY 6
RKY 8
0
0
RKY 12 RKY 4EX RKY 6EX
0
0÷7
0÷7
RKY 8EX
RKY 12EX
0÷7
00 ÷ 04 00 ÷ 06 00 ÷ 10 00 ÷ 02 00 ÷ 04
0÷7
00 ÷ 06
00 ÷ 10
Uwaga:
Panel, który zawiera procesor ma zawsze adres 0.
Numer kana∏u (i)
Modu∏y TSX DEY ..../DSY ....
64 I/O
32 I/O
16 I/O
8 I/O
Numer kana∏u: i
0 do 63
0 do 31
0 do 15
0 do 7
Uwaga:
W celu uzyskania dost´pu do informacji globalnych dla modu∏u, numer kana∏u zast´puje si´
symbolem " MOD " .
• Ranga: za numerem kana∏u mo˝na wstawiç dodatkowy indeks. Umo˝liwia to
rozró˝nienie obiektów tego samego typu sprz´˝onych z tym samym kana∏em (patrz
opis funkcji aplikacji w odpowiedniej instrukcji).
ERR:
• ERR sygnalizuje b∏àd modu∏u lub kana∏u.
Przyk∏ady:
Przyk∏ady
- %I104.MOD.ERR : informacja o b∏´dzie w module umieszczonym na pozycji 4
panela o adresie 1.
- %I104.3.ERR : informacja o b∏´dzie w kanale 3 modu∏u umieszczonego na pozycji 4
panela o adresie 1.
Uwaga:
Podczas adresowania operacji pom´dzy elementami sieci oraz podczas adresowania zdalnego
wejÊç i wyjÊç nale˝y do numeru pozycji w module dodaç kompletnà Êcie˝k´ dost´pu do stacji.
Przyk∏ady:
Przyk∏ady
• %I102.5
: Kana∏ wejÊciowy nr 5 modu∏u umieszczonego na pozycji 2
panela o adresie 1.
• %Q307.2
: kana∏ wyjÊciowy nr 2 modu∏u umieszczonego na pozycji 7
panela o adresie 3.
• %I102.MOD.ERR : informacja o b∏´dzie modu∏u umieszczonego na pozycji 2
panela o adresie 1.
___________________________________________________________________________
1/12
A
Informacje ogólne o PL7
1
1.2-4 Adresowanie s∏ów
Adresowanie s∏ów modu∏ów I/O opisano w rozdzia∏ach 1.2-2 oraz 1.2-3. Pozosta∏e
s∏owa u˝ywane w j´zyku PL7 (z wyjàtkiem s∏ów sieciowych oraz s∏ów bloków
funkcyjnych) adresuje si´ w sposób nast´pujàcy:
%
Symbol
M, K lublub B, W, D F
S
i
Rodzaj
Format
Numer
obiektu
B = bajt
M = wewnêtrzny W = s◊owo
K = sta◊a
D = s◊owo podwójne
S = systemowy F = zmiennoprzec.
• Rodzaj obiektu
M s∏owa wewn´trzne, czyli te, w których zapisywane sà wartoÊci w trakcie wykonywania
programu. S∏owa te sà zapami´tywane w strefie danych (data zone) pami´ci.
K s∏owa sta∏e s∏u˝àce do przechowywania wartoÊci sta∏ych i komunikatów
alfanumerycznych. Ich zawartoÊç mo˝e byç zapisywana i modyfikowana jedynie
przez terminal. S∏owa te sà przechowywane w tym samym miejscu co program.
Stàd te˝ mogà one wykorzystywaç pami´ç FLASH EPROM.
S s∏owa systemowe. Pe∏nià one ró˝ne funkcje:
- cz´Êç zawiera informacje o statusie systemu, dost´pne za poÊrednictwem s∏ów
%SWi (czasy dzia∏ania systemu i aplikacji).
- pozosta∏e s∏u˝à do wykonywania odpowiednich operacji w aplikacji (tryby pracy,
itp.). S∏owa systemowe sà szczegó∏owo opisane w rozdziale 3, cz´Êç B.
• Format
S∏owa obiektowe mo˝na adresowaç w PL7 przy pomocy 4 ró˝nych formatów:
B bajt: ten format jest u˝ywany wy∏àcznie do dzia∏aƒ na ∏aƒcuchach s∏ów.
W s∏owo pojedynczej precyzji: te 16-bitowe s∏owa mogà zawieraç wartoÊci algebraiczne
z przedzia∏u od -32 768 do 32 767.
Ranga bitu
15 14 13 12
Format 16-bit.
0
1
1
Najbardziej znaczàcy
1
11 10 9 8
0 1 1
1
7
6
5
4
3
2 1 0
0 0
1
1
0
1 0 0
Najmniej znaczàcy
___________________________________________________________________________
1/13
A
D s∏owa podwójnej precyzji: te 32-bitowe s∏owa mogà zawieraç wartoÊci algebraiczne
z przedzia∏u od - 2 147 483 648 do 2 147 483 647. Sà one zapisywane do pami´ci
w dwu nast´pujàcych po sobie s∏owach pojedynczej precyzji.
Najmniej znaczàce
15 14 13 12
11 10 9 8
7
6
5
4
3 2 1 0
0
1
0
1
0 0 1
1
1
1
1
1
0 1 1 1
Ranga n
0
Format 32-bit.
0
1
1
0 1 1
0
0
1
0
1
0 0 1 0
Ranga n+1
Najbardziej znaczàce
F s∏owo zmiennoprzecinkowe: stosowany format zmiennoprzecinkowy jest zgodny
z normà IEEE Std 754-1985 (równowa˝ny w stosunku do IEC 559). S∏owa majà
d∏ugoÊç 32 bitów, co odpowiada d∏ugoÊci pojedynczych s∏ów zmiennoprzecinkowych.
Przyk∏adowe wartoÊci zmiennoprzecinkowe:
1285.28
12.8528E2
obiektów:
Nak∏adanie si´ obiektów
Bajty, s∏owa pojedynczej i podwójnej
precyzji oraz s∏owa zmiennoprzecinkowe
sà zapami´tywane w strefie danych, w tym
samym obszarze pami´ci.
Stàd te˝ mo˝e wystàpiç nak∏adanie si´
nast´pujàcych obiektów:
• s∏ów podwójnej precyzji %MDi oraz s∏ów
pojedynczych %MWi, %MWi+1 (s∏owo
%MWi zawierajàce mniej znaczàce bity
i s∏owo %MWi+1 zawierajàce bardziej
znaczàce bity s∏owa %MDi).
• s∏ów pojedynczej precyzji %MWi oraz
bajtów %MBj oraz %MBj +1 (gdzie j=2.i).
• s∏ów zmiennoprzecinkowych %MFk
i s∏ów pojedynczej precyzji %MWk oraz
%MWk+1.
%MW0
%MB1
%MB0
%MW1
%MB1
%MB0
%MW2
%MB1
%MB0
%MW3
%MD0
%MB1
%MB0
%MD1
%MD2
%MD3
%MWi
%MDi
%MWi+1
%MWk
%MDk
%MWk+1
Przyk∏ady:
%MD0 odpowiadajà %MW0 i %MW1
%MW3 odpowiadajà %MB7 i %MB6
%KD543 odpowiadajà %KW543 i %KW544
%MF10 odpowiadajà %MW10 i %MW11.
___________________________________________________________________________
1/14
A
Informacje ogólne o PL7
1
WartoÊci bezpoÊrednie (immediate values)
Sà to wartoÊci algebraiczne, których format jest podobny do formatu s∏ów pojedynczych
i podwójnych (s∏owa 16- i 32-bitowe), które umo˝liwiajà przypisywanie tym s∏owom
wartoÊci. S∏owa te zapami´tywane sà w pami´ci programu. Sk∏adnia jest nast´pujàca:
Typ
Logiczny
Ca∏kowita (p.10)
(dziesi´tna)
Ca∏kowita (p.2)
(binarna)
Sk∏adnia
Ograniczenie
od do∏u
0 lub 1 (Fa∏sz, Prawda)
1506
-32768
578963
-2 147 483 648
2#1000111011111011011 2#10...0
2#1000111011111011011 2#10...0
1111111011111011111
Ca∏kowita (p.16) pojedyncza
16#AB20
16#0000
(hexadecym.)
podwójna 16#5AC10
16#000000000
Zmiennoprzecinkowa
-1.32E12
-3.402824E+38(1)
1.175494E-38(1)
¸aƒcuch znaków
'aAbBcC'
(1) z wy∏àczeniem wartoÊci ograniczeƒ
pojedyncza
podwójna
pojedyncza
podwójna
Ograniczenie
od góry
+32767
2 147 483 647
2#01...1
2#01...1
16#FFFF
16#FFFFFFFF
-1.175494E-38(1)
3.402824E+38(1)
Adresowanie s∏ów w sieci
Adresowanie s∏ów w sieci opisano w instrukcji dotyczàcej komunikacji.
W sieci pos∏ugujemy si´ specyficznym rodzajem obiektów - s∏owami wspólnymi
(common words). Sà to pojedyncze s∏owa obiektowe (16-bitowe) wspólne dla wszystkich
stacji pod∏àczonych do sieci komunikacyjnej.
Adres: %NW{i.j}k
gdzie: i = nr sieci od 0 do 127, j = nr stacji 0 do 31 oraz k = nr s∏owa 0 do 3
Bity wydzielone ze s∏ów
PL7 umo˝liwia wydzielenie dowolnego z 16 bitów ze s∏owa pojedynczego. Do adresu
s∏owa do∏àcza si´ pozycj´ bitu, który ma byç wydzielony. Sk∏adnia jest nast´pujàca:
S¸OWO
:X
j
Pozycja
j=0 do 15
Pozycja bitu
w s∏owie
Przyk∏ad :
%MW10:X4 = bit nr 4 s∏owa wewn´trznego %MW10
%QW5.1:X10 = bit nr 10 s∏owa wyjÊciowego %QW5.1
Uwaga: Bity mogà byç wydzielane równie˝ ze s∏ów indeksowanych.
___________________________________________________________________________
1/15
A
Zestawienie podstawowych s∏ów obiektowych oraz sprz´˝onych z nimi bitów
R w poni˝szej tabeli oznacza odczyt, natomiast W - zapis.
Sprz´˝one
s∏owa i bity
Rodzaj
Adres
Ograniczenie
S∏owa wewn.
pojedyncze
podwójne
zmiennoprzec.
bajt (2)
%MWi
%MDi
%MFi
%MBi
(1)
(1)
(1)
(1)
R/W
R/W
R/W
R/W
S∏owa sta∏e
pojedyncze
podwójne
zmiennoprzec.
bajt (2)
%KWi
%KDi
%KFi
%KBi
(1)
(1)
(1)
(1)
R/W (3)
R/W (3)
R/W (3)
R/W (3)
S∏owa modu∏u
We/Wy (I/O)
pojedyncze, wejÊciowe
podwójne, wejÊcowe
pojedyncze, wyjÊciowe
podwójne, wyjÊciowe
%IWxy.i
%IDxy.i
%QWxy.i
%QDxy.i
0i127
0i126
0i127
0i126
R
R
R/W
R/W
S∏owa
Grafcet-u
pojedyncze
podwójne
%Xi.T
%Xj.i.T
0i249
0j63 0i249
R
R
S∏owa wspólne
w sieci
S∏owa
systemowe
pojedyncze
podwójne
Bity wydzielone
ze s∏ów
bit j s∏owa wewn.
%MWi:Xj
bit j s∏owa sta∏ego
%KWi:Xj
bit j s∏owa wejÊciowego
%IWi:Xj
bit j s∏owa wyjÊciowego
%QWi:Xj
bit j s∏owa systemowego %SWi:Xj
bit j s∏owa wspólnego
%NW{j}k:Xm
sieç 0
%NW{i.j}k 0i127 0j31 0k3
%SWi
%SDi
Mo˝liwoÊci
R/W
0i255
0i254
R/W (4)
R/W (4)
0j15
0j15
0j15
0j15
0j15
0m15
R/W
R/W (3)
R
R/W
R/W (4)
R/W
(1) Ograniczenie od góry zale˝y od rozmiaru dost´pnej pami´ci oraz liczby s∏ów zadeklarowanej
podczas konfigurowania oprogramowania.
(2) Te obiekty wyst´pujà tylko w adresach poczàtkowych ∏aƒcuchów znaków %MBi:L lub %KBi:L
(patrz rozdzia∏ 2.8-1, cz´Êç B).
(3) Zapisu mo˝na dokonaç tylko z poziomu terminala.
(4) Zapis w zale˝noÊci od i.
___________________________________________________________________________
1/16
A
Informacje ogólne o PL7
1
1.2-5 Obiekty zwiàzane z blokami funkcyjnymi
Bloki funkcyjne majà specyficzne bity i s∏owa.
• Bity obiektowe:
Odpowiadajà one wyjÊciom bloków.
Sà dost´pne za poÊrednictwem binarnych poleceƒ testowych.
• S∏owa obiektowe:
Odpowiadajà one:
- parametrom konfiguracyjnym bloku.
Dost´p do nich odbywa si´ niekiedy
za pomocà programu (np. wartoÊci
wst´pnie nastawione) lub bez jego
udzia∏u (np. podstawa czasu),
- wartoÊciom bie˝àcym (np. %Ci,V bie˝àca wartoÊç licznika).
%Ci
R
E
S
C.P : 9999
D
CU
MODIF : Y
F
CD
Licznik
Lista bitów i s∏ów bloków funkcyjnych dost´pnych za poÊrednictwem programu
Wst´pnie zdef.
Bity i s∏owa zwiàzane z blokiem
bloki funkcyjne
Zegar Timer
S∏owo
WartoÊç bie˝àca
%TMi (i=0 do 63)
WartoÊç nastawiona
(1)
Bit
WyjÊcie zegara
Adres
Licznik
counter
%Ci (i=0 do 31)
Przerzutnik
%MNi (i=0 do 7)
S∏owo
Bit
S∏owo
Bit
Rejestr
%Ri (i= 0 do 3)
S∏owo
Bit
B´ben
%DRi (i=0 do 7)
S∏owo
Bit
Zegar serii 7
%T (i=0 do 63)
(1)
S∏owo
Bit
%TMi.V
%TMi.P
%TMi.Q
Dost´p
do zapisu
nie
tak
nie
Patrz
Cz. B
1.3-2
WartoÊç bie˝àca
WartoÊç nastawiona
Licznik pusty (empty)
Na wyjÊciu jest wart. nast.
Licznik zape∏niony (full)
%Ci.V
%Ci.P
%Ci.E
%Ci.D
%Ci.F
nie
tak
nie
nie
nie
1.3-3
WartoÊç bie˝àca
WartoÊç nastawiona
WartoÊç bie˝àca na wyjÊciu
%MNi.V
%MNi.P
%MNi.R
nie
tak
nie
2.2-1
WejÊcie rejestru
WyjÊcie rejestru
Rejestr zape∏niony
Rejestr pusty
%Ri.I
%Ri.O
%Ri.F
%Ri.E
tak
tak
nie
nie
2.2-2
Nr bie˝àcego kroku
Status kroku j
Czas aktywnoÊci kroku
Ostatni zdefiniowany krok
%DRi.S
%DRi.Wj
%DRi.V
%DRi.F
tak
nie
nie
nie
2.2-3
WartoÊç bie˝àca
WartoÊç nastawiona
WyjÊcie zegara
Zegar wyliczony
%Ti.V
%Ti.P
%Ti.R
%Ti.D
nie
tak
nie
nie
2.2-4
(1) Ca∏kowita liczba zegarów %TMi i %Ti jest ograniczona do 64 dla TSX 37 i 255 dla TSX 57.
(2) Maksymalna liczba dotyczy TSX 37, dla TSX 57 i = 0 - 254 dla wszystkich bloków funkcyjnych.
___________________________________________________________________________
1/17
A
1.2-6 Obiekty strukturalne
Tablice bitów
Tablice bitów, o okreÊlonej d∏ugoÊci L, sà sekwencjami sàsiadujàcych ze sobà bitów
obiektowych tego samego typu.
%M10 %M11 %M12 %M13 %M14 %M15
Przyk∏ad tablicy bitów: %M10:6
nc by
Rodzaj
Max. d∏ugoÊç
Dost´p do zapisu
Adres
Bity wejÊç dyskretnych
%Ix.i:L
1 & lt; L & lt; m (1)
Nie
Bity wyjÊç dyskretnych
%Qx.i:L
1 & lt; L & lt; m (1)
Tak
Bity wewn´trzne
%Mi:L
i+L & lt; n (2)
Tak
Bity Grafcet-u
%Xi:L, %Xj.i:L
i+L & lt; n (2)
Nie
(1) m = w zale˝noÊci od typu modu∏u (np. 8 dla modu∏u z 8 wejÊciami lub 8 wyjÊciami),
(2) n - zmienia si´ w zale˝noÊci od d∏ugoÊci zadeklarowanej w konfiguracji.
Tablice s∏ów
Tablica s∏ów, o kreÊlonej d∏ugoÊci L, jest
sekwnecjà sàsiadujàcych ze sobà s∏ów
tego samego typu.
16 bitów
%KW14
Przyk∏ad tablicy s∏ów: %KW10:5
Rodzaj
%KW10
Format
Adres
Maksymalna
d∏ugoÊç
do zapisu
Dost´p
S∏owa wewn´trzne
Pojedyncze
Podwójne
Zmiennoprzec.
%MWi:L
%MDi:L
%MFi:L
i+L & lt; Nmax (2)
i+L & lt; Nmax-1 (2)
i+L & lt; Nmax-1 (2)
Tak
Tak
Tak
S∏owa sta∏e
Pojedyncze
Podwójne
Zmiennoprzec.
%KWi:L
%KDi:L
%KFi:L
i+L & lt; Nmax (2)
i+L & lt; Nmax-1 (2)
i+L & lt; Nmax-1 (2)
Nie
Nie
Nie
S∏owa Grafcet-u
Pojedyncze
%Xi.T:L, %Xj.i.T:L
i+L & lt; Nmax-1 (2)
Nie
S∏owa systemowe
Pojedyncze
%SW50:4 (3)
Tak
¸aƒcuchy znaków
%MB10
¸aƒcuch znaków, o okreÊlonej d∏ugoÊci L,
jest sekwencjà sàsiadujàcych ze sobà
bajtów tego samego typu.
%MB14
8 bitów
Przyk∏ad ∏aƒcucha znaków: %MB10:5
Rodzaj
Adres
Maksymalna d∏ugoÊç
Dost´p do zapisu
S∏owa wewn´trzne
%MBi:L (5)
1-i+L & lt; Nmax (4)
Tak
S∏owa sta∏e
%KBi:L (5)
1-i+L & lt; Nmax (4)
Tak
(3) Zestawiaç w formie tablicy mo˝na tylko s∏owa %SW50 do %SW53.
(4) Nmax = maksymalna liczba zdefiniowana w konfiguracji.
(5) i musi byç liczbà parzystà.
___________________________________________________________________________
1/18
A
Informacje ogólne o PL7
1
Obiekty indeksowane
• Adresowanie bezpoÊrednie
Obiekty indeksowane adresuje si´ bezpoÊrednio wtedy, kiedy ich adresy sà sta∏e
i zdefiniowane w zapisanym programie.
Przyk∏ad: %MW26 (wewn´trzne s∏owo o adresie 26)
• Adresowanie indeksowe
Przy adresowaniu indeksowym do bezpoÊredniego adresu obiektu dodaje si´ indeks.
W efekcie zawartoÊç indeksu jest dodawana do adresu obiektu. Indeks definuje si´ za
pomocà s∏ów wewn´trznych %MWi, s∏ów sta∏ych %KWi lub wartoÊci bezpoÊrednich
(immediate value). Liczba s∏ów indeksowanych jest nieograniczona.
Przyk∏ad
: %MW108[%MW2] : bezp. adres s∏owa 108 + zawartoÊç s∏owa %MW2.
JeÊli zawartoÊcià %MW2 jest wartoÊç 12, to zapis %MW108[%MW2]
jest równowa˝ny zapisowi %MW120.
Rodzaj
Format
Adres
Maksymalny
rozmiar
Dost´p
do zapisu
Bit wejÊciowy
Logiczny
Bit wyjÊciowy
Logiczny
%Ii[index]
0 & lt; i+index & lt; m (1)
Nie
%Qi[index]
0 & lt; i+index & lt; m (1)
Tak
Bit wewn´trzny
Bit Grafcet-u
Logiczny
%Mi[index]
0 & lt; i+index & lt; Nmax (2)
Tak
Logiczny
%Xi[index]
%Xj.i[index]
0 & lt; i+index & lt; Nmax (2)
0 & lt; i+index & lt; Nmax (2)
Nie
Nie
S∏owa
wewn´trzne
Pojedynczy
Podwójny
Zmiennoprzec.
%MWi[index]
%MDi[index]
%MFi[index]
0 & lt; i+index & lt; Nmax (2)
Tak
0 & lt; i+index & lt; Nmax-1 (2) Tak
0 & lt; i+index & lt; Nmax-1 (2) Tak
S∏owa sta∏e
Pojedynczy
Podwójny
Zmiennoprzec.
%KWi[index]
%KDi[index]
%KFi[index]
0 & lt; i+index & lt; Nmax (2)
Nie
0 & lt; i+index & lt; Nmax-1 (2) Nie
0 & lt; i+index & lt; Nmax-1 (2) Nie
S∏owa Grafcet-u
Pojedynczy
%Xi .T[index]
%Xj.i.T[index]
0 & lt; i+index & lt; Nmax (2)
0 & lt; i+index & lt; Nmax (2)
Nie
Nie
Tablica s∏ów
& lt; Obiekt & gt; [index]:L index[index]:L
%MDi[index]:L
%KWi[index]:L
%KDi[index]:L
0 & lt; i+index+L & lt; Nmax (2)
0 & lt; i+index+L & lt; Nmax (2)
0 & lt; i+index+L & lt; Nmax (2)
0 & lt; i+index+L & lt; Nmax (2)
Tak
Tak
Nie
Nie
(1) m = zale˝y od typu modu∏u (np. 8 dla modu∏u z 8 wejÊciami lub 8 wyjÊciami). Indeksacja
dotyczy tylko dyskretnych modu∏ów I/O.
(2) Nmax = maksymalna liczba zdefiniowana w konfiguracji.
Taki sposób adresowania umo˝liwia przesuwanie si´ wzd∏u˝ kolejnych elementów sekwencji
obiektów tego samego typu (s∏owa wewn´trzne, s∏owa sta∏e). ZawartoÊç indeksu dodawana jest
do adresu bezpoÊredniego
Uwaga: Mo˝liwe jest indeksowanie s∏ów podwójnej precyzji (lub zmiennoprzecinkowych).
Przyk∏ad: %MD6[%MW100] bezpoÊredni adres s∏owa podwójnego 6 + 2-krotna zawartoÊç s∏owa
%MW100. JeÊli %MW100=10, adresowanym s∏owem b´dzie 6 + 2 x 10 -- & gt; %MD26.
___________________________________________________________________________
1/19
A
• Przekroczenie zakresu indeksu - bit systemowy %S20
Przekroczenie zakresu indeksu wyst´puje wtedy, kiedy adres indeksowanego obiektu
wychodzi poza stref´ zawierajàcà obiekty tego samego typu, co nast´puje, gdy:
• adres obiektu + wartoÊç indeksu daje wartoÊç mniejszà od 0,
• adres obiektu + wartoÊç indeksu daje wartoÊç wi´kszà od zdefiniowanej w konfiguracji
wartoÊci maksymalnej (patrz tabela na poprzedniej stronie).
Przy przekroczeniu zakresu indeksu bit systemowy %S20 przyjmuje wartoÊç 1,
a obiektowi przypisywany jest indeks o wartoÊci 0.
Monitorowanie przekroczenia zakresu le˝y w gestii u˝ytkownika - w celu przetworzenia
bit %S20 musi byç odczytany przez program u˝ytkowy. Kasowanie bitu równie˝ jest
obowiàzkiem u˝ytkownika.
%S20 (wartoÊç poczàtkowa = 0) :
• w przypadku przepe∏nienia indeksu: system nadaje mu wartoÊç 1,
• potwierdzenie: nadanie bitowi wartoÊci 0 po dokonaniu zmiany indeksu (u˝ytkownik).
1.2-7 Obiekty j´zyka Grafcet
Bity obiektowe
U˝ytkownik ma do dyspozycji nast´pujàce bity obiektowe:
• obiekt %Xi zwiàzany z krokami umo˝liwiajàcy identyfikacj´ statusu kroku i diagramu
g∏ównego.
• obiekt %XMj zwiàzany ze skokami (macro-step) umo˝liwiajàcy identyfikacj´ statusu
skoku j.
• obiekt %Xj.i zwiàzany z krokiem i skoku j umo˝liwiajàcy identyfikacj´ statusu kroku
i skoku j diagramu.
• obiekty %Xj.IN oraz %Xj.OUT zwiàzane odpowiednio z krokiem wejÊcia i wyjÊcia.
Bity te majà wartoÊç 1, gdy krok (skok) jest aktywny, w innym razie majà wartoÊç 0.
S∏owa obiektowe
Z ka˝dym krokiem zwiàzane jest jedno ze s∏ów: %Xi.T, %Xj.i.T, %Xj.IN.T lub
%Xj.OUT.T. Sygnalizuje ono czas, w którym krok i diagramu jest aktywny. Co 100ms
wartoÊç jest zwi´kszana o 1, przy czym przyjmuje wartoÊci z przedzia∏u od 0 do 9999.
1.2-8 Obiekty zwiàzane z blokiem typu DFB
Dost´p do parametrów wyjÊciowych oraz zmiennych globalnych (public) bloku typu
DFB odbywa si´ za poÊrednictwem programu. Mogà one byç obiektami logicznymi,
numerycznymi lub tablicami obiektów (patrz rozdzia∏ 6).
Obiekty te majà charakter czysto symboliczny i definiuje si´ je przy u˝yciu nast´pujàcej
sk∏adni: DFB_nazwa.Parametr_nazwa, gdzie DFB_nazwa oznacza nazw´ u˝ytego
Parametr_nazwa jest nazwà parametru
bloku funkcyjnego (max 32 znaki), a
wyjÊciowego lub zmiennà globalnà (max 8 znaków).
___________________________________________________________________________
1/20
A
Informacje ogólne o PL7
1
1.2-9 Przypisywanie symboli
Symbole
Symbol to szereg maksymalnie 32 znaków alfanumerycznych, z których pierwszy jest
literà alfabetu. Symbol zaczyna si´ od wielkiej litery, a pozosta∏à cz´Êç symbolu
zapisuje si´ literami ma∏ymi (np. Kociol_1). Po zdefiniowaniu symbolu mo˝na go
póêniej zapisywaç zarówno wielkimi jak i ma∏ymi literami (np. KOCIOL_1). Program
automatycznie przetworzy ten zapis na poprawny.
Dopuszczalne jest u˝ycie nast´pujàcych znaków:
• wielkich liter alfabetu:
" A do Z " oraz " ÀÀÂÃÄÅÆÇÈÉÊËÌÍÎÏDπÒÓÔÖØÙÚÛYp "
lub ma∏ych liter alfabetu:
" a do z " oraz " áàâãåæçéèêëÌÍÎÏðñòóôõöøùúûüypßÿ”
• numerycznych: cyfry 0 to 9 (nie mogà byç pierwszym znakiem symbolu).
• znaku " _ " (nie mo˝e byç ani pierwszym, ani ostatnim znakiem symbolu).
Istnieje pewna liczba s∏ów, które sà zarezerwowane i nie mo˝na ich u˝ywaç jako
symbolu. Pe∏nà list´ zamieszczono w rozdziale 5, w cz´Êci B.
Symbole definiuje si´ i wià˝e z obiektami za pomocà edytora zmiennych (patrz rozdzia∏
5, cz´Êç D). Do ka˝dego symbolu mo˝na do∏àczyç komentarz, który mo˝e si´ sk∏adaç
maksymalnie z 508 znaków. Symbole wraz z komentarzami sà zapisywane na dysku
terminala, a nie w sterowniku.
Obiekty, którym mo˝na przypisywaç symbole
Symbole mo˝na przypisywaç niemal wszystkim obiektom j´zyka PL7, z wyjàtkiem
obiektów indeksowych oraz obiektów strukturalnych typu tablice z tym, ˝e gdy obiekt
bazowy lub indeks majà przypisane symbole, to ten symbol jest wykorzystywany
w obiekcie strukturalnym.
Przyk∏ady:
• jeÊli s∏owu %MW0 przypisano symbol " Temperatura " , to tablica s∏ów %MW0:12 ma
przypisany symbol " Temperatura:12 "
• jeÊli s∏owu %MW10 przypisano symbol " Piec_1 " , to s∏owo indeksowe %MW0[%MW10]
ma przypisany symbol " Temperatura[piec_1] " .
Bitom obiektowym wydzielonym ze s∏ów oraz bitom i s∏owom bloków funkcyjnych
mo˝na nadaç symbol przy czym jeÊli go nie majà, to przyjmà symbol obiektu
bazowego.
Przyk∏ady:
• jeÊli s∏owu %MW0 przypisano symbol " Stan_pompy " i jeÊli wydzielony ze s∏owa bit
%MW0:X1 nie ma symbolu, to przejmie on symbol s∏owa. Stàd symbolem bitu
%MW0:X1 staje si´ " Stan_pompy:X1 " .
• jeÊli blokowi funkcyjnemu %TM0 przypisano symbol " Piec1_zegar " , a wyjÊcie %TM0.D
nie ma przypisanego symbolu, to przejmuje ono symbol bloku. Stàd symbolem
wyjÊcia %TM0.D staje si´ " Piec_zegar.D " .
___________________________________________________________________________
1/21
A
Obiekty o charakterze czysto symbolicznym
Parametry bloków typu DFB sà dost´pne tylko jako symbole. Obiekty te sà definiowane
przy u˝yciu nast´pujàcej sk∏adni:
DFB_nazwa.Parametr_nazwa.
gdzie DFB_nazwa jest nazwà bloku funkcyjnego DFB (maksymalnie 32 znaki),
a Parametr_nazwa jest nazwà nadanà parametrowi wyjÊciowemu bloku, wzgl´dnie
zmiennà globalnà (maksymalnie 8 znaków).
Obiekty o symbolach przypisywanych automatycznie
Niektóre modu∏y umo˝liwiajà automatyczne przypisywanie symboli obiektom z nimi
zwiàzanym. U˝ytkownik podaje ogólny symbol kana∏u danego modu∏u %CHxy.i,
a symbole obiektów zwiàzanych z tym kana∏em mogà byç automatycznie generowane.
Obiektom tym przypisuje si´ symbole w nast´pujàcy sposób:
Przedrostek_u˝ytkownika_Przyrostek_fabryczny
gdzie
Przedrostek_u˝ytkownika jest symbolem ogólnym przypisanym kana∏owi %CHxy.i
(maksymalnie 12 znaków),
Przyrostek_fabryczny jest cz´Êcià symbolu nadawana przez system odpowiadajàcà
bitowi lub s∏owu kana∏u (maksymalnie 20 znaków).
Oprócz symbolu generowany jest równie˝ automatycznie komentarz producenta
zawierajàcy krótkà charakterystyk´ obiektu.
Przyk∏ad: Auxil_motor2_param (parametry silnika pomocniczego nr 2), gdzie
Auxil_motor2 stanowi przedrostek nadany przez u˝ytkownika, _param jest przyrostkiem
nadanym fabrycznie.
___________________________________________________________________________
1/22
A
Informacje ogólne o PL7
1.3
1
Pami´ç u˝ytkowa
1.3-1 Wprowadzenie
Dost´pnà dla u˝ytkownika pami´ç sterowników TSX 37 podzielono na dwie grupy:
37,
• Pami´ç bitowà (bit memory)
Pami´ç RAM znajdujàca si´ w module procesora. PojemnoÊç 1280 bitów obiektowych.
• Pami´ç s∏ownà (word memory)
S∏owa 16-bitowe (program, dane i sta∏e) sà przechowywane w pami´ci RAM modu∏u
procesora. Pami´ç t´ mo˝na zwi´kszyç o dodatkowà pami´ç RAM o pojemnoÊci 32
lub 64Ks∏ów lub przy u˝yciu karty FLASH EPROM (pami´ç dla TSX 37-21/22).
Pami´ç FLASH EPROM o pojemnoÊci 16Ks∏ów zintegrowana z modu∏em procesora
mo˝e byç wykorzystywana do jednoczesnego przechowywania programu
aplikacyjnego (15 Ks∏ów) i 1000 s∏ów wewn´trznych (1 Ks∏ów) (rozdzia∏ 1.3-2).
Karta pami´ci FLASH EPROM o pojemnoÊci 32Ks∏ów mo˝e byç wykorzystywania
do wykonywania kopii (backup) albo do uaktualniania aplikacji zapisanej w wewn´trznej
pami´ci RAM procesora. Na karcie takiej zapisywana jest cz´Êç programu i sta∏e, ale
nie dane.
Pami´ç s∏owna mo˝e byç usystematyzowana na dwa ró˝ne sposoby (w zale˝noÊci
od tego czy wykorzystuje si´ kart´ PCMCIA, czy te˝ nie):
TSX 37-10 lub
TSX 37-21/22 (bez karty PCMCIA)
Pami´ç
wewn´trzna
Internal RAM
Dane
Program
Sta∏e Constants
Wewn´trzna
pami´ç
Flash
EPROM (1)
Dane
Program
Sta∏e
Kopia
programu
i sta∏ych
%MW
kopia
TSX 37-21/22 (z kartà PCMCIA)
Dane
Pami´ç
wewn´trzna
Internal
RAM
Pami´ç RAM
lub
dodakowa
karta pami´ci
Flash
EPROM
Wewn.
pami´ç
Flash
EPROM
Strefa
niedost´pna
%MW
kopia
Program
Sta∏e
: dane dynamiczne systemu i aplikacji.
: deskryptory i wykonywalne kody zadaƒ.
: s∏owa sta∏e, wartoÊci poczàtkowe (initial values), konfiguracja I/O.
Uwaga
Do podtrzymania zasilania pami´ci mo˝na u˝ywaç baterii kadmowo-niklowych
zainstalowanych w module procesora dla pami´ci bitowej i wewn´trznej (RAM)
(1) W przypadku utraty aplikacji zapisanej w pami´ci RAM (awaria zasilania lub brak baterii)
nast´puje automatyczny transfer aplikacji z pami´ci FLASH EPROM do pami´ci RAM.
Przy pomocy programowalnego terminala mo˝na dokonaç takiego transferu r´cznie.
___________________________________________________________________________
1/23
A
Pami´ç w sterownikach TSX/PMX/PCX 57 nie jest podzielona. Pami´ç bitowa,
wyst´pujàca oddzielnie w przypadku sterowników TSX 37, wchodzi w sk∏ad pami´ci
s∏ownej (bity zapami´tywane sà w strefie danych). Jej pojemnoÊç to 4096 bitów.
• Pami´ç s∏owna:
Jest to pami´ç RAM znajdujàca si´ w module prcesora, s∏u˝àca do przechowywania
16-bitowych s∏ów (program, dane i sta∏e). Mo˝na jà zwi´kszyç poprzez zastosowanie
dodatkowej pami´ci RAM o pojemnoÊci 32, 64, 128 lub 256Ks∏ów lub karty pami´ci
FLASH EPROM (1).
Karta FLASH EPROM o pojemnoÊci 32Ks∏ów mo˝e byç wykorzystana do wykonania
kopii (backup) albo do uaktualnienia aplikacji zapisanej w wewn´trznej pami´ci RAM
procesora. Na karcie zapisywana jest cz´Êç programu i sta∏e (nie dane).
Pami´ç s∏owna mo˝e byç usystematyzowana na dwa ró˝ne sposoby (w zale˝noÊci
od tego czy wykorzystuje si´ kart´ PCMCIA, czy te˝ nie):
TSX/PMX/PCX 57
(z kartà pami´ci)
TSX/PMX/PCX 57
(bez karty pami´ci)
Wewn´trzna
pami´ç
Internal
RAM
Dane
Program
Wewn´trzna
pami´ç
Internal
RAM
Dane
Sta∏e
Pami´ç
RAM
lub
karta
FLASH
EPROM
Data
Program
Sta∏e
Program
Sta∏e
: dynamiczne dane aplikacji i systemu (system rezerwuje sobie obszar
o pojemnoÊci minimum 5Ks∏ów: patrz cz´Êç B, rozdzia∏ 8).
: deskryptory i wykonywalne kody zadaƒ.
: s∏owa sta∏e, wartoÊci poczàtkowe (initial values), konfiguracja I/O.
Nie ma mo˝liwoÊci przepe∏nienia danych na karcie pami´ci jak i jednoczesnej
obecnoÊci programu w wewn´trznej pami´ci RAM i na karcie.
Uwaga
Do podtrzymania zasilania pami´ci RAM mogà s∏u˝yç baterie niklowo-kadmowe.
(1) Karty pami´ci o pojemnoÊci 256Ks∏ów sà stronicowane. Na jednej stronie 128Ks∏ów zapisywane
sà kody wykonywalne, a na drugiej - informacje graficzne.
Wi´cej informacji nale˝y szukaç w rozdziale 8 cz´Êci B.
___________________________________________________________________________
1/24
A
Informacje ogólne o PL7
1
1.3-2 Zapami´tywanie / odczytywanie s∏ów wewn´rznych %MWi
Zapami´tywanie s∏ów wewn´trznych %MWi
Sterowniki TSX 37 majà mo˝liwoÊç kopiowania do 1000 s∏ów wewn´trznych (%MW)
do wewn´trznej pami´ci Flash EPROM. Dzi´ki temu w przypadku awarii zasilania, gdy
bateria podtrzymujàca jest niesprawna (lub jej w ogóle nie ma), nast´puje automatyczne
przekopiowanie danych regulacyjnych (adjustment data) do pami´ci Flash EPROM.
Aby mo˝liwe by∏o zapisanie s∏ów wewn´trznych do pami´ci Flash EPROM, aplikacja
musi byç zatrzymana (stopped). Dokonuje si´ tego, w zale˝noÊci od konfiguracji,
w nast´pujàcy sposób:
• wystawienie na wejÊciu dyskretnym %I1.9 wartoÊci 1, lub
• z poziomu panela regulacyjnego (adjustment panel), poprzez nadanie bitowi 0 s∏owa
%SW96 wartoÊci 1.
W s∏owie %SW97 zdefiniowana jest liczba s∏ów %MWi do zapisania (maks. 1000).
Po zakoƒczeniu operacji kopiowania (backup) na wyÊwietlaczu pojawia si´ komunikat
OK lub NOK (w zale˝noÊci od wyniku operacji).
S∏owa wewn´trzne %MWi sà zawsze zapisywane podczas zapisywania programu.
Je˝eli s∏owo systemowe %SW97 ma wartoÊç 0, to do pami´ci Flash EPROM
kopiowany jest tylko program rezydujàcy w wewn´trznej pami´ci RAM (jest to
równowa˝ne z kopiowaniem programu).
Ostrze˝enie: Wszystkie zapisane dotychczas s∏owa %MWi zostanà skasowane.
Odzyskiwanie s∏ów wewn´trznych %MWi
W przypadku zimnego startu (cold start) zapami´tane s∏owa %MWi przepisywane sà
z wewn´trznej pami´ci Flash EPROM do pami´ci RAM. Taki start mo˝e byç
spowodowany:
• utratà zawartoÊci wewn´trznej pami´ci RAM. W takim przypadku, jeÊli dost´pna jest
kopia programu aplikacyjnego, to jest ona równie˝ przepisywana do wewn´trznej
pami´ci RAM (dla TSX 37-10 i TSX 37-20 nie wyposa˝onych w kart´ PCMCIA),
• naciÊni´ciem przycisku RESET na p∏ycie czo∏owej sterownika,
• nadaniem bitowi %S0 wartoÊci 1, podczas pracy w trybie regulacji (adjusting),
• klikni´ciem przycisku " Cold start " w oknie testowania (debug) procesora,
• transferem programu do sterownika (za pomocà portu terminala, sieci FIPWAY, itd),
• w∏o˝eniem karty PCMCIA.
Aby przy " zimnym starcie " nastàpi∏o odzyskanie zapisanych w pami´ci wewn´trznej
s∏ów %MW, nale˝y wy∏àczyç opcj´ " Reset %MWi on cold start " (co oznacza: " przy
zimnym starcie przywróç domyÊlne wartoÊci s∏owom %MWi " ) w oknie konfiguracji
procesora.
Wi´cej szczegó∏owych informacji nale˝y szukaç w cz´Êci A instrukcji instalacji
sterowników TSX Micro.
___________________________________________________________________________
1/25
A
1.3-3 Pami´ç bitowa
Charakterystyka
W przypadku sterowników TSX 37 pami´ç ta mo˝e pomieÊciç do 1280 bitów
obiektowych. Natomiast dla sterowników TSX/PMX/PCX 57 pami´ç bitowa nie jest
wydzielona, a jej zawartoÊç znajduje si´ w pami´ci s∏ownej w strefie danych aplikacji.
TSX
37-10
TSX
37-21/22
TSX/PMX
PCX 57-1•
TSX/PMX
57-2•
TSX/PMX
PCX 57-3•
Bity systemowe
%SI
128
128
128
128
128
Bity I/O
%I/Qx
(1)
(1)
(1)
(1)
(1)
Bity wewn´trzne
%Mi
256
256
3962 (2)
8056 (2)
12152 (2)
Bity kroków
%Xi (3)
96
128
1024
1024
1024
(1) Zale˝y od zadeklarowanej konfiguracji sprz´towej (typ modu∏u I/O, rodzaj urzàdzeƒ na szynie
AS-i i na szynie FIPIO)
(2) W konfiguracji mo˝na nadawaç wartoÊci wybranym bitom wewn´trznym. DomyÊlna wartoÊç
bitu (256 do 2048) zmienia si´ w zale˝noÊci od zastosowanego procesora oraz od tego, czy
jest stosowana karta pami´ci. Pozosta∏a cz´Êç pami´ci jest do dyspozycji funkcji aplikacji.
(3) Dla sterowników TSX/PMX/PCX 57 jest to ca∏kowita liczba bitów kroku i bitów skoku.
Struktura
Ka˝dy bit obiektowy jest zapisywany w pami´ci bitowej za poÊrednictwem trzech
przypisanych mu bitów:
F
P
C
Stan bie˝àcy (tylko bity dost´pne
dla programu) Current
Stan poprzedni Previous
Stan wymuszenia Forced
Podczas uaktualniania pami´ci bitowej system wykonuje nast´pujàce operacje:
• zapisanie stanu bie˝àcego jako stanu poprzedniego,
• uaktualnienie bie˝àcego stanu bitu przez program, system lub terminal (gdy nast´puje wymuszenie wartoÊci bitu).
Zbocze opadajàce lub narastajàce sygna∏u
Taka struktura pami´ci bitowej jest wykorzystywana do wykrywania zbocza opadajàcego
lub narastajàcego:
• bitów I/O,
• bitów wewn´trznych.
Zalecenia dotyczàce wykorzystania zbocza sygna∏u
Prze∏àczanie styku na zboczach sygna∏u dzia∏a poprawnie przy zachowaniu
nast´pujàcych zasad:
• w odniesieniu do pojedynczych obiektów - we wszystkich przypadkach:
- bit wejÊciowy: reakcja na zbocze w zadaniu, do którego jest przypisany,
- bit wyjÊciowy lub wewn´trzny: odczyt i zapis w obr´bie tego samego zadania.
___________________________________________________________________________
1/26
A
Informacje ogólne o PL7
1
• Cewki stosowaç tylko wtedy kiedy styk reagujàcy na zbocze jest wykorzystany
wtedy,
w programie.
• Podczas kontroli zbocza sygna∏u nie wolno wydawaç poleceƒ SET (ustaw) oraz
RESET (skasuj do stanu poczàtkowego), bo nawet w przypadku, gdy wynikiem
równania warunkujàcego wykonanie polecenia SET/RESET jest 0, to choç operacja
nie zostanie wykonana, nastàpi uaktualniene rejestru operacji obiektu (object log)
czego efektem b´dzie utrata (zignorowanie) zbocza.
• Nie wolno testowaç wejÊç i wyjÊç (I/O) wykorzystanych w zadaniu wyzwalanym
zdarzeniami, w zadaniu g∏ównym (MASTER) i szybkim (FAST).
• W przypadku bitów wewn´trznych: testowanie zbocza jest niezale˝ne w stosunku do
" przebiegu " zadania (task scan). Zbocze bitu wewn´trznego %Mi jest wykrywane
kiedy sygna∏ zmienia stan pomi´dzy 2 operacjami odczytu. Wynik testowania
zbocza pozostaje tak d∏ugo, jak d∏ugo ten wewn´trzny bit nie zostanie
poddany ponownemu przetworzeniu.
W przyk∏adzie obok, jeÊli bit %M0 ma
wymuszony stan 1 (w tablicy animacji), to
uk∏ad zachowuje si´ jakby zbocze sygna∏u
by∏o permanentnie otwarte.
%M0
P
INC%MW0
Aby zbocze by∏o wykrywane jednorazowo nale˝y zastosowaç dodatkowy, poÊredni bit
wewn´trzny.
W takim przypadku uaktualniany jest bit
%M1 stàd te˝ zbocze zostanie wykryte
tylko raz.
%M0
%M1
%M1
P
INC%MW0
Wymuszanie stanu bitu
JeÊli z terminala przychodzi ˝àdanie (request) wymuszenia wartoÊci bitu, to:
• informacja o wymuszeniu bitu F przyjmuje wartoÊç 1
• bie˝àcy stan bitu C przyjmuje nast´pujàcà wartoÊç:
- 1 w przypadku wymuszenia stanu 1,
- 0 w przypadku wymuszenia stanu 0.
Stany te pozostajà nie zmienione dopóty, dopóki:
• wymuszenie zostanie zdj´te, a stan bitu uaktualniony,
• nastàpi zmiana wymuszonej wartoÊci, w którym to przypadku nastàpi tylko zmiana
wartoÊci bie˝àcej bitu C.
___________________________________________________________________________
1/27
A
1.3-4 Pami´ç s∏owna
Jest to pami´ç do przechowywania s∏ów 16-bitowych, podzielona na 3 obszary:
• Dane
• Program
• Sta∏e
Dane aplikacji
Program aplikacji
Sta∏e aplikacji
WielkoÊç poszczególnych obszarów zdefiniowana jest w konfiguracji.
Pami´ç danych aplikacji
Pami´ç danych obejmuje nast´pujàce strefy:
• S∏owa systemowe sta∏a liczba.
systemowe:
• Bloki funkcyjne rozmiar zale˝y od liczby s∏ów oraz wejÊç i wyjÊç tych bloków
funkcyjne:
(wartoÊci bie˝àce, parametry regulacyjne, itp.).
Liczba bloków funkcyjnych danego typu jest sta∏a i ustalona w konfiguracji.
• S∏owa wewn´trzne rozmiar zale˝y od liczby s∏ów zadeklarowanej w konfiguracji.
wewn´trzne:
• Liczba I/O odpowiada liczbie s∏ów przypisanych ka˝demu modu∏owi.
I/O:
• S∏owa wspólne sieci 4 s∏owa wspólne (common words) na 1 stacj´ (pami´ç
sieci:
dost´pna tylko gdy zamontowano modu∏ komunikacyjny i zosta∏ on skonfigurowany
na wymian´ s∏ów wspólnych).
W przypadku TSX/PMX/PCX 57 pami´ç danych zawiera bity danych opisanych
w poprzednim paragrafie.
Pami´ç programu aplikacyjnego
Ta strefa pami´ci zawiera kody wykonywalne zamieszczone w programie, dane
graficzne (labelki j´zyka Ladder) i komentarze do programu.
Pami´ç sta∏ych
W tym obszarze przechowywane sà parametry bloków funkcyjnych oraz modu∏ów I/O
zdefiniowanych w konfiguracji i s∏owa sta∏e %KW.
Uwaga:
Symbole i komentarze powiàzane z obiektami nie sà rejestrowane w pami´ci sterownika lecz sà
zapisywane w lokalnej aplikacji (na twardym dysku terminala).
___________________________________________________________________________
1/28
A
Informacje ogólne o PL7
1
1.3-5 Sterowniki TSX 37-10/21/22
WielkoÊç pami´ci bitowej
Procesor
37 10
37 21/22
Pami´ç dost´pna w procesorze
1280
1280
Rodzaj
128
128
bity systemowe %Si
obiektu bity I/O %I/Qx.i
(1)
(1)
bity wewn´trzne %Mi
256
256
bity kroków %Xi
96
128
(1) zale˝y od zdefiniowanej konfiguracji sprz´towej (modu∏y I/O, urzàdzenia w magistrali AS-i)
WielkoÊç pami´ci s∏ownej
Procesor
Karta pami´ci
3710
-
-
3721
32Ks∏ów
64Ks∏ów
20Ks∏ów
52Ks∏ów
84Ks∏ów 20Ks∏ów
-
37 22
64Ks∏ów
64Ks∏ów
52Ks∏ów
84Ks∏ów
Rozmiar ca∏k.
14Ks∏ów
Dane (%MWi)
0.5Ks∏ów(1) 0.5Ks∏ów(1)17.5Ks∏ów 17.5Ks∏ów 0.5Ks∏ów(1) 17.5Ks∏ów
17.5Ks∏ów
Program
100% logiczny
• J´zyk LD
3.8 Kinstr. 6.6 Kinstr. 13.7 Kinstr. 28.5 Kinstr. 6.3 Kinstr. 13.6 Kinstr. 28.4 Kinstr.
• J´zyk IL
4.9 Kinstr. 8.4 Kinstr. 17.5 Kinstr. 36.3 Kinstr. 8.1 Kinstr. 17.3 Kinstr. 36.1 Kinstr.
• J´zyk ST
3.3 Kinstr. 5.6 Kinstr. 11.7 Kinstr. 24.2 Kinstr. 5.4 Kinstr. 11.5 Kinstr. 24.1 Kinstr.
Program
90% logiczny
• J´zyk LD
3.1 Kinstr. 5.4 Kinstr. 11.8 Kinstr. 24.7 Kinstr. 5.2 Kinstr. 11.6 Kinstr. 24.5 Kinstr.
• J´zyk IL
3.8 Kinstr. 6.6 Kinstr. 14.3 Kinstr. 30.0 Kinstr. 6.3 Kinstr. 14.2 Kinstr. 29.8 Kinstr.
• J´zyk ST
2.9 Kinstr. 5.1 Kinstr. 11.1 Kinstr. 23.3 Kinstr. 4.9 Kinstr. 11.0 Kinstr. 23.2 Kinstr.
Program
65% logiczny
• J´zyk LD
2.2 Kinstr. 4.0Kinstr. 9.1 Kinstr. 18.9 Kinstr 3.9 Kinstr. 8.9 Kinstr.
• J´zyk IL
2.5 Kinstr. 4.6Kinstr. 10.3 Kinstr. 21.3 Kinstr. 4.4 Kinstr. 10.1 Kinstr. 21.2 Kinstr.
• J´zyk ST
2.5 Kinstr. 4.6Kinstr. 10.3 Kinstr. 21.3 Kinstr. 4.4 Kinstr.
10.1 Kinstr.
21.2 Kinstr.
Sta∏e (1)
128 s∏ów
256 s∏ów
512 s∏ów
128 s∏ów 256 s∏ów 512 s∏ów 128 s∏ów
18.8 Kinstr.
(1) DomyÊlny rozmiar mo˝na powi´kszaç, jednak trzeba pami´taç o wp∏ywie jaki b´dzie to mia∏o na
rozmiar programu aplikacyjnego.
Uwaga: W j´zyku PL7 do mapowania pami´ci (czyli zarzàdzania pami´cià) aplikacji s∏u˝y
polecenie PLC/Memory Usage.
___________________________________________________________________________
1/29
A
1.3-6 Sterowniki TSX/PCX/PMX 57-10/20/25
Poni˝sze tabele dotyczà sterowników TSX 57-10, PCX 57-10, PMX 57-10, TSX 57-20,
PMX 57-20 i TSX 57-25.
WielkoÊç pami´ci bitowej
57 10
57 20/25
Rodzaj
Procesor
bity systemowe %Si
128
128
obiektu
bity I/O %I/Qx.i
(1)
(1)
bity wewn´trzne %Mi
3962
8056
bity kroków %Xi
1024
1024
(1) zale˝y od zdefiniowanej konfiguracji sprz´towej (modu∏y I/O, urzàdzenia na szynie AS-i oraz na
szynie FIPIO)
WielkoÊç pami´ci s∏ownej (w iloÊci Ks∏ów)
Procesor
Karta pami´ci
TSX-PCX57 10 / PMX 57 10
32K
64K
Pami´ç wewn.
32K/48K
32K/48K 32K/48K 48K/64K
48K/64K 48K/64K
48K/64K
Dane (%MWi)
1K(1)
26K
30.5K
30.5K
26K
TSX-PMX 5720 / TSX 57 25
32K
64K
1K(1)
30.5K
128K
Program
100% logiczny
• J´zyk LD
8.8/16.1K
12.4/12.4K 27.2/27.2K 16.1/23.5K 12.4/12.4K 27.2/27.0K
56.8/56.8K
• J´zyk IL
11.2/20.6K
15.8/15.8K 34.7 /34.7K 20.5/29.9K
15.8/15.8K 34.7/34.4K
72.4/72.4K
• J´zyk ST
13.7 /13.7K
10.6 /10.6K 23.1/23.1K 13.7/19.9K
10.5/10.5K 23.1/23.0K
48.2/48.2K
• J´zyk LD
5.3/11.6K
8.8/8.8K 21.6/21.6K 11.6/17.6K 8.7/8.7K
21.6/21.6K
47.7/47.5K
• J´zyk IL
6.3/14.2K
10.5/10.7K 25.9/26.3K 13.9/21.1K 10.4/10.4K 25.8/25.8K
56.6/56.7K
• J´zyk ST
5.0/11.0K
8.4/8.3K 20.7/20.4K 11.1/16.9K 8.4/8.4K
20.7/20.7K
45.4/45.4K
• J´zyk LD
3.7/8.5K
6.8/6.6K 16.9/16.5K 8.7/13.7K
6.8/6.8K
16.8/16.8K
37.0/37.0K
• J´zyk IL
3.8/9.7K
6.9/7.5K 17.3/18.7K 8.9/14.1K
6.9/6.9K
17.2/17.2K
37.9/37.9K
• J´zyk ST
4.4/9.7K
8.0/7.5K 20.0/18.7K 10.3/16.3K 8.0/8.0K
19.9/19.9K
43.8/43.8K
Sta∏e (1)
128s∏ów
128s∏ów 256s∏ów
256s∏ów
512s∏ów
Program
90% logiczny
Program
65% logiczny
512s∏ów
128s∏ów
(1) DomyÊlny rozmiar mo˝na zmieniaç, lecz ma to wp∏yw na wielkoÊç programu aplikacyjnego.
Uwaga:
• Tam, gdzie w tabeli podano 2 wartoÊci rozdzielone " / " oznacza, ˝e dla 2 rodzajów procesora
z nag∏ówka tabeli sà one ró˝ne.
• W j´zyku PL7 do mapowania pami´ci aplikacji (czyli zarzàdzania pami´cià) s∏u˝y polecenie
Usage.
PLC/Memory Usage
___________________________________________________________________________
1/30
A
Informacje ogólne o PL7
1
1.3-7 Sterowniki TSX/PCX 57-30/35
Poni˝sze tabele dotyczà sterowników TSX 57-30, TSX 57-35 i PCX 57-35.
WielkoÊç pami´ci bitowej
Procesor
57 30/35
Rodzaj
bity systemowe %Si
128
obiektu
bity I/O %I/Qx.i
(1)
bity wewn´trzne %Mi
12152
bity kroków %Xi
1024
(1) zale˝y od zdefiniowanej konfiguracji sprz´towej (modu∏y I/O, urzàdzenia na szynie AS-i oraz na
szynie FIPIO)
WielkoÊç pami´ci s∏ownej (w iloÊci Ks∏ów)
Procesor
Karta pami´ci
TSX/PMX 5730 / TSX 57 35
32K
64K
128K
256K
Pami´ç wewn.
64K / 80 K
64K / 80 K
64K / 80K
64K / 80K
64K / 80K
Dane (%MWi)
1K(1)
30.5 K
30.5K
30.5K
30.5K
• J´zyk LD
23.5/30.8 K
12.4 K/12.4 K
27.2 K/27.2 K
56.8 K/56.8 K
90.5 K/90.5 K
• J´zyk IL
29.9/39.3 K
15.8 K/15.8 K
34.7K/34.7K
72.4 K/72.4 K
83.6 K/83.6 K
• J´zyk ST
19.9/26.2 K
10.5 K/10.5 K
23.1 K/23.1 K
48.2 K/48.2 K
74.6 K/74.6 K
• J´zyk LD
18.0/24.4 K
8.7 K/8.7 K
21.6 K/21.6 K
47.5 K/47.5 K
76.8 K/76.8 K
• J´zyk IL
21.5/29.2 K
10.4 K/10.4 K
25.8 K/25.8 K
56.7 K/56.7 K
73.9 K/73.9 K
• J´zyk ST
17.2/23.4 K
8.4 K/8.4 K
20.7 K/20.7 K
45.49K/45.49K
76.0 K/76.0 K
• J´zyk LD
13.7/18.8 K
6.8 K/6.8 K
16.8 K/16.8 K
37.0 K/37.0 K
63.1 K/63.1 K
• J´zyk IL
14.1/19.2 K
6.9 K/6.9 K
17.2 K/17.2 K
37.9 K/37.9 K
61.4 K/61.4 K
• j´zyk ST
16.3/22.2 K
8.0 K/8.0 K
19.9 K/19.9 K
43.8 K/43.8 K
63.8 K/63.8 K
Sta∏e (1)
256 s∏ów
256 s∏ów
256 s∏ów
1024 s∏ów
1024 s∏ów
Program
100% logiczny
Program
90% logiczny
Program
65% logiczny
(1) DomyÊlny rozmiar mo˝na zmieniaç, lecz ma to wp∏yw na wielkoÊç programu aplikacyjnego.
Uwaga:
• Tam, gdzie w tabeli podano 2 wartoÊci rozdzielone " / " oznacza, ˝e dla 2 rodzajów procesora z
nag∏ówka tabeli sà one ró˝ne.
• W j´zyku PL7 do mapowania pami´ci (czyli zarzàdzania pami´cià) aplikacji s∏u˝y polecenie PLC/
Usage.
Memory Usage
___________________________________________________________________________
1/31
A
1.4
Tryby pracy
1.4-1 Reakcja sterownika na zanik zasilania i jego przywrócenie
W przypadku zaniku zasilania system zachowuje kontekst aplikacji oraz rejestruje czas
wystàpienia zaniku i wystawia na wszystkich wyjÊciach wartoÊci trybu zast´pczego
(czyli taki stan na wyjÊciach jaki zosta∏ zdefiniowany w konfiguracji).
Po przywróceniu zasilania zachowany kontekst aplikacji porównywany jest z bie˝àcym
i w zale˝noÊci od wyniku realizowana jest odpowiednia procedura startu systemu:
• jeÊli kontekst si´ zmieni∏ (utrata kontekstu lub za∏adowanie nowej aplikacji), to
sterownik inicjuje aplikacj´, co oznacza zimny start,
• je˝eli porównywane konteksty sà identyczne, to sterownik restartuje system bez
inicjacji danych, co oznacza start goràcy.
Je˝eli czas zaniku zasilania jest krótszy ni˝ czas roz∏adowania filtra wejÊciowego (czyli
oko∏o 10ms dla zasilacza pràdu przemiennego oraz oko∏o 1ms dla zasilacza pràdu
sta∏ego), to nie jest on wychwytywany przez program (jest on normalnie wykonywany).
Wykonywanie
programu
Zanik zasilania
Oczekiwanie
Przywrócenie
zasilania
Wykrycie
zaniku
NIE
Normalne wykonywanie programu
TAK
Zachowanie
kontekstu
NIE
TAK
Karta pamiêci NIE
identyczna ?
TAK
Start
gor⁄cy
Start
zimny
Uwaga:
Zimny start realizowany jest w nast´pujàcych przypadkach:
• Przywrócenie zasilania, gdy system zgubi kontekst (np. bateria podtrzymania jest niesprawna).
• Podczas pierwszego uruchomienia aplikacji.
• Po naciÊni´ciu przycisku RESET na module procesora.
• Po nadaniu bitowi systemowemu %S0 wartoÊci 1.
• Przy inicjacji z poziomu terminala.
• Po w∏o˝eniu karty pami´ci PCMCIA lub po wykonaniu manipulacji przy slocie karty (z wyjàtkiem
sterownika PCX 57, gdzie nie wolno wk∏adaç karty w trakcie pracy systemu).
Goràcy start realizowany jest w nast´pujàcych przypadkach:
• Przywrócenie zasilania bez utraty kontekstu aplikacji.
• Po nadaniu bitowi systemowemu %S1 wartoÊci 1.
• Programowo, z poziomu terminala.
___________________________________________________________________________
1/32
A
Informacje ogólne o PL7
1
1.4-2 Operacje wykonywane podczas goràcego startu systemu
Czytanie
wejϾ
Zatrzymanie procesor
Zachowanie kontekstu
aplikacji
Wykonywanie programu
GÓRA
Przywrócenie
zasilania
Jeœli %S1 = 1, to
jest mo¿liwoœæ
gor⁄cego startu
Zanik zasilania
wykrywalny ?
NIE
DÓ£
Auto-kontrola
konfiguracji
T AK
Nadanie bitowi
%S1 wartoœci 1
Nadanie bitowi
%S1 wartoœci 0
Uaktualnienie wyjϾ
Przywrócenie wykonywania programu
Restart programu odbywa si´ od miejsca, w którym nastàpi∏ zanik zasilania, przy czym
wyjÊcia nie sà aktualizowane. System ponownie rozpoczyna cykl, w którym od nowa
uwzgl´dniane sà stany wszystkich wejÊç, ponownie uaktywnia zadanie g∏ówne MASTER nadajàc bitowi %S1 wartoÊç 1 podczas jednego " przejÊcia " zadania (scan of the
task) i aktualizuje stany wyjÊç.
System wyklucza, na czas pierwszego " przejÊcia " zadania g∏ównego MASTER,
zadanie szybkie oraz zadania wyzwalane zdarzeniami.
Przetwarzanie informacji o goràcym starcie
Je˝eli u˝ytkownik chce, by w przypadku goràcego startu wykonywane by∏y jakieÊ
specjalne operacje w odniesieniu do aplikacji, to musi napisaç odpowiedni program
realizujàcy te operacje i testujàcy, na poczàtku programu zadania MASTER, stan bitu
%S1 (na wypadek, gdy przyjmie on stan 1).
Zmiana wartoÊci na wyjÊciach
• Przez ca∏y czas trwania zaniku zasilania wyjÊcia przyjmujà stany trybu zast´pczego,
tzn. albo zachowujà wartoÊci bie˝àce, albo przyjmujà wartoÊci zast´pcze (reakcja
zale˝y od wyboru dokonanego w konfiguracji).
• Po przywróceniu zasilania wyjÊcie utrzymuje stan 0 dopóty, dopóki nie zostanie ono
zaktualizowane przez zadanie.
___________________________________________________________________________
1/33
A
1.4-3 Operacje wykonywane podczas zimnego startu
Czytanie
wejϾ
Zatrzymanie procesor
Zachowanie kontekstu
aplikacji
Wykonywanie programu
GÓRA
Przywrócenie
zasilania
Jeœli %S0 = 1,
to nast⁄pi
zimny start
Zanik zasilania
wykrywalny ?
NIE
DÓ£
Nadanie bitowi
%S0 wartoœci 0
Autokontrola
konfiguracji
T AK
Inicjacja
aplikacji
Nadanie bitowi
%S0 wartoœci 1
Uaktualnienie wyjϾ
Inicjacja systemu i jego danych, co odpowiada:
• Skasowaniu bitów, obrazu wejÊç i wyjÊç oraz s∏ów wewn´trznych (je˝eli w oknie
konfiguracji sterownika zaznaczona jest opcja kasowania s∏ów wewn´trznych
w przypadku zimnego startu - patrz rozdzia∏ 1.3, cz´Êç D). Je˝eli nie zaznaczono
opcji kasowania s∏ów %MW, a sà one zapisane w pami´ci, to sà przywracane.
• Inicjacji bitów i s∏ów systemowych.
• Inicjacji bloków funkcyjnych bazujàcych na danych konfiguracyjnych.
• Wykluczeniu z realizacji do koƒca pierwszego " przebiegu " zadania g∏ównego
MASTER, wszystkich innych zadaƒ
• PrzejÊcie na diagramie programu Grafcet do kroków inicjujàcych (initial steps).
Przetwarzanie informacji o zimnym starcie
W celu przypisania wykonania okreÊlonych operacji w przypadku wystàpienia zimnego
startu, nale˝y testowaç stan bitu %S10:X0 (gdy %S10:X0 = 1 to znaczy, ˝e realizowany
jest zimny start). Przy zimnym starcie, sterownik kontynuuje wykonywanie operacji,
nie,
lub nie w zale˝noÊci od wyboru dokonanego w konfiguracji (parametr RUN AUTO).
Zmiana stanów wyjÊç
• Przy zaniku zasilania wyjÊcia przyjmujà stany trybu zast´pczego, tzn. albo zachowujà
wartoÊci bie˝àce, albo przyjmujà wartoÊci zast´pcze (zale˝nie od konfiguracji).
• Po przywróceniu zasilania wyjÊcia utrzymujà stan 0 dopóty, dopóki nie zostanà
zaktualizowane przez zadanie.
___________________________________________________________________________
1/34
A
Informacje ogólne o PL7
1.5
1
Struktura jednozadaniowa
1.5-1 Zadanie g∏ówne MASTER
W przypadku jednozadaniowej struktury aplikacj´ tworzy jedno zadanie - zadanie
g∏ówne MAST.
Program zadania g∏ównego tworzy trzon programu obejmujàcy g∏ówne operacje
wykonywane w kilku sekcjach i procedury.
• Program g∏ówny (MAIN) podzielony jest
na sekcje. Ka˝da sekcja programowana
jest oddzielnie, w j´zyku dla niej najbardziej odpowiednim (LD, IL, ST lub
Grafcet).
• Procedury SRi (i=0 do 253)
Procedury sà równie˝ programowane
niezale˝nie w j´zyku LD, IL lub ST, przy
czym mogà byç one wywo∏ywane
zarówno z programu g∏ównego, jak i z
innych procedur (mo˝na zagnieêdziç
do 8 procedur).
MAST
Komora(LD)
Piec_1(Grafcet)
Przetw.wst´pne PRL(LD)
Diagram CHART
Przetw.koƒcowePOST(IL)
Suszenie(LD)
W trakcie konfiguracji okreÊla si´ sposób
wykonywania zadania g∏ównego (cykliczne
lub okresowe).
Proced.0
Czyszczenie(ST)
Sekcje
Sekcje charakteryzujà:
• nazwa o maksymalnie 24 znakach,
• j´zyk, w którym jest programowana,
• zadanie, do którego nale˝y,
• warunek wykonania (opcjonalnie).
Sekcja jest aktywna gdy warunek = 1
i nie jest aktywna, gdy warunek = 0.
Jako warunki mo˝na wykorzystywaç nast´pujàce obiekty:
Bity %M,%S,%X, bity indeksowane, bity wydzielone ze s∏ów, bity %I , %Q. WartoÊci
wszystkich bitów (z wyjàtkiem %S, bitów indeksowanych, bitów wydzielonych ze
s∏ów oraz %I xy.i.ERR i %I xy.MOD.ERR.) mo˝na wymuszaç za poÊrednictwem
terminala.
• komentarz o maksymalnej d∏ugoÊci 250 znaków.
Uwaga: przy starcie zimnym warunki wykonania przyjmujà wartoÊci 0, co powoduje, ˝e wszystkie
sekcje, których wykonanie jest warunkowe, sà pomijane.
___________________________________________________________________________
1/35
A
Sekcja jest elementem autonomicznym
programu. Etykiety identyfikacyjne linii,
instrukcji oraz labelek dzia∏ajà w obr´bie
sekcji (nie ma mo˝liwoÊci programowego
skoku do innej sekcji).
Komora
Piec_1
Sekcje sà wykonywane w kolejnoÊci,
w jakiej zosta∏y zaprogramowane (w takiej
kolejnoÊci sà wyÊwietlane w oknie
podglàdu).
Suszenie
Zadanie g∏ówne w przyk∏adzie obok sk∏ada
si´ z:
• sekcji w j´zyku Ladder LD,
• sekcji w j´zyku Grafcet,
• sekcji w j´zyku tekstowym ST,
• sekcji w j´zyku List.
Sekcja j´zyka Grafcet:
Sekcja ta sk∏ada si´ z:
• przetwarzania wst´pnego (PRL) zaprogramowanego w LD, ST lub IL. Jest
wykonywane przed diagramem,
• diagramu Grafcet (CHART): na stronach
diagramu Grafcet programowane sà
warunki przejÊciowe zwàzane z operacjami i przejÊciami kroków oraz skoków,
• przetwarzania koƒcowego (POST)
programowanego j´zyku LD, ST lub IL.
Wykonanie operacji nast´puje po
diagramie,
• Procedury SRi (i = 0 do 253). Procedury
sà programowane oddzielnie, przy czym
mogà byç wywo∏ywane poczas operacji
zdeklarowanych w krokach zarówno
podczas przetwarzania wst´pnego, jak
i koƒcowego oraz z innych procedur
(mo˝na zagnieêdziç maksymalnie 8
procedur).
Czyszczenie
Przetwarzanie
wst´pne
MAIN
Strona
diagramu
Grafcet
CHART
(8 stron)
Procedura
SRi
Warunki przejÊciowe
Operacje
Procedura
SRi
Przetwarzanie
koƒcowe
POST
Procedura
SRi
___________________________________________________________________________
1/36
A
Informacje ogólne o PL7
1
1.5-2 Cykliczne wykonywanie zadania
Cykliczne wykonywanie zadania jest normalnym trybem pracy sterownika (ustawienie
domyÊlne). " Przebieg " (scan) sk∏ada si´ z kilku powiàzanych ze sobà cykli zadania
g∏ównego MAST. Po zaktualizowaniu stanów wyjÊç system wykonuje zaprogramowane
operacje i rozpoczyna nowy " przebieg " zadania.
Przetwarzanie
programu
Przetwarzanie programu
%I
%I
%Q
(1)
I.P.
%Q
(1)
I.P.
Przebieg n
Przebieg n+1
I.P. Przetwarzanie wewn´trzne system w sposób niejawny monitoruje prac´
wewn´trzne:
sterownika (zarzàdza bitami i s∏owami systemowymi, aktualizuje wartoÊç bie˝àcà
zegara czasu rzeczywistego, aktualizuje stan kontrolek, wykrywa zmiany trybu
pracy RUN/STOP, etc) oraz przetwarza ˝àdania pochodzàce z terminala,
%I Czytanie wejÊç zapisanie do pami´ci informacji o stanach wejÊç przypisanych
wejÊç:
do tego zadania modu∏ów dyskretnych i modu∏ów u˝ytych w aplikacji,
Przetwarzanie:
Przetwarzanie wykonywanie napisanego przez u˝ytkownika programu.
%Q Aktualizacja wyjÊç zapisanie (zgodnie ze statusem okreÊlonym przez program
wyjÊç:
aplikacji) przypisanych do zadania bitów i s∏ów wyjÊciowych zwiàzanych z modu∏ami
wyjÊç dyskretnych i modu∏ami zastosowanymi w aplikacji.
Przebieg operacji i monitorowanie
Przetwarzanie wewnêtrzne
Czytanie wejϾ
RUN
Przetwarzanie programu
Uaktualnienie wyjϾ
S TOP
(1)
Sterownik pracuje (RUN) - procesor
wykonuje w kolejnoÊci nast´pujàce
operacje: przetwarzanie wewn´trzne,
czytanie wejÊç, wykonanie programu oraz
uaktualnienie wyjÊç.
Sterownik zatrzymany (STOP) - procesor
wykonuje nast´pujàce operacje:
• przetwarzanie wew´trzne,
• czytanie wejÊç,
• zale˝nie od konfiguracji:
- tryb zast´pczy (fallback): wyjÊcia
przyjmujà wartoÊci zast´pcze,
- zachownie wartoÊci (maintain):
wyjÊcia zachowujà bie˝àce wartoÊci.
" przebiegu " :
Monitorowanie czasu " przebiegu " przebieg jest kontrolowany - patrz rozdz.1.5-4.
(1) W przypadku sterowników TSX/PMX/PCX 57, przetwarzanie wewn´trzne odbywa si´
równolegle z przetwarzaniem I/O.
___________________________________________________________________________
1/37
A
1.5-3 Okresowe wykonywanie zadania
W tym trybie pracy czytanie wejÊç, wykonywanie programu i uaktualnianie wyjÊç
wykonywane jest okresowo, przy czym okres ten jest definiowany w konfiguracji (od
1 do 255ms).
Na poczàtku " przebiegu " licznik, którego wartoÊç poczàtkowa jest równa okresowi
zdefiniowanemu w konfiguracji, rozpoczyna odliczanie. Sterownik musi zakoƒczyç
operacje przed up∏ywem nastawionego czasu, bo po tym nast´puje wyzwolenie
nowego " przebiegu " .
Przetwarzanie
programu
Przetwarzanie
programu
%I
(1)
I.P.
%Q
%I
%Q
(1) (1)
I.P. I.P.
Okres
(1)
I.P.
Okres
I.P. Przetwarzanie wewn´trzne system w sposób niejawny monitoruje prac´
wewn´trzne:
sterownika (zarzàdza bitami i s∏owami systemowymi, aktualizuje wartoÊç bie˝àcà
zegara czasu rzeczywistego, aktualizuje stan kontrolek, wykrywa zmiany trybu
pracy RUN/STOP, etc) oraz przetwarza ˝àdania pochodzàce z terminala,
%I Czytanie wejÊç zapisanie do pami´ci informacji o stanach wejÊç przypisanych
wejÊç:
do tego zadania modu∏ów dyskretnych i modu∏ów u˝ytych w aplikacji,
Przetwarzanie:
Przetwarzanie wykonywanie napisanego przez u˝ytkownika programu.
%Q Aktualizacja wyjÊç zapisanie (zgodnie ze statusem okreÊlonym przez program
wyjÊç:
aplikacji) przypisanych do zadania bitów i s∏ów wyjÊciowych zwiàzanych z modu∏ami
wyjÊç dyskretnych i modu∏ami zastosowanymi w aplikacji.
(1) W przypadku sterowników TSX/PMX/PCX 57, przetwarzanie wewn´trzne odbywa si´
równolegle z przetwarzaniem I/O.
___________________________________________________________________________
1/38
A
Informacje ogólne o PL7
1
Przebieg operacji i monitorowanie
Pocz⁄tek okresu
Przetwarzanie wewnêtrzne
(1)
Je˝eli czas trwania opracji przekracza czas
jednego okresu, to sterownik sygnalizuje
przekroczenie czasu poprzez nadanie
wartoÊci 1 bitowi systemowemu zadania
%S19. Przetwarzanie trwa do czasu jego
zakoƒczenia (czas realizacji jednego
" przebiegu " nie mo˝e przekroczyç czasu
zdefiniowanego w uk∏adzie monitorujàcym
watchdog). Nast´pny " przebieg " jest
inicjowany po niejawnym zapisaniu stanów
wyjÊç w " przebiegu " bie˝àcym.
Czytanie wejϾ
RUN
S TOP
Przetwarzanie programu
Uaktualnienie wyjϾ
Przetwarzanie wewnêtrzne
Koniec okresu
Sterownik pracuje (RUN) - procesor
wykonuje w kolejnoÊci nast´pujàce
operacje: przetwarzanie wewn´trzne,
czytanie wejÊç, wykonanie programu oraz
uaktualnienie wyjÊç.
Je˝eli czas okresu nie up∏ynà∏, to sterownik
wykonuje czynnoÊci koƒcowe do czasu
zakoƒczenia okresu (przetwarzanie
wewn´trzne).
(1)
Sterownik zatrzymany (STOP) - procesor
wykonuje nast´pujàce operacje:
• przetwarzanie wew´trzne,
• czytanie wejÊç,
• zale˝nie od konfiguracji:
- tryb zast´pczy (fallback): wyjÊcia
przyjmujà wartoÊci zast´pcze,
- zachownie wartoÊci (maintain):
wyjÊcia zachowujà bie˝àce wartoÊci.
Monitorowanie przebiegu:
Kontrol´ sprawuje si´ dwutorowo:
• przekroczenie czasu okresu (period overrun),
• przy wykorzystaniu uk∏adu monitorujàcego typu watchdog (patrz rozdzia∏ 1.5-4).
(1) W przypadku sterowników TSX/PMX/PCX 57, przetwarzanie wewn´trzne odbywa si´
równolegle z przetwarzaniem I/O.
___________________________________________________________________________
1/39
A
1.5-4 Monitorowanie czasu " przebiegu " zadania
Programowy uk∏ad Êledzàcy watchdog (zadania cykliczne i okresowe)
Czas wykonywania zadania g∏ównego MAST (zarówno dla pracy cyklicznej, jak
i okresowej) jest kontrolowany przez sterownik (uk∏ad Êledzàcy watchdog) pod kàtem
przekroczenia maksymalnego czasu Tmax przewidzianego w konfiguracji na wykonanie
zadania (domyÊlnie - 250 ms, maksymalnie - 500 ms).
W przypadku przekroczenia tego czasu aplikacja traktowana jest jako uszkodzona,
w efekcie czego nast´puje zatrzymanie sterownika (wyjÊcie alarmowe %Q2.0 sterownika
TSX 37 przyjmuje wartoÊç 0, o ile zosta∏o ono skonfigurowane, natomiast w przypadku
sterowników TSX/PMX/PCX 57 przekaênik alarmowy modu∏u zasilania prze∏àcza si´
na pozycj´ 0).
Do monitorowania wykonania zadania wykorzystuje si´ bit %S11.
Sygnalizuje on przekroczenie zadeklarowanego czasu (przyjmuje wtedy wartoÊç 1).
W przypadku sterowników TSX/PMX/PCX 57 zadeklarowany czas maksymalny dla
uk∏adu monitorujàcego musi byç d∏u˝szy ni˝ czas trwania okresu.
W przypadku okresowego wykonywania zadania, dla wykrycia przekroczenia czasu
wykorzystuje si´ dodatkowe parametry:
• %S19 : sygnalizuje przekroczenie czasu trwania okresu. W przypadku, gdy czas
" przebiegu " zadania jest d∏u˝szy ni˝ jego okres, system nadaje mu wartoÊç 1.
• %SW0 : w s∏owie tym zapisana jest wartoÊç czasu trwania okresu (w ms). WartoÊç
z jakà jest inicjowane to s∏owo podczas zimnego startu jest definiowana w konfiguracji
i mo˝e byç modyfikowana przez u˝ytkownika.
Czas wykonywania zadania MAST
Wymienione poni˝ej s∏owa systemowe zawierajà dane dotyczàce czasu " przebiegu "
(scan) zadania:
• %SW30 zawiera czas trwania ostatniego przebiegu zadania.
• %SW31 zawiera czas trwania najd∏u˝szego przebiegu zadania.
• %SW32 zawiera czas trwania najkrótszego przebiegu zadania.
Uwaga:
Dane te sà dost´pne równie˝ z poziomu edytora konfiguracyjnego.
___________________________________________________________________________
1/40
A
Informacje ogólne o PL7
1.6
1
Struktura wielozadaniowa
1.6-1 Wprowadzenie
Struktura wielozdaniowa jest nast´pujàca:
• Zadanie g∏ówne MAST jest zawsze obecne w strukturze, przy czym mo˝e byç
wykonywane cyklicznie albo okresowo.
• Zadanie szybkie FAST (opcjonalne), przy czym zawsze jest okresowe.
• Zadania wyzwalane zdarzeniami EVTi wywo∏ywane przez system po wystàpieniu
okreÊlonych warunków na module I/O. Ten rodzaj przetwarzania ma charakter
opcjonalny i jest wykorzystywane w aplikacjach wymagajàcych odpowiedzi w bardzo
krótkim czasie aby wykonaç okreÊlone operacje na wejÊciach i wyjÊciach.
Zadanie szybkie
Fast task
Zadanie g∏ówne
Master task
-
Priorytet
Przetw. zdarzeƒ
Event-triggered tasks
+
Zadania g∏ówne MAST i szybkie FAST sà podzielone na sekcje (patrz opis sekcji
w rozdziale 1.5).
Tylko zadanie g∏ówne MASTER mo˝e zawieraç seksj´ j´zyka Grafcet.
Zadania wyzwalane zdarzeniami sk∏adajà si´ tylko z jednej sekcji, której nazwy nie
mo˝na modyfikowaç
MAST
FAST
Komora(LD)
Alarm_Komora(LD)
Piec_1(Grafcet)
Monitor_Sekcja(LD)
Przetw. wst´pne PRL(LD)
Przetw.
zdarzeƒ
EVT0
Alarm_Piec(ST)
Diagram CHART
Alarm_Czyszczenie(ST)
Przetw.koƒcowe POST(IL)
Suszenie(LD)
Proced.
SR0
Proced.
SR0
Czyszczenie(ST)
___________________________________________________________________________
1/41
A
Przyk∏ad struktury wielozadaniowej
___________________________________________________________________________
1/42
A
Informacje ogólne o PL7
1
Zarzàdzanie zadaniami:
Zadanie nadrz´dne MAST uaktywnia si´ samoistnie tak samo jak i zadanie szybkie,
o ile oczywiÊcie zosta∏o wczeÊniej zaprogramowane. Przetwarzanie zdarzeƒ (eventtriggered task) uaktywnia si´ pod wp∏ywem wystàpienia zdefiniowanego warunku.
W przypadku wystàpienia takiego zdarzenia oraz na czas wykonywania zadania
szybkiego FAST nast´puje zawieszenie wykonywania zadaƒ o ni˝szym priorytecie.
Wykonywanie zadania szybkiego i zadaƒ wyzwalanych zdarzeniami mo˝na kontrolowaç
za pomocà programu wykorzystujàc nast´pujàce bity systemowe:
• %S30 - uaktywnia i dezaktywuje zadanie g∏ówne MAST.
• %S31 - uaktywnia i dezaktywuje zadanie szybkie FAST.
• %S38 - uaktywnia i dezaktywuje przetwarzanie zdarzeƒ EVTi.
Przyk∏ad przetwarzania wielozadaniowego:
• zadanie g∏ówne wykonywane cyklicznie,
• zadanie szybkie o zadanym okresie 20 ms,
• zadania wyzwalane zdarzeniami.
IPQ
Zdarzenia
I PQ
FAST
MAST
System
I P
I PQ
P Q
20 ms
I
I PQ
I P
20 ms
P Q
20 ms
I PQ
PQ
I
P
20 ms
1.6-2 Zadanie g∏ówne MAST
Jest to zadanie o najni˝szym priorytecie, które stanowi zdecydowanà wi´kszoÊç
programu aplikacji.
Jest ono zorganizowane wed∏ug modelu opisanego w poprzednim rozdziale: niejawne
odczytanie stanów wejÊç, wykonanie programu aplikacyjnego i niejawne zaktualizowanie
stanów wyjÊç.
Bez wzgl´du na to, czy zadanie jest wykonywane cyklicznie, czy te˝ okresowo, jest ono
monitorowane przez uk∏ad sprawdzajàcy (watchdog), czy aplikacja nie jest wykonywana
zbyt d∏ugo (co jest sytuacjà nienormalnà). W przypadku przekroczenia zdefiniowanego
czasu trwania zadania bit %S11 przyjmuje wartoÊç 1 (b∏àd aplikacji), co powoduje
zatrzymanie pracy sterownika.
Bit systemowy %S30 umo˝liwia zablokowanie i odblokowanie zadania g∏ównego.
___________________________________________________________________________
1/43
A
1.6-3 Zadanie szybkie FAST
To zadanie ma wy˝szy priorytet od zadania g∏ównego i zawsze jest okresowe dzi´ki
czemu mo˝liwe jest wykonania zadania o ni˝szym priorytecie (˝eby wystarczy∏o czasu
na jego wykonanie).
Dodatkowo, operacje przetwarzania sprz´˝one z tym zadaniem powinny byç bardzo
szybkie tak, by nie oddzia∏ywa∏y negatywnie na zadanie g∏ówne.
Okres zadania szybkiego definiuje si´ podczas konfiguracji, przy czym musi si´ on
zawieraç w przedziale od 1 do 255 ms. Mo˝e byç on porównywalny z okresem zadania
MAST tak, by umo˝liwiç jego dopasowanie do okresowych operacji przetwarzania,
które sà stosunkowo wolne ale majà wy˝szy priorytet.
Zadanie jest monitorowane przez uk∏ad sprawdzajàcy (watchdog), czy aplikacja nie
jest wykonywana zbyt d∏ugo (co jest sytuacjà nienormalnà). W przypadku przekroczenia
zdefiniowanego czasu trwania zadania bit %S11 przyjmuje wartoÊç 1 (b∏àd aplikacji),
co powoduje zatrzymanie pracy sterownika.
Sterowanie zadaniem szybkim FAST
W s∏owie systemowym %SW1 zapisany jest zdeklarowany czas trwania okresu.
Podczas zimnego startu do tego s∏owa zapisywana jest wartoÊç okreÊlona w
konfiguracji, przy czym mo˝e ona byç modyfikowana przez u˝ytkownika za
poÊrednictwem programu lub terminala.
Do monitorowania wykonywania tego zadania s∏u˝à nast´pujàce s∏owa systemowe:
• %S19 : sygnalizuje przekroczenie czasu przydzielonego na wykonanie zadania.
Przyjmuje wartoÊç 1 gdy czas " przebiegu " zadania jest d∏u˝szy od okresu zadania.
• %S31 : umo˝liwia zablokowanie i odblokowanie zadania. W przypadku zimnego
startu aplikacji system nadaje mu, po pierwszym " przejÊciu " (scan) zadania g∏ównego
MAST, wartoÊç 0. Zmiana wartoÊci na 1 powoduje odblokowanie, a na 0 - zablokowanie
zadania szybkiego FAST.
WyÊwietlenie czasu trwania zadania szybkiego
Informacje o czasie trwania " przebiegu " zadania szybkiego zawierajà nast´pujàce
s∏owa systemowe:
• %SW33 zawiera czas trwania ostatniego " przebiegu " .
• %SW34 zawiera czas trwania najd∏u˝szego " przebiegu " .
• %SW35 zawiera czas trwania najkrótszego " przebiegu " .
___________________________________________________________________________
1/44
A
Informacje ogólne o PL7
1
1.6-4 Przypisywanie kana∏ów I/O do zadania MAST i FAST
Poza realizacjà programu aplikacji zadania FAST i MAST mogà inicjowaç funkcje
systemowe zarzàdzajàce niejawnà wymianà danych za pomocà, przypisanych do tych
zadaƒ, kana∏ów I/O.
Przypisania kana∏u, czy te˝ grupy kana∏ów, do zadania dokonuje si´ w oknie
konfiguracyjnym odpowiedniego modu∏u.
Poniewa˝ dyskretne modu∏y I/O sà podzielone na modu∏y po 8 kolejnych kana∏ów
(kana∏y 0 do 7, kana∏y 8 do 15, itd.) mo˝na je przypisywaç do zadaƒ MAST i FAST
grupami po 8 kana∏ów:
• WejÊcia 0 do 7 przypisuje si´ do zadania g∏ównego MAST.
• WejÊcia 8 do 15 przypisuje si´ do zadania szybkiego FAST.
• WyjÊcia 0 do 7 przypisuje si´ do zadania g∏ównego MAST.
• WyjÊcia 8 do 15 przypisuje si´ do zadania szybkiego FAST.
Ka˝dy kana∏ modu∏u licznika mo˝e byç przypisany do zadania MAST lub FAST.
Dla przyk∏adu - kana∏y modu∏u licznika dwukana∏owego mo˝na przypisaç nast´pujàco:
• kana∏ 0 do zadania g∏ównego MAST,
• kana∏ 1 do zadania szybkiego FAST.
Kana∏y analogowego modu∏u wejÊciowego TSX 37 mogà byç przypisywane tylko do
zadania g∏ównego MAST. Jednak˝e istnieje mo˝liwoÊç przypisania analogowych
kana∏ów wyjÊciowych do zadania MAST lub FAST, w modu∏ach po 2 kana∏y:
• kana∏y 0 i 1 do zadania g∏ównego MAST,
• kana∏y 2 i 3 do zadania szybkiego FAST.
Kana∏y analogowych modu∏ów I/O TSX 57 mogà byç przypisywane do zadania MAST
lub FAST. Ka˝dy kana∏ izolowanego modu∏u analogowego I/O (4 izolowane kana∏y)
przypisuje si´ indywidualnie. W przypadku innych modu∏ów stosuje si´ przypisywanie
w grupach 4-kana∏owych.
___________________________________________________________________________
1/45
A
1.6-5 Zadania wyzwalane zdarzeniami
Przetwarzanie zdarzeƒ (event-triggereg processing) stosuje si´ w celu zmniejszenia
czasu odpowiedzi programu na zdarzenia typu komenda.
Zdarzenia typu komenda
Sà to zdarzenia zewn´trzne (external events) powiàzane z aplikacjà. Wystàpienie
zdarzenia tego typu powoduje skierowanie programu na wykonanie operacji przypisanej
do kana∏u I/O, na którym pojawi∏o si´ to zdarzenie. WejÊcia (%I, %IW, %ID) przypisane
do kana∏u I/O, w którym nastàpi∏o zdarzenie podlegajà uaktualnieniu przez system
jeszcze przed uruchomieniem przetwarzania. Mo˝liwe sà konfiguracje:
•
•
•
•
8 zdarzeƒ w przypadku sterownika TSX 37-10 (EVT1 do EVT8),
16 zdarzeƒ w przypadku sterownika TSX 37-21/22 (EVT0 do EVT15),
32 zdarzenia w przypadku sterowników TSX/PMX/PCX 57-10 (EVT0 do EVT31),
64 zdarzenia w przypadku sterowników TSX/PMX/PCX 57-20 (EVT0 do EVT63).
Przypisania kana∏u i numeru zdarzenia dokonuje si´ w oknie konfiguracyjnym kana∏u.
W przypadku TSX 37 przetwarzanie zdarzeƒ mo˝e byç wyzwalane przez:
•
•
•
•
wejÊcia 0 do 3 modu∏u z pozycji 1(zbocze opadajàce lub rosnàce sygna∏u),
kana∏ (lub kana∏y) modu∏u licznika,
kana∏y licznika modu∏u 1 (o ile jest skonfigurowany jako licznik),
odebranie telegramu w przypadku TSX 37-21/22 wyposa˝onego w modu∏ TSX FPP20.
W przypadku sterowników TSX/PMX/PCX 57 przetwarzanie mo˝na wyzwalaç:
•
•
•
•
•
wejÊciami modu∏ów DEY 16 FK i DMY 28 FK,
kana∏ami modu∏ów liczników,
kana∏ami modu∏ów CAY,
kana∏ami modu∏ów CFY sterujàcych silnikami krokowymi,
kana∏ami komunikacyjnymi " FPP20 " .
Zarzàdzanie przetwarzaniem zdarzeƒ
Przetwarzanie zdarzeƒ mo˝na globalnie zablokowaç i odblokowaç przy pomocy
programu aplikacyjnego, za poÊrednictwem bitu systemowego %S38. Je˝eli w czasie,
gdy przetwarzanie zdarzeƒ jest zablokowane pojawià si´ jakieÊ zdarzenia, to zostanà
one " zgubione " (przyporzàdkowane im operacje nie zostanà wykonane).
Dwie instrukcje j´zyka PL7 - MASKEVT() i UNMASKEVT() umo˝liwiajà nak∏adanie
i zdejmowanie maski w odniesieniu do przetwarzania zdarzeƒ. Je˝eli w czasie, gdy na
przetwarzanie zdarzeƒ b´dzie na∏o˝ona maska pojawià si´ jakieÊ zdarzenia, to
zostanà one zachowane przez system i przyporzàdkowane im operacje zostanà
wykonane po zdj´ciu maski.
Dla TSX 37-10 wszystkie komendy (jest ich 8) majà ten sam priorytet. Stàd te˝ jedna
operacja przetwarzania zdarzenia nie mo˝e byç przerwana przez drugà.
Dla TSX 37-21/22 i TSX/PMX/PCX 57 , sà 2 poziomy priorytetu dla przetwarzania
komend: zdarzenie 0 (EVT0) ma wy˝szy priorytet ni˝ pozosta∏e.
___________________________________________________________________________
1/46
A
Informacje ogólne o PL7
1
Wykorzystanie kana∏ów I/O przy przetwarzaniu zdarzeƒ
W zadaniach wyzwalanych zdarzeniami mo˝na wykorzystywaç inne kana∏y I/O ni˝ te,
które sà przyporzàdkowane poszczególnym zdarzeniom. Wymiana informacji
przeprowadzana jest przez system w sposób niejawny przed (%I) i po (%Q)
przewtorzeniu zdarzenia. Ta wymiana mo˝e odnosiç si´ do pojedynczego kana∏u (np.
w module licznika) lub do grupy kana∏ów (modu∏ dyskretny). W drugim przypadku, jeÊli
w trakcie przetwarzania nast´puje zmodyfikowanie na przyk∏ad wyjÊç 2 i 3 modu∏u
dyskretnego, to do modu∏u zostanà przeniesione obrazy wyjÊç od 0 do 7.
Podsumowanie operacji przetwarzania i wymiany
IT
Przetwarzanie
zdarzeƒ
Pojawienie si´ zdarzenia kieruje program
(zadanie EVTi)
aplikacyjny ku operacji przetwarzania
zdarzeƒ przyporzàdkowanej kana∏owi I/O,
w którym zdarzenie wystàpi∏o:
Niejawne czytanie
wejÊç przypisanych
do kana∏u, w którym
wystàpi∏o zdarzenie
EVTi
• Wszystkie wejÊcia, powiàzane z kana∏em wyzwalajàcym przetwarzanie sà
automatycznie czytane.
Niejawne czytanie
stanów wejÊç
zadeklarowanych
w zdarzeniu
EVTi
• Odczytanie wszystkich wejÊç, których
odczytanie u˝ytkownik zadeklarowa∏ na
przypadek wystàpienia zdarzenia EVTi.
Przetwarzanie
zdarzenia
• Przetwarzanie - powinno trwaç tak
krótko, jak to tylko mo˝liwe.
Niejawne
uaktualnienie
wyjÊç wykorzystanych
w zadaniu
EVTi
• Uaktualnienie wszystkich wyjÊç
wykorzystanych przez u˝ytkownika
w zdarzeniu EVTi. Aktualizowane mogà
byç równie˝ wyjÊcia powiàzane z kana∏em, który wyzwoli∏ przetwarzanie.
Uwaga:
W przypadku modu∏ów dyskretnych TSX DEY16FK i TSX DMY28FK, wejÊcie, na którym wystàpi∏o
zdarzenie nie powinno byç poddawane testowaniu podczas przetwarzania zdarzenia (nie nale˝y
aktualizowaç wartoÊci). Sprawdzenie, na którym zboczu sygna∏u nastàpi∏o wyzwolenie zdarzenia
powinno byç przeprowadzone przy u˝yciu s∏owa statusu:
%IWxy.i:X0 = 1 -- & gt; zbocze narastajàce,
%IWxy.i:X1 = 1 -- & gt; zbocze opadajàce.
___________________________________________________________________________
1/47
A
Uwagi
Podczas przetwarzania zdarzeƒ w analogowych modu∏ach wejÊciowych TSX 37,
które mogà byç wykorzystane tylko w zadaniu MAST, nie nale˝y dokonywaç
zamiany wejÊç.
Zamiany We/Wy powiàzanej z zadaniem EVTi wykorzystywanych przez program
dokonuje si´ kana∏ po kanale (modu∏y liczników) lub w grupach kana∏ów (modu∏y
dyskretne). Stàd te˝, jeÊli w podczas przetwarzania modyfikuje si´ np. wyjÊcia 2 i 3
modu∏u dyskretnego, do modu∏u zostanie przeniesiony obraz wyjÊç 0 - 7.
Dla TSX 37, w ka˝dej operacji przetwarzania zdarzenia mo˝na zadeklarowaç
maksymalnie wymian´ 2 modu∏ów wejÊciowych (przed rozpocz´ciem
przetwarzania) i 2 modu∏ów wyjÊciowych (po zakoƒczeniu przetwarzania).
Podlegajàce wymianie wejÊcia (i grupy powiàzanych z nimi kana∏ów) sà, podczas
przetwarzania, aktualizowane (utrata rejestru operacji LOG i w konsekwencji,
informacji o zboczu). Dlatego te˝, w zadaniu MAST oraz FAST, nie powinno si´
testowaç zbocz sygna∏ów na tych wejÊciach.
W przypadku TSX/PMX/PCX 57 liczba dokonanych wymian, w zale˝noÊci od rodzaju
procesora, jest ograniczona do:
Liczba wymian zastosowanych
w przetwarzaniu zdarzeƒ EVTi
P57-1• (32 zdarz.) P57-2•/3• (64 zdarz.)
Max l-ba wymian dyskretnych
32 wymiany
128 wymian
Max l-ba wymian analogowych
8 wymian
16 wymian
Max l-ba innych rodzajów
wymian
4 wymiany
16 wymian
Dla dyskretnych I/O w wymianie biorà udzia∏ grupy po 8 kana∏ów. Wymiana jest
generowana, w przypadku u˝ycia wejÊç z grup 8-kana∏owych (inne ni˝ te, na których
wystàpi∏o zdarzenie) oraz gdy nast´puje zapisanie stanu wyjÊcia kana∏ów z grupy.
Dla analogowych oraz pozosta∏ych modu∏ów I/O wymiana jest generowana w przypadku
u˝ycia wejÊç kana∏u (innego ni˝ ten, w którym wystàpi∏o zdarzenie) oraz przy
zapisywaniu wyjÊç kana∏u.
WyÊwietlanie liczby przetworzonych zdarzeƒ
Liczb´ przetworzonych zdarzeƒ zawiera s∏owo %SW48. Podczas zimnego startu jest
ono inicjowane z wartoÊcià 0, która jest nast´pnie zwi´kszana przez system
ka˝dorazowo, gdy wystàpi zdarzenie. Mo˝e byç ono modyfikowane przez u˝ytkownika.
Bit %S39 informuje o utracie zdarzenia.
Uwaga: Podsumowanie operacji jakie mo˝na zaprogramowaç podczas przetwarzania zdarzenia
zamieszczono w cz´Êci A, w rozdziale 5.2 instrukcji opisujàcej funkcje zwiàzane z aplikacjami.
___________________________________________________________________________
1/48
A
J´zyk Ladder
Rozdzia∏
22
2 J´zyk Ladder
2.1
Prezentacja j´zyka Ladder
2.1-1 Wprowadzenie
Programy napisane w j´zyku Ladder sk∏adajà si´ z szeregu labelek wykonywanych
sekwencyjnie przez sterownik.
Labelk´ tworzà elementy graficzne ograniczone z dwóch stron liniami bazowymi
(w notacji elektrycznej odpowiadajà one zasilaniu). Odwzorowujà one:
• wejÊcia i wyjÊcia (I/O) sterownika (przyciski, czujniki, przekaêniki, kontrolki, itp.),
• standardowe funkcje systemu sterujàcego (zegary, liczniki, itp.),
• operacje arytmetyczne, logiczne i specjalne,
• zmienne wewn´trzne sterownika.
Elementy graficzne ∏àczone sà ze sobà za pomocà poziomych i pionowych linii.
Ka˝da labelka mo˝e sk∏adaç si´ maksymalnie z 16
linii i 11 kolumn (dla sterowników TSX/PMX/PCX 57)
lub 7 linii i 11 kolumn (dla
TSX 37) podzielonych na
dwie strefy:
Diagram Ladder
arkusz labelki
• stref´ warunków (test
zone), która definiuje warunki niezb´dne dla wykonania okreÊlonej akcji,
• stref´ operacji (action
zone), w której zdefiniowane sà operacje, które
zostanà wykonane po
przetestowaniu warunków w strefie warunków.
___________________________________________________________________________
2/1
A
2.1-2 Elementy graficzne
Elementy podstawowe
Sà to elementy zajmujàce 1 komórk´ (wysokoÊç - 1 linia, szerokoÊç - 1 kolumna).
Grupa elementów
SymbolFunkcja
Elementy
warunków
• Styk normalnie
otwarty
Styk si´ zamyka, gdy kontrolujàcy go bit
obiektowy ma wartoÊç 1.
• Styk normalnie
zamkni´ty
Styk jest zamkni´ty, gdy kontrolujàcy go bit
obiektowy ma wartoÊç 0.
• Styki reagujàce
na zmian´
sygna∏u
Zbocze narastajàce: styk zamkni´ty, gdy
bit obiektowy zmienia stan z 0 na 1.
N
Elementy
∏àczàce
P
Zbocze opadajàce: styk zamkni´ty, gdy
bit obiektowy zmienia stan z 1 na 0.
S∏u˝y do szeregowego ∏àczenia elementów
graficznych pomi´dzy liniami bazowymi.
• ¸àcznik
pionowy
S∏u˝y do ∏àczenia równoleg∏ego elementów
graficznych.
• Sprz´˝enie
proste
Nadaje bitowi sprz´˝onemu z obiektem,
wartoÊç wynikajàcà ze strefy warunków.
• Sprz´˝enie
odwrotne
Elementy
strefy akcji
• ¸àcznik
poziomy
Nadaje bitowi odwrotnà wartoÊç w stosunku
do wartoÊci ze strefy warunków.
• Prze∏àcznik
prosty
S
Nadaje sprz´˝onemu bitowi wartoÊç 1, gdy
wynikiem testowania warunków jest 1.
• Prze∏àcznik
odwrotny
R
Kasuje do 0 bit sprz´˝ony z obiektem, gdy
wynikiem testowania warunków jest 1.
• Skok (JUMP) - & gt; & gt; %Li
warunkowy
do innej labelki
Umo˝liwia po∏àczenie z labelkà o znanej
etykiecie, zarówno do przodu, jak i do ty∏u.
Skoki dopuszczalne sà tylko w obr´bie
jednolitej cz´Êci programu (program g∏ówny,
procedura, itd.).
Wykonanie skoku powoduje:
• przerwanie realizacji aktualnej labelki,
• wykonanie wywo∏anej labelki,
• cz´Êç programu mi´dzy labelkà ze skokiem
a labelkà docelowà skoku nie jest
wykonywana.
• Sprz´˝enie
warunkowe
#
Z j´zyka Grafcet, u˝ywane gdy okreÊla si´
warunki zwiàzane z przejÊciem bramki
(transition). Umo˝liwia przejÊcie do kolejnego kroku.
___________________________________________________________________________
2/2
A
J´zyk Ladder
Grupa elementów
Elementy
strefy akcji
(c.d.)
2
SymbolFunkcja
• Wywo∏anie
procedury
(CALL)
C
Powoduje przejÊcie do wykonania procedury,
gdy wynikiem testowania warunków akcji jest
wartoÊç 1.
Wywo∏anie procedury powoduje:
• przerwanie wykonywania bie˝àcej labelki,
• wykonanie procedury,
• powrót do wykonywania labelki.
• Powrót
do modu∏u
Zarezerwowany dla procedur (SR). Umo˝liwia
powrót do modu∏u, z którego procedura zosta∏a
& lt; RETURN & gt;
wywo∏ana, gdy wynikiem testu jest 1.
• Zatrzymanie
programu
& lt; HALT & gt;
Zatrzymuje wykonywanie programu, gdy
warunek przyjmuje wartoÊç 1.
Standardowe bloki funkcyjne
Grupy elementów
SymbolFunction
Elementy
strefy
warunków
Ka˝dy ze standardowych bloków posiada
wejÊcie lub wyjÊcie, umo˝liwiajàce po∏àczenie
go z innymi elementami graficznymi.
Funkcje poszczególnych bloków sà opisane
w cz´Êci B.
WielkoÊç: patrz rozdzia∏ 2.2-5.
• Bloki:
Zegar
Licznik
Przerzutnik
Rejestr
B´ben
Blok DFB (blok funkcjonalny tworzony przez u˝ytkownika)
Grupa elementów
SymbolFunction
Elementy
strefy
warunków
Ka˝dy z bloków typu DFB posiada wejÊcia
i wyjÊcia, dzi´ki którym mo˝na je ∏àczyç
z innymi elementami graficznymi (tak jest dla
obiektów bitowych) lub przypisywaç je do
obiektów numerycznych lub tablic.
• Bloki
programowalne
Funkcje bloków typu DFB opisano w sekcji 6.
Wymiary: patrz rozdzia∏ 2.2-5
Sterowniki serii TSX 37 nie majà bloków typu DFB.
___________________________________________________________________________
2/3
A
Bloki operacyjne
Grupa elementów
Symbol
Elementy
strefy
warunków
• Porównywanie
z∏o˝one
Comparison
Umo˝liwia porówywnanie 2 argumentów.
W zale˝noÊci od wyniku odpowiednie
wyjÊcie bloku zmienia stan na 1.
WielkoÊç: 2 kolumny / 4 linie.
• Porównywanie
proste
Comparison
Umo˝liwia porównywanie 2 argumentów.
WyjÊcie zmienia stan na 1, kiedy wynik
porównania jest zadawalajàcy.
Blok mo˝e zawieraç max 4096 znaków.
WielkoÊç: 2 kolumny / 1 linia.
• Blok
operacyjny
Pozwala na wykonanie operacji arytmetycznych , logicznych, itp., zdefiniowanych
przy u˝yciu strukturalnego j´zyka tekstowego ST.
Blok mo˝e zawieraç max 4096 znaków.
WielkoÊç: 4 kolumny / 1 linia.
Elementy
strefy akcji
Funkcja
___________________________________________________________________________
2/4
A
J´zyk Ladder
2.2
2
Struktura labelki
2.2-1 WiadomoÊci ogólne
Labelka sk∏ada si´ grupy elementów graficznych, po∏àczonych mi´dzy sobà liniami
poziomymi i pionowymi rozmieszczonymi pomi´dzy liniami bazowymi.
Labelka mo˝e sk∏adaç si´ maksymalnie z 16 linii i 11 kolumn (sterowniki TSX/PMX/PCX
57) lub z 7 linii i 11 kolumn (dla TSX 37) podzielonych na dwie strefy: stref´ warunków
(test zone) oraz stref´ akcji (action zone).
Kolumny
1
2
3
4
5
6
7
8
9
10
11
Diagram Ladder
arkusz labelki
Linie
1
2
3
4
5
6
7
8
Linie
bazowe
9
10
11
12
13
14
15
16
Strefa warunków
Strefa akcji
___________________________________________________________________________
2/5
A
2.2-2 Etykiety
Etykiety umo˝liwiajà identyfikacj´ labelki w obr´bie jednolitej cz´Êci programu (program
g∏ówny, procedura, itd.). Definiowanie etykiet nie jest obowiàzkowe.
Etykiety definiuje si´ przy u˝yciu nast´pujàcej sk∏adni: %Li (i od 0 do 999). Sà one
wyÊwietlane w lewym, górnym rogu labelki.
Dana etykieta mo˝e byç
nadana labelce w obr´bie
modu∏u programowego
tylko jeden raz.
Je˝eli w programie majà
byç wykonywane skoki pomi´dzy labelkami, to muszà
one mieç nadane etykiety.
System wykonuje labelki w takiej kolejnoÊci, w jakiej zosta∏y zapisane, a nie w kolejnoÊci
wynikajàcej z numerów etyiet.
2.2-3 Komentarze
Komentarz jest przypisany do labelki i mo˝e sk∏adaç si´ maksymalnie z 222 znaków
alfanumerycznych ograniczonych na poczàtku i na koƒcu znakami (* i *). Komentarz
u∏atwia rozpoznanie funkcji danej labelki, jej przeznaczenia i wykonywanych w niej
operacji. Stosowanie komentarzy nie jest obowiàzkiowe.
Strefa komentarza
Komentarz jest wyÊwietlany
w górnej cz´Êci labelki, w
strefie zarezerwowanej.
Usuni´cie labelki z programu powoduje usuni´cie
równie˝ jej komentarza.
Komentarze sà zapisywane w pami´ci programowej (program memory) sterownika tak,
˝e u˝ytkownik ma do nich dost´p w dowolnym momencie.
___________________________________________________________________________
2/6
A
J´zyk Ladder
2
2.2-4 Labelki
Wyglàd labelki jest podobny do schematów funkcjonalnych przekaêników.
Proste elementy graficzne s∏u˝àce do okreÊlania warunków i wykonywania prostych
operacji zajmujà w labelce jednà komórk´ labelki (przeci´cie 1 kolumny z 1 linià).
Wszystkie linie ∏àczàce styki biorà poczàtek z lewej
linii bazowej i koƒczà si´ na
prawej linii bazowej.
Warunki zapisywane sà
w kolumnach od 1 do 10.
Operacje sà zawsze umieszczane w kolumnie 11.
KolejnoÊç realizacji labelki
jest nast´pujàca:
• linie poziome - od lewej
strony do prawej,
• linie pionowe - w obydwu
kierunkach.
Strefa warunków
Ta strefa zawiera:
• styki (contact), którym
mo˝na przypisaç wszystkie, zdefiniowane powy˝ej, bity obiektowe,
• bloki funkcyjne,
• bloki porównywania.
Reakcja na zbocza
sygna∏ów mo˝e byç przypisywana jedynie bitom
obiektowym I/O oraz bitom
wewn´trznym.
___________________________________________________________________________
2/7
A
Strefa akcji
Strefa ta zawiera:
• sprz´˝enia (cewki) proste, odwrotne, prze∏àczniki proste i odwrotne,
przypisywane dowolnym
bitom obiektowym, zapisywanym przez u˝ytkownika,
• bloki operacyjne,
• inne: wywo∏ania, skoki,
zatrzymanie, powrót.
Labelki proste
Sterowanie sprz´˝eniem
(cewkà) uzale˝nione od
po∏o˝enia styku.
Zastosowanie 10 styków
po∏àczonych szeregowo.
Zastosowanie 16 styków (7
styków dla TSX 37) po∏àczonych równolegle (ustawione w jednej kolumnie)
do kontrolowania 16 cewek
(7 dla TSX 37) równie˝
po∏àczonych równolegle.
___________________________________________________________________________
2/8
A
J´zyk Ladder
2
Labelki z∏o˝one
Labelk´ mo˝na podzieliç
na kilka niezale˝nych linii,
w których styki niezale˝nie
sterujà sprz´˝eniami.
Maksymalnie mo˝na zestawiç 16 niezale˝nych linii
(7 linii dla TSX 37).
Labelki z∏o˝one, w których
zastosowano ró˝ne rozwiàzania opisane powy˝ej.
Symbole o stanach logi-
___________________________________________________________________________
2/9
A
2.2-5 Labelki zawierajàce bloki operacyjne i funkcyjne
• Bloki funkcyjne umieszcza si´ w strefie warunków (test zone).
Licznik dwukierunkowy
Blok porównywania z∏o˝ony
2 kolumny
4 linie
Zegary
Przerzutnik monostabilny
Rejestr
B´ben
2 kolumny
3 linie
Blok porównywania prosty
2 kolumny
1 linia
Uwaga:
W standardowych blokach funkcyjnych nie pod∏àczone wejÊcia majà stan 0.
___________________________________________________________________________
2/10
A
J´zyk Ladder
2
• Bloki operacyjne zawsze umieszcza si´ w strefie akcji (action zone). Zajmujà one
obszar 4 kolumn w obr´bie jednej linii. Operacje definiuje si´ przy pomocy j´zyka
tekstowego ST. Sà one zawsze pod∏àczone bezpoÊrednio do prawej linii bazowej.
• Bloki DFB (bloki w∏asne u˝ytkownika) umieszcza si´ w strefie warunków.
WielkoÊç zajmowanego obszaru zale˝y od liczby wykorzystanych wejÊç i wyjÊç:
SzerokoÊç bloku jest sta∏a - zajmuje on 3 kolumny.
Liczba zajmowanych linii jest wi´ksza o 1 od jednej
z dwóch liczb:
•liczba wejÊç oraz I/O
lub
•liczba wyjÊç oraz I/O.
Przyk∏ad:
Liczba wejÊç i I/O wynosi 4, liczba wyjÊç i I/O wynosi 3,
tak wi´c wysokoÊç bloku równa si´ 4 + 1 = 5.
Blok mo˝e maksymalnie zajmowaç 16 linii.
Uwagi:
• Blok DFB musi mieç pod∏àczone co najmniej jedno
wejÊcie logiczne.
• Cyfrowe wejÊcia, wyjÊcia lub I/O bloku nie sà
pod∏àczane. Obiekty umieszczone na przeciwko
danego pinu sà z nim powiàzane.
• Nie pod∏àczone wejÊcia bloku DFB zachowujà
wczeÊniejsze wartoÊci lub wartoÊci poczàtkowe
jeÊli blok nigdy nie by∏ wywo∏any z danym wejÊciem
odblokowanym lub pod∏àczonym.
___________________________________________________________________________
2/11
A
Bloki funkcyjne mo˝na ∏àczyç w kaskady
Tak, jak dla elementów graficznych mo˝na tworzyç kombinacje bloków funkcyjnych.
¸àczenie szeregowe bloków funkcyjnych:
Mieszane ∏àczenie bloków funkcyjnych i operacyjnych
Inne cechy charakterystyczne bloków funkcyjnyh
Niezale˝nie od zastosowanego bloku funkcyjnego, jego wejÊcie musi byç pod∏àczone
do lewej linii bazowej albo bezpoÊrednio, albo za poÊrednictwem elementu graficznego.
• Pozostawienie otwartych wyjÊç: nie ma koniecznoÊci pod∏àczania wyjÊç bloków
funkcyjnych do innych elementów graficznych.
• Testowanie stanów wyjÊç: wyjÊcia bloków funkcyjnych sà dost´pne dla u˝ytkownika
w formie bitów obiektowych.
Zmienne wewn´trzne bloków i wyjÊç mogà byç wykorzystywane w innej cz´Êci
programu.
___________________________________________________________________________
2/12
A
J´zyk Ladder
2.3
2
Zasady rzàdzàce wykonywaniem labelek
2.3-1 Zasady ogólne wykonywania stopni labelki
Stopnie labelki sà wykonywane jeden, po drugim, przy czym ka˝dy wykonywany jest
z lewa do prawa.
Stopnie labelki zawierajà elementy graficzne po∏àczone mi´dzy sobà przy pomocy linii
poziomych i pionowych (poza po∏àczeniem liniami bazowymi) ale sà niezale˝ne od
innych elementów graficznych labelki (nie ma pionowych po∏àczeƒ pomi´dzy
poszczególnymi stopniami labelki).
Stopieƒ 1
Sopieƒ 2
Stopieƒ 3
Jako pierwszy obliczany jest stopieƒ labelki umieszczony w lewym górnym rogu.
Poszczególne stopnie labelki (rung) wykonywane sà w nast´pujàcym porzàdku: linia
po linii od góry do do∏u, od lewej strony do prawej.
W przypadku zastosowania p´tli nast´puje obliczenie wpierw stopnia poÊredniego
(z zachowaniem opisanych powy˝ej zasad), po czym nast´puje powrót do obliczania
stopnia, który zawiera∏ stopieƒ poÊredni (sub-rung).
Zgodnie z takim porzàdkiem, system:
• oszacowuje stan logiczny ka˝dego styku, z uwzgl´dnieniem odczytanych na poczàtku
" przebiegu " programu bie˝àcych wartoÊci obiektów wewn´trznych aplikacji lub
stanów wejÊç modu∏ów I/O,
• wykonuje operacje przetwarzania zapisane w funkcjach, blokach funkcyjnych oraz
procedurach,
• uaktualnia sprz´˝one bity obiektowe (wyjÊcia modu∏ów I/O sà aktualizowane na
koƒcu ka˝dego " przebiegu " ),
• przechodzi do kolejnej labelki danego modu∏u programu (albo przeskakuje do innej
labelki - & gt; & gt; %Li), powraca do modu∏u, z którego nastàpi∏o wywo∏anie & lt; RETURN & gt;
lub zatrzymuje program & lt; HALT & gt; .
Uwaga:
Nie mozna stosowaç labelek zagnie˝d˝onych.
___________________________________________________________________________
2/13
A
Labelka zawierajàca p´tl´ wykonywana jest w nast´pujàcym porzàdku:
• obliczanie labelki do
miejsca, w którym zamyka si´ pierwsza p´tla
(styki A, B i C),
• obliczenie pierwszej p´tli
(styk D),
• kontynuacja obliczania
labelki do momentu
zamkni´cia si´ drugiej
p´tli (styk E),
• obliczenie drugiej p´tli
(styki F i G),
• oszacowanie wartoÊci
cewki H.
Przyk∏ad labelki logicznej
Porzàdek wykonywania:
• sprz´˝enie 1: INIT, %M5,
%M7, %Q2.1,
• sprz´˝enie 2: %M4,
%MW2:X1, AUTO, UP_1,
• sprz´˝enie 3:
INIT, DOWN_1.
Przyk∏ad labelki zawierajàcej bloki
Porzàdek wykonywania:
• sprz´˝enie1:
%M0, %M8, %M2, %T1,
%Q2.9,
• sprz´˝enie 2: %T1.R,
%T2, %M9,
• blok operacyjny.
___________________________________________________________________________
2/14
A
Rozdzia∏ 3
J´zyk tekstowy LIST 3
3 J´zyk tekstowy LIST
3.1
Prezentacja j´zyka
3.1-1 Wprowadzenie
Program napisany w j´zyku LIST sk∏ada si´ z szeregu instrukcji wykonywanych
sekwencyjnie przez sterownik.
Przyk∏adowa instrukcja:
LD %I1.0
Kod instrukcji Argument
Ka˝da instrukcja sk∏ada si´ z kodu instrukcji i argumentu.
Instrukcje te oddzia∏ywujà na:
• obiekty I/O sterownika (przyciski, czujniki, przekaêniki, kontrolki, itd.),
• standardowe funkcje sterujàce (zegary, liczniki, itd.),
• operacje arytmetyczne i logiczne oraz operacje zwiàzane z transferem danych,
• zmienne wewn´trzne sterownika.
Mo˝na wyró˝niç dwa rodzaje instrukcji:
• instrukcje definiujàce warunki (test instructions), których spe∏nienie warunkuje
wykonanie akcji, np. LD, AND, OR, itd.
• instrukcje definiujàce akcje jakie ma wykonaç sterownik w razie spe∏nienia
zdefiniowanych warunków, np. ST, STN, R, itd.
___________________________________________________________________________
3/1
A
3.1-2 Instrukcje
Instrukcje podstawowe
Bardziej szczegó∏owych informacji o instrukcjach nale˝y szukaç w cz´Êci B.
Grupa
Instrukcje
Instrukcje
warunków
Funkcje równowa˝ne
• LD, LDN, LDR, LDF
P
N
• AND, ANDN,
ANDR, ANDF
N
N
P
P
• OR, ORN, ORR, ORF
P
N
• AND(, OR(
(8 poziomów nawiasów)
• XOR, XORN, XORR, XORF nierównowa˝noÊç (exclusive OR)
• MPS
MRD
MPP
•N
Instrukcje
akcji
• ST, STN, S, R
Negacja
S
R
• JMP, JMPC, JMPCN
Realizujà skok (bezwarunkowy, warunkowy, gdy
wynikiem jest 0 lub warunkowy, gdy wynikiem jes1)
do instrukcji o podanej etykiecie zarówno do
przodu, jak i do ty∏u programu.
• SRn
RET, RETC, RETCN
Umo˝liwia wywo∏anie wybranej procedury (SR).
Powrót z procedury do programu (bezwarunkowy,
warunkowy, gdy wynikiem jest 1 i warunkowy, gdy
wynikiem jest 0).
• END, ENDC, ENDCN
Koniec programu (bezwarunkowy, warunkowy, gdy
wynikiem jest 1 i warunkowy, gdy wynikiem jest 0).
Zatrzymanie wykonywania programu.
HALT
___________________________________________________________________________
3/2
A
J´zyk tekstowy LIST
3
Instrukcje zwiàzane z blokami funkcyjnymi (patrz cz´Êç B, rozdzia∏ 1.3)
Grupa
Instrukcje
Funkcje
Elementy
warunków
• Bloki:
Zegar Timer
Licznik Counter
PrzerzutnikMonostable
Rejestr Register
B´ben Drum controller
Sà to instrukcje sterujàce dzia∏aniem wszystkich
standardowych bloków funkcyjnych. WejÊcia,
wyjÊcia, I/O bloków funkcyjnych sà pod∏àczane
bezpoÊrednio w formie ustrukturyzowanej.
Instrukcje numeryczne (patrz cz´Êç B)
Grupa
Instrukcje
Funkcje
Elementy
warunków
• LD[.....]
AND[.....]
OR[.....]
S∏u˝y do porównywania dwóch argumentów (patrz:
cz´Êç B, rozdzia∏ 1.4-2). Po dokonaniu porównania
i spe∏nieniu warunku wyjÊcie zmienia stan na 1.
Przyk∏ad:
LD[%MW10 & lt; 1000]
Elementy
akcji
• [.......]
Gdy %MW10 & lt; 1000, to wyjÊcie zmienia stan na 1.
Wykonanie operacji arytmetycznych, logicznych.
Sk∏adnia strukturalnego j´zyka ST (patrz cz. B).
Przyk∏ad:
[%MW10:=%MW0+100] Wynik operacji %MW0+100 zapisywany jest
w s∏owie wewn´trznym %MW10.
___________________________________________________________________________
3/3
A
3.2
Struktura programu
3.2-1 WiadomoÊci ogólne
Podobnie, jak w j´zyku Ladder instrukcje zestawiane sà w ciàgi instrukcji (odpowiadajàce
stopniom labelek) zwane sekwencjami. Ka˝da z sekwencji zawiera co najmniej 1
instrukcj´ definiowania warunków. Instrukcja ta jest przyporzàdkowywana (a w zasadzie
jej wynik) co najmniej jednej instrukcji definiowania operacji.
Instrukcja zajmuje jednà lini´.
Ka˝da sekwencja rozpoczyna si´ wykrzyknikiem (generowanym automatycznie).
Sekwencja mo˝e równie˝ zawieraç komentarz i etykiet´ umo˝liwiajàcà jej identyfikacj´.
!
(*Oczekiwanie na osuszenie*)
%L2:
LD
%I0.1
AND
%M10
ST
%Q2.5
3.2-2 Komentarz
Komentarz umieszcza si´ na poczàtku sekwencji. Mo˝e zajmowaç maksymalnie 3 linie
(tj. 222 znaki alfanumeryczne). Jest on ograniczony z dwóch stron znakami (* i *).
Komentarz stanowi opis funkcji realizowanej przez danà sekwencj´, przy czym jego
stosowanie jest nieobowiàzkowe.
Komentarze sà wyÊwietlane tylko w pierwszej linii sekwencji.
Usuni´cie sekwencji powoduje jednoczesne usuni´cie zwiàzanego z nià komentarza.
Komentarze zapisywane sà w pami´ci sterownika (pami´ç programu) i sà dost´pne dla
u˝ytkownika w ka˝dym momencie.
3.2-3 Etykiety
Etykiety umo˝liwiajà identyfikacj´ sekwencji w obr´bie danej cz´Êci programu (tzn.
program g∏ówny, procedura, itd.). Ich stosowanie jest nieobowiàzkowe.
Etykiety majà nast´pujàcà sk∏adni´: %Li (gdzie i mieÊci si´ w przedziale od 0 do 999),
przy czym umieszcza si´ je na poczàtku sekwencji.
Dana etykieta mo˝e byç przypisana do sekwencji tylko jeden raz, w obr´bie danej
cz´Êci programu.
Pomimo tego, ˝e nadawanie etykiet sekwencjom instrukcji jest nieobowiàzkowe,
nale˝y pami´taç, ˝e aby zrealizowaç skok do sekwencji, musi ona mieç etykiet´.
System realizuje sekwencje w kolejnoÊci ich wprowadzania niezale˝nie od kolejnoÊci
wynikajàcej z nadawanych numerów etykiet.
___________________________________________________________________________
3/4
A
J´zyk tekstowy LIST
3
3.2-4 Stosowanie nawiasów
Nawiasy mo˝na stosowaç w przypadku instrukcji AND (koniunkcja) oraz OR
(alternatywa). Ich zastosowanie upraszcza tworzenie diagramów j´zyka Ladder. Nawias
poczàtkowy jest przyporzàdkowany instrukcji AND lub OR. Nawias koƒcowy zamyka
zakres dzia∏ania instrukcji. Ka˝dy otwarty nawias musi byç zamkni´ty.
Przyk∏ad: AND(
LD
AND
OR
ST
%I1.0
%I1.1
%I1.2
%Q2.0
LD
AND(
OR
)
ST
%l1.0
%I1.1
%l1.2
LD
AND
OR(N
AND
)
ST
%I1.0
%I1.1
%I1.2
%I1.3
%Q2.0
Przyk∏ad: OR(
%Q2.0
Dopuszczalne sà nast´pujàce modyfikacje funkcji:
• N negacja, np. AND(N lub OR(N
• F zbocze opadajàce (Falling edge), np. AND(F lub OR(F
• R zbocze narastajàce (Rising edge), np. AND (R lub OR (R
• [ porównywanie
LD
AND
OR(
AND
)
ST
%I1.0
%I1.1
[%MW0 & gt; 100]
%I1.3
%Q2.0
___________________________________________________________________________
3/5
A
Zagnie˝d˝anie nawiasów
Dopuszcza si´ zagnie˝d˝enie maksymalnie 8 nawiasów.
Przyk∏ad
LD
AND(
OR(N
AND
)
)
ST
%I1.0
%I1.1
%I1.2
%M3
LD
AND(
AND
OR(N
AND
)
AND
OR(N
AND
)
)
ST
%I1.1
%I1.2
%I1.3
%I1.5
%I1.6
%Q2.0
Przyk∏ad
%I1.4
%I1.7
%I1.8
%Q2.0
Uwaga:
• Ka˝dy otwarty nawias musi byç zamkni´ty.
• Etykiety %Li: nie wolno ich umieszczaç w wyra˝eniach umieszczanych w nawiasach. Ten zakaz
dotyczy równie˝ instrukcji skoku JMP oraz wywo∏ania procedury SRi.
• W nawiasach nie wolno równie˝ umieszczaç instrukcji przypisania ST, STN, S oraz R.
___________________________________________________________________________
3/6
A
J´zyk tekstowy LIST
3
3.2-5 Instrukcje MPS, MRD i MPP (w´z∏y)
Instrukcje tego typu umo˝liwiajà realizacj´ po∏àczeƒ ze sprz´˝eniami (cewkami).
Wykorzystujà one bufor pami´ciowy (zwany stosem) o pojemnoÊci umo˝liwiajàcej
zapami´tanie do 3 bitów danych typu logicznego.
Instrukcja MPS (Memory PuSh) powoduje zapami´tanie wyniku ostatniego testowania
(ustalenia warunków), ustawia go na szczycie stosu i przesuwa inne wartoÊci w dó∏
stosu.
Instrukcja MRD (Memory ReaD) powoduje odczytanie informacji ze szczytu stosu.
Instrukcja MPP (Memory PoP) odczytuje i przywraca wartoÊç zapisanà na szczycie
stosu i przesuwa pozosta∏e w kierunku szczytu stosu.
Przyk∏ady:
%I1.1
%Q2.0
%I1.2
%Q2.1
%I1.3
%Q2.2
%I1.4
%Q2.3
∆
%I1.0
∆
∆
%I1.1
∆
∆
%I1.3
%M0
∆
%Q2.0
%M1
%Q2.1
%I1.4
%Q2.2
∆
∆
LD
MPS
AND
MPS
AND(
OR
)
ST
MPP
AND
ST
MRD
AND
ST
MPP
AND
ST
%I1.0
%M0
∆
LD
AND
MPS
AND
ST
MRD
AND
ST
MRD
AND
ST
MPP
AND
ST
%M10
%Q2.3
Uwaga:
Tych instrukcji nie wolno umieszczaç w wyra˝eniach zapisanych w nawiasach.
___________________________________________________________________________
3/7
A
3.2-6 Zasady programowania predefiniowanych bloków funkcyjnych
Bloki funkcyjne mogà byç programowane
na dwa sposoby:
• za poÊrednictwem funkcji specjalnych
danego bloku (np. CU %Ci). Jest to
najprostszy i najbardziej bezpoÊredni
sposób programowania.
• za poÊrednictwem instrukcji strukturalnych BLK,OUT_BLK i END_BLK.
Blok licznika dwukierunkowy
Programowanie bezpoÊrednie
LD
R
LDN
ANDN
CU
LD
ST
%I1.1
%C8
%I1.2
%M0
%C8
%C8.D
%Q2.0
Instrukcje umo˝liwiajà kontrolowanie stanów wejÊç bloków (np. CU).
WyjÊcia sà dost´pne za poÊrednictwem odpowiednich bitów (np. %C8.D).
Programowanie strukturalne
Przy takim sposobie programowania sekwencje instrukcji sà ograniczone przez
nast´pujàce instrukcje:
• BLK oznacza poczàtek bloku,
• OUT_BLK umo˝liwia bezpoÊrednie po∏àczenie z wyjÊciami bloku,
• END_BLK onacza koniec bloku.
BLK
%C8
LD
%I1.1
R
LDN
%I1.2
ANDN
%M0
CU
OUT_BLK
LD
D
ST
%Q2.0
END_BLK
Przetwarzanie
wejÊç
Przetwarzanie
wyjÊç
Przy programowaniu strukturalnym istnieje koniecznoÊç stosowania dodatkowych
instrukcji BLK, OUT_BLK i END_BLK i z tego powodu wymaga ono wi´kszej iloÊci
pami´ci w stosunku do programowania bezpoÊredniego.
Programowanie takie stosuje si´ tam, gdzie trzeba zapewniç zgodnoÊç z TSX 07.
___________________________________________________________________________
3/8
A
J´zyk tekstowy LIST
3.3
3
Zasady rzàdzàce wykonywaniem programów w j´zyku LIST
Programy sà wykonywane sekwencyjnie, instrukcja po instrukcji.
Pierwszà instrukcjà sekwencji instrukcji musi byç instrukcja LD albo któraÊ z instrukcji
bezwarunkowych (np. JMP).
Wszystkie instrukcje (z wyjàtkiem instrukcji LD oraz instrukcji bezwarunkowych)
wykorzystujà logiczny wynik instrukcji poprzedzajàcej.
Przyk∏ad:
LD
%I1.1
AND %M0
OR
ST
Wynik logiczny = stan bitu %I1.1.
Wynik logiczny = AND koniunkcja poprzedzajàcego wyniku logicznego
i stanu bitu %M0.
%M10 Wynik logiczny = OR alternatywa poprzedzajàcego wyniku logicznego
i stanu bitu %M10.
%Q2.0 %Q20 przyjmuje stanu poprzedzajàcego wyniku logicznego.
Zastosowanie nawiasów umo˝liwia modyfikowanie porzàdku, w jakim wyniki logiczne
sà brane pod uwag´:
Przyk∏ad:
LD
%I1.1
AND %M0
OR(
AND
)
ST
Wynik logiczny = stan bitu %I1.1.
Wynik logiczny = AND koniunkcja poprzedzajàcego wyniku logicznego
i stanu bitu %M0.
%M10 Wynik logiczny = stan bitu %M10.
%I1.2 Wynik logiczny = AND koniunkcja poprzedzajàcego wyniku logicznego
i stanu bitu %I1.2.
Wynik logiczny = OR alternatywa poprzedniego wyniku logicznego
oraz wyniku logicznego instrukcji umieszczonej przed instrukcjà
z nawiasem.
%Q2.0 %Q2.0 przyjmuje stanu poprzedzajàcego wyniku logicznego.
Sekwencja instrukcji mo˝e byç modyfikowana poprzez zastosowanie skoku (JMP)
oraz instrukcji wywo∏ania procedury.
Przyk∏ad:
!
LD
JMPC
!
LD
AND
ST
!
%L10 :
LD
AND
.........
%M0
%L10
%I1.1
%M10
%Q2.0
Skok do labelki o etykiecie %L10 jeÊli %M0=1
%I1.3
%M20
___________________________________________________________________________
3/9
A
Rozdzia∏ 4
4
4 Strukturalny j´zyk tekstowy ST
4.1
Prezentacja j´zyka ST
4.1-1 Wprowadzenie
Strukturalny j´zyk tekstowy ST s∏u˝y do tworzenia programów za pomocà znaków
alfanumerycznych.
Ten j´zyk mo˝e byç stosowany tylko do programowania sterowników TSX/PMX/
PCX 57 wyposa˝onych w oprogramowanie PL7 Junior lub PL7 Pro. W wersji PL7 Pro
istnieje dodatkowa mo˝liwoÊç tworzenia w∏asnych bloków funkcyjnych typu DFB.
Zdanie (wyra˝enie) j´zyka ST sk∏ada si´ z cz´Êci bazowej i szeregu zdaƒ definujàcych
program.
Podstawowe instrukcj´ j´zyka ST:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
instrukcje dotyczàce bitów,
instrukcje arytmetyczne i logiczne dotyczàce s∏ów i s∏ów podwójnej precyzji,
instrukcje arytmetyczne dotyczàce obiektów zmiennoprzecinkowych,
numeryczne porównywanie s∏ów, s∏ów podwójnej precyzji i zmiennoprzecinkowych,
numeryczna konwersja,
instrukcje tablic bitowych, s∏ów, s∏ów podwójnej precyzji i zmiennoprzecinkowych,
instrukcje dotyczàce ∏aƒcuchów znaków,
alfanumeryczne porównywanie,
instrukcje dotyczàce zarzàdzaniem czasem,
instrukcje programowe,
instrukcje sterujàce,
instrukcje standardowych bloków funkcyjnych,
instrukcje wymiany jawnej,
instrukcje specjalne (komunikacja, sterowanie procesem, itp.).
Przyk∏ad:
___________________________________________________________________________
4/1
A
4.1-2 Instrukcje
Instrukcje dotyczàce bitów
Oznaczenie
:=
OR
AND
XOR
NOT
RE
FE
SET
RESET
Funkcja
Przypisanie bitu
Alternatywa
Koniunkcja
Nierównowa˝noÊç
Negacja
Zbocze narastajàce sygna∏u
Zbocze opadajàce sygna∏u
Nadanie bitowi wartoÊci 1
Skasowanie bitu do 0
Numeryczne porównywanie s∏ów, s∏ów podwójnych i zmiennoprzecinkowych
Oznaczenie
& lt;
& gt;
& lt; =
& gt; =
=
& lt; & gt;
Funkcja
Mniejsze od
Wi´ksze od
Mniejsze, równe
Wi´ksze, równe
Równe
Ró˝ne od
Tablice bitów
Oznaczenie
Tablica := Tablica
S∏owo := S∏owo
S∏owo := Tablica
Tablica := S∏owo podwójne
S∏owo podwójne := Tablica
COPY_BIT
AND_ARX
OR_ARX
XOR_ARX
NOT_ARX
BIT_W
BIT_D
W_BIT
D_BIT
LENGTH_ARX
Funkcja
Przypisanie dwu tablic
Przypisanie s∏owa do tablicy
Przypisanie tablicy do s∏owa
Przypisanie s∏owa podwójnej precyzji do tablicy
Przypisanie tablicy do s∏owa podwójnej precyzji
Kopiowanie tablicy bitów do tablicy bitów
Koniunkcja dwóch tablic
Alternatywa dwóch tablic
Nierównowa˝noÊç mi´dzy dwiema tablicami
Negacja tablicy
Kopiowanie tablicy bitów do tablicy s∏ów
Kopiowanie tablicy bitów do tablicy s∏ów podwójnych
Kopiowanie tablicy s∏ów do tablicy bitów
Kopiowanie tablicy s∏ów podwójnych do tablicy bitów
Obliczanie d∏ugoÊci tablicy (w iloÊci elementów)
___________________________________________________________________________
4/2
A
4
Arytmetyka s∏ów i s∏ów podwójnej precyzji (liczby ca∏kowite)
Oznaczenie
+, -, *, /
REM
SQRT
ABS
INC
DEC
Funkcja
Dodawanie, odejmowanie, mno˝enie, dzielenie liczb ca∏k.
Reszta po dzieleniu liczb ca∏kowitych
Pierwiastek kwadratowy z liczb ca∏kowitych
WartoÊç bezwzgl´dna
Zwi´kszanie
Zmniejszanie
Arytmetyka na liczbach zmiennoprzecinkowych
Oznaczenie
+, -, *, /
SQRT
ABS
TRUNC
LOG
LN
EXP
EXPT
COS
SIN
TAN
ACOS
ASIN
ATAN
DEG_TO_RAD
RAD_TO_DEG
Funkcja
Dodawanie, odejmowanie, mno˝enie, dzielenie
Pierwiastek kwadratowy
WartoÊç bezwzgl´dna
Cz´Êç ca∏kowita liczby
Logarytm dziesi´tny
Logarytm naturalny
Exponent naturalny
Podnoszenie do pot´gi l-b ca∏kowitych (l. rzeczywiste)
Kosinus (w radianach)
Sinus (w radianach)
Tangens (w radianach)
Arc kosinus (wynik w przedziale od 0 do 2 π)
Arc sinus (wynik w przedziale -π/2 do +π/2)
Arc tangens (wynik w przedziale -π/2 do +π/2)
Przeliczenie ze stopni na radiany
Przeliczenie z radianów na stopnie
Instrukcje logiczne na s∏owach i s∏owach podwójnej precyzji
Oznaczenie
AND
OR
XOR
NOT
SHL
SHR
ROL
ROR
Funkcja
Koniunkcja
Alternatywa
Nierównowa˝noÊç
Dope∏nienie logiczne
Logiczne przesuni´cie w lewo
Logiczne przesuni´cie w prawo
Okr´˝ne przesuni´cie logiczne w lewo
Okr´˝ne przesuni´cie logiczne w prawo
Instrukcje programowe
Oznaczenie
HALT
JUMP
SRi
RETURN
MASKEVT
UNMASKEVT
Funkcja
Zatrzymanie wykonywania programu
Skok do obiektu o podanej etykiecie
Wywo∏anie procedury
Powrót z procedury do programu
Maskowanie zdarzeƒ w sterowniku
Zdj´cie maskowania zdarzeƒ w sterowniku
___________________________________________________________________________
4/3
A
Instrukcje numerycznej konwersji
Oznaczenie
Funkcja
BCD_TO_INT
INT_TO_BCD
GRAY_TO_INT
INT_TO_REAL
DINT_TO_REAL
REAL_TO_INT
REAL_TO_DINT
DBCD_TO_DINT
DINT_TO_DBCD
DBCD_TO_INT
INT_TO_DBCD
LW
HW
CONCATW
Konwersja BCD ♦ Kod binarny
Konwersja Kod binarny ♦ BCD
Konwersja Kod Gray'a ♦ Kod binarny
Konwersja l-by ca∏kowitej pojedynczej na zmiennoprzec.
Konwersja l-by ca∏kowitej podwójnej na zmiennoprzec.
Konwersja l-by zmiennoprzec. na ca∏kowità pojedynczà
Konwersja l-by zmiennoprzec. na ca∏kowità podwójnà
Konwersja 32-bit. l-by BCD na 32-bit. l-b´ ca∏kowità
Konwersja 32-bit. l-by ca∏kowitej na 32-bit. kod BCD
Konwersja 32-bit. l-by BCD na 16-bit. l-b´ ca∏kowità
Konwersja 16-bit. l-by ca∏kowitej na 32-bit. liczb´ BCD
Wydzielenie s∏owa mniej znaczàcego ze s∏owa podw.
Wydzielenie s∏owa bardziej znacznego ze s∏owa podw.
Sklejenie dwu pojedynczych s∏ów
Instrukcje dotyczàce tablic s∏ów i s∏ów podwójnych
Oznaczenie
Funkcja
Tablica := Tablica
Tablica := S∏owo
+, -, *, /, REM
+, -, *, /, REM
SUM
EQUAL
NOT
AND, OR, XOR
AND, OR, XOR
FIND_EQW, FIND_EQD
FIND_GTW, FIND_GTD
FIND_LTW, FIND_LTD
MAX_ARW, MAX_ARD
MIN_ARW, MIN_ARD
OCCUR_ARW, OCCUR_ARD
SORT_ARW, SORT_ARD
ROL_ARW, ROL_ARD
ROR_ARW, ROR_ARD
FIND_EQWP,FIND_EQDP
LENGTH_ARW, LENGTH_ARD
Przypisanie dwu tablic
Inicjacja tablicy
Operacje arytmetyczne na tablicach
Operacje arytmetyczne mi´dzy wyra˝eniami i tablicami
Sumowanie elementów tablicy
Porównywanie dwu tablic
Logiczne dope∏nienie tablicy
Operacje logiczne pomi´dzy dwiema tablicami
Operacje logiczne mi´dzy wyra˝eniami a tablicami
Odszukanie pierwszego elementu równego wartoÊci
Odszukanie pierwszego elementu & gt; od danej wartoÊci
Odszukanie pierwszego elementu & lt; od danej wartoÊci
Odszukanie wartoÊci najwi´kszej w tablicy
Odszukanie wartoÊci najmniejszej w tablicy
Liczba wystàpieƒ danej wartoÊci w tablicy
Sortowanie tablicy w szyku rosnàcym lub malejàcym
Okr´˝ne przesuni´cie w lewo w tablicy
Okr´˝ne przesuni´cie w prawo w tablicy
Znalezienie 1-go elementu = wartoÊci w danym wierszu
Obliczanie d∏ugoÊci tablicy
___________________________________________________________________________
4/4
A
4
Instrukcja dotyczàce tablic wartoÊci zmiennoprzecinkowych
Oznaczenie
Tablica := Tablica
Tablica := Wart. zmiennoprzec.
SUM_ARR
EQUAL_ARR
FIND_EQR
FIND_GTR
FIND_LTR
MAX_ARR
MIN_ARR
OCCUR_ARR
SORT_ARR
ROL_ARR
ROR_ARR
LENGTH_ARR
Funkcja
Przypisanie dwu tablic
Inicjacja tablicy
Sumowanie elementów w tablicy
Porównywanie dwu tablic
Znalezienie 1-go elementu równego danej wartoÊci
Znalezienie 1-go elementu & gt; od danej wartoÊci
Znalezienie 1-go elementu & lt; od danej wartoÊci
Odszukanie najwi´kszej wartoÊci w tablicy
Odszukanie najmniejszej wartoÊci w tablicy
Liczba wystàpieƒ danej wartoÊci w tablicy
Sortowanie tablicy w szyku malejàcym lub rosnàcym
Okr´˝ne przesuni´cie w lewo w tablicy
Okr´˝ne przesuni´cie w prawo w tablicy
Obliczenie d∏ugoÊci tablicy
Instrukcje dotyczàce ∏aƒcuchów znaków
Oznaczenie
STRING_TO_INT
STRING_TO_DINT
INT_TO_STRING
DINT_TO_STRING
STRING_TO_REAL
REAL_TO_STRING
& lt; , & gt; , & lt; =, & gt; =, =, & lt; & gt;
FIND
EQUAL_STR
LEN
MID
INSERT
DELETE
CONCAT
REPLACE
LEFT
RIGHT
Funkcja
Konwersja ASCII ♦ Kod binarny (s∏owo pojedyncze)
Konwersja ASCII ♦ Kod binarny (s∏owo podwójne)
Konwersja Kod binarny (s∏owo pojedyncze) ♦ ASCII
Konwersja Kod binarny (s∏owo podwójne) ♦ ASCII
Konwersja ASCII ♦ Liczby zmiennoprzecinkowe
Konwersja Liczby zmiennoprzecinkowe ♦ ASCII
Alfanumeryczne porównywanie
Odszukanie zadanego ciàgu znaków w ∏aƒcuchu
Pozycja pierwszego znaku ró˝nego od wzorca
D∏ugoÊç ∏aƒcucha znaków
Wydzielenie zadanego ciàgu z ∏aƒcucha znaków
Wstawienie zadanego ciàgu z ∏aƒcucha znaków
Usuni´cie zadanego ciàgu z ∏aƒcucha znaków
Sklejenie dwóch ∏aƒcuchów znaków
Podmiana ∏aƒcucha znaków
Poczàtek ∏aƒcucha znaków
Koniec ∏aƒcucha znaków
___________________________________________________________________________
4/5
A
Instrukcje zwiàzane z zarzàdzaniem czasem Time management
Oznaczenie
SCHEDULE
RRTC
WRTC
PTC
ADD_TOD
ADD_DT
DELTA_TOD
DELTA_D
DELTA_DT
SUB_TOD
SUB_DT
DAY_OF_WEEK
TRANS_TIME
DATE_TO_STRING
TOD_TO_STRING
DT_TO_STRING
TIME_TO_STRING
Funkcja
Zegar czasu rzeczywistego
Odczytanie daty systemowej
Uaktualnienie daty systemowej
Odczytanie daty i kod zatrzymania
Dodanie okresu czasu do godziny
Dodanie okresu czasu do daty i godziny
Pomiar ró˝nicy pomi´dzy godzinami
Pomiar ró˝nicy pomi´dzy datami (bez godzin)
Pomiar ró˝nicy pomi´dzy datami (z godzinami)
Odj´cie okresu czasu od godziny
Odj´cie okresu czasu od daty i godziny
Odczytanie bie˝àcego dnia tygodnia
Konwersja czasu trwania na dat´
Konwersja daty na ∏aƒcuch znaków
Konwersja godziny dnia na ∏aƒcuch znaków
Konwersja pe∏nej daty na ∏aƒcuch znaków
Konwersja czasu trwania na ∏aƒcuch znaków
Inne instrukcje
Oznaczenie
Funkcja
WSHL_RBIT, DSHL_RBIT
WSHR_RBIT, DSHR_RBIT
Przesuni´cie s∏owa w lewo z odzyskaniem bitów
Przesuni´cie s∏owa w prawo, ze znakiem, z odzyskaniem
bitów
Przesuni´cie s∏owa w prawo, wstawienie 0, z odzyskaniem bitów
Liczenie góra/dó∏ z sygnalizacjà osiàgni´cia granicy
Okr´˝na zmiana w lewo
Okr´˝na zmiana w prawo
WSHRZ_C, DSHRZ_C
SCOUNT
ROLW,ROLD
RORW,RORD
Instrukcje dotyczàce opóênienia czasowego
Oznaczenie
FTON
FTOF
FTP
FPULSOR
Funkcja
Uaktywnienie opóênienia
Zablokowanie opóênienia
Generowanie impulsu
Generator przebiegu prostokàtnego
Wszystkie funkcje i instrukcje sà szczegó∏owo opisane w cz´Êci B niniejszej instrukcji.
Uwaga ta dotyczy równie˝ standardowych bloków funkcyjnych.
Instrukcje i funkcje zwiàzane z jawnà wymianà danych oraz pewne aplikacje sà opisane
w instrukcji " Funkcje specjalne - instrukcja u˝ytkownika " (Application-specific functions
installation manual).
Struktury sterujàce funkcji i instrukcji opisano w rozdziale 4.2.-5 cz´Êci A.
___________________________________________________________________________
4/6
A
4
4.2
Struktura programu
4.2-1 Wprowadzenie
Program napisany w j´zyku ST jest zorganizowany w zdania (wyra˝enia). Ka˝de
wyra˝enie sk∏ada si´ z nast´pujàcych elementów:
• etykieta,
• komentarz,
• instrukcje.
Ka˝dy z tych elementów ma charakter opcjonalny, w wyniku czego mo˝na mieç
wyra˝enie puste, wyra˝enie sk∏adajàce si´ jedynie z komentarza, czy etykiety. Ka˝de
wyra˝enie rozpoczyna wykrzyknik ! (generowany automatycznie).
Przyk∏ad:
!
%L2 :
(* To jest wyrazenie zawierajace etykiete i komentarz *)
SET %M0; %MW4 := %MW2 + %MW9;
(* i kilka instrukcji *)
%MF12 := SQRT (%MF14);
4.2-2 Komentarz
Komentarz jest z dwóch stron ograniczony znakami (* i *). Mo˝na go wstawiaç
w dowolnym miejscu wyra˝enia, przy czym nie ma obostrzenia co do iloÊci komentarzy
w wyra˝eniu. Rolà komentarza jest u∏atwienie interpretacji treÊci i przeznaczenia
wyra˝enia. Stosowanie komentarza jest nieobowiàzkowe.
• W komentarzach mo˝na u˝ywaç dowolnych znaków.
• Jeden komentarz mo˝e sk∏adaç si´ maksymalnie z 256 znaków.
• Niedozwolone jest zagnie˝d˝anie komentarzy.
• Komentarz mo˝e zajmowaç kilka linii.
Komentarze sà zapami´tywane w sterowniku tak, ˝e u˝ytkownik ma do nich dost´p
w dowolnym momencie. Z tego wzgl´du komentarze zajmujà pami´ç programu.
___________________________________________________________________________
4/7
A
4.2-3 Etykieta
Etykieta umo˝liwia identyfikacj´ wyra˝enia w obr´bie autonomicznej cz´Êci programu
(program g∏ówny, procedura, itp.). Stosowanie etykiet jest nieobowiàzkowe.
Etykiet´ definiuje si´ przy pomocy nast´pujàcej sk∏adni: %Li, gdzie i mieÊci si´
w przedziale od 0 do 999. Umieszcza si´ jà na poczàtku wyra˝enia. Danà etykiet´
mo˝na przypisaç tylko raz w obr´bie danej cz´Êci programu (procedura, program
g∏ówny, modu∏ programowy).
Choç stosowanie etykiet nie jest obowiàzkowe, to aby mo˝liwe by∏o zrealizowanie
skoku do okreÊlonego wyra˝enia musi ono posiadaç etykiet´.
Etykiety mogà byç przyporzàdkowywane w dowolnej kolejnoÊci - system podczas
realizacji wyra˝eƒ wykonuje je w takiej kolejnoÊci, w jakiej zosta∏y wprowadzone.
4.2-4 Instrukcje
Program tworzy si´ przy u˝yciu instrukcji. Wyra˝enie j´zyka ST mo˝e zawieraç kilka
instrukcji z tym, ˝e ka˝da instrukcja winna koƒczyç si´ znakiem ';'.
___________________________________________________________________________
4/8
A
4
4.2-5 Struktury sterujàce
Mo˝na wyró˝niç cztery struktury, za poÊrenictwem których realizuje sie sterowanie:
• p´tle warunkowe IF,
• p´tle iteracyjne WHILE oraz REPEAT,
• operacje wykonywane w cyklu FOR.
Ka˝da struktura sterujàca jest zamkni´ta pomi´dzy dwoma s∏owami kluczowymi, przy
czym dana struktura musi mieç koniec w tym samym wyra˝eniu, w którym ma
poczàtek. Istnieje mo˝liwoÊç zagnie˝d˝ania struktur (jedna w drugiej) bez wzgl´du na
ich typ. Przed i po strukturach sterujàcych mo˝na umieszczaç inne instrukcje.
P´tla warunkowa IF ... END_IF;
Forma podstawowa (p´tla jest wykonywana jeÊli warunek jest prawdà).
Sk∏adnia
Sposób realizacji
pocz⁄tek pêtli IF
IF warunek THEN
akcja ;
END_IF;
WARUNEK
TAK
NIE
AKCJE
koniec pêtli IF
Przyk∏ad:
___________________________________________________________________________
4/9
A
Format ogólny
Sk∏adnia
Sposób realizacji
pocz⁄tek pêtli IF
IF warunek 1 THEN
TAK
akcja 1;
WARUNEK 1
NIE
A KCJA 1
ELSIF warunek 2 THEN
TAK
akcja 2;
ELSE
akcja 3;
A KCJA 2
WARUNEK 2
NIE
AKCJA 3
koniec pêtli IF
END_IF;
Przyk∏ad:
• Warunki mogà byç wielorakie.
• Akcja reprezentowana jest przez list´ instrukcji.
• Mo˝na zagnie˝d˝aç p´tle warunkowe " IF " .
• Nie ma ograniczenia odnoÊnie iloÊci funkcji ELSIF.
• Mo˝e byç tylko jedna cz´Êç ELSE.
___________________________________________________________________________
4/10
A
4
Warunkowa p´tla iteracyjna WHILE ... END_WHILE;
W p´tli iteracyjnej akcja jest powtarzana tak d∏ugo, jak d∏ugo spe∏niony jest warunek.
Sk∏adnia
Sposób realizacji
pocz⁄tek pêtli WHILE
WHILE warunek DO
akcja;
WARUNEK
TAK
AKCJA
END_WHILE;
NIE
koniec pêtl
WHILE
Przyk∏ad:
• Warunki mogà byç wielorakie.
• Akcja reprezentowana jest przez list´ instrukcji.
• Przed wykonaniem akcji nast´puje sprawdzenie warunku. W momencie, w którym
warunek zostanie spe∏niony (wynik sprawdzenia - fa∏sz) nastàpi przerwanie
wykonywania akcji.
• Mo˝na zagnie˝d˝aç kilka p´tli iteracyjnych WHILE.
___________________________________________________________________________
4/11
A
Warunkowa p´tla iteracyjna REPEAT ... END_REPEAT;
Akcja jest powtarzana dopóki nie zostanie spe∏niony warunek.
Sk∏adnia
Sposób realizacji
pocz⁄tek pêtli
REPEAT
REPEAT
AKCJA
akcja;
NIE
UNTIL warunek END_REPEAT;
WAR UNEK
TAK koniec pêtli
REPEAT
Przyk∏ad:
• Warunki mogà byç wielorakie.
• Akcja reprezentowana jest przez list´ instrukcji.
• Sprawdzenie warunku nast´puje po wykonaniu akcji. Po spe∏nieniu warunku (wynik
sprawdzenia - fa∏sz) nastàpi ostatnie wykonanie akcji.
• Mo˝na zagnie˝d˝aç kilka p´tli iteracyjnych REPEAT.
___________________________________________________________________________
4/12
A
4
P´tla cykliczna FOR ... END_FOR;
Ta instrukcja powoduje wykonanie operacji okreÊlonà iloÊç razy (po ka˝dym wykonaniu
p´tli nast´puje zwi´kszenie indeksu o 1).
Sk∏adnia
Sposób realizacji
pocz⁄tek pêtli FOR
FOR indeks := wart. poczàtk.TO wart.koƒc.DO
WartoϾ pocz. Index
→
akcja;
END_FOR;
Index & gt;
prawda
Wartoœæ koñcowa
koniec pêtl
FOR
fa ◊ sz
Akcja
Index + 1 Index
→
Przyk∏ad:
• Po przekroczeniu przez indeks wartoÊci koƒcowej (indeks & gt; wartoÊç koƒcowa)
wykonywanie p´tli jest realizowane do instrukcji END_FOR.
• Indeks jest zwi´kszany automatycznie tak, ˝e u˝ytkownik nie musi go uaktualniaç.
• Akcja reprezentowana jest przez list´ instrukcji.
• WartoÊç poczàtkowa i koƒcowa muszà byç wyra˝eniami numerycznymi typu s∏owo.
• Indeks musi byç obiektem typu s∏owo, dost´pnym do odczytu.
• Mo˝na zagnieêdziç kilka p´tli FOR.
___________________________________________________________________________
4/13
A
Instrukcja EXIT
• S∏owo kluczowe EXIT umo˝liwia zatrzymanie wykonywania p´tli i przeskoczenie do
instrukcji nast´pujàcej po s∏owie kluczowym zamykajàcym p´tl´.
• Instrukcja ta mo˝e byç u˝yta tylko w przypadku p´tli typu WHILE, REPEAT i FOR.
• Instrukcja wyskoczenia z p´tli (EXIT) dotyczy najbli˝szego zamkni´cia p´tli, t.j. nie
powoduje ona zakoƒczenia wszystkich p´tli wewnàtrz, których si´ ona znalaz∏a.
Przyk∏ad:
W tym przyk∏adzie s∏owo kluczowe EXIT powoduje zatrzymanie p´tli REPEAT, lecz nie
przerywa wykonywania p´tli WHILE.
___________________________________________________________________________
4/14
A
4
4.3
Zasady rzàdzàce wykonywaniem programu w j´zku ST
Program napisany w j´zyku strukturalnym ST jest wykonywany sekwencyjnie, instrukcja
po instrukcji, z uwzgl´dnieniem struktur sterujàcych (p´tli).
Dla wyra˝eƒ arytmetycznych lub logicznych zawierajàcych kilka operatorów
zdefiniowano zasady okreÊlania priorytetu.
Priorytety poszczególnych operatorów
W tabeli poni˝ej zawarto zasady okreÊlania priorytetu wyra˝eƒ.
Operator
Nawias
Symbol
Priorytet
Wyra˝enie
Najwy˝szy
Dope∏nienie logiczne
Inwersja
- przy argumencie
+ przy argumencie
NOT
NOT
+
Mno˝enie
Dzielenie
Modulo (reszta)
*
/
REM
Dodawanie
Odejmowanie
+
-
Porównywanie
& lt; , & gt; , & lt; =, & gt; =
Przyrównywanie
NierównoÊç
=
& lt; & gt;
Koniunkcja logiczna
Koniunkcja boolowska
AND
AND
Nierównowa˝noÊç logiczna
Nierównowa˝noÊç boolowska
XOR
XOR
Alternatywa logiczna
Alternatywa boolowska
OR
OR
Najni˝szy
Przyk∏ad:
NOT %MW3 * 25 AND %MW10 + %MW12
W tym przyk∏adzie, wpierw wykonywana jest negacja NOT na s∏owie %MW3, potem jej
wynik jest mno˝ony przez 25. Obliczana jest suma %MW10 i %MW12, potem okreÊlana
jest logiczna koniunkcja AND pomi´dzy wynikiem mno˝enia (lewa strona), a wynikiem
dodawania (prawa strona).
___________________________________________________________________________
4/15
A
Je˝eli wyst´puje konflikt pomi´dzy operatorami o takim samym priorytecie, to nast´puje
wykonanie tej operacji, która jest pierwsza (liczàc od lewej strony).
Przyk∏ad:
%MW34 * 2 REM 6
W tym przyk∏adzie %MW34 jest wpierw mno˝one przez 2, a wynik tego
dzia∏ania jest wykorzystywany do obliczenia modulo (reszty).
Zastosowanie nawiasów
Nawiasy s∏u˝à do modyfikowania kolejnoÊci wykonywania dzia∏aƒ, czyli np. w celu
nadania wy˝szego priorytetu dodawaniu w stosunku do mno˝enia.
Przyk∏ad:
(%MW10 + %MW11) * %MW12
W tym przypadku dodawanie zostane wykonane przed mno˝eniem.
Nawiasy mo˝na zagnie˝d˝aç, przy czym nie ma ograniczenia co do ich liczby.
Dzi´ki zastosowaniu nawiasów mo˝na zapobiec niew∏aÊciwej interpretacji programu.
Przyk∏ad:
NOT %MW2 & lt; & gt; %MW4 + %MW6
Przy zastosowaniu okreÊlonych wczeÊniej priorytetów interpretacja jest nast´pujàca:
((NOT %MW2) & lt; & gt; (%MW4 + %MW6))
Natomiast u˝ytkownik móg∏by chcieç przeprowadziç nast´pujàcà operacj´:
NOT (%MW2 & lt; & gt; (%MW4 + %MW6))
Powy˝szy przyk∏ad obrazuje w jaki sposób mo˝na zastosowaç nawiasy w celu
uczynienia programu bardziej przejrzystym.
___________________________________________________________________________
4/16
A
4
Konwersje niejawne (implicit conversion)
Konwersje niejawne (czyli niezale˝ne od woli u˝ytkownika) dotyczà s∏ów i s∏ów
podwójnej precyzji. Taka konwersja dokonuje si´ w przypadku operatorów u˝ywanych
w wyra˝eniach arytmetycznych, w przypadku operacji porównywania i przypisywania.
Dla instrukcji zapisywanych w formie : & lt; argument 1 & gt; & lt; operator & gt; & lt; argument 2 & gt; ,
mo˝liwe sà nast´pujàce rodzaje konwersji:
Argument 1
typu:
Argument 2
typu:
Konwersja
argumentu 1
Konwersja
argumentu 2
Operacja
typu:
S∏owo
S∏owo
S∏owo podw.
S∏owo podw.
S∏owo
S∏owo podw.
S∏owo
S∏owo podw.
Nie
S∏owo podw.
Nie
Nie
Nie
Nie
S∏owo podw.
Nie
S∏owo
S∏owo podw.
S∏owo podw.
S∏owo podw.
Dla operacji przypisania & lt; lewy argument & gt; := & lt; prawy argument & gt; , argument lewy
wymusza typ argumentu na jakim ma byç wykonana operacja, co oznacza, ˝e prawy
musi byç poddany konwersji (chyba, ˝e jest tego samego typu) zgodnie z tabelà:
Typ lewego
argumentu
Typ prawego
argumentu
Konwersja
prawego argumentu
S∏owo
S∏owo
S∏owo podwójne
S∏owo podwójne
S∏owo
S∏owo podwójne
S∏owo
S∏owo podwójne
Nie
S∏owo
S∏owo podwójne
Nie
Uwaga:
Ka˝da operacja pomi´dzy dwiema bezpoÊrednio przylegajàcymi do siebie wartoÊciami jest
wykonywana z wykorzystaniem podwójnej precyzji.
___________________________________________________________________________
4/17
A
___________________________________________________________________________
4/18
Ró˝nice mi´dzy PL7-2/3 aRozdzia∏
PL7 Micro
44
4 Ró˝nice pomi´dzy PL7-2/3 a PL7 Micro/Junior
4.1
B
Wyszczególnienie
WartoÊci bezpoÊrednie Immediate values
Obiekty
PL7-2/3
PL7 Micro/Junior
Ca∏kowite, dziesi´tne
1234
1234
Ca∏kowite, dwójkowe
L'10011110'
2#10011110
Ca∏kowite, szesnastkowe
H'ABCD'
16#ABCD
Zmiennoprzecinkowe
-1.32e12 (PL7-3)
-1.32e12
¸aƒcuch znaków
M'aAbBcB'
'aAbBcC'
Li i = 0 do 999
%Li i = 0 do 999
Obiekty
PL7-2/3
PL7 Micro/Junior
Bit wejÊcia modu∏u wewn.
Indeksowany bit wejÊcia modu∏u wew.
Bit wejÊcia zdalnego
Indeksowany bit wejÊcia zdalnego
Ixy,i
Ixy,i (Wj) (PL7-3)
RIx,y,i (PL7-3)
RIx,y,i (Wj) (PL7-3)
%Ixy.i
%Ixy.i[%MWj]
%I\ & lt; Êcie˝ka & gt; \ & lt; mod & gt; . & lt; kana∏ & gt;
Bit wyjÊcia modu∏u wewn.
Indeksowany bit wyjÊcia modu∏u wew.
Bit wyjÊcia zdalnego
Indeksowany bit wyjÊcia zdalnego
Oxy,i
Oxy,i (Wj) (PL7-3)
ROx,y,i (PL7-3)
ROx,y,i (Wj) (PL7-3)
%Qxy.i
%Qxy.i[%MWj]
%Q\ & lt; Êcie˝ka & gt; \ & lt; mod & gt; . & lt; kana∏ & gt;
Bit wewn´trznego b∏´du I/O
• bit b∏´du modu∏u
• bit b∏´du kana∏u
Ixy,S / Oxy,S
%Ixy.MOD.ERR
%Ixy.i.ERR
Etykiety Labels
Etykiety
Bity
Bit b∏´du I/O zdalnego
• bit b∏´du modu∏u
• bit b∏´du kana∏u
• bit kana∏u wyjÊciowego
• kasowanie bitu kana∏u wyjÊciowego
(PL7-3)
RDx,y,i / ERRORx,y,i
TRIPx,y,i
RSTx,y,i
%I\ & lt; Êcie˝ka & gt; \ & lt; mod & gt; .MOD.ERR
%I\ & lt; Êcie˝ka & gt; \ & lt; mod & gt; . & lt; kana∏ & gt; .ERR
Bit wewn´trzny
Bi
%Mi
Indeksowany bit wewn´trzny
Bi(Wj) (PL7-3)
%Mi[%MWj]
Bit systemowy
SYi
%Si
Bit kroku
Xi
%Xi
Bit makrodefinicji
XMj (PL7-3)
%XMj
Bit kroku i makrodefinicji j
Xj,i (PL7-3)
%Xj.i
Bit kroku wejÊciowego makra j
Xj,I (PL7-3)
%Xj.IN
Bit kroku wyjÊciowego makra j
Xj,O (PL7-3)
%Xj.OUT
Bit j s∏owa wewn´trznego i
Wi,j
%MWi:Xj
Bit j indeksowanego s∏owa wewn. i
Wi(Wk),j(PL7-3)
%MWi[%MWk]:Xj
___________________________________________________________________________
4/1
B
B
Bit j s∏owa sta∏ego i
CWi,j
%KWi:Xj
Bit j indeks. s∏owa sta∏ego i
CWi(Wk),j (PL7-3)
%KWi[%MWk]:Xj
Bit j rejestru i
I/OWxy,i,j
%IW/%QWxy.i:Xj
Bit k s∏owa wspólnego j
stacji i
COMi,j,k
%NWi.j:Xk
COMXi,j,k (X = B, C, D) %NXWi.j:Xk
Bit j s∏owa systemowego i
SWi,j
%SWi:Xj
S∏owa
Obiekty
PL7-2/3
PL7 Micro/Junior
S∏owo wewn´trzne pojedyncze
Wi
%MWi
Pojedyncze, indeks. s∏owo wewn´trzne
Wi(Wj) (PL7-3)
%MWi[%MWj]
S∏owo wewn´trzne podwójne
DWi (PL7-3)
%MDi
Podwójne, indeks. s∏owo wewn´trzne
DWi(Wj) (PL7-3)
%MDi[%MWj]
Rzeczywiste s∏owo wewn´trzne
%MFi
Rzeczywiste, indeks. s∏owo wewn´trzne
%MFi[%MWj]
S∏owo sta∏e pojedyncze
CWi
%KWi
Pojedyncze, indeks. s∏owo sta∏e
CWi(Wj)
%KWi[%MWj]
Podwójne s∏owo sta∏e
CDWi (PL7-3)
%KDi
Podwójne, indeks. s∏owo sta∏e
CDWi(Wj) (PL7-3)
%KDi[%MWj]
Rzeczywiste s∏owo sta∏e
%KFi
Rzeczywiste, indeks. s∏owo sta∏e
%KFi[%MWj]
Pojedyncze s∏owo wejÊciowe rejestru
IWxy,i
Podwójne s∏owo wejÊciowe rejestru
Pojedyncze s∏owo wyjÊciowe rejestru
%IWxy.i
%IDxy.i
OWxy,i
Podwójne s∏owo wyjÊciowe rejestru
%QWxy.i
%QDxy.i
S∏owo wejÊciowe rejestru zdalnego
RIWx,y,i (PL7-3) %IW\ & lt; Êcie˝ka & gt; \ & lt; mod & gt; . & lt; kana∏ & gt;
S∏owo wyjÊciowe rejestru zdalnego
ROWx,y,i (PL7-3)%QW\ & lt; Êcie˝ka & gt; \ & lt; mod & gt; . & lt; kana∏ & gt;
S∏owo systemowe
SWi
%SWi
S∏owo wspólne j stacji i
COMi,j
COMXi,j (gdzie X = B, C, D)
%NW{i}j
%NW{[r.]i}j
r = nr sieci
S∏owo statusu zdalnego modu∏u dyskretnego
STATUSAx,y,i (PL7-3)
STATUSBx,y,i (PL7-3)
S∏owo statusu zdalnego kana∏u dyskretnego
STSx,y,i(PL7-3) %IW\ & lt; Êcie˝ka & gt; \ & lt; mod & gt; . & lt; kana∏ & gt; .ERR
Czas aktywnoÊci kroków Grafcet-u
Xi,V
%Xi.T
Czas aktywnoÊci kroku i makra j
Xj,i,V (PL7-3)
%Xj.i.T
___________________________________________________________________________
4/2
Ró˝nice mi´dzy PL7-2/3 a PL7 Micro
Czas aktywnoÊci kroku wejÊciowego
makra j
Xj,I,V (PL7-3)
%Xj.IN.T
Czas aktywnoÊci kroku wyjÊciowego
makra j
Xj,O,V (PL7-3)
4
B
%Xj.OUT.T
B
Bloki funkcyjne
Obiekty
PL7-2/3
PL7 Micro/Junior
Zegar Timer
• wartoÊç nastawiona (s∏owo)
• wartoÊç bie˝àca (s∏owo)
• sygnalizacja pracy zegara (bit)
• sygnalizacja koƒca pracy zegara (bit)
Ti
Ti,P
Ti,V
Ti,R
Ti,D
%Ti
%Ti.P
%Ti.V
%Ti.R
%Ti.D
Przerzutnik monostabilny Monostable
• wartoÊç nastawiona (s∏owo)
• wartoÊç bie˝àca (s∏owo)
• sygnalizacja pracy bloku (bit)
Mi
Mi,P
Mi,V
Mi,R
%MNi
%MNi.P
%MNi.V
%MNi.R
Licznik dwukierunkowy Up/down counter
• wartoÊç nastawiona (s∏owo)
• wartoÊç bie˝àca (s∏owo)
• przekroczenie limitu górnego (bit)
• osiàgni´cie wartoÊci nastawionej (bit)
• przekroczenie limitu dolnego (bit)
Ci
Ci,P
Ci,V
Ci,E
Ci,D
Ci,F
%Ci
%Ci.P
%Ci.V
%Ci.E
%Ci.D
%Ci.F
Rejestr Register
• wejÊcie (s∏owo)
• wyjÊcie (s∏owo)
• rejest pe∏ny (bit)
• rejestr pusty (bit)
Ri
Ri,I
Ri,O
Ri,F
Ri,E
%Ri
%Ri.I
%Ri.O
%Ri.F
%Ri.E
Tekst
TXTi
brak bloku tekst.
B´ben Drum controller
• numer aktywnego kroku (s∏owo)
• czas aktywnoÊci kroku bie˝àcego (s∏owo)
• 16 bitów komend (s∏owo)
• przetwarzanie ostatniego kroku (bit)
Di (PL7-2)
Di,S
Di,V
Di,Wj
Di,F
%DRi
%DRi.S
%DRi.V
%DRi.Wj
%DRi.F
Szybki licznik Fast Counter / Timer
• wartoÊç nastawiona (s∏owo)
• wartoÊç bie˝àca (s∏owo)
• zewn´trzne kasowanie (bit)
• osiàgni´cie wartoÊci nastawionej (bit)
• liczenie w toku (bit)
FC (PL7-2)
FC,P
FC,V
FC,E
FC,D
FC,F
-
Zegar czasu rzeczywistego Real-time clock
• typ " WEEK " (tydzieƒ) lub " YEAR " (rok)
wybór dnia MTWTFSS (s∏owo)
• poczàtek czasu aktywnoÊci (s∏owo)
• koniec czasu aktywnoÊci (s∏owo)
• wartoÊç bie˝àca & lt; limit (bit)
• wartoÊç bie˝àca = limit (bit)
• wartoÊç bie˝àca & gt; limit (bit)
H (PL7-2)
-
VD
BGN
END
& lt;
=
& gt;
-
___________________________________________________________________________
4/3
B
Tablice bitów i s∏ów
Obiekty
PL7-2/3
PL7 Micro/Junior
Strumienie bitów
• wewn´trzny ∏aƒcuch bitów
• ∏aƒcuch bitów wejÊciowych
• ∏aƒcuch bitów wyjÊciowych
• ∏aƒcuch bitów kroków Grafcet
• ∏aƒcuch bitów makrodefinicji
Bi[L]
Ixy,i[L] (PL7-3)
Oxy.i[L] (PL7-3)
Xi[L] (PL7-3)
XMi[L] (PL7-3)
%Mi:L
%Ixy.i:L
%Qxy.i:L
%Xi:L
¸aƒcuchy znaków
Tablice s∏ów
• tablica s∏ów wewn´trznych
• tablica s∏ów wewn´trznych indeks.
• tablica podwójnych s∏ów wewn´trznych
• tablica podwójnych, indeks. s∏ów wew.
• tablica s∏ów sta∏ych
• tablica s∏ów sta∏ych indeksowanych
• tablica podwójnych s∏ów sta∏ych
• tablica podwójnych s∏ów sta∏ych indeks.
• tablica obiektów rzeczywistych
• tablica obiektów rzeczywistych indeks.
• tablica rzeczywistych sta∏ych
• tablica rzeczywistych sta∏ych indeks.
• tablica zdalnych elementów wejÊciowych
• tablica zdalnych elementów wyjÊciowych
• tablica zdalnych elementów wej. indeks.
• tablica zdalnych elementów wyj. indeks.
%MBi:L
(1)
(gdzie i parzyste)
Wi[L]
Wi(Wj)[L]
DWi[L] (PL7-3)
DWi(Wj)[L] (PL7-3)
CWi[L]
CWi(Wj)[L]
CDWi[L] (PL7-3)
CDWi(Wj)[L] (PL7-3)
%MWi:L
%MWi[%MWj]:L
%MDi:L
%MDi[%MWj]:L
%KWi:L
%KWi[%MWj]:L
%KDi:L
%KDi[%MWj]:L
%MFi:L
%MFi[%MWj]:L
%KFi:L
%KFi[%MWj]:L
RIx,y,i[L] (PL7-3)
ROx,y,i[L] (PL7-3)
RIx,y,i(Wj)[L] (PL7-3)
ROx,y,i(Wj)[L] (PL7-3)
Dodatkowe bloki funkcyjne
Obiekty
PL7-3
Dodatkowy blok funkcyjny
& lt; OFB & gt; i
Element OFB
& lt; OFB & gt; i, & lt; element & gt;
Indeksowany element OFB
& lt; OFB & gt; i, & lt; element & gt; (Wj)
Element tablicy OFB
& lt; OFB & gt; i, & lt; element & gt; [L]
Indeksowany element tablicy OFB
PL7 Micro/Junior
& lt; OFB & gt; i, & lt; element & gt; (Wj)[L]
___________________________________________________________________________
4/4
Ró˝nice mi´dzy PL7-2/3 a PL7 Micro
4
B
Instrukcje
Obiekty
Operacje na bitach - instukcje
• Zaprzeczenie logiczne
• Koniunkcja AND
• Alternatywa OR
• Nierównowa˝noÊç XOR
• Zbocze rosnàce
• Zbocze opadajàce
• Nadanie wartoÊci 1
• Skasowanie do 0
PL7-2
AND
OR
XOR
PL7-3
PL7 Micro/Junior
NOT
•
+
NOT
AND
OR
XOR
RE
FE
SET
RESET
RE
FE
SET
RESET
Operacje na s∏owach i s∏owach podwójnych - instrukcje
• Dodawanie
+
+
• Odejmowanie
• Mno˝enie
*
*
• Dzielenie
/
/
• Porównywanie
& gt; , & gt; =, & lt; , & lt; =, =, & lt; & gt;
• Reszta z dzielenia
MOD
REM
• Pierwiastek kwadratowy
SQRT
• WartoÊç bezwzgl´dna
• Koniunkcja AND
AND
AND
• Alternatywa OR
OR
OR
• Nierównowa˝noÊç
XOR
XOR
• Logiczne dope∏nienie
CPL
CPL
• Zwi´kszanie
INC
• Zmniejszanie
DEC
• Logiczne przesuni´cie w lewo
SHL
• Logiczne przesuni´cie w prawo
SHR
• Okr´˝ne przesuni´cie w lewo
SLC
SLC
• Okr´˝ne przesuni´cie w prawo
SRC
SRC
+
*
/
& gt; , & gt; =, & lt; , & lt; =, =, & lt; & gt;
REM
SQRT
ABS
AND
OR
XOR
NOT
INC
DEC
SHL
SHR
ROL
ROR
Operacje zmiennoprzecinkowe (1)
• Dodawanie
• Odejmowanie
• Mno˝enie
• Dzielenie
• Pierwiastek kwadratowy
• WartoÊç bezwzgl´dna
• Sprawdzenie równoÊci
• Porównywanie & gt;
• Porównywanie & lt;
• Inne
+
*
/
SQRT
ABS
=
& gt;
& lt;
& gt; =, & lt; =, & lt; & gt;
ADDF
SUBF
MULF
DIVF
SQRTF
EQUF
SUPF
INFF
___________________________________________________________________________
4/5
B
B
Instrukcje (kontynuacja)
Obiekty
PL7-2
Operacje na ∏aƒcuchach bajtów
• Okr´˝ne przesuni´cie
PL7-3
PL7 Micro/Junior
SLCWORD
Konwersje:
• BCD - kod binarny
• Kod binarny - BCD
• ASCII - kod binarny
BCD
BIN
ATB
• Kod binarny - ASCII
BTA
• BCD - obiekt zmiennoprzecinkowy
• Obiekt zmiennoprzecinkowy - BCD
• ASCII - obiekt zmiennoprzecinkowy
• Obiekt zmiennoprzecinkowy - ASCII
BCD_TO_INT
INT_TO_BCD
STRING_TO_INT lub
STRING_TO_DINT
BTA
INT_TO_STRING lub
DINT_TO_STRING
GTB
GRAY_TO_INT
REAL_TO_INT lub
REAL_TO_DINT
INT_TO_REAL lub
DINT_TO_REAL
DTF
BCD_TO_REAL
FTD
REAL_TO_BCD
ATF
STRING_TO_REAL
FTA
REAL_TO_STRING
Operacje na tablicach
• Operacje arytmetyczne
• Operacje logiczne
• Dodawanie s∏ów w tablicy
• Wyszukiwanie 1-go s∏owa ró˝niàcego tablice
• Wyszukiwanie 1-go jednakowego s∏owa
+, -, *, /, REM
AND,OR,XO
+
EQUAL
SEARCH
+, -, *, /, REM
RAND,OR,XOR,NOT
SUM
EQUAL
FIND_EQU
JUMP Li
JUMP %Li
CALL SRi
SRi
RETURN
HALT
IF/THEN/ELSE/END_IF
WHILE/DO/END_WHILE
• Kod Gray'a - kod binarny
• Obiekt zmiennoprzecinkowy - ca∏kowity FTB
• Obiekt ca∏kowity - zmiennoprzecinkowy FTF
Instrukcje programowe
• Skok
• Wywo∏anie procedury
• Powrót z procedury
• Zatrzymanie aplikacji
• P´tla warunkowa
• P´tla iteracyjna
Przerwania
• Testowanie (odczytywanie stanów)
• Maskowanie
• Zdejmowanie maski
• Potwierdzenie
• Generowanie znaku IT dla modu∏u
Operacje wymiany jawnej I/O
• Odczytywanie stanów wejÊç dyskretnych
• Zapisywanie stanów wyjÊç dyskretnych WRITEBIT
• Odczytywanie rejestrów
• Zapisywanie rejestrów
• Odczytywanie s∏ów
• Zapisywanie s∏ów
DTB
BTD
ATB
RET
HALT
IF/THEN/ELSE
WHILE/DO
READINT
MASKINT
DMASKINT
ACKINT
SETIT
MASKEVT
UNMASKEVT
READBIT
READREG
WRITEREG
READEXT
WRITEEXT
___________________________________________________________________________
4/6
Ró˝nice mi´dzy PL7-2/3 a PL7 Micro
4
B
Instrukcje (kontynuacja)
Obiekty
PL7-3
PL7 Micro/Junior
Operacje na blokach funkcyjnych
• Nastawianie
• Uruchomienie
Uaktywnienie zadaƒ
• Kasowanie
• Dezaktywacja zadaƒ
• Zliczanie
• Odliczanie
• Zapisanie w rejestrze
• Odczytanie z rejestru
• Odebranie komunikatu
• Nadawanie komunikatu
• Nadanie/odbiór komunikatu
• Wykonanie OFB
• Odczytywanie telegramów
PRESET Ti / Ci
START Ti / Mi
START CTRLi
RESET Ci / Ri / TXTi
RESET CTRLi
UP Ci
DOWN Ci
PUT Ri
GET Ri
INPUT TXTi
OUTPUT TXTi
EXCHG TXTi
EXEC & lt; OFBi & gt;
READTLG
PRESET %Ti / %Ci
START %Ti / %MNi •
RESET %Ci / %Ri
UP %Ci
DOWN %Ci
PUT %Ri
GET %Ri
Separatory
Obiekty
PL7-2/3
PL7 Micro/Junior
Przypisywanie
- & gt;
:=
Lewy margines dla indeksowania
(
[
Prawy margines dla indeksowania
)
]
D∏ugoÊç tablicy
[length]
:length
___________________________________________________________________________
4/7
B
B
___________________________________________________________________________
4/8
A
Rozdzia∏ 5
J´zyk Grafcet 5
5 J´zyk Grafcet
5.1
Prezentacja j´zyka Grafcet
5.1-1 Wprowadzenie
J´zyk Grafcet jest zgodny z j´zykiem SFC (Sequential Function Chart) opisanym
w normie IEC 1131-3.
J´zyk ten stosowany jest do odwzorowywania dzia∏ania sekwencyjnego systemu
sterujàcego w formie graficznej.
Opis graficzny dzia∏ania systemu sterujàcego oraz wyst´pujàcych w trakcie sterowania
sytuacji realizuje si´ za pomocà prostych symboli graficznych:
Krok inicjujàcy: definiuje warunki
poczàtkowe w sterowniku.
Bramka: przypisane warunki przejÊcia
okreÊlajà jakie warunki nale˝y spe∏niç,
by przejÊç do nast´pnego elementu.
Jednoczesne uaktywnienie kroków
3 i 7 (rozdzielenie koniunkcji). Kroki
3, 4, 5, 6 oraz 7, 8, 9 tworzà dwie
sekwencje traktowane jak sekwencje
jednoczesne.
Wybór sekwencji (alternatywa rozdzielenie) przejÊcie od kroku 3 do
kroku 4 lub 5.
Koniec wyboru sekwencji (zamkni´cie alternatywy) przejÊcie od kroku 4
lub 5 do kroku 6.
Krok koƒcowy sekwencji: umo˝liwia
zsynchronizowanie sekwencji wykonywanych jednoczeÊnie.
Jednoczesne zakoƒczenie kroków
6 i 9 (zamkni´cie koniunkcji).
Krok: przyporzàdkowane akcje wykonywane sà tylko gdy krok jest aktywny.
Bramki i ∏àczniki reprezentujà w formie symbolicznej dopuszczalne drogi realizacji
aktywnych kroków.
Akcje przyporzàdkowane krokom odzwierciedlajà, ogólnie rzecz ujmujàc, " co ma
byç wykonane " gdy krok si´ uaktywnia. W szczególnoÊci opisujà one rozkazy, jakie
majà byç wys∏ane do cz´Êci wykonawczej systemu (wykonujàcego zautomatyzowany
proces) lub innego zautomatyzowanego systemu. Zdefiniowanie, w dowolnym
momencie, kroków aktywnych rzutuje na sytuacj´ ca∏ego diagramu Grafcet-u.
___________________________________________________________________________
5/1
A
5.1-2 Analiza procesu sterowania: zastosowanie makrodefinicji
• Charakterystyka procesu
System umo˝liwia mieszanie trzech
sk∏adników: A, B, C.
Sk∏adniki A i B sà wa˝one i mierzone
∏àcznie w dozowniku B1. Trzeci
sk∏adnik C jest mierzony i wa˝ony
w dozowniku B2.
Konsystencj´ produktu finalnego
uzyskuje si´ poprzez mieszanie tych
sk∏adników w mieszaczu przez czas
ustawiony przez operatora.
Dozownik
B1
Dozownik
B2
Mieszacz
Po odliczeniu nastawionego czasu
i uzyskaniu zezwolenia z zewnàtrz
nast´puje zrzucenie produktu.
Roz∏adowanie
• Analiza funkcjonalna
Opisany powy˝ej proces mo˝na
podzieliç na 4 g∏ówne sekwencje:
- odmierzanie 3 sk∏adników,
- nape∏nianie mieszacza,
- mieszanie 3 sk∏adników,
- opró˝nienie mieszacza.
Zamieszczony obok diagram przedstawia kolejnoÊç poszczególnych
operacji (analiza wst´pna - pierwszy
stopieƒ).
Szczegó∏owej analizy ka˝dej sekwencji dokonuje si´ przy pomocy
diagramów drugiego lub trzeciego
stopnia, które tworzy si´ a˝ do
momentu osiàgni´cia poziomu
elementarnego tak, ˝eby aplikacja
by∏a opisana w ca∏oÊci.
Start
cyklicznie
Odmierzanie
Sekwencja mierzenia
koniec odmierzania
Nape∏nianie
Mieszanie
Sekw. nape∏niania
koniec
nape∏niania
Sekwencja mieszania
koniec mieszania
Opró˝nianie
Sekwencja opró˝niania
koniec roz∏adunku
• Makra
Diagram pierwszego poziomu przedstawiajàcy ciàg sekwencji pomaga uproÊciç
struktur´ cz´Êci sterujàcej systemu. Ka˝dej sekwencji przypisany jest specyficzny
symbol tzw. makro.
Ideà zastosowania makr jest umo˝liwienie analizy hierarchicznej systemu. Ka˝dy
poziom analizy mo˝e byç uzupe∏niany i modyfikowany niezale˝nie, bez wp∏ywu na
pozosta∏e. Makra mo˝na stosowaç tylko dla sterowników TSX 57.
___________________________________________________________________________
5/2
A
J´zyk Grafcet
• Struktura hierarchiczna
5
Makra
Sekwencja odmierzania
Sekwencja nape∏niania
Diagram g∏ówny
Sekwencja mieszania
Sekwencja opró˝niania
___________________________________________________________________________
5/3
A
5.2
Symbole graficzne j´zyka Grafcet
Oznaczenie
Symbol
Krok inicjujàcy
lub
Krok pojedynczy
lub
Funkcja
Oznacza kroki aktywne na poczàtku cyklu
po inicjacji lub zimnym starcie.
Oznacza, ˝e system sterujàcy jest stabilny.
Maksymalna liczba kroków jakie mo˝na
skonfigurowaç:
- 1 do 96 dla TSX 37-10,
- 1 do 128 dla TSX 37-20,
- 1 do 250 dla TSX 57.
Maksymalna liczba jednoczeÊnie aktywnych
kroków jest konfigurowana.
Makro
Oznacza makro, czyli zestaw kroków
i bramek. Maksymalna liczba makr jakie
mo˝na skonfigurowaç wynosi od 0 do 63
(dotyczy tylko TSX 57).
Kroki makra (1)
Oznaczenie kroków makra.
Maksymalna liczba kroków makra jest
definiowana i wynosi od 0 do 250 (dotyczy
tylko sterowników TSX 57).
W danym makrze mo˝e byç tylko jeden krok
IN i jeden krok OUT.
lub
lub
Bramka
Bramka realizuje przejÊcie od jednego kroku,
do drugiego. Zwiàzany z bramkà warunek
s∏u˝y do okreÊlania warunku logicznego
niezb´dnego do przejÊcia do nast´pnego
kroku.
Maksymalna liczba bramek wynosi 1024.
Liczba ta nie podlega konfigurowaniu.
Konfiguruje si´ natomiast maksymalnà liczb´
bramek jednoczeÊnie otwartych.
Poczàtek koniunkcji
Jest to przejÊcie od jednego kroku do kilku
kroków. Umo˝liwia jednoczesne uaktywnienie maksymalnie 11 kroków.
Koniec koniunkcji
PrzejÊcie od kilku jednoczeÊnie otwartych
kroków do jedego kroku. Umo˝liwia jednoczesne zamkni´cie maksymalnie 11 kroków.
(1) Maksymalna liczba kroków (kroki diagramu g∏ównego + kroki makr), w sekcji j´zyka
Grafcet, nie mo˝e przekroczyç 1024 (dla TSX 57).
___________________________________________________________________________
5/4
A
J´zyk Grafcet
Oznaczenie
Symbol
5
Funkcja
Poczàtek alternatywy
PrzejÊcie od jednego kroku do kilku innych.
Umo˝liwia wybór maksymalnie 11 sekwencji
kroków.
Koniec alternatywy
PrzejÊcie od kilku kroków do jednego.
Zamyka jednà z maksymalnie 11 sekwencji
kroków.
¸àcznik êród∏owy
'n' jest numerem kroku, od którego przychodzi po∏àczenie (krok êród∏owy).
¸àcznik docelowy
'n' numerem kroku, do którego ma nastàpiç
przejÊcie (krok docelowy).
¸àczniki bezpoÊrednie:
• do góry
Te ∏àczniki stosowane sà do wyboru
sekwencji, do przeskoczenia jednego lub
kilku kroków, do powtórzenia kroków
(sekwencji).
• w dó∏
• w lewo lub w prawo
___________________________________________________________________________
5/5
A
5.3
Obiekty j´zyka Grafcet
U˝ytkownik ma do dyspozycji bity obiektowe zwiàzane z krokami, bity systemowe
j´zyka Grafcet, s∏owa obiektowe sygnalizujàce aktywnoÊç kroków i s∏ów systemowych
j´zyka Grafcet.
Oznaczenie
Adres
Opis
Bity kroków
(1 = krok aktywny)
%Xi
Status kroku i g∏ównego diagramu.
(i od 0 do n) (n zale˝y od procesora)
%XMj
Stan makra j
(j od 0 do 63 dla TSX/PMX/PCX 57)
%Xj.i
Status kroku i makra j
%Xj.IN
Status kroku wejÊciowego makra j
%Xj.OUT
Status kroku wyjÊciowego makra j
%S21
Inicjacja diagramu
%S22
Skasowanie wszystkich diagramów
%S23
" Zamro˝enie " diagramu
%S24
Skasowanie makr do 0 z uwzgl´dnieniem s∏ów
systemowych %SW22 do %SW25
%S26
Przyjmuje wartoÊç 1 w przypadku:
- przepe∏nienia tablicy (kroki/bramki),
- wykonywania niew∏aÊciwego diagramu
(po∏àczenie z krokiem nie nale˝àcym do
diagramu).
%Xi.T
Czas aktywnoÊci kroku i diagramu g∏ównego
%Xj.i.T
Czas aktywnoÊci kroku i makra j
%Xj.IN.T
Czas aktywnoÊci kroku wejÊcia makra j
%Xj.OUT.T
Czas aktywnoÊci kroku wyjÊcia makra j
%SW20
S∏owo okreÊlajàce, dla bie˝àcego cyklu,
liczb´ kroków aktywnych oraz kroków,które
majà byç uaktywnione lub zakoƒczone.
%SW21
S∏owo okreÊlajàce, dla bie˝àcego cyklu, liczb´
bramek aktywnych oraz bramek, które majà
byç uaktywnione lub zamkni´te
%SW22 to
%SW25
WartoÊç 4 s∏ów powodujàcych skasowanie
makr do 0, kiedy bit %S24 ma wartoÊç 1.
Bity systemowe Grafcet (1)
S∏owa kroków
S∏owa systemowe
Grafcet-u
(1) Szczegó∏ów na temat wykorzystania bitów systemowych nale˝y szukaç w rozdziale 6.8-3.
___________________________________________________________________________
5/6
A
J´zyk Grafcet
5
Bity przypisane do kroków %Xi, makr %XMi kroków makr %Xj.I , %Xj.IN, %Xj.OUT
• Przyjmujà one wartoÊç 1, gdy krok jest aktywny.
• Bity te mogà byç testowane (stanowià warunki wykonania akcji) we wszystkich
zadaniach ale mogà byç zapisywane jedynie podczas przetwarzania wst´pnego
zadania g∏ównego MASTER (ustawianie wartoÊci poczàtkowych diagramu). Warunki
wykonania akcji oraz same akcje programowane sà w j´zyku Ladder, j´zyku
instrukcji LIST lub j´zyku strukturalnym ST.
• Bity te nie mogà byç indeksowane.
S∏owa zwiàzane z czasem aktywnoÊci dla kroków %Xi.T oraz makr %Xj.I , %Xj.IN
i %Xj.OUT
•
•
•
•
•
WartoÊç tych s∏ów jest zwi´kszana co 100 ms (przyjmujà wartoÊci od 0 do 9999).
Zwi´kszanie wartoÊci s∏owa: podczas aktywnoÊci przypisanego mu kroku.
W czasie, gdy krok nie jest aktywny zawartoÊç s∏owa pozostaje zamro˝ona.
Przy ponownym uaktywnieniu kroku, wartoÊç jest kasowana i od nowa zliczana.
Liczba s∏ów zwiàzanych z czasem aktywnoÊci nie mo˝e byç konfigurowana ka˝demu krokowi przyporzàdkowane jest jedno s∏owo.
• S∏owa te nie mogà byç indeksowane.
5.4
Mo˝liwoÊci j´zyka Grafcet
Zale˝à one od procesora, który ma byç zaprogramowany. W tabeli poni˝ej zestawiono
poszczególne parametry:
Liczba
TSX 37-10TSX 37-20
TSX 57
Dom.
Max
Dom.
Max
Dom.
Max
Kroki diagramu g∏ównego
96
96
128
128
128
250
Makra
0
0
0
0
8
64
Kroki makr
0
0
0
0
64
250
Ca∏kowita liczba kroków
96
96
128
128
640
1024
Kroki jednoczeÊnie aktywne
16
96
20
128
40
250
20
192
24
256
48400
Bramki jednocz. dost´pne
Skrót " Dom. " oznacza wartoÊci domyÊlne. Skrót " Max " oznacza wartoÊci maksymalne.
___________________________________________________________________________
5/7
A
Przyk∏ad dla TSX 57:
Proces przetwarzania podzielono na:
• 1 podzbiór typu: diagram g∏ówny,
• 64 podzbiory typu: makra
Te podzbiory sà podzielone na strony (patrz poni˝ej).
Makro 0
Diagram g∏ówny
Strona8
Strona3
Strona8
8 stron
250 kroków
(maksymalnie)
Strona3
+ makra
Strona2
Strona2
Strona1
8 stron
250 kroków
(maksymalnie)
+ IN krok
wejÊciowy
+ OUT krok
wyjÊciowy
Strona1
+ Makra
Makro 12
Strona8
Maksymalnie dla
przetwarzania
sekwencyjnego:
1024 kroki (kroki diagramu
g∏ównego + kroki makr)
64 Makra
Strona3
8 stron
250 kroków
(maksymalnie)
Strona2
+ IN krok wejÊciowy
Strona1
+ OUT krok wyjÊciowy
+ Makra
Makro 63
Strona8
Strona3
Strona2
Strona1
8 stron
250 kroków
(maksymalnie)
+ IN krok wejÊciowy
+ OUT krok wyjÊciowy
+ Makra
___________________________________________________________________________
5/8
A
J´zyk Grafcet
5.5
5
Wyglàd diagramu Grafcet
Diagram g∏ówny mo˝e byç zaprogramowany na 8 stronach (strony od 0 do 7). Ka˝da
strona zawiera 14 linii i 11 kolumn, co w efekcie daje 154 komórki. W jednej komórce
mo˝e byç umieszczony jeden element graficzny.
Regu∏y obowiàzujàce podczas zapisywania diagramu
•
•
•
•
•
•
Pierwsza linia s∏u˝y do wprowadzania ∏àczników êród∏owych.
Ostatnia linia s∏u˝y do wyprowadzania ∏àczników docelowych.
Linie parzyste (od 2 do 12) sà liniami kroków (dla kroków i ∏àczników êród∏owych).
Linie nieparzyste (od 3 do 13) sà liniami bramek (dla bramek i ∏àczników docelowych).
Numery kroków (od 0 do 127) definiuje si´ w dowolnym porzàdku.
Na jednej stronie mo˝na umieÊciç kilka diagramów.
___________________________________________________________________________
5/9
A
Wybór sekwencji i zakoƒczenie wyboru
• Liczba przejÊç w gór´ w stosunku do koƒca wyboru sekwencji (zamkni´cie alternatywy)
i przejÊç w dó∏ w stosunku do wyboru sekwencji (poczàtek alternatywy) nie mo˝e
przekraczaç 11.
• Wybór sekwencji rysuje sie przy pomocy ∏àcznika poziomego.
• Otwarta alternatywa musi, ogólnie rzecz bioràc, byç zamkni´ta.
• W celu zabezpieczenia si´ przed jednoczesnym otwarciem kilku bramek nale˝y tak
dobieraç warunki, ˝eby si´ one wzajemnie wyklucza∏y.
Jednoczesne uaktywnienie i zamkni´cie kroków
• Liczba kroków w dó∏ w stosunku do poczàtku koniunkcji (jednoczesne uaktywnienie
kroków) i w gór´ w stosunku do zamkni´cia koniunkcji (jednoczesne zamkni´cie
kroków) nie mo˝e przekraczaç 11.
• Otwarta koniunkcja musi, ogólnie rzecz ujmujàc, byç zamkni´ta.
• Jednoczesna aktywacja kroków zawsze odbywa si´ od lewej do prawej.
• Jednoczesne zamkni´cie kroków odbywa si´ zawsze od prawej do lewej.
___________________________________________________________________________
5/10
A
J´zyk Grafcet
5
Stosowanie ∏àczników
Zastosowanie ∏àczników êród∏owych i docelowych pozwala na zapewnienie ciàg∏oÊci
diagramu wtedy, kiedy ∏àcze bezpoÊrednie nie mo˝e byç narysowane w obr´bie danej
strony lub dwu kolejnych stron. T´ ciàg∏oÊç zapewnia zastosowanie ∏àcznika
docelowego, który wyst´puje w parze z ∏àcznikiem êród∏owym.
• Przy pomocy tych ∏àczników mo˝na zrealizowaç p´tl´ (np. zap´tliç krok 18 z 0).
• Za pomocà ∏àczników mo˝na restartowaç sekwencj´ (np. zastosowaç po∏àczenie
kroku 10 z krokiem 1 lub kroku 8 z krokiem 2).
• Zastosowanie ∏àczników jest niezb´dne, gdy rozga∏´zienie programu wykracza
poza stron´ (np. po∏àczenie kroku 9 z krokiem 10).
___________________________________________________________________________
5/11
A
¸àczniki wyboru sekwencji i zamkni´cia wyboru sekwencji
• W przypadku wyboru sekwencji, bramki
i ∏àczniki docelowe muszà byç umieszczone na tej samej stronie.
Strona 1
• W przypadku zamkni´cia wyboru sekwencji, ∏àcznik êród∏owy musi byç
umieszczony na tej samej stronie co
krok docelowy.
Strona 2
• W przypadku, gdy zamkni´cie wyboru
sekwencji wyst´puje przed ∏àcznikiem
Strona 1
docelowym, to nale˝y zdefiniowaç tyle
samo ∏àczników êród∏owych ile jest
Strona 2
kroków przed zamkni´ciem wyboru
sekwencji.
___________________________________________________________________________
5/12
A
J´zyk Grafcet
5
¸àczniki jednoczesnego uaktywnienia kroków
• W przypadku jednoczesnego uaktywnienia kroków nale˝y wstawiç ∏àczniki
docelowe na tej samej stronie, co krok i
bramka.
Strona 2
Strona 3
• W przypadku jednoczesnego zamkni´cia, kroki i bramka zamkni´cia, muszà
znajdowaç si´ na tej samej stronie co
∏àcznik docelowy.
Kiedy kilka kroków dzia∏a na jednà
bramk´, ∏àcznik êród∏owy przyjmuje
numer pierwszego kroku od lewej strony
liczàc (patrzàc w gór´ w stosunku do
∏àcznika).
Strona 4
Strona 5
¸àczniki bezpoÊrednie
• ¸àczniki bezpoÊrednie ∏àczà krok
z bramkà albo bramk´ z krokiem.
Mogà byç poziome lub pionowe.
• ¸àcza bezpoÊrednie mogà:
∏àczniki innych
- przecinaç
rodzajów,
- ∏àczyç si´
(tworzyç w´z∏y)
z ∏àcznikami tego samego
rodzaju.
• ¸àcznik bezpoÊredni nie mo˝e byç
przecinany przez jednoczesne
uaktywnienie kroków oraz przez
zamkni´cie jednoczesnego
uaktywnienia.
___________________________________________________________________________
5/13
A
Komentarz
• Do ka˝dej komórki diagramu Grafcet mo˝na dopisaç komentarz.
Komentarz zaczyna si´ znakiem
(* i koƒczy *). Mo˝e on mieç
maksymalnie 64 znaki.
• Komentarz zajmuje obszar dwóch
kolejnych komórek i mo˝e mieç
szerokoÊç dwóch linii. Je˝eli
komentarz si´ nie mieÊci
w okienku, to nast´puje jego
obci´cie. Poczas drukowania
dokumentu komentarz jest
drukowany w ca∏oÊci.
• Komentarze umieszczane na
stronach diagramu Grafcet zapami´tywane sà w sterowniku jako
dane graficzne.
___________________________________________________________________________
5/14
A
J´zyk Grafcet
5.6
5
Makrodefinicje (makra)
Makro jest unikatowym zbiorem kroków i bramek. Makro charakteryzuje krok wejÊciowy
i krok wyjÊciowy.
5.6-1 Wprowadzenie
Makro stanowi graficznà reprezentacj´ sekwencji.
Makro odziela si´ od kroków przy pomocy dwóch
linii poziomych.
W stosunku do kroku wejÊciowego obowiàzujà te
same zasady co do innych kroków.
Do kroku wyjÊciowego nie mo˝na przypisywaç
˝adnych akcji.
W czasie wykonywania makra obowiàzujà zasady
opisane wczeÊniej.
Makro M1 uaktywnia si´ wraz z uaktywnieniem
kroku 1, a znajdujàca si´ za nim bramka jest
otwarta (warunek jest spe∏niony - prawda).
Zamkni´cie makra nast´puje, gdy uaktywnia si´
krok wyjÊciowy, a warunek otwarcia bramki M1 & gt; 2
jest prawdà.
Po zamkni´ciu makra nast´puje uaktywnienie
kroku 2.
___________________________________________________________________________
5/15
A
5.6-2 Charakterystyka
J´zyk Grafcet PL7 umo˝liwia zaprogramowanie 64 makrodefinicji (M0 do M63).
Rozwini´cie (treÊç) makrodefinicji zawierajàce jednà lub kilka sekwencji mo˝e byç
programowane na 8 stronach. Mo˝e ono sk∏adaç si´ maksymalnie z 250 kroków plus
krok wejÊciowy IN i wyjÊciowy OUT.
Makrodefinicja mo˝e zawieraç kilka innych makrodefinicji.
W ten sposób mo˝na budowaç makra do 64 poziomu.
Dzi´ki temu mo˝na zastosowaç bardziej szczegó∏owà analiz´ wykonywanych operacji.
Bardziej szczegó∏owa analiza
5.6-3 Kroki inicjujàce
Rozwini´cie makrodefinicji mo˝e
zawieraç kilka kroków inicjujàcych.
Kroki te uaktywniajà si´ po za∏àczeniu
zasilania lub programowo - podczas
inicjacji. Makro jest wtedy wyÊwietlane
jako aktywne.
___________________________________________________________________________
5/16
A
J´zyk Grafcet
5.7
5
Akcje przyporzàdkowane krokom
Ka˝demu krokowi przyporzàdkowywuje si´ akcje (operacje) zaprogramowane w j´zyku
Ladder, j´zyku instrukcji LIST lub j´zyku strukturalnym ST. Akcje te sà wykonywane
tylko wtedy, kiedy sprz´˝ony z nimi krok jest aktywny. PL7 posiada trzy rodzaje akcji:
• akcje na skutek uaktywnienia: akcje sà wykonywane w momencie, gdy nast´puje
uaktywnienie kroku,
• akcje na skutek dezaktywacji: akcje sà wykonywane w momencie dezaktywacji
kroku,
• akcje ciàg∏e: akcje wykonywane w sposób ciàg∏y przez ca∏y czas aktywnoÊci
sprz´˝onego z nimi kroku.
Akcje tych trzech rodzajów mo˝na stosowaç dla ka˝dego kroku.
Pojedyncza akcja sk∏ada si´ z kilku elementów programowych (sekwencje, wyra˝enia,
labelki).
Opisywanie akcji
Akcje te opisuje si´ w nast´pujàcyc sposób:
MAST - & lt; nazwa sekcji Grafcet & gt; - DIAGRAM (lub MAKROk) - STRONA n %Xi x
gdzie: x = P1 Uaktywnienie
= N1 Ciàg∏e wykonywanie akcji
= P0 Dezaktywacja
n = numer strony
i = numer kroku
Przyk∏ad: MAST - Malowanie - DIAGRAM - STRONA 0 %X1 P1
Akcja po uaktywnieniu kroku 1 strony 0 sekcji Malowanie
Zasady
• Wszystkie akcje sà zapami´tywane, co w konsekwencji powoduje, ˝e:
- akcja uruchamiana na czas aktywnoÊci kroku Xn musi byç skasowana (reset)
w momencie dezaktywacji kroku Xn lub w momencie uaktywnienia kroku Xn+1,
- akcja, której efekty wp∏ywajà na kilka kroków, przyjmuje wartoÊç 1 przy uaktywnieniu
kroku Xn i jest resetowana przy uaktywnieniu kroku Xn+m.
• Wszystkim akcjom mo˝na przypisywaç warunki logiczne (wykonywanie warunkowe).
• Akcje, które sà wykonywane z zastosowaniem zabezpieczeƒ (safety interlocks)
umieszcza si´ w przetwarzaniu koƒcowym (post-processing). Jest to przetwarzanie
wykonywane na koƒcu ka˝dego " przebiegu " programu (patrz rozdzia∏ 5.2 " Organizacja
zadania g∏ównego MASTER " ).
___________________________________________________________________________
5/17
A
Akcje wykonywane przy uaktywnianiu i dezaktywacji kroku
Te akcje wykonywane sà jednorazowo po wywo∏aniu. S∏u˝à do wywo∏ywania procedur,
zwi´kszania wartoÊci licznika, itd.
Przyk∏ady:
• Wywo∏anie procedury:
• Zwi´kszenie wartoÊci s∏owa %MW10 i skasowanie s∏ów %MW0 i %MW25:
Akcje wykonywane w sposób ciàg∏y
• Akcje warunkowe
Przyk∏ad:
Stan bitu %M10 zale˝y od wejÊcia %I2.5 lub bitu wewn´trznego %M9 i wejÊcia %I1.2.
Tak d∏ugo, jak d∏ugo krok 2 jest aktywny, a warunki sà spe∏nione, bit %M10 ma
wartoÊç 1. Stan bitu odczytany ostatnio zostaje zapami´tany, poniewa˝ sprz´˝one
z nim akcje nie sà ponownie wykonywane.
Stàd wynika koniecznoÊç skasowania bitu %M10 do 0, na przyk∏ad przy okazji
wykonania akcji powiàzanej z dezaktywacjà kroku.
___________________________________________________________________________
5/18
A
J´zyk Grafcet
5
• Akcje warunkowe - czasowe
Jest to szczególny przypadek, gdy rol´ warunku logicznego pe∏ni czas. Takie
rozwiàzanie mo˝na zastosowaç przez testowanie czasu aktywnoÊci kroku.
Przyk∏ad:
Bit %M12 jest kontrolowany tak d∏ugo, jak d∏ugo czas aktywnoÊci kroku 3 jest
mniejszy od 10 sekund (podstawa czasu: 100 ms).
• Te akcje mogà byç równie˝ wykonywane bezwarunkowo.
KolejnoÊç wykonywania akcji
W przyk∏adzie zamieszczonym poni˝ej, kolejnoÊç wykonywania akcji (w trakcie jednego
" przejÊcia " ) jest nast´pujàca:
Uaktywnienie kroku 51 powoduje uaktywnienie akcji w nast´pujàcym porzàdku:
1. akcje zwiàzane z dezaktywacjà kroku 50,
2. akcje zwiàzane z uaktywnieniem kroku 51,
3. ciàg∏e wykonywanie akcji zwiàzanej z krokiem 51.
50
Uaktywnienie %X50
Akcja ci⁄g◊a %X50
Dezaktywacja %X50
51
Uaktywnienie %X51
Akcja ci⁄g◊a %X51
Dezaktywacja %X51
Dezaktywacja kroku 51 powoduje przerwanie wykonywania akcji ciàg∏ej.
___________________________________________________________________________
5/19
A
5.8
Warunki przejÊcia bramki
• Ka˝dej bramce przypisuje si´ warunek zaprogramowany w j´zyku Ladder, j´zyku
instrukcji LIST lub j´zyku ST.
• Warunek przejÊcia bramki jest uwzgl´dniany tylko wtedy, kiedy bramka jest aktywna.
• Warunek stanowi labelka, lista instrukcji lub wyra˝enie j´zyka ST sk∏adajàce si´
z szeregu odczytów (testów) stanów bitów i s∏ów.
• Warunek przejÊcia, któremu nie przypisano ˝adnego programu jest zawsze
traktowany jako warunek typu fa∏sz.
Opisywanie warunków przejÊcia
Warunki przejÊcia opisuje si´ w nast´pujàcy sposób:
MAST- & lt; nazwa sekcji Grafcet & gt; -DIAGRAM (lub MAKROk) - STRONA n %X(i) -- & gt; % X(j)
gdzie: n = numer strony
i = numer kroku poprzedzajàcego
j = numer kroku nast´pnego
Przyk∏ad: MAST - Malowanie - DIAGRAM - STRONA 0 %X(0) -- & gt; %X(1)
Warunek przejÊcia powiàzany z krokiem 0 i 1 strony 0 sekcji Malowanie
diagramu.
W przypadku jednoczesnego uaktywniania lub dezaktywacji kroków wpisuje si´ adres
kroku w pierwszej kolumnie od lewej strony.
Regu∏y programowania w j´zyku Ladder
Warunek przejÊcia przez bramk´ programuje si´ w formie labelki sk∏adajàcej si´ co
najmniej ze strefy definiowania warunków (test zone) i strefy akcji (action zone).
Struktura labelki jest taka sama jak w przypadku labelki umieszczanej w modu∏ach
programowych.
Mo˝na stosowaç tylko nast´pujàce elementy:
• elementy graficzne warunków wykonania akcji: styki (%Mi, %I, %Q, %TMi.D, itd.),
bloki porównywania,
• elementy graficzne akcji: tylko sprz´˝enie (cewka) z warunkiem przejÊcia - pozosta∏e
nie majà w tym przypadku ˝adnego zastosowania.
___________________________________________________________________________
5/20
A
J´zyk Grafcet
5
Regu∏y programowania w j´zyku LIST
Warunek przejÊcia bramki programuje si´ w formie listy instrukcji zawierajàcej tylko
instrukcje definiowania warunków (testowania).
Lista instrukcji stosowana do zapisywania warunków przejÊcia ró˝ni si´ od listy
standardowej w nast´pujàcy sposób:
• struktura ogólna:
- brak etykiety (%L),
• lista instrukcji:
- brak instrukcji akcji (bitów obiektowych, s∏ów lub bloków funkcyjnych),
- brak skoków, wywo∏aƒ procedur.
Regu∏y programowania w j´zyku strukturalnym ST
Warunek przejÊcia bramki programuje si´ w formie wyra˝eƒ logicznych, arytmetycznych
lub ich kombinacji.
Wyra˝enia s∏u˝àce do zapisywania warunków przejÊcia ró˝nià si´ od zwyk∏ej linii j´zyka
ST w nast´pujàcy sposób:
• struktura ogólna:
- brak etykiety (%L),
- brak wyra˝eƒ akcji, wyra˝eƒ warunkowych oraz iteracyjnych,
• lista instrukcji:
- brak akcji w odniesieniu do bitów obiektowych,
- brak skoków, wywo∏aƒ procedur,
- brak transferu oraz instrukcji akcji w odniesieniu do bloków.
___________________________________________________________________________
5/21
A
Warunek przejÊcia wykorzystujàcy czas aktywnoÊci kroku
W pewnych aplikacjach akcje sà sterowane bez sprz´˝enia zwrotnego (koniec trasy,
czujnik, itp.). Czas trwania aktywnoÊci kroku mo˝na uwarunkowaç: j´zyk PL7 umo˝liwia
definiowanie czasu aktywnoÊci ka˝dego kroku.
Przyk∏ad:
Je˝eli u˝ytkownik pragnie, by krok 3 trwa∏ 15 sekund, to warunek przejÊcia pomi´dzy
krokiem 3 i 4 b´dzie wyglàda∏ nast´pujàco (np. w j´zyku strukturalnym ST):
___________________________________________________________________________
5/22
A
J´zyk Grafcet
5.9
5
Organizacja sekcji Grafcet
5.9-1 Wprowadzenie
Program zapisany w j´zyku Grafcet mo˝na
podzieliç na trzy kolejne sekcje:
• przetwarzanie wst´pne Prl,
• przetwarzanie sekwencyjne Chart,
• przetwarzanie koƒcowe Post.
Makrodefinicje sà wykonywane w takim
porzàdku, w jakim sà wczytywane w czasie
przetwarzania sekwencyjnego.
Sekcja j´zyka Grafcet umieszczana jest
w zadaniu g∏ównym MAST.
Sekcja jest wczytywana w nast´pujàcym porzàdku:
Przetwarzanie wst´pne
Sekcja Grafcet
Umo˝liwia przetwarzanie:
• inicjacjujàce w razie zaniku zasilania,
• przygotowujàce diagram Grafcet,
• wejÊç logicznych.
Przetwarzanie wst´pne
J´zyk Ladder,
j´zyk List
lub j´zyk ST
Przetwarzanie sekwencyjne:
S∏u˝y do przetwarzania struktury sekwencyjnej aplikacji i umo˝liwia przetwarzania
warunków przejÊcia oraz akcji powiàzanych bezpoÊrednio z krokami.
Przetwarzanie
sekwencyjne
Grafcet
Przetwarzanie koƒcowe
Przetwarzanie koƒcowe:
Umo˝liwia przetwarzanie:
J´zyk Ladder,
j´zyk List
lub j´zyk ST
• logicznych wyjÊç,
• monitorowanie i zabezpieczanie wyjÊç.
___________________________________________________________________________
5/23
A
5.9-2 Przetwarzanie wst´pne
T´ cz´Êç programuje si´ w j´zyku Ladder, j´zyku LIST lub ST i jest ona wykonywana
w ca∏oÊci od góry do do∏u.
Przetwarzanie wst´pne wykonywane jest przed przetwarzaniem sekwencyjnym i przetwarzaniem koƒcowym i s∏u˝y ono do przetwarzania wszystkich zdarzeƒ mogàcych
mieç wp∏yw na:
• zarzàdzaniem systemem w razie zaniku zasilania oraz podczas reinicjacji,
• kasowaniu lub wst´pnym zadawaniu parametrów diagramów Grafcet.
Stàd te˝ tylko w przypadku przetwarzania wst´pnego powy˝szych zdarzeƒ wykorzystane
zostanà bity sprz´˝one z krokami (nadanie wartoÊci 0 lub 1 bitom kroków %Xi lub %Xi.j
za poÊrednictwem instrukcji Set i Reset).
Przetwarzanie przygotowujàce diagram Grafcet
Czasami konieczne jest przygotowanie diagramu Grafcet, gdy ma nastàpiç zmiana
trybu pracy z pracy normalnej na tryb pracy specjalnej lub w razie wystàpienia jakiegoÊ
zdarzenia (przyk∏ad: b∏àd powodujàcy zak∏ócenie pracy).
Operacje te powodujà zak∏ócenie normalnej pracy programu, dlatego te˝ powinny byç
stosowane z du˝à ostro˝noÊcià. Przetwarzanie przygotowujàce mo˝e odnosiç si´ do
ca∏oÊci lub cz´Êci przetwarzania sekwencyjnego:
• za poÊrednictwem instrukcji SET i RESET,
• poprzez zresetowanie ca∏ego systemu (%S22) i nadanie krokom, przy nast´pnym
przejÊciu programu, wartoÊci 1.
Uwaga:
Po skasowaniu kroku do zera, akcje zwiàzane z dezaktywacjà kroku nie sà wykonywane.
___________________________________________________________________________
5/24
A
J´zyk Grafcet
5
5.9-3 Wykorzystanie bitów systemowych w przetwarzaniu wst´pnym
Poniewa˝ bity systemowe zwiàzane z diagramem Grafcet sà ponumerowane w porzàdku
wa˝noÊci (%S21 do %S24), jednoczesne nadanie im wartoÊci 1 podczas przetwarzania
wst´pnego powoduje, ˝e sà one przetwarzane jeden po drugim w kolejnoÊci rosnàcych
numerów (w jednym " przejÊciu " programu przetwarzany jest tylko jeden bit). Bity te sà
uwzgl´dniane na poczàtku przetwarzania sekwencyjnego.
Inicjacja diagramu Grafcet: %S21
Bit %S21 ma normalnie wartoÊç 0, nadanie mu wartoÊci 1 powoduje:
• dezaktywacj´ aktywnych kroków,
• uaktywnienie kroków inicjujàcych.
Nadanie wartoÊci 1
• Przez nadanie %S0 wartoÊci 1
• Za pomocà programu
• Za pomocà terminala (1)
Skasowanie do 0
• Przez system, na poczàtku
przetwarzania sekwencyjnego
• Za pomocà programu
• Za pomocà terminala
• Stosowanie
W przypadku nadawania wartoÊci za pomocà programu, %S21 musi mieç nadanà
w czasie przetwarzania wst´pnego wartoÊç 0 lub 1.
Skasowanie diagramu Grafcet do zera: %S22
Bit %S22 ma normalnie wartoÊç 0, nadanie mu wartoÊci 1 powoduje dezaktywacj´
wszystkich aktywnych kroków przetwarzania sekwencyjnego.
Nadanie wartoÊci 1
• Za pomocà programu
• Za pomocà terminala (1)
Skasowanie do 0
• Przez system, na koƒcu
przetwarzania koƒcowego.
(1) Z poziomu ekranu poprawiania Grafcet-u (debug screen) lub w tablicy animacji.
• Regu∏y
- temu bitowi nale˝y nadaç w przetwarzaniu wst´pnym wartoÊç 1,
- skasowanie %S22 do 0 przez system; stàd nie trzeba go kasowaç do 0 za pomocà
programu, czy terminala.
Aby, w danej sytuacji, mo˝liwe by∏o ponowne wystartowanie przetwarzania
sekwencyjnego, aplikacja musi zawieraç procedur´ inicjacji lub procedur´
przygotowawczà diagramu Grafcet.
___________________________________________________________________________
5/25
A
Zamra˝anie diagramu Grafcet: %S23
Bit %S23 ma normalnie wartoÊç 0, a zmiana wartoÊci na 1 powoduje zatrzymanie
wykonywania diagramu. Niezale˝nie od wartoÊci warunków przejÊcia nast´pujàcych
po aktywnych krokach stan diagramu si´ nie zmienia. Taki stan zamro˝enia trwa
dopóty, dopóki bit %S23 ma wartoÊç 1.
Nadanie wartoÊci 1
Nadanie wartoÊci 0
• Za pomocà programu
• Za pomocà programu
• Za pomocà terminala (1)
• Za pomocà terminala (1)
(1) Z poziomu ekranu poprawiania Grafcet-u (debug screen) lub w tablicy animacji.
• Regu∏y
- w przypadku wykorzystania programu, bitowi nadaje si´ wartoÊç 1 lub 0 przy
przetwarzaniu wst´pym,
- bit %S23 sprz´˝ony z bitami %S21 i %S22 umo˝liwia zamro˝enie przetwarzania
poczàtkowego z wartoÊciami inicjujàcymi lub ze stanem 0. Analogicznie, diagram
Grafcet mo˝e byç przy u˝yciu bitu %S23 wst´pnie przygotowany, po czym
zamro˝ony.
Przy uruchamianiu nowej aplikacji lub w przypadku utraty kontekstu, system inicjuje
zimny start. System nadaje bitowi %S21 wartoÊç 1 jeszcze przed przed uruchomieniem
przetwarzania wst´pnego tak, ˝e diagram jest przygotowany do wykonywania
z uwzgl´dnieniem kroków inicjujàcych. Je˝eli u˝ytkownik chce aby aplikacja by∏a po
zimnym starcie wykonywana w jakiÊ szczególny sposób, to mo˝e on tego dokonaç
wykorzystujàc wartoÊç bitu %S20, który ma stan 1 przez ca∏y czas trwania pierwszego
" przejÊcia " zadania g∏ównego MAST.
W przypadku zaniku zasilania bez utraty kontekstu aplikacji, system inicjuje goràcy
start rozpoczynajàc wykonywanie aplikacji od miejsca, w którym wystàpi∏ zanik. Je˝eli
u˝ytkownik chce aby aplikacja by∏a po goràcym starcie wykonywana w jakiÊ szczególny
sposób, to mo˝e on tego dokonaç wykorzystujàc, przy przetwarzaniu przygotowujàcym,
wartoÊç bitu %S1 i wywo∏ujàc odpowiedni program.
___________________________________________________________________________
5/26
A
J´zyk Grafcet
5
Kasowanie makrodefinicji do 0: %S24
Bit %S24 ma normalnie stan 0, przestawienie go na 1 powoduje skasowanie do zera
makr wskazanych w tablicy mieszczàcej 4 s∏owa systemowe (%SW22 do %SW25).
Nadanie wartoÊci 1
• Za pomocà programu
Skasowanie do 0
• Przez system, na poczàtku
przetwarzania sekwencyjnego
• Regu∏y
- wartoÊç tego bitu winna byç zmieniana na 1 tylko podczas przetwarzania
wst´pnego,
- kasowanie %S24 do 0 realizuje system; stàd nie ma potrzeby kasowania za
pomocà programu lub terminala.
Tablica s∏ów %SW22 do %SW25
Ka˝demu bitowi z tej tablicy przyporzàdkowana jest makrodefinicja.
Tablica jest wykorzystywana w nast´pujàcy sposób:
• wczytywanie tablicy s∏ów %SW22 do %SW25 (wartoÊç 1 nadaje si´ bitom
odpowiadajàcym makrodefinicjom, które nie majà byç kasowane do 0),
• odblokowanie, za pomocà bitu %S24.
Przyk∏ad: ! IF %I4.2 AND %T3.D THEN
%SW22:=16#AF8F;
%SW23:=16#F3FF;
%SW24:=16#FFEF;
%SW25:=16#FFFF;
SET %S24
JeÊli %S21 = 1, to te cztery s∏owa sà inicjowane z wartoÊcià 16#FFFF.
___________________________________________________________________________
5/27
A
5.9-4 Przetwarzanie sekwencyjne
Ta cz´Êç programu stosowana jest do programowania sekwencyjnej struktury programu.
Przetwarzanie takie sk∏ada si´ z diagramu g∏ównego zapisanego na 8 stronach.
W diagramie g∏ównym mo˝na zamieÊciç kilka autonomicznych diagramów Grafcet,
które mogà byç programowane i wykonywane jednoczeÊnie.
Przebieg procesu
Diagram Grafcet powinien byç programowany w nast´pujàcy sposób:
Faza 1:
1. Oszacowanie warunków aktywnych bramek.
2. ˚àdanie dezaktywacji, po∏àczonych z bramkà, kroków poprzedzajàcych.
3. ˚àdanie uaktywnienia, po∏àczonych z bramkà, kroków nast´pnych.
Faza 2:
Zaktualizowanie stanu diagramu z uwzgl´dnieniem otwartych bramek:
1. Dezaktywacja kroków poprzedzajàcych otwarte bramki.
2. Uaktywnienie kroków nast´pujàcych po otwartych bramkach.
3. Zablokowanie otwartych bramek.
4. Odblokowanie bramek nast´pujàcych po nowo uaktywnionych krokach.
System aktualizuje dwie dedykowane tablice zwierajàce informacje o aktywnoÊci
kroków i odblokowaniu bramek:
• tablica aktywnoÊci kroków przechowuje aktualne (dla bie˝àcego " przejÊcia "
programu) informacje o krokach aktywnych, krokach, które majà byç uaktywnione
oraz o krokach, które majà byç zdezaktywowane,
• tablica odblokowania bramek przechowuje aktualne (dla bie˝àcego " przejÊcia "
programu) informacje o bramkach nast´pujàcych po krokach uwzgl´dnionych
w poprzedniej tablicy,
Faza 3:
Akcje przyporzàdkowane aktywnym krokom sà wykonywane w nast´pujàcy sposób:
1. Akcje zwiàzane z dezaktywacjà kroków, które sà dezaktywowane.
2. Akcje zwiàzane z uaktywnianiem kroków, które sà uaktywaniane.
3. Akcje zwiàzane z aktywnymi krokami, wykonywane w sposób ciàg∏y.
___________________________________________________________________________
5/28
A
J´zyk Grafcet
5
Przekroczenie wartoÊci dopuszczalnych
Liczba elementów w tablicy aktywnoÊci kroków i tablicy odblokowania bramek jest
konfigurowalna. Przekroczenie pojemnoÊci tych tablic powoduje:
• zatrzymanie pracy sterownika (przerwanie wykonywania aplikacji),
• zmian´ stanu bitu %S26 na 1 (przekroczenie pojemnoÊci jednej z tablic),
• zapalenie si´ kontrolki ERR na sterowniku.
System daje do dyspozycji u˝ytkownikowi dwa s∏owa systemowe:
• %SW20 : s∏owo zawierajàce (dla bie˝àcego " przejÊcia " ) liczb´ kroków aktywnych,
do uaktywnienia i dezaktywacji,
• %SW21 : s∏owo zawierajàce (dla bie˝àcego " przejÊcia " ) liczb´ bramek odblokowanych, do odblokowania i do zablokowania,
W przypadku wystàpienia b∏´du blokujàcego prac´ sterownika s∏owa systemowe
%SW125 do %SW127 pozwalajà na okreÊlenie natury tego b∏´du.
• %SW125 = DEF7 (hex)
• %SW125 = DEFE (hex)
%SW125
Przepe∏nienie tablicy (kroków/bramek).
Wykonywanie niew∏aÊciwego diagramu.
(problem z odwo∏aniem do nieistniejàcego obiektu
docelowego).
%SW126
%SW127
DEF7
0
=0
Przepe∏nienie tablicy kroków
DEF7
=0
0
Przepe∏nienie tablicy bramek
DEFE
Nr kroku
Nr makra (1)
Niew∏aÊciwe wyk. diagramu
(1) lub 64 dla diagramu g∏ównego.
___________________________________________________________________________
5/29
A
5.9-5 Przetwarzanie koƒcowe
Przetwarzanie koƒcowe programuje si´ w j´zyku Ladder, j´zyku instrukcji LIST lub
j´zyku strukturalnym ST. Jest to przetwarzanie wykonywane jako ostatnie, przed
zaktualizowaniem stanów wyjÊç, mo˝e byç wykorzystane do programowania logiki
wyjÊç.
Akcje zwiàzane z diagramem Grafcet
Przetwarzanie koƒcowe umo˝liwia wykonanie akcji wygenerowanych w czasie
przetwarzania sekwencyjnego poprzez zintegrowanie trybu pracy i zatrzymania oraz
uwzgl´dnienie zabezpieczeƒ (safety interlocks) przypisanych do akcji podczas obliczania
stanów wyjÊç. To przetwarzanie mo˝e byç równie˝ wykorzystane do przetworzenia
wyjÊç kilkukrotnie uaktywnianych podczas przetwarzania sekwencyjnego.
Jako regu∏´ nale˝y traktowaç programowanie, w przetwarzaniu koƒcowym, akcji
majàcych bezpoÊredni wp∏yw na sterowany proces.
Przyk∏ad:
• %I2.4
: zabezpieczenie wyjÊcia %Q4.1.
• %M26
: bit wewn´trzny, którego stan jest odbiciem logiki wejÊç kontrolujàcej tryby
pracy i zatrzymania sterownika.
• %I1.0
: przycisk.
WyjÊcie %Q4.1 jest uaktywniane w przetwarzaniu sekwencyjnym przez kroki 5, 8 i 59.
___________________________________________________________________________
5/30
A
J´zyk Grafcet
5
Akcje niezale˝ne w stosunku do diagramu Grafcet
Przetwarzanie koƒcowe jest równie˝ wykorzystywane do programowania wyjÊç, których
stany majà byç niezale˝ne od przetwarzania sekwencyjnego.
Monitorowanie wykonywania diagramu Grafcet
W niektórych okolicznoÊciach mo˝e zaistnieç koniecznoÊç monitorowania dzia∏ania
diagramu. Dokonuje si´ tego poprzez odczytywanie czasu aktywnoÊci pewnych
kroków.
Odczytany czas jest porównywany z wartoÊcià zdefiniowanà przez u˝ytkownika
(z wartoÊcià maksymalnà lub minimalnà). Sposób reakcji na przekroczenie zdanej
wartoÊci zale˝y od u˝ytkownika (sygnalizacja b∏´du, uruchomienie specjalnej procedury, wygenerowanie komunikatu).
Przyk∏ad :
! IF (%X2.T & gt; 100 AND %X2) THEN
SET %Q4.0 ;
END_IF ;
___________________________________________________________________________
5/31
A
___________________________________________________________________________
5/32
A
Bloki Rozdzia∏ 6
typu DFB 6
6 Bloki typu DFB
6.1
Prezentacja bloków typu DFB
6.1-1 WiadomoÊci ogólne
Dzi´ki mo˝liwoÊciom j´zyka PL7 u˝ytkownik mo˝e tworzyç w∏asne bloki funkcyjne,
dostosowane do wymagaƒ jakie stawia przed nim konkretna aplikacja.
Utworzone przez u˝ytkownika bloki mogà byç umieszczane w strukturze aplikacji.
Mogà byç stosowane wsz´dzie, gdzie sekwencja programu jest kilkukrotnie powtarzana
lub w razie koniecznoÊci zamro˝enia standardowego programu (np. algorytm sterujàcy
silnikiem uwzgl´dniajàcy dzia∏anie zabezpieczeƒ miejscowych).
Utworzone przez jednego u˝ytkownika bloki mogà byç wykorzystywane przez innych
u˝ytkowników, mogà byç stosowane wielokrotnie w tej samej aplikacji albo w innych
aplikacjach (funkcja export/import).
Zastosowanie bloków w∏asnych u˝ytkownika w aplikacji powoduje:
• uproszczenie tworzenia i zapisu programu,
• zwi´kszenie przejrzystoÊci programu,
• uproszczenie poprawiania programu (wszystkie zmienne " obrabiane " przez blok
DFB mogà byç ∏atwo zidentyfikowane),
• redukcj´ rozmiarów generowanych kodów (kod odpowiadajàcy blokowi DFB jest
zapisywany do pami´ci tylko jeden raz, bez wzgl´du na to ile razy blok DFB jest
wywo∏ywany w programie).
W porównaniu z procedurami, bloki w∏asne u˝ytkownika pozwalajà na:
• u∏atwienie wprowadzania przetwarzanych parametrów,
• wykorzystanie, niezale˝nych od aplikacji, wewn´trznych zmiennych bloków DFB,
• niezale˝ne testowanie aplikacji.
W j´zyku Ladder dla uproszczenia programowania i poprawiania (debugging) mo˝na
wyÊwietlaç bloki typu DFB w formie graficznej.
W dodatku, bloki w∏asne u˝ytkownika mogà wykorzystywaç pozosta∏e dane.
Bloki w∏asne u˝ytkownika (DFB) tworzy si´ przy u˝yciu oprogramowania PL7 Pro.
Mogà one byç stosowane w sterownikach TSX/PCX/PMX 57 pracujàcych z oprogramowaniem PL7 Pro lub PL7 Junior.
Bloki typu DFB mo˝na programowaç przy pomocy j´zyka ST, a stosowaç w j´zykach
Ladder (LD), ST oraz LIST.
___________________________________________________________________________
6/1
A
A
6.1-2 Konfigurowanie bloku typu DFB
Bloki DFB konfiguruje si´ w trzech etapach:
1
tworzenie modelu DFB (typ bloku DFB),
2
tworzenie obrazu tego bloku, zwanego blokiem zast´pczym (instance), za ka˝dym
razem, gdy jest on u˝yty w aplikacji
3
zastosowanie bloku zast´pczego w programie PL7.
Tworzenie modelu bloku DFB
Model bloku sk∏ada si´ z:
• nazwy
• parametrów:
- wejÊç
- wyjÊç
- I/O
• zmiennych:
- ogólnych (public variables)
- w∏asnych (private variables)
• kodu j´zyka ST (Structured Text)
• komentarza
• pliku opisowego.
Te informacje muszà byç zdefiniowane
w fazie tworzenia modelu bloku. Model
bloku tworzy si´ przy pomocy edytora
bloków DFB.
Nazwa modelu bloku
WejÊcia
WyjÊcia
I/O
Zmienne ogólne
Zmienne w∏asne
Kod j´zka ST
Tworzenie bloku zast´pczego
Na bazie raz utworzonego modelu bloku u˝ytkownik definiuje blok zast´pczy, czy to
korzystajàc z edytora zmiennych, czy te˝ edytora programu (przez wywo∏anie funkcji).
Zastosowanie bloków w programie
Zdefiniowany blok zast´pczy mo˝e byç potem wykorzystywany tak samo jak standardowe bloki funkcyjne j´zyka Ladder lub jako funkcja podstawowa j´zyka ST lub
j´zyka LIST. Bloki mogà byç wykorzystywane w ró˝nych zadaniach (z wyjàtkiem zadaƒ
wyzwalanych zdarzeniami) i sekcjach aplikacji.
Przyk∏ad bloku DFB: Zawor_C1, Wielkosc_C1, Zegar_C1
___________________________________________________________________________
6/2
A
Bloki typu DFB
6.2
6
Projektowanie bloku DFB
6.2-1 Tworzenie modelu bloku
Modele bloków DFB tworzy si´ w katalogu
DFB Types programu Application Browser
(Przeglàdanie aplikacji).
Ka˝demu blokowi DFB nadaje si´ nazw´,
która mo˝e sk∏adaç si´ maksymalnie z 16
znaków (1).
6.2-2 Opis parametrów i zmiennych
Charakterystyka ogólna
Parametry i zmienne stanowià wewn´trzne dane bloków DFB i majà charakter czysto
symboliczny (nie majà ˝adnego adresu). Podczas tworzenia modelu w∏asnego bloku
u˝ytkownika, dla ka˝dego zastosowanego parametru, czy zmiennej definiuje si´:
• nazw´ sk∏adajàcà si´ maksymalnie z 8 znaków (1),
• typ obiektu (patrz tabela poni˝ej),
• komentarz (opcjonalnie) o maksymalnie 80 znakach,
• wartoÊç poczàtkowà (z wyjàtkiem parametrów I/O).
Dozwolone typy obiektów
BOOL
EBOOL
REAL
WORD
DWORD
Logiczny
Logiczny rozszerzony (zbocza)
Rzeczywisty
Liczba ca∏kowita 16-bit.
Liczba calkowita 32-bit.
AR_X
AR_R
AR_W
AR_D
STRING
Tablica bitów
Tablica rzeczywista
Tablica 16-bit.
Tablica 32-bit.
¸aƒcuch znaków
Uwaga:
• W przypadku parametrów i zmiennych typu EBOOL mo˝liwe jest wykonywanie instrukcji
w reakcji na wystàpnienie zbocza opadajàcego, czy narastajàcego tych parametrów i zmiennych (przyk∏ad obiektów typu PL7 EBOOL: %Mi,%Ixy.i,%Qxy.i). Je˝eli zbocza sygna∏ów nie
majà byç wykorzystywane, to nale˝y u˝yç obiektów typu BOOL (przyk∏ad obiektu PL7 BOOL:
%MWi:Xj), które pozbawione sà tej cechy, a zajmujà mniej pami´ci.
• Je˝eli obiekt typu EBOOL jest powiàzany z parametrem I/O, to w bloku DFB musi byç
zadeklarowane u˝ycie obiektów typu EBOOL.
• Tablice: musi byç zdefiniowana d∏ugoÊç tablicy dla parametrów wyjÊç oraz zmiennych ogólnych
i w∏asnych ale nie ma potrzeby definiowania d∏ugoÊci dla wejÊç i parametrów I/O.
• WartoÊci poczàtkowe (inicjacyjne) definiuje si´ dla wejÊç (o ile nie sà to tablice), wyjÊç i
zmiennych ogólnych oraz w∏asnych.
(1) Dopuszcza si´ stosowanie liter bez akcentów, cyfr oraz znaku " _ " . Pierwszy znak
musi byç literà. Nie wolno stosowaç s∏ów kluczowych (kodów) oraz symboli.
___________________________________________________________________________
6/3
A
A
Parametry:
• WejÊç: (max 15 (1)) dane przesy∏ane
przez program aplikacji do bloku DFB.
Te parametry dost´pne sà tylko do
odczytu i nie mogà byç modyfikowane
w bloku DFB.
• WyjÊç: (max 15 (2)) dane generowane
przez blok DFB i zwracane do programu
aplikacji.
• I/O: (max 15 (1) i (2)) parametry wejÊciowe, które mogà byç modyfikowane
w bloku DFB.
Sterowanie
DWORD
s∏owo podw.
WORD
Przysp.
Ró˝nica
WORD (s∏owo)
Pr´dkoÊç
BOOL
B∏àd
BOOL
Przyzwolenie
WORD
Akcje
Przyk∏ad bloku z:
3 wejÊciami, 2 wyjÊciami, 1 I/O
(1) gdzie Liczba WejÊç + Liczba I/O & lt; 15
(2) gdzie Liczba WyjÊç + Liczba I/O & lt; 15
Uwaga: Ka˝dy blok typu DFB musi mieç co najmniej jedno wejÊcie logiczne.
Zmienne
• Zmiene ogólne: (max 100) sà to zmienne wewn´trzne wykorzystywane podczas
przetwarzania. Sà one dost´pne dla u˝ytkownika z poziomu trybu regulacji (adjust
mode) lub za poÊrednictwem programu, poza blokiem DFB (jako zmienne ogólne
bloku zast´pczego DFB, patrz rozdzia∏ 6.4-4).
Dodatkowo, jest mo˝liwoÊç okreÊlania atrybutów (tylko do odczytu read-only lub
praw do odczytu i zapisu read/write) oraz autoryzacji zapisywania zmiennych
bie˝àcych jako wartoÊci poczàtkowych (patrz rozdzia∏ 6.4-5).
• Zmienne w∏asne: (max 100) zmienne wewn´trzne bloku funkcyjnego. Zmienne te sà
obliczane i wykorzystywane wewn´trz bloku DFB, a nie sà dost´pne poza nim. S∏u˝à
one do programowania bloku ale le˝à poza sferà zainteresowania u˝ytkownika
takiego bloku (np. wartoÊç poÊrednia wymieniana pomi´dzy jednym wyra˝eniem
a drugim, wynik obliczeƒ poÊrednich).
Uwaga: Zmienne ogólne lub parametry bloku w∏asnego u˝ytkownika DFB mogà byç modyfikowane
tylko wtedy, kiedy nie jest on u˝ywany przez aplikacj´ i nie jest tworzony blok zast´pczy.
___________________________________________________________________________
6/4
A
Bloki typu DFB
6
6.2-3 Kod modelu bloku
Kod definiuje jakie operacje majà byç
wykonane w bloku z uwzgl´dnieniem
zadeklarowanych parametrów.
Kod DFB programuje si´ w j´zyku ST
(Structured Text).
Kod realizuje si´ w pojedynczym wyra˝eniu j´zyka ST o dowolnej d∏ugoÊci.
Dopuszczalne jest stosowanie niemal
wszystkich instrukcji j´zykowych i funkcji
z∏o˝onych, z wyjàtkiem:
• wywo∏ywania standardowych bloków
funkcyjnych
• wywo∏ywania innych bloków DFB
• skoku (JUMP)
• wywo∏ywania procedury
• instrukcji HALT (zatrzymanie)
• instrukcji wykorzystujàcych zmienne
modu∏u I/O (np. READ_STS, SMOVE,...).
CHR_200:=CHR_100;
CHR_114:=CHR_104;
CHR_116:=CHR_106;
RESET RESTART;
(* Zwiekszenie CHR_100 80 razy*)
FOR CHR_102:=1 TO 80 DO
INC CHR_100;
WHILE((CHR_104CHR_114) & lt; 100)DO
IF(CHR_104 & gt; 400) THEN
EXIT;
END_IF;
INC CHR_104;
REPEAT
IF(CHR_106 & gt; 300) THEN
EXIT;
END_IF;
INC CHR_106;
UNTIL ((CHR_100CHR_116) & gt; 100)
END_REPEAT;
END_WHILE;
(* Loop CHR_106)
IF (CHR_106=CHR_116)
THEN EXIT;
ELSE
CHR_114:=CHR_104;
CHR_116:=CHR_106;
END_IF;
INC CHR_200;
END_FOR;
W kodzie DFB wykorzysuje si´ parametry
bloku zdefiniowane przez u˝ytkownika.
Kod DFB nie mo˝e wykorzystywaç obiektów I/O (%I,%Q...) oraz obiektów ogólnych
(globalnych) aplikacji (%MW,%KW...) z wyjàtkiem bitów oraz s∏ów systemowych %S
i %SW.
Niektóre z funkcji zaprojektowano z myÊlà o w∏asnych blokach funkcyjnych u˝ytkownika:
• FTON, FTOF, FTP i FPULSOR - funkcje opóêniajàce, które mogà byç u˝yte zamiast
bloków funkcyjnych typu zegar (timer),
• LW, HW i COCATW - instrukcje, które mogà byç wykorzystane do obs∏ugi s∏ów oraz
s∏ów podwójnej precyzji,
• LENGTH_ARW, LENGTH_ARD i LENGTH_ARR - instrukcje, które mogà byç
wykorzystane do obliczania d∏ugoÊci tablic.
Uwaga: Nie mo˝na stosowaç etykiet.
___________________________________________________________________________
6/5
A
A
6.2-4 Zatwierdzanie modelu bloku DFB
Podczas zatwierdzania edytor bloków DFB sprawdza poprawnoÊç sk∏adni kodu
i dopasowanie do zmiennych wejÊciowych. W przypadku wychwycenia b∏´dów, pierwszy
z nich wyÊwietlany jest w inwersji.
Uwaga: je˝eli u˝ytkownik chce wyjÊç z projektowania bloku bez jego zatwierdzenia, to
nale˝y wpierw wyeksportowaç blok (nastàpi jego zapisanie) i skasowaç kod przed
porzuceniem projektowania.
6.2-5 W∏aÊciwoÊci modelu bloku DFB
Za poÊrednictwem okna dialogowego edytora bloków DFB u˝ytkownik ma dost´p do
nast´pujàcych w∏aÊciwoÊci bloku:
• karta " informacyjna " (Information), w której zarzàdza si´:
- iloÊcià (rozmiarem) danych (Data size),
- liczbà utworzonych bloków zast´pczych (Number of instances),
- identyfikacjà ID aplikacji (zapewnienie, ˝e model bloku DFB jest unikatowy),
- liczbà elementów: parametrów i zmiennych (Number of elements),
• karta " ogólna " (General), która zawiera :
- wersj´: wartoÊç jest automatycznie zwi´kszana, gdy modyfikowany jest kod,
parametry lub zmienne bloku DFB (Version),
- dat´ ostaniej modyfikacji (Last Modification),
- 2 rodzaje zabezpieczeƒ: zabezpieczenie przed mo˝liwoÊcià modyfikacji bloku
(udost´pnienie bloku tylko do odczytu) lub ochrona has∏em przed dost´pem do
kodu modelu bloku i jego zmiennych w∏asnych (Protection).
- komentarz, który mo˝e sk∏adaç si´ maksymalnie ze 128 znaków; domyÊlnie,
komentarz zawiera dat´ utworzenia oraz twórc´ modelu bloku DFB (Comment).
___________________________________________________________________________
6/6
A
Bloki typu DFB
6
6.2-6 Plik opisowy
Plik opisowy b´dàcy polem ogólnie dost´pnym, s∏u˝àcym do opisywania modelu
bloku DFB, przy czym mo˝e on zawieraç maksymalnie 32 000 znaków.
6.2-7 Import/export modelu bloku
Modele bloków utworzone w danej aplikacji mogà byç wykorzystywane w innej
aplikacji. Jest to mo˝liwe dzi´ki funkcjom Export oraz Import.
Exportu mo˝na dokonywaç w dwóch formatach:
• êród∏owym: ten format mo˝e byç poddawany edycji,
• binarnym: ten format nie mo˝e byç edytowany. Zaimportowany w tym formacie blok
DFB mo˝e byç odczytywany lub nawet modyfikowany, w zale˝noÊci od poziomu
zastosowanego zabezpieczenia.
Wykorzystujàc te pliki binarne i êród∏owe u˝ytkownik mo˝e tworzyç w∏asne biblioteki.
Uwaga:
Bez wzgl´du na to, ˝e sekcja jest przeniesiona (import) do aplikacji, modele bloków w∏asnych
u˝ytkownika DFB wykorzystanych w tej sekcji te˝ muszà zostaç przeniesione (import).
___________________________________________________________________________
6/7
A
A
6.3
Tworzenie bloków zast´pczych
6.3-1 Zasady ogólne
Po utworzeniu modelu bloku (lub zaimportowaniu), przed jego wykorzystaniem, nale˝y
wygenerowaç blok zast´pczy dla danego modelu.
Ka˝demu blokowi zast´pczemu u˝ytkownik przypisuje nazw´, o maksymalnie
32 znakach, która umo˝liwia jego adresowanie.
Dla danego modelu bloku DFB mo˝na utworzyç dowolnà liczb´ bloków zast´pczych
(liczba ta jest ograniczona tylko pojemnoÊcià pami´ci sterownika).
Dla ka˝dego bloku zast´pczego mo˝na dokonywaç modyfikacji zarówno wartoÊci
poczàtkowych (inicjujàcych) jak i zmiennych ogólnych.
Operacji tych dokonuje si´ w edytorze zmiennych (dla bloku zast´pczego) lub
w edytorze programu, po wywo∏aniu funkcji. Wszystkie bloki zast´pcze sà dost´pne za
poÊrednictwem biblioteki funkcji (function library).
Blok zast´pczy stanowi kopi´ modelu DFB:
• wykorzystuje kod modelu DFB (kod nie
jest kopiowany),
• tworzy w∏asny obszar danych dla tego
bloku zast´pczego, który jest kopià
parametrów i zmiennych modelu DFB.
Obszar ten jest usytuowany w strefie
danych aplikacji.
Monitor_pieca
DFB Sterowanie
DWORD
Ró˝nica
WORD
Przysp.
WORD
Pr´dkoÊç
BOOL
B∏àd
BOOL
Przyzwolenie
WORD
Akcje
Przyk∏ad bloku zast´pczego
" Monitor_pieca " na bazie
modelu bloku DFB o nazwie
Sterowanie
(1) Znaki jakich mo˝na u˝ywaç sà takie same jak w przypadku symboli (patrz rozdzia∏
1.2-9)
___________________________________________________________________________
6/8
A
Bloki typu DFB
6.4
6
Stosowanie bloków DFB
6.4-1 Ogólne zasady programowania
Bloki zast´pcze DFB mogà byç programowane we wszystkich j´zykach (Ladder,
Structured Text i Instruction List), we wszystkich cz´Êciach aplikacji: sekcjach,
procedurach, module Grafcet (z wyjàtkiem zadaƒ wyzwalanych zdarzeniami).
Bez wzgl´du na j´zyk programowania obowiàzujà nast´pujàce regu∏y:
• Muszà byç zdefiniowane wszystkie, b´dàce tablicami, parametry wejÊç oraz I/O.
• Parametry nie pod∏àczonych wejÊç zachowujà wartoÊci z poprzedniego wywo∏ania
lub wartoÊci inicjujàce (poczàtkowe) je˝eli wejÊcie tego bloku podczas poprzednich
wywo∏aƒ nie by∏o nigdy pod∏àczone lub zdefiniowane.
• Wszystkie obiekty przypisane do parametrów wejÊç, wyjÊç oraz I/O muszà byç tego
samego typu jak zosta∏y zdefiniowane podczas tworzenia modelu bloku (np. jeÊli
parametr wejÊciowy nazwany Predkosc jest typu s∏owo, czyli WORD, to nie mo˝na
mu przypisaç s∏ów podwójnej precyzji %MDi, czy %KDi).
Jedynym wyjàtkiem sà obiekty typu BOOL i EBOOL dla parametrów wejÊç i wyjÊç (nie
dotyczy parametrów I/O), które mo˝na " mieszaç " : np. parametr wejÊciowy
" Przyzwolenie " mo˝e byç zdefiniowany jako typu BOOL i zostaç przypisany do bitu
%Mi typu EBOOL. Wewn´trzny kod modelu bloku b´dzie mia∏ w∏aÊciwoÊci obiektu
typu BOOL i nie b´dzie móg∏ reagowaç na zbocza sygna∏ów.
W tabeli poni˝ej zestawiono wszystkie, dopuszczalne kombinacje:
Parametr
Typ
Przypisanie parametru
Przypisanie
WejÊcia
Logiczny
Pod∏àczenie (1)
opcjonalnie (2)
Cyfrowy
Obiekt lub wyra˝enie
opcjonalnie
Tablica
Obiekt
koniecznie
I/O
Obiekt
koniecznie
Cyfrowy
Obiekt
koniecznie
Tablica
Outputs
Logiczny
Obiekt
koniecznie
Logiczny
Pod∏àczenie (1)
opcjonalnie
Cyfrowy
Obiekt
opcjonalnie
Tablica
Obiekt
opcjonalnie
(1) Pod∏àczenie do obiektu j´zyka Ladder, ST lub obiektu logicznego.
(2) W j´zyku Ladder wszystkie bloki DFB muszà mieç co najmniej jedno pod∏àczone (binarnie)
wejÊcie logiczne.
___________________________________________________________________________
6/9
A
A
6.4-2 Programowanie w j´zyku Ladder
Istniejà dwa sposoby wywo∏ywania bloku typu DFB:
• wywo∏anie tekstowe w bloku operacyjnym. Sk∏adnia i ograniczenia odnoÊnie
parametrów sà takie same jak dla strukturalnego j´zyka tekstowego ST (patrz:
kolejny rozdzia∏)
• wywo∏anie graficzne (patrz przyk∏ad poni˝ej).
Graficzne bloki DFB majà wejÊcia/wyjÊcia (I/O) bezpoÊrednio przypisywane obiektom
lub wyra˝eniom. Te obiekty i wyra˝enia zajmujà jednà komórk´ w labelce.
Dwa bloki DFB po∏àczone ze sobà szeregowo muszà byç oddzielone co najmniej
dwiema kolumnami.
Licz_sruby
Licz_elem
Nazwa bloku DFB
Nazwa modelu bloku
Parametr wchodzàcy na pierwsze wejÊcie
Parametry wejÊciowe (nazwa i typ)
Parametry wyjÊciowe (nazwa i typ)
Parametry I/O (nazwa i typ)
Komentarz:
• Blok DFB musi mieç pod∏àczone co najmniej jedno wejÊcie logiczne.
• Cyfrowych wejÊç, wyjÊç oraz wejÊç/wyjÊç (I/O) nie pod∏àcza si´. Obiekt umieszczony
w komórce sàsiadujàcej z pinem (wejÊcie, wyjÊcie, I/O) bloku zostaje do niego
przypisany.
___________________________________________________________________________
6/10
A
Bloki typu DFB
6
6.4-3 Programowanie w j´zyku ST i LIST
Wywo∏anie bloku DFB jest traktowane jak zwyk∏a akcja, którà mo˝na umieszczaç
w wyra˝eniu, czy sekwencji tak jak ka˝dà innà akcj´.
Sk∏adnia dla j´zyka strukturalnego ST
DFB_Nazwa (I1,...,In,IQ1,...,IQn,Q1,...,Qn)
Przyk∏ad: Licz_nakretki (%I2.0,%MD10,%I2.1,%Q1.0);
Sk∏adnia dla j´zyka instrukcji LIST
[DFB_Nazwa (I1,...,In,IQ1,...,IQ,Q1,...,Qn)]
Przyk∏ad : Licz_nakretki (%I2.0,%MD10,%I2.1,%Q1.0);
gdzie:
I1, ..., In : wyra˝enia (1), obiekty bezpoÊrednie lub wartoÊci traktowane jako parametry
efektywne dla parametrów wejÊciowych,
IQ1, ..., IQn : parametry efektywne odpowiadajàce wejÊciom/wyjÊciom I/O; sà to
zawsze obiekty j´zykowe do zapisu i odczytu,
Q1, ..., Qn : parametry efektywne odpowiadajàce wyjÊciom; sà to zawsze obiekty
j´zykowe do zapisu i odczytu,
Wprowadzanie tych parametrów odbywa si´ w j´zykach ST oraz LIST przy pomocy
okna dialogowego.
(1) z wyjàtkiem obiektów typu BOOL/EBOOL.
___________________________________________________________________________
6/11
A
A
6.4-4 Dost´p do zmiennych
W programie, poza obszarem bloku funkcyjnego dost´pne (jako obiekty) sà tylko
parametry wyjÊciowe i zmienne ogólne. Sk∏adnia jest nast´pujàca:
DFB_nazwa.parametr_nazwa
gdzie: DFB_nazwa nazwà nadanà blokowi zast´pczemu DFB (max 32 znaki),
a parametr_nazwa jest nazwà nadanà parametrowi wyjÊciowemu lub zmiennej ogólnej
(max 8 znaków).
Przyk∏ad:
Sterowanie.Roznica dla wyjÊcia Roznica bloku zast´pczego nazwanego Sterowanie.
6.4-5 Zapisywanie i odczytywanie z pami´ci zmiennych ogólnych
Zmienne ogólne po zmodyfikowaniu w programie lub podczas regulacji (adjustment)
mogà byç zapisywane w miejsce wartoÊci inicjujàcych (zdefiniowanych w bloku
zast´pczym) poprzez nadanie bitowi systemowemu %S94 wartoÊci 1. Taka podmiana
jest mo˝liwa tylko, gdy u˝ytkownik ma autoryzacj´ na poziomie ka˝dej zmiennej
modelu DFB.
WartoÊci zapisane tym sposobem sà ponownie wczytywane, gdy bit systemowy %S95
przyjmuje wartoÊç 1 lub w przypadku reinicjacji sterownika.
6.4-6 Wykonywanie bloków DFB
Blok zast´pczy jest wykonywany w nast´pujàcy sposób:
• Parametry wejÊciowe oraz I/O sà ∏adowane za pomocà parametrów efektywnych.
Ka˝de, nie zdefiniowane wejÊcie przyjmuje wartoÊç inicjacyjnà zdefiniowanà w modelu
bloku podczas jego inicjacji lub podczas zimnego startu, a dopiero potem wartoÊç
bie˝àcà parametru.
Parametry wejÊciowe (z wyjàtkiem tablic) sà traktowane ró˝nie, w zale˝noÊci od ich
wartoÊci. Parametry I/O sà traktowane zgodnie z ich adresami.
• Wykonywany jest kod zapisany w j´zyku ST.
• Zapisywane sà parametry wyjÊciowe.
J´zyk PL7 wyposa˝ono w kilka narz´dzi umo˝liwiajàcych testowanie (debugging)
programu i bloków typu DFB:
• tablica animacji: wszystkie parametry i zmienne ogólne wyÊwietlane sà w tej tablicy
w czasie rzeczywistym. Poszczególne obiekty mogà byç modyfikowane, a ich stany
wymuszane.
• przerwania, diagnostyka programu, wykonywanie krok po kroku,
• monitorowanie przebiegu programu: do testowania przy pomocy zunifikowanego
ekranu.
___________________________________________________________________________
6/12
A
Bloki typu DFB
6.5
6
Przyk∏ad
Przyk∏ad bloku DFB zaprogramowanego
jako licznik.
Licz_elem
Charakterystyka modelu bloku DFB
Nazwa : Licz_elem
WejÊcia:
• Reset : kasowanie licznika
• Preset : wartoÊç nastawiona licznika
• Count : wejÊcie licznika
WyjÊcia:
• Done : wyjÊcie osiàgni´cia wartoÊci
nastawionej
EBOOL
Reset
BOOL
Done
DWORD
Preset
EBOOL
Count
DWORD
Curr_V
Zmienne ogólne:
• Curr_V : wartoÊç bie˝àca aktualizowana
przez wejÊcie Count.
Funkcja licznika: ten blok zlicza zbocza narastajàce sygna∏u na wejÊciu Count. Wynik
zliczania jest rejestrowany w zmiennej Curr_V, której wartoÊç mo˝e byç kasowana
zboczem narastajàcym sygna∏u na wejÊciu Reset. Zliczanie jest realizowane do
momentu osiàgni´cia wartoÊci nastawionej. Gdy to nast´puje, to na wyjÊciu Done
wystawiana jest 1. W przypadku pojawienia si´ zbocza narastajàcego na wejÊciu Reset
wyjÊcie Done jest kasowane do 0.
Kod
!(*Programowanie bloku DFB o nazwie Licz_elem*)
IF RE Reset THEN
Curr_V:=0;
END_IF;
IF RE Count THEN
Curr_V:=Curr_V+1;
END_IF;
IF(Curr_V & gt; =Preset) THEN
SET Done;
ELSE
RESET Done;
END_IF;
___________________________________________________________________________
6/13
A
A
Przyk∏adowe zastosowanie
W tym przyk∏adzie model bloku DFB jest wykorzystany trzykrotnie (3 bloki zast´pcze)
do liczenia 3 rodzajów elementów. Kiedy nast´puje odliczenie zadanej iloÊci elementów
(w s∏owach %MD10, %MD12 i %MD14) wyjÊcie licznika powoduje zatrzymanie systemu
odpowiedzialnego za podawanie elementów.
Program
Nazwy bloków u˝ytkowych bazujàcych na modelu bloku DFB Licz_elem:
• Licz_nakretki
• Cnt_podklad
• Cnt_sruby
Licz_nakretki
Licz_elem
Preset
Licz_podklad
Licz_elem
Preset
Licz_sruby
Licz_elem
Preset
___________________________________________________________________________
6/14
Szczegó∏owy opis instrukcji oraz funkcji
Spis treÊci
Cz´Êç B
___________________________________________________________________________
Rozdzia∏
1
Strona
Instrukcje podstawowe
B 1/1
1.1
Wprowadzenie
1.1-1 WiadomoÊci ogólne
B 1/1
B 1/1
1.2
Instrukcje logiczne
1.2-1 Wprowadzenie
1.2-2 Format instrukcji
1.2-3 Instrukcje wczytywania Load
1.2-4 Instrukcje przypisania Assignment
1.2-5 Koniunkcja AND
1.2-6 Alternatywa OR
1.2-7 Nierównowa˝noÊç XOR
B
B
B
B
B
B
B
B
1.3
Standardowe bloki funkcyjne
1.3-1 Zasady programowania
1.3-2 Zegar Timer %TMi
1.3-3 Licznik dwukierunkowy %Ci
B 1/9
B 1/9
B 1/10
B 1/14
1.4
Operacje numeryczne na liczbach ca∏kowitych
1.4-1 Wprowadzenie
1.4-2 Instrukcje porównywania Comparison
1.4-3 Instrukcje przypisania Assignment
1.4-4 Instrukcje arytmetyczne na liczbach ca∏kowitych
1.4-5 Instrukcje logiczne
1.4-6 Wyra˝enia numeryczne
B
B
B
B
B
B
B
1/17
1/17
1/19
1/20
1/23
1/25
1/27
1.5
Instrukcje programowe
1.5-1 Wywo∏anie procedury Subroutine call
1.5-2 Powrót do programu Subroutine return
1.5-3 Instrukcje skoku Jump
1.5-5 Zatrzymanie programu
1.5-7 Instrukcja NOP
1.5-6 Instrukcja maskowania zdarzeƒ
B
B
B
B
B
B
B
1/28
1/28
1/29
1/30
1/33
1/34
1/34
1/2
1/2
1/3
1/4
1/5
1/6
1/7
1/8
___________________________________________________________________________
B/1
B
B
Szczegó∏owy opis instrukcji oraz funkcji
Spis treÊci
Cz´Êç B
___________________________________________________________________________
Rozdzia∏
2
Strona
Instrukcje z∏o˝one
B 2/1
2.1
Wprowadzenie
2.1-1 WiadomoÊci ogólne
2.2
Bloki funkcyjne z∏o˝one (standardowe)
2.2-1 Blok przerzutnika monostabilnego %MNi
2.2-2 Rejestr %Ri
2.2-3 B´ben Drum controller %DRi
2.2-4 Blok zegara %Ti (Seria 7)
B 2/2
B 2/2
B 2/5
B 2/9
B 2/13
2.3
Blok porównywania - z∏o˝ony
B 2/17
2.4
Instrukcje przesuwania Shift
B 2/19
2.5
Instrukcje na obiektach zmiennoprzecinkowych
2.5-1 WiadomoÊci ogólne
2.5-2 Instrukcje porównywania
2.5-3 Instrukcje przypisania
2.5-4 Instrukcje arytmetyczne
2.5-5 Instrukcje logarytmiczne i wyk∏adnicze
2.5-6 Instrukcje trygonometryczne
2.5-7 Instrukcje konwersji
B 2/20
B 2/20
B 2/22
B 2/23
B 2/24
B 2/25
B 2/26
B 2/28
2.6
Instrukcje konwersji numerycznej
2.6-1 Konwersja BCD & lt; -- & gt; Kod binarny
2.6-2 Konwersja Liczba ca∏kowita & lt; -- & gt; Liczba zmiennoprzecinkowa
2.6-3 Konwersja Kod Gray'a -- & gt; Liczba ca∏kowita
2.6-4 Konwersja s∏owo & lt; -- & gt; s∏owo podwójne
B 2/29
B 2/29
B 2/31
B 2/33
B 2/34
2.7
B 2/1
B 2/1
Tablice s∏ów
B 2/35
2.7-1 Wprowadzenie
B 2/35
2.7-2 Przypisywanie tablic s∏ów
B 2/36
2.7-3 Operacje arytmetyczne na tablicach
B 2/38
2.7-4 Operacje logiczne na tablicach
B 2/39
2.7-5 Sumowanie elementów tablicy
B 2/40
___________________________________________________________________________
B/2
Szczegó∏owy opis instrukcji oraz funkcji
Spis treÊci
Cz´Êç B
___________________________________________________________________________
Rozdzia∏
2.7-6
2.7-7
2.7-8
2.7-9
2.7-10
2.7-11
2.7-12
Funkcja porównywania tablic
Funkcje przeszukiwania tablic Find
Wyszukiwanie najmniejszej i najwi´kszej wartoÊci w tablicy
Liczba wystàpieƒ danej wartoÊci w tablicy
Okr´˝ne przesuwanie elementów tablicy
Funkcje sortowania elementów tablicy
Obliczanie d∏ugoÊci tablicy
Strona
B 2/41
B 2/43
B 2/45
B 2/46
B 2/47
B 2/49
B 2/50
2.8
Operacje na ∏aƒcuchach znaków
2.8-1 Format ∏aƒcucha lub tablicy znaków
2.8-2 Przypisywanie ∏aƒcuchów znaków
2.8-3 Porównywanie alfanumeryczne
2.8-4 Konwersja WartoÊç numeryczna & lt; --- & gt; Kod ASCII
2.8-5 Konwersja Kod binarny --- & gt; Kod ASCII
2.8-6 Konwersja ASCII --- & gt; Kod binarny
2.8-7 Konwersja WartoÊç zmiennoprzecinkowa --- & gt; Kod ASCII
2.8-8 Konwersja Kod ASCII -- & gt; WartoÊç zmiennoprzecinkowa
2.8-9 ¸àczenie dwóch ∏aƒcuchów
2.8-10 Usuwanie ciàgu znaków z ∏aƒcucha
2.8-11 Wstawianie ∏aƒcucha znaków
2.8-12 Wymiana ciàgu znaków w ∏aƒcuchu znaków
2.8-13 Wydzielanie ciàgu znaków z ∏aƒcucha znaków
2.8-14 Wydzielanie znaków z ∏aƒcucha
2.8-15 Porównywanie ∏aƒcuchów znaków
2.8-16 Wyszukiwania zadanego ciàgu znaków
2.8-17 D∏ugoÊç ∏aƒcucha znaków
B 2/51
B 2/51
B 2/52
B 2/53
B 2/54
B 2/54
B 2/56
B 2/57
B 2/58
B 2/59
B 2/60
B 2/61
B 2/63
B 2/65
B 2/67
B 2/69
B 2/70
B 2/71
2.9
Instukcje zwiàzane z czasem: Data, Godzina, Czas trwania
2.9-1 Format parametru
2.9-2 Rola s∏ów i bitów systemowych - podsumowanie
2.9-3 Zegar czasu rzeczywistego
2.9-4 Odczytywanie daty systemowej
2.9-5 Aktualizowanie daty systemowej
2.9-6 Odczytanie daty i kodu zatrzymania sterownika
2.9-7 Odczytywanie dnia tygodnia
2.9-8 Dodawanie (odejmowanie) okresu czasu do daty
2.9-9 Dodawanie okresu czasu do pory dnia
B 2/72
B 2/72
B 2/74
B 2/75
B 2/77
B 2/77
B 2/78
B 2/79
B 2/80
B 2/81
___________________________________________________________________________
B/3
B
B
Szczegó∏owy opis instrukcji oraz funkcji
Spis treÊci
Cz´Êç B
___________________________________________________________________________
Rozdzia∏
2.9-10 Ró˝nica mi´dzy dwiema datami (bez czasu)
2.9-11 Ró˝nica pomi´dzy dwiema datami (z czasem)
2.9-12 Ró˝nica pomi´dzy dwoma czasami
2.9-13 Konwersja daty na ∏aƒcuch znaków
2.9-14 Konwersja pe∏nej daty na ∏aƒcuch znaków
2.9-15 Konwersja okresu czasu na ∏aƒcuch znaków
2.9-16 Konwersja pory dnia na ∏aƒcuch znaków
2.9-17 Konwersja okresu czasu na format GGGG:MM:SS
2.10 Operacje na tablicach bitowych
2.10-1 Kopiowanie tablicy bitowej do tablicy bitowej
2.10-2 Operacje logiczne na tablicach bitowych
2.10-3 Kopiowanie tablicy bitowej do tablicy s∏ów
2.10-4 Kopiowanie elementów tablicy s∏ów do tablicy bitowej
2.11 Funkcje " Orphee " : przesuwanie, licznik
2.11-1 Operacje przesuwania na s∏owach z odzyskaniem bitów
2.11-2 Licznik dwukierunkowy z sygnalizacjà przepe∏nienia
2.11-3 Przesuni´cie okr´˝ne
Strona
B 2/83
B 2/84
B 2/85
B 2/86
B 2/87
B 2/88
B 2/89
B 2/91
B 2/92
B 2/92
B 2/93
B 2/94
B 2/96
B 2/98
B 2/98
B 2/101
B 2/103
2.12 Funkcje opóêniajàce Time delay
B 2/105
2.12-1 Wprowadzenie
B 2/105
2.12-2 Funkcja opóêniajàca FTON
B 2/105
2.12-3 Funkcja opóêniajàca FTOF
B 2/107
2.12-4 Funkcja FTP - generowanie impulsu
B 2/108
2.12-5 Funkcja FPULSOR - generowanie przebiegu prostokàtnego B 2/109
3 S∏owa i bity systemowe
B 3/1
3.1
Bity systemowe
3.1-1 Lista bitów
3.1-2 Szczegó∏owy opis bitów systemowych
B 3/1
B 3/1
B 3/3
3.2
S∏owa systemowe
3.2-1 Lista s∏ów
3.2-2 Szczegó∏owy opis s∏ów systemowych
B 3/9
B 3/9
B 3/11
___________________________________________________________________________
B/4
Szczegó∏owy opis instrukcji oraz funkcji
Spis treÊci
Cz´Êç B
___________________________________________________________________________
Rozdzia∏
Strona
4 Ró˝nice pomi´dzy PL7-2/3 a PL7 Micro/Junior
4.1
Wyszczególnienie
5 Lista s∏ów zarezerwowanych
5.1
S∏owa zarezerwowane
6 ZgodnoÊç z normà IEC 1131-1
6.1
Wprowadzenie
6.1.1 Tabela zgodnoÊci
B 4/1
B 4/1
B 5/1
B 5/1
B6/1
B6/1
B6/1
7 Podr´czny s∏ownik
B7/1
8 Parametry j´zyka dla sterowników TSX 37/57
B8/1
8.1
Wprowadzenie
B8/1
8.2
Sterownik TSX 37
8.2.1 Instrukcje logiczne
8.2.2 Bloki funkcyjne
8.2.3 Operacje arytmetyczne - obiekty ca∏kowite i zmiennoprzec.
8.2.4 Instrukcje programowe
8.2.5 Struktura komend
8.2.6 Konwersja numeryczna
8.2.7 ¸aƒcuch bitów
8.2.8 Tablice s∏ów, s∏ów podwójnych i wartoÊci zmiennoprzec.
8.2.9 Zarzàdzanie czasem
8.2.10 ¸aƒcuchy znaków
8.2.11 Funkcje specjalne oraz funkcje Orphee
8.2.12 Jawna wymiana I/O
B8/3
B8/3
B8/4
B8/6
B8/8
B8/8
B8/9
B8/9
B8/11
B8/14
B8/15
B8/16
B8/17
8.3
Sterownik TSX 57
8.3.1 Instrukcje logiczne
8.3.2 Bloki funkcyjne
8.3.3 Operacje arytmetyczne - obiekty ca∏kowite i zmiennoprzec.
B8/18
B8/19
B8/20
B8/22
___________________________________________________________________________
B/5
B
B
Szczegó∏owy opis instrukcji oraz funkcji
Spis treÊci
Cz´Êç B
___________________________________________________________________________
Rozdzia∏
Strona
8.3.4 Instrukcje programowe
8.3.5 Struktura komend
8.3.6 Konwersja numeryczna
8.3.7 ¸aƒcuch bitów
8.3.8 Tablice s∏ów, s∏ów podwójnych i zmiennoprzecinkowych
8.3.9 Zarzàdzanie czasem
8.3.10 Zegar
8.3.11 ¸aƒcuchy znaków
8.3.12 Wydzielanie s∏ów
8.3.11 Funkcje specjalne i funkcje Orphee
8.3.12 Jawna wymiana I/O
8.3.13 Bloki w∏asne u˝ytkownika DFB
B8/24
B8/24
B8/25
B8/25
B8/27
B8/30
B8/30
B8/31
B8/31
B8/32
B8/33
B8/35
8.4
Rozmiar aplikacji
8.4.1 Opis stref pami´ci
8.4.2 Obszar pami´ci zajmowany przez obiekty PL7
8.4.3 Rozmiar pami´ci modu∏u
8.4.4 Rozmiar pami´ci zajmowanej przez funkcje z∏o˝one
B8/38
B8/38
B8/39
B8/39
B8/45
8.5
Dodatek: metoda obliczania liczby instrukcji
B8/51
___________________________________________________________________________
B/6
Szczegó∏owy opis instrukcji oraz funkcji
1.1
Rozdzia∏ 1
Instrukcje podstawowe - opis 1
1
Instrukcje podstawowe
Wprowadzenie
1.1-1 WiadomoÊci ogólne
Opisane w niniejszym rozdziale instrukcje sà zgodne instrukcjami opisanymi w normie
IEC 1131.3.
Te instrukcje wywo∏ujà zawsze taki sam efekt, niezale˝nie od j´zyka w jakim zostanà
u˝yte. Ró˝ny jest tylko ich wyglàd w programie.
Przyk∏adowe równanie logiczne:
W j´zyku LIST
: LD %I1.0
ST %Q2.0
W j´zyku Ladder
:
W j´zyku ST
: %Q2.0 := %I1.0 ;
%I1.0
%Q2.0
Te trzy równania sà równowa˝ne. Bit obiektowy %Q2.0 przyjmuje wartoÊç (instrukcja
przypisania) bitu obiektowego %1.0 (instrukcja wczytania).
Instrukcjami podstawowymi sà:
• instrukcje logiczne (wykonywane na bitach),
• standardowe bloki funkcyjne typu zegar i licznik,
• numeryczne instrukcje dotyczàce liczb ca∏kowitych (wykonywane na s∏owach oraz
s∏owach podwójnej precyzji),
• instrukcje zwiàzane z programowaniem.
Pozosta∏e instrukcje zosta∏y opisane w rozdziale 2 zatytu∏owanym " Instrukcje z∏o˝one " .
___________________________________________________________________________
1/1
B
B
1.2
Instrukcje logiczne
1.2-1 Wprowadzenie
Instrukcje logiczne dzia∏ajà na bitach wszystkich typów (bity I/O, bity wewn´trzne, itd.).
• Elementy warunków (test elements), przyk∏ad: styk N/O (normalnie otwarty).
Styk zamyka si´, kiedy zwiàzany z nim bit obiektowy, zmienia stan na 1.
%I1.0
LD %I1.0
%I1.0
• Elementy akcji (action elements), przyk∏ad: sprz´˝enie bezpoÊrednie (cewka).
Sprz´˝ony bit obiektowy przyjmuje logicznà wartoÊç b´dàcà wynikiem logicznego
warunku (testowania).
%Q2.0
ST %Q2.0
%Q2.0 :=
• Równanie logiczne:
Logiczny wynik elementów warunków jest przypisany do elementu akcji.
LD %I1.0
AND %I1.1
ST %Q2.0
%I1.0 %I1.1
%Q2.0
%Q2.0 := %I1.0 AND %I1.1 ;
Zbocza sygna∏ów
Instrukcje testowania warunków mogà byç wykorzystywane do wykrywania zmiany
stanu (zbocza opadajàcego lub narastajàcego) bitów I/O oraz bitów wewn´trznych.
Styk reagujàcy na zbocze narastajàce:
Styk reagujàcy na zbocze opadajàce:
%I1.0
%I1.0
LDR %I1.0
P
RE %I1.0
LDF %I1.0
N
FE %I1.0
• Wszystkie wejÊcia (dyskretne, liczniki, itp) wykrycie zbocza nast´puje, gdy bit
itp):
zmienia stan pomi´dzy " przejÊciem " n-1, a bie˝àcym " przejÊciem " n. Sygnalizacja
wykrycia zbocza trwa przez ca∏e " przejÊcie " (patrz A, rozdz. 1.3-2).
Zbocze rosnàce: wykrycie zmiany na
kontrolowanym wejÊciu z 0 na 1.
%I1.0
czas
Wynik
logiczny
1 " przejÊcie " zadania
czas
Zbocze opadajàce: wykrycie zmiany na
kontrolowanym wejÊciu z 1 na 0.
%I1.0
Wynik
logiczny
czas
1 " przejÊcie " zadania
czas
• WyjÊcia i bity wewn´trzne wykrywanie zbocza odbywa si´ niezale˝nie od " przejwewn´trzne:
Êcia " zadania. Wykrycie zbocza bitu wewn´trznego %Mi nast´puje, gdy zmienia on
stan pomi´dzy dwiema kolejnymi operacjami odczytu. Sygnalizacja wystàpienia
zbocza utrzymuje si´ do momentu uaktualnienia bitu wewn´trznego w strefie akcji.
• Nie mo˝na u˝ywaç instrukcji SET i RESET w stosunku do obiektów, które sà
testowane pod kàtem wykrywania zboczy (zarówno w j´zyku Ladder jak i LIST).
___________________________________________________________________________
1/2
Instrukcje podstawowe - opis
1
B
1.2-2 Format instrukcji
Instrukcje logiczne opisuje si´ w nast´pujàcy sposób:
Uwaga:
Opisywana funkcja jest wyt∏uszczona.
Ka˝de równanie zapisano w kilku j´zykach.
Instrukcje wczytywania Load
Instrukcje te odnoszà si´ do:
• styków N/O: styk jest zamkni´ty, gdy sterujàcy nim bit obiektowy ma stan 1.
• ...
J´zyk Ladder
J´zyk instrukcji List
LD
ST
LDN
ST
%I1.1
%Q2.3
%M0
%Q2.2
J´zyk strukturalny Structured Text
%Q2.3 := %I1.1 ;
%Q2.2 := NOT %M0 ;
Dozwolone argumenty
Kod
Diagram czasowy
Argument
LD
%I,%Q,%M,%S,%BLK,%•:Xk, %Xi
LDN %I,%Q,%M,%S,%BLK,%•:Xk, %Xi
Diagram czasowy
Lista argumentów
Cztery diagramy czasowe zosta∏y
0/1
wartoÊç bezp. 0 (fa∏sz), 1 (prawda)
zgrupowane.
%I
wejÊcie sterownika %Ix.i
Diagram czasowy
%Q wyjÊcie sterownika %Qx.i
dla instrukcji LD
%M bit wewn´trzny %Mi
%S
bit systemowy %Si
Stan wejÊcia
%BLK bit standardowego bloku funkcyjnego (np. %TMi.Q) lub bloku DFB
%•:Xk bit wydz. ze s∏owa, np. %MWi:Xk
Stan wyjÊcia
%Xi bit kroku, bit makra (%XMi) lub bit
kroku makra (%Xj.i).
___________________________________________________________________________
1/3
B
1.2-3 Instrukcje wczytywania Load
Instrukcje wczytywania odnoszà si´ do:
• styków N/O: styk zamkni´ty, gdy kontrolujàcy go bit ma stan 1,
• styków N/C: styk zamkni´ty, gdy kontrolujàcy go bit ma stan 0,
• styki reagujàce na zbocze rosnàce: reaguje na zmian´ stanu bitu z 0 na 1,
• styki reagujàce na zbocze opadajàce: reaguje na zmian´ stanu bitu z 1 na 0.
J´zyk Ladder
J´zyk List
LD
ST
LDN
ST
LDR
ST
LDF
ST
%I1.1
%Q2.3
%M0
%Q2.2
%I1.2
%Q2.4
%I1.3
%Q2.5
J´zyk ST
%Q2.3 := %I1.1 ;
%Q2.2 := NOT %M0 ;
%Q2.4 := RE %I1.2 ;
%Q2.5 := FE %I1.3 ;
Dozwolone argumenty
Kod
Diagram czasowy
Argument
LD
%I,%Q,%M,%S,%BLK,%•:Xk, %Xi (1)
LDN %I,%Q,%M,%S,%BLK,%•:Xk, %Xi (1)
LDR %I,%Q,%M
LDF
(1)
%I,%Q,%M
W j´zyku LIST oraz ST - Prawda (1)/Fa∏sz (0)
(2)
Nadanie wartoÊci w czasie 1 cyklu.
___________________________________________________________________________
1/4
Instrukcje podstawowe - opis
1
B
1.2-4 Instrukcje przypisani Assignment
Instrukcje przypisania stosuje si´ w odniesieniu do:
• sprz´˝eƒ prostych: sprz´˝ony bit obiektowy przyjmuje wartoÊç wynikajàcà z równania,
• sprz´˝eƒ odwrotnych: sprz´˝ony bit obiektowy przyjmuje wartoÊç odwrotnà w stosunku do wynikajàcej z równania,
• przerzutników Latch (Set): sprz´˝ony bit ma wartoÊç 1, gdy wynik równania = 1,
• przerzutników (Reset): sprz´˝ony bit obiektowy przyjmuje wartoÊç 0, gdy wynikiem
równania jest 1.
J´zyk Ladder
J´zyk List
LD
ST
%I1.1
%Q2.3
STN
%Q2.2
S
%Q2.4
LD
R
%I1.2
%Q2.4
Operacje równowa˝ne w j´zyku ST
%Q2.3 := %I1.1 ;
%Q2.2 := NOT %I1.1 ;
IF %I1.1 THEN
SET %Q2.4 ;
END_IF ;
IF %I1.2 THEN
RESET %Q2.4 ;
END_IF ;
Dozwolone argumenty
Kod
Argument
ST
%I,%Q,%M,%S,%•:Xk
STN
%I,%Q,%M,%S,%•:Xk
S
%I,%Q,%M,%S,%•:Xk, %Xi (1)
R
(1)
Diagram czasowy
%I,%Q,%M,%S,%•:Xk, %Xi (1)
Tylko przy przetwarzaniu
wst´pnym (preprocessing).
___________________________________________________________________________
1/5
B
1.2-5 Koniunkcja AND
Funkcja ta obejmuje:
• koniunkcj´ pomi´dzy argumentem a logicznym wynikiem wczeÊniejszej instrukcji,
• koniunkcj´ pomi´dzy zaprzeczeniem argumentu a logicznym wynikiem wczeÊniejszej instrukcji,
• koniunkcj´ pomi´dzy zboczem rosnàcym argumentu a logicznym wynikiem wczeÊniejszej instrukcji,
• koniunkcj´ pomi´dzy zboczem opadajàcym argumentu a logicznym wynikiem
wczeÊniejszej instrukcji,
J´zyk Ladder
J´zyk List
LD
AND
ST
LD
ANDN
ST
LD
ANDR
ST
LD
ANDF
ST
%I1.1
%M1
%Q2.3
%M2
%I1.2
%Q2.2
%I1.3
%I1.4
%Q2.4
%M3
%I1.5
%Q2.5
J´zyk ST
%Q2.3 := %I1.1
%Q2.2 := %M2
%Q2.4 := %I1.3
%Q2.5 := %M3
AND %M1 ;
AND (NOT %I1.2) ;
AND (RE %I1.4) ;
AND (FE %I1.5) ;
Uwaga: Stosowanie nawiasów nie jest obowiàzkowe, ale czyni program bardziej przejrzystym.
Dozwolone argumenty
Kod
Diagram czasowy
Argument
AND
%I,%Q,%M,%S,%BLK,%•:Xk, %Xi (1)
ANDN %I,%Q,%M,%S,%BLK,%•:Xk, %Xi (1)
ANDR %I,%Q,%M
ANDF %I,%Q,%M
(1)
W j´zyku LIST oraz ST - Prawda (1)/Fa∏sz (0)
(2)
Nadanie wartoÊci 1 w czasie 1 cyklu
___________________________________________________________________________
1/6
Instrukcje podstawowe - opis
1
B
1.2-6 Alternatywa OR
Funkcja ta obejmuje:
• alternatyw´ pomi´dzy argumentem a logicznym wynikiem wczeÊniejszej instrukcji,
• alternatyw´ pomi´dzy zaprzeczeniem argumentu a logicznym wynikiem wczeÊniejszej instrukcji,
• alternatyw´ pomi´dzy zboczem rosnàcym argumentu a logicznym wynikiem wczeÊniejszej instrukcji,
• alternatyw´ pomi´dzy zboczem opadajàcym argumentu a logicznym wynikiem
wczeÊniejszej instrukcji,
J´zyk Ladder
J´zyk List
LD
OR
ST
%I1.1
%M1
%Q2.3
LD
ORN
ORN
ST
%M2
%I1.2
%Q2.2
LD
ORR
ST
%I1.3
%I1.4
%Q2.4
LD
ORF
ST
%M3
%I1.5
%Q2.5
J´zyk ST
%Q2.3 := %I1.1
%Q2.2 := %M2
%Q2.4 := %I1.3
%Q2.5 := %M3
OR %M1 ;
OR (NOT %I1.2) ;
OR (RE %I1.4) ;
OR (FE %I1.5) ;
Uwaga:
Uwaga Stosowanie nawiasów nie jest obowiàzkowe, ale czyni program bardziej przejrzystym.
Dozwolone argumenty
Kod
Diagram czasowy
Argument
OR
%I,%Q,%M,%S,%BLK,%•:Xk,
%Xi (1)
ORN %I,%Q,%M,%S,%BLK,%•:Xk,
%Xi (1)
ORR %I,%Q,%M
ORF %I,%Q,%M
(1)
W j´zyku LIST i ST - Prawda (1)/Fa∏sz (0)
___________________________________________________________________________
1/7
B
1.2-7 Nierównowa˝noÊç XOR
Funkcja ta obejmuje:
• nierównowa˝noÊç pomi´dzy argumentem a logicznym wynikiem wczeÊniejszej
instrukcji,
• nierównowa˝noÊç pomi´dzy zaprzeczeniem argumentu a logicznym wynikiem
wczeÊniejszej instrukcji,
• nierównowa˝noÊç pomi´dzy zboczem rosnàcym argumentu a logicznym wynikiem
wczeÊniejszej instrukcji,
• nierównowa˝noÊç pomi´dzy zboczem opadajàcym argumentu a logicznym wynikiem wczeÊniejszej instrukcji,
Uwaga:
W j´zyku Ladder nie ma specjalnych elementów graficznych dla tej funkcji (XOR). Pomimo
tego, mo˝na zaprogramowaç t´ funkcj´ przy pomocy kombinacji styków typu N/O (normalnie
zamkni´tych) i N/C (normalnie zamkni´tych) - patrz przyk∏ad poni˝ej.
Zapis równowa˝ny w j´zyku Ladder
J´zyk LIST
LD
XOR
ST
LD
XORN
ST
%Q2.3 := %I1.1
%Q2.2 := %M2
%Q2.4 := %I1.3
%Q2.5 := %M3
XOR %M1 ;
XOR (NOT %I1.2) ;
XOR (RE %I1.4) ;
XOR (FE %I1.5) ;
%M2
%I1.2
%Q2.2
LD
XORR
ST
J´zyk ST
%I1.1
%M1
%Q2.3
%I1.3
%I1.4
%Q2.4
LD
XORF
ST
%M3
%I1.5
%Q2.5
Uwaga Stosowanie nawiasów nie jest obowiàzkowe, ale czyni program bardziej przejrzystym.
Uwaga:
Dozwolone argumenty
Kod
Argument
XOR
%I,%Q,%M,%S,%BLK,%•:Xk, %Xi
XORN
%I,%Q,%M,%S,%BLK,%•:Xk, %Xi
XORR
%I,%Q,%M
XORF
Diagram czasowy
%I,%Q,%M
___________________________________________________________________________
1/8
Instrukcje podstawowe - opis
1
B
1.3
Standardowe bloki funkcyjne
1.3-1 Zasady programowania
Bloki funkcyjne pos∏ugujà si´ bitami obiektowymi i s∏owami specjalnymi.
Standardowe bloki funkcyjne sà wst´pnie
zaprogramowane w sterowniku, stàd te˝
zajmujà one ÊciÊle okreÊlony obszar pami´ci u˝ytkowej sterownika.
Stàd, w celu optymalizacji wykorzystania
pami´ci, musi byç zdefiniowana liczba oraz
rodzaj stosowanych bloków funkcyjnych.
Dokonuje si´ tego, z uwzgl´dnieniem
limitów narzuconych przez system, za
pomocà edytora danych lub konfiguracji.
Licznik dwukierunkowy (góra/dó∏)
System zawiera szeÊç standardowych bloków funkcyjnych:
Rodzaj bloku
Max TSX 37
Max TSX 57
Zegar Timer %TMi
64 (1)
255 (1)
1.3-2
Licznik dwukierunkowy Up/down %Ci
32
255
1.3-3
Przerzutnik mono Monostable %MNi
8
255
2.2-1
Rejestr Register %Ri
4
255
2.2-2
B´ben Drum controller %DRi
8
255
2.2-3
Zegar Timer (Seria 7) %Ti
64 (1)
255 (1)
2.2-4
(1)
Rozdzia∏
Ca∏kowita liczba zegarów %TMi + %Ti nie mo˝e przekraczaç 64 dla sterowników TSX 37
i 255 dla sterowników TSX 57.
Ka˝dy blok posiada:
• WejÊcia (np. IN) s∏u˝àce do sterowania
dzia∏aniem bloku.
• WyjÊcia (np. Q) które odwzorowujà stan
bloku. Ka˝demu wyjÊciu przyporzàdkowany jest bit wyjÊciowy (np. %TM1.Q),
który mo˝e byç testowany przez program u˝ytkowy. Dodatkowo, ka˝de
wyjÊcie mo˝e sterowaç sprz´˝eniami
(np. %Q2.3 i SR2).
• Parametry umo˝liwiajàce zaadaptowanie bloku do aplikacji (nastawianie
wartoÊci, podstawa czasu, itd.)
Parametry bloków funkcyjnych (nastawianie wartoÊci Preset, podstawa czasu Time
base, itd.) sà wyÊwietlane we wn´trzu bloku. W j´zyku LIST bloki standardowe
programuje si´ przy pomocy odpowiednich instrukcji (patrz cz´Êç A, rozdzia∏ 3.2-6).
___________________________________________________________________________
1/9
B
1.3-2 Zegar Timer %TMi
Zegar mo˝e pracowaç w trzech trybach:
•TON jest to tryb s∏u˝àcy do kontrolowaTON:
TON
nia akcji z opóênionym uaktywnieniem
(on-delay). Opóênienie to mo˝na programowaç i modyfikowaç za poÊrednictwem terminala.
•TOF jest to tryb s∏u˝àcy do kontrolowaTOF:
TOF
nia akcji z opóênieniem dezaktywacji
(off-delay). Opóênienie to mo˝na programowaç i modyfikowaç za poÊrednictwem terminala.
TP
•TP jest to tryb umo˝liwiajàcy wygeneroTP:
wanie impulsu o ÊciÊle okreÊlonym czasie trwania. Czas trwania impulsu mo˝na programowaç i modyfikowaç za
poÊrednictwem terminala.
Blok zegara
Charakterystyka
Liczba zegarów
%TMi
0 do 63 dla TSX 37, 0 do 254 dla TSX 57
Tryb pracy
TON
TOF
TP
• zegar opóêniajàcy on-delay (domyÊlnie)
• zegar opóêniajàcy off-delay
• przerzutnik monostable
Podstawa czasu Time base
TB
1min (domyÊ∏nie), 1s, 100ms, 10ms (max 16
zegarów dla 10ms). Im mniejsza wartoÊç
podstawy czasu, tym wi´ksza dok∏adnoÊç.
WartoÊç bie˝àca Current value %TMi.V
S∏owo, którego wartoÊç roÊnie od 0÷%TMi.P,
gdy zegar pracuje. Mo˝e ona byç czytana
i testowana, lecz nie mo˝e byç zapisywana
przez program (1).
WartoÊç nastawiona Preset
%TMi.P
0-%TMi.P-9999. S∏owo, które mo˝e byç
czytane,testowane i zapisywane przez program.
DomyÊlnie, przyjmuje ono wartoÊç 9999.
Generowany impuls lub wartoÊç opóênienia jest
równa %TMi.P x TB.
Regulacja za pom. terminala
Adjust
(MODIF)
Y/N
Y: wartoÊç nastawiona %TMi.P mo˝e byç
modyfikowana w trybie regulacji (adjust mode).
N: nie mo˝na modyfikowaç wartoÊci.
WejÊcie
(instrukcja)
IN
Zegar startuje przy zboczu rosnàcym sygna∏u
(tryb TON lub TP) lub zboczu opadajàcym (tryb
TOF).
WyjÊcie
Q
Bit %TMi.Q przyjmuje wartoÊç 1 w warunkach
zale˝àcych od typu funkcji (TON, TOF lub TP).
(1)
WartoÊç %TMi.V mo˝e byç modyfikowana za poÊrednictwem terminala.
___________________________________________________________________________
1/10
Instrukcje podstawowe - opis
1
B
Zegar opóêniajàcy (on-delay): tryb TON
Zegar uruchamia si´ w momencie pojawienia si´ zbocza rosnàcego na wejÊciu IN:
jego wartoÊç %TMi.V roÊnie od 0 do
%TMi.P o jednostk´, przy ka˝dym impulsie podstawy czasu TB. Bit wyjÊciowy
%TMi.Q zmienia stan na 1, gdy wartoÊç
bie˝àca osiàga wartoÊç %TMi.P i utrzymuje wartoÊç 1 tak d∏ugo, jak d∏ugo wejÊcie
IN ma stan 1.
Pojawienie si´ 0 na wejÊciu IN powoduje
zatrzymanie zegara, nawet, gdy jego wartoÊç ciàgle jeszcze si´ zmienia∏a: %TMi.V
przyjmuje wartoÊç 0.
Zegar opóêniajàcy (off-delay): tryb TOF
WartoÊç bie˝àca %TMi.V przyjmuje wartoÊç 0 przy pojawieniu si´ zbocza rosnàcego sygna∏u na wejÊciu IN (nawet jeÊli
zegar jeszcze pracowa∏). Zegar uruchamia si´ w momencie wykrycia zbocza
opadajàcego sygna∏u na wejÊciu IN.
WartoÊç bie˝àca roÊnie do wartoÊci
%TMi.P zwi´kszana o 1, przy ka˝dym
impulsie podstawy czasu TB. Bit wyjÊciowy %TMi.Q zmienia stan na 1, w momencie wykrycia zbocza rosnàcego sygna∏u
na wejÊciu IN, a zegar kasuje si´ do 0 po
osiàgni´ciu wartoÊci %TMi.P.
Zegar pe∏niàcy funkcj´ przerzutnika: tryb TP
Zegar uruchamia si´ po wystàpieniu zbocza rosnàcego na wejÊciu IN (o ile zegar
nie wystartowa∏ ju˝ wczeÊniej): jego wartoÊç bie˝àca %TMi.V roÊnie od 0 do
%TMi.P o 1, przy ka˝dym impulsie podstawy czasu TB. Bit wyjÊciowy %TMi.Q
zmienia stan na 1, gdy zegar si´ uruchamia i przyjmuje wartoÊç 0, gdy wartoÊç
bie˝àca osiàga wartoÊç %TMi.P.
Gdy wejÊcie IN i wyjÊcie %TMi.Q majà
stan 0, to TMi.V równie˝ ma wartoÊç 0.
Ten stan nie podlega kasowaniu.
___________________________________________________________________________
1/11
B
Programowanie i konfigurowanie
Zegary programuje si´ w jednolity sposób, niezale˝nie od wybranego trybu pracy.
Wyboru trybu pracy (TON, TOF lub TP) dokonuje si´ za pomocà edytora zmiennych.
• Konfigurowanie
W edytorze zmiennych nale˝y zdefiniowaç nast´pujàce parametry:
- tryb pracy Mode: TON, TOF lub TP,
- podstaw´ czasu TB: 1min, 1s, 100ms lub 10ms,
- wartoÊç nastawionà %TMi.P: z przedzia∏u od 0 do 9999.
- mo˝liwoÊç modyfikowania wartoÊci MODIF: Y lub N.
• Programowanie
J´zyk Ladder
J´zyk List
TON
LD
IN
LD
ST
%I1.1
%TM1
%TM1.Q
%Q2.3
J´zyk ST
IF RE %I1.1 THEN
START %TM1 ;
ELSIF FE %I1.1 THEN
DOWN %TM1 ;
END_IF ;
%Q2.3 := %TM1.Q ;
Instrukcja START %TMi powoduje wygenerowanie zbocza narastajàcego na wejÊciu
IN bloku zegara.
Instrukcja DOWN %TMi powoduje wygenerowanie zbocza opadajàcego na wejÊciu IN
bloku zegara.
___________________________________________________________________________
1/12
Instrukcje podstawowe - opis
1
B
Sytuacje szczególne
• Reakcja na zimny start: (%S0=1) skasowanie wartoÊci bie˝àcej do 0, wystawienie 0
na wyjÊciu %TMi.Q i skasowanie wartoÊci nastawionej (preset value) do wartoÊci
zdefiniowanej w konfiguracji.
• Reakcja na goràcy start: (%S1=1) nie ma ˝adnego wp∏ywu na wartoÊç bie˝àcà
zegara oraz wartoÊç nastawionà. W czasie zaniku zasilania wartoÊç bie˝àca nie ulega
zmianie.
• Reakcja na zatrzymanie sterownika, dezaktywacj´ zadania lub przerwanie (break
point): nie powodujà zamro˝enia wartoÊci bie˝àcej.
• Reakcja na skok w programie: fakt, ˝e instrukcje, w których zaprogramowany jest
blok zegara nie sà wykonywane (program " przeskoczy∏ " do innej cz´Êci) nie powoduje
zamro˝enia wartoÊci bie˝àcej %TMi.V, która nadal roÊnie a˝ do osiàgni´cia wartoÊci
%TMi.P. Podobnie, bit %TMi.Q przyporzàdkowany wyjÊciu Q bloku zegara zachowuje
swoje w∏aÊciwoÊci, w zwiàzku z czym mo˝e byç testowany przez innà instrukcj´.
Jednak˝e, wyjÊcie bezpoÊrednio pod∏àczone do wyjÊcia bloku nie jest ani uaktywniane,
ani skanowane (odczytywane) przez sterownik.
• Testowanie bitu %TMi.Q: zaleca si´ testowanie bitu %TMi.Q w programie tylko jeden
raz.
• Reakcja na zmian´ wartoÊci nastawionej %TMi.P: modyfikowanie wartoÊci nastawionej
czy to za pomocà instrukcji, czy podczas pracy w trybie regulacji (adjust mode)
przynosi efekt tylko wtedy, kiedy zegar zoatanie nast´pnie uruchomiony. Zmiana
wartoÊci nastawionej w edytorze zmiennych jest uwzgl´dniana dopiero po zimnym
starcie (%S0=1).
___________________________________________________________________________
1/13
B
1.3-3 Licznik dwukierunkowy %Ci
Licznik dwukierunkowy (up/down counter) s∏u˝y do zliczania (upcount) lub odliczania (downcount) zdarzeƒ.
Te dwie operacje mogà byç wykonywane
przez licznik jednoczeÊnie.
Blok licznika dwukierunkowego
Charakterystyka
Liczba liczników
%Ci
0 do 31 dla TSX 37, 0 do 254 dla TSX 57
WartoÊç bie˝àca Current
%Ci.V
S∏owo, którego wartoÊç jest zmniejszana lub
zwi´kszana w zale˝noÊci od wejÊç CU i CD.
Mo˝e ono byç odczytywane lub testowane, lecz
nie mo˝e byç zapisywane przez program (1).
WartoÊç nastawiona Preset
%Ci.P
0-%Ci.P-9999. S∏owo, które mo˝e byç czytane,
testowane i zapisywane. DomyÊlnie: 9999
Regulacja za pom. terminala
(MODIF)
Y/N
Y: wartoÊç nastawiona mo˝e byç zmieniana
w trybie regulacji (adjust mode).
N: brak mo˝liwoÊci zmiany w trybie regulacji.
WejÊcie kasowania Reset
(instrukcja)
R
Stan 1 : %Ci.V = 0.
WejÊcie nastawiania Preset
(instrukcja)
S
Stan 1: %Ci.V = %Ci.P.
WejÊcie zliczajàce Up
(instrukcja)
CU
Powoduje zwi´kszenie wartoÊci %Ci.V przy
zboczu rosnàcym sygna∏u.
WejÊcie odliczajàce Down
(instrukcja)
CD
Powoduje zmniejszenie wartoÊci bie˝àcej %Ci.V
przy zboczu rosnàcym sygna∏u.
WyjÊcie Licznik pusty
E (Empty)
Bit %Ci.E=1 gdy podczas odliczania nastàpi
zmiana wartoÊci %Ci.V z 0 na 9999 (stan 1, gdy
%Ci.V osiàga wartoÊç 9999; jest kasowany do 0,
gdy licznik kontynuuje odliczanie).(2)
WyjÊcie Osiàgni´cie
D (Done)
wartoÊci nastawionej
WyjÊcie Przepe∏nienie
(1)
(2)
F (Full)
Bit %Ci.D=1 gdy %Ci.V=%Ci.P.
Bit %Ci.F =1 gdy %Ci.V zmienia wartoÊç z 9999
na 0 (stan 1 gdy %Ci.V osiàga 0; jest kasowany
do 0 gdy licznik kontynuuje zliczanie).
WartoÊç %Ci.V mo˝e byç modyfikowana za pomocà terminala.
W przypadku, gdy licznik jest pe∏en lub jest pusty, bit %S18 zmienia stan na 1.
___________________________________________________________________________
1/14
Instrukcje podstawowe - opis
1
B
Sposób wykonywania operacji
• Zliczanie Upcount: pojawienie si´ na wejÊciu CU zbocza rosnàcego powoduje
zwi´kszenie wartoÊci bie˝àcej (o jednostk´). W momencie, gdy wartoÊç bie˝àca
zrównuje si´ z wartoÊcià nastawionà %Ci.P, bit wyjÊciowy %Ci.D (osiàgni´cie
wartoÊci nastawionej) przyporzàdkowany wyjÊciu D zmienia stan na 1. Bit wyjÊciowy
%Ci.F (przepe∏nienie licznika) zmienia stan na 1, gdy wartoÊç bie˝àca %Ci.V zmienia
si´ z 9999 na 0 i jest kasowany do 0 jeÊli licznik kontynuuje zliczanie.
• Odliczanie Downcount: pojawienie si´ na wejÊciu CD zbocza rosnàcego powoduje
zmniejszenie wartoÊci bie˝àcej %Ci.V (o jednostk´). Bit wyjÊciowy %Ci.E (licznik
pusty) zmienia stan na 1, gdy wartoÊç bie˝àca %Ci.V zmienia si´ z 0 na 9999 i jest
kasowany do 0 jeÊli licznik kontynuuje odliczanie.
• Licznik dwukierunkowy Up/down: liczenie w dwu kierunkach wymusza koniecznoÊç kontrolowania stanów obydwu wejÊç CU i CD. Te dwa wejÊcia sà kontrolowane
kolejno. Je˝eli jednoczeÊnie, obydwa wejÊcia majà stan 1, to wartoÊç bie˝àca
pozostaje nie zmieniona.
• Kasowanie Reset: gdy na wejÊciu R pojawia si´ 1, to wartoÊç bie˝àca %Ci.V jest
kasowana do 0 (wymuszenie), a wyjÊcia %Ci.E, %Ci.D oraz %Ci.F przyjmujà
wartoÊç 0. WejÊcie Reset ma najwy˝szy priorytet.
• Nastawianie Preset: gdy na wejÊciu S (preset) pojawia si´ 1, a wejÊcie R (reset) ma
stan 0, to wartoÊç bie˝àca %Ci.V przyjmuje wartoÊç %Ci.P, a na wyjÊciu %Ci.D jest
wystawiana 1.
Uwaga
Przy kasowaniu (wejÊcie R lub instrukcja R):
•w j´zyku Ladder, do historii stanów (log) wejÊç CU i CD zapisywane sà bie˝àce
stany tych wejÊç.
•w j´zyku LIST oraz ST historia stanów wejÊç CU i CD nie jest aktualizowana.
Dla ka˝dego z tych wejÊç zachowywana jest wartoÊç sprzed operacji kasowania.
Sytuacje szczególne
• Reakcja na zimny start: (%S0=1)
- wartoÊç bie˝àca %Ci.V jest kasowana do zera,
- bity wyjÊç %Ci.E, %Ci.D i %Ci.F sà kasowane do zera,
- przywracana jest wartoÊç nastawiona, która zosta∏a zdefiniowana w konfiguracji.
• Reakcja na goràcy start (%S1=1), zatrzymanie sterownika, dezaktywacj´
zadania lub przerwanie: nie majà wp∏ywu na bie˝àcà wartoÊç licznika (%Ci.V).
• Reakcja na zmian´ wartoÊci nastawionej %Ci.P: zmiana wartoÊci nastawionej
czy to za pomocà instrukcji, czy te˝ w trybie regulacji przynosi efekt w momencie, gdy
nast´puje przetworzenie bloku przez aplikacj´ (uaktywnienie jednego z wejÊç).
___________________________________________________________________________
1/15
B
Konfigurowanie i programowanie - przyk∏ad
Zadanie polega na liczeniu elementów (do 5000 sztuk). Ka˝dy impuls na wejÊciu %I1.2
(gdy bit wewn´trzny %M0 ma wartoÊç 1) powoduje zwi´kszanie wartoÊci licznika
zliczajàcego %C8 a˝ do osiàgni´cia wartoÊci nastawionej (bit %C8.D=1). Licznik jest
kasowany za poÊrednictwem wejÊcia %I1.1.
• Konfigurowanie
W edytorze zmiennych nale˝y zdefiniowaç nast´pujàce parametry:
- nastawienie %Ci.P na 5000 (dla tego przykladu),
- MODIF: Y.
• Programowanie
J´zyk Ladder
J´zyk List
LD
R
LD
AND
CU
LD
ST
%I1.1
%C8
%I1.2
%M0
%C8
%C8.D
%Q2.0
J´zyk ST
IF %I1.1 THEN
RESET %C8 ;
END_IF ;
%M1 := %I1.2 AND %M0 ;
IF RE %M1 THEN
UP %C8 ;
END_IF ;
%Q2.0 := %C8.D;
W j´zyku ST, do programowania licznika dwukierunkowego s∏u˝à 4 instrukcje:
• RESET %Ci : kasowanie wartoÊci bie˝àcej,
• PRESET %Ci : zastàpienie wartoÊci bie˝àcej wartoÊcià nastawionà,
• UP %Ci
: zwi´kszenie wartoÊci bie˝àcej,
• DOWN %Ci : zmniejszenie wartoÊci bie˝àcej.
Je˝eli w programie napisanym w j´zyku ST u˝yte sà instrukcje UP i DOWN, to
nast´puje skasowanie historii stanów (log) wejÊç CU i CD. Dlatego te˝, w przypadku
tych dwu instrukcji, u˝ytkownik musi samodzielnie zarzàdzaç tymi sygna∏ami.
___________________________________________________________________________
1/16
Instrukcje podstawowe - opis
1
B
1.4
Operacje numeryczne na liczbach ca∏kowitych
1.4-1 Wprowadzenie
Opisane w niniejszym rozdziale operacje numeryczne dotyczà nast´pujàcych obiektów:
• tablic bitowych,
• s∏ów,
• s∏ów podwójnej precyzji.
Instrukcje odnoszàce si´ do pozosta∏ych obiektów zosta∏y opisane w rozdziale
zatytu∏owanym " Instrukcje i funkcje z∏o˝one " .
J´zyk Ladder
Instrukcje numeryczne zapisuje si´ w blokach:
• porównywania (comparison) umieszczanych w strefie warunków (test zone),
• operacyjnych (operation), umieszczanych w strefie akcji (action zone).
Bloki te mogà zawieraç:
• wyra˝enia proste, np:
Arg3:=Arg1+Arg2,
• wyra˝enia z∏o˝one, np:
Arg5:=(Arg1+Arg2)*Arg3-Arg4.
J´zyk List
Instrukcje umieszcza si´ w nawiasach
kwadratowych.
Wykonanie instrukcji nast´puje, gdy logiczny wynik poprzedzajàcej jà instrukcji
testowania warunków jest równy 1.
J´zyk ST
Instrukcje numeryczne zapisuje si´ bezpoÊrednio.
Zastosowanie p´tli warunkowej IF umo˝liwia uzale˝nienie wykonania instrukcji numerycznej od wyniku wyra˝enia logicznego.
LD
[%MW50 & gt; 10]
ST
%Q2.2
LD
%I1.0
[%MW10:=%KW0+10]
LDF
%I1.2
[INC %MW100]
%Q2.2 := %MW50 & gt; 10 ;
IF %I1.0 THEN
%MW10 := %KW0 + 10 ;
END_IF ;
IF FE %I1.2 THEN
INC %MW100 ;
END_IF ;
___________________________________________________________________________
1/17
B
Lista argumentów:
Tablice bitowe
Skrót
Pe∏en adres
Rodzaj s∏ów
Dost´p
%M:L
%Mi:L
tablica bitów wewn´trznych
R/W
%I:L
%Ixy.i:L
tablica bitów wejÊciowych
R/W
%Q:L
%Qxy.i:L
tablica bitów wyjÊciowych
R/W
%Xi:L
%Xi:L lub %Xj.i:L
tablica bitów kroków
R
S∏owa pojedyncze
Skrót
Pe∏en adres
Rodzaj s∏ów
Dost´p
Indeks
Immed. val.
-
wartoÊci bezpoÊrednie
R
-
%MW
%MWi
s∏owo wewn´trzne
R/W
%MWi[index]
%KW
%KWi
wewn´trzna sta∏a
R
%KWi[index]
%SW
%SWi
s∏owo systemowe
R/W (1)
-
%IW
%IWxy.i(.r)
s∏owo wejÊciowe
R
-
%QW
s∏owo wyjÊciowe
R/W
-
%NW
%NW{j}k
%QWxy.i(.r)
s∏owo wspólne
R/W
-
%BLK
np. %TMi.P
s∏owo wydzielone z bloku
DFB lub standardowego
R/W (2)
-
%Xi.T
%Xi.T
czas aktywnoÊci kroku
R
%Xi.T [index]
(1)
Mo˝liwoÊç zapisu zale˝y od i. (2) Mo˝liwoÊç zapisu zale˝y od rodzaju s∏owa, np. wartoÊci
nastawione (%Ci.P mo˝e byç zapisywana, mimo, ˝e wartoÊç %Ci.V mo˝e byç tylko odczytywana).
S∏owa podwójnej precyzji
Skrót
Pe∏en adres
Rodzaj s∏ów podwójnych
Dost´p
Indeks
Immed. val.
wartoÊci bezpoÊrednie
R
-
%MDi
wewn´trzne s∏owo podw.
R/W
%MDi[index]
%KD
%KDi
wewn´trzna sta∏a podw.
R
%KDi[index]
%SD
%SDi
systemowe s∏owo podw.
R/W (1)
-
%ID
%IDxy.i(.r)
wejÊciowe s∏owo podw.
R
-
%QD
(1)
-
%MD
%QDxy.i(.r)
wyjÊciowe s∏owo podw.
R/W
-
Tylko s∏owo podwójne %SD18.
Uwagi
Pozosta∏e s∏owa takie, jak %MWxy.i %KWxy.i oraz %MDxy.i %KDxy.i, zachowujà si´
odpowiednio: jak s∏owa i s∏owa podwójne %MWi %KWi oraz %MDi %KDi.
Niejawna (Implicit) konwersja: s∏owa & lt; -- & gt; s∏owa podwójne
PL7 pozwala na mieszanie operacji na s∏owach i s∏owach podwójnej precyzji. Konwersja z
jednego formatu na drugi dokonuje si´ niejawnie. Operacja dotyczàca s∏owa podwójnego
lub kilku wartoÊci bezpoÊrednich jest automatycznie wykonywana w formacie podwójnym.
___________________________________________________________________________
1/18
Instrukcje podstawowe - opis
1
B
1.4-2 Instrukcje porównywania Comparison
Instrukcje porównywania s∏u˝à do porównywania dwóch argumentów.
& gt;
& gt;
=
& lt;
& lt;
=
=
& lt;
& gt;
:
:
:
:
:
:
sprawdzenie, czy argument 1 jest wi´kszy ni˝ argument 2.
sprawdzenie, czy argument 1 wiekszy lub równy argumentowi 2.
sprawdzenie, czy argument 1 jest mniejszy ni˝ argument 2.
sprawdzenie, czy argument 1 jest mniejszy lub równy argumentowi 2.
sprawdzenie, czy argument 1 jest równy argumentowi 2.
sprawdzenie, czy argument 1 jest ró˝ny od argumentu 2.
Wynikiem sprawdzenia jest 1, gdy warunek jest spe∏niony (prawda).
Struktura
J´zyk Ladder
J´zyk List
LD
ST
LD
AND
ST
LD
OR
ST
Bloki porównywania umieszcza si´ w strefie warunków (test zone).
[%MW10 & gt; 100]
%Q2.3
%M0
[%MW20 & lt; %KW35]
%Q2.2
%I1.2
[%MW30 & gt; = %MW40]
%Q2.4
Operacja porównywania jest zapisywana
w nawiasie kwadratowym umieszczanym
za funkcjami LD, AND lub OR.
J´zyk ST
%Q2.3 := %MW10 & gt; 100 ;
%Q2.2 := %M0 AND (%MW20 & lt; %KW35) ;
%Q2.4 := %I1.2 OR (%MW30 & gt; = %MW40) ;
Uwaga: U˝ywanie nawiasów nie jest obowiàzkowe, ale czyni ono program bardziej przejrzystym.
Sk∏adnia
Operatory: & gt; , & gt; =, & lt; , & lt; =,=, & lt; & gt;
Arg1 Operator Arg2
___________________________________________________________________________
1/19
B
Argumenty
Typ
Argument 1 i 2 (Arg1 i Arg2)
S∏owa indeksowalne
%MW,%KW
S∏owa nieindeksowalne
WartoÊci bezpoÊrednie,%IW,%QW,%SW,%NW,%BLK, %Xi.T
wyra˝enia numeryczne
Indeksowalne s∏owa podwójne
%MD,%KD
Nieindeksowalne s∏owa podw.
WartoÊci bezpoÊrednie,%ID,%QD,%SD,wyra˝enia num.
Uwagi
•W j´zyku Ladder operacja porównywania mo˝e byç równie˝ realizowana za pomocà
pionowego bloku porównywania (patrz cz´Êç B, rozdzia∏ 2.3).
•W j´zyku List instrukcje porównywania mogà byç zapisywane w nawiasach.
1.4-3 Instrukcje przypisania Assignment
Instrukcje przypisania s∏u˝à do zapisywania argumentu Arg2 w argumencie Arg1.
Sk adnia:
Arg1:=Arg2
& lt; = & gt;
Arg2- & gt; Arg1
Operacje przypisania mogà byç przeprowadzane na nast´pujàcych obiektach:
• tablicach bitowych,
• s∏owach i s∏owach podwójnych.
W obr´bie jednego bloku mo˝na zastosowaç kilka instrukcji przypisania:
Arg1:=Arg2:=Arg3:=Arg4:=...
Przypisywanie tablic bitowych (patrz: opis tablic bitowych w rozdz. 1.2-6, cz´Êci A)
Na tablicach bitowych mo˝na wykonywaç nast´pujàce operacje przypisania:
• tablica bitowa - & gt; tablica bitowa
Przyk∏ad 1
• tablica bitowa - & gt; s∏owo lub s∏owo podwójne (indeksowane) Przyk∏ad 2
• s∏owo lub s∏owo podwójne (indeksowane) - & gt; tablica bitowa Przyk∏ad 3
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[%Q2.0:8:= %M10:8]
Przyk ad 1
LD
%I3.2
[%MW100:= %I1.0:16 ] Przyk ad 2
LDR %I3.3
[%M100:16:=%KW0]
Przyk ad 3
___________________________________________________________________________
1/20
Instrukcje podstawowe - opis
1
B
J´zyk ST
Przyk∏ad 1
%Q2.0:8 := %M10:8 ;
IF %I3.2 THEN
%MW100 := %I1.0:16 ; Przyk∏ad 2
END_IF ;
IF RE %I3.3 THEN
%M100:16 := %KW0 ; Przyk∏ad 3
END_IF ;
Sk∏adnia
Operator :=
Arg1:=Arg2
Operands
Typ
Argument 1 (Arg1)
Argument 2 (Arg2)
Tablica bitowa
%M:L,%Q:L,%I:L
%M:L,%Q:L,%I:L, %Xi:L
S∏owa indeksowalne
%MW
%MW,%KW
S∏owa nieindeksowalne
%QW,%SW,%NW
%BLK
Wart. bezp.,%IW,%QW,%SW
%NW,%BLK,%Xi.T,Wyr.num.
Indeks. s∏owa podwójne
%MD
%MD,%KD
Nieindeks. s∏owa podwójne
%QD,%SD,
Wart. bezp.,%ID,%QD,%SD
Wyra˝enie numeryczne
Regu∏y dotyczàce stosowania
• Tablice bitowe: êród∏owa i docelowa nie muszà mieç koniecznie takich samych
d∏ugoÊci. Je˝eli tablica êród∏owa jest d∏u˝sza od tablicy docelowej, to przeniesione
zostanà tylko bity mniej znaczàce. W przypadku odwrotnym tablica docelowa
uzupe∏niana jest zerami.
• Przypisywanie tablica bitowa - & gt; s∏owo (lub s∏owo podwójne): bity z tablicy sà
przenoszone do s∏owa (do s∏owa o ni˝szym priorytecie z dwóch s∏ów tworzàcych
s∏owo podwójne) poczàwszy od prawej strony (pierwszy bit tablicy jest zapisywany
do bitu 0 s∏owa). Bity s∏owa, dla których nie zosta∏y przeniesione wartoÊci (d∏ugoÊç
& lt; 16 lub 32) przyjmujà wartoÊci 0.
• Przypisanie s∏owo - & gt; tablica bitowa: bity s∏owa sà poddawane transferowi poczàwszy od prawej strony (bit 0 s∏owa jest zapisywany jako pierwszy bit tablicy).
___________________________________________________________________________
1/21
B
Przypisywanie s∏ów
W odniesieniu do s∏ów mogà byç stosowane nast´pujàce operacje przypisania:
• s∏owo (indeksowane) - & gt; s∏owo (indeks.) lub podwójne (indeks.)
Przyk∏ad 1
• s∏owo podwójne (indeks.) - & gt; s∏owo (indeks.) lub podwójne (indeks.) Przyk∏ad 2
• wartoÊç bezp. - & gt; s∏owo (indeks.) lub s∏owo podwójne (indeks.)
Przyk∏ad 3
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[%SW112 := %MW100]
Przyk ad 1
LD
%I3.2
[%MD0:= %KD0[%MW20] ] Przyk ad 2
J´zyk ST
IF RE %I3.3 THEN
%MW10 := 100 ;
END_IF ;
Sk∏adnia
Operator :=
Przyk ad 3
Arg1:=Arg2
Argumenty
Typ
Argument 1 (Arg1)
Argument 2 (Arg2)
S∏owa indeksowalne
%MW
%MW,%KW
S∏owa nieindeksowalne
%QW,%SW,%NW,
%BLK
Wart. bezp.,%IW,%QW,%SW
%NW,%BLK,%Xi.T, Wyr. num.
Indeksowalne s∏owa podwójne
%MD
%MD,%KD
Nieindeksowalne s∏owa podw.
%QD,%SD,
Wart. bezp.,%ID,%QD,%SD
Wyra˝enie numeryczne
Uwaga
Konwersja s∏owo & lt; -- & gt; s∏owo podwójne odbywa si´ niejawnie podczas wykonywania operacji przypisania s∏owo podwójne -- & gt; s∏owo. Je˝eli wartoÊç s∏owa podwójnego nie mieÊci si´ w s∏owie, to bit %S18 przyjmuje wartoÊç 1.
Istnieje mo˝liwoÊç stosowania wielokrotnego przypisania.
Przyk∏ad: %MW0 := %MW2 := %MW4
Nale˝y zwróciç uwag´, ˝e w przyk∏adzie %MD14 := %MW10 := %MD12, przypisanie %MD14 := %MD12 nie odpowiada prawdzie, gdy˝ podczas przypisania
s∏owa podwójnego do s∏owa %MW10 s∏owo o wy˝szym priorytecie zostanie
zignorowane (w efekcie konwersji s∏owa podwójnego na s∏owo pojedyncze).
___________________________________________________________________________
1/22
Instrukcje podstawowe - opis
1
B
1.4-4 Instrukcje arytmetyczne na liczbach ca∏kowitych
Opisane poni˝ej instrukcje umo˝liwiajà wykonywanie operacji arytmetycznych pomi´dzy dwoma argumentami lub na jednym argumencie.
SQRT:
+ : dodawanie dwóch argumentów
SQRT
- : odejmowanie dwóch argumentów
INC :
* : mno˝enie dwóch argumentów
DEC :
/ : dzielenie dwóch argumentów
ABS :
REM : reszta z dzielenia dwóch argumentów
Struktura
J´zyk Ladder
pierwiastek z argumentu
zwi´kszenie wartoÊci argumentu
zmniejszenie wartoÊci argumentu
modu∏ argumentu
J´zyk List
LD
%MW0
[%MW0 := %MW10 + 100]
LD
%I3.2
[%MW0 := SQRT(%MW10)]
LDR
%I3.3
[INC %MW100]
J´zyk ST
IF %M0 THEN
%MW0 := %MW10 + 100 ;
END_IF ;
IF %I3.2 THEN
%MW0 := SQRT (%MW10) ;
END_IF ;
IF RE %I3.3 THEN
INC %MW100 ;
END_IF ;
Sk∏adnia
Operatory
• +, -, *, /, REM
Arg1:=Arg2 Operator Arg3
• SQRT ABS
SQRT,
Arg1:=Operator(Arg2)
• INC DEC
INC,
Operator Arg1
___________________________________________________________________________
1/23
B
Argumenty
Typ
Argument 1 (Arg1)
Argumenty 2 i 3 (Arg2 i 3)
S∏owa indeksowalne
%MW
%MW,%KW
S∏owa nieindeksowalne
%QW,%SW,%NW,
%BLK
Wart. bezp.,%IW,%QW,%SW
%NW,%BLK,%Xi.T,Wyr.num.
Indeksowalne s∏owa podw.
%MD
%MD,%KD
Nieindeks. s∏owa podwójne
%QD,%SD,
Wart. bezp.,%ID,%QD,%SD
Wyra˝enie numeryczne
Uwaga:
Operacji INC oraz DEC nie mo˝na u˝ywaç w wyra˝eniach numerycznych.
Regu∏y dotyczàce operacji
• Dodawanie: przekroczenie limitu
Je˝eli suma przekroczy podane ograniczenia:
-32768 lub +32767 dla argumentu pojedynczej precyzji,
-2 147 483 648 lub +2 147 483 647 dla argumentu podwójnej precyzji,
to bit %S18 (przepe∏nienie) przyjmuje wartoÊç 1. Wynik operacji jest wtedy nieznaczàcy. Stanem bitu %S18 zarzàdza program.
Przyk∏ad:
J´zyk Ladder
J´zyk List
LD
%M0
[%MW0 := %MW1+ %MW2]
LDN
%S18
[%MW10 := %MW0 ]
LD
%S18
[%MW10 := 32767 ]
R
%S18
J´zyk ST
IF %M0 THEN
%MW0 := %MW1 + %MW2 ;
END_IF ;
IF %S18 THEN
%MW10 := 32767 ; RESET %S18 ;
ELSE
%MW10 := %MW0 ;
END_IF ;
JeÊli %MW1=23241 i %MW2=21853, to rzeczywisty wynik (45094) nie mo˝e byç wyra˝ony
w s∏owie 16-bitowym. Bit %S18 przyjmuje wartoÊç 1, a uzyskany wynik (-20442) jest niew∏aÊciwy.
W tym przyk∏adzie: gdy wynik dzia∏ania jest wi´kszy ni˝ 32767, to przyjmuje si´ 32767.
___________________________________________________________________________
1/24
Instrukcje podstawowe - opis
1
B
• Mno˝enie:
Przekroczenie limitu podczas wykonywania operacji.
Je˝eli wynik dzia∏ania przekroczy pojemnoÊç s∏owa wynikowego, to bit %S18
(przepe∏nienie) przyjmuje wartoÊç 1, a wynik dzia∏ania jest nieznaczàcy.
• Dzielenie/reszta:
Dzielenie przez 0.
Je˝eli dzielnikiem jest 0, to wykonanie operacji dzielenia jest niemo˝liwe i bit
systemowy %S18 przyjmuje wartoÊç 1. Wynik operacji jest nieprawid∏owy.
Przekroczenie limitu podczas wykonywania operacji.
• Obliczanie pierwiastka kwadratowego:
Operacji obliczania pierwiastka kwadratowego dokonuje si´ tylko na liczbach
dodatnich tak, ˝e wynik jest zawsze dodatni. Je˝eli argument jest ujemny, to bit
systemowy %S28 przyjmuje wartoÊç 1, a wynik operacji jest nieprawid∏owy.
Uwaga:
• Je˝eli wynik operacji nie jest liczbà ca∏kowità (w przypadku dzielenia lub obliczania pierwiastka
kwadratowego), to wynik jest zaokràglany w dó∏ do najbli˝szej liczby ca∏kowitej.
• Znak reszty (REM) jest taki sam jak znak licznika.
• Za zarzàdzanie bitem systemowym %S18 odpowiada program u˝ytkowy. Sterownik nadaje
mu wartoÊç 1, którà program musi skasowaç, by móg∏ on byç powtórnie u˝yty (patrz przyk∏ad
ze strony poprzedniej).
1.4-5 Instrukcje logiczne
Wymienione poni˝ej instrukcje umo˝liwiajà wykonywanie operacji logicznych na
dwóch argumentach lub na jednym argumencie.
AND
OR
XOR
NOT
:
:
:
:
Koniunkcja (bit po bicie) dwóch argumentów
Alternatywa (bit po bicie) dwóch argumentów
Nierównowa˝noÊç (bit po bicie) dwóch argumentów
Logiczne dope∏nienie (bit po bicie) argumentu
Struktura
J´zyk Ladder
J´zyk List
LD
%M0
[%MW0 := %MW10 AND 16#FF00]
LD
TRUE
[%MW0 := %KW5 OR %MW10]
LD
%I1.3
[%MW102:= NOT %MW100]
___________________________________________________________________________
1/25
B
J´zyk ST
IF %M0 THEN
%MW0 := %MW10 AND 16#FF00 ;
END_IF ;
%MW0 := %KW5 OR %MW10 ;
IF %I1.3 THEN
%MW102 := NOT %MW100 ;
END_IF ;
Sk∏adnia
Operatory
• AND OR XOR
AND, OR, XOR,
Arg1:=Arg2 Operator Arg3
NOT,
• NOT
Arg1:=NOT Arg2
Argumenty
Typ
Argument 1 (Arg1)
Argument 2 i 3 (Arg2 i 3)
S∏owa indeksowalne
%MW
%MW,%KW
S∏owa nieindeksowalne
%QW,%SW,%NW,
%BLK
Wart. bezp.,%IW,%QW,%SW
NW,%BLK,%Xi.T,Wyr. num.
Indeksowalne s∏owa podw.
%MD
%MD,%KD
Nieindeksowalne s∏owa podw.
%QD,%SD
Wart. bezp.,%ID,%QD,%SD
Wyra˝enie numeryczne
___________________________________________________________________________
1/26
Instrukcje podstawowe - opis
1
B
1.4-6 Wyra˝enia numeryczne
Wyra˝enia numeryczne sk∏adajà si´ z kilku argumentów numerycznych i, opisanych
poni˝ej, operatorów logicznych lub arytmetycznych.
Przyk∏ad: %MW25 * 3 - SQRT(%MW10) + %KW8* (%MW15 + %MW18) AND 16#FF
Liczba argumentów i operatorów w wyra˝eniach arytmetycznych nie jest ograniczona.
Wyra˝enia numeryczne w odniesieniu do liczb ca∏kowitych
Argumenty w danym wyra˝eniu numerycznym mogà byç zarówno pojedynczej jak
i podwójnej precyzji.
%MW6 * %MW15 + SQRT(%DW6) /(%MW149[%MW8]) + %KD29) AND 16#FF
Argument lub operacja na argumencie mo˝e byç poprzedzona znakiem + lub (domyÊlnie przyjmuje si´ znak +).
Przyk∏ad: SQRT (%MW5) * - %MW9
W wyra˝eniach arytmetycznych mo˝na u˝ywaç wszystkich s∏ów, niektóre mogà byç
indeksowane.
Priorytet wykonywania instrukcji
W wyra˝eniach numerycznych instrukcje sà wykonywane w nast´pujàcej kolejnoÊci:
1
& gt;
operacja na
argumencie
2
& gt;
*
/
REM
3
+
-
& gt;
4
& gt;
& lt; & gt;
,
& lt; ,=
=
& gt;
5
=
& lt;
& gt;
& gt;
6
& gt;
AND
7
& gt;
XOR
8
OR
W przyk∏adzie poni˝ej, instrukcje sà wykonywane w nast´pujàcym porzàdku:
SQRT (%MW3) + %MW5 * 7 AND %MW8 OR %MW5 XOR %MW10
1
2
3
4
5
6
Nawiasy
Dzi´ki zastosowaniu nawiasów mo˝na zmieniaç kolejnoÊç wykonywania operacji. Zaleca si´ ich stosowanie w celu nadania w∏aÊciwej struktury wyra˝eniom numerycznym.
((%MW5 AND %MW6) + %MW7) * %MW8
1
2
3
___________________________________________________________________________
1/27
B
1.5
Instrukcje programowe
1.5-1 Wywo∏anie procedury Subroutine call
Instrukcja wywo∏ania procedury umo˝liwia wywo∏anie modu∏u podprogramu w obr´bie
tego samego zadania.
Struktura
J´zyk Ladder
J´zyk List
LD
%M8
SR10
J´zyk ST
IF %M8 THEN
SR10 ;
END_IF ;
Symbol SRi reprezentuje wywo∏ywanà procedur´: i jest liczbà z przedzia∏u 0 ÷ 253).
Regu∏y
• Wywo∏anie procedury mo˝e dotyczyç procedury ju˝ istniejàcej.
• W akcji nast´pujàcej po instrukcji wywo∏ania procedury, wykonywany jest powrót do
programu (subroutine return).
• W obr´bie danej procedury mo˝na umieszczaç wywo∏ania innych procedur. Liczba
takich wywo∏aƒ ograniczona jest do 8 poziomów.
• Przocedury sà przypisane do danego zadania. Stàd te˝ mogà one byç wywo∏ywane
tylko w obr´bie tego zadania.
Zasada wywo∏ywania procedur
Modu∏ procedury
Modu∏ procedury
___________________________________________________________________________
1/28
Instrukcje podstawowe - opis
1
B
1.5-2 Powrót do programu Subroutine return
Instrukcja powrotu do programu jest zarezerwowana dla modu∏u procedury i umo˝liwia
powrót do modu∏u wywo∏ujàcego (gdy poprzedzajàcy jà warunek logiczny jest spe∏niony).
Struktura
J´zyk Ladder
J´zyk List
LD
RETC
%M8
J´zyk ST
IF %M8 THEN
RETURN ;
END_IF ;
Regu∏y
Instrukcja powrotu do programu wywo∏ujàcego jest ukryta na koƒcu ka˝dej procedury.
Jej wczeÊniejsze u˝ycie umo˝liwia powrót do programu przed koƒcem procedury.
Przyk∏ad:
Przyk∏ad
J´zyk Ladder
J´zyk List
LD
[%MW5 & gt; 3]
RETC
LD
%M8
[%MD26:=%MW4*%KD6]
J´zyk ST
IF (%M5 & gt; 3) THEN
RETURN ;
END_IF ;
IF %M8 THEN
%MD26 := %MW4 * %KD6 ;
END_IF ;
W j´zyku List mo˝na stosowaç dodatkowo instrukcje:
RETCN : powrót do programu, gdy poprzedzajàcy warunek logiczny ma wartoÊç 0.
: bezwarunkowy powrót do programu.
RET
___________________________________________________________________________
1/29
B
1.5-3 Instrukcje skoku Jump
Instrukcja skoku umo˝liwia przejÊcie do linii programu oznaczonej etykietà %Li:
JMP
: skok bezwarunkowy,
JMPC : skok, gdy wynikiem poprzedzajàcego warunku logicznego jest 1,
JMPCN : skok, gdy wynikiem poprzedzajàcego warunku logicznego jest 0,
Symbol %Li reprezentuje etykiet´ linii, do której ma nastàpiç skok (i jest liczbà
z przedzia∏u od 1 do 999, maksymalnie 256 etykiet).
Struktura
J´zyk Ladder
J´zyk List
LD
JMPC
LD
ST
..............
%L10 :
LD
ST
LD
AND
ST
%M8
%L10
%I1.0
%Q2.5
Skok do linii
%L10 gdy %M8
ma wartoÊç 1.
%M20
%M5
%I1.0
%I1.2
%Q2.1
J´zyk ST
IF %M8 THEN
JUMP %L10 ;
END_IF ;
%Q2.5 := %I1.0 ;
Skok do linii %L10,
gdy %M8 ma wartoÊç 1.
%L10 :
%M5 := %M20 ;
%Q2.1 := %I1.0 AND %I1.2 ;
___________________________________________________________________________
1/30
Instrukcje podstawowe - opis
1
B
J´zyk Ladder
J´zyk List
LD
JMPCN
LDN
ST
..............
%L20 :
LD
ST
%M2
%L20
%I2.0
%Q3.5
Skok do linii
%L20 gdy %M2
ma wartoÊç 0.
%M30
%M6
J´zyk ST
IF NOT %M2 THEN
JUMP %L20 ;
END_IF ;
%Q3.5 := NOT %I2.0 ;
Skok do linii %L20,
gdy %M2 ma wartoÊç 0.
%L20 :
%M6 := %M30 ;
J´zyk Ladder
J´zyk List
JMP
%L20 :
LD
ST
..............
%L40 :
LD
ST
%L40
%I2.1
%Q3.5
Bezwarunkowy skok do linii
%L40.
%M20
%M5
J´zyk ST
JUMP %L40 ;
%L20 :
%Q3.5 := %I2.1 ;
Bezwarunkowy
skok do linii %L40,
%L40 :
%M5 := %M20 ;
___________________________________________________________________________
1/31
B
Regu∏y
• Skok odbywa si´ w obr´bie danego modu∏u programowego (program g∏ówny
zadania g∏ównego MAIN, procedura %SRi, itp).
• Skok mo˝e byç wykonywany zarówno do linii wczeÊniejszej jak i do linii póêniejszej
(wzgl´dem linii bie˝àcej).
W przypadku skoku do linii wczeÊniejszej nale˝y zwróciç uwag´ na czas trwania
przejÊcia programu (scan time): czas przejÊcia programu ulega wyd∏u˝eniu, co mo˝e
oznaczaç przekroczenie czasu wykonania zadania.
1.5-4 Instrukcje koƒca programu
Moment zakoƒczenia wykonywania programu definiuje si´ przy pomocy instrukcji
END, ENDC oraz ENDCN:
: bezwarunkowy koniec programu
END
ENDC : koniec programu, gdy poprzedzajàcy warunek logiczny ma wartoÊç 1.
ENDCN : koniec programu, gdy poprzedzajàcy warunek logiczny ma wartoÊç 0.
DomyÊlnie (praca w trybie normalnym), zakoƒczenie programu powoduje uaktualnienie stanów wyjÊç i ropocz´cie nowego " przejÊcia " programu.
Je˝eli program wykonywany jest periodycznie, to po uaktualnieniu stanów wyjÊç
program czeka na zakoƒczenie cyklu i dopiero po nim nast´puje nowe " przejÊcie " .
Uwaga:
W/w instrukcje mogà byç stosowane tylko w j´zyku List do programowania zadania g∏ównego.
Przyk∏ad:
J´zyk List
LD
%M1
ST
%Q2.1
LD
%M2
ST
%Q2.2
.....................
END
LD
%M1
ST
%Q2.1
LD
%M2
ST
%Q2.2
.....................
LD
%I1.2
ENDC
LD
%M2
ST
%Q2.2
....................
END
Gdy %I1.2 =1, nast´puje
koniec programu.
Gdy %I1.2 =0 program
jest wykonywany a˝ do
nast´pnej instrukcji END.
___________________________________________________________________________
1/32
Instrukcje podstawowe - opis
1
B
1.5-5 Zatrzymanie programu
Wykonywany program mo˝e zostaç zatrzymany za pomocà instrukcji HALT (zatrzymanie wszystkich zadaƒ). Powoduje ona zamro˝enie zmiennych w programie.
Zatrzymany w ten sposób program uruchamia si´ poprzez jego ponownà inicjacj´ (za
pomocà komendy INIT). ˚adna z instrukcji nast´pujàcych po instrukcji HALT nie jest
wykonywana.
Struktura
J´zyk Ladder
J´zyk List
LD
%M10
HALT
J´zyk ST
IF %M10 THEN
HALT ;
END_IF ;
___________________________________________________________________________
1/33
B
1.5-6 Instrukcja maskowania zdarzeƒ
Instrukcja maskowania zdarzeƒ s∏u˝y do ukrywania i odkrywania zdarzeƒ wyzwalajàcych zadania.
MASKEVT : powoduje na∏o˝enie maski na wszystkie zdarzenia. Zdarzenia sà zapami´tywane przez sterownik lecz sprz´˝one z nimi zadania nie sà wykonywane dopóty,
dopóki nie zostanie zdj´ta maska (instrukcja UNMASKEVT).
UNMASKEVT : powoduje odkrycie wszystkich zdarzeƒ. Nast´puje przetworzenie
wszystkich zdarzeƒ, które zosta∏y zignorowane za wzgl´du na zamaskowanie. Przetwarzanie zdarzeƒ trwa do momentu pojawienia si´ nowej instrukcji MASKEVT.
Struktura
J´zyk Ladder
J´zyk List
LD
%M0
[MASKEVT()]
LD
%M8
[UNMASKEVT()]
J´zyk ST
IF %M0 THEN
MASKEVT ( ) ;
END_IF ;
IF %M8 THEN
UNMASKEVT ( ) ;
END_IF ;
1.5-7 Instrukcja NOP
Instrukcja NOP nie powoduje wykonania jakiejkolwiek operacji. Umo˝liwia ona " rezerwowanie " linii w programie w celu póêniejszego uzupe∏nienia ich instrukcjami bez
koniecznoÊci modyfikowania numeracji linii.
___________________________________________________________________________
1/34
Instrukcje z∏o˝one 22
Rozdzia∏
2 Instrukcje z∏o˝one
2.1
Wprowadzenie
2.1-1 WiadomoÊci ogólne
Instrukcje opisane w niniejszym rozdziale sà wykorzystywane przy programowaniu
bardziej skomplikowanych aplikacji.
Bez wzgl´du na j´zyk w jakim sà one u˝ywane, powodujà ten sam efekt. Ró˝nià si´
tylko sk∏adnià. Sà to:
• albo podstawowe instrukcje oprogramowania,
• albo funkcje traktowane jako rozszerzenie oprogramowania.
Instrukcje pe∏niàce rol´ funkcji dodatkowych s∏u˝à do zwi´kszania mo˝liwoÊci
oprogramowania poprzez zastosowanie specjalnych instrukcji.
• operacje na ∏aƒcuchach znaków, tablicach s∏ów, itp.
• funkcje specjalne: Komunikacja, Sterowanie procesem, Interfejs Czlowiek - Maszyna
(funkcja MMI), itp.
Instrukcje z∏o˝one obejmujà nast´pujàce grupy:
• ∏aƒcuchy znaków,
• tablice s∏ów,
• zarzàdzanie danymi i czasem trwania,
• konwersje,
• tablice bitowe,
• funkcje " Orphee "
•
•
•
•
Komunikacja
Sterowanie procesem
Interfejs Cz∏owiek - Maszyna == & gt;
Sterowanie ruchem
patrz: funkcje specjalne
Uwagi dotyczàce programowania
Instrukcje pe∏niàce rol´ funkcji zajmujà dodatkowy obszar pami´ci aplikacji (tylko
pod warunkiem, ˝e sà zastosowane w programie).
Podczas programowania nale˝y uwzgl´dniç fakt, ˝e ka˝da funkcja (niezale˝nie od
liczby wystàpieƒ w programie) zajmuje dodatkowy obszar (nale˝y obserwowaç
wielkoÊç zaj´tej pami´ci sterownika).
___________________________________________________________________________
2/1
B
B
2.2
Bloki funkcyjne z∏o˝one (standardowe)
2.2-1 Blok przerzutnika monostabilnego %MNi
Blok przerzutnika monostabilnego s∏u˝y
do generowania impulsu o ÊciÊle okreÊlonym czasie trwania.
Czas trwania impulsu jest programowany
i mo˝e byç modyfikowany za pomocà
terminala.
Blok przerzutnika
monostabilnego
Charakterystka
Numer
%MNi
0 do 7 dla TSX 37, 0 do 254 dla TSX 57
Podstawa czasu
TB
1min, 1s, 100ms, 10ms (domyÊlnie - 1min).
WartoÊç bie˝àca
%MNi.V
S∏owo, którego wartoÊç maleje od %MNi.P do 0
podczas pracy zegara. Mo˝e byç ona czytana
i testowana lecz nie mo˝e byç zapisywana.
WartoÊç nastawiona
%MNi.P
0 & lt; %MNi.P & lt; 9999. S∏owo - mo˝na je czytaç,
testowaç i zapisywaç. Czas trwania impulsu
(PRESET) wynosi: %MNi.P x TB.
Edycja - terminal
MODIF
Y/N
Y: mo˝liwoÊç zmiany wartoÊci nastawionej
podczas regulacji (tryb adjust).
N: brak dost´pu w trybie regulacji.
WejÊcie Start
(lub instrukcja)
S(Start)
Na zboczu rosnàcym %MNi.V = %MNi.P, potem
%MNi.V jest zmniejszana do 0.
WyjÊcie
R(Praca)
Sprz´˝ony z nim bit %MNi.R ma wartoÊç 1, gdy
%MNi.V & gt; 0 (blok wykonuje operacje).
%MNi.R = 0 jeÊli %MNi.V = 0.
Sposób dzia∏ania
Gdy na wejÊciu S bloku pojawia si´ wartoÊç 1 (zbocze rosnàce), wartoÊç bie˝àca
%MNi.V przyjmuje wartoÊç zapisanà w %MNi.P (wartoÊç nastawiona), a blok zaczyna odliczanie do 0, zmniejszajàc wartoÊç bie˝àcà o jednostk´ przy ka˝dym impulsie
podstawy czasu TB. Bit wyjÊciowy %MNi.R (Running) przypisany do wyjÊcia R zmienia stan na 1 i utrzymuje t´ wartoÊç dopóki wartoÊç bie˝àca %MNi.V jest ró˝na od 0.
W momencie, gdy %MNi.V = 0, bit wyjÊciowy %MNi.R powraca do stanu 0.
WejÊcie S:
WartoÊç bie˝àca %MNi.V:
WyjÊcie R:
___________________________________________________________________________
2/2
Instrukcje z∏o˝one
2
B
Programowanie i konfigurowanie
• Przyk∏adowe zastosowanie: impulsowanie ze zmiennym cyklem: wartoÊç
nastawiona ka˝dego bloku monostabilnego okreÊla czas trwania poszczególnych impulsów.
• Konfigurowanie
Przy pomocy edytora zmiennych nale˝y zdefiniowaç nast´pujàce parametry:
- TB : 1min, 1s, 100ms, 10ms lub 1ms (dla tego przyk∏adu - 100ms).
- %MNi.P : 0 do 9999 (dla tego przyk∏adu %MN0.P=50 i %MN1.P=20).
- MODIF : Y lub N.
• Programowanie
J´zyk Ladder
J´zyk List
LDN
ANDN
S
LD
ST
LDN
S
%MN1.R
%Q3.0
%MN0
%MN0.R
%Q3.0
%MN0.R
%MN1
J´zyk ST
%M0:=NOT %MN1.R ;
IF RE %M0 THEN
START %MN0 ;
END_IF ;
%Q3.0 := %MN0.R ;
%M1 := NOT %MN0.R ;
IF RE %M1 THEN
START %MN1 ;
END_IF ;
W tym przyk∏adzie, wyjÊcie %Q3.0 przyjmuje wartoÊç 1 na czas 5s (%MN0.P) i kasuje
si´ do 0 na 2s (%MN1.P).
W j´zyku ST, instrukcja START %Mni s∏u˝y do wystartowania bloku monostabilnego.
Wymusza ona 1 na wejÊciu S bloku i w ten sposób powoduje jego inicjacj´. Stàd te˝
uaktywnienie tej instrukcji powinno odbywaç si´ podczas trwania impulsu.
___________________________________________________________________________
2/3
B
Uwaga
Funkcja przerzutnika monostabilnego mo˝e byç równie˝ realizowana przy pomocy
bloku funkcyjnego %TMi pracujàcego w trybie TP (cz´Êç B, rozdz.1.3-2).
Przypadki szczególne
• Reakcja na zimny start: (%S0 = 1) wartoÊç nastawiona %MNi.P jest ∏adowana do
wartoÊci bie˝àcej %MNi.V. WyjÊcie %MNi.R jest kasowane do 0, poniewa˝ wartoÊç
nastawiona mog∏a byç zmodyfikowana, a w reakcji na zimny start nowa wartoÊç
zostaje utracona.
• Reakcja na goràcy start: (%S1=1) nie ma ˝adnego wp∏ywu na bie˝àcà wartoÊç
bloku monostabilnego (%MNi.V).
• Reakcja na zatrzymanie sterownika, dezaktywacj´ zadania lub przerwanie: ˝adna
z tych sytuacji nie powoduje zamro˝enia wartoÊci bie˝àcej.
• Reakcja na skok programu: fakt, ˝e cz´Êç programu zawierajàcego blok
monostabilny nie jest skanowana (program nie " czyta " tej cz´Êci programu) nie
powoduje zamro˝enia wartoÊci bie˝àcej %MNi.V, która nadal maleje do 0.
Podobnie, bit %MNi.R przypisany do wyjÊcia bloku przyjmuje wartoÊci wynikajàce
z normalnej pracy bloku i dlatego mo˝e on byç testowany w innej cz´Êci programu.
Jednak˝e, sprz´˝enie (cewka) bezpoÊrednio " podpi´te " do wyjÊcia bloku (np.
%Q3.0) nie zostanie uaktywnione poniewa˝ sterownik go nie odczytuje.
• Testowanie bitu %MNi.R: w czasie jednego " przejÊcia " (scan) stan tego bitu mo˝e
ulegaç zmianie.
___________________________________________________________________________
2/4
Instrukcje z∏o˝one
2
B
2.2-2 Rejestr %Ri
Rejestr jest blokiem pami´ciowym, w którym mo˝na zapami´tywaç, na dwa ró˝ne
sposoby, do 255 s∏ów 16-bitowych:
• w postaci kolejki (queue), zwanej
stosem typu FIFO (pierwszy na wejÊciu,
pierwszy na wyjÊciu First In, First Out).
• w postaci stosu (stack), zwanego
stosem typu LIFO (ostatni na wejÊciu,
pierwszy na wyjÊciu Last In, First Out).
Blok rejestru
Charakterystyka
Numer rejestru
%Ri
0 do 3 dla TSX 37, 0 do 254 dla TSX 57
Rodzaj
FIFO
LIFO
Kolejka.
Stos (ustawienie domyÊlne).
D∏ugoÊç
w rejestrze
LEN
Liczba s∏ów 16-bitowych (1- LEN- 255)
S∏owo wejÊciowe
%Ri.I
S∏owo wejÊciowe rejestru. Mo˝na je czytaç,
testowaç i zapisywaç.
S∏owo wyjÊciowe
%Ri.O
S∏owo wyjÊciowe rejestru. Mo˝na je czytaç,
testowaç i zapisywaç.
WejÊcie Zapis
(lub instrukcja)
I (In)
Przy zboczu rosnàcym powoduje zapisanie
treÊci s∏owa %Ri.I w rejestrze.
WejÊcie Odczytaj
(lub instrukcja)
O (Out)
Przy zboczu rosnàcym powoduje zapisanie
treÊci s∏owa z rejestru do s∏owa %Ri.O.
WejÊcie Kasuj
(lub instrukcja)
R (Reset)
WartoÊç 1 powoduje inicjacj´ rejestru.
WyjÊcie Pusty
E (Empty)
Bit wyjÊciowy %Ri.E sygnalizuje, ˝e rejestr
jest pusty. Mo˝na go testowaç.
WyjÊcie Pe∏ny
F (Full)
Bit wyjÊciowy %Ri.F sygnalizuje, ˝e rejestr
jest pe∏ny. Mo˝na go testowaç.
Uwaga:
Jednoczesne uaktywnienie wejÊç I oraz O powoduje wykonanie wpierw operacji zapisania,
a dopiero potem odczytania zawartoÊci rejestru.
___________________________________________________________________________
2/5
B
FIFO (pierwszy na wejÊciu, pierwszy na wyjÊciu)
Dane wprowadzone jako pierwsze b´dà
jako pierwsze odczytane. W odpowiedzi
na ˝àdanie zapisania (zbocze rosnàce na
wejÊciu I lub u˝ycie instrukcji I), zawartoÊç
s∏owa wejÊciowego %Ri.I (która zosta∏a
wczeÊniej za∏adowana) zostaje zapisana
na szczycie stosu (rys. a).
Je˝eli stos jest zape∏niony (wyjÊcie F=1),
to nie ma mo˝liwoÊci zapisywania danych
i bit systemowy %S18 ma stan 1.
W odpowiedzi na ˝àdanie odczytania
(zbocze rosnàce na wejÊciu O lub u˝ycie
instrukcji O), dane s∏owa znajdujàcego si´
najni˝ej w stosie zostajà zapisane w s∏owie
%Ri.O a zawartoÊç rejestru zmniejsza si´ o
jednà pozycj´ (rys. b).
Je˝eli rejestr jest pusty (wyjÊcie E=1), to
nie ma mo˝liwoÊci dokonywania odczytu.
S∏owo wyjÊciowe %Ri.O si´ nie zmienia
i zachowuje swojà zawartoÊç. ZawartoÊç
stosu mo˝na w dowolnym momencie kasowaç (1 na wejÊciu R lub instrukcja R).
LIFO (ostatni na wejÊciu, pierwszy na wyjÊciu)
Dane zapisane jako ostatnie zostanà
odczytane jako pierwsze. W odpowiedzi na
˝àdanie zapisania (zbocze rosnàce na
wejÊciu I lub u˝ycie instrukcji I), zawartoÊç
s∏owa wej. %Ri.I (która zosta∏a wczeÊniej
za∏adowana) zostaje zapisana na szczycie
(rys. c). Je˝eli stos jest zape∏niony (wyjÊcie
F=1), to nie ma mo˝liwoÊci zapisywania
danych i bit systemowy %S18 ma stan 1.
W reakcji na ˝àdanie odczytania (zbocze
rosnàce na wejÊciu O lub instrukcja O), dane
s∏owa znajdujàcego si´ najwy˝ej w stosie
zostajà zapisane w s∏owie %Ri.O (rys. d).
Je˝eli rejestr jest pusty (wyjÊcie E=1), to nie
ma mo˝liwoÊci dokonywania odczytu. S∏owo
wyjÊciowe %Ri.O si´ nie zmienia i zachowuje
swojà zawartoÊç. ZawartoÊç stosu mo˝na
w dowolnym momencie kasowaç (1 na wejÊciu R lub instrukcja R). Zaznaczony element
zostaje najwy˝szym elementem stosu.
Przyk∏ad:
Zapisanie treÊci s∏owa %Ri.I
na szczycie stosu.
Odczytanie pierwszej danej
i za∏adowanie jej do %Ri.O.
Przyk∏ad:
Zapisanie zawartoÊci s∏owa %Ri.I na
szczycie stosu.
Odczytanie danej ze szczytu stosu.
___________________________________________________________________________
2/6
Instrukcje z∏o˝one
2
B
Programowanie i konfigurowanie
• Konfigurowanie
Przy pomocy edytora konfiguracyjnego nale˝y zdefiniowaç nast´pujàce parametry:
- Numer : 1 do 4 dla TSX 37, 1 do 255 dla TSX 57,
- D∏ugoÊç : 1 do 255.
W edytorze zmiennych nale˝y okreÊliç tryb pracy rejestru (FIFO czy LIFO).
• Programowanie
J´zyk Ladder
J´zyk List
LD
%M1
I
%R2
LD
%I1.3
O
%R2
LD
%I1.3
ANDN
%R2.E
[%MW20:=%R2.O]
LD
%I1.2
ANDN
%R2.F
[%R2.I:=%MW34]
ST
%M1
J´zyk ST
IF RE %M1 THEN
PUT %R2 ;
END_IF ;
IF RE %I1.3 THEN
GET %R2 ;
END_IF ;
IF (%I1.3 AND NOT %R2.E) THEN
%MW20 := %R2.O ;
END_IF ;
%M1 := %I1.2 AND NOT %R2.F ;
IF %M1 THEN
%R2.I := %MW34 ;
END_IF ;
Zamieszczony powy˝ej przyk∏ad pokazuje ∏adowanie s∏owa %MW34 do rejestru
%R2.I, w reakcji na ˝àdanie zapisania %I1.2, pod warunkiem, ˝e rejestr R2 nie jest
przepe∏niony (%R2.F=0). ˚àdanie zapisania w rejestrze realizowane jest za pomocà
%M1. ˚àdanie odczytanie realizowane jest za poÊrednictwem wejÊcia %I1.3, %R2.O
jest ∏adowane do %MW20 pod warunkiem, ˝e rejestr nie jest pusty (%R2.E=0).
___________________________________________________________________________
2/7
B
W j´zyku strukturalnym ST do programowania bloków rejestru s∏u˝à 3 instrukcje:
• RESET %Ri : powoduje inicjacj´ rejestru,
• PUT
%Ri : powoduje zapisanie treÊci s∏owa %Ri.I w rejestrze,
• GET
%Ri : powoduje zapisanie danych z rejestru w s∏owie %Ri.O.
Instrukcje PUT i GET wywo∏ujà zbocze rosnàce na odpowiadajàcych im wejÊciach I
oraz O. U˝ycie tych instrukcji powinno si´ wi´c odbywaç podczas trwania impulsu.
Sytuacje szczególne
• Reakcja na zimny start: (%S0=1) powoduje skasowanie bie˝àcej zawartoÊci
rejestru. Bit wyjÊciowy %Ri.E przypisany do wyjÊcia E, przyjmuje wartoÊç 1.
• Reakcja na goràcy start: (%S1=1) nie ma wp∏ywu ani na zawartoÊç rejestru, ani na
stan jego bitów wyjÊciowych.
• Skasowanie do 0 (wejÊcie R lub instrukcja R)
- W j´zyku Ladder, zapami´tane wartoÊci wejÊç I oraz O sà aktualizowane
z wartoÊciami bie˝àcymi.
- W j´zyku List, zapami´tane wartoÊci wejÊç I oraz O nie sà aktualizowane. Ka˝de
z nich zachowuje wartoÊci jakie mia∏y przed wywo∏aniem.
- W ST, zapami´tane wartoÊci wejÊç I oraz O sà uaktualniane z wartoÊcià 0.
___________________________________________________________________________
2/8
Instrukcje z∏o˝one
2
B
2.2-3 B´ben Drum controller %DRi
Blok funkcyjny " B´ben " dzia∏a na
podobnej zasadzie jak walec elektromechaniczny, który zmienia kroki w reakcji
na wystàpienie okreÊlonych warunków
(zdarzeƒ). Przy ka˝dym obrocie krzywka
i styki wskazujà systemowi kolejnoÊç
wykonywania operacji. W przypadku
bloku " B´bna " krzywk´ i styki symbolizuje
wartoÊç 1 dla danego kroku (obrotu walca)
przyporzàdkowywana bitom wyjÊciowym
%Qi.j lub bitom wewn´trznym%Mi,
zwanych bitami sterujàcymi.
B´ben
Charakterystyka
Numer
%DRi
0 do 7 dla TSX 37, 0 do 254 dla TSX 57
Numer kroku
LEN
1 do 16 (domyÊlnie 16).
Podstawa czasu
TB
1min, 1s, 100ms, 10ms (domyÊlnie 1min).
Taktowanie
%DRi.V
0 & lt; %DRi.V & lt; 9999. S∏owo kasowane przy
lub czas trwania
ka˝dej zmianie kroku. Mo˝e byç czytane
okresu bie˝àcego krokui testowane ale nie mo˝e byç zapisywane.
Czas trwania jest równy %DRi.V x TB.
Numer
bie˝àcego kroku
%DRi.S
0 & lt; %DRi.S & lt; 15. S∏owo to mo˝e byç czytane
i testowane. Mo˝e byç zapisane tylko za
pomocà wartoÊci bezpoÊredniej.
WejÊcie
" Powrót do kroku 0 "
R (RESET)
Je˝eli ma wartoÊç 1, to powoduje powrót do
kroku 0 (inicjacja bloku).
WejÊcie
" Przesuƒ krok "
U (UP)
Przy zboczu rosnàcym, powoduje obrót b´bna o 1 krok i uaktualnia bity sterujàce.
WyjÊcie
F (FULL)
Sygnalizuje, ˝e bie˝àcy krok jest ostatnim
zdefiniowanym krokiem. Przyporzàdkowany
mu bit %DRi.F mo˝na testowaç (%DRi.F=1
gdy %DRi.S=zdefiniowana liczba kroków - 1).
Status kroku
%DRi.Wj
16-bitowe s∏owo odwzorowujàce stan kroku j
b´bna i. Mo˝e byç czytane i testowane ale
nie mo˝e byç zapisywane.
Bity sterujàce
Bity wyjÊciowe lub wewn´trzne przypisane do kroku
(16 bitów sterujàcych).
Uwaga: Bit %S18 zmienia stan na 1, w razie zapisania nie skonfigurowanego kroku.
___________________________________________________________________________
2/9
B
Sposób dzia∏ania
B´ben sk∏ada si´ z:
• matrycy sta∏ych danych (krzywek) uporzàdkowanej:
- w kolumny: ponumerowane od 0 do N-1 (N jest zdefiniowanà liczbà kroków).
Ka˝da kolumna odwzorowuje stan kroku za pomocà 16 bitów danych ponumerowanych od 0 do F.
• listy bitów sterujàcych (po 1 na lini´) odpowiadajàcych wyjÊciom %Qxy.i, lub bitom
wewn´trznym %Mi. Dla bie˝àcego kroku, bity sterujàce przyjmujà wartoÊci dla
niego zdefiniowane.
Przedstawiona poni˝ej tabela zawiera g∏ównà charakterystyk´ b´bna, dla którego
zdefiniowano 16 kroków.
Krok
Bit
Bity
sterujàce
W przyk∏adzie powy˝ej, dla kroku 1, bity sterujàce %Q2.1;%Q3.5; %Q2.8;%Q3.6;%M5
i %M6 przyjmujà wartoÊç 1. Pozosta∏e bity sterujàce przyjmujà wartoÊç 0.
Numer kroku bie˝àcego jest zwi´kszany przy ka˝dym wystàpieniu zbocza rosnàcego
na wejÊciu U (lub przy wykonaniu instrukcji U). Numer ten mo˝e byç modyfikowany
przez program.
Diagram czasowy
WejÊcie
WejÊcie
Nr kroku
WyjÊcie
Sygna∏
taktujàcy
___________________________________________________________________________
2/10
Instrukcje z∏o˝one
2
B
Programowanie i konfigurowanie
W niniejszym przyk∏adzie, pierwszych 5 wyjÊç %Q2.0 do %Q2.4 uaktywnia si´
kolejno, za ka˝dym razem, gdy na wejÊciu %I1.1 pojawia si´ 1.
WejÊcie I1.0 kasuje wyjÊcia i cofa b´ben do kroku 0.
Konfigurowanie
Przy pomocy edytora zmiennych definiuje si´ nast´pujàce parametry:
• Liczb´ kroków: 5 (LEN:5).
• Stan wyjÊç (bity sterujàce) dla ka˝dego kroku b´bna.
Bit
0:
1:
2:
3:
4:
Krok
01234
10000
01000
00100
00010
00001
Przyporzàdkowanie bitów sterujàcych
%Q2.0
%Q2.1
%Q2.2
%Q2.3
%Q2.4
• Podstaw´ czasu (TB:1 min).
Programowanie
J´zyk Ladder
J´zyk List
LD
R
LD
U
LD
ST
%I1.0
%DR1
%I1.1
%DR1
%DR1.F
%Q2.8
J´zyk ST
IF %I1.0 THEN
RESET %DR1 ;
END_IF ;
IF RE %I1.1 THEN
UP %DR1 ;
END_IF ;
%Q2.8 := %DR1.F ;
W j´zyku ST do programowania bloków b´bna s∏u˝à 2 instrukcje:
• RESET %DRi : powrót do kroku 0 b´bna,
• UP
%DRi : obrót b´bna o 1 krok i uaktualnienie wyjÊç. Ta instrukcja powoduje
wygenerowanie zbocza rosnàcego na wejÊciu U bloku, tak wi´c
uaktywnienie tej funkcji powinno odbywaç si´ podczas impulsu.
___________________________________________________________________________
2/11
B
Uwaga
Skasowanie do 0 (wejÊcie R, instrukcja R lub RESET)
• W j´zyku Ladder zapami´tana wartoÊç dla wejÊcia U jest zast´powana wartoÊcià
bie˝àcà.
• W j´zyku List zapami´tana wartoÊç wejÊcia U nie jest uaktualniana. Zachowywana
jest wartoÊç sprzed operacji kasowania.
• W j´zyku ST zapami´tana wartoÊç wejÊcia U jest zast´powana wartoÊcià 0.
Systuacje szczególne
• Reakcja na zimny start: (%S0=1) powoduje powrót b´bna do kroku 0 (z uaktualnieniem bitów sterujàcych).
• Reakcja na goràcy start: (%S1=1) powoduje uaktualnienie bitów sterujàcych,
zgodnie z wartoÊciami dla bie˝àcego kroku.
• Reakcja na skok, dezaktywacj´ zadania lub przerwanie: fakt, ˝e blok b´bna nie jest
odczytywany przez program nie oznacza skasowania bitów sterujàcych do 0.
• Uaktualnienie bitów sterujàcych: tylko w reakcji na zmian´ kroku oraz zimny i goràcy
start.
___________________________________________________________________________
2/12
Instrukcje z∏o˝one
2
B
2.2-4 Blok zegara %Ti (Seria 7)
Blok zegara, który jest kompatybilny z blokami dla sterowników Serii 7 PL7-2/3 s∏u˝y
do realizacji sterowania akcjami
wykonywanymi z opóênieniem.
WartoÊç tego opóênienia jest programowalna i mo˝e byç modyfikowana przy
u˝yciu terminala.
Blok zegara
Charakterystyka
Numer
%Ti
0 do 63 dla TSX 37, 0 do 254 dla TSX 57
Podstawa czasu
TB
1min, 1s, 100ms, 10ms (domyÊlnie 1min).
WartoÊç bie˝àca
%Ti.V
S∏owo, którego wartoÊç, podczas pracy zegara,
maleje od %Ti.P do 0. Mo˝e byç testowane i czytane ale nie mo˝e byç zapisywane.
WartoÊç nastawiona
%Ti.P
0 & lt; %Ti.P & lt; 9999. S∏owo - mo˝e byç czytane, testowane i zapisywane. DomyÊlnie ma wartoÊç 9999.
Czas trwania odliczania wynosi: %Ti.PTB.
Regulacja - terminal
MODIF
Y/N
Y: wartoÊç nastawiona mo˝e byç modyfikowana
w trybie regulacji (adjust mode).
N: brak dost´pu w trybie regulacji.
WejÊcie nastawiania
E(Enable)
WartoÊç 0, kasuje zegar (%Ti.V = %Ti.P).
WejÊcie sterujàce
C(Control)
WartoÊç 0, zamra˝a wartoÊç bie˝àcà %Ti.V.
WyjÊcie zegara
" Koniec liczenia "
D(Done)
Bit %Ti.D = 1 oznacza, ˝e zegar skoƒczy∏
odliczanie (%Ti.V = 0).
WyjÊcie
" Zegar aktywny "
R(Running)
Bit %Ti.R = 1 gdy zegar liczy (%Ti.P & gt; %Ti.V & gt; 0)
i gdy wejÊcie C ma wartoÊç 1.
Uwaga:
Blok funkcyjny typu zegar %Ti nie mo˝e byç programowany w j´zyku List. Jednak˝e obiekty
zwiàzane z blokami zegara %Ti (%Ti.V, %Ti.P, %Ti.D i %Ti.R) sà dost´pne.
Ca∏kowita liczba zegarów %TMi + %Ti powinna byç mniejsza ni˝ 64 dla sterowników TSX 37
i mniejsza od 255 dla TSX 57.
___________________________________________________________________________
2/13
B
Sposób dzia∏ania
Zegar zmienia swojà wartoÊç, gdy na
dwóch wejÊciach (E i C) pojawia si´ 1.
Zachowuje si´ on jak licznik odliczajàcy.
• WartoÊç bie˝àca %Ti.V maleje od
wartoÊci nastawionej %Ti.P do 0,
o jednostk´ przy ka˝dym impulsie podstawy czasu TB.
• Bit wyjÊciowy %Ti.R (Praca zegara)
przypisany do wyjÊcia R ma wtedy
wartoÊç 1, a bit wyjÊciowy %Ti.D (Koniec
pracy zegara) przypisany do wyjÊcia D
ma w tym czasie wartoÊç 0.
• Gdy wartoÊç bie˝àca %Ti.V=0, %Ti.D
zmienia stan na 1, a %Ti.R wraca do 0.
E
Standardowe funkcje zegara
Blok zegara mo˝e spe∏niaç nast´pujàce
funkcje:
C
%Ti.P
0
0
0
1
1
1
0
1
%Ti.V
%Ti.V
=
%Ti.P
%Ti.V %Ti.V
%Ti.V
= zamro˝. maleje od
%Ti.P
%Ti.P - & gt; 0
%Ti.D
0
0
0
1 gdy zegar
wyliczy∏
%Ti.R
0
0
0
1 gdy zegar
pracuje
• Opóênienie On-time delay
J´zyk Ladder
J´zyk ST
IF %I1.0 THEN
START %T0 ;
ELSE
PRESET %T0 ;
END_IF ;
%Q2.0 := %T0.D ;
___________________________________________________________________________
2/14
Instrukcje z∏o˝one
2
B
• Opóênienie Off-time delay
J´zyk Ladder
J´zyk ST
IF %1.1 THEN
PRESET %T7 ;
ELSE
START %T7 ;
END_IF ;
%Q2.1 := NOT %T7.D ;
• Skumulowane opóênienie On-time delay
J´zyk Ladder
J´zyk ST
IF %I1.2 THEN
IF %I1.3 THEN
START %T5 ;
ELSE
STOP %T5 ;
END_IF ;
ELSE
PRESET %T5 ;
END_IF ;
%Q2.4 := %T5.D ;
%Q2.5 := %T5.R ;
___________________________________________________________________________
2/15
B
• Skumulowane opóênienie Off-time delay
J´zyk Ladder
J´zyk ST
IF %I1.0 THEN
PRESET %T12 ;
ELSE
IF %I1.1 THEN
STOP %T12 ;
ELSE
START %T12 ;
END_IF ;
END_IF ;
%Q2.4 := NOT %T12.D ;
PRESET = D1 + D2 + D3
W j´zyku ST, do programowania bloków zegara %Ti s∏u˝à 3 instrukcje:
• PRESET %Ti : kasuje zegar,
• START
%Ti : uruchamia zegar,
• STOP
%Ti : zamra˝a wartoÊç bie˝àcà zegara.
Sytuacje szczególne
• Reakcja na zimny start: (%S0 = 1) wartoÊç nastawiona (zdefiniowana w edytorze
zmiennych) jest ∏adowana do wartoÊci bie˝àcej, a wyjÊcie %Ti.D ma wartoÊç 0,
poniewa˝ ewentualnie zmodyfikowana wartoÊç nastawiona jest ignorowana.
• Reakcja na goràcy start: (%S1=1) nie ma wp∏ywu na bie˝àcà wartoÊç zegara.
• Reakcja na zatrzymanie sterownika: zatrzymanie sterownika, dezaktywacja
bie˝àcego zadania lub przerwanie, nie powodujà zamro˝enia wartoÊci bie˝àcej.
• Reakcja na skok programu: fakt, ˝e labelka, w której zapisano blok zegara nie jest
czytana przez program nie powoduje zamro˝enia wartoÊci bie˝àcej %Ti.V, która
nadal maleje do 0.
Podobnie, bity %Ti.D i %Ti.R przypisane do wyjÊç zegara D i R pracujà normalnie
tak, ˝e mogà one byç testowane w innych labelkach.
Jednak˝e, sprz´˝enia (cewki) bezpoÊrednio pod∏àczone do wyjÊç bloku nie b´dà
uaktywniane, poniewa˝ labelki te nie sà czytane przez program.
• Testowanie bitów %Ti.D i %Ti.R: stan tych bitów zmienia si´ w czasie " przejÊcia "
programu.
___________________________________________________________________________
2/16
Instrukcje z∏o˝one
2
B
2.3
Blok porównywania - z∏o˝ony
Pionowe bloki porównywania s∏u˝à do
porównywania dwóch argumentów (Arg).
Tymi argumentami mogà byç 16-bitowe
s∏owa (mogà byç indeksowane) lub wartoÊci bezpoÊrednie.
Liczba pionowych bloków porównywania nie jest ani ograniczana, ani definiowana.
Charakterystyka
WejÊcie " Wykonaj "
EN
WartoÊç 1 - porównanie dwóch argumentów.
WyjÊcie " Wi´ksze ni˝ "
& gt;
WartoÊç 1, gdy Arg1 jest wi´kszy ni˝ Arg2.
WyjÊcie " Równe "
=
WartoÊç 1, gdy Arg1 jest równy Arg2.
WyjÊcie " Mniejsze ni˝ "
& lt;
WartoÊç 1, gdy Arg1 jest mniejszy ni˝ Arg2.
WyjÊcie " Ró˝ne "
& lt; & gt;
WartoÊç 1, gdy Arg1 jest ró˝ny od Arg2.
Argument nr 1
OP1
Ten argument jest s∏owem pojedynczej precyzji
(mo˝e byç s∏owem indeksowanym).
Argument nr 2
OP2
Ten argument jest s∏owem pojedynczej precyzji
(mo˝e byç s∏owem indeksowanym).
___________________________________________________________________________
2/17
B
Sposób dzia∏ania
Pojawienie si´ 1 na wejÊciu EN, powuje porównanie dwóch argumentów i uaktywnienie
4 wyjÊç bloku zgodnie z wynikiem operacji porównania. Pojawienie si´ 0 na tym
wejÊciu powoduje skasowanie uaktywnionych wyjÊç.
• Przyk∏adowe zastosowanie
Zamieszczony poni˝ej program obrazuje operacj´ porównywania s∏owa %MW2
indeksowanego za pomocà s∏owa %MW40 z wartoÊcià bezpoÊrednià 150.
Je˝eli treÊç %MW2[%MW40] jest wi´ksza od 150, a %I1.3 = 1, to nast´puje
uaktywnienie sprz´˝enia %Q2.7.
Je˝eli treÊç tego s∏owa jest równa 150, to nast´puje uaktywnienie sprz´˝enia
%MW10:X4. Sprz´˝enie %M5 jest uaktywniane wtedy, kiedy treÊç s∏owa jest ró˝na
od 150 ( & lt; lub & gt; ).
J´zyk Ladder
Blok funkcyjny tego typu nie istnieje
w j´zykach List oraz ST.
Stosuje si´ w nich operacje
porównywania & gt; , & lt; , =, & lt; & gt;
Sytuacje szczególne
• Reakcja na zimny start: (%S0) argument OP1 i byç mo˝e OP2 (o ile OP2 jest s∏owem
wewn´trznym) sà kasowane, a wyjÊcia sà aktualizowane zgodnie z wynikiem
porównywania nowych wartoÊci.
• Reakcja na goràcy start: (%S1) nie ma wp∏ywu na blok porównywania.
___________________________________________________________________________
2/18
Instrukcje z∏o˝one
2
B
2.4
Instrukcje przesuwania Shift
Instrukcje przesuwania umo˝liwiajà przesuwanie bitów argumentów s∏owa lub s∏owa
podwójnego o pewnà liczb´ pozycji (w prawo lub w lewo).
• Przesuwanie logiczne Logic shift:
- SHL(arg2,i) logiczne przesuni´cie
w lewo o i pozycji,
- SHR(arg2,i) logiczne przesuni´cie
w prawo o i pozycji,
• Przesuwanie okr´˝ne:
- ROL(arg2,i) okr´˝ne przesuni´cie
w lewo o i pozycji,
- ROR(arg2,i) okr´˝ne przesuni´cie
w prawo o i pozycji,
W przypadku przesuwania bitów w s∏owie
pojedynczej precyzji wartoÊç i b´dzie
mieÊci∏a si´ w przedziale od 1 do 16.
W przypadku s∏ów podwójnej precyzji
zmienna i przyjmuje wartoÊci z przedzia∏u
od 1 do 32.
Stan ostatniego bitu wyjÊciowego jest
zapisywany w bicie %S17.
Struktura
J´zyk Ladder
J´zyk List
LDR
%I1.1
[%MW0 := SHL(%MW10,5)]
J´zyk ST
IF RE %I1.2 THEN
%MW10 := ROR (%KW9,8) ;
END_IF ;
Sk∏adnia
Operatory: SHL,SHR,ROL,ROR
Arg1:=Operator(Arg2,i)
Argumenty
Typ
Argument 1 (Arg1)
Argument 2 (Arg2)
S∏owa indeksowalne
%MW
%MW,%KW
Nieindeksowalne s∏owa
%QW,%SW,%NW,
%BLK
Wart. bezp.,%IW,%QW,%SW
%NW,%BLK, Wyr. num.
Indeksowalne s∏owa podw.
%MD
%MD,%KD
Nieindeks. s∏owa podwójne
%QD,%SD,
Wart.bezp.,%ID,%QD,%SD
Wyra˝enie numeryczne
___________________________________________________________________________
2/19
B
2.5
Instrukcje na obiektach zmiennoprzecinkowych
2.5-1 WiadomoÊci ogólne
J´zyk PL7 umo˝liwia wykonywanie operacji na obiektach zmiennoprzecinkowych.
Format obiektów zmiennoprzecinkowych jest zgodny z normà IEEE STD 734-1985
(równowa˝na normie IEC 559). S∏owa sà 32-bitowe, co odpowiada pojedynczej d∏ugoÊci liczb
zmiennoprzecinkowych.
WartoÊci zmiennoprzecinkowe mogà byç reprezentowane z u˝yciem exponentu lub bez
niego, lecz zawsze muszà zawieraç przecinek (ruchomy przecinek).
Przyk∏adowe wartoÊci zmiennoprzecinkowe:
bez exponentu
: 1285.28
z exponentem
: 1.28528e3
WartoÊci mieszczà si´ w przedziale od -3.402824e+38 do -1.175494e-38 i od 1.175494e-38
do 3.402824e+38 (obszary zacienione na wykresie poni˝ej). W sk∏ad tego przedzia∏u
wchodzi 0 przedstawiane w postaci-1.#DN
0.0.
1.#DN
-1.#INF
-3.402824e+38
1.#INF
-1.175494e-38
0
+1.175494e-38
+3.402824e+38
Je˝eli wynik obliczeƒ mieÊci si´ w przedziale od -1.175494e-38 do 1.175494e-38, to jest on
zaokràglany do 0. Je˝eli wartoÊç z tego przedzia∏u zosta∏a zapisana w innym formacie, to nie
mo˝na jej zapisaç w formacie zmiennoprzecinkowym. Przy próbie zapisania takiej liczby
pojawi si´ symbol 1.#DN lub - 1.#DN.
Je˝eli wynik obliczeƒ jest:
• mniejszy ni˝ -3.402824e+38, to wyÊwietlany jest symbol -1.#INF (- ),
• wi´kszy ni˝ +3.402824e+38, to wyÊwietlany jest symbol 1.#INF (+
Je˝eli wynik operacji jest niedefiniowalny (np. pierwiastek kwadratowy z liczby ujemnej)
wyÊwietlany jest symbol 1.#NAN lub -1.#NAN.
Bit systemowy %S18 przyjmuje wartoÊç 1, gdy wynik nie mieÊci si´ w podanych przedzia∏ach.
O przyczynie b∏´du w operacji informujà bity s∏owa statusu %SW17:
%SW17:X0 = operacja nieprawid∏owa, wynik nie jest liczbà (1.#NAN lub -1.#NAN),
%SW17:X1 = niestandardowy argument (pomi´dzy -1.175494e-38 a 1.175494e-38), wynik
jest zaokràglany do 0,
%SW17:X2 = dzielenie przez 0, wynik jest nieokreÊlony ± (-1.#INF lub 1.#INF),
%SW17:X3 = wynik wi´kszy ni˝ +3.402824e+38 (wartoÊç bezwzgl´dna), wynikiem jest
± (-1.#INF lub 1.#INF),
%SW17:X4 = wynik jest mniejszy od 1.175494e-38, wynikiem jest 0,
%SW17:X5 = wynik jest nieprecyzyjny.
S∏owo to jest kasowane do 0 przez system po zimnym starcie lub przez program,
w celu przygotowania do powtórnego u˝ycia.
___________________________________________________________________________
2/20
Instrukcje z∏o˝one
2
B
Odwzorowanie jest dok∏adne do wartoÊci 2-24. Przy podglàdaniu wartoÊci zmiennoprzecinkowych wyÊwietlanych jest najwy˝ej 6 cyfr po przecinku.
Uwagi
•WartoÊç " 1285 " jest traktowana jako liczba ca∏kowita. Je˝eli ma byç traktowana
jako liczba zmiennoprzecinkowa, to nale˝y jà zapisaç: " 1285.0 " ,
•Do zmiany jednego formatu liczby na inny s∏u˝y kowersja:
Liczba ca∏kowita & lt; -- & gt; Liczba zmiennoprzecinkowa.
Adresowanie obiektów zmiennoprzecinkowych
Skróty
Pe∏en
adres
Rodzaj obiektu
Dost´p
zmiennoprzecinkowego
Sposób
indeksowania
Wart. bezp.
-
wartoÊci bezpoÊrednie
R
-
%MF
%MFi
wewn. wartoÊç zmiennop.
R/W
%MFi[index]
%KF
%KFi
sta∏a zmiennop.
R
%KFi[index]
Mo˝liwoÊç nak∏adania sie obiektów:
S∏owa pojedyncze, podwójne i zmiennoprzecinkowe sà przechowywane w obszarze danych, w pojedynczej strefie pami´ci.
Stàd, s∏owo zmiennoprzecinkowe %MFi
odpowiada s∏owom pojedynczym %MWi
i %MWi+1 (slowo %MWi zawiera bity
mniej znaczàce a s∏owo %MWi+1 zawiera
bardziej znaczàce bity s∏owa %MFi).
Przyk∏ady:
%MF0 odpowiada %MW0 i %MW1,
a %KF543 odpowiada s∏owom %KW543
i %KW544.
%MF0
%MF1
%MF2
%MF3
%MFi
%MW0
%MW1
%MW2
%MW3
%MWi
%MWi+1
___________________________________________________________________________
2/21
B
2.5-2 Instrukcje porównywania
Instrukcja porównywania umo˝liwia porównywanie dwóch argumentów b´dàcych
obiektami zmiennoprzecinkowymi.
& gt; : prawda, gdy argument 1 jest wi´kszy od argumentu 2,
& gt; = : prawda, gdy argument 1 jest wi´kszy lub równy argumentowi 2,
& lt; : prawda, gdy argument 1 jest mniejszy od argumentu 2,
& lt; = : prawda, gdy argument 1 jest mniejszy lub równy argumentowi 2,
= : prawda, gdy argument 1 jest równy argumentowi 2,
& lt; & gt; : prawda, gdy argument 1 jest ró˝ny od argumentu 2.
Je˝eli warunek jest spe∏niony, to wynikiem porównania jest 1.
Struktura
J´zyk Ladder
J´zyk List
LD
ST
LD
AND
ST
LD
OR
ST
[%MF10 & gt; 129.7]
%Q2.3
%M0
[%MF20 & lt; %KF35]
%Q2.2
%I1.2
[%MF30 & gt; = %MF40]
%Q2.4
Operacja porównania zapisywana jest
w nawiasach kwadratowych nast´pujàcych po instrukcjach LD, AND i OR.
Bloki porównywania programuje si´
w strefie warunków (test zone).
Sk∏adnia
Operatory: & gt; , & gt; =, & lt; , & lt; =,=, & lt; & gt;
J´zyk ST
%Q2.3 := %MF10 & gt; 129.7 ;
%Q2.2 := (%MF20 & lt; %KF35) AND %M0 ;
%Q2.4 := (%MF30 & gt; = %MF40) OR %I1.2 ;
Arg1 Operator Arg2
Argumenty
Typ
Argument 1i 2 (Arg1 i Arg2)
Indeksowalne obiekty zmiennoprzecinkowe
%MF,%KF
Nieindeks. obiekty zmiennoprzecinkowe
Zmiennoprzecinkowa wartoÊç bezpoÊrednia.
Zmiennoprzecinkowe wyra˝enie numeryczne.
Uwaga
W j´zyku List, instrukcje porównywania mo˝na zapisywaç w nawiasach.
___________________________________________________________________________
2/22
Instrukcje z∏o˝one
2
B
2.5-3 Instrukcje przypisania
Mo˝na wykonywaç nast´pujàce operacje przypisania obiektów:
• zmiennoprzecinkowy (indeks.) - & gt; zmiennoprzecinkowy (indeks.)
Przyk∏ad 1
• zmiennoprzec. wartoÊç bezp. - & gt; zmiennoprzecinkowy (indeks.)
Przyk∏ad 2
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[%MF10 := %KF100]
Przyk∏ad 1
LD
%I3.2
[%MF5:= %KF0[%MW20] ]
Przyk∏ad 1
LDR
%I3.3
[%MF100:=150.25]
Przyk∏ad 2
J´zyk ST
%MF10 := %KF100 ;
IF %I3.2 THEN
%MF5 := %KF0 [%MW20] ;
END_IF ;
IF RE %I3.3 THEN
%MF100 := 150.25 ;
END_IF ;
Sk∏adnia
Operator :=
Przyk∏ad 1
Przyk∏ad 1
Przyk∏ad 2
Arg1:=Arg2
Argumenty
Typ
Argument 1 (Arg1)
Argument 2 (Arg2)
Indeks.wart. zmiennoprzec.
%MF
%MF,%KF
Nieindeksowalne wartoÊci
zmiennoprzecinkowe
Zmiennoprzecinkowa wartoÊç bezp.
Zmiennoprzecinkowe wyra˝enie num.
Mo˝na stosowaç operacje wielokrotnego przypisywania.
Przyk∏ad: %MF0 := %MF2 := %MF4
___________________________________________________________________________
2/23
B
2.5-4 Instrukcje arytmetyczne
Sa to instrukcje umo˝liwiajàce wykonywanie operacji arytmetycznych na dwóch lub
na jednym argumencie.
+ : dodawanie dwóch argumentów
SQRT
: pierwiastek kwadratowy
- : odejmowanie dwóch argumentów
ABS
: wartoÊç bezwzgl´dna
* : mno˝enie dwóch argumentów
TRUNC : cz´Êç ca∏kowita wartoÊci
/ : dzielenie dwóch argumentów
zmiennoprzecinkowej
Struktura
J´zyk Ladder
Jezyk List
LD
%M0
[%MF0 := %MF10 + 129.7]
LD
%I3.2
[%MF1 := SQRT(%MF10)]
LDR
%I3.3
[%MF2 := ABS(%MF20)]
P
LDR
%I3.5
[%MD8 := TRUNC(%MF2)]
J´zyk ST
IF %M0 THEN
%MF0 := %MF10 + 129.7 ;
END_IF ;
IF %I3.2 THEN
%MF1 := SQRT (%MF10) ;
END_IF ;
IF RE %I3.3 THEN
%MF2 := ABS (%MF20) ;
END_IF ;
IF RE %I3.5 THEN
%MD8 := TRUNC (%MF2) ;
END_IF ;
Sk∏adnia
Operatory
• +,-,*,/
Arg1:=Arg2 Operator Arg3
• SQRT, ABS, TRUNC
Arg1:=Operator(Arg2)
___________________________________________________________________________
2/24
Instrukcje z∏o˝one
2
B
Argumenty
Typ
Argument 1 Arg1)
Argument 2 i 3 (Arg2 i 3)
S∏owa indeksowalne
%MF (1)
%MF,%KF
S∏owa nieindeksowalne
(1)
Zmiennoprzec. wartoÊç bezp.
Zmiennoprzec. wyr. numeryczne
%MD dla instrukcji TRUNC.
Regu∏y
• Nie mo˝na bezpoÊrednio mieszaç operacji na wartoÊciach zmiennoprzecinkowych
z operacjami na liczbach ca∏kowitych. Poprzez zastosowanie konwersji mo˝na
dopasowywaç formaty wartoÊci (patrz rozdzia∏ 2.6, cz´Êç B).
• Bit systemowy %S18 pe∏ni takà samà funkcj´ jak dla operacji na liczbach ca∏kowitych
(patrz rozdzia∏ 1.4-4, cz´Êç B), s∏owo %SW17 zawiera informacj´ o przyczynach
wystàpienia b∏´du (patrz rozdzia∏ 2.5-1, cz´Êç B).
2.5-5 Instrukcje logarytmiczne i wyk∏adnicze
Sà to instrukcje umo˝liwiajàce wykonywanie operacji logarytmicznych i wyk∏adniczych.
LOG : logarytm dziesi´tny,
LN :
logarytm naturalny,
EXP : exponent naturalny,
EXPT: operacja wyk∏adnicza na wartoÊci rzeczywistej
z wyk∏adnikiem ca∏kowitym,
Struktura
J´zyk Ladder
Jezyk List
LD
%M0
[%MF0 := LOG(%MF10)]
LD
%I3.2
[%MF2 := LN(%MF20)]
LDR
%I3.3
[%MF4 := EXP(%MF40)]
LDR
%I3.4
[%MF6 := EXPT(%MF50,5)]
J´zyk ST
IF %M0 THEN
%MF0 := LOG(%MF10) ;
END_IF ;
IF %I3.2 THEN
%MF2 := LN(%MF20) ;
END_IF ;
IF RE %I3.3 THEN
%MF4 := EXP(%MF40) ;
END_IF ;
IF RE %I3.4 THEN
%MF6 := EXPT(%MF50,5) ;
END_IF ;
___________________________________________________________________________
2/25
B
Sk∏adnia
Operatory
• LOG, EXP, LN
Arg1:=Operator(Arg2)
• EXPT
Arg1:=Operator(Arg2,Arg3)
Argumenty
Typ
Argument 1 (Arg1)
Argument 2 (Arg2)
Argument 3 (Arg3)
S∏owa indeks.
%MF
%MF,%KF
%MW, %KW
Zmiennop. wart. bezp.
Zmiennop. wyr. num.
Ca∏kowite wart. bezp.
Ca∏kowite wyr. num.
S∏owa nieindeks.
Regu∏y
• Je˝eli argumentem funkcji jest niew∏aÊciwa wartoÊç (np. logarytm z liczby ujemnej),
to wynik jest nieokreÊlony lub nieskoƒczony, co powoduje zmian´ bitu %S18 na 1.
S∏owo %SW17 zawiera informacj´ o przyczynach b∏´du (rozdzia∏ 2.5-1, cz´Êç B).
• W przypadku funkcji logarytmicznych, dla wartoÊci bliskich 1.0 (pomi´dzy 0.99
a 1.0 lub 1.0 a 1.01) wynikiem jest 0, a bity %S18 i %SW17:X5 majà wartoÊç 1.
2.5-6 Instrukcje trygonometryczne
Te instrukcje umo˝liwiajà wykonywanie obliczeƒ trygonometrycznych.
SIN : sinus kàta zapisanego w radianach
COS : kosinus kàta zapisanego w radianach
TAN : tangens kàta zapisanego w radianach
Struktura
J´zyk Ladder
ASIN : arc sin (wynik od -π/2 do π/2)
ACOS : arc cos (wynik od 0 do π)
ATAN : arc tan (wynik od -π/2 do π/2)
J´zyk List
LD
%M0
[%MF0 := SIN(%MF10)]
LD
%I3.2
[%MF2 := TAN(%MF10)]
LDR
%I3.3
[%MF4 := ATAN(%MF20)]
___________________________________________________________________________
2/26
Instrukcje z∏o˝one
2
B
J´zyk ST
IF %M0 THEN
%MF0 := SIN(%MF10) ;
END_IF ;
IF %I3.2 THEN
%MF2 := TAN(%MF10) ;
END_IF ;
IF RE %I3.3 THEN
%MF4 := ATAN(%MF20) ;
END_IF ;
Sk∏adnia
Operatory
• SIN, COS, TAN
Arg1:=Operator(Arg2)
ASIN, ACOS, ATAN
Argumenty
Typ
Argument 1 (Arg1)
Argument 2 (Arg2)
S∏owa indeksowalne
%MF
%MF,%KF
S∏owa nieindeks.
Zmiennoprzec. wart. bezpoÊrednia
Zmiennoprzec. wyra˝enie num.
Regu∏y
• Je˝eli argument jest nieprawid∏owy (np. arc cos liczby wi´kszej ni˝ 1), to wynik jest
nieokreÊlony, co powoduje nadanie bitowi %S18 wartoÊci 1. S∏owo %SW17 zawiera
informacj´ o przyczynach b∏´du (patrz rozdzia∏ 2.5-1, cz´Êç B).
• Funkcje SIN/COS/TAN pozwalajà na obliczenie wyniku dla wartoÊci z przedzia∏u od
-4096π do 4096π ale dok∏adnoÊç bardzo mocno si´ zmniejsza dla kàtów spoza
przedzia∏u od -2π do +2π, ze wzgl´du na modulo 2π, obliczane przed ka˝dà
operacjà.
___________________________________________________________________________
2/27
B
2.5-7 Instrukcje konwersji
Sà to instrukcje umo˝liwiajce przeprowadzenie operacji konwersji:
DEG_TO_RAD : przeliczenie ze stopni na radiany, wynikiem jest wartoÊç kàta z przedzia∏u 0÷ 2π,
RAD_TO_DEG : przeliczenie ze radianów na stopnie, wynikiem jest wartoÊç kàta z przedzia∏u
od 0 do 360 stopni.
Struktura
J´zyk Ladder
Jezyk List
LD
%M0
[%MF0 := DEG_TO_RAD(%MF10)]
LD
%M2
[%MF2 := RAD_TO_DEG(%MF20)]
J´zyk ST
IF %M0 THEN
%MF0 := DEG_TO_RAD(%MF10) ;
END_IF ;
IF %I3.2 THEN
%MF2 := RAD_TO_DEG(%MF20) ;
END_IF ;
Sk∏adnia
Operatory
• DEG_TO_RAD
Arg1:=Operator(Arg2)
RAD_TO_DEG
Argumenty
Typ
Argument1 (Arg1)
Argument 2 (Arg2)
S∏owa indeksowalne
%MF
%MF,%KF
S∏owa nieindeksowalne
Zmiennoprzec. wart. bezpoÊrednia
Zmiennoprzec. wyra˝enie numeryczne
Regu∏y
• Kàt po konwersji musi mieÊciç si´ w przedziale od -737280.0 do +737280.0 (dla
konwersji DEG_TO_RAD) lub od -4096π do 4096π (dla konwersji RAD_TO_DEG).
Dla wartoÊci wykraczajàcych poza ten limit, wynikiem jest + 1.#NAN, przy czym bity
%S18 i %SW17:X0 majà wartoÊç 1.
___________________________________________________________________________
2/28
Instrukcje z∏o˝one
2
B
2.6
Instrukcje konwersji numerycznej
2.6-1
Konwersja BCD & lt; -- & gt; Kod binarny
Dla tego typu konwersji mo˝na stosowaç 6 instrukcji:
•
•
•
•
•
•
BCD_TO_INT
INT_TO_BCD
DBCD_TO_DINT
DINT_TO_DBCD
DBCD_TO_INT
INT_TO_DBCD
: konwersja 16-bit. liczba BCD -- & gt; 16-bit. liczba ca∏kowita,
: konwersja 16-bit. liczba ca∏kowita -- & gt; 16-bit. liczba BCD,
: konwersja 32-bit. liczba BCD -- & gt; 32-bit liczba ca∏kowita,
: konwersja 32-bit. liczba ca∏kowita -- & gt; 32-bit. liczba BCD,
: konwersja 32-bit. liczba BCD -- & gt; 16-bit. liczba ca∏kowita,
: konwersja 16-bit. liczba ca∏kowita -- & gt; 32-bit. liczba BCD.
Kod BCD - przypomnienie:
Kod BCD (czyli Binary Coded Decimal) polega na zapisaniu cyfr dziesi´tnych (0 do 9) za pomocà
zapisu binarnego, przy u˝yciu 4 bitów. S∏owo 16-bitowe mo˝e byç liczbà 4-cyfrowà (0 & lt; N & lt; 9999).
Zapis dziesi´tny
Kod BCD
0
1
2
3
4
5
6
7
8
9
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
Przyk∏ad:
• S∏owo %MW5 wyra˝a wartoÊç BCD " 2450 " , która odpowiada wartoÊci binarnej:
0010 0100 0101 0000.
• S∏owo %MW12 wyra˝a dziesi´tnà wartoÊç " 2450 " , w zapisie binarnym:
0000 1001 1001 0010.
S∏owo %MW5 jest poddawane konwersji BCD_TO_INT do s∏owa %MW12.
S∏owo %MW12 jest poddawane konwersji INIT_TO_BCD do s∏owa %MW5.
Struktura
Operacje wykonywane sà nastepujàco:
J´zyk Ladder
J´zyk List
LD
TRUE
[%MW0 := BCD_TO_INT(%MW10)]
LD
%I1.2
[%MW10 := INT_TO_BCD(%KW9)]
J´zyk ST
%MW0 := BCD_TO_INT (%MW10) ;
IF %I1.2 THEN
%MW10 := INT_TO_BCD (%KW9) ;
END_IF ;
___________________________________________________________________________
2/29
B
Sk∏adnia
Operatory (konwersja liczby 16-bit)
• BCD_TO_INT
INT_TO_BCD
INT_TO_DBCD
Arg1:=Operator(Arg2)
Argumenty
Typ
Argument 1 (Arg1)
Argument 2 (Arg2)
S∏owa indeksowalne
%MW
%MW,%KW, %Xi.T
S∏owa nieindeksowalne
%QW,%SW,%NW, %BLK
Wart. bezp.,%IW,%QW,%SW
%NW,%BLK, Wyr. num.
Indeksowalne s∏owa podw.
%MD
Nieindeksowalne s∏owa podw.
%QD, %SD
Sk∏adnia
Operatory (konwersja liczby 32-bitowej)
• DBCD_TO_DINT
DINT_TO_DBCD
DBCD_TO_INT
Arg1:=Operator(Arg2)
Argumenty
Typ
Argument 1 (Arg1)
S∏owa indeksowalne
%MW
Argument 2 (Arg2)
S∏owa nieindeksowalne
%QW,%SW,%NW, %BLK
Indeksowalne s∏owa podw.
%MD
%MD, %KD
Nieindeksowalne s∏owa podw.
%QD, %SD
Wart. bezp.,%ID,%QD,%SD
Wyra˝enia numeryczne
Przyk∏adowe zastosowania
Instrukcja BCD_TO_INT s∏u˝y do przetwarzania wartoÊci nastaw dla wejÊç sterownika
dokonywanych za pomocà pokr´te∏ kodowanych w BCD.
Instrukcja INT_TO_BCD s∏u˝y do wyÊwietlania wartoÊci numerycznych (np. wynik
obliczania wartoÊci bie˝àcej dla bloku funkcyjnego) na wyÊwietlaczach kodowanych
w BCD.
___________________________________________________________________________
2/30
Instrukcje z∏o˝one
2
B
Regu∏y
• Konwersja BCD -- & gt; Kod binarny
Przy konwersji BCD -- & gt; Kod binarny musi byç pewnoÊç, ˝e operator konwersji
dzia∏a na wartoÊci zakodowanej w BCD. Je˝eli wartoÊç nie jest kodowana w BCD,
to bit systemowy %S18 przyjmuje wartoÊç 1, a wynik zawiera pierwszy b∏´dny bajt
4-bitowy.
Np. BCD_TO_INT(%MW2) gdzie: %MW2=4660 daje wynik 1234.
Jednak, %MW2=242 (16#00F2) nadaje %S18 wartoÊç 1, a wynikiem jest 15.
Je˝eli dla instrukcji DBCD_TO_INT liczba w BCD jest wi´ksza ni˝ 32767, to bit
systemowy %S18 przyjmuje wartoÊç 1, a wynikiem jest -1.
• Konwersja Kod binarny -- & gt; BCD
W przypadku instrukcji INT_TO_BCD musi byç pewnoÊç, ˝e operator konwersji
dzia∏a na wartoÊci z przedzia∏u od 0 do 9999 (lub 0 do 9999 9999). W innym razie
bit systemowy %S18 przyjmuje wartoÊç 1, a wynikiem jest wartoÊç parametru
wejÊciowego.
Np. INT_TO_BCD(%MW2), gdzie: %MW2=2478 daje wynik 9336.
Jednak, %MW2=10004 powoduje nadanie bitowi %S18 wartoÊci 1, a wynikiem
jest 10004.
Je˝eli dla instrukcji INT_TO_DBCD parametr wejÊciowy jest ujemny, to bit systemowy
%S18 przyjmuje wartoÊç 1, a wynikiem jest wartoÊç parametru wejÊciowego.
2.6-2 Konwersja Liczba ca∏kowita & lt; -- & gt; Liczba zmiennoprzecinkowa
Dla tego typu konwersji u˝ytkownik ma do dyspozycji 4 instrukcje:
• INT_TO_REAL : Konwersja s∏owo ca∏kowite -- & gt; s∏owo zmiennoprzecinkowe,
• DINT_TO_REAL : Konwersja podwójne s∏owo ca∏kowite -- & gt; s∏owo zmiennoprzec.,
• REAL_TO_INT : Konwersja s∏owo zmiennoprzecinkowe -- & gt; s∏owo ca∏kowite
(wynikiem jest najbli˝sza wartoÊç algebraiczna),
• REAL_TO_DINT : Konwersja s∏owo zmiennoprzec. -- & gt; podwójne s∏owo ca∏kowite
(wynikiem jest najbli˝sza wartoÊç algebraiczna).
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[%MF0 := INT_TO_REAL(%MW10)]
LD
%I1.8
[%MD4 := REAL_TO_DINT(%MF9)]
J´zyk ST
%MF0 := INT_TO_REAL (%MW10) ;
IF %I1.8 THEN
%MD4 := REAL_TO_DINT (%MF9) ;
END_IF ;
___________________________________________________________________________
2/31
B
Sk∏adnia
Operator
Arg1:=INT_TO_REAL(Arg2)
Argumenty
Typ
S∏owa indeksowalne
Nieindeksowalne s∏owa
Argument 1 (Arg1)
Indeks. s∏owa zmiennoprzec.
Argumeny 2 (Arg2)
%MW,%KW,%Xi.T
Wart. bezp.,%IW,%QW,%SW
%NW,%BLK,Wyr. num.
%MF
Przyk∏ad: Konwersja s∏owo ca∏kowite -- & gt; s∏owo zmiennoprzecinkowe: 147 -- & gt; 1.47e+02
Operator
Arg1:=DINT_TO_REAL(Arg2)
Argumenty
Typ
S∏owa indeksowalne
Nieindeksowalne s∏owa
Argument 1 (Arg1)
Indeks. s∏owa zmiennoprzec.
Argument 2 (Arg2)
%MD,%KD
Wart. bezp.,%ID,%QD,%SD
Wyra˝enia numeryczne
%MF
Przyk∏ad: Konwersja podwójne s∏owo indeks. -- & gt; s∏owo zmiennop.: 68905 000 -- & gt; 6.8905e+07
Operator
Arg1:=REAL_TO_INT(Arg2)
Arg1:=REAL_TO_DINT(Arg2)
Argumenty
Typ
S∏owa indeksowalne
Nieindeksowalne s∏owa
Indeks. s∏owa podwójne
Nieindeksowalne s∏owa
Indeks. s∏owa zmiennoprzec.
Nieindeks. s∏owa zmiennop.
Argument 1 (Arg1)
%MW
%QW,%NW,%BLK
%MD
%QD
Argument 2 (Arg2)
%MF,%KF
WartoÊç bezp. zmiennoprzec.
Przyk∏ad: Konwersja s∏owo zmiennoprzec -- & gt; s∏owo ca∏kowite 5978.6 -- & gt; 5978
Konwersja s∏owo zmiennop. -- & gt; ca∏kowite s∏owo podw. -1235978.6
1235979
-- & gt;
-
Uwaga: Je˝eli podczas konwersji s∏owa zmiennoprzecinkowego na liczb´ ca∏kowità (lub liczby
zmiennoprzecinkowej na ca∏e s∏owo podwójne), wartoÊç zmiennoprzecinkowa przekracza limit
s∏owa (lub s∏owa podwójnego), to bit %S18 przyjmuje wartoÊç 1.
___________________________________________________________________________
2/32
Instrukcje z∏o˝one
2
B
2.6-3 Konwersja Kod Gray'a -- & gt; Liczba ca∏kowita
Instrukcja GRAY_TO_INT powoduje konwersj´ s∏owa zapisanego w kodzie Gray'a na
liczb´ ca∏kowità (czysty kod binarny).
Kod Gray'a - przypomnienie: Kod Gray'a lub " cykliczny kod binarny " s∏u˝y do
kodowania zmiennych wartoÊci numerycznych za pomocà szeregu uk∏adów binarnych,
które ró˝nià si´ od siebie zmianà stanu pojedynczego bitu. Ten kod mo˝e np. s∏u˝yç
zapobieganiu przypadkowoÊci: dla czystego kodu binarnego, zmiana wartoÊci z
0111 na 1000 mo˝e spowodowaç wygenerowanie wartoÊci 0 i 1000 poniewa˝ bity nie
zmieniajà swoich waroÊci jednoczeÊnie.
0
1
2
3
4
5
6
7
8
9
Kod BCD
Kod dziesi´tny
0000
0001
0010
0011
0100
0101
0110
0111
1000
1001
Kod Gray'a
0000
0001
0011
0010
0110
0111
0101
0100
1100
1101
Struktura
J´zyk Ladder
Jezyk List
LD
TRUE
[%MW0 := GRAY_TO_INT(%MW10)]
J´zyk ST
%MW0 := GRAY_TO_INT (%MW10) ;
Sk∏adnia
Operator
Arg1:=GRAY_TO_INT(Arg2)
Argumenty
Typ
Argument 1 (Arg1)
Argument 2 (Arg2)
S∏owa indeksowalne
%MW
%MW,%KW
S∏owa nieindeksowalne
%QW,%SW,%NW,%BLK
Wart. bezp.,%IW,%QW,%SW
%NW,%BLK,%Xi.T,Wyr. num.
___________________________________________________________________________
2/33
B
2.6-4 Konwersja s∏owo & lt; -- & gt; s∏owo podwójne
Opisane poni˝ej instrukcje mogà byç stosowane w odniesieniu do obiektów
o charakterze czysto symbolicznym (np. bloki funkcyjne DFB). W przypadku obiektów
adresowalnych wyst´puje zjawisko nadpisywania (np. s∏owo podwójne %MD0 sk∏ada
si´ ze s∏ów %MW0 i %MW1), co oznacza, ˝e tych instrukcji nie mo˝na w stosunku do
nich stosowaç.
• Wydzielanie s∏owa mniej znaczàcego ze s∏owa podwójnego
Instrukcja LW powoduje wydzielenie mniej znaczàcego s∏owa ze s∏owa podwójnego
i jego transfer do s∏owa pojedynczego.
Sk∏adnia
Arg1:=LW(Arg2)
Arg1 = s∏owo pojedyncze (typu WORD)
Arg2 = s∏owo podwójne (typu DWORD)
Przyk∏ad: Cisnienie_paliwa:=LW(Parametr_1)
jeÊli Parametr_1 = 16#FFFF1234 to Cisnienie_paliwa = 16#1234
• Wydzielanie s∏owa bardziej znaczàcego ze s∏owa podwójnego
Instrukcja HW powoduje wydzielenie bardziej znaczàcego s∏owa ze s∏owa
podwójnego i jego transfer do s∏owa pojedynczego.
Sk∏adnia
Arg1:=HW(Arg2)
Arg1 = s∏owo pojedyncze (typu WORD)
Arg2 = s∏owo podwójne (typu DWORD)
Przyk∏ad: Cisnienie_paliwa:=HW(Parametr_1)
jeÊli Parametr_1 = 16#FFFF1234 to Cisnienie_paliwa = 16#FFFF
• ¸àczenie dwóch s∏ów
Instrukcja CONCATW powoduje po∏àczenie dwóch s∏ów pojedynczych i zapisanie
ich w s∏owie podwójnym.
Sk∏adnia
Arg1:=CONCATW(Arg2,Arg3)
Arg1 = s∏owo podwójne (typu DWORD)
Arg2 = s∏owo pojedyncze (typu WORD)
Arg3 = s∏owo pojedyncze (typu WORD)
Przyk∏ad: Cisnienie_paliwa:=CONCATW(Parametr_1,Parametr_2)
jeÊli Parametr_1 = 16#1234, Parametr_1 = 16#FFFF,
to Cisnienie_paliwa = 16#FFFF1234
___________________________________________________________________________
2/34
Instrukcje z∏o˝one
2
B
2.7
Tablice s∏ów
2.7-1 Wprowadzenie
Jezyk PL7 pozwala na wykonywanie operacji na tablicach:
• s∏ów,
• s∏ów podwójnej precyzji,
• s∏ów zmiennoprzecinkowych.
%KW10
16 bitów
Tablica s∏ów o d∏ugoÊci L, to sekwencja
kolejnych s∏ów tego samego typu.
Przyk∏adowa tablica s∏ów: %KW10:5
Typ
Format
%KW14
Adres
koƒcowy
WielkoÊç
Mo˝liwoÊç
zapisu
S∏owa wewn´trzne Pojedyncze
%MWi:L
Podwójne
%MDi:L
Zmiennoprzecinkowe %MFi:L
i+L & lt; Nmax (1)
i+L & lt; Nmax-1 (1)
i+L & lt; Nmax-1 (1)
Tak
Tak
Tak
S∏owa sta∏e
Pojedyncze
%KWi:L
Podwójne
%KDi:L
Zmiennoprzecinkowe %KFi:L
i+L & lt; Nmax (1)
i+L & lt; Nmax-1 (1)
i+L & lt; Nmax-1 (1)
Nie
Nie
Nie
S∏owa systemowe
Pojedyncze
-
Tak
(1)
(2)
%SW50:4 (2)
Nmax = maksymalna liczba s∏ów zdefiniowana w konfiguracji.
W formie tablic mogà byç adresowane tylko s∏owa %SW50 do %SW53.
Ogólne zasady wykonywania operacji na tablicach
• Operacje wykonuje si´ tylko na tablicach zawierajàcych obiekty jednego typu.
• Operacje mogà byç wykonywane maksymalnie na dwóch tablicach.
• Je˝eli dwie tablice, na których sà wykonywane operacje majà ró˝ne rozmiary, to
tablica wynikowa b´dzie mia∏a rozmiar odpowiadajàcy tablicy mniejszej.
• Nale˝y tak dobieraç operacje na tablicach, by zapobiegaç zjawisku nadpisywania
(na przyk∏ad: %MW100[20]:=%MW90[20]+%KW100[20]).
• W przypadku operacji na dwóch tablicach dzia∏ania sà wykonywane po kolei na
elementach tego samego rz´du tablic, a wynik jest zapisywany w tym samym
rz´dzie tablicy wynikowej.
• Je˝eli podczas wykonywania operacji bit systemowy %S18 zmieni stan na 1, to
oznacza, ˝e wynik danej operacji jest nieprawid∏owy, ale operacje na kolejnych
elementach tablic b´dà wykonywane poprawnie.
• Je˝eli argument jest wyra˝eniem numerycznym, to nale˝y go umieÊciç w nawiasie.
• Rzàd tablicy odpowiada pozycji s∏owa w tablicy. Pierwsza pozycja odpowiada
rz´dowi 0.
___________________________________________________________________________
2/35
B
2.7-2 Przypisywanie tablic s∏ów
W odniesieniu do tablicy s∏ów mo˝na stosowaç nast´pujàce operacje przypisania:
• wartoÊç bezpoÊrednia - & gt; tablica s∏ów (indeksowana)
Przyk∏ad 1
podwójna wartoÊç bezpoÊrednia - & gt; podwójna tablica s∏ów (indeksowana)
zmiennoprzec. wartoÊç bezpoÊrednia - & gt; tablica s∏ów zmiennoprzec. (indeksowana)
Przyk∏ad 1: %MW0 :5:= 100
• s∏owo (indeksowane) - & gt; tablica s∏ów (indeksowana)
Przyk∏ad 2
s∏owo podwójne (indeksowane) - & gt; tablica s∏ów podwójnych (indeksowana)
s∏owo zmiennoprzec. (indeksowane) - & gt; tablica s∏ów zmiennoprzec. (indeksowana)
Przyk∏ad 2: %MW0 :5:= %MW11
• tablica s∏ów (indeksowana) - & gt; tablica s∏ów (indeksowana)
Przyk∏ad 3
tablica s∏ów podwójnych (indeksowana) - & gt; tablica s∏ów podwójnych (indeksowana)
tablica s∏ów zmiennop. (indeksowana) - & gt; tablica s∏ów zmiennoprzec. (indeksowana)
Przyk∏ad 3: %MW0 :5:= %KW0:5
Uwaga:
Operacja wielokrotnego przypisania jest dopuszczalna dla przyk∏adów 1 i 2
(%MW0:4 := %MW10:6 := %MW100)
ale nie dla przyk∏adu 3.
___________________________________________________________________________
2/36
Instrukcje z∏o˝one
2
B
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[%MW0 :5:= 100]
Przyk∏ad 1
LD
%I3.2
[%MW0:5 := %MW11]
Przyk∏ad 2
J´zyk ST
IF RE %I3.3 THEN
%MW0:5 := %KW0:5 ; Przyk∏ad 3
END_IF ;
Sk∏adnia
Operator :=
Arg1 := Arg2
Tablica s∏ów
Typ
Argument 1 (Arg1)
Argument 2 (Arg2)
Tablica s∏ów indeks.
%MW:L
%MW:L,%KW:L,%Xi.T:L
S∏owa indeksowalne
%MW,%KW,%Xi.T
S∏owa nieindeksowalne
Wart. bezp.,%IW,%QW,%SW
%NW,%BLK,Wyr. numeryczne.
Tablica s∏ów podwójnych
Typ
Argument 1 (Arg1)
Argument 2 (Arg2)
Tablica s∏ów indeks.
%MD:L
%MD:L,%KD:L
S∏owa indeksowalne podw.
%MD,%KD
S∏owa nieindeks. podw.
Wart. bezp.,%ID,%QD,
Wyra˝enie numeryczne
Tablica s∏ów zmiennoprzecinkowych
Typ
Argument 1 (Arg1)
Argument 2 (Arg2)
Tablica s∏ów zmiennoprzec.
%MF:L
%MF:L,%KF:L
Indeks. s∏owa zmiennoprzec.
%MF,%KF
Nieindeksowalne s∏owa
zmiennoprzecinkowe
Zmiennoprzec. wartoÊç bezp.
Zmiennoprzec. wyra˝enie num.
Uwaga:
Wielokrotne przypisywanie tablic jest niedozwolone.
___________________________________________________________________________
2/37
B
2.7-3 Operacje arytmetyczne na tablicach
Wymienione poni˝ej instrukcje umo˝liwiajà wykonanie operacji arytmetycznych
pomi´dzy dwiema tablicami s∏ów (albo mi´dzy s∏owem a tablicà s∏ów).
+ : dodawanie
* : mno˝enie
: odejmowanie
/ : dzielenie
REM : reszta z dzielenia
Struktura
J´zyk Ladder
Jezyk List
LD
%M0
[%MW0:10:=%MW20:10+100]
LD
%I3.2
[%MD50:5:=%KD0:5 + %MD0:5]
J´zyk ST
IF RE %I3.3 THEN
%MW0:10 := %KW0:10 * %MW20 ;
END_IF ;
Sk∏adnia
Operatory
• +,-,*,/,REM
Arg1:=Arg2 Operator Arg3
Argumenty
Tablice s∏ów
Typ
Argument 1 (Arg1)
Argumenty 2 i 3 (Arg2 i 3)
Tablica s∏ów indeks.
%MW:L
%MW:L,%KW:L,%Xi.T:L
S∏owa indeksowane
%MW,%KW,%Xi.T
S∏owa nieindeksowane
Wart. bezp.,%IW,%QW,%SW
%NW,%BLK,Wyr. num.
Tablice s∏ów podwójnych
Typ
Argument 1 (Arg1)
Argumenty 2 i 3 (Arg2 i 3)
Tablica s∏ów indeks.
%MD:L
%MD:L,%KD:L
S∏owa indeksowane podw.
%MD,%KD
S∏owa nieindeksowane
podwójne
Wart.bezp.,%ID,%QD,
Wyra˝enia numeryczne
___________________________________________________________________________
2/38
Instrukcje z∏o˝one
2
B
2.7-4 Operacje logiczne na tablicach
Przedstawione poni˝ej instrukcje s∏u˝à do wykonywania operacji logicznych na
dwóch tablicach s∏ów (lub na s∏owie i tablicy s∏ów).
AND : Koniunkcja AND (bit po bicie).
OR
: Alternatywa OR (bit po bicie).
XOR : Nierównowa˝noÊç (bit po bicie).
NOT : Logiczne dope∏nienie (bit po bicie) tablicy (tylko 1 argument).
Struktura
J´zyk Ladder
Jezyk List
LD
%M0
[%MW0:5:=%KW0: 5 AND 16#FF00]
J´zyk ST
IF %I3.2 THEN
%MD0:10 := %KD5:10 OR %MD50:10 ;
END_IF ;
IF RE%I3.3 THEN
%MW100:50 := NOT %MW0:50 ;
END_IF ;
Sk∏adnia
Operatory
AND, OR, XOR
NOT
Arg1:=Arg2 Operator Arg3
Arg1:=NOT Arg2
Argumenty
Tablice s∏ów
Typ
Argument 1 (Arg1)
Argumenty 2 i 3 (Arg2 i 3)
Tablica s∏ów indeks.
%MW:L
%MW:L,%KW:L,%Xi.T:L
S∏owa indeksowalne
%MW,%KW,%Xi.T
S∏owa nieindeksowalne
Wart.bezp.,%IW,%QW,%SW
%NW,%BLK,Wyr. numeryczne
Tablica s∏ów podwójnych
Typ
Argument 1 (Arg1)
Argumenty 2 i 3 (Arg2 i 3)
Tablica s∏ów indeks.
%MD:L
%MD:L,%KD:L
S∏owa indeksowalne podw.
%MD,%KD,%SD
Podwójne s∏owa
nieindeksowalne
Immed.val.,%ID,%QD,
Numeric expr.
___________________________________________________________________________
2/39
B
2.7-5 Sumowanie elementów tablicy
Funkcje SUM i SUM_ARR powodujà dodawanie elementów tablicy:
• je˝eli tablica sk∏ada si´ ze s∏ów pojedynczych, to wynik jest podany w formie s∏owa
pojedynczego (funkcja SUM),
• je˝eli tablica sk∏ada si´ ze s∏ów podwójnych, to wynik jest podany w formie s∏owa
podwójnego (funkcja SUM),
• je˝eli tablica sk∏ada si´ ze s∏ów zmiennoprzecinkowych, to wynik jest podany
w formie s∏owa zmiennoprzecinkowego (funkcja SUM_ARR),
Struktura
J´zyk Ladder
Jezyk List
LD
%I3.2
[%MW5:=SUM(%MW32:12)]
J´zyk ST
%MD50 := SUM (%KD50:20) ;
%MF0 := SUM_ARR (%KF8:5) ;
Sk∏adnia
Funkcja
Wynik:=SUM(Tab)
Wynik:=SUM_ARR(Tab)
Parametry
Rodzaj
Wynik
Tablica s∏ów indeksowalnych
S∏owa indeksowane
Tablica (Tab)
%MW:L,%KW:L,%Xi.T:L
%MW
S∏owa nieindeksowane
%QW,%SW,%NW
Tablica indeks. s∏ów podwójnych
%MD:L,%KD:L
Indeksowalne s∏owa podwójne
%MD
Nieindeksowalne s∏owa podw.
%QD,%SD
Tablica indeks. s∏ów zmiennop.
Indeks. s∏owa zmiennoprzec.
%MF:L,%KF:L
%MF
Note : Bit %S18 przyjmuje wartoÊç 1, gdy wynik przekracza limity okreÊlone dla formatu s∏owa
pojedynczego lub podwójnego (w zale˝noÊci od rodzaju argumentu)
Przyk∏ad
%MW5:=SUM(%MW30:4), z %MW30= 10, %MW31= 20,
%MW32= 30, %MW33= 40, %MW5=10+20+30+40=100
___________________________________________________________________________
2/40
Instrukcje z∏o˝one
2
B
2.7-6 Funkcja porównywania tablic
Funkcje EQUAL (dla liczb ca∏kowitych) i EQUAL _ARR (dla liczb zmiennoprzecinkowych) pozwalajà na porównywanie, element po elemencie, dwóch tablic.
W razie wykrycia jakiejÊ ró˝nicy nast´puje zapisanie, w formie s∏owa, numeru rz´du
pierwszego ró˝niàcego si´ elementu. Je˝eli z porównania wynika, ze nie ma ró˝nic,
to wynikiem funkcji jest -1.
Trzeci parametr zawiera informacj´ o rz´dzie tabeli, od którego ma si´ rozpoczàç
porównywanie (np. 0 aby rozpoczàç porównywanie od poczàtku tablic). Ten trzeci
parametr jest opcjonalny (nie mo˝na go u˝yç w przypadku funkcji EQUAL_ARR).
Jego pomini´cie powoduje wykonanie porównania dla ca∏ej tablicy.
Struktura
Jezyk Ladder
J´zyk List
LD
%I3.2
[%MW5:=EQUAL(%MW20:7,%KW0:7,3)]
J´zyk ST
%MW0 := EQUAL (%MD20:7,%KD0:7)
%MW1 := EQUAL_ARR(%MF0:5,%KF0:5)
Sk∏adnia
Funkcja
Wynik:=EQUAL(Tab1,Tab2,rzàd)
Wynik:=EQUAL_ARR(Tab1,Tab2)
___________________________________________________________________________
2/41
B
Parametry
Typ
Wynik
Tablica s∏ów
Tablica (Tab)
Rzàd
%MW:L,%KW:L,%Xi.T:L
S∏owa indeksowalne
%MW
%MW,%KW, %Xi.T
S∏owa nieindeksowalne
%QW,%SW,
%NW
Wart. bezp. %QW,
%IW,%SW,%NW
Wyr. numeryczne
Tablica s∏ów podwójnych
%MD:L,%KD:L
Podwójne s∏owa indeks.
%MD
%MD,%KD
Podwójne s∏owa nieindeks.
%QD,%SD
Wart. bezp. %QD,
%ID,%SD
Wyr. numeryczne
Tablica s∏ów zmiennoprzec.
%MF:L,%KF:L
S∏owa zmiennoprzecinkowe %MF
Uwaga:
• Tablice muszà mieç jednakowe d∏ugoÊci.
• Je˝eli numer rz´du (parametr Rzàd) jest wi´kszy ni˝ d∏ugoÊç tablicy, to wynik jest równy temu
rz´dowi.
Przyk∏ad
0
1
2
3
%MW5:=EQUAL(%MW30:4,%KW0:4,1)
%MW30= 10
%MW31= 20
%MW32= 30
%MW33= 40
%KW0= 20
%KW1= 20
%KW2= 30
%KW3= 60 == & gt; %MW33 • %KW3== & gt; %MW5= 3
___________________________________________________________________________
2/42
Instrukcje z∏o˝one
2
B
2.7-7
Funkcje przeszukiwania tablic Find
Oprogramowanie oferuje 11 funkcji przeszukiwania tablic:
• FIND_EQW : wyszukiwanie w tablicy, pozycji pierwszego elementu równego zadanej
wartoÊci,
• FIND_GTW : wyszukiwanie w tablicy, pozycji pierwszego elementu wi´kszego od zadanej
wartoÊci,
• FIND_LTW
: wyszukiwanie w tablicy, pozycji pierwszego elementu mniejszego od
zadanej wartoÊci,
• FIND_EQD : wyszukiwanie w tablicy s∏ów podwójnych, pozycji pierwszego elementu
równego zadanej wartoÊci,
• FIND_GTD : wyszukiwanie w tablicy s∏ów podwójnych, pozycji pierwszego elementu
wi´kszego od zadanej wartoÊci,
• FIND_LTD
: wyszukiwanie w tablicy s∏ów podwójnych, pozycji pierwszego elementu
mniejszego od zadanej wartoÊci,
• FIND_EQR : wyszukiwanie w tablicy s∏ów zmiennoprzecinkowych, pozycji pierwszego
elementu równego zadanej wartoÊci,
• FIND_GTR
: wyszukiwanie w tablicy s∏ów zmiennoprzecinkowych, pozycji pierwszego
elementu wi´kszego od zadanej wartoÊci,
• FIND_LTR
: wyszukiwanie w tablicy s∏ów zmiennoprzecinkowych, pozycji pierwszego
elementu mniejszego od zadanej wartoÊci,
• FIND_EQWP : wyszukiwanie w tablicy s∏ów, pozycji pierwszego elementu równego
wartoÊci z danego rz´du,
• FIND_EQDP : wyszukiwanie w tablicy s∏ów podwójnych, pozycji pierwszego elementu
równego wartoÊci z danego rz´du.
Wynikiem dzia∏ania tych funkcji jest numer rz´du, w którym znajduje si´ pierwszy element w
tablicy spe∏niajàcy podany warunek lub wartoÊç -1, gdy poszukiwanie koƒczy si´ fiaskiem.
Struktura
J´zyk Ladder
Jezyk List
LD
%I3.2
[%MW5:=FIND_EQW(%MW20:7,%KW0)]
J´zyk ST
IF %I1.2 THEN
%MW0:=FIND_GTD(%MD20:7,%KD0) ;
END_IF ;
%MW1:=FIND_LTR(%MF40:5,%KF5) ;
%MW9:=FIND_EQWP(%MW30:8,%KF5,%MW4);
___________________________________________________________________________
2/43
B
Sk∏adnia
Funkcja
FIND_EQW,FIND_GTW,FIND_LTW
Wynik:=Funkcja(Tab,Wart)
FIND_EQD,FIND_GTD,FIND_LTD
FIND_EQR,FIND_GTR,FIND_LTR
FIND_EQWP,FIND_EQDP
Wynik:=Funkcja(Tab,Wart,Rzàd)
Parametry
Tablice s∏ów (FIND_EQW,FIND_GTW,FIND_LTW,FIND_EQWP)
Typ
Wynik
Tablica s∏ów indeks.
Tablica (Tab)
WartoÊç (Wart), Rzàd
%MW:L,%KW:L,%Xi.T:L
S∏owa indeksowalne
%MW
%MW,%KW, %Xi.T
S∏owa nieindeksowalne
%QW,%SW
%NW
Wart. bezp.%QW,
%IW,%SW,%NW,
Wyr. numeryczne
Tablice s∏ów podwójnych (FIND_EQD,FIND_GTD,FIND_LTD,FIND_EQDP)
Typ
Wynik
Tablica s∏ów indeks.
Tablica (Tab)
WartoÊç (Wart)
%MD:L,%KD:L
S∏owa indeksowalne (podw.) %MW
%MD,%KD
S∏owa nieindeksowalne
(podwójne)
Wart. bezp. %QD,
%ID,%SD
Wyr. numeryczne
%QW,%SW
%NW
Uwaga: Dla parametru Rzàd patrz tablica s∏ów (jak dla FIND_EQWP)
Tablice s∏ów zmiennoprzecinkowych (FIND_EQR,FIND_GTR,FIND_LTR)
Typ
Wynik
Tablica s∏ów zmiennoprzec.
Tablica (Tab)
WartoÊç (Wart)
%MF:L,%KF:L
S∏owa indeks. zmiennoprzec. %MW
%MF,%KF
Nieindeksowalne s∏owa
zmiennoprzecinkowe
WartoÊci bezp.
Wyra˝enia num.
%QW,%SW
%NW
Przyk∏ad
%MW5:=FIND_EQW(%MW30:4,%KW0)
Rzàd
0
%MW30= 10
1
%MW31= 20
2
%MW32= 30 == & gt; %KW0= 30 == & gt;
%MW5= 2
3
%MW33= 40
___________________________________________________________________________
2/44
Instrukcje z∏o˝one
2
B
2.7-8 Wyszukiwanie najmniejszej i najwi´kszej wartoÊci w tablicy
Oprogramowanie oferuje 6 funkcji:
•
•
•
•
•
•
MAX_ARW
MIN_ARW
MAX_ARD
MIN_ARD
MAX_ARR
MIN_ARR
:
:
:
:
:
:
wyszukiwanie wartoÊci maksymalnej w tablicy s∏ów,
wyszukiwanie wartoÊci minimalnej w tablicy s∏ów,
wyszukiwanie wartoÊci maksymalnej w tablicy s∏ów podwójnych,
wyszukiwanie wartoÊci minimalnej w tablicy s∏ów podwójnych,
wyszukiwanie wartoÊci maksymalnej w tablicy s∏ów zmiennoprzec.,
wyszukiwanie wartoÊci minimalnej w tablicy s∏ów zmiennoprzec.
Wynikiem tych funkcji jest wartoÊç równa wartoÊci maksymalnej (lub minimalnej)
znalezionej w tablicy.
Struktura
J´zyk Ladder
J´zyk List
LD
%I3.2
[%MW5:=MAX_ARW(%MW20:7)]
J´zyk ST
IF %I1.2 THEN
%MD0 := MIN_ARD (%MD20:7) ;
END_IF ;
%MF8 := MIN_ARR (%MF40:5) ;
Sk∏adnia
Funkcja
MAX_ARW,MIN_ARW
MAX_ARD,MIN_ARD
MAX_ARR,MIN_ARR
Wynik:=Funkcja(Tab)
Parametry
Typ
Wynik
Tablica s∏ów indeksowalnych
S∏owa indeksowalne
Tablica (Tab)
%MW:L,%KW:L,%Xi.T:L
%MW
S∏owa nieindeksowalne
%QW,%SW,%NW
Tablica indeks. s∏ów podwójnych
%MD:L,%KD:L
Indeksowalne s∏owa podwójne
%MD
Nieindeksowalne s∏owa podwójne
%QD,%SD
Tablica s∏ówa zmiennoprzec.
Indeksowalne s∏owa zmiennoprzec.
%MF:L,%KF:L
%MF
___________________________________________________________________________
2/45
B
2.7-9 Liczba wystàpieƒ danej wartoÊci w tablicy
Oprogramowanie daje do dyspozycji 3 funkcje:
• OCCUR_ARW : przeszukiwanie tablicy s∏ów, w celu obliczenia iloÊci elementów
równych zadanej wartoÊci,
• OCCUR_ARD : przeszukiwanie tablicy s∏ów podwójnych, w celu obliczenia iloÊci
elementów równych zadanej wartoÊci,
• OCCUR_ARR : przeszukiwanie tablicy s∏ów zmiennoprzecinkowych, w celu
obliczenia iloÊci elementów równych zadanej wartoÊci.
Struktura
J´zyk Ladder
J´zyk List
LD
%I3.2
[%MW5:=OCCUR_ARW(%MW20:7,%KW0)]
J´zyk ST
IF %I1.2 THEN
%MW0:=OCCUR_ARD(%MD20:7,200) ;
END_IF ;
Sk∏adnia
Funkcja
OCCUR_ARW
OCCUR_ARD
OCCUR_ARR
Wynik:= Funkcja (Tab,Wart)
Parametry
Typ
Wynik
Tablica s∏ów indeksowalnych
Tablica (Tab)
WartoÊç (Wart)
%MW:L,%KW:L,%Xi.T:L
S∏owa indeksowalne
%MW
MW,%KW,%Xi.T
S∏owa nieindeksowalne
%QW,%SW, %NW
Wart. bezp. %QW,
%IW,%SW,%NW
Wyr. numeryczne
Tablica podwójnych s∏ów ind.
%MD:L,%KD:L
Indeks. s∏owa podwójne
%MW
%MD,%KD
Nieindeks. s∏owa podwójne
%QW,%SW, %NW
Wart. bezp. %QD,
%ID,%SD
Wyr. numeryczne
Tablica s∏ów zmiennop.
%MF:L,%KF:L
Indeks. s∏owa zmiennoprzec.
%MW
%MF,%KF
Nieindeksowalne s∏owa
zmiennoprzecinkowe
%QW,%SW, %NW
Wart. bezpoÊrednie
Wyr. numeryczne
___________________________________________________________________________
2/46
Instrukcje z∏o˝one
2
B
2.7-10 Okr´˝ne przesuwanie elementów tablicy
Z przesuwaniem elementów tablicy zwiàzanych jest 6 funkcji:
• ROL_ARW: powoduje okr´˝ne przesuni´cie z góry do do∏u elementów tablicy
0
s∏ów o n pozycji.
1
• ROL_ARD: powoduje okr´˝ne przesu2
ni´cie z góry do do∏u elementów tablicy
4
s∏ów podwójnych o n pozycji.
5
• ROL_ARR: powoduje okr´˝ne przesuni´cie z góry do do∏u elementów tablicy
s∏ów zmiennoprzec. o n pozycji.
• ROR_ARW: powoduje okr´˝ne przesuni´cie z do∏u do góry elementów tablicy
s∏ów o n pozycji.
• ROR_ARD: powoduje okr´˝ne przesuni´cie z do∏u do góry elementów tablicy
s∏ów podwójnych o n pozycji.
0
1
2
4
5
• ROR_ARR: powoduje okr´˝ne przesuni´cie z do∏u do góry elementów tablicy
s∏ów zmiennoprzec. o n pozycji.
Struktura
J´zyk Ladder
J´zyk List
LDR
%I3.2
[ROL_ARW(%KW0,%MW20:7)]
J´zyk ST
IF RE%I1.2 THEN
ROR_ARD (2,%MD20:7) ;
END_IF ;
IF RE%I1.3 THEN
ROR_ARR (2,%MF40:5) ;
END_IF ;
___________________________________________________________________________
2/47
B
Sk∏adnia
Funkcje ROL_ARW,ROR_ARW
Funkcja(n,Tab)
Parametry
Tablice s∏ów
Typ
Liczba pozycji (n)
Tablica (Tab)
Tablica s∏ów indeksowalnych
%MW:L
S∏owa indeksowalne
%MW,%KW,%Xi.T
S∏owa nieindeksowalne
Wart. bezp.%QW,%IW,%SW
%NW,Wyr. numeryczne
Funkcje ROL_ARD,ROR_ARD
Funkcja(n,Tab)
Parametry
Tablice s∏ów podwójnych
Typ
Liczba pozycji (n)
Tablica (Tab)
Tablica s∏ów indeksowalnych
%MD:L
S∏owa indeksowalne
%MW,%KW,%Xi.T
S∏owa nieindeksowalne
Wart. bezp.%QW,%IW,%SW
%NW,Wyr. numeryczne
Funkcje ROL_ARR,ROR_ARR
Funkcja(n,Tab)
Parametry
Tablice s∏ów zmiennoprzecinkowych
Typ
Liczba pozycji (n)
Tablice indeksowalnych
s∏ów zmiennoprzecinkowych
Tablica (Tab)
%MF:L
S∏owa indeksowalne
%MW,%KW,%Xi.T
S∏owa nieindeksowalne
Wart. bezp.%QW,%IW,%SW
%NW,Wyr. numeryczne
Uwaga: Je˝eli wartoÊç n jest ujemna albo równa zeru, to nie wykonuje si´ ˝adnego przesuni´cia.
___________________________________________________________________________
2/48
Instrukcje z∏o˝one
2
B
2.7-11 Funkcje sortowania elementów tablicy
Oprogramowanie zawiera 3 funkcje sortowania:
• SORT_ARW : sortowanie elementów tablicy s∏ów, w porzàdku rosnàcym albo
malejàcym; wynik operacji jest zapisywany w tej samej tablicy,
• SORT_ARD : sortowanie elementów tablicy s∏ów podwójnych w porzàdku rosnàcym
albo malejàcym; wynik operacji jest zapisywany w tej samej tablicy,
• SORT_ARR : sortowanie elementów tablicy s∏ów zmiennoprzecinkowych, w porzàdku rosnàcym albo malejàcym; wynik operacji jest zapisywany w tej
samej tablicy,
Struktura
J´zyk Ladder
J´zyk List
LD
%I3.2
[SORT_ARW(%MW20,%MW0:6)]
J´zyk ST
IF %I1.2 THEN
SORT_ARD (-1,%MD20:6) ;
END_IF ;
IF %I1.3 THEN
SORT_ARR (0,%MF40:8) ;
END_IF ;
Sk∏adnia
Funkcja
SORT_ARW
SORT_ARD
SORT_ARR
Funkcja (Kier,Tab)
• Parametr " Kier " okreÊla sposób sortowania: je˝eli jest & gt; 0, to tablica jest sortowana
w porzàdku rosnàcym. Gdy & lt; 0, to sortowanie odbywa si´ w porzàdku malejàcym.
• Wynik (posortowana tablica) zawiera si´ w parametrze Tab (tablica do sortowania).
Parametry
Tablice s∏ów
Typ
Kierunek sortowania
Tablica (Tab)
Tablica s∏ów (SORT_ARW)
%MW:L
Tablica s∏ów podw. (SORT_ARD)
%MD:L
Tablica s∏ów zmiennoprz. (SORT_ARF)
%MF:L
S∏owa indeksowalne
%MW,%KW
S∏owa nieindeksowalne
Wart. bezp.%QW,%IW,%SW
%NW,Wyr. numeryczne
___________________________________________________________________________
2/49
B
2.7-12 Obliczanie d∏ugoÊci tablicy
Sà 4 funkcje obliczania d∏ugoÊci tablicy, które mogà byç wykorzystywane do
programowania bloków DFB, gdy d∏ugoÊç tablicy nie zosta∏a jawnie zdefiniowana:
• LENGTH_ARW : oblicza liczb´ elementów (d∏ugoÊç) tablicy s∏ów,
• LENGTH_ARD : oblicza liczb´ elementów (d∏ugoÊç) tablicy s∏ów podwójnych,
• LENGTH_ARR : oblicza liczb´ elementów (d∏ugoÊç) tablicy s∏ów zmiennoprzecinkowych,
• LENGTH_ARX : oblicza liczb´ elementów (d∏ugoÊç) tablicy bitowej.
Struktura
J´zyk Ladder
J´zyk List
LD
%I3.2
[LENGTH_ARW(tab_mot)]
J´zyk ST
IF %I1.2 THEN
LENGTH_ARD(tab_dmot)]
END_IF ;
IF %I1.2 THEN
LENGTH_ARX(tab_bit)]
END_IF ;
Sk∏adnia
Funkcja
LENGTH_ARW
LENGTH_ARD
LENGTH_ARR
LENGTH_ARX
Wynik = Funkcja (Tab)
Parametry
Tablica s∏ów
Typ
Tablica (Tab)
Tablica (LENGTH_ARW)
s∏ów
Tablica (LENGTH_ARD)
s∏ów podwójnych
Tablica (LENGTH_ARR)
s∏ów zmiennoprzecinkowych
Tablica (LENGTH_ARX)
Wynik
bitowa
S∏owa indeksowalne
%MW
S∏owa nieindeksowalne
%QW,%SW,%NW
Uwaga: Parametry tablicy sà obiektami o charakterze czysto symbolicznym.
___________________________________________________________________________
2/50
Instrukcje z∏o˝one
2
B
2.8
Operacje na ∏aƒcuchach znaków
2.8-1 Format ∏aƒcucha lub tablicy znaków
Tablica znaków sk∏ada si´ z serii bajtów, w których mogà byç ∏aƒcuchy znaków.
Rozmiar tablicy okreÊla maksymalnà d∏ugoÊç ∏aƒcucha znaków (do 255 znaków).
Przyk∏ad: %MB4:6 jest tablicà sk∏adajàcà si´ z 6 bajtów
zawierajàcà ∏aƒcuch do 6 znaków.
Pierwszy bajt tablicy musi byç parzysty (nie mo˝na zapisaç tablicy bajtów zaczynajàcej
si´ od bajtu nieparzystego, np. %MB5:6).
Tablice bajtów zajmujà ten sam obszar pami´ci co s∏owa %MW i %MD. Stàd te˝
wyst´puje niebezpieczeƒstwo nadpisania (overlap): patrz rozdzia∏ 1.2-4, cz´Êç A.
OkreÊleniem " ∏aƒcuch znaków " nazywa si´ wszystkie znaki pomi´dzy poczàtkiem
tablicy, a pierwszym znakiem koƒca ∏aƒcuchów znaków.
Znak NUL (kod 00) nazywany jest znakiem koƒca ∏aƒcucha. W niniejszej sekcji b´dzie
on oznaczany symbolem .
Przyk∏ady:
• Poni˝sza tablica (12-elementowa) zawiera ∏aƒcuch znaków 'ABCDE' (5 znaków).
• Tablica (10-elementowa) zawiera ∏aƒcuch znaków 'ABCDEJKLMN' (10 znaków).
Tak wi´c d∏ugoÊç ∏aƒcucha znaków jest okreÊlona albo przez liczb´ znaków znajdujàcych sie przed znakiem koƒca ∏aƒcucha , albo przez rozmiar tablicy (gdy nie ma
znaku koƒca).
Uwagi:
Bit systemowy %S15 przyjmuje wartoÊç 1 w nast´pujàcych okolicznoÊciach:
• podczas zapisywania ∏aƒcucha znaków d∏u˝szego ni˝ rozmiar tablicy (nie mo˝na umieÊciç
znaku koƒca ∏aƒcucha znaków ).
• gdy u˝ytkownik próbuje uzyskaç dost´p do znaku nie wchodzàcego w sk∏ad danego
∏aƒcucha.
• gdy u˝yte parametry sà niew∏aÊciwe:
zerowa d∏ugoÊç ∏aƒcucha, który ma byç usuni´ty (funkcja DELETE), zerowa d∏ugoÊç
∏aƒcucha, z którego majà byç wydzielone znaki (funkcja MID), zerowa d∏ugoÊç ∏aƒcucha,
który ma byç zastàpiony (funkcja REPLACE), próba wyszukania ciàgu znaków, którego
d∏ugoÊç przekracza d∏ugoÊç ∏aƒcucha (funkcja FIND).
___________________________________________________________________________
2/51
B
2.8-2 Przypisywanie ∏aƒcuchów znaków
Funkcja ta umo˝liwia transfer ∏aƒcucha znaków do tablicy bajtów o d∏ugoÊci L.
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[ %MB30:10 := 'set_to_run']
J´zyk ST
%MB30:10:='set_to_run' ;
Przyk∏ad
Transfer ∏aƒcucha znaków 'set_to_run' do tablicy bajtów
o d∏ugoÊci 10 znaków
Sk∏adnia
Operator
Arg1:=Arg2
Argumenty
Typ
Argument 1 (Arg1)
Argument 2 (Arg2)
Tablice bajtów
%MB:L
%MB:L,%KB:L
WartoÊç bezpoÊrednia
___________________________________________________________________________
2/52
Instrukcje z∏o˝one
2
B
2.8-3 Porównywanie alfanumeryczne
Funkcja ta umo˝liwia porównywanie dwóch ∏aƒcuchów znaków (parametry funkcji)
zapisanych w tablicy bajtów. Porównywanie odbywa si´ znak po znaku. W wyniku,
otrzymuje si´ bit, który przyjmuje wartoÊç 1, gdy oba ∏aƒcuchy spe∏niajà okreÊlony
przez funkcj´ warunek (znak po znaku). W przeciwnym razie bit ma wartoÊç 0.
Porzàdek znaków okreÊla tablica kodów ASCII (ISO 646). Na przyk∏ad ∏aƒcuch 'Z' jest
wi´kszy ni˝ ∏aƒcuch 'AZ', który jest wi´kszy ni˝ ∏aƒcuch 'ABC'.
Struktura
J´zyk Ladder
J´zyk List
LD
ST
Bloki porównywania programuje si´
w strefie warunków (test zone).
[ %MB20:12 & lt; %MB40:12]
%M10
Operacje porównywania zapisuje si´
w nawiasach kwadratowych umieszczanych przed instrukcjami LD, AND i OR.
J´zyk ST
%M10 := %MB20:12 & lt; %MB40:12 ;
Przyk∏ad: %MB20:12 & lt; %MB40:12
== & gt;
TAK jeÊli wynikiem jest 1
gdzie
Elementy nast´pujàce po znaku koƒca ∏aƒcucha nie sà brane pod uwag´.
Sk∏adnia
Operator
& lt; , & gt; , & lt; =, & gt; =, =, & lt; & gt;
Arg1 Operator Arg2
Argumenty
Typ
Argument 1 (Arg1) i Argument 2 (Arg2)
Tablice bajtów
%MB:L,%KB:L, wartoÊç bezpoÊrednia
___________________________________________________________________________
2/53
B
2.8-4 Konwersja WartoÊç numeryczna & lt; --- & gt; Kod ASCII
Funkcja ta umo˝liwia konwersj´ wartoÊci numerycznej (lub zmiennoprzecinkowej) na
∏aƒcuch znaków ASCII i w kierunku odwrotnym.
Wynik konwersji musi byç zapisany, za pomocà operacji przypisania, w obiekcie PL7:
tablica bajtów, s∏owo pojedynczej lub podwójnej precyzji, s∏owo zmiennoprzecinkowe.
Mo˝liwe sà nast´pujàce konwersje:
INT_TO_STRING
Kod binarny -- & gt; Kod ASCII
DINT_TO_STRING Kod binarny -- & gt; Kod ASCII
STRING_TO_INT
Kod ASCII -- & gt; Kod binarny
STRING_TO_DINT Kod ASCII -- & gt; Kod binarny
REAL_TO_STRING Obiekt zmiennoprzecinkowy -- & gt; Kod ASCII
STRING_TO_REAL Kod ASCII -- & gt; Obiekt zmiennoprzecinkowy.
Format obiektów zmiennoprzecinkowych: == & gt; patrz rozdzia∏ 2.5, cz´Êç B
Kod ASCII:
Wszystkie 256 znaków alfanumerycznych i sterujàcych mo˝na zapisaç w 8 bitach.
Kod ten okreÊlany mianem ASCII (American Standard Code for Information Interchange) jest zgodny z ideà bajtu. Tak wi´c mo˝na stworzyç tablic´ sk∏adajàcà si´ z n
bajtów za pomocà n kodów ASCII definiujàcych n znaków.
2.8-5 Konwersja Kod binarny --- & gt; Kod ASCII
Ta funkcja s∏u˝y do przeliczania wartoÊci numerycznej (s∏owo pojedynczej lub
podwójnej precyzji) na ∏aƒcuch kodów ASCII.
W kodzie ASCII odwzorowywana jest ka˝da cyfra oraz znak wartoÊci (parametry).
Tworzà one wynikowà tablic´ bajtów.
• Funkcja INT_TO_STRING: s∏owo pojedyncze mo˝e mieç wartoÊç z przedzia∏u od
-32768 do +32767, czyli 5 cyfr plus znak. Wynikiem wi´c b´dzie tablica o d∏ugoÊci
6 znaków plus znak koƒca ∏aƒcucha znaków. Znak '+' lub '-' jest zapisywany
w pierwszym znaku, cyfry jednostkowe w znaku szóstym, dziesiàtki w piàtym, itd.
• Funkcja DINT_TO_STRING: s∏owo podwójne mo˝e mieç wartoÊç z przedzia∏u od 2147483648 do +2147483647, czyli 10 cyfr plus znak. Wynikiem wi´c b´dzie
tablica o d∏ugoÊci 12 znaków plus znak koƒca ∏aƒcucha znaków. Znak '+' lub '-' jest
zapisywany w pierwszym znaku, cyfry jednostkowe w znaku dwunastym, dziesiàtki
w jedenastym, itd. Drugim znakiem jest zawsze '0'.
___________________________________________________________________________
2/54
Instrukcje z∏o˝one
2
B
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[ %MB10:7 := INT_TO_STRING (%MW20)]
J´zyk ST
%MB2:13:=DINT_TO_STRING (%MD30) ;
Przyk∏ad: Konwersja Kod binarny --- & gt; Kod ASCII
%MB10:7 := INT_TO_STRING (%MW20) gdzie %MW20 = - 3782 w kodzie
dziesi´tnym == & gt; wynik zapisywany jest w 7-bajtowej tablicy %MB10:7
Przyk∏ad: %MB2:13 := DINT_TO_STRING (%MD30) gdzie %MD30 = - 234701084
Sk∏adnia
Operator
Wynik := INT_TO_STRING (wartoÊç)
Argumenty
Typ
Wynik
Tablica 6-bajtowa
+ znak koƒca ∏aƒcucha
%MB:7
S∏owa indeksowalne
WartoÊç
%MW, %KW, %Xi.T
S∏owa nieindeksowalne
%IW,%QW,%SW,%NW
Wart. bezp., Wyr. num.
Operator
Wynik := DINT_TO_STRING (wartoÊç)
Argumenty
Typ
Wynik
Tablica 12-bajtowa
+ znak koƒca ∏aƒcucha
%MB:13
WartoÊç
Podwójne s∏owa indeksowalne
%MD, %KD
Podwójne s∏owa nieindeks.
%ID,%QD,%SD,
Wart. bezp., Wyra˝enie num.
___________________________________________________________________________
2/55
B
2.8-6 Konwersja ASCII --- & gt; Kod binarny
Funkcja ta umo˝liwia konwersj´ ∏aƒcucha znaków reprezentujàcego wartoÊç numerycznà na kod binarny (wynik jest zapisywany w s∏owie pojedynczym lub podwójnym).
Ka˝dy element tablicy b´dàcy parametrem reprezentuje kod ASCII danego znaku.
Mogà to byç cyfry i znaki '+' i '-'.
• Funkcja STRING_TO_INT: konwersja ∏aƒcucha 6-znakowego, którego wartoÊç
mieÊci si´ w przedziale od -32768 do +32767. Pierwszy znak reprezentuje znak
liczby, a pozosta∏e - jej wartoÊç. Drugi znak odpowiada dziesiàtkom tysi´cy, ...,
szósty - jednostkom. WartoÊç w ∏aƒcuchu musi byç wyrównana do prawej strony.
• Funkcja STRING_TO_DINT: konwersja ∏aƒcucha 12-znakowego, którego wartoÊç
mieÊci si´ w przedziale od -2147483648 do +2147483647. Pierwszy znak
reprezentuje znak liczby a pozosta∏e - jej wartoÊç. Drugim znakiem jest '0', trzeci
znak odpowiada tysiàcom milionów, ..., dwunasty - jednostkom. WartoÊç w ∏aƒcuchu musi byç wyrównana do prawej strony.
Struktura
LD
TRUE
[%MW13 := STRING_TO_INT (%MB20:7)]
Przyk∏ad:
%MW13 := STRING_TO_INT (%MB20:7) gdzie
== & gt; wynik %MW13 = -2347
w kodzie dziesi´tnym
Sk∏adnia
Operator
Argumenty
Wynik := STRING_TO_INT (∏aƒcuch)
Typ
Wynik
S∏owa indeksowalne
%MW
S∏owa nieindeksowalne
%QW,%SW,%NW.
Tablice 6-bajtowe
+ znak koƒca ∏aƒcucha
¸aƒcuch
%MB:7,%KB:7, Wart. bezp.
Bit %S18 przyjmuje wartoÊç 1 wtedy, kiedy wartoÊç z ∏aƒcucha znaków nie mieÊci si´ w
przedziale -32768 do +32767 lub gdy jeden z 6 znaków jest nieprawid∏owy.
Operator
Argumenty
Typ
Wynik := STRING_TO_DINT (∏aƒcuch)
Wynik
Indeks. s∏owa podwójne
Nieindeks. s∏owa podwójne
Tablice 12-bajtowe
+ znak koƒca ∏aƒcucha
¸aƒcuch
%MD
%QD,%SD
%MB:13,%KB:13, Wart. bezp.
Bit %S18 przyjmuje wartoÊç 1 wtedy, kiedy wartoÊç z ∏aƒcucha znaków nie mieÊci si´ w
przedziale -2147483648 do +2147483647 lub gdy jeden z 12 znaków jest nieprawid∏owy.
___________________________________________________________________________
2/56
Instrukcje z∏o˝one
2
B
2.8-7 Konwersja WartoÊç zmiennoprzecinkowa --- & gt; Kod ASCII
Jest to funkcja umo˝liwiajàca konwersj´ rzeczywistej wartoÊci numerycznej, zapisanej
w s∏owie zmiennoprzecinkowym, na ∏aƒcuch znaków ASCII. Wynik zapisywany jest
w tablicy sk∏adajàcej si´ z 14 bajtów + znak koƒca ∏aƒcucha.
Przeliczane na kod ASCII sà wszystkie cyfry wartoÊci numerycznej i znaki '+', '-', '.', 'e'
oraz 'E (zapisywane sà w tablicy wynikowej).
Pierwszym znakiem jest znak liczby, znak dziesi´tny (.) jest trzecim znakiem a exponent
'e' jest znakiem jedenastym, natomiast znak exponentu - dwunastym.
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[ %MB20:15 := REAL_TO_STRING (%MF30)]
J´zyk ST
%MB20:15 := REAL_TO_STRING (%MF30) ;
Przyk∏ad:
%MB20:15 := REAL_TO_STRING (%MF30)
gdzie %MF30 = - 3.234718 e26 == & gt; wynik
Sk∏adnia
Operator
Wynik := REAL_TO_STRING (wartoÊç)
Argumenty
Typ
Wynik
Tablice 14-bajtowe
+ znak koƒca ∏aƒcucha
WartoÊç
%MB:15
S∏owa indeksowalne
%MF, %KF
S∏owa nieindeksowalne
WartoÊç bezp., Wyr. num.
Bit %S18 przyjmuje wartoÊç 1, gdy b´dàca parametrem wartoÊç zmiennoprzecinkowa
jest spoza przedzia∏u od -3.402824e+38 do -1.175494e-38 lub +1.175494e-38 do
+3.402824e+38. W takim przypadku, wynik jest nieprawid∏owy.
___________________________________________________________________________
2/57
B
2.8-8 Konwersja Kod ASCII -- & gt; WartoÊç zmiennoprzecinkowa
Funkcja ta umo˝liwia konwersj´ ∏aƒcucha znaków reprezentujàcego rzeczywistà
wartoÊç numerycznà na wartoÊç zmiennoprzecinkowà (wynik jest zapisywany w s∏owie
zmiennoprzecinkowym).
Ka˝dy element tablicy b´dàcy parametrem reprezentuje kod ASCII jednego znaku.
Mogà to byç cyfry oraz znaki '+', '-', '.', 'e' i 'E'. Nie stosuje si´ znaku koƒca ∏aƒcucha.
Oznacza to, ˝e wszystkich 14 bajtów tablicy musi byç poprawnych.
Pierwszym znakiem jest znak liczby, kropka dziesi´tna (.) umieszczana jest na trzecim
miejscu, znak 'e' - na jedenastym a znak exponentu - na dwunastym.
Dla przyk∏adu: wartoÊç 3.12 musi byç zapisana w formie '+3.1200000e+00'.
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[ %MF18 := STRING_TO_REAL (%MB20:14)]
J´zyk ST
%MF18 := STRING_TO_REAL (%MB20:14) ;
Przyk∏ad: %MF18 := STRING_TO_REAL (%MB20:14)
gdzie
== & gt; wynik
%MF18 = - 3.234718e26
Sk∏adnia
Operator
Wynik := STRING_TO_REAL (∏aƒcuch)
Argumenty
Typ
Wynik
S∏owa indeksowalne
%MF
Tablice 14-bajtowe
¸aƒcuch
%MB:14, %KB:14
WartoÊç bezpoÊrednia
Bit %S18 przyjmuje wartoÊç 1 wtedy, kiedy wartoÊç opisana ∏aƒcuchem znaków nie
mieÊci si´ od -3.402824e+38 do -1.175494e-38 lub +1.175494e-38 do +3.402824e+38
lub gdy jeden z 14 znaków jest niew∏aÊciwy.
___________________________________________________________________________
2/58
Instrukcje z∏o˝one
2
B
2.8-9 ¸àczenie dwóch ∏aƒcuchów
Funkcja ta umo˝liwia ∏àczenie dwóch ∏aƒcuchów znaków zdefiniowanych jako
parametry. Wynik zapisywany jest w tablicy bajtów zawierajàcej ∏aƒcuch znaków.
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[ %MB30:14 := CONCAT (%MB4:6, %MB14:9)]
J´zyk ST
%MB30:14 := CONCAT (%MB4:6, %MB14:9) ;
Przyk∏ad: %MB30:14 := CONCAT (%MB4:6, %MB14:9)
Sk∏adnia
Operator
Wynik :=CONCAT (∏aƒcuch1, ∏aƒcuch2)
Argumenty
Typ
Wynik
¸aƒcuch 1 i 2
Tablice bajtów
%MB:L
%MB:L,%KB:L, Wart. bezp.
• Je˝eli tablica wynikowa jest za krótka, to wynik jest obcinany, a bit %S15 przyjmuje
wartoÊç 1. %MB30:10 := CONCAT (%MB4:6, %MB14:9)
== & gt; %S15 stan 1
• Je˝eli tablica wynikowa jest za d∏uga, to ∏aƒcuch uzupe∏niajà znaki koƒcaø.
%MB30:15 := CONCAT (%MB4:6, %MB14:9)
___________________________________________________________________________
2/59
B
2.8-10 Usuwanie ciàgu znaków z ∏aƒcucha
Jest to funkcja umo˝liwiajàca usuwanie zadanej liczby znaków (d∏ugoÊç L), z zadanego
rz´du (pozycja pierwszego znaku do usuni´cia) ∏aƒcucha traktowanego jako parametr.
Wynikiem jest tablica bajtów zawierajàca ∏aƒcuch znaków.
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[%MB14: 9 := DELETE (%MB30:14, %MW2,
%MW4)]
J´zyk ST
%MB14:9 := DELETE (%MB30:14, %MW2, %MW4) ;
Przyk∏ad: %MB14: 9 := DELETE (%MB30:14, %MW2, %MW4)
gdzie %MW2 = 5 (5 znaków do usuni´cia) %MW4 = 3 (pozycja=3)
Sk∏adnia
Operator
Wynik :=DELETE (∏aƒcuch, d∏ugoÊç, Poz)
Argumenty
Typ
Wynik
¸aƒcuch
Tablice bajtów
%MB:L
D∏ugoÊç
Poz (pozycja)
%MB:L,%KB:L
WartoÊç bezp.
S∏owa indeksowalne
%MW, %KW, %Xi.T
S∏owa nieindeks.
%IW,%QW,%SW,%NW
WartoÊç bezpoÊrednia
Wyra˝enie numeryczne
Uwagi:
W zale˝noÊci od u˝ytych indeksów obiektów PL7, niektóre parametry mogà na siebie zachodziç. Mogà to
byç:
• tablica zawierajàca ∏aƒcuch êród∏owy,
• tablica zawierajàca ∏aƒcuch doce∏owy,
• s∏owo definiujàce d∏ugoÊç ∏aƒcucha przeznaczonego do usuni´cia,
• s∏owo definiujàce pozycj´ pierwszego znaku ∏aƒcucha przeznaczonego do usuni´cia.
Podanie ujemnej d∏ugoÊci lub pozycji traktowane jest jak 0. WartoÊcià poczàtkowà parametru
opisujàcego pozycj´ jest 1 odpowiadajàca pozycji pierwszego znaku ∏aƒcucha.
___________________________________________________________________________
2/60
Instrukcje z∏o˝one
2
B
Gdy tablica wynikowa jest zbyt d∏uga, to ∏aƒcuch uzupe∏niany jest znakami koƒca .
Bit systemowy %S15 przyjmuje wartoÊç 1 w nast´pujàcych przypadkach:
• D∏ugoÊç ∏aƒcucha do usuni´cia wynosi zero - tablica wynikowa jest kopià êród∏owej,
• Zadana pozycja jest wi´ksza ni˝ d∏ugoÊç ∏aƒcucha lub pozycja pierwszego,
znalezionego znaku koƒca ∏aƒcucha jest mniejsza lub równa pozycji pierwszego
znaku ∏aƒcucha przeznaczonego do usuni´cia. Wynikiem jest wtedy pusty ∏aƒcuch.
• Pozycja równa zeru. Tablica wynikowa zawiera pusty ∏aƒcuch znaków.
• Tablica wynikowa jest zbyt krótka. ¸aƒcuch zosta∏ obci´ty.
2.8-11 Wstawianie ∏aƒcucha znaków
Jest to funkcja pozwalajàca na wstawienie ∏aƒcucha znaków zdefiniowanego jako
parametr 2 (∏aƒcuch2) do ∏aƒcucha zdefiniowanego jako parametr 1 (∏aƒcuch1).
¸aƒcuch znaków jest wstawiany do pierwszego ∏aƒcucha za znakiem znajdujàcym si´
na wskazanej pozycji (Parametr Poz).
Wynikiem operacji jest nowy ∏aƒcuch znaków zapisywany w tablicy bajtów.
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[%MB2:14 := INSERT (%MB20:9, %MB30:6, %MW40)]
J´zyk ST
%MB2:14 := INSERT (%MB20:9, %MB30:6, %MW40) ;
Przyk∏ad: %MB2:14 := INSERT (%MB20:9, %MB30:6, %MW40)
gdzie %MW40 := pozycja 2
___________________________________________________________________________
2/61
B
Sk∏adnia
Operator
Wynik :=INSERT (∏aƒcuch1, ∏aƒcuch2, Poz)
Argumenty
Typ
Wynik
¸aƒcuch 1 i 2
Tablice bajtów
%MB:L
Immed. value
Poz (pozycja)
%MB:L,%KB:L
S∏owa indeksowalne
%MW, %KW, %Xi.T
S∏owa nieindeksowalne
%IW,%QW,%SW,%NW
WartoÊç bezpoÊrednia
Wyra˝enia numeryczne
Uwagi:
Najmniejszà wartoÊcià parametru okreÊlajàcego pozycj´ jest 1, co odpowiada pierwszej pozycji
w ∏aƒcuchu znaków.
Nie mo˝na wstawiç nowego ∏aƒcucha na poczàtek ∏aƒcucha êród∏owego. Do tego s∏u˝y funkcja
CONCAT.
Je˝eli tablica jest zbyt d∏uga, to nale˝y jà uzupe∏niç znakami koƒca ∏aƒcucha.
Bit systemowy %S15 przyjmuje wartoÊç 1 w nast´pujàcych przypadkach:
• WartoÊç parametru opisujàcego pozycj´ jest ujemna lub równa zeru. W takim przypadku,
parametr jest traktowany jako równy 0, a tablica wynikowa zawiera pusty ∏aƒcuch znaków
(sk∏adajàcy si´ z samych znaków koƒca ∏aƒcucha).
• Parametr opisujàcy pozycj´ jest wi´kszy lub równy d∏ugoÊci ∏aƒcucha êród∏owego. Tablica
wynikowa zawiera pusty ∏aƒcuch znaków (sk∏adajàcy si´ z samych znaków koƒca ∏aƒcucha).
• Je˝eli tablica jest zbyt krótka, to ∏aƒcuch znaków jest obcinany.
___________________________________________________________________________
2/62
Instrukcje z∏o˝one
2
B
2.8-12 Wymiana ciàgu znaków w ∏aƒcuchu znaków
Jest to funkcja, która umo˝liwia wymian´ cz´Êci ∏aƒcucha êród∏owego (∏aƒcuch1) na
∏aƒcuch znaków zdefiniowany w tablicy zamiany (∏aƒcuch2). Podmian´ ∏aƒcucha
definiuje si´ za pomocà dwóch parametrów: pozycji (Poz) oraz d∏ugoÊci. Parametr
opisujàcy d∏ugoÊç dotyczy ∏aƒcucha znaków, który ma byç usuni´ty z ∏aƒcucha
êród∏owego, a nie ∏aƒcucha, który ma byç wpisany do ∏aƒcucha êród∏owego.
Struktura
J´zyk Ladder
J´zyk List
LD TRUE
[ %MB2:13 := REPLACE (%MB20:12,
%MB30:9, %MW40,
%MW41)]
J´zyk ST
%MB2:13 := REPLACE (%MB20:12, %MB30:9, %MW40, %MW41) ;
Przyk∏ad:
%MB2:13 := REPLACE (%MB20:12, %MB30:9, %MW40, %MW41)
gdzie %MW40 = 3 (d∏ugoÊç=3) i %MW41 = 9 (pozycja=9)
¸aƒcuch 1
¸aƒcuch 2
Sk∏adnia
Operator
Wynik := REPLACE (∏aƒcuch1, ∏aƒcuch2, d∏ugoÊç, Poz)
Argumenty
Typ
Wynik
¸aƒcuch 1 i 2
Tablica bajtów
%MB:L
D∏ugoÊç
Poz (pozycja)
%MB:L,%KB:L
WartoÊç bezp.
S∏owa indeksowalne
%MW, %KW,%Xi.T
S∏owa nieindeks.
%IW,%QW,%SW,%NW
WartoÊç bezpoÊrednia
Wyra˝enie numeryczne
___________________________________________________________________________
2/63
B
Uwagi:
Najmniejszà wartoÊcià parametru okreÊlajàcego pozycj´ jest 1, co odpowiada pierwszej pozycji
w ∏aƒcuchu znaków.
Je˝eli tablica jest zbyt d∏uga, to jest uzupe∏niana znakami koƒca ∏aƒcucha.
Bit systemowy %S15 przyjmuje wartoÊç 1 w nast´pujàcych przypadkach:
• WartoÊç parametru opisujàcego pozycj´ jest ujemna lub równa zeru. W takim przypadku,
parametr jest traktowany jako równy 0, a tablica wynikowa zawiera pusty ∏aƒcuch znaków
(sk∏adajàcy si´ z samych znaków koƒca ∏aƒcucha).
• Parametr opisujàcy pozycj´ jest wi´kszy lub równy d∏ugoÊci ∏aƒcucha êród∏owego. Tablica
wynikowa zawiera pusty ∏aƒcuch znaków (sk∏adajàcy si´ z samych znaków koƒca ∏aƒcucha).
• Je˝eli tablica jest zbyt krótka, to ∏aƒcuch znaków jest obcinany.
• Je˝eli pozycja pierwszego znaku koƒca ∏aƒcucha jest mniejsza lub równa pozycji pierwszego
znaku, który ma byç wymieniony, to tablica wynikowa jest kopià tablicy êród∏owej do znaku
koƒca ∏aƒcucha uzupe∏nionà znakami koƒca ∏aƒcucha.
___________________________________________________________________________
2/64
Instrukcje z∏o˝one
2
B
2.8-13 Wydzielanie ciàgu znaków z ∏aƒcucha znaków
Ta funkcja umo˝liwia wydzielenie zadanej liczby znaków z ∏aƒcucha êród∏owego.
Pozycj´ pierwszego znaku ∏aƒcucha, który ma byç wydzielony opisuje parametr
(Pos), natomiast liczb´ znaków wydzielanego ∏aƒcucha opisuje parametr 'D∏ugoÊç'.
Wydzielony ∏aƒcuch zapisywany jest w tablicy bajtów (Wynik).
Struktura
J´zyk Ladder
J´zyk List
LD TRUE
[%MB14: 7 := MID (%MB30:13, %MW2, %MW4)]
J´zyk ST
%MB14:7 := MID (%MB30:13, %MW2, %MW4) ;
Przyk∏ad:
%MB14: 7 := MID (%MB30:13, %MW2, %MW4)
gdzie %MW2 = 4 (d∏ugoÊç), %MW4 = 9 (pozycja)
== & gt; wynik
Sk∏adnia
Operator
Wynik :=MID (∏aƒcuch, d∏ugoÊç, Poz)
Argumenty
Typ
Wynik
¸aƒcuch
Tablica bajtów
%MB:L
WartoÊç bezp.
D∏ugoÊç
Poz (pozycja)
%MB:L,%KB:L
S∏owa indeksowalne
%MW,%KW,%Xi.T
S∏owa nieindeks.
%IW,%QW,%SW,%NW
WartoÊç bezpoÊrednia
Wyra˝enie numeryczne
___________________________________________________________________________
2/65
B
Uwagi:
Najmniejszà wartoÊcià parametru okreÊlajàcego pozycj´ jest 1, co odpowiada pierwszej pozycji
w ∏aƒcuchu znaków.
Je˝eli tablica jest zbyt d∏uga, to jest uzupe∏niana znakami koƒca ∏aƒcucha.
Je˝eli zadana d∏ugoÊç (parametr) jest wi´ksza ni˝ rozmiar ∏aƒcucha êród∏owego, to tablica
wynikowa zawiera ca∏y ∏aƒcuch êród∏owy.
Je˝eli przed osiàgni´ciem liczby znaków zdefiniowanych do wydzielenia z ∏aƒcucha zostanie
wykryty znak koƒca ∏aƒcucha lub ostatni element tablicy, to operacja zatrzymuje si´ w tym
punkcie.
Bit systemowy %S15 przyjmuje wartoÊç 1 w nast´pujàcych przypadkach:
• D∏ugoÊç ∏aƒcucha znaków, który ma byç wydzielony z ∏aƒcucha êród∏owego jest ujemna lub
równa zeru. W takim przypadku jest ona interpretowana jako 0, a tablica wynikowa zawiera
pusty ∏aƒcuch znaków (sk∏adajàcy si´ z samych znaków koƒca ∏aƒcucha).
• Parametr opisujàcy pozycj´ jest wi´kszy lub równy d∏ugoÊci tablicy lub jest wi´kszy lub równy
pozycji pierwszego znaku koƒca ∏aƒcucha. Tablica wynikowa zawiera pusty ∏aƒcuch znaków
(sk∏adajàcy si´ z samych znaków koƒca ∏aƒcucha).
• Je˝eli tablica jest zbyt krótka, to ∏aƒcuch znaków jest obcinany.
___________________________________________________________________________
2/66
Instrukcje z∏o˝one
2
B
2.8-14 Wydzielanie znaków z ∏aƒcucha
Jest to funkcja umo˝liwiajàca wydzielenie okreÊlonej liczby znaków poczynajàc od
lewej (LEFT) lub prawej (RIGHT) strony ∏aƒcucha êród∏owego (parametr ∏aƒcuch).
Liczb´ wydzielanych znaków okreÊla parametr 'D∏ugoÊç'.
Wydzielone znaki zapisywane sà w tablicy bajtów (Wynik).
Struktura
J´zyk Ladder
J´zyk List
LD TRUE
[%MB10: 10 := LEFT (%MB30:13, %MW2)]
J´zyk ST
%MB10:10 := LEFT (%MB30:13, MW2) ;
Przyk∏ad:
%MB10: 10 := LEFT (%MB30:13, %MW2)
gdzie %MW2 = 8 (d∏ugoÊç)
== & gt; wynik
Sk∏adnia
Operator
Wynik :=LEFT (∏aƒcuch, d∏ugoÊç)
Wynik :=RIGHT (∏aƒcuch, d∏ugoÊç)
Argumenty
Typ
Wynik
¸aƒcuch
Tablica bajtów
%MB:L
D∏ugoÊç
%MB:L,%KB:L
WartoÊç bezp.
S∏owa indeksowalne
%MW,%KW,%Xi.T
S∏owa nieindeksowalne
%IW,%QW,%SW,%NW
WartoÊç bezpoÊrednia
Wyra˝enie numeryczne
___________________________________________________________________________
2/67
B
Uwagi:
Je˝eli tablica jest zbyt d∏uga, to ∏aƒcuch wynikowy jest uzupe∏niany znakami koƒca ∏aƒcucha.
Je˝eli zadana d∏ugoÊç (parametr) jest wi´ksza ni˝ rozmiar ∏aƒcucha êród∏owego, to tablica
wynikowa zawiera ca∏y ∏aƒcuch êród∏owy.
Bit systemowy %S15 przyjmuje wartoÊç 1 w nast´pujàcych przypadkach:
• D∏ugoÊç ∏aƒcucha znaków, który ma byç wydzielony z ∏aƒcucha êród∏owego jest ujemna lub
równa zeru. W takim przypadku tablica wynikowa zawiera pusty ∏aƒcuch znaków (sk∏adajàcy
si´ z samych znaków koƒca ∏aƒcucha).
• Je˝eli tablica jest zbyt krótka, to ∏aƒcuch znaków jest obcinany.
___________________________________________________________________________
2/68
Instrukcje z∏o˝one
2
B
2.8-15 Porównywanie ∏aƒcuchów znaków
Ta funkcja s∏u˝y do porównywania dwóch ∏aƒcuchów znaków. W wyniku uzyskuje si´
s∏owo zawierajàce pozycj´ pierwszego znaku ró˝niàcego te ∏aƒcuchy.
Je˝eli porównywane ∏aƒcuchy sà takie same, to wynikiem jest -1.
Struktura
J´zyk Ladder
J´zyk List
LD TRUE
[%MW2 := EQUAL_STR (%MB18:14, %MB50:14)]
J´zyk ST
%MW2 := EQUAL_STR (%MB18:14, %MB50:14) ;
Przyk∏ad: %MW2 := EQUAL_STR (%MB18:14, %MB50:14) gdzie
== & gt; MW2 := 5
Sk∏adnia
Operator
Wynik :=EQUAL_STR (∏aƒcuch1, ∏aƒcuch2)
Argumenty
Typ
Wynik
S∏owa indeksowalne
%MW
S∏owa nieindeksowalne
%QW,%SW,%NW.
Tablice bajtów
¸aƒcuch 1 i 2
%MB:L,%KB:L
WartoÊç bezpoÊrednia
Uwaga:
Ujemna wartoÊç d∏ugoÊci lub pozycji interpretowana jest jako 0.
Podczas operacji porównywania wychwytywane sà ró˝nice pomi´dzy du˝ymi i ma∏ymi literami.
___________________________________________________________________________
2/69
B
2.8-16 Wyszukiwania zadanego ciàgu znaków
Ta funkcja s∏u˝y do wyszukiwania ciàgu znaków zdefiniowanych w parametrze 2
w ∏aƒcuchu znaków zdefiniowanym jako parametr 1.
W wyniku uzyskuje si´ s∏owo zawierajàce pozycj´ pierwszego znaku wyszukiwanego
∏aƒcucha.
Je˝eli wyszukiwanie koƒczy si´ fiaskiem, to wynikiem jest -1.
Struktura
J´zyk Ladder
J´zyk List
LD TRUE
[ %MW2 := FIND (%MB18:14, %MB50:4)]
J´zyk ST
%MW2 := FIND (%MB18:14, %MB50:4) ;
Przyk∏ad: %MW2 := FIND (%MB18:14, %MB50:4) gdzie
== & gt; MW2 := 6 oznacza, ˝e pierwszy znak poszukiwanego ∏aƒcucha znaków
znajduje si´ na pozycji 6 ∏aƒcucha êród∏owego.
Sk∏adnia
Operator
Wynik :=FIND (∏aƒcuch1, ∏aƒcuch2)
Argumenty
Typ
Wynik
S∏owa indeksowalne
%MW
S∏owa nieindeksowalne
%QW,%SW,%NW.
Tablice bajtów
¸aƒcuch 1 i 2
%MB:L,%KB:L
WartoÊç bezpoÊrednia
Uwaga:
Ujemna wartoÊç d∏ugoÊci lub pozycji jest interpretowana jako 0.
___________________________________________________________________________
2/70
Instrukcje z∏o˝one
2
B
2.8-17 D∏ugoÊç ∏aƒcucha znaków
Jest to funkcja umo˝liwiajàca obliczenie d∏ugoÊci zadanego ∏aƒcucha znaków
(parametr), czyli liczby znaków znajdujàcych si´ przed znakiem koƒca ∏aƒcucha.
Struktura
J´zyk Ladder
J´zyk List
LD TRUE
[%MW2 := LEN (%MB20:14)]
J´zyk ST
%MW2 := LEN (%MB20:14) ;
Przyk∏ad: %MW2 := LEN (%MB20:14)
gdzie
== & gt; %MW2 = 7
Sk∏adnia
Operator
Wynik := LEN (∏aƒcuch)
Argumenty
Typ
Wynik
S∏owa indeksowalne
%MW
S∏owa nieindeksowalne
%QW,%SW,%NW.
Tablice bajtów
¸aƒcuch
%MB:L,%KB:L
WartoÊç bezpoÊrednia
Uwaga:
Je˝eli nie zostanie odnaleziony znak zakoƒczenia ∏aƒcucha, to wynikiem jest rozmiar tablicy
(patrz rozdzia∏ 2.8-1).
___________________________________________________________________________
2/71
B
2.9
Instukcje zwiàzane z czasem: Data, Godzina, Czas trwania
2.9-1 Format parametru
Parametry Data Date, Pora dnia (godzina) Time of day oraz Czas trwania Duration
majà format zgodny z normà IEC 1131-3.
• Format czasu trwania (typ TIME)
Ten format s∏u˝y do wyra˝ania czasu trwania z dok∏adnoÊcià do dziesiàtych cz´Êci
sekundy i odpowiada formatowi standardowemu TIME.
WartoÊci wyÊwietlane sà w nast´pujàcym formacie: sssssssss.d
czyli na przyk∏ad:
3674.3
oznacza 1 godzin´, 1 minut´, 14 sekund i 3 dziesiàte sekundy.
WartoÊç jest zapisywana w 32 bitach (s∏owo podwójnej precyzji), co daje ograniczenie
na poziomie [0, 4294967295] dziesiàtych cz´Êci sekundy, co odpowiada mniej
wi´cej 13 latom i 7 miesiàcom.
• Format daty (typ DATE)
Ten format s∏u˝y do zapisywania roku, miesiàca i dnia. Odpowiada on formatowi
standardowemu DATE.
WartoÊç wyÊwietlana jest w nast´pujàcy sposób:
na przyk∏ad:
rrrr-mm-dd
1984-06-25
WartoÊç jest zapisywana w BCD w 32 bitach (s∏owo podwójne) w 3 polach:
31
16
8
0
Rok : 4 cyfry
Rok
Miesiàc Dzieƒ
Miesiàc : 2 cyfry
Dzieƒ : 2 cyfry
Przyk∏ad:
format szesnastkowy
19h
84h
06h
25h
= 1984-06-25
Dozwolone sà tylko wartoÊci z przedzia∏u [1990-01-01, 2099-12-31].
___________________________________________________________________________
2/72
Instrukcje z∏o˝one
2
B
•Format pory dnia (typ TOD)
Ten format wykorzystuje si´ do opisywania pory dnia (godzina, minuty, sekundy).
Odpowiada on formatowi standardowemu TIME_OF_DAY.
WartoÊç wyÊwietlana jest nast´pujàco:
czyli na przyk∏ad:
gg:mm:ss
23:12:34
WartoÊç kodowana jest w BCD w 32 bitach (s∏owo podwójne) w 3 polach:
31
24
16
8
0
Godzina :
2 cyfry (s∏owo wa˝niejsze)
Godz. Min. Sek.
Minuty :
2 cyfry (s∏owo wa˝niejsze)
Sekundy : 2 cyfry (s∏owo mniej wa˝ne)
Przyk∏ad:
w formacie szesnastkowym
23h
12h
34h
= 23:12:34
Dozwolone sà tylko wartoÊci z przedzia∏u [00:00:00, 23:59:59].
• Format ∏àczny dla daty i pory dnia (typ DT)
Ten format s∏u˝y do opisywania daty z podaniem pory dnia (rok, miesiàc, dzieƒ,
godzina, minuty, sekundy). Odpowiada to formatowi DATE_AND_TIME.
WartoÊç jest wyÊwietlana nast´pujàco:
czyli na przyk∏ad:
rrrr-mm-dd-gg:mm:ss
1984-06-25-23:12:34
WartoÊç jest zapisywana w kodzie BCD, w 64 bitach (tablica 4 s∏ów):
64
48
Rok
40
32
Miesiàc Dzieƒ
24
Godz.
16
Min.
8
0
Sek.
Przyk∏ad:
zapis w formacie szesnastkowym
1984h
06h
25h
23h
12h
34h
Dozwolone wartoÊci: [1990-01-01-00:00:00, 2099-12-31- 23:59:59].
___________________________________________________________________________
2/73
B
•Format: Godzina, Minuty, Sekundy (typ HMS)
Ten format, stosowany wy∏àcznie dla funkcji TRANS_TIME, s∏u˝y do kodowania
pory dnia (czyli dok∏adnej godziny).
WartoÊç jest wyÊwietlana nast´pujàco: gg:mm:ss
czyli na przyk∏ad:
23:12:34
WartoÊç jest zapisana w BCD w 32 bitach (s∏owo podwójne) w 3 polach:
31
16
8
0 Godziny : 4 cyfry (s∏owo wa˝niejsze)
Godz.
Min.
Sek.
Minuty : 2 cyfry (s∏owo mniej wa˝ne)
Sekundy : 2 cyfry (s∏owo mniej wa˝ne)
Przyk∏ad:
zapis w kodzie szesnastkowym
23h
12h
34h
= 23:12:34
2.9-2 Rola s∏ów i bitów systemowych - podsumowanie
Bit systemowy %S17 przyjmuje wartoÊç 1 w nast´pujàcych okolicznoÊciach:
•Wynik operacji nie mieÊci si´ w dopuszczalnym zakresie.
•Parametr wejÊciowy nie mo˝e byç zinterpretowany i jest niezgodny z ˝àdanym
formatem (DAT, DT lub TOD).
•Operacje na porze dnia (format TOD) prowadzà do zmiany daty.
•Nast´puje kolizja z zegarem czasu rzeczywistego.
Bit systemowy %S15 przyjmuje wartoÊç 1, gdy ∏aƒcuch zapisywany w tablicy
przekracza jej d∏ugoÊç.
S∏owa systemowe:
• %SD18 : bezwzgl´dny licznik czasu, wykorzystywany do obliczania okresu czasu
(wartoÊç zwi´kszana przez system co 1/10 sekundy).
• %SW49 do %SW53 mogà byç równie˝ wykorzystane do wyÊwietlania daty (patrz
rozdzia∏ 3.2-2, cz´Êç B).
___________________________________________________________________________
2/74
Instrukcje z∏o˝one
2
B
2.9-3 Zegar czasu rzeczywistego
Ta funkcja s∏u˝y do zarzàdzania akcjami o okreÊlonym lub obliczanym czasie trwania
i dacie. Nadaje ona parametrowi wyjÊciowemu OUT wartoÊç 1 je˝eli data, w momencie
wywo∏ania funkcji, mieÊci si´ w okresie zdefiniowanym w parametrach wejÊciowych.
Sk∏adnia
Operator
SCHEDULE (DBEG, DEND, WEEK, HBEG, HEND, OUT)
Charakterystyka parametrów
WyjÊcie
OUT
Bit zawierajàcy wynik porównania dokonywanego przez zegar czasu rzeczywistego: ma wartoÊç 1 przez okres zdefiniowany w parametrach.
Data poczàtkowa
DBEG
S∏owo zawierajàce dat´ poczàtkowà zadanego okresu (miesiàc-dzieƒ) zakodowanego w BCD (limit: 01-01 do 12-31).
Data koƒcowa
DEND
S∏owo zawierajàce dat´ koƒcowà zadanego okresu (miesiàc-dzieƒ) zakodowanego w BCD (limit: 01-01 do 12-31).
Dzieƒ tygodnia
WEEK
S∏owo zawierajàce informacj´ o dniach tygodnia, w których obowiàzujà warunki zdefiniowane w parametrach DBEG i DEND.
7 mniej znaczàcych bitów s∏owa reprezentuje 7 dni tygodnia: bit 6 = Poniedzia∏ek,
bit 5 = Wtorek,..., bit 0 = Niedziela.
Godzina poczàtkowa HBEG
S∏owo podwójne zawierajàce informacj´
o godzinie poczàtkowej zadanego okresu
(godziny- minuty- sekundy) w BCD zapisane w formacie pory dnia (typ: TOD).
Limit: 00:00:00, 23:59:59.
Godzina koƒcowa
S∏owo podwójne zawierajàce informacj´
o godzinie koƒcowej zadanego okresu
(godziny- minuty- sekundy) w BCD zapisane w formacie pory dnia (typ: TOD).
Limit: 00:00:00, 23:59:59.
HEND
___________________________________________________________________________
2/75
B
Struktura
J´zyk Ladder
J´zyk List
LD TRUE
[SCHEDULE (%KW0,%KW1,%KW2,%KD3,
%KD5,%Q0.0)]
J´zyk ST
SCHEDULE
( 16#0501,
16#1031,
2#0000000001111100,
16#08300000,
16#18000000,
%Q0.0) ;
(* data poczatkowa : 1 Maja*)
(* data koncowa : 31 Pazdziernika*)
(* Od Poniedzialku do Piatku*)
(* poczatek : 08:30*)
(* koniec : 18:00*)
(* wynik w slowie : %Q0.0*)
Argumenty
SCHEDULE (DBEG, DEND, WEEK, HBEG, HEND, OUT)
Typ
DBEG,DEND,WEEK
S∏owa indeksowalne
%MW,%KW,%Xi.T
HBEG,HEND
OUT
S∏owa nieindeksowalne %IW,%QW,%SW,%NW
WartoÊç bezpoÊrednia
Wyra˝enie numeryczne
Indeks. s∏owa podwójne
%MD,%KD
Nieindeksowalne s∏owa
podwójne
%ID,%QD
WartoÊç bezp.
Wyr. numeryczne
Bity
%I,%Q, %M, %S,
%BLK,%•:Xk, %X
Uwagi:
• Parametry DBEG i DEND okreÊlajà zadany okres w kontekÊcie dni roku. Ten okres mo˝e
rozciàgaç si´ na dwa lata kalendarzowe, np. od 10 paêdziernika do 7 kwietnia. Dzieƒ 29 lutego
mo˝e byç wykorzystany przy definiowaniu tego okresu, ale b´dzie uwzgl´dniany tylko w roku
przest´pnym.
• Parametry HBEG i HEND definiujà zadany okres w czasie dnia. Okres ten mo˝e obejmowaç
dwa dni, np. od 22:00 do 06:10:20.
• Je˝eli jedna z dat DBEG lub DEND lub jeden z czasów HBEG lub HEND b´dzie niew∏aÊciwa,
tj. nie b´dzie mieÊci∏a si´ w zdefiniowanym zakresie, to na wyjÊciu OUT pojawi si´ 0, a bit
%S17 przyjmie wartoÊç 1.
• Je˝eli programowany sterownik nie jest wyposa˝ony w wewn´trzny zegar czasu rzeczywistego
(jak np. TSX37-10), to na wyjÊciu b´dzie 0, a bit systemowy %S17 b´dzie mia∏ stan 1.
• Je˝eli du˝a dok∏adnoÊç nie jest konieczna, to mo˝na sterowaç wywo∏aniem funkcji SCHEDULE za pomocà bitu systemowego %S6 lub %S7 (odcià˝a to procesor sterownika).
___________________________________________________________________________
2/76
Instrukcje z∏o˝one
2
B
2.9-4 Odczytywanie daty systemowej
Funkcja ta powoduje odczytanie daty systemowej (zegar czasu rzeczywistego)
i zapisanie jej w formacie DT we wskazanym obiekcie (parametr).
Struktura
J´zyk Ladder
J´zyk List
LD
%M6
[RRTC (%MW2:4)]
J´zyk ST
IF %M6 THEN
RRTC (%MW2:4) ;
END_IF ;
Przyk∏ad: RRTC (%MW2:4)
Wynik jest zapisywany w tablicy s∏ów wewn´trznych o d∏ugoÊci 4 s∏ów: %MW2 do
%MW5.
Sk∏adnia
Operator
RRTC(data)
Argument
Typ
Data
Tablica - 4 s∏owa
w formacie DT
%MW:4
2.9-5 Aktualizowanie daty systemowej
Funkcja ta umo˝liwia uaktualnienie daty systemowej (zegar czasu rzeczywistego)
i powoduje zapisanie jej w formacie DT we wskazanym obiekcie (parametr).
Struktura
J´zyk Ladder
J´zyk List
LDR
%M7
[%MW2:= 16#4300]
[%MW3:= 16#1732]
[%MW4:= 16#1124]
[%MW5:= 16#1995]
[WRTC (%MW2:4)]
___________________________________________________________________________
2/77
B
J´zyk ST
IF RE %M7 THEN
%MW2 := 16#4300 ;
%MW3 := 16#1732 ;
%MW4 := 16#1124 ;
%MW5 := 16#1995 ;
WRTC (%MW2:4) ;
END_IF ;
Przyk∏ad: w tablicy s∏ów wewn´trznych %MW2:4 o d∏ugoÊci 4 s∏ów zapisywana jest
nowa data, po czym jest ona wysy∏ana do systemu za pomocà funkcji WRTC.
Sk∏adnia
Operator
WRTC(data)
Argument
Typ
Data
Tablica o d∏ugoÊci 4 s∏ów
w formacie DT
%MW:4, %KW:4
2.9-6 Odczytanie daty i kodu zatrzymania sterownika
Jest to funkcja umo˝liwiajàca odczytanie daty ostatniego zatrzymania sterownika
i kodu zawierajàcego informacj´ o przyczynie zatrzymania (w piàtym s∏owie,
równowa˝nym s∏owu %SW58). Patrz rozdzia∏ 3.2-2, cz´Êç B.
Struktura
J´zyk Ladder
J´zyk List
LD
%M7
[PTC (%MW4:5)]
J´zyk ST
IF %M7 THEN
PTC (%MW4:5) ;
END_IF ;
Przyk∏ad: PTC (%MW4:5)
Wynik jest zapisywany w tablicy s∏ów wewn´trznych (d∏ugoÊç 5 s∏ów): %MW4÷%MW8.
Sk∏adnia
Operator
PTC (data)
Argument
Typ
Tablica o d∏ugoÊci 5 s∏ów
Data
%MW:5
w formacie DT
___________________________________________________________________________
2/78
Instrukcje z∏o˝one
2
B
2.9-7 Odczytywanie dnia tygodnia
Funkcja ta powoduje wyÊwietlenie dnia tygodnia w formie cyfry od 1 do 7 zapisywanej
w zadanym s∏owie (1 = Poniedzia∏ek, 2 = Wtorek, 3 = Âroda, 4 = Czwartek,
5 = Piàtek, 6 = Sobota, 7 = Niedziela).
Struktura
J´zyk Ladder
J´zyk List
LD
%M7
[%MW5 := DAY_OF_WEEK()]
J´zyk ST
IF %M7 THEN
%MW5 := DAY_OF_WEEK () ;
END_IF ;
Przyk∏ad: %MW5 := DAY_OF_WEEK()
%MW5 := 4 co odpowiada Czwartkowi
Sk∏adnia
Operator
Wynik :=DAY_OF_WEEK()
Argument
Typ
Wynik
S∏owa indeksowalne
%MW
S∏owa nieindeksowalne
%QW, %SW, %NW
Uwaga
Je˝eli, ze wzgl´du na b∏àd dost´pu do zegara czasu rzeczywistego, funkcja nie
mo˝e ustaliç wyniku, to wystawia 0, a bit systemowy %S17 przyjmuje wartoÊç 1.
___________________________________________________________________________
2/79
B
2.9-8 Dodawanie (odejmowanie) okresu czasu do daty
Powoduje dodanie lub usuni´cie dodatkowego czasu In2 (wyra˝onego w dziesiàtych
cz´Êciach sekundy) do daty In1. W wyniku uzyskuje si´ nowy czas zapisywany
w tablicy sk∏adajàcej si´ z 4 s∏ów.
ADD_DT () = dodanie okresu czasu
Struktura
J´zyk Ladder
SUB_DT () = odj´cie okresu czasu
J´zyk List
LD
%M7
[RRTC (%MW2:4)]
[%MD8 := 906]
[%MW2:4:= ADD_DT(%MW2:4, %MD8)]
[WRTC (%MW2:4)]
J´zyk ST
IF %M7 THEN
RRTC (%MW2:4) ;
%MD8 := 906 ;
%MW2:4 := ADD_DT (%MW2:4, %MD8) ;
WRTC (%MW2:4) ;
END_IF ;
Przyk∏ad: %MW2:4 := ADD_DT(%MW2:4, %MD8)
%MW2:4 := data êród∏owa
%MD8 := 906 (906 dziesiàtych cz´Êci sekundy zaokràglone do 1min. 31s)
%MW2:4 := nowa data
Sk∏adnia
Operatory
Wynik :=ADD_DT (In1, In2)
Wynik :=SUB_DT (In1, In2)
___________________________________________________________________________
2/80
Instrukcje z∏o˝one
2
B
Argumenty
Typ
Wynik
In1 (data êród∏owa)
Tablica o d∏ugoÊci 4 s∏ów
w formacie DT
%MB:4
In2 (okres czasu)
%MW4:4, %KW:4
Indeks. s∏owa podwójne
%MD,%KD
Nieindeks. s∏owa
podwójne
%ID,%QD
WartoÊç bezp.
Wyra˝enie num.
Uwagi:
• Parametr definiujàcy dodawany okres czasu (wyra˝ony w 1/10 sekundy) jest zaokràglany w
gór´ lub w dó∏ (z dok∏adnoÊcià do 1 sekundy).
- sssssssss.0 do
sssssssss.4 jest zaokràglany do
sssssssss.0
- sssssssss.5 to
sssssssss.9
jest zaokràglany do
sssssssss.0 + 1.0
• Nale˝y zastosowaç odpowiednie Êrodki je˝eli aplikacja ma uwzgl´dniaç lata przest´pne.
• Je˝eli wynik operacji wykracza poza zadane ograniczenia, to bit systemowy %S17 przyjmuje
wartoÊç 1, a wynik przyjmuje wartoÊç minimalnà (dla SUB_DT) lub zostaje zablokowany na
wartoÊci maksymalnej (dla ADD_DT).
• Je˝eli " data êród∏owa " nie mo˝e byç zinterpretowana poniewa˝ nie jest zgodna z formatem DT
(DATE_AND_TIME), to bit systemowy %S17 przyjmuje wartoÊç 1, a w wyniku uzyskuje si´ wartoÊç
0001-01-01-000:00:00.
2.9-9 Dodawanie okresu czasu do pory dnia
Funkcje te pozwalajà na dodanie (lub odj´cie) zadanego okresu czasu do pory dnia.
W wyniku uzyskuje si´ nowy czas, który jest zapisywany w s∏owie podwójnym.
ADD_TOD () = dodanie okresu czasu
Struktura
J´zyk Ladder
SUB_TOD () = odj´cie okresu czasu
J´zyk List
LD
%M7
[%MD8 := 906]
[%MD2 := ADD_TOD (%MD2, %MD8)]
___________________________________________________________________________
2/81
B
J´zyk ST
IF %M7 THEN
%MD8 := 906 ;
%MD2 := ADD_TOD (%MD2, %MD8) ;
END_IF ;
Przyk∏ad: %MD2 := ADD_TOD (%MD2, %MD8)
%MD2 := czas êród∏owy (np. 12:30:00)
%MD8 := 906 (906 dziesiàtych cz´Êci sekundy zaokràglone do 1min. 31s)
%MD2 := nowy czas (np. 12:31:31)
Sk∏adnia
Operatory
Wynik :=ADD_TOD (In1, In2)
Wynik :=SUB_TOD (In1, In2)
Argumenty
Typ
Wynik
In1 (czas êród∏owy) i In2 (okres czasu)
Indeks. s∏owa podwójne
%MD
%MD,%KD
Nieindeksowalne s∏owa
podwójne
%QD
%ID,%QD
WartoÊç bezpoÊrednia, Wyr. numeryczne
Wynik oraz In1 sà w formacie TOD, natomiast In2 jest w formacie TIME.
Uwagi:
• Parametr definiujàcy czas dodawany (wyra˝ony w 1/10 sekundy) jest zaokràglanyw gór´ lub
w dó∏ (z dok∏adnoÊcià do 1 sekundy).
- sssssssss.0 do sssssssss.4 jest zaokràglany do
- sssssssss.5 do sssssssss.9 jest zaokràglany do
sssssssss.0
sssssssss.0 + 1.0
• Je˝eli wynik operacji wykracza poza zadane ograniczenie, to zmienia si´ dzieƒ. W takim
przypadku bit systemowy %S17 przyjmuje wartoÊç 1, a wartoÊç wynikowa mo˝e byç traktowana
jako reszta po godzinie 24:00:00.
• Je˝eli pora dnia (parametr In1) nie mo˝e byç prawid∏owo odczytana we formacie TOD, to bit
systemowy %S17 przyjmuje wartoÊç 1, a w wyniku uzyskuje si´ godzin´ 00:00:00.
___________________________________________________________________________
2/82
Instrukcje z∏o˝one
2
B
2.9-10 Ró˝nica mi´dzy dwiema datami (bez czasu)
Ta funkcja umo˝liwia obliczania iloÊci dni ró˝niàcych od siebie dwie daty. Wynik
podawany jest jako wartoÊç bezwzgl´dna i jest zapisywana w s∏owie podwójnym.
Struktura
J´zyk Ladder
J´zyk List
LD
%M7
[%MD10 := DELTA_D (%MD2, %MD4)]
J´zyk ST
IF %M7 THEN
%MD10 := DELTA_D (%MD2, %MD4) ;
END_IF ;
Przyk∏ad:
%MD10 := DELTA_D (%MD2, %MD4)
%MD2 := data numer1 (np. 1994-05-01)
%MD4 := data numer2 (np. 1994-04-05)
== & gt; %MD10 = 22464000 (== & gt; ró˝nica = 26 dni)
SK∏adnia
Operator
Wynik :=DELTA_D(Data1,Data2)
Argumenty
Typ
Wynik
Data 1 i 2
Indeks. s∏owa podwójne
%MD
%MD,%KD
Nieindeksowalne s∏owa
podwójne
%QD
%ID,%QD
WartoÊç bezpoÊrednia, Wyr. num.
Wynik ma format TIME, natomiast Data 1 i 2 majà format DATE.
W formacie TIME wartoÊç jest definiowana z dok∏adnoÊcià do 1/10 sekundy. Natomiast
wartoÊç w formacie DATE jest definiowana z dok∏adnoÊcià do 1 dnia. Obliczona wi´c
ró˝nica czasu b´dzie wielokrotnoÊcià 864000 (= 1dzieƒ = 24 h x 60 min x 60 s x 10
dziesiàtych cz´Êci sekundy).
Uwaga
• Je˝eli wynik przekracza wartoÊç maksymalnà dla okresu czasu (format TIME),
to nast´puje przepe∏nienie. Wynikiem jest wtedy 0, a bit %S18 ma stan 1.
• Je˝eli jeden z parametrów wejÊciowych nie mo˝e byç prawid∏owo zinterpretowany lub jest niezgodny z formatem DATE, to bit systemowy %S17 przyjmuje
wartoÊç 1, a wynikiem jest 0.
___________________________________________________________________________
2/83
B
2.9-11 Ró˝nica pomi´dzy dwiema datami (z czasem)
Jest to funkcja umo˝liwiajàca obliczenie ró˝nicy mi´dzy dwiema datami z uwzgl´dnieniem pory dnia. Wynikiem jest wartoÊc bezwzgl´dna zapisywana w s∏owie podwójnym.
Struktura
J´zyk Ladder
J´zyk List
LD TRUE
[%MD10 := DELTA_DT (%MW2:4,
%MW6:4)]
J´zyk ST
%MD10 := DELTA_DT (%MW2:4, %MW6:4) ;
Przyk∏ad:
%MD10 := DELTA_DT (%MW2:4, %MW6:4)
%MW2:4 := data numer1 (np. 1994-05-01-12:00:00)
%MW6:4 := date numer2 (np. 1994-05-01-12:01:30)
== & gt; %MD10 = 900 (== & gt; ró˝nica = 1 minuta i 30 sekund)
Sk∏adnia
Operator
Wynik :=DELTA_DT(Data1,Data2)
Argumenty
Typ
Wynik
Indeks. s∏owa podwójne
%MD,
Nieindeksowalne s∏owa
podwójne
%QD
Tablica o d∏ugoÊci 4 s∏ów
w formacie DT
Data 1 i 2
%MW:4, %KW:4
Wynik ma format TIME natomiast Data 1 i 2 - format DT.
WartoÊç zapisywana jest w formacie TIME z dok∏adnoÊcià do 1/10 sekundy. Natomiast
wartoÊci w formacie DT definiuje si´ z dok∏adnoÊcià do 1 sekundy. Stàd te˝, obliczona
ró˝nica czasu b´dzie wielokrotnoÊcià 10.
Uwaga
• Je˝eli wynik przekracza wartoÊç maksymalnà dla okresu czasu (format TIME),
to nast´puje przepe∏nienie. Wynikiem jest wtedy 0, a bit %S18 ma stan 1.
• Je˝eli jeden z parametrów wejÊciowych nie mo˝e byç prawid∏owo zinterpretowany lub jest niezgodny z formatem DATE, to bit systemowy %S17 przyjmuje
wartoÊç 1, a wynikiem jest 0.
___________________________________________________________________________
2/84
Instrukcje z∏o˝one
2
B
2.9-12 Ró˝nica pomi´dzy dwoma czasami
Ta funkcja umo˝liwia obliczanie ró˝nicy pomi´dzy dwoma czasami okreÊlajàcymi
por´ dnia. Wynik jest wartoÊcià bezwzgl´dnà zapisywanà w s∏owie podwójnym.
Struktura
J´zyk Ladder
J´zyk List
LD TRUE
[%MD10 := DELTA_TOD (%MD2, %MD4)]
J´zyk ST
%MD10 := DELTA_TOD (%MD2, %MD4) ;
Przyk∏ad:
%MD10 := DELTA_TOD (%MD2, %MD4)
%MD2 := czas1 (np. 02:30:00)
%MD4 := czas2 (np. 02:40:00)
== & gt; %MD10 = 6600 (== & gt; ró˝nica = 11 minut)
Sk∏adnia
Operator
Wynik :=DELTA_TOD(Czas1,Czas2)
Argumenty
Typ
Wynik
Czas 1 i 2
Indeks. s∏owa podwójne
%MD
%MD,%KD
Nieindeksowalne s∏owa
podwójne
%QD
%ID,%QD
WartoÊç bezp., Wyr. numeryczne
Wynik ma format TIME natomiast Czas 1 i 2 majà format TOD.
WartoÊç zapisywana jest w formacie TIME z dok∏adnoÊcià do 1/10 sekundy. Natomiast
wartoÊci w formacie TOD definiuje si´ z dok∏adnoÊcià do 1 sekundy. Stàd te˝
obliczona ró˝nica czasu b´dzie wielokrotnoÊcià 10.
Uwaga
Je˝eli jeden z parametrów wejÊciowych nie mo˝e byç prawid∏owo zinterpretowany i jest niezgodny z formatem TOD, to bit systemowy %S17 przyjmuje
wartoÊç 1, a wynikiem jest 0.
___________________________________________________________________________
2/85
B
2.9-13 Konwersja daty na ∏aƒcuch znaków
Ta instrukcja powoduje przeliczenie daty (bez czasu) na ∏aƒcuch znaków o formacie
RRRR-MM-DD (10 znaków). ¸aƒcuch koƒczy znak koƒca ∏aƒcucha . Ka˝demu
znakowi R,M,D odpowiada liczba.
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[%MB2:11 := DATE_TO_STRING (%MD40)]
J´zyk ST
%MB2:11 := DATE_TO_STRING (%MD40) ;
Przyk∏ad:
%MB2:11 := DATE_TO_STRING (%MD40)
%MD40 := DATE (np. 1998-12-27)
== & gt;
Sk∏adnia
Operator
Wynik :=DATE_TO_STRING(Data)
Argumenty
Typ
Wynik
Tablice o d∏ugoÊci 11 bajtów
%MB:11
Data
Indeks. s∏owa podwójne
%MD,%KD
Nieindeksowalne s∏owa
podwójne
%ID,%QD
WartoÊç bezp., Wyra˝enie num.
Uwagi: Je˝eli parametr wejÊciowy (data) nie mo˝e byç w∏aÊciwie zinterpretowana lub jest
niezgodna z formatem DATE, to bit systemowy %S17 przyjmuje wartoÊç 1, a funkcja zwraca
nast´pujàcy ∏aƒcuch: ' **** - ** - ** '. Je˝eli docelowy ∏aƒcuch jest za krótki, to nast´puje
obci´cie, a bit systemowy %S15 przyjmuje wartoÊç 1.
%MB2:8 := DATE_TO_STRING (%MD40)
== & gt;
== & gt; %S15 = 1
Je˝eli ∏aƒcuch docelowy jest zbyt d∏ugi, to jest on uzupe∏niany znakami koƒca ∏aƒcucha .
%MB2:12 := DATE_TO_STRING (%MD40)
== & gt;
___________________________________________________________________________
2/86
Instrukcje z∏o˝one
2
B
2.9-14 Konwersja pe∏nej daty na ∏aƒcuch znaków
Ta funkcja umo˝liwia konwersj´ daty (wraz z czasem) na ∏aƒcuch znaków o nast´pujàcym formacie: RRRR-MM-DD-GG:MM:SS (19 znaków). ¸aƒcuch koƒczy znak
koƒca ∏aƒcucha . Ka˝demu znakowi R,M,D,G,M,S odpowiada liczba.
Struktura
J´zyk Ladder
J´zyk List
LD TRUE
[%MB2:20 := DT_TO_STRING (%MW50:4)]
J´zyk ST
%MB2:20 := DT_TO_STRING (%MW50:4) ;
Przyk∏ad:
%MB2:20 := DT_TO_STRING (%MW50:4)
%MW50:4 := Data i czas (typ DT) (np. 1998-12-27-23:14:37)
Sk∏adnia
Operator
Wynik :=DT_TO_STRING(Data)
Argumenty
Typ
Wynik
Tablica 20-bajtowa
%MB:20
Tablica o d∏. 4 s∏ów
w formacie DT
Data
%MW:4, %KW:4
Uwaga: Je˝eli parametr wejÊciowy (data) nie mo˝e byç poprawnie zinterpretowany lub jest
niezgodny z formatem DT (DATE_AND_TIME), to bit systemowy %S17 przyjmuje wartoÊç 1,
a w wyniku otrzymuje si´ ∏aƒcuch znaków ' **** - ** -** - ** : ** : **'. Je˝eli ∏aƒcuch wynikowy
jest za krótki, to nast´puje obci´cie jego treÊci, a bit systemowy %S15 przyjmuje wartoÊç 1.
%MB2:8 := DT_TO_STRING (%MW50:4)
== & gt;
== & gt; %S15 = 1
• Je˝eli ∏aƒcuch wynikowy jest zbyt d∏ugi, to jest on uzupe∏niany znakami koƒca ∏aƒcucha .
%MB2:21 := DT_TO_STRING (%MW50:4)
== & gt;
___________________________________________________________________________
2/87
B
2.9-15 Konwersja okresu czasu na ∏aƒcuch znaków
Ta instrukcja powoduje przeliczenie okresu czasu (format TIME) na ∏aƒcuch znaków.
Wynik mo˝e byç wyÊwietlany z rozbiciem na godziny, minuty, sekundy i dziesiàte
cz´Êci sekundy (15 znaków): GGGGGG:MM:SS.D. ¸aƒcuch znaków koƒczy znak
koƒca ∏aƒcucha . Ka˝demu znakowi G,M,S,D odpowiada liczba.
Maksymalny okres czasu, który mo˝na poddaç konwersji wynosi 119304 godziny, 38
minut, 49 sekund i 5 dziesiàtych sekundy.
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[%MB2:15 := TIME_TO_STRING (%MD40)]
J´zyk ST
%MB2:15 := TIME_TO_STRING (%MD40) ;
Przyk∏ad:
%MB2:15 := TIME_TO_STRING (%MD40)
gdzie %MD40 := 27556330.3 (format TIME)
Sk∏adnia
Operator
Wynik :=TIME_TO_STRING(okres czasu)
Argumenty
Typ
Wynik
Tablica 15-bajtowa
%MB:15
Okres czasu
Indeks. s∏owa podwójne
%MD,%KD
Nieindeksowalne s∏owa
podwójne
%ID,%QD
WartoÊç bezp., Wyr. numeryczne
Okres czasu: w formacie TIME.
Uwaga:
Je˝eli ∏aƒcuch wynikowy jest zbyt krótki, to jego treÊç jest obcinana, a bit %S15 ma stan 1.
%MB2:8 := TIME_TO_STRING (%MD40)
== & gt;
== & gt; %S15 = 1
___________________________________________________________________________
2/88
Instrukcje z∏o˝one
2
B
Je˝eli ∏aƒcuch wynikowy jest zbyt d∏ugi to jest on uzupe∏niany znakami koƒca ∏aƒcucha .
%MB2:16 := TIME_TO_STRING (%MD40)
== & gt;
2.9-16 Konwersja pory dnia na ∏aƒcuch znaków
Ta instrukcja umo˝liwia przeliczanie pory dnia (format TOD - TIME_OF_DAY) na
∏aƒcuch znaków o formacie GG:MM:SS sk∏adajàcego si´ z 8 znaków plus znak koƒca
∏aƒcucha . Ka˝demu znakowi G,M,S odpowiada liczba.
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[%MB2:9 := TOD_TO_STRING (%MD40)]
J´zyk ST
%MB2:9 := TOD_TO_STRING (%MD40) ;
Przyk∏ad:
%MB2:9 := TOD_TO_STRING (%MD40)
gdzie %MD40 := 23:12:27 (format TOD)
== & gt;
Sk∏adnia
Operator
Wynik :=TOD_TO_STRING(czas)
Argumenty
Typ
Wynik
Tablica 9-bajtowa
Pora dnia (czas)
%MB:9
Indeks. s∏owa podwójne
%MD,%KD
Nieindeksowalne s∏owa
podwójne
%ID,%QD
WartoÊç bezp., Wyra˝enie num.
Czas: format TOD.
___________________________________________________________________________
2/89
B
Uwaga:
Je˝eli ∏aƒcuch wynikowy jest zbyt krótki, to jego treÊç jest obcinana, a bit %S15 ma stan 1.
%MB2:8 := TOD_TO_STRING (%MD40)
(gdzie %MD40 := 23:12:27)
== & gt;
== & gt; %S15 = 1
Je˝eli ∏aƒcuch wynikowy jest zbyt d∏ugi, to jest on uzupe∏niany znakami koƒca ∏aƒcucha .
%MB2:10 := TOD_TO_STRING (%MD40)
== & gt;
(gdzie %MD40 := 23:12:27)
___________________________________________________________________________
2/90
Instrukcje z∏o˝one
2
B
2.9-17 Konwersja okresu czasu na format GGGG:MM:SS
Ta instrukcja powoduje przeliczenie okresu czasu (format TIME) na format godzinyminuty-sekundy (GGGG:MM:SS). Ograniczenie: [0000:00:00, 9999:59:59].
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[%MD100 := TRANS_TIME (%MD2)]
J´zyk ST
%MD100 := TRANS_TIME (%MD2) ;
Przyk∏ad:
%MD100 := TRANS_TIME (%MD2)
gdzie %MD2 := 86324873 dziesiàtych cz´Êci sekundy
== & gt; MD2
31
16
2397
8
54
0
47
wartoÊç wyra˝ona w formacie szesnastkowym
Sk∏adnia
Operator
Wynik :=TRANS_TIME(Okres czasu)
Argumenty
Typ
Wynik
Okres czasu
Indeks. s∏owa podwójne
%MD
%MD,%KD
Nieindeksowalne s∏owa
podwójne
%QD
%ID,%QD
WartoÊç bezp., Wyra˝enie num.
Wynik: format HMS.
Okres czasu: format TIME.
Uwagi:
Parametr " okres czasu " (wyra˝any w 1/10 sekundy) jest, w celu umo˝liwienia dokonania
konwersji, zaokràglany do góry lub do do∏u (z dok∏adnoÊcià do 1 sekundy).
- sssssssss.0 do sssssssss.4 jest zaokràglany do sssssssss.0
- sssssssss.5 do sssssssss.9 jest zaokràglany do sssssssss.0 + 1.0
Maksymalny okres czasu, który mo˝na poddaç konwersji wynosi 10000 godzin. Oznacza to, ˝e
je˝eli wartoÊç okresu czasu (TIME) jest wi´ksza lub równa 360000000, to nie mo˝na jej poddaç
konwersji. Bit systemowy %S15 przyjmuje wtedy wartoÊç 1, a wynikiem jest 0000:00:00.
___________________________________________________________________________
2/91
B
2.10 Operacje na tablicach bitowych
2.10-1 Kopiowanie tablicy bitowej do tablicy bitowej
Funkcja ta umo˝liwia kopiowanie, bit po bicie, tablicy bitowej do innej tablicy bitowej.
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[%M10:5 := COPY_BIT (%M20:5)]
J´zyk ST
%M10:5 := COPY_BIT (%M20:5) ;
Sk∏adnia
Operator
Wynik :=COPY_BIT (Tab)
Argumenty
Typ
Wynik
Tablica (tab)
Tablica bitowa
%M:L, %Q:L, %I:L
%M:L, %Q:L, %I:L, %Xi:L
Uwagi:
• Tablice mogà byç ró˝nych rozmiarów. Wtedy tablica wynikowa zawiera wynik dzia∏ania
funkcji na obszarze odpowiadajàcym najmniejszemu rozmiarowi tablicy, a pozosta∏a cz´Êç
nie jest modyfikowana.
• Nale˝y zachowaç ostro˝noÊç by nie nastàpi∏o nadpisanie pomi´dzy tablicà êród∏owà a
wynikowà.
___________________________________________________________________________
2/92
Instrukcje z∏o˝one
2
B
2.10-2 Operacje logiczne na tablicach bitowych
Istnieje mo˝liwoÊç wykonywania operacji logicznych na dwóch tablicach (bit po
bicie), przy czym wynik zapisywany jest w tablicy trzeciej.
•
•
•
•
AND_ARX
OR_ARX
XOR_ARX
NOT_ARX
:
:
:
:
koniunkcja AND (bit po bicie),
alternatywa OR (bit po bicie),
nierównowa˝noÊç (bit po bicie),
logiczne dope∏nienie (bit po bicie) tablicy.
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[%M10:7 := AND_ARX (%M20:7,
%M30:7)]
LD
TRUE
[%M50:10 := NOT_ARX (%M60:10)]
J´zyk ST
%M10:7 := AND_ARX (%M20:7, %M30:7) ;
%M50:10 := NOT_ARX (%M60:10) ;
Sk∏adnia
Operator
Wynik := AND_ARX (Tab 1, Tab 2)
Wynik := OR_ARX (Tab 1, Tab 2)
Wynik := XOR_ARX (Tab 1, Tab 2)
Wynik := NOT_ARX (Tab 1)
Argumenty
Typ
Wynik
Tablica 1 i 2 (tab)
Tablica bitowa
%M:L, %Q:L, %I:L
%M:L, %Q:L, %I:L, %Xi:L
Uwagi:
• Tablice mogà byç ró˝nych rozmiarów. Wtedy tablica wynikowa zawiera wynik dzia∏ania
funkcji na obszarze odpowiadajàcym najmniejszemu rozmiarowi tablicy, a pozosta∏a cz´Êç
nie jest modyfikowana.
• Nale˝y zachowaç ostro˝noÊç by nie nastàpi∏o nadpisanie pomi´dzy tablicà êród∏owà a
wynikowà.
___________________________________________________________________________
2/93
B
2.10-3 Kopiowanie tablicy bitowej do tablicy s∏ów
Ta funkcja pozwala kopiowaç bity tablicy bitowej (lub jej cz´Êci) do tablicy s∏ów (lub
tablicy s∏ów podwójnych).
Operacja kopiowania tablicy bitów obejmuje okreÊlonà liczb´ bitów (parametr nbit)
liczàc od podanego rz´du (parametr brow).
Kopiowane bity sà zapisywane do tablicy s∏ów (lub tablicy s∏ów podwójnych)
poczynajàc od rz´du (parametr wrow lub drow) rozpoczynajàcego si´ od najmniej
znaczàcego bitu ka˝dego s∏owa.
• BIT_W : powoduje kopiowanie tablicy bitowej do tablicy s∏ów.
• BIT_D : powoduje kopiowanie tablicy bitowej do tablicy s∏ów podwójnych.
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[%MW10:7 := BIT_W (%M20:29, 3, 22, 2)]
LD
TRUE
[%MD10:4 := BIT_D (%M20:29, 3, 22, 1)]
J´zyk ST
%MW10:7 := BIT_W (%M20:29, 3, 22, 2) ;
%MD10:4 := BIT_D (%M20:29, 3, 22, 1) ;
Przyk∏ad:
%MW10:7 := BIT_W (%M20:29, 3, 22, 2) ;
rzàd 0
rzàd 3 (brow)
rzàd 0
rzàd 2
Liczba bitów (nbit) :
16 + 6
___________________________________________________________________________
2/94
Instrukcje z∏o˝one
2
B
Sk∏adnia
Operator
Wynik := BIT_W (Tab, brow, nbit, wrow)
Wynik := BIT_D (Tab, brow, nbit, drow)
Argumenty
Typ
Wynik
Tablice s∏ów
%MW:L
Tablice s∏ów podwójnych
%MD:L
Tablice bitowe
Tablica (tab)
brow - nbit
wrow lub drow
%M:L, %Q:L, %I:L,
%Xi.L
S∏owa indeksowalne
%MW, %KW, %Xi.T
S∏owa nieindeksowalne
%IW, %QW,
%SW, %NW,
WartoÊç bezp.
Wyr. numeryczne
Uwagi:
• Je˝eli zadana liczba bitów do skopiowania jest wi´ksza ni˝ liczba bitów w tablicy, liczàc od
miejsca rozpocz´cia kopiowania (rzàd brow) do koƒca tablicy, to kopiowanie jest wykonywane
do ostatniego elementu tablicy.
• Je˝eli zadana liczba bitów do skopiowania przekracza liczb´ bitów w s∏owach, stanowiàcych
s∏owa pozosta∏e w tablicy wynikowej, to funkcja przerywa operacj´ kopiowania po osiàgni´ciu
ostatniego elementu w tablicy s∏ów (albo tablicy s∏ów podwójnych).
• Ujemna wartoÊç parametru brow, nbit, wrow lub drow traktowana jest jak zero.
___________________________________________________________________________
2/95
B
2.10-4 Kopiowanie elementów tablicy s∏ów do tablicy bitowej
Ta funkcja powoduje kopiowanie wszystkich bitów (lub cz´Êci bitów) tablicy s∏ów (lub
tablicy s∏ów podwójnych) do tablicy bitowej.
Operacja kopiowania z tablicy s∏ów (lub tablicy s∏ów podwójnych) obejmuje okreÊlonà
liczb´ s∏ów (parametr nwd) liczàc od podanego rz´du (parametr wrow lub drow).
Kopiowane bity sà zapisywane do tablicy bitowej poczynajàc od najmniej znaczàcego
bitu ka˝dego s∏owa.
• W_BIT : kopiowanie bitów z tablicy s∏ów do tablicy bitowej.
• D_BIT : kopiowanie bitów z tablicy s∏ów podwójnych do tablicy bitowej.
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[%M20:36 := W_BIT (%MW10:7, 2, 2, 3)]
LD
TRUE
[%M20:36 := D_BIT (%MD10:4, 1, 1, 3)]
J´zyk ST
%M20:36 := W_BIT (%MW10:7, 2, 2, 3) ;
%M20:36 := D_BIT (%MD10:4, 1, 1, 3) ;
Przyk∏ad:
%M20:36 := W_BIT (%MW10:7, 2, 2, 3) ;
rzàd 0
rzàd 3 (brow)
rzàd 19
rzàd 0
(wrow) rzàd 2
___________________________________________________________________________
2/96
Instrukcje z∏o˝one
2
B
Sk∏adnia
Operator
Wynik := W_BIT (Tab, wrow, nwd, brow)
Wynik := D_BIT (Tab, drow, nwd, brow)
Argumenty
Typ
Wynik
Tablice bitowe
Tablica (tab)
%M:L,%Q:L,%I:L
Tablice s∏ów
%MW:L,%KW:L
Tablice s∏ów podwójnych
wrow lub drow
nwd - brow
%MD:L,%KD:L
S∏owa indeksowalne
%MW, %KW, %Xi.T
S∏owa nieindeksowalne
%IW, %QW,
%SW, %NW,
Wart. bezpoÊrednia
Wyr. numeryczne
Uwagi:
• Je˝eli zadana liczba bitów do skopiowania jest wi´ksza ni˝ liczba bitów w tablicy, liczàc od
miejsca rozpocz´cia kopiowania (rzàd wrow) do koƒca tablicy, to kopiowanie jest wykonywane
do ostatniego elementu tablicy.
• JeÊli zadana liczba bitów do skopiowania przekracza liczb´ bitów pozosta∏ych w tablicy
wyniko-wej, to funkcja przerywa operacj´ kopiowania po osiàgni´ciu ostatniego elementu
w tablicy.
• Ujemna wartoÊç parametru brow, nbit, wrow lub drow traktowana jest jak zero.
___________________________________________________________________________
2/97
B
2.11 Funkcje " Orphee " : przesuwanie, licznik
2.11-1 Operacje przesuwania na s∏owach z odzyskaniem przesuni´tych bitów
Opisane poni˝ej funkcje powodujà przesuni´cie w prawo lub w lewo, o okreÊlonà
liczb´ bitów (nbit), w s∏owie lub s∏owie podwójnym (a).
S∏owo po dokonaniu operacji zapisywane jest jako (wynik), a bity, które zosta∏y
usuni´te sà zapami´tywane jako (reszta).
• WSHL_RBIT
• DSHL_RBIT
• WSHRZ_C
: przesuni´cie w lewo, w s∏owie i odzyskanie usuni´tych bitów.
: przesuni´cie w lewo, w s∏owie podwójnym i odzyskanie bitów.
: przesuni´cie w prawo, w s∏owie z uzupe∏nieniem pustych miejsc
przy pomocy 0 i odzyskanie usuni´tych bitów.
• DSHRZ_C
: przesuni´cie w prawo, w s∏owie podwójnym z uzupe∏nieniem
pustych miejsc przy pomocy 0 i odzyskanie usuni´tych bitów.
• WSHR_RBIT : przesuni´cie w prawo, w s∏owie z do∏o˝eniem znaku i odzyskanie
usuni´tych bitów.
• DSHR_RBIT : przesuni´cie w prawo, w s∏owie podwójnym z do∏o˝eniem znaku
i odzyskanie usuni´tych bitów.
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[WSHL_RBIT(%MW20,%MW30,%MW21,%MW10)]
LD
TRUE
[WSHRZ_C(%MW20,%MW30,%MW21,%MW10)]
LD
TRUE
[DSHR_RBIT(%MD30,%MW40,%MD20,%MD10)]
J´zyk ST
WSHL_RBIT (%MW20,%MW30,%MW21,%MW10) ;
WSHRZ_C (%MW20,%MW30,%MW21,%MW10) ;
DSHR_RBIT (%MD30,%MW40,%MD20,%MD10) ;
___________________________________________________________________________
2/98
Instrukcje z∏o˝one
2
B
Przyk∏ad:
WSHL_RBIT(%MW20,%MW30,%MW21,%MW10)
gdzie %MW30 = 4
Kopiowanie przesuni´tych bitów
Uzupe∏nienie przy pomocy zer
WSHRZ_C(%MW20,%MW30,%MW21,%MW10)
gdzie %MW30 = 4
Kopiowanie przesuni´tych bitów
Uzupe∏nienie przy pomocy zer
DSHR_RBIT(%MD30,%MW40,%MD20,%MD10)
gdzie %MW40 = 6
MSB
MSB
LSB
LSB
Kopiowanie przesuni´tych bitów
MSB
zachowanie
znaku
LSB
przechodzenie znaku w bicie uwolnionym
przez operacj´ przesuni´cia
Sk∏adnia
Operator
WSHL_RBIT (a, nbit, wynik, reszta)
WSHRZ_C (a, nbit, wynik, reszta)
WSHR_RBIT (a, nbit, wynik, reszta)
Argumenty
Typ
a
nbit
Wynik
Reszta
S∏owa indeksowalne
%MW,%KW
%MW,%KW, %Xi.T
%MW
S∏owa nieindeksowalne
%IW, %QW,
%SW, %NW
WartoÊç bezp.
Wyr. numeryczne
%IW, %QW,
%SW, %NW
WartoÊç bezp.
Wyr. numeryczne
%QW, SW, %NW
___________________________________________________________________________
2/99
B
Sk∏adnia
Operator
DSHL_RBIT (a, nbit, wynik, reszta)
DSHRZ_C (a, nbit, wynik, reszta)
DSHR_RBIT (a, nbit, wynik, reszta)
Argumenty
Typ
a
nbit
Indeks. s∏owa podwójne
%MD,%KD
%MD
Nieindeks. s∏owa podwójne
%ID,%QD,%SD
WartoÊç bezp.
Wyr. numeryczne
%QD,%SD
S∏owa indeksowalne
%MW, %KW, %Xi.T
S∏owa nieindeksowalne
Wynik
Reszta
%IW, %QW,
%SW, %NW
WartoÊç bezp.
Wyr. numeryczne
Uwaga:
• Je˝eli zadana iloÊç bitów (parametr nbit) nie mieÊci si´ w zakresie od 1 do 16 dla operacji zmiany
wykonywanej na s∏owach lub od 1 do 32 w przypadku s∏ów podwójnych, to wartoÊç wyjÊciowa
(wynik) i pozosta∏oÊç (reszta) sà niewa˝ne, a bit systemowy %S18 przyjmuje wartoÊç 1.
___________________________________________________________________________
2/100
Instrukcje z∏o˝one
2
B
2.11-2 Licznik dwukierunkowy z sygnalizacjà przepe∏nienia
Jest to instrukcja ralizujàca funkcj´ licznika typu dwukierunkowego (up/down)
z sygnalizacjà osiàgni´cia pu∏apu licznika (ograniczenie dolne lub górne). Funkcj´
uaktywnia si´ podajàc na wejÊcie (en) wartoÊç 1.
Do zliczania i odliczania s∏u˝à dwa niezale˝ne wejÊcia (cu i cd). WyjÊcie (Qmin)
przyjmuje wartoÊç 1, gdy licznik osiàga ograniczenie dolne (min), natomiast wyjÊcie
(Qmax) przyjmuje wartoÊç 1, gdy licznik osiàga ograniczenie górne (max).
WartoÊç poczàtkowà licznika definiuje parametr (pv), natomiast bie˝àca wartoÊç
licznika jest dost´pna za pomocà parametru (cv).
Do zapami´tywania stanów wejÊç (cu i cd) wykorzystywane jest 16-bitowe s∏owo
(mwd). Bit 0 s∏u˝y do zapisywania wartoÊci na wejÊciu cu, a bit 1 - wartoÊci cd).
Struktura
J´zyk Ladder
J´zyk List
LD
TRUE
[SCOUNT(%M9,%MW10,%M11,%M12,%MW11,
%MW12,%M16,%M10,%MW15,%MW20)]
J´zyk ST
SCOUNT(%M9,%MW10,%M11,%M12,%MW11,%MW12,%M16,%M10,%MW15,%MW20) ;
Przyk∏ad:
SCOUNT (%M9,%MW10,%M11,%M12,%MW11,%MW12,%M16,%M10,%MW15,%MW20)
gdzie %MW10 (pv) = 5, %MW11 (min) = 0, %MW12 (max) = 7
___________________________________________________________________________
2/101
B
Sk∏adnia
Operator
SCOUNT (en, pv, cu, cd, min, max, Qmin, Qmax, cv, mwd)
Argumenty
Typ
en, cu, cd
Qmin, Qmax
pv, min, max
cv, mwd
Bity
%I,%Q,%M,%S, %I,%Q,%M
%BLK,%.:Xk
S∏owa indeksowalne
%MW,%KW, %Xi.T
%MW
S∏owa nieindeks.
%IW, %QW,
%SW, %NW,
WartoÊç bezp.
Wyr. numeryczne
%QW,%SW
%NW
Uwagi:
• Je˝eli (en) = 0 , to funkcja jest nieaktywna, nie reaguje na ˝adne wywo∏anie, stàd:
Qmin = Qmax = 0
mcu = mcd = 0
cv = pv
• Je˝eli max & gt; min , to:
cv & gt; max
--- & gt; Qmax = 1 i Qmin = 0
min & lt; cv & lt; max
--- & gt; Qmax = Qmin = 0
cv & lt; min
--- & gt; Qmax = 0 i Qmin = 1
• Je˝eli max & lt; min , to:
--- & gt; Qmax = 1 i Qmin = 0
max & lt; cv - min
cv & lt; max
--- & gt; Qmax = 0 i Qmin = 1
cv & gt; min
--- & gt; Qmax = 1 i Qmin = 0
• Je˝eli max = min , to:
cv & lt; min i max
--- & gt; Qmax = 0 i Qmin = 1
cv & gt; min i max
--- & gt; Qmax = 1 i Qmin = 0
• Próba zmiany wartoÊci parametru (pv), gdy funkcja jest aktywna (czyli na wejÊciu (en) jest 1),
nie wp∏ywa na wykonywanà operacj´.
• Ujemna wartoÊç parametrów (pv) oraz (min) jest interpretowana jako zero.
• WartoÊç mniejsza od 1 dla parametru (max) jest interpretowana jako 1.
___________________________________________________________________________
2/102
Instrukcje z∏o˝one
2
B
2.11-3 Przesuni´cie okr´˝ne
Ta funkcja umo˝liwia wykonywanie zmiany okr´˝nej w lewo lub prawo w s∏owie lub
s∏owie podwójnym.
• ROLW : okr´˝ne przesuni´cie w lewo w s∏owie, o okreÊlonà liczb´,
• RORW : okr´˝ne przesuni´cie w prawo w s∏owie, o okreÊlonà liczb´,
• ROLD : okr´˝ne przesuni´cie w lewo w s∏owie podwójnym, o okreÊlonà liczb´,
• RORD : okr´˝ne przesuni´cie w prawo w s∏owie podwójnym, o okreÊlonà liczb´,
Struktura
J´zyk Ladder
J´zyk List
LD
%M0
[%MW0 := ROLW(%MW10,%MW5)]
LD
%I3.2
[%MD10 := RORD(%MD100,%MW5)]
J´zyk ST
IF %M0 THEN
%MW0 := ROLW(%MW10,%MW5) ;
END_IF ;
IF %I3.2 THEN
%MD10 := RORD(%MD100,%MW5) ;
END_IF ;
___________________________________________________________________________
2/103
B
Sk∏adnia
Operatory
• ROLW, RORW, ROLD, RORD
Arg1:=Operator(Arg2,n)
Argumenty funkcji ROLW, RORW,
Typ
Argument 1 (Arg1) Argument 2 (Arg2)
Numer pozycji (n)
S∏owa indeksowalne
%MW
%MW,%KW,%Xi.T
S∏owa nieindeksowalne
%MW,%KW,%Xi.T
Wart.bezp,%IW,%QW, Wart. bezp.,%IW,%QW,
%SW,%NW,%BLK
%SW,%NW,%BLK
Wyr. numeryczne
Wyr. numeryczne
Argumenty ROLD, RORD
Type
Operand 1 (Op1)
Operand 2 (Op2)
Position number (n)
Indeks. s∏owa podw.
%MD
%MD,%KD
%MW,%KW,%Xi.T
Nieindeks. s∏owa podw. %QD,%SD,
Wart.bezp,%ID,%QD, Wart. bezp.,%IW,%QW,
%SD, Wyr. num.
%SW,%NW,%BLK
Wyr. numeryczne
Uwaga
Je˝eli liczba przesuni´ç jest statyczna, to zaleca si´ stosowanie standardowych
funkcji ROL i ROR, poniewa˝ w takich warunkach przynoszà one najlepsze efekty.
___________________________________________________________________________
2/104
Instrukcje z∏o˝one
2
B
2.12 Funkcje opóêniajàce Time delay
2.12-1 Wprowadzenie
W odró˝nieniu od predefiniowanych bloków funkcyjnych, liczba stosowanych funkcji
opóêniajàcych nie jest ograniczona, przy czym mo˝na ich u˝ywaç w kodach bloków
DFB (w∏asne bloki u˝ytkownika).
Oprogramowanie oferuje 4 funkcje opóêniajàce:
• FTON : opóênienie typu on-delay
• FTOF : opóênienie typu off-delay
• FTP : generowanie impulsu o okreÊlonym czasie trwania
• FPULSOR : generowanie przebiegu prostokàtnego
2.12-2 Funkcja opóêniajàca FTON
Jest to funkcja realizujàca opóênienie typu on-delay. Opóênienie to mo˝na
programowaç.
Sk∏adnia
Operator
FTON (EN, PT, Q, ET, PRIV)
Charakterystyka
WejÊcie " Enable "
EN
Wyzwolenie opóênienia (zbocze rosnàce)
WartoÊç nastawiona
PT
Jest to s∏owo wejÊciowe definiujàce czas trwania (w setnych cz´Êciach sekundy) opóênienia.
WartoÊç maksymalna wynosi 5 min i 27 s, z dok∏adnoÊcià do 10 ms. (1)
WyjÊcie " Timer "
Q
Po odliczeniu opóênienia na wyjÊciu wystawiana jest 1
WartoÊç bie˝àca
ET
S∏owo wyjÊciowe, którego wartoÊç, podczas
odliczania opóênienia, roÊnie od 0 do PT.
Zmienna obliczeniowa
PRIV
S∏owo podwójne przeznaczone do
przechowywania stanów wewn´trznych. Jest to
zmienna zarezerwowana wy∏àcznie dla tych
operacji.
(1)
Zmiana wartoÊci tego s∏owa jest uwzgl´dniana w trakcie odliczania opóênienia.
___________________________________________________________________________
2/105
B
Uruchomienie zegara nast´puje po pojawieniu si´ zbocza rosnàcego na wejÊciu
EN: wartoÊç bie˝àca ET roÊnie od 0 do PT
(w setnych cz´Êciach sekundy). Bit
wyjÊcia Q zmienia stan na 1, gdy wartoÊç
bie˝àca zrównuje si´ z wartoÊcià
nastawionà PT i utrzymuje ten stan tak
d∏ugo, jak d∏ugo na wejÊciu EN jest 1.
Gdy stan EN zmienia si´ na 0, zegar
zatrzymuje si´ (nawet jeÊli nie skoƒczy∏
liczenia): ET przyjmuje wartoÊç 0.
Struktura
J´zyk Ladder
EN
Q
PT
ET
J´zyk List
LD %I1.2
[FTON (%I3.0,1000,%Q4.0,%MW2,%MD8)]
J´zyk ST
IF %I1.2 THEN
FTON (%I3.0,1000,%Q4.0,%MW2,%MD8) ;
END_IF ;
Argumenty
FTON (EN, PT, Q, ET, PRIV)
Typ
EN
PT
Q
ET
S∏owa indeks.
%MW,%KW,%Xi.T
S∏owa
nieindeksowalne
%IW,%QW,%SW
Wart. bezp.,
Wyr. num.,%NW
PRIV
%MW
%IW,%QW
Indeks. s∏owa
podwójne
Bity
%MD
%I,%Q, %M, %S
%BLK,%•:Xk,%X
%I,%Q, %M,
%S,%•:Xk,%X
___________________________________________________________________________
2/106
Instrukcje z∏o˝one
2
B
2.12-3 Funkcja opóêniajàca FTOF
Jest to funkcja realizujàca opóênienie typu off-delay. Opóênienie to mo˝na
programowaç.
Sk∏adnia
Operator
FTOF (EN, PT, Q, ET, PRIV)
Charakterystyka
WejÊcie " Enable "
EN
Wyzwolenie opóênienia (zbocze opadajàce)
WartoÊç nastawiona
PT
Jest to s∏owo wejÊciowe definiujàce czas trwania (w setnych cz´Êciach sekundy) opóênienia.
WartoÊç maksymalna wynosi 5 min i 27 s, z dok∏adnoÊcià do 10 ms. (1)
WyjÊcie " Timer "
Q
Przy pojawieniu si´ 1 na wejÊciu EN, na wyjÊciu tym pojawia si´ 1, natomiast po odliczeniu
opóênienia - wystawiane jest 0.
WartoÊç bie˝àca
ET
S∏owo wyjÊciowe, którego wartoÊç, podczas
odliczania opóênienia, roÊnie od 0 do PT.
Zmienna obliczeniowa
PRIV
S∏owo podwójne przeznaczone do przechowywania stanów wewn´trznych. Jest to zmienna
zarezerwowana wy∏àcznie dla tych operacji.
(1)
Zmiana wartoÊci tego s∏owa jest uwzgl´dniana w trakcie odliczania opóênienia.
Pojawienie si´ zbocza rosnàcego na wejÊciu EN, powoduje skasowanie wartoÊci
bie˝àcej ET do 0 (nawet, gdy zegar wcià˝
liczy). Pojawienie si´ zbocza opadajàcego
na wejÊciu EN powoduje uruchomienie
zegara (zaczyna liczyç).
WartoÊç bie˝àca zaczyna rosnàç od 0 do
PT (w setnych cz´Êciach sekundy).
Bit wyjÊciowy Q przyjmuje wartoÊç 1, gdy
pojawia si´ zbocze rosnàce na wejÊciu
EN i zmienia stan na 0 w momencie osiàgni´cia wartoÊci nastawionej PT.
Structure
J´zyk Ladder
EN
Q
PT
ET
J´zyk ST
IF %I1.2 THEN
FTOF (%I3.0,1000,%Q4.0,%MW2,%MD8) ;
END_IF ;
Argumenty - patrz funkcja FTON (poprzedni rozdzia∏).
___________________________________________________________________________
2/107
B
2.12-4 Funkcja FTP - generowanie impulsu
Funkcja ta umo˝liwia wygenerowanie impulsu o ÊciÊle okreÊlonym czasie trwania.
Czas trwania impulsu mo˝e byç programowany.
Sk∏adnia
Operator
FTP (EN, PT, Q, ET, PRIV)
Charakterystyka
WejÊcie " Enable "
EN
Wyzwolenie opóênienia (zbocze rosnàce)
WartoÊç nastawiona
PT
Jest to s∏owo wejÊciowe definiujàce czas trwania (w setnych cz´Êciach sekundy) opóênienia.
WartoÊç maksymalna wynosi 5 min i 27 s, z dok∏adnoÊcià do 10 ms. (1)
WyjÊcie " Timer "
Q
Po odliczeniu opóênienia, na wyjÊciu wystawiana jest 1
WartoÊç bie˝àca
ET
S∏owo wyjÊciowe, którego wartoÊç, podczas
odliczania opóênienia, roÊnie od 0 do PT.
Zmienna obliczeniowa
PRIV
S∏owo podwójne przeznaczone do przechowywania stanów wewn´trznych. Jest to zmienna
zarezerwowana wy∏àcznie dla tych operacji.
(1)
Zmiana wartoÊci tego s∏owa jest uwzgl´dniana w trakcie odliczania opóênienia.
Pojawienie si´ zbocza rosnàcego na wejÊciu EN powoduje uruchomienie odliczania (o ile zegar nie pracuje). Bie˝àca wartoÊç ET roÊnie od 0 do PT (wartoÊç w setnych cz´Êciach sekundy). Bit wyjÊciowy
Q zmienia stan na 1 w momencie uruchomienia odliczania, a gdy wartoÊç bie˝àca osiàga poziom wartoÊci nastawionej
PT - zmienia stan na 0.
Gdy na wejÊciu EN i na wyjÊciu Q jest 0,
to PT równie˝ przyjmuje wartoÊç 0.
Ten przerzutnik monostabilny nie mo˝e
byç reaktywowany.
Struktura
J´zyk Ladder
EN
Q
PT
ET
J´zyk ST
IF %I1.2 THEN
FTP (%I3.0,1000,%Q4.0,%MW2,%MD8) ;
END_IF ;
Argumenty - patrz funkcja FTON (poprzedni rozdzia∏).
___________________________________________________________________________
2/108
Instrukcje z∏o˝one
2
B
2.12-5 Funkcja FPULSOR - generowanie przebiegu prostokàtnego
Ta funkcja powoduje wygenerowanie okresowego sygna∏u prostokàtnego. SzerokoÊç
impuslu definiuje si´ programowo (zmiana stanów 1 - 0) za pomocà 2 liczników:
• TON : zegar opóêniajàcy typu on-delay (dla impulsu 1).
• TOFF : zegar opóêniajàcy typu off-delay (dla impulse 0).
Sk∏adnia
Operator
FPULSOR (EN, TON, TOFF, Q, ET, PRIV)
Charakterystyka
WejÊcie " Enable "
EN
Wyzwolenie sygna∏u prostokàtnego (zbocze
rosnàce)
WartoÊç nastawiona
(impuls 1)
TON
Jest to s∏owo wejÊciowe definiujàce czas trwania
(w setnych cz´Êciach sekundy) impulsu (stan 1).
WartoÊç maksymalna wynosi 5 min i 27 s, z dok∏adnoÊcià do 10 ms. (1)
WartoÊç nastawiona
(impuls 0)
TOFF
Jest to s∏owo wejÊciowe definiujàce czas trwania
(w setnych cz´Êciach sekundy) impulsu (stan 0).
WartoÊç maksymalna wynosi 5 min i 27 s, z dok∏adnoÊcià do 10 ms. (1)
WyjÊcie sygna∏u
Q
WyjÊcie przebiegu prostokàtnego przyjmujàce
wartoÊç 0 w czasie TOFF, i 1 w czasieTON.
WartoÊç bie˝àca
ET
S∏owo wyjÊciowe, którego wartoÊç, podczas odliczania opóênienia, roÊnie od 0 do TON+TOFF.
Zmienna obliczeniowa
PRIV
S∏owo podwójne przeznaczone do przechowywania stanów wewn´trznych. Jest to zmienna
zarezerwowana wy∏àcznie dla tych operacji.
(1)
Dowolne zmiany dokonywane na tym s∏owie sà uwzgl´dniane podczas odliczania opóênienia.
Czas TOFF+TON mo˝e mieç maksymalnie wartoÊç równà 5 min i 27 s.
Pojawienie si´ zbocza rosnàcego na
wejÊciu EN powoduje wygenerowanie EN
przebiegu prostokàtnego (o ile przebieg
TOFF
TOFF
TOFF
ten nie jest ju˝ generowany). WartoÊç
Q
TON
TON
TON+TOFF
bie˝àca ET roÊnie wtedy od 0 do
TON+TOFF (w setnych cz´Êciach sekundy). Bit wyjÊciowy Q ma, podczas
odliczania opóênienia TOFF, stan 0; stan ET
zmienia si´ na 1 (i utrzymuje si´ 1) podczas odliczania opóênienia TON, po czym
znowu zmienia si´ na 0 podczas odliczania czasu TOFF i tak w kó∏ko dopóki na
wejÊciu EN nie pojawi si´ 0.
___________________________________________________________________________
2/109
B
Struktura
J´zyk Ladder
J´zyk List
LD True
[FPULSOR (%I3.0,500,200,%Q4.0,%MW2,
%MD8)]
J´zyk ST
IF %I1.2 THEN
FPULSOR (%I3.0,500,200,%Q4.0,%MW2,%MD8) ;
END_IF ;
Argumenty
FPULSOR (EN, TON, TOFF, Q, ET, PRIV)
Typ
EN
S∏owa indeks.
%MW,%KW,%Xi.T
S∏owa
nieindeks.
TON,TOFF
Q
PRIV
%MW
%IW,%QW,%SW
Wart. bezp.
Wyr. num.,%NW
%IW,%QW
Indeks. s∏owa
podwójne
Bity
ET
%MD
%I,%Q, %M, %S
%BLK,%•:Xk,%X
%I,%Q, %M,
%S,%•:Xk,%X
___________________________________________________________________________
2/110
S∏owa i bity systemowe 33
Rozdzia∏
3 S∏owa i bity systemowe
3.1
B
Bity systemowe
3.1-1 Lista bitów
Bit
Funkcja
WartoÊç
poczàtk.
Kontrola
(1)
%S0
1 = zimny start (zanik zasilania z utratà danych)
0
S lub U- & gt; S
%S1
1 = goràcy start (zanik zasilania bez utraty danych)
0
S lub U- & gt; S
%S4,%S5,
%S6,%S7
Podstawa czasu 10ms, 100ms, 1s, 1mn
-
S
%S8 (2)
Testowanie pod∏àczeƒ
(mo˝e byç u˝yte dla nie skonfigurowanego TSX 37)
1
U
%S9
1 = wymuszenie stanów wyjÊç w trybie zast´pczym
0
U
%S10
0 = b∏àd I/O
1
S
%S11
1 = zadzia∏anie uk∏adu monitorujàcego (watchdog)
0
S
%S13
1 = pierwsze " przejÊcie " po ustawieniu trybu RUN
-
S
%S15
1 = b∏àd ∏aƒcucha znaków
0
S- & gt; U
%S16
0 = b∏àd I/O w zadaniu
1
S- & gt; U
%S17
1 = przepe∏nienie
0
S- & gt; U
%S18
1 = przepe∏nienie lub b∏àd arytmetyczny
0
S- & gt; U
%S19
1 = przekroczenie okresu zadania
0
S- & gt; U
%S20
1 = przekroczenie indeksu
0
S- & gt; U
%S21
1 = inicjacja Grafcet-u
0
S lub U- & gt; S
%S22
1 = kasowanie Grafcet-u
0
U- & gt; S
%S23
1 = przygotowanie Grafcet-u i zamro˝enie
0
U- & gt; S
%S24 (3)
1 = kasowanie makra do 0 zgodnie z %SW22 to 25
0
S
%S26
1 = przepe∏nienie tablicy (kroki/bramki)
0
S
%S30
1 = uaktywnienie zadania g∏ównego MASTER
1
U
%S31
1 = uaktywnienie zadania szybkiego FAST
1
U
%S38
1 = odblokowanie kontroli zdarzeƒ
1
U
%S39
1 = nasycenie procesu przetwarzania zdarzeƒ
0
S- & gt; U
%S40 ÷ %S47 1 = b∏àd I/O dla slotu TSX 57 (3)
1
S
%S49
1 = kasowanie b∏´dnych stanów wyjÊç logicznych
0
U
%S50
1 = ustawianie zegar czasu rzeczywistego
0
U
___________________________________________________________________________
(1) (2) (3)
i - patrz nast´pna strona.
3/1
B
B
Bit
Funkcja
WartoÊç
poczàtk.
Kontrola
(1)
%S51
1 = brak czasu z zegara czasu rzeczywistego
0
S lub U- & gt; S
%S59
1 = umo˝liwienie zmiany bie˝àcej daty
0
U
%S66 (2)
1 = kontrolka baterii zawsze wy∏àczona
0
U
%S67
0 = zasilanie bateryjne zasobnika pami´ci
-
S
%S68
0 = praca baterii podtrzymujàcej (procesor)
-
S
%S69 (2)
1 = odblok. pami´ci s∏ów (WORD) wyÊwietlacza
0
U
%S70
1 = aktualizacja danych szyny As-i lub ∏àcza
TSX Nano
0
S- & gt; U
%S73 (2)
1 = prze∏àczenie na tryb chroniony szyny AS-i
0
U- & gt; S
%S74 (2)
1 = zapisanie konfiguracji AS-i
0
U- & gt; S
%S80
1 = kasowanie komunikatu licznika
0
S- & gt; U
%S90
1 = aktualizacja s∏ów wspólnych
0
S- & gt; U
%S94 (3)
1 = zapisanie wartoÊci korygujàcych dla bloku DFB
0
U- & gt; S
%S95 (3)
1 = odtworzenie wartoÊci korygujàcych bloku DFB
0
U- & gt; S
%S96 (2)
0 = brak kopii zapasowej programu
1 = kopia zapasowa programu jest dost´pna
0
S- & gt; U
%S97 (2)
0 = brak kopii %MW
1 = jest kopia %MW
-
S
%S98 (2)
1 = zastàpienie modu∏u przycisku TSX SAZ 10
wejÊciem dyskretnym
0
U
%S99 (2)
1 = zastàpienie centralnego modu∏u przycisków
wejÊciem dyskretnym
0
U
%S100
1 = odtworzenie wartoÊci korygujàcych bloku DFB
-
S
%S118
0 = b∏àd I/O FIPIO
1
S
%S119
0 = wewn´trzny b∏àd I/O
1
S
(1)
(2)
(3)
S = kontrolowane przez system, U =kontrolowane przez u˝ytkownika, U- & gt; S = wartoÊç 1
nadawana przez u˝ytkownika, kasowanie do 0 przez system, S- & gt; U = wartoÊç 1 nadawana
przez system, kasowanie do 0 przez u˝ytkownika.
Tylko dla TSX 37.
Tylko dla TSX/PMX/PCX 57.
___________________________________________________________________________
3/2
S∏owa i bity systemowe
3
B
3.1-2 Szczegó∏owy opis bitów systemowych
Sterowniki TSX 37 i TSX 57 majà bity systemowe %Si, które sygnalizujà stan sterownika
lub uprawniajà u˝ytkownika do interwencji w jego dzia∏anie.
Te bity mogà byç testowane w programie u˝ytkowym, w celu wykrywania sytuacji
wymagajàcych specjalnej reakcji. Niektórym z nich, program musi przywracaç stan
poczàtkowy lub normalny. Jednak˝e nale˝y pami´taç, ˝e bitów systemowych, którym
system przywróci∏ stan poczàtkowy lub normalny, nie wolno kasowanaç za pomocà
programu czy terminala.
Bity
system.
Funkcja
Opis
%S0
Zimny start
Cold start
Normalnie stan 0. Nadanie wartoÊci 1 mo˝e byç wywo∏ane:
• zanikiem zasilania z utratà danych (uszkodzenie baterii),
• programowo przez u˝ytkownika,
• za pomocà terminala,
• wymianà zasobnika pami´ci,
• naciÊni´ciem klawisza RESET,
Bit przyjmuje wartoÊç 1 w trakcie pierwszego, kompletnego
" przejÊcia " programu. Jest kasowane do 0 przed nast´pnym
" przejÊciem " . Dzia∏anie: patrz cz´Êç A, rozdzia∏ 1.4.
%S1
Goràcy start
Warm restart
Normalnie stan 0. Nadanie wartoÊci 1 mo˝e byç wywo∏ane:
• zanikiem zasilania z zachowaniem danych,
• programowo przez u˝ytkownika,
• za pomocà terminala,
Bit jest kasowany przez system do 0 na koƒcu pierwszego,
kompletnego " przejÊcia " programu, przed uaktualnieniem
stanów wyjÊç. Dzia∏anie: patrz cz´Êç A, rozdzia∏ 1.4.
Podstawa czasu
Time base
10ms
100ms
1s
1min
Zmianà stanów tych bitów zarzàdza wewn´trzny zegar. Nie sà
one synchronizowane z pracà sterownika.
%S8
Pod∏àczenia
Wiring
Normalnie - 1, ten bit s∏u˝y do testowania pod∏àczeƒ, gdy
sterownik TSX 37 nie jest skonfigurowany.
• Stan 1 powoduje wymuszenie 0 na wyjÊciach.
• Stan 0 uprawnia do dokonywania zmian za pomocà terminala.
%S9
Tryb zast´pczy
wyjÊç na
wszystkich
magistralach
Normalnie - 0. Zmiana na 1 - programowo lub terminal.
• Stan 1 - wymuszenie na wyjÊciach trybu zast´pczego
(magistrala X, FIPIO, AS-i, itp.).
• Stan 0 - wyjÊcia sà normalnie aktualizowane.
%S10
B∏àd
I/O
Normalnie - 1. Zmienia stan na 0, gdy pojawia si´ b∏àd I/O modu∏u
lokalnego lub zdalnego FIPIO (b∏àd konfiguracji, b∏àd wymiany,
b∏àd sprz´towy). Bit %S10 powraca do stanu 1, gdy znika
przyczyna b∏´du.
%S4
%S5
%S6
%S7
Przyk∏ad: %S4
5ms 5ms
___________________________________________________________________________
3/3
B
B
Bity
system.
Funkcja
Opis
%S11
Uk∏ad
Êledzàcy
Watchdog
Normalnie - 0. System nadaje 1, gdy czas wykonywania zadania przekracza maksymalny czas wykonywania, zdefiniowany
dla zadania podczas konfiguracji.
Zadzia∏anie zabezpieczenia powoduje zatrzymanie sterownika
(przejÊcie do trybu STOP) a aplikacja przerywa prac´ sygnalizujàc
b∏àd (miga kontrolka ERR).
%S13
1-e " przejÊcie "
First scan
Normalnie - 0. System utrzymuje wartoÊç 1 przez czas trwania
pierwszego " przejÊcia " po uruchomieniu sterownika (tryb RUN).
%S15
B∏àd ∏aƒcucha
znaków
Normalnie - 0. Przyjmuje wartoÊç 1, gdy obszar docelowy dla
transferu ∏aƒcucha znaków jest zbyt ma∏y. Bit ten musi byç
skasowany przez u˝ytkownika.
%S16
B∏àd zadania
I/O
Normalnie - 1. System nadaje mu wartoÊç 0, gdy pojawia si´ b∏àd w
lokalnym lub zdalnym (FIPIO) module I/O. Bit ten musi byç
skasowany do 1 przez u˝ytkownika. Zadanie I/O ma swój w∏asny
bit %S16.
%S17
Bit wyjÊciowy
Normalnie - 0. System nadaje mu wartoÊç 1:
dla operacji
• podczas operacji przesuwania (zawiera stan ostatniego bitu),
arytmetycznych • w przypadku przepe∏nienia dla bezznakowej operacji arytmetyczlub przesuni´cia
nej (na datach).
Ten bit musi byç skasowany do 0 przez u˝ytkownika.
%S18
B∏àd lub przepe∏- Normalnie - 0. Przyjmuje wartoÊç 1, w przypadku przepe∏nienia
nienie operacji
operacji 16-bitowej, czyli gdy:
arytmetycznej
• wynik jest wi´kszy ni˝ + 32767 lub mniejszy ni˝ - 32768 dla
operacji na obiektach pojedynczej precyzji,
• wynik jest wi´kszy ni˝ + 2 147 483 647 lub & lt; - 2 147 483 648
dla operacji na obiektach podwójnej precyzji,
• wynik jest wi´kszy ni˝ +3.402824E+38 lub & lt; -3.402824E+38 dla
operacji zmiennoprzecinkowych (wersja programu & gt; 1.0),
• nast´puje przekroczenie pojemnoÊci kodu DCB,
• wyst´puje dzielenie przez 0,
• argument pierwiastka kwadratowego jest ujemny,
• nast´puje odwo∏anie do nieistniejàcego kroku b´bna,
• podejmowana jest próba zapisania w zape∏nionym rejestrze lub
odczytania pustego rejestru.
Bit ten musi byç testowany przez program po ka˝dej operacji,
która niesie zagro˝enie wystàpienia przepe∏nienia. W razie jego
wystàpienia u˝ytkownik powinien skasowaç go do 0.
%S19
Przekroczenie
okresu zadania
(zadanie
okresowe)
Normalnie - 0. System nadaje mu wartoÊç 1 w przypadku przekroczenia okresu zadania (czas " przejÊcia " zadania wi´kszy ni˝
czas zdefiniowany przez u˝ytkownika w konfiguracji lub zapisany w
s∏owie %SW sprz´˝onym z zadaniem)
___________________________________________________________________________
3/4
S∏owa i bity systemowe
3
B
Bity
system.
Funkcja
Opis
%S20
Przekroczenie
indeksu
Normalnie - 0. Przyjmuje wartoÊç 1, gdy adres obiektu indeksowanego jest mniejszy od 0 lub jest wi´kszy od liczby obiektów
zadeklarowanej w konfiguracji.
Bit ten musi byç testowany przez program po ka˝dej operacji, dla
której istnieje ryzyko wystàpienia przepe∏nienia. W razie jego
wystàpienia powinien byç skasowany do 0 przez u˝ytkownika.
%S21
Inicjacja
Grafcet-u
Bit pozwala u˝ytkownikowi na inicjacj´ Grafcet-u (zaleca si´ nadawanie mu wartoÊci 1 podczas przetwarzania wst´pnego). Jest
kasowany do 0 przez system po zakoƒczeniu inicjacji (na koƒcu
przetwarzania wst´pnego, podczas oszacowywania nowego
statusu Grafcet-u). Inicjacja powoduje dezaktywacj´ wszystkich
aktywnych kroków i uaktywnienie kroków inicjujàcych (initial steps).
W przypadku zimnego startu system nadaje mu, podczas
przetwarzania wst´pnego, wartoÊç 1.
%S22
Kasowanie
Grafcet-u
Normalnie - 0. WartoÊç 1 mo˝e nadaç temu bitowi tylko system
podczas przetwarzania wst´pnego. Stan 1 powoduje dezaktywacj´
wszystkich kroków Grafcet-u. System kasuje go do 0 po
zakoƒczeniu przetwarzania wst´pnego.
%S23
Zamro˝enie
Grafcet-u
Normalnie - 0. Nadanie bitowi wartoÊci 1 powoduje zapami´tanie
statusu Grafcet-u. Bez wzgl´du na spe∏nienie warunków przejÊcia
diagram nie ulega zmianie. Zamro˝enie trwa tak d∏ugo, jak d∏ugo
bit %S23 ma stan 1. Stan bitu jest kontrolowany przez program.
WartoÊç definiuje si´ tylko podczas przetwarzania wst´pnego.
%S24
Kasowanie
makrodefinicji
Normalnie - 0. Nadanie wartoÊci 1 powoduje skasowanie do 0
wybranych makrodefinicji (tablica 4 s∏ów %SW22÷%SW25).
Po zatwierdzeniu system kasuje bit do 0, po zakoƒczeniu przetwarzania wst´pnego.
%S26
Przepe∏nienie
tablicy
(kroków/bramek)
Normalnie - 0. System nadaje wartoÊç 1, w razie przekroczenia
liczby uaktywnionych kroków lub bramek lub przy próbie wykonania niew∏aÊciwie zdefiniowanego diagramu (np. po∏àczenie
z krokiem z innego diagramu). Powoduje to zatrzymanie sterownika (STOP).
Skasowanie do 0 nast´puje po zainicjowaniu terminala.
%S30
Uaktywnienie
zadania MAST
Normalnie - 1. Nadanie mu, przez u˝ytkownika, wartoÊci 0
powoduje dezaktywacj´ zadania g∏ównego MASTER.
%S31
Uaktywnienie
zadania FAST
Normalnie - 1. Nadanie mu, przez u˝ytkownika, wartoÊci 0
powoduje dezaktywacj´ zadania szybkiego FAST.
%S38
Oblokowanie
zdarzeƒ
Normalnie - 1. Nadanie mu, przez u˝ytkownika, wartoÊci 0
powoduje zablokowanie reakcji na zdarzenia (events).
%S39
Przepe∏nienie
przetwarzania
zdarzeƒ
System nadaje bitowi %S39 wartoÊç 1 sygnalizujàc, ˝e z powodu
przepe∏nienia stosu nie mo˝na przetwarzaç zdarzeƒ. Bit ten jest
kasowany do 0 przez u˝ytkownika.
___________________________________________________________________________
3/5
B
B
Bity
system.
Funkcja
Opis
%S40
do
%S47
B∏´dy I/O
(wewn.) (1)
Bity %S40 do %S47 sà przypisane do slotów 0 do 7.
Normalnie majà one wartoÊç 1. Je˝eli w danym slocie wystàpi
b∏àd I/O, to odpowiedni bit przyjmuje wartoÊç 0.
Po znikni´ciu b∏´du bit jest kasowany do stanu 1.
%S49
Reaktywacja
wyjÊç (2)
Normalnie - 0. Nadanie mu, przez u˝ytkownika, wartoÊci 1 jest
˝àdaniem reaktywacji (co 10s) wyjÊcia logicznego sygnalizujàcego
przecià˝enie lub zwarcie.
%S50
Aktualizacja
daty i czasu
za pom. s∏ów
%SW50÷53
Normalnie - 0. WartoÊç 1 lub 0 mo˝e mu nadawaç program lub
terminal.
• Stan 0 umo˝liwia dost´p do daty i czasu (odczytanie s∏ów)
• Stan 1 umo˝liwia uaktualnienie daty i czasu poprzez zapisanie
nowych wartoÊci s∏ów systemowych %SW50 to 53.
%S51
Brak czasu
z zegara
czasu
rzeczywistego
Bitem tym zarzàdza system, wartoÊç 1 sygnalizuje brak zegara
czasu rzeczywistego lub niew∏aÊciwe wartoÊci s∏ów systemowych. W takim przypadku nale˝y nastawiç zegar.
Nastawienie zegara automatycznie zmienia stanu bitu na 0.
%S59
Aktualizacja
daty i czasu
za pomocà
s∏owa %SW59
Normalnie - 0. WartoÊç 1 lub 0 mo˝e mu nadawaç program lub
terminal.
• Stan 0 powoduje, ˝e system nie kontroluje s∏owa %SW59.
• Stan 1 powoduje, ˝e system kontroluje zmian´ stanu s∏owa
%SW59 (zbocze rosnàce lub opadajàce) i dostraja bie˝àcy
czas i dat´.
%S66
Sygnalizacja
stanu
baterii
Normalnie - 0. WartoÊç 1 lub 0 mo˝e mu nadawaç program lub
terminal. Umo˝liwia on za∏àczanie i wy∏àczanie sygnalizacji stanu baterii podtrzymujàcej (brak lub uszkodzenie):
• stan 0: w razie braku lub uszkodzenia baterii kontrolka pali si´,
• stan 1: kontrolka baterii jest zawsze wy∏àczona.
Podczas zimnego startu system kasuje bit %S66 do 0.
%S67
Stan baterii
zasobnika
Bit ten umo˝liwia sprawdzenie stanu baterii podtrzymujàcej zasobnika pami´ci RAM.
• Stan 0: bateria pracuje prawid∏owo,
• Stan 1: brak baterii lub jej uszkodzenie.
%S68
Stan baterii
procesora
Bit ten umo˝liwia sprawdzenie stanu baterii podtrzymujàcej pami´ci RAM dla programu i danych.
• Stan 0: bateria pracuje prawid∏owo,
• Stan 1: brak baterii lub jej uszkodzenie.
(1)
Tylko dla sterowników TSX/PMX/PCX 57.
(2)
Tylko dla sterowników TSX37.
___________________________________________________________________________
3/6
S∏owa i bity systemowe
3
B
Bity
system
Funkcja
Opis
%S69
WyÊwietlanie
danych u˝ytkowych na module
sterownika
Normalnie - 0. WartoÊç 1 lub 0 nadaje mu program lub terminal.
• Stan 0: na module sterownika jest wyÊwietlany stan I/O
(kontrolka WRD jest wy∏àczona).
• Stan 1 wyÊwietlane sà dane u˝ytkowe (WRD si´ Êwieci).
(patrz s∏owa %SW67,68 i 69).
%S70
Aktualizacja
danych na
szynie As-i lub
∏àczu TSX Nano
Na koƒcu ka˝dego przeszukania sieci TSX Nano lub As-i sysstem nadaje bitowi wartoÊç 1. Po za∏àczeniu bit ten informuje, ˝e
wszystkie dane zosta∏y co najmniej raz odÊwie˝one, w zwiàzku
z czym sà wa˝ne. Bit jest kasowany do 0 przez u˝ytkownika.
%S73
Prze∏àczenie na
tryb chroniony
na szynie As-i
Normalnie - 0. U˝ytkownik nadaje bitowi wartoÊç 1 w celu prze∏àczenia magistrali As-i na prac´ w trybie chronionym. Jednak˝e
najpierw bit %S74 powinien mieç stan 1. Bit ten nie ma zastosowania w sterowniku, s∏u˝y tylko do testowania po∏àczeƒ.
%S74
Zapami´tanie
bie˝àcej
konfiguracji
magistrali AS-i
Normalnie - 0. Nadanie mu, przez u˝ytkownika wartoÊci 1 powoduje zapisanie do pami´ci bie˝àcej konfiguracji magistrali As-i.
Bit ten nie ma zastosowania w sterowniku, s∏u˝y tylko do testowania po∏àczeƒ.
%S80
Kasowanie
licznika
komunikatów
Normalnie - 0. U˝ytkownik mo˝e mu nadaç wartoÊç 1, co poduje skasowanie liczników komunikatów %SW80 do %SW86.
%S90
OdÊwie˝enie
s∏ów wspólnych
Normalnie - 0. Je˝eli s∏owa wspólne pochodzà od innej stacji
sieci, to bit ten przyjmuje wartoÊç 1.
Program lub terminal mo˝e zmieniaç wartoÊç bitu na 0 w celu
sprawdzenia cyklu wymiany s∏ów wspólnych.
%S94
Zapisanie
korekcji DFB
Normalnie - 0. U˝ytkownik zmienia stan na 1 w celu zapisania
wartoÊci korygujàcych (adjustment values) dla bloku DFB.
%S95
Odczytanie
korekcji DFB
Normalnie - 0. U˝ytkownik zmienia stan na 1 w celu wczytania
wartoÊci korygujàcych do bloku DFB.
%S96
Informacja
o kopii
programu
0 - & gt; brak kopii zapasowej programu,
1 - & gt; kopia programu jest dost´pna.
Stan bitu mo˝e byç odczytywany w dowolnym momencie (przez
program w trybie regulacji adjustment mode), a w szczególnoÊci po
zimnym lub goràcym starcie.
Jego stan informuje o mo˝liwoÊci wczytania do sterownika kopii
zapasowej programu (backup application) zapisanej za pomocà PL7
w wewn´trznej pami´ci Flash EPROM.
%S97
Informacja
o kopii %MW
0 - & gt; brak kopii s∏ów %MW,
1 - & gt; kopia s∏ów %MW jest dost´pna.
Stan mo˝na czytaç w dowolnym momencie (program w trybie
regulacji), w szczególnoÊci po zimnym lub goràcym starcie.
%S98
Funkcja modu∏u
TSX SAZ 10
Normalnie - 0. Bitem zarzàdza u˝ytkownik:
0 - & gt; przycisk na module TSX SAZ 10 jest aktywny,
1 - & gt; przycisk na TSX SAZ 10 zastàpiony wejÊciem dyskretnym
(patrz %SW98).
___________________________________________________________________________
3/7
B
B
Bity
system.
Funkcja
Opis
%S99
Przycisk
na module
sterownika (blok
sygnalizacyjny)
Normalnie - 0. Bitem zarzàdza u˝ytkownik:
0 - & gt; przycisk na module sterownika aktywny,
1 - & gt; przycisk na module zastàpiony przez wejÊcie dyskretne
(patrz %SW99).
%S100
Protokó∏
portu
terminala
W zale˝noÊci od stanu zworki INL/DPT na porcie terminala
system nadaje bitowi wartoÊç 0 lub 1.
• Je˝eli nie ma zworki (%S100=0), to stosowany jest protokó∏
UNI-TELWAY.
• Je˝eli jest zworka (%S100=1), to u˝ywany jest protokó∏
zdefiniowany w konfiguracji.
%SW118
Ogólny b∏àd I/O Normalnie - 1. Bit zmienia wartoÊç na 0, gdy jakieÊ urzàdzenie
FIPIO
pod∏àczone do szyny FIPIO sygnalizuje b∏àd I/O. Po znikni´ciu
b∏´du bit jest kasowany przez system do 1.
%SW119
Ogólny b∏àd I/O Normalnie - 1. Bit zmienia wartoÊç na 0, gdy jakieÊ urzàdzenie
wewn´trzny
wewn´trzne sygnalizuje b∏àd I/O. Po znikni´ciu b∏´du bit jest
kasowany przez system do 1.
___________________________________________________________________________
3/8
S∏owa i bity systemowe
3
B
3.2
S∏owa systemowe
3.2-1 Lista s∏ów
S∏owo
%SW0
%SW1
%SW8
%SW9
%SW10
%SW11
%SW12
%SW13
%SW17
%SD18
%SW20
%SW21
%SW22 ÷
%SW25 (2)
%SW30
%SW31
%SW32
%SW33
%SW34
%SW35
%SW48
%SW49 (1)
%SW50 (1)
%SW51 (1)
%SW52 (1)
%SW53 (1)
%SW54 (1)
%SW55 (1)
%SW56 (1)
%SW57 (1)
%SW58
%SW59
%SW67
%SW68
%SW69
Funkcja
WartoÊç okresu zadania g∏ównego MAST (zadanie okresowe)
WartoÊç okresu zadania szybkiego FAST
Sterowanie odczytem stanów wejÊç dla ka˝dego zadania
Sterowanie aktualizacjà stanów wyjÊç dla ka˝dego zadania
Pierwsze " przejÊcie " po zimnym starcie
WartoÊç czasu dla uk∏adu Êledzàcego (watchdog)
Adres portu terminala w sieci UNI-TELWAY
G∏ówny adres stacji
Status b∏´du dla operacji zmiennoprzecinkowych
Zegar czasu bezwzgl´dnego
Liczba kroków aktywnych, do uaktywnienia i do dezaktywacji
Liczba bramek otwartych, do otwarcia i do zamkni´cia
Tablica 4 s∏ów u˝ywana do zaznaczania makr przeznaczonych do
skasowania do 0 gdy bit %S24 przyjmie wartoÊç 1
Czas wykonywania ostatniego zadania g∏ównego
Maksymalny czas trwania " przejÊcia " dla zadania g∏ównego
Minimalny czas trwania " przejÊcia " dla zadania g∏ównego
Czas wykonywania ostatniego zadania szybkiego
Maksymalny czas trwania " przejÊcia " dla zadania szybkiego
Minimalny czas trwania " przejÊcia " dla zadania szybkiego
Liczba przetworzonych zdarzeƒ
Funkcje zegara czasu rzeczywistego: s∏owa zawierajàce bie˝àcà
dat´ i czas (w kodzie BCD)
%SW49 = dzieƒ tygodnia (nazwa dnia)
%SW50 = sekundy
%SW51 = godziny i minuty
%SW52 = miesiàc i dzieƒ
%SW53 = rok
Funkcje zegara czasu rzeczywistego: s∏owa zawierajàce czas
i dat´ ostatniej awarii zasilania lub zatrzymania sterownika (BCD)
%SW54 = sekundy i kod b∏´du %SW55 = godzina i minuta
%SW56 = miesiàc i dzieƒ
%SW57 = rok
Identyfikacja przyczyny ostatniego stopu i dzieƒ tygodnia (nazwa)
Poprawianie bie˝àcej daty i czasu
Tryb wyÊwietlania:
%SW67: odczytywanie stanów przycisków
%SW68: indeksy - bie˝àcy i max " wyÊwietlanych obiektów "
%SW69: numer pierwszego wyÊwietlanego obiektu
%SW80
L-ba komunikatów przes∏anych przez system do portu terminala
%SW81
L-ba komunikatów odebranych przez system od portu terminala
%SW82
L-ba komunikatów przes∏anych przez system do karty PCMCIA
%SW83
L-ba komunikatów odebranych przez system od karty PCMCIA
%SW84
Liczba telegramów wys∏anych przez system
%SW85
Liczba telegramów odebranych przez system
%SW86
Liczba telegramów odrzuconych przez system
(1)
S = zarzàdzany przez system, U = zarzàdzany przez u˝ytkownika
(2)
Tylko dla TSX 57.
(3)
Tylko dla TSX 37-21/22 i TSX 57.
Kontrola
U
U
U
U
S
S
S
S
SiU
SiU
S
S
U
S
S
S
S
S
S
SiU
Si U
S
S
U
SiU
SiU
___________________________________________________________________________
3/9
B
B
S∏owo
%SW96 (2)
%SW97 (2)
%SW98 (2)
%SW99 (2)
%SW108
%SW109
%SW116
%SW124
%SW125
%SW126
%SW127
%SW128÷
%SW143
%SW155
(1)
(2)
Funkcja
Kontrola/diagnostyka zapisywania i odczytywania programu
aplikacji i %MW
Liczba s∏ów %MW do zapisania
Fizyczny adres (modu∏/kana∏) wejÊcia dyskretnego zast´pujàcego
przycisk na module TSX SAZ 10
Fizyczny adres (modu∏/kana∏) wejÊcia dyskretnego zast´pujàcego
przycisk na module sterownika (blok sygnalizacyjny)
Liczba wymuszonych bitów
Liczba kana∏ów analogowych, na których wymuszono 0
B∏àd zdalnych I/O w sieci FIPIO
Rodzaj ostatniego, wyszukanego procesora
Typ b∏´du blokujàcego dzia∏anie procesora
Adres instrukcji b∏´du blokujàcego
Kontrola
SiU
U
U
U
S
S
S
S
S
S
B∏àd pod∏àczenia w sieci FIPIO
S
Liczba przeprowadzonych operacji wymiany jawnej
S
S = kontrolowane przez system, U = kontrolowane przez u˝ytkownika,
Tylko dla TSX 37.
___________________________________________________________________________
3/10
S∏owa i bity systemowe
3
B
3.2-2 Szczegó∏owy opis s∏ów systemowych
S∏owa
systemowe
Funkcja
Opis
%SW0
Okres
zadania
g∏ównego
Umo˝liwia zmian´ okresu zadania g∏ównego Mast zdefiniowanego podczas konfiguracji (program lub terminal).
Czas trwania okresu wyra˝ony jest w ms (1..255ms).
Dla zadania okresowego %SW0=0. Podczas zimnego startu
s∏owo przyjmuje wartoÊci okreÊlone w konfiguracji.
%SW1
Okres
zadania
szybkiego
Umo˝liwia zmian´ okresu zadania szybkiego Fast zdefiniowanego podczas konfiguracji (program lub terminal).
Czas trwania okresu wyra˝ony jest w ms (1..255ms).
Dla zadania okresowego %SW0=0. Podczas zimnego startu
s∏owo przyjmuje wartoÊci okreÊlone w konfiguracji.
%SW8
Sterowanie
odczytem
wejÊç
Normalnie - 0. WartoÊç 1 lub 0 definiuje si´ przy pomocy
programu lub terminala.
Pozwala na pomini´cie fazy odczytywania stanów wejÊç:
%SW8:X0 1= pomini´cie odczytu dla zadania g∏ównego,
%SW8:X1 1= pomini´cie odczytu dla zadania szybkiego.
%SW9
Sterowanie
aktualizacjà
wyjÊç
Normalnie - 0. WartoÊç 1 lub 0 definiuje si´ przy pomocy
programu lub terminala.
Pozwala na pomini´cie fazy aktualizacji stanów wyjÊç:
%SW8:X0 1= pomini´cie fazy dla zadania g∏ównego,
%SW8:X1 1= pomini´cie fazy dla zadania szybkiego.
%SW10
Pierwsze
" przejÊcie "
zimnym
starcie
WartoÊç 0 s∏owa dla bie˝àcego zadania oznacza, ˝e wykonywane jest pierwsze " przejÊcie " po zimnym starcie.
%SW10:X0 : jest przypisane do zadania g∏ównego Mast,
%SW10:X1 : jest przypisane do zadania szybkiego Fast.
%SW11
Czas dla uk∏adu
Êledzàcego
Odczytanie czasu ustawionego podczas konfiguracji dla
uk∏adu Êledzàcego, wyra˝onego w ms (10...500ms).
%SW12
Adres portu
terminala sieci
UNI-TELWAY
Adres portu terminala UNI-TELWAY (tryb Slave) zdefiniowany w konfiguracji i za∏adowany do tego s∏owa podczas
zimnego startu.
%SW13
G∏ówny
adres
stacji
Dla sieci g∏ównej zawiera :
• numer stacji (bajt mniej znaczàcy) od 0 do 127,
• numer sieci (bajt bardziej znaczàcy) od 0 do 63
(pozycja prze∏àcznika DIP karty PCMCIA).
___________________________________________________________________________
3/11
B
B
S∏owa
systemowe
Funkcja
Opis
%SW17
Status b∏´du
dla operacji
zmiennoprzec.
Wystàpienie b∏´du podczas opercji zmiennoprzecinkowej,
powoduje zmain´ stanu bit %S18 na 1 i zapisanie kodu
b∏´du w s∏owie %SW17:
%SW17:X0 = niew∏aÊciwa operacja / wynik nie jest liczbà,
%SW17:X1 = niestandard. argument / wynik poprawny,
%SW17:X2 = dzielenie przez 0 / wynik ± ∞,
%SW17:X3 = wartoÊç za du˝a / wynik ± ∞,
%SW17:X4 = wartoÊç za ma∏a / wynik ± 0,
%SW17:X5 = wynik jest nieprecyzyjny.
S∏owo to jest kasowane do 0 przez system podczas zimne-go
startu i przez program w celu powtórnego u˝ycia.
%SD18
Zegar
czasu
bezwzgl´dnego
To s∏owo podwójne jest wykorzystywane do obliczania okresu czasu. Jego wartoÊç jest zwi´kszana co 1/10 sekundy
przez system (nawet, gdy sterownik jest zatrzymany). Mo˝e
ono byç czytane i zapisywane przez program i terminal.
%SW20
Poziom
aktywnoÊci
Grafcet-u
S∏owo to zawiera (dla bie˝àcego " przejÊcia " ) liczb´ kroków
aktywnych, do uaktywnienia i do dezaktywacji. Jest uaktualniane przez system przy ka˝dej zmianie diagramu.
%SW21
Tablica
odblokowanych
przejÊç
To s∏owo zawiera (dla bie˝àcego " przejÊcia " ) liczb´ bramek
otwartych, do otwarcia i do zamkni´cia. Jest uaktualniane
przez system przy ka˝dej zmianie diagramu.
%SW22
do
%SW25
Tablica makr
do skasowania
Ka˝demu elementowi tablicy %SW22:X0÷XM0...%SW25:X16÷
XM63 przyporzàdkowana jest makrodefinicja.
Makra, których bity w tablicy majà stan 0 zostanà skasowane,
gdy bit %S24 przyjmie wartoÊç 1.
%SW30
Czas " przejÊcia "
zadania g∏ównego
MAST (1)
Zawiera czas trwania ostatniego " przejÊcia " zadania g∏ównego MASTER (w ms).
%SW31
Maksymalny
czas " przejÊcia "
zadania g∏ównego
MAST (1)
Zawiera czas trwania najd∏u˝szego " przejÊcia " zadania
g∏ównego od ostatniego zimnego startu (w ms).
(1)
Ten czas jest równy czasowi up∏ywajàcemu od momentu rozpocz´cia (odczytywanie stanów wejÊç)
do zakoƒczenia (aktualizacja stanów wyjÊç) cyklu " przejÊcia " . Czas ten obejmuje przetwarzanie
wyzwalane zdarzeniami oraz wykonywanie zadania szybkiego, jak równie˝ przetwarzanie ˝àdaƒ
pochodzàcych z terminala.
___________________________________________________________________________
3/12
S∏owa i bity systemowe
3
B
S∏owa
systemowe
Funkcja
Opis
%SW32
Minimalny
czas " przejÊcia "
zadania g∏ównego
MAST (1)
Zawiera czas trwania najkrótszego " przejÊcia " zadania
g∏ównego od ostatniego zimnego startu (w ms).
%SW33
Czas " przejÊcia "
zadania szybkiego
FAST (1)
Zawiera czas trwania ostatniego " przejÊcia " zadania szybkiego FAST (w ms).
%SW34
Maksymalny
czas " przejÊcia "
zadania szybkiego
FAST (1)
Zawiera czas trwania najd∏u˝szego " przejÊcia " zadania
szybkiego od ostatniego zimnego startu (w ms).
%SW35
Minimalny
czas " przejÊcia "
zadania szybkiego
FAST (1)
Zawiera czas trwania najkrótszego " przejÊcia " zadania
szybkiego od ostatniego zimnego startu (w ms).
%SW48
Liczba
zdarzeƒ
Zawiera liczb´ zdarzeƒ przetworzonych od ostatniego zimnego startu (w ms). S∏owo to mo˝e byç zapisywane przez
program lub przez terminal.
%SW49
%SW50
%SW51
%SW52
%SW53
Funkcja zegara
czasu rzeczywistego (2)
S∏owa systemowe zawierajàce bie˝àcà dat´ i czas w BCD:
%SW49 : dzieƒ tygodnia (1 - Poniedzia∏ek do 7 - Niedziela).
%SW50 : Sekundy (SS00)
%SW51 : Godziny i Minuty (GGMM)
%SW52 : Miesiàc i Dzieƒ (MMDD)
%SW53 : Rok (RRRR)
Je˝eli bit %S50 ma wartoÊç 0, to te s∏owa sà kontrolowane
przez system.
Je˝eli bit %S50 ma wartoÊç 1, to te s∏owa mogà byç
zapisywane przez program lub terminal.
%SW54
%SW55
%SW56
%SW57
%SW58
Funkcja zegara
czasu rzeczywistego (2)
S∏owa systemowe zawierajàce dat´ i czas ostatniej awarii
zasilania lub zatrzymania sterownika (w BCD):
%SW54 : Sekundy (00SS),
%SW55 : Godziny i Minuty (HHMM),
%SW56 : Miesiàc i Dzieƒ (MMDD),
%SW57 : Rok (RRRR).
%SW58 : bajt wa˝niejszy zawiera nazw´ dnia tygodnia
(1 oznacza Poniedzia∏ek, a 7 - Niedziel´).
(1)
Ten czas jest równy czasowi up∏ywajàcemu od momentu rozpocz´cia (odczytywanie stanów
wejÊç) do zakoƒczenia (aktualizacja stanów wyjÊç) cyklu " przejÊcia " . Czas ten obejmuje
przetwarzanie wyzwalane zdarzeniami oraz wykonywanie zadania szybkiego, jak równie˝
przetwarzanie ˝àdaƒ pochodzàcych z terminala.
(2)
Tylko dla sterowników TSX 37-21/22 i TSX 57.
___________________________________________________________________________
3/13
B
B
S∏owa
systemowe
Funkcja
Opis
%SW58
Kod
ostatniego
zatrzymania
Bajt mniej znaczàcy zawiera kod przyczyny ostatniego stopu.
1= zmiana z trybu RUN na STOP na ˝àdanie z terminala,
2= b∏àd programowy (przekroczenie dopuszczalnego czasu),
4= zanik zasilania,
5= b∏àd sprz´towy,
6= reakcja na instrukcj´ HALT.
%SW59
Korekta
bie˝àcej
daty
Zawiera dwa 8-bitowe zestawy parametrów bie˝àcej daty.
Operacja nastawiania zegara jest zawsze wykonywana na
zboczu rosnàcym bitu. Bit %S59 uprawnia to s∏owo.
Zwi´kszenie
Zmniejszenie
Parametr
bit 0
bit 8
Dzieƒ tygodnia
bit 1
bit 9
Sekundy
bit 2
bit 10
Minuty
bit 3
bit 11
Godziny
bit 4
bit 12
Dzieƒ
bit 5
bit 13
Miesiàc
bit 6
bit 14
Rok
bit 7
bit 15
Wiek
%SW66
(1)
Sterowanie
Zawiera kod Hexadecymalny/BCD wartoÊci, którà u˝ytkownik
wyÊwietlaczem chce wyÊwietliç na dodatkowym 7-segmentowym wyÊwietlaczu.
7-segment.
Pojawia si´ ona, gdy %S66 przyjmuje wartoÊç 1.
%SW67
%SW68
%SW69
Zarzàdzanie
trybem
" WORD "
%SW80
%SW81
%SW82
%SW83
%SW84
%SW85
%SW86
Zarzàdzanie
L-ba komunikatów wys∏anych przez system do portu terminala.
komunikatami L-ba komunikatów odebranych przez system od portu terminala.
i telegramami L-ba komunikatów wys∏anych przez system do karty PCMCIA.
L-ba komunikatów wys∏anych przez system od karty PCMCIA.
Liczba telegramów wys∏anych przez system.
Liczba telegramów odebranych przez system.
Liczba telegramów odrzuconych przez system.
(1)
Gdy %S69=1, to s∏owa te odblokowujà wyÊwietlacz (p∏yta czo∏owa sterownika) umo˝liwiajàc prac´ w trybie WORD:
• %SW67 : sterowanie i status trybu WORD,
• %SW68 : indeks maksymalny i bie˝àcy,
• %SW69 : nr pierwszego obiektu wyÊwietlanego na module.
Wi´cej informacji na temat tego trybu pracy mo˝na znaleêç
w cz´Êci F, w rozdziale 1.5 (instrukcji instalacji).
W aktualnej wersji nie jest wykorzystane.
___________________________________________________________________________
3/14
S∏owa i bity systemowe
3
B
S∏owa
systemowe
Funkcja
Opis
%SW96
Sterowanie/
diagnostyka
zapisywania
i odzysku
Funkcja zapisywania i odzyskiwania programu oraz %MW:
bit 0 : ˝àdanie zapisania. Ten bit jest aktywny na zboczu
rosnàcym. Jest kasowany do 0 przez system, po
uwzgl´dnieniu zbocza rosnàcego.
bit 1 : gdy ten bit ma wartoÊç 1, to oznacza, ˝e operacja zapisywania zosta∏a zakoƒczona. Jest kasowany do 0 przez
system, po uwzgl´dnieniu zbocza rosnàcego.
bit 2 : raport na temat operacji zapisu:
0 - & gt; brak b∏´dów podczas operacji,
1 - & gt; b∏´dy podczas operacji.
bity 3 do 5 : zarezerwowane.
bit 6 : informacja na temat kopii zapasowej programu (tak samo jak
%S96).
bit 7 : informacja o kopii zapasowej %MW (tak samo jak %S97).
bity 8 do 15 : ten bajt jest znaczàcy tylko wtedy, kiedy bit raportu
ma wartoÊç 1 (bit 2 = 1, b∏àd podczas zapisywania).
1 - & gt; liczba s∏ów %MW przeznaczonych do zapisania jest wi´ksza
od liczby zadeklarowanej,
2 - & gt; liczba s∏ów %MW przeznaczonych do zapisania jest wi´ksza
od 1000 lub mniejsza od 0,
3 - & gt; liczba s∏ów %MW przeznaczonych do odzyskania jest
wi´ksza od liczby zadeklarowanej,
4 - & gt; aplikacja w pami´ci wewn´trznej RAM jest wi´ksza ni˝ 15
Ks∏ów (nale˝y pami´taç o tym, ˝e %MW sà zawsze
zapisywane, gdy zapisywany jest program, do wewn´trznej
pami´ci typu Flash EPROM),
5 - & gt; operacja jest zabroniona podczas pracy w trybie RUN,
6 - & gt; zasobnik dla kopii zapasowej jest zainstalowany,
7 - & gt; b∏àd zapisu do pami´ci Flash EPROM.
%SW97
Liczba
%MW do
zapisania
Umo˝liwia definiowanie liczby s∏ów %MW przeznaczonych do
zapisania. Je˝eli s∏owo to mieÊci si´ w przedziale do1 do 1000,
to pierwszych 1000 s∏ów %MW jest zapisywanych w wewn´trznej
pami´ci Flash EPROM.
Kiedy to s∏owo ma wartoÊç 0, to przenoszony do wewn´trznej
pami´ci Flash EPROM jest tylko program znajdujàcy si´ w wewn´trznej pami´ci RAM.
Wszystkie zapisane s∏owa %MW sà wtedy kasowane.
Je˝eli wewn´trzna pami´ç Flash EPROM nie zawiera kopii
zapasowej s∏ów %MW, to podczas zimnego startu s∏owo to
inicjowane jest z wartoÊcià -1. W innym przypadku s∏owo to jest
inicjowane z wartoÊcià odpowiadajàcà liczbie zapisanych s∏ów.
%SW98
Adres wejÊcia
dyskretnego
Gdy bit %S98 = 1, to s∏owo to zawiera fizyczny adres (modu∏/
kana∏) wejÊcia dyskretnego zast´pujàcego przycisk modu∏u
TSX SAZ 10:
Wa˝niejszy
Mniej wa˝ny
Numer modu∏u
Numer kana∏u
___________________________________________________________________________
3/15
B
B
S∏owa
systemowe
Funkcja
%SW99
Adres wejÊcia
dyskretnego
Opis
Gdy bit %S99 = 1, to s∏owo to zawiera fizyczny adres (modu∏/
kana∏) wejÊcia dyskretnego zast´pujàcego przycisk z modu∏u
sterownika (znajdujàcy si´ w cz´Êci sygnalizacyjnej modu∏u):
Wa˝niejszy
Mniej wa˝ny
Numer modu∏u
Numer kana∏u
%SW108
Liczba bitów
Zawiera liczb´ bitów o wymuszonych stanach w aplikacji.
wymuszonych Normalnie - 0. Stan s∏owa jest uaktualniany przez system
w pami´ci.
%SW109
Licznik
wymuszenia
kana∏ów
analogowych
Zawiera liczb´ wymuszonych kana∏ów analogowych.
%SW116
B∏àd FIPIO
w zadaniu
Normalnie - 0. Ka˝dy bit tego s∏owa reprezentuje status wymiany
FIPIO dla zadania, w którym jest on testowany.
S∏owo to jest kasowane do 0 przez u˝ytkownika.
%SW 116 :
x0 =1 b∏àd wymiany jawnej (zmienna nie jest wymieniana
w sieci),
x1 =1 przekroczenie czasu przeznaczonego dla wymiany jawnej
(brak odpowiedzi po up∏ywie dopuszczalnego czasu),
x2 =1 max liczba jednoczesnych wymian jawnych,
x3 =1 niew∏aÊciwy status MPS (brak zawartoÊci zmiennej),
x4 =1 d∏ugoÊç odebranej zmiennej jest wi´ksza od
zadeklarowanej,
x5 = zarezerwowany (stan 0),
x6 =1 niew∏aÊciwy kod PDU (zmienna musi zostaç zignorowana),
musi nastàpiç inicjacja elementu
x7 =1 przekroczenie czasu: czas przeznaczony dla elementu do
wyprodukowania zmiennej zosta∏ przekroczony, co
oznacza brak w sieci zadeklarowanego urzàdzenia,
x8 =1 b∏àd kana∏u
x9 = zarezerwowany (stan 0),
x10 to x14 = zarezerwowane (stan 0),
x15 =1 b∏àd globalny (lub alternatywnie bity 3, 4, 6, 7, 8).
%SW124
Rodzaj
b∏´du
procesora
System zapisuje w tym s∏owie informacj´ o ostatnim b∏´dzie
w dzia∏aniu procesora (zimny start nie zmienia tych kodów):
16#30
: b∏àd systemu
16#60 to 64 : przepe∏nienie stosu
16#90
: przerwanie pracy systemu: nie wykryto znaku IT
16#53
: przekroczenie czasu podczas wymiany I/O.
___________________________________________________________________________
3/16
S∏owa i bity systemowe
3
B
S∏owa
systemowe
Funkcja
Opis
%SW125
Rodzaj
b∏´du
blokujàcego
System zapisuje w tym s∏owie informacj´ o rodzaju ostatniego
b∏´du blokujàcego:
16#DB0 : przekroczenie nastaw uk∏adu Êledzàcego,
16#2258 : wykonanie instrukcji HALT,
16#DEF8 : wykonanie instrukcji JMP (skok) w stosunku do
nie zdefiniowanej etykiety,
16#2XXX : wykonanie instrukcji CALL (wywo∏anie) nie
zdefiniowanej procedury,
16#0XXX : wykonanie nieznanej funkcji,
16#DEFE : diagram Grafcet bez zdefiniowanego ∏àcznika
êród∏owego lub docelowego,
16#DEFF : brak obiektów zmiennoprzecinkowych,
16#DEF0 : dzielenie przez 0, (1-- & gt; %S18)
16#DEF1 : b∏àd podczas transferu ∏aƒcucha znaków
(1-- & gt; %S15)
16#DEF2 : przekroczenie pojemnoÊci, (1-- & gt; %S18)
16#DEF3 : przekroczenie indeksu (1-- & gt; %S20)
%SW126
%SW127
Adres
instrukcji
powodujàcej
b∏àd
Adres instrukcji wywo∏ujàcej b∏àd powodujàcy zablokowanie
dzia∏ania aplikacji (b∏àd blokujàcy).
%SW126 zawiera adres wzgl´dny
%SW127 zawiera adres podstawowy
%SW128
do
%SW143
B∏àd
pod∏àczenia
do sieci FIPIO
Ka˝dy bit z grupy s∏ów reprezentuje urzàdzenie pod∏àczone do
sieci FIPIO.
Normalnie - 1. Je˝eli jeden z bitów przyjmuje wartoÊç 0, to
oznacza to b∏àd pod∏àczenia dla danego urzàdzenia
%SW128 reprezentuje adresy od 0 do 15
%SW128:X0 -- & gt; @0, %SW128:X1-- & gt; @1,.....,
%SW128:X15-- & gt; @15,
%SW129 reprezentuje adresy od 16 do 31
%SW129:X0 -- & gt; @16, %SW129:X1-- & gt; @17,.....,
%SW129:X15-- & gt; @31,
........
%SW143 reprezentuje adresy od 240 do 255
%SW143:X0 -- & gt; @240, %SW143:X1-- & gt; @241,.....,
%SW143:X15-- & gt; @255,
System kasuje bit do 1, kiedy przyczyna b∏´du ustaje.
Uwaga: @ = punkt pod∏àczenia
%SW155
Liczba operacji Liczba wykonanych operacji wymiany jawnej.
wymiany jawnej
___________________________________________________________________________
3/17
B
B
___________________________________________________________________________
3/18
Ró˝nice mi´dzy PL7-2/3 aRozdzia∏
PL7 Micro
44
4 Ró˝nice pomi´dzy PL7-2/3 a PL7 Micro/Junior
4.1
B
Wyszczególnienie
WartoÊci bezpoÊrednie Immediate values
Obiekty
PL7-2/3
PL7 Micro/Junior
Ca∏kowite, dziesi´tne
1234
1234
Ca∏kowite, dwójkowe
L'10011110'
2#10011110
Ca∏kowite, szesnastkowe
H'ABCD'
16#ABCD
Zmiennoprzecinkowe
-1.32e12 (PL7-3)
-1.32e12
¸aƒcuch znaków
M'aAbBcB'
'aAbBcC'
Li i = 0 do 999
%Li i = 0 do 999
Obiekty
PL7-2/3
PL7 Micro/Junior
Bit wejÊcia modu∏u wewn.
Indeksowany bit wejÊcia modu∏u wew.
Bit wejÊcia zdalnego
Indeksowany bit wejÊcia zdalnego
Ixy,i
Ixy,i (Wj) (PL7-3)
RIx,y,i (PL7-3)
RIx,y,i (Wj) (PL7-3)
%Ixy.i
%Ixy.i[%MWj]
%I\ & lt; Êcie˝ka & gt; \ & lt; mod & gt; . & lt; kana∏ & gt;
Bit wyjÊcia modu∏u wewn.
Indeksowany bit wyjÊcia modu∏u wew.
Bit wyjÊcia zdalnego
Indeksowany bit wyjÊcia zdalnego
Oxy,i
Oxy,i (Wj) (PL7-3)
ROx,y,i (PL7-3)
ROx,y,i (Wj) (PL7-3)
%Qxy.i
%Qxy.i[%MWj]
%Q\ & lt; Êcie˝ka & gt; \ & lt; mod & gt; . & lt; kana∏ & gt;
Bit wewn´trznego b∏´du I/O
• bit b∏´du modu∏u
• bit b∏´du kana∏u
Ixy,S / Oxy,S
%Ixy.MOD.ERR
%Ixy.i.ERR
Etykiety Labels
Etykiety
Bity
Bit b∏´du I/O zdalnego
• bit b∏´du modu∏u
• bit b∏´du kana∏u
• bit kana∏u wyjÊciowego
• kasowanie bitu kana∏u wyjÊciowego
(PL7-3)
RDx,y,i / ERRORx,y,i
TRIPx,y,i
RSTx,y,i
%I\ & lt; Êcie˝ka & gt; \ & lt; mod & gt; .MOD.ERR
%I\ & lt; Êcie˝ka & gt; \ & lt; mod & gt; . & lt; kana∏ & gt; .ERR
Bit wewn´trzny
Bi
%Mi
Indeksowany bit wewn´trzny
Bi(Wj) (PL7-3)
%Mi[%MWj]
Bit systemowy
SYi
%Si
Bit kroku
Xi
%Xi
Bit makrodefinicji
XMj (PL7-3)
%XMj
Bit kroku i makrodefinicji j
Xj,i (PL7-3)
%Xj.i
Bit kroku wejÊciowego makra j
Xj,I (PL7-3)
%Xj.IN
Bit kroku wyjÊciowego makra j
Xj,O (PL7-3)
%Xj.OUT
Bit j s∏owa wewn´trznego i
Wi,j
%MWi:Xj
Bit j indeksowanego s∏owa wewn. i
Wi(Wk),j(PL7-3)
%MWi[%MWk]:Xj
___________________________________________________________________________
4/1
B
B
Bit j s∏owa sta∏ego i
CWi,j
%KWi:Xj
Bit j indeks. s∏owa sta∏ego i
CWi(Wk),j (PL7-3)
%KWi[%MWk]:Xj
Bit j rejestru i
I/OWxy,i,j
%IW/%QWxy.i:Xj
Bit k s∏owa wspólnego j
stacji i
COMi,j,k
%NWi.j:Xk
COMXi,j,k (X = B, C, D) %NXWi.j:Xk
Bit j s∏owa systemowego i
SWi,j
%SWi:Xj
S∏owa
Obiekty
PL7-2/3
PL7 Micro/Junior
S∏owo wewn´trzne pojedyncze
Wi
%MWi
Pojedyncze, indeks. s∏owo wewn´trzne
Wi(Wj) (PL7-3)
%MWi[%MWj]
S∏owo wewn´trzne podwójne
DWi (PL7-3)
%MDi
Podwójne, indeks. s∏owo wewn´trzne
DWi(Wj) (PL7-3)
%MDi[%MWj]
Rzeczywiste s∏owo wewn´trzne
%MFi
Rzeczywiste, indeks. s∏owo wewn´trzne
%MFi[%MWj]
S∏owo sta∏e pojedyncze
CWi
%KWi
Pojedyncze, indeks. s∏owo sta∏e
CWi(Wj)
%KWi[%MWj]
Podwójne s∏owo sta∏e
CDWi (PL7-3)
%KDi
Podwójne, indeks. s∏owo sta∏e
CDWi(Wj) (PL7-3)
%KDi[%MWj]
Rzeczywiste s∏owo sta∏e
%KFi
Rzeczywiste, indeks. s∏owo sta∏e
%KFi[%MWj]
Pojedyncze s∏owo wejÊciowe rejestru
IWxy,i
Podwójne s∏owo wejÊciowe rejestru
Pojedyncze s∏owo wyjÊciowe rejestru
%IWxy.i
%IDxy.i
OWxy,i
Podwójne s∏owo wyjÊciowe rejestru
%QWxy.i
%QDxy.i
S∏owo wejÊciowe rejestru zdalnego
RIWx,y,i (PL7-3) %IW\ & lt; Êcie˝ka & gt; \ & lt; mod & gt; . & lt; kana∏ & gt;
S∏owo wyjÊciowe rejestru zdalnego
ROWx,y,i (PL7-3)%QW\ & lt; Êcie˝ka & gt; \ & lt; mod & gt; . & lt; kana∏ & gt;
S∏owo systemowe
SWi
%SWi
S∏owo wspólne j stacji i
COMi,j
COMXi,j (gdzie X = B, C, D)
%NW{i}j
%NW{[r.]i}j
r = nr sieci
S∏owo statusu zdalnego modu∏u dyskretnego
STATUSAx,y,i (PL7-3)
STATUSBx,y,i (PL7-3)
S∏owo statusu zdalnego kana∏u dyskretnego
STSx,y,i(PL7-3) %IW\ & lt; Êcie˝ka & gt; \ & lt; mod & gt; . & lt; kana∏ & gt; .ERR
Czas aktywnoÊci kroków Grafcet-u
Xi,V
%Xi.T
Czas aktywnoÊci kroku i makra j
Xj,i,V (PL7-3)
%Xj.i.T
___________________________________________________________________________
4/2
Ró˝nice mi´dzy PL7-2/3 a PL7 Micro
Czas aktywnoÊci kroku wejÊciowego
makra j
Xj,I,V (PL7-3)
%Xj.IN.T
Czas aktywnoÊci kroku wyjÊciowego
makra j
Xj,O,V (PL7-3)
4
B
%Xj.OUT.T
B
Bloki funkcyjne
Obiekty
PL7-2/3
PL7 Micro/Junior
Zegar Timer
• wartoÊç nastawiona (s∏owo)
• wartoÊç bie˝àca (s∏owo)
• sygnalizacja pracy zegara (bit)
• sygnalizacja koƒca pracy zegara (bit)
Ti
Ti,P
Ti,V
Ti,R
Ti,D
%Ti
%Ti.P
%Ti.V
%Ti.R
%Ti.D
Przerzutnik monostabilny Monostable
• wartoÊç nastawiona (s∏owo)
• wartoÊç bie˝àca (s∏owo)
• sygnalizacja pracy bloku (bit)
Mi
Mi,P
Mi,V
Mi,R
%MNi
%MNi.P
%MNi.V
%MNi.R
Licznik dwukierunkowy Up/down counter
• wartoÊç nastawiona (s∏owo)
• wartoÊç bie˝àca (s∏owo)
• przekroczenie limitu górnego (bit)
• osiàgni´cie wartoÊci nastawionej (bit)
• przekroczenie limitu dolnego (bit)
Ci
Ci,P
Ci,V
Ci,E
Ci,D
Ci,F
%Ci
%Ci.P
%Ci.V
%Ci.E
%Ci.D
%Ci.F
Rejestr Register
• wejÊcie (s∏owo)
• wyjÊcie (s∏owo)
• rejest pe∏ny (bit)
• rejestr pusty (bit)
Ri
Ri,I
Ri,O
Ri,F
Ri,E
%Ri
%Ri.I
%Ri.O
%Ri.F
%Ri.E
Tekst
TXTi
brak bloku tekst.
B´ben Drum controller
• numer aktywnego kroku (s∏owo)
• czas aktywnoÊci kroku bie˝àcego (s∏owo)
• 16 bitów komend (s∏owo)
• przetwarzanie ostatniego kroku (bit)
Di (PL7-2)
Di,S
Di,V
Di,Wj
Di,F
%DRi
%DRi.S
%DRi.V
%DRi.Wj
%DRi.F
Szybki licznik Fast Counter / Timer
• wartoÊç nastawiona (s∏owo)
• wartoÊç bie˝àca (s∏owo)
• zewn´trzne kasowanie (bit)
• osiàgni´cie wartoÊci nastawionej (bit)
• liczenie w toku (bit)
FC (PL7-2)
FC,P
FC,V
FC,E
FC,D
FC,F
-
Zegar czasu rzeczywistego Real-time clock
• typ " WEEK " (tydzieƒ) lub " YEAR " (rok)
wybór dnia MTWTFSS (s∏owo)
• poczàtek czasu aktywnoÊci (s∏owo)
• koniec czasu aktywnoÊci (s∏owo)
• wartoÊç bie˝àca & lt; limit (bit)
• wartoÊç bie˝àca = limit (bit)
• wartoÊç bie˝àca & gt; limit (bit)
H (PL7-2)
-
VD
BGN
END
& lt;
=
& gt;
-
___________________________________________________________________________
4/3
B
Tablice bitów i s∏ów
Obiekty
PL7-2/3
PL7 Micro/Junior
Strumienie bitów
• wewn´trzny ∏aƒcuch bitów
• ∏aƒcuch bitów wejÊciowych
• ∏aƒcuch bitów wyjÊciowych
• ∏aƒcuch bitów kroków Grafcet
• ∏aƒcuch bitów makrodefinicji
Bi[L]
Ixy,i[L] (PL7-3)
Oxy.i[L] (PL7-3)
Xi[L] (PL7-3)
XMi[L] (PL7-3)
%Mi:L
%Ixy.i:L
%Qxy.i:L
%Xi:L
¸aƒcuchy znaków
Tablice s∏ów
• tablica s∏ów wewn´trznych
• tablica s∏ów wewn´trznych indeks.
• tablica podwójnych s∏ów wewn´trznych
• tablica podwójnych, indeks. s∏ów wew.
• tablica s∏ów sta∏ych
• tablica s∏ów sta∏ych indeksowanych
• tablica podwójnych s∏ów sta∏ych
• tablica podwójnych s∏ów sta∏ych indeks.
• tablica obiektów rzeczywistych
• tablica obiektów rzeczywistych indeks.
• tablica rzeczywistych sta∏ych
• tablica rzeczywistych sta∏ych indeks.
• tablica zdalnych elementów wejÊciowych
• tablica zdalnych elementów wyjÊciowych
• tablica zdalnych elementów wej. indeks.
• tablica zdalnych elementów wyj. indeks.
%MBi:L
(1)
(gdzie i parzyste)
Wi[L]
Wi(Wj)[L]
DWi[L] (PL7-3)
DWi(Wj)[L] (PL7-3)
CWi[L]
CWi(Wj)[L]
CDWi[L] (PL7-3)
CDWi(Wj)[L] (PL7-3)
%MWi:L
%MWi[%MWj]:L
%MDi:L
%MDi[%MWj]:L
%KWi:L
%KWi[%MWj]:L
%KDi:L
%KDi[%MWj]:L
%MFi:L
%MFi[%MWj]:L
%KFi:L
%KFi[%MWj]:L
RIx,y,i[L] (PL7-3)
ROx,y,i[L] (PL7-3)
RIx,y,i(Wj)[L] (PL7-3)
ROx,y,i(Wj)[L] (PL7-3)
Dodatkowe bloki funkcyjne
Obiekty
PL7-3
Dodatkowy blok funkcyjny
& lt; OFB & gt; i
Element OFB
& lt; OFB & gt; i, & lt; element & gt;
Indeksowany element OFB
& lt; OFB & gt; i, & lt; element & gt; (Wj)
Element tablicy OFB
& lt; OFB & gt; i, & lt; element & gt; [L]
Indeksowany element tablicy OFB
PL7 Micro/Junior
& lt; OFB & gt; i, & lt; element & gt; (Wj)[L]
___________________________________________________________________________
4/4
Ró˝nice mi´dzy PL7-2/3 a PL7 Micro
4
B
Instrukcje
Obiekty
Operacje na bitach - instukcje
• Zaprzeczenie logiczne
• Koniunkcja AND
• Alternatywa OR
• Nierównowa˝noÊç XOR
• Zbocze rosnàce
• Zbocze opadajàce
• Nadanie wartoÊci 1
• Skasowanie do 0
PL7-2
AND
OR
XOR
PL7-3
PL7 Micro/Junior
NOT
•
+
NOT
AND
OR
XOR
RE
FE
SET
RESET
RE
FE
SET
RESET
Operacje na s∏owach i s∏owach podwójnych - instrukcje
• Dodawanie
+
+
• Odejmowanie
• Mno˝enie
*
*
• Dzielenie
/
/
• Porównywanie
& gt; , & gt; =, & lt; , & lt; =, =, & lt; & gt;
• Reszta z dzielenia
MOD
REM
• Pierwiastek kwadratowy
SQRT
• WartoÊç bezwzgl´dna
• Koniunkcja AND
AND
AND
• Alternatywa OR
OR
OR
• Nierównowa˝noÊç
XOR
XOR
• Logiczne dope∏nienie
CPL
CPL
• Zwi´kszanie
INC
• Zmniejszanie
DEC
• Logiczne przesuni´cie w lewo
SHL
• Logiczne przesuni´cie w prawo
SHR
• Okr´˝ne przesuni´cie w lewo
SLC
SLC
• Okr´˝ne przesuni´cie w prawo
SRC
SRC
+
*
/
& gt; , & gt; =, & lt; , & lt; =, =, & lt; & gt;
REM
SQRT
ABS
AND
OR
XOR
NOT
INC
DEC
SHL
SHR
ROL
ROR
Operacje zmiennoprzecinkowe (1)
• Dodawanie
• Odejmowanie
• Mno˝enie
• Dzielenie
• Pierwiastek kwadratowy
• WartoÊç bezwzgl´dna
• Sprawdzenie równoÊci
• Porównywanie & gt;
• Porównywanie & lt;
• Inne
+
*
/
SQRT
ABS
=
& gt;
& lt;
& gt; =, & lt; =, & lt; & gt;
ADDF
SUBF
MULF
DIVF
SQRTF
EQUF
SUPF
INFF
___________________________________________________________________________
4/5
B
B
Instrukcje (kontynuacja)
Obiekty
PL7-2
Operacje na ∏aƒcuchach bajtów
• Okr´˝ne przesuni´cie
PL7-3
PL7 Micro/Junior
SLCWORD
Konwersje:
• BCD - kod binarny
• Kod binarny - BCD
• ASCII - kod binarny
BCD
BIN
ATB
• Kod binarny - ASCII
BTA
• BCD - obiekt zmiennoprzecinkowy
• Obiekt zmiennoprzecinkowy - BCD
• ASCII - obiekt zmiennoprzecinkowy
• Obiekt zmiennoprzecinkowy - ASCII
BCD_TO_INT
INT_TO_BCD
STRING_TO_INT lub
STRING_TO_DINT
BTA
INT_TO_STRING lub
DINT_TO_STRING
GTB
GRAY_TO_INT
REAL_TO_INT lub
REAL_TO_DINT
INT_TO_REAL lub
DINT_TO_REAL
DTF
BCD_TO_REAL
FTD
REAL_TO_BCD
ATF
STRING_TO_REAL
FTA
REAL_TO_STRING
Operacje na tablicach
• Operacje arytmetyczne
• Operacje logiczne
• Dodawanie s∏ów w tablicy
• Wyszukiwanie 1-go s∏owa ró˝niàcego tablice
• Wyszukiwanie 1-go jednakowego s∏owa
+, -, *, /, REM
AND,OR,XO
+
EQUAL
SEARCH
+, -, *, /, REM
RAND,OR,XOR,NOT
SUM
EQUAL
FIND_EQU
JUMP Li
JUMP %Li
CALL SRi
SRi
RETURN
HALT
IF/THEN/ELSE/END_IF
WHILE/DO/END_WHILE
• Kod Gray'a - kod binarny
• Obiekt zmiennoprzecinkowy - ca∏kowity FTB
• Obiekt ca∏kowity - zmiennoprzecinkowy FTF
Instrukcje programowe
• Skok
• Wywo∏anie procedury
• Powrót z procedury
• Zatrzymanie aplikacji
• P´tla warunkowa
• P´tla iteracyjna
Przerwania
• Testowanie (odczytywanie stanów)
• Maskowanie
• Zdejmowanie maski
• Potwierdzenie
• Generowanie znaku IT dla modu∏u
Operacje wymiany jawnej I/O
• Odczytywanie stanów wejÊç dyskretnych
• Zapisywanie stanów wyjÊç dyskretnych WRITEBIT
• Odczytywanie rejestrów
• Zapisywanie rejestrów
• Odczytywanie s∏ów
• Zapisywanie s∏ów
DTB
BTD
ATB
RET
HALT
IF/THEN/ELSE
WHILE/DO
READINT
MASKINT
DMASKINT
ACKINT
SETIT
MASKEVT
UNMASKEVT
READBIT
READREG
WRITEREG
READEXT
WRITEEXT
___________________________________________________________________________
4/6
Ró˝nice mi´dzy PL7-2/3 a PL7 Micro
4
B
Instrukcje (kontynuacja)
Obiekty
PL7-3
PL7 Micro/Junior
Operacje na blokach funkcyjnych
• Nastawianie
• Uruchomienie
Uaktywnienie zadaƒ
• Kasowanie
• Dezaktywacja zadaƒ
• Zliczanie
• Odliczanie
• Zapisanie w rejestrze
• Odczytanie z rejestru
• Odebranie komunikatu
• Nadawanie komunikatu
• Nadanie/odbiór komunikatu
• Wykonanie OFB
• Odczytywanie telegramów
PRESET Ti / Ci
START Ti / Mi
START CTRLi
RESET Ci / Ri / TXTi
RESET CTRLi
UP Ci
DOWN Ci
PUT Ri
GET Ri
INPUT TXTi
OUTPUT TXTi
EXCHG TXTi
EXEC & lt; OFBi & gt;
READTLG
PRESET %Ti / %Ci
START %Ti / %MNi •
RESET %Ci / %Ri
UP %Ci
DOWN %Ci
PUT %Ri
GET %Ri
Separatory
Obiekty
PL7-2/3
PL7 Micro/Junior
Przypisywanie
- & gt;
:=
Lewy margines dla indeksowania
(
[
Prawy margines dla indeksowania
)
]
D∏ugoÊç tablicy
[length]
:length
___________________________________________________________________________
4/7
B
B
___________________________________________________________________________
4/8
Lista s∏ów zarezerwowanych 5
Rozdzia∏ 5
5
5.1
Lista s∏ów zarezerwowanych
S∏owa zarezerwowane
B
Wymienione poni˝ej s∏owa sà zarezerwowane i nie mogà byç u˝ywane jako symbole.
*_TO_* * = Litera
SRi
AUXi
EVTi
XMi
i = liczba
ABS
ACCEPT
ACOS
ACTION
ACTIVATE_PULSE
ACTIVE_TIME
ADD
ADDRESS
ADD_DT
ADD_TOD
ADR
AND
ANDF
ANDN
ANDR
AND_ARX
ANY
ANY_BIT
ANY_DATE
ANY_INT
ANY_NUM
ANY_REAL
ARRAY
A R_D
AR_DINT
AR_F
AR_INT
AR_R
AR_W
AR_X
ASIN
ASK
ASK_MSG
ASK_VALUE
ASSIGN_KEYS
AT
ATAN
AUX
BCD_TO_INT
BIT_D
BIT_W
BLK
BLOCK
BODY
BOOL
BOTTOM
BTI
BTR
BY
BYTE
C
CAL
CALC
CALCN
CALL
CALL_COIL
CANCEL
CASE
CD
CHART
CH_M
CLK
CLOSE
CLOSED_CONTACT
COIL
COMMAND
COMMENTS
COMP4
COMPCH
CONCAT
CONF
CONFIGURATION
CONSTANT
CONTROL_LEDS
COPY_BIT
COS
CTD
CTU
CTUD
CU
D
DATE
DATE_AND_TIME
DAT_FMT
DAY_OF_WEEK
DA_TYPE
DEACTIVATE_PULSE
DEC
DELETE
DELTA_D
DELTA_DT
DELTA_TOD
DINT
DINT_TO_REAL
DINT_TO_STRING
DISPLAY_ALRM
DISPLAY_GRP
DISPLAY_MSG
DIV
DMOVE
DO
DOWN
DR
DRUM
DS
DSHL_RBIT
DSHRZ_C
DSHR_RBIT
DSORT_ARD
DSORT_ARW
DT
DTS
DWORD
D_BIT
E
EBOOL
ELSE
ELSIF
EMPTY
EMPTY_LINE
END
ENDC
ENDCN
END_ACTION
END_BLK
END_BLOCK
END_CASE
END_COMMENTS
END_CONFIGURATION
END_FOR
END_FUNCTION
END_FUNCTION_BLOCK
END_IF
END_MACRO_STEP
END_PAGE
END_PHRASE
END_PROG
___________________________________________________________________________
5/1
B
B
END_PROGRAM
END_REPEAT
END_RESOURCE
END_RUNG
END_STEP
END_STRUCT
END_TRANSITION
END_TYPE
END_VAR
END_WHILE
EQ
EQUAL
EQUAL_ARR
ERR
EVT
EXCHG
EXCH_DATA
EXIT
EXP
EXP T
F
FALSE
FAST
FBD
FE
FIFO
FIND
FIND_EQ
FIND_EQD
FIND_EQDP
FIND_EQR
FIND_EQW
FIND_EQWP
FIND_GTD
FIND_GTR
FIND_GTW
FIND_LTD
FIND_LTR
FIND_LTW
FO R
FPULSOR
FROM
FTOF
FTON
FTP
FUNC
FUNCTION
FUNCTION_BLOCK
F_B
F_EDGE
F_TRIG
GE
GET
GET_MSG
GET_VALUE
GLOBAL_COMMENT
GR7
GRAY_TO_INT
GT
GTI
H
HALT
HALT_COIL
HASH_COIL
HW
H_COMPARE
H_LINK
I
IF
IL
IN
INC
INCJUMP
INDEX_CH
INFO
INITIAL_STEP
INIT_BUTTONS
INPUT
INPUT_CHAR
INSERT
INT
INTERVAL
INT_TO_BCD
INT_TO_REAL
INT_TO_STRING
ITB
ITS
JMP
JMPC
JMPCN
JUMP
JUMP_COIL
L
LAD
LANGAGE
LANGUAGE
LD
LDF
LDN
LDR
LE
LEFT
LEN
LENGTH_ARD
LENGTH_ARR
LENGTH_ARW
LENGTH_ARX
LIFO
LIMIT
LINT
LIST
LIT
LN
LOCATION
LOG
LREAL
LT
LW
LWORD
M
MACRO_STEP
MAIN
MASKEVT
MAST
MAX
MAX_ARD
MAX_ARR
MAX_ARW
MAX_PAGES
MAX_STEP
MCR
MCR_COIL
MCS
MCS_COIL
MID
MIN
MIN_ARD
MIN_ARR
MIN_ARW
MOD
MONO
MOVE
MPP
MPS
MRD
MS
MUL
MUX
M_CH
M_MACRO_STEP
N
N1
NAME
NB_ACTIVE_STEPS
NB_ACTIVE_TIME
___________________________________________________________________________
5/2
Lista s∏ów zarezerwowanych
5
B
NB_BLOCKS
NB_COMMON_WORDS
NB_CONSTANT_WORDS
NB_CPT
NB_DRUM
NB_INTERNAL_BITS
NB_INTERNAL_WORDS
NB_MACRO_STEPS
NB_MONO
NB_PAGES
NB_REG
NB_TIMER
NB_TM
NB_TRANSITIONS
NE
NIL
NO
NON_STORED
NOP
NOT
NOT_ARX
NOT_COIL
NOT_READABLE
NO_GR7
NO_PERIOD
N_CONTACT
O
OCCUR
OCCUR_ARD
OCCUR_ARR
OCCUR_ARW
OF
ON
OPEN
OPEN_CONTACT
OPERATE
OR
O RF
ORN
ORR
OR_ARX
OTHERS
OUT
OUTIN_CHAR
OUTPUT
OUT_BLK
P
P0
P1
PAGE
PAGE_COMMENT
PANEL_CMD
PERIOD
PHRASE
PHRASE_COMMENT
PID
PID_MMI
PLC
POST
PRESET
PRINT
PRINT_CHAR
PRIO0
PRIO1
PRIORITY
PRL
PROG
PROGRAM
PROG_LANGAGE
PROG_LANGUAGE
PT
PTC
PUT
PV
PWM
P_CONTACT
Q
QUERY
R
R1
RCV_TLG
RE
READ
READ_EVT_UTW
READ_ONLY
READ_PARAM
READ_STS
READ_VAR
READ_WRITE
REAL
REAL_TO_DINT
REAL_TO_INT
REAL_TO_STRING
REG
REM
REPEAT
REPLACE
RE Q
RESET
RESET_COIL
RESOURCE
RESTORE_PARAM
RET
RETAIN
RETC
RETCN
RETURN
RET_COIL
RIGHT
ROL
ROLD
ROLW
ROL_ARD
ROL_ARR
ROL_ARW
ROL_DWORD
ROL_WORD
ROR
ROR_ARD
ROR_ARR
ROR_ARW
ROR_DWORD
ROR_WORD
RRTC
RS
RTB
RTC
RTS
RUNG
R_EDGE
R_TRIG
S
S1
SAVE
SAVE_PARAM
SCHEDULE
SD
SEARCH
SECTION
SEL
SEMA
SEND
SENDER
SEND_ALARM
SEND_MBX_ALARM
SEND_MBX_MSG
SEND_MSG
SEND_REQ
SEND_TLG
SERVO
SET
SET_COIL
SFC
SHIFT
___________________________________________________________________________
5/3
B
B
SHL
SHOW_ALARM
SHOW_MSG
SHOW_PAGE
SHR
SHRZ
SIN
SINGLE
SINT
SL
SLCWORD
SMOVE
SOFT_CONFIGURATION
SORT
SORT_ARD
SORT_ARW
SQRT
SR
ST
STANDARD
START
STD
STEP
STI
STN
STOP
STR
STRING
STRING_TO_DINT
STRING_TO_INT
STRING_TO_REAL
STRUCT
SUB
SUB_DT
SUB_TOD
SUM
SU_TYPE
SWAP
S_T_AND_LINK
S_T_OR_LINK
T
TAN
TASK
TASKS
THEN
TIME
TIMER
TIME_OF_DAY
TM
TMAX
TMOVE
TO
TOD
TOF
TOFF
TON
TOP
TP
TRANSITION
TRANS_TIME
TRUE
TRUNC
TYP E
TYPES
T_S_AND_LINK
T_S_OR_LINK
U
UDINT
UINT
ULINT
UNMASKEVT
UNTIL
UP
USINT
USORT_ARD
USORT_ARW
UTIN_CHAR
VAR
VAR_ACCESS
VAR_EXTERNAL
VAR_GLOBAL
VAR_INPUT
VAR_IN_OUT
VAR_OUTPUT
VERSION
V_COMPARE
V_LINK
W
WHILE
WITH
WORD
WRITE
WRITE_CMD
WRITE_PARAM
WRITE_VAR
W RTC
WSHL_RBIT
WSHRZ_C
WSHR_RBIT
W_BIT
XM
XM_MONO
XM_MULTI
XOR
XORF
XORN
XORR
XOR_ARX
YES
___________________________________________________________________________
5/4
Rozdzia∏ 6
ZgodnoÊç z normà IEC 1131-1 6
6 ZgodnoÊç z normà IEC 1131-1
6.1
B
Wprowadzenie
Norma IEC 1131-3 zatytu∏owana " PLCs - Part 3 : Programming languages " (Sterowniki
programowalne - Cz´Êç 3: J´zyki programowania) definiuje sk∏adni´ oraz znaczenie
elementów programowych s∏u˝àcych do programowania sterowników.
B
Standard ten definiuje 2 j´zyki tekstowe: IL (Instruction List) oraz ST (Structured Text),
2 j´zyki graficzne: LD (Ladder Diagram) oraz FBD (Function Block Diagram) oraz map´
graficznà SFC (Sequential Function Chart), które s∏u˝à do definiowania struktury
wewn´trznej organizacji programowanej sekwencji.
J´zyk PL7 umo˝liwia programowanie sterowników zgodnie z normà IEC: w jego sk∏ad
wchodzà elementy j´zyków opisanych w normie oraz funkcje rozszerzajàce jego
mo˝liwoÊci, równie˝ spe∏niajàce warunki okreÊlone przez norm´.
Norma IEC 1131-3 nie definiuje zasad rzàdzàcych interakcjami mi´dzy elementami
oprogramowania zastosowanymi przez producenta w celu spe∏nienia wymagaƒ normy.
Norma pozostawia w ten sposób wi´kszà dowolnoÊç w zakresie dostosowywania
oprogramowania do wymagaƒ u˝ytkownika.
W tabeli poni˝ej, zestawiono elementy standardowe zastosowane w oprogramowaniu
PL7, informacj´ o zastosowaniach specjalnych oraz o wykrytych b∏´dach.
6.1.1 Tabela zgodnoÊci
Ten system spe∏nia wymagania normy IEC 1131-3, pod warunkiem zachowania
nast´pujàcych obostrzeƒ dotyczàcych j´zyka (charakterystyki):
Elementy wspólne
Nr tablicy
1
Nr charakterystyki
1
Opis
Wymagania dotyczàce znaków:
patrz paragraf 2.1.1 normy 1131-3
1
2
Ma∏e znaki
1
3a
Znak: " numer " (#)
___________________________________________________________________________
6/1
B
1
4a
Znak " dolara " ($)
1
5a
Kreska pionowa (|)
1
6a
Separatory indeksu dolnego: nawiasy " [] "
2
1
Du˝e litery i cyfry
2
2
Du˝e i ma∏e litery, cyfry, podkreÊlenia
3
1
Komentarze
4
1
Litera∏y ca∏kowite (Uwaga 1)
4
2
Litera∏y rzeczywiste (Uwaga 1)
4
3
Litera∏y rzeczywiste z wyk∏adnikiem
4
4
Litera∏y dwójkowe (Uwaga 1)
4
6
Litera∏y szesnastkowe (Uwaga 1)
4
7
Boolowskie Zero i Jeden
4
8
Boolowska PRAWDA i FA¸SZ
5
1
Parametry literowych ∏aƒcuchów znaków
6
2
$$ Znak " dolara "
6
3
$’ Pojedynczy cudzys∏ów
6
4
$L lub $l Przesuni´cie o jednà lini´ LF
6
5
$N lub $n Nowa linia
6
6
$P lub $p Przesuni´cie do nast´pnej strony FF
6
7
$R lub $r Powrót karetki CR
___________________________________________________________________________
6/2
ZgodnoÊç z normà IEC 1131-1
6
B
6
8
$T lub $t Tabulator Tab
7
1a
Ciàg litera∏ów z przedrostkiem t# (Uwaga 2)
10
1
WartoÊç logiczna BOOL -1 bit-
10
10
WartoÊç rzeczywista REAL -32 bity-
10
12
Czas TIME -32 bity- (Uwaga 3)
10
13
Data DATE -32 bity- (Uwaga 3)
10
14
Pora dnia TIME_OF_DAY -32 bity- (Uwaga 3)
10
15
Data i czas DATE_AND_TIME -64 bity- (Uwaga 3)
10
16
¸aƒcuch STRING
10
17
Bajt BYTE -8 bitów-
10
18
S∏owo WORD -16 bitów-
10
19
S∏owo podwójne DWORD -32 bity-
15
1
I przedrostek dla wejÊç
2
Q przedrostek dla wyjÊç
3
M przedrostek dla pami´ci
4
X - przedrostek, pojedynczy bit
5
Brak przedrostka - pojedynczy bit
6
B - przedrostek, bajt (8 bitów)
7
W - przedrostek, s∏owo (16 bitów)
8
D - przedrostek, s∏owo podwójne (32 bity)
15
___________________________________________________________________________
6/3
B
B
16
VAR
VAR_INPUT
VAR_OUTPUT
VAR_IN_OUT
VAR_EXTERNAL
VAR_GLOBAL
CONSTANT
AT
S∏owa kluczowe (Uwaga 4)
17
2
Deklaracja (adres) bezpoÊrednio reprezentowanych,
zmiennych nieulotnych (Uwaga 4)
17
3
Deklaracja (symbol lub adres) slotów dla zmiennych
symbolicznych (Uwaga 4)
17
5
Automatyczne przypisywanie pami´ci zmiennym
symbolicznym (zmienne bloków funkcyjnych) (Uwaga4)
18
2
Inicjacjacja (adres) bezpoÊrednio reprezentowanych,
zmiennych nieulotnych (Uwaga 4)
18
3
Przypisywanie slotów i wartoÊci poczàtkowych
zmiennym symbolicznym (symbol jako adres)
(Uwaga 4)
18
5
Inicjacja zmiennych symbolicznych (zmienne bloków
funkcyjnych) (Uwaga 4)
21
1
Funkcje PL7:
ABS, EQUAL, ROL, ROR, SHL, SHR, SQRT, SUM
21
2
Ogólnie rzecz ujmujàc, funkcje j´zyka PL7nale˝à do
tej kategorii
22
1
Funkcje zwiàzane z konwersjà:
DINT_TO_STRING, INT_TO_STRING,
STRING_TO_DINT, STRING_TO_INT,
DATE_TO_STRING, DT_TO_STRING,
TIME_TO_STRING, TOD_TO_STRING,
REAL_TO_STRING, STRING_TO_REAL,
REAL_TO_INT, REAL_TO_DINT,
INT_TO_REAL, DINT_TO_REAL (Uwaga 5)
___________________________________________________________________________
6/4
ZgodnoÊç z normà IEC 1131-1
6
B
22
2
Funkcja TRUNC: obcinanie do 0 typu REAL
22
3
Konwersja BCD_TO_INT (Uwaga 6)
22
4
Konwersja INT_TO_BCD (Uwaga 6)
23
1
Funkcja ABS: wartoÊç bezwzgl´dna
23
2
Funkcja SQRT: pierwiastek kwadratowy
23
3
Funkcja LN: logarytm naturalny
23
4
Funkcja LOG: logarytm dziesi´tny
23
5
Funkcja EXP: funkcja z wyk∏adnikiem naturalnym
23
6
Funkcja SIN: sinus (w radianach)
23
7
Funkcja COS: kosinus (w radianach)
23
8
Funkcja TAN: tangens (w radianach)
23
9
Funkcja ASIN: arc sin
23
10
Funkcja ACOS: arc cos
23
11
Funkcja ATAN: arc tan
25
1
Funkcja SHL: przesuni´cie w lewo
25
2
Funkcja SHR: przesuni´cie w prawo
25
3
Funkcja ROR: okr´˝ne przesuni´cie w prawo
25
4
Funkcja ROL: okr´˝ne przesuni´cie w lewo
29
1
Funkcja LEN: d∏ugoÊç ∏aƒcucha
29
2
Funkcja LEFT: n znaków od lewej strony
29
3
Funkcja RIGHT: n znaków od prawej strony
29
4
Funkcja MID: n znaków od podanej pozycji
29
5
Funkcja CONCAT: ∏àczenie (Uwaga 7)
29
6
Funkcja INSERT: wstawianie ∏aƒcucha do innego
29
7
Funkcja DELETE: kasowanie znaków
___________________________________________________________________________
6/5
B
B
29
8
Funkcja REPLACE: zast´powanie znaków innymi
29
9
Funkcja FIND: szukanie ciàgu znaków w ∏aƒcuchu
32
Input read
Input write
Out read
Out write
Odczyt wejÊç (Uwaga 8)
Zapis wejÊç
Odczyt wyjÊç
Zapis wyjÊç
33
1
Kwalifikacja do zapami´tania RETAIN zmiennych
wewn´trznych bloków funkc. (Uwaga 9) (Uwaga 4)
33
2
Kwalifikacja do zapami´tania RETAIN wyjÊç
bloków funkcyjnych (Uwaga 9) (Uwaga 4)
33
4a
Definiowanie I/O bloku funkcyjnego
(j´zyk ST) (Uwaga 4)
37
1
Generowanie impulsu: TP (Uwaga 10)
37
2a
Opóênienie typu On-delay: TON (Uwaga 10)
37
3a
Opóênienie Off-delay: TOF (Uwaga 10)
38
diagramy
czasowe
TP, TON, TOF
39
19
U˝ycie zmiennych bezpoÊrednio reprezentowanych
(adres)
40
1
Krok, forma graficzna
Uwaga: Numer kroku zast´pujàcy identyfikator
kroku
40
2
Krok, format teksowy stosowany tylko w formie
êród∏owej Grafcet-u
41
1
Warunek przejÊcia w j´zyku ST
41
2
Warunek przejÊcia w j´zyku LD
42
2l
Deklaracja akcji w j´zyku LD
43
1
Blok akcji
43
2
Po∏àczone bloki akcji
___________________________________________________________________________
6/6
ZgodnoÊç z normà IEC 1131-1
6
B
45
2
Kwalifikator akcji N (nie zapisany)
45
11
Kwalifikator akcji P1 (zbocze rosnàce impulsu)
45
12
Kwalifikator akcji P0 (zbocze opadajàce impulsu)
46
1
Pojedyncza sekwencja krok/bramka
46
2c
Poczàtek alternatywy: u˝ytkownik musi tak definiowaç warunki ˝eby by∏y wzajemnie si´ wykluczajàce
46
3
Koniec alternatywy
46
4
Poczàtek koniunkcji, koniec koniunkcji
46
5c
Skok sekwencji na poczàtek alternatywy
46
6c
P´tla: powrót do kroku poprzedniego
46
7
Strza∏ki
Uwaga: Strza∏ki mogà byç skierowane w dó∏ lub w gór´
48
40
41
42
43
45
46
57
J´zyk Grafcet spe∏nia warunki minimalne zgodnoÊci
z 1131-3 SFC
49
3
Konstrukcja RESOURCE...ON...END_RESOURCE
49
5a
Konstr. RESOURCE w zadaniu okresowym TASK
49
6a
Definicja programu PROGRAM wraz z przypisaniem
PROGRAM-to-TASK
49
7
Definiowanie zmiennych bezpoÊrednio
reprezentowanych w VAR_GLOBAL
50
5b
Uszeregowanie podzielne modelu wielozadaniowego
Prezentacja graficzna
___________________________________________________________________________
6/7
B
B
Uwaga 1:PodkreÊlanie znaków (_) pomi´dzy cyframi litera∏u nie jest dopuszczalne.
Uwaga 2: Te litera∏y sà tylko widoczne w aplikacji êród∏owej, pokazujà one czasy
skonfigurowanych zadaƒ.
Uwaga 3: Dane tego rodzaju nie sà jeszcze wykorzystywane w sposób widoczny dla
u˝ytkownika. Ta tablica definiuje jednak˝e wykorzystanie pami´ci dla ich wewn´trznej
reprezentacji.
Uwaga 4: Te s∏owa kluczowe u˝ywane sà tylko w kodach êród∏owych generowanych
przez programy do konwersji PL7 i PL7-2 oraz PL7-3.
Uwaga 5: Efekt ograniczonych mo˝liwoÊci konwersji:
DINT_TO_STRING: Je˝eli ∏aƒcuch docelowy mieÊci mniej ni˝ 13 znaków, to wystepuje
zjawisko obci´cia i zmiana wartoÊci %S15.
INT_TO_STRING: Je˝eli ∏aƒcuch docelowy mieÊci mniej ni˝ 7 znaków, to wystepuje
zjawisko obci´cia i zmiana wartoÊci %S15.
STRING_TO_DINT et STRING_TO_INT: Je˝eli ∏aƒcuch nie mo˝e byc poddany konwersji
na wartoÊç ca∏kowità, to wynik jest nieokreÊlony i zmienia si´ stan bitu %S18.
DATE_TO_STRING: Je˝eli ∏aƒcuch docelowy mieÊci mniej ni˝ 11 znaków, to wystepuje
zjawisko obci´cia i zmiana wartoÊci %S15.
DT_TO_STRING: Je˝eli ∏aƒcuch docelowy mieÊci mniej ni˝ 20 znaków, to wyst´puje
zjawisko obci´cia i zmiana wartoÊci %S15.
TIME_TO_STRING: Je˝eli ∏aƒcuch docelowy mieÊci mniej ni˝ 15 znaków, to wyst´puje
zjawisko obci´cia i zmiana wartoÊci %S15.
TOD_TO_STRING: Je˝eli ∏aƒcuch docelowy mieÊci mniej ni˝ 9 znaków, to wyst´puje
zjawisko obci´cia i zmiana wartoÊci %S15.
REAL_TO_STRING: Je˝eli ∏aƒcuch docelowy mieÊci mniej ni˝ 15 znaków, to wyst´puje
zjawisko obci´cia i zmiana wartoÊci %S15.
STRING_TO_REAL: Je˝eli ∏aƒcuch nie mo˝e byç poddany konwersji na wartoÊç
rzeczywistà, to wynikiem jest «1.#NAN» (16#FFC0_0000), a bit %S18 zmienia stan.
REAL_TO_INT: Je˝eli wartoÊç rzeczywista po konwersji nie mieÊci si´ w zakresie od [32768, +32767], to wynikiem jest -32768, a %S18 i %SW17:X0 zmieniajà stan.
REAL_TO_DINT: Je˝eli wartoÊç rzeczywista po konwersji nie mieÊci si´ w zakresie od
[-2147483648, +2147483647], to wynikiem jest -2147483648, a %S18 i %SW17:X0
zmieniajà stan.
INT_TO_REAL: Konwersja jest zawsze mo˝liwa.
DINT_TO_REAL: Konwersja jest zawsze mo˝liwa.
Uwaga 6: Poniewa˝ typ INT nie jest formalnie dopuszczony, choç jest stosowany, te
funkcje umo˝liwiajà zmian´ formatu WORD.
Uwaga 7: Funkcja CONCAT jest ograniczona do ∏àczenia 2 ∏aƒcuchów znaków.
Uwaga 8: Ten paragraf odnosi si´ do predefiniowanych bloków funkcyjnych PL7.
Uwaga 9: Kwalifikator RETAIN jest ukryty.
Uwaga 10: Zegary TP, TON, TOF pracujà zgodnie z diagramem z tablicy 38 ale majà
inny interfejs I/O w porównaniu z normà 1131-3.
___________________________________________________________________________
6/8
ZgodnoÊç z normà IEC 1131-1
6
B
Elementy j´zyka IL (List)
Nr tabeli
Nr ch-ki
Opis
51
Pola
Etykieta, operator, argument, komentarz
instrukcji
52
1
LD
52
2
ST
52
3
SiR
52
4
AND
6
OR
7
XOR
52
18
JMP
52
20
RET
52
21
)
53
3
Wykorzystanie operatorów wejÊciowych
dla uruchamiania bloków funkcyjnych w IL
54
11
IN (Uwaga 11)
54
12
IN (Uwaga 11)
54
13
IN (Uwaga 11)
Uwaga 11: Operator PT nie jest stosowany.
Elementy j´zyka ST (Uwaga 12)
Nr tabeli
Nr ch-ki
Opis
55
1
W nawiasie
55
2
Obliczanie funkcji
55
4
- Negacja
55
5
Logiczne dope∏nienie NOT
___________________________________________________________________________
6/9
B
B
55
6
* Mno˝enie
7
/ Dzielenie
9
+ Dodawanie
10
- Odejmowanie
55
11
& lt; , & gt; , & lt; =, & gt; = Porównywanie
55
12
= RównoÊç
55
13
& lt; & gt; NierównoÊç
55
15
Koniunkcja AND
55
16
Nierównowa˝noÊç XOR
55
17
Alternatywa OR
56
1
:= Przypisanie
56
3
Powrót RETURN
56
4
P´tla IF " if... then... elsif... then... else...
end_if "
56
6
P´tla FOR " for... to... do... end_for " (Uwaga 13)
56
7
P´tla WHILE " while... do... end_while "
56
8
P´tla REPEAT " repeat ... until... end_repeat "
56
9
WyjÊcie z p´tli EXIT
55
Uwaga 12: Ten j´zyk jest stosowany w przypadku modu∏ów ST. Podzbiór
j´zyka ST jest równie˝ stosowany w blokach operacyjnych OPERATE i porównywania COMPARE programowanych w j´zykach IL oraz LD.
Uwaga 13: Zastosowanie p´tli FOR z ukrytym krokiem równym 1.
___________________________________________________________________________
6/10
ZgodnoÊç z normà IEC 1131-1
6
B
Wspólne lementy graficzne
Nr tabeli
Nr ch-stytki
Opis
57
2
Graficzne linie pionowe
57
4
Graficzne linie poziome
57
6
Garficzne ∏àczniki pionowe i poziome
57
8
Przeci´cia linii bez po∏àczeƒ
57
10
W´z∏y i za∏amania
57
12
Bloki z ∏àcznikami graficznymi
58
2
Bezwarunkowy skok: j´zyk LD
58
4
Skok warunkowy: j´zyk LD
58
5
Powrót warunkowy: j´zyk LD
58
8
Powrót bezwarunkowy: j´zyk LD
Elementy j´zyka LD
Nr tabeli
Nr ch-styki
Opis
59
1
Lewa linia bazowa (linia zasilajàca)
59
2
Prawa linia bazowa (linia zasilajàca)
60
1
¸àcznik poziomy
60
2
¸àcznik pionowy
61
1
Styk zwierny
61
3
Styk rozwierny
61
5
Bramka pozytywna
61
7
Bramka negatywna
62
1
Sprz´˝enie (cewka)proste
62
2
Sprz´˝enie odwrotne
62
3
Za∏àczenie przerzutnika SET
62
4
Wy∏àczenie przerzutnika RESET
___________________________________________________________________________
6/11
B
B
Parametry zale˝ne od rodzaju zastosowania
Parametr
Opis
Procedura przetwarzania b∏´dów
B∏´dy sà zapisywane w s∏owach i bitach systemowych.
Znaki narodowe
Á˙ÃÄÅÆÇÈÉ ËÌÍÎÏÐ πÒÓÔ
ÕÖØÙÚÛÜÝÞ∫áâãäˆæ˜¯é˘ëìí
îïðñòóôõöøùúûÿþßÿ
#, $, I
Maksymalna d∏ugoÊç identyfikatorów
32
Maksymalna d∏ugoÊç komentarza
222
Zakresy czasowe
(Uwaga 14)
Zakresy wartoÊci zmiennych typu TIME
(Uwaga 14)
Dok∏adnoÊç odwzorowania sekund
w zmiennych typu TIME_OF_DAY
oraz DATE_AND_TIME
(Uwaga 15)
Maksymalna liczba indeksów siatki
1 (Uwaga 16)
Maksymalna liczba siatek
Zale˝nie od indeksowanego
obszaru (Uwaga 16)
Dom. d∏ugoÊç max. zmiennych STRING
Nie wykorzystane
Maksymalna, dopuszczalna d∏ugoÊç
zmiennych STRING
255
Maksymalna liczba poziomów
3
Mapowanie logiczne lub fizyczne
Mapowanie logiczne
Maksymalny zakres indeksów
Zale˝nie od indeksowanego
obszaru (Uwaga 16)
___________________________________________________________________________
6/12
ZgodnoÊç z normà IEC 1131-1
6
B
Inicjacja wejÊç systemowych
Zmienne sà inicjowane przez
system:
- z wartoÊciami poczàtkowymi
o ile u˝ytkownik je okreÊli∏
- z wartoÊcià 0, jeÊli nie.
Wp∏yw rodzaju zastosowanej konwersji
na dok∏adnoÊç
Patrz tabela 22, pozycja 1
Maksymalna liczba typów bloków
i zast´pczych bloków funkcjonalnych
Maksymalna liczba nie jest
okreÊlona (ograniczenia wynikajà z wielkoÊci aplikacji)
Ograniczenia odnoÊnie rozmiarów programu
Maksymalny rozmiar kodu
programu = 64 KB
Dok∏adnoÊç odmierzania czasu zwiàzanego
z krokiem
100ms
Maksymalna liczba kroków na diagramie
96 dla 3710 PLC
Grafcet
128 dla 3720 PLC
1024 dla 57xx V3.0 PLC
Maksymalna liczba bramek na diagramie
i dla jednego kroku
1024 bramek na diagram
11 bramek na 1 krok
Mechanizm sterowania akcjà
Kwalifikatory P0, P1 N1
Maksymalna liczba bloków akcji na krok
Mo˝na wykonaç 3 akcje: przy
aktywacji (P1), ciàg∏a (N1) oraz
przy dezaktywacji (P0)
Graficzna prezentacja statusu kroku
Krok aktywny wyÊwietlany jest
w inwersji
Czas przejscia bramki
(dezaktywacja kroków poprzedzajàcych
i uaktywnienie kroków nast´pnych)
Czas przejÊcia zmienia si´ ale
nigdy nie jest równy zeru.
___________________________________________________________________________
6/13
B
B
Zasi´g rozdzielenia Êcie˝ki i jej zbiegu
Ograniczenie narzuca siatka
Lista sterowników, które mo˝na
programowaç przy pomocy j´zyka PL7
TSX 3710, 3720,
TSX 5710, 5720, 5725, 5730,
5735, 5740, 57 45
PMX 5710, 5720, 5735, 5745,
PCX 5710, 5735
Maksymalna liczba zadaƒ
1 zadanie okresowe lub
cykliczne
1 zadanie okresowe
8 zadaƒ wyzwalanych
dla 37 10
16 zadaƒ wyzwalanych
dla 37 20
32 zadania wyzwalane
dla 57 10
64 zadania wyzwalane
dla 57 20/30
Zakres przerwy mi´dzy zadaniami
od 1 ms do 255 ms
Uszeregowanie podzielne, niepodzielne
Uszeregowanie podzielne
Maksymalna d∏ugoÊç wyra˝enia
Zmienna
Cz´Êciowe oszacowywanie wyra˝eƒ
logicznych
Nie
Maksymalna d∏ugoÊç struktur sterujàcych
w j´zyku ST
Zmienna
WartoÊç zmiennej sterujàcej po
wykonaniu p´tli FOR
WartoÊç zmiennej sterujàcej
równa si´ wartoÊci limitu + 1
(poniewa˝ krok jest 1)
Reprezentacja graficzna/semi-graficzna
Reprezentacja graficzna
Restrykcje odnoÊnie topologii sieci
Sieç LD mo˝e zajmowaç
maksymalnie 16 kolumn i 7 linii
___________________________________________________________________________
6/14
ZgodnoÊç z normà IEC 1131-1
6
B
Uwaga 14: Dane tego typu nie sà jeszcze stosowane w sposób widoczny dla
u˝ytkownika. Ta tabela definiuje jednak zakresy ich wartoÊci zgodnie z formatem
IEC 1131-3.
TIME: od T#0 do T#429496729.5s
TIME_OF_DAY: od TOD#0:0:0 do TOD#23:59:59
DATE_AND_TIME: od DT#1990-01-01:0:0:0 do DT#2099-12-31:23:59:59
DATE: od D#1990-01-01 do D#2099-12-31
Uwaga 15: Zaokràglanie odbywa si´ w nast´pujàcy sposób: wartoÊci od x.0 s
do x.4 s sà zaokràglane do x s, a od x.5 s do x.9 s do wartoÊci x+1 s.
Uwaga 16: Istnieje mo˝liwoÊç indeksowania wszystkich typów danych
reprezentujàcych bezpoÊrednio zmienne dodatnie lub ujemne w zakresie
ograniczeƒ dotyczàcych ich maksymalnych wartoÊci zdefiniowanych w konfiguracji.
___________________________________________________________________________
6/15
B
B
B∏´dy
Opis
B∏´dy konwersji
Sygnalizacja w czasie wykonywania za pomocà bitu system.patrz tabela Wspólnych elementów: tabela 22, pozycja 1
Numeryczna wartoÊç wyniku przekracza
limit dla danych tego typu
Sygnalizacja w czasie wykonywania (bit systemowy %S18)
Brak podanej pozycji znaku
Sygnalizacja w czasie wykonywania (bit systemowy %S18)
Wynik przekracza dopuszczalnà d∏ugoÊç
∏aƒcucha
Sygnalizacja w czasie wykonywania (bit systemowy %S15)
Przekroczenie czasu podczas przejÊcia
bramki
Sygn. podczas programowania
Program nie osiàgnà∏ linii koƒcowej
Sygnalizacja w czasie wykonywania (bit systemowy %S19)
Konflikty w planowaniu innych zadaƒ
Sygn. podczas konfigurowania
Dzielenie przez 0
Sygn. podczas programowania
(jeÊli to jest mo˝liwe) lub
w czasie wykonywania (bit
systemowy %S18)
Niew∏aÊciwy rodzaj danych dla operacji
P´tla iteracyjna FOR lub WHILE
nie osiàgn´∏a koƒca (nie zamkn´∏a si´)
B∏àd przekroczenia czasu
(uk∏ad Êledzàcy) - wskazanie
procesora, którego to dotyczy
___________________________________________________________________________
6/16
Podr´czny s∏ownik 7
Rozdzia∏ 7
7 Podr´czny s∏ownik
7.1
B
S∏ownik
Instrukcje
logiczne
LD
IL
Rejestr lub
inicjacja stopnia labelki
LD TRUE
Testowanie (czytanie)
bezpoÊrednie, odwrócone,
zbocze rosnàce,
falling edge
LD
LDN
LDR
LDF
Koniunkcja AND
AND
B
ANDN
ANDR
ANDF
AND( AND(N AND(RAND(F
Alternatywa OR
bezpoÊrednia, odwrócona,
zbocze rosnàce,
zbocze opadajàce
OR
ORN
ORR
ORF
OR(
OR(N
OR(R
OR(F
Negacja
N
Nierównowa˝noÊç XOR
(bezpoÊrednia, odwrócona,
zbocze rosnàce, opad.)
XOR
XORR
Zapisywanie
(bezpoÊrednie, odwrócone)
ST
STN
Nadanie wartoÊci 1
Nadanie wartoÊci 0
S
R
Blok operacyjny
(zawartoÊç - patrz
nast´pne strony)
Blok porównywania
prosty
(zawartoÊç - patrz
nast´pne strony)
XORN
XORF
[akcja]
comparison
LD
AND
AND(
OR
OR(
XOR
[porównywannie]
[porównywannie]
[porównywannie]
[porównywannie]
[porównywannie]
[porównywannie]
Blok porównywania
z∏o˝ony
Funkcja Memory PusH
Funkcja Memory ReaD
Funkcja Memory PoP
MPS
MRD
MPP
___________________________________________________________________________
7/1
B
b
Instrukcje
Przypisanie
:=
Alternatywa OR
Koniunkcja AND
Nierównowa˝noÊç OR
Negacja
Zbocze: rosnàce, opadajàce
Nadanie: wartoÊci 1, wartoÊci 0
OR
AND
XOR
NOT
RE, FE
SET, RESET
Function blocks
ST
LD
IL
Zegar IEC
IN
BLK..END_BLK struktura
Zegar PL7-3
Licznik dwukierunkowy
R
S
CU
CD
BLK..END_BLK struktura
Przerzutnik monostabilny
S
BLK..END_BLK struktura
Rejestr
R
I
O
BLK..END_BLK struktura
B´ben
R
U
BLK..END_BLK struktura
Bloki funkcyjne
ST
Zegar IEC
START %TMi
DOWN %TMi
Zegar PL7-3
PRESET %Ti
START %Ti
STOP %Ti
Licznik dwukierunkowy
RESET %Ci
PRESET %Ci
UP %Ci, DOWN %Ci
Przerzutnik monostabilny
START %MNi
Rejestr
RESET %Ri
PUT %Ri
GET %Ri
B´ben
RESET %DRi
UP %DRi
___________________________________________________________________________
7/2
Podr´czny s∏ownik
7
B
Struktura sterujàca
Akcja warunkowa
Iteracyjna akcja warunkowa
Iteracyjna akcja warunkowa
ST
IF...THEN... ELSIF...THEN... ELSE...END_IF;
WHILE...DO...END_WHILE;
REPEAT...UNTIL...END_REPEAT;
Akcja wielokrotnie powtarzana
FOR...DO...END_FOR;
Instrukcja wyjÊcia z p´tli
EXIT
Operacje arytmetyczne na obiektach
LD/IL/ST
ca∏kowitych (pojedynczych i podwójnych)
Transfer lub inicjacja
:=
Porównywanie
= & lt; & gt; & lt; = “ & gt; =
Dodawanie, odejmowanie, mno˝enie,
dzielenie, reszta
+ - * / REM
Koniunkcja, alternatywa, nierówn., negacja
AND OR XOR NOT
WartoÊç bezwzgl´dna, pierwiasek kwadratowy
Zwi´kszanie
Zmniejszanie
ABS, SQRT
INC
DEC
Przesuni´cie w lewo
Przesuni´cie w prawo
Okr´˝ne przesuni´cie w lewo
Okr´˝ne przesuni´cie w prawo
Arytmetyczne operacje zmiennoprzecink.
Transfer lub inicjacja
SHL
SHR
ROL
ROR
Porównywanie
= & lt; & gt; & lt; = “ & gt; =
Dodawanie, odejmowanie, mno˝enie,
dzielenie, cz´Êç ca∏kowita
+ - * / TRUNC
WartoÊç bezwzgl´dna, pierwiasek kwadratowy
Logarytm, funkcja wyk∏adnicza
Sinus, kosinus, tangens
Arc sin, arc cos, arc tg
Konwersja stopnie & lt; -- & gt; radiany
ABS, SQRT
LOG, LN, EXPT, EXP
SIN, COS, TAN
ASIN, ACOS, ATAN
DEG_TO_RAD, RAD_TO_DEG
LD/IL/ST
:=
Konwersje numeryczne
Konwersja BCD - liczby ca∏kowite, pojedyncze
Konwersja GRAY - liczby ca∏kowite, pojedyncze
Konwersja liczby ca∏kowite, pojedyncze - BCD
Konwersja liczby ca∏kowite, pojed. - zmiennoprzecink.
Konwersja liczby ca∏kowite, podw. - zmiennoprzecink.
Konwersja liczby zmiennoprzecink. - ca∏kowite, pojed.
Konwersja liczby zmiennoprzecink. - ca∏kowite, podw.
Konwersja 32-bit. BCD - 32-bit. ca∏kowite
Konwersja 32-bit. ca∏kowite - 32-bit. BCD
Konwersja 32-bit. BCD - 16-bit. ca∏kowite
Konwersja 16-bit. ca∏kowite - 32-bit. BCD
Wydzielania s∏owa mniej wa˝nego ze s∏owa podwójnego
Wydzielania s∏owa wa˝niejszego ze s∏owa podwójnego
¸àczenie 2 s∏ów pojedynczych
LD/IL/ST
BCD_TO_INT
GRAY_TO_INT
INT_TO_BCD
INT_TO_REAL
DINT_TO_REAL
REAL_TO_INT
REAL_TO_DINT
DBCD_TO_DINT
DINT_TO_DBCD
DBCD_TO_INT
INT_TO_DBCD
LW
HW
CONCATW
___________________________________________________________________________
7/3
B
B
Tablice bitowe
Transfer lub inicjacja
:=
LD/IL/ST
Kopiowanie tablicy bitowej do innej tablicy bitowej
Koniunkcja mi´dzy dwiema tablicami
Alternatywa mi´dzy dwiema tablicami
Nierównowa˝noÊç mi´dzy dwiema tablicami
Negacja tablicy
Kopiowanie tablicy bitowej do tablicy s∏ów
Kopiowanie tablicy bitowej do tablicy s∏ów podwójnych
Kopiowanie tablicy s∏ów do tablicy bitowej
Kopiowanie tablicy s∏ów podwójnych do tablicy bitowej
Obliczanie d∏ugoÊci tablicy
COPY_BIT
AND_ARX
OR_ARX
XOR_ARX
NOT_ARX
BIT_W
BIT_D
W_BIT
D_BIT
LENGTH_ARX
Operacje na tablicach
Transfer lub inicjacja
:=
Operacje arytmetyczne mi´dzy tablicami
Operacje logiczne mi´dzy tablicami
Operacje arytmetyczne mi´dzy tablicà a liczbà ca∏kowità
Operacje logiczne mi´dzy tablicà a liczbà ca∏kowità
Dope∏nienie elementów tablicy
+ - * / REM
AND OR XOR
+ - * / REM
AND OR XOR
NOT
Sumowanie elementów tablicy
Porównywanie dwu tablic
Szukanie 1-go elementu równego podanej wartoÊci
Szukanie 1-go elementu równego wartoÊci z danego rz´du
Szukanie 1-go elementu wi´kszego od podanej wartoÊci
Szukanie 1-go elementu mniejszego od podanej wartoÊci
Szukanie najwi´kszej wartoÊci w tablicy
Szukanie najmniejszej wartoÊci w tablicy
Liczba wystàpieƒ danej wartoÊci w tablicy
Okr´˝ne przesuni´cie w lewo w tablicy
Okr´˝ne przesuni´cie w prawo w tablicy
Sortowanie tablicy (w porzàdku rosnàcym lub malejàcym)
Obliczanie d∏ugoÊci tablicy
Operacje na tablicach zmiennoprzecinkowych
Transfer lub inicjacja
Sumowanie elementów tablicy
Porównywanie dwu tablic
Szukanie 1-go elementu równego podanej wartoÊci
Szukanie 1-go elementu wi´kszego od podanej wartoÊci
Szukanie 1-go elementu mniejszego od podanej wartoÊci
Szukanie najwi´kszej wartoÊci w tablicy
Szukanie najmniejszej wartoÊci w tablicy
Liczba wystàpieƒ danej wartoÊci w tablicy
Okr´˝ne przesuni´cie w lewo w tablicy
Okr´˝ne przesuni´cie w prawo w tablicy
Sortowanie tablicy (w porzàdku rosnàcym lub malejàcym)
Obliczanie d∏ugoÊci tablicy
SUM
EQUAL
FIND_EQW, FIND_EQD
FIND_EQWP, FIND_EQDP
FIND_GTW, FIND_GTD
FIND_LTW, FIND_LTD
MAX_ARW, MAX_ARD
MIN_ARW, MIN_ARD
OCCUR_ARW, OCCUR_ARD
ROL_ARW, ROL_ARD
ROR_ARW, ROL_ARW
SORT_ARW, SORT_ARD
LENGTH_ARW, LENGTH_ARD
LD/IL/ST
:=
SUM_ARR
EQUAL_ARR
FIND_EQR
FIND_GTR
FIND_LTR
MAX_ARR
MIN_ARR
OCCUR_ARR
ROL_ARR
ROR_ARR
SORT_ARR
LENGHT_ARR
LD/IL/ST
___________________________________________________________________________
7/4
Podr´czny s∏ownik
7
B
Operacje typu «Orphee»
Przesuni´cie w s∏owie, w lewo, z odzyskaniem
bitów
Przesuni´cie w s∏owie, w prawo z dodaniem znaku
i odzyskaniem przesuni´tych bitów
Przesuni´cie w s∏owie, w prawo z uzupe∏nieniem
pustych miejsc 0 i odzyskaniem przesuni´tych bitów
Liczenie w dwóch kierunkach (w gór´ i w dó∏)
z sygnalizacjà przekroczenia limitu
Okr´˝ne przesuni´cie w lewo
Okr´˝ne przesuni´cie w prawo
Wymiana jawna
Czytanie parametrów kana∏u logicznego %M
Czytanie statusu %M kana∏u logicznego
Odzyskanie parametrów %M kana∏u logicznego
Zachowanie parametrów %M kana∏u logicznego
Zapisanie sterowania %M kana∏u logicznego
Zapisanie parametrów %M kana∏u logicznego
LD/IL/ST
WSHL_RBIT, DSHL_RBIT
Operacje zwiàzane z zarzàdzaniem czasem
Zegar czasu rzeczywistego
LD/IL/ST
SCHEDULE
Porównywanie
= & lt; & gt; & lt; = “ & gt; =
Transfer
:=
Odczytanie daty i kodu ostatniego " stopu " sterownika
Odczytanie daty systemowej
Uaktualnienie daty systemowej
PTC
RRTC
WRTC
Dodanie czasu do pe∏nej daty
Dodanie czasu do pory dnia
Konwersja daty na ∏aƒcuch znaków
Dzieƒ tygodnia
Ró˝nica mi´dzy dwiema datami
Ró˝nica pomi´dzy dwiema pe∏nymi datami
Ró˝nica mi´dzy dwiema porami dnia
Konwersja pe∏nej daty na ∏aƒcuch znaków
Odj´cie czasu od pe∏nej daty
Odj´cie czasu od pory dnia
Konwersja okresu czasu na ∏aƒcuch znaków
Konwersja pory dnia na ∏aƒcuch znaków
Przeliczenie okresu czasu na format godz.-min-sek
Operacje opóêniajàce
Opóênienie typu On-delay
Opóênienie typu Off-delay
Generowanie impulsu o okreÊlonym czasie trwania
Generator przebiegu prostokàtnego
ADD_DT
ADD_TOD
DATE_TO_STRING
DAY_OF_WEEK
DELTA_D
DELTA_DT
DELTA_TOD
DT_TO_STRING
SUB_DT
SUB_TOD
TIME_TO_STRING
TOD_TO_STRING
TRANS_TIME
LD/IL/ST
FTON
FTOF
FTP
FPULSOR
WSHR_RBIT, DSHR_RBIT
WSHRZ_C, DSHRZ_C
SCOUNT
ROLW, ROLD
RORW, RORD
LD/IL/ST
READ_PARAM
READ_STS
RESTORE_PARAM
SAVE_PARAM
WRITE_CMD
WRITE_PARAM
___________________________________________________________________________
7/5
B
B
Operacje na ∏aƒcuchach znaków
Porównywanie
LD/IL/ST
= & lt; & gt; & lt; = “ & gt; =
Transfer
:=
Konwersja podwójnej liczby ca∏kowitej na ∏aƒcuch
Konwersja pojedynczej liczby ca∏kowitej na ∏aƒcuch
Konwersja ∏aƒcucha na podwójnà liczb´ ca∏kowità
Konwersja ∏aƒcucha na pojedynczà liczb´ ca∏kowità
Konwersja ∏aƒcucha na wartoÊç zmiennoprzecinkowà
Konwersja wartoÊci zmiennoprzecinkowej na ∏aƒcuch
DINT_TO_STRING
INT_TO_STRING
STRING_TO_DINT
STRING_TO_INT
STRING_TO_REAL
REAL_TO_STRING
¸àczenie dwóch ∏aƒcuchów
Usuni´cie ciàgu znaków z ∏aƒcucha
Znalezienie pierwszego innego znaku w ∏aƒcuchu
Wyszukiwanie ciàgu znaków w ∏aƒcuchu
Wstawianie ciàgu znaków do ∏aƒcucha
Wydzielenie lewej cz´Êci ∏aƒcucha
D∏ugoÊç ∏aƒcucha
Wydzielenie ciàgu znaków z ∏aƒcucha
Zastàpienie ciàgu znaków w ∏aƒcuchu
Wydzielenie prawej cz´Êci ∏aƒcucha
CONCAT
DELETE
EQUAL_STR
FIND
INSERT
LEFT
LEN
MID
REPLACE
RIGHT
Maskowanie zdarzeƒ
Uaktywnienie / dezaktywacja zdarzeƒ
Korekta czasu " przejÊcia " zadania
LD/IL/ST
%Si pozycja
%SWi pozycja
Globalne maskowanie zdarzeƒ
Zdj´cie maski ze wszystkich zdarzeƒ
MASKEVT
UNMASKEVT
Komunikacja
˚àdanie zatrzymania wykonywanej funkcji
Wysy∏anie i/lub odbieranie danych
˚àdanie czytania ∏aƒcucha znaków
˚àdanie przes∏ania i/lub czytania ∏aƒcucha znaków
Przes∏anie ∏aƒcucha znaków
Odebranie telegramu
Czytanie podstawowych obiektów j´zykowych
Przesy∏anie / odbiór ˝àdaƒ UNI-TE
Wys∏anie telegramu
Zapisywanie podstawowych obiektów j´zykowych
Okr´˝ne przesuni´cie w prawo o jeden bajt w tablicy
Zamiana miejscami bajtów w tablicy s∏ów
Czytanie danych wspólnych Modbus+
Zapisywanie danych wspólnych Modbus+
LD/IL/ST
CANCEL
DATA_EXCH
INPUT_CHAR
OUT_IN_CHAR
PRINT_CHAR
RCV_TLG
READ_VAR
SEND_REQ
SEND_TLG
WRITE_VAR
ROR1_ARB
SWAP
READ_GDATA
WRITE_GDATA
___________________________________________________________________________
7/6
Rozdzia∏ 8
Parametry j´zyka dla sterowników TSX 37/57 8
8 Parametry j´zyka dla sterowników TSX 37/57
8.1
Wprowadzenie
Niniejszy rozdzia∏ zawiera informacje umo˝liwiajàce obliczenie nast´pujàcych parametrów dla programu napisanego dla sterowników TSX 37/57:
• czas wykonywania programu aplikacji,
• rozmiar pami´ci dla programu aplikacji.
Czas wykonywania programu
Czas wykonywania programu oblicza si´ przy pomocy tabel zamieszczonych w niniejszym rozdziale poprzez sumowanie czasów przypadajàcych na wykonywanie poszczególnych instrukcji.
Uwaga: Obliczony w ten sposób czas jest czasem maksymalnym. W rzeczywistoÊci,
blok operacyjny, czy te˝ procedura zostanà wykonane tylko, gdy zostanà spe∏nione
przyporzàdkowane im warunki (równanie logiczne, od którego wyniku zale˝y wykonanie
procedury lub operacji). Mo˝e si´ tak przydarzyç, ˝e faktyczny czas wykonania
programu b´dzie du˝o mniejszy od czasu obliczonego.
Obliczenie czasu trwania ca∏ego cyklu wymaga uwzgl´dnienia parametrów specyficznych dla danego sterownika (czas trwania wykonywanych operacji pomocniczych,
czas trwania wymiany I/O, itp.). Aby mo˝liwe by∏o obliczenie czasu ca∏kowitego dla
pracy sterownika niezb´dne jest odczytanie tych parametrów z instrukcji obs∏ugi odpowiedniego sterownika (rozdzia∏a zawierajàcy opis parametrów technicznych sterownika).
Rozmiar pami´ci dla aplikacji
Rozmiar pami´ci zajmowanej przez aplikacj´ jest sumà nast´pujàcych elementów:
Element
Sposób obliczania
•Program
Nale˝y zsumowaç wszystkie instrukcje (patrz tabele
zamieszczone w rozdzia∏ach 8.2 and 8.3) i pomno˝yç je przez wspó∏czynnik odpowiedni dla danego
j´zyka (patrz nast´pna strona)
•Funkcje z∏o˝one
Patrz rozdzia∏ 8.4.4
•Skonfigurowane obiekty PL7 Patrz rozdzia∏ 8.4.2
•Skonfigurowany modu∏ I/O
Patrz rozdzia∏ 8.4.3
___________________________________________________________________________
8/1
B
B
B
Na kolejnych stronach niniejszego rozdzia∏u zamieszczono tabele zawierajàce informacje
o rozmiarach obszarów pami´ci odpowiadajàcych danym kodom instrukcji. W celu
okreÊlenia ca∏kowitego rozmiaru zaj´tej pami´ci dla instrukcji lub programu nale˝y
pomno˝yç odczytane wartoÊci przez wspó∏czynnik uwzgl´dniajàcy rozmiar informacji
typowej dla zastosowanego j´zyka (na przyk∏ad, informacje graficzne w przypadku
j´zyka Ladder).
• J´zyk Ladder: Rozmiar ca∏kowity = 1.7 x Rozmiar dla kodu
• J´zyk ST: Rozmiar ca∏kowity = 1.6 x Rozmiar dla kodu
• J´zyk IL:
- dla TSX37: Rozmiar ca∏kowity = 1.4 x Rozmiar dla kodu
- dla TSX57: Rozmiar ca∏kowity = 1.6 x Rozmiar dla kodu
• J´zyk Grafcet:
Rozmiar diagramu oblicza si´ nast´pujàco:
Rozmiar diagramu (w iloÊci s∏ów) = 214 + 17 * liczba kroków diagramu + 2 *
ca∏kowita liczba skonfigurowanych kroków + 4 * liczba zaprogramowanych akcji
Uwaga: Komentarz programu zajmuje 1 bajt dla jednego znaku.
Komentarz
Liczby zamieszczone w tabelach sà wartoÊciami Êrednimi, oszacowanymi dla
typowych aplikacji. Nie ma mo˝liwoÊci dok∏adnego obliczenia rozmiaru zaj´tej
pami´ci, poniewa˝ PL7 optymalizuje wykorzystanie pami´ci uwzgl´dniajàc zawartoÊç
i struktur´ aplikacji.
W rozdziale 8.4.1 opisano ró˝ne obszary pami´ci, które sà wykorzystywane przez
aplikacj´.
___________________________________________________________________________
8/2
Parametry j´zyka dla sterowników TSX 37/57
8.2
8
B
Sterownik TSX 37
8.2.1 Instrukcje logiczne
LD
IL
ST
LD,
Obiekty
Czas wykonywania
(s)
3710 3720
3720
RAM Zasobnik
0.25 0.13 0.19
Rozmiar
(s∏owa)
37xx
1
%M1 (1)
0.25
0.13
0.19
1
%M1[%MW2]
%MW0:X0 (2)
%IWi.j:Xk (3)
%MW0[%MW10]:X0
%KW0[%MW10]:X0
%M1
13.10
6.06
77.04
16.29
87.27
0.50
12.85
5.75
69.25
15.55
79.05
0.25
12.85
5.75
69.25
15.55
79.05
0.38
7
4
8
8
12
2
%M1[%MW2]
13.01 12.75 12.75
idem LD,
LDN
7
LDN
LDR,
LDF
AND,
ANDN , AND (, AND (N , idem OR
ANDR, ANDF, AND (R, AND (F, idem OR
idem
LDR
XOR, XORN
%M1
1.25
%M1[%MW2]
26.94
%MW0:X0
12.86
%IWi.j:Xk
83.84
%MW0[%MW10]:X0 33.33
%KW0[%MW10]:X0 104.31
0.94
26.26
12.06
75.56
31.66
95.16
5
13
10
14
14
18
XORR, XORF
%M1
%M1[%MW2]
%M1
1.69
26.44
0.38
9
19
2
13.10 12.85 12.85
5.88 5.60 5.60
76.86 69.10 69.10
16.41 15.65 15.65
0.25 0.13 0.19
0.74 0.75 0.75
7
4
8
8
1
1
5.55
1
ST, STN,
0.63
26.08
11.88
75.38
31.48
94.98
1
2.25 1.13
27.28 26.13
0.50 0.25
LDF
S, R
%M1[%MW2]
%MW0:X0
%NW{i}j:Xk (3)
%MW0[%MW10]:X0
sprz´˝enie wielokrotne w Ladder, «koszt» 2-giego sprz´˝enia i nast´pnych
blok operacyjny
[akcja]
blok wykonywany
nie wykonywany
(1)
(2)
(3)
5.40
5.40
Obejmuje wszystkie obiekty, co do których mo˝na stosowaç wymuszenie:
%I,%Q,%X,%M,%S
Inne obiekty tego typu: bity wyjÊciowe bloku funkcyjnego %TMi.Q ..., bity wydzielone ze
s∏ów systemowych %SWi:Xj
Inne obiekty tego typu: bity wydzielone ze s∏ów wspólnych %NW{i}j:Xk, bity wydzielone ze
s∏ów I/O %IWi.j.Xk, %QWi.j.Xk, bity wydzielone ze s∏ów %KW, bity b∏´dów %Ii.j.ERR
___________________________________________________________________________
8/3
B
B
LD
IL
blok porównywania
poziomy
blok porównywania
pionowy
zamkni´cie (zbieg)
otwarcie nie poprzedzone zamkni´ciem
ST
LD
[porównywanie]
Obiekty
Czas wykonywania
Rozmiar
(s)
(s∏owa)
3710
3720
3720
37xx
RAM
Zasobnik
0.00
0.00
0.00
0
12.38
11.85
11.85
4
ladder, 1 otwarcie
)
czas dodawany do
operacji porównywania
pomi´dzy 2 %MWi
0.25
0.25
0.13
0.13
0.19
0.19
1
1
lista MPS+MPP
lista MRD
0.75
0.25
0.38
0.13
0.56
0.19
3
1
)
MPS, MPP,
MRD
8.2.2 Bloki funkcyjne
LD
IL
ST
Obiekty/warunki
Czas wykonywania
(s)
3710
3720
start zegara
43.39
41.11
zatrzymanie zegara
17.47
17.01
zegar liczy (on)
18.74
17.99
zegar nie liczy (off)
17.40
Rozmiar
(s∏owa)
37xx
16.67
Zegar IE
zbocze rosnàce na IN
IN %TM1
START %TM1
(zb. rosnàce)
zbocze opadajàce na IN IN %TM1
DOWN %TM1
(zbocze
opadajàce)
IN =1
IN %TM1 (=1)
IN =0
IN %TM1 (=0)
3
Zegar PL7-3
START %T1
zamro˝enie
12.63
12.15
RESET %T1
kasowanie
12.94
12.15
zegar liczy (on)
E=0
uaktywnienie
STOP %T1
3
17.55
17.00
18.69
17.92
zegar nie liczy (off)
Licznik dwukierunkowy
kasowanie, R=1
R %C8 (=1)
RESET %C8
kasowanie
nastawianie, S=1
S %C9 (=1)
PRESET %C9
nastawianie
20.42
19.73
zbocze rosnàce na CU
CU %C8
(zb. rosnàce)
UP %C8
zliczanie up
19.92
19.10
zbocze rosnàce na CD
CD %C9
(zb. rosnàce)
DOWN %C9
odliczanie down
19.92
19.10
wejÊcia nie aktywne
R/S/CU/CD bit nie aktywny
brak akcji
13.27
3
12.81
___________________________________________________________________________
8/4
Parametry j´zyka dla sterowników TSX 37/57
8
B
Bloki funkcyjne (ciàg dalszy)
LD
IL
ST
Obiekty/warunki
Czas wykonywania
(s)
3710
3720
Rozmiar
(s∏owa)
37xx
B
Przerzutnik monostabilny
zbocze rosnàce na S
S %MN0,
zb. rosnàce
S=1
S
START %MN0
35.08
33.16
przerzutnik aktywny
%MN0,
S=1/0
start
11.64
3
11.17
Rejestr
zbocze na I
I %R2(zbocze) PUT %R2
zapisywanie
21.90
21.27
zbocze na O
O%R2(zbocze) GET %R2
odczytywanie
21.90
21.27
R=1
R %R1 (=1)
kasowanie
16.90
16.02
wejÊcia nie aktywne
I/O/R, bit
nie aktywny
brak akcji
12.61
12.19
do przodu, ustalony
181.37
169.13
na bit sterujàcy
19.30
19.30
kasowanie, sta∏e
174.15
162.03
na bit sterujàcy
19.30
19.30
brak akcji, sta∏y
175.92
164.00
na bit sterujàcy
19.30
19.30
RESET %R2
3
B´ben
zbocze na U
R=1
wejÊcia nie aktywne
U %DR0
R %DR1
R/U, bit nie akt.
UP %DR1
RESET %DR2
3
___________________________________________________________________________
8/5
B
8.2.3 Operacje arytmetyczne - obiekty ca∏kowite i zmiennoprzecinkowe
Wspó∏czynniki korekcyjne uwzgl´dniajàce typ obiektu
Czas trwania i rozmiary podane na kolejnych stronach dotyczà %MW0, %MD0 lub %MF0
Czas wykonywania
(s)
3710
3720
Rozmiar
(s∏owa)
37xx
∞ WartoÊç, którà nale˝y odliczyç dla wartoÊci bezpoÊrednich
16#1234/%MW0
1.20
1.10
0
16#12345678 /
%MD0 lub
%MF/0
1.21
0.75
1
∞ WartoÊç jakà nale˝y dodaç dla s∏ów indeksowanych, podwójnych, zmiennoprzecinkowych
%MW2[%MW0] obiekt przed :=
lub
%MD2[%MW0]
lub
%MF2[%MW0]
1-a operacja : pierwszy
argument nie indeksowany albo operacja
przypisania
2-gi argument jeÊli
1-y argument jest
indeksowany
10.52
10.05
4
11.20
10.60
5
13.37
12.60
5
70.98
63.50
2
∞ WartoÊç jakà nale˝y dodaç dla poni˝ej wymienionych obiektów:
%KWi, %KWi[%MW0], %KDi, %KFi, s∏owa wspólne, s∏owa I/O
Wspó∏czynniki korekcyjne uwzgl´dniajàce kontekst operacji
∞ WartoÊç jakà nale˝y dodaç, gdy operacja zajmuje co najmniej 2-gà pozycj´ w wyra˝eniu,
np. *%MW2 w := %MW0 * %MW1 * %MW2 zawiera nast´pujàce operacje
%MW0
0.69
0.55
0
%MD0 i %MF0
0.99
0.75
0
∞ WartoÊç jakà nale˝y dodaç dla operacji o wy˝szym priorytecie,lub której wynik mieÊci si´
w nawiasie, np. %MW0 + %MW2 + (...)
%MW0
2.86
2.55
1
%MD0 i %MF0
3.60
3.15
1
___________________________________________________________________________
8/6
Parametry j´zyka dla sterowników TSX 37/57
8
B
ST
Obiekty
3710
3720
37xx
obiekty za :=
%MW0
4.81
4.50
2
%MD0,%MF0
6.45
5.70
2
%MW0
4.46
4.30
2
%MD0
5.15
4.85
2
:=
Warunki
Czas wykonywania
(s)
Rozmiar
(s∏owa)
and %MF0
=, & lt; & gt; , & lt; =, & lt; , & gt; , & gt; =
%MW0
8.94
8.50
4
%MD0
10.71
10.26
4
%MF0
29.06
28.39
4
AND, OR, XOR
%MW0
7.29
6.90
3
%MD0
9.21
8.55
3
+, -
%MW0
7.29
6.90
3
%MD0
*
9.21
8.55
3
%MF0
62.83
61.20
3
%MW0
9.75
9.10
3
%MD0
39.63
36.50
3
%MF0
/, REM
58.26
56.90
3
%MW0
10.69
10.08
3
3
%MD0
205.21
201.38
/
%MF0
62.47
60.25
3
ABS, -obiekt
%MW0
7.20
6.95
3
%MD0
SQRT
9.53
3
13.01
12.50
3
%MW0
6.69
6.45
3
%MD0
NOT
9.97
%MF0
7.80
7.40
3
%MW0
17.02
16.70
3
%MD0
SHL, SHR, ROL, ROR
85.25
3
165.04
158.40
3
%MW0
4.86
4.40
2
%MD0
INC, DEC
85.73
%MF0
5.20
4.75
2
%MW0
dla 1 bitu
17.74
17.05
5
%MD0
dla 1 bitu
20.58
19.15
5
na ka˝dy bit dodatkowy
0.063
LN
%MF0
1371.60
1270.00
3
LOG
%MF0
1458.00
1350.00
3
EXP
%MF0
1155.60
1070.00
3
EXPT
%MF0
2988.00
2490.00
3
TRUNC
%MF0
204.00
170.00
3
COS
%MF0
2829.60
2620.00
3
SIN
%MF0
2840.40
2630.00
3
TAN
%MF0
2937.60
2720.00
3
ACOS
%MF0
4082.40
3780.00
3
ASIN
%MF0
4082.40
3780.00
3
ATAN
%MF0
2786.40
2580.00
3
DEG_TO_RAD
%MF0
852.00
710.00
3
RAD_TO_DEG
%MF0
720.00
600.00
3
___________________________________________________________________________
8/7
B
B
8.2.4
Instrukcje programowe
ST
Obiekty
Warunki
Czas wykonywania
(s)
3710
3720
Rozmiar
(s∏owa)
37xx
Jump %Li
41.93
38.20
3
Maskevt
12.21
10.80
1
Unmaskevt
40.27
37.10
1
SRi
48.68
42.88
3
Return
42.18
38.33
3
8.2.5
Struktura komend
ST
Czas wykonywania
(s)
Rozmiar
(s∏owa)
3710
& lt; war & gt;
3720
37xx
2
warunek wykonania
bit, który mo˝na wymuszaç
patrz instrukcje logiczne LD %M1
porównywanie
patrz porównywanie =, & lt; , & gt; ...
if & lt; war & gt; then & lt; akcja & gt;
end_if;
warunek typu prawda
czasy i rozmiary zamieszczone poni˝ej powinny byç
dodawane do akcji zamieszczonych w strukturze
3.60
3.30
warunek typu fa∏sz (skok)
5.55
5.40
If & lt; war & gt; then & lt; akcja1 & gt;
else & lt; akcja2 & gt; end_if;
warunek typu prawda
9.15
8.70
warunek typu fa∏sz
5.55
5.40
while & lt; war & gt; do. & lt; akcja & gt;
end_while
wywo∏anie p´tli sprz´˝onej
9.15
8.70
wyjÊcie z p´tli
5.55
5.40
repeat & lt; akcja & gt; until
& lt; war & gt; end_repeat
wywo∏anie p´tli sprz´˝onej
5.55
5.40
ostatnie przejÊcie p´tli
3.60
3.30
8.58
29.38
8.25
27.35
20.42
19.40
for & lt; s∏owo1:=s∏owo2 & gt; to
& lt; s∏owo3 & gt; do & lt; akcja & gt; end_for
wywo∏anie komendy for,
wykonywanej tylko 1 raz
wywo∏anie p´tli sprz´˝onej
(ze sprz´˝eniem zwrotnym)
wyjÊcie z p´tli
4
2
2
15
___________________________________________________________________________
8/8
Parametry j´zyka dla sterowników TSX 37/57
8
B
8.2.6 Konwersja numeryczna
ST
Czas wykonywania
(s)
3710
3720 RAM 3720 zas.
Rozmiar
(s∏owa)
37xx
BCD_TO_INT
25.03
24.55
24.55
3
INT_TO_BCD
21.66
21.15
21.15
3
GRAY_TO_INT
36.98
36.55
36.55
3
INT_TO_REAL
40.90
40.75
40.75
3
DINT_TO_REAL
33.32
32.55
32.55
B
3
REAL_TO_INT
58.75
58.55
58.55
3
REAL_TO_DINT
44.59
44.05
44.05
3
DBCD_TO_DINT
1 324.85
1 065.15
1 134.70
5
DBCD_TO_INT
1 265.54
925.70
986.15
5
DINT_TO_DBCD
1 124.85
825.15
879.10
5
564.85
445.15
474.40
5
INT_TO_DBCD
8.2.7 ¸aƒcuch bitów
ST
warunki
Czas wykonywania
(s)
3710
3720 RAM
3720 zas.
Rozmiar
(s∏owa)
37xx
%M30:8 := 0
8 bitów
19.38
18.88
18.88
6
%M30:16 := 1
16 bitów
20.38
19.88
19.88
6
%M30:24 := 2
24 bity
24.25
23.35
23.35
6
%M30:32 := 2
32 bity
25.25
24.35
24.35
6
Inicjacja tablicy bitowej
___________________________________________________________________________
8/9
B
ST
warunki
Czas wykonywania
(s)
3710
3720 RAM 3720 zas.
Rozmiar
(s∏owa)
37xx
Kopiowanie tablicy bitowej do tablicy bitowej
%M30:8 := %M20:8
8 bitów
25.54
24.79
24.79
6
%M30:16 := %M20:16
16 bitów
26.16
25.41
25.41
6
%M30:24 := %M20:24
24 bity
33.41
32.26
32.26
6
%M30:32 := %M20:32
32 bity
35.91
34.76
34.76
6
16 bitów
281.63
230.00
244.95
9
%M30:16 := COPY_BIT(%M20:16)
32 bity
440.82
360.00
383.40
9
128 bitów
1 261.22
1 030.00
1 096.95
9
12
Operacje logiczne na tablicach bitowych
AND_ARX, OR_ARX, XOR_ARX
%M0:16 := AND_ARX(%M30:16,%M50:16)
16 bitów
397.42
320.00
340.80
%M0:32 := AND_ARX(%M30:32,%M50:32)
32
620.97
500.00
532.50
12
%M0:128 := AND_ARX(%M30:128,%M50:128)
128
1 887.74
1 520.00
1 618.80
12
16 bitów
281.63
230.00
244.95
9
32
440.82
360.00
383.40
9
128
1 261.22
1 030.00
1 096.95
9
NOT_ARX
%M0:16 := NOT_ARX(%M30:16)
Kopiowanie tablicy bitowej do tablicy s∏ów
%MW1 := %M30:8
8 bitów
14.84
14.36
14.36
5
%MW1 := %M30:16
16 bitów
16.34
15.86
15.86
5
%MD2 := %M30:24
24 bity
14.54
14.23
14.23
5
%MD2 := %M30:32
32 bity
16.04
15.73
15.73
5
%MW1:4 := BIT_W(%M40:80.0,17.2)
17 bitów
501.43
390.00
415.35
16
%MD1:4 := BIT_D(%M30:80.0,33.0)
33 bity
379.53
530.00
564.45
16
Kopiowanie tablicy s∏ów do tablicy bitowej
%M30:8 := %MW1
8 bitów
19.28
18.68
18.68
5
%M30:16 := %MW2
16 bitów
20.28
19.68
19.68
5
%M30:24 := %MD1
24 bity
21.20
20.37
20.37
5
%M30:32 := %MD3
32 bity
22.20
21.37
21.37
5
%M30:32 := W_BIT(%MW200:2.0,2.0)
32 bity
488.68
370.00
394.05
16
%M30:32 := D_BIT(%MD0:1.0,2.0)
32 bity
567.33
460.00
489.90
16
___________________________________________________________________________
8/10
Parametry j´zyka dla sterowników TSX 37/57
8
B
8.2.8 Tablice s∏ów, s∏ów podwójnych i wartoÊci zmiennoprzecinkowych
ST
Warunki
Czas wykonywania
(s)
3710
3720 RAM 3720 zas.
Rozmiar
(s∏owa)
37xx
IInicjacja tablicy s∏ów za pomocà s∏owa
%MW0:10 := %MW100
10 s∏ów
47.46
42.15
42.15
na jedno s∏owo
0.34
0.20
0.20
%MD0:10 := %MD100
10 s∏ów podw.
81.27
74.45
74.45
na s∏owo podw.
2.87
2.65
7
2.65
7
Kopiowanie tablicy s∏ów do tablicy s∏ów
%MW0:10:=%MW20:10;
95.80
85.35
85.35
0.77
0.50
0.50
10 s∏ów podw.
111.13
97.65
97.65
na s∏owo podw.
%MD0:10:=%MD20:10;
10 s∏ow
na jedno s∏owo
1.54
1.00
9
1.00
9
Operacje logiczne i arytmetyczne mi´dzy dwiema tablicami s∏ów
+, %MW0:10 :=%MW10:10 + %MW20:10;
168.04
151.95
151.95
na jedno s∏owo
7.13
6.35
6.35
10 s∏ów podw.
239.17
214.40
214.40
na s∏owo podw.
%MD0:10:=%MD10:10+%MD20:10;
10 s∏ów
13.84
12.25
12.25
10 s∏ów
14
14
*
%MW0:10:=%MW10:10 * %MW20:10;
175.40
175.40
9.27
8.70
8.70
10 s∏ów podw.
710.35
603.80
603.80
na s∏owo podw.
61.64
51.20
51.20
10 s∏ów
224.76
181.40
181.40
na jedno s∏owo
13.14
9.30
9.30
10 s∏ów podw.
2 192.38
2 157.35
2 157.35
na s∏owo podw.
%MD0:10:=%MD10:10 * %MD20:10;
189.32
na jedno s∏owo
209.16
206.55
206.55
10 s∏ów
14
14
/, REM
%MW0:10:=%MW10:10 / %MW20:10;
%MD0:10:=%MD10:10 / %MD20:10;
14
14
AND, OR, XOR
%MW0:10:=%MW10:10 AND %MW20:10;
147.40
147.40
6.66
5.85
5.85
10 s∏ów podw.
240.14
215.90
215.90
na s∏owo podw.
%MD0:10:=%MD10:10 AND %MD20:10;
163.69
na jedno s∏owo
13.94
12.40
14
12.40
14
___________________________________________________________________________
8/11
B
B
ST
Warunki
Czas wykonywania
(s)
3710
3720 RAM 3720 zas.
Rozmiar
(s∏owa)
37xx
Operacje logiczne i arytmetyczne mi´dzy jednà tablicà s∏ów a jednym s∏owem
+, %MW0:10 :=%MW10:10 + %MW20;
10 s∏ów
119.12
108.55
108.55
or %MW0:10 := %MW20 + %MW10:10
na jedno s∏owo
2.87
2.65
2.65
%MD0:10 :=%MD10:10 + %MD20;
10 s∏ów podw.
159.68
147.45
147.45
na s∏owo podw.
6.57
6.25
12
6.25
12
*
%MW0:10 :=%MW20*%MW10:10;
166.86
132.45
132.45
na jedno s∏owo
7.94
5.05
5.05
10 s∏ów podw.
587.01
522.95
522.95
na s∏owo podw.
49.18
43.80
43.80
10 s∏ów
196.69
155.85
155.85
na jedno s∏owo
%MD0:10:=%MD20*%MD10:10;
10 s∏ów
10.86
7.30
12
7.30
12
/, REM
%MW0:10 :=%MW10:10 / %MW30;
%MD0:10:=%MD10:10 / %MD30;
10 s∏ów podw.
2 230.17
2 173.95
2 173.95
na s∏owo podw.
213.66
208.90
208.90
10 s∏ów
12
12
AND, OR, XOR
%MW0:10 :=%MW10:10 AND %MW20;
%MD0:10:=%MD20*%MD10:10;
117.20
106.45
106.45
na jedno s∏owo
2.64
2.40
2.40
10 s∏ów podw.
587.01
522.95
522.95
6.47
6.15
6.15
na s∏owo podw.
12
12
NOT
%MW0:10 :=NOT(%MW10:10);
110.28
100.25
100.25
na jedno s∏owo
%MD0:10:=NOT(%MD10:10);
10 s∏ów
2.96
2.75
2.75
10 s∏ów podw.
126.39
114.00
114.00
na s∏owo podw.
4.50
4.05
4.05
10 s∏ów
74.30
69.00
69.00
na jedno s∏owo
2.44
2.35
9
9
2.35
Funkcje sumowania w tablicy
%MW20:=SUM(%MW0:10);
%MD20:=SUM(%MD0:10);
%MF20:=SUM_ARR(%MF0:10);
10 s∏ów podw.
83.58
76.90
76.90
na s∏owo podw.
3.17
2.95
2.95
10 s∏ów podw.
1634
1257
1257
10
10
10
na s∏owo podw.
___________________________________________________________________________
8/12
Parametry j´zyka dla sterowników TSX 37/57
8
B
ST
Warunki
Czas wykonywania
(s)
3710
3720 RAM 3720 zas.
Rozmiar
(s∏owa)
37xx
Porównywanie tablic
%MW20:=EQUAL(%MW0:10;%MW10:10);
10 s∏ów
na jedno s∏owo
1.13
0.90
0.90
%MD20:=EQUAL(%MD0:10;%MD10:10);
10 s∏ów podw.
116.17
103.40
103.40
na s∏owo podw.
2.23
1.75
1.75
10 s∏ów podw.
741
570
607
11
340.00
250.00
266.25
15
350.00
260.00
276.90
16
%MF20:=EQUAL_ARR(%MF0:10;%MF10:10);
103.78
93.50
93.50
11
11
na s∏owo podw.
Wyszukiwanie
%MW20 := FIND_EQW(%MW0:10,%KW0)
%MF20 := FIND_EQR(%MF0:10, %KF0)
10 s∏ów, max.
(od pierwszego)
10 s∏ów podw.,
max. (od 1-ego)
10 s∏ów podw.
833
648
690.12
15
%MF20 := FIND_EQRP(%MF0:10, %KF0)
10 s∏ów podw.
845
650
692.25
15
%MD20 := FIND_GTR(%MF0:10, %KF0)
10 s∏ów podw.
836
643
684.79
15
%MD20 := FIND_LTR(%MF0:10, %KF0)
10 s∏ów podw.
836
643
684.79
15
%MD20 := FIND_EQD(%MD0:10, %KD0)
Wyszukiwanie wartoÊci max i min.
%MW20 := MAX_ARW(%MW0:10)
10 s∏ów
350.00
260.00
276.90
9
%MD20 := MAX_ARD(%MD0:10)
10 s∏ów podw.
410.00
300.00
319.50
9
%MF20 := MAX_ARR(%MF0:10)
10 s∏ów podw.
1366
1051
1119.31
9
%MF20 := MIN_ARR(%MF0:10)
10 s∏ów podw.
1270
977
1040.50
9
15
Liczba wystàpieƒ w tablicy
%MW20 := OCCUR_ARW(%MW0:10, %KW0)
10 s∏ów
350.00
250.00
266.25
%MD20 := OCCUR_ARD(%MD0:10, %KD0)
10 s∏ów podw.
370.00
270.00
287.55
16
%MF20 := OCCUR_ARR(%MF0:10, %KF0)
10 s∏ów podw.
1265
973
1036.24
16
9
Przesuni´cie okr´˝ne
ROL_ARW(word or value, %MWj:10)
10 s∏ów
550.00
400.00
426.00
ROL_ARD(%MDi,%MDj:10)
10 s∏ów podw.
590.00
430.00
457.95
9
ROL_ARR(%MFi,%MFj:10)
10 s∏ów podw.
585
450
479.25
9
970.00
700.00
745.50
9
610.00
450.00
479.25
9
1863
1433
1526.14
9
Sortowanie
SORT_ARW(%MWi,%MWj:10)
SORT_ARD(%MDi,%MDj:10)
SORT_ARR(%MFi,%MFj:10)
10 s∏ów, max.
(od pierwszego)
5 s∏ów podw., max.
(od pierwszego)
10 s∏ów podw.
___________________________________________________________________________
8/13
B
B
8.2.9 Zarzàdzanie czasem
ST
Czas wykonywania
(s)
3710
3720 RAM 3720 zas.
Rozmiar
(s∏owa)
37xx
Data, czas i czas trwania
%MW2:4 := ADD_DT(%MW2:4,%MD8)
4 400.00
3 300.00
3 514.50
13
%MD2 := ADD_TOD(%MD2,%MD8)
2 100.00
1 550.00
1 650.75
9
%MB2:11 := DATE_TO_STRING(%MD40)
1 370.00
900.00
958.50
9
%MW5 := DAY_OF_WEEK()
220.00
280.00
298.20
5
%MD10 := DELTA_D(%MD2, %MD4)
1 520.00
1 130.00
1 203.45
9
%MD10 := DELTA_DT(%MD2:4,%MW6:4)
3 170.00
2 300.00
2 449.50
13
%MD10 := DELTA_TOD(%MD2,%MD4)
2 330.00
1 700.00
1 810.50
9
%MB2:20 := DT_TO_STRING(%MW50:4)
2 050.00
1 450.00
1 544.25
11
%MW2:4 := SUB_DT(%MW2:4,%MD8)
4 750.00
3 500.00
3 727.50
13
%MD2 := SUB_TOD(%MD2,%MD8)
2 330.00
1 700.00
1 810.50
9
%MB2:15 := TIME_TO_STRING(%MD40)
1 560.00
1 200.00
1 278.00
9
%MB2:9 := TOD_TO_STRING(%MD40)
1 270.00
800.00
852.00
9
500.00
500.00
532.50
7
%MD100 := TRANS_TIME(%MD2)
Dost´p do zegara czasu rzeczywistego
RRTC(%MW0:4)
93.60
84.80
84.80
5
WRTC(%MW0:4)
248.61
230.85
230.85
5
PTC(%MW0:5)
97.98
88.60
88.60
5
SCHEDULE(%MW0,%MW1,%MW2,
1430
1100
1171.5
5
%MD10,%MD12,%M0)
___________________________________________________________________________
8/14
Parametry j´zyka dla sterowników TSX 37/57
8
B
8.2.10 ¸aƒcuchy znaków
ST
Warunki
Czas wykonywania
(s)
3710
3720 RAM 3720 zas.
Rozmiar
(s∏owa)
37xx
B
Przypisywanie ∏aƒcuchów znaków
%MB0:8:=%MB10:8
8 znaków
na jeden znak
%MB0:8:=’abcdefg’
8 na jeden znak
na jeden znak
105.16
93.80
93.80
1.65
1.30
1.30
9
120.72
110.20
110.20
11
4.15
3.85
3.85
0.5
Konwersja S∏owo & lt; - & gt; ¸aƒcuch znaków
%MW1:=STRING_TO_INT(%MB0:7)
97.69
91.95
91.95
7
%MB0:7:=INT_TO_STRING(%MW0)
104.36
96.70
96.70
7
%MD1:=STRING_TO_DINT(%MB0:13)
1 070.53
965.62
965.62
7
%MB0:13:=DINT_TO_STRING(%MD0)
322.29
295.35
295.35
7
Konwersja S∏owo podwójne & lt; - & gt; ¸aƒcuch znaków
Konwersja WartoÊç zmiennoprzecinkowa & lt; - & gt; ¸aƒcuch znaków
%MF1:=STRING_TO_REAL(%MB0:15)
1 783.70
1 634.53
1 634.53
7
%MB0:15:=REAL_TO_STRING(%MF0)
741.75
681.20
681.20
7
1 170.00
770.00
820.05
15
950.00
600.00
639.00
15
860.00
520.00
553.80
13
%MW0 := FIND(%MB10:20,%MB30:10);
1 610.00
1 000.00
1 065.00
13
%MB10:20 := INSERT(%MB30:10,%MB50:10.4);
1 270.00
800.00
852.00
17
920.00
570.00
607.05
13
Operacje na ∏aƒcuchach
%MB10:20 := CONCAT(%MB30:10,%MB50:10)
%MB10:20 := DELETE(%MB10:22.2,3);
%MW0 := EQUAL_STR(%MB10:20,%MB30:20);
%MB10:20 := LEFT(%MB30:30,20);
%MW0 := LEN(%MB10:20);
5-ty znak jest
inny
770.00
340.00
362.10
9
%MB10:20 := MID(%MB30:30,20,10);
1 080.00
700.00
745.50
15
%MB10:20 :
= REPLACE(%MB30:20,%MB50:10,10,10);
%MB10:20 := RIGHT(%MB30:30,20);
1 450.00
870.00
926.55
19
1 480.00
950.00
1 011.75
13
___________________________________________________________________________
8/15
B
8.2.11 Funkcje specjalne oraz funkcje Orphee
ST
Warunki
Czas wykonywania
(s)
3710
3720
3720
RAM Zasobnik
Rozmiar
(s∏owa)
37xx
Komunikacja
SEND_REQ(%KW0:6,15,%MW0:1,%MW10:10,%MW30:4)
2182
1818
1936
21
SEND_TLG(%KW0:6,1,%MW0:5,%MW30:2)
1636
1364
1452
15
SEND_MSG(ADR#1.0,%MW0:2,%MW10:2)
2 240
2 000
2208
19
SEND_ALARM(ADR#1.0,%MW0:2,%MW10:2)
2 240
2 000
2208
19
GET_MSG(ADR#1.0,%MW0:2,%MW10:2)
2 240
2 000
2 208
19
GET_VALUE(ADR#1.0,%MW0,%MW10:2)
1 120
1 000
1 104
17
ASK_MSG(ADR#1.0,%MW0:2,%MW10:2,%MW20:2)
2 240
2 000
2 208
23
ASK_VALUE(ADR#1.0,%MW0,%MW10:2,%MW20:2)
2 240
2 000
2 208
21
Interfejs Cz∏owiek - Maszyna
DISPLAY_ALRM(ADR#1.0,%MW0,%MW10:2)
1 120
1 000
1 104
17
DISPLAY_GRP(ADR#1.0,%MW0,%MW10:2)
1 120
1 000
1 104
17
DISPLAY_MSG(ADR#1.0,%MW0,%MW10:2)
1 120
1 000
1 104
17
CONTROL_LEDS(ADR#1.0,%MW0:2,%MW10:2)
2 240
2 000
2 208
19
ASSIGN_KEYS(ADR#1.0,%MW0:2,%MW10:2)
2 240
2 000
2 208
19
PANEL_CMD(ADR#1.0,%MW0:2,%MW10:2)
2 240
2 000
2 208
19
deval_mmi=0
1320
1100
1172
24
deval_mmi=1
1080
900
958.5
Sterownie procesem
PID(“PIDS1”,’Unit’,%IW3.5,%MW12,%M16,%MW284:43)
PWM(%MW11,%Q2.1,%MW385:5)
600
500
532.5
11
SERVO(%MW12,%IW3.6,%Q2.2,%Q2.3,%MW284:43,
%MW390:10)
PID_MMI(ADR#0.0.4,%M1,%M2:5,%MW410:62)
960
800
852
19
1140
950
1012
20
EN=1
___________________________________________________________________________
8/16
Parametry j´zyka dla sterowników TSX 37/57
8
B
ST
Warunki
Czas wykonywania
(s)
3710
3720
3720
RAM
Zas.
Rozmiar
(s∏owa)
37xx
Funkcje Orphee
DSHL_RBIT(%MD102,16,%MD204,%MD206)
czytanie10 s∏ów
440
320
341
13
DSHR_RBIT(%MD102,16,%MD204,%MD206)
zapisanie10 s∏ów
660
480
511
13
13
DSHRZ_C(%MD102,16,%MD204,%MD206)
" odwrócenie " 10 s∏ów
410
310
330
WSHL_RBIT(%MW102,8,%MW204,%MW206)
wymiana 10 s∏ów
300
220
234
13
WSHR_RBIT(%MW102,8,%MW204,%MW206)
20 bajtów
390
280
298
13
WSHRZ_C(%MW102,8,%MW204,%MW206)
20 bajtów
300
220
234
13
SCOUNT(%M100,%MW100,%M101,%M102,%MW101,
%MW102,%M200,%M201,%MW200,%MW201)
20 bajtów
510
410
437
25
30
30
32
2
WejÊcie analogowe
180
180
216
6
Wyjscie analogowe
90
70
74
Modu∏ licznika CTZ
110
95
104
8.2.12 Jawna wymiana I/O
Read_Sts %CHi.MOD
Dowolna aplikacja z wyjàtkiem aplikacji dla kana∏u
komunikacyjnego procesora
Read_Sts %CHi
Write_Param %CHi
WejÊcie analogowe
790
570
790
Modu∏ licznika CTZ
1127
1080
1083
WejÊcie analogowe
260
290
316
Modu∏ licznika CTZ
338
295
6
300
Read_Param %CHi
6
Save_Param %CHi
WejÊcie analogowe
1234
1220
1240
Modu∏ licznika CTZ
1370
1220
1240
6
Restore_Param %CHi
WejÊcie analogowe
550
510
535
Modu∏ licznika CTZ
1160
1080
1097
50
47
52
6
Write_Cmd %CHi
WyjÊcie dyskretne
6
___________________________________________________________________________
8/17
B
B
8.3
Sterownik TSX 57
W niniejszym rozdziale pogrupowano procesory w trzy rodziny, w zwiàzku z czym
w tablicach b´dà zamieszczane tylko symbole odpowiadajàce tym grupom:
Oznaczenie
Procesory
A
TSX 57 10 i PCX 57 10
B
TSX 57 20, TSX 57 25, TSX 57 30, TSX 57 35
PMX 57 10, PCX 57 35
C
TSX 57 40, TSX 57 45
PMX 57 20, PMX 57 35, PMX 57 45
Uwaga: W dalszej cz´Êci instrukcji, w stopce strony wyÊwietlana b´dzie informacja na
temat przynale˝noÊci procesorów do odpowiednich grup.
___________________________________________________________________________
8/18
Parametry j´zyka dla sterowników TSX 37/57
8
B
8.3.1 Instrukcje logiczne
LD
IL
ST
Obiekty
0.29
Czas wykonywania
Size
(s)
(s∏owa)
A
B/C B/C B/C B/C 57xx
& gt; 4K RAM RAM Zas. Zas.
& gt; 4K
& gt; 4K
0.12
0.21
1
%M1 (1)
0.58
0.25 0.37 0.37 0.58
1
%M1[%MW2]
%MW0:X0 (2)
%IWi.j:Xk (3)
%MW0[%MW10]:X0
%KW0[%MW10]:X0
%M1
2.33
1.46
2.33
3.50
3.50
0.87
1.00
0.62
1.00
1.50
1.50
0.37
1.58
1.00
1.58
2.37
2.37
0.79
6
4
6
9
9
2
%M1[%MW2]
2.62
idem
1.12 1.12 1.79 1.79
LDN
7
A
LD,
LDN
LDR,
1.00
0.62
1.00
1.50
1.50
0.50
1.58
1.00
1.58
2.37
2.37
0.58
LDF
AND,
LD,
ANDN , AND (, AND (N , idem OR
ANDR, ANDF, AND (R, AND (F, idem OR
XOR, XORN
idem LDR, LDF
%M1
%M1[%MW2]
%MW0:X0
%IWi.j:Xk
%MW0[%MW10]:X0
%KW0[%MW10]:X0
%M1
%M1[%MW2]
%M1
2.04
5.54
4.08
4.96
7.87
7.87
2.25
27.28
1.17
0.87
2.37
1.75
2.12
3.37
3.37
1.13
26.13
0.50
1.12
1.62
1.37
1.75
2.25
2.25
1.62
2.87
0.62
1.37
3.79
2.83
3.42
5.37
5.37
1.69
26.44
0.75
1.79
2.62
2.25
2.83
3.62
3.62
2.62
4.62
0.96
5
13
10
14
14
18
9
19
2
%M1[%MW2]
%MW0:X0
%NW{i}j:Xk (3)
%MW0[%MW10]:X0
sprz´˝enia wielokrotne w Ladder, «koszt» 2-go sprz´˝enia i nast´pnych
blok operacyjny
[akcja]
blok wykonywany
2.62
1.75
2.62
3.79
0.87
0.58
1.12
0.75
1.12
1.25
0.37
0.25
1.12
0.75
1.12
1.25
0.50
0.25
1.75
1.17
1.75
2.54
0.54
0.42
1.75
1.17
1.75
2.54
0.75
0.42
7
4
8
8
1
1
0.71
0.37 0.37 0.54 0.54
1
XORR, XORF
ST, STN,
S, R
nie wykonywany
(1)
(2)
(3)
Obejmuje wszystkie obiekty, co do których mo˝na stosowaç wymuszenie:
%I,%Q,%X,%M,%S
Inne obiekty tego typu: bity wyjÊciowe bloku funkcyjnego %TMi.Q ..., bity wydzielone ze
s∏ów systemowych %SWi:Xj, bity wydzielone ze s∏ów %KW, bity b∏´dów %Ii.j.ERR
Inne obiekty tego typu: bity wydzielone ze s∏ów wspólnych %NW{i}j:Xk, bity wydzielone ze
s∏ów I/O %IWi.j.Xk, %QWi.j.Xk
A TSX 5710 i PCX 5710
B TSX5720/25/30/35,PMX5710,PCX5735 C TSX 57 40/45 i PMX 57 20/35/45
___________________________________________________________________________
8/19
B
B
LD
IL
ST
blok porównywania
poziomy
blok porównywania
pionowy
zamkni´cie (zbieg)
otwarcie nie poprzedzone zamkni´ciem
LD [porownyw.]
Obiekty
czas dodawany do
porównywania
pomi´dzy 2 %MWi
Czas wykonywania
Rozmiar
(s)
(s∏owa)
A
A
B/C B/C B/C B/C 57xx
& gt; 4K RAM RAM Zas. Zas.
& gt; 4K
& gt; 4K
0.00 0.00 0.00 0.00 0.00 0.00
0
2.04
2.04 0.87 0.87 1.37 1.37
5
ladder, 1 otwarcie
0.29
0.29
0.29 0.12 0.12 0.21 0.21
0.29 0.12 0.12 0.21 0.21
1
1
MPS, MPP,
lista MPS+MPP
0.87
0.87 0.37 0.37 0.62 0.62
3
MRD
lista MRD
0.29
0.29 0.12 0.12 0.21 0.21
1
)
)
8.3.2 Bloki funkcyjne
LD
IL
ST
Obiekty/warunki
A
Czas wykonywania
(s)
B
C
Rozmiar
(s∏owa)
57xx
Zegar IE
zbocze rosnàce na IN
IN %TM1
START %TM1
start zegara
67.87
46.92
13.52
DOWN %TM1
zatrzymanie zegara
27.84
19.50
3
5.01
(zb. rosnàce)
zbocze opadajàce na IN IN %TM1
(zbocze opadajàce)
IN =1
IN %TM1 (=1)
zegar pracuje on
32.15
22.66
5.80
IN =0
IN %TM1 (=0)
zegar nie pracuje off
28.60
20.18
5.40
Zegar PL7-3
START %T1
zamro˝enie
23.08
16.16
5.13
RESET %T1
kasowanie
23.46
16.26
5.85
zegar pracuje on
E=0
uaktywnienie
STOP %T1
3
30.40
21.51
5.78
zegar nie pracuje off
Licznik dwukierunkowy
kasowanie, R=1
R %C8 (=1)
RESET %C8
kasowanie
30.38
21.26
6.11
nastawianie, S=1
S %C9 (=1)
PRESET %C9
nastawianie
33.99
23.55
6.25
zbocze rosnàce na CU
CU %C8
UP %C8
(zb. rosnàce)
CD %C9
DOWN %C9
(zb. rosnàce)
R/S/CU/CD bit nie aktywny
zliczanie up
33.81
23.49
6.50
odliczanie down
33.81
23.49
6.50
brak akcji
22.37
16.22
4.58
zbocze rosnàce na CD
kroki nie aktywne
A TSX 5710 i PCX 5710
3
B TSX5720/25/30/35,PMX5710,PCX5735 C TSX 57 40/45 i PMX 57 20/35/45
___________________________________________________________________________
8/20
Parametry j´zyka dla sterowników TSX 37/57
8
B
Bloki funkcyjne (ciàg dalszy)
LD
IL
ST
obiekty/warunki
A
Czas wykonywania
(s)
B
C
Rozmiar
(s∏owa)
57xx
B
Przerzutnik monostabilny
zbocze rosnàce na S
S %MN0,
START %MN0
start
57.42
40.65
11.88
przerzutnik aktywny
20.38
14.11
3
4.04
(zb. rosnàce)
S=1
S %MN0,
S=1/0
Rejestr
zbocze na I
I %R2 (front)
PUT %R2
zapisywanie
35.69
24.92
6.72
zbocze na O
O %R2 (front)
GET %R2
odczytywanie
35.69
24.92
6.72
R=1
R %R1 (=1)
RESET %R2
kasowanie
26.83
18.80
6.11
wejÊcia nie aktywne
bit
I/O/R, nie akt.
brak akcji
20.71
15.50
4.62
do przodu, ustalony
268.69
185.41
58.68
na bit sterujàcy
25.00
25.00
25.00
kasowanie, sta∏e
257.01
176.06
57.00
na bit sterujàcy
25.00
25.00
25.00
brak akcji, sta∏y
259.07
179.06
56.82
na bit sterujàcy
25.00
25.00
3
25.00
B´ben
zbocze na U
R=1
wejÊcia nie aktywne
U %DR0
R %DR1
R/U, bit nie akt
A TSX 5710 i PCX 5710
UP %DR1
RESET %DR2
3
B TSX5720/25/30/35,PMX5710,PCX5735 C TSX 57 40/45 i PMX 57 20/35/45
___________________________________________________________________________
8/21
B
8.3.3 Operacje arytmetyczne - obiekty ca∏kowite i zmiennoprzecinkowe
Wspó∏czynnik korekcji uwzgl´dniajàcy typ obiektu
Czas i wartoÊci zamieszczone na nast´pnych stronach dotyczà: %MW0, %MD0 i %MF0
Czas wykonywania
(s)
A
B RAM B zas.
C RAM
C zas.
Rozmiar
(s∏owa)
57xx
• WartoÊç, którà nale˝y odjàç dla wartoÊci bezpoÊrednich
16#1234 / %MW0
0.29
0.12
0.17
0.12
0.17
0
16#12345678 / %MD0 or %MF0
0.29
0.12
0.12
0.12
0.12
1
• WartoÊç jakà nale˝y dodaç dla s∏ów podwójnych, indeksowanych i zmiennoprzecinkowych
%MW2[%MW0]
or %MD2[%MW0]
or %MF2[%MW0]
obiekt poprzedzajàcy :=
2.04
0.87
1.37
0.87
1.37
5
1-a operacja, przypisanie
2.04
0.87
1.37
0.87
1.37
5
2-ga operacja (lub 1-y indeksowany argument)
2.04
0.87
1.37
0.87
1.37
5
0.58
0.37
0.58
2
• WartoÊci, które nale˝y dodaç dla nast´pujàcych obiektów:
S∏owa wspólne, s∏owa I/O
0.87
0.37
Wspó∏czynniki korekcji uwzgl´dniajàce kontekst operacji
• WartoÊç jakà nale˝y dodaç, gdy operacja zajmuje co najmniej 2-gà pozycj´ w wyra˝eniu,
np. *%MW2 w := %MW0 * %MW1 * %MW2 zawiera nast´pujàce operacje: *,/,REM (na
s∏owach, s∏owach podwojnych) i operacje na wartoÊciach zmiennoprzecinkowych
%MW0
0.58
0.25
0.37
0.25
0.37
1
%MD0 i %MF0
0.87
0.37
0.54
0.37
0.54
1
• WartoÊç jakà nale˝y dodaç dla operacji o wy˝szym priorytecie,lub której wynik mieÊci si´
w nawiasie, np. %MW0 + %MW2 + (...)
%MW0
0.29
0.12
0.17
0.12
0.17
1
%MD0 i %MF0
0.58
0.25
0.33
0.25
0.33
1
A TSX 5710 i PCX 5710
B TSX5720/25/30/35,PMX5710,PCX5735 C TSX 57 40/45 i PMX 57 20/35/45
___________________________________________________________________________
8/22
Parametry j´zyka dla sterowników TSX 37/57
8
B
ST
obiekty
warunki
Czas wykonywania
(s)
A
obiekt za :=
%MW0
Rozmiar
(s∏owa)
B RAM B zas. C RAM C zas.
57xx
0.87
0.37
0.58
0.37
0.58
%MW0+(..., lub przed *, /, REM 1.17
0.50
0.75
0.50
0.75
2
1.17
0.50
0.75
0.50
0.75
2
%MD0+(..., lub przed *, /, REM 1.75
0.75
1.08
0.75
1.08
2
%MD0
2
%MF0
1.75
0.75
1.08
0.75
1.08
2
:=
%MW0
0.87
0.37
0.58
0.37
0.58
2
%MD0 and %MF0
1.17
0.50
0.75
0.50
0.75
2
=, & lt; & gt; , & lt; =, & lt; , & gt; , & gt; =
%MW0
1.17
0.50
0.79
0.50
0.79
4
%MD0
0.62
1.04
4
4.17
4.42
4
%MW0
0.87
0.37
0.58
0.37
0.58
3
1.17
0.50
0.75
0.50
0.75
3
%MW0
0.87
0.37
0.58
0.37
0.58
3
1.17
0.50
0.75
0.50
0.75
3
%MF0
99.42
71.51 71.76
4.42
4.67
3
%MW0
10.83
9.14
4.65
4.86
3
%MD0
*
1.04
33.88 34.13
%MD0
+, -
0.62
48.36
%MD0
AND, OR, XOR
1.46
%MF0
55.31
42.71 42.96 15.26 15.51
3
9.35
%MF0
87.60
63.61 63.86
4.42
4.67
3
%MW0
11.93
9.99
4.94
5.15
3
%MD0
333.15 226.54 226.79 49.38 49.63
3
/
%MF0
95.83
68.51 68.76
5.72
5.97
3
ABS, -obiekt
%MW0
0.87
0.37
0.58
0.37
0.58
2
%MD0
1.17
0.54
0.75
0.54
0.75
2
%MF0
18.82
13.01 13.26
3.67
3.92
2
/, REM
NOT
10.20
0.87
0.37
0.58
0.37
0.58
2
%MD0
SQRT
%MW0
1.17
0.54
0.75
0.54
0.75
2
5.53
22.20
16.24 16.45
5.74
3
%MD0
111.29
89.66 89.91 16.14 16.39
3
%MF0
INC, DEC
%MW0
233.62 173.01 173.26 5.10
3
0.50
0.75
0.50
0.75
2
1.75
%MD0
SHL, SHR, ROL, ROR
5.35
1.17
%MW0
0.75
1.08
0.75
1.08
2
2.92
1.25
1.96
1.25
1.96
10
2.12
1.37
2.12
10
%MW0
dla 1 bitu
%MD0
dla 1 bitu
3.21
1.37
na 1 bit dodatkowy
0.042
0.042 0.042 0.042 0.042
LN
%MF0
1711
1270
1270
4.53
4.78
3
LOG
%MF0
1819
1350
1350
4.53
4.78
3
EXP
%MF0
1442
1070
1070 12.03 12.28
3
EXPT
%MF0
3412
2624
2775 98.70 98.70
3
TRUNC
%MF0
215
165
175
52.40 52.40
3
COS
%MF0
3530
2620
2620
4.53
4.78
3
SIN
%MF0
3544
2630
2630
4.53
4.78
3
TAN
%MF0
3665
2720
2720
4.53
4.78
3
ACOS
%MF0
5093
3780
3780
5.33
5.58
3
ASIN
%MF0
5093
3780
3780
6.73
6.98
3
ATAN
%MF0
3476
2580
2580
4.33
4.58
3
DEG_TO_RAD
%MF0
814
626
662 139.90 139.90
3
RAD_TO_DEG
%MF0
791
608
643 140.20 140.20
3
___________________________________________________________________________
8/23
B
B
8.3.4 Instrukcje programowe
ST
Obiekty
Warunki
Czas wykonywania
(s)
A
B RAM B zas. C RAM C zas.
Rozmiar
(s∏owa)
57xx
Skok %Li
2.58
1.25
1.71
1.25
1.71
3
Maskevt
33.98
23.96 23.96
9.59
9.59
1
Unmaskevt
34.54
24.41 24.41
9.77
9.77
1
SRi
3.92
1.75
2.42
1.75
2.42
2
Return
1.00
0.50
0.71
0.50
0.71
2
8.3.5 Struktura komend
ST
Czas wykonywania
Rozmiar
(s)
(s∏owa)
A
B/C
B/C
57xx
RAM
Zasobnik
& lt; war & gt;
oszacowywanie warunku
bity, kóre mo˝na wymuszaç
patrz instrukcje logiczne LD %M1
porównywanie
patrz porównywanie =, & lt; , & gt; ...
if & lt; war & gt; then & lt; akcja & gt;
end_if;
czasy i rozmiary podane poni˝ej powinny
zostaç dodane do tych akcji, które
znajdujà si´ w strukturze
warunek typu prawda
0.58
0.25
0.42
warunek typu fa∏sz (skok)
0.71
0.37
0.54
If & lt; war & gt; then & lt; akcja1 & gt;
& lt; akcja2 & gt; end_if;
warunek typu prawda
1.29
0.62
0.96
warunek typu fa∏sz
0.71
0.37
0.54
while & lt; war & gt; do. & lt; akcja & gt;
end_while
wywo∏anie p´tli sprz´˝onej
1.29
0.62
0.96
2
0.37
0.54
2
wyjÊcie z p´tli
& lt; war & gt; end_repeat
repeat & lt; akcja & gt; until
0.71
wywo∏anie p´tli sprz´˝onej
0.71
0.37
0.54
ostatnie " przejÊcie " p´tli
0.58
0.25
1.75
0.75
1.17
5.08
2.12
3.29
wyjÊcie z p´tli
2.46
1.12
4
0.42
for & lt; S∏owo1:=s∏owo2 & gt; to
& lt; s∏owod3 & gt; & lt; akcja & gt; end_for
wywo∏anie komendy for,
wykonywanej tylko 1 raz
wywo∏anie p´tli sprz´˝onej
2
1.71
A TSX 5710 i PCX 5710
15
B TSX5720/25/30/35,PMX5710,PCX5735 C TSX 57 40/45 i PMX 57 20/35/45
___________________________________________________________________________
8/24
Parametry j´zyka dla sterowników TSX 37/57
8
B
8.3.6 Konwersja numeryczna
ST
Czas wykonywania
(s)
A
B RAM
B zas.
C RAM
C zas.
Rozmiar
(s∏owa)
57xx
BCD_TO_INT
30.33
24.44
24.65
4.75
4.96
3
INT_TO_BCD
24.48
20.19
20.40
4.51
4.72
3
GRAY_TO_INT
59.73
40.79
41.00
5.82
6.02
3
INT_TO_REAL
60.35
40.64
40.85
3.25
3.46
3
DINT_TO_REAL
49.14
34.76
35.01
3.67
3.92
B
3
REAL_TO_INT
91.59
60.86
61.11
3.38
3.63
3
REAL_TO_DINT
68.84
48.31
48.56
3.67
3.92
3
5
DBCD_TO_DINT
1 625.73 1 069.50
1 192.30
378.40
378.15
DBCD_TO_INT
1 379.53
909.63
1 014.07
323.83
323.62
5
DINT_TO_DBCD
1 251.05
819.50
913.55
314.88
314.63
5
620.01
439.50
489.85
168.73
168.48
5
INT_TO_DBCD
8.3.7 ¸aƒcuch bitów
ST
warunki
Czas wykonywania
Rozmiar
(s)
A
(s∏owa)
B RAM B zas. C RAM C zas.
57xx
Inicjacja tablicy bitowej
%M30:8 := 0
8 bitów
6.71
2.87
4.12
2.87
4.12
7
%M30:16 := 1
16 bitów
11.37
4.87
6.79
4.87
6.79
7
%M30:24 := 2
24 bity
24.47
15.31 16.81 15.31 16.81
12
%M30:32 := 2
32 bity
29.13
17.31 19.48 17.31 19.48
12
8
Kopiowanie tablicy bitów do tablicy bitów
%M30:8 := %M20:8
8 bitów
13.71
5.87
8.17
5.87
8.17
%M30:16 := %M20:16
16 bitów
16.62
7.12
9.83
7.12
9.83
8
%M30:24 := %M20:24
24 bity
45.46
24.31
28.85 24.31 28.85
13
29.31
%M30:32 := %M20:32
32 bity
57.13
35.52 29.31 35.52
13
%M30:16 := COPY_BIT(%M20:16)
16 bitów
322.00 230.00 256.45 99.20 99.20
17
32 bity
A TSX 5710 i PCX 5710
490.00 350.00 390.25 153.20153.20
17
128 bitów
1526.00 1090.001215.35 470.20 470.20
17
B TSX5720/25/30/35,PMX5710,PCX5735 C TSX 57 40/45 i PMX 57 20/35/45
___________________________________________________________________________
8/25
B
ST
Warunki
Czas wykonywania
(s)
A
Rozmiar
(s∏owa)
B RAM B zas. C RAM C zas.
57xx
Operacje logiczne na tablicach bitowych
AND_ARX, OR_ARX, XOR_ARX
%M0:16 := AND_ARX(%M30:16,%M50:16)
16 bitów
434.00
310.00 345.65
136.10 136.10
%M0:32 := AND_ARX(%M30:32,%M50:32)
32
686.00
490.00 546.35
213.00 213.00
24
24
%M0:128 := AND_ARX(%M30:128,%M50:128)
128
2 198.00 1 570.00 1 750.55 674.40 674.40
24
NOT_ARX
%M0:16 := NOT_ARX(%M30:16)
16 bitów
322.00
230.00 256.45
99.20
99.20
17
32
490.00
350.00 390.25
153.20 153.20
17
1 526.00 1 090.00 1 215.35 470.20 470.20
17
128
Kopiowanie tablicy bitowej do tablicy s∏ów
%MW1 := %M30:8
8 bitów
8.75
3.75
5.25
3.75
5.25
6
%MW1 := %M30:16
16 bitów
15.75
6.75
9.25
6.75
9.25
6
%MD2 := %M30:24
24 bity
23.04
10.54
13.83
10.54
13.83
6
%MD2 := %M30:32
32 bity
30.04
13.54
17.83
13.54
17.83
6
%MW1:2 := BIT_W(%M40:17,0,17,0)
17 bitów
518.00
370.00 412.55
150.50
150.50
23
%MD1:2 := BIT_D(%M30:33,0,33,0)
33 bity
728.00
520.00 579.80
200.00 200.00
23
Kopiowanie s∏owa lub tablicy s∏ów do tablicy bitowej
%M30:8 := %MW1
8 bitów
6.71
2.87
4.08
2.87
4.08
6
%M30:16 := %MW2
16 bitów
11.37
4.87
6.75
4.87
6.75
6
%M30:24 := %MD1
24 bity
24.76
16.11
17.36
16.11
17.36
11
%M30:32 := %MD3
32 bity
29.42
18.11
20.02
18.11
20.02
11
%M30:32 := W_BIT(%MW0:2,0,2,0)
32 bity
518.00
370.00 412.55
142.31 142.31
23
%M30:32 := D_BIT(%MD0:1,0,2,0)
32 bity
616.00
440.00 490.60
169.23 169.23
23
A TSX 5710 i PCX 5710
B TSX5720/25/30/35,PMX5710,PCX5735 C TSX 57 40/45 i PMX 57 20/35/45
___________________________________________________________________________
8/26
Parametry j´zyka dla sterowników TSX 37/57
8
B
8.3.8 Tablice s∏ów, s∏ów podwójnych i zmiennoprzecinkowych
ST
Warunki
Czas wykonywania
(s)
A
Rozmiar
(s∏owa)
B RAM B zas. C RAM C zas.
57xx
Inicjacja tablicy s∏ów za pomocà s∏owa
%MW0:10 := %MW100
10 s∏ów
74.48
%MD0:10 := %MD100
10 words
51.12
27.04
28.00
10
0.25
0.25
0.37
0.37
78.29
79.29
33.59
34.59
10
4.41
2.95
2.95
0.90
0.90
93.76
95.26
45.65
47.14
15
0.95
0.50
0.50
0.74
0.74
53.75
55.25
15
1.30
1.54
1.54
162.54 164.79
71.59
73.84
23
10.05
7.15
3.07
3.07
229.79 232.04
104.03
106.28
23
18.41
13.55
13.55
6.12
6.12
184.99 187.24
76.30
78.55
23
11.03
9.40
3.55
3.55
658.44 660.69
241.22
243.47
23
74.04
56.40
19.82
19.82
192.64 194.89
77.99
80.24
23
11.35
115.45
na jedno s∏owo
50.16
0.47
na jedno s∏owo
10.15
3.71
3.71
Kopiowanie tablicy s∏ów do tablicy s∏ów
%MW0:10:=%MW20:10;
10 s∏ów
139.71
na jedno s∏owo
%MD0:10:=%MD20:10;
10 s∏ów
151.18
na jedno s∏owo
102.46 103.96
2.02
1.30
Operacje logiczne i arytmetyczne pomi´dzy dwiema tablicami s∏ów
+, %MW0:10 :=%MW10:10 + %MW20:10;
10 s∏ów
236.81
na jedno s∏owo
%MD0:10:=%MD10:10+%MD20:10;
10 s∏ów
325.79
na jedno s∏owo
7.15
*
%MW0:10:=%MW10:10 * %MW20:10;
10 s∏ów
246.52
na jedno s∏owo
%MD0:10:=%MD10:10 * %MD20:10;
10 s∏ów
881.77
na jedno s∏owo
9.40
56.40
/, REM
%MW0:10:=%MW10:10 / %MW20:10;
10 s∏ów
249.44
na jedno s∏owo
%MD0:10:=%MD10:10 / %MD20:10;
10 s∏ów
10.15
3 669.10 2 501.99 2 504.24 544.65
546.90
23
352.83 240.75
240.75
50.19
50.19
160.14 162.39
71.15
73.40
23
6.90
3.02
3.02
231.09 233.34
104.96
107.21
23
18.05
13.65
6.20
6.20
na jedno s∏owo
AND, OR, XOR
%MW0:10:=%MW10:10 AND %MW20:10; 10 s∏ów
235.38
na jedno s∏owo
%MD0:10:=%MD10:10 AND %MD20:10;
10 s∏ów
na jedno s∏owo
A TSX 5710 i PCX 5710
9.94
322.35
6.90
13.65
B TSX5720/25/30/35,PMX5710,PCX5735 C TSX 57 40/45 i PMX 57 20/35/45
___________________________________________________________________________
8/27
B
B
ST
Warunki
Czas wykonywania
(s)
A
Rozmiar
(s∏owa)
B RAM B zas. C RAM C zas.
57xx
Operacje logiczne i arytmetyczne mi´dzy 1 tablicà s∏ów a 1 s∏owem
+, %MW0:10 :=%MW10:10 + %MW20;
10 s∏ów
or %MW0:10 := %MW20 + %MW10:10
na jedno s∏owo
170.69
%MD0:10 :=%MD10:10 + %MD20;
10 s∏ów podwójnych
230.52
na s∏owo podwójne
9.92
115.14 116.85
4.37
2.85
156.91 158.66
6.75
6.75
48.99
50.70
18
2.85
0.88
0.88
67.61
69.36
18
2.62
2.62
53.64
55.35
18
5.05
1.35
1.35
18
*
%MW0:10 :=%MW20*%MW10:10;
10 s∏ów
180.13
na jedno s∏owo
%MD0:10:=%MD20*%MD10:10;
137.04 138.75
5.31
5.05
10 s∏ów podwójnych
747.33
568.16 569.91
205.84
207.59
na s∏owo podwójne
61.59
47.85
47.85
16.43
16.43
10 s∏ów
212.87
166.39 168.10
65.15
66.86
18
7.90
2.42
2.42
511.16
18
/, REM
%MW0:10 :=%MW10:10 / %MW30;
na jedno s∏owo
%MD0:10:=%MD10:10 / %MD30;
10 s∏ów podwójnych
8.48
7.90
3 536.66 2 418.56 2 420.31 509.41
na s∏owo podwójne
340.51
232.90 232.90
46.82
46.82
10 s∏ów
170.89
115.59 117.30
49.09
50.79
18
2.90
0.89
0.89
205.84
207.59
18
2.57
2.57
46.70
48.20
15
2.85
0.88
0.88
15
AND, OR, XOR
%MW0:10 :=%MW10:10 AND %MW20;
na jedno s∏owo
%MD0:10:=%MD20*%MD10:10;
4.39
10 s∏ów podwójnych
747.33
na s∏owo podwójne
9.81
2.90
568.16 569.91
6.50
6.50
NOT
%MW0:10 :=NOT(%MW10:10);
10 s∏ów
161.71
na jedno s∏owo
%MD0:10:=NOT(%MD10:10);
109.06 110.56
4.37
2.85
10 s∏ów podwójnych
184.14
55.34
56.84
na s∏owo podwójne
6.61
125.51 127.01
4.50
4.50
1.75
1.75
111.87
76.61
77.57
29.61
30.57
16
3.40
2.40
2.40
0.53
0.53
16
Sumowanie w tablicy
%MW20:=SUM(%MW0:10);
10 s∏ów
na jedno s∏owo
%MD20:=SUM(%MD0:10);
%MF20:=SUM_ARR(%MF0:10);
10 s∏ów podwójnych
130.74
87.74
88.74
34.03
35.03
na s∏owo podwójne
4.96
3.30
3.30
0.93
0.93
10 s∏ów podwójnych
1905
1270.00 1313.82 303.20
303.20
16
na s∏owo podwójne
A TSX 5710 i PCX 5710
B TSX5720/25/30/35,PMX5710,PCX5735 C TSX 57 40/45 i PMX 57 20/35/45
___________________________________________________________________________
8/28
Parametry j´zyka dla sterowników TSX 37/57
8
B
ST
Warunki
Czas wykonywania
(s)
A
Rozmiar
(s∏owa)
B RAM B zas. C RAM C zas.
57xx
B
Porównywanie tablic
%MW20:=EQUAL(%MW0:10;%MW10:10); 10 s∏ów
142.90
99.14
100.85
1.14
0.95
155.56
110.06 111.81
na jedno s∏owo
%MD20:=EQUAL(%MD0:10;%MD10:10);
10 s∏ów podwójnych
na s∏owo podwójne
2.33
2.00
2.00
%MF20:=EQUAL_ARR
10 s∏ów podwójnych
825
550.00 568.98
(%MF0:10;%MF10:10);
47.31
49.02
17
0.95
0.83
0.83
56.02
57.77
17
1.69
1.69
137.50
137.50
17
14
na s∏owo podwójne
Wyszukiwanie
%MW20 := FIND_EQW(%MW0:10,%KW0)
10 s∏ów
374.68
240.00 267.60
97.00
97.00
%MD20 := FIND_EQD(%MD0:10, %KD0)
10 s∏ów podwójnych
394.40
260.00 289.90
100.00
100.00
15
%MF20 := FIND_EQR(%MF0:10, %KF0)
10 s∏ów podwójnych
936
624.00 645.53
135.70
135.70
15
%MF20 := FIND_EQRP(%MF0:10, %KF0)
10 s∏ów podwójnych
936
624.00 645.53
135.70
135.70
15
%MD20 := FIND_GTR(%MF0:10, %KF0)
10 s∏ów podwójnych
936
624.00 645.53
135.70
135.70
15
%MD20 := FIND_LTR(%MF0:10, %KF0)
10 s∏ów podwójnych
936
624.00 645.53
135.70
135.70
15
Wyszukiwanie wartoÊci max i min.
%MW20 := MAX_ARW(%MW0:10)
10 s∏ów
404.26
260.00 289.90
100.00
100.00
12
%MD20 := MAX_ARD(%MD0:10)
10 s∏ów podwójnych
483.14
310.00 345.65
119.23
119.23
12
%MF20 := MAX_ARR(%MF0:10)
10 s∏ów podwójnych
1555
1037.00 1072.78 261.20
261.20
12
%MD20 := MIN_ARR(%MF0:10)
10 s∏ów podwójnych
1443
962.00 995.19
240.50
240.50
12
Liczba wystàpieƒ
%MW20:=OCCUR_ARW(%MW0:10,%KW0)
10 s∏ów
394.40
260.00 289.90
100.00
100.00
14
%MD20:=OCCUR_ARD(%MD0:10,%KD0)
10 s∏ów podwójnych
423.98
280.00 312.20
107.69
107.69
15
%MF20 := OCCUR_ARR(%MF0:10, %KF0)
10 s∏ów podwójnych
1435
957.00 990.02
239.25
293.25
15
12
Przesuniecie okr´˝ne
ROL_ARW(word or value, %MWj:10)
10 s∏ów
621.18
400.00 446.00
153.85
153.85
ROL_ARD(%MDi,%MDj:10)
10 s∏ów podwójnych
670.48
430.00 479.45
165.38
165.38
12
ROL_ARR(%MFi,%MFj:10)
10 s∏ów podwójnych
654
436.00 451.04
109.00
109.00
12
1 133.90 720.00 802.80
276.92
276.92
12
169.23
169.23
12
1433.00 1482.44 358.25
358.25
12
Sortowanie
SORT_ARW(%MWi,%MWj:10)
10 s∏ów
SORT_ARD(%MDi,%MDj:10)
10 s∏ów podwójnych
700.06
SORT_ARR(%MFi,%MFj:10)
10 s∏ów podwójnych
2150
440.00 490.60
Obliczanie d∏ugoÊci
LENGTH_ARW(tab_word)
71.42
50
55.74
19.28
19.28
12
LENGTH_ARD(tab_dword)
LENGTH_ARW(tab_real)
LENGTH_ARX(tab_bit)
71.42
71.42
71.42
50
50
50
55.74
55.74
55.74
19.28
19.28
19.28
19.28
19.28
19.28
12
12
12
A TSX 5710 i PCX 5710
B TSX5720/25/30/35,PMX5710,PCX5735 C TSX 57 40/45 i PMX 57 20/35/45
___________________________________________________________________________
8/29
B
8.3.9 Zarzàdzanie czasem
ST
Czas wykonywania
(s)
B RAM
B zas.
C RAM
A
C zas.
Rozmiar
(s∏owa)
57xx
19
Data, czas, czas trwania
%MW2:4 := ADD_DT(%MW2:4,%MD8)
5 176.50
3 500.00
3 902.50
1203.20
1203.20
%MD2 := ADD_TOD(%MD2,%MD8)
2 435.42
1 640.00
1 828.60
630.77
630.77
9
970.00
1 081.55
373.08
373.08
12
%MB2:11 := DATE_TO_STRING(%MD40) 1 429.70
%MW5 := DAY_OF_WEEK()
552.16
390.00
434.85
108.45
108.45
5
1 725.50
1 170.00
1 304.55
450.00
450.00
9
%MD10 := DELTA_DT(%MD2:4,%MW6:4) 3 549.60
2 410.00
2 687.15
926.92
926.92
19
%MD10 := DELTA_TOD(%MD2,%MD4)
2 632.62
1 780.00
1 984.70
684.62
684.62
9
%MB2:20 := DT_TO_STRING(%MW50:4) 2 297.38
1 550.00
1 728.25
596.15
596.15
17
19
%MD10 := DELTA_D(%MD2, %MD4)
%MW2:4 := SUB_DT(%MW2:4,%MD8)
5 492.02
3 750.00
4 181.25
1203.20
1203.20
%MD2 := SUB_TOD(%MD2,%MD8)
2 622.76
1 780.00
1 984.70
684.62
684.62
9
%MB2:15 := TIME_TO_STRING(%MD40) 1 922.70
1 270.00
1 416.05
488.46
488.6
12
%MB2:9 := TOD_TO_STRING(%MD40)
1 281.80
830.00
925.45
319.23
319.23
12
788.80
530.00
590.95
203.85
203.85
7
164.81
152.94
165.36
1500
111.44
103.79
111.79
1070
112.19
104.54
112.54
1190
46.43
43.47
46.45
411
47.18
44.22
47.20
411
8
8
8
8
FTON
80.1
53.40
53.40
35.10
35.10
FTOF
80.1
53.40
53.40
35.10
35.10
FTP
80.1
53.40
53.40
35.10
35.10
FPULSOR
406
290.4
323
112
112
%MD100 := TRANS_TIME(%MD2)
Dost´p do zegara czasu rzeczywistego
RRTC(%MW0:4)
WRTC(%MW0:4)
PTC(%MW0:5)
SCHEDULE(%MW0,%MW1,%MW2,
%MD10,%MD12,%M0)
8.3.10 Zegar
A TSX 5710 i PCX 5710
B TSX5720/25/30/35,PMX5710,PCX5735 C TSX 57 40/45 i PMX 57 20/35/45
___________________________________________________________________________
8/30
Parametry j´zyka dla sterowników TSX 37/57
8
B
8.3.11 ¸aƒcuchy znaków
ST
Warunki
Czas wykonywania
Rozmiar
(s)
A
(s∏owa)
B RAM B zas. C RAM C zas.
57xx
B
Przypisywanie ∏aƒcucha znaków
%MB0:8:=%MB10:8
8 znaków
na jeden znak
%MB0:8:=’abcdefg’
8 znaków
na jeden znak
147.75
1.64
193.86
5.94
103.56 103.56
1.25
1.25
136.88 136.88
4.35
4.35
51.96
51.96
1.21
1.21
15
56.53
56.53
14
1.69
1.69
0.5
Konwersja S∏owo & lt; - & gt; ∏aƒcuch znaków
%MW1:=STRING_TO_INT(%MB0:7)
145.69
104.31 104.52
37.93
38.14
10
%MB0:7:=INT_TO_STRING(%MW0)
149.67
109.21 109.42
35.52
35.73
10
1 408.43 1 061.01 1 061.01 364.71
Konwersja S∏owo podwójne & lt; - & gt; ∏aƒcuch znaków
%MD1:=STRING_TO_DINT(%MB0:13)
364.71
10
97.35
97.60
10
%MF1:=STRING_TO_REAL(%MB0:15)
2 606.63 1 815.08 1 815.33 635.96
635.96
10
%MB0:15:=REAL_TO_STRING(%MF0)
1 084.46 752.94 753.27
389.47
389.81
10
1 106.00 790.00 880.85
%MB0:13:=DINT_TO_STRING(%MD0)
411.64
317.69 317.94
Konwersja WartoÊç zmiennoprzecinkowa & lt; - & gt; ∏aƒcuch znaków
Manipulacja na ∏aƒcuchach
%MB10:20 := CONCAT(%MB30:10,%MB50:10)
303.85
303.85
24
%MB10:20 := DELETE(%MB10:22,2,3);
896.00
640.00 713.60
246.15
246.15
21
%MW0 := EQUAL_STR(%MB10:20,%MB30:20);
756.00
540.00 602.10
207.69
207.69
19
%MW0 := FIND(%MB10:20,%MB30:10);
1 456.00 1 040.00 1 159.60 400.00
400.00
19
%MB10:20 := INSERT(%MB30:10,%MB50:10,4);
1 162.00 830.00 925.45
%MB10:20 := LEFT(%MB30:30,20);
826.00
590.00 657.85
319.23
319.23
26
226.92
226.92
19
%MW0 := LEN(%MB10:20);
490.00
350.00 390.25
134.62
134.62
12
%MB10:20 := MID(%MB30:30,20,10);
994.00
710.00 791.65
273.08
273.08
21
1 246.00 890.00 992.35 342.31
1 358.00 970.00 1 081.55 373.08
342.31
373.08
28
19
%MB10:20 :=
REPLACE(%MB30:20,%MB50:10,10,10);
%MB10:20 := RIGHT(%MB30:30,20);
8.3.12 Wydzielanie s∏ów
LW
72
51.40
51.40
24.70
24.70
HW
72
51.40
51.40
24.70
24.70
CONCATW
72
51.40
51.40
24.70
24.70
A TSX 5710 i PCX 5710
B TSX5720/25/30/35,PMX5710,PCX5735 C TSX 57 40/45 i PMX 57 20/35/45
___________________________________________________________________________
8/31
B
8.3.11 Funkcje specjalne i funkcje Orphee
ST
Warunki
Czas wykonywania
Rozmiar
(s)
(s∏owa)
A
B RAM
B zas
C RAM C zas.
57xx
2 800
2 000
2 230
33
2 100
1 500
1 673
24
2 800
2 000
2 230
Komunikacja
SEND_REQ(%KW0:6,15,%MW0:1,%MW10:10,
%MW30:4)
SEND_TLG(%KW0:6,1,%MW0:5,%MW30:2)
Interfejs Cz∏owiek - Maszyna
SEND_MSG(ADR#1.0,%MW0:2,%MW10:2)
800
25
SEND_ALARM(ADR#1.0,%MW0:2,%MW10:2)
2 800
2 000
2 230
800
25
GET_MSG(ADR#1.0,%MW0:2,%MW10:2)
2 800
2 000
2 230
800
25
GET_VALUE(ADR#1.0,%MW0,%MW10:2)
1 400
1 000
1 115
400
20
ASK_MSG(ADR#1.0,%MW0:2,%MW10:2,%MW20:2)
2 800
2 000
2 230
800
32
ASK_VALUE(ADR#1.0,%MW0,%MW10:2,%MW20:2)
2 800
2 000
2 230
800
27
DISPLAY_ALRM(ADR#1.0,%MW0,%MW10:2)
1 400
1 000
1 115
400
20
DISPLAY_GRP(ADR#1.0,%MW0,%MW10:2)
1 400
1 000
1 115
400
20
DISPLAY_MSG(ADR#1.0,%MW0,%MW10:2)
1 400
1 000
1 115
400
20
CONTROL_LEDS(ADR#1.0,%MW0:2,%MW10:2)
2 800
2 000
2 230
800
25
ASSIGN_KEYS(ADR#1.0,%MW0:2,%MW10:2)
2 800
2 000
2 230
800
25
PANEL_CMD(ADR#1.0,%MW0:2,%MW10:2)
2 800
2 000
2 230
800
25
deval_mmi=0
1700
1100
1227
deval_mmi=1
Sterowanie procesem
PID(“PIDS1”,’Unit’,%IW3.5,%MW12,%M16,
%MW284:43)
32
1500
900
1004
PWM(%MW11,%Q2.1,%MW385:5)
700
500
557.5
17
SERVO(%MW12,%IW3.6,%Q2.2,%Q2.3,
%MW284:43,%MW390:10)
PID_MMI(ADR#0.0.4,%M1,%M2:5,%MW410:62)
1000
800
892
31
1400
1000
1115
30
A TSX 5710 i PCX 5710
EN=1
B TSX5720/25/30/35,PMX5710,PCX5735 C TSX 57 40/45 i PMX 57 20/35/45
___________________________________________________________________________
8/32
Parametry j´zyka dla sterowników TSX 37/57
8
B
ST
Warunki
Czas wykonywania
Rozmiar
(s)
A
B RAM
B zas
493
320
357
(s∏owa)
C RAM C zas.
57xx
B
Funkcje Orphee
DSHL_RBIT(%MD102,16,%MD204,%MD206)
czytanie 10 s∏ów
DSHR_RBIT(%MD102,16,%MD204,%MD206)
zapis 10 s∏ów
123
17
749
510
569
196
17
DSHRZ_C(%MD102,16,%MD204,%MD206) " odbicie " 10 s∏ów
493
310
346
119
17
WSHL_RBIT(%MW102,8,%MW204,%MW206)
wymiana 10 s∏ów
365
220
245
85
17
WSHR_RBIT(%MW102,8,%MW204,%MW206)
20 bajtów
424
290
323
112
17
WSHRZ_C(%MW102,8,%MW204,%MW206)
20 bajtów
365
220
245
85
17
SCOUNT(%M100,%MW100,%M101,%M102,
%MW101,%MW102,%M200,%M201,
%MW200,%MW201)
20 bajtów
670
420
468
162
38
Dowolna aplikacja z wyjàtkiem kana∏u
komunikacyjnego procesora
Read_Sts %CHi
997
712
748
316.4
316.4
2
WejÊcie dyskretne
462
330
347
147
147
6
WyjÊcie dyskretne
630
450
473
201
201
WejÊcie analogowe
510
380
390
170
170
WyjÊcie analogowe
500
370
380
165
165
8.3.12 Jawna wymiana I/O
Read_Sts %CHi.MOD
CTY
518
370
389
165
165
CFY
756
540
567
241
241
CAY
532
380
399
170
170
WejÊcie analogowe
860
620
630
277
277
WyjÊcie analogowe
810
580
600
259
6
259
Write_Param %CHi
CTY
1 134
810
851
362
362
CFY
1 064
760
798
339
339
CAY
784
560
588
250
6
250
A TSX 5710 i PCX 5710
B TSX5720/25/30/35,PMX5710,PCX5735 C TSX 57 40/45 i PMX 57 20/35/45
___________________________________________________________________________
8/33
B
ST
Warunki
Czas wykonywania
Rozmiar
(s)
A
(s∏owa)
B RAM B zas. C RAM C zas.
57xx
Read_Param %CHi
WejÊcie analogowe
180
120
130
54
54
WyjÊcie analogowe
180
120
130
54
54
CTY
532
380
399
170
170
CFY
644
460
483
205
205
CAY
630
450
473
201
201
WejÊcie analogowe
1 300
880
890
393
393
WyjÊcie analogowe
1 300
890
900
397
397
CTY
1722
1230
1292
549
549
CFY
700
500
525
223
223
CAY
700
500
525
223
223
WejÊcie analogowe
800
570
590
254
254
WyjÊcie analogowe
800
570
590
254
6
254
Save_Param %CHi
6
Restore_Param %CHi
CTY
1148
820
861
366
366
CFY
1092
780
819
348
348
CAY
826
590
620
263
263
448
320
336
143
143
6
Write_Cmd %CHi
WyjÊcie dyskretne
6
WejÊcie analogowe
. wymuszanie wejÊç
200
140
150
63
63
. wymuszanie wejÊç
1 390
1 020
1 040
455
455
210
150
150
67
67
CFY
1176
840
882
375
375
CAY
1148
820
861
366
366
WyjÊcia analogowe: wymuszanie wyjÊç
WyjÊcie dyskretne
Smove %CHi
A TSX 57 10 i PCX 57 10
B TSX 57 20/25/30/35
19
C TSX 57 40/45 i PMX 57 20/35/45
___________________________________________________________________________
8/34
Parametry j´zyka dla sterowników TSX 37/57
8
B
8.3.13 Bloki w∏asne u˝ytkownika DFB
Obszar zajmowany przez bloki typu DFB
Rozmiar dla bloku DFB = Rozmiar zmiennych i parametrów DFB + Rozmiar kodu DFB
• Rozmiar zmiennych i parametrów DFB =
110 + Suma opisów parametrów i zmiennych + Suma rozmiarów zajmowanych
przez ka˝dà zmiennà i parametr
Opis (deskryptor) parametru lub zmiennej = 5.5 + (Liczba znaków w nazwie
zmiennej lub parametru)/2
Rozmiar zajmowany przez zmiennà lub parametr:
Typ
IN
IN/OUT
OUT
GLOBALNE
W¸ASNE
EBOOL
0.5
2
0.5
0.5
0.5
BOOL
0.5
2
0.5
0.5
0.5
WORD
1
2
1
1
1
DWORD
2
2
2
2
2
REAL
2
2
2
2
2
AR_X
3
3
0.5*N
0.5*N
0.5*N
AR_W
3
3
N
N
N
AR_D
3
3
2*N
2*N
2*N
AR_R
3
3
2*N
2*N
2*N
STRING
3
3
0.5*N
0.5*N
0.5*N
N = liczba elementów tablicy lub d∏ugoÊç ∏aƒcucha znaków (STRING)
• Rozmiar kodu DFB = 11 + Suma rozmiarów wszystkich instrukcji (1)
(1) Do rozmiaru instrukcji nale˝y dodaç nast´pujàce wartoÊci (w zale˝noÊci od
parametru lub zmiennej):
Obiekty nie indeksowane
Opis
Typ
WartoÊç
IN
EBOOL
0.5
BOOL, WORD, DWORD, REAL
0
AR_X,AR_W,AR_D,AR_R,STRING
3
EBOOL
3
BOOL, WORD, DWORD, REAL
3
AR_X,AR_W,AR_D,AR_R,STRING
3
IN/OUT
OUT,GLOBALNE EBOOL
0.5
W¸ASNE
BOOL, WORD, DWORD, REAL
0
AR_X,AR_W,AR_D,AR_R,STRING
0
___________________________________________________________________________
8/35
B
B
Obiekty indeksowane
Opis
Typ
WartoÊç
IN
AR_X,AR_W,AR_D,AR_R,
7
IN/OUT
AR_X,AR_W,AR_D,AR_R,
7
OUT,
AR_X,AR_W,AR_D,AR_R,
GLOBALNE, W¸ASNE
6
Rozmiar zajmowany przez u˝ytkownika bloku DFB
• wywo∏anie bloku zast´pczego DFB bez ˝adnych parametrów: 6 s∏ów
• obliczenia dla parametru:
Opis
IN
Typ
WartoÊç
IN/OUT
EBOOL,BOOL,WORD,DWORD,REAL
idem := przypisanie
AR_X,AR_W,AR_D,AR_R,STRING
14
OUT
EBOOL,WORD,DWORD,REAL
10
BOOL,AR_X,AR_W,AR_D,AR_R,
14
Wszystkie rodzaje
idem := przypisanie
• wykorzystanie zmiennej bloku zast´pczego (instance): nale˝y dodaç 1 s∏owo z uwzgl´dnieniem %M.
___________________________________________________________________________
8/36
Parametry j´zyka dla sterowników TSX 37/57
8
B
Czas wykonywania
Ca∏kowity czas wykonywania bloku DFB = Próg dla kodu DFB + Suma czasów
dost´pu do zmiennych i parametrów bloku DFB + Wywo∏anie bloku DFB (bez
parametrów) + Suma czasów dost´pu dla parametrów
Czas wykonywania (s)
A
B zas.
16.24
Próg dla kodu DFB
B RAM
7.00
C RAM
C zas.
8.00
Dost´p do zmiennej lub parametru DFB (1)
Obiekty indeksowane
• IN
- EBOOL
- BOOL,WORD,DWORD,REAL
- AR_X,AR_W,AR_D,AR_R,STRING
0.290
0
1.739
0.125
0
0.750
0.208
0
1.282
• IN/OUT (wszystkie typy)
1.739
0.750
1.282
• OUT,PUBLIC,PRIVATE
- EBOOL
- BOOL,WORD,DWORD,REAL
- AR_X,AR_W,AR_D,AR_R,STRING
0.290
0
0
0.125
0
0
0.208
0
0
• IN, IN/OUT
- AR_X,AR_W,AR_D,AR_R,
3.496
1.5
1.472
• OUT,PUBLIC,PRIVATE
- AR_X,AR_W,AR_D,AR_R,
2.616
1.125
1.931
Wywo∏aniaDFB (bez param.)
4.770
2.125
3.018
Obiekty nie indeksowane
WartoÊci przypadajàce na jeden parametr (1)
• IN
- EBOOL
idem :=
- BOOL,WORD,DWORD,REAL
idem :=
- AR_X,AR_W,AR_D,AR_R,STRING
4.393
2.125
3.269
• IN/OUT
- EBOOL,WORD,DWORD,REAL
3.48
- BOOL,AR_X,AR_W,AR_D,AR_R,STRING4.393
2.318
3.269
• OUT wszytkie typy
(1)
1.5
2.125
idem :=
WartoÊç jest ró˝na w zale˝noÊci od operacji przypisanych obiektom typu %M
A TSX 57 10 i PCX 57 10
B TSX 57 20/25/30/35
C TSX 57 40/45 i PMX 57 20/35/45
___________________________________________________________________________
8/37
B
B
8.4
Rozmiar aplikacji
8.4.1 Opis stref pami´ci
Pami´ç aplikacji jest podzielona na kilka stref pami´ci:
∞ strefa pami´ci bitowej:
- ta strefa wyst´puje oddzielnie tylko w TSX 37 i jest ograniczona do 1280 bitów,
- w sterownikach TSX 57 jest ona cz´Êcià strefy pami´ci danych,
∞ strefa pami´ci danych (s∏owa),
∞ strefa aplikacji, zawierajàcà:
- konfiguracj´,
- program,
- sta∏e.
Obszary pami´ci bitowej i pami´ci danych zawsze lokowane sà w wewn´trznej pami´ci
RAM, natomiast obszar aplikacji mo˝e byç lokowany w wewn´trznej pami´ci RAM lub
w zasobniku pami´ci (memory card).
Struktura pami´ci zosta∏a opisana w rozdziale 1.3 cz´Êci A.
A TSX 57 10 i PCX 57 10
B TSX 57 20/25/30/35
C TSX 57 40/45 i PMX 57 20/35/45
___________________________________________________________________________
8/38
Parametry j´zyka dla sterowników TSX 37/57
8
B
8.4.2 Obszar pami´ci zajmowany przez obiekty PL7
Kroki Grafcet-u (%Xi, %Xi.T)
%Mi
Obiekty numeryczne (%MWi)
Pami´ç bitowa
(w s∏owach)
0.5
0.5
Dane
(w s∏owach)
1
Aplikacja
(w s∏owach)
B
1
Sta∏e (%KWi)
%NWi
1
1.25
%Ti
%TMi
%MNi
4
5
4
2
2
2
3
6+lg
1
2
6
49
%Ci
%Ri (d∏ugoÊç lg)
%DRi
Dane interpretera Grafcet-u = 355 + 2 x Liczba skonfigurowanych kroków aktywnych +
(Liczba skonfigurowanych przejÊç aktywnych) / 2
8.4.3 Rozmiar pami´ci modu∏u
Uwaga
Ta informacja podawana jest dla konkretnej wersji procesora. Moze ona ulegaç
niewielkim zmianom wraz z rozwojem produktów.
Poni˝ej okreÊlono, dla ka˝dego rodzaju modu∏u, rozmiar zajmowanej przez niego pami´ci (z rozbiciem na poszczególne obszary pami´ci) oraz wartoÊci jakie nale˝y dodaç,
do wartoÊci z tabeli zu˝ycia pami´ci, przy pierwszym zastosowaniu funkcji specjalnej.
Tabela zu˝ycia pami´ci modu∏u dla TSX 37
Procesory
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
TSX 37-10
70
1560
Strefa
aplikacji
(s∏owa)
920
TSX 37-21
TSX 37-22
70
70
1570
2110
930
1280
Zastos. zadania FAST (TSX 37)
260
Wyk. pierwszego zdarzenia (TSX 37)
520
___________________________________________________________________________
8/39
B
Grupa urz. dyskretnych
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
8 wejÊç dyskretnych
4
12
Strefa
aplikacji
(s∏owa)
40
16 wejÊç dyskretnych
4 wyjÊcia dyskretne
8 wyjÊç dyskretnych
8
2
4
12
12
12
50
40
40
16 wejÊç dyskretnych / 12 wyjÊç dyskr.
16
20
100
32 wejÊcia dyskr./ 32 wyjÊcia dyskr.
32
20
142
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
0
156
Strefa
aplikacji
(s∏owa)
56
120
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
0
212
Rodzina wejÊç 4 ANA
AEZ414
WartoÊç dodatkowa dla 1-go modu∏u
w grupie wejÊç 4 ANA
Rodzina wejÊç 8 ANA
AEZ801/AEZ802
WartoÊç dodatkowa dla 1-go modu∏u
w grupie wejÊç 8 ANA
Rodzina wyjÊç ANA
ASZ200
ASZ401
120
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
0
0
52
100
WartoÊç dodatkowa dla 1-go modu∏u
w grupie wyjÊç ANA
Rodzina liczników
CTY1A
CTY2A
Wart. dod. dla 1-go kana∏u licznika UP
STZ010
SCP111/ SCP112/ SCP114
(w UTW CPU)
FPP 20 w CPU (Kana∏ 0 UTW)
Strefa
aplikacji
(s∏owa)
40
59
120
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
16
32
108
212
Wart. dod. dla 1-go kana∏u licznika DN
WartoÊç dodatkowa dla 1-go kana∏u
licznika 2-kierunkowego Up/Down
Rodzina urz. komunikacyjnych
Strefa
aplikacji
(s∏owa)
72
Strefa
aplikacji
(s∏owa)
64
106
144
144
144
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
0
0
36
40
Strefa
aplikacji
(s∏owa)
168
763
0
40
755
___________________________________________________________________________
8/40
Parametry j´zyka dla sterowników TSX 37/57
8
B
Tabela zu˝ycia pami´ci modu∏u dla TSX/PCX/PMX 57
Procesory
Pami´ç bitowa
(s∏owa)
TSX/PCX/PMX 57-10
70
4714
Strefa
aplikacji
(s∏owa)
1720
TSX 57-20/25/30/35/40/45
PCX 57-10/35
PMX 57-10/20/35/45
Wykonanie zadania FAST (TSX 57)
70
4714
1784
520
Wart. dod. dla 1-go modu∏u w konfig.
Procesory PMX: p´tla sterujàca
Dane
(s∏owa)
600
Pami´ç bitowa
(s∏owa)
PMX 57-10 : na 1 p´tl´
Wart. dodatkowa dla 1-ej p´tli
PMX 57-20/35/45 : na 1 petl´
Dane
(s∏owa)
500
25000
500
Wart. dodatkowa dla 1-ej p´tli
Rodzina pojedynczych wejÊç
dyskretnych
Strefa
aplikacji
(s∏owa)
5000
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
8 wejÊç dyskretnych
16 wejÊç dyskretnych
4
8
100
130
32 wejÊcia dyskretne
64 wejÊcia dyskretne
WartoÊç dodatkowa dla 1-go modu∏u
pojedynczych wejÊç dyskretnych
16
32
230
430
120
190
610
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
8 wyjÊç dyskretnych
4
110
Strefa
aplikacji
(s∏owa)
100
16 wyjÊç dyskretnych
32 wyjÊcia dyskretne
64 wyjÊcia dyskretne
8
16
32
160
280
550
110
120
190
Rodzina pojedynczych wyjÊç
dyskretnych
WartoÊç dodatkowa dla 1-go modu∏u
pojedynczych wyjÊç dyskretnych
Dyskretne wejÊcia wyzwalane
zdarzeniami
16 wejÊç dyskretnych (DEY 16FK)
WartoÊç dodatkowa dla 1-go modu∏u
wejÊç dyskretnych EVT
Strefa
aplikacji
(s∏owa)
100
110
570
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
8
220
Strefa
aplikacji
(s∏owa)
130
680
___________________________________________________________________________
8/41
B
B
Rodzina mieszanych I/O
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
16
304
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
AEY414
4
430
AEY800
AEY1600
Wart. dodatkowa dla 1-go modu∏u
wejÊç analog. (AEY 414/800/1600)
AEY810
8
16
840
1670
240
430
2990
8
888
248
AEY1614
Wart. dodatkowa dla 1-go modu∏u
wejÊç analog. (AEY 810/1614)
AEY420
16
1768
432
3056
4
476
16 wejÊç/12 wyjÊç (DMY 28FK)
Wart. dodatkowa dla 1-go modu∏u
rodziny mieszanych urzàdzeƒ I/O
Rodzina wejÊç analogowych
Wart. dodatkowa dla 1-go modu∏u
wejÊç analog. (AEY 810/1614)
Rodzina wyjÊç analogowych
Strefa
aplikacji
(s∏owa)
152
1432
Strefa
aplikacji
(s∏owa)
160
168
2080
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
4
430
8
744
248
1760
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
Modu∏ CTY2A
32
410
Strefa
aplikacji
(s∏owa)
170
Modu∏ CTY4A
Wart. dodatkowa dla 1-go skonfigurowanego kana∏u licznika
64
800
250
1740
CTY2C module
Wart. dodatkowa dla 1-go skonfigurowanego kana∏u licznika
48
672
184
1992
ASY410
Wart. dodatkowa dla 1-go modu∏u
wyjÊç analogowych ASY410
ASY800
Wart. dodatkowa dla 1-go modu∏u
wyjÊç analogowych ASY800
Rodzina liczników
Strefa
aplikacji
(s∏owa)
160
1700
___________________________________________________________________________
8/42
Parametry j´zyka dla sterowników TSX 37/57
8
B
Rodzina Servo-Motor
CAY21
CAY41
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
78
156
1050
2090
Wart. dodatkowa dla 1-go skonfigurowanego kana∏u serwomotoru
Rodzina silników krokowych
CFY11
CFY21
2150
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
29
58
323
646
Wart. dodatkowa dla 1-go skonfigurowanego kana∏u silnika krokowego
Strefa
aplikacji
(s∏owa)
104
152
2368
Rodzina modu∏ów komunikacyjnych Pami´ç bitowa
(s∏owa)
SCY21600 (Kana∏ 0 UTW)
SCP111/ SCP112 / SCP114 (UTW)
w SCY21600 (Kana∏ 1 UTW)
Wart. dodatkowa dla 1-go kana∏u
skonfigurowanego jako UTW
ETY 110
Wart. dod. dla 1-go kana∏u ETY 110
IBY 100
Strefa
aplikacji
(s∏owa)
280
480
1
1
Dane
(s∏owa)
230
450
Strefa
aplikacji
(s∏owa)
80
40
1280
1
431
1
450
Rodzina modu∏ów komunikacyjnych Pami´ç bitowa
wspomagajàcych procesor
(s∏owa)
SCP111/ SCP112/ SCP114 (UTW)
w CPU (Kana∏ 0 UTW)
FPP 20 w CPU (Kana∏ 0 UTW)
1
60
Strefa
aplikacji
(s∏owa)
580
1
60
580
FPP 10 w CPU (Kana∏ 0 UTW)
1
40
870
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
3
373
Strefa
aplikacji
(s∏owa)
176
Rodzina modu∏ów ASI
SAY
Wart. dodatkowa dla 1-go skonfigurowanego kana∏u ASi
Dane
(s∏owa)
256
1984
40
2272
___________________________________________________________________________
8/43
B
B
Rodzina modu∏ów wagowych
AWY001
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
1
170
Wart. dodatkowa dla 1-go skonfigurowanego kana∏u wagi
Rodzina TBX
WejÊcia dyskretne
WartoÊç dodatkowa dla 1-ej skonfigurowanej podgrupy (sub-base)
WyjÊcia dyskretne
WartoÊç dodatkowa dla 1-ej skonfigurowanej podgrupy (sub-base)
Programowalny modu∏ podrz´dny
WartoÊç dodatkowa dla 1-ej skonfigurowanej podgrupy (sub-base)
Przerzutnik
WartoÊç dodatkowa dla 1-ej skonfigurowanej podgrupy (sub-base)
AES 400
ASS 200
AMS 620
WartoÊç dodatkowa dla 1-ej skonfigurowanej podgrupy (sub-base)
Rodzina Momentum
WejÊcia
WartoÊç dodatkowa dla 1-ej skonfigurowanej podgrupy (sub-base)
WyjÊcia
WartoÊç dodatkowa dla 1-ej skonfigurowanej podgrupy (sub-base)
Mieszane
WartoÊç dodatkowa dla 1-ej skonfigurowanej podgrupy (sub-base)
Strefa
aplikacji
(s∏owa)
120
3920
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
8
152
Strefa
aplikacji
(s∏owa)
88
1400
8
176
88
1320
8
160
88
2304
8
160
88
1400
2
2
270
270
104
104
4
508
112
3968
Pami´ç bitowa
(s∏owa)
Dane
(s∏owa)
16
96
Strefa
aplikacji
(s∏owa)
72
1384
16
112
72
1256
16
104
72
1424
___________________________________________________________________________
8/44
Parametry j´zyka dla sterowników TSX 37/57
8
8.4.4 Rozmiar pami´ci zajmowanej przez funkcje z∏o˝one
Zamieszczone poni˝ej tabele zawierajà informacje o rozmiarze pami´ci zajmowanej
przez kod funkcji z∏o˝onej (OF), umieszczony w aplikacji (obszar pami´ci zwany
pami´cià aplikacji), gdy nast´puje wywo∏anie tej funkcji.
Funkcje pochodzàce z jednej rodziny korzystajà z tego samego kodu (kod wspólny).
Ten kod wspólny jest ∏adowany do sterownika podczas pierwszego wywo∏ania funkcji
z danej rodziny. Kod specyficzny dla funkcji jest ∏adowany podczas pierwszego
wywo∏ania danej funkcji.
Przyk∏ad:
• Pierwsze wywo∏anie funkcji z grupy funkcji konwersji numerycznych, czyli np.
DBCD_TO_DINT
Kod ∏adowany do strefy aplikacji:
- kod wspólny = 154 s∏owa
- kod funkcji (OF) DBCD_TO_INT = 149 s∏ów
• Wywo∏anie innej funkcji z rodziny funkcji konwersji numerycznych: DINT_TO_DBCD
Kod ∏adowany do strefy aplikacji:
- Kod funkcji (OF) DINT_TO_DBCD = 203 words
Wywo∏anie funkcji z rodziny funkcji konwersji numerycznych, która by∏a ju˝ wczeÊniej
wywo∏ywana (DBCD_TO_DINT lub DINT_TO_DBCD): nie jest ∏adowany ˝aden kod
Konwersja numeryczna
OF
Rozmiar kodu
(w s∏owach)
Konwersja 32-bit. liczby BCD na 32-bit. l. ca∏kowità
Konwersja 32-bit. liczby BCD na 16-bit. l. ca∏kowità
Konwersja 32-bit. l. ca∏kowitej na 32-bit. liczb´ BCD
Konwersja 16-bit. l. ca∏kowitej na 32-bit. liczb´ BCD
Wydzielenie mniej wa˝nego s∏owa ze s∏owa pod.
Wydzielenie wa˝niejszego s∏owa ze s∏owa podwójnego
Utworzenie s∏owa podwójnego ze dwóch s∏ów
DBCD_TO_DINT
DBCD_TO_INT
DINT_TO_DBCD
INT_TO_DBCD
LW
HW
CONCATW
kod wspólny
145
149
203
75
33
33
33
154
___________________________________________________________________________
8/45
B
B
B
Ciàg bitów
Koniunkcja dwóch tablic
Kopiowanie tablicy bitowej do tablicy s∏ów podwójnych
Kopiowanie tablicy bitowej do tablicy s∏ów
Kopiowanie tablicy bitowej do tablicy bitowej
Kopiowanie tablicy s∏ów podwójnych do tablicy bitowej
Logiczne dope∏nienie tablicy
Alternatywa dwóch tablic
Kopiowanie tablicy s∏ów do tablicy bitowej
Nierównowa˝noÊç dwóch tablic XOR
D∏ugoÊç tablicy (liczba elementów)
Operacje na tablicy s∏ów
Wyszukiwanie 1-go elementu równego podanej wartoÊci
Wyszuk.1-go elementu wi´kszego od podanej wartoÊci
Wyszuk.1-go elementu mniejszego od podanej wartoÊci
Wyszukiwanie maksymalnej wartoÊci w tablicy
Wyszukiwanie minimalnej wartoÊci w tablicy
Liczba wystàpieƒ danej wartoÊci w tablicy
Okr´˝ne przesuni´cie w lewo
Okr´˝ne przesuni´cie w prawo
Sortowanie tablicy (porzàdek rosnàcy lub malejàcy)
Wyszuk. w cz´Êci tablicy 1-go elemetu = podanej wartoÊci
D∏ugoÊç tablicy (liczba elementów)
OF
Rozmiar kodu
(w s∏owach)
AND_ARX
BIT_D
BIT_W
COPY_BIT
D_BIT
NOT_ARX
OR_ARX209
W_BIT
XOR_ARX
LENGTH_ARX
kod wspólny
209
248
205
146
196
157
OF
FIND_EQW
FIND_GTW
FIND_LTW
MAX_ARW
MIN_ARW
OCCUR_ARW
ROL_ARW
ROR_ARW
SORT_ARW
FIND_EQWP
LENGTH_ARW
kod wspólny
195
209
20
427
Rozmiar kodu
(w s∏owach)
75
75
78
78
74
145
150
144
164
77
20
162
___________________________________________________________________________
8/46
Parametry j´zyka dla sterowników TSX 37/57
8
B
Operacje na tablicach s∏ów podwójnych
Wyszukiwanie 1-go elementu równego podanej wartoÊci
Wyszuk.1-go elementu wi´kszego od podanej wartoÊci
Wyszuk.1-go elementu mniejszego od podanej wartoÊci
Wyszukiwanie maksymalnej wartoÊci w tablicy
Wyszukiwanie minimalnej wartoÊci w tablicy
Liczba wystàpieƒ danej wartoÊci w tablicy
Okr´˝ne przesuni´cie w lewo
Okr´˝ne przesuni´cie w prawo
Sortowanie tablicy (porzàdek rosnàcy lub malejàcy)
Wyszuk. w cz´Êci tablicy 1-go elemetu = podanej wartoÊci
D∏ugoÊç tablicy (liczba elementów)
Operacje ne tablicach zmiennoprzecinkowych
Suma elementów w tablicy liczb rzeczywistych
Wyszukiwanie 1-go elementu równego podanej wartoÊci
Wyszukiwanie 1-go elementu równego wartoÊci z danego
rz´du
Wyszuk. 1-go elementu wi´kszego od podanej wartoÊci
Wyszuk. 1-go elementu mniejszego od podanej wartoÊci
Wyszukiwanie wartoÊci maksymalne w tablicy
Wyszukiwanie wartoÊci minimalne w tablicy
Liczba wystàpieƒ w tablicy podanej wartoÊci
Okr´˝ne przesuni´cie w lewo w tablicy
Okr´˝ne przesuni´cie w prawo w tablicy
Sortowanie tablicy (porzàdek malejàcy lub rosnàcy)
Porównywanie dwóch tablic rzeczywistych
D∏ugoÊç tablicy (liczba elementów)
OF
FIND_EQD
FIND_GTD
FIND_LTD
MAX_ARD
MIN_ARD
OCCUR_ARD
ROL_ARD
ROR_ARD
SORT_ARD
FIND_EQWP
LENGTH_ARW
kod wspólny
Rozmiar kodu
(w s∏owach)
79
80
95
95
78
163
170
178
77
20
162
OF
Rozmiar kodu
(w s∏owach)
SUM_ARR
FIND_EQR
FIND_EQRP
152
134
135
FIND_GTR
FIND_LTR
MAX_ARR
MIN_ARR
OCCUR_ARR
ROL_ARR
ROR_ARR
SORT_ARR
EQUAL_ARR
LENGTH_ARR
kod wspólny
134
134
161
162
132
167
173
271
173
20
124
___________________________________________________________________________
8/47
B
B
Data, czas, okres czasu
Dodanie okresu czasu do pe∏nej daty
Dodanie czasu do pory dniaADD_TOD
Konwersja daty na ∏aƒcuch znaków
Dzieƒ tygodnia (nazwa)
Ró˝nica pomi´dzy dwiema datami
Ró˝nica pomi´dzy dwiema pe∏nymi datami
Ró˝nica pomi´dzy dwiema porami dnia
Konwersja pe∏nej daty na ∏aƒcuch znaków
Odj´cie okresu czasu od pe∏nej daty
Odj´cie czasu od pory dnia
Konwersja okresu czasu na ∏aƒcuch znaków
Konwersja pory dnia na ∏aƒcuch znaków
Przeliczenie okresu czasu na format godz.-min.-sek.
Funkcja zegara czasu rzeczywistego
OF
ADD_DT
188
DATE_TO_STRING
DAY_OF_WEEK
DELTA_D
DELTA_DT
DELTA_TOD
DT_TO_STRING
SUB_DT
SUB_TOD186
TIME_TO_STRING
TOD_TO_STRING
TRANS_TIME
SCHEDULE
kod wspólny
Operacje na ∏aƒcuchach znaków
¸àczenie dwóch ∏aƒcuchów znaków
Usuwanie podanego ciàgu znaków z ∏aƒcucha
Wyszukiwanie 1-ego znaku ró˝niàcego ∏aƒcuchy
Wyszukiwanie ciàgu znaków w ∏aƒcuchu
Wstawienie ciàgu znaków do ∏aƒcucha
Wydzielenie z ∏aƒcucha cz´Êci znaków (z lewej strony)
D∏ugoÊç ∏aƒcucha
Wydzielanie ciàgu znaków z ∏aƒcucha
Wymiana ciàgu znaków w ∏aƒcuchu
Wydzielenie z ∏aƒcucha cz´Êci znaków (z prawej strony)
OF
Przes. w lewo w s∏owie 32-bit. z odzysk. przesuni´tych bitów
Przesuni´cie w prawo w s∏owie 32-bit. z dodaniem znaku
i odzyskaniem przesuni´tych bitów
Przesuni´cie w prawo w s∏owie 32-bit. z wype∏nieniem pustych
miejsc zerami i odzyskaniem przesuni´tych bitów
Przes. w lewo w s∏owie 16-bit. z odzysk. przesuni´tych bitów
Przesuni´cie w prawo w s∏owie 16-bit. z dodaniem znaku
i odzyskaniem przesuni´tych bitów
Przesuni´cie w prawo w s∏owie 32-bit. z wype∏nieniem pustych
miejsc zerami i odzyskaniem przesuni´tych bitów
519
150
99
374
547
110
266
548
413
156
211
700
1703
Rozmiar kodu
(s∏owa)
CONCAT
DELETE
EQUAL_STR
FIND
INSERT
LEFT
LEN
MID
REPLACE365
RIGHT
kod wspólny
Funkcje Orphee
Licznik 2-kier. z sygnalizacjà przekroczenia limitu
Przesuni´cie okr´˝ne w lewo, w s∏owie
Przesuni´cie okr´˝ne w prawo, w s∏owie
Przesuni´cie okr´˝ne w lewo, w s∏owie podwójnym
Przesuni´cie okr´˝ne w prawo, w s∏owie podwójnym
Rozmiar kodu
(s∏owa)
OF
224
279
212
225
287
38
70
44
55
418
Roz. kodu
(s∏owa)
DSHL_RBIT
DSHR_RBIT
152
152
DSHRZ_C
133
WSHL_RBIT
WSHR_RBIT
91
103
WSHRZ_C
90
kod wspólny
SCOUNT
ROLW
RORW
ROLD
RORD
173
617
41
41
49
49
___________________________________________________________________________
8/48
Parametry j´zyka dla sterowników TSX 37/57
8
B
Zegar opóêniajàcy
WyjÊcie przebiegu prostokàtnego
Opóênienie typu Off-delay
Opóênienie typu On-delay
Impuls opóêniajàcy
Logarytm, funkcje trygonometryczne
i wyk∏adnicze
Logarytm naturalny
Logarytm dziesi´tny
Exponent
Funkcja liczby rzeczywistej z wyk∏adnikiem ca∏kowitym
Cz´Êç ca∏kowita liczby
Kosinus kàta (w radianach)
Sinus kàta (w radianach)
Tangens kàta (w radianach)
Arc cos (wynik w przedziale od 0 do π)
Arc sin (wynik w przedziale od -π/2 do π/2)
Arc tan (wynik pomiedzy -π/2 a π/2)
Konwersja stopni na radiany
Konwersja radianów na stopnie
OF
FPULSOR
FTOF
FTON
FTP
OF
LN
LOG
EXP
EXPT
TRUNC
COS
SIN
TAN
ACOS
ASIN
ATAN
DEG_TO_RAD
RAD_TO_DEG
kod wspólny
Rozmiar kodu
(w s∏owach)
215
272
217
245
Rozmiar kodu
(w s∏owach)
0
0
0
523
128
0
0
0
0
0
0
257
247
392
Funkcje specjalne
Funkcje sterowania procesem
Regulator mieszany PID
Impuls z modulacjà szerokoÊci (wartoÊç numeryczna)
WyjÊcie PID do sterowania zaworem dyskretyzowanym
Zarzàdzanie CCX17 dedykowanego funkcji MMI dla
sterowania p´tlami PID
OF
Rozmiar kodu
(w s∏owach)
PID
PWM
SERVO
PID_MMI
1800
600
1200
4400
kod wspólny
573
___________________________________________________________________________
8/49
B
B
Interfejs MMI (Cz∏owiek - Maszyna)
Blokowanie (∏àczenie w bloki) zmiennych w CCX17
Blokowanie zmiennych w komunikacie znajdujàcym si´
w CCX17
Dynamiczne przypisywanie funkcji klawiszom
sterowanie funkcjami diod LED
WyÊwietlanie alarmu znajdujàcego si´ w CCX17
WyÊw. grup komunikatów znajdujàcych si´ w CCX17
WyÊwietlanie komunikatu znajdujàcego si´ w CCX17
Wielokrotne wprowadzenie zmiennnej do CCX17
Wielokrotne wprowadzenie zmiennych w komunikacie
znajdujàcym si´ w CCX17
Przes∏anie komendy do CCX17
WyÊwietlenie komunikatu o alarmie znajdujàcego si´
w pami´ci sterownika
WyÊw. komunikatu znajdujàcego si´ w pami´ci ster.
OF
ASK_MSG,
ASK_VALUE,
46.5
46.5
ASSIGN_KEYS,
CONTROL_LEDS,
DISPLAY_ALARM,
DISPLAY_GRP,
DISPLAY_MSG,
GET_MSG,
GET_VALUE,
46.5
46.5
46.5
46.5
46.5
46.5
46.5
PANEL_CMD,
SEND_ALARM,
46.5
46.5
SEND_MSG
kod wspólny
46.5
573
Funkcje komunikacyjne
Czytanie podstawowych obiektów j´zykowych
Zapisywanie podstawowych obiektów j´zykowych
Wysy∏anie/odbieranie ˝àdaƒ UNI-TE
Wysy∏anie i/lub odbieranie danych
Wys∏anie ∏aƒcucha znaków
˚àdanie odczytania ∏aƒcucha znaków
Wysy∏anie i/lub odbieranie ∏aƒcucha znaków
Wys∏anie telegramu
Odbieranie telegramu
˚àdanie zatrzymania (stop) trwajàcej komunikacji
Przesuni´cie 1 bajtu w prawo, w tablicy bajtów
OF
READ_VAR
WRITE_VAR
SEND_REQ
DATA_EXCH
PRINT_CHAR
INPUT_CHAR
OUT_IN_CHAR
SEND_TLG
RCV_TLG
CANCEL
kod wspólny
ROR1_ARB
Funkcje sterowania
Automatyczne sterowanie ruchem
Wymiana jawna (1)
Rozmiar kodu
(w s∏owach)
OF
SMOVE
Rozmiar kodu
(w s∏owach)
617
500
438
375
476
625
531
219
172
133
506
235
Rozmiar kodu
(w s∏owach)
0
OF
Odczytanie parametrów statusu
READ_STS
Odczytanie parametrów regulacyjnych (adjustment)
READ_PARAM
Uaktualnienie parametrów regulacyjnych
WRITE_PARAM
Zapisanie parametrów regulacyjnych
SAVE_PARAM
Odtworzenie parametrów regulacyjnych
RESTORE_PARAM
Zaktualizowanie parametrów komend
WRITE_CMD
(1)
Specyficzny kod funkcji (OF) zawiera si´ w rozmiarze modu∏u I/O.
Rozmiar kodu
(w s∏owach)
0
0
0
0
0
0
___________________________________________________________________________
8/50
Parametry j´zyka dla sterowników TSX 37/57
8.5
8
Dodatek: metoda obliczania liczby instrukcji
B
Opisana poni˝ej metoda umo˝liwia obliczenie liczby instrukcji logicznych i numerycznych
(kod asemblera).
Uwaga: Za pomocà tej w∏aÊnie metody obliczono parametry zamieszczone w rozdziale
1.3 w cz´Êci A niniejszej dokumentacji.
Obliczanie liczby instrukcji logicznych
Pod uwag´ bierze si´ liczb´ ka˝dego z wymienionych poni˝ej elementów:
∞ operacje logiczne: ∏adowanie load (LD), AND, OR, XOR, ST, itp.
∞ zamkni´te nawiasy (lub zamkni´cia Êcie˝ek w Ladder: pionowe ∏àczniki zamykajàce)
∞ bloki porównywania (AND[...], OR[...], itp.) oraz operacyjne ([...])
Operatory NOT, RE i FE nie sà traktowane jak operacje logiczne.
Przyk∏ad:
LD
%M0
AND( %M1
OR
%M2
)
ST
%M3
= 5 instrukcji logicznych
Obliczanie liczby instrukcji numerycznych
Uwzgledniana jest liczba nast´pujàcych elementów:
∞ przypisania (:=)
∞ za∏adowanie pierwszej wartoÊci za :=
∞ operacje arytmetyczne (+, -, *, /, & lt; , =, itp.), operacje na s∏owach, tablicach s∏ów,
s∏owach podwójnych, wartoÊciach zmiennoprzecinkowych
∞ operacje logiczne na s∏owach
∞ funkcje (OF, EQUAL, itp.) bez wzgl´du na liczb´ parametrów
∞ bloki funkcyjne (lub instrukcje bloków logicznych)
Przyklad: %MW0:=(%MW1+%MW2)*%MW3;
liczba instrukcji:
:=
%MW1 (odpowiada instrukcji ∏adowania)
+
*
czyli - 4 instrukcje.
___________________________________________________________________________
8/51
B
B
Przyk∏ad aplikacji (65% instrukcji logicznych i 35% numerycznych):
___________________________________________________________________________
8/52
Parametry j´zyka dla sterowników TSX 37/57
8
B
B
___________________________________________________________________________
8/53
B
___________________________________________________________________________
8/54
Parametry j´zyka dla sterowników TSX 37/57
8
B
B
(1):%MW0:=%MW1+%MW2+%MW3+%MW4+%MW5+%MW6+%MW7+%MW8+%MW9+%MW10+1
Wynik
Instrukcje Logiczne bez zbocza
Instrukcje logiczne ze zboczem
Blok operacyjny
Blok funkcyjny
Pojed. arytmetyka (+,-,:=,AND,...)
Arytmetyka indeksowana
*,/
WartoÊci bezpoÊrednie
Ca∏kowita liczba
Liczba
instrukcji
187
4
31
3
111
4
6
24
346
%
54.05%
1.16%
8.96%
0.87%
32.08%
1.16%
1.73%
64.16%
35.84%
100.00%
___________________________________________________________________________
8/55
REF.
TLX DR PL7 30E
ART.
Schneider Automation Inc.
One High Street
North Andover, MA 01845
Tél.: (1) 508 794 0800
Fax : (1) 508 975 9010
Schneider Automation S.A.
245, route des Lucioles - BP 147
F-06903 Sophia Antipolis
Tél. : (33) (0)4 92 96 20 00
Fax : (33) (0)4 93 65 37 15
Schneider Automation GmbH
Steinheimer Straße 117
D-63500 Seligenstadt
Tél. : (49) 6182 81 2584
Fax : (49) 6182 81 2860
87727
T∏umaczenie - BATI (0-63)243-45-81
Lipiec 1998 (837)