Professional Documents
Culture Documents
STEP 7 STL Utasitaslista v1.1
STEP 7 STL Utasitaslista v1.1
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ó.
Lekérdezés (Abfrage)
Első lekérdezés
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.
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ó.
Az élfigyelés azt jelenti, hogy érzékelni akarják azt a pillanatot, amikor egy bit-
változó állapotát megváltoztatja (0 - > 1 vagy 1 -> 0). Ezt csak úgy lehet érzékelni,
ha a program minden ciklusban összehasonlítja az előző és az aktuális jelállapotot.
Ehhez meg kell mindig jegyezni az aktuális jelállapotot, hogy a következő ciklusban
mint előzőt fel lehessen használni. Erre szolgál az FN vagy FP utasítás melletti
segédváltozó, amelynek természetesen szabadnak változónak kell lenni, és minden
ciklusban meg kell maradni (NEM lehet TEMP!!!) és semmi másra nem használható.
Az él bekövetkezését nem ez a változó, hanem az ebben a sorban keletkező RLO
jelzi.
Akkumulátorok
Az S7-es vezérlőkben a belső adatmozgatásban (L, T) ill. a számítások elvézésében
az akkumulátorok (a processzor erre a feladatra kijelölt regiszterei) vesznek részt.
Az S7-300 két darab 32-bites az S7-400 néy darab 32 bites akkumulátorral
rendelkezik, a fenti funkciókat azonban mindkettő lényegében az első két
akkumulátorral hajtja végre. Az alábbi szövegben a következő jelölések fordulnak
evvel kapcsolatban elő:
……………….H……………… …………….L…………………
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.
Formátum
A <Bit>
Működés
Az A utasítás kérdést tesz fel a címzett bit logikai 1-es állapotára, és az eredményt ÉS-
kapcsolatba hozza a státuszregiszter RLO-bitjével.
Az ÉS-művelettel közvetlenül logikai műveletet lehet végrehajtani a státuszszó bitjeivel.
Ehhez a következő utasításokat kell használni.: ==0, <>0, >0, <0, >=0, <=0, OV, OS, AO,
BR.
Státuszszó
Példa
STL-Program Relé-kapcsolás
Áramvezető sín
Formátum
AN <Bit>
Működés
Az AN utasítás kérdést tesz fel a címzett bit logikai 0 állapotára, és az eredményt ÉS-
kapcsolatba hozza a státuszregiszter RLO-bitjével.
Az ÉS-művelettel közvetlenül logikai műveletet lehet végrehajtani a státuszszó bitjeivel.
Ehhez a következő utasításokat kell használni.: ==0, <>0, >0, <0, >=0, <=0, OV, OS, UO,
BR
Státuszszó
Példa
Áramvezető sín
I 1.0
A I 1.0 Záróérintkező
0 jelállapot
I 1.1
AN I 1.1 1-es jelállapot Nyitóérintkező
Q 4.0
= Q 4.0 Tekercs
0 jelállapot
Formatum
O <Bit>
Működés
Az O utasítás kérdést tesz fel a címzett bit logikai 1-es állapotára, és az eredményt VAGY-
kapcsolatba hozza a státuszregiszter RLO-bitjével.
A VAGY-művelettel közvetlenül logikai műveletet lehet végrehajtani a státuszszó bitjeivel.
Ehhez a következő utasításokat kell használni.: ==0, <>0, >0, <0, >=0, <=0, OV, OS, UO,
BR
Státuszszó
Beispiel
STL-Program Relais-kapcsolás
Áramvezetősín
I 1.0 1-es jelállapot I 1.1 0-ás jelállapot
O I 1.0
záróérintkező záróérintkező
O I 1.1
Formátum
ON <Bit>
Működés
Az ON utasítás kérdést tesz fel a címzett bit logikai 0 állapotára, és az eredményt VAGY-
kapcsolatba hozza a státuszregiszter RLO-bitjével.
A VAGY-NEM -művelettel közvetlenül logikai műveletet lehet végrehajtani a státuszszó
bitjeivel. Ehhez a következő utasításokat kell használni.: ==0, <>0, >0, <0, >=0, <=0, OV,
OS, UO, BR
Státuszszó
Példa
STL-Program Relé-kapcsolás
Áramvezető sín
I 1.0
O I 1.0 0 jelállapot záróérintkező
I 1.1
ON I 1.1 nyitóérintkező
1-es jelállapot
Q 4.0
= Q 4.0 tekercs
1 - jelállapot
Formátum
X <Bit>
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.
Státuszszó
Példa
STL-Program Relé-kapcsolás
Áramvezető sín
Q 4.0
= Q 4.0
tekercs
Formátum
XN <Bit>
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.
Státuszszó
Példa
STL-Program Relékapcsolás
Áramvezető sín
= Q 4.0 Q 4.0
tekercs
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ó
Példa
STL-Program Relékapcsolás
Áramvezető sín
A I 0.0 M 10.1
I 0.0
A M 10.0
I 0.2
O
A I 0.2
M 10.0
A M 0.3
M 0.3
O M 10.1
= Q 4.0 Q 4.0
tekercs
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ó
Példa
STL-Program Relékapcsolás
Áramvezető sín
A(
O I 0.0 I 0.0
O M 10.0
M 10.0
)
A(
O I 0.2 I 0.2
O M 10.3 M 10.3
)
A M 10.1 M 10.1
Q 4.0
= Q 4.0
tekercs
Formátum
= <Bit>
Működés
Az = <Bit> utasítás beírja a logikai műveleti eredményt (RLO) a megcímzett bitbe. Ha az
eredmény 1, akkor a bit értéke is 1, ha 0 akkor a bit értéke 0.
Státuszszó
Példa
STL-Program Relékapcsolás
Jelállapot - diagram
1
I 1.0
0
Q 4.0
1 Spule
Q 4.0
0
Formátum
FN <Bit>
Működés
Az FN <Bit> utasítás segítségével egy változó lefutó élét lehet érzékelni, amikor azon a
jelállapot 1 – ről 0 – ra vált. Ekkor az FN utasításnál a RLO egy ciklusra 1-es állapotot
vesz fel.
Minden programciklus alatt összehasonlításra kerül a figyelt változó állapota az előző
ciklus állapotával. Így megállapítható, hogy a változón jelváltás történt-e. Az
összehasonlításhoz az értelmező program az előző ciklus állapotát az un. élváltozóban, az
FN utáni bitben tárolja.
Státuszszó
Felfutó él Lefutó él
RLO
1
0 Idő
Példa
Ha a PLC az I1.0-ás bemeneten negatív (lefutó) élt érzékel, akkor az Q4.0 kimenetet egy
ciklusra 1-be kapcsolja.
STL-Program Impulzusdiagramm
A I 1.0
1
I 1.0
0
FN M 1.0 M 1.0 1
0
= Q 4.0 Q 4.0 1
0
ciklusok: 1 2 3 4 5 6 7 8 9
Formátum
FP <Bit>
Működés
Az FP <Bit> utasítás segítségével egy változó felfutó élét lehet érzékelni, amikor azon a
jelállapot 0 – ról 1 – re vált. Ekkor az FP utasításnál a RLO egy ciklusra 1-es állapotot
vesz fel.
Minden programciklus alatt összehasonlításra kerül a figyelt változó állapota az előző
ciklus állapotával. Így megállapítható, hogy a változón jelváltás történt-e. Az
összehasonlításhoz az értelmező program az előző ciklus állapotát az un. élváltozóban, az
FP utáni bitben tárolja.
Státuszszó
Felfutó él Lefutó él
RLO
1
0 Idő
Példa
Ha a PLC az E1.0-ás bemeneten pozitív (felfutó) élt érzékel, akkor az A4.0 kimenetet egy
ciklusra 1-be kapcsolja.
STL-Program Jelállapotdiagramm
A I 1.0
1
I 1.0
0
FP M 1.0 M 1.0 1
0
= Q 4.0 Q 4.0 1
0
A ciklusok száma: 1 2 3 4 5 6 7 8 9
Formátum
==I, <>I, >I, <I, >=I, <=I
Működés
Az összehasonlítási műveletek az AKKU2-L tartalmát hasonlítják össze az AKKU1-L
tartalmával. A két akkumulátor tartalmát a rendszerprogram 16 bites egészszámként
értékeli. Az összehasonlítás eredményét a RLO és a státuszszó megfelelő bitje jelzi. A
RLO 1-es értéke azt jelenti, hogy az összehasonlítás által feltett kérdésre a válasz igen, a
0 RLO azt jelenti, hogy nem. Az A1 és A0 státuszbitek a “kisebb mint”, “egyenlő” vagy
“nagyobb mint” viszonyokat jelzik.
Státuszszó
A RLO értékei
Példa
STL Kommentár
L MW10 //Az MW1 tartalmának töltése az AKKU1-be (16 Bit-egészszám).
L IW24 //Az IW24 tartalmának töltése az AKKU1-be (16 Bit-egészszám).
>I //Az AKKU2 és AKKU1 összehasonlítása
= M 2.0 //RLO = 1, ha MW10 > IW24.
Formátum
BTI
Működés
Státuszszó
Példa
STL Kommentár
L MW10 //A BCD-számot tölti az AKKU1-L-be.
BTI //a BCD-számot átalakítja
T MW20 //Transferiere das Ergebnis (Ganzzahl, 16 Bit) nach MW20.
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ó
Példa
STL Magyarázat
L MW10 //Egészszám töltése az AKKU1-L-be.
ITB //Egészszám átalakítása (16 Bit) BCD-számmá, tárolása az AKKU1-L-ben.
T MW20 //Az eredmény átvitele az MW20-ba.
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ó
Példa
STL Magyarázat
L MD10 //A BCD-szám betöltése az AKKU 1-be.
BTD // a BCD-számot átalakítja, és tárolja az AKKU1-ben.
T MD20 //Az eredményt átviszi az MD20-ba.
"+157821"
BTD BCD átalakítása egészszámmá
MD20 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 1 1 0 1 0 0 0 0 1 1 1 1 1 0 1
"+157821"
Formátum
ITD
Működés
Az ITD utasítás az AKKU1-L tartalmát 16-bites egészszámként értékeli ki, és alakítja 32-
bites egészszámmá. Az eredményt az AKKU1-ben tárolja, az AKKU2 nem változik.
Státuszszó
Példa
STL Magyarázat
L MW12 //Az egészszámot (16 Bit) az AKKU 1-L-be tölti.
ITD //A 16-bites egészszámot 32-bites egésszszámmá alakítja és az eredményt az
AKKU 1-ben tárolja.
T MD20 //Az eredményt az MD20-ban tárolja.
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.
Státuszszó
Példa
STL Magyarázat
L MD10 // Az egészszámot (32 Bit) az AKKU 1-be tölti.
DTB // Egészszám átalakítása (32 Bit) BCD-számmá, tárolása az AKKU1-ben.
T MD20 // Az eredmény átvitele az MD20-ba.
MD20 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 1
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ó
Példa
STL Magyarázat
L MD10 //Az egészszám betöltése az AKKU1-be
DTR //Az egészszám átalakítása lebegőpontos számmá, és tárolása az AKKU1-ben
T MD20 //Az eredmény átvitele az MD20-ban.
MD10 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 0 1 0 0
DTR
31 30... 22... ...0
MD20 0 1 0 0 0 0 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
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ó
Példa
STL Magyarázat
L IW8 //Az érték betöltése az AKKU1-L-be.
INVI //Az egyeskomplemens képzése (16 Bit).
T MW10 // Az eredmény átvitele az MW10-be.
Tartalom AKKU1-L
Bit 15 . . . .. .. ...0
Az INVI végrehajtása előtt 0110 0011 1010 1110
Az INVI végrehajtása után 1001 1100 0101 0001
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ó
Példa
STL Magyarázat
L ID8 //Az érték betöltése az AKKU1-be.
INVD //Az egyeskomplemens képzése (32 Bit).
T MD10 // Az eredmény átvitele az MD10-be.
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ó
A státuszbitek képzése: A1 A0 OV OS
eredmény = 0 0 0 0 -
-32768 <= eredmény <= -1 0 1 0 -
32767 >= eredmény >= 1 1 0 0 -
eredmény = 2768 0 1 1 1
Példa
STL Magyarázat
L IW8 // Az érték betöltése az AKKU1-L-be.
NEGI //A ketteskomplemens képzése (16 Bit).
T MW10 // Az eredmény átvitele az MW10-be.
Tartalom AKKU1-L
Bit 15 . . . .. .. ...0
A NEGI végrehajtása előtt 0101 1101 0011 1000
A NEGI végrehajtása után 1010 0010 1100 1000
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ó
A státuszbitek képzése: A1 A0 OV OS
Eredmény = 0 0 0 0 -
-2.147.483.648 <= Eredmény <= -1 0 1 0 -
2.147.483.647 >= Eredmény >= 1 1 0 0 -
Eredmény = 2 147 483 648 0 1 1 1
Példa
STL Magyarázat
L ID8 // Az érték betöltése az AKKU1-be.
NEGD //A ketteskomplemens képzése (32 Bit).
T MD10 // Az eredmény átvitele az MD10-be.
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ó
Példa
STL Magyarázat
L ID8 //Az érték betöltése az AKKU 1-be (példa ED8 = 1.5E+02).
NEGR //a lebegőpontos szám negálása (32 Bit, IEEE-FP), és az eredmény tárolása
az AKKU 1-ben.
T MD10 // Az eredmény átvitele az MD10-be (Példa, eredmény = -1.5E+02).
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ó
Példa
STL Magyarázat
L MD10 //A lebegőpontos szám betöltése az AKKU1-be (32 Bit, IEEE-FP).
RND //Átalakítja a lebegőpontos számot (32 Bit, IEEE-FP) egészszámmá (32 Bit)
és kerekíti az eredményt, majd elhelyezi az AKKU1-ben.
T MD20 //Az eredményt átviszi az MD20-ba.
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ó
Példa
STL Magyarázat
L MD10 // A lebegőpontos szám betöltése az AKKU1-be (32 Bit, IEEE-FP)..
TRUNC // Átalakítja a lebegőpontos számot (32 Bit, IEEE-FP) egészszámmá
(32 Bit) és kerekíti az eredményt, majd elhelyezi az AKKU1-ben.
T MD20 // Az eredményt átviszi az MD20-ba.
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ó
Példa:
STL Magyarázat
L MD10 // A lebegőpontos szám betöltése az AKKU1-be (32 Bit, IEEE-FP).
RND // Átalakítja a lebegőpontos számot (32 Bit, IEEE-FP) egészszámmá (32 Bit)
és kerekíti az eredményt, majd elhelyezi az AKKU1-ben.
T MD20 // Az eredményt átviszi az MD20-ba.
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ó
Példa
STL Magyarázat
L MD10 // A lebegőpontos szám betöltése az AKKU1-be (32 Bit, IEEE-FP).
RND // Átalakítja a lebegőpontos számot (32 Bit, IEEE-FP) egészszámmá (32 Bit)
és kerekíti az eredményt, majd elhelyezi az AKKU1-ben.
T MD20 // Az eredményt átviszi az MD20-ba.
Formátum
FR <számláló>
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ó
Példa
STL Magyarázat
A I 2.0 //Lekérdezi az I 2.0 cím állapotát.
FR C3 //Újraengedélyezi a C3-as számlálót, ha a RLO "0"-ról "1"-re vált.
Formátum
L <számláló>
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ó
Példa
STL Magyarázat
L C3 //A C3 számláló tartalmának töltése bináris formátumba az AKKU1-L-be.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
A C3 számláló
tartalma a tárban
Számlálási érték (0 bis 999)
bináris formátumban
L C3
Az AKKU1-L
tartalma a
töltési
utasítás után
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
mind"0"
Formátum
LC <számláló>
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ó
STL Magyarázat
LC C3 // AKKU1-L-be tölti a címzett számláló aktuális értékét BCD számként.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
A C3
számláló
tartalma a
tárban
LC C3
Az AKKU1-L
tartalma a 0 0 0 0
töltési utasítás
után 2
15
2
14 13
2 2
12 11
2 2
10 9
2 2
8
2
7
2
6
2
5 4
2 2
3
2
2
2
1
2
0
Formátum
R <számláló>
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ó
Példa
STL Magyarázat
U I 2.3 //Lekérdezi az I 2.3-as bemenet állapotát
R C3 //A C3-as számláló tárterületére 0-át tölt, ha a RLO = 1 (I2.3 = 1).
Formátum
S <számláló>
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ó
Példa
STL Magyarázat
U I 2.3 // Lekérdezi az I 2.3-as bemenet állapotát.
L C#3 //betölti az AKKU1-L-be az indulási értéket.
S C1 //a C1-es számlálót 3-ra állítja, ha a RLO 0-ról 1-re vált.
Formátum
CU <számláló>
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ó
Példa
STL Magyarázat
A I 2.1 // Lekérdezi az I 2.1-es bemenet állapotát.
CU C3 //A C3 tartalmát 1-gyel megnöveli, ha a RLO 0-ról 1-re vált.
Formátum
CD <számláló>
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ó
Példa
STL Magyarázat
A I 2.1 // Lekérdezi az I 2.1-es bemenet állapotát.
CD C3 //A C3 tartalmát 1-gyel csökkenti, ha a RLO 0-ról 1-re vált.
Formátum
OPN <adatmodul>
Működés
Az OPN <Adatmodul> utasítás globális (DB) vagy instant-adatmodult (DI) nyit meg.
Egyidejüleg egy globális és egy instant adatmodul lehet nyitva.
Státuszszó
Példa
STL Magyarázat
OPN DB10 //Megnyitja a DB10-es adatmodult globális adatmodulként.
L DBW35 //A DBW35 címzésű adatszót tölti a megnyitott adatmodulból az AKKU1-L-be.
T MW22 //Átviszi az AKKU1-L tartalmát az MW22-be.
OPN DI20 // Megnyitja a DB20-as adatmodult instant adatmodulként.
L DIB12 //Betölti a DIB12 bájtot a megnyitott instant adatmodulból az AKKU1-L-L-be.
T DBB37 //Az AKKU1-L-L tartalmát átviszi a megnyitott gobális adatmodul DBB37
adatbájtjába.
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.
Formátum
JU <ugrási cimke>
Operandus Megnevezés
<ugrási cimke> Az ugrási cél szimbólikus neve.
Működés
A JU <ugrási cimke> utasítás függetlenül a RLO-től megszakítja a lineáris
programvégrehajtást és a megadott célra ugrik, majd ott folytatja a programutasítások
végrehajtását. Az ugrás célját cimkével kell megadni. Ugrani lehet előre ill. hátra, de a
programmodul (programblokk) határain nem lehet átugrani (más programmodulba). Tehát
a programutasításnak és az ugrási célnak ugyanabban a programmodulban kell lenni. A
célnak egyértelműnek kell lenni, vagyis csak egyszer szabad előfordulni. Ezt a
programszerkesztő természetesen ellenőrzi. A maximális ugrási távolság -32768 ill.
+32767 szó. Szem előtt kell tartani, hogy a programutasítások hossza különböző (egy,
kettő vagy három szó).
Státuszszó
Példa
STL Magyarázat
A I 1.0
A I 1.2
JC DELE //ugrik, ha a RLO = 1, a DELE ugrási címre.
L MB10
INC 1
T MB10
JU FORW //Feltétel nélüli ugrás a FORW cimkére.
DELE: L 0
T MB10
FORW: A I 2.1 //A program az ugrás után itt folytatódik.
Formátum
JL <ugrási címke>
Operandus Megnevezés
<ugrási címke> Az ugrási cél szimbólikus neve.
Működés
Az SPL < ugrási címke > utasítás lehetővé teszi egy célból kiindulva több eset (case)
közüli választás, másként kifejezve a tösszörös elágazás programozását. A választható
célok rögtön az SPL utasítás után következnek, számuk max. 255, és befejeződnek azon a
célon, ami az SPL utasítás mellett áll. Minden ugrási cél egy SPA utasításból áll. Az ugrási
utasítás számát (0...255) a program az AKKU1-L-L-ből veszi.
Ameddig az akkumulátor tartalma kisebb mint az SPL utasítás és a mellette megadott
ugrási címke közötti ugrási célok száma, az SPL művelet az SPA utasítások
valamelyikére ugrik. Ha az AKKU1-L-L nulla, akkor a program az első SPA utasításra
ugrik, ha 1, akkor a másodikra stb. Ha az ugrási cél száma az AKKU1-ben nagyobb mint a
ténylegesen létező célok száma, akkor a program az utolsó SPA utasítás utáni utasításon
folytatódik.
Az SPL utasítás után a többszörös elágazást biztosító SPA utasítások között egyéb
utasításnak nem szabad lenni.
Státuszszó
STL Magyarázat
L MB0 //Az ugrási cél számának (0...255) betöltése az AKKU1-L-L-be.
JL LSTX //Ugrási cél, ha AKKU1-L-L > 3.
JU SEG0 //Ugrási cél, ha AKKU1-L-L = 0.
JU SEG1 //Ugrási cél, ha AKKU1-L-L = 1.
JU COMM //Ugrási cél, ha AKKU1-L-L = 2.
JU SEG3 //Ugrási cél, ha AKKU1-L-L = 3.
LSTX: JU COMM
SEG0: * //utasítás.
*
JU COMM
SEG1: * //utasítás.
*
JU COMM
SEG3: * //utasítás.
*
JU COMM
COMM: *
*
Formátum
JC <ugrási cimke>
Operandus Megnevezés
<ugrási cimke> Az ugrási cél szimbólikus neve.
Működés
Ha RLO = 1, akkor a JC <ugrási címke> utasítás megszakítja a lineáris
programvégrehajtást és a megadott ugrási címkére ugrik. A program végrehajtása itt
folytatódik. Az ugrás történhet előre is és hátrafelé, de a programmodulból
(programblokkból) kiugrani nem lehet. Tehát az ugrási utasításnak és a címkének
ugyanabban a programmodulban kell lenni. Az ugrási utasításnak egyértelmünek kell lenni,
a címke tehát csak egyszer fordulhat elő egy adott programmodulban. A max. ugrási táv -
32768 ill. +32767 utasítás-szó lehet. A tényleges maximális utasítás, amit a program át tud
ugrani, az utasítások kombinációjától függ (egy-, két- vagy háromszavas utasítás.
Ha a RLO = 0, akkor az operációs rendszer nem hajtja végre az ugrást. A RLO-t 1-re
állítja, és a program folytatódik a megszakítás helyétől.
Státuszszó
Példa
STL Magyarázat
A I 1.0
A I 1.2
JC JOVR //Ugrik, ha RLO = 1, a JOVR címkére.
L IW8 //Itt folytatódik a program ha az ugrás nem hajtódik végre.
T MW22
JOVR: A I 2.1 //Ha az ugrás végrehajtódik, akkor a program itt folytatódik.
Formátum
SPBN <ugrási címke>
Operandus Megnevezés
<ugrási címke> Az ugrási cél szimbólikus neve.
Működés
Ha a RLO = 0, akkor a JCN <ugrási címke> utasítás megszakítja a lineáris programfutást
és az ugrási címkénél folytatja. Az ugrás történhet előre is és hátrafele, de a
programmodulból (programblokkból) kiugrani nem lehet. Tehát az ugrási utasításnak és a
címkének ugyanabban a programmodulban kell lenni. Az ugrási utasításnak
egyértelmünek kell lenni, a címke tehát csak egyszer fordulhat elő egy adott
programmodulban. A max. ugrási táv -32768 ill. +32767 utasítás-szó lehet. A tényleges
maximális utasítás, amit a program át tud ugrani, az utasítások kombinációjától függ (egy-,
két- vagy háromszavas utasítás).
Ha a RLO = 1, akkor az operációs rendszer nem hajtja végre az ugrást. A RLO-t 1-re
állítja, és a program folytatódik a megszakítás helyétől.
Státuszszó
Példa
STL Magyarázat
A I 1.0
A I 1.2
JCN JOVR // Ugrik, ha RLO = 0, a JOVR címkére.
L IW8 // Itt folytatódik a program ha az ugrás nem hajtódik végre..
T MW22
JOVR: A I 2.1 // Ha az ugrás végrehajtódik, akkor a program itt folytatódik.
Formátum
LOOP <ugrási címke>
Operandus Megnevezés
<Ugrási címke> Az ugrási cél szimbólikus neve.
Működés
A LOOP <ugrási címke> (az AKKU1-L tartalmának csökkentése, és ugrás, ha az
AKKU1-L <> 0) utasítás egyszerűbbé teszi a hurkok programozását. A hurokszámláló
előjel nélküli 16-bites egészszám, és az AKKU1-L-ben kell lennie, amikor a LOOP utasítás
következik. A LOOP utasításnál a program visszaugrik a LOOP után megadott címkére. Az
ugrás mindaddig folytatódik, ameddig az AKKU1-L nem lesz nulla. A programnak azt a
részét, amelyet többször akarnak végrehajtani az ugrási címke és a LOOP utasítás közé
kell írni.
Státuszszó
BR A1 A0 OV OS OR STA RLO /ER
írja: - - - - - - - - -
Példa
STL Magyarázat
L L#1 //Állandó töltése az AKKU 1-be.
T MD20 //Az AKKU 1 tartalmának átvitele az MD20-ba (inicializálás).
L 5 //A hurokszám töltése az AKKU1-L-be
NEXT: T MW10 //Ugrási cimke = a hurok kezdete / az AKKU1-L betöltése a
hurokszámlálóba.
L MD20
* D //Az MD20 tartalmának szorzása az MB10 tartalmával
T MD20 //Az eredmény átvitele az MD20-ba.
L MW10 //A hurokszámláló töltése az AKKU1-be.
LOOP NEXT //Az AKKU 1 tartalmának csökkentése eggyel és ugrás a NEXT
címkére, ha az AKKU1-L > 0.
L MW24 //A hurok befejezése után a program itt folytatódik.
L 200
>I
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ó
A státuszbitek képzése A1 A0 OV OS
Összeg = 0 0 0 0 -
-32768 <= összeg < 0 0 1 0 -
32767 >= összeg > 0 1 0 0 -
összeg = -65536 0 0 1 1
65534 >= összeg > 32767 0 1 1 1
-65535 <= összeg < -32768 1 0 1 1
Példa
STL Magyarázat
L IW10 //az IW10-ben lévő érték az AKKU1-L-be kerül.
L MW14 //Az MW14 tartalmának betöltése az AKKU1-L-be. Ekkor az AKKU-1 korábbi
tartalma átmegy az AKKU2-L-be.
+I //összeadja az AKKU2-L és a AKKU1-L tartalmát, az eredményt az AKKU1-
L-ben tárolja
T DB1.DBW25 //Az AKKU1-L tartalma átmásolódik a DB1 DBW25-es szavába.
Formátum
-I
Működés
A -I utasítás kivonja az AKKU1-L tartalmát az AKKU2-L tartalmából, és az eredményt az
AKKU1-L-ben tárolja. A kivonás során az AKKU1-L és AKKU2-L tartalmát a program 16-
bites egészszámként értékeli. A müvelet nem befolyásolja és nem veszi figyelembe a
RLO-t. Az A1, A0, OS, és OV státuszbit az eredménytől függően változik.
A két akkumulátorral rendelkező CPU-k esetében az AKKU2 tartalma változatlan marad.
A négy akkumulátorral rendelkező CPU-k esetében az operációs rendszer az AKKU3
tartalmát az AKKU2-be, az AKKU 4 tartalmát az AKKU 3-ba másolja. Az AKKU 4 tartalma
nem változik.
Státuszszó
A státuszbitek képzése A1 A0 OV OS
különbség = 0 0 0 0 -
-32768 <= különbség <0 0 1 0 -
32767 >= különbség >0 1 0 0 -
65535 >= különbség > 32767 0 1 1 1
-65535 <= különbség < -32768 1 0 1 1
Példa
STL Magyarázat
L IW10 // az IW10-ben lévő érték az AKKU1-L-be kerül.
L MW14 // Az MW14 tartalmának betöltése az AKKU1-L-be. Ekkor az AKKU-1
korábbi tartalma átmegy az AKKU2-L-be
-I //Az AKKU1-L kivonása az AKKU2-L-ből,az eredmény tárolása az AKKU1-L-
ben.
T DB1.DBW25 // Az AKKU1-L tartalma átmásolódik a DB1 DBW25-es szavába.
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ó
A státuszbitek képzése A1 A0 OV OS
szorzat = 0 0 0 0 -
-32768 <= szorzat < 0 0 1 0 -
32767 >= szorzat > 0 1 0 0 -
1.073.741.824 >= szorzat > 32767 1 0 1 1
-1.073.709.056 <= szorzat < -32768 0 1 1 1
Példa
STL Magyarázat
L IW10 // az IW10-ben lévő érték az AKKU1-L-be kerül.
L MW14 // Az MW14 tartalmának betöltése az AKKU1-L-be. Ekkor az AKKU-1
korábbi tartalma átmegy az AKKU2-L-be.
*I //Az AKKU2-L szorzása azAKKU1-L-lel,az eredmény tárolása az AKKU 1-
ben.
T DB1.DBD25 // Az AKKU1 tartalma átmásolódik a DB1 DBD25-ös duplaszóba.
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ó
A státuszbitek képzése A1 A0 OV OS
hányados = 0 0 0 0 -
-32768 <= hányados < 0 0 1 0 -
32767 >= hányados > 0 1 0 0 -
hányados = 32768 1 0 1 1
Osztás nullával 1 1 1 1
STL Magyarázat
L IW10 //Az IW10 értéke betöltődik az AKKU1-L-be.
L MW14 //Betölti az MW14 tartalmát az AKKU1-L-be, és áttolja az előző tartalmat az
AKKU2-L-be
/I //Az AKKU2-L osztása az AKKU1-L tartalmával, az eredmény tárolása az AKKU1-
ben: AKKU1-L: hányados, AKKU1-H: maradék
T MD20 //Az AKKU 1 tartalma (eredmény) átmásolódik az MD20-ba.
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ó
Példa
STL Magyarázat
L IW10 // Az IW10 értéke betöltődik az AKKU1-L-be.
L MW14 // Betölti az MW14 tartalmát az AKKU1-L-be, és áttolja az előző
tartalmat az AKKU2-L-be.
+I //összeadja az AKKU1-L és AKKU2-L tartalmát, az eredményt tárolja az
AKKU1-L-ben.
+ 25 //25-öt ad az AKKU1-L-hez, és tárolja az AKKU1-L-ben.
T DB1.DBW25 // Az AKKU1 tartalma átmásolódik a DB1 DBD25-ös szóba..
STL Magyarázat
L IW12
L IW14
+ 100 //Összeadja az AKKU1-L-t és a 100-at, az eredményt tárolja az AKKU1-L-
ben.
>I //Ha AKKU 2 > AKKU 1 ill. IW 12 > (IW14 + 100),
SPB NEXT //akkor ugrás a NEXT címkére.
Formátum
L <operandus>
Működés
Az L <Operandus> utasítás betölti a címzett bájt, szó vagy duplaszó tartalmát az AKKU1-
be. A töltés előtt a korábbi tartalom átkerül az AKKU2-be.
Státuszszó
Példa
STL Erläuterung
L IB10 //az IB10 betöltése az AKKU1-L-L-be.
L MB120 //az MB120 tartalmának betöltése az AKKU1-L-L-be.
L LD252 //az LD252 lokális adat betöltése az AKKU 1-be.
L P# I 8.7 //mutató (pointer) töltése az AKKU1-be
L P# ANNA //betölti a megnevezett (ANNA) paraméterre mutató mutatót (pointer) az
AKKU1-be (ez az utasítás betölti a megnevezett paraméter címeltolását.
Ha a multiinstant-FB-ben az instant adatmodul tényleges címét akarják
megkapni, akkor ehhez az értékhez hozzá kell adni az AR2
címzőregiszterben lévő értéket).
Formátum
T <Operandus>
Működés
A T <Operandus> utasítás az AKKU1 tartalmát viszi (másolja) át a paraméterben
megadott címre. Az AKKU1-ből másolandó bájtmennyiség attól függ, hogy mekkora méret
(bájtmennyiség) van megadva a célcímben. Az AKKU 1 az adatokat az átviteli folyamat
után is tárolja. Ha az átvitel közvetlenül a kimenetre megy, akkor az átvitt érték a kimeneti
folyamati tárképben is megjelenik. A müvelet nem befolyásolja és nem veszi figyelembe a
RLO-t.
Státuszszó
Példa
STL Magyarázat
T QB10 //az AKKU1-L-L tartalma kerül az QB10-be.
T MW14 // az AKKU1-L-L tartalma kerül az MW14-be.
T DBD2 // az AKKU1-L-L tartalma kerül a DBD2-be.
Formátum
BE
Működés
A BE utasítás lezárja a program futását az adott programmodulban, és visszaugrik arra a
modulra, amely ezt hívta. A program futását a hívási utasítás utáni első utasításon
folytatja. A lezárt modul lokális adatterületét felszabadítja, és a hívó modul lokális
adatterülete lesz aktuális. Ha volt adatmodul megnyítva a hívás pillanatában, az újra
aktuálissá válik. A RLO az aktuális programmodulból átkerül a hívó modulba. A BE
utasítás nem függ semmiféle feltételtől. Ha a program a BE utasítás átugorja, akkor a
végrehajtás az adott modulban folytatódik.
A BE utasítás hatása kis mértékben eltér az S5-ös rendszerben betöltött szerepétől: az S7-
es rendszerben a BE hatása teljesen megegyezik a jelenlegi és korábbi BEU utasítás
szerepével.
Státuszszó
Példa
STL Magyarázat
A I 1.0
JC NEXT //a NEXT címkére ugrik, ha a RLO = 1 (I 1.0 = 1).
L IW4 //itt folytatódik, ha az ugrás nem hajtódik végre.
T IW10
A I 6.0
A I 6.1
S M 12.0
BE //modulvége.
NEXT: NOP 0 // itt folytatódik, ha az ugrás végrehajtódik.
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ó
Példa
STL Magyarázat
A I 1.0 //Ha az I1.0 = 1, akkor a program befejeződik.
BEC //Ha az I1.0 = 0, akkor a BEB nem hajtódik végre.
L IW4 //és a program ennél az utasításnál folytatatódik).
T MW10
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ó
Példa
STL Magyarázat
A I 1.0 Ha az I1.0 = 1
JC NEXT //akkor a NEXT
L IW4 //ha az I1.0 = 0, akkor a program itt folytatódik.
T IW10
A I 6.0
A I 6.1
S M 12.0
BEU //Feltétel nélküli modulvége.
NEXT: NOP 0 //ha az ugrás végrehajtódott, akkor itt folytatódik a progr.
Formátum
CALL <a kódmodul neve>
Működés
A CALL utasítás függvények (FC) funkciómodulok (FB) ill. a Siemens által szolgáltatott
rendszerfüggvények (SFC, SFB) hívására szolgálnak. A CALL művelet azt az FC-t, SFC-t,
FB-t vagy SFB-t hívja, amit az utasítás paraméterében megadtak. A hívás a RLO-tól ill.
minden más feltételtől függetlenül történik. Ha FB-t vagy SFB-t hívnak, akkor a hívásban a
függvényeket Instant-DB-vel kell ellátni. A hívás után a hívott függvény kerül végrehajtásra,
majd folytatódik a hívó program feldolgozása. A hívott kódmodult meg lehet adni aszolút
vagy szimbólikus címzéssel. Az SFB-/SFC-hívás után a regiszterek tartalmát az operációs
rendszer visszaállítja.
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.
Státuszszó
CALL FC6
c Formális paraméter Aktuális paraméter
NO OF TOOL := MW100
TIME OUT := MW110
FOUND := Q 0.1
ERROR := Q 100.0
CALL FB99,DB16
Formális paraméter Aktuális paraméter
MAX_RPM := #RPM1_MAX
MIN_RPM := #RPM1
MAX_POWER := #POWER1
MAX_TEMP := #TEMP1
CALL FB99,DB2
Formális paraméter Aktuális paraméter
MAX_RPM := #RPM2_MAX
MIN_RPM := #RPM2
MAX_POWER := #POWER2
MAX_TEMP := #TEMP2
Megjegyzés
Minden FB- ill. SFB-híváshoz meg kell adni egy un. Instant-DB-t a fenti példában
látható módon.
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.
Státuszszó
CALL FB99,DB16
Formális paraméter Aktuális paraméter
MAX_RPM := #RPM1_MAX
MIN_RPM := #RPM1
MAX_POWER := #POWER1
MAX_TEMP := #TEMP1
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.
CALL FC6
Formalparameter Aktualparameter
NO OF TOOL := MW100
TIME OUT := MW110
FOUND := Q 0.1
ERROR := Q 100.0
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.
Státuszszó
Példa
CALL SFB4,DB4
Formalparameter Aktualparameter
IN: I0.1
PT: T#20s
Q: M0.0
ET: MW10
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.
Státuszszó
STL Magyarázat
CALL SFC43 //az SFC43 hívása a ciklusfigyelési idő újraindítására (paraméter
nélkül).
Formátum
CC <a kódmodul címe>
Működés
A CC utasítás hívja a megadott című programmodult, ha a RLO = 1. A hívott modul
paraméter nélküli FC vagy FB lehet. A CC utasítás hasonlít a CALL utasításhoz azzal a
ülönbséggel, hogy ennél paraméterátadás nem lehetséges. A CC utasítás a B-Stack-ben
tárolja a visszatérési címet, a két megnyitott adatmodul címét valamint az MA-bitet. Ezen
túlmenően létrehozza a hívandó programmodul TEMP (Lokal-Stack) adatterületét. A hívott
kódmodult meg lehet adni aszolút vagy szimbólikus címzéssel.
Státuszszó
Példa
STL Magyarázat
A I 2.0 //Az I2.0 bemenet jelállapotának lekérdezése.
CC FC6 //Hívja az FC6-ot ha az I 2.0 = 1.
A M 3.0 //Ez az utasítás hajtódik végre, ha az I2.0=1 –nél a hívott függvény (FC6)
befejeződik, vagy ha az I 2.0 = 0 –nél az FC6 nem hajtódik végre.
Megjegyzés
Ha a CC-vel vagy UC-vel hívott programmodul FB, akkor nem lehet és nem is kell
a hívásban DB-t megadni. A CC- ill. UC hívás nem tud paraméterátadást
végrehajtani.
Formátum
UC < a kódmodul címe >
Működés
Az UC utasítás hívja a megadott című programmodult, függetlenül RLO -től. A hívott
modul paraméter nélküli FC vagy FB ill. SFC, SFB lehet. Az UC utasítás hasonlít a CALL
utasításhoz azzal a ülönbséggel, hogy ennél paraméterátadás nem lehetséges. A CC
utasítás a B-Stack-ben tárolja a visszatérési címet, a két megnyitott adatmodul címét
valamint az MA-bitet. Ezen túlmenően létrehozza a hívandó programmodul TEMP (Lokal-
Stack) adatterületét. A hívott kódmodult meg lehet adni aszolút vagy szimbólikus
címzéssel.
Státuszszó
1.Példa
STL Magyarázat
UC FC6 //az FC6 hívása (paraméterek nélkül).
2.Példa
STL Magyarázat
UC SFC43 // az SFC43 hívása (paraméterek nélkül).
Megjegyzés
Ha a CC-vel vagy UC-vel hívott programmodul FB, akkor nem lehet és nem is kell
a hívásban DB-t megadni. A CC- ill. UC hívás nem tud paraméterátadást
végrehajtani.
Formátum
SLW
SLW <bitszám>
Működés
Az SLW utasítás az AKKU1-L tartalmát tolja bitenként balra. Azokba a bitekbe, amely az
eltolás miatt megüresednek, nullák kerülnek. Az utoljára eltolt bit a státuszregiszter A1
bitjébe kerül. Az eltolandó bithelyek számát vagy az operandus (paraméter), vagy az
AKKU2-L-L tartalmazza.
SLW <bitszám>: az eltolandó bithelyek számát a <bitszám> Operandus tartalmazza.
Megengedett a 0...15-ös tartomány. Az A0, és OV státuszbiteket az operációs rendszer 0-
ra állítja, ha a <bitszám> paraméter nullánál nagyobb. Ha a <bitszám> nulla, akkor a
művelet megfelel egy NOP műveletnek.
SLW: Az eltolandó bitek számát az AKKU2-L-L –ben lévő érték adja meg. A
megengedett értéktartomány 0 ... 255. Ha az eltolási szám nagyobb mint 16, akkor az
eredmény mindig ugyanaz: AKKU1-L = 0, A1 = 0, A0 = 0, OV = 0. Ha 0 < eltolási szám <=
16, akkor az A0 és OV státuszbitek "0" –ra állítódnak vissza. Ha az eltolási szám nulla,
akkor a művelet megfelel egy NOP műveletnek.
Státuszszó
STL magyarázat
L MW4 //az érték betöltése az AKKU 1-be.
SLW 5 //a bitek eltolása az AKKU 1-ben öt hellyel balra.
T MW8 //az eredmény átvitele az MW8-ba.
STL magyarázat
L 3 // +3 betöltése az AKKU 1-be.
L MW20 //az MW20 tartalmának betöltése az AKKU1-be, egyidejüleg a korábbi érték
áttolása az AKKU2-be
SLW //az eltolási érték az AKKU2-L-L tartalma. Lásd az első utasítást
SPP NEXT //Ugrik a NEXT cimkére, ha a legutoljára eltolt bit (A1) = 1.
Formátum
SRW
SRW < bitszám >
Működés
Az SRW utasítás az AKKU1-L tartalmát tolja bitenként jobbra. Azokba a bitekbe, amely az
eltolás miatt megüresednek, nullák kerülnek. Az utoljára eltolt bit a státuszregiszter A1
bitjébe kerül. Az eltolandó bithelyek számát vagy az operandus (paraméter), vagy az
AKKU2-L-L tartalmazza.
SRW <bitszám>: az eltolandó bithelyek számát a <bitszám> Operandus tartalmazza.
Megengedett a 0...15-ös tartomány. Az A0, és OV státuszbiteket az operációs rendszer 0-
ra állítja, ha a <bitszám> paraméter nullánál nagyobb. Ha a <bitszám> nulla, akkor a
művelet megfelel egy NOP műveletnek.
SRW: Az eltolandó bitek számát az AKKU2-L-L –ben lévő érték adja meg. A
megengedett értéktartomány 0 ... 255. Ha az eltolási szám nagyobb mint 16, akkor az
eredmény mindig ugyanaz: AKKU1-L = 0, A1 = 0, A0 = 0, OV = 0. Ha 0 < eltolási szám <=
16, akkor az A0 és OV státuszbitek "0" –ra állítódnak vissza. Ha az eltolási szám nulla,
akkor a művelet megfelel egy NOP műveletnek
Státuszszó
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);
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.
1 2 7
I 0.0
Q 4.0 SI
Q 4.0 SE
Q 4.0 SD
Q 4.0 SS
Q 4.0 SF
Időművelet Ismertetése
SI Ha az indítójel az I0.0-án „1“ , akkor az Q4.0 kimenőjel
Impulzusképzés bekapcsol a megadott t időtartamra
SE A kimenet „1“-es jelszinten marad a programozott ideig
Meghosszabbított függetlenül attól, hogy az indítójel mennyi ideig van jelen a
impulzus bemeneten.
SD A kimenőjel csak akkor „1“, ha a beállított idő lefutott, és a
Bekapcsoláskésleltetés bemeneten a jelszint még mindig „1“.
SS A kimenőjel akkor „1“, ha a beállított idő lefutott, és
Tároló függetlenül attól, hogy a bemenőjel meddig volt „1“.
bekapcsoláskésleltetés
SF A beállított idő mérése akkor történik, amikor a bemenőjel
Kikapcsoláskésleltetés „1“-ről „0“-ra vált. A kimenőjel akkor „1“, ha a bemenőjel „1“
vagy fut az időmérés.
Formátum
FR <időművelet száma>
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ó
STL Magyarázat
A I 2.0
FR T1 //(újra) engedélyezi a T1 időt.
A I 2.1
L S5T#10s //betölti az idő értékét az AKKU_1-be.
SI T1 //Elindítja a T1 időműveletet impulzusként.
A I 2.2
R T1 //Megállítja a T1 időt.
A T1 //Lekérdezi a T1 idő állapotát.
= Q 4.0
L T1 //A T1 aktuális értékét bináris számként betölti az akkumulátorba.
T MW10
1 2 3
RLO az engedélyező
bemeneten I 2.0
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.
Formátum
L <időművelet>
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ó
STL Magyarázat
L T1 // betölti időalap nélkül az aktuális (végrehajtandó) időértéket a
megcímzett időszóból egészszámként az AKKU1-L-be.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
A T1-es 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
időművelet
időszava a
tárban
Időalap Időérték (0 ... 999) bináris kódban
00 = 10 ms
01 = 100 ms
10 = 1 s L T1
11 = 10 s
Az AKKU-1-L
tartalma az
utasítás után
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
Megjegyzés
Az L<időművelet> az aktuális időértéket az időalap nélkül tölti az AKKU1-L-be
bináris kódban. A betöltött időérték az eredetileg megadott időérték és a már eltelt
idő különbsége.
Formátum
LC <időművelet>
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ó
STL Erläuterung
LC T1 // betölti időalappal együtt az aktuális (végrehajtandó) időértéket a
megcímzett időszóból BCD-számként az AKKU1-L-be.
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
A T1-es
időművelet
időszava a
tárban Időalap Időérték (0 ... 999) BCD kódban
00 = 10 ms
01 = 100 ms
10 = 1 s LC T1
11 = 10 s
Az AKKU-1-L
tartalma az 0 0 0 0
utasítás után
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
(LC T1)
Időalap 102 Százas 101 Tizes 100 Egyes
00 = 10 ms
01 = 100 ms
10 = 1 s
11 = 10 s Időérték BCD-formátumban
Formátum
R <időművelet>
Működés
Az R <időművelet> befejezi az aktuális időműveletet és törli a címben megadott időszó
időértékét és időalapját, amikor az R bemeneten a RLO „0“-ról „1“-re vált.
Ha az időt nem is indítják el, az AKKU1-L-ben valamilyen számnak BCD-formátumban kell
állni.
Státuszszó
Példa
STL Erläuterung
A I 2.1 //Lekérdezi az I 2.1-es bemenet jelállapotát
R T1 //Ha a RLO „0“-ról „1“-re vált, törli a T1-es időt.
Formátum
SI <időművelet>
Működés
Az SI <időművelet> utasítás elindítja a megcímzett időműveletet , ha az utasítás előtt a
RLO „0“-ról „1“-re vált. A programozott idő mindaddig fut, amig a RLO „1“. Ha a RLO „0“
lesz mielőtt az idő lefutott volna, akkor az idő visszaszámlálása megáll. A művelet
végrehajtásakor az AKKU1-L-ben az időértéknek és az időalapnak BCD-formátumban
jelen kell lenni.
Ha az időt nem is indítják el, az AKKU1-L-ben valamilyen számnak BCD-formátumban kell
állni.
Státuszszó
STL Magyarázat
A I 2.0
FR T1 //Engedélyezi a T1 időművelet újraindítását.
A I 2.1
L S5T#10s //Beállít 10 másodperces időt az AKKU 1 -ben.
SI T1 //A T1 időművelet indítása impulzusképző funkcióval.
A I 2.2
R T1 //Törli a T1 időműveletet.
A T1 //Kérdés a T1 időművelet jelállapotára.
= Q 4.0
L T1 //A T1 időművelet aktuális értékének betöltése az AKKU1-L-be bináris
számként.
T MW10
LC T1 // A T1 időművelet aktuális értékének betöltése az AKKU1-L-be BCD
számként.
T MW12
Engedélyezés I 2.0
Indítás I 2.1
Törlés I 2.2
Az idő
t
Kimenet Q 4.0
Az idő töltése: L, LC
t = a programozott időtartam
Formátum
SE <időművelet>
Működés
Az SE <időművelet> utasítás elindítja a megcímzett időműveletet , ha az utasítás előtt a
RLO „0“-ról „1“-re vált. A programozott idő lefut akkor is, ha az utasítás előtt a RLO „0“-ra
vált, mielőtt az idő letelt volna. Ha a programozott idő lefutása előtt az utasítás előtt a RLO
ismét „0“-ról „1“-re vált, akkor az idő újraindul. Az utasítás végrehajtása előtt az AKKU1-L-
nek tartalmaznia kell az időértéket és az időalapot BCD-formátumban.
Ha az időt nem is indítják el, az AKKU1-L-ben valamilyen számnak BCD-formátumban kell
állni.
Státuszszó
STL Magyarázat
A I 2.0
FR T1 // Engedélyezi a T1 időművelet újraindítását.
A I 2.1
L S5T#10s // Beállít 10 másodperces időt az AKKU 1 -ben.
SE T1 // A T1 időművelet indítása meghosszabbított impulzusképző funkcióval.
A I 2.2
R T1 //Törli a T1 időműveletet.
A T1 //Kérdés a T1 időművelet jelállapotára.
= Q 4.0
L T1 //A T1 időművelet aktuális értékének betöltése az AKKU1-L-be bináris
számként.
T MW10
LC T1 // A T1 időművelet aktuális értékének betöltése az AKKU1-L-be BCD
számként.
T MW12
Engedélyezés I 2.0
Indítás I 2.1
Törlés I 2.2
Az idő
t
Kimenet
Q 4.0
Az idő töltése: L, LC
t = a programozott időtartam
Format
SD <időművelet>
Működés
Státuszszó
STL Erläuterung
A I 2.0
FR T1 // Engedélyezi a T1 időművelet újraindítását.
A I 2.1
L S5T#10s // Beállít 10 másodperces időt az AKKU 1 -ben.
SD T1 // A T1 időművelet indítása meghosszabbított impulzusképző funkcióval.
A I 2.2
R T1 //Törli a T1 időműveletet.
A T1 //Kérdés a T1 időművelet jelállapotára.
= Q 4.0
L T1 //A T1 időművelet aktuális értékének betöltése az AKKU1-L-be bináris
számként.
T MW10
LC T1 // A T1 időművelet aktuális értékének betöltése az AKKU1-L-be BCD
számként.
T MW12
Engedélyezés I 2.0
Indítás I 2.1
Törlés I 2.2
Az idő
t t
Kimenet
Q 4.0
Az idő töltése: L, LC
t = programozott időtartam
Formátum
SS <időművelet>
Működés
Az SS <időművelet> utasítás elindítja a megcímzett időműveletet , ha az utasítás előtt a
RLO „0“-ról „1“-re vált. A programozott idő lefut akkor is, ha az utasítás előtt a RLO „0“-ra
vált, mielőtt az idő letelt volna. Ha a programozott idő lefutása előtt az utasítás előtt a RLO
ismét „0“-ról „1“-re vált, akkor az idő újraindul. Az utasítás végrehajtása előtt az AKKU1-L-
nek tartalmaznia kell az időértéket és az időalapot BCD-formátumban.
Ha az időt nem is indítják el, az AKKU1-L-ben valamilyen számnak BCD-formátumban kell
állni.
Státuszszó
STL Magyarázat
A I 2.0
FR T1 // Engedélyezi a T1 időművelet újraindítását.
A I 2.1
L S5T#10s // Beállít 10 másodperces időt az AKKU 1 -ben.
SS T1 // A T1 időművelet indítása meghosszabbított impulzusképző funkcióval.
A I 2.2
R T1 //Törli a T1 időműveletet.
A T1 //Kérdés a T1 időművelet jelállapotára.
= Q 4.0
L T1 //A T1 időművelet aktuális értékének betöltése az AKKU1-L-be bináris
számként.
T MW10
LC T1 // A T1 időművelet aktuális értékének betöltése az AKKU1-L-be BCD
számként.
T MW12
I 2.0
Engedélyezés
I 2.1
Indítás
I 2.2
Törlés
Az idő t
Q 4.0
Kimenet
Az idő töltése: L, LC
t = programozott időtartam
Működés
Az SF <időművelet> utasítás elindítja a megcímzett időműveletet , ha az utasítás előtt a
RLO „1“-ről „0“-ra vált. A programozott idő lefut, ha az utasítás előtt a RLO „0“. Ha a
programozott idő lefutása még nem fejeződött be, és az SF utasítás előtt a RLO ismét „0“-
ról „1“-re vált, akkor az idő visszaszámlálása megáll. Az utasítás végrehajtása előtt az
AKKU1-L-nek tartalmaznia kell az időértéket és az időalapot BCD-formátumban.
Ha az időt nem is indítják el, az AKKU1-L-ben valamilyen számnak BCD-formátumban kell
állni.
Státuszszó
STL Magyarázat
A I 2.0
FR T1 // Engedélyezi a T1 időművelet újraindítását.
A I 2.1
L S5T#10s // Beállít 10 másodperces időt az AKKU 1 -ben.
SF T1 // A T1 időművelet indítása meghosszabbított impulzusképző funkcióval.
A I 2.2
R T1 //Törli a T1 időműveletet.
A T1 //Kérdés a T1 időművelet jelállapotára.
= Q 4.0
L T1 //A T1 időművelet aktuális értékének betöltése az AKKU1-L-be bináris
számként.
T MW10
LC T1 // A T1 időművelet aktuális értékének betöltése az AKKU1-L-be BCD
számként.
T MW12
Engedélyezés I 2.0
Indítás I 2.1
Törlés I 2.2
Az idő t t
Kimenet A 4.0
Az idő töltése: L, LC
t = programozott időtartam
Formátum
DEC <egészszám, 8 Bit>
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ó
Példa
STL Magyarázat
L MB250 //Az MB250 értékének betöltése az AKKU-1-be.
DEC 1 //Az AKKU1-L-L dekrementálása 1-gyel,az eredményt tárolja az AKKU1-L-L-ben.
T MB250 //Az AKKU1-L- L tartalmának (eredmény) visszahelyezése az MB250-be.
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ó
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ó