SIMATIC STEP 7 Magasabb szintű műveletek (STL) Magasabb szintű utasítások részleges ismertetése STL (utasításlista) programozás esetére (angol, vagy német rövidítésekkel). 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. 2010. STEP 7, magasabb szintű STL műveletek
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 SIMATIC internetoldal címe: www.siemens.com/simatic Információ-kérés magyar nyelven:
[email protected]
STEP 7, magasabb szintű STL műveletek
2
Tartalomjegyzék 1. 2. 3. 4.
Hurok programozása Indirekt címzés Többszörös elágazás (case) Akkumulátorműveletek
STEP 7, magasabb szintű STL műveletek
3
A STEP7 magasabb szintű műveletei A STEP7, mint ezt már korábban írtuk, lényegében „gépi kód”, vagy másként fogalmazva assembly-színtű programnyelv (ami nem ugyanaz,de.....). A számítástechnikával és a számítógépek programozásával korábban ismeretséget kötő, ma már ritkábban előforduló, szakemberek számára ez részben fogalom, részben magától értetődik. Az assembly-nyelvek esetében a magasabb szint „contradictio in adjectu” lenne, ha nem keveredtek volna a fogalmak és a célok az utóbbi évtizedekben, és ha a PLC nem képezne egy sajátságos területet a számítástechnika és a mikroszámítógépek területén. Bevezetésként talán ennyi elég................... A STEP5 kevés, és igen egyéni (indirekt címzés), a STEP7 kiscsit több, és a számítástechnika más területeihez jobban illeszkedő, magasabb szintű műveletet tartalmaz. Ezeket ismertetjük a következőkben magyar nyelven, mert egyébként különböző idegen nyelveken a Siemens AG megfelelő honlapjain a teljes gépkönyv-készlet hozzáférhető. A magasabb szintű műveletek: -
Hurok programozása Indirekt címzés Többszörös elágazás (case) Regiszterműveletek
STEP 7, magasabb szintű STL műveletek
4
1.
Hurok programozása
Ha a programban ugyanabban a ciklusban egy műveletet vagy műveletsort többször kell végrehajtani, akkor hurkot programoznak, amelynek a magasabb szintű nyelveken meg van a maga struktúrája (pl. FOR – NEXT). A STEP7 ilyen eljárást nem tartalmaz, de rendelkezik egy viszonylag egyszerű makroprogrammal, ami mégis megkönnyíti a hurok létrehozását. Egyetlen kulcsszót kell hozzá ismerni, és a hozzá tartozó programszerkezetet. A kulcsszó:
LOOP
(hurok)
A huroknak azt kell biztosítani, hogy a program végrehajtása egy bizonyos helyen annyiszor forduljon vissza, és fusson le azon a kis szakaszon még egyszer, ahányszor a feladat végrehajtása szükséges. Azt a címet, amelyen számon tartjuk, hogy a hurok hányszor hajtódott vére, hurokszámlálónak nevezik.
A fenti struktogramban kettős kerettel jelölt műveleteket a LOOP makroutasítás tartalmazza, a többit a programozónak kell megadni. A következő példán követhető a hurok programozása és működése. A feladat legyen egy szorzás, de úgy hogy összeadásokból kell létrehozni, vagyis a szorzandót annyiszor kell hozzáadni saját magához, amennyi a szorzó értéke.
STEP 7, magasabb szintű STL műveletek
5
Feladat:
5x4
L T T L VISZ : T
4 MW42 MW44 5 MW40
//szorzandó //betöltése //eredménytároló //hurokszámláló //betöltése
L L +I T
MW42 MW44
//eredmény + szorzandó
MW44
//eredmény tárolása
L MW40 LOOP VISZ
//hurokszámláló ellenőrzése //visszaugrás, ha a hurokszámláló nem nulla
L T
//az eredmény kijelzése
MW44 QW6
STEP 7, magasabb szintű STL műveletek
6
2.
Indirekt
címzés
A PLC programozása során az egyik legfontosabb kulcsszó a CÍM. Bemeneteket, kimeneteket eszközöket, függvényeket stb. címeken keresztül lehet elérni. Ezek fizikailag általában nem láthatók, meg nem foghatók, ha azonban valamilyen oknál fogva eltévesztik őket, nagy kárt, de legalábbis programhibát okozhatnak. A PLC-ben abszolút, szimbolikus ill. indirekt címzésről beszélünk (a „cím” szó persze sok egyéb összefüggésben is előfordul), amiből most a szimbolikus címzést elhagyhatjuk, mivel az lényegében az abszolút címzés másik neve, azaz a szimbolikus cím is egy abszolút címet takar (I2.2 = „bekapcs””) legalábbis a globális szimbólumok esetében, a PLC működését nem érinti, a futó program nem is tartalmazza. Az abszolút cím a számítástechnikában a tárnak, a perifériának egy eszköznek stb. számmal megadott helye, elérési pontja. Ezt a számot a számítástechnika sajátságos rendszere szerint általában hexadecimális formátumban szokták megadni (pl. FF00H vagy a STEP7-ben W#16#140 stb.). A STEP5-ben még a programozó is használhatta a hexadecimális abszolút címeket, a STEP7 különböző célszerűségi okoknál fogva ezt már nem teszi lehetővé, és ez jobb is így. Ennek ellenére már a STEP5-ben is elterjedt, hogy nem a hexadecimális címet nevezték abszolút címnek (mivel leggyakrabban azt nem is használták), hanem a PLC egyes jellemző tárterületeinek azt a címzési módját, amikor az utasítás címrészében egy kód a terület fajtáját, egy szám pedig az azon belüli (lényegében) relatív címet jelölte. Pl. A F12.3 (U M12.3), azaz a belső változók területén (Merker németül, Flag angolul) a 13. bájt 4. bitje, vagy másként a 12-es bájt 3-as bitje. Ez azután a STEP7-ben is megmaradt, annál is inkább, mert ott a tényleges abszolút címzésre nincs lehetőség. Egy utasítással összekapcsolva az abszolút címzés tehát pl. a következő:
A
I
12.1 abszolút cím: 12-es bájt, 1-es bit memóriaterület: bemenet az utasítás kódja: ÉS
A fenti utasítás azt mondja meg, hogy milyen műveletet (operation) kell végrehajtani az operandusban megadott címen lévő értékkel. Az utasítás tehát közvetlenül tartalmazza a címet, ezért ezt direkt címzésnek nevezik. A címet más módon is meg lehet adni, mégpedig indirekt módon, tehát úgy, hogy az utasításban nem az elérendő cím közvetlenül, hanem ez olyan cím található, amely arra a helyre mutat, ahol a közvetlen cím van. Ennek a címzési módnak az a nagy előnye, hogy az így kapott cím futás közben módosítható. A PLCben nincs olyan utasítás, amellyel az A I 12.1 utasításban lévő direkt (közvetlen) cím futás közben módosítható. Sem a területet, sem a címet nem lehet megváltoztatni. A közvetett címzés lehetővé teszi e két jellemző futás közbeni módosítását. A közvetett címzés általános szintaxisa a következő: utasítás
[ mutató ]
A mutató arra az indirekt címre mutat, amely tartalmazza az elérni kívánt (direkt) címet. A szögletes zárójel mint általában a számítástechnikában azt jelzi, hogy az operandus nem a zárójelben lévő cím, hanem annak tartalma. Ez azért is fontos, mert címet módosítani futás közben nem lehet de tartalmat igen. Márpedig, ha a mutató (pointer) tartalmát módosítani lehet, és a tartalom cím, akkor a címet tudom futás közben módosítani. Mire terjed ki ez a módosítási lehetőség, vagyis mit lehet a STEP7-ben indirekten címezni. Lényegében mindent: I bemenet Q kimenet M belső változó DBW adatcím DBx adatmodul cím FC/FB függvénycím STEP 7, magasabb szintű STL műveletek
7
T C
időművelet címe számláló címe …..............stb.
A mutató formátuma, és a mutatót tartalmazó terület Az előbbi felsorolás felvet néhány kérdést: a megadott területek címtartománya és címzési módja igen különböző. Ez természetesen különböző pointer-formátumokat és méreteket jelent. A pointer elhelyezése is többféle lehet, valamint hatásterülete szempontjából is többféle lehetőség van. -
-
A mutató mérete: alapvetően két méret lehetséges WORD és DWORD Ez attól függ, hogy mekkorának kell lenni a címzési tartománynak. Az időműveletek pl. bizonyosan nem lépik túl a 65535, és címeik egészszámok, míg a bemenetek kimenetek bájt és bitcímet is tartalmaznak, és címtartományuk is sokkal nagyobb. WORD méretű mutató szükséges:
DB/FC/FB-címnél Időművelet címénél Számláló címénél
Példa:
AKKU-1 töltése 12-vel AKKU-1 átvitele az MW24-be Az MW24-ben lévő tartalom által címzett DB megnyitása: OPN DB12
L 12 T MW24 OPN DB[ MW24]
DWORD méretű mutató szükséges:
P/I/Q/M/D/L címzéséhez
A pointer formátuma:
A DB/FC/FB/T/C esetében a pointer egy egészszám P/I/Q/M/D/L esetében az első három bit a változó bitcíme 0...7) a 4-es bittől kezdve a 18-asig a változó bájtcíme
-
A pointer elhelyezése: A pointer elhelyezése szempontjából beszélhetünk táron keresztüli ill. címző regiszteren keresztüli indirekt címzésről. Az első eseten a mutató (pointer) a tár valamely területén, a második esetben az AR1 vagy AR2 címzőregiszterben található. A tár valamely területe vagy belső változó (MD...) vagy adatmodul (DBD...) lehet. A két különböző lehetőség különféle előnyökkel jár. A táron keresztüli egyszerűbben érthető, a regiszteren keresztüli áttekinthetőbb, rövidebb és főleg a címek manipulálásánál célszerűbb, mert a két címzőregiszter különféle műveleteket tesz lehetővé.
-
A pointer hatásterülete: Ez a tulajdonság arra vonatkozik, hogy a mutató a program szövegében megadott egyetlen tárterületre mutathat (P/I/Q/M/L) vagy un. területen (tartományon) átnyúló címzést tesz lehetővé. A tartományon átnyúló címzéssel gyakorlatilag a teljes bemeneti/kimeneti és adatterület egy utasításban indexelhető (elérhető).
STEP 7, magasabb szintű STL műveletek
8
A fenti fogalmak alkalmazása a gyakorlatban • L 12
WORD méretű mutató AKKU-1 töltése 12-vel AKKU-1 átvitele az MW24-be Az MW24-ben lévő tartalom által címzett DB megnyitása: OPN DB12
T MW24 OPN DB[ MW24]
vagy L T A •
8 DBW 22 T [DBW22]
AKKU-1 töltése 8-cal AKKU-1 átvitele a DBW22-be A DBW22-ben lévő tartalom által címzett időművelet állapotának lekérdezése (T8)
DWORD méretű mutató/ indirekt címzés táron keresztül (bájt töltése) L SLD T L
2 3 MD34 IB [MD34]
AKKU-1 töltése 2-vel Az AKKU-1 tartalmának eltolása három bittel balra, hogy az a pointer bájt-pozíciójába jusson a kész pointer áttöltése az index-regiszterbe (indirekt címzés táron keresztül) Az MD34-ben lévő tartalom által címzett bemeneti bájt beolvasása az AKKU1-be: L IB2
Az MD34 képe:
•
DWORD méretű mutató/indirekt címzés táron keresztül (bit olvasása) L SLD L +I T A
4 3 3 MD48 I [MD48]
AKKU-1 töltése 4-gyel Az AKKU-1 tartalmának eltolása három bittel balra, hogy az a pointer bájt-pozíciójába jusson AKKU-1 töltése 3-mal AKKU-1 összeadása az AKKU-2-vel: bitpozíció töltése a kész pointer áttöltése az index-regiszterbe (indirekt címzés táron keresztül) Az MD48-ban lévő tartalom által címzett bemeneti bit olvasása : A I4.3
STEP 7, magasabb szintű STL műveletek
9
•
DWORD méretű mutató/indirekt címzés táron keresztül, mutató típusú változó töltése (bit olvasása) Az előző példákban a STEP7 által elvárt mutató-formátumot bit-manipulációval hozták létre (SLW stb.). A mutató-szerű bitelrendezés azonban történhet úgy is, hogy az indexregiszterbe – így nevezik azt a tárterületet, ahol az indirekt cím található – eleve egy pointer típusú változót töltenek. Ennek jele a P#. Ez azt üzeni a fordítóprogramnak, hogy a következő címet mutató-formátumban kell az AKKU-1-be tölteni. Így szükségtelenné válik a bitek manipulációja. Az
L P#8.7
utasítás hatására, az akkumulátor azonnal pointer-formátumban töltődik
A pointer másik előnye, hogy aritmetikai műveleteket lehet rajta végrehajtani, pl. másik pointer hozzáadása vagy kivonása, ami adatfeldolgozási feladatoknál nagy előnyt jelent (léptetés egy lista elemein). Az aritmetikai művelet során az összeadás/kivonás „bit-helyesen” történik, azaz pl. az P#M12.1 és a P#M4.5 összeadásából P#M16.6 adódik. •
Regiszteren (AR1, AR2) keresztüli indirekt címzés tartományon belül Fentebb már említésre került, hogy azt a területet, ahol az indirekt (tehát a direkt címre mutató) címet elhelyezik, indexregiszternek nevezik, és attól függően hogy ez a tárterületen (M vagy D) vagy egy külön erre a célra kijelölt processzor-regiszterben van, beszélhetünk táron keresztüli ill. regiszteren keresztüli címzésről. Az előbbiekben minden esetben táron keresztüli indirekt címzést mutattunk be. A következőkben az un. címzőregiszteren keresztüli címzés és annak előnyei láthatók. Az S7-300 és S7-400-as PLC-k két címzőregiszterrel rendelkeznek: AR1, AR2 (Adressreguster 1. Adressreguster 2.). A két regiszter, amint nevük mutatja címzésre, mégpedig indirekt címzésre szolgálnak, méretük 32 bit. A címzőregiszterek feladata a pointerek (mutatók) befogadása, amelyek hasonlóak az előb látott mutatókhoz, most azonban kiegészülnek egy újabb tulajdonsággal: az általuk lehetővé váló indirekt címzés lehet tartományon belüli vagy tartományon átnyúló. A tartomány a PLC sajátságos tárfelosztását veszi figyelembe, vagyis, hogy a változók teljes területe a felhasználási céloknak megfelelően több részre tagozódik: közvetlen periféria, bemeneti tárkép, kimeneti tárkép, belső változók, lokális veremtár. A címzés egyik, eddig ismertetett módján csak a kiválasztott tárterületen belül lehet mozogni, míg a másik esetben az egyik területről át lehet lépni a másikra. A regiszteren keresztüli indirekt címzésnél az utasítás operandusa ugyanúgy egy címre mutat, amelyen megtalálható az elérni kívánt direkt cím. Ez a mutató azonban most nem a PLC bizonyos tárterületén (M vagy DB), hanem egy regiszterben az AR1 vagy AR2-es címzőregiszterben van kiegészülve egy további mutatóval, amely, ha szükséges egy un. állandó eltolást (offset) tesz lehetővé. A kialakuló indirekt cím e két mutató összegéből adódik.
STEP 7, magasabb szintű STL műveletek
10
Az utasítás szintaxisa a következő: LAR1 A
P#8.1 I [AR1, P#1.1]
az AR1-es címzőregiszter töltése a P#8.1 mutatóval egy bemeneti bit olvasása, amelynek címe az AR1-es címzőregiszterben lévő címtől 10 bittel tovább van (P#1.1 = 10 bit) . A cím tehát a címzőregiszter tartalma + 10 bit (P#8.1 + P#1.1)
A fenti utasítással, bármilyen cím is kerül az AR1 regiszterbe, csak bemeneteket lehet lekérdezni. Ez már abból is látszik, hogy a bemenet kódja, az „I” az szögletes zárójelen kívül van, így futás közben nem változtatható. A fordító program azonban ezt nem ebből a tényből állapítja meg, hanem a 31-es bit „0” állapotából. Ez ugyanis azt jelenti: tartományon belüli címzés.
•
Regiszteren (AR1, AR2) keresztüli tartományon átnyúló indirekt címzés A regiszteren keresztüli indirekt címzésnél az utasítás operandusa ugyanúgy egy címre mutat, amelyen megtalálható az elérni kívánt direkt cím. Ez a mutató azonban most nem a PLC bizonyos tárterületén (M vagy DB), hanem egy regiszterben az AR1 vagy AR2-es címzőregiszterben van kiegészülve egy további mutatóval, amely, ha szükséges egy un. állandó eltolást (offset) tesz lehetővé. A kialakuló indirekt cím e két mutató összegéből adódik.A tartományon átnyúló indirekt címzés azonban azt jelenti, hogy az indirekt tulajdonságot a változó fajtájára (I/Q/P/M/DBW/L) is kiterjesztik, vagyis az, hogy I/Q/P/M/DBW/L az AR1 címzőregiszterben döntenek ill. döntöttek a 31es bit segítségével: ha ez a bit nulla, akkor mint előbb nincs tartományon átnyúlás, ha „1”, akkor van, azaz a programnak futás közben ki kell értékelni a címzőregiszter 24,25,26-os bitjeit, mert ezek mondják majd meg, mely változófajtáról van szó. Az utasítás szintaxisa: A
LAR1 P#I 8.1 [AR1, P#1.1]
STEP 7, magasabb szintű STL műveletek
az AR1-es címzőregiszter töltése a P#I 8.1 mutatóval egy bemeneti bit olvasása, amelynek címe az AR1-es címzőregiszterben lévő címtől 10 bittel tovább van (P#1.1 = 10 bit) . A cím tehát a címzőregiszter tartalma + 10 bit (P#8.1 + P#1.1)
11
A fenti ábrán látható, hogy a 31-es bit „1”, ami azt jelenti, hogy az „rrr” jelű 26,25,24-es biteket is ki kell értékelni a programnak, mert ezek határozzák meg a tartományt, vagyis a változó fajtáját. A következő táblázat mutatja a kódokat:
Hexadecimális kód
Tártartomány
b#16#80
P
Leírás A be/kimenetek perifériatartománya
b#16#81
I
A bemenetek tárképe
b#16#82
Q
A kimenetek tárképe
b#16#83
M
Belső változók (merker)
b#16#84
DB
Adatmodulok
b#16#85
DI
Instant-adatmodulok (FB-nél)
b#16#86
L
Lokális változók (L-Stack)
b#16#87
V
Előző lokális adatok
A hexa-kód az indexregiszter (AR1) teljes első bájtjára vonatkozik, vagyis a 8-as a 31-es bit „1” jelállapotát jelenti, a második szám adja vissza az „rrr” bitek értékét. Ezért látható a fenti AR1-tartalomban az „rr1”, vagyis balról a teljes első bájtban a b#16#81. A tartományon átnyúló regiszteren keresztüli indirekt címzés tehát lehetővé teszi a PLC teljes változótartalmának elérését. A megoldások lehetővé teszik, hogy ugyanazt a célt több módon is lehessen programozni. A következőkben egy egyszerű feladaton láthatók a megoldások és az egyes megoldások előnyei. Példa: egy adatterületre (itt DB) bevitt számok sorba rendezése a fenti megoldásokkal bemutatva:
STEP 7, magasabb szintű STL műveletek
12
3.
Többszörös elágazás (case)
Az elágazás döntés. Ezen vagy azon az ágon haladjon tovább a program végrehajtása. Van azonban olyan döntési helyzet, amikor nem csak két, hanem sok lehetőség is van a program végrehajtására. Ez a többszörös elágazás, vagy a magasabb nyelveken case-szerkezet. A STEP7 ilyen eljárást (case) nem tartalmaz, de rendelkezik egy viszonylag egyszerű makroprogrammal, ami mégis megkönnyíti a többszörös elágazás programozását. A többszörös elágazás lényegében többszörös ugrás: A következő példán követhető a többszörös elágazás programozása és működése. Feladat: Ha az IB 2-es bemeneti bájt tartalma -”-”-”-
1 2 3 4
akkor a QB6 kimeneten legyen -”-”-”-
AA BB CC DD
Természetesen ezt a feladatot, főleg, ha a sor tovább folytatódna, indirekt címzéssel szokták megoldani. Ha a lehetőségek száma néhány (itt 4), akkor kínálkozik a többszörös elágazás is, mint egyszerű megoldás. A lehetőségeket számként be kell tölteni az AKKU-1-be. Ez általában egy változón keresztül történik, pl. MB100
SOK: A:
L JL JU JU JU JU JU
L T JU B: L T JU C: L T JU D: L T VEGE: BE
MB100 SOK A B C D VEGE
//tartalmazza az elágazás számát (itt: 1,2,3,4) //ha 0 vagy több mint 4, akkor a SOK cimkére //ha MB100 = 1, akkor A //ha MB100 = 2, akkor B //ha MB100 = 3, akkor C //ha MB100 = 4, akkor D
B#16#AA QB6 VEGE B#16#BB QB6 VEGE B#16#CC QB6 VEGE B#16#DD QB6
// B#16#AA töltése az AKKU-1-be // kiküldése a kijelzőre // ugrás a VEGE-re
STEP 7, magasabb szintű STL műveletek
13
4.
Regiszterműveletek
Akkumulátorműveletek Az S7-300 két darab 32-bites akkumulátorral, az S7-400 4 darab 32-bites akkumulátorral rendelkezik. Számítási műveletekhez azonban mindkét típus két akkumulátort használ (AKKU1 és AKKU2). Az akkumulátorok, amelyek a mikroprocesszor regiszterei, más feladatra is alkalmazhatók. A következőkben felsorolásra kerülő műveletek némelyike csak az S7-400-ban létezik. ENT és LIVE művelet (csak S7-400) A két művelettel a következőket lehet végrehajtani: az ENT az akkumulátortartalmakat tolja eggyel hátrább, tehát az AKKU-2 az AKKU-3-ba, az AKKU-3 pedig az AKKU-4-be, a LEAVE az akkumulátortartalmakat eggyel előbbre hozza, tehát az AKKU-3 az AKKU-2-be, az AKKU-4 pedig az AKKU-3-ba. A műveleteket a következő ábra mutatja:
Az AKKU4 tartalma a művelet során elveszik, az AKKU1 és AKKU2 tartalma változatlan marad.
STEP 7, magasabb szintű STL műveletek
14
Az AKKU2 tartalma a művelet során elveszik, az AKKU1 és AKKU4 tartalma változatlan marad. Példa a műveletek felhasználására: Feladat:
a következő műveletet kell végrehajtani DBD16 = DBD0 + DBD4/DBD8 - DBD12
L L
DBD 0 DBD 4
DBD0 duplaszó töltése az AKKU-1-be DBD4 duplaszó töltése az AKKU-1-be, egyidejűleg AKKU-1 másolása az AKKU-2-be AKKU-1 és AKKU-2 összeadása, eredmény tárolása az AKKU-1-ben
DBD 8
DBD8 duplaszó töltése az AKKU-1-be, egyidejüleg AKKU-1 másolása az AKKU-2-be
+R L ENT L
az AKKU-3 másolása az AKKU-4-be, egyidejüleg az AKKU-2 másolása az AKKU-3-ba, azaz a korábbi közbenső eredmény másolása az AKKU-3-ba DBD 12
-R /R T
DBD12 duplaszó töltése az AKKU1-be, egyidejüleg AKKU-1 másolása az AKKU-2-be AKKU-1 kivonása az AKKU-2-ből, eredmény tárolása az AKKU-1-ben, egyidejűleg az AKKU-3 másolása az AKKU-2-be AKKU-2 osztása az AKKU-1 tartalmával, eredmény az AKKU-1-be
DBD 16
A fenti program az ENT utasítás használatát mutatta be S7-400-as PLC-ben, de néhány különleges tulajdonságot is lehetett látni (ami az S7-300-asnál nem lehetséges, mert csak két akkumulátora van).
STEP 7, magasabb szintű STL műveletek
15
A négyakkumulátoros PLC-knél (S7-400 és WINAC) az aritmetikai műveletek elvégzésekor egyidejüleg az AKKU-3 az AKKU-2-be, az AKKU-4 pedig az AKKU-3-ba kerül. A TAK művelet A TAK művelet felcseréli a számításokban résztvevő AKKU 1 és AKKU 2 tartalmát. Az AKKU 2 tartalmához nem lehet közvetlen utasítással hozzáférni. Az L MD24 utasítás mindig az AKKU-1-be tölt, a T MD12 utasítás mindig az AKKU1 tartalmát küldi ki. Ha ilyen esetben – mert pl. a két kiküldendő érték a két akkumulátorban található, vagy a műveletvégzés során az éppen szükséges érték a 2-es akkumulátorba került, lehet alkalmazni a TAK utasítást.
L L -I T TAK L -I T
PIW20 10 QW40 20 QW42
STEP 7, magasabb szintű STL műveletek
16