Simatic Step 7 AWL utasításkészlet

Az AWL a Simatic Step7 PLC platformjának az IEC DIN EN 61131-3 normának megfeleltetett szövegbázisú és meglehetősen gépközeli leírónyelve (sok tekintetben a klasszikus assembly nyelveknek felel meg). A program lefutási sorrendje gyakorlatilag megegyezik a CPU végrehajtási sorrendjével. A nyelv a magasabbb szintű (kvázi pascal-)SCL nyelvvel egyetemben a Simatic S7 fejlesztői rendszerében érhető el.

Német
szintaktika
Angol
szintaktika
Művelet /
funkció
Leírása
= = Bit művelet Összehasonlítás
) ) Bit művelet Zárójel zárása
*D *D Egész szám művelet AKKU1 és AKKU2 szorzása 32 bites egész számként (DINT)
*I *I Egész szám művelet AKKU1 és AKKU2 szorzása 16 bites egész számként (INT)
*R *R Tizedes tört funkció AKKU1 és AKKU2 szorzása 32 bites törtszámként (REAL)
/D /D Egész szám művelet AKKU2 osztása AKKU1-el 32 bites egész számként (DINT)
/I /I Egész szám művelet AKKU2 osztása AKKU1-el 16 bites egész számként (INT)
/R /R Tizedes tört funkció AKKU2 osztása AKKU1-el 32 bites törtszámként (REAL)
? D ? D Összehasonlítás 32 bites egész számok (DINT) összehasonlítása
==, <>, >, <, >=, ⇐
? I ? I Összehasonlítás 16 bites egész számok (INT) összehasonlítása
==, <>, >, <, >=, ⇐
? R ? R Összehasonlítás 32 bites törtszámok (REAL) összehasonlítása
==, <>, >, <, >=, ⇐
+ + Egész szám művelet Egész szám konstans hozzáadása (16, 32 Bit)
+AR1 +AR1 Akkumulátor AKKU1 hozzáadása az 1. címregiszterhez
+AR2 +AR2 Akkumulátor AKKU1 hozzáadása a 2. címregiszterhez
+D +D Egész szám művelet AKKU1 és AKKU2 összeadása 32 bites egész számként (DINT)
+I +I Egész szám művelet AKKU1 és AKKU2 összeadása 16 bites egész számként (INT)
+R +R Tizedes tört funkció AKKU1 és AKKU2 összeadása 32 bites törtszámként (REAL)
-D -D Egész szám művelet AKKU2 kivonása az AKKU1-ből 32 bites egész számként (DINT)
-I -I Egész szám művelet AKKU2 kivonása az AKKU1-ből 16 bites egész számként (INT)
-R -R Tizedes tört funkció AKKU2 kivonása az AKKU1-ből 32 bites törtszámként (REAL)
ABS ABS Tizedes tört funkció Törtszám abszolút értéke (REAL)
ACOS ACOS Tizedes tört funkció Arcus cosinus képzése (REAL)
ASIN ASIN Tizedes tört funkció Arcus sinus képzése (REAL)
ATAN ATAN Tizedes tört funkció Arcus tangens képzése (REAL)
AUF OPN Adatblokk művelet DB kijelölése
BE BE Programvezérlés Blokk vége
BEA BEU Programvezérlés Blokk vége feltétel nélkül
BEB BEC Programvezérlés Feltételes blokk vége
BLD BLD Akkumulátor Képkezdés (helytartó parancs)
BTD BTD Transzformáció BCD átalakítása 32 bites egész számmá (DINT)
BTI BTI Transzformáció BCD átalakítása 16 bites egész számmá (INT)
CALL CALL Programvezérlés Eljárás hívása könyvtárból
CALL CALL Programvezérlés Eljárás hívása
CALL CALL Programvezérlés Multi instanz hívása
CC CC Programvezérlés Feltételes eljáráshívás
CLR CLR Bit művelet VKE nullázása (=0)
COS COS Tizedes tört funkció Cosinus képzése (REAL)
DEC DEC Akkumulátor AKKU 1 csökkentése
DTB DTB Transzformáció 32 bites egész szám átalakítása BCD-vé (BCD)
DTR DTR Transzformáció 32 bites egész szám átalakítása 32 bites törtszámmá (REAL)
ENT ENT Akkumulátor AKKU-Stack feltöltése (ENTER)
EXP EXP Tizedes tört funkció Exponenciális értékképzése (REAL)
FN FN Bit művelet Negatív flanke (lefutóél)
FP FP Bit művelet Pozitív flanke (felfutóél)
FR FR Idő funkció Timer szabadon hagyása (Freigabe)
FR FR Számláló funkció Számláló szabadon hagyása (Freigabe)
INC INC Akkumulátor AKKU1 növelése
INVD INVD Transzformáció Egyszeres komplementer (DINT)
INVI INVI Transzformáció Egyszeres komplementer (INT)
ITB ITB Transzformáció 16 bites egész szám átalakítása BCD-vé (BCD)
ITD ITD Transzformáció 16 bites egész szám átalakítása 32 bites egész számmá (DINT)
L L Betöltés/mozgatás Betöltés (LOAD/LADE)
L L Számláló funkció Az aktuális számláló értékének a betöltése egész számként AKKU1-be
L L Idő funkció Az aktuális idő értékének a betöltése egész számként AKKU1-be
L DBLG L DBLG Adatblokk művelet Globális DB hosszának a másolása AKKU1-be
L DBNO L DBNO Adatblokk művelet Globális DB számának a másolása AKKU1-be
L DILG L DILG Adatblokk művelet Instant DB hosszának a másolása AKKU1-be
L DINO L DINO Adatblokk művelet Instant DB számának a másolása AKKU1-be
L STW L STW Betöltés/mozgatás Státusz-szó (STATUS WORD) betöltése az AKKU1-be
LAR1 AR2 LAR1 AR2 Betöltés/mozgatás A 2. címregiszter tartalmának a betöltése az 1. címregiszterbe
LAR1 LAR1 Betöltés/mozgatás Az 1. címregiszter feltöltése AKKU1-ből
LAR1 <D> LAR1 <D> Betöltés/mozgatás Az 1. címregiszter betöltése pointerrel
LAR2 LAR2 Betöltés/mozgatás Az 2. címregiszter betöltése 32 bites egész számmal
LAR2 <D> LAR2 <D> Betöltés/mozgatás Az 2. címregiszter betöltése AKKU1-ből
LC LC Számláló funkció Az aktuális számlálóérték betöltése BCD formában az AKKU1-be
LC LC Idő funkció Az aktuális időérték betöltése BCD formában az AKKU1-be
LEAVE LEAVE Akkumulátor AKKU Verem ürítése
LN LN Tizedes tört funkció Természetes logaritmus képzése (REAL)
LOOP LOOP Ugrás művelet Programciklus
MCR( MCR( Programvezérlés MCR verem nyitása
)MCR )MCR Programvezérlés MCR verem zárása
MCRA MCRA Programvezérlés MCR verem aktiválása
MCRD MCRD Programvezérlés MCR verem deaktiválása
MOD MOD Egész szám művelet Osztási maradék (DINT)
NEGD NEGD Transzformáció 32 bites egész szám kettes komplementer (DINT)
NEGI NEGI Transzformáció 16 bites egész szám kettes komplementer (INT)
NEGR NEGR Transzformáció Törtszám negálása (REAL)
NOP 0 NOP 0 Akkumulátor Null operáció 0 (helytartó parancs)
NOP 1 NOP 1 Akkumulátor Null operáció 1 (helytartó parancs)
NOT NOT Bit művelet VKE negálása
O O Bit művelet VAGY
O O Bit művelet Az első és, mint vagy
O( O( Bit művelet Vagy zárójel nyitással
OD OD Szavak összevetése Vagy duplaszó (DWORD)
ON ON Bit művelet VAGY NEM
ON( ON( Bit művelet Vagy nem zárójel nyitással
OW OW Szavak összevetése Vagy szó (WORD)
POP POP Akkumulátor POP CPU 4 AKKU-val
POP POP Akkumulátor POP CPU 2 AKKU-val
PUSH PUSH Akkumulátor PUSH CPU 4 AKKU-val
PUSH PUSH Akkumulátor PUSH CPU 2 AKKU-val
R R Bit művelet RESET
R R Idő funkció Időfunkció reset
R R Számláló funkció Számláló reset
RLD RLD Forgatás Duplaszó forgatása balra (DWORD)
RLDA RLDA Forgatás Duplaszó forgatása balra (DWORD), A1 kijelzéssel
RND RND Transzformáció Törtszám kerekítése egész számra (DINT)
RND– RND– Transzformáció Törtszám kerekítése a nála a tizedesrésszel kisebb egész számra (DINT)
RND+ RND+ Transzformáció Törtszám kerekítése a nála a tizedesrésszel nagyobb egész számra (DINT)
RRD RRD Forgatás Duplaszó forgatása jobbra (DWORD)
RRDA RRDA Forgatás Duplaszó forgatása jobbra (DWORD), A1 kijelzéssel
S S Bit művelet SET
S S Számláló funkció Számláló beállítása
SA SF Idő funkció Kikapcsolás késleltetetett idő
SAVE SAVE Bit művelet VKE mentése a BIE-be
SE SD Idő funkció Bekapcsolás késleltetett idő
SET SET Bit művelet Állítás
SI SP Idő funkció Impulzus idő
SIN SIN Tizedestört funkció Sinus képzése (REAL)
SLD SLD Léptetés Duplaszó léptetése balra (DWORD)
SLW SLW Léptetés Szó léptetése balra (WORD)
SPA JU Ugrás művelet Feltétel nélküli ugrás
SPB JC Ugrás művelet Feltételes ugrás, ha VKE = 1
SPBB JCB Ugrás művelet Feltételes ugrás, ha VKE = 1, és a VKE másolása BIE-be
SPBI JBI Ugrás művelet Feltételes ugrás, ha BIE = 1
SPBIN JNBI Ugrás művelet Feltételes ugrás, ha BIE = 0
SPBN JCN Ugrás művelet Feltételes ugrás, ha VKE = 0
SPBNB JNB Ugrás művelet Feltételes ugrás, ha VKE = 0, és a VKE másolása BIE-be
SPL JL Ugrás művelet Ugráslista
SPM JM Ugrás művelet Feltételes ugrás, ha az eredmény < 0
SPMZ JMZ Ugrás művelet Feltételes ugrás, ha az eredmény ⇐ 0
SPN JN Ugrás művelet Feltételes ugrás, ha az eredmény <> 0
SPO JO Ugrás művelet Feltételes ugrás, ha az OV = 1
SPP JP Ugrás művelet Feltételes ugrás, ha az eredmény > 0
SPPZ JPZ Ugrás művelet Feltételes ugrás, ha az eredmény >= 0
SPS JOS Ugrás művelet Feltételes ugrás, ha az OS = 1
SPU JUO Ugrás művelet Feltételes ugrás, ha az eredmény érvénytelen
SPZ JZ Ugrás művelet Feltételes ugrás, ha az eredmény = 0
SQR SQR Tizedes tört funkció Négyzetre emelés (REAL)
SQRT SQRT Tizedes tört funkció Gyökvonás (REAL)
SRD SRD Léptetés Duplaszó léptetése jobbra (DWORD)
SRW SRW Léptetés Szó léptetése jobbra (WORD)
SS SS Idő funkció Halmozott bekapcsolás késleltetett idő
SSD SSD Léptetés 32 bites egész szám előjelhelyes léptetése jobbra
SSI SSI Léptetés 16 bites egész szám előjelhelyes léptetése jobbra
SV SE Idő funkció Impulzus hosszabbított idő
T T Betöltés/mozgatás Mozgatás
T STW T STW Betöltés/mozgatás AKKU1 mozgatása a státusz szóba (STATUSWORD)
TAD CAD Transzformáció A byte sorrend megfordítása 32 bit hosszan az AKKU1-ben
TAK TAK Akkumulátor AKKU1 és AKKU2 tartalmának cseréje
TAN TAN Tizedes tört funkció Tangens (REAL)
TAR CAR Betöltés/mozgatás 1. és 2. címregiszter tartalmának a cseréje
TAR1 TAR1 Betöltés/mozgatás 1. címregiszter mozgatása a 2. címregiszterbe
TAR1 AR2 TAR1 AR2 Betöltés/mozgatás 1.címregiszter mozgatása AKKU2-be
TAR1 <D> TAR1 <D> Betöltés/mozgatás 1.címregiszter mozgatása a célcímre (32 bit pointer)
TAR2 TAR2 Betöltés/mozgatás 2.címregiszter mozgatása AKKU1-re
TAR2 <D> TAR2 <D> Betöltés/mozgatás 2.címregiszter mozgatása a célcímre (32 bit pointer)
TAW CAW Transzformáció A byte sorrend megfordítása 16 bit hosszan az AKKU1-L-ben
TDB CDB Adatblokk művelet Globál DB és Instant DB cseréje
TRUNC TRUNC Transzformáció Törtszám kerekítése csonkolással egész számra (DINT)
U A Bit művelet ÉS
U( A( Bit művelet És zárójel nyitással
UC UC Programvezérlés Feltétel nélküli eljáráshívás
UD AD Szavak összevetése És duplaszó (DWORD)
UN AN Bit művelet ÉS NEM
UN( AN( Bit művelet És nem zárójel nyitással
UW AW Szavak összevetése És szó (WORD)
X X Bit művelet KIZÁRÓ VAGY
X( X( Bit művelet Kizáró vagy zárójel nyitással
XN XN Bit művelet Kizáró vagy nem
XN( XN( Bit művelet Kizáró vagy nem zárójel nyitással
XOD XOD Szavak összevetése Kizáró vagy duplaszó (DWORD)
XOW XOW Szavak összevetése Kizáró vagy szó (WORD)
ZR CD Számláló funkció Számláló visszaszámlálás
ZV CU Számláló funkció Számláló (előre)számlálás

A VKE (Verknüpfung-eredmény) a művelet eredményét tartalmazza, a STA (status) az adott sor műveleti eredményét. A fenti esetben, a második példánál jól látható, hogy a második sorban (M4.1) értéke „0”, ezért a STA is „0”, viszont az ÉS művelet okán a „VKE” sor is ebben a sorban szakad meg, a továbbiakban ezért a „VKE” „0” marad. (VAGY láncoknál persze ez kissé másként működik). A VKE, mint a státusz szó 1. bitje, a státusz szónál is tárgyalásra kerül.

VKE, STA, STANDARD
1. ábra Példaprogram állapotok

A fenti példaprogramon látszik, hogy a számértékeket a STANDARD oszlopban jeleníti meg a szerkesztőprogram. Az MW10 tartalma 1792, a konstans 12-é meglepő módon 12. A VKE és STA működése megegyezik a fent leírtakkal, eszerint a fenti példában az 1792 értéke nagyobb (>I), mint a 12, így a VKE „1” és az eredmény (M1.0) szintén „1”. A második példán ennek az ellenkezője látható.

VKE, STA, STANDARD
2. ábra STANDARD kijelzés módja

A STANDARD oszlop kijelzési módját megváltoztathatjuk, úgy, hogy az oszlop felett a jobb egérgombra kattintunk. Itt a „Dartstellung” pontnál választhatunk a decimális, hexadecimális és törtszám kijelzések között.

Státusz szó

Az utasításkészletben minden utasításnál feltüntetem a státusz szó várható állapotát a lenti táblázattal megegyező módon:

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - x x x 1

1. Táblázat Státusz szó tartalma

A jelzések jelentése:

- nem írja vagy olvassa a bitet
* olvassa a bitet
x „0” vagy „1”-et írhat a bitbe
0 „0”-ra állítja a bitet
1 „1”-re állítja a bitet

Státusz szó
3. ábra Státusz szó példa

/ER Kiértékelő (0.) bit

Erstabfragebit

Az ER bit állapota irányítja egy kiértékelési lánc lekérdezését. Az ER bit a 0. a státusz szóban (balról a legutolsó).

Minden utasítás előtt a program lekérdezi az ER állapotát.

Ha az ER „0”, akkor új kiértékelési lánc indul, a művelet eredményét csak beírja a program a „VKE”-be.

Ha az ER „1”, akkor a kiértékelési lánc tart, a VKE-t a művelet előtt beolvassa, majd a művelet kiértékelése után visszamásolja a program.

Az állítási műveletek (S, R, =) törlik az ER tartalmát, csakúgy, mint a VKE függő ugrásműveletek.

VKE (1.) bit

Verknüpfungs: eredmény

A VKE bit tárolja minden műveletnek és összehasonlításnak az eredményét. A VKE bit a 1. a státusz szóban (balról az utolsó előtti).

Ha az /ER bit állapota „0”, akkor az adott művelet eredményét bemásolja a program a VKE-be. Ha az /ER „1”, akkor a program az adott műveletet kiértékeli, és ennek megfelelően módosítja a VKE értékét. Az állítási műveletekhez, vagy VKE függő ugrásokhoz érve a program a VKE tartalmától függően hajtja végre az adott műveletet. A VKE tartalma az on-line státusz ablakban külön oszlopban is kiemelhető (lásd a fejezet elején).

STA (2.) bit

Statusbit

A STA bit egy megcímzett bit értékét tárolja. A STA bit a 2. a státusz szóban (balról a harmadik).

Ha valaki a német definíciót értelmezhetően le tudja fordítani, annak gratula:

Der Status einer Verknüpfungsoperation, die Lesezugriff auf den Speicher hat (U, UN, O, ON, X oder XN), ist immer gleich dem Wert des adressierten Bits. Der Status einer Verknüpfungsoperation, die Schreibzugriff auf den Speicher hat (R, S, oder =), ist gleich dem Wert des Bits, in das die Operation schreibt. Falls nicht geschrieben wird, ist der Status gleich dem Wert des adressierten Bits. Das Statusbit hat keine Bedeutung für Verknüpfungsoperationen, die nicht auf den Speicher zugreifen. Diese Operationen setzen das Statusbit auf "1". Das Statusbit wird von Operationen nicht abgefragt. Es wird lediglich beim Anzeigen des Programmstatus von Programmvariablen ausgewertet.

A státuszbit gyakorlatilag különbségzi a műveletek (VKE-k) eredményeit. Ez „1”, amennyiben a részművelet eredménye „1”. Ha egy VKE „0” is besikerül, akkor a kiértékelési lánc megszakad, a STA eredménye a továbbiakban „0”. VAGY műveletek esetén a lánc nem folytonosan, hanem a VAGY sorok különbségzésével értendő (lásd OR bit).
Amennyiben olyan művelet van soron, mely nem ad bináris eredményt, a STA állapota „1”.

OR (3.) bit

Oder bit

Ez a bit akkor szükséges, ha a VAGY műveletet ÉS műveletek előzik meg. Az OR bit a 3. a státusz szóban (balról a negyedik). Feladata a feltétel teljesülésének tárolása, és átvitele a többi VAGY művelet „felett”.

A lenti példákon szemléltetem a bit működését. Az 1. változat azt az állapotot szemlélteti, amikor az első VAGY feltétel nem teljesül, csak a második. Jól látható, hogy a blokk után található VAGY művelettől a kiértékelésig az OR bit értéke „1”-re vált. A 2. változat esetén már az első VAGY blokk eredménye is „1”, így az OR bit ettől a ponttól „1”.

S7 OR
4. ábra OR bit állapota (1.változat)

S7 OR
5. ábra OR bit állapota (2. változat)

OS (4.) bit

Überlauf, speichernd: mentett túlcsordulás

Az OS bit az OV (túlcsordulás) bit értékét tárolja. Az OS bit a 4. a státusz szóban (jobbról a tagolás után az első).
Az OV bit túlcsordulás esetén lép fel aritmetikai műveleteknél vagy egész számok összehasonlításánál. Az OV csak a következő műveletig áll fenn, míg az OS tárolja az OV állapotát (lásd a lenti ábrát). Az OS állapotát az alábbi műveletek oldják fel:

  • SPS (ugorj, ha az OS=1)
  • Új eljárás hívása
  • Eljárás vége

S7 OS bit
6. ábra OS, OV bitek állapota

OV (5.) bit

Überlauf: túlcsordulás

Az OS bit a túlcsordulást jelzi. Az OV bit az 5. a státusz szóban (jobbról a tagolás után a második).
Az OS bit túlcsordulás esetén lép fel aritmetikai műveleteknél vagy egész számok összehasonlításánál. Az OV csak a következő műveletig áll fenn, míg az OS tárolja az OV állapotát (lásd a lenti ábrát).

S7 OV bit
7. ábra OS, OV bitek állapota

A1, A0 (6., 7.) bit

Anzeigenbits: ábrázolóbitek

Az ábrázolóbitek a műveletek eredményeit tartalmazzák. Az A1 és A0 eredményeit az ugrásműveletek olvassák. Az eredmények képzését és jelentését a lenti táblázat tartalmazza.

A1 A0 Jelentése
Aritmetikai művelet túlcsordulás nélkül
0 0 Eredmény = 0
0 1 Eredmény < 0
1 0 Eredmény > 0
Aritmetikai művelet (egész szám aritmetika) túlcsordulással
0 0 Negatív irányú túlcsordulás +I, +D műveleteknél
0 1 Negatív irányú túlcsordulás *I, *D műveleteknél
Pozitív irányú túlcsordulás +I, -I, +D, -D, NEGI, NEGD műveleteknél
1 0 Negatív irányú túlcsordulás +I, -I, +D, -D műveleteknél
Pozitív irányú túlcsordulás *I, /I, *D, /D műveleteknél
1 1 0-val való osztás /I, /D, MOD műveleteknél
Aritmetikai művelet (törtszám aritmetika) túlcsordulással
0 0 Fokozatos értékvesztés
0 1 Túlcsordulás negatív irányban
1 0 Túlcsordulás pozitív irányban
1 1 Érvénytelen törtszám
Léptetés/forgatás művelet eredménye
0 0 Az AKKU-ból kikerülő bit = 0
1 0 Az AKKU-ból kikerülő bit = 1
Összehasonlítás művelet eredménye
0 0 AKKU2 = AKKU1
0 1 AKKU2 < AKKU1
1 0 AKKU2 > AKKU1
1 1 Érvénytelen (csak egész szám összehasonlítás esetén)
Szavak összevetése művelet eredménye
0 0 Eredmény = 0
1 0 Eredmény <> 0

2. Táblázat A1, A0 státuszbitek jelentése

BIE (8.) bit

Binäreredménybit: bináris eredmény bit

Az BIE bit az AWL bináris eredményt tárolja és átviszi a további – nem AWL - műveletekbe. A BIE bit a 8. a státusz szóban.

Ha a műveleteket AWL-ben kezdtük írni, és KOP/FUP programozásra akarunk áttérni, a művelet addigi eredményét a BIE biten keresztül tudjuk átvinni, úgy, hogy a VKE-t a BIE-be mentjük. A BIE-t a SAVE, SPBB és SPBNB műveletekkel kezelhetjük.

Ha a program egy SFB-t vagy egy SFC-t hajt végre, a végrehajtás eredményességét a BIE bitben közli. Ha a BIE értéke a végrehajtást követően „1”, akkor az eljárás hiba nélkül lefutott, ha a „BIE” értéke „0”, akkor a futás során hiba lépett fel.

Zárójel verem (Klammerstack)

Zárójel verem (németül: Klammerstack, angolul: MCR-Stack)

Minden zárójeles bináris művelet - U(, O(, X(, UN(, ON(, XN( - egy új szintet nyit a zárójel veremben. A verem mélysége maximum 7 szintet tesz lehetővé, ez azt jelenti, hogy maximum hétszer lehet egymás után zárójelet nyitni zárás nélkül. A verem minden szintjén a státusz szóból két bit, a VKE, BIE, OR és egy funkcióazonosító szerepel. A zárójel bezárás – „)” – mindig lezár egy szintet, és a megelőző szinten állítja az OR bitet és felülbírálhatja az eredménytől függően a VKE bitet. A kiértékelési láncnak pontosan annyi zárójel zárást kell tartalmaznia, mint amennyi megnyitásra került, egyébként a szerkesztőprogram hibát jelez letöltés / beforgatás közben:

soft_s7_awl_utasitaskeszlet_clip_image014.jpg
8. ábra Zárójelezési probléma

Utasításkészlet

Ebben a fejezetben összefoglalom az AWL utasításokat. Az összes utasítást összefoglaló abc rendbe szedett táblázatot a Teljes Simatic AWL utasításkészlet pont alatt találja meg a mellékletben.

A példaprogramokat a Simatic program on-line státuszából emeltem ki, így az ott megjelenő állapotjelöléseket ismertetem itt is. Egyszerűbb esetben ez így néz ki:

soft_s7_awl_utasitaskeszlet_clip_image016.jpg
9. ábra Példaprogram állapotok

U (és)

Az ÉS művelet a megcímzett bit „1” állapotától függően egy logikai műveletben állítja a VKE értéket.

U 0 1
0 0 0
1 0 1

3. Táblázat A művelet igazságtáblázata

Az ÉS művelettel a státusz szó állapotát is lekérdezhetjük, az alábbi operandusokat:
==0, <>0, >0, <0, >=0, ⇐0, OV, OS, UO, BIE.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - x x x 1

4. Táblázat Státusz szó változásai

S7 U (AND) example
10. ábra Példaprogram állapotok

UN (és nem)

Az ÉS NEM művelet a megcímzett bit „0” állapotától függően egy logikai műveletben állítja a VKE értéket.

UN 0 1
0 0 0
1 1 0

5. Táblázat A művelet igazságtáblázata

Az ÉS NEM művelettel a státusz szó állapotát is lekérdezhetjük, az alábbi operandusokat:
==0, <>0, >0, <0, >=0, ⇐0, OV, OS, UO, BIE.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - x x x 1

6. Táblázat Státusz szó változásai

S7 UN (AND NOT) example
11. ábra Példaprogram állapotok

O (vagy)

A VAGYművelet a megcímzett bit „1” állapotától függően egy logikai műveletben állítja a VKE értéket.

UN 0 1
0 0 1
1 1 1

7. Táblázat A művelet igazságtáblázata

Az ÉS NEM művelettel a státusz szó állapotát is lekérdezhetjük, az alábbi operandusokat:
==0, <>0, >0, <0, >=0, ⇐0, OV, OS, UO, BIE.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 x x 1

8. Táblázat Státusz szó változásai

KOP AWL
S7 O (OR) example S7 O (OR) example
Az első VAGY ág teljesül (az első vagy ágat nem kell „O” utasítással kezdeni).
S7 O (OR) example S7 O (OR) example
A második VAGY ág teljesül.
S7 O (OR) example S7 O (OR) example
A harmadik vagy ág teljesül
S7 O (OR) example S7 O (OR) example
Az utasítás eredménye 0.

2. Példaprogram OR állapotok

ON (vagy nem)

A VAGY NEM művelet a megcímzett bit „0” állapotától függően egy logikai műveletben állítja a VKE értéket.

Az ÉS NEM művelettel a státusz szó állapotát is lekérdezhetjük, az alábbi operandusokat:
==0, <>0, >0, <0, >=0, ⇐0, OV, OS, UO, BIE.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 x x 1

9. Táblázat Státusz szó változásai

Bár a KOP programozással ebben a fejezetben nem foglalkozok, megemlítem, hogy KOP-ban nincs ON, ehelyett az adott elágazás összes feltételét negálni kell.

S7 ON (OR NOT) example
12. ábra Példaprogram állapotok

X (kizáró vagy)

A kizáró vagy művelet a megcímzett bit „1” állapotától függően egy logikai műveletben állítja a VKE értéket. A kizáró vagy abban az esetben „1”, ha a páratlan számú X művelet értéke „1”.

UN 0 1
0 0 1
1 1 0

10. Táblázat A művelet igazságtáblázata

Az ÉS NEM művelettel a státusz szó állapotát is lekérdezhetjük, az alábbi operandusokat:
==0, <>0, >0, <0, >=0, ⇐0, OV, OS, UO, BIE.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 x x 1

11. Táblázat Státusz szó változásai

S7 X (XOR) example
13. ábra Példaprogram állapotok

XN (kizáró vagy nem)

A kizáró vagy nem művelet a megcímzett bit „0” állapotától függően egy logikai műveletben állítja a VKE értéket.

Az ÉS NEM művelettel a státusz szó állapotát is lekérdezhetjük, az alábbi operandusokat:
==0, <>0, >0, <0, >=0, ⇐0, OV, OS, UO, BIE.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 x x 1

12. Táblázat Státusz szó változásai

S7 XN (XOR NOT) example
14. ábra Példaprogram állapotok

= (egyenlő)

= <bit> az VKE értékét (a megelőző bitműveletek végeredményét) kiírja a megcímzett bitre.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 x - 0

13. Táblázat Státusz szó változásai

S7 = example
15. ábra Példaprogram állapotok

R (reset)

R <bit> ha a VKE értéke (a megelőző bitműveletek végeredményét) „1”, akkor törli a címzett bitet.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 x - 0

14. Táblázat Státusz szó változásai

S7 R (reset) example
16. ábra Példaprogram állapotok

S (set)

S <bit> ha a VKE értéke (a megelőző bitműveletek végeredményét) „1”, akkor állítja a címzett bitet.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 x - 0

15. Táblázat Státusz szó változásai

S7 S (set) example
17. ábra Példaprogram állapotok

NOT (VKE negálás)

A NOT negálja a VKE értékét.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - 1 x -

16. Táblázat Státusz szó változásai

S7 NOT example
18. ábra Példaprogram állapotok

SET (VKE állítás)

A SET a VKE-t „1”-re állítja.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 1 1 0

17. Táblázat Státusz szó változásai

S7 S (set) example
19. ábra Példaprogram állapotok

CLR (VKE törlés)

A CLR a VKE-t „0”-ra állítja.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 0 0 0

18. Táblázat Státusz szó változásai

S7 CLR (clear) example
20. ábra Példaprogram állapotok

? I (16 bites egész szám összehasonlítás)

==I, <>I, >I, <I, >=I, ⇐I
Az egész szám összehasonlítás az AKKU2-L tartalmát hasonlítja össze az AKKU1-L-lel. Az összehasonlítás csak fél akku hosszon, 16 biten történik. Az eredmény a VKE-ben jelenik meg. Az A1 és az A0 státuszbitek a „kisebb mint” vagy „nagyobb mint” eredmények jelzését végzik.

művelet VKE,
AKKU2 > AKKU1
VKE,
AKKU2 = AKKU1
VKE,
AKKU2 < AKKU1
==I 0 1 0
<>I 1 0 1
>I 1 0 0
<I 0 0 1
>=I 1 1 0
⇐I 0 1 1

19. Táblázat A VKE értéke

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x 0 - 0 x x 1

20. Táblázat Státusz szó változásai

S7 integer operations
21. ábra Példaprogram állapotok

? D (32 bites egész szám összehasonlítás)

==D, <>D, >D, <D, >=D, ⇐D
Az egész szám összehasonlítás az AKKU2 tartalmát hasonlítja össze az AKKU1 -el. Az összehasonlítás egész akku hosszon, 32 biten történik. Az eredmény a VKE-ben jelenik meg. Az A1 és az A0 státuszbitek a „kisebb mint” vagy „nagyobb mint” eredmények jelzését végzik.

művelet VKE,
AKKU2 > AKKU1
VKE,
AKKU2 = AKKU1
VKE,
AKKU2 < AKKU1
==D 0 1 0
<>D 1 0 1
>D 1 0 0
<D 0 0 1
>=D 1 1 0
⇐D 0 1 1

21. Táblázat A VKE értéke

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x 0 - 0 x x 1

22. Táblázat Státusz szó változásai

S7 double word (DW) operations
22. ábra Példaprogram állapotok

? R (32 bites törtszám összehasonlítás)

==R, <>R, >R, <R, >=R, ⇐R
A törtszám összehasonlítás az AKKU2 tartalmát hasonlítja össze az AKKU1 -el. Az összehasonlítás egész akku hosszon, 32 biten történik, az akkumlátorok tartalma IEEE-FP formátumban kerül kiértékelésre. Az eredmény a VKE-ben jelenik meg. Az A1 és az A0 státuszbitek a „kisebb mint” vagy „nagyobb mint” eredmények jelzését végzik.

művelet VKE,
AKKU2 > AKKU1
VKE,
AKKU2 = AKKU1
VKE,
AKKU2 < AKKU1
==R 0 1 0
<>R 1 0 1
>R 1 0 0
<R 0 0 1
>=R 1 1 0
⇐R 0 1 1

23. Táblázat A VKE értéke

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x 0 x x 1

24. Táblázat Státusz szó változásai

S7 real (R) operations
23. ábra Példaprogram állapotok

BTI (BCD konvertálás egész szám formátumra)

A BTI egy előjeles, 3 számjegyű BCD formátumú számot alakít át integer formátumúra. Az eredmény az AKKU1-H-ban tárolódik, az AKKU1-L és AKKU2 értéke a művelet során nem változik.

Az átalakítandó értéket az AKKU1-L-be tárolja az utasítás, „-999”-től „+999” értékig. A 0.bit-től a 11.bit-ig az érték tárolása történik, az 15.bit az előjel (0: pozitív, 1: negatív). A 12-bit-től a 14.bit-ig a tárolónak nincs része a műveletben. Amennyiben érvénytelen érték érkezik konvertálásra, BCDF hiba lép fel. Amennyiben a hibát nem kezelik le az OB121-ben, a PLC stop-ba megy:

S7 BCD error, than PLC stop
24. ábra BCD transzformáció hiba a diagnózis ablakban

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

25. Táblázat Státusz szó változásai

S7 BTI operation
25. ábra Példaprogram

A példaprogram első két sorában konstans 123-at BCD formátumban (c#) betölti a program az MW10-be, majd az MW10 tartalmát konvertálja MW12-be.

ITB (egész szám konvertálás BCD formátumra)

A ITB az AKKU1-L terület értékét alakítja át BCD kóddá. Az eredmény az AKKU1-L-ben tárolódik.

Az átalakítandó értéket az AKKU1-L-be tárolja az utasítás, „-999”-től „+999” értékig. A 0.bit-től a 11.bit-ig az érték tárolása történik, az 15.bit az előjel (0: pozitív, 1: negatív). A 12-bit-től a 14.bit-ig a tárolónak nincs része a műveletben. Amennyiben érvénytelen érték érkezik konvertálásra, az OV és OS értékét „1”-re állítja.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - x x - - - -

26. Táblázat Státusz szó változásai

S7 ITB operation
26. ábra Példaprogram

BTD (BCD konvertálás 32 bites egész szám formátumra)

A BTD egy előjeles, 7 számjegyű BCD formátumú számot alakít át integer formátumúra. Az eredmény az AKKU1-ben tárolódik, az AKKU2 értéke a művelet során nem változik.

Az átalakítandó értéket az AKKU1-L-be tárolja az utasítás, „-9999999”-től „+9999999” értékig. A 0.bit-től a 27.bit-ig az érték tárolása történik, az 31.bit az előjel (0: pozitív, 1: negatív). A 28.-bit-től a 30.bit-ig a tárolónak nincs része a műveletben. Amennyiben érvénytelen érték érkezik konvertálásra, BCDF hiba lép fel. Amennyiben a hibát nem kezelik le az OB121-ben, a PLC stop-ba megy:

S7 BCD error, than PLC stop
27. ábra BCD transzformáció hiba a diagnózis ablakban

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

27. Táblázat Státusz szó változásai

S7 BTD operation
28. ábra Példaprogram

DTB (32 bites egész szám konvertálás BCD formátumra)

A DTB az AKKU1 terület 32 bites egész szám értékét alakítja át BCD kóddá. Az eredmény az AKKU1-ben tárolódik.

Az átalakítandó értéket az AKKU1-be tárolja az utasítás, „-9999999”-től „+9999999” értékig. A 0.bit-től a 27.bit-ig az érték tárolása történik, a 28. - 31.bit az előjel (0000: pozitív, 1111: negatív). A 12-bit-től a 14.bit-ig a tárolónak nincs része a műveletben. Amennyiben érvénytelen érték érkezik konvertálásra, az OV és OS értékét „1”-re állítja.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - x x - - - -

28. Táblázat Státusz szó változásai

S7 DTB operation
29. ábra Példaprogram

ITD (16 bites egész szám átalakítása 32 bitessé)

A 16 bites egész számot az eljárás az AKKU1-L-be tölti be, az eredmény 32 biten az AKKU1-ben jelenik meg. Az AKKU2 nem vesz részt a műveletben.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

29. Táblázat Státusz szó változásai

S7 ITD operation
30. ábra Példaprogram

DTR (32 bites egész szám átalakítása IEEE-FP törtszámmá)

Az AKKU1-be töltött 32 bites egész számot IEEE-FP (real) típusúvá alakítja.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

30. Táblázat Státusz szó változásai

S7 DTR operation
31. ábra Példaprogram

INVI (egyes inklementer képzés 16 bites egész számon)

A eljárás egy 16 bites egész számot beolvassa az AKKU1-L-ből és bitenként felcseréli az értékeket. Az eredményt az AKKU1-L-be tárolja.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

31. Táblázat Státusz szó változásai

S7 INVI operation
32. ábra Példaprogram

INVD (egyes inklementer képzés 32 bites egész számon)

A eljárás egy 16 bites egész számot beolvassa az AKKU1-ből és bitenként felcseréli az értékeket. Az eredményt az AKKU1-be tárolja.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

32. Táblázat Státusz szó változásai

S7 INVD operation
33. ábra Példaprogram

NEGI (16 bites egész szám negálása)

A eljárás egy 16 bites egész számot (INTEGER) beolvassa az AKKU1-L-ből és negálja. Az eredményt az AKKU1-L-be tárolja. Az A1, A0, OS és OV státuszbiteket állítja az eljárás.

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

33. Táblázat Státusz szó változásai

Státuszbitek képzése A1 A0 OV OS
Eredmény = 0 0 0 0 -
-32 768 ⇐ Eredmény ⇐ -1 0 1 0 -
32 767 >= Eredmény >= 1 1 0 0 -
Eredmény = 32 768 0 1 1 1

34. Táblázat Státuszbitek képzése

S7 NEGI operation
34. ábra Példaprogram

NEGD (32 bites egész szám negálása)

A eljárás egy 32 bites egész számot beolvassa (DINT) az AKKU1-ből és negálja. Az eredményt az AKKU1-be tárolja. Az A1, A0, OS és OV státuszbiteket állítja az eljárás.

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

35. Táblázat Státusz szó változásai

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

36. Táblázat Státuszbitek képzése

S7 NEGD operation
35. ábra Példaprogram

NEGR (IEEE-FP törtszám negálása)

A eljárás egy 32 bites törtszámot (REAL) beolvassa az AKKU1-ből és negálja. Az eredményt az AKKU1-be tárolja.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

37. Táblázat Státusz szó változásai

S7 NEGR operation
36. ábra Példaprogram

TAW (bájtok cseréje az AKKU1-L-ben)

A TAW utasítás felcseréli a bájtok sorrendjét az AKKU1-L-ben. (A lenti ábra ezt szemlélteti). Az AKKU1-H és AKKU2 nem vesz részt a műveletben.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

38. Táblázat Státusz szó változásai

S7 TAW operation logic
51. ábra TAW

S7 TAW operation
37. ábra Példaprogram

TAD (bájtok cseréje az AKKU1-ben)

A TAW utasítás felcseréli a bájtok sorrendjét az AKKU1-ben. (A lenti ábra ezt szemlélteti). Az AKKU2 nem vesz részt a műveletben.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

39. Táblázat Státusz szó változásai

S7 TAD operation logic
38. ábra TAD

S7 TAD operation
39. ábra Példaprogram

RND (törtszám kerekítése egész számra)

A művelet az AKKU1-be töltött IEEE-FP törtszámot (real) 32 bites egész számra kerekíti. Ha a törtszám pont egy páros és páratlan szám közé esik, akkor a kerekítés a páros számra történik (IEEE kerekítési mód: „Round”). Amennyiben az eredmény a DINT típus számábrázolási határain kívül esik, az „OV” és „OS” státuszbitek értéke „1”-re vált, és az eljárás a műveletet nem hajtja végre. Az eredmény az AKKU1-ben tárolódik.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - x x - - - -

40. Táblázat Státusz szó változásai

S7 RND operation
40. ábra Példaprogram

RND+ (törtszám felkerekítése egész számra)

A művelet az AKKU1-be töltött IEEE-FP törtszámot (real) 32 bites következő (eggyel nagyobb) egész számra kerekíti (IEEE kerekítési mód: „Round to +infinity”). Amennyiben az eredmény a DINT típus számábrázolási határain kívül esik, az „OV” és „OS” státuszbitek értéke „1”-re vált, és az eljárás a műveletet nem hajtja végre. Az eredmény az AKKU1-ben tárolódik.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - x x - - - -

41. Táblázat Státusz szó változásai

S7 RND+ operation
41. ábra Példaprogram

RND- (törtszám lekerekítése egész számra)

A művelet az AKKU1-be töltött IEEE-FP törtszámot (real) 32 bites megelőző (eggyel kisebb) egész számra kerekíti (IEEE kerekítési mód: „Round to infinity”). Amennyiben az eredmény a DINT típus számábrázolási határain kívül esik, az „OV” és „OS” státuszbitek értéke „1”-re vált, és az eljárás a műveletet nem hajtja végre. Az eredmény az AKKU1-ben tárolódik.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - x x - - - -

42. Táblázat Státusz szó változásai

S7 RND- operation
42. ábra Példaprogram

TRUNC (törtszám csonkolása egész számra)

A művelet az AKKU1-be töltött IEEE-FP törtszámot (real) 32 bites egész számra alakítja úgí, hogy a törtrészt levágja (csonkolja) (IEEE kerekítési mód: „Round to Zero”). Amennyiben az eredmény a DINT típus számábrázolási határain kívül esik, az „OV” és „OS” státuszbitek értéke „1”-re vált, és az eljárás a műveletet nem hajtja végre. Az eredmény az AKKU1-ben tárolódik.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - x x - - - -

43. Táblázat Státusz szó változásai

S7 TRUNC operation
43. ábra Példaprogram

A számláló egy programozási elem a STEP7-ben. Ezeknek a funkcióknak egy külön terület van fenntartva a CPU-ban, és itt minden számláló 16 bitet foglal. Az AWL programozási nyelv 256 számláló használatát teszi lehetővé, de az adott CPU-tól függ, hogy mennyit lehet ebből használni. A számlálókhoz a számláló műveleteken keresztül lehet hozzáférni, és ezek az alábbiak:

FR Freigabe Zähler Számláló feloldása
L Lade aktuellen Zählwert als Ganzzahl in AKKU 1 Pillanatnyi számlálóérték betöltése AKKU1-be, egész szám formátumban
LC Lade aktuellen Zählwert als BCD in AKKU 1 Pillanatnyi számlálóérték betöltése AKKU1-be, BCD formátumban
R Rücksetze Zähler Számláló nullázása
S Setze Zählerstartwert Számláló beállítása
ZV Zählen vorwärts Számláló előre
ZR Zählen rückwärts Számláló hátra

44. Táblázat Számláló műveletek

FR (számláló feloldása)

Formátuma: FR <számláló>

A számláló feloldása akkor történik meg, ha az utasítás előtt a „VKE” értéke „0”-ról „1”-re vált. Normál használat és a számláló beállítása esetén a feloldás nem szükséges.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 - - 0

45. Táblázat Státusz szó változásai

L (számlálóérték betöltése egész számként)

Formátuma: L <számláló>

A számláló értékét betölti az AKKU1-L-be egész számként, időalap nélkül, miután lementette az AKKU1 és AKKU2 értékét. A számláló maximális értéke „999” lehet, ennek ábrázolására 10 bit elegendő, így az AKKU1-L felső 6 bitjét nem tölti ki a művelet.

Az AKKU1-L-ből akkor is be kell tölteni a számláló értéket, ha a számláló nem kerül elindításra (VKE = 0).

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

46. Táblázat Státusz szó változásai

LC (számlálóérték betöltése BCD-ként)

Formátuma: LC <számláló>

A számláló értékét betölti az AKKU1-L-be BCD-ként, miután lementette az AKKU1 és AKKU2 értékét. A számláló maximális értéke „999” lehet, ennek ábrázolására 12 bit (3*4) elegendő, így az AKKU1-L felső 4 bitjét nem tölti ki a művelet.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

47. Táblázat Státusz szó változásai

R (számláló nullázása)

Formátuma: R <számláló>

„0” értéket tölt be a számlálóba, ha a VKE = 1.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 - - 0

48. Táblázat Státusz szó változásai

S (számláló beállítása)

Formátuma: S <számláló>

Betölti az AKKU1-L tartalmát a számlálóba, ha a VKE „0”-ról „1”-re változik. A számláló értéket „0” és „999” között kell megadni, BCD formátumban.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 - - 0

49. Táblázat Státusz szó változásai

ZV (számláló előre)

Formátuma: ZV <számláló>

A számláló értékét „1”-gyel növeli, amennyiben a VKE értéke „0”-ról „1”-re vált, és a számláló értéke nem érte el a „999” értéket. Amennyiben a számláló elérte a felső határértékét, a VKE változása a számlálóra hatástalan marad. A „999” elérése esetén a művelet nem állítja az (OV) túlcsordulás bitet.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 - - 0

50. Táblázat Státusz szó változásai

S7 ZV operation
44. ábra ZV példaprogram

L MW 10
L 1
+I 
T MW 10

L C#0      // Számlálóba betöltendő érték
U M 11.7   // A számláló inicializálását végző bit
S Z 12     // a 12. számláló

U M 11.1   // Számlálást vezérlő bit
ZV Z 12    // Minden VKE 0->1 után számol egyet

U Z 12     // Ha a számlálás ismét a "0" értéken áll
= A 11.0   // a kimenet "0"-ra vált, egyébként "1"

L Z 12

3. Példaprogram ZV

ZR (számláló hátra)

Formátuma: ZR <számláló>

A számláló értékét „1”-gyel csökkenti, amennyiben a VKE értéke „0”-ról „1”-re vált, és a számláló értéke nem érte el a „0” értéket. Amennyiben a számláló elérte a alsó határértékét, a VKE változása a számlálóra hatástalan marad, a számláló nem használja a negatív értéktartományt.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 - - 0

51. Táblázat Státusz szó változásai

L MW 10
L 1
+I 
T MW 10

L C#55     // Számlálóba betöltendő érték
U M 11.7   // A számláló inicializálását végző bit
S Z 12     // a 12. számláló

U M 11.1   // Visszaszámlálást vezérlő bit
ZR Z 12    // Minden VKE 0->1 után számol egyet

U Z 12     // Ha a számlálás elérte a "0" értéket
= A 11.0   // a kimenet "0"-ra vált, egyébként "1"

L Z 12

4. Példaprogram ZR

Az „AUF” művelettel egy globális vagy egy instant adatblokkot (DB-t) nyithatunk meg. Egyidejűleg egy globális és egy instant DB lehet nyitva. Ebben a fejezetben az alábbi utasítások állnak rendelkezésére:

AUF Datenbaustein öffnen Adatblokk (DB) nyitása
TDB Tausche Global-DB und Instanz-DB Globális DB és instant DB cseréje
L DBLG Lade Länge Global-DB in AKKU 1 Globális DB hosszának betöltése az AKKU1-be
L DBNO Lade Nummer Global-DB in AKKU 1 Globális DB számának betöltése az AKKU1-be
L DILG Lade Länge Instanz-DB in AKKU 1 Instant DB hosszának betöltése az AKKU1-be
L DINO Lade Nummer Instanz-DB in AKKU 1 Instant DB számának betöltése az AKKU1-be

52. Táblázat Adatblokk műveletek összefoglalása

AUF (Adatblokk nyitása)

Formátuma: AUF <Adatblokk>

  • Az AUF művelet a DI-k és DB-k nyitására alkalmas.
  • Az adatblokk száma 1 és 65535 között lehet, de ennek értékét az adott PLC is behatárolhatja.

Az AUF művelet egy adatblokkot nyit, mely lehet instant DI vagy globális DB. Egyidejűleg egy DI és egy DB lehet nyitva.

AUF DB 10    // 10. globális DB nyitása
L DBW 12     // 12.word a DB-ből
T MW 10      // memóriába másol

AUF DI 11    // 11. instant DI nyitása
L DIB 12     // 12 byte olvasása a DI-ből
T DBB 24     // átmásolása a DB-be

5. Példaprogram AUF

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

53. Táblázat Státusz szó változásai

Az adatblokkok tartalmát direkt hivatkozásokkal is el lehet érni, például : db10.dbx12.2 vagy db10.dbd12.

Amennyiben a meghívni kívánt DB és az OB121 sincs letöltve, akkor a PLC „stop”-ba megy az alábbi hibával „DB nicht geladen”. Előfordulhat, hogy az OB121 lekezeli a hibát, de az új funkciónk akkor is furcsa dolgokat művel. Ilyenkor érdemes a ránézni a diagnózisra, mert ha a lenti hibaüzenetet találja ott, biztos lehet a hiba okában: elfelejtette letölteni a DB-t.

DB not found error, than PLC stop
45. ábra DB nincs letöltve hiba

TDB (Globális DB és instant DB cseréje)

Formátuma: TDB
A TDB felcseréli a adatblokk regiszter tartalmát, ezáltal felcseréli egymással a nyitott instant DI-t és a globális DB-t.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

54. Táblázat Státusz szó változásai

L DBLG (Globális DB hosszának betöltése az AKKU1-be)

Formátuma: L DBLG

A nyitott globális DB hosszát betölti az AKKU1-be, miután az AKKU1 és AKKU2 tartalmát lementi.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

55. Táblázat Státusz szó változásai

AUF DB 10 // DB10 nyitása
L DBLG    // hossz lekérdezése
L 4       // a DB10 REAL típusú array
/I        // így a byte-ok számát 4-gyel
T MW 10   // kell osztani az elemek számához.

6. Példaprogram L DBLG

S7 L DBLG operation
46. ábra Példaprogram futás közben

L DBNO (Globális DB számának betöltése az AKKU1-be)

Formátuma: L DBNO

A nyitott globális DB számát betölti az AKKU1-be, miután az AKKU1 és AKKU2 tartalmát lementi.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

56. Táblázat Státusz szó változásai

S7 L DBNO operation
47. ábra Példaprogram

L DILG (Instant DB hosszának betöltése az AKKU1-be)

Formátuma: L DILG

A nyitott instant DB hosszát betölti az AKKU1-be, miután az AKKU1 és AKKU2 tartalmát lementi.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

57. Táblázat Státusz szó változásai

L DINO (Instant DB számának betöltése az AKKU1-be)

Formátuma: L DINO

A nyitott instant DB számát betölti az AKKU1-be, miután az AKKU1 és AKKU2 tartalmát lementi.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

58. Táblázat Státusz szó változásai

Az ugrás művelet lehetővé teszi, hogy a program futását egy adott ponton megszakítsa úgy, hogy a végrehajtást egy – a program későbbi szakaszában található – pontra irányítja át. Az ugrás műveletével lehetővé válik, hogy egy programrészt többször is lefuttasson (LOOP).

A LOOP-olással azért óvatosan kell bánni. Minden PLC-nek van egy ciklus felügyeleti ideje (Baugruppezustand » Zykluszeit » Zyklusüberwachungszeit). Amennyiben a program futásideje ezt az időt meghaladja, a PLC „stop”-ba megy. Ezt az időt nem lehet felülbírálni, OB-vel kezelni, a „stop” elkerülhetetlen. Gyakran előfordul, hogy egymás után egy eljárást copy – paste technikával sokszorosítunk.
Amennyiben egy ugrásban a címkét nem sikerül átírni a sajátjára, hanem a korábbi címkén marad, a PLC „stop”-ba fog szaladni, ami például egy erőműi rendszer esetén túlmutat a kínos programozói elírás fogalmán.
A lenti példán ezt a programot mutatom be. Látszik, hogy a második ugrásnál „elfelejtettem” átírni az ugrási címkét (piros), és ebben az esetben kínos leálláshoz vezet a LOOP „alkalmazása”.

U  M  11.1
SPBN m001 

xxx          // itt számolok, és ezt sokszorosítom   

m001: NOP 0

U  M  11.2
SPBN m001    << Hiba!

xxx          // itt számolok, és ezt sokszorosítom   

m002: NOP 0

U  M  11.3
SPBN m003 

xxx          // itt számolok, és ezt sokszorosítom   

m003: NOP 0

7. Példaprogram Stoppoló programozói tévedés

Az ugrási címkét egy maximum 4 karakteres mező jelöli, melyet egy kettőspont („:”) karakterrel kell kezdeni. A címkével kell kezdeni azt a sort, ahol a program futása folytatódik.

Figyeljen arra, hogy a S7-300-as CPU-kon nem megengedett a kiértékelési láncba való beugrás, a címke csak a lánc előtt helyezkedhet el (kivétel a CPU 318-2).

Parancsnémetülmagyarul
SPA Springe absolut Abszolút ugrás
SPL Sprungleiste Ugráslista
SPB Springe, wenn VKE = 1 Ugrás, ha a VKE = 1
SPBN Springe, wenn VKE = 0 Ugrás, ha a VKE = 0
SPBB Springe, wenn VKE = 1 und rette VKE ins BIE Ugrás, ha a VKE = 1, és menti a VKE-t a BIE-be
SPBNB Springe, wenn VKE = 0 und rette VKE ins BIE Ugrás, ha a VKE = 0, és menti a VKE-t a BIE-be
SPBI Springe, wenn BIE = 1 Ugrás, ha a BIE = 1
SPBIN Springe, wenn BIE = 0 Ugrás, ha a BIE = 0
SPO Springe, wenn OV = 1 Ugrás, ha az OV = 1
SPS Springe, wenn OS = 1 Ugrás, ha az OS = 1
SPZ Springe, wenn Eredmény = 0 Ugrás, ha az eredmény = 0
SPN Springe, wenn Eredmény <> 0 Ugrás, ha az eredmény <> 0
SPP Springe, wenn Eredmény > 0 Ugrás, ha az eredmény > 0
SPM Springe, wenn Eredmény < 0 Ugrás, ha az eredmény < 0
SPPZ Springe, wenn Eredmény >= 0 Ugrás, ha az eredmény >= 0
SPMZ Springe, wenn Eredmény ⇐ 0 Ugrás, ha az eredmény ⇐ 0
SPU Springe, wenn Eredmény ungültig Ugrás, ha érvénytelen az eredmény

59. Táblázat Ugrás műveletek összefoglalása

A VKE, BIE, OV, OS leírását a státusz szó fejezetben találja.

SPA (Abszolút ugrás)

Formátuma: SPA <címke>

Feltétel nélkül megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az ugrás célsorát egy négy karakteres címke jelöli.

Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

60. Táblázat Státusz szó változásai

U M 10.0      // ugrási feltételek
U M 11.0
SPB M011      // ha a feltételek igazak, ugrik

SET           // egyébként végrehajtja ezt a részt
= M 12.0

SPA M012      // majd feltétel nélkül ugrik

M011: NOP 0   // feltételes ugrás címke

CLR           // feltételek teljesülése esetén
= M 13.0      // ez a rész végrehajtásra kerül
= M 14.0

M012: NOP 0   // feltétel nélküli ugrás címke 

8. Példaprogram SPA

SPL (Ugráslista)

Formátuma: SPL <címke>

Lista szerinti ugrás. A lista elemeinek maximális száma 255 (címke). A műveletet feltétlenül az SPL-lel kell kezdeni. Minden ugrási címkét SPA utasítással kell definiálni, melyek közül az a számú kerül meghívásra, mely érték az AKKU1-L-L-ben van (0 – 255). Ha az AKKU1-L-L nagyobb számot tartalmaz, mint amennyi SPA felsorolásra került, akkor az ugrás az SPL-nél definiált címkére történik.

Az ugrás minden célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkéknek az adott eljáráson belül kell lennie, és mindegyik csak egyszer szerepelhet. Több SPA-ban és SPL-ben is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

61. Táblázat Státusz szó változásai

L MB 20      // ugráspozíció megadása
SPL mas      // minden más esetben ide ugrik
SPA ide0     // MB20 = 0 esetén ide ugrik
SPA ide1     // MB20 = 1 esetén ide ugrik
SPA ide2     // MB20 = 2 esetén ide ugrik
SPA ide3     // MB20 = 3 esetén ide ugrik

mas: L 100   // MB20 > 3 esetén 100-at tölt az AKKU1-be
SPA tov
ide0: L 0    // MB20 = 0 esetén 0-át tölt az AKKU1-be
SPA tov
ide1: L 1    // MB20 = 1 esetén 1-et tölt az AKKU1-be
SPA tov
ide2: L 2    // MB20 = 2 esetén 2-t tölt az AKKU1-be
SPA tov
ide3: L 3    // MB20 = 3 esetén 3-at tölt az AKKU1-be
SPA tov
tov: T MW 30 // AKKU1 mentése MW30-ba 

9. Példaprogram SPL

SPB (Ugrás, ha a VKE = 1)

Formátuma: SPB <címke>

A VKE = 1 állapot estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az ugrás célsorát egy négy karakteres címke jelöli.

Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 1 1 0

62. Táblázat Státusz szó változásai

U M 10.0     // ugrási feltételek
U M 11.0
SPB M011     // ha a feltételek igazak, ugrik

SET          // egyébként végrehajtja ezt a részt
= M 12.0

SPA M012     // majd feltétel nélkül ugrik

M011: NOP 0  // feltételes ugrás címke

CLR          // feltételek teljesülése esetén
= M 13.0     // ez a rész végrehajtásra kerül
= M 14.0

M012: NOP 0  // feltétel nélküli ugrás címke

10. Példaprogram SPB

A VKE leírását a státusz szó fejezetben találja.

SPBN (Ugrás, ha a VKE = 0)

Formátuma: SPBN <címke>

A VKE = 0 állapot estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az ugrás célsorát egy négy karakteres címke jelöli.

Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 1 1 0

63. Táblázat Státusz szó változásai

U M 10.0     // ugrási feltételek
U M 11.0
SPBN M011    // ha a feltételek nem igazak, ugrik

SET          // egyébként végrehajtja ezt a részt
= M 12.0

SPA M012     // majd feltétel nélkül ugrik

M011: NOP 0  // feltételes ugrás címke

CLR          // feltételek teljesülése esetén
= M 13.0     // ez a rész végrehajtásra kerül
= M 14.0

M012: NOP 0  // feltétel nélküli ugrás címke

11. Példaprogram SPBN

A VKE leírását a státusz szó fejezetben találja.

SPBB (Ugrás, ha a VKE = 1, és menti a VKE-t a BIE-be)

Formátuma: SPBB <címke>

A VKE = 1 állapot estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást, a VKE állapotot átmásolja a BIE bitbe.

Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIEA1A0OVOSORSTAVKE/ER
Írja: x - - - - 0 1 1 0

64. Táblázat Státusz szó változásai

U M 10.0      // ugrási feltételek
U M 11.0
SPBB M011     // ha a feltételek igazak, ugrik

SET           // egyébként végrehajtja ezt a részt
= M 12.0

SPA M012      // majd feltétel nélkül ugrik

M011: NOP 0   // feltételes ugrás címke

CLR           // feltételek teljesülése esetén
= M 13.0      // ez a rész végrehajtásra kerül
= M 14.0

M012: NOP 0   // feltétel nélküli ugrás címke

12. Példaprogram SPBB

A VKE, BIE leírását a státusz szó fejezetben találja.

SPBNB (Ugrás, ha a VKE = 0, és menti a VKE-t a BIE-be)

Formátuma: SPBNB <címke>

A VKE = 0 állapot estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást, a VKE állapotot átmásolja a BIE bitbe.

Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIEA1A0OVOSORSTAVKE/ER
Írja: x - - - - 0 1 1 0

65. Táblázat Státusz szó változásai

U M 10.0       // ugrási feltételek
U M 11.0
SPBN M011      // ha a feltételek nem igazak, ugrik

SET            // egyébként végrehajtja ezt a részt
= M 12.0

SPA M012       // majd feltétel nélkül ugrik

M011: NOP 0    // feltételes ugrás címke

CLR            // feltételek teljesülése esetén
= M 13.0       // ez a rész végrehajtásra kerül
= M 14.0

M012: NOP 0    // feltétel nélküli ugrás címke

13. Példaprogram SPBNB

A VKE, BIE leírását a státusz szó fejezetben találja.

SPBI (Ugrás, ha a BIE = 1)

Formátuma: SPBI <címke>

A BIE = 1 állapot estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az ugrás célsorát egy négy karakteres címke jelöli.

Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 1 - 0

66. Táblázat Státusz szó változásai

SPBIN (Ugrás, ha a BIE = 0)

Formátuma: SPBIN <címke>

A BIE = 0 állapot estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az ugrás célsorát egy négy karakteres címke jelöli.

Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 1 - 0

67. Táblázat Státusz szó változásai

SPO (Ugrás, ha az OV = 1)

Formátuma: SPO <címke>

A OV = 1 állapot estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az OV státusz bit akkor vált egyre, ha a számolási műveletben túlcsordulás történik. Az SPO csak közvetlenül a túlcsordulást produkáló művelet után használható, a következő – nem túlcsordulásos – művelet az OV bitet „0”-ra állítja.

Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

68. Táblázat Státusz szó változásai

L 23333       // túlcsordulás képzése
L 234
*I            // túlcsordulás OV=1
T MW 22

// L 12       // kikommentelve, mert itt
// L 14       // nincs túlcsordulás, az
// *I         // OV visszaíródna 0-ra (lásd: SPS)
// T MW 24

SPO m012      // ha OV=1, ugrás

BEA           // eljárás vége, ha OV=0

m012: NOP 0   // túlcsordulás kezelése

SET 
= M 122.2     // pl. hibaüzenet generálása 

14. Példaprogram SPO

A VKE, BIE, OV, OS leírását a státusz szó fejezetben találja.

SPS (Ugrás, ha az OS = 1)

Formátuma: SPS <címke>

A OS = 1 állapot estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az OV státusz bit akkor vált egyre, ha a számolási műveletben túlcsordulás történik. Az SPO csak közvetlenül a túlcsordulást produkáló művelet után használható, a következő – nem túlcsordulásos – művelet az OV bitet „0”-ra állítja.

Az OS bit ezzel szemben tárolja a túlcsordulás tényét

  • az SPS műveletig,
  • az eljárás végéig,
  • az első CALL parancsig.

Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

69. Táblázat Státusz szó változásai

L 23333       // túlcsordulás képzése
L 234
*I            // túlcsordulás OV=1
T MW 22

L 12          // nincs túlcsordulás, az
L 14          // OV visszaíródik 0-ra
*I            // de az OS=1 továbbra is
T MW 24

SPS m012      // ha OS=1, ugrás

BEA           // eljárás vége, ha OV=0

m012: NOP 0   // túlcsordulás kezelése

SET 
= M 122.2     // pl. hibaüzenet generálása

15. Példaprogram SPS

A VKE, BIE, OV, OS leírását a státusz szó fejezetben találja.

SPZ (Ugrás, ha az eredmény = 0)

Formátuma: SPZ <címke>

Az A1 = 0 és A0 = 0 állapotok estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az A1 = 0 és A0 =0 abban az esetben következik be, ha a megelőző összehasonlítási művelet eredménye egyenlőség (lásd A1, A0 státuszbitek jelentése).

Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

70. Táblázat Státusz szó változásai

L 123       // viszonylag egyszerű összehasonlítás
L 123       // melynek várható eredménye egyenlőség
SPZ ide     // lesz.

SPA tov     // ha nem egyenlő, tov

ide: NOP 0

SET 
= M 123.0   // ha egyenlő, állítja a bitet

tov: NOP 0 

16. Példaprogram SPZ

Az A1, A0 státuszbitek leírását a státusz szó fejezetben találja.

SPN (Ugrás, ha az eredmény <> 0)

Formátuma: SPN <címke>

Az A1 = 0/A0 = 1 vagy A1 = 1/A0 = 0 állapotok estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az A1 = 0/A0 = 1 vagy A1 = 1/A0 = 0 állapot abban az esetben következik be, ha a megelőző összehasonlítási művelet eredménye egyenlőtlenség (lásd A1, A0 státuszbitek jelentése).

Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

71. Táblázat Státusz szó változásai

L 123       // viszonylag egyszerű összehasonlítás
L 122       // melynek várható eredménye <>
SPN ide     // lesz.

SPA tov     // ha egyenlő, tov

ide: NOP 0

SET 
= M 123.0   // ha nem egyenlő, állítja a bitet

tov: NOP 0  // tov

17. Példaprogram SPN

Az A1, A0 státuszbitek leírását a státusz szó fejezetben találja.

SPP (Ugrás, ha az eredmény > 0)

Formátuma: SPP <címke>

Az A1 = 1 és A0 = 0 állapotok estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az A1 = 1 és A0 =0 abban az esetben következik be, ha az AKKU1 < AKKU2 (lásd 13. Táblázat A1, A0 státuszbitek jelentése).

Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

72. Táblázat Státusz szó változásai

L 124       // AKKU2
L 120       // AKKU1
==I 
SPP ide     // ha AKKU2 > AKKU1, ugrás 

SPA tov     //egyébként, tov

ide: NOP 0

SET 
= M 123.0   // ha a feltétel igaz, állítja a bitet

tov: NOP 0  // tov

18. Példaprogram SPP

Az A1, A0 státuszbitek leírását a státusz szó fejezetben találja.

SPM (Ugrás, ha az eredmény < 0)

Formátuma: SPM <címke>

Az A1 = 0 és A0 = 1 állapotok estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az A1 = 0 és A0 =1 abban az esetben következik be, ha az AKKU1 > AKKU2 (lásd 13. Táblázat A1, A0 státuszbitek jelentése).

Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

73. Táblázat Státusz szó változásai

L 100        // AKKU2
L 120        // AKKU1
==I 
SPM ide      // ha AKKU2 < AKKU1, ugrás 

SPA tov      //egyébként, tov

ide: NOP 0

SET 
= M 123.0    // ha a feltétel igaz, állítja a bitet

tov: NOP 0   // tov

19. Példaprogram SPM

Az A1, A0 státuszbitek leírását a státusz szó fejezetben találja.

SPPZ (Ugrás, ha az eredmény >= 0)

Formátuma: SPPZ <címke>

Az A1 = 0/A0 = 0 vagy A1 = 1/A0 = 0 állapotok estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. A fenti állapot abban az esetben következik be, ha az AKKU1 ⇐ AKKU2 (lásd 13. Táblázat A1, A0 státuszbitek jelentése).

Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

74. Táblázat Státusz szó változásai

L 124          // AKKU2
L 120          // AKKU1
==I 
SPPZ ide       // ha AKKU2 >= AKKU1, ugrás 

SPA tov        //egyébként, tov

ide: NOP 0

SET 
= M 123.0      // ha a feltétel igaz, állítja a bitet

tov: NOP 0     // tov

20. Példaprogram SPPZ

Az A1, A0 státuszbitek leírását a státusz szó fejezetben találja.

SPMZ (Ugrás, ha az eredmény < 0)

Formátuma: SPMZ <címke>

Az A1 = 0/A0 = 0 vagy A1 = 0/A0 = 1 állapotok estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. A fenti állapot abban az esetben következik be, ha az AKKU1 >= AKKU2 (lásd 13. Táblázat A1, A0 státuszbitek jelentése).

Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

75. Táblázat Státusz szó változásai

L 100       // AKKU2
L 120       // AKKU1
==I 
SPM ide     // ha AKKU2 <= AKKU1, ugrás 

SPA tov     //egyébként, tov

ide: NOP 0

SET 
= M 123.0   // ha a feltétel igaz, állítja a bitet

tov: NOP 0  // tov

21. Példaprogram SPMZ

Az A1, A0 státuszbitek leírását a státusz szó fejezetben találja.

SPU (Ugráaacute;s, ha érvénytelen az eredmény)

Formátuma: SPU <címke>

Az A1 = 1 és A0 = 1 állapotok estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az A1 = 1 és A0 =1 abban az esetben következik be, ha az ugrást megelőző művelet érvénytelen (lásd A1, A0 státuszbitek jelentése).Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

76. Táblázat Státusz szó változásai

L 100           // AKKU2
L 0             // AKKU1
/I 
SPU ide         // érvénytelen művelet esetén ugrás 

SPA tov         //egyébként, tov

ide: NOP 0

SET 
= M 123.0       // a nullával való osztás érvénytelen

tov: NOP 0      // tov

22. Példaprogram SPU

Az A1, A0 státuszbitek leírását a státusz szó fejezetben találja.

LOOP (hurok)

Formátuma: LOOP <címke>

A LOOP művelet ugrik, és csökkenti az AKKU1-L értékét, ha az AKKU1-L <> 0. A hurokszámláló egy előjel nélküli (16 bites) egész szám változó, melynek értéke betöltésre kerül az AKKU1-be. A LOOP mindaddig végrehajtásra kerül, amíg az AKKU1-L <> 0.

Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

A LOOP-olással azért óvatosan kell bánni. Minden PLC-nek van egy ciklus felügyeleti ideje (Baugruppezustand » Zykluszeit » Zyklusüberwachungszeit). Amennyiben a program futásideje ezt az időt meghaladja, a PLC „stop”-ba megy. Ezt az időt nem lehet felülbírálni, OB-vel kezelni, a „stop” elkerülhetetlen.
Gyakran előfordul, hogy egymás után egy eljárást copy – paste technikával sokszorosítunk. Amennyiben egy ugrásban a címkét nem sikerül átírni a sajátjára, hanem a korábbi címkén marad, a PLC „stop”-ba fog szaladni, ami például egy erőműi rendszer esetén túlmutat a kínos programozói elírás fogalmán.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

77. Táblázat Státusz szó változásai

L 7
T MW 8        // Faktoriális alap (7)
L 0
T MW 10       // Lépegelő (0)
L 1
T MW 12       // Szorozgató (1)

L MW 8        // Alap betöltése a számlálóba
itt: T MW 14  // Ennek értékét csökkenti ciklusonként a LOOP

L MW 10       // Lépegetés
L 1
+I 
T MW 10       // Lépegető
L MW 12       // szorozva a szorozgatóval
*I 
T MW 12       // eredmény vissza a szorozgatóba



L MW 14       // számláló csökkentése
LOOP itt      // LOOP-olásonként



L MW 10       // eredmény: faktoriális alap (7)
L MW 12       // eredmény: faktoriális (7!) (5040)

              // ha ez utóbbi két változó nem "látszik"
              // a státuszban, akkor új Netzwerk-be kell másolni ezeket.

23. Példaprogram LOOP „Faktoriális számolás”

Egész szám műveletek esetén a program az AKKU1 és AKKU2 között végzi a műveletet. Az eredmény az AKKU1-ben jelenik meg. Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad. Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

jelölés németül magyarul
+IAddiere AKKU 1 und 2 als Ganzzahl (16 Bit) AKKU1 és AKKU2 összeadása 16 bites egész számként
-ISubtrahiere AKKU 1 von 2 als Ganzzahl (16 Bit) AKKU1 kivonása AKKU2-ből 16 bites egész számként
*IMultipliziere AKKU 1 und 2 als Ganzzahl (16 Bit) AKKU1 és AKKU2 összeszorzása 16 bites egész számként
/IDividiere AKKU 2 durch 1 als Ganzzahl (16 Bit) AKKU2 osztása AKKU1-gyel 16 bites egész számként
+Addiere Ganzzahlkonstante (16, 32 Bit) Egész szám konstans hozzáadása (16, 32 bit)
+DAddiere AKKU 1 und 2 als Ganzzahl (32 Bit) AKKU1 és AKKU2 összeadása 32 bites egész számként
-DSubtrahiere AKKU 1 von 2 als Ganzzahl (32 Bit) AKKU1 kivonása AKKU2-ből 32 bites egész számként
*DMultipliziere AKKU 1 und 2 als Ganzzahl (32 Bit) AKKU1 és AKKU2 összeszorzása 32 bites egész számként
/DDividiere AKKU 2 durch 1 als Ganzzahl (32 Bit) AKKU2 osztása AKKU1-gyel 32 bites egész számként
MODDivisionsrest Ganzzahl (32 Bit) Maradék képzés 32 bites egész számon 78. Táblázat Egész szám műveletek

78. Táblázat Egész szám műveletek

Az egész szám műveletek befolyásolják az

A1, A0, OV és OS státuszbiteket, az alábbi táblázat szerint.

hossz Érvényesség, érvényes műveleti tartomány esetén A1 A0 OV OS
0 (nulla) 0 0 0 *
16 bit:
32 bit:
-32 768 ⇐ Eredmény < 0 (negatív szám)
-2 147 483 648 ⇐ Eredmény < 0 (negatív szám)
0 1 0 *
16 bit:
32 bit:
32 767 >= Eredmény > 0 (pozitív szám)
2 147 483 647 >= Eredmény > 0 (pozitív szám)
1 0 0 *

ddd

hossz Érvényesség, érvénytelen műveleti tartomány esetén A1 A0 OV OS
16 bit:
32 bit:
Alsó határérték alatti eredmény összeadásnál
Eredmény = -65536
Eredmény = -4 294 967 296
0 0 1 1
16 bit:
32 bit:
Alsó határérték alatti eredmény szorzásnál
Eredmény < -32 768 (negatív szám)
Eredmény < -2 147 483 648 (negatív szám)
0 1 1 1
16 bit:
32 bit:
Felső határérték feletti eredmény összeadásnál, kivonásnál
Eredmény > 32 767 (pozitív szám)
Eredmény > 2 147 483 647 (pozitív szám)
0 1 1 1
16 bit:
32 bit:
Felső határérték feletti eredmény szorzásnál, osztásnál
Eredmény > 32 767 (pozitív szám)
Eredmény > 2 147 483 647 (pozitív szám)
1 0 1 1
16 bit:
32 bit:
Alsó határérték alatti eredmény összeadásnál, kivonásnál
Eredmény < -32 768 (negatív szám)
Eredmény < -2 147 483 648 (negatív szám)
1 0 1 1
Nullával való osztás 1 1 1 1
+D: Eredmény = -4 294 967 296 0 0 1 1

79. Táblázat Státuszbit állapotok egész szám műveletek esetén

*: az OS bit állapota nem függ az eredménytől.

A VKE, A1, A0, OV, OS leírását a státusz szó fejezetben találja.

+I (AKKU1 és AKKU2 összeadása 16 bites egész számként)

Formátuma: +I

AKKU1-L és AKKU2-L összeadása 16 bites egész számként, az eredmény az AKKU1-L-be kerül mentésre. Az akku-k tartalmát a művelet egész számként (

INT formátumként) értelmezi. A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

80. Táblázat Státusz szó változásai

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

81. Táblázat A1, A0, OV, OS státuszbitek képzése

L MW 10        // AKKU2
L MW 12        // AKKU1
+I             // összeadás
T MW 14        // eredmény -> AKKU1-be

24. Példaprogram +I

A VKE, A1, A0, OV, OS leírását a státusz szó fejezetben találja.

-I (AKKU1 kivonása AKKU2-ből 16 bites egész számként)

Formátuma: -I

AKKU1-L kivonása AKKU2-L-ből 16 bites egész számként, az eredmény az AKKU1-L-be kerül mentésre. Az akku-k tartalmát a művelet egész számként (

INT formátumként) értelmezi. A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

82. Táblázat Státusz szó változásai

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 -
65534 >= Különbség > 32767 0 1 1 1
-65535 ⇐ Különbség < -32768 1 0 1 1

83. Táblázat A1, A0, OV, OS státuszbitek képzése

L MW 10      // AKKU2
L MW 12      // AKKU1
-I           // kivonás
T MW 14      // eredmény -> AKKU1-be

25. Példaprogram -I

A VKE, A1, A0, OV, OS leírását a státusz szó fejezetben találja.

*I (AKKU1 és AKKU2 összeszorzása 16 bites egész számként)

Formátuma: *I

AKKU1-L és AKKU2-L összeszorzása 16 bites egész számként, az eredmény az AKKU1-L-be kerül mentésre. Az akku-k tartalmát a művelet egész számként (

INT formátumként) értelmezi. A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

84. Táblázat Státusz szó változásai

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 -
Szorzat > 32767 1 0 1 1
Szorzat < -32768 0 1 1 1

85. Táblázat A1, A0, OV, OS státuszbitek képzése

L MW 10      // AKKU2
L MW 12      // AKKU1
*I           // szorzás
T MW 14      // eredmény -> AKKU1-ből

26. Példaprogram *I

A VKE, A1, A0, OV, OS leírását a státusz szó fejezetben találja.

/I (AKKU2 osztása AKKU1-gyel 16 bites egész számként)

Formátuma: /I

AKKU2 osztása AKKU1-gyel 16 bites egész számként, az eredmény az AKKU1-be kerül mentésre, úgy hogy az osztási eredmény az AKKU1-L-be kerül, az osztási maradék pedig az AKKU1-H-ba. Az akku-k tartalmát a művelet egész számként (

INT formátumként) értelmezi. A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

86. Táblázat Státusz szó változásai

Státuszbitek képzése A1 A0 OV OS
Osztási eredmény = 0 0 0 0 -
-32768 ⇐ Osztási eredmény < 0 0 1 0 -
32767 >= Osztási eredmény > 0 1 0 0 -
Osztási eredmény = 32 768 1 0 1 1
Nullával való osztás 1 1 1 1

87. Táblázat A1, A0, OV, OS státuszbitek képzése

L 254
T MW 10     // AKKU2 tartalma
L 5
T MW 12     // AKKU1 tartalma

L MW 10     // AKKU2
L MW 12     // AKKU1
/I          // összeadás
T MD 20     // eredmény -> AKKU1-be

27. Példaprogram /I

S7 /I integer operation
48. ábra Példaprogram /I státusz

Osztott érték (AKKU2) hex: fe dec: 254
Osztó érték (AKKU1) hex: 5 dec: 5
Osztási eredmény (AKKU1-L) hex: 32 dec: 50
Osztási maradék (AKKU1-H) hex: 4 dec: 4

A VKE, A1, A0, OV, OS leírását a státusz szó fejezetben találja.

+ (Egész szám konstans hozzáadása (16, 32 bit))

Formátuma: + <egész szám

konstans formátum>+ <egész szám

konstans formátum>
Az egész szám konstans az AKKU1 értékéhez kerül hozzáadásra, az eredmény az AKKU1-ben tárolódik. A művelet a státusz bitek értékét nem befolyásolja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

+ <16 bites egész szám

konstans formátum>
A 16 bites egész szám konstans az AKKU1-L értékéhez kerül hozzáadásra (a -32768 - +32767 értéktartományban), az eredmény az AKKU1-L-ben tárolódik. A művelet a státusz bitek értékét nem befolyásolja.Két akku-s CPU-s esetén az AKKU2 és AKKU1-H tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 és AKKU1-H tartalma nem változik.

+ <32 bites egész szám

konstans formátum>
A 32 bites egész szám konstans az AKKU1 értékéhez kerül hozzáadásra (-2.147.483.648 - 2.147.483.647 értéktartományban), az eredmény az AKKU1-ben tárolódik. A művelet a státusz bitek értékét nem befolyásolja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

88. Táblázat Státusz szó változásai

L 100
T MW 100     // kezdőérték betöltése
L 100
T MD 200     // szintén



L MW 100     // 16 bites egész szám
+ 12         // 16 bites egész konstans
T MW 100     // eredmény

L MD 200     // 32 bites egész szám
+ L#40000    // 32 bites egész konstans
T MD 200     // eredmény

28. Példaprogram +konstans

+D (AKKU1 és AKKU2 összeadása 32 bites egész számként)

Formátuma: +D

AKKU1 és AKKU2 összeadása 32 bites egész számként, az eredmény az AKKU1-be kerül mentésre. Az akku-k tartalmát a művelet egész számként (

DINT formátumként) értelmezi. A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

89. Táblázat Státusz szó változásai

Státuszbitek képzése A1 A0 OV OS
Összeg = 0 0 0 0 -
-2.147.483.648 < = Összeg < 0 0 1 0 -
2.147.483.647 > = Összeg > 0 1 0 0 -
Összeg = -4.294.967.296 0 0 1 1
4.294.967.294 > = Összeg > 2.147.483.647 0 1 1 1
-4.294.967.295 < = Összeg < -2.147.483.648 1 0 1 1

90. Táblázat A1, A0, OV, OS státuszbitek képzése

L MD 8    // AKKU2
L MD 12   // AKKU1
+D        // összeadás
T MD 16   // eredmény -> AKKU1-be

29. Példaprogram +D

A VKE, A1, A0, OV, OS leírását a státusz szó fejezetben találja.

-D (AKKU1 kivonása AKKU2-ből 32 bites egész számként)

Formátuma: -D

AKKU1 kivonása AKKU2-ből 32 bites egész számként, az eredmény az AKKU1-be kerül mentésre. Az akku-k tartalmát a művelet egész számként (

DINT formátumként) értelmezi. A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

91. Táblázat Státusz szó változásai

Státuszbitek képzése A1 A0 OV OS
Különbség = 0 0 0 0 -
-2.147.483.648 ⇐ Különbség < 0 0 1 0 -
2.147.483.647 >= Különbség > 0 1 0 0 -
4.294.967.295 >= Különbség > 2.147.483.647 0 1 1 1
-4.294.967.295 ⇐ Különbség < -2.147.483.648 1 0 1 1

92. Táblázat A1, A0, OV, OS státuszbitek képzése

L MD 8     // AKKU2
L MD 12    // AKKU1
-D         // kivonás
T MD 16    // eredmény -> AKKU1-be

30. Példaprogram -D

A VKE, A1, A0, OV, OS leírását a státusz szó fejezetben találja.

*D (AKKU1 és AKKU2 összeszorzása 32 bites egész számként)

Formátuma: *D

AKKU1 és AKKU2 összeszorzása 32 bites egész számként, az eredmény az AKKU1-be kerül mentésre. Az akku-k tartalmát a művelet egész számként (

INT formátumként) értelmezi. A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

93. Táblázat Státusz szó változásai

Státuszbitek képzése A1 A0 OV OS
Szorzat = 0 0 0 0 -
-2.147.483.648 ⇐ Szorzat < 0 0 1 0 -
2.147.483.647 >= Szorzat > 0 1 0 0 -
Szorzat > 2.147.483.647 0 0 1 1
Szorzat < -2.147.483.648 0 1 1 1

94. Táblázat A1, A0, OV, OS státuszbitek képzése

L MD 8      // AKKU2
L MD 12     // AKKU1
*D          // szorzás
T MW 16     // eredmény -> AKKU1-be

31. Példaprogram *D

A VKE, A1, A0, OV, OS leírását a státusz szó fejezetben találja.

/D (AKKU2 osztása AKKU1-gyel 32 bites egész számként)

Formátuma: /D

AKKU2 osztása AKKU1-gyel 32 bites egész számként, az eredmény az AKKU1-be kerül mentésre. Az eredmény csak az osztási eredményt tartalmazza, a maradékot nem. (A

MOD művelettel kaphatja meg a maradékot).
Az akku-k tartalmát a művelet egész számként (DINT formátumként) értelmezi. A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

95. Táblázat Státusz szó változásai

Státuszbitek képzése A1 A0 OV OS
Osztási eredmény = 0 0 0 0 -
-2147483648 ⇐ Osztási eredmény < 0 0 1 0 -
2147483647 >= Osztási eredmény > 0 1 0 0 -
Osztási eredmény = 2147483648 1 0 1 1
Nullával való osztás 1 1 1 1

96. Táblázat A1, A0, OV, OS státuszbitek képzése

L 10000
T MD 100     // kezdőérték betöltése
L 3
T MD 104     // szintén

L MD 100     // AKKU2
L MD 104     // AKKU1
/D           // 32 bites osztás
T MD 108     // csak az eredmény, maradék nélkül

32. Példaprogram /D

Osztott érték (AKKU2) dec: 10 000
Osztó érték (AKKU1) dec: 3
Osztási eredmény (AKKU1) dec: 3 333
Osztási maradék nem szükséges

A VKE, A1, A0, OV, OS leírását a státusz szó fejezetben találja.

MOD (AKKU2 osztási maradéka AKKU1-gyel 32 bites egész számként)

Formátuma: /D

AKKU2 osztása AKKU1-gyel 32 bites egész számként, az eredmény az AKKU1-be kerül mentésre. Az eredmény csak az osztási maradélot tartalmazza, az eredményt nem. (A

/D művelettel kaphatja meg az eredményt).
Az akku-k tartalmát a művelet egész számként (DINT formátumként) értelmezi. A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

^ ^BIE^A1^A0^OV^OS^OR^STA^VKE^/ER|

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

97. Táblázat Státusz szó változásai

L 10000
T MD 100     // kezdőérték betöltése
L 3
T MD 104     // szintén



L MD 100     // AKKU2
L MD 104     // AKKU1
MOD          // 32 bites osztás maradéka
T MD 108     // csak a maradék

33. Példaprogram MOD

MűveletNémet leírásMagyar leírás
+RAddiere AKKU 1 und 2 als Gleitpunktzahl (32 Bit)AKKU1 és AKKU2 összeadása 32 bites törtszámként
-RSubtrahiere AKKU 1 von 2 als Gleitpunktzahl (32 Bit)AKKU1 kivonása AKKU2-ből 32 bites törtszámként
*RMultipliziere AKKU 1 und 2 als Gleitpunktzahl (32 Bit)AKKU1 és AKKU2 összeszorzása 32 bites törtszámként
/RDividiere AKKU 2 durch 1 als Gleitpunktzahl (32 Bit)AKKU2 osztása AKKU1-gyel 32 bites törtszámként
ABSAbsolutwert einer Gleitpunktzahl (32 Bit, IEEE-FP)32 bites törtszám abszolút értéke
SQRBilden des Quadrats einer Gleitpunktzahl (32 Bit)32 bites törtszám négyzete
SQRTBilden der Quadratwurzel einer Gleitpunktzahl (32 Bit)32 bites törtszám köbgyöke
EXPBilden des Exponentialwerts einer Gleitpunktzahl (32 Bit)32 bites törtszám exponenciális értéke
LNBilden des natürlichen Logarithmus einer Gleitpunktzahl (32 Bit)32 bites törtszám természetes logaritmusa
SINBilden des Sinus eines Winkels als Gleitpunktzahlen (32 Bit)32 bites törtszám szinusz értéke
COSBilden des Cosinus eines Winkels als Gleitpunktzahlen (32 Bit)32 bites törtszám koszinusz értéke
TANBilden des Tangens eines Winkels als Gleitpunktzahlen (32 Bit)32 bites törtszám tangens értéke
ASINBilden des Arcussinus einer Gleitpunktzahl (32 Bit)32 bites törtszám arkusz-szinusz értéke
ACOSBilden des Arcuscosinus einer Gleitpunktzahl (32 Bit)32 bites törtszám arkusz-koszinusz értéke
ATANBilden des Arcustangens einer Gleitpunktzahl (32 Bit)32 bites törtszám arkusz-tangens értéke

100. Táblázat Törtszám műveletek

+R (AKKU1 és AKKU2 összeadása 32 bites törtszámként)

AKKU1 és AKKU2 összeadása 32 bites (IEEE-FP) törtszámként. Az eredmény az AKKU1-be kerül, törtszám (REAL) formában. Az akkumlátorok tartalma törtszámként kerül kiértékelésre (REAL-ként). A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

Eredmény az AKKU1-benA1A0OVOSNotesz
+ qNaN1111
+ végtelen1011Túlcsordult
+ normalizált100-
+ denormalizált0011Túlcsordult
+ nulla000-
- nulla000-
- denormalizált0011Túlcsordult
- normalizált010-
- végtelen0111Túlcsordult
- qNaN1111

101. Táblázat A1, A0, OV, OS státuszbitek állapota

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

102. Táblázat Státusz szó változásai

L 2.200000e+001  // értékek állítása
T MD 8
L 3.300000e+001
T MD 12

L MD 8          // AKKU2
L MD 12         // AKKU1
+R              // művelet
T MD 16         // AKKU1 -> MD16

34. Példaprogram +R

-R (AKKU1 kivonása AKKU2-ből 32 bites törtszámként)

AKKU2 kivonása AKKU1-ből 32 bites (IEEE-FP) törtszámként. Az eredmény az AKKU1-be kerül, törtszám (REAL) formában. Az akkumlátorok tartalma törtszámként kerül kiértékelésre (REAL-ként).A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

Eredmény az AKKU1-benA1A0OVOSNotesz
+ qNaN1111
+ végtelen1011Túlcsordult
+ normalizált100-
+ denormalizált0011Túlcsordult
+ nulla000-
- nulla000-
- denormalizált0011Túlcsordult
- normalizált010-
- végtelen0111Túlcsordult
- qNaN1111

103. Táblázat A1, A0, OV, OS státuszbitek állapota

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

104. Táblázat Státusz szó változásai

L 2.200000e+001   // értékek állítása
T MD 8
L 3.300000e+001
T MD 12

L MD 8            // AKKU2
L MD 12           // AKKU1
-R                // művelet
T MD 16           // AKKU1 -> MD16

35. Példaprogram -R

*R (AKKU1 és AKKU2 összeszorzása 32 bites törtszámként)

AKKU1 szorzása AKKU2-vel 32 bites (IEEE-FP) törtszámként. Az eredmény az AKKU1-be kerül, törtszám (REAL) formában. Az akkumlátorok tartalma törtszámként kerül kiértékelésre (REAL-ként).A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

Eredmény az AKKU1-benA1A0OVOSNotesz
+ qNaN1111
+ végtelen1011Túlcsordult
+ normalizált100-
+ denormalizált0011Túlcsordult
+ nulla000-
- nulla000-
- denormalizált0011Túlcsordult
- normalizált010-
- végtelen0111Túlcsordult
- qNaN1111

105. Táblázat A1, A0, OV, OS státuszbitek állapota

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

106. Táblázat Státusz szó változásai

L 2.200000e+001 // értékek állítása
T MD 8
L 3.300000e+001
T MD 12

L MD 8          // AKKU2
L MD 12         // AKKU1
*R              // művelet
T MD 16         // AKKU1 -> MD16

36. Példaprogram *R

/R (AKKU2 osztása AKKU1-gyel 32 bites törtszámként)

AKKU2 osztása AKKU1-vel 32 bites (IEEE-FP) törtszámként. Az eredmény az AKKU1-be kerül, törtszám (REAL) formában. Az akkumlátorok tartalma törtszámként kerül kiértékelésre (REAL-ként).A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

Eredmény az AKKU1-benA1A0OVOSNotesz
+ qNaN1111
+ végtelen1011Túlcsordult
+ normalizált100-
+ denormalizált0011Túlcsordult
+ nulla000-
- nulla000-
- denormalizált0011Túlcsordult
- normalizált010-
- végtelen0111Túlcsordult
- qNaN1111

107. Táblázat A1, A0, OV, OS státuszbitek állapota

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

108. Táblázat Státusz szó változásai

L 2.200000e+001 // értékek állítása
T MD 8
L 3.300000e+001
T MD 12

L MD 8          // AKKU2
L MD 12         // AKKU1
/R              // művelet
T MD 16         // AKKU1 -> MD16

37. Példaprogram /R

ABS (32 bites törtszám abszolút értéke)

Az ABS a 32 bites (IEEE-FP) AKKU1 abszolút értékét veszi. Az eredmény az AKKU1-be kerül, törtszám (REAL) formában. Az akkumlátorok tartalma törtszámként kerül kiértékelésre (REAL-ként). A művelet a státuszbitek értékét nem befolyásolja.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

109. Táblázat Státusz szó változásai

L -1.172200e+002 // értékek állítása
T MD 8

L MD 8
ABS              // abszolút érték
T MD 12          // eredmény az MD12-be

38. Példaprogram ABS

SQR (32 bites törtszám négyzete)

Az SQR a 32 bites (IEEE-FP) AKKU1 négyzetértékét veszi. Az eredmény az AKKU1-be kerül, törtszám (REAL) formában. Az akkumlátorok tartalma törtszámként kerül kiértékelésre (REAL-ként). A VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

Eredmény az AKKU1-benA1A0OVOSNotesz
+ qNaN1111
+ végtelen1011Túlcsordult
+ normalizált100-
+ denormalizált0011Túlcsordult
+ nulla000-
- qNaN1111

110. Táblázat A1, A0, OV, OS státuszbitek állapota

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

111. Táblázat Státusz szó változásai

L 2.000000e+001 // értékek állítása
T MD 8

L MD 8
SQR             // négyzetérték
T MD 12         // eredmény az MD12-be

39. Példaprogram SQR

SQRT (32 bites törtszám négyzetgyöke)

Az SQRT a 32 bites (IEEE-FP) AKKU1 négyzetgyökét veszi. Az eredmény az AKKU1-be kerül, törtszám (REAL) formában. Az akkumlátorok tartalma törtszámként kerül kiértékelésre (REAL-ként). Az AKKU1 tartalma csak egy pozitív szám vagy nulla lehet. A VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

Eredmény az AKKU1-benA1A0OVOSNotesz
+ qNaN1111
+ végtelen1011Túlcsordult
+ normalizált100-
+ denormalizált0011Túlcsordult
+ nulla000-
- nulla000-
- qNaN1111

112. Táblázat A1, A0, OV, OS státuszbitek állapota

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

113. Táblázat Státusz szó változásai

L 2.250000e+002 // értékek állítása
T MD 8

L MD 8
SQRT           // négyzetgyök érték
T MD 12        // eredmény az MD12-be 

40.Példaprogram SQRT

EXP (32 bites törtszám exponenciális értéke)

Az EXP a 32 bites (IEEE-FP) AKKU1 exponenciális értékét veszi. Az eredmény az AKKU1-be kerül, törtszám (REAL) formában. Az akkumlátorok tartalma törtszámként kerül kiértékelésre (REAL-ként). A VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

Eredmény az AKKU1-benA1A0OVOSNotesz
+ qNaN1111
+ végtelen1011Túlcsordult
+ normalizált100-
+ denormalizált0011Túlcsordult
+ nulla000-
- qNaN1111

114. Táblázat A1, A0, OV, OS státuszbitek állapota

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

115. Táblázat Státusz szó változásai

L 1.500000e-001 // értékek állítása
T MD 8

L MD 8
EXP             // exponenciális érték
T MD 12         // eredmény az MD12-be

41. Példaprogram EXP

LN (32 bites törtszám természetes logaritmusa)

Az LN a 32 bites (IEEE-FP) AKKU1 természetes alapú logaritmusát állítja. Az eredmény az AKKU1-be kerül, törtszám (REAL) formában. Az akkumlátorok tartalma törtszámként kerül kiértékelésre (REAL-ként). Az AKKU1 tartalma csak egy pozitív szám lehet. A VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

Eredmény az AKKU1-benA1A0OVOSNotesz
+ qNaN1111
+ végtelen1011Túlcsordult
+ normalizált100-
+ denormalizált0011Túlcsordult
+ nulla000-
- nulla000-
- denormalizált0011Túlcsordult
- normalizált010-
- végtelen0111Túlcsordult
- qNaN1111

116. Táblázat A1, A0, OV, OS státuszbitek állapota

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

117. Táblázat Státusz szó változásai

L 1.500000e-001 // értékek állítása
T MD 8

L MD 8
LN              // természetes alapú logaritmus
T MD 12         // eredmény az MD12-be 

42. Példaprogram LN

SIN (32 bites törtszám szinusz értéke)

A SIN a 32 bites (IEEE-FP) AKKU1 szinusz értékét veszi. Az eredmény az AKKU1-be kerül, törtszám (REAL) formában. Az akkumlátorok tartalma törtszámként kerül kiértékelésre (REAL-ként). A VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

Eredmény az AKKU1-benA1A0OVOSNotesz
+ qNaN1111
+ normalizált100-
+ denormalizált0011Túlcsordult
+ nulla000-
- nulla000-
- denormalizált0011Túlcsordult
- normalizált010-
- qNaN1111

118. Táblázat A1, A0, OV, OS státuszbitek állapota

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

119. Táblázat Státusz szó változásai

L 1.500000e-001 // értékek állítása
T MD 8

L MD 8
SIN             // sinus
T MD 12         // eredmény az MD12-be 

43. Példaprogram SIN

COS (32 bites törtszám koszinusz értéke)

A COS a 32 bites (IEEE-FP) AKKU1 koszinusz értékét veszi. Az eredmény az AKKU1-be kerül, törtszám (REAL) formában. Az akkumlátorok tartalma törtszámként kerül kiértékelésre (REAL-ként). A VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

Eredmény az AKKU1-benA1A0OVOSNotesz
+ qNaN1111
+ normalizált100-
+ denormalizált0011Túlcsordult
+ nulla000-
- nulla000-
- denormalizált0011Túlcsordult
- normalizált010-
- qNaN1111

120. Táblázat A1, A0, OV, OS státuszbitek állapota

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

121. Táblázat Státusz szó változásai

L 1.500000e-001 // értékek állítása
T MD 8

L MD 8
SIN             // cosinus
T MD 12         // eredmény az MD12-be 

44. Példaprogram COS

TAN (32 bites törtszám tangens értéke)

A TAN a 32 bites (IEEE-FP) AKKU1 tangens értékét veszi. Az eredmény az AKKU1-be kerül, törtszám (REAL) formában. Az akkumlátorok tartalma törtszámként kerül kiértékelésre (REAL-ként). A VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

Eredmény az AKKU1-benA1A0OVOSNotesz
+ qNaN1111
+ normalizált100-
+ denormalizált0011Túlcsordult
+ nulla000-
- nulla000-
- denormalizált0011Túlcsordult
- normalizált010-
- qNaN1111

122. Táblázat A1, A0, OV, OS státuszbitek állapota

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

123. Táblázat Státusz szó változásai

L 1.500000e-001 // értékek állítása
T MD 8

L MD 8
TAN             // tangens
T MD 12         // eredmény az MD12-be

45. Példaprogram TAN

ASIN (32 bites törtszám arkusz szinusz értéke)

Az ASIN a 32 bites (IEEE-FP) AKKU1 arkusz szinusz értékét veszi. Az eredmény az AKKU1-be kerül, törtszám (REAL) formában. Az akkumlátorok tartalma törtszámként kerül kiértékelésre (REAL-ként). Az AKKU1 tartalma -1 < érték < 1 lehet. A VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

Eredmény az AKKU1-benA1A0OVOSNotesz
+ qNaN1111
+ normalizált100-
+ denormalizált0011Túlcsordult
+ nulla000-
- nulla000-
- denormalizált0011Túlcsordult
- normalizált010-
- qNaN1111

124. Táblázat A1, A0, OV, OS státuszbitek állapota

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

125. Táblázat Státusz szó változásai

L 1.500000e-001 // értékek állítása
T MD 8

L MD 8
ASIN            // arcussinus
T MD 12         // eredmény az MD12-be 

46. Példaprogram ASIN

ACOS (32 bites törtszám arkusz koszinusz értéke)

Az ACOS a 32 bites (IEEE-FP) AKKU1 arkusz koszinusz értékét veszi. Az eredmény az AKKU1-be kerül, törtszám (REAL) formában. Az akkumlátorok tartalma törtszámként kerül kiértékelésre (REAL-ként). Az AKKU1 tartalma -1 < érték < 1 lehet. A VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

Eredmény az AKKU1-benA1A0OVOSNotesz
+ qNaN1111
+ normalizált100-
+ denormalizált0011Túlcsordult
+ nulla000-
- nulla000-
- denormalizált0011Túlcsordult
- normalizált010-
- qNaN1111

126. Táblázat A1, A0, OV, OS státuszbitek állapota

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x x - - - -

127. Táblázat Státusz szó változásai

L 1.500000e-001 // értékek állítása
T MD 8

L MD 8
ACOS            // arcuscosinus
T MD 12         // eredmény az MD12-be 

47. Példaprogram ACOS

ATAN (32 bites törtszám arkusz tangens értéke)

Az ATAN a 32 bites (IEEE-FP) AKKU1 arkusz tangens értékét veszi. Az eredmény az AKKU1-be kerül, törtszám (REAL) formában. Az akkumlátorok tartalma törtszámként kerül kiértékelésre (REAL-ként). A VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad.

Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

Eredmény az AKKU1-benA1A0OVOSNotesz
+ qNaN1111
+ normalizált100-
+ denormalizált0011Túlcsordult
+ nulla000-
- nulla000-
- denormalizált0011Túlcsordult
- normalizált010-
- qNaN1111

128. Táblázat A1, A0, OV, OS státuszbitek állapota

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

129. Táblázat Státusz szó változásai

L 1.500000e-001 // értékek állítása
T MD 8

L MD 8
ATAN            // arkusz tangens
T MD 12         // eredmény az MD12-be 

48. Példaprogram ATAN

Betöltés műveletek

UtasításNémetülMagyarul
LLadeBetöltés
L STWLade Statuswort in AKKU 1Státusz szó betöltése az AKKU1-be
LAR1Lade Adreßregister 1 mit Inhalt von AKKU 11. címregiszter feltöltése AKKU1-ből
LAR1<D>Lade Adreßregister 1 mit Pointer (32 Bit-Format)1. címregiszter betöltése 32 bites pointerrel
LAR1 AR2Lade Adreßregister 1 mit Inhalt von Adressregister 22. címregiszter betöltése az 1. címregiszterbe
LAR2Lade Adreßregister 2 mit Inhalt von AKKU 12. címregiszter feltöltése AKKU1-ből
LAR2<D>Lade Adreßregister 2 mit Ganzzahl (32 Bit)2. címregiszter betöltése 32 bites pointerrel

Mozgatás műveletek

UtasításNémetülMagyarul
TTransferiereMozgatás
T STWTransferiere AKKU 1 in StatuswortStátusz szó feltöltése az AKKU1-ből
TARTausche Adreßregister 1 mit 21. és 2. címregiszter cseréje
TAR1Transferiere Adreßregister 1 in AKKU 11. címregiszter mozgatása az AKKU1-be
TAR1<D>Transferiere Adreßregister 1 nach Zieladresse (32-Bit-Pointer)1. címregiszter mozgatása a 32 bites pointer által megjelölt célcímre
TAR1 AR2Transferiere Adreßregister 1 in Adreßregister 21. címregiszter mozgatása a 2. címregiszterbe
TAR2Transferiere Adreßregister 2 in AKKU 12. címregiszter mozgatása az AKKU1-be
TAR2<D>Transferiere Adreßregister 2 nach Zieladresse (32-Bit-Pointer)2. címregiszter mozgatása a 32 bites pointer által megjelölt célcímre
+AR1Addiere AKKU 1 zum Adreßregister 1AKKU1 értékének hozzáadása az 1. címregiszterhez
+AR2Addiere AKKU 1 zum Adreßregister 2AKKU1 értékének hozzáadása a 2. címregiszterhez

130. Táblázat betöltés, mozgatás műveletek

L (Betöltés)

MűveletAdattípusOperandusForráscím
LBYTEE, A, PE, M, L, D0..65535
LWORDPointer, paraméter0..65534
LDWORD0..65532

131. Táblázat L operandusok

Az L – betöltés művelet a megcímzett adatterület tartalmát vagy a megadott konstanst betölti az AKKU1-ből, miután azt első lépésben „0”-ra állította.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

132. Táblázat Státusz szó változásai

// byte hosszú betöltések
L B#16#12             // hex 12 az AKKU1-L-L-be
L MB 10               // MB10 az AKKU1-L-L-be
L DB10.DBB 10         // DB10.DBB10 az AKKU1-L-L-be 
L EB 10               // EB10 az AKKU1-L-L-be
L AB 10               // AB10 az AKKU1-L-L-be

// word hosszú betöltések
L B#(255, 255)        // két 8 bites szám az AKKU1-L-be
L MW 10               // MW10 az AKKU1-L-be
L DB10.DBW 10         // DB10.DBW10 az AKKU1-L-be
L P#0.0               // null pointer az AKKU1-L-be

// dword hosszú betöltések 
L 1.210000e+001       // real konstans az AKKU1-be
L MD 10               // MD10 az AKKU1-be
L DB10.DBD 10         // DB10.DBD10 az AKKU1-be

49. Példaprogram L

L STW (Státusz szó betöltése az AKKU1-be)

Státusz szó betöltése az AKKU1-be. Sok –főleg S7-300-as PLC-k esetében – nem minden státusz bit kerül átmásolásra, ezért ezt a funkciót PLC függően ellenőrizni kell.

Ellenkező irányú művelete a T STW.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

133. Táblázat Státusz szó változásai

L STW      // Státusz szó betöltése
T MW 10    // átmásolása az MW10-be

soft_s7_awl_utasitaskeszlet_clip_image002_0003.jpg
49. ábra Példaprogram státusza

A fenti program szerint a „1001 0110” státusz szó decimálisan 150, hexadecimálisan 96-ot ad. A bitek sorrendjét pl. a fenti státusz szó változásai táblázatban találja meg.

LAR1 (1. címregiszter feltöltése AKKU1-ből)

Címregiszter (1.) feltöltése AKKU1-ből 32 bites pointer-ként. A művelet a státuszbitek állapotát nem befolyásolja. Ellenkező irányú művelete a TAR1.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

109. Táblázat Státusz szó változásai

L 360    // konstans 360 az AR1-be
LAR1     // AR1 a címregiszter 1-be

51. Példaprogram LAR1

soft_s7_awl_utasitaskeszlet_clip_image004_0002.jpg
50. ábra Példaprogram státusza

A fenti programban a konstans 360-at betöltjük az AR1-be, majd a LAR1 művelettel a 360-at áttöltjük az 1. címregiszterbe. Mivel pointer-ként visszük át a 360-at, így a 8 bites címzést kell alkalmaznunk, ez szerint 360 bit = 45.0 byte.

LAR1 <D> (1. címregiszter betöltése 32 bites pointerrel)

Címregiszter (1.) feltöltése 32 bites pointer-ként egy duplaszóból (DWORD) vagy pointer konstansból. A művelet a státuszbitek állapotát nem befolyásolja.

Ellenkező irányú művelete a TAR1 <D>.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

135. Táblázat Státusz szó változásai

LAR1 P#111.3    // direkt pointeres megadás
                // vagy
L P#133.1       // direkt pointer az MD4-be
T MD 4

LAR1 MD 4       // MD4 átmásolása az 1. címregiszterbe

52. Példaprogram LAR1 <D>

S7 LAR1 operation
51. ábra Példaprogram státusza

A fenti programban a konstans 360-at betöltjük az AR1-be, majd a LAR1 művelettel a 360-at áttöltjük az 1. címregiszterbe. Mivel pointer-ként visszük át a 360-at, így a 8 bites címzést kell alkalmaznunk, ez szerint 360 bit = 45.0 byte.

LAR1 AR2 (2. címregiszter betöltése az 1. címregiszterbe)

A 2. címregiszter betöltése az 1. címregiszterbe. Az AKKU1 és AKKU2 tartalma nem változik. A művelet a státuszbitek állapotát nem befolyásolja.

Ellenkező irányban (1. címregiszter a 2. címregiszterbe) mozgat a TAR1 AR2.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

109. Táblázat Státusz szó változásai

L 123      // 123 (bit) másolása
LAR1       // a 2.címregiszterbe

L 321      // 321 (bit) másolása
LAR2       // a 2.címregiszterbe

LAR1 AR2   // a 2.regiszer másolása az 1.-be

L 123      // 123 (bit) másolása
LAR1       // a 2.címregiszterbe

L 321      // 321 (bit) másolása
LAR2       // a 2.címregiszterbe
TAR1 AR2   // a 1.regiszer másolása az 2.-be

53. Példaprogram LAR1 AR2

S7 LAR1 operation
52. ábra Példaprogram státusza

A fenti programban a konstans 123-et betöltjük 1.címregiszterbe, majd a LAR2 művelettel a 321-et áttöltjük a 2. címregiszterbe. Mivel pointer-ként visszük át a 321-at, így a 8 bites címzést kell alkalmaznunk, ez szerint 321 bit = 40.1 byte. Ugyanígy a 123 bit = 15.3 byte. A LAR1 AR2 –vel az AR2 tartalmát (40.1-et) az AR1-be átmásoljuk. A TAR1 AR2 –vel pedig az AR1 tartalmát (15.3-at) másoljuk át az AR2-be.

LAR2 (2. címregiszter feltöltése AKKU1-ből)

2. címregiszter feltöltése AKKU1-ből 32 bites pointer-ként. A művelet a státuszbitek állapotát nem befolyásolja.

Ellenkező irányú művelete a TAR2.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

109. Táblázat Státusz szó változásai

L 360   // konstans 360 az AR1-be
LAR2    // AR1 a címregiszter 1-be

54. Példaprogram LAR2

S7 LAR2 operation
53. ábra Példaprogram státusza

A fenti programban a konstans 360-at betöltjük az AR1-be, majd a LAR2 művelettel a 360-at áttöltjük a 2. címregiszterbe. Mivel pointer-ként visszük át a 360-at, így a 8 bites címzést kell alkalmaznunk, ez szerint 360 bit = 45.0 byte. Az AR1-ben marad a régi érték (40.1).

LAR2 <D>

(2. címregiszter betöltése 32 bites pointerrel)2. címregiszter feltöltése 32 bites pointer-ként egy duplaszóból (DWORD) vagy pointer konstansból. A művelet a státuszbitek állapotát nem befolyásolja.

Ellenkező irányú művelete a TAR2 <D>.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

138. Táblázat Státusz szó változásai

LAR2 P#444.2   // direkt pointeres megadás
// vagy
L P#222.4      // direkt pointer az MD4-be
T MD 4

LAR2 MD 4      // MD4 átmásolása a 2. címregiszterbe

55. Példaprogram LAR2 <D>

S7 LAR2 operation
54. ábra Példaprogram státusza

T (Mozgatás)

MűveletAdattípusOperandusForráscím
TBYTEE, A, PE, M, L, D0..65535
TWORDPointer, paraméter0..65534
TDWORD0..65532

A T <operandus> művelet átmozgatja (átmásolja) az AKKU1 tartalmát a célcímre, ha a Master Control Relay be van kapcsolva (MCR = 1). Azt, hogy az AKKU1-ből hány byte hossz tartalom kerül átmásolásra, a célterület hossza határozza meg. A T művelet alkalmas az AKKU1 direkt kimenetre másolására (PA vagy A). A T művelet nem befolyásolja a státusz szó tartalmát.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

140. Táblázat Státusz szó változásai

// byte hosszú mozgatás az AKKU1-ből
T MB 10           // MB10 az AKKU1-L-L-ből
T DB10.DBB 10     // DB10.DBB10 az AKKU1-L-L-ből 
T AB 10           // AB10 az AKKU1-L-L-ből

// word hosszú mozgatás az AKKU1-ből
T MW 10           // MW10 az AKKU1-L-ből
T DB10.DBW 10     // DB10.DBW10 az AKKU1-L-ből

// dword hosszú mozgatás az AKKU1-ből 
T MD 10           // MD10 az AKKU1-ből
T DB10.DBD 10     // DB10.DBD10 az AKKU1-ből

56. Példaprogram T

T STW (Státusz szó feltöltése az AKKU1-ből)

Státusz szó feltöltése az AKKU1-ből 9 bit hosszan. A művelet a teljes státusz szó tartalmat felülírja.

Ellenkező irányú művelete a L STW.

BIEA1A0OVOSORSTAVKE/ER
Írja: x x x x x x x x x

141. Táblázat Státusz szó változásai

L 2#10000 // maszk (4.bit) (OS bit)
L STW     // státusz szó betöltése
OW        // össze vagy-ol
T STW     // 5.bit állítása a státusz szóban

57. Példaprogram T STW

S7 L STW operation
55. ábra Példaprogram státusza

A fenti program az OS bitet „forszolja” a státusz szóban. Az OS bit a 4. státusz bit, így 2#10000 értékkel lehet a pozícióját állítani. Ezek után csak be kell tölteni a státusz szót, majd egy OW-val össze kell VAGY-olni. Az eredményt a T STW viszi vissza a státusz szóba.

TAR (1. és 2. címregiszter cseréje)

Az 1. és 2. címregiszter cseréje. A művelet a státusz szó tartalmát nem befolyásolja.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

142. Táblázat Státusz szó változásai

LAR1 P#111.1   // 1.címregiszter feltöltése
LAR2 P#333.3   // 2.címregiszter feltöltése
TAR            // a kettő cseréje

58. Példaprogram TAR

S7 TAR operation
56. ábra Példaprogram státusza

TAR1 (1. címregiszter mozgatása az AKKU1-be)

1. címregiszter másolása az AKKU1-be, 32 bites pointer formátumban. A művelet a státusz szó tartalmát nem befolyásolja.

Ellenkező irányú művelete a LAR1.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

143. Táblázat Státusz szó változásai

LAR1 P#111.1 // 1.címregiszter feltöltése
TAR1         // 1.címregiszter másolása az AKKU1-be
T MW 10      // AKKU1 az MW10-be

59. Példaprogram TAR1

S7 TAR1 operation
57. ábra Példaprogram státusza

A fenti példaprogram szerint a LAR1 111.1-et betölti az 1. címregiszterbe. Ezt olvassa vissza a TAR1 a STANDARD-ba (889 bit = 111.1 byte), majd a következő sor ezt az értéket viszi át az MW10-be.

TAR1 <D>

(1. címregiszter mozgatása a 32 bites pointer által megjelölt célcímre) 1. címregiszter mozgatása a 32 bites pointer által megjelölt célcímre, 32 bites pointer formátumban. A célcím lehet memória duplaszó (MD), lokális duplaszó (LD), globális adatblokk duplaszó (DBD), instant adatblokk duplaszó (DID). A művelet a státusz szó tartalmát nem befolyásolja.

Ellenkező irányú művelete a LAR1 <D>.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

144. Táblázat Státusz szó változásai

LAR1 P#111.1   // 1.címregiszter feltöltése
TAR1 LD 10     // 1.címregiszter másolása az LD10-be

L LD 10        // a másolás ellenőrzése

60. Példaprogram TAR1 <D>

S7 TAR1 operation
58. ábra Példaprogram státusza

A fenti példaprogram szerint a LAR1 111.1-et betölti az 1. címregiszterbe. Ezt olvassa vissza a TAR1 a STANDARD-ba (889 bit = 111.1 byte), majd a következő sor ezt az értéket viszi át az MW10-be.

TAR1 AR2 (1. címregiszter mozgatása a 2. címregiszterbe)

Az 1. címregiszter másolása a 2. címregiszterbe. Az AKKU1 és AKKU2 tartalma nem változik. A művelet a státuszbitek állapotát nem befolyásolja.

Ellenkező irányban (2. címregiszter az 1. címregiszterbe) mozgat a LAR1 AR2.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

145. Táblázat Státusz szó változásai

L 123      // 123 (bit) másolása
LAR1       // a 2.címregiszterbe

L 321      // 321 (bit) másolása
LAR2       // a 2.címregiszterbe

LAR1 AR2   // a 2.regiszer másolása az 1.-be

L 123      // 123 (bit) másolása
LAR1       // a 2.címregiszterbe

L 321      // 321 (bit) másolása
LAR2       // a 2.címregiszterbe
TAR1 AR2   // a 1.regiszer másolása az 2.-be

61. Példaprogram TAR1 AR2

S7 TAR1 operation
59. ábra Példaprogram státusza

A fenti programban a konstans 123-et betöltjük 1.címregiszterbe, majd a LAR2 művelettel a 321-et áttöltjük a 2. címregiszterbe. Mivel pointer-ként visszük át a 321-at, így a 8 bites címzést kell alkalmaznunk, ez szerint 321 bit = 40.1 byte. Ugyanígy a 123 bit = 15.3 byte. A LAR1 AR2 –vel az AR2 tartalmát (40.1-et) az AR1-be átmásoljuk. A TAR1 AR2 –vel pedig az AR1 tartalmát (15.3-at) másoljuk át az AR2-be.

TAR2 (2. címregiszter mozgatása az AKKU1-be)

2. címregiszter mozgatása AKKU1-be 32 bites pointer-ként. A művelet a státuszbitek állapotát nem befolyásolja.

Ellenkező irányú művelete a LAR2.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

146. Táblázat Státusz szó változásai

L 321     // 321 (bit) másolása
LAR2      // a 2.címregiszterbe

TAR2      // 2.címregiszter az AKKU1-be

T MW 10   // AKKU1 az MW10-be

62. Példaprogram TAR2

S7 TAR2 operation
60. ábra Példaprogram státusza

A fenti programban a konstans 321-et betöltjük az AR2-be, majd a TAR2-vel visszaolvassuk az AKKU1-be, majd onnan az MW10-be.

TAR2 <D> (2. címregiszter mozgatása a 32 bites pointer által megjelölt célcímre)

2. címregiszter mozgatása egy megcímzett területre. A célcím lehet memória duplaszó (MD), lokális duplaszó (LD), globális adatblokk duplaszó (DBD), instant adatblokk duplaszó (DID). A művelet a státuszbitek állapotát nem befolyásolja.

Ellenkező irányú művelete a LAR2 <D>.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

147. Táblázat Státusz szó változásai

L 321       // 321 (bit) másolása
LAR2        // a 2.címregiszterbe

TAR2 MD 10  // 2.címregiszter az MD10-be

63. Példaprogram TAR2 <D>

+AR1 (AKKU1 értékének hozzáadása az 1. címregiszterhez)

Egy INT érték (AKKU1-L), vagy egy pointer által kijelölt érték hozzáadása az AR1-hez.

L 355        // 355 érték (INT)
+AR1         // hozzáadása az 1.címregiszter értékéhez

AR1 p#300.0   // a pointer által kijelölt érték hozzáadása az AR1-hez

63b. Példaprogram +AR1

+AR2 (AKKU1 értékének hozzáadása a 2. címregiszterhez)

Egy INT érték (AKKU1-L), vagy egy pointer által kijelölt érték hozzáadása az AR2-höz.

L 355        // 355 érték (INT)
+AR2         // hozzáadása a 2.címregiszter értékéhez

AR2 p#300.0   // a pointer által kijelölt érték hozzáadása az AR2-höz

63c. Példaprogram +AR2

Léptetés műveletekA léptetési műveletekkel az AKKU1 vagy az összes AKKU tartalmát lehet bitszinten jobbra vagy balra léptetni. Az akkumlátorokban minden lépés balra egy kettővel való szorzásnak, jobbra pedig kettővel való osztásnak felel meg. Így például ha az AKKU értéke 5 (dec) és 3 lépéssel ezt az értéket balra toljuk akkor az AKKU a 40-es értéket fogja felvenni.

MűveletNémetülMagyarul
SSISchiebe Vorzeichen rechts Ganzzahl (16 Bit)Előjeles 16 bites szám léptetése jobbra
SSDSchiebe Vorzeichen rechts Ganzzahl (32 Bit)Előjeles 32 bites szám léptetése jobbra
SLWSchiebe links Wort (16 Bit)16 bites szó balra léptetése
SRWSchiebe rechts Wort (16 Bit)16 bites szó jobbra léptetése
SLDSchiebe links Doppelwort (32 Bit)32 bites duplaszó balra léptetése
SRDSchiebe rechts Doppelwort (32 Bit)32 bites duplaszó jobbra léptetése

148. Táblázat Léptetési műveletek

SSI (előjeles 16 bites szám léptetése jobbra)

Az előjeles 16 bites szám (INT) léptetése jobbra csak az AKKU1-L területet mozgatja bitenként jobbra. A léptetett területet a művelet „0”-kal tölti fel. A léptetés során utoljára kimozgatott bitet a művelet a státusz szó A1 pozíciójába másolja.Amennyiben az SSI-hez nem adunk meg értéket, úgy az AKKU2-L-L értéke szerint hajtja végre a léptetést (lsd. első példaprogram).

Ha az SSI <léptetés_szám> megadást alkalmazzuk, akkor a léptetés szám szerint hajtja végre a léptetéseket (második példaprogram).

A megadott érték mindkét esetben 0 és 15 között lehet. Az

A0 és OV státuszbitek is „0” értéket vesznek fel, ha sikerült ennek a kritériumnak a programunkban megfelelni. A „0” léptetés szám esetén a művelet működése azonos a NOP műveletével (üres utasítás).

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x - - - - -

149. Táblázat Státusz szó változásai

L 3       // AKKU2 (léptetések száma)
L 125     // AKKU1 (léptetendő érték)
SSI       // léptetés

T MW 10   // AKKU1 -> MW10

64. Példaprogram SSI

Az egyszerűbb példaprogram esetén a 125 értéket léptethetjük 3-szor jobbra, így az eredmény (125 / 2^3 ) 15 lesz, és ezt az MW10-ben találjuk meg.

UN T 12     // ha lefutott az idő
SPB ide     // bejut a végrehajtáshoz

L MW 20     // MW20 értékét lépteti eggyel balra
SSI 1
T MW 20     // eredmény vissza

L STW       // státusz szó olvasása
T MW 22     // státusz szó -> MW22

U M 23.7    // státusz szó A1 -> MW20 bal utolsó bitjébe
= M 20.7

ide: NOP 0  // ugrás vége

L S5T#500MS // futás időzítés : 500 ms
UN T 12
SE T 12

65. Példaprogram SSI <léptetés_szám>

Ez a program az MW20 értékét forgatja folyamatosan, és minden lépés után 500 ms-ot vár. (MW20 értékét például a VAT táblázatban lehet megadni, és bit szinten figyelemmel kísérni.)

SSD (előjeles 32 bites szám léptetése)

Az előjeles 32 bites szám (DINT) léptetése jobbra az AKKU1 területet mozgatja bitenként jobbra. A léptetett területet a művelet „0”-kal tölti fel. A léptetés során utoljára kimozgatott bitet a művelet a státusz szó A1 pozíciójába másolja.Amennyiben az SSD-hez nem adunk meg értéket, úgy az AKKU2-L-L értéke szerint hajtja végre a léptetést (lsd. első példaprogram).

Ha az SSD <léptetés_szám> megadást alkalmazzuk, akkor a léptetés szám szerint hajtja végre a léptetéseket (második példaprogram).

A megadott érték mindkét esetben 0 és 32 között lehet. Az

A0 és OV státuszbitek is „0” értéket vesznek fel, ha sikerült ennek a kritériumnak a programunkban megfelelni. A „0” léptetés szám esetén a művelet működése azonos a NOP műveletével (üres utasítás).

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x - - - - -

150. Táblázat Státusz szó változásai

L 4        // AKKU2 (léptetések száma)
L 13400    // AKKU1 (léptetendő érték)
SSD        // léptetés

T MD 10    // AKKU1 -> MD10

66. Példaprogram SSD

Az egyszerűbb példaprogram esetén a 13400 értéket léptethetjük 4-szor jobbra, így az eredmény (13400 / 2^4 ) 837 lesz, és ezt az MD10-ben találjuk meg.

UN T 12 // ha lefutott az idő
SPB ide // bejut a végrehajtáshoz

L MD 20 // MW20 értékét lépteti eggyel balra
SSD 1
T MD 20 // eredmény vissza

L STW // státusz szó olvasása
T MW 10 // státusz szó -> MW10

U M 11.7 // státusz szó A1 -> MD20 bal utolsó bitjébe
= M 20.7

ide: NOP 0 // ugrás vége

L S5T#200MS // futás időzítés : 500 ms
UN T 12
SE T 12

67. Példaprogram SSD <léptetés_szám>

Ez a program az MD20 értékét forgatja folyamatosan, és minden lépés után 200 ms-ot vár. (MD20 értékét például a VAT táblázatban lehet megadni, és bit szinten figyelemmel kísérni.)

SLW (16 bites szó balra léptetése)

A 16 bites szó (WORD) léptetése balra csak az AKKU1-L területet mozgatja bitenként balra. A léptetett területet a művelet „0”-kal tölti fel. A léptetés során utoljára kimozgatott bitet a művelet a státusz szó A1 pozíciójába másolja.Amennyiben az SLW-hez nem adunk meg értéket, úgy az AKKU2-L-L értéke szerint hajtja végre a léptetést (lsd. első példaprogram).

Ha az SLW <léptetés_szám> megadást alkalmazzuk, akkor a léptetés szám szerint hajtja végre a léptetéseket (második példaprogram).

A megadott érték mindkét esetben 0 és 255 között lehet. Az A0 és OV státuszbitek is „0” értéket vesznek fel, ha sikerült ennek a kritériumnak a programunkban megfelelni. Ha a megadott léptetés szám > 16, akkor AKKU1-L = 0, A1 = 0, A0 = 0 és az OV = 0. A „0” léptetés szám esetén a művelet működése azonos a NOP műveletével (üres utasítás).

Az ellenkező irányú szó hosszú forgatás az SRW művelettel történik.
Azonos irányban duplaszó hosszon a SLD,
ellenkező irányban duplaszó hosszon az SRD művelet végzi a léptetést.

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x - - - - -

151. Táblázat Státusz szó változásai

L 4      // AKKU2 (léptetések száma)
L 500    // AKKU1 (léptetendő érték)
SLW      // léptetés

T MW 10  // AKKU1 -> MW10

68. Példaprogram SLW

Az egyszerűbb példaprogram esetén az 500 értéket léptethetjük 4-szer balra, így az eredmény (500 * 2^4 ) 8 000 lesz, és ezt az MW10-ben találjuk meg.

UN T 12      // ha lefutott az idő
SPB ide      // bejut a végrehajtáshoz


L MW 20      // MW20 értékét lépteti eggyel balra
U M 1.0      // irányválasztó bit 0:jobbra, 1: balra
SPB bal
SRW 1        // irány: jobbra
SPA tov
bal: SLW 1   // irány: balra
tov: T MW 20 // eredmény vissza

L STW        // státusz szó olvasása
T MW 10      // státusz szó -> MW10

U M 1.0      // irányválasztó
SPB ball
U M 11.7     // státusz szó A1
= M 20.7     // ha jobbra, akkor elöl pótolja a kiesett bitet
SPA tovv
ball: U M 11.7
= M 21.0     // ha balra, akkor hátul pótolja a kiesett bitet
tovv: NOP 0
ide: NOP 0   // ugrás vége

L S5T#200MS  // futás időzítés : 500 ms
UN T 12
SE T 12

69. Példaprogram SLW <léptetés_szám>

Ez a program az MW20 értékét forgatja az M1.0 bitnek megfelelő irányba (0: jobbra, 1:balra), és minden lépés után 200 ms-ot vár. (MW20 értékét például a VAT táblázatban lehet megadni, és bit szinten figyelemmel kísérni.) A program az SLW -t és az SRW –t is tartalmazza.

SRW (16 bites szó jobbra léptetése)

A 16 bites szó (WORD) léptetése jobbra csak az AKKU1-L területet mozgatja bitenként jobbra. A léptetett területet a művelet „0”-kal tölti fel. A léptetés során utoljára kimozgatott bitet a művelet a státusz szó A1 pozíciójába másolja.Amennyiben az SRW-hez nem adunk meg értéket, úgy az AKKU2-L-L értéke szerint hajtja végre a léptetést (lsd. első példaprogram).

Ha az SRW <léptetés_szám> megadást alkalmazzuk, akkor a léptetés szám szerint hajtja végre a léptetéseket (második példaprogram).

A megadott érték mindkét esetben 0 és 255 között lehet. Az A0 és OV státuszbitek is „0” értéket vesznek fel, ha sikerült ennek a kritériumnak a programunkban megfelelni. Ha a megadott léptetés szám > 16, akkor AKKU1-L = 0, A1 = 0, A0 = 0 és az OV = 0. A „0” léptetés szám esetén a művelet működése azonos a NOP műveletével (üres utasítás).

Az ellenkező irányú szó hosszú forgatás az SLW művelettel történik.
Azonos irányban duplaszó hosszon a SRD,
ellenkező irányban duplaszó hosszon az SLD művelet végzi a léptetést.

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x - - - - -

152. Táblázat Státusz szó változásai

L 4 // AKKU2 (léptetések száma)
L 500 // AKKU1 (léptetendő érték)
SRW // léptetés

T MW 10 // AKKU1 -> MW10

70. Példaprogram SRW

Az egyszerűbb példaprogram esetén az 500 értéket léptethetjük 4-szer jobbra, így az eredmény (500 / 2^4 ) 31 lesz, és ezt az MW10-ben találjuk meg.

UN T 12        // ha lefutott az idő
SPB ide        // bejut a végrehajtáshoz


L MW 20        // MW20 értékét lépteti eggyel balra
U M 1.0        // irányválasztó bit 0:jobbra, 1: balra
SPB bal
SRW 1          // irány: jobbra
SPA tov
bal: SLW 1     // irány: balra
tov: T MW 20   // eredmény vissza

L STW          // státusz szó olvasása
T MW 10        // státusz szó -> MW10

U M 1.0        // irányválasztó
SPB ball
U M 11.7       // státusz szó A1
= M 20.7       // ha jobbra, akkor elöl pótolja a kiesett bitet
SPA tovv
ball: U M 11.7
= M 21.0       // ha balra, akkor hátul pótolja a kiesett bitet
tovv: NOP 0
ide: NOP 0     // ugrás vége

L S5T#200MS    // futás időzítés : 500 ms
UN T 12
SE T 12

71. Példaprogram SRW <léptetés_szám>

Ez a program az MW20 értékét forgatja az M1.0 bitnek megfelelő irányba (0: jobbra, 1:balra), és minden lépés után 200 ms-ot vár. (MW20 értékét például a VAT táblázatban lehet megadni, és bit szinten figyelemmel kísérni.) A program az SLW -t és az SRW –t is tartalmazza.

SLD (32 bites duplaszó balra léptetése)

A 32 bites szó (DWORD) léptetése balra az AKKU1 területet mozgatja bitenként balra. A léptetett területet a művelet „0”-kal tölti fel. A léptetés során utoljára kimozgatott bitet a művelet a státusz szó A1 pozíciójába másolja.Amennyiben az SLD-hez nem adunk meg értéket, úgy az AKKU2-L-L értéke szerint hajtja végre a léptetést (lsd. első példaprogram).

Ha az SLD <léptetés_szám> megadást alkalmazzuk, akkor a léptetés szám szerint hajtja végre a léptetéseket (második példaprogram).

A megadott érték mindkét esetben 0 és 255 között lehet. Az A0 és OV státuszbitek is „0” értéket vesznek fel, ha sikerült ennek a kritériumnak a programunkban megfelelni. Ha a megadott léptetés szám > 32, akkor AKKU1-L = 0, A1 = 0, A0 = 0 és az OV = 0. A „0” léptetés szám esetén a művelet működése azonos a NOP műveletével (üres utasítás).

Az azonos irányú szó hosszú forgatás az SLW művelettel,
az ellenkező irányú szó hosszú forgatás az SRW művelettel történik.
ellenkező irányban duplaszó hosszon az SRD művelet végzi a léptetést.

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x - - - - -

109. Táblázat Státusz szó változásai

L 4       // AKKU2 (léptetések száma)
L 500     // AKKU1 (léptetendő érték)
SLD       // léptetés

T MD 10   // AKKU1 -> MD10

72. Példaprogram SLD

Az egyszerűbb példaprogram esetén az 500 értéket léptethetjük 4-szer balra, így az eredmény (500 * 2^4 ) 8 000 lesz, és ezt az MD10-ben találjuk meg.

UN T 12        // ha lefutott az idő
SPB ide        // bejut a végrehajtáshoz


L MD 20        // MD20 értékét lépteti eggyel balra
U M 1.0        // irányválasztó bit 0:jobbra, 1: balra
SPB bal
SRD 1          // irány: jobbra
SPA tov
bal: SLD 1     // irány: balra
tov: T MD 20   // eredmény vissza

L STW          // státusz szó olvasása
T MW 10        // státusz szó -> MW10

U M 1.0        // irányválasztó
SPB ball
U M 11.7       // státusz szó A1
= M 20.7       // ha jobbra, akkor elöl pótolja a kiesett bitet
SPA tovv
ball: U M 11.7
= M 23.0       // ha balra, akkor hátul pótolja a kiesett bitet
tovv: NOP 0
ide: NOP 0     // ugrás vége

L S5T#200MS    // futás időzítés : 500 ms
UN T 12
SE T 12

73. Példaprogram SLD <léptetés_szám>

Ez a program az MD20 értékét forgatja az M1.0 bitnek megfelelő irányba (0: jobbra, 1:balra), és minden lépés után 200 ms-ot vár. (MD20 értékét például a VAT táblázatban lehet megadni, és bit szinten figyelemmel kísérni.) A program az SLD –t és az SRD –t is egyaránt alkalmazza. A programban a léptetés műveletek a forgatás műveletekhez (RLD, RRD) hasonlóan működnek.

SRD (32 bites duplaszó jobbra léptetése)

A 32 bites szó (DWORD) léptetése jobbra az AKKU1 területet mozgatja bitenként jobbra. A léptetett területet a művelet „0”-kal tölti fel. A léptetés során utoljára kimozgatott bitet a művelet a státusz szó A1 pozíciójába másolja.Amennyiben az SRD-hez nem adunk meg értéket, úgy az AKKU2-L-L értéke szerint hajtja végre a léptetést (lsd. első példaprogram).

Ha az SRD <léptetés_szám> megadást alkalmazzuk, akkor a léptetés szám szerint hajtja végre a léptetéseket (második példaprogram).

A megadott érték mindkét esetben 0 és 255 között lehet. AzA0 és OV státuszbitek is „0” értéket vesznek fel, ha sikerült ennek a kritériumnak a programunkban megfelelni. Ha a megadott léptetés szám > 32, akkor AKKU1-L = 0, A1 = 0, A0 = 0 és az OV = 0. A „0” léptetés szám esetén a művelet működése azonos a NOP műveletével (üres utasítás).

Az azonos irányú szó hosszú forgatás az SRW művelettel,
az ellenkező irányú szó hosszú forgatás az SLW művelettel történik.
ellenkező irányban duplaszó hosszon az SLD művelet végzi a léptetést.

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x - - - - -

154. Táblázat Státusz szó változásai

L 4       // AKKU2 (léptetések száma)
L 500     // AKKU1 (léptetendő érték)
SRD       // léptetés

T MD 10   // AKKU1 -> MD10

74. Példaprogram SRD

Az egyszerűbb példaprogram esetén az 500 értéket léptethetjük 4-szer balra, így az eredmény (500 / 2^4 ) 31 lesz, és ezt az MD10-ben találjuk meg.

UN T 12            // ha lefutott az idő
SPB ide            // bejut a végrehajtáshoz


L MD 20            // MD20 értékét lépteti eggyel balra
U M 1.0            // irányválasztó bit 0:jobbra, 1: balra
SPB bal
SRD 1              // irány: jobbra
SPA tov
bal: SLD 1         // irány: balra
tov: T MD 20       // eredmény vissza

L STW              // státusz szó olvasása
T MW 10            // státusz szó -> MW10

U M 1.0            // irányválasztó
SPB ball
U M 11.7           // státusz szó A1
= M 20.7           // ha jobbra, akkor elöl pótolja a kiesett bitet
SPA tovv
ball: U M 11.7
= M 23.0           // ha balra, akkor hátul pótolja a kiesett bitet
tovv: NOP 0
ide: NOP 0         // ugrás vége

L S5T#200MS        // futás időzítés : 500 ms
UN T 12
SE T 12

Példaprogram SRD <léptetés_szám>

Ez a program az MD20 értékét forgatja az M1.0 bitnek megfelelő irányba (0: jobbra, 1:balra), és minden lépés után 200 ms-ot vár. (MD20 értékét például a VAT táblázatban lehet megadni, és bit szinten figyelemmel kísérni.) A program az SLD -t és az SRD –t is egyaránt alkalmazza. A programban a léptetés műveletek a forgatás műveletekhez (RLD, RRD) hasonlóan működnek.

A forgatási műveletekkel az AKKU1 tartalmát lehet bitszinten jobbra vagy balra forgatni. A forgatásnál a felszabaduló bit pozícióba tölti a másik oldalon „kieső” bit értékét. A forgatás teljes akkumlátor hosszon (32 bit) történik, némelyik művelet az

A1 státusz bitet használja. A műveletek az A0-t „0”-ra állítják.

Parancsnémetülmagyarul
RLDRotiere links Doppelwort (32 Bit)32 bites duplaszó forgatása balra
RRDRotiere rechts Doppelwort (32 Bit)32 bites duplaszó forgatása jobbra
RLDARotiere Akku 1 links über A1-Anzeige (32 Bit)32 bites duplaszó forgatása balra A1 bit jelzéssel
RRDARotiere Akku 1 rechts über A1-Anzeige (32 Bit)32 bites duplaszó forgatása jobbra A1 bit jelzéssel

155. Táblázat Forgatási műveletek

RLD (32 bites duplaszó forgatása balra)

A művelet 32 bites duplaszó forgatását végzi bitenként balra. A forgatandó duplaszót az AKKU1-ből veszi, és az eredményt is ide másolja vissza. A „kieső” bitet a művelet az A1 státuszbitbe másolja át. A forgatandó bitek számát vagy a <forgatás_szám> paraméterrel, vagy az AKKU2-L-L területen kell átadni a műveletnek.

RLD <forgatás_szám>: A <forgatás_szám> paraméter adja meg a műveletnek, hogy hány bitet kell átforgatnia, és ez az érték 0 és 32 között lehet. Ha a megadott szám nagyobb, mint nulla, a művelet az A0 és OV státuszbiteket „0”-ra állítja. Amennyiben a <forgatás_szám> paraméter = 0, akkor a művelet egy NOP parancsnak felel meg.

RLD: Az AKKU2-L-L tartalma adja meg a műveletnek, hogy hány bitet kell átforgatnia, és ez az érték 0 és 255 között lehet. Ha a megadott szám nagyobb, mint nulla, a művelet az A0 és OV státuszbiteket „0”-ra állítja. Amennyiben a megadott paraméter = 0, akkor a művelet egy NOP parancsnak felel meg.

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x - - - - -

156. Táblázat Státusz szó változásai

L 31      // AKKU2 (léptetések száma)
L 500     // AKKU1 (léptetendő érték)
RLD       // léptetés

T MD 10   // AKKU1 -> MD10

76. Példaprogram RLD

Az AKKU2-L-L-be 31-et töltünk, és az 500-at 31 bit-tel balra forgatjuk. Ez egy kettővel való osztásnak felel meg, így az MD10-be 250-et kapunk eredményül.

UN T 12      // ha lefutott az idő
SPB ide      // bejut a végrehajtáshoz

L MD 20      // MD20 értékét lépteti eggyel balra
RLD 1
T MD 20      // az eredményt visszateszi az MD20-ba

ide: NOP 0
L S5T#200MS  // futás időzítés : 250 ms
UN T 12
SE T 12

77. Példaprogram RLD <forgatás_szám>

RRD (32 bites duplaszó forgatása jobbra)

A művelet 32 bites duplaszó forgatását végzi bitenként jobbra. A forgatandó duplaszót az AKKU1-ből veszi, és az eredményt is ide másolja vissza. A „kieső” bitet a művelet az A1 státuszbitbe másolja át. A forgatandó bitek számát vagy a <forgatás_szám> paraméterrel, vagy az AKKU2-L-L területen kell átadni a műveletnek.

RRD <forgatás_szám>: A <forgatás_szám> paraméter adja meg a műveletnek, hogy hány bitet kell átforgatnia, és ez az érték 0 és 32 között lehet. Ha a megadott szám nagyobb, mint nulla, a művelet az A0 és OV státuszbiteket „0”-ra állítja. Amennyiben a <forgatás_szám> paraméter = 0, akkor a művelet egy NOP parancsnak felel meg.

RRD: Az AKKU2-L-L tartalma adja meg a műveletnek, hogy hány bitet kell átforgatnia, és ez az érték 0 és 255 között lehet. Ha a megadott szám nagyobb, mint nulla, a művelet az A0 és OV státuszbiteket „0”-ra állítja. Amennyiben a megadott paraméter = 0, akkor a művelet egy NOP parancsnak felel meg.

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x - - - - -

157. Táblázat Státusz szó változásai

L 31      // AKKU2 (léptetések száma)
L 500     // AKKU1 (léptetendő érték)
RRD       // léptetés

T MD 10   // AKKU1 -> MD10

78. Példaprogram RRD

Az AKKU2-L-L-be 31-et töltünk, és az 500-at 31 bit-tel jobbra forgatjuk. Ez egy kettővel való szorzásnak felel meg, így az MD10-be 1000-et kapunk eredményül.

UN T 12       // ha lefutott az idő
SPB ide       // bejut a végrehajtáshoz

L MD 20       // MD20 értékét lépteti eggyel jobbra
RRD 1
T MD 20       // az eredményt visszateszi az MD20-ba

ide: NOP 0
L S5T#200MS   // futás időzítés : 250 ms
UN T 12
SE T 12

79. Példaprogram RRD <forgatás_szám>

RLDA (32 bites duplaszó forgatása balra)

A művelet 32 bites duplaszó forgatását végzi bitenként balra. A forgatandó duplaszót az AKKU1-ből veszi, és az eredményt is ide másolja vissza. A „kieső” bitet a művelet az A1 státuszbitbe másolja át. A forgatandó bitek számát vagy a <forgatás_szám> paraméterrel, vagy az AKKU2-L-L területen kell átadni a műveletnek.

RLDA <forgatás_szám>: A <forgatás_szám> paraméter adja meg a műveletnek, hogy hány bitet kell átforgatnia, és ez az érték 0 és 32 között lehet. Ha a megadott szám nagyobb, mint nulla, a művelet az A0 és OV státuszbiteket „0”-ra állítja. Amennyiben a <forgatás_szám> paraméter = 0, akkor a művelet egy NOP parancsnak felel meg.

RLDA: Az AKKU2-L-L tartalma adja meg a műveletnek, hogy hány bitet kell átforgatnia, és ez az érték 0 és 255 között lehet. Ha a megadott szám nagyobb, mint nulla, a művelet az A0 és OV státuszbiteket „0”-ra állítja. Amennyiben a megadott paraméter = 0, akkor a művelet egy NOP parancsnak felel meg.

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x - - - - -

158. Táblázat Státusz szó változásai

L 31      // AKKU2 (léptetések száma)
L 500     // AKKU1 (léptetendő érték)
RLDA      // léptetés

T MD 10   // AKKU1 -> MD10

80. Példaprogram RLDA

Az AKKU2-L-L-be 31-et töltünk, és az 500-at 31 bit-tel balra forgatjuk. Ez egy kettővel való osztásnak felel meg, így az MD10-be 250-et kapunk eredményül.

UN T 12       // ha lefutott az idő
SPB ide       // bejut a végrehajtáshoz

L MD 20       // MD20 értékét lépteti eggyel balra
RLDA 1
T MD 20       // az eredményt visszateszi az MD20-ba

ide: NOP 0
L S5T#200MS   // futás időzítés : 250 ms
UN T 12
SE T 12

81. Példaprogram RLDA <forgatás_szám>

RRDA (32 bites duplaszó forgatása jobbra)

A művelet 32 bites duplaszó forgatását végzi bitenként jobbra. A forgatandó duplaszót az AKKU1-ből veszi, és az eredményt is ide másolja vissza. A „kieső” bitet a művelet az A1 státuszbitbe másolja át. A forgatandó bitek számát vagy a <forgatás_szám> paraméterrel, vagy az AKKU2-L-L területen kell átadni a műveletnek.

RRDA <forgatás_szám>: A <forgatás_szám> paraméter adja meg a műveletnek, hogy hány bitet kell átforgatnia, és ez az érték 0 és 32 között lehet. Ha a megadott szám nagyobb, mint nulla, a művelet az A0 és OV státuszbiteket „0”-ra állítja. Amennyiben a <forgatás_szám> paraméter = 0, akkor a művelet egy NOP parancsnak felel meg.

RRDA: Az AKKU2-L-L tartalma adja meg a műveletnek, hogy hány bitet kell átforgatnia, és ez az érték 0 és 255 között lehet. Ha a megadott szám nagyobb, mint nulla, a művelet az A0 és OV státuszbiteket „0”-ra állítja. Amennyiben a megadott paraméter = 0, akkor a művelet egy NOP parancsnak felel meg.

BIEA1A0OVOSORSTAVKE/ER
Írja: - x x x - - - - -

159. Táblázat Státusz szó változásai

L 31      // AKKU2 (léptetések száma)
L 500     // AKKU1 (léptetendő érték)
RRDA      // léptetés

T MD 10   // AKKU1 -> MD10

82. Példaprogram RRDA

Az AKKU2-L-L-be 31-et töltünk, és az 500-at 31 bit-tel jobbra forgatjuk. Ez egy kettővel való szorzásnak felel meg, így az MD10-be 1000-et kapunk eredményül.

UN T 12     // ha lefutott az idő
SPB ide     // bejut a végrehajtáshoz

L MD 20     // MD20 értékét lépteti eggyel jobbra
RRDA 1
T MD 20     // az eredményt visszateszi az MD20-ba

ide: NOP 0
L S5T#200MS // futás időzítés : 250 ms
UN T 12
SE T 12

83. Példaprogram RRDA <forgatás_szám>

Az időfunkció egy programozási elem a STEP7-ben. Ezeknek a funkcióknak egy külön terület van fenntartva a CPU-ban, és itt minden számláló 16 bitet foglal. Az AWL programozási nyelv jellemzően 256 időfunkció használatát teszi lehetővé, de az adott CPU-tól függ, hogy mennyi időfunkció áll a rendelkezésünkre. A számlálókhoz a számláló műveleteken keresztül lehet hozzáférni, és ezek az alábbiak:

Parancsnémetülmagyarul
FRFreigabe TimerTimer feloldása
LLade aktuellen Zeitwert als Ganzzahl in AKKU 1Időérték megadása AKKU1-be, egész szám formátumban
LCLade aktuellen Zeitwert als BCD in AKKU 1Időérték megadása AKKU1-be, BCD formátumban
RRücksetze TimerTimer nullázása
SIZeit als ImpulsImpulzus időfunkció
SVZeit als verlängerter ImpulsMeghosszabbított impulzus időfunkció
SE Zeit als EinschaltverzögerungBekapcsolás késleltetési időfunkció
SSZeit als speichernde EinschaltverzögerungTárolt bekapcsolás késleltetési időfunkció
SAZeit als AusschaltverzögerungKikapcsolás késleltetési időfunkció

160. Táblázat időfunkciók összefoglalás

FR (Timer feloldása)

Formátuma FR <idő>

A számláló feloldása akkor történik meg, ha az utasítás előtt a „VKE” értéke „0”-ról „1”-re vált. Normál használat és a számláló beállítása esetén a feloldás nem szükséges.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 - - 0

161. Táblázat Státusz szó változásai

L (Időérték megadása AKKU1-be, egész szám formátumban)

Formátuma L <idő>

Az idő értékét betölti az AKKU1-L-be egész számként, miután lementette az AKKU1 és AKKU2 értékét. Betöltéskor a 0.-9. biten található a bináris formátumú számérték (0 – 999), és az 12. és 13. biten kerül megadásra az időalap (00: 10 ms, 01: 100 ms, 10: 1 s, 11: 10 s). Az AKKU1-L-be, csak az időérték kerül betöltésre, időalap nélkül.

Az AKKU1-L-ből akkor is be kell tölteni az időértéket, ha az időfunkció nem kerül elindításra (

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

162. Táblázat Státusz szó változásai

LC (Időérték megadása AKKU1-be, BCD formátumban)

Formátuma: LC <idő>

Az idő értékét betölti az AKKU1-L-be BCD-ként, miután lementette az AKKU1 és AKKU2 értékét. A megadott idő maximális értéke „999” lehet, ennek ábrázolására 12 bit (3*4) elegendő, az időalap 2 további biten kerül ábrázolásra, így az AKKU1-L felső 2 bitjét nem tölti ki a művelet.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - - - - -

163. Táblázat Státusz szó változásai

R (Timer nullázása)

Formátuma: R <idő>

A művelet megszakítja az elindított időfunkció futását, és törli annak időértékét. Az indítása akkor történik, amikor a VKE státusz bit értéke „0”-ról „1”-re vált.

BIEA1A0OVOSORSTAVKE/ER
Írja: - - - - - 0 - - 0

164. Táblázat Státusz szó változásai

SI (Impulzus időfunkció)

Formátuma: SI <idő>


  1. időfunkció indítása
  2. időfunkció „rendes” lefutása,az indító bit a lefutás alatt „1”, és csak később „0”
  3. időfunkció indítása
  4. időfunkció indító bitjének a lefutás előtti visszavétele
  5. időfunkció indítása
  6. időfunkció futásának megszakítása reset-tel
  7. reset kint van és az időfunkciót megkíséreljük indítani

61. ábra SI funkció diagramm

SV (Meghosszabbított impulzus időfunkció)


  1. időfunkció indítása
  2. időfunkció „rendes” lefutása,az indító bit a lefutás alatt „1”, és csak később „0”
  3. időfunkció indítása
  4. időfunkció indító bitjének a lefutás előtti visszavétele, az idő ennek ellenére lefut
  5. időfunkció indítása
  6. időfunkció ismételt indítása („beleindítás”). Az időzítés újból indul
  7. ismételt időfunkció lefutása. A két időfunkció futásideje összeadódott.
  8. időfunkció indítása
  9. időfunkció futásának megszakítása reset-tel
  10. reset kint van és az időfunkciót megkíséreljük indítani

62. ábra SV funkció diagramm

SE (Bekapcsolás késleltetési időfunkció)


  1. időfunkció indítása
  2. időfunkció „rendes” lefutása,az indító bit a lefutás alatt „1”
  3. idő indítása „0”-ra. Amint lefutott az idő, és ez a bit „1”, addig a kimenet is „1”.
  4. időfunkció indítása
  5. időfunkció indító bitjének a lefutás előtti visszavétele
  6. időfunkció indítása
  7. időfunkció futásának megszakítása reset-tel
  8. reset kint van és az időfunkciót megkíséreljük indítani

63. ábra SE funkció diagramm