Download as pdf or txt
Download as pdf or txt
You are on page 1of 98

SIMATIC

A STEP 7 programozás alapjai

STL (utasításlista)
A legfontosabb alaputasítások ismertetése angol nyelvű STEP 7 szoftvert
használóknak
Ez a segédlet a SIMATIC S7-300, S7-400, C7, ET-200 IM CPU és az
embedded, illetve PC-based (WinAC szoftver PLC) kontrollerek
programozásához használható.

Siemens Zrt. Ipari Szektor Industry Automation & Drive Technologies

Copyright © Siemens Zrt. 2009.

STEP 7 STL utasításlista (angol rövidítésekkel) 1


Az esetleges hibákért felelősséget nem vállalunk.

Részletes gépkönyvek és további dokumentumok világnyelveken letölthetők az


Internetről:
www.siemens.com/automation/service&support

Magyar nyelvű segédletek letöltési címe:


www.siemens.hu/ad

Katalógusok letöltési címe:


www.automation.siemens.com/infocenter

STEP 7 STL utasításlista (angol rövidítésekkel) 2


A Siemens SIMATIC S7-es készülékeit a STEP7 szoftverrel három
megjelenítési módban lehet programozni: STL (utasításlista), LAD
(áramútterv) és FUP (funkcióterv). (Vannak további programírási lehetőségek
is: S7-SCL, S7-GRAPH, S7-HiGraph, CFC). Az áramútterv és a funkcióterv
grafikus megjelenítési mód, ami adott esetben (főleg tisztán vezérlési
műveleteknél) jelentősen megkönnyíti a programozást. Első alkalommal mi
mégis az STL utasítások bemutatásával kezdjük, és ennek oka, hogy a PLC
természetesen csak ezt a módot ismeri, pontos, tényleges működését ezzel
lehet a legjobban magyarázni, és a legtömörebb programot is ebben a
megjelenítésben lehet írni. A grafikus megjelenítés csak a fejlesztőprogramban
létezik (a programozó készüléken), ami minden kész függvényt azonnal STL-re
fordít, és a PLC-be az ebből létrehozott MC7-es gépi kód kerül. Ha azonban a
programot grafikus megjelenítési módban írták, akkor a fordításkor olyan
utasítások is bekerülnek a PLC-be, amelyek csakis a visszaolvasott program
ismételt grafikus megjelenítése érdekében vannak ott. Mindez természetesen
nem von le semmit a grafikus megjelenítés létjogosultságából, sőt a STEP5-
höz képest a STEP7-et a grafikus megjeleníthetőség irányában ki is bővítették,
ami majd e két grafikus mód ugyancsak kiadásra kerülő segédletében látható
lesz.

E bevezetés után néhány, talán nem magától értetődő alapfogalmat kell


tisztázni, amelyek azok számára, akik először találkoznak a SIMATIC
rendszerrel sokat fognak segíteni az utasítások megértésében.

RLO (Result of the Logic Operation) logikai műveleti eredmény

Az RLO fizikailag a processzor státuszregiszterének egyik bitje. A programban,


főleg annak vezérlési részében kitüntetett szerepe van. Ha valami a
programban bekapcsol, akkor az RLO miatt kapcsol be, ha nem kapcsol be,
akkor az RLO miatt nem kapcsolt be. Igen fontos tudni, hogy milyen viszonyban
vannak az egyes utasítások és az RLO.

STEP 7 STL utasításlista (angol rövidítésekkel) 3


Eszerint van: RLO-t befolyásoló utasítás (A, AN, O, ON stb.)
RLO-függő utasítás (=, S, R stb.)
RLO-t határoló utasítás (=, S, R ha utána lekérdezés történik)
RLO-független utasítás (L, T, stb)
Gyakori félreértés pl.: A I 2.2
L MW2

Az L MW2 utasításra az A I2.2 semmiféle hatással nincs, mert az első utasítás


ugyan befolyásolja a RLO-t, a második azonban fügetlen attól. Tehát a fenti
programban az L MW2 minden ciklusban vérehajtódik az I 2.2 állapotától
függetlenül.

Lekérdezés (Abfrage)

Az operációs rendszer számára az A, AN, O, ON stb. alaphelyzetben nem csupán


egy ÉS, VAGY stb. művelet, hanem kérdés, amit az utasítás vérehajtásakor a
rendszerproram tesz fel az utasításban lévő operandus (változó) állapotára
vonatkozóan. Önmagában a fenti műveletek mindegyike egy un. „lekérdezés”. A
lekérdezésnek természetesen eredménye is van, ami az RLO-bitben
(státuszregiszter) tárolódik.

Első lekérdezés

Minden logikai lánc elején található az első lekérdezés. Az első lekérdezést a


rendszerprogram akkor érzékeli (és jegyzi meg a státuszregiszterben), ha a
fentemlített RLO-határoló művelet után lekérdezés történik.

Pl. = Q12.1 (RLO-határoló művelet)


O M24.2 (lekérdezés)

STEP 7 STL utasításlista (angol rövidítésekkel) 4


Az első lekérdezésnél a rendszerproram nem figyel logikai utasítás fajtájára, csak a
kérdés ponált ill. negált volta érdekes (a VAGY-művelet egy változóval logikailag
nem lenne értelmezhető, ebben az esetben a VAGY nem is játszik szerepet). Az
első lekérdezésnél az RLO-be átkerülő eredmény attól függ, hogy a kérdésre adott
válasz milyen, ha igen, akkor az RLO 1, ha nem akkor 0.

A logikai lánc második műveleténél már nem csak a lekérdezés ponált vagy negált
volta érdekes, hanem a logikai művelet milyensége is, és ez a logikai művelet
tulajdonképpen nem a két változó hanem az éppen vizsgált utasítás általa
létrehozott RLO és az előző RLO között történik. Nem szabad elfelejteni, hogy az
előző RLO az adott láncban eddig megoldott összes utasítás eredménye.

Uta Operandus St Megjegyzés

= Q12.1 RLO-határoló művele

U M24.2 1 első lekérdezés - RLO az első lekérd


eredménye

U I 2.2 0 RLO a két logikai művelet eredménye

U I 2.6 1 RLO a három logikai művelet eredm


(végeredmény)

= M8.3 0 A RLO (végeredm) hozzárendelése az


státuszához

Lényegében a műveleti lánc eredménye úgy alakul, mint az un. kalkulátorban a


számítási eredmény, vagyis minden közbenső eredményhez hozzádódik a
következő érték, és a lánc végén rendelkezésre áll a végeredmény. Egyetlen
különbség, hogy az előbbi logikai lánc, míg ez utóbbi számtani.

Természetesen nem szabad figyelmen kívül hagyni, hogy a fenti példa egyszerű
lánc mindenféle zárójelek nélkül. A zárójelezés a helyzetet kicsit bonyolítja, amit
azonban itt ismertetni nem lenne helyénvaló.

Azok számára, akik a grafikus mejelenítést szeretik (az ehhez szükséges


dokumentáció kiadása a későbbiekben tervbe van véve), ugyancsak fel kell hívni a
figyelmet, hogy a fenti „logikai lánc” (Verknüpfung) tulajdonképpen egy hálózat
(Netzwerk) vagy másképpen egy hálózat egy logikai lánc.

STEP 7 STL utasításlista (angol rövidítésekkel) 5


Élfigyelés

Az élfigyelés azt jelenti, hogy érzékelni akarják azt a pillanatot, amikor egy bit-
változó állapotát megváltoztatja (0 - > 1 vagy 1 -> 0). Ezt csak úgy lehet érzékelni,
ha a program minden ciklusban összehasonlítja az előző és az aktuális jelállapotot.
Ehhez meg kell mindig jegyezni az aktuális jelállapotot, hogy a következő ciklusban
mint előzőt fel lehessen használni. Erre szolgál az FN vagy FP utasítás melletti
segédváltozó, amelynek természetesen szabadnak változónak kell lenni, és minden
ciklusban meg kell maradni (NEM lehet TEMP!!!) és semmi másra nem használható.
Az él bekövetkezését nem ez a változó, hanem az ebben a sorban keletkező RLO
jelzi.
Akkumulátorok
Az S7-es vezérlőkben a belső adatmozgatásban (L, T) ill. a számítások elvézésében
az akkumulátorok (a processzor erre a feladatra kijelölt regiszterei) vesznek részt.
Az S7-300 két darab 32-bites az S7-400 néy darab 32 bites akkumulátorral
rendelkezik, a fenti funkciókat azonban mindkettő lényegében az első két
akkumulátorral hajtja végre. Az alábbi szövegben a következő jelölések fordulnak
evvel kapcsolatban elő:

……………….H……………… …………….L…………………

H-H H-L L-H L-L

Bit: 31…………24 23…………16 15………..8 7……………0

Számlálók, időműveletek
Az utasításlistában található számláló és időműveletek un. S5-tipusú műveletek,
amelyek ismertségük miatt kerültek az S7-es rendszerbe. Bizonyos korlátokkal
rendelkeznek, amelyek ma már időnként (ritkán) szűknek bizonyulnak. Az S7-es
rendszer természetesen rendelkezik ezeken túlmenő idő- és számláló funkciókkal,
amelyek megfelelnek a mai igényeknek. Ezek azonban nem műveletek, hanem
függvényhívások, így ebbe az ismertetésbe nem kerülhettek.

STEP 7 STL utasításlista (angol rövidítésekkel) 6


1.1 A ÉS-művelet

Formátum
A <Bit>

Operandus Adattipus Tárterület


<Bit> BOOL I, Q, M, L, D, T, C

Működés
Az A utasítás kérdést tesz fel a címzett bit logikai 1-es állapotára, és az eredményt ÉS-
kapcsolatba hozza a státuszregiszter RLO-bitjével.
Az ÉS-művelettel közvetlenül logikai műveletet lehet végrehajtani a státuszszó bitjeivel.
Ehhez a következő utasításokat kell használni.: ==0, <>0, >0, <0, >=0, <=0, OV, OS, AO,
BR.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - x x x 1

Példa

STL-Program Relé-kapcsolás

Áramvezető sín

A I 1.0 I 1.0 1-es jelállapot Záróérintkező

A I 1.1 I 1.1 1-es jelállapot Záróérintkező

= Q 4.0 Q 4.0 1-es jelállapot Tekercs

A zárt érintkezőt jelzi

STEP 7 STL utasításlista (angol rövidítésekkel) 7


1.2 AN ÉS-NEM-művelet

Formátum
AN <Bit>

Operandus Adattipus Tárterület


<Bit> BOOL I, Q, M, L, D, T, C

Működés
Az AN utasítás kérdést tesz fel a címzett bit logikai 0 állapotára, és az eredményt ÉS-
kapcsolatba hozza a státuszregiszter RLO-bitjével.
Az ÉS-művelettel közvetlenül logikai műveletet lehet végrehajtani a státuszszó bitjeivel.
Ehhez a következő utasításokat kell használni.: ==0, <>0, >0, <0, >=0, <=0, OV, OS, UO,
BR

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - x x x 1

Példa

STL-Program Relé - kapcsolás

Áramvezető sín
I 1.0
A I 1.0 Záróérintkező
0 jelállapot

I 1.1
AN I 1.1 1-es jelállapot Nyitóérintkező

Q 4.0
= Q 4.0 Tekercs
0 jelállapot

STEP 7 STL utasításlista (angol rövidítésekkel) 8


1.3 O VAGY-művelet

Formatum
O <Bit>

Operandus Adattipus Tárterület


<Bit> BOOL I, Q, M, L, D, T, C

Működés
Az O utasítás kérdést tesz fel a címzett bit logikai 1-es állapotára, és az eredményt VAGY-
kapcsolatba hozza a státuszregiszter RLO-bitjével.
A VAGY-művelettel közvetlenül logikai műveletet lehet végrehajtani a státuszszó bitjeivel.
Ehhez a következő utasításokat kell használni.: ==0, <>0, >0, <0, >=0, <=0, OV, OS, UO,
BR

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 x x 1

Beispiel

STL-Program Relais-kapcsolás

Áramvezetősín
I 1.0 1-es jelállapot I 1.1 0-ás jelállapot
O I 1.0
záróérintkező záróérintkező

O I 1.1

= Q 4.0 Q 4.0 1-es jelállapot tekercs

A zárt érintkezőt jelzi

STEP 7 STL utasításlista (angol rövidítésekkel) 9


1.4 ON VAGY-NEM művelet

Formátum
ON <Bit>

Operandus Adattipus Tárterület


<Bit> BOOL I, Q, M, L, D, T, C

Működés
Az ON utasítás kérdést tesz fel a címzett bit logikai 0 állapotára, és az eredményt VAGY-
kapcsolatba hozza a státuszregiszter RLO-bitjével.
A VAGY-NEM -művelettel közvetlenül logikai műveletet lehet végrehajtani a státuszszó
bitjeivel. Ehhez a következő utasításokat kell használni.: ==0, <>0, >0, <0, >=0, <=0, OV,
OS, UO, BR

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 x x 1

Példa

STL-Program Relé-kapcsolás

Áramvezető sín
I 1.0
O I 1.0 0 jelállapot záróérintkező

I 1.1
ON I 1.1 nyitóérintkező
1-es jelállapot

Q 4.0
= Q 4.0 tekercs
1 - jelállapot

STEP 7 STL utasításlista (angol rövidítésekkel) 10


1.5 X KIZÁRÓ-VAGY

Formátum
X <Bit>

Operandus Adattipus Tárterület


<Bit> BOOL I, Q, M, L, D, T, C

Működés
Az X utasítás kérdést tesz fel a címzett bit logikai 1-es állapotára, és az eredményt
KIZÁRÓ-VAGY-kapcsolatba hozza a státuszregiszter RLO-bitjével.

A KIZÁRÓ-VAGY műveletet többször is használhatja egymás után. Ekkor a közös logikai


műveleti eredmény (RLO) akkor 1, ha a lekérdezett operandusok páratlan mennyisége
adja az 1-es logikai eredményt.
A KIZÁRÓ-VAGY -művelettel közvetlenül logikai műveletet lehet végrehajtani a státuszszó
bitjeivel. Ehhez a következő utasításokat kell használni.: ==0, <>0, >0, <0, >=0, <=0, OV,
OS, UO, BR

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 x x 1

Példa

STL-Program Relé-kapcsolás

Áramvezető sín

X I 1.0 I 1.0 kontaktus

X I 1.1 I 1.1 kontaktus

Q 4.0
= Q 4.0
tekercs

STEP 7 STL utasításlista (angol rövidítésekkel) 11


1.6 XN KIZÁRÓ-VAGY-NEM

Formátum
XN <Bit>

Operandus Adattipus Tártartomány


<Bit> BOOL I, Q, M, L, D, T, C

Működés
Az X utasítás kérdést tesz fel a címzett bit logikai 0 állapotára, és az eredményt KIZÁRÓ-
VAGY-kapcsolatba hozza a státuszregiszter RLO-bitjével.

A KIZÁRÓ-VAGY-NEM művelettel közvetlenül logikai műveletet lehet végrehajtani a


státuszszó bitjeivel. Ehhez a következő utasításokat kell használni.: ==0, <>0, >0, <0, >=0,
<=0, OV, OS, UO, BR

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 x x 1

Példa

STL-Program Relékapcsolás

Áramvezető sín

X I 1.0 I 1.0 – ás kontaktus

XN I 1.1 I 1.1 – es kontaktus

= Q 4.0 Q 4.0
tekercs

STEP 7 STL utasításlista (angol rövidítésekkel) 12


1.7 O ÉS a VAGY előtt

Formátum
O

Működés
A VAGY-művelet (paraméter nélkül) ÉS-kapcsolatok VAGY-műveletét hajtja végre az ÉS a
VAGY előtt szabály szerint. (az értelmezőprogram, zárójel nélkül is, előbb az ÉS-műveleteket hajtja végre,
és azok eredményét hozza VAGY-kapcsolatba)

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - x 1 - x

Példa

STL-Program Relékapcsolás

Áramvezető sín

A I 0.0 M 10.1
I 0.0
A M 10.0
I 0.2

O
A I 0.2
M 10.0
A M 0.3
M 0.3

O M 10.1

= Q 4.0 Q 4.0
tekercs

STEP 7 STL utasításlista (angol rövidítésekkel) 13


1.8 A( ÉS elágazással

Formátum
A(

Működés
Az A( (ÉS elágazással) művelet a RLO és OR biteket valamint a műveleti jelet tárolja a
zárójel-veremtárban. A zárójel-veremtár maximum 7-es mélységgel rendelkezik (a zárójel
egymásbaágyazási mélysége maximum 7 lehet).

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 1 - 0

Példa

STL-Program Relékapcsolás

Áramvezető sín
A(
O I 0.0 I 0.0
O M 10.0
M 10.0
)

A(
O I 0.2 I 0.2
O M 10.3 M 10.3
)

A M 10.1 M 10.1

Q 4.0
= Q 4.0
tekercs

STEP 7 STL utasításlista (angol rövidítésekkel) 14


1.9 = Hozzárendelés

Formátum
= <Bit>

Operandus Adattipus Tártartomány


<Bit> BOOL I, Q, M, L, D

Működés
Az = <Bit> utasítás beírja a logikai műveleti eredményt (RLO) a megcímzett bitbe. Ha az
eredmény 1, akkor a bit értéke is 1, ha 0 akkor a bit értéke 0.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 x - 0

Példa

STL-Program Relékapcsolás

A I 1.0 Áramvezető sín


= Q 4.0
I 1.0

Jelállapot - diagram

1
I 1.0
0
Q 4.0
1 Spule
Q 4.0
0

STEP 7 STL utasításlista (angol rövidítésekkel) 15


1.10 FN Negatív (lefutó) él figyelése

Formátum
FN <Bit>

Operandus Adattipus Tártartomány


<Bit> BOOL I, Q, M, L, D Az FN utasítás utáni bit
tárolja a RLO állapotát
az előző ciklusból

Működés
Az FN <Bit> utasítás segítségével egy változó lefutó élét lehet érzékelni, amikor azon a
jelállapot 1 – ről 0 – ra vált. Ekkor az FN utasításnál a RLO egy ciklusra 1-es állapotot
vesz fel.
Minden programciklus alatt összehasonlításra kerül a figyelt változó állapota az előző
ciklus állapotával. Így megállapítható, hogy a változón jelváltás történt-e. Az
összehasonlításhoz az értelmező program az előző ciklus állapotát az un. élváltozóban, az
FN utáni bitben tárolja.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 x x 1

STEP 7 STL utasításlista (angol rövidítésekkel) 16


Impulzusdiagram

Felfutó él Lefutó él
RLO
1

0 Idő

Példa
Ha a PLC az I1.0-ás bemeneten negatív (lefutó) élt érzékel, akkor az Q4.0 kimenetet egy
ciklusra 1-be kapcsolja.

STL-Program Impulzusdiagramm

A I 1.0
1
I 1.0
0

FN M 1.0 M 1.0 1
0
= Q 4.0 Q 4.0 1
0

ciklusok: 1 2 3 4 5 6 7 8 9

I 1.0 a figyelt változó


M 1.0 élváltozó (segédváltozó)
Q 4.0 az élről működtetett bit

STEP 7 STL utasításlista (angol rövidítésekkel) 17


1.11 FP Pozitív (felfutó) él figyelése

Formátum
FP <Bit>

Operandus Adattipus Tártartomány


<Bit> BOOL I, Q, M, L, D Az FP utasítás utáni bit tárolja a
RLO állapotát az előző
ciklusból.

Működés
Az FP <Bit> utasítás segítségével egy változó felfutó élét lehet érzékelni, amikor azon a
jelállapot 0 – ról 1 – re vált. Ekkor az FP utasításnál a RLO egy ciklusra 1-es állapotot
vesz fel.
Minden programciklus alatt összehasonlításra kerül a figyelt változó állapota az előző
ciklus állapotával. Így megállapítható, hogy a változón jelváltás történt-e. Az
összehasonlításhoz az értelmező program az előző ciklus állapotát az un. élváltozóban, az
FP utáni bitben tárolja.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 x x 1

STEP 7 STL utasításlista (angol rövidítésekkel) 18


Definíció

Felfutó él Lefutó él
RLO
1

0 Idő

Példa
Ha a PLC az E1.0-ás bemeneten pozitív (felfutó) élt érzékel, akkor az A4.0 kimenetet egy
ciklusra 1-be kapcsolja.

STL-Program Jelállapotdiagramm

A I 1.0
1
I 1.0
0
FP M 1.0 M 1.0 1
0
= Q 4.0 Q 4.0 1
0

A ciklusok száma: 1 2 3 4 5 6 7 8 9

STEP 7 STL utasításlista (angol rövidítésekkel) 19


1.12 ?I Egészszámú (integer) összehasonlítás (16 Bit)

Formátum
==I, <>I, >I, <I, >=I, <=I

Működés
Az összehasonlítási műveletek az AKKU2-L tartalmát hasonlítják össze az AKKU1-L
tartalmával. A két akkumulátor tartalmát a rendszerprogram 16 bites egészszámként
értékeli. Az összehasonlítás eredményét a RLO és a státuszszó megfelelő bitje jelzi. A
RLO 1-es értéke azt jelenti, hogy az összehasonlítás által feltett kérdésre a válasz igen, a
0 RLO azt jelenti, hogy nem. Az A1 és A0 státuszbitek a “kisebb mint”, “egyenlő” vagy
“nagyobb mint” viszonyokat jelzik.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - x x 0 - 0 x x 1

A RLO értékei

Összehasonlítási RLO, ha RLO, ha RLO, ha


műveletek AKKU 2 > AKKU 1 AKKU 2 = AKKU 1 AKKU 2 < AKKU 1
==I 0 1 0
<>I 1 0 1
>I 1 0 0
<I 0 0 1
>=I 1 1 0
<=I 0 1 1

Példa

STL Kommentár
L MW10 //Az MW1 tartalmának töltése az AKKU1-be (16 Bit-egészszám).
L IW24 //Az IW24 tartalmának töltése az AKKU1-be (16 Bit-egészszám).
>I //Az AKKU2 és AKKU1 összehasonlítása
= M 2.0 //RLO = 1, ha MW10 > IW24.

STEP 7 STL utasításlista (angol rövidítésekkel) 20


1.13 BTI BCD szám átalakítása (16 bites) egészszámmá

Formátum
BTI

Működés

A BTI-utasítás az AKKU1-L tartalmát háromjegyű binárisan kódolt decimális számként


értékeli, és ezt átalakítja 16-bites egészszámmá (integer). Az eredmény az AKKU1-L-ben
marad. Az AKKU1-H és AKKU2 nem változik.
A BCD-szám az AKKU1-L-ben: a megengedett értéktartomány -999....+999. A 0-ás
bit...11-es bit tartomány tartalmazza a számot, a 15-ös bit az előjelet (0 = pozitív, 1 =
negatív). A 12-es ….14-es biteket az átalakítás figyelmen kívül hagyja. Ha egy decimális
számjegy (egy 4-bites tetrád BCD-megjelenítésben) a 10…15-ös meg nem engedett
tartományba kerül, az átalakító művelet hibát okoz, ami CPU-leállást okoz. Ezt a leállást az
OB121-es hiba-OB segítségével lehet kezelni (mit tegyen a CPU hiba esetén).

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - - - - -

Példa

STL Kommentár
L MW10 //A BCD-számot tölti az AKKU1-L-be.
BTI //a BCD-számot átalakítja
T MW20 //Transferiere das Ergebnis (Ganzzahl, 16 Bit) nach MW20.

"+" "9" "1" "5"

15... ...8 7... ...0


MW10 0 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 "+915" BCD

BTI BCD átalakítása egészszámmá

MW20 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 1 "+915" Egészszám

STEP 7 STL utasításlista (angol rövidítésekkel) 21


1.14 ITB Egészszám (16 Bit) átalakítása BCD-számmá

Formátum
ITB

Működés

Az ITB utasítás az AKKU1-L tartalmát 16-bites egészszámként (integer) értékeli ki, és ezt
átalakítja háromjegyű binárisan kódolt decimális számmá (BCD) alakítja. Az eredmény az
AKKU1-L-ben tárolódik. A 0...11-es bitek adják a BCD-szám értékét. A 12...15-ös bitek az
előjelet jelenítik meg (0000 = pozitiv, 1111 = negativ). Az AKKU1-H és AKKU2 nem
változik.
A BCD-szám tartománya -999...+999". Ha a szám a megangedett tartományon kívül van,
akkor a státuszszó OV és OS bitjei 1-re kerülnek.

Stázuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - x x - - - -

Példa

STL Magyarázat
L MW10 //Egészszám töltése az AKKU1-L-be.
ITB //Egészszám átalakítása (16 Bit) BCD-számmá, tárolása az AKKU1-L-ben.
T MW20 //Az eredmény átvitele az MW20-ba.

15... ...8 7... ...0


MW10 1 1 1 1 1 1 1 0 0 1 1 0 0 0 1 1 "-413" egészszám

ITB 16-bites egészszám átalakítása BCD-számmá

MW20 1 1 1 1 0 1 0 0 0 0 0 1 0 0 1 1 "-413" BCD

"-" "4" "1" "3"

STEP 7 STL utasításlista (angol rövidítésekkel) 22


1.15 BTD BCD szám átalakítása (32 bites) egészszámmá

Formátum
BTD

Működés
A BTD-utasítás az AKKU1 tartalmát hétjegyű binárisan kódolt decimális számként értékeli,
és ezt átalakítja 32-bites egészszámmá (dupla-integer). Az eredmény az AKKU1-ben
marad. Az AKKU2 nem változik.
A BCD-szám az AKKU1-ben: a megengedett értéktartomány -9999999 .... +9999999. A
0...27-es bit tartomány tartalmazza a számot, a 31-es bit az előjelet (0 = pozitív, 1 =
negatív). A 28...30-as biteket az átalakítás figyelmen kívül hagyja. Ha egy decimális
számjegy (egy 4-bites tetrád BCD-megjelenítésben) a 10…15-ös meg nem engedett
tartományba kerül, az átalakító művelet hibát okoz, ami CPU-leállást okoz. Ezt a leállást az
OB121-es hiba-OB segítségével lehet kezelni (mit tegyen a CPU hiba esetén).

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - - - - -

Példa
STL Magyarázat
L MD10 //A BCD-szám betöltése az AKKU 1-be.
BTD // a BCD-számot átalakítja, és tárolja az AKKU1-ben.
T MD20 //Az eredményt átviszi az MD20-ba.

"+" "0" "1" "5" "7" "8" "2" "1"

31... ...16 15... ...0


MD10 0 0 0 0 0 0 0 0 0 0 0 1 0 1 0 1 0 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1

"+157821"
BTD BCD átalakítása egészszámmá

MD20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 1 1 1 1 1 0 1

"+157821"

STEP 7 STL utasításlista (angol rövidítésekkel) 23


1.16 ITD 16-bites egészszám átalakítása 32-bites egészszámmá

Formátum
ITD

Működés
Az ITD utasítás az AKKU1-L tartalmát 16-bites egészszámként értékeli ki, és alakítja 32-
bites egészszámmá. Az eredményt az AKKU1-ben tárolja, az AKKU2 nem változik.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - - - - -

Példa

STL Magyarázat
L MW12 //Az egészszámot (16 Bit) az AKKU 1-L-be tölti.
ITD //A 16-bites egészszámot 32-bites egésszszámmá alakítja és az eredményt az
AKKU 1-ben tárolja.
T MD20 //Az eredményt az MD20-ban tárolja.

Példa: MW12 = "-10" (16-bites egészszám):

Tartalom AKKU1-H AKKU1-L


Bit 31 . . . . . .. . . . 16 15 . . . .. .. ...0
Az ITD végrehajtása előtt XXXX XXXX XXXX XXXX 1111 1111 1111 0110
Az ITD végrehajtása után 1111 1111 1111 1111 1111 1111 1111 0110
(az X jelű bitek az átalakítás szempontjából lényegtelenek)

STEP 7 STL utasításlista (angol rövidítésekkel) 24


1.17 DTB Egészszám (32 Bit) átalakítása BCD-számmá

Format
DTB

Működés

A DTB utasítás az AKKU1 tartalmát 32-bites egészszámként (integer) értékeli ki, és ezt
átalakítja hétjegyű binárisan kódolt decimális számmá (BCD). Az eredmény az AKKU1-ben
tárolódik. A 0...27-es bitek adják a BCD-szám értékét. A 28...31-es bitek az előjelet jelenítik
meg (0000 = pozitiv, 1111 = negativ). Az AKKU2 nem változik.

A BCD-szám tartománya -9999999...+9999999". Ha a szám a megangedett tartományon


kívül van, akkor a státuszszó OV és OS bitjei 1-re kerülnek.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - x x - - - -

Példa

STL Magyarázat
L MD10 // Az egészszámot (32 Bit) az AKKU 1-be tölti.
DTB // Egészszám átalakítása (32 Bit) BCD-számmá, tárolása az AKKU1-ben.
T MD20 // Az eredmény átvitele az MD20-ba.

31... ...16 15... ...0


MD10 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 0 1 0 0 0 0 1 1
"-701" egészszám
DTB 32-bites egészszám átalakítása BCD-re

MD20 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1

"-" "0" "0" "0" "0" "7" "0" "1"


"-701" BCD

STEP 7 STL utasításlista (angol rövidítésekkel) 25


1.18 DTR 32-bites egészszám átalakítása lebegőpontos számmá
(32 Bit, IEEE-FP)

Formátum
DTR

Működés
A DTR utasítás az AKKU 1 tartalmát 32-bites egészszámként értékeli, és átalakítja azt
lebegőpontos számmá (32 Bit, IEEE-FP). Amennyiben szükséges, a művelet kerekíti az
eredményt (egy 32-bites egészszám nagyobb pontossággal rendelkezik, mint a 32-bites
IEEE-FP lebegőpontos szám). Az eredmény tárolódik az AKKU1-ben.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - - - - -

Példa

STL Magyarázat
L MD10 //Az egészszám betöltése az AKKU1-be
DTR //Az egészszám átalakítása lebegőpontos számmá, és tárolása az AKKU1-ben
T MD20 //Az eredmény átvitele az MD20-ban.

MD10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0

Az egészszám átalakítása lebegőpontos számmá "+500" egészszám

DTR
31 30... 22... ...0
MD20 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Exponens, 8 Bits Mantissza, 23 Bits


1 Bit "+500" IEEE-FP
A mantissza előjele

STEP 7 STL utasításlista (angol rövidítésekkel) 26


1.19 INVI 16-bites egészszám 1-es komplemense

Formátum
INVI

Működés
Az INVI utasítás az AKKU1-L tartalmának 1-es komplemensét képzi. Ennek során az
eredeti tartalom minden bitjének értékét megfordítja, azaz a nullákat 1-essel, az 1-eseket
nullákkal helyettesíti. Az átalakítás eredményét az AKKU1-L-ben tárolja.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - - - - -

Példa

STL Magyarázat
L IW8 //Az érték betöltése az AKKU1-L-be.
INVI //Az egyeskomplemens képzése (16 Bit).
T MW10 // Az eredmény átvitele az MW10-be.

Tartalom AKKU1-L
Bit 15 . . . .. .. ...0
Az INVI végrehajtása előtt 0110 0011 1010 1110
Az INVI végrehajtása után 1001 1100 0101 0001

STEP 7 STL utasításlista (angol rövidítésekkel) 27


1.20 INVD 32-bites egészszám 1-es komplemense

Formátum
INVD

Működés
Az INVD utasítás az AKKU1 tartalmának 1-es komplemensét képzi. Ennek során az
eredeti tartalom minden bitjének értékét megfordítja, azaz a nullákat 1-essel, az 1-eseket
nullákkal helyettesíti. Az átalakítás eredményét az AKKU1 -ben tárolja.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - - - - -

Példa

STL Magyarázat
L ID8 //Az érték betöltése az AKKU1-be.
INVD //Az egyeskomplemens képzése (32 Bit).
T MD10 // Az eredmény átvitele az MD10-be.

Tartalom AKKU1-H AKKU1-L


Bit 31 . . . . . .. . . . 16 15 . . . .. .. ...0
Az INVD végrehajtása előtt 0110 1111 1000 1100 0110 0011 1010 1110
Az INVD végrehajtása után 1001 0000 0111 0011 1001 1100 0101 0001

STEP 7 STL utasításlista (angol rövidítésekkel) 28


1.21 NEGI 16-bites egészszám 2-es komplemense

Formátum
NEGI

Működés
A NEGI utasítás az AKKU1-L tartalmának 2-es komplemensét képzi. Ennek során az
eredeti tartalom minden bitjének értékét megfordítja, azaz a nullákat 1-essel, az 1-eseket
nullákkal helyettesíti, majd hozzáad 1-et. Az átalakítás eredményét az AKKU1-L-ben
tárolja
A 2-es komplemens képzése művelet a -1-gyel való szorzásnak felel meg. Az A1, A0, OS
és OV státuszbiteket az operációs rendszer 1-be állítja.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - x x x x - - - -

A státuszbitek képzése: A1 A0 OV OS
eredmény = 0 0 0 0 -
-32768 <= eredmény <= -1 0 1 0 -
32767 >= eredmény >= 1 1 0 0 -
eredmény = 2768 0 1 1 1

Példa

STL Magyarázat
L IW8 // Az érték betöltése az AKKU1-L-be.
NEGI //A ketteskomplemens képzése (16 Bit).
T MW10 // Az eredmény átvitele az MW10-be.

Tartalom AKKU1-L
Bit 15 . . . .. .. ...0
A NEGI végrehajtása előtt 0101 1101 0011 1000
A NEGI végrehajtása után 1010 0010 1100 1000

STEP 7 STL utasításlista (angol rövidítésekkel) 29


1.22 NEGD 32-bites egészszám 2-es komplemense

Formátum
NEGD

Működés
A NEGD utasítás az AKKU1 tartalmának 2-es komplemensét képzi. Ennek során az
eredeti tartalom minden bitjének értékét megfordítja, azaz a nullákat 1-essel, az 1-eseket
nullákkal helyettesíti, majd hozzáad 1-et. Az átalakítás eredményét az AKKU1-ben tárolja
A 2-es komplemens képzése művelet a -1-gyel való szorzásnak felel meg. Az A1, A0, OS
és OV státuszbiteket az operációs rendszer 1-be állítja.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - x x x x - - - -

A státuszbitek képzése: A1 A0 OV OS
Eredmény = 0 0 0 0 -
-2.147.483.648 <= Eredmény <= -1 0 1 0 -
2.147.483.647 >= Eredmény >= 1 1 0 0 -
Eredmény = 2 147 483 648 0 1 1 1

Példa

STL Magyarázat
L ID8 // Az érték betöltése az AKKU1-be.
NEGD //A ketteskomplemens képzése (32 Bit).
T MD10 // Az eredmény átvitele az MD10-be.

Tartalom AKKU1-H AKKU1-L


Bit 31 . . . . . .. . . . 16 15 . . . .. .. ...0
NEGD végrehajtása előtt 0101 1111 0110 0100 0101 1101 0011 1000
NEGD végrehajtása után 1010 0000 1001 1011 1010 0010 1100 1000

STEP 7 STL utasításlista (angol rövidítésekkel) 30


1.23 NEGR Lebegőpontos szám negálása

Formátum
NEGR

Működés
A NEGR utasítás (32 Bit, IEEE-FP) negálja az AKKU-1-ben lévő lebegőpontos számot. A
művelet megfordítja az AKKU-1 31-es bitjének (a mantissza előjele) állapotát. Az
eredmény az AKKU1-ben található.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - - - - -

Példa

STL Magyarázat
L ID8 //Az érték betöltése az AKKU 1-be (példa ED8 = 1.5E+02).
NEGR //a lebegőpontos szám negálása (32 Bit, IEEE-FP), és az eredmény tárolása
az AKKU 1-ben.
T MD10 // Az eredmény átvitele az MD10-be (Példa, eredmény = -1.5E+02).

STEP 7 STL utasításlista (angol rövidítésekkel) 31


1.24 RND Lebegőpontos szám kerekítése egészszámmá

Formátum
RND

Működés
Az RND utasítás az AKKU1 tartalmát lebegőpontos számként (32 Bit, IEEE-FP) értékeli ki,
és átalakítja egészszámmá (32 bit). Átalakításkor az eredményt a következő egészszámra
kerekíti. Ha a szám a megengedett tartományon túl van, akkor az op. rendszer az OV és
OS státuszbiteket 1-be állítja.
Ha hiba lép fel (NaN vagy olyan lebegőpontos szám, amelyet nem lehet 32-bites
egészszámként megjeleníteni), akkor az op. Rendszer az utasítást nem hajtja végre,
hanem túlcsordulást jelez.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - x x - - - -

Példa

STL Magyarázat
L MD10 //A lebegőpontos szám betöltése az AKKU1-be (32 Bit, IEEE-FP).
RND //Átalakítja a lebegőpontos számot (32 Bit, IEEE-FP) egészszámmá (32 Bit)
és kerekíti az eredményt, majd elhelyezi az AKKU1-ben.
T MD20 //Az eredményt átviszi az MD20-ba.

Értéke az átalakítás előtt Értéke az átalakítás után


MD10 = "100.5" => RND => MD20 = "+100"
MD10 = "-100.5" => RND => MD20 = "-100"

STEP 7 STL utasításlista (angol rövidítésekkel) 32


1.25 TRUNC Lebegőpontos szám kerekítése levágással

Formátum
TRUNC

Működés
TRUNC utasítás az AKKU1 tartalmát lebegőpontos számként (32 Bit, IEEE-FP) értékeli
ki, és átalakítja egészszámmá (32 bit). Átalakításkor az eredmény az átalakított számból
csak az egészszámú részt őrzi meg, a tört részt egyszerűen levágja. Ha a szám a
megengedett tartományon túl van, akkor az op. rendszer az OV és OS státuszbiteket 1-be
állítja. Az eredmény az AKKU1-be kerül.
Ha hiba lép fel (NaN vagy olyan lebegőpontos szám, amelyet nem lehet 32-bites
egészszámként megjeleníteni), akkor az op. Rendszer az utasítást nem hajtja végre,
hanem túlcsordulást jelez.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - x x - - - -

Példa

STL Magyarázat
L MD10 // A lebegőpontos szám betöltése az AKKU1-be (32 Bit, IEEE-FP)..
TRUNC // Átalakítja a lebegőpontos számot (32 Bit, IEEE-FP) egészszámmá
(32 Bit) és kerekíti az eredményt, majd elhelyezi az AKKU1-ben.
T MD20 // Az eredményt átviszi az MD20-ba.

Érték az átalakítás előtt Érték az átalakítás után


MD10 = "100.5" => TRUNC => MD20 = "+100"
MD10 = "-100.5" => TRUNC => MD20 = "-100"

STEP 7 STL utasításlista (angol rövidítésekkel) 33


1.26 RND+ Lebegőpontos szám átalakítása egészszámra felfelé
kerekítéssel

Formátum
RND+

Működés
RND+ utasítás az AKKU1 tartalmát lebegőpontos számként (32 Bit, IEEE-FP) értékeli ki,
és átalakítja egészszámmá (32 bit). Az eredményt kerekíti arra a legkisebb egészszámra,
amely nagyobb vagy egyenlő az átalakított lebegőpontos számmal (IEEE-Rundungsmodus
"Round to +infinity"). Ha a szám a megengedett tartományon túl van, akkor az op.
rendszer az OV és OS státuszbiteket 1-be állítja. Az eredmény az AKKU1-be kerül.
Ha hiba lép fel (NaN vagy olyan lebegőpontos szám, amelyet nem lehet 32-bites
egészszámként megjeleníteni), akkor az op. Rendszer az utasítást nem hajtja végre,
hanem túlcsordulást jelez.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - x x - - - -

Példa:

STL Magyarázat
L MD10 // A lebegőpontos szám betöltése az AKKU1-be (32 Bit, IEEE-FP).
RND // Átalakítja a lebegőpontos számot (32 Bit, IEEE-FP) egészszámmá (32 Bit)
és kerekíti az eredményt, majd elhelyezi az AKKU1-ben.
T MD20 // Az eredményt átviszi az MD20-ba.

Érték az átalakítás előtt Érték az átalakítás után


MD10 = "100.5" => RND+ => MD20 = "+101"
MD10 = "-100.5" => RND+ => MD20 = "-100"

STEP 7 STL utasításlista (angol rövidítésekkel) 34


1.27 RND- Lebegőpontos szám átalakítása egészszámra lefelé
kerekítéssel

Formátum
RND-

Működés
RND- utasítás az AKKU1 tartalmát lebegőpontos számként (32 Bit, IEEE-FP) értékeli ki,
és átalakítja egészszámmá (32 bit). Az eredményt kerekíti arra a legkisebb egészszámra,
amely kisebb vagy egyenlő az átalakított lebegőpontos számmal (IEEE-Rundungsmodus
"Round to -infinity"). Ha a szám a megengedett tartományon túl van, akkor az op.
rendszer az OV és OS státuszbiteket 1-be állítja. Az eredmény az AKKU1-be kerül.
Ha hiba lép fel (NaN vagy olyan lebegőpontos szám, amelyet nem lehet 32-bites
egészszámként megjeleníteni), akkor az op. Rendszer az utasítást nem hajtja végre,
hanem túlcsordulást jelez..

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - x x - - - -

Példa

STL Magyarázat
L MD10 // A lebegőpontos szám betöltése az AKKU1-be (32 Bit, IEEE-FP).
RND // Átalakítja a lebegőpontos számot (32 Bit, IEEE-FP) egészszámmá (32 Bit)
és kerekíti az eredményt, majd elhelyezi az AKKU1-ben.
T MD20 // Az eredményt átviszi az MD20-ba.

Érték az átalakítás előtt Érték az átalakítás után


MD10 = "100.5" => RND- => MD20 = "+100"
MD10 = "-100.5" => RND- => MD20 = "-101"

STEP 7 STL utasításlista (angol rövidítésekkel) 35


1.28 FR A számláló újraengedélyezése

Formátum
FR <számláló>

Operandus Adattipus Tártartomány


<számláló> COUNTER Z

Működés
Az FR <számláló> utasítás törli azt az élváltozót, amely a címzett számlálót előre ill. hátra
számláltatja, amikor a logikai műveleti eredmény (RLO) 0-ról 1-re vált. A számláló
engedélyezése nem szükséges, ha a normális számlálási funkció kerül végrehajtásra. Ez
azt jelenti, hogy az előreszámláló (CU) vagy hátraszámláló (CD) ill. előbeállítási (S)
bemeneten folyamatosan fennálló 1-es jel ellenére a számláló engedélyezése után a
művelet ismét végrehajtásra kerül.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 - - 0

Példa

STL Magyarázat
A I 2.0 //Lekérdezi az I 2.0 cím állapotát.
FR C3 //Újraengedélyezi a C3-as számlálót, ha a RLO "0"-ról "1"-re vált.

STEP 7 STL utasításlista (angol rövidítésekkel) 36


1.29 L A számláló aktuális értékének betöltése az AKKU1-be
egészszámként (bináris formátumban)

Formátum
L <számláló>

Operandus Adattipus Tártartomány


<számláló> COUNTER C

Működés
Az L <számláló> utasítás az AKKU1-L-be tölti a címzett számláló aktuális számlálási
értékét egészszámként, miután az AKKU1 tartalmát átmásolta az AKKU2-be.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - - - - -

Példa
STL Magyarázat
L C3 //A C3 számláló tartalmának töltése bináris formátumba az AKKU1-L-be.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

A C3 számláló
tartalma a tárban
Számlálási érték (0 bis 999)
bináris formátumban

L C3
Az AKKU1-L
tartalma a
töltési
utasítás után
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

mind"0"

STEP 7 STL utasításlista (angol rövidítésekkel) 37


1.30 LC A számláló aktuális értékének betöltése az AKKU1-be
BCD-számként

Formátum
LC <számláló>

Operandus Adattipus Tártartomány


<számláló> COUNTER C

Működés
Az LC <számláló> az AKKU1-L-be tölti a címzett számláló aktuális számlálási értékét
BCD számként, miután az AKKU1 tartalmát átmásolta az AKKU2-be.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - - - - -

STL Magyarázat
LC C3 // AKKU1-L-be tölti a címzett számláló aktuális értékét BCD számként.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
A C3
számláló
tartalma a
tárban

Számlálási érték (0 bis 999) bináris


formátumban

LC C3

Az AKKU1-L
tartalma a 0 0 0 0
töltési utasítás
után 2
15
2
14 13
2 2
12 11
2 2
10 9
2 2
8
2
7
2
6
2
5 4
2 2
3
2
2
2
1
2
0

102 százasok 101 tizesek 100 egyesek

Számlálási érték BCD számként

STEP 7 STL utasításlista (angol rövidítésekkel) 38


1.31 R Számláló törlése

Formátum
R <számláló>

Operandus Adattipus Tártartomány


<számláló> COUNTER C

Működés
Az R <számláló> utasítás "0" –át tölt a címzett számláló tárterületére, ha a RLO = 1.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 - - 0

Példa

STL Magyarázat
U I 2.3 //Lekérdezi az I 2.3-as bemenet állapotát
R C3 //A C3-as számláló tárterületére 0-át tölt, ha a RLO = 1 (I2.3 = 1).

STEP 7 STL utasításlista (angol rövidítésekkel) 39


1.32 S A számláló indulási (előbeállítási) értékének beírása

Formátum
S <számláló>

Operandus Adattipus Tártartomány


<számláló> COUNTER C

Működés
Az S <számláló> utasítás betölti a az AKKU1-L tartalmát a címzett számláló tárterületére,
ha a RLO 0-ról 1-re vált. Az AKKU1-ben a töltendő értéknek BCD számként kell
rendelkezésre állni 0 és 999 között.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 - - 0

Példa

STL Magyarázat
U I 2.3 // Lekérdezi az I 2.3-as bemenet állapotát.
L C#3 //betölti az AKKU1-L-be az indulási értéket.
S C1 //a C1-es számlálót 3-ra állítja, ha a RLO 0-ról 1-re vált.

STEP 7 STL utasításlista (angol rövidítésekkel) 40


1.33 CU Számlálás előre

Formátum
CU <számláló>

Operandus Adattipus Tártartomány


<számláló> COUNTER C

Működés
A CU <számláló> utasítás megnöveli a címzett számláló értékét a tárterületen 1-gyel, ha a
RLO 0-ról 1-re vált és az érték még nem érte el a 999-et. Ha az érték a tárterületen a 999
határértéket elérte, akkor a művelet már nem növeli továbbb a számláló értékét, és a
túlcsordulási bit (OV) sem billen 1-be a státuszregiszterben.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 - - 0

Példa

STL Magyarázat
A I 2.1 // Lekérdezi az I 2.1-es bemenet állapotát.
CU C3 //A C3 tartalmát 1-gyel megnöveli, ha a RLO 0-ról 1-re vált.

STEP 7 STL utasításlista (angol rövidítésekkel) 41


1.34 CD Számlálás visszafele

Formátum
CD <számláló>

Operandus Adattipus Tártartomány


<számláló> COUNTER C

Működés
A CD <számláló> utasítás csökkenti a címzett számláló értékét a tárterületen 1-gyel, ha a
RLO 0-ról 1-re vált és az érték még nem érte el a 0-át. Ha az érték a tárterületen a 0
határértéket elérte, akkor a művelet már nem csökkenti továbbb a számláló értékét, mivel
a számláló a negatív tartományban nem működik.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 - - 0

Példa

STL Magyarázat
A I 2.1 // Lekérdezi az I 2.1-es bemenet állapotát.
CD C3 //A C3 tartalmát 1-gyel csökkenti, ha a RLO 0-ról 1-re vált.

STEP 7 STL utasításlista (angol rövidítésekkel) 42


1.35 OPN Adatmodul (adatblokk) megnyitása

Formátum
OPN <adatmodul>

Operandus Adatmodul tipusa Cím


<adatmodul> DB, DI 1 ... 65535

Működés
Az OPN <Adatmodul> utasítás globális (DB) vagy instant-adatmodult (DI) nyit meg.
Egyidejüleg egy globális és egy instant adatmodul lehet nyitva.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - - - - -

Példa

STL Magyarázat
OPN DB10 //Megnyitja a DB10-es adatmodult globális adatmodulként.
L DBW35 //A DBW35 címzésű adatszót tölti a megnyitott adatmodulból az AKKU1-L-be.
T MW22 //Átviszi az AKKU1-L tartalmát az MW22-be.
OPN DI20 // Megnyitja a DB20-as adatmodult instant adatmodulként.
L DIB12 //Betölti a DIB12 bájtot a megnyitott instant adatmodulból az AKKU1-L-L-be.
T DBB37 //Az AKKU1-L-L tartalmát átviszi a megnyitott gobális adatmodul DBB37
adatbájtjába.

STEP 7 STL utasításlista (angol rövidítésekkel) 43


2 Ugrások

2.1 Az ugrásutasítások áttekintése


Az ugrásutasítások lehetővé teszik a program futásának egy adott ponton való
megszakítását, és egy másik ponton folytatását. Ha a LOOP utasítást használják, akkor
egy programdarabot többször is végrehajthatnak ugyanabban a ciklusban, vagyis hurkot
képezhetnek.
Az ugrási művelet ill. a LOOP utasítás operandusa egy un. ugrási cimke . Az ugrási
utasítás max. 4 karakterből állhat, amiből az első karakternek betünek kell lenni. A célnál
elhelyezett cimke kettősponttal folytatódik, majd a végrehajtandó utasítás következik.

Megjegyzés
Figyelni kell arra, hogy az S7-300-CPU-k esetében ugrási műveletnél az ugrási
célnak mindig a logikai lánc elején kell lenni (nem vonatkozik a 318-2 tipusra). A
cél nem lehet a logikai láncon belül.

A következő utasításokkal lehet a program futását feltétlenül megszakítani:


• JU Feltétel nélküli ugrás
• SPL Többszörös elágazás

A következő utasításokkal lehet a program végrehajtását egy feltételtől függően


megszakítani. Az ugrás végrehajtása a RLO-től függ, amit az előző utasítás képzett.
• JC ugrik, ha RLO = 1
• JCN ugrik, ha RLO = 0
• JCB ugrik, ha RLO = 1 és a RLO-t elmenti a BR státuszbitbe
• JCNB ugrik, ha RLO = 0 és a RLO-t elmenti a BR státuszbitbe

STEP 7 STL utasításlista (angol rövidítésekkel) 44


A következő utasítások a programvégrehajtást megszakítják a státuszszó megadott
bitjeitől függően.
• SPBI ugrik, ha BR = 1
• SPBIN ugrik, ha BR = 0
• SPO ugrik, ha OV = 1
• SPS ugrik, ha OS = 1

A következő utasítások a programvégrehajtást megszakítják a számítás eredményétől


függően.
• SPZ ugrik ha az eredmény = 0
• SPN ugrik ha az eredmény <> 0
• SPP ugrik ha az eredmény > 0
• SPM ugrik ha az eredmény < 0
• SPPZ ugrik ha az eredmény >= 0
• SPMZ ugrik ha az eredmény <= 0
• SPU ugrik ha az eredmény érvénytelen

STEP 7 STL utasításlista (angol rövidítésekkel) 45


2.2 JU Feltétel nélküli (abszolút) ugrás

Formátum
JU <ugrási cimke>

Operandus Megnevezés
<ugrási cimke> Az ugrási cél szimbólikus neve.

Működés
A JU <ugrási cimke> utasítás függetlenül a RLO-től megszakítja a lineáris
programvégrehajtást és a megadott célra ugrik, majd ott folytatja a programutasítások
végrehajtását. Az ugrás célját cimkével kell megadni. Ugrani lehet előre ill. hátra, de a
programmodul (programblokk) határain nem lehet átugrani (más programmodulba). Tehát
a programutasításnak és az ugrási célnak ugyanabban a programmodulban kell lenni. A
célnak egyértelműnek kell lenni, vagyis csak egyszer szabad előfordulni. Ezt a
programszerkesztő természetesen ellenőrzi. A maximális ugrási távolság -32768 ill.
+32767 szó. Szem előtt kell tartani, hogy a programutasítások hossza különböző (egy,
kettő vagy három szó).

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


Írja: - - - - - - - - -

Példa

STL Magyarázat
A I 1.0
A I 1.2
JC DELE //ugrik, ha a RLO = 1, a DELE ugrási címre.
L MB10
INC 1
T MB10
JU FORW //Feltétel nélüli ugrás a FORW cimkére.
DELE: L 0
T MB10
FORW: A I 2.1 //A program az ugrás után itt folytatódik.

STEP 7 STL utasításlista (angol rövidítésekkel) 46


2.3 JL Többszörös elágazás

Formátum
JL <ugrási címke>

Operandus Megnevezés
<ugrási címke> Az ugrási cél szimbólikus neve.

Működés
Az SPL < ugrási címke > utasítás lehetővé teszi egy célból kiindulva több eset (case)
közüli választás, másként kifejezve a tösszörös elágazás programozását. A választható
célok rögtön az SPL utasítás után következnek, számuk max. 255, és befejeződnek azon a
célon, ami az SPL utasítás mellett áll. Minden ugrási cél egy SPA utasításból áll. Az ugrási
utasítás számát (0...255) a program az AKKU1-L-L-ből veszi.
Ameddig az akkumulátor tartalma kisebb mint az SPL utasítás és a mellette megadott
ugrási címke közötti ugrási célok száma, az SPL művelet az SPA utasítások
valamelyikére ugrik. Ha az AKKU1-L-L nulla, akkor a program az első SPA utasításra
ugrik, ha 1, akkor a másodikra stb. Ha az ugrási cél száma az AKKU1-ben nagyobb mint a
ténylegesen létező célok száma, akkor a program az utolsó SPA utasítás utáni utasításon
folytatódik.
Az SPL utasítás után a többszörös elágazást biztosító SPA utasítások között egyéb
utasításnak nem szabad lenni.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - - - - -

STEP 7 STL utasításlista (angol rövidítésekkel) 47


Példa

STL Magyarázat
L MB0 //Az ugrási cél számának (0...255) betöltése az AKKU1-L-L-be.
JL LSTX //Ugrási cél, ha AKKU1-L-L > 3.
JU SEG0 //Ugrási cél, ha AKKU1-L-L = 0.
JU SEG1 //Ugrási cél, ha AKKU1-L-L = 1.
JU COMM //Ugrási cél, ha AKKU1-L-L = 2.
JU SEG3 //Ugrási cél, ha AKKU1-L-L = 3.
LSTX: JU COMM
SEG0: * //utasítás.
*
JU COMM
SEG1: * //utasítás.
*
JU COMM
SEG3: * //utasítás.
*
JU COMM
COMM: *
*

STEP 7 STL utasításlista (angol rövidítésekkel) 48


2.4 JC Ugrik, ha RLO = 1

Formátum
JC <ugrási cimke>

Operandus Megnevezés
<ugrási cimke> Az ugrási cél szimbólikus neve.

Működés
Ha RLO = 1, akkor a JC <ugrási címke> utasítás megszakítja a lineáris
programvégrehajtást és a megadott ugrási címkére ugrik. A program végrehajtása itt
folytatódik. Az ugrás történhet előre is és hátrafelé, de a programmodulból
(programblokkból) kiugrani nem lehet. Tehát az ugrási utasításnak és a címkének
ugyanabban a programmodulban kell lenni. Az ugrási utasításnak egyértelmünek kell lenni,
a címke tehát csak egyszer fordulhat elő egy adott programmodulban. A max. ugrási táv -
32768 ill. +32767 utasítás-szó lehet. A tényleges maximális utasítás, amit a program át tud
ugrani, az utasítások kombinációjától függ (egy-, két- vagy háromszavas utasítás.
Ha a RLO = 0, akkor az operációs rendszer nem hajtja végre az ugrást. A RLO-t 1-re
állítja, és a program folytatódik a megszakítás helyétől.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 1 1 0

Példa

STL Magyarázat
A I 1.0
A I 1.2
JC JOVR //Ugrik, ha RLO = 1, a JOVR címkére.
L IW8 //Itt folytatódik a program ha az ugrás nem hajtódik végre.
T MW22
JOVR: A I 2.1 //Ha az ugrás végrehajtódik, akkor a program itt folytatódik.

STEP 7 STL utasításlista (angol rövidítésekkel) 49


2.5 JCN Ugrik ha RLO = 0

Formátum
SPBN <ugrási címke>

Operandus Megnevezés
<ugrási címke> Az ugrási cél szimbólikus neve.

Működés
Ha a RLO = 0, akkor a JCN <ugrási címke> utasítás megszakítja a lineáris programfutást
és az ugrási címkénél folytatja. Az ugrás történhet előre is és hátrafele, de a
programmodulból (programblokkból) kiugrani nem lehet. Tehát az ugrási utasításnak és a
címkének ugyanabban a programmodulban kell lenni. Az ugrási utasításnak
egyértelmünek kell lenni, a címke tehát csak egyszer fordulhat elő egy adott
programmodulban. A max. ugrási táv -32768 ill. +32767 utasítás-szó lehet. A tényleges
maximális utasítás, amit a program át tud ugrani, az utasítások kombinációjától függ (egy-,
két- vagy háromszavas utasítás).
Ha a RLO = 1, akkor az operációs rendszer nem hajtja végre az ugrást. A RLO-t 1-re
állítja, és a program folytatódik a megszakítás helyétől.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 1 1 0

Példa

STL Magyarázat
A I 1.0
A I 1.2
JCN JOVR // Ugrik, ha RLO = 0, a JOVR címkére.
L IW8 // Itt folytatódik a program ha az ugrás nem hajtódik végre..
T MW22
JOVR: A I 2.1 // Ha az ugrás végrehajtódik, akkor a program itt folytatódik.

STEP 7 STL utasításlista (angol rövidítésekkel) 50


2.6 LOOP Hurok programozása

Formátum
LOOP <ugrási címke>

Operandus Megnevezés
<Ugrási címke> Az ugrási cél szimbólikus neve.

Működés
A LOOP <ugrási címke> (az AKKU1-L tartalmának csökkentése, és ugrás, ha az
AKKU1-L <> 0) utasítás egyszerűbbé teszi a hurkok programozását. A hurokszámláló
előjel nélküli 16-bites egészszám, és az AKKU1-L-ben kell lennie, amikor a LOOP utasítás
következik. A LOOP utasításnál a program visszaugrik a LOOP után megadott címkére. Az
ugrás mindaddig folytatódik, ameddig az AKKU1-L nem lesz nulla. A programnak azt a
részét, amelyet többször akarnak végrehajtani az ugrási címke és a LOOP utasítás közé
kell írni.

Státuszszó
BR A1 A0 OV OS OR STA RLO /ER
írja: - - - - - - - - -

Példa

STL Magyarázat
L L#1 //Állandó töltése az AKKU 1-be.
T MD20 //Az AKKU 1 tartalmának átvitele az MD20-ba (inicializálás).
L 5 //A hurokszám töltése az AKKU1-L-be
NEXT: T MW10 //Ugrási cimke = a hurok kezdete / az AKKU1-L betöltése a
hurokszámlálóba.
L MD20
* D //Az MD20 tartalmának szorzása az MB10 tartalmával
T MD20 //Az eredmény átvitele az MD20-ba.
L MW10 //A hurokszámláló töltése az AKKU1-be.
LOOP NEXT //Az AKKU 1 tartalmának csökkentése eggyel és ugrás a NEXT
címkére, ha az AKKU1-L > 0.
L MW24 //A hurok befejezése után a program itt folytatódik.
L 200
>I

STEP 7 STL utasításlista (angol rövidítésekkel) 51


2.7 +I Az AKKU 1 és 2 egészámként történő összeadása
(16 Bit)

Formátum
+I

Működés
A +I utasítás összeadja az AKKU1-L tartalmát az AKKU2-L tartalmával és az eredményt
tárolja az AKKU1-L-ben. Az összeadás során az AKKU1-L és AKKU2-L tartalmát a
program 16-bites egészszámként értékeli. A müvelet nem befolyásolja és nem veszi
figyelembe a RLO-t. Az A1, A0, OS, és OV státuszbit az eredménytől függően változik.
A két akkumulátorral rendelkező CPU-k esetében az AKKU2 tartalma változatlan marad.
A négy akkumulátorral rendelkező CPU-k esetében az operációs rendszer az AKKU3
tartalmát az AKKU2-be, az AKKU 4 tartalmát az AKKU 3-ba másolja. Az AKKU 4 tartalma
nem változik.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - x x x x - - - -

A státuszbitek képzése A1 A0 OV OS
Összeg = 0 0 0 0 -
-32768 <= összeg < 0 0 1 0 -
32767 >= összeg > 0 1 0 0 -
összeg = -65536 0 0 1 1
65534 >= összeg > 32767 0 1 1 1
-65535 <= összeg < -32768 1 0 1 1

Példa

STL Magyarázat
L IW10 //az IW10-ben lévő érték az AKKU1-L-be kerül.
L MW14 //Az MW14 tartalmának betöltése az AKKU1-L-be. Ekkor az AKKU-1 korábbi
tartalma átmegy az AKKU2-L-be.
+I //összeadja az AKKU2-L és a AKKU1-L tartalmát, az eredményt az AKKU1-
L-ben tárolja
T DB1.DBW25 //Az AKKU1-L tartalma átmásolódik a DB1 DBW25-es szavába.

STEP 7 STL utasításlista (angol rövidítésekkel) 52


2.8 -I Az AKKU1 kivonása az AKKU2-ből (16 bit)

Formátum
-I

Működés
A -I utasítás kivonja az AKKU1-L tartalmát az AKKU2-L tartalmából, és az eredményt az
AKKU1-L-ben tárolja. A kivonás során az AKKU1-L és AKKU2-L tartalmát a program 16-
bites egészszámként értékeli. A müvelet nem befolyásolja és nem veszi figyelembe a
RLO-t. Az A1, A0, OS, és OV státuszbit az eredménytől függően változik.
A két akkumulátorral rendelkező CPU-k esetében az AKKU2 tartalma változatlan marad.
A négy akkumulátorral rendelkező CPU-k esetében az operációs rendszer az AKKU3
tartalmát az AKKU2-be, az AKKU 4 tartalmát az AKKU 3-ba másolja. Az AKKU 4 tartalma
nem változik.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - x x x x - - - -

A státuszbitek képzése A1 A0 OV OS
különbség = 0 0 0 0 -
-32768 <= különbség <0 0 1 0 -
32767 >= különbség >0 1 0 0 -
65535 >= különbség > 32767 0 1 1 1
-65535 <= különbség < -32768 1 0 1 1

Példa

STL Magyarázat
L IW10 // az IW10-ben lévő érték az AKKU1-L-be kerül.
L MW14 // Az MW14 tartalmának betöltése az AKKU1-L-be. Ekkor az AKKU-1
korábbi tartalma átmegy az AKKU2-L-be
-I //Az AKKU1-L kivonása az AKKU2-L-ből,az eredmény tárolása az AKKU1-L-
ben.
T DB1.DBW25 // Az AKKU1-L tartalma átmásolódik a DB1 DBW25-es szavába.

STEP 7 STL utasításlista (angol rövidítésekkel) 53


2.9 *I AKKU1 és AKKU2 szorzása egészszámként (16 Bit)

Formátum
*I

Működés
A *I utasítás az AKKU2-L tartalmát szorozza össze az AKKU1-L tartalmával. A szorzás
során az AKKU1-L és AKKU2-L tartalmát a program 16-bites egész-számként értékeli. Az
eredmény az AKKU1-ben tárolódik. Ha az OV 1 = 1 és OS = 1, akkor az eredmény túllépi
a 16-bites egészszám határát.
A müvelet nem befolyásolja és nem veszi figyelembe a RLO-t. Az A1, A0, OS, és OV
státuszbit az eredménytől függően változik. A két akkumulátorral rendelkező CPU-k
esetében az AKKU2 tartalma változatlan marad.
A négy akkumulátorral rendelkező CPU-k esetében az operációs rendszer az AKKU3
tartalmát az AKKU2-be, az AKKU 4 tartalmát az AKKU 3-ba másolja. Az AKKU 4 tartalma
nem változik.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - x x x x - - - -

A státuszbitek képzése A1 A0 OV OS
szorzat = 0 0 0 0 -
-32768 <= szorzat < 0 0 1 0 -
32767 >= szorzat > 0 1 0 0 -
1.073.741.824 >= szorzat > 32767 1 0 1 1
-1.073.709.056 <= szorzat < -32768 0 1 1 1

Példa

STL Magyarázat
L IW10 // az IW10-ben lévő érték az AKKU1-L-be kerül.
L MW14 // Az MW14 tartalmának betöltése az AKKU1-L-be. Ekkor az AKKU-1
korábbi tartalma átmegy az AKKU2-L-be.
*I //Az AKKU2-L szorzása azAKKU1-L-lel,az eredmény tárolása az AKKU 1-
ben.
T DB1.DBD25 // Az AKKU1 tartalma átmásolódik a DB1 DBD25-ös duplaszóba.

STEP 7 STL utasításlista (angol rövidítésekkel) 54


2.10 /I Az AKKU2 osztása az AKKU1-gyel (16 Bit)

Formátum
/I

Működés
A /I utasítás elosztja az AKKU2-L-t az AKKU1-L tartalmával. Az osztás során az AKKU1-L
és AKKU2-L tartalmát a program 16-bites egész-számként értékeli. Az eredmény az
AKKU1-ben tárolódik, és két egészszámból áll (16 Bit): a hányados és az osztás
maradéka. A hányados az AKKU1-L-ben, a maradék pedig az AKKU1-H –ban található. A
müvelet nem befolyásolja és nem veszi figyelembe a RLO-t. Az A1, A0, OS, és OV
státuszbit az eredménytől függően változik.
A két akkumulátorral rendelkező CPU-k esetében az AKKU2 tartalma változatlan marad.
A négy akkumulátorral rendelkező CPU-k esetében az operációs rendszer az AKKU3
tartalmát az AKKU2-be, az AKKU 4 tartalmát az AKKU 3-ba másolja. Az AKKU 4 tartalma
nem változik.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - x x x x - - - -

A státuszbitek képzése A1 A0 OV OS
hányados = 0 0 0 0 -
-32768 <= hányados < 0 0 1 0 -
32767 >= hányados > 0 1 0 0 -
hányados = 32768 1 0 1 1
Osztás nullával 1 1 1 1

STL Magyarázat
L IW10 //Az IW10 értéke betöltődik az AKKU1-L-be.
L MW14 //Betölti az MW14 tartalmát az AKKU1-L-be, és áttolja az előző tartalmat az
AKKU2-L-be
/I //Az AKKU2-L osztása az AKKU1-L tartalmával, az eredmény tárolása az AKKU1-
ben: AKKU1-L: hányados, AKKU1-H: maradék
T MD20 //Az AKKU 1 tartalma (eredmény) átmásolódik az MD20-ba.

STEP 7 STL utasításlista (angol rövidítésekkel) 55


2.11 + Egészszámú állandó hozzáadása (16, 32 Bit)

Formátum
+ <egészszámú állandó>

Operandus Adattipus
< egészszámú állandó > állandó, (16 ill. 32 Bit)

Működés
A + < egészszámú állandó > utasítás egészszámú állandót ad az AKKU1 tartalmához ,
és tárolja az AKKU1-ben. A művelet a státuszbitek befolyásolása nélkül kerül
végrehajtásra.
A + < egészszámú állandó, 16bit > utasítás egészszámú állandót ad az AKKU1-L
tartalmához (tartomány -32768 ... +32767), és tárolja az AKKU1-L-ben.
A + < egészszámú állandó, 32 bit > utasítás egészszámú állandót ad az AKKU1
tartalmához tartomány -2.147.483.648 bis 2.147.483.647, és tárolja az AKKU1-ben.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - - - - -

Példa

STL Magyarázat
L IW10 // Az IW10 értéke betöltődik az AKKU1-L-be.
L MW14 // Betölti az MW14 tartalmát az AKKU1-L-be, és áttolja az előző
tartalmat az AKKU2-L-be.
+I //összeadja az AKKU1-L és AKKU2-L tartalmát, az eredményt tárolja az
AKKU1-L-ben.
+ 25 //25-öt ad az AKKU1-L-hez, és tárolja az AKKU1-L-ben.
T DB1.DBW25 // Az AKKU1 tartalma átmásolódik a DB1 DBD25-ös szóba..

STL Magyarázat
L IW12
L IW14
+ 100 //Összeadja az AKKU1-L-t és a 100-at, az eredményt tárolja az AKKU1-L-
ben.
>I //Ha AKKU 2 > AKKU 1 ill. IW 12 > (IW14 + 100),
SPB NEXT //akkor ugrás a NEXT címkére.

STEP 7 STL utasításlista (angol rövidítésekkel) 56


2.12 L Töltés

Formátum
L <operandus>

Operandus Adattipus Tárterület Címtartomány


<Operandus> BYTE I, Q, PI, M, L, D, 0...65535
WORD Pointer, Parameter 0...65534
DWORD 0...65532

Működés
Az L <Operandus> utasítás betölti a címzett bájt, szó vagy duplaszó tartalmát az AKKU1-
be. A töltés előtt a korábbi tartalom átkerül az AKKU2-be.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - - - - -

Példa

STL Erläuterung
L IB10 //az IB10 betöltése az AKKU1-L-L-be.
L MB120 //az MB120 tartalmának betöltése az AKKU1-L-L-be.
L LD252 //az LD252 lokális adat betöltése az AKKU 1-be.
L P# I 8.7 //mutató (pointer) töltése az AKKU1-be
L P# ANNA //betölti a megnevezett (ANNA) paraméterre mutató mutatót (pointer) az
AKKU1-be (ez az utasítás betölti a megnevezett paraméter címeltolását.
Ha a multiinstant-FB-ben az instant adatmodul tényleges címét akarják
megkapni, akkor ehhez az értékhez hozzá kell adni az AR2
címzőregiszterben lévő értéket).

STEP 7 STL utasításlista (angol rövidítésekkel) 57


Az AKKU1 tartalma

Az AKKU1 tartalma AKKU1-H-H AKKU1-H-L AKKU1-L-H AKKU1-L-L


A töltési művelet végrehajtása előtt XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
Az L MB10 (L <bájt>) utasítás 00000000 00000000 00000000 <MB10>
végrehajtása után
Az L MW10 (L <szó>) utasítás 00000000 00000000 <MB10> <MB11>
végrehajtása után
Az L MD10 (L <duplaszó>) utasítás <MB10> <MB11> <MB12> <MB13>
végrehajtása után
Az L P# ANNA utasítás végrehajtása <86> < Az ANNA bit-eltolása (offset) az
után (FB-ben) FB-kezdet-hez képest>.

Az L P# ANNA utasítás végrehajtása <az ANNA paraméternek átadandó adat tartományon


után (FC-ben) átnyúló címe >
X = "1" vagy "0"

STEP 7 STL utasításlista (angol rövidítésekkel) 58


2.13 T Átvitel

Formátum
T <Operandus>

Operandus Adattipus Tártartomány cím


<Operandus> BYTE I, Q, PQ, M, L, D 0...65535
WORD 0...65534
DWORD 0...65532

Működés
A T <Operandus> utasítás az AKKU1 tartalmát viszi (másolja) át a paraméterben
megadott címre. Az AKKU1-ből másolandó bájtmennyiség attól függ, hogy mekkora méret
(bájtmennyiség) van megadva a célcímben. Az AKKU 1 az adatokat az átviteli folyamat
után is tárolja. Ha az átvitel közvetlenül a kimenetre megy, akkor az átvitt érték a kimeneti
folyamati tárképben is megjelenik. A müvelet nem befolyásolja és nem veszi figyelembe a
RLO-t.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - - - - -

Példa

STL Magyarázat
T QB10 //az AKKU1-L-L tartalma kerül az QB10-be.
T MW14 // az AKKU1-L-L tartalma kerül az MW14-be.
T DBD2 // az AKKU1-L-L tartalma kerül a DBD2-be.

STEP 7 STL utasításlista (angol rövidítésekkel) 59


3 Programvezérlés

3.1 A programvezérlési műveletek áttekintése

Az S7-es PLC-ben a következő programvezérlési műveletek állnak rendelkezésre


• BE programmodul (blokk) vége
• BEC programmodul (blokk) vége, feltételes
• BEU programmodul (blokk) vége, abszolút
• CALL programmodul (blokk) hívása
• CC programmodul (blokk) hívása, feltételes
• UC programmodul (blokk) hívása, abszolút

STEP 7 STL utasításlista (angol rövidítésekkel) 60


3.2 BE programmodul (blokk) vége

Formátum
BE

Működés
A BE utasítás lezárja a program futását az adott programmodulban, és visszaugrik arra a
modulra, amely ezt hívta. A program futását a hívási utasítás utáni első utasításon
folytatja. A lezárt modul lokális adatterületét felszabadítja, és a hívó modul lokális
adatterülete lesz aktuális. Ha volt adatmodul megnyítva a hívás pillanatában, az újra
aktuálissá válik. A RLO az aktuális programmodulból átkerül a hívó modulba. A BE
utasítás nem függ semmiféle feltételtől. Ha a program a BE utasítás átugorja, akkor a
végrehajtás az adott modulban folytatódik.
A BE utasítás hatása kis mértékben eltér az S5-ös rendszerben betöltött szerepétől: az S7-
es rendszerben a BE hatása teljesen megegyezik a jelenlegi és korábbi BEU utasítás
szerepével.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - 0 0 1 - 0

Példa

STL Magyarázat
A I 1.0
JC NEXT //a NEXT címkére ugrik, ha a RLO = 1 (I 1.0 = 1).
L IW4 //itt folytatódik, ha az ugrás nem hajtódik végre.
T IW10
A I 6.0
A I 6.1
S M 12.0
BE //modulvége.
NEXT: NOP 0 // itt folytatódik, ha az ugrás végrehajtódik.

STEP 7 STL utasításlista (angol rövidítésekkel) 61


3.3 BEC programmodul (blokk) vége, feltételes

Formátum
BEC

Működés
Ha a RLO = 1, akkor a BEC utasítás befejezi a programvégrehajtást az adott
programmodulban és visszaugrik arra a modulra, amely ezt hívta. A program futását a
hívási utasítás utáni első utasításon folytatja. A lezárt modul lokális adatterületét
felszabadítja, és a hívó modul lokális adatterülete lesz aktuális. Ha volt adatmodul
megnyítva a hívás pillanatában, az újra aktuálissá válik.
A RLO (= 1) a befejezett programmodulból átkerül a hívó modulba. Ha a RLO 0, akkor a
BEC nem hajtódik végre, az operációs rendszer a RLO-t 1-re állítja, és a program a
következő utasításon folytatódik.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - x 0 1 1 0

Példa

STL Magyarázat
A I 1.0 //Ha az I1.0 = 1, akkor a program befejeződik.
BEC //Ha az I1.0 = 0, akkor a BEB nem hajtódik végre.
L IW4 //és a program ennél az utasításnál folytatatódik).
T MW10

STEP 7 STL utasításlista (angol rövidítésekkel) 62


3.4 BEU programmodul (blokk) vége, feltétel nélküli

Formátum
BEU

Működés
A BEU utasítás lezárja a program futását az adott programmodulban, és visszaugrik arra
a modulra, amely ezt hívta. A program futását a hívási utasítás utáni első utasításon
folytatja. A lezárt modul lokális adatterületét felszabadítja, és a hívó modul lokális
adatterülete lesz aktuális. Ha volt adatmodul megnyítva a hívás pillanatában,
visszatéréskor az újra aktuálissá válik. A RLO az aktuális programmodulból átkerül a hívó
modulba. A BE utasítás nem függ semmiféle feltételtől. Ha a program a BE utasítás
átugorja, akkor a végrehajtás az adott modulban folytatódik.
.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - 0 0 1 - 0

Példa

STL Magyarázat
A I 1.0 Ha az I1.0 = 1
JC NEXT //akkor a NEXT
L IW4 //ha az I1.0 = 0, akkor a program itt folytatódik.
T IW10
A I 6.0
A I 6.1
S M 12.0
BEU //Feltétel nélküli modulvége.
NEXT: NOP 0 //ha az ugrás végrehajtódott, akkor itt folytatódik a progr.

STEP 7 STL utasításlista (angol rövidítésekkel) 63


3.5 CALL Programmodul hívása

Formátum
CALL <a kódmodul neve>

Működés
A CALL utasítás függvények (FC) funkciómodulok (FB) ill. a Siemens által szolgáltatott
rendszerfüggvények (SFC, SFB) hívására szolgálnak. A CALL művelet azt az FC-t, SFC-t,
FB-t vagy SFB-t hívja, amit az utasítás paraméterében megadtak. A hívás a RLO-tól ill.
minden más feltételtől függetlenül történik. Ha FB-t vagy SFB-t hívnak, akkor a hívásban a
függvényeket Instant-DB-vel kell ellátni. A hívás után a hívott függvény kerül végrehajtásra,
majd folytatódik a hívó program feldolgozása. A hívott kódmodult meg lehet adni aszolút
vagy szimbólikus címzéssel. Az SFB-/SFC-hívás után a regiszterek tartalmát az operációs
rendszer visszaállítja.

Példa: CALL FB1, DB1 ill. CALL FILLVAT1, RECIPE1

Kódmodul Modulfajta A hívás szintaxisa


(abszolút cím)
FC Függvény CALL FCn
SFC Rendszerfüggvény CALL SFCn
FB Fukciómodul (funkcióblokk) CALL FBn1,DBn2
SFB Rendszer-Funkciómodul CALL SFBn1,DBn2

Megjegyzés
Ha az STL (utasításlista) szerkesztővel dolgozik, akkor a hívásoknak már meglévő
FC-kre ill FB-kre kell hivatkozniuk, ill. A szimbólikus neveket előzőleg definiálni kell.

STEP 7 STL utasításlista (angol rövidítésekkel) 64


Paraméterek átadása
A hívó programmodul a hívott programmodullal a paramétereken keresztül adatokat tud
cserélni. A paraméterlistát a programszerkesztőben híváskor elhelyezi a STEP7
fejlesztőprogram CALL utasítást beadásakor.
Az FC-k vagy SFC-k hívásakor a paraméterekhez (formális paraméterekhez) aktuális
paramétereket kell hozzárendelni.
Az FB-k és SFB-k esetében nem kötelező minden paramétert abszolút címhez
hozzárendelni, mert az alapértelmezés szerinti átadási hely az FB instant-DB-je. Ha a
paramétereknél (formális operandusoknál) nincs abszolút cím megadva, akkor az átadott
adat az instant-DB-ben található, és a program is innen veszi, vagy ide teszi.
Az IN-paraméterek esetében állandók vagy abszolút ill. szimbólikus címeket lehet
megadni, az OUT- ill. IN-OUT paramétereknél természetesen abszolút vagy szimbólikus
címeket lehet meadni. Figyelemmel kell lenni arra, hogy minden cím ill. állandó esetében a
program egyezteti az adattipusokat, és az eltérést elutasítja.
A CALL utasítás a B-Stack-ben tárolja a visszatérési címet, a két megnyitott adatmodul
címét valamint az MA-bitet. Ezen túlmenően létrehozza a hívandó programmodul TEMP
(Lokal-Stack) adatterületét.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - 0 0 1 - 0

1.Példa: Paraméterek hozzárendelése az FC6 hívásánál

CALL FC6
c Formális paraméter Aktuális paraméter
NO OF TOOL := MW100
TIME OUT := MW110
FOUND := Q 0.1
ERROR := Q 100.0

2.Példa: Az FB99 hívása a DB16-os adatmodullal (mint instant-DB)

CALL FB99,DB16
Formális paraméter Aktuális paraméter
MAX_RPM := #RPM1_MAX
MIN_RPM := #RPM1
MAX_POWER := #POWER1
MAX_TEMP := #TEMP1

STEP 7 STL utasításlista (angol rövidítésekkel) 65


3,Példa: Az FB99 hívása a DB2-es adatmodullal (mint instant-DB)

CALL FB99,DB2
Formális paraméter Aktuális paraméter
MAX_RPM := #RPM2_MAX
MIN_RPM := #RPM2
MAX_POWER := #POWER2
MAX_TEMP := #TEMP2

Megjegyzés
Minden FB- ill. SFB-híváshoz meg kell adni egy un. Instant-DB-t a fenti példában
látható módon.

STEP 7 STL utasításlista (angol rövidítésekkel) 66


3.6 FB hívása

Formátum
CALL FB n1, DB n1

Működés
A művelet FB-k hívására szolgál. A hívott modul címét a CALL utasítás után kell írni, amely
így a RLO-tól és minden egyéb feltételtől függetlenül megtörténik. A CALL utasítással
hívott FB-k esetében az FB címe után egy DB-t is meg kell adni. Ezt a DB-t instant-DB-nek
nevezik. A hívás után a hívott függvény kerül végrehajtásra, majd folytatódik a hívó
program feldolgozása. A hívott kódmodult meg lehet adni aszolút vagy szimbólikus
címzéssel.

A paraméterek átadása (un. Inkrementális üzemmódan***)


A hívott programmodul a hívó programmodullal a formális paramétereken keresztül tud
adatokat cserélni. Az IN, OUT vagy IN_OUT csoportba tartozó paramétereket a
programszerkesztő automatikusan felírja a CALL után, ha egy paraméterezett
programmodult a CALL utasítással meghívnak. A program írójának csak a formális
paraméterekhez tartozó aktuális paramétereket kell megadni. A futás után minden
paraméter megmarad az FB instant-DB-jében. Ha az aktuális paraméter DB-változó, akkor
annak teljes címét meg ell adni (pl. DB1.DBW2).
Az IN-csoportba tartozó paraméterekhez állandókat ill. abszolút vagy szimbólikus címeket,
az OUT ill. IN_OUT csoportba tartozó paraméterekhez abszolút vagy szimbólikus címeket
lehet aktuális paraméterként megadni. Figyelemmel kell lenni arra, hogy minden címnek
ill. állandónak olyan adattipussal kell rendelkezni, mint a formális paraméternek.
A CALL utasítás a B-Stack-ben tárolja a visszatérési címet, a két megnyitott adatmodul
címét valamint az MA-bitet. Ezen túlmenően létrehozza a hívandó programmodul TEMP
(Lokal-Stack) adatterületét.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - 0 0 1 - 0

1.Példa: Az FB99 hívása a DB16-os adatmodullal (mint instant-DB)

CALL FB99,DB16
Formális paraméter Aktuális paraméter
MAX_RPM := #RPM1_MAX
MIN_RPM := #RPM1
MAX_POWER := #POWER1
MAX_TEMP := #TEMP1

STEP 7 STL utasításlista (angol rövidítésekkel) 67


3.7 FC hívása

Formátum
CALL FC n

Megjegyzés
Ha STL-szerkesztővel dolgoznak, akkor az „n“-adatnak már meglvő
programmodulra kell vonatkozni. A szimbólikus neveet is előzőleg kell definiálni.

Működés
A művelet FC-k hívására szolgál. A hívott modul címét a CALL utasítás után kell írni,
amelynek hívása a RLO-tól és minden egyéb feltételtől függetlenül megtörténik. A hívás
után a hívott programmodul kerül végrehajtásra, majd folytatódik a hívó program
feldolgozása. A hívott kódmodult meg lehet adni aszolút vagy szimbólikus címzéssel.

A paraméterek átadása (un. Inkrementális üzemmódan***)


A hívott programmodul a hívó programmodullal a formális paramétereken keresztül tud
adatokat cserélni. Az IN, OUT vagy IN_OUT csoportba tartozó paramétereket a
programszerkesztő automatikusan felírja a CALL után, ha egy paraméterezett
programmodult a CALL utasítással meghívnak. A program írójának csak a formális
paraméterekhez tartozó aktuális paramétereket kell megadni. A futás után minden
paraméter megmarad az FB instant-DB-jében. Ha az aktuális paraméter DB-változó, akkor
annak teljes címét meg ell adni (pl. DB1.DBW2).
Az IN-csoportba tartozó paraméterekhez állandókat ill. abszolút vagy szimbólikus címeket,
az OUT ill. IN_OUT csoportba tartozó paraméterekhez abszolút vagy szimbólikus címeket
lehet aktuális paraméterként megadni. Figyelemmel kell lenni arra, hogy minden címnek
ill. állandónak olyan adattipussal kell rendelkezni, mint a formális paraméternek.
A CALL utasítás a B-Stack-ben tárolja a visszatérési címet, a két megnyitott adatmodul
címét valamint az MA-bitet. Ezen túlmenően létrehozza a hívandó programmodul TEMP
(Lokal-Stack) adatterületét.

STEP 7 STL utasításlista (angol rövidítésekkel) 68


Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - 0 0 1 - 0

Példa: az FC6 hívása, a paraméterek hozzárendelése

CALL FC6
Formalparameter Aktualparameter
NO OF TOOL := MW100
TIME OUT := MW110
FOUND := Q 0.1
ERROR := Q 100.0

STEP 7 STL utasításlista (angol rövidítésekkel) 69


3.8 SFB hívása

Formátum
CALL SFB n1, DB n2

Működés
A művelet a Siemens által a CPU-ba beépített rendszer-FB-k (SFB) hivására szolgálnak. A
hívott modul címét a CALL utasítás után kell írni, amelynek hívása a RLO-tól és minden
egyéb feltételtől függetlenül megtörténik. A CALL utasítással hívott SFB-k esetében az
SFB címe után egy DB-t is meg kell adni. Ezt a DB-t instant-DB-nek nevezik.A hívás után a
hívott programmodul kerül végrehajtásra, majd folytatódik a hívó program feldolgozása. A
hívott kódmodult meg lehet adni aszolút vagy szimbólikus címzéssel.

A paraméterek átadása (un. Inkrementális üzemmódan***)


A hívott programmodul a hívó programmodullal a formális paramétereken keresztül tud
adatokat cserélni. Az IN, OUT vagy IN_OUT csoportba tartozó paramétereket a
programszerkesztő automatikusan felírja a CALL után, ha egy paraméterezett
programmodult a CALL utasítással meghívnak. A program írójának csak a formális
paraméterekhez tartozó aktuális paramétereket kell megadni. A futás után minden
paraméter megmarad az FB instant-DB-jében. Ha az aktuális paraméter DB-változó, akkor
annak teljes címét meg ell adni (pl. DB1.DBW2).
Az IN-csoportba tartozó paraméterekhez állandókat ill. abszolút vagy szimbólikus címeket,
az OUT ill. IN_OUT csoportba tartozó paraméterekhez abszolút vagy szimbólikus címeket
lehet aktuális paraméterként megadni. Figyelemmel kell lenni arra, hogy minden címnek
ill. állandónak olyan adattipussal kell rendelkezni, mint a formális paraméternek.
A CALL utasítás a B-Stack-ben tárolja a visszatérési címet, a két megnyitott adatmodul
címét valamint az MA-bitet. Ezen túlmenően létrehozza a hívandó programmodul TEMP
(Lokal-Stack) adatterületét.
.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - 0 0 1 - 0

Példa

CALL SFB4,DB4
Formalparameter Aktualparameter
IN: I0.1
PT: T#20s
Q: M0.0
ET: MW10

STEP 7 STL utasításlista (angol rövidítésekkel) 70


3.9 SFC hívása

Formátum
CALL SFC n

Megjegyzés
Ha STL-szerkesztővel dolgoznak, akkor az „n“-adatnak már meglvő
programmodulra kell vonatkozni. A szimbólikus neveet is előzőleg kell definiálni.

Működés
A művelet a Siemens által a CPU-ba beépített rendszer-FC-k (SFC) hivására szolgálnak. A
hívott modul címét a CALL utasítás után kell írni, amelynek hívása a RLO-től és minden
egyéb feltételtől függetlenül megtörténik. A hívás után a hívott programmodul kerül
végrehajtásra, majd folytatódik a hívó program feldolgozása. A hívott kódmodult meg lehet
adni aszolút vagy szimbólikus címzéssel.

A paraméterek átadása (un. Inkrementális üzemmódan***)


A hívott programmodul a hívó programmodullal a formális paramétereken keresztül tud
adatokat cserélni. Az IN, OUT vagy IN_OUT csoportba tartozó paramétereket a
programszerkesztő automatikusan felírja a CALL után, ha egy paraméterezett
programmodult a CALL utasítással meghívnak. A program írójának csak a formális
paraméterekhez tartozó aktuális paramétereket kell megadni. A futás után minden
paraméter megmarad az FB instant-DB-jében. Ha az aktuális paraméter DB-változó, akkor
annak teljes címét meg ell adni (pl. DB1.DBW2).
Az IN-csoportba tartozó paraméterekhez állandókat ill. abszolút vagy szimbólikus címeket,
az OUT ill. IN_OUT csoportba tartozó paraméterekhez abszolút vagy szimbólikus címeket
lehet aktuális paraméterként megadni. Figyelemmel kell lenni arra, hogy minden címnek
ill. állandónak olyan adattipussal kell rendelkezni, mint a formális paraméternek.
A CALL utasítás a B-Stack-ben tárolja a visszatérési címet, a két megnyitott adatmodul
címét valamint az MA-bitet. Ezen túlmenően létrehozza a hívandó programmodul TEMP
(Lokal-Stack) adatterületét.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - 0 0 1 - 0

Példa: Paraméter nélküli SFC hívása

STL Magyarázat
CALL SFC43 //az SFC43 hívása a ciklusfigyelési idő újraindítására (paraméter
nélkül).

STEP 7 STL utasításlista (angol rövidítésekkel) 71


3.10 CC Feltételes programmodul hívás

Formátum
CC <a kódmodul címe>

Működés
A CC utasítás hívja a megadott című programmodult, ha a RLO = 1. A hívott modul
paraméter nélküli FC vagy FB lehet. A CC utasítás hasonlít a CALL utasításhoz azzal a
ülönbséggel, hogy ennél paraméterátadás nem lehetséges. A CC utasítás a B-Stack-ben
tárolja a visszatérési címet, a két megnyitott adatmodul címét valamint az MA-bitet. Ezen
túlmenően létrehozza a hívandó programmodul TEMP (Lokal-Stack) adatterületét. A hívott
kódmodult meg lehet adni aszolút vagy szimbólikus címzéssel.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - 0 0 1 1 0

Példa

STL Magyarázat
A I 2.0 //Az I2.0 bemenet jelállapotának lekérdezése.
CC FC6 //Hívja az FC6-ot ha az I 2.0 = 1.
A M 3.0 //Ez az utasítás hajtódik végre, ha az I2.0=1 –nél a hívott függvény (FC6)
befejeződik, vagy ha az I 2.0 = 0 –nél az FC6 nem hajtódik végre.

Megjegyzés
Ha a CC-vel vagy UC-vel hívott programmodul FB, akkor nem lehet és nem is kell
a hívásban DB-t megadni. A CC- ill. UC hívás nem tud paraméterátadást
végrehajtani.

STEP 7 STL utasításlista (angol rövidítésekkel) 72


3.11 UC Feltétel nélküli programmodul hívás

Formátum
UC < a kódmodul címe >

Működés
Az UC utasítás hívja a megadott című programmodult, függetlenül RLO -től. A hívott
modul paraméter nélküli FC vagy FB ill. SFC, SFB lehet. Az UC utasítás hasonlít a CALL
utasításhoz azzal a ülönbséggel, hogy ennél paraméterátadás nem lehetséges. A CC
utasítás a B-Stack-ben tárolja a visszatérési címet, a két megnyitott adatmodul címét
valamint az MA-bitet. Ezen túlmenően létrehozza a hívandó programmodul TEMP (Lokal-
Stack) adatterületét. A hívott kódmodult meg lehet adni aszolút vagy szimbólikus
címzéssel.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - 0 0 1 - 0

1.Példa

STL Magyarázat
UC FC6 //az FC6 hívása (paraméterek nélkül).

2.Példa

STL Magyarázat
UC SFC43 // az SFC43 hívása (paraméterek nélkül).

Megjegyzés
Ha a CC-vel vagy UC-vel hívott programmodul FB, akkor nem lehet és nem is kell
a hívásban DB-t megadni. A CC- ill. UC hívás nem tud paraméterátadást
végrehajtani.

STEP 7 STL utasításlista (angol rövidítésekkel) 73


3.11.1 SLW A szó tartalmának eltolása balra (16 Bit)

Formátum
SLW
SLW <bitszám>

Operandus Adattipus Működés


<bitszám> Előjel nélküli egészszám Bitszám, amellyel a szót el
kell tolni,; tartomány 0... 15

Működés
Az SLW utasítás az AKKU1-L tartalmát tolja bitenként balra. Azokba a bitekbe, amely az
eltolás miatt megüresednek, nullák kerülnek. Az utoljára eltolt bit a státuszregiszter A1
bitjébe kerül. Az eltolandó bithelyek számát vagy az operandus (paraméter), vagy az
AKKU2-L-L tartalmazza.
SLW <bitszám>: az eltolandó bithelyek számát a <bitszám> Operandus tartalmazza.
Megengedett a 0...15-ös tartomány. Az A0, és OV státuszbiteket az operációs rendszer 0-
ra állítja, ha a <bitszám> paraméter nullánál nagyobb. Ha a <bitszám> nulla, akkor a
művelet megfelel egy NOP műveletnek.
SLW: Az eltolandó bitek számát az AKKU2-L-L –ben lévő érték adja meg. A
megengedett értéktartomány 0 ... 255. Ha az eltolási szám nagyobb mint 16, akkor az
eredmény mindig ugyanaz: AKKU1-L = 0, A1 = 0, A0 = 0, OV = 0. Ha 0 < eltolási szám <=
16, akkor az A0 és OV státuszbitek "0" –ra állítódnak vissza. Ha az eltolási szám nulla,
akkor a művelet megfelel egy NOP műveletnek.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - x x x - - - - -

STEP 7 STL utasításlista (angol rövidítésekkel) 74


Példák

Tartalom AKKU1-H AKKU1-L


Bit 31 . . . .. .. . . . 16 15 . . . .. .. ...0
az SLW 5 végrehajtása előtt 0101 1111 0110 0100 0101 1101 0011 1011
az SLW 5 végrehajtása után 0101 1111 0110 0100 1010 0111 0110 0000

STL magyarázat
L MW4 //az érték betöltése az AKKU 1-be.
SLW 5 //a bitek eltolása az AKKU 1-ben öt hellyel balra.
T MW8 //az eredmény átvitele az MW8-ba.

STL magyarázat
L 3 // +3 betöltése az AKKU 1-be.
L MW20 //az MW20 tartalmának betöltése az AKKU1-be, egyidejüleg a korábbi érték
áttolása az AKKU2-be
SLW //az eltolási érték az AKKU2-L-L tartalma. Lásd az első utasítást
SPP NEXT //Ugrik a NEXT cimkére, ha a legutoljára eltolt bit (A1) = 1.

STEP 7 STL utasításlista (angol rövidítésekkel) 75


3.11.2 SRW A szó tartalmának eltolása jobbra (16 Bit)

Formátum
SRW
SRW < bitszám >

Operandus Adattipus Magyarázat


< bitszám > egészszám, előjel nélkül Bitszám, amellyel a szót el
kell tolni,; tartomány 0... 15

Működés
Az SRW utasítás az AKKU1-L tartalmát tolja bitenként jobbra. Azokba a bitekbe, amely az
eltolás miatt megüresednek, nullák kerülnek. Az utoljára eltolt bit a státuszregiszter A1
bitjébe kerül. Az eltolandó bithelyek számát vagy az operandus (paraméter), vagy az
AKKU2-L-L tartalmazza.
SRW <bitszám>: az eltolandó bithelyek számát a <bitszám> Operandus tartalmazza.
Megengedett a 0...15-ös tartomány. Az A0, és OV státuszbiteket az operációs rendszer 0-
ra állítja, ha a <bitszám> paraméter nullánál nagyobb. Ha a <bitszám> nulla, akkor a
művelet megfelel egy NOP műveletnek.
SRW: Az eltolandó bitek számát az AKKU2-L-L –ben lévő érték adja meg. A
megengedett értéktartomány 0 ... 255. Ha az eltolási szám nagyobb mint 16, akkor az
eredmény mindig ugyanaz: AKKU1-L = 0, A1 = 0, A0 = 0, OV = 0. Ha 0 < eltolási szám <=
16, akkor az A0 és OV státuszbitek "0" –ra állítódnak vissza. Ha az eltolási szám nulla,
akkor a művelet megfelel egy NOP műveletnek

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - x x x - - - - -

STEP 7 STL utasításlista (angol rövidítésekkel) 76


3.12 Időműveletek (Timer), bevezetés

Tártartomány
Az időműveletek végrehajtásához a PLC külön tárterülettel rendelkezik. Minden egyes
időművelet számára egy szó van fenntartva ezen a tárterületen. Az időműveletek
lehetséges mennyisége a CPU tipusától függ. Ezt és az ilyenjellegű adatokat a
konfigurációs programon (HWKonfig) keresztül ki lehet olvasni az adott CPU-ból.

Időérték
Az időművelet tárterületén rendelkezésre álló szó 0....9-es bitjei tartalmazzák az időértéket,
amely bizonyos egységek mennyiségét adja meg. Az időművelet aktualizálása ezt az
időértéket csökkenti mindig egy egységgel, és ez az időalapban megadott időközönként
történik. A csökkentés mindaddig folytatódik, amíg az időérték nulla nem lesz.
A következő módon lehet egy időértéket a tárba tölteni, ha az változó (IW,MW,DBW stb.):
• L w#16#txyz
- t = időalap
- xyz = az időérték BCD-formátumban
A következő módon lehet egy időértéket a tárba tölteni, ha az állandó:
• L S5T#aH_bM_cS_dMS
- H (óra), M (perc), S (másodperc), MS (ezredmásodperc);

- Ebben az esetben az időalapot az operációs rendszer határozza meg, és az


értéket lefele kerekíti.
A maximális beadható idő 9990 másodperc, azaz 2H_46M_30S.

STEP 7 STL utasításlista (angol rövidítésekkel) 77


Időalap
Az idő megadásához a tárban lefoglalt szavak 12-es és 13-as bitjei tartalmazzák az
időalapot. Az időalap azt az időközt rögzíti, amelyenként az időértéket egy egységgel
csökkenteni kell. A legkisebb időalap 10 ms, a legnagyobb 10 másodperc.

Időalap Az időalap bináris kódja


10 ms 00
100 ms 01
1s 10
10 s 11

A megadott időtartamok nem léphetik túl a 2H_46M_30S értéket. Az értékeket adott


esetben a fejlesztőprogram kerekíti. Az S5TIME adattipusnál érvényes határértékek a
különböző időalapok esetében a következők.

Felbontás Tartomány
0,01 mp 10MS .... 9S_990MS
0,1 mp 100MS ..... 1M_39S_900MS
1 mp 1S ..... 16M_39S
10 mp 10S ...... 2H_46M_30S

Bit-Konfiguráció az AKKU1-ben
Amikor a program szerint egy időművelet indítása megtörténik, akkor az AKKU1 0...11-es
bitjeiben BCD-formátumban megadott érték kerül időértékként felhasználásra. Az időalap a
12 és 13-as bitekben található.
A következő ábra mutatja az AKKU1-L tartalmát, amikor időértékként a 127-et, időalapként
pedig az 1 másodpercet adták meg.

15... ...8 7... ...0


xx10 0001 0010 0111

1 2 7

Időalap 1 mp Időérték BCD-formátumban


(0 ... 999)

Ezeket a biteket az operációs


rendszer nem veszi figyelembe,

STEP 7 STL utasításlista (angol rövidítésekkel) 78


A megfelelő időművelet kiválasztása
Az alábbi ismertetés az 5 lehetséges időműveletről segit Önnek, hogy a céljainak
megfelelő időt ki tudja választani.

I 0.0

Q 4.0 SI

Q 4.0 SE

Q 4.0 SD

Q 4.0 SS

Q 4.0 SF

Időművelet Ismertetése
SI Ha az indítójel az I0.0-án „1“ , akkor az Q4.0 kimenőjel
Impulzusképzés bekapcsol a megadott t időtartamra
SE A kimenet „1“-es jelszinten marad a programozott ideig
Meghosszabbított függetlenül attól, hogy az indítójel mennyi ideig van jelen a
impulzus bemeneten.
SD A kimenőjel csak akkor „1“, ha a beállított idő lefutott, és a
Bekapcsoláskésleltetés bemeneten a jelszint még mindig „1“.
SS A kimenőjel akkor „1“, ha a beállított idő lefutott, és
Tároló függetlenül attól, hogy a bemenőjel meddig volt „1“.
bekapcsoláskésleltetés
SF A beállított idő mérése akkor történik, amikor a bemenőjel
Kikapcsoláskésleltetés „1“-ről „0“-ra vált. A kimenőjel akkor „1“, ha a bemenőjel „1“
vagy fut az időmérés.

STEP 7 STL utasításlista (angol rövidítésekkel) 79


3.13 FR Az időművelet engedélyezése

Formátum
FR <időművelet száma>

Operandus Adattipus Tártartomány Leírás


<időművelet száma> TIMER T Az időművelet
száma; a tartomány
a CPU-tól függ

Működés
Az FR < időművelet száma > utasítás törli azt az élváltozót (az élfigyelés segédváltozóját)
amely szerepet játszik a megcímzett időművelet elindításában, amikor a bemeneten a
RLO 0-ról 1-re vált. Ha a RLO egy FR művelet előtt 0-ról 1-re vált, akkor a megcímzett
időművelet újból indíthatóvá válik.
Az idművelet engedélyezése (FR) az idő indígtásához em szükséges. A műveletet csak
arra használják, hogy adott esetben egy futásban lévő időműveletet újraindíthassanak. Ez
természetesen csak akkor lehetséges, ha az FR után az indítási műveletet újra
végrehajtják.
Ha az időt nem is indítják el, az AKKU1-L-ben valamilyen számnak BCD-formátumban kell
állni.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 - - 0

STEP 7 STL utasításlista (angol rövidítésekkel) 80


Példa

STL Magyarázat
A I 2.0
FR T1 //(újra) engedélyezi a T1 időt.
A I 2.1
L S5T#10s //betölti az idő értékét az AKKU_1-be.
SI T1 //Elindítja a T1 időműveletet impulzusként.
A I 2.2
R T1 //Megállítja a T1 időt.
A T1 //Lekérdezi a T1 idő állapotát.
= Q 4.0
L T1 //A T1 aktuális értékét bináris számként betölti az akkumulátorba.
T MW10

1 2 3
RLO az engedélyező
bemeneten I 2.0

RLO az indítóbemeneten I 2.1

RLO a törlőbemeneten I 2.2

Az időművelet reakciója
t t
Lekérdezi az időművelet kimenetét
Q 4.0
Betölti a futó időműveletet.
L, LC

t = a programozott időtartam

(1) Ha az engedélyező bemeneten a RLO "0"-ról "1"-re vált az idő futása közben, akkor a
megnevezett időművelet újraindul. A programozott idő az aktuális idő az újraindított
időművelet számára is. Ha az engedélyező bemeneten a RLO "0"-ról "1"-re vált, az
semmiféle hatással sincs.
(2) Ha az engedélyező bemeneten a RLO "0"-ról "1"-re vált és az idő nem fut, mialatt az
indítóbemeneten a RLO "1“, akkor az idő a programozott hosszban impulzusként
elindul.
(3) Ha az engedélyező bemeneten a RLO "0"-ról "1"-re vált, mialatt az indítóbemeneten a
RLO "0“, akkor az semmiféle hatással sincs az időműveletre.

STEP 7 STL utasításlista (angol rövidítésekkel) 81


3.14 L Az aktuális időérték betöltése az AKKU_1-be
(egészszám)

Formátum
L <időművelet>

Operandus Adattipus Tártartomány Leírás


< időművelet > TIMER T Az időművelet száma; a
tartomány a CPU-tól függ

Működés
Az L < időművelet > utasítás betölti időalap nélkül az aktuális (végrehajtandó) időértéket a
megcímzett időszóból egészszámként az AKKU1-L-be. Előzőleg az AKKU1 tartalma
áttolódik az AKKU 2-be.
Ha az időt nem is indítják el, az AKKU1-L-ben valamilyen számnak BCD-formátumban kell
állni.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - - - - -

STEP 7 STL utasításlista (angol rövidítésekkel) 82


Beispiel

STL Magyarázat
L T1 // betölti időalap nélkül az aktuális (végrehajtandó) időértéket a
megcímzett időszóból egészszámként az AKKU1-L-be.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
A T1-es 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
időművelet
időszava a
tárban
Időalap Időérték (0 ... 999) bináris kódban
00 = 10 ms
01 = 100 ms
10 = 1 s L T1
11 = 10 s

Az AKKU-1-L
tartalma az
utasítás után
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2

mind "0" Időérték (0 ... 999) bináris kódban

Megjegyzés
Az L<időművelet> az aktuális időértéket az időalap nélkül tölti az AKKU1-L-be
bináris kódban. A betöltött időérték az eredetileg megadott időérték és a már eltelt
idő különbsége.

STEP 7 STL utasításlista (angol rövidítésekkel) 83


3.15 LC Az aktuális időérték betöltése az AKKU_1-be (BCD
szám).

Formátum
LC <időművelet>

Operandus Adattipus Tártartomány Leírás


<időművelet> TIMER T Az időművelet száma; a
tartomány a CPU-tól függ

Működés
Az LC < időművelet > utasítás betölti időalappal együtt az aktuális (végrehajtandó)
időértéket a megcímzett időszóból BCD-számként az AKKU1-L-be. Előzőleg az AKKU1
tartalma áttolódik az AKKU 2-be.
Ha az időt nem is indítják el, az AKKU1-L-ben valamilyen számnak BCD-formátumban kell
állni.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - - - - -

STEP 7 STL utasításlista (angol rövidítésekkel) 84


Beispiel

STL Erläuterung
LC T1 // betölti időalappal együtt az aktuális (végrehajtandó) időértéket a
megcímzett időszóból BCD-számként az AKKU1-L-be.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
A T1-es
időművelet
időszava a
tárban Időalap Időérték (0 ... 999) BCD kódban
00 = 10 ms
01 = 100 ms
10 = 1 s LC T1
11 = 10 s

Az AKKU-1-L
tartalma az 0 0 0 0
utasítás után
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
(LC T1)
Időalap 102 Százas 101 Tizes 100 Egyes
00 = 10 ms
01 = 100 ms
10 = 1 s
11 = 10 s Időérték BCD-formátumban

STEP 7 STL utasításlista (angol rövidítésekkel) 85


3.16 R Az időművelet törlése

Formátum
R <időművelet>

Operandus Adattipus Tártartomány Leírás


<időművelet> TIMER T Az időművelet száma; a
tartomány a CPU-tól függ

Működés
Az R <időművelet> befejezi az aktuális időműveletet és törli a címben megadott időszó
időértékét és időalapját, amikor az R bemeneten a RLO „0“-ról „1“-re vált.
Ha az időt nem is indítják el, az AKKU1-L-ben valamilyen számnak BCD-formátumban kell
állni.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


Írja: - - - - - 0 - - 0

Példa

STL Erläuterung
A I 2.1 //Lekérdezi az I 2.1-es bemenet jelállapotát
R T1 //Ha a RLO „0“-ról „1“-re vált, törli a T1-es időt.

STEP 7 STL utasításlista (angol rövidítésekkel) 86


3.17 SI Impulzusképző időművelet

Formátum
SI <időművelet>

Operandus Adattipus Tártartomány Leírás


<időművelet> TIMER T Az időművelet száma; a
tartomány a CPU-tól függ

Működés
Az SI <időművelet> utasítás elindítja a megcímzett időműveletet , ha az utasítás előtt a
RLO „0“-ról „1“-re vált. A programozott idő mindaddig fut, amig a RLO „1“. Ha a RLO „0“
lesz mielőtt az idő lefutott volna, akkor az idő visszaszámlálása megáll. A művelet
végrehajtásakor az AKKU1-L-ben az időértéknek és az időalapnak BCD-formátumban
jelen kell lenni.
Ha az időt nem is indítják el, az AKKU1-L-ben valamilyen számnak BCD-formátumban kell
állni.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 - - 0

STEP 7 STL utasításlista (angol rövidítésekkel) 87


Példa

STL Magyarázat
A I 2.0
FR T1 //Engedélyezi a T1 időművelet újraindítását.
A I 2.1
L S5T#10s //Beállít 10 másodperces időt az AKKU 1 -ben.
SI T1 //A T1 időművelet indítása impulzusképző funkcióval.
A I 2.2
R T1 //Törli a T1 időműveletet.
A T1 //Kérdés a T1 időművelet jelállapotára.
= Q 4.0
L T1 //A T1 időművelet aktuális értékének betöltése az AKKU1-L-be bináris
számként.
T MW10
LC T1 // A T1 időművelet aktuális értékének betöltése az AKKU1-L-be BCD
számként.
T MW12

Engedélyezés I 2.0

Indítás I 2.1

Törlés I 2.2

Az idő
t
Kimenet Q 4.0

Az idő töltése: L, LC

t = a programozott időtartam

STEP 7 STL utasításlista (angol rövidítésekkel) 88


3.18 SE Meghosszabbított impulzusképző időművelet

Formátum
SE <időművelet>

Operandus Adattipus Speicherbereich Beschreibung


<időművelet> TIMER T Az időművelet száma; a
tartomány a CPU-tól függ

Működés
Az SE <időművelet> utasítás elindítja a megcímzett időműveletet , ha az utasítás előtt a
RLO „0“-ról „1“-re vált. A programozott idő lefut akkor is, ha az utasítás előtt a RLO „0“-ra
vált, mielőtt az idő letelt volna. Ha a programozott idő lefutása előtt az utasítás előtt a RLO
ismét „0“-ról „1“-re vált, akkor az idő újraindul. Az utasítás végrehajtása előtt az AKKU1-L-
nek tartalmaznia kell az időértéket és az időalapot BCD-formátumban.
Ha az időt nem is indítják el, az AKKU1-L-ben valamilyen számnak BCD-formátumban kell
állni.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 - - 0

STEP 7 STL utasításlista (angol rövidítésekkel) 89


Példa

STL Magyarázat
A I 2.0
FR T1 // Engedélyezi a T1 időművelet újraindítását.
A I 2.1
L S5T#10s // Beállít 10 másodperces időt az AKKU 1 -ben.
SE T1 // A T1 időművelet indítása meghosszabbított impulzusképző funkcióval.
A I 2.2
R T1 //Törli a T1 időműveletet.
A T1 //Kérdés a T1 időművelet jelállapotára.
= Q 4.0
L T1 //A T1 időművelet aktuális értékének betöltése az AKKU1-L-be bináris
számként.
T MW10
LC T1 // A T1 időművelet aktuális értékének betöltése az AKKU1-L-be BCD
számként.
T MW12

Engedélyezés I 2.0

Indítás I 2.1

Törlés I 2.2

Az idő

t
Kimenet
Q 4.0

Az idő töltése: L, LC

t = a programozott időtartam

STEP 7 STL utasításlista (angol rövidítésekkel) 90


3.19 SD Bekapcsoláskésleltető időművelet

Format
SD <időművelet>

Operandus Adattipus Tárterület Leírás


<időművelet> TIMER T Az időművelet száma; a
tartomány a CPU-tól függ

Működés

Az SD <időművelet> utasítás elindítja a megcímzett időműveletet , ha az utasítás előtt a


RLO „0“-ról „1“-re vált. A programozott idő mindaddig fut, amig a RLO „1“. Ha a RLO „0“
lesz mielőtt az idő lefutott volna, akkor az idő visszaszámlálása megáll. A művelet
végrehajtásakor az AKKU1-L-ben az időértéknek és az időalapnak BCD-formátumban
jelen kell lenni.
Ha az időt nem is indítják el, az AKKU1-L-ben valamilyen számnak BCD-formátumban kell
állni.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 - - 0

STEP 7 STL utasításlista (angol rövidítésekkel) 91


Példa

STL Erläuterung
A I 2.0
FR T1 // Engedélyezi a T1 időművelet újraindítását.
A I 2.1
L S5T#10s // Beállít 10 másodperces időt az AKKU 1 -ben.
SD T1 // A T1 időművelet indítása meghosszabbított impulzusképző funkcióval.
A I 2.2
R T1 //Törli a T1 időműveletet.
A T1 //Kérdés a T1 időművelet jelállapotára.
= Q 4.0
L T1 //A T1 időművelet aktuális értékének betöltése az AKKU1-L-be bináris
számként.
T MW10
LC T1 // A T1 időművelet aktuális értékének betöltése az AKKU1-L-be BCD
számként.
T MW12

Engedélyezés I 2.0

Indítás I 2.1

Törlés I 2.2

Az idő
t t
Kimenet
Q 4.0

Az idő töltése: L, LC

t = programozott időtartam

STEP 7 STL utasításlista (angol rövidítésekkel) 92


3.20 SS Tároló bekapcsoláskésleltető időművelet

Formátum
SS <időművelet>

Operandus Adattipus Tártartomány Leírás


< időművelet > TIMER T Az időművelet száma; a
tartomány a CPU-tól függ

Működés
Az SS <időművelet> utasítás elindítja a megcímzett időműveletet , ha az utasítás előtt a
RLO „0“-ról „1“-re vált. A programozott idő lefut akkor is, ha az utasítás előtt a RLO „0“-ra
vált, mielőtt az idő letelt volna. Ha a programozott idő lefutása előtt az utasítás előtt a RLO
ismét „0“-ról „1“-re vált, akkor az idő újraindul. Az utasítás végrehajtása előtt az AKKU1-L-
nek tartalmaznia kell az időértéket és az időalapot BCD-formátumban.
Ha az időt nem is indítják el, az AKKU1-L-ben valamilyen számnak BCD-formátumban kell
állni.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 - - 0

STEP 7 STL utasításlista (angol rövidítésekkel) 93


Példa

STL Magyarázat
A I 2.0
FR T1 // Engedélyezi a T1 időművelet újraindítását.
A I 2.1
L S5T#10s // Beállít 10 másodperces időt az AKKU 1 -ben.
SS T1 // A T1 időművelet indítása meghosszabbított impulzusképző funkcióval.
A I 2.2
R T1 //Törli a T1 időműveletet.
A T1 //Kérdés a T1 időművelet jelállapotára.
= Q 4.0
L T1 //A T1 időművelet aktuális értékének betöltése az AKKU1-L-be bináris
számként.
T MW10
LC T1 // A T1 időművelet aktuális értékének betöltése az AKKU1-L-be BCD
számként.
T MW12

I 2.0
Engedélyezés
I 2.1
Indítás
I 2.2
Törlés

Az idő t
Q 4.0
Kimenet

Az idő töltése: L, LC
t = programozott időtartam

STEP 7 STL utasításlista (angol rövidítésekkel) 94


3.21 SF Kikapcsoláskésleltető időműveletFormat
SF <időművelet>

Operandus Adattipus Tárterület Leírás


<időművelet> TIMER T Az időművelet száma; a
tartomány a CPU-tól függ

Működés
Az SF <időművelet> utasítás elindítja a megcímzett időműveletet , ha az utasítás előtt a
RLO „1“-ről „0“-ra vált. A programozott idő lefut, ha az utasítás előtt a RLO „0“. Ha a
programozott idő lefutása még nem fejeződött be, és az SF utasítás előtt a RLO ismét „0“-
ról „1“-re vált, akkor az idő visszaszámlálása megáll. Az utasítás végrehajtása előtt az
AKKU1-L-nek tartalmaznia kell az időértéket és az időalapot BCD-formátumban.
Ha az időt nem is indítják el, az AKKU1-L-ben valamilyen számnak BCD-formátumban kell
állni.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - 0 - - 0

STEP 7 STL utasításlista (angol rövidítésekkel) 95


Példa

STL Magyarázat
A I 2.0
FR T1 // Engedélyezi a T1 időművelet újraindítását.
A I 2.1
L S5T#10s // Beállít 10 másodperces időt az AKKU 1 -ben.
SF T1 // A T1 időművelet indítása meghosszabbított impulzusképző funkcióval.
A I 2.2
R T1 //Törli a T1 időműveletet.
A T1 //Kérdés a T1 időművelet jelállapotára.
= Q 4.0
L T1 //A T1 időművelet aktuális értékének betöltése az AKKU1-L-be bináris
számként.
T MW10
LC T1 // A T1 időművelet aktuális értékének betöltése az AKKU1-L-be BCD
számként.
T MW12

Engedélyezés I 2.0

Indítás I 2.1

Törlés I 2.2

Az idő t t

Kimenet A 4.0

Az idő töltése: L, LC
t = programozott időtartam

STEP 7 STL utasításlista (angol rövidítésekkel) 96


3.22 DEC Az AKKU 1-L-L dekrementálása

Formátum
DEC <egészszám, 8 Bit>

Operandus Adattipus Beschreibung


<egészszám, 8 Bit> állandó állandó, amit a program az AKKU1-L-L-ből
(egészszám, 8 Bit) kivon; tartomány 0 .... 255

Működés
A DEC <egészszám, 8 Bit> utasítás kivonja az egészszám paraméterben megadott
értéket az AKKU1-L-L –ből és az eredményt tárolja az AKKU1-L-L-ben. Az AKKU1-L-H,
AKKU1-H und AKKU 2 nem változik. A művelet a státuszbitek figyelembe vétele ill.
megváltoztatása nélkül hajtódik végre.

Megjegyzés
Ez az utasítás nem alkalmas aritmetikai műveletek végrehajtására (16 vagy 32 Bit),
mivel az AKKU1 alacsonyabb helyiértékű szavának alacsonyabb helyiértékű
bájtjából nem történik átvitel a magasabb helyiértékű bájtba. Használja inkább a –I
ill. –D utasításokat.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - - - - -

Példa

STL Magyarázat
L MB250 //Az MB250 értékének betöltése az AKKU-1-be.
DEC 1 //Az AKKU1-L-L dekrementálása 1-gyel,az eredményt tárolja az AKKU1-L-L-ben.
T MB250 //Az AKKU1-L- L tartalmának (eredmény) visszahelyezése az MB250-be.

STEP 7 STL utasításlista (angol rövidítésekkel) 97


3.23 NOP 0 nincs művelet

Formátum
NOP 0

Működés
A NOP 0 művelet nem hajt végre semmiféle tényleges műveletet, és nem befolyásolja a
státuszbiteket. A műveleti kód bitmintát tartalmaz 16 nullával. A művelet csak a
programozókészülék szempontjából lényeges, amikor a programot megeleníti.

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - - - - -

3.24 NOP 1 nincs művelet

Formátum
NOP 1

Működés
A NOP 1 művelet nem hajt végre semmiféle tényleges műveletet, és nem befolyásolja a
státuszbiteket. A műveleti kód bitmintát tartalmaz 16 eggyel. A művelet csak a
programozókészülék szempontjából lényeges, amikor a programot megeleníti..

Státuszszó

BR A1 A0 OV OS OR STA RLO /ER


írja: - - - - - - - - -

STEP 7 STL utasításlista (angol rövidítésekkel) 98

You might also like