REKLAMA

grafcet-poradnik.pdf

Egzamin zawodowy - technik mechatronik czerwiec 2015

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.


Pobierz plik - link do postu

& 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

0i127
0i126
0i127
0i126

R
R
R/W
R/W

S∏owa
Grafcet-u

pojedyncze
podwójne

%Xi.T
%Xj.i.T

0i249
0j63 0i249

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 0i127 0j31 0k3
%SWi
%SDi

Mo˝liwoÊci

R/W

0i255
0i254

R/W (4)
R/W (4)

0j15
0j15
0j15
0j15
0j15
0m15

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)