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 STEP5hö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
O M24.2
STEP 7 STL utasításlista (angol rövidítésekkel)
(RLO-határoló művelet) (lekérdezés)
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
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 (végeredmény)
=
M8.3
0
A RLO (végeredm) hozzárendelése az státuszához
RLO-határoló művele
logikai
művelet
eredm
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 bitvá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……………… H-H Bit:
31…………24
H-L 23…………16
…………….L………………… L-H 15………..8
L-L 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
Operandus
Adattipus
Tárterület
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 ÉSkapcsolatba 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
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 Operandus
Adattipus
Tárterület
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 ÉSkapcsolatba 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
x
x
x
1
Példa STL-Program
Relé - kapcsolás Áramvezető sín
A
I 1.0
I 1.0 0 jelállapot
Záróérintkező
AN
I 1.1
I 1.1 1-es jelállapot
Nyitóérintkező
=
Q 4.0
Q 4.0 0 jelállapot
STEP 7 STL utasításlista (angol rövidítésekkel)
Tekercs
8
1.3
O VAGY-művelet
Formatum O Operandus
Adattipus
Tárterület
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 VAGYkapcsolatba 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
0
x
x
1
Beispiel STL-Program
Relais-kapcsolás Áramvezetősín
O
I 1.0
O
I 1.1
=
Q 4.0
I 1.0 1-es jelállapot záróérintkező
Q 4.0 1-es jelállapot
I 1.1 0-ás jelállapot záróérintkező
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 Operandus
Adattipus
Tárterület
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 VAGYkapcsolatba 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
0
x
x
1
Példa STL-Program
Relé-kapcsolás Áramvezető sín
O
I 1.0
I 1.0 0 jelállapot
ON
I 1.1
I 1.1 1-es jelállapot
=
Q 4.0
Q 4.0 1 - jelállapot
STEP 7 STL utasításlista (angol rövidítésekkel)
záróérintkező nyitóérintkező
tekercs
10
1.5
X KIZÁRÓ-VAGY
Formátum X Operandus
Adattipus
Tárterület
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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
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 Operandus
Adattipus
Tártartomány
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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
x
1
-
x
Példa STL-Program
Relékapcsolás Áramvezető sín
A
I 0.0
A
M 10.0
M 10.1
I 0.0 I 0.2
O A
I 0.2
A
M 0.3
M 10.0 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
0
1
-
0
Példa
STL-Program
Relékapcsolás Áramvezető sín
A( O O )
I 0.0 M 10.0
I 0.0
A( O O )
I 0.2 M 10.3
I 0.2
A
M 10.1
=
Q 4.0
STEP 7 STL utasításlista (angol rövidítésekkel)
M 10.0
M 10.3
M 10.1
Q 4.0 tekercs
14
1.9
=
Hozzárendelés
Formátum = Operandus
Adattipus
Tártartomány
BOOL
I, Q, M, L, D
Működés Az = 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
0
x
-
0
Példa STL-Program A
I 1.0
=
Q 4.0
Relékapcsolás Áramvezető sín I 1.0
Jelállapot - diagram I 1.0
1 0
Q 4.0
1 0
STEP 7 STL utasításlista (angol rövidítésekkel)
Q 4.0 Spule
15
1.10
FN Negatív (lefutó) él figyelése
Formátum FN Operandus
Adattipus
Tártartomány
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 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
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
I 1.0
1 0
FN
M 1.0
M 1.0
1 0
=
Q 4.0
Q 4.0
1 0 1
ciklusok:
2
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
3
STEP 7 STL utasításlista (angol rövidítésekkel)
4
5
6
7
8
9
17
1.11
FP Pozitív (felfutó) él figyelése
Formátum FP Operandus
Adattipus
Tártartomány
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 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
0
x
x
1
STEP 7 STL utasításlista (angol rövidítésekkel)
18
Definíció
Felfutó él
RLO
Lefutó él
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
I 1.0
1 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
STEP 7 STL utasításlista (angol rövidítésekkel)
4
5
6
7
8
9
19
1.12
?I
Egészszámú (integer) összehasonlítás (16 Bit)
Formátum ==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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
x
x
0
-
0
x
x
1
A RLO értékei Összehasonlítási műveletek
RLO, ha
AKKU 2 > AKKU 1 AKKU 2 = AKKU 1
RLO, ha
RLO, ha AKKU 2 < AKKU 1
==I
0
1
0
<>I
1
0
1
>I
1
0
0
0
0
1
>=I
1
1
0
<=I
0
1
1
Példa STL L L >I =
MW10 IW24 M 2.0
Kommentár //Az MW1 tartalmának töltése az AKKU1-be (16 Bit-egészszám). //Az IW24 tartalmának töltése az AKKU1-be (16 Bit-egészszám). //Az AKKU2 és AKKU1 összehasonlítása //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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
Példa STL L BTI T
MW10 MW20
Kommentár //A BCD-számot tölti az AKKU1-L-be. //a BCD-számot átalakítja //Transferiere das Ergebnis (Ganzzahl, 16 Bit) nach MW20.
"+"
"9"
15... MW10
0
0
"1" ...8
0
0
BTI
1
0
0
1
"5"
7... 0
...0 0
0
1
0
1
0
1
"+915" BCD
0
1
1
"+915" Egészszám
BCD átalakítása egészszámmá MW20
0
0
0
0
0
0
1
1
1
0
0
STEP 7 STL utasításlista (angol rövidítésekkel)
1
0
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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
x
x
-
-
-
-
Példa STL L ITB T
MW10 MW20
Magyarázat //Egészszám töltése az AKKU1-L-be. //Egészszám átalakítása (16 Bit) BCD-számmá, tárolása az AKKU1-L-ben. //Az eredmény átvitele az MW20-ba.
15... MW10
1
...8
1
1
ITB
1
1
1
1
0
7... 0
...0 1
1
0
0
0
1
1
"-413" egészszám
16-bites egészszám átalakítása BCD-számmá MW20
1
1
1
"-"
1
0
1
0
"4"
0
0
0
0
"1"
STEP 7 STL utasításlista (angol rövidítésekkel)
1
0
0
1
1
"-413" BCD
"3"
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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
Példa STL L BTD T
MD10 MD20
Magyarázat //A BCD-szám betöltése az AKKU 1-be. // a BCD-számot átalakítja, és tárolja az AKKU1-ben. //Az eredményt átviszi az MD20-ba.
"+" 31... MD10
BTD
"0"
"1"
"5"
"7"
...16 15...
"2"
"1" ...0
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
BCD átalakítása egészszámmá
MD20
"8"
"+157821"
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 32bites egészszámmá. Az eredményt az AKKU1-ben tárolja, az AKKU2 nem változik.
Státuszszó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
Példa STL L ITD
MW12
T
MD20
Magyarázat //Az egészszámot (16 Bit) az AKKU 1-L-be tölti. //A 16-bites egészszámot 32-bites egésszszámmá alakítja és az eredményt az AKKU 1-ben tárolja. //Az eredményt az MD20-ban tárolja.
Példa: MW12 = "-10" (16-bites egészszám): Tartalom
AKKU1-H
Bit
31 . . . . .
AKKU1-L ..
. . . 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
x
x
-
-
-
-
Példa STL L DTB T
MD10 MD20
Magyarázat // Az egészszámot (32 Bit) az AKKU 1-be tölti. // Egészszám átalakítása (32 Bit) BCD-számmá, tárolása az AKKU1-ben. // Az eredmény átvitele az MD20-ba.
31... MD10
...16 15...
...0
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
DTB
32-bites egészszám átalakítása BCD-re
MD20
"-701" egészszám
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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
Példa STL L DTR T
MD10 MD20
MD10
Magyarázat //Az egészszám betöltése az AKKU1-be //Az egészszám átalakítása lebegőpontos számmá, és tárolása az AKKU1-ben //Az eredmény átvitele az MD20-ban.
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á
DTR
31 30...
MD20
22...
"+500" egészszám ...0
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 1 Bit A mantissza előjele
STEP 7 STL utasításlista (angol rövidítésekkel)
Mantissza, 23 Bits "+500" IEEE-FP
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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
Példa STL L INVI T
IW8 MW10
Magyarázat //Az érték betöltése az AKKU1-L-be. //Az egyeskomplemens képzése (16 Bit). // 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
Példa STL L INVD T
ID8 MD10
Magyarázat //Az érték betöltése az AKKU1-be. //Az egyeskomplemens képzése (32 Bit). // Az eredmény átvitele az MD10-be.
Tartalom
AKKU1-H
Bit
31 . . . . .
AKKU1-L ..
. . . 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
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 L NEGI T
IW8 MW10
Magyarázat // Az érték betöltése az AKKU1-L-be. //A ketteskomplemens képzése (16 Bit). // 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
x
x
x
x
-
-
-
-
A1
A0
OV
OS
A státuszbitek képzése: 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 L NEGD T
ID8 MD10
Magyarázat // Az érték betöltése az AKKU1-be. //A ketteskomplemens képzése (32 Bit). // 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
Példa STL L NEGR
ID8
T
MD10
Magyarázat //Az érték betöltése az AKKU 1-be (példa ED8 = 1.5E+02). //a lebegőpontos szám negálása (32 Bit, IEEE-FP), és az eredmény tárolása az AKKU 1-ben. // 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
x
x
-
-
-
-
Példa STL L RND
MD10
T
MD20
Magyarázat //A lebegőpontos szám betöltése az AKKU1-be (32 Bit, IEEE-FP). //Á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. //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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
x
x
-
-
-
-
Példa STL L TRUNC
MD10
T
MD20
Magyarázat // A lebegőpontos szám betöltése az AKKU1-be (32 Bit, IEEE-FP).. // Á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. // 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
x
x
-
-
-
-
Példa: STL L RND
MD10
T
MD20
Magyarázat // A lebegőpontos szám betöltése az AKKU1-be (32 Bit, IEEE-FP). // Á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. // 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
x
x
-
-
-
-
Példa STL L RND
MD10
T
MD20
Magyarázat // A lebegőpontos szám betöltése az AKKU1-be (32 Bit, IEEE-FP). // Á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. // 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
0
-
-
0
Példa STL A FR
I 2.0 C3
Magyarázat //Lekérdezi az I 2.0 cím állapotát. //Ú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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
Példa STL L
C3
Magyarázat //A C3 számláló tartalmának töltése bináris formátumba az AKKU1-L-be.
2
15
2
14
2
13
2
12
2
11
2
10
2
9
2
8
2
7
2
6
2
5
2
4
2
3
2
2
2
1
2
0
2
2
1
2
0
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 2
15
2
14
2
13
2
12
2
11
2
10
2
9
2
8
2
7
2
6
2
5
2
4
2
3
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ó
írja: STL LC
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
Magyarázat // AKKU1-L-be tölti a címzett számláló aktuális értékét BCD számként.
C3
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
1
2
1
2
2
0
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 töltési utasítás után
0 2
15
0 2
14
0 13
2
0 2
12
11
2
2
10
9
2
2
8
102 százasok
2
7
2
6
2
5
101 tizesek
4
2
2
3
2
2
2
0
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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
0
-
-
0
Példa STL U R
I 2.3 C3
Magyarázat //Lekérdezi az I 2.3-as bemenet állapotát //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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
0
-
-
0
Példa STL U L S
I 2.3 C#3 C1
Magyarázat // Lekérdezi az I 2.3-as bemenet állapotát. //betölti az AKKU1-L-be az indulási értéket. //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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
0
-
-
0
Példa STL A CU
I 2.1 C3
Magyarázat // Lekérdezi az I 2.1-es bemenet állapotát. //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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
0
-
-
0
Példa STL A CD
I 2.1 C3
Magyarázat // Lekérdezi az I 2.1-es bemenet állapotát. //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 Operandus
Adatmodul tipusa
Cím
DB, DI
1 ... 65535
Működés Az OPN 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
Példa STL OPN L T OPN L T
DB10 DBW35 MW22 DI20 DIB12 DBB37
Magyarázat //Megnyitja a DB10-es adatmodult globális adatmodulként. //A DBW35 címzésű adatszót tölti a megnyitott adatmodulból az AKKU1-L-be. //Átviszi az AKKU1-L tartalmát az MW22-be. // Megnyitja a DB20-as adatmodult instant adatmodulként. //Betölti a DIB12 bájtot a megnyitott instant adatmodulból az AKKU1-L-L-be. //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 • SPL
Feltétel nélküli ugrás 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 Operandus
Megnevezés
Az ugrási cél szimbólikus neve.
Működés A JU 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ó
Írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
Példa STL
DELE: FORW:
Magyarázat A A JC L INC T JU L T A
I 1.0 I 1.2 DELE MB10 1 MB10 FORW 0 MB10 I 2.1
//ugrik, ha a RLO = 1, a DELE ugrási címre.
//Feltétel nélüli ugrás a FORW cimkére.
//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 Operandus
Megnevezés
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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
STEP 7 STL utasításlista (angol rövidítésekkel)
47
Példa STL
LSTX: SEG0:
SEG1:
SEG3:
COMM:
L JL JU JU JU JU JU * * JU * * JU * * JU * *
MB0 LSTX SEG0 SEG1 COMM SEG3 COMM
Magyarázat //Az ugrási cél számának (0...255) betöltése az AKKU1-L-L-be. //Ugrási cél, ha AKKU1-L-L > 3. //Ugrási cél, ha AKKU1-L-L = 0. //Ugrási cél, ha AKKU1-L-L = 1. //Ugrási cél, ha AKKU1-L-L = 2. //Ugrási cél, ha AKKU1-L-L = 3. //utasítás.
COMM //utasítás. COMM //utasítás. COMM
STEP 7 STL utasításlista (angol rövidítésekkel)
48
2.4
JC Ugrik, ha RLO = 1
Formátum JC Operandus
Megnevezés
Az ugrási cél szimbólikus neve.
Működés Ha RLO = 1, akkor a JC 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
0
1
1
0
Példa STL
JOVR:
Magyarázat A A JC L T A
I 1.0 I 1.2 JOVR IW8 MW22 I 2.1
//Ugrik, ha RLO = 1, a JOVR címkére. //Itt folytatódik a program ha az ugrás nem hajtódik végre. //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 Operandus
Megnevezés
Az ugrási cél szimbólikus neve.
Működés Ha a RLO = 0, akkor a JCN 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
0
1
1
0
Példa STL
JOVR:
Magyarázat A A JCN L T A
I 1.0 I 1.2 JOVR IW8 MW22 I 2.1
// Ugrik, ha RLO = 0, a JOVR címkére. // Itt folytatódik a program ha az ugrás nem hajtódik végre.. // 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 Operandus
Megnevezés
Az ugrási cél szimbólikus neve.
Működés A LOOP (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ó írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
Példa
STL
NEXT:
L T L T
L#1 MD20 5 MW10
L * T L LOOP
MD20 D MD20 MW10 NEXT
L L >I
MW24 200
Magyarázat //Állandó töltése az AKKU 1-be. //Az AKKU 1 tartalmának átvitele az MD20-ba (inicializálás). //A hurokszám töltése az AKKU1-L-be //Ugrási cimke = a hurok kezdete / az AKKU1-L betöltése a hurokszámlálóba. //Az MD20 tartalmának szorzása az MB10 tartalmával //Az eredmény átvitele az MD20-ba. //A hurokszámláló töltése az AKKU1-be. //Az AKKU 1 tartalmának csökkentése eggyel és ugrás a NEXT címkére, ha az AKKU1-L > 0. //A hurok befejezése után a program itt folytatódik.
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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
x
x
x
x
-
-
-
-
A1
A0
OV
OS
A státuszbitek képzése Ö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 L L
IW10 MW14
+I T
DB1.DBW25
Magyarázat //az IW10-ben lévő érték az AKKU1-L-be kerül. //Az MW14 tartalmának betöltése az AKKU1-L-be. Ekkor az AKKU-1 korábbi tartalma átmegy az AKKU2-L-be. //összeadja az AKKU2-L és a AKKU1-L tartalmát, az eredményt az AKKU1L-ben tárolja //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 16bites 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
x
x
x
x
-
-
-
-
A1
A0
OV
OS
A státuszbitek képzése 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 L L
IW10 MW14
-I T
DB1.DBW25
Magyarázat // az IW10-ben lévő érték az AKKU1-L-be kerül. // Az MW14 tartalmának betöltése az AKKU1-L-be. Ekkor az AKKU-1 korábbi tartalma átmegy az AKKU2-L-be //Az AKKU1-L kivonása az AKKU2-L-ből,az eredmény tárolása az AKKU1-Lben. // 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
x
x
x
x
-
-
-
-
A1
A0
OV
OS
0
0
0
-
A státuszbitek képzése szorzat
=
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 L L
IW10 MW14
*I T
DB1.DBD25
Magyarázat // az IW10-ben lévő érték az AKKU1-L-be kerül. // Az MW14 tartalmának betöltése az AKKU1-L-be. Ekkor az AKKU-1 korábbi tartalma átmegy az AKKU2-L-be. //Az AKKU2-L szorzása azAKKU1-L-lel,az eredmény tárolása az AKKU 1ben. // 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
-
x
x
x
x
-
-
-
-
A státuszbitek képzése
A1
A0
OV
OS
hányados = 0
0
0
0
-
írja:
-32768
<=
hányados <
0
0
1
0
-
32767
>=
hányados >
0
1
0
0
-
hányados
=
32768
1
0
1
1
1
1
1
1
Osztás nullával
STL L L
IW10 MW14
/I T
MD20
Magyarázat //Az IW10 értéke betöltődik az AKKU1-L-be. //Betölti az MW14 tartalmát az AKKU1-L-be, és áttolja az előző tartalmat az AKKU2-L-be //Az AKKU2-L osztása az AKKU1-L tartalmával, az eredmény tárolása az AKKU1ben: AKKU1-L: hányados, AKKU1-H: maradék //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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
Példa STL L L
IW10 MW14
+I + T
25 DB1.DBW25
STL L L +
IW12 IW14 100
>I SPB
NEXT
Magyarázat // Az IW10 értéke betöltődik az AKKU1-L-be. // Betölti az MW14 tartalmát az AKKU1-L-be, és áttolja az előző tartalmat az AKKU2-L-be. //összeadja az AKKU1-L és AKKU2-L tartalmát, az eredményt tárolja az AKKU1-L-ben. //25-öt ad az AKKU1-L-hez, és tárolja az AKKU1-L-ben. // Az AKKU1 tartalma átmásolódik a DB1 DBD25-ös szóba..
Magyarázat
//Összeadja az AKKU1-L-t és a 100-at, az eredményt tárolja az AKKU1-Lben. //Ha AKKU 2 > AKKU 1 ill. IW 12 > (IW14 + 100), //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
Adattipus
Tárterület
Címtartomány
BYTE
I, Q, PI, M, L, D, Pointer, Parameter
0...65535
WORD
0...65534
DWORD
0...65532
Működés Az L utasítás betölti a címzett bájt, szó vagy duplaszó tartalmát az AKKU1be. A töltés előtt a korábbi tartalom átkerül az AKKU2-be.
Státuszszó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
Példa STL L L L L L
IB10 MB120 LD252 P# I 8.7 P# ANNA
Erläuterung //az IB10 betöltése az AKKU1-L-L-be. //az MB120 tartalmának betöltése az AKKU1-L-L-be. //az LD252 lokális adat betöltése az AKKU 1-be. //mutató (pointer) töltése az AKKU1-be //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 ) utasítás végrehajtása után
00000000
00000000
00000000
<MB10>
Az L MW10 (L <szó>) utasítás végrehajtása után
00000000
00000000
<MB10>
<MB11>
Az L MD10 (L ) utasítás végrehajtása után
<MB10>
<MB11>
<MB12>
<MB13>
Az L P# ANNA utasítás végrehajtása után (FB-ben)
<86>
< Az ANNA bit-eltolása (offset) az FB-kezdet-hez képest>.
Az L P# ANNA utasítás végrehajtása után (FC-ben)
X = "1" vagy "0"
STEP 7 STL utasításlista (angol rövidítésekkel)
58
2.13
T Átvitel
Formátum T Operandus
Adattipus
Tártartomány
cím
BYTE
I, Q, PQ, M, L, D
0...65535
WORD
0...65534
DWORD
0...65532
Működés A T 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
Példa STL T T T
QB10 MW14 DBD2
Magyarázat //az AKKU1-L-L tartalma kerül az QB10-be. // az AKKU1-L-L tartalma kerül az MW14-be. // 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 S7es rendszerben a BE hatása teljesen megegyezik a jelenlegi és korábbi BEU utasítás szerepével.
Státuszszó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
0
0
1
-
0
Példa STL
NEXT:
Magyarázat A JC L T A A S BE NOP 0
I 1.0 NEXT IW4 IW10 I 6.0 I 6.1 M 12.0
//a NEXT címkére ugrik, ha a RLO = 1 (I 1.0 = 1). //itt folytatódik, ha az ugrás nem hajtódik végre.
//modulvége. // 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
x
0
1
1
0
Példa STL A BEC L T
I 1.0 IW4 MW10
Magyarázat //Ha az I1.0 = 1, akkor a program befejeződik. //Ha az I1.0 = 0, akkor a BEB nem hajtódik végre. //és a program ennél az utasításnál folytatatódik).
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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
0
0
1
-
0
Példa STL
NEXT:
A JC L T A A S BEU NOP 0
I 1.0 NEXT IW4 IW10 I 6.0 I 6.1 M 12.0
Magyarázat Ha az I1.0 = 1 //akkor a NEXT //ha az I1.0 = 0, akkor a program itt folytatódik.
//Feltétel nélküli modulvége. //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
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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
0
0
1
-
0
1.Példa: Paraméterek hozzárendelése az FC6 hívásánál CALL c
FC6 Formális paraméter NO OF TOOL TIME OUT FOUND ERROR
Aktuális paraméter := MW100 := MW110 := Q 0.1 := 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 MAX_RPM MIN_RPM MAX_POWER MAX_TEMP
Aktuális paraméter := #RPM1_MAX := #RPM1 := #POWER1 := #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 MAX_RPM MIN_RPM MAX_POWER MAX_TEMP
Aktuális paraméter := #RPM2_MAX := #RPM2 := #POWER2 := #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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
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 MAX_RPM MIN_RPM MAX_POWER MAX_TEMP
Aktuális paraméter := #RPM1_MAX := #RPM1 := #POWER1 := #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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
0
0
1
-
0
Példa: az FC6 hívása, a paraméterek hozzárendelése CALL
FC6 Formalparameter NO OF TOOL TIME OUT FOUND ERROR
Aktualparameter := MW100 := MW110 := Q 0.1 := 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
0
0
1
-
0
Példa CALL
SFB4,DB4 Formalparameter IN: PT: Q: ET:
Aktualparameter I0.1 T#20s M0.0 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
0
0
1
-
0
Példa: Paraméter nélküli SFC hívása STL CALL
SFC43
Magyarázat //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
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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
0
0
1
1
0
Példa STL A CC A
I 2.0 FC6 M 3.0
Magyarázat //Az I2.0 bemenet jelállapotának lekérdezése. //Hívja az FC6-ot ha az I 2.0 = 1. //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 (LokalStack) adatterületét. A hívott kódmodult meg lehet adni aszolút vagy szimbólikus címzéssel.
Státuszszó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
0
0
1
-
0
1.Példa STL UC
Magyarázat //az FC6 hívása (paraméterek nélkül).
FC6
2.Példa STL UC
SFC43
Magyarázat // 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 Operandus
Adattipus
Működés
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 : az eltolandó bithelyek számát a Operandus tartalmazza. Megengedett a 0...15-ös tartomány. Az A0, és OV státuszbiteket az operációs rendszer 0ra állítja, ha a paraméter nullánál nagyobb. Ha a 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
x
x
x
-
-
-
-
-
STEP 7 STL utasításlista (angol rövidítésekkel)
74
Példák Tartalom
AKKU1-H
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 L SLW T
MW4 5 MW8
STL L L
3 MW20
SLW SPP
NEXT
AKKU1-L
magyarázat //az érték betöltése az AKKU 1-be. //a bitek eltolása az AKKU 1-ben öt hellyel balra. //az eredmény átvitele az MW8-ba.
magyarázat // +3 betöltése az AKKU 1-be. //az MW20 tartalmának betöltése az AKKU1-be, egyidejüleg a korábbi érték áttolása az AKKU2-be //az eltolási érték az AKKU2-L-L tartalma. Lásd az első utasítást //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 : az eltolandó bithelyek számát a Operandus tartalmazza. Megengedett a 0...15-ös tartomány. Az A0, és OV státuszbiteket az operációs rendszer 0ra állítja, ha a paraméter nullánál nagyobb. Ha a 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
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... xx10
...8 7... 0010
0001 1
Időalap 1 mp
...0 0111 2
7
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 t
Q 4.0 SE t
Q 4.0 SD t
Q 4.0 SS t
Q 4.0 SF t
Időművelet
Ismertetése
SI Impulzusképzés
Ha az indítójel az I0.0-án „1“ , akkor az Q4.0 kimenőjel bekapcsol a megadott t időtartamra
SE Meghosszabbított impulzus
A kimenet „1“-es jelszinten marad a programozott ideig függetlenül attól, hogy az indítójel mennyi ideig van jelen a bemeneten.
SD Bekapcsoláskésleltetés
A kimenőjel csak akkor „1“, ha a beállított idő lefutott, és a bemeneten a jelszint még mindig „1“.
SS Tároló bekapcsoláskésleltetés
A kimenőjel akkor „1“, ha a beállított idő lefutott, és függetlenül attól, hogy a bemenőjel meddig volt „1“.
SF Kikapcsoláskésleltetés
A beállított idő mérése akkor történik, amikor a bemenőjel „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 Operandus
Adattipus
Tártartomány
Leírás
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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
0
-
-
0
STEP 7 STL utasításlista (angol rövidítésekkel)
80
Példa STL A FR A L SI A R A = L T
Magyarázat I 2.0 T1 I 2.1 S5T#10s T1 I 2.2 T1 T1 Q 4.0 T1 MW10
//(újra) engedélyezi a T1 időt. //betölti az idő értékét az AKKU_1-be. //Elindítja a T1 időműveletet impulzusként. //Megállítja a T1 időt. //Lekérdezi a T1 idő állapotát. //A T1 aktuális értékét bináris számként betölti az akkumulátorba.
RLO az engedélyező bemeneten I 2.0
2
1
3
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 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
STEP 7 STL utasításlista (angol rövidítésekkel)
82
Beispiel STL L
Magyarázat // 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.
T1
15
2
A T1-es időművelet időszava a tárban
2
14
2
13
2
12
11
2
10
2
2
9
2
8
Időalap 00 = 10 ms 01 = 100 ms 10 = 1 s 11 = 10 s
Az AKKU-1-L tartalma az utasítás után
15
2
2
14
13
2
2
12
mind "0"
2
11
2
7
2
6
2
5
4
2
3
2
2
2
2
1
2
0
Időérték (0 ... 999) bináris kódban L
10
2
2
9
2
8
2
7
2
6
2
5
T1
4
2
3
2
2
2
1
2
2
0
Időérték (0 ... 999) bináris kódban
Megjegyzés Az L 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 Operandus
Adattipus
Tártartomány
Leírás
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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
STEP 7 STL utasításlista (angol rövidítésekkel)
84
Beispiel STL LC
Erläuterung // 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.
T1
15
A T1-es időművelet időszava a tárban
Az AKKU-1-L tartalma az utasítás után
2
2
14
2
13
2
12
11
2
10
2
2
9
2
8
Időalap 00 = 10 ms 01 = 100 ms 10 = 1 s 11 = 10 s
0
0
0
15
14
13
2
2
2
2
7
2
6
2
5
4
2
3
2
2
2
1
2
1
2
2
0
Időérték (0 ... 999) BCD kódban LC T1
0 2
12
2
11
10
2
2
9
2
8
2
7
2
6
2
5
4
2
3
2
2
2
2
0
(LC T1) Időalap 00 = 10 ms 01 = 100 ms 10 = 1 s 11 = 10 s
102 Százas
101 Tizes
100 Egyes
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 Operandus
Adattipus
Tártartomány
Leírás
TIMER
T
Az időművelet száma; a tartomány a CPU-tól függ
Működés Az R 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ó
Írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
0
-
-
0
Példa STL A R
I 2.1 T1
Erläuterung //Lekérdezi az I 2.1-es bemenet jelállapotát //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 Operandus
Adattipus
Tártartomány
Leírás
TIMER
T
Az időművelet száma; a tartomány a CPU-tól függ
Működés Az SI 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
0
-
-
0
STEP 7 STL utasításlista (angol rövidítésekkel)
87
Példa STL A FR A L SI A R A = L
I 2.0 T1 I 2.1 S5T#10s T1 I 2.2 T1 T1 Q 4.0 T1
Magyarázat
T LC
MW10 T1
T
MW12
//Engedélyezi a T1 időművelet újraindítását. //Beállít 10 másodperces időt az AKKU 1 -ben. //A T1 időművelet indítása impulzusképző funkcióval. //Törli a T1 időműveletet. //Kérdés a T1 időművelet jelállapotára. //A T1 időművelet aktuális értékének betöltése az AKKU1-L-be bináris számként. // A T1 időművelet aktuális értékének betöltése az AKKU1-L-be BCD számként.
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 Operandus
Adattipus
Speicherbereich
Beschreibung
TIMER
T
Az időművelet száma; a tartomány a CPU-tól függ
Működés Az SE 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-Lnek 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
0
-
-
0
STEP 7 STL utasításlista (angol rövidítésekkel)
89
Példa STL A FR A L SE A R A = L
I 2.0 T1 I 2.1 S5T#10s T1 I 2.2 T1 T1 Q 4.0 T1
Magyarázat
T LC
MW10 T1
T
MW12
// Engedélyezi a T1 időművelet újraindítását. // Beállít 10 másodperces időt az AKKU 1 -ben. // A T1 időművelet indítása meghosszabbított impulzusképző funkcióval. //Törli a T1 időműveletet. //Kérdés a T1 időművelet jelállapotára. //A T1 időművelet aktuális értékének betöltése az AKKU1-L-be bináris számként. // A T1 időművelet aktuális értékének betöltése az AKKU1-L-be BCD számként.
Engedélyezés
I 2.0
Indítás
I 2.1
Törlés
I 2.2
Az idő Kimenet
t 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 Operandus
Adattipus
Tárterület
Leírás
TIMER
T
Az időművelet száma; a tartomány a CPU-tól függ
Működés Az SD 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
0
-
-
0
STEP 7 STL utasításlista (angol rövidítésekkel)
91
Példa STL A FR A L SD A R A = L
I 2.0 T1 I 2.1 S5T#10s T1 I 2.2 T1 T1 Q 4.0 T1
Erläuterung
T LC
MW10 T1
T
MW12
// Engedélyezi a T1 időművelet újraindítását. // Beállít 10 másodperces időt az AKKU 1 -ben. // A T1 időművelet indítása meghosszabbított impulzusképző funkcióval. //Törli a T1 időműveletet. //Kérdés a T1 időművelet jelállapotára. //A T1 időművelet aktuális értékének betöltése az AKKU1-L-be bináris számként. // A T1 időművelet aktuális értékének betöltése az AKKU1-L-be BCD számként.
Engedélyezés I 2.0 Indítás
I 2.1
Törlés
I 2.2
Az idő Kimenet
t
t
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 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 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-Lnek 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
0
-
-
0
STEP 7 STL utasításlista (angol rövidítésekkel)
93
Példa STL A FR A L SS A R A = L
I 2.0 T1 I 2.1 S5T#10s T1 I 2.2 T1 T1 Q 4.0 T1
Magyarázat
T LC
MW10 T1
T
MW12
// Engedélyezi a T1 időművelet újraindítását. // Beállít 10 másodperces időt az AKKU 1 -ben. // A T1 időművelet indítása meghosszabbított impulzusképző funkcióval. //Törli a T1 időműveletet. //Kérdés a T1 időművelet jelállapotára. //A T1 időművelet aktuális értékének betöltése az AKKU1-L-be bináris számként. // A T1 időművelet aktuális értékének betöltése az AKKU1-L-be BCD számként.
Engedélyezés
I 2.0 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 Operandus
Adattipus
Tárterület
Leírás
TIMER
T
Az időművelet száma; a tartomány a CPU-tól függ
Működés Az SF 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
0
-
-
0
STEP 7 STL utasításlista (angol rövidítésekkel)
95
Példa STL A FR A L SF A R A = L
I 2.0 T1 I 2.1 S5T#10s T1 I 2.2 T1 T1 Q 4.0 T1
Magyarázat
T LC
MW10 T1
T
MW12
// Engedélyezi a T1 időművelet újraindítását. // Beállít 10 másodperces időt az AKKU 1 -ben. // A T1 időművelet indítása meghosszabbított impulzusképző funkcióval. //Törli a T1 időműveletet. //Kérdés a T1 időművelet jelállapotára. //A T1 időművelet aktuális értékének betöltése az AKKU1-L-be bináris számként. // A T1 időművelet aktuális értékének betöltése az AKKU1-L-be BCD számként.
Engedélyezés
I 2.0
Indítás
I 2.1
Törlés
I 2.2
Az idő Kimenet
t
t
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ó (egészszám, 8 Bit)
állandó, amit a program az AKKU1-L-L-ből 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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
Példa STL L DEC T
MB250 1 MB250
Magyarázat //Az MB250 értékének betöltése az AKKU-1-be. //Az AKKU1-L-L dekrementálása 1-gyel,az eredményt tárolja az AKKU1-L-L-ben. //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ó
írja:
3.24
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
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ó
írja:
BR
A1
A0
OV
OS
OR
STA
RLO
/ER
-
-
-
-
-
-
-
-
-
STEP 7 STL utasításlista (angol rövidítésekkel)
98