Klöckner
Moeller
Programozás
Hardver leírások PS4-141-MM1, PS4-151-MM1 ( AWB 27-1284-D )
PS4-201-MM1 ( AWB 27-1184-H )
A SUCOcontrol PS 4-141-MM1, PS 4-151-MM1, és a PS 4-201-MM1 programozása
Kézikönyv tartalma
III
1 Programozás: Eljárási módszerek
1-1
2 Programozás: Elemei és szabályai
2-1
3 Program strukturálása
3-1
4 Üzembehelyezés
4-1
5 IL, AWL - utasítások
5-1
6 Funkcióelemek
6-1
7 SCO funkcióelem
7-1
8 SK funkcióelem
8-1
9 Indirekt címzés
9-1
10 Program példák
10-1
11 Parancsok és funkcióelemek
11-1
Klöckner-Moeller
II
9/96 AWB 27-1186-H
Módosítási jegyzôkönyv az AWB 27-1186 kézikönyvhöz
Oldalak 1-7 2-7 2-9 2-16 4-9 6-5 6-43 8-23 8-26 9-27 9-30
Klöckner-Moeller
Címszavak NOTREADY utáni indítás: Bővített magyarázat Analóg bemenetek: Az analóg bemenetek beolvasása Analóg kimenet: Példa S8 és H8 sorok Táblázati témakör 1 bekezdése Ábrázolás 1 Mondat: A ... címtől Teljes program, 0011 Mondat LOOP, 3 és 4 sorok 012 sor 4 Mondat, 002 sor 2 Mondat, 007 és 014 sorok
III
Új X
Módosítás
X X X X X X X X X X
9/96 AWB 27-1186-H
A SUCOcontrol PS 4-141-MM1, PS 4-151-MM1, és a PS 4-201-MM1 programozása Néhány adalék e kézikönyvhöz A PS 4-141-MM1, a PS 4-151-MM1 és a PS 4-201-MM1 vezérlők teljes dokumentációja három egységre tagozódik: - Installálás, felhasználói felületek, dokumentáció - Programozás - Hardver és tervezés Az AWB 27-1185 kézikönyv elmagyarázza , hogyan támogatja Önt a SUCOsoft S30-S 4 : az WL/IL-ben írt felhasználói program készítésénél, a készülék konfigurálásánál, és a vezérlő üzembe helyezésénél. Ez a kézikönyv az installációs tudnivalók és a felhasználói programok dokumentálásának ismertetése mellett magában foglalja a „ Felhasználói felület kezelés” fejezetet, kiemelt hangsúllyal az „AWL/IL-Editor” és a „Készülékkonfigurálás” tárgyalásával. A rendelkezésre álló AWB 27-1186 kézikönyv „ Programozás” része azokat az információkat tartalmazza melyek a PLC-k programozásához szükségesek. Mindenekelőtt elmagyarázza a program elkészítésének és strukturálásának eljárási módszereit, valamint az üzembe helyezést. Emellett áttekintést ad valamennyi AWL/IL utasításról és funkcióelemről. A fejezetet gyakorlat közeli programozási példák zárják. A „ Hardver és tervezés „ kézikönyvekben ( PS 4-141 / 151-MM1: AWB 27-1266, PS 4-201-MM1: AWB 27-1184)megtudhat hasznos dolgokat a vezérlő szereléséről és a tervezésről. Ön megismerheti a PLC-k elemeit és ezek működési módjait. A „Slave címzés” fejezet általános szintaktikai szabályokat definiál a SUCOnet-K hálózati résztvevők megszólíthatóságáról. A „Szoftver konfiguráció” fejezetben ebben a témakörben elmélyítheti tudását szemléltető példák segítségével. A következő táblázat egy áttekintést ad azokról a témakörökről amelyeket a dokumentációban leírtunk és hol találja meg ezeket. A témaköröket az eljárási módszerek gyakorisági sorrendjében jelentettük meg
Klöckner-Moeller
IV
9/96 AWB 27-1186-H
A SUCOcontrol PS 4-141-MM1, PS 4-151-MM1, és a PS 4-201-MM1 programozása Néhány adalék e kézikönyvhöz
Munkalépések 1. -SUCOsoft S30 -S4 installálása 2. SUCOsoft S30 -S4 megismerése 3. Program készítése 3.1 Rendszerparaméterek beállítása 3.2 Résztvevők konfigurálása 3.3
AWL/IL editor megismerése
3.4
Programelemek és programozási szabályok megismerése Program strukturálása Konfigurációs fájlok programba történő belefoglalása Programkód beírása Program fordítása (compiler) Vezérlőbe történő program áttöltés Vezérlő üzembe helyezése PS 4-201-MM1: PS 4-141/151/MM1: Hiba-/diagnózis leírás PS 4- 201-MM1: PS 4- 141/151-MM1: Program dokumentálása
3.4.1 3.5 3.6 4. 5. 6. 7. 8.
Klöckner-Moeller
V
Leírva az alábbiakban AWB 27-1185, 1 fejezet AWB 27-1185, 2 fejezet AWB 27-1186, 1 fejezet AWB 27-1186, 1 fejezet AWB 27-1185, 2 fejezet Készülékkonfiguráló AWB 27-1185, 2 fejezet AWL / IL editor AWB 27-1186, 2 fejezet AWB 27-1186, 3 fejezet AWB 27-1186, 1 fejezet AWB 27-1186, 1 fejezet AWB 27-1186, 1 fejezet AWB 27-1186, 1 fejezet AWB 27-1186, 4 fejezet AWB 27-1184, 7 fejezet AWB 27-1266, 7 fejezet AWB 27-1186, 4 fejezet AWB 27-1184, 7 fejezet AWB 27-1266, 7 fejezet AWB 27-1185, 3 fejezet
9/96 AWB 27-1186-H
Programozás: Eljárási módszerek
Tartalom Általánosságok
1-2
Rendszerparaméterek beállítása Programellenőrzés futáskor (RUN) NOTREADY utáni indítás Maximális ciklusidő ms-ben Aktív merker tartomány Remanens merker tartomány (hidegindítás után is) Remanens merker tartomány Merkertartomány kényszerbeírása futáskor (RUN) Jelszó Funkcióelemek verziójának elmentése Foglaltsági táblázat elkészítése Felhasználói program verziószáma
1-3 1-4 1-4 1-5 1-5
Készülék konfigurálásának az elkészítése
1-8
Program készítése A konfigurációs fájl belefoglalása
1-9 1-10
Program fordítása Biztonsági másolat
1-11 1-11
A program PLC-be történő áttöltése
1-12
Klöckner-Moeller
1-6
1-5 1-6 1-6 1-6 1-7 1-7 1-7
9/96 AWB 27-1186-H
Programozás: Eljárási módszerek Általánosságok
Ebben a fejezetben megkap Őn minden információt amelyekre Önnek a programkészítés során szüksége lehet. A programkód beírása mellett néhány előkészítő és befejező munka van amelyeket itt az eljárási módszerek sorában Önnek elmagyarázunk. A következő ismertetésnek két előfeltétele van: - A SUCOsoft S 30-S 4 V2.0 -tól magasabb verziószámú program installálva legyen: lásd az AWB27-1185, 1 fejezetében - Legyen Ön tisztában a program általános kezelésével / a SUCOsoft S 30-S 4 : felhasználói felülete: lásd az AWB 27-1185, 2 fejezetében
Klöckner-Moeller
1-7
9/96 AWB 27-1186-H
Programozás: Eljárási módszerek Rendszerparaméterek beállítása A felhasználói program a .q 42 forrásfájljának a fejrésze adatokat tartalmaz a mindenkori PLC rendszer-konfigurációjáról. Ezeket az adatokat a compiler lefordítja és a vezérlőbe áttöltődnek. A rendszerparaméterekkel a következő tartományok kiválasztása ill. módosítása állítható be: - Programvizsgálat futáskor - NOTREADY utáni indítás (start) - Maximális ciklusidő ms-ban - Aktív merker tartomány - Remanens merker tartomány ( hidegindítás után is ) - Remanens merker tartomány - Merkertartomány kényszerbeírása futáskor (RUN) - Jelszó - Funkcióelemek verziójának az elmentése - Foglaltsági táblázat elkészítése - A felhasználói program verziószáma A rendszerparaméterek beállításához a SUCOsoft S 30-S 4 főmenüjéből a következő lépésekkel menjen tovább: - [F1] PROGRAMOZÁS - [F3] RENDSZERPARAMÉTER-ADATOK Mivel a rendszerparaméterek a felhasználói programnak alkotó részei kérdezze le a programfájl nevét és a hozzátartozó meghajtót. A végrehajtott bevitel ill. kivitel után válassza ki a következő maszkot:
Klöckner-Moeller
1-8
9/96 AWB 27-1186-H
Programozás: Eljárási módszerek Rendszerparaméterek beállítása - [F2] RENDSZERPARAMÉTER RENDSZERPARAMÉTER: Programvizsgálat RUN-ban Start NOTREADY után Maximális ciklusidő ms-ben
: <Áll=0, Hideg=1, Meleg=2> : < 1.....255 > :
Aktív merker tartomány Remanens merker tartomány < Hideg start után is > Remanens merker tartomány
ig. MB <0....32767 > : tól MB <0....32767 > : ig. MB < 0...32767 > : tól MB < 0....32767 > : ig. MB < 0....32767 > : tól MB <0.....32767 > : ig. MB <0 ....32767 > :
Merker tartomány kényszer beírása futáskor Jelszó Funkcióelemek verziójának elmentése Foglaltsági tábla előállítása Felhasználói programnak a verziószáma:
[0] [0] [60]
< Igen=1, Nem=0 >:
[4096] [- ] [- ] [- ] [- ] [- ] [- ] [ ] [0]
< Igen=1, Nem=0 > :
[0]
:
[
0]
A nem remanens tartományt kérjük - val jelölni FŐMENÜ PROGRAMOZÁS RENDSZERPARAMÉTEREK BEVITELE F1 Visszaugrás F10 Támogatás 1-1 ábra : Rendszerparaméter beviteli menü A szögletes zárójelbe kell a beállítandó értékeket megadni. Miután Ön az összes rendszerparamétert a kívánalmainak megfelelően beállította, hagyja el a menüt az [F1] visszaugrással. Önnek itt lehetősége van, hogy a beállított értékeket elmentse. Programvizsgálat RUN - ban (futás közben) A compiler egy ellenőrző összeget képez, amely a lefordított programnak egy meghatározott helyén tárolódik. Ha Ön Igent =1 választ, akkor a PLC rendszerprogramja ezzel az ellenőrző összeg (checksum) algoritmussal ellenőrzi a felhasználói programot futás közben. Amennyiben az ellenőrző összegek között eltérést állapít meg akkor a PLC NOT Ready állapotba kerül. A hiba a diagnózis állapotszóba beíródik és ott megtekinthető. Az ellenőrzés ciklikusan ismétlődik. Az előzetes beállítás Nem =0. Klöckner-Moeller
1-9
9/96 AWB 27-1186-H
Programozás: Eljárási módszerek Rendszerparaméterek beállítása
NOTREADY utáni indítás Itt szükséges megadni, hogy a vezérlőnek a NOTReady után milyen üzemállapotot kell felvennie. Az előzetes beállítás megállás. 0 = megállás, 1= hideg indítás, 2= meleg indítás . A meleg indítást csak akkor szabad választani, ha a vezérelt folyamatnak egy határozatlan időpontban történő megszakítása esetén a NOTReady-vel történő melegindítás emberekre és gépekre nem jelent veszélyt. Maximális ciklusidő ms-ban Az előzetes beállítás 60 ms. max. 255 ms érték állítható be. Ez a beállítás a felhasználói program ciklusidejét nem szabályozza, csupán egy felső korlátot ad hibaellenőrzésre. Egy kisebb ciklusidőt csak akkor állítson, ha a program tényleges futási idejét pontosan ismeri. Egy hosszabb programfutási időtartam ekkor hibára utalna. A beállított ciklusidő átírásakor a diagnózis állapotszó (DSW) ECT bitjében beírás történik, és a vezérlő NOTReady (nem rendelkezésre álló) állapotba kerül. Aktív merkertartomány Az előzetes beállítás MB0 -tól MB4096-ig történhet. Ezt a beállítást a felhasználói programban alkalmazott merkerekre célszerűen kell megállapítani mivel a teljes aktív bekapcsolt merker tárolóterület szükséges. Amennyiben a felhasználói programban olyan merkereket alkalmazna amelyeket előzőleg nem definiált a compiler egy megfelelő hibajelzést ad. A nem remanens merkertartományként specifikált merkermezőt meleg- vagy hidegindítás esetén mindig „0”-ra szükséges inicializálni.(kezdőértékre állítani) . Remanens merkertartomány (hideg indítás után is) Itt azt a merkertartományt állítják be amely adatainak a hidegindítás esetén is remanensnek azaz megőrzöttnek kell maradnia. Ez a merkertartomány egy részét képezi a kiválasztott aktív merker tartománynak. Az aktív merkertartománynak a remanens merkertartománnyal nem engedélyezett az átlapolódása. ( lásd a következő részben) A SUCOsoft S 30-S 4-ben a dinamikus tárolókezelésnél ennek a merkertartománynak a lementése szükséges amennyiben a készülék konfigurációja módosításra kerül (bemeneti-/ kimeneti elemek hozzáadásakor vagy eltávolításakor ). A remanens merkertartomány lementését a megváltoztatott felhasználói program áttöltése előtt SDAT funkcióelemmel flash EEPROM tárolómodulra történő írással kell megvalósítani. Miután a módosított program a vezérlőbe áttöltésre került a védett merkertartomány az RDAT funkcióelemmel a flash EEPROM tárolóból ismét a PLC tárolójába áttöltődik. Ezt az eljárást csak akkor szükséges elvégezni amennyiben a remanens merkertartomány is felhasználásra kerül.
Klöckner-Moeller
1-10
9/96 AWB 27-1186-H
Programozás: Eljárási módszerek Rendszerparaméterek beállítása
Remanens merkertartomány Feszültség kimaradásakor a remanens merkerek megtartják az utolsó állapotukat. Meleg indítás esetén ezeket a rendszerprogram nem törli. Ez a merkertartomány egy részét képezi a kiválasztott aktív merkertartománynak. Ennek a merkertartománynak nem szabad átlapolódnia a hideg indítású remanens merkertartománnyal. ( lásd az előző részben ) Merkertartomány kényszerhelyzetbe állítása futás állapotban Az itt definiált merkerek AWL/IL-s állapotkijelzésben a vezérlő futási üzemekor dinamikusan kényszerhelyzetbe állíthatók. Ez a merkertartomány egy részét jelenti a kiválasztott aktív merkertartománynak. A dinamikus kényszerhelyzetbe állítással például meghatározott adatértékek előzetes beállításával egy kívánt programlefutás előidézhető, vagy meghatározott műveletek működésbe hozhatók. Egy összeállítás készíthető 18 merkerig azért , hogy ezeknek az értékei megfigyelhetővé válhassanak. Az ezzel kapcsolatos részletesebb információ a 4-ik fejezetben található, az AWL/IL -es állapotkijelzés témakörben. Jelszó A jelszó bevitele a vezérlőn védelmet nyújt az illetéktelenek beavatkozása ellen. A készülék elsődleges beállítása azaz alapbeállítása jelszó nélküli. A jelszó max. 8 karakterhosszúságú lehet. A jelszó a felhasználói programmal együtt jár és a fordításnál történik összekapcsolásuk. Egy már beírt jelszó egy másik tetszőlegesen választható új jelszóval átírható. A jelszóra történő lekérdezés mindig akkor történik amikor az adatokat vagy a vezérlő állapotát meg kell változtatni. Az alábbi műveleteknél - start - stop - diagnózis-számláló törlés (reset) - diagnózis állapotszó törlés - remanens merkerek törlése - kényszerhelyzetbe állítás - on-line programozás - a PLC és a PC meghajtójának összehasonlításakor - PLC -ből a PC -be történő áttöltéskor (transfer) - PC- ből a PLC-be történő átvitel esetén - a PLC-be történő dátum beírás esetén a jelszó lekérdezése mindig akkor történik, ha a vezérlőben egy jelszóval védett program található.
Klöckner-Moeller
1-11
9/96 AWB 27-1186-H
Programozás: Eljárási módszerek Rendszerparaméterek beállítása Az alábbi műveletek - állapotkijelzés - tartomány ábrázolás - készülék állapot - I/Q kijelzés (bemenet/kimenet) a jelszó megadása nélkül is végrehajthatók, mivel ez esetben az adatok csak olvashatók és nem módosíthatók. Abban az esetben ha a jelszót egyáltalán nem, vagy tévesen adják meg a műveletek nem hajtódnak végre és megjelenik egy hibajelzés : „ A jelszó megadása téves. A műveletek végrehajtása nem valósul meg „ Ha Ön a jelszót elfelejtette, akkor a biztonsági másolaton a forrásfájlban .q42 a rendszerparaméterek bevitele menüpontban utánanézhet Ehhez nézze át a program fordítás/biztonsági másolat részt is. Aki a forrásfájlon keresztül a rendszerparaméterekhez hozzáfér az minden jelszóval védett műveletet végrehajthat. Funkcióelemek verziójának az elmentése Az Igen=1 -nél az alkalmazott funkcióelemek verziója programfájlba .p42 mentődik el, és a szokványos Hex-editorral visszaolvasható. Ezáltal egy esetleges hibakeresés lényegesen megkönnyíthető, mivel azonos műveletekre különböző verziójú funkcióelemek létezhetnek. Az előzetes beállítás „ 0=nincs mentés„-re történik. Foglaltsági táblázat készítése Lehetőség van arra, hogy az alkalmazott logikai címekhez (merker, stb.) a PLC memóriájában lévő foglaltsági táblázatban megfelelő fizikai címeket rendeljünk hozzá. A felhasznált funkcióelemek verziói elmentődnek. Ezáltal egy esetleges hibakeresés lényegesen könnyebbé válik, mivel a funkcióelemeknek különböző verziói létezhetnek azonos funkcionális szerep esetén. Ezeket ASCII fájl lementi, amelyek szöveg editorral kiolvashatók. Felhasználói program verziószáma Az előzetes beállítás 0 állapotra történik. Itt különböző verziószámú felhasználói programok különböztethetők meg. Ezek az információk a PLC állapotképében (állapotszó)láthatók.
Klöckner-Moeller
1-12
9/96 AWB 27-1186-H
Programozás: Eljárási módszerek Készülék konfigurálás elkészítése A készülék konfigurálás elkészítéséhez a főmenüből a következő lépésekkel menjen tovább: - [F1] Programozás - [F4] Készülék konfigurálás - A konfigurálási fájlok nevének bevitele ill. fájlnak a már létezőkből történő kiválasztása - [F2] Konfigurálás 0.0.1 108-XR1
0.0.2 116-XD1
0.0.3 116-DX1
1.2.0 1.2.1 EM4-201-DX2 116-DX1
1.2.2 116-XD1
1.2.3 116-XD1
PS4-201-MM1 1.1.0 PS4-101-DD1
1.3.0 PS4-141-MM1 1.4.0 CM4-501-FS1 1.5.0 EBE295.1 - FŐMENÜ PROGRAMOZÁS KÉSZÜLÉK KONFIGURÁLÁS F1 Visszaugrás F4 Modul csere F7 Hozzárendelési lista F2 Résztvevő hozzákapcsolás F5 Zoom/Normal F8 Törlés F3 Modul hozzákapcsolás F6 Paraméter bevitel F10 Támogatás
c: test.k42
1-2 ábra: Készülék konfigurálás menü Ebben a menüben készíthető el a készülék konfigurálása. A résztvevő hozzákapcsolás alatt azt értendő, hogy a konfiguráció bővítése vertikális irányban történik. A modul hozzákapcsolás azt jelenti, hogy a bővítés horizontális irányban történik. A bővítés kiválasztása után megjelenik egy kiválasztási box a kiválasztáshoz tartozó résztvevővel ill. modullal. Az [F3] PROGRAM MENTÉS-sel a < Név > .k42 fájlok mentése biztosítható. A .k42 konfigurálási fájlokat mindig be kell vinni , akkor is ha a PLC önálló (egyedi) készülékként üzemel. A készülék konfigurálásának a témaköréről részletesebb információt Ön az AWB27-1185 2 fejezetében találhat. Klöckner-Moeller
1-14
9/96 AWB 27-1186-H
Programozás: Eljárási módszerek Program elkészítése
A felhasználói program értelmezhető úgy is mint a programozható vezérlőnek a műveleti előírása, amelyben a vezérlés teljes folyamata van leírva. A felhasználói program készítésekor a főmenüből a következő lépésekkel menjen tovább: - [F1] Programozás - [F2] Programozás AWL/IL - ben - A forrás- és hozzárendelési (referencia) fájlok bevitele a kiválasztási boxból - [F2] Programbevitel 00000 KONFIG 001 002 00001 BEMENET 001 002 003 00002 STRT 001 002 003 004 005 006 007 008 009 010 011 012
„ # include „e4000am.k42” „Bemeneten beolvasása L IB1.2.0.0 =MB32 „ Programnak az indítása LK1 S M 10.0 S M 18.0
STRT_SK0 Master üzem
LK1 AN M 11.1 = M 11.2 LK1 = M 11.1 L M 11.2 JCN PROGRAM L KHB 1
--FŐMENÜ PROGRAMOZÁS PROGRAMBEVITEL Befűzés F1 Visszaugrás F4 Sorok hozzáadása F7 Mondatok törlése F2 Mondat nyitás F5 Keresés/Kicserélés F8 Aktuális sorok törlése F3 Mondat kiválasztás F6 Mondatok másolása F9 Tartomány törlése 1-3 ábra : Programbevitel menü
Klöckner-Moeller
1-15
9/96 AWB 27-1186-H
Programozás: Eljárási módszerek Program elkészítése A következő áttekintést adó táblázat azokat a tématerületeket mutatja melyeket Önnek ismerni kell a programkód bevitele előtt: Programozási ismeretek AWL Editor (szerkesztő) Programozás: Elemek és szabályok Program strukturálása AWL/IL utasítások Funkcióelemek (blokkok) SCO funkcióelem (haladók számára) Léptetőlánc funkcióelem (haladók számára) Indirekt címzés (haladók számára)
leírása az alábbi helyeken AWB 27-1185 2 fejezet AWB 27-1186 2 fejezet AWB 27-1186 3 fejezet AWB 27-1186 5 fejezet AWB 27-1186 6 fejezet AWB 27-1186 7 fejezet AWB 27-1186 8 fejezet AWB 27- 1186 9 fejezet
A konfigurációs fájl bevitele A konfigurációs fájl bevitele a fordítás (compiler) futtatásához szükséges. Mivel ez a konfiguráció tartalmazza azt az információt, hogy melyik bővítőmodult , slave-vezérlőt, stb. melyik helyen alkalmazza, a compiler ily módon meg tudja vizsgálni a címzés helyességét és további formaságokat. Ez az utasítás formailag a következőképpen néz ki: # include „ konfigurációs fájl. k42 „.
Klöckner-Moeller
1-16
9/96 AWB 27-1186-H
Programozás: Eljárási módszerek Program fordítása
Azért, hogy a bevitt AWL utasításokból futtatható program váljék le kell azt fordítanunk. Figyelmeztetés ! Kérjük, hogy olvassa el a biztonsági másolatot mielőtt Ön a fordítást elkezdené
A fordításhoz az [F5] Programozás menüből válassza ki a compiler-t. A hozzátartozó forrás- és hozzárendelési fájlokat mindig a kiválasztási boxból vigye be. Ezután megkérdezi Öntől, hogy az include fájlokat mindig azonos meghajtóról olvasta-e be. Erre a kérdésre válaszoljon igennel ha szabványos meghajtókat (A, B, C,...) használ. Ha nemet ad meg , akkor felszólítja Önt, hogy mindegyik include-utasításra ,amelyeket a fordítás alatt talál , egy megfelelő meghajtót adjon meg. Nem választ tehát csak akkor célszerű adni, ha a hozzátartozó include fájlok különböző meghajtókon találhatók. A rendszermenüben ezek a lekérdezések hatástalaníthatók. A meghajtók megadása egy kiválasztási boxból történhet. Ezután történik a compiler futtatása. Ha ezt hibamentesen befejezi, akkor végrehajtható a felhasználói program vezérlőbe történő áttöltése. Ha a compiler futása nem hibamentesen valósul meg akkor a hibákat, amelyeket mondat- és sorszám szerint kilistáz, meg kell szüntetni. Egy futtatható program csak akkor valósul meg, ha több hiba már nem létezik. Biztonsági másolat Miután a felhasználói program lefordítódik, az eredeti programkódba azt már nem lehet visszafordítani (discompiler). Ajánlatos ezért a következő fájlokról vagy biztonsági másolatot és/vagy dokumentációt készíteni: - .q42 forrásfájl - .z42 hozzárendelési fájl - .k42 konfigurációs fájl Ezeknek az intézkedéseknek az elvégzése akkor is hasznosnak bizonyul ha elfelejti Ön a jelszót. A jelszó megtalálható a .q42 forrásfájl biztonsági másolatában a rendszerparaméterek beviteli menüben.
Klöckner-Moeller
1-17
9/96 AWB 27-1186-H
Programozás: Eljárási módszerek Program PLC-be történö áttöltése
A felhasználói programnak a vezérlőbe történő áttöltésekor válassza a programozás menüből az [F2] teszt/üzembehelyezés-t és ezután az [F6]-al a PC meghajtóból → PLC-be transzfer irányt. Az áttöltendő fájlok kiválasztása után a kiválasztási boxból történik ezeknek a vezérlőbe történő áttöltése. A Suconet K hálózaton történő programozásnál a célvezérlő címét meg kell adni. Az áttöltést a PLC-n található Ready- és NOT Ready LED azonos időtartamú villogó fényjelzéssel mutatja. Amennyiben egy felhasználói programot már tartalmaz a PLC ,akkor az egy új programmal felülírható. Ha a korábbi program jelszóval védve van, akkor a felülírás előtt a korábbi programhoz tartozó jelszót meg kell adnia. A sikeres program áttöltés után a kijelző azt mutatja , hogy hány bájtot töltött át (.p42 fájlok mérete) és a PLC -ben még mennyi szabad tárolóhely található. További útmutatásokat talál Ön a 4 fejezetben egyéb áttöltési műveletekről, valamint további test/üzembehelyezési műveletekről és on-line módosításokról.
Klöckner-Moeller
1-18
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok
Tartalom Utasítás elemei - Operandusok címzése - Bemenetek - Digitális bemenetek - Analóg bemenetek - Számláló bemenet - Riasztás (alarm) bemenet - Kimenetek - Digitális kimenetek - Analóg kimenet - Merker - Állandók - Valósidejű óra - Funkcióelem paraméterek - Rendszerspecifikus operandusok - Szimbolikus operandusok - Operandusok negálása - Műveletek
2-3 2-4 2-5 2-5 2-6 2-6 2-7 2-7 2-7 2-8 2-8 2-9 2-10 2-11 2-11 2-12 2-14 2-15
Funkcióelemek - Áttekintés - Funkcióelemek szervezése és helye - Elemek száma - Funkcióelemek behívása - Elembemenetek viselkedése - Bekapcsolódás a felhasználói programba - Remanens elemek alkalmazása
2-18 2-18 2-20 2-20 2-20 2-22 2-22 2-25
Regiszterek - Munkaregiszter - Segédregiszter - Állapotregiszter - Veremregiszter
2-28 2-29 2-29 2-29 2-30
Részeredmények kezelése
2-31
AWL/IL szintaktikai szabályai - Parancssorok - Szekvencia - Mondat - Főprogram
2-32 2-32 2-32 2-35 2-36
Klöckner-Moeller
2-19
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok
Preprocesszor utasítások - A konfigurációs fájl beillesztése - Adatfájlok befűzése - Adatfájlok összefoglalása - Dokumentálás irányítása
Klöckner-Moeller
2-20
2-38 2-38 2-38 2-39 2-39
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Utasítás elemei
A felhasználói program a tárolt programú vezérlő (PLC) munkavégzési előírása. Ez a program a teljes vezérlési folyamat lefolyását írja le. A programnak a legkisebb önálló egysége az utasítás. Az utasítás egy sorban leírható, a vezérlés számára feladatot tartalmaz és nem bontható további részegységekre. Példa lehet erre az ÉS kapcsolat és az összeadás. Egy utasítás a DIN 19239 (IEC 65A) szabványok szerint műveleti és operandus részből tevődik össze. A műveleti rész leírja a végrehajtandó műveletet. Ezáltal a processzornak előírja, hogy a megadott operandusokkal milyen módon kell eljárnia. Az operandus rész a operandus jelét és paraméterét foglalja magában, adott esetben egy kiegészítő jellel bővítve. Az oprandusok jelei az operandusok típusát írják le, míg a paraméterei az operandusok pontos kiválasztását. Ezek az operandusok helyzetére vonatkoznak hálózati felépítés esetén (PLC, EM 4, LE 4) valamint a szó- ill. bájt címek és bitszámok megadására. A programozási nyelv a következő operandus típusokat ismeri : Bemenetek I, Kimenetek Q, Merkerek M, Állandók K, Rendszerspecifikus operandusok, Szimbolikus operandusok Operandusok címei Utasítás
Műveleti rész
Művelet
Vezetékág
Operandus rész
Kiegészítés
Résztvevő
Operandus jele
Modulszám
Kiegészítés
Paraméter
Szó ill. bájt címek
Bitszám
2-1 ábra Utasítás felépítése
Klöckner-Moeller
2-21
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Utasítás elemei
A következő táblázat az összes operandust mutatja, amelyek az utasításokkal alkalmazhatók. Kérjük ügyeljen arra, hogy minden utasításnál a megadott adattípus (bit, bájt, szó) az operandus adattípusával összhangba legyen.
Klöckner-Moeller
2-22
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Utasítás elemei
2-1 Táblázat: Operandusok áttekintése Megnevezés Bemenetek1)
bit I
bájt IB, IAB, ICB
Kimenetek Merker Állandók1) Valósidejü óra1) Periféria hozzáférés Állapot/Diagnózis Kommunikációs adatok Információs közlemények
Q M K IP 1) , QP IS 1) , INB x.y1)
QB, QAB MB KB, KHB CKxx IPB1) , QPB ISB 1) RDB, SDB -
szó IW, IAW, ICW QW; QAW MW KW, KHW ISW1) -
1)
Ezek az oprandusok a következő műveletekre nem alkalmazhatók: - Kijelölés (=) - Törlés (R) - Beírás (S) Az operandusok címzése A PLC térbelileg elhelyezkedésű operandusainak szintaktikailag egyértelmű cimezhetősége a következő érvényes jelölésrendszerrel lehetséges, amelyet bitbemenetre az alábbi szemléltető példa mutatja be: I x.x.x.x.x IB x.x.x.x IW x.x.x.x bitszám (0.....7) csak a bitműveleteknél adják meg bájtszám (0.....y) szószám (0,2,4,...z) modul (0.....6) résztvevő (0.....8) [állomás] vezetékág (strang) szám (0....3) y a mindenkori állomás - és modul típusszámtól függ. z mindig páros szám Klöckner-Moeller
2-23
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Utasítás elemei
Ilymódon írható példaképpen az alábbi jelölés amely az 1 vezetékágon lévő, 1 slavehez (EM) tartozó 1modulon (LE) lévő hetedik digitális bit bemenetre érvényes: I 1.1.1.0.7 IB 1.1.1.0 IW 1.1.1.0 A báziskészülékként üzemelő PLC-nél az (I0.0-I0.7) bit bemeneteinek vagy a (Q0.0Q0.5) bit kimeneteinek megszólításánál elmarad az első három szám. Ha ezeket a felhasználó beadja elmarad a sorok lezárása. Minden bővítő készüléken lévő bemenet és kimenet címzésének 5 számjegyből állónak kell lennie. A programszerű megszólítások vagy abszolút vagy szimbolikus paraméterezéssel történnek Hasonlóan történik a merkerek címzése. A báziskészülék merkereinek megszólítása címzésileg azonos a többi báziskészülék operanduséval. A horizontális szinten párhuzamos (parallel) buszmerkerek (LE busz merker) alkalmazhatók. Ezek a párhuzamos buszmerkerek az alábbiak: M 0.0.1.x.y - M 0.0.6.x.y ( bit, bájt, szó ) Ezekhez a merkerekhez a hozzáférés több ciklusidőt igényel mint a báziskészülék merkereinél, mivel a párhuzamos buszt minden hozzáféréskor először meg kell nyitnia. Az összes többi résztvevő hálózati elem nem rendelkezik merkerrel. A SUCOsoft S 30-S 4 -200 lehetőséget nyújt az indirekt címzéssel történő program készítésre. Az indirekt címzéssel kapcsolatos részletes leírás a 8-ik fejezetben található. Bemenetek A bemenetek egy csatolóegységet jelentenek a vezérlő és környezeti (periféria) elemei között. A bemeneteken keresztül jutnak a jelek kintről a vezérlőbe és itt további feldolgozásra kerülnek. A bit bemenetek bájtszámmal és tőle egy ponttal elválasztott megfelelő bitszámmal adhatók meg. A bájt bemenetek a bájtszámok mellett egy B betűs kiegészítést is tartalmaznak. A szó bemeneteknél elhagyandó a bitszám és a pont. Ezek mindig páros számok. Ezesetben a W kiegészítő betű alkalmazása szükséges.
Klöckner-Moeller
2-24
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Utasítás elemei
Digitális bemenetek IW0.0.1.0 IB 0.0.1.1
7
6
5
4
3
2
IB 0.0.1.0
1
0
7
6
5
4
3
2
1
0
0 bemeneti szó 2-2 ábra: A bemenetek címzési módja Az egyedi (önállóan működő) készülékként üzemelő PLC-k alkalmazásánál 8 ill. 16 digitális bitbemenet áll rendelkezésre. Az LE 4-és EM 4 modulok beiktatásával a digitális bemenetek száma bővíthető. A digitális szóbemenet midig a bemeneti adatregiszterből (image regiszter) szólítható meg. Kivételt jelent az IP operandusokhoz történő hozzáférés (lásd a rendszerspecifikus operandusokat tárgyaló fejezetben) A bemeneti image regiszter olvasható tulajdonsággal rendelkezik. Analóg bemenetek A PS 4 készülék szabványos analóg bemeneteinél nincs galvanikus leválasztás. Az analóg értékek kizárólag 0-10 VDC tartományúak , és 10 bit felbontásúak lehetnek .(az analóg bemeneteken 10 bit-es A/D található) A programszerű lekérdezése vagy abszolút vagy szimbolikus programozással történik. A lokális analóg bemenetek meg szólítására alkalmazható a PLC mindkét alapjeladója, de ezekkel további analóg bemenetek is vizsgálhatók. A lokális analóg bemenetek beolvasása: IAW 0 Potenciométer ill. alapjeladó IAW 2 Potenciométer ill. alapjeladó IAW 4 Sorkapocs IAW 6 Sorkapocs Számláló bemenet A PLC rendelkezik egy szabványos gyorsszámláló bemenettel. A hozzáférés az alarm (riasztás) funkcióelemről történik.
Klöckner-Moeller
2-25
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Utasítás elemei
Alarm (riasztás, megszakításkérő) bemenet A PLC egy alarm bemenettel rendelkezik. Az alarm bemenetről történhet a FALARM funkcióelemhez történő hozzáférés. Lehetséges a felfutó- és lefutóélek kiértékelése egyaránt. Kimenetek A PLC-ben előállított jeleket a kimeneteken át lehet a kimenetekhez kapcsolódó periféria elemekre juttatni. A kimenetek kapcsolatot képeznek a vezérlő és a folyamat között. A bit kimeneteket a bájtszámmal és a megfelelő bitszámmal lehet megadni, amelyek egymástól ponttal vannak elválasztva. A bájt kimenetek a bájtszám mellett egy B kiegészítő betűt tartalmaznak. A szó kimeneteknél lemarad a bitszám és az elválasztó pont. Ezek mindig párosak. Ezesetben a W kiegészítő betű használata szükséges. Digitális kimenetek QW 0.0.2.0 QB 0.0.2.1
7
6
5
4
3
2
QB 0.0.2.0
1
0
7
6
5
4
3
2
1
0
0 Szó kimenet 2-3 ábra: A kimenetek címzési módja Ellentétben a bemeneti adatregiszterrel a kimeneti adatregiszter irható és olvasható sajátosságokkal rendelkezik. Az adatregiszterben található értékeket a felhasználói programból tovább-feldolgozás céljából vissza lehet olvasni. Kivételt jelent a QP operandusokhoz történő hozzáférés (lásd a rendszerspecifikus operandusokat tárgyaló részben ) Írás : = Q 0.0 Olvasás : L Q 0.0 Klöckner-Moeller
2-26
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Utasítás elemei
Analóg kimenet Szabványszerűen a PLC-k egy 0-10 VDC értéktartományú analóg kimenetet biztosítanak. Az analóg kimeneti jel felbontása 12 bit (0...4095) Az analóg kimenet megszólítása abszolút vagy szimbolikus programozással történik. Az analóg kimenet nem olvasható Példa: (A 4000-es értéket a QAW 0 -ra kell kiadni) L KW 4000 = QAW 0 Merker A Merkerek azoknak a részeredményeknek a tárolására szolgálnak, amelyek a PLCben a jelek feldolgozásakor keletkeznek. Az alkalmazandó merkerek számának (bit, bájt, szó) csak a rendelkezésre álló tárolóhely ill. a rendszerparaméterek beadásánál a felhasználó-oldali megszorítás szab határt. Bit- merker a bájt számmal és megfelelő bitszámmal adható meg, amelyeket pont választja el egymástól. Bájt- merker a bájtszám mellett egy B kiegészítő betűt is tartalmaz. A szó- merkereknél a bitszám és a pont elmaradhat. Ezesetben a kiegészítő W betű alkalmazása szükséges. MW 0 MB 1
7
6
5
4
3
MB 0
2
1
0
7
6
5
4
3
2
1
0
0 szó-merker 2-4 ábra : A merkerek címzésmódja A merkerek alapvetően visszaolvashatók. Áramkimaradáskor a remanens viselkedésük lehetővé teszi a szabadon programozást. Program készítésnél a felhasználók két Klöckner-Moeller
2-27
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Utasítás elemei
olyan merkertartományt választhatnak amelyeknél egy esetleges áramkimaradás esetén az adatértékek megőrződnek. Az egyik merkertartomány szabadon rendelkezésre álló. A másik merkertartomány a hideg indítás remanens (visszamaradó) adataira lefoglalt. Az ezen a tartományon kívül fekvő merkerek ilyen esetben elveszítik tárolt információ tartalmukat és feszsültség lekapcsolásakor „0”-ra definiált állapotba helyeződnek. Ezek a remanens merkertartományok a SUCOsoft „ Rendszerparaméter adatok” menüben (1. fejezet) állíthatók be és csak a hozzájuk tartozó felhasználói programra érvényesek. Párhuzamos (parallel) busz merker A felhasználó a PS 4-200 sorozat párhuzamos buszán ezeket a merkereket csak a horizontális irányú vezetéken (strangon ) érheti el. A résztvevők [állomások] mindegyike LE1-LE6 (0.0.1-0.0.6) a párhuzamos buszon a báziskészülékhez kapcsolódhat és egy 256 bájt méretű párhuzamos busz oldallal rendelkezik. Az oprandusok szintaktikai szabálya a következőképpen néz ki : Pl. M 0.0.1.x.y ahol y= bitcím és x= bájtcím Általános formában ez az operandus szintaktikai szabály a következőképpen néz ki: <Merker-operandus> 0.0.modul.bájt.bit az adat típusok lehetnek = bit, bájt, szó A párhuzamos busz merker hozzáféréshez mindig több idő szükséges mint a báziskészülékben lévő merkerek hozzáféréséhez, mivel a párhuzamos busz alaphelyzetben zárva van és minden hozzáforduláskor nyit csak ki. Állandók (Konstansok) A K állandók segítségével lehet a rögzített kezdeti- és alapjel értékeket előállítani. Mindig a kiválasztott adattípusnak megfelelően az állandók értékei az alábbi tartományokban helyezkedhetnek el: Bit: K 0 és K 1 Bájt: KB -128...KB 0...KB 127 Szó: KW -32768...KW 0...KW32767 A fentiekben bemutatott állandó ábrázolási formán kívül a programnyelv felismeri az állandókat hexadecimális formában is. A hexadecimálisan ábrázolt állandók az alábbi tartományokban helyezkedhetnek el: Klöckner-Moeller
2-28
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Utasítás elemei
Bájt: KHB 0...KHB FF Szó: KHW 0...KHW FFFF Az előjelet a hexadecimális formájú állandóknál nem lehet expliciten megadni. Ezt a hexadecimális szám legmagasabb helyértéke tartalmazza. A KHW FFFF állandó ily módon a KW-1 decimális állandó értékének felel meg. Az állandók értékei a programkészítés során állapíthatók meg és a program futásakor már nem módosíthatók. Valósidejü óra A PLC központi egysége (CPU) egy valósidejű órát tartalmaz. Ezáltal megvalósítható a dátum- és az időtől függő programozás Az óra (idő) értéke a SUCOsoft S 30S4 szoftvernél a PC és PLC on-line üzemében állítható be. Az aktuális idő-/dátum értékeket a rendszerrutinból másodperces lépésekben egy erre fenntartott adattartományba lehet beírni. Ez a tartomány bájtonkénti szervezésű. A SUCOsoft S 30-S 4 szoftver képessé teszi a programozót arra, hogy bájt szekvenciában a töltés (L) műveleten keresztül ezekhez az adatokhoz hozzáférjen . Ez a következő szintaktikával engedélyezett: L CKSS Másodpercek 0-59 L CKMM Percek 0-59 L CKHH Órák 0-23 L CKYR Évek 0-99 L CKMT Hónapok 1-12 L CKDY Napok 1-31 L CKWD Hét napjai 0-6 (vasárnap-szombat ) Ezeket az értékeket a PLC decimálisan ajánlja meg azért, hogy az AWL/IL (utasításlistás) programban közvetlen összehasonlítást lehessen megvalósítani az állandókkal. Ezekkel a műveletekkel a követelmény szerint ciklikus alarm (riasztás) programozható. (Az óra +/- 10 ppm pontossággal rendelkezik ami 11,5 naponként +/- 10 másodpercnyi maximális eltérésnek felel meg.) Példa Állítsunk elő minden nap 1 perces időtartamú 16 órakor kezdődő riasztást. ALARM
Klöckner-Moeller
L K0 = Mx.y L CKHH CP KB16 BNE TOVÁBB L CKMM CP KB0 BNE TOVÁBB 2-29
Ha ez nem 16 óra akkor elágazás a TOVÁBB címkére Az aktuális percek 0-val hasonlítódnak össze
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Utasítás elemei
L K1 = M x.y
Ez a szekvencia 16 órakor 1 perces időtartamig fut
TOVÁBB
Klöckner-Moeller
2-30
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Utasítás elemei
Funkcióelem paraméterek A funkcióelemek paramétereit , ezek beviteli lehetőségén túl, a felhasználói program tetszőleges helyéről elemhivással közvetlenül ki lehet olvasni. Ebben az esetben az elem-név, elem-szám , és a megfelelő funkcióelem-paraméter egy operandusa képződik: L C25 Q = CP 6 I1
A 25-ik számláló Q kimenete A 6-ik összehasonlító(komparátor) egység I1 -es bemenete
A funkcióelem paraméterezés ezen módjánál a felhasználói programban szereplő funkcióelemek bemenetei itt kimeneteknek számítanak, azaz ezek olvashatók, mialatt a funkcióelem kimeneteit bemenetként kezeli. A funkcióelem kimenetei ily módon a felhasználói programból csak olvashatók de nem írhatók. Rendszerspecifikus operandusok A rendszer belső zavarainak programozott figyelésére ill. a felhasználói program és a folyamatperiféria vagy a hálózati adatok közötti információ cserére a PLC rendelkezik rendszerspecifikus paraméterekkel, amelyeknek a leírása a következő részben található. Periféria-operandusok IP, QP A periféria-operandusok alkalmazásával lehetővé válik a ciklusidőtől ill. folyamatképtől független hozzáférés a báziskészülékként üzemelő PLC IB0 be- és QB0 kimenetekhez. Ezeknek az operandusoknak a parancs szekvenciába történő bevitele analóg módon történik az összes többi operanduséval. Ezeknek az operandusoknak egy előnyös alkalmazása lehet pl. az alarm feldolgozás. A periféria-operandusok elérése alapvetően úgy bit mint bájt módon is történhet. A QPB 0 kimeneti bájthoz történő hozzáférésnél meg kell jegyezni, hogy a QP 0.6 és 0.7 kimenetek nem szólíthatók meg , mivel ezek a bázis készülékben nem léteznek. Ezek a bájt üzemmódú megszólításnál 0-ra állítódnak. Példa: L IP 0.0 A IP 0.5 = QP 0.3 ...
Klöckner-Moeller
2-31
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Utasítás elemei
Mivel a hozzáférés csak a bázis készüléknél lehetséges , az érvényes bemenetek: IP 0.0...0.7 IPB 0 és az érvényes kimenetek: QP 0.0...0.5 QPB 0 Figyelem ! A periféria-operandusok alkalmazásánál a kimeneti kép rendszeridőben megváltozik. Állapot-/ Diagnosztikai bemenetek IS Ezek a bemenetek a báziskészülékben lekérdezendő állapotinformációkat tartalmazzák ill. a kapcsolódó állomások diagnózisát engedélyezik. A kapcsolódó állomások valamennyien lokális bővítmények, külső modulok és így tovább. Ezekkel az adatokkal lehetséges az összes engedélyezett adattípussal végzendő művelet megfigyelése. A részletes leírás a báziskészülékként üzemelő PLC diagnózis-állapotszóról (állapotdiagnózis bemenetek IS ) a 4. fejezetben találja. A lokális bővitményekről és a külső modulokról a megfelelő információkat a mindenkori hardver leírásban találja. Kommunikációs adatok RD/SD Itt azokról az adatokról van szó, amelyek az aktív SUCOnet résztvevők között, ill. a báziskészülékként üzemelő PLC és az aktív résztvevők között a SUCOnet K terepi buszon (Feld- ill. field bus) kicserélődnek. (SD=SEND DATA , RD=RECEIVE DATA) Ezekkel az adatokkal lehetséges az összes engedélyezett adattípussal végzendő művelet megfigyelése. Erről közelebbi információkat, valamint a kommunikációs adatok részletes leírását az AWB 27-1184 6. fejezetében találja. Információs adat INB Az információs adat felvilágosítást ad a vezérlő állapotáról. Ezt az adatot csak bitszerűen lehet megszólítani, és segítségével lehetővé válik a vezérlő állapotától függően egy reakció lefutásának elvégzése. Részletes információkat az INB információs adatbájt egyes bitjeinek jelentéséről az üzembe helyezéssel foglalkozó 4. fejezetben találja meg. Szimbolikus operandusok
Klöckner-Moeller
2-32
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Utasítás elemei
Az ebben a fejezetben közölt valamennyi operandus ( I, Q, M stb. ) paraméteres operandus formában vagy szimbolikus operandussal a programban megszólítható. Egy szimbolikus operandus max. 8 karakterből áll, amelyeket a felhasználó szabadon választhatja meg. A szimbolikus operandusokat a hozzárendelési listában közlik és a hozzájuk tartozó operandusokkal látják el. A hozzárendelési listában találhatók továbbá még olyan járulékos adatok is mint a működési mód (V) , csatlakozó pontok megjelölése és az operandusokhoz fűzhető megjegyzések, kommentárok. Példa: A hozzárendelési lista alkalmazására Szimbólum S0
Operandus I 0.0
V s
S1
I 0.1
s
S3
I 0.2
s
LS4
I 0.3
s
LS5
I 0.4
s
S6 S7
I 0.5 I 0.6
s s
S8
IB 1.1.2.0
vw
Y0
Q 0.0
Y1
Q 0.1
H2
Q 0.2
H3
Q 0.3
H7
Q 0.5.
H8
QW 1.1.4.0
Klöckner-Moeller
Csatlakozó Operandus kommentár !x0 Határkapcsoló, terelőlemez „adagolóállásban” 1x1 Határkapcsoló, terelőlemez „terelőállásban” 1x3 Adatok bevitelének kiválasztása határ/választókapcsoló 1x4 Fénysorompó „bejövő csomagok” 1x5 Fénysorompó „kimenő csomagok” 1x6 Csomagszámláló nullázása 1x7 Zavar nyugtázása, duda kikapcsolása 1x40...47 „Max. csomagszám torlódás” (1.strang, 1.résztvevő, 2. modul, 0 bájt ) 2x0 A terelőlemez adagolóállásba hozása (H2) 2x1 A terelőlemez terelőállásba hozása (H3) 2x2 Y0 végállás. 2Hz-es villogás; végállás folytonos fény 2x3 Y1 végállás. 2Hz-es villogás; végállás folytonos fény 2x7 Duda 5 sec.„Torló szakasz tele” intervallum 2x40...56 Számjegyes kijelzés:... Csomagok a torló szakaszban (1. strang, 1.résztvevő, 4.modul, 0 szó)
2-33
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Utasítás elemei
A szimbolikus operandusokat a felhasználói programban ´ jellel (egyszeres idézőjellel) kezdik az egyértelmű azonosításuk biztosítása érdekében. A felhasználói programban a szimbolikus oprandusok alkalmazásánál a hozzárendelési listában elhelyezett operandus kommentárok automatikusan áttöltődnek a referencia fájlba.
Klöckner-Moeller
2-34
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Utasítás elemei
Példa: Program felépítése szimbolikus operarandusok alkalmazása esetén 00001
VILLOG
00002
SIGNAL (Jelzés)
00003
SIGNAL1 (1. Jelzés)
00004
SIGNAL2 (2. Jelzés)
”Ütemgenerátor mozgás kijelzés TGEN 0 Ütemgenerátor 2 Hz S: L ´Y0 Terelőlemez adagolóállásba hozása (H2) O ´Y1 Terelőlemez terelőállásba hozása (H3) I: KW 500 Állandó 500 (ms) P: ” ” A következő jelzésekben villog a megszólított fényjel” ző, amíg az állítótag mozgásban és a véghelyzetet nem ” éri el, 2 Hz-es villogással. ” A megfelelő véghelyzet(ek) elérésekor a villogó fény ” folytonos fényre vált ” Jelzés: Adagolóállásba hozás LN M 10.0 Torlódást jelző segédmerker A TGEN 0 P Ütemgenerátor 2 Hz O ´S0 Terelőlemez „adagolóállásban” határkapcsoló = ´H2 Y0 véghelyzet 2 Hz villogófény; véghelyzetben folytonos fényjelzés ” Jelzés: Terelőállásba hozás LN M 10.0 Torlódást jelző segédmerker A TGEN 0 P Ütemgenerátor 2 Hz O ´S1 Terelőlemez „terelőállásban” határkapcsoló = ´H3 Y0 véghelyzet 2Hz villogófény; véghelyzetben folytonos fényjelzés
A következőkben példaként a lehetséges operandus típusokhoz mindig egy abszolút operandusú szimbólum van hozzárendelve. Operandus típusok Bemenetek Merker Kimenetek
Szimbólumok S0 HM2 Y0
Operandusok I 0.0 M 2.0 Q 0.0
Programozás L ´S0 L ´HM2; =´HM2 = ´Y0; S ´Y0
Az operandusok negálása
Klöckner-Moeller
2-35
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Utasítás elemei
Az ebben a fejezetben közölt valamennyi operandus (a funkcióelemek paraméterein kívül) igény esetén negálható. Erre a műveletre az „N” jelet használják, amelynek az operandusok előtt állva az a következménye, hogy az utasításban szereplő operandusérték negálását megvalósítsa. Az alábbi utasítás példa azt jelenti, hogy a digitális kimenetek 4-ik helyértékű bitjének a negáltja töltődik a munkaregiszterbe: LN Q0.3 Ezesetben a tényleges Q 0.3 kimenet értéke nem változik. Műveletek A rendelkezésre álló műveletekkel Boole- és aritmetikai utasításokat, összehasonlítási műveleteket, eltolási- és forgatási folyamatokat és áttöltési műveleteket lehet realizál- ni. Ezen kívül még a programszervezési műveletek egész sora áll rendelkezésre. Az összes lehetséges operandust a hozzátartozó adattípusok feltüntetésével a 2-2 táblázat mutatja. Az egyes műveletek jelentéséről részletes információkat talál az AWL/IL utasításokkal foglalkozó 5. fejezetben. 2-2 táblázat: Az rendelkezésre álló műveletek a hozzájuk tartozó adattípusokkal Műveletek Bit Bájt/Szó Negált Negált Boole: ÉS kapcsolat A AN A AN VAGY kapcsolat O ON O ON KIZÁRÓ-VAGY XO XON XO XON NEGÁLÁS NOT NOT Aritmetikai: Összeadás ADD Kivonás SUB Szorzás MUL Osztás DIV Összehasonlító Összehasonlítás CP Szómódosítási Eltolás balra SHL Carry átvitellel SHLC Eltolás jobbra SHR Carry átvitellel SHRC Forgatás balra ROTL Forgatás jobbra ROTR Átviteli Töltés, operandus a L LN L LN munkaregiszterbe vagy stack (verem) regiszterKlöckner-Moeller
2-36
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Utasítás elemei
be Kijelölés, operandusok kapcsolatainak eredménye Beírás, operandusok Törlés, operandusok Segédregiszter töltése Programszervezési
Ugrások a mondatnévre (label) abszolút ugrás feltételes ugrás Az alprogramból visszaugrás a hívó programba ill. a főprogramból az operációs rendszerbe abszolút feltételes Feltételes elágazások mondatnévre (label) bitre átvitelre előjelre nullára túlcsordulásra Összehasonlítás nagyobbra egyenlő vagy nagyobbra egyenlőségre kisebbre egyenlő vagy kisebbre Egyéb nullművelet modul vége program vége
=
2-37
=
=N
S R GOR
JP
JP JC
JCN
RET RETC
RETCN
RET
BB BC BP BZ BV
BNB BNC BM BNZ BNV
BGT BDE BE BLT BLE NOP EM EP
megszakítás tiltása DI ( disable interrupt) megszakítás engedé- EI lyezés (enable interr.) Klöckner-Moeller
=N
BNE
NOP EM EP DI EI
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Utasítás elemei
Programelem hívás CM feltétel nélküli CMC feltételes Programelemre történő feltételes elágazások munkaregiszter bitre átvitelre előjelre + nullára túlcsordulásra nagyobbra egyenlőre kisebbre egyenlő vagy nagyobbra egyenlő vagy kisebbre
Klöckner-Moeller
2-38
CM CMCN CMB CMCY CMP CMM CMZ CMV CMGT CME CMLT CMGE
CMNB CMNC CMNZ CMNV CMNE
CMLE
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Funkcióelemek
A funkcióelemek a Sucosoft S30-S4 alkotórészei. Ezeket az elemeket felhasználói programból látják el adatokkal és a felhasználói programból hozzák működésbe. A funkcióelemekkel komplexebb műveletek állnak rendelkezésére, amelyek az adatokat teljesen egyértelmű szabályokkal a felhasználói programból felveszik és az eredmények megfelelő kiértékelése után a felhasználói programnak visszaadják. Az operációs rendszer hajtja végre tulajdonképpen az adatok feldolgozását. Az egyedi utasítások költséges sorozata megszűnik. Ezáltal a rendelkezésére álló felhasználói programtároló tehermentesítve lesz. Egyidejűleg megszűnhetnek a programozó számára oly gyakran szükséges műveletek időtrabló tesztfázisai. Erre példa lehet az összehasonlító (komparátor) funkcióelem, amely két bemeneti szót összehasonlít és az eredmények a kimenetén rendelkezésre állnak. --W I1
GT---
= 1,
ha az 1 szó > 2 szó
EQ---
= 1,
ha az 1 szó = 2 szó
LT---
=1,
ha az 1 szó < 2 szó
CP10
--W I2
2-5 ábra: Egy példa funkcióelemre A SUCOsoft szoftver a funkcióblokkok felhasználói programba történő beintegrálását támogatja. A funkcióelemek működését, az összes be- és kimenetének a jelölését a programrendszernek kell ismernie. Ezekkel az információkkal aztán e szoftver a programozandó funkcióelemek körvonalrajzát mutatja a képernyőn. A felhasználó ebben a helyzetben viszi felhasználói programjába a funkcióelem csatlakozási pontjait. Az alkalmazott funcióelemek a felhasználói programmal együtt fordítódnak le, és az áttöltésük a vezérlőbe is együtt valósul meg. A mindenkori alkalmazás dönti el, hogy egyedi utasításokat vagy funkcióelemeket célszerű-e alkalmazni a programkészítésnél. A funkcióelemek a felhasználónak egy előregyártott és kipróbált, minden eseményt figyelembe vevő megoldást nyújtanak, hibákat felügyelik és egy felhasználót támogató programozást tesznek lehetővé. A funkcióelemek feldolgozásánál a központi egységnek több időre van szüksége mint az egyes utasítások feldolgozása esetén. Áttekintés A 2-3 táblázatban közölt funkcióelemek részletes ismertetésére a 6. fejezetben kerül sor.
Klöckner-Moeller
2-39
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Funkcióelemek 2-3 táblázat: A rendelkezésre álló funkcióelemek Csoport
Elem
Aritmetikai (Fixpontos aritmeteika)
Összehasonlító CP (komparátor)
Szó
Tartalmát megőrző (remanens) -
Számláló
Előre-/ hátra számláló Meghúzás késleltető Elengedés késleltető Impulzus tag Generátor Idő-/dátum összehasonlító Valósidejü óra beállítása Léptető (shift) regiszter
C
Szó
Igen
TR
-
Igen
TF
-
Igen
TP TGEN CK
-
Igen -
SCK
-
-
Bit Bájt Szó Bájt Szó
Igen Igen Igen Igen Igen
Bájt Szó -
Igen Igen Igen -
Szó Szó Byte
Igen
Bájt
Igen
-
-
Időzítő tagok
Valósidejü óra
Regiszter (kaszkádba köthető)
Riasztó (alarm) elemek Kódátalakítók Blokkátvivő Blokk összehasonlító Adatfeldolgozás hidegindítás adatmegőrzés tartományban Klöckner-Moeller
Rövid jelölése
SR SRB SRW LIFO verem LIFOB (stack) regiszter LIFOW FIFO verem regiszter FIFOB Lépéslánc FIFOW SK Gyorsszámláló CALARM Élvezérelt FALARM számláló Időzítő TALARM Bináris BCD BID BCD Bináris DEB Indirekt ICPY másoló Összehasonlító ICP Mentés (save) Újratöltés (reload)
SDAT RDAT
2-40
Adattípus
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Funkcióelemek
Funkcióelemek szervezése és helye A funkcióelemeket a hívásuk előtt bemeneti adatokkal kell ellátni. A hívásuk után a funkcióelem-program feldolgozza a bemeneti adatokat és előállítja eredményként a kimeneti adatokat. A funkcióelem bemeneti adatait a felhasználói program határozza meg, és egy bemeneti adatmezőbe átteszi. Kimeneti oldalon a felhasználói program a funkcióelem eredményeit a kimeneti adatmezőből veszi át. A rendszerprogram fordítója (compiler) a programban használt funkcióelemekre adat- mezőket hoz létre az adattárolóban. Ily módon a funkcióelemek be- és kimenetei éppen úgy állnak a felhasználói program rendelkezésére mint más tetszőleges operandus. Így használható például a 12-es bináris-/ BCD kódátalakító „Q” eredmény kimenete összhangban a funkcióelemmel. Ez a BID 12 Q operandus aztán a program tetszőleges helyén egy utasításba beépíthető. Például: L BID 12 Q = MW 2 Az adatmező tartalma addig őrződik meg , míg egy azonos funkcióelem további feldolgozása során az nem íródik felül. A 2-6 ábra mutatja a felhasználói program és a funkcióelem közötti összjátékot. A funkcióelemet meg kell hívni, hogy az eredményét meghatározhassa. Ha ez nem elegendő akkor az adata mint egy utasítás operandusa kijelölendő és az eredményeket azonos módon szükséges elszállítani. (lásd még ebben a fejezetben a „A felhasználói programba történő beillesztése” c. rész alatt) A funkcióelemek száma Az alkalmazható funkcióelemek maximális száma általában nincs korlátozva. Gyakorlati oldalról viszont a felhasználói memória mérete jelent korlátot. Elméletileg a funkcióelemek számának felső határa 65535 -re tehető. A funkcióelemek hívása A funkcióelemeket rövid megnevezésükkel, az elem számával és ha szükséges kiegészítő adatok megadásával hívnak meg ( lásd a 2-3 táblázatot ) Valamennyi kiegészítő adatot „-” kötőjellel kell bevezetni. Kiegészítő adatok lehetnek: -R -MS
Tartalmát megőrző (remanens) Milliszekundum
-S 1...128
Szekundum Regiszterhossz
Klöckner-Moeller
A funkcióelem telepvédelemmel ellátva Az időzítőelemnél az időalap milliszekundum (10 ms órajel) Az időzítőelemnél az időalap szekundum Regiszterelemeknél a választható regiszter hosszúság (léptetés hossza) 2-41
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Funkcióelemek
Felhasználói programtároló
Felhasználói program
Funkcióelem program Bemeneti adatok Funkcióelem hívása
Kimeneti adatok
Programfutás Adatáramlás
Klöckner-Moeller
2-42
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Funkcióelemek 2-6 ábra: A funkcióelemek feldolgozásánál a programfutás és az adatáramlás
Klöckner-Moeller
2-43
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Funkcióelemek Példa: C13-R
A 13-es remanens előre-/ hátraszámláló hívása A 14-es remanens bit-léptetőregiszter hívása és 121 lépésnyi regiszterhosszra történő állítása A 14-es elengedés késleltető időzítő hívása és a szekundumos időalap kiválasztása
SR 14-121-R TF 14-S
A funkcióelemek az „-R” megadásával remanensé (nullfeszültségre védetté) tehetők. A regiszter funkcióelemek hossza választható. Az időzítő elemek időalapjai 10 ms és 1 s értékekre állíthatók. A funkcióelem bemeneteinek a viselkedése A funkcióelemek bemeneteit statikus és dinamikus viselkedésük különbözteti meg egymástól. A statikus viselkedés azt jelenti, hogy a bemenethez rendelt művelet akkor hajtódik végre ha a bemenetet logikai 1 (azaz H szint) -nek ítéli. Ilyen viselkedéssel rendelkezik valamennyi bemenet az órajel -és a beíró bemenetekig. A dinamikus órajel- és beíró bemeneteknek egy logikai 0-ról logikai 1- re történő váltást (pozitív irányú felfutó élt) kell felismerniük mielőtt a műveletüket végrehajtanák. Azért, hogy ez a felfutóél képzés önállóan elvégezhető lehessen az szükséges, hogy a funkcióelemek a H szint után egy L szintet felismerjenek. Erre különösképpen a programelágazásoknál kell ügyelni. Nincs előírás arra nézve, hogy a funkcióelem valamennyi bemenetét foglalttá kell tenni. A szabadon hagyott bemenetek passzívak azaz úgy viselkednek mintha a bemeneten egy állandó L szint lenne. Felhasználói programba történő beágyazásuk A meghívás adatai egy funkcióelemet ismertető jeleivel viselkedésmódjában olymódon írnak le, hogy a SUCOsoft S 30-S 4 program a funkcióelemet a bemeneteivel és kimeneteivel sematikusan ábrázolhassa. Az elem bemeneteit és kimeneteit ábrázolják és megjelölik. A be- és kimenetekre vonatkozó adattípusok kiegészítő információit szükséges megadnia. Ennek jelentése: Nincs adat B W Klöckner-Moeller
bit bájt szó
1 bit 8 bit 16 bit 2-44
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Funkcióelemek
A következő példa egy számláló elemet mutat be meghívás után . . . . O M 105.3 = Q 0.7 C 14-R [ ] U: [ ] D: [ ] S: [ ] R: [W] I: [ ] Z: [W] Q: A felhasználó „ C 14-R „ -ig adja meg a sorokat . A következő sorokat a rendszerprogram egészíti ki. Miután a képernyőn megjelenik a funkcióelem sematikus rajza a programozó feladata, hogy a bemeneteket és kimeneteket adatokkal ellássa. A programozó beírja ehhez az operandusok listájába vagy az operandusok tetszőleges kapcsolatába a szükséges adatokat. . . O M 105.3 = Q 0.3 C 14-R [ ] U: I0.1 Felfelé számlálás [ ] D: I0.2 Lefelé számlálás [ ] S: I0.3 Beíró bemenet [ ] R: LI 0.4 Törlő bemenet ON M 24.6 Törlés feltétele [W] I: KW 256 Számláló beállítási értéke [ ] Z: Q 0.5 Null-jelzés [W] Q: MW 20 Számláló állapota L ADD
MW 20 MW 22
Számláló állapota Közbenső összeg (részeredmény)
A példa a számláló elemet a felhasználói programba történő befűzése után mutatja. A program futásakor a bemeneti oldali operandusok tartalma a hozzájuk rendelt adattárolóba másolódnak. Ezután egy ugrás következik a programtároló rendszer programKlöckner-Moeller
2-45
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Funkcióelemek részbe az érintett funkcióelem-programhoz. A funkcióelem-program feldolgozza a bemeneti adatokat és az eredményt kiírja a funkcióelem kimeneti adattartományába. Az eredményeket innen a felhasználói program elhozhatja és a feldolgozását folytathatja. Az elöző példában a be-/ kimenetek közvetlenül a funkcióelemre kerülnek. „Funkcióelemek szervezése és helye” részből kitűnik, hogy a funkcióelemek be-kimenetei éppenúgy beépíthetők a felhasználói programba ahogyan a többi ope -randus. Az előző példát azonos műveletnél a következőképpen lehetne módosítani
L KW 256 = C 14 I
C 14-R [ ] U: [ ] D: [ ] S: [ ] R: [W] I: [ ] Z: [W]Q:
L KW 557 = C 14 I
I 0.1 I 0.2 I 0.3 L I 0.4 O N M 24.6
Felfelé számlálás Lefelé számlálás Beíró bemenet Törlő bemenet Törlés feltétele
Q 0.3 MW 20
Null-jelzés Számláló állapota
L MW 20 Számláló állapota ADD MW 22 Közbenső összeg . . A program most egy külső adatbetöltéssel rendelkező számlálóelemet tartalmaz. Az „I” bemenetről ez esetben nem a funkcióelemben , hanem az előprogramban szükséges gondoskodnia. Ezzel az eljárással egy központilag kijelölt funkcióblokkot különböző előprogramokból alternatív adatokkal lehetséges táplálni. Klöckner-Moeller
2-46
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Funkcióelemek
Remanens funkcióelemek alkalmazása A felhasználói programtárolóhoz (RAM) a PLC-ben egy kiegészítő tárolómodul (RAM) beiktatható, amely EEPROM flash tároló is lehet. A felhasználói programtárolóban a lefordított felhasználói programot tárolják. A felhasználói program programozott funkcióelemei számára az adattárolóban tartományokat foglalnak le, amelyekben a funkcióelemek aktuális adatait (pl. számláló állapot értéke, regiszterek tartalma stb.) helyezik el. A adattárolót dinamikusan kezelik. A dinamikus azt jelenti, hogy a lefoglalt funkcióelemek tartalmát nem a tartósan hozzárendelt adattartományban helyezik el, hanem abban a sorrendben, amilyen sorrendben programozták ezeket. (lásd a 2-7 ábrát) Az adattárolót a fordító (compiler) dinamikusan kezeli. A hálózati bekapcsolásnál a nem remanens funkcióelemek adatmezői törlődnek. A remanens funkcióelemek adat tartományai ezzel szemben megőrzöttek maradnak Figyelem ! Az utólagosan befűzött funkcióelemek program módosításakor a következő funkcióelem adattartománya eltolódik. (lásd a 2-8 ábrát ) Ez ahhoz vezethet, hogy a remanens adatokat téves funkcióelemekhez rendeli. Ezért a programmódosításoknál a következő eljárásokat ajánljuk: 1, Az új funkcióelemeket a program végéhez illessze, ha ezek remanes állapotait meg kell őrizni. 2, Ha a remanens adatok megőrzése a program módosítása után nem szükséges, a funkcióelemek befűzhetők. A remanens adatokat ekkor törölni kell. Ez történhet a PS 4 tápfeszültség ki- és bekapcsolásával vagy a programozó készülékről a „Status-menu” pontban (Teszt és üzembehelyezés almenü) az F7„ Remanens tartomány törlése” funkcióbillentyű működtetésével
Klöckner-Moeller
2-47
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Funkcióelemek 2-7 ábra: Tárolófajták és a funkcióelemek adatelhelyezése Felhasználói program tároló
Adattároló
Rendszertároló
AWL/IL program C0 számláló
Funkcióelemek
C0
C0 Adatai
Léptetőregiszter
SRB1-10
FIFO-regiszter (remanens)
FIFO20-15-R
SRB1-10 Adatai FIFO20-15-R Adatai
Léptetőregiszter
SRB1-20
SRB!-20 Adatai
2-8 ábra: Adat tartományok eltolása befűzés után Felhasználói programtároló
Adattároló
AWL/IL program C0 számláló
Funkcióelemek
C0
C0 Adatai
Léptetőregiszter
SRB1-10
SRB1-10 Adatai
LIFO-regiszter
LIFO5-30
LIFO5-30 adataival FIFO20-15-R -ből FIFO-15-R Adatai
befűzött FIFO-regiszter (remanens) Léptetőregiszter Klöckner-Moeller
Rendszertároló
FIFO20-15-R SRB1-20
SRB1-20 Adatai 2-48
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Funkcióelemek
Klöckner-Moeller
2-49
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Regiszter A 2-2 táblázatban felsorolt utasításokkal az összes operandus akár negált akár nem különböző módon kezelhető. Ezért a PLC a felhasználónak néhány szabadon rendelkezésére álló regisztert biztosít, amelyeken minden kapcsolatnak át kell futnia és amelyekben az értékek átmenetileg tárolódnak. Az említett regiszterek a következők: a munkaregiszter, a segédregiszter, az állapotregiszter és a veremregiszter. 2-9 ábra: A regiszterek áttekintése RSw RSb RS Veremregiszter
RAw
RAb
RA Munkaregiszter Segédregiszter
RHw Állapotregiszter Átvitel (C) Zéró (Z) Előjel (P/M) Túlcsordulás (V) Az állapotregiszteren kívül az összes regiszter változó szélességű, azaz az operandusok adattípusa szerint a megfelelő programszekvenciákban a regiszterek hosszúságai lehetnek: 1 bit a bit műveleteknél 1 bájt 8 bit, a bájt műveleteknél, -128 -tól 127-ig előjelet magában foglaló egészszám értékekkel 1 szó 16 bit, a szó műveleteknél, -32768-tól 32767-ig előjelet magában foglaló értékekkel Klöckner-Moeller
2-50
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Regiszter
Munkaregiszter A munkaregiszter a legtöbbet használt regiszter. Ebben a regiszterben hajtódik végre az összes kapcsolat és művelet. Ez a regiszter munkatárolóként szolgál azért, hogy az operandusok állapotait analizálni lehessen , és az értékeket tetszőleges irányokba lehessen áthelyezni. Segédregiszter A segédregiszter néhány aritmetikai műveletnél szükséges. A segédregiszterben a túlcsordulás (szorzás után) ill. a maradék (osztás után) tárolódik. Ezeket az értékeket a „GOR” paranccsal lehet a munkaregiszterbe tölteni. A munkaregiszter és a segédregiszter együtt egy regiszterpárt képezhet. Ezeket a kombinációkat a szorzásnál és osz- tásnál alkalmazzák. Állapotregiszter Az állapotregiszter 4 bit széles adatokat tartalmaz a munkaregiszter tartalmáról (zéró és előjelbit ) és az előző aritmetikai vagy logikai műveletek eredményéről(átvitel és túlcsordulásbit) Az egyes állapotbitek jelentése: Átvitelbit: (C) Zéróbit: (Z) Előjelbit: ( P/M )
Túlcsordulás bit: (V)
Az átvitelbit (carry-flag) az aritmetikai műveleteknél az átvitelt tartalmazza. (praktikusan ez a munkaregiszternek 1 bittel történő bővítését jelenti) A zéróbit (zero-flag) leírja a munkaregiszter tartalmát. - beírt (H) állapotú, ha a munkaregiszter egyenlő nullával -törölt (L) állapotú, ha a munkaregiszter nem egyenlő nullával Az előjelbit (sign-flag) a munkaregiszterben lévő szám előjelét adja meg. Gyakran azonos a munkaregiszter legnagyobb helyértékével (MSB) -beírt (H) állapotú, ha a szám negatív -törölt (L) állapotú, ha a szám nem negatív A túlcsordulás bit (overflow-flag)jelzi, hogy egy aritmetikai műveletnél túlcsordulás történt-e. A túlcsordulás legtöbbször több bitből áll és ezzel nem meghatározható az átvitelbit. Ez a bit megadja az aritmetikai kapcsolat eredményének az érvényességét ( V=0), ill. érvénytelenségét ( V=1 )
Az állapotbit a feltételes ugrások segítségével lekérdezhető úgy egyenként mint kombinációban. ( az elágazásoknál BGT, BGE, BE, BLE, BLT) Az állapotregiszter egy Klöckner-Moeller
2-51
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Regiszter művelet utáni foglaltsága megismerhető az AWL/IL utasításokkal foglalkozó 5 fejezetben. Verem- (stack)regiszter Mivel a vezérlőben az utasítások szekvenciálisan hajtódnak végre és a munkaregiszterben található közbenső eredmények tovább kerülnek feldolgozásra , a logikai és aritmetikai zárójeles kifejezéseknél a közbenső eredmények képzésére veremregiszter szükséges. A bit és bájt műveleteknél 16, és szóműveleteknél 8 veremregiszter áll rendelkezésre. A veremregiszter LIFO regiszterként működik.
Klöckner-Moeller
2-52
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Részeredmények kezelése Ha tőltési utasítás egy programrészen belül történik , miközben az aktuális kapcsolt eredmények nem tárolódtak vagy nem feltételes műveletekből (mint pl. feltételes ugrások vagy beírási- ill. törlési műveletek ) származtatható, akkor a töltési művelet végrehajtása előtt ezen kapcsolatok eredménye a veremregiszterbe íródik. A töltési művelet közvetlenül stack beírás után valósul meg. A verem regiszterbe tárolt értékek tehát egy későbbi feldolgozásra átmenetileg tárolódnak. Ezek az átmenetileg tárolt értékek aritmetikai vagy logikai műveletekkel a munkaregiszter tartalmával kerülnek kapcsolatba. L I0.1 A I0.2 L I0.3
”I 0.1 Munkaregiszter ”Munkaregiszter ÉS I0.2 Munkareg. ”Munkaregiszter 1 Veremregiszter ”I0.3 Munkaregiszter ” Munkaregiszter ÉS I0.4 Munkareg. ” Veremregiszter ÉS Munkaregiszter ”Munkaregiszter ”Munkaregiszter M3.4
A I0.4 O = M3.4
A veremregiszterrel történő feldolgozásnál fontos az értékek kapcsolatba kerülés sorrendjének figyelembevétele. Veremregiszter (Művelet) Munkaregiszter Egy ilyen művelet eredménye a munkaregiszterben áll rendelkezésre. Az oprandusok sorrendjéről ez a szabály könnyen megérthető a következő programrész azonosságából: L I 0.1 L I 0.2 L I 0.1 O O I 0.2 = Q 0.3 = Q. 0.3 L I 0.1 L I 0.1 L N I 0.2 O N I 0.2 O = Q 0.3 = Q 0.3 A sorrendek fontos szerepet játszanak az osztásnál és negálással megadott logikai műveleteknél. L I W 0.0.0.0 L I W 0.0.0.2 DIV ”jelentése: IW 0.0.0.0 : IW 0.0.0.2 ... L I 0.1 L I 0.2 AN ”jelentése: I 0.1 ÉS I 0.2 Klöckner-Moeller
2-53
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Részeredmények kezelése Ilyen negálást a következő példában a munkaregiszterre alkalmazzuk: L I 0.1 A I 0.2 L I 0.3 O I 0.4 XO N A példában szereplő művelet a veremregiszter (amely az I 0.1 ÉS I 0.2 eredményt tartalmazza) és a munkaregiszter negáltjának ( amely az I 0.3 VAGY I 0.4 eredményt tartalmazza ) KIZÁRÓVAGY kapcsolatából áll. A veremregiszterben (stack) a szóműveleteknél 8, a bájt és bit műveleteknél 16 érték helyezhető el. Ezek az értékek a veremregiszterben a keletkezésük sorrendjében tárolódnak. A feldolgozásuk fordított sorrendben történik: Az utolsónak érkező tárolt érték elsőként kerül feldolgozásra, aztán ezt követi a második, és így tovább mindaddig amíg a teljes veremtároló üres nem lesz. L I 0.0 L I 0.1
”I 0.0 Munkaregiszter ”I 0.0 1. Veremregiszter ”I 0.1 Munkaregiszter ”I 0.1 2. Veremregiszter ”I 0.2 Munkaregiszter ”I 0.2 3. Veremregiszter ”I 0.3 Munkaregiszter ”3. Veremregiszter VAGY Munkareg. Munkaregiszter ”2. Veremregiszter KIZÁRÓVAGY Munkaregiszter Munkaregiszter ”1. Veremregiszter ÉS Munkaregiszter Munkaregiszter
L I 0.2 L I 0.3 O XO A = Q 0.4 Q0.4 = I 0.0 ∧(I 0.1 ⊕ [I 0.2 ∨ I 0.3])
Amint látható a veremregiszter műveleteinek segítségével nagyon bonyolult zárójeles technika építhető fel a segédmerkerek használata nélkül.
Klöckner-Moeller
2-54
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok AWL/IL szintaktikai szabályai
Parancssorok A parancssorok utasításból és egy ezt követő megjegyzés (kommentár) részből állnak. A kommentár részben egy operandusokhoz kapcsolódó kommentár áll, azaz ez a kommentár szolgál az alkalmazott operandusok leírására és szorosan kötődik hozzájuk. Az összes azonos operandust tartalmazó parancssorban azonos kommentár szöveg jelenik meg. Ezt a szöveget az AWL/IL szerkesztő (editor) kezeli, és a hozzárendelési listába helyezi el (referencia fájlba „ .z42 „-es képzővel) Az operandusokhoz kötődő kommentárokat nem a program fájlban őrizik. (fájl „ .q42”-es képzővel) A parancssorokat közvetlenül a bevitelkor az AWL/IL szerkesztőben lévő szintaktikára vizsgáló rész megvizsgálja, és a létező hibákat egy magyarázó szövegben kiírja. Ily módon már a programbevitelkor megvalósul a program hibákkal kapcsolatban a lehető legnagyobb biztonság. Az operandusokhoz kötődő kommentár mellett egy szabadon választható kommentár is megadható. Az utasítások megkülönböztethetősége miatt ezeket a kommentárokat ”kommentár elválasztó jelekkel kell bevezetni. A kommentárok a teljes ábrázolási jelkészletet tartalmazhatják. ”Ez egy példa az operandusokhoz kötődő és a szabadon választható kommentárokkal ”megvalósított parancssorokra. L I 0.0 AN I 0.2
1 Motor bekapcsolása 12 Végálláskapcsoló
Szekvencia Egy szekvencia több parancssorból áll, amelyeknek megfelelő szabályokat kell teljesíteniük. A szekvencia első parancssorának töltési utasítást kell tartalmaznia. E töltési utasítás operandusának az adattípusa az egész szekvencia adattípusát meghatározza. A szekvencián belül az adattípus nem változtatható. A szekvencia a következő utasításokkal fejeződhet be, amelyekből a szekvencia végén egy vagy több is szerepelhet: - a kapcsolatok eredményeinek a kijelölése egy operandushoz - beírás/törlés a kapcsolatok eredményének a függvényében - feltételes ugrások a kapcsolatok eredményének függvényében ”Példa egy „bit” adattípusú szekvencia bemutatására L I 0.0 1 Motor feszültségre kapcsolása A N I 0.2 12 Végálláskapcsoló A M 2.4 1 Motor működésének a jelzése = Q 0.4 1 Motor indítása A fenti szabálynak egy kivételét a GOR utasítás képezi. Ezesetben a GOR parancs szorzással vagy osztással kapcsolatban azért kerül alkalmazásra , hogy az eredmény túlcsordulását (szorzásnál) vagy maradékát (osztásnál) a munkaregiszterbe vigye. A GOR parancs egy szekvenciát nem lezáró kijelölésnek számít. Jobban mondva a kiKlöckner-Moeller
2-55
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok AWL/IL szintaktikai szabályai jelölésnél az eredmény első része letárolódik és azonos adattípussal a második részeredmény feldolgozása megkezdődik.
Klöckner-Moeller
2-56
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok AWL/IL szintaktikai szabályai
2-10 ábra: A szekvenciaképzés áttekintése Klöckner-Moeller
2-57
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok AWL/IL szintaktikai szabályai ”Példa egy „szó” típusú szekvencia bemutatására L IW 0.3.2.0 DIV KW 2 = MW2 ”Annak vizsgálata, hogy az „ IW 0.3.2.0” páros vagy páratlan szám -e GOR CP KW 0 BE PÁROS BNE PÁRATLAN Szekvencián belül felügyelet alatt áll a veremregiszter kezelése. Csak akkor záródik hibamentesen egy szekvencia, ha a veremregiszterekben tárolt összes részeredmény újra feldolgozásra került, azaz a veremregiszternek a szekvencia végén feldolgozottnak kell lennie. Nem lehetnek olyan értékek sem a veremregiszterekben sem a munkaregiszterben amelyeket egy szekvenciából a következőbe átvinnénk. L ADD L
IW MW MW
0.3.4.0 4 44
SUB DIV
QW
0.3.5.0
=
MW
Klöckner-Moeller
” „ IW 0.3.4.0 ”+ „MW 4” a veremregiszterben, ” „ MW 44 ” a munkaregiszterben ”( „ MW 44” - „ QW 0.3.5.0” ) ” veremregiszter:
100
2-58
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok AWL/IL szintaktikai szabályai
Mondat Több összefüggő szekvenciának mondattá történő összekapcsolása a program moduláris felépítésének létrehozására szolgál, és megnöveli annak olvashatóságát és érthetőségét.
blokkszám
szekvencia címke
funkcióelem behívás
2-11 ábra : Mondat felépítése A mondatot egy mondat szám, ezt követően egy mondat név (Marke ) és egy felirat vezeti be. A mondatszámokat az AWL/IL szerkesztő (editor ) automatikusan kezeli. A mondat számokat , 0 mondattal kezdve, felfelé növekvő sorrendben kell léptetni. A mondat számokat követő mondatnevek ( melyeket „Marke”-nak [jel(zés)] vagy „Label”-nek [címke] is nevezik) max. 8 karakterből állhatnak, melyekből az elsőnek betűnek kell lennie. A mondatnevek megadása feltétlenül szükséges, ha a felhasználói program ugrásokat és elágazásokat tartalmaz. 00001
PROGR1
00002
PROGR2
” Programválasztás L M 100.0 JC PROGR2 L I 0.0 JCN PROGR2 = M 101.2 ” Programválasztás relé kimenetei L M 101.1 = Q 0.3 L M 101.2 = Q 0.4
A mondat nevek ugráscímként szolgálnak a feltételes és feltétel nélküli elágazásoknál. A mondatfelirat a mondat rövid működési leírására szolgál. Feliratokat az un. kommentár elválasztó jelekkel ” vezetik be, és ezek nem lehetnek hosszabbak mint egy képernyő sora. A mondat feliratoknak kiemelten fontos szerepük van a dokumentálásnál. A mondat bevezetését követő sorokban egy részletes működési leírás következhet kommentársorok formájában. Klöckner-Moeller
2-59
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok AWL/IL szintaktikai szabályai
Figyelem! Ajánlatos a programpótlást # include -al egy önálló mondatban elvégezni. Include- és programutasításokat vegyesen tartalmazó mondatokban a program utasítások előre- ill. hátrahelyezéseinek közvetlen (on-line ) módosítása nem lehetséges.
Főprogram Minden PLC program (felhasználói-program .q42 képzővel) egy vagy több mondatból áll, amelyeket záró utasításként az EP vezérlési utasítás követ. (Program vége )
Blokk
EP
2-12 ábra: A főprogram felépítése Ez az utasítás szolgál egy program lefutásának vezérlésére. Az EP utasítás a program végén a felhasználói programból a vezérlő rendszerprogramjába egy ugrást valósít meg ahol pl. kommunikációt folytat a programozó készülékkel, és a bemeneti- valamint a kimeneti adatregisztereket aktualizálja. A főprogramhoz tartoznak még adatok a vezérlő rendszer konfigurációjáról. Ezeket az információkat az AWL/IL szerkesztő kezeli és tömörített formában 0 -ik mondattól a forrásprogramban tárolja. A rendszer paraméterek a következők: - a forrásprogram utolsó módosításának a dátuma - működés folyamat képpel és enélkül - aktiv/inaktiv programtároló teszt A tároló tesztelése program ciklus alatt valósul meg - maximális ciklusidő msec-ben Túllépés esetén hibajelzés - két remanens merker tartomány
Klöckner-Moeller
2-60
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok AWL/IL szintaktikai szabályai Az a merker amelyet remanensnek dekralálnak áram kimaradás esetén nem veszíti el a tartalmát, a nem remanens merker viszont ilyen esetben törlődik. Azért, hogy a PLC a felhasználói programja futhasson a forrásprogramot a vezérlő gépi nyelvére le kell fordítani. Hiba nélküli fordítás esetén a compiler a gépi kódokat program fájlba (fájl .p42 képzővel) tárolja. Ez a futásképes program tölthető át a vezérlőbe. Részletes információkat a rendszer-paraméterek készítéséről, fordításról és áttöltésről az 1. fejezetben találhat. rendszer program kimeneti adatregiszter EP
állapot figyelés, ciklikus önteszt, rutinok
bemeneti adatregiszter
felhasználói program
2-13 ábra: Ciklikus programfutás szemléltetése
Klöckner-Moeller
2-61
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Preprocesszor-utasítások A SUCOsoft S 30-S 4 támogatja a preprocesszor utasításokat, amelyek nincsenek gépi nyelvre (gépi kódra) lefordítva, hanem a compilernek vezérlő utasításai és dokumentálási programok. Az AWL/IL programnyelvtől való megkülönböztetéshez a preprocesszor utasításokat a # jellel vezetik be. Ezeknek a jeleknek a sorok elején kell állniuk és önálló kommentárokkal láthatók el. A következő preprocesszor utasítások állnak rendelkezésre: 2-4 Táblázat: Az alkalmazható preprocesszor utasítások Preprocesszor-utasítások # include ” konfigurálási fájl” # include (programfájl) # include ”referencia fájl” # include ” 70 soros hosszú cím ” # oldal # lista, (jegyzék) # nem lista
Hatásuk A készülék konfigurálási fájlbevitele Fájlok befűzése Fájlok összefoglalása Dokumentálás irányítása
A konfigurálási fájlok beágyazása A készülékkonfigurátor konfigurálási fájljainak beágyazása a compiler futásához szükséges. Ezekben a konfigurációkban lévő információ tartalmazza azt, hogy melyek a bővítő modulok, slave-vezérlők stb. , ezek milyen helyen kerülnek alkalmazásra, valamint a compiler ezekkel megvizsgálhatja a címzés helyességét és további formaságokat egyaránt. Ezek az utasítások formailag a következőképpen néznek ki: # include ” konfigurációs fájl. k42” A konfigurációs fájl programba történő beágyazását mindig az első utasításnak kell megvalósítania. Ez akkor is igaz, ha a PLC-t önálló, egyedi készülékként üzemelteti. Máskülönben a program fordítójánál egy megfelelő hibajelzés jelenik meg. Az # include ( programfájl ) alakú processzorutasítást a compiler a megadott programfájl tartalmával kicseréli. A tárolóban ily módon összegyűjtött fájlokat a compiler a PLC gépi nyelvére lefordítja. Az esetleges hibákat a compiler az fájlnevek megadása alatt a mondatszámmal és a sorszámmal jelzi. A lefordított utasítások fájlnevét a főprogram neve átveszi. Egyes beillesztendő programfájlokon belül ismét állhat egy ilyen include-utasítás. Az # include - utasítások (programfájl) arra alkalmazhatók, hogy egyszer előállítsák és többször alkalmazzák a programelemeket. Közelebbit a program strukturálással foglalkozó 3. fejezetben találhat.
Klöckner-Moeller
2-62
9/96 AWB 27-1186-H
Programozás:Elemek és szabályok Preprocesszor-utasítások
Fájlok összegzése A program fájlok include-utasításai mellett létezik egy hasonlóan működő utasítás is a referencia fájlok beszúrására ill. összefűzésére. A program fájlba behelyezett (include) szövegfájlok megkülönböztetésére a szövegfájlok neveit ” jelek közé kell elhelyezni a következő módon: # include ” referencia fájl ” (hozzárendelési fájl) A referencia fájl teljes nevét a .z42 képzővel együtt kell megadni. Közelebbit erről a program strukturálást tárgyaló 3. fejezetben találhat. A dokumentálás vezérlése A következő utasításokkal lehet a dokumentálási kifejezésre hatást gyakorolni: # cím ” ” # oldal # nem lista
új alá - fölé írás elkészítése oldalszám törés előállítása ennek az utasításnak a hatására a dokumentációból a következő programrészt a # lita parancsig nem ábrázoljuk lássa a # nemlista parancsnál
# lista
Ennek a vezérlési utasításnak egy pontosabb leírását az AWB27-1185 kézikönyv 3-ik fejezetében találhatja meg, amely a felhasználói programok dokumentálásával foglalkozik.
Klöckner-Moeller
2-63
9/96 AWB 27-1186-H
3 Program strukturálás
Tartalom Általánosságok
3-2
Include-utasítás - Forrásfájlok beszúrása - Referencia fájlok (hozzárendelési fájlok) - Példa - Programok egymásba ágyazása
3-3 3-3 3-5 3-5 3-8
Strukturálás programelemekkel (programmodulokkal) - Programelem definiálása - Eljárási módszerek - Elemhívás include-fájlból
3-9 3-9 3-9 3-10
Programelemek alkalmazása - Programelemek jelölése - Programelemek utasításkészlete - Programelemek kezelése - Elemhívás - Végrehajtási idő - Programelemek hívási szabályai - Az elemek programozásának szabályai - Programelemek mint önálló adatfájlok - Adatok átvitele a programelemek többszöri hívásakor - Példa: Főprogram és programelemek egy fájlban - Példa: Főprogram és programelemek különböző fájlokban - Példa: Programelemek többszörös hívása
3-12 3-13 3-13 3-13 3-13 3-15 3-16 3-16 3-17 3-18 3-20 3-21 3-21
Ellenőrzési műveletek - Szerkesztő (editor) - Fordító (compiler) - A PLC központi egysége (CPU)
3-25 3-25 3-25 3-27
Vizsgálati (teszt) műveletek - Közvetlen (on-line) programozás - Állapotkijelzések
3-28 3-30 3-31
Klöckner-Moeller
3-64
9/96 AWB 27-1186-H
Program strukturálás Általánosságok Azért, hogy a felhasználói programok áttekinthetővé váljanak, ajánlatos ezek strukturálását elvégezni, azaz blokkok szerint tagolni. A program áttekinthetősége mellett adódnak további előnyök is mint: -
a módosítások következményei helyileg behatároltak maradnak a programozás és a vizsgálat szakaszonként történhet az egyszerűsített hibakeresés egy programrészre korlátozódik programkönyvtárszerű felépítés a szoftver költségek csökkenéséhez vezet
Egyes programrészek, amelyek folyamatukban lehetőleg egy zárt műveletként ábrázolhatók, elkészíthetők és merev lemezen (hard disk) tárolhatók Ezeknél a programoknál a program végén nem írható EP utasítás. A nem túl nagyterjedelmű programok esetén célszerű valamennyi programblokkra egy közös hozzárendelési listát (referencia fájlt ) elkészíteni. A nagyon nagy terjedelmű fájlok esetén lehetséges, hogy a személyi számítógép (PC) munkatárolójának a kapacitása nem elegendő. Az ilyen esetekben a hozzárendelési listát is két vagy több részre kell felosztani.
Klöckner-Moeller
3-65
9/96 AWB 27-1186-H
Program strukturálás Include-utasítás Forrásfájlok beszúrása A hagyományos programozás lineáris struktúrában történik. Azaz, az egyes program szakaszok egymás után hajtódnak végre. A compiler lefordítja a programrészeket rendelkezésre álló sorrendben és elhelyezi a megfelelő kódfájlban. Az include-utasítás egy áttekintő program tagoltság kialakítására nyújtja azt a lehetőséget, hogy a programrészeknek tetszőleges számát külön fájlokban tárolja. A com piler a fordításnál ismét szekvenciális kódot állít elő. Azaz , minden esetben ha a compiler egy include-utasítást talál, beszúrja a hozzátartozó fájlt. Ezzel mindkét programozási módszeren alapuló kódfájlok azonosak. (lásd a 3-1 ábrán) Forrásfájl PROG1.Qxx . . . . . . . . . . .
Kódfájl PROG1.Pxx 1.1 Programrész
2.1 Programrész
1.1
Compiler (fordító)
1.2 Programrész
2.1
1.2
EP
EP
3-1 ábra/1 Lineáris struktúrában történő programozás
Klöckner-Moeller
3-66
9/96 AWB 27-1186-H
Program strukturálás Include-utasítás
Forrásfájl PROG1.Qxx . . 1.1 Program. rész . # INCLUDE . . . . PROG2.Qxx . . . .
Kódfájl PROG1.Pxx Compiler
1.1
1.2 Programrész EP
2.1
2.1 Program rész
1.2 EP
.
3-1 ábra/2: Beszúrt forrásfájllal történő programozás
Klöckner-Moeller
3-67
9/96 AWB 27-1186-H
Program strukturálás Include-utasítás Referencia fájl beszúrása A programfájlok include-utasításai mellett létezik egy hasonlóan működő utasítás is amelyik a referencia fájlba (hozzárendelési listába) történő beszúrásokat ill. ezek egyeztetését végzi. A programfájloktól történő megkülönböztetés céljából a fájlneveket ” idézőjelek közé kell elhelyezni az alábbi formában: # include ”Referencia fájlnév” Nevet illetően hasonló követelmények állnak fenn mint a programfájlok neveire: - A teljes neveket, azaz képzővel (suffix) együtt, kell megadni. - A képzőnek a referencia fájlnak kell megfelelnie, tehát a PLC felhasználói programja referencia fájlja esetén .z42-t kell alkalmazni. A referencia fájlt a compiler osztályozza ill. csoportosítja, és hibákra, pl. az elemek többszörös definiálása, megvizsgálja. Egy kis példa segítségével a include-utasítások működését megvilágítjuk: Példa: Program FŐPR.Qxx 00002
Referencia fájl FÖPR.Zxx KEZDET
00003 VÉGE
Klöckner-Moeller
”Főprogram BEM1 kezdete L I 0.0 = M 0.0 # include <modul1.qxx> L´BEM1 = QB 0.0.0.0 = MB0 # include <modul2.qxx> ”Főprogramnak vége EP
3-68
IB 0.0.0.0
Bemeneti bájt 0.0.0.0
9/96 AWB 27-1186-H
Program strukturálás Include-utasítás
Program MODUL1.QXX 00000
00001
KEZDET1 ”´modul1.qxx´ HM0 -nek a kezdete # include KIM 0 ”modul1.zxx” L ´HM 0 = ´KIM 0 VÉGE1 ”´modul1.qxx´ -nek a vége
Program MODUL2.QXX 00000
00001
Referencia fájl MODUL1.ZXX M 0.0 segédmerker Q 0.0 kimeneti bit
Q 0.0
Referencia fájl MODUL2.ZXX
KEZDET2 ”´modul2.qxx´ HM 1 -nek a kezdete # include KIM 1 ”modul2.zxx” L ´HM 1 O I0.4 = ´KIM 1 VÉGE2 ”´modul2.qxx´ -nek a vége
Klöckner-Moeller
M 0.0
3-69
M 1.0 Q 0.0
M 1.0 segédmerker Q 0.0 kimeneti bit
9/96 AWB 27-1186-H
Program strukturálás Include-utasítás
Compiler futása szerinti program
Compiler futását követő referencia fájl
00002
BEM 1
IB 0.0.0.0
HM 0
M 0.0
KIM 0
Q 0.0
HM 1
M 1.0
KIM 1
Q 0.0
00000
00001
00000
00001 00003
KEZDET
”Főprogram kezdete L I 0.0 M 0.0 KEZDET1 ”´modul1.qxx´ -nek a kezdete L ´HM 0 = ´KIM 0 VÉGE1 ”´modul1.qxx´ -nek a vége L ´BEM1 = QB 0.0.0.0 = MB 0 KEZDET2 ”´modul2.qxx´ -nek a kezdete L ´HM 1 O I 0.4 = ´KIM 1 ”´modul2.qxx´ VÉGE2 -nek a vége VÉGE ” Főprogramnak vége EP
0.0.0.0 bemeneti bájt M 0.0 segédmerker Q 0.0 kimeneti bit M 1.0 segédmerker Q 0.0 kimeneti bit
A ”modul1.qxx” programfájlt a ”főpr.qxx” főprogram megfelelő helyére beszúrja. A ”modul1.qxx”-ben lévő # include ”modul1.zxx” utasítás azt eredményezi, hogy a megadott ”modul1.zxx” fájlt a ”főpr.zxx” referencia fájljának a végéhez hozzáadja. Ezután a főprogramba a ”modul2.qxx” programfájl az # include<modul2.qxx> utasítással kerül beszúrásra. Ezeknek a műveleteknek a teljesítése után a vezérlő az utasításokat gépi kódra fordítja. Ehhez rendelkezésre áll a főprogram valamennyi referencia fájlja és egyéb moduladatok Az elkészített gépi kódok ”főpr.pxx” néven a megadott meghajtón tárolódnak.
Klöckner-Moeller
3-70
9/96 AWB 27-1186-H
Program strukturálás Include-utasítás
Programok egymásba ágyazása Include-utasítások alkalmazásával egymásba ágyazottság valósítható meg, ezáltal egyenes vonalú vagy különféle változatos program struktúrák valósíthatók meg. A SUCOsoft S30-S4 max. 32 programadat egymásba ágyazását engedélyezi. A teljes programban max. 1024 include-hívást lehetséges megvalósítani. Minden „Név.qxx” programfájl csak egyszer adható include utasítással a teljes programhoz. Főprogram prog.qxx
Egymásba ágyazási mélység max. 32
# include < prog.qxx> prog1.qxx EP # include <prog2.qxx> # include ”prog2.zxx” (nincs EP)
prog2.qxx # include <prog3.qxx> prog3.qxx (nincs EP) # include <progN.zxx> # include ”progN.zxx”
progN.qxx
(nincs EP) (nincs EP) 3-2 ábra: Egymásba ágyazásra épülő programstruktúra
Klöckner-Moeller
3-71
9/96 AWB 27-1186-H
Program strukturálás Strukturálás programelemekkel Az elemtechnika egy eszköz a programok strukturálására. Ez lehetőséget ad a programozónak arra, hogy a gyakran használt programrészeket eltárolja és ezáltal takarékosabb memóriahely kihasználást tudjon megvalósítani. A programelemeket különböző nevekkel (azaz különböző fájlokban) lehet elmenteni. Programelem meghatározása A PB programelem (programmodul) egy részét képezi a felhasználói programnak, amely tetszőleges számú mondatból állhat és a főprogram után , tehát az „EP” utasítás után, helyezkedik el. A programelem mint a főprogrammal kapcsolatban álló szoftver modulként programozandó. A PB programelem a főprogram tetszőleges helyéről vagy más programelemekből meghívható, ily módon a programelemek egymásba ágyazása valósítható meg. A PB programelem feldolgozása után visszaugrik az elemet hívó programba. A program további feldolgozása a hívást követő utasítás végrehajtásával folytatódik. Az elemek adatokkal történő ellátása a PB elemek hívása előtt ill. után történhet egy általánosan elérhető merkerből (globális adatok) Eljárási módszerek A felhasználói program a főprogramból és tetszőleges számú PB programelemből állhat (lásd a 3-3 ábrán) A főprogramot az EP utasítás zárja. (End of Program) A programelem egy szabadon választható nevet tartalmaz, amely alapján a főprogramból vagy egy másik programelemből CM..(Call Module) utasítással hívható. A meghívás helyére „beszúródik” a kívánt PB programelem hívása, azaz a meghívott PB programelem első utasítására ugrik. Az EM ( End of Module ) utasítás jelzi a PB programelem végét. A programfeldolgozás a programelemet hívó utasítás végrehajtásával folytatódik. Az egymásbaágyazási mélység, azaz a PB programelem szintek száma, a PS 4 -nél max. 16 lehet. A következő képeken a Pbx nevű programelem tetszőleges más néven is kiválasztható.
Klöckner-Moeller
3-72
9/96 AWB 27-1186-H
Program strukturálás Strukturálás programelemekkel
Főprogram
1. PB programelem szint
2. PB programelem szint
$PB1 CM $PB1 EM
$PB2 CM $PB2
$PB4
CM $PB4 EM
EM
$PB3 CM $PB3 EM EP Egymásbaágyazási mélység (itt 2) 3-3 ábra: Programelemek hívása a főprogramból és egy programelemből Programelemhívás include-fájlból Programelemek include-fájlból (lásd az include-utasításoknál) is hívhatók. A 3-4 ábra szerinti példában a főprogramban egy forrás-include „inc.qxx” hívás látható. Ebből a fájlból történik a PB1 programelem hívása, majd ebből újra a PB4 programelemé. A PB 4 programelem feldolgozása után az EM utasításon át a PB1 programelembe történő visszatérés (return) történik. A PB1 programelem EM utasítása ismét az „inc.qxx” include-forrásfájlhoz kerül átadásra. A főprogramhoz további programelemek is kapcsolódnak. Klöckner-Moeller
3-73
9/96 AWB 27-1186-H
Program strukturálás Strukturálás programelemekkel A PB4 programelem ebben a példában kétszer hívódik, először a PB1 program elemből majd később még egyszer a PB2 programelemből. Ilyen többszörös hívás a központi egység (CPU) ciklusidő korlátainak tekintetbevételével tetszés szerint elvégezhető. Főprogram
$PB1
.# include inc.qxx
CM $PB4
. . EM $PB2 CM $PB2
$PB4
CM $PB4 EM EM
CM $PB3
$PB3 EM
EP $PB1 $PB2 $PB3 $PB4 Egymásbaágyazási mélység (itt 2) 3-4 ábra: Programelemhívás a főprogram „include”-jából A mutatott példa megvilágítja a programelemekkel történő strukturálás logikus menetét. A következő rész felvilágosítást ad a PB programelemek kezeléséről és ezek programtárolói fizikai helyzetéről.
Klöckner-Moeller
3-74
9/96 AWB 27-1186-H
Program strukturálás A programelemek alkalmazása A forrásprogramban a programelemek tetszőleges sorrendben illeszthetők a főprogram után. (lásd a 3-5 ábrán) Mindegyik programelem EM utasítással fejeződik be. A következő példákat szimbolikus operandusokat tartalmazó AWL/IL-ben írt felhasználói programmal ismertetjük. Mondat
Utasítások
M1
L ´PAR-BEM A ´UGR-BEM = ´1SZIVAT(tyu) CM $PB2 L ´VÉGHELY(zet) A ´ELENGED(és) = ´3MOTOR L .... . . . CM $PB1 . . EP
M2
Főprogram kezdete 0 mondat
Főprogram 1 mondat
Főprogram vége PB1 kezdete 2 mondat
$PB1
L ´SZ-MIN (szint minimum) O ´SZ(ivattyu)-HIBA = ´7JELZŐ EM
PB1 vége PB2 kezdete 3 mondat
$PB2 M1
L ´BI-FÉM XO ´P-HIÁNY = ´19JELZŐ . . . EM
PB2 4 mondat PB2 vége
3-5 ábra: A főprogram és programelemek helyzete AWL/IL-ben
Klöckner-Moeller
3-75
9/96 AWB 27-1186-H
Program strukturálás A programelemek alkalmazása Programelemek jelölése A PB programelemek jelölése mindegyik a programelemnél az első mondat név első betűhelyén lévő $ indikátorral történik. Azaz egy programelem neve $ jellel kezdődik, és ezt hét szabadon választott karakter követheti. A mondatok számozása nullától folyamatosan történik az utolsó programelem utolsó mondatáig. Egy PB programelemen belül további mondatok nyithatók. Az egyes programelemekben alkalmazott mondatneveket a főprogram és más programelemek mondatneveivel össze kell hangolni, mivel a compiler csak ily módon tud ezek között különbséget tenni. Programelemek parancskészlete Az összes ugró- és elágazás parancs végrehajtását csak programelemen belül lehet megvalósítani. A programelemekben egyébként a funkcióelemekig bezárólag az összes parancs rendelkezésre áll, amelyek a vezérlőben engedélyezettek. A programelemek kezelése A programelem hívása és a programelem között tényleges különbség van. A futásképes programban minden elemhíváshoz programelemnek is léteznie kell. Azonban szigorúan mégsem előírt az, hogy egy programelemet meg is kell hívnunk. A compiler ez esetben viszont készít egy figyelmeztetést, amely felhívja a felhasználónak a figyelmét arra, hogy egy programelemet még nem hívott meg. A program beviteli és meghívási sorrendje tetszőleges lehet. Elemek hívása A hívó program futása megszakad és a programelem első utasításának a végrehajtása megkezdődik. A hívás végrehajtása azonos módon történhet mint a JP és JC/BC... feltétel nélküli, feltételes ugrásoknál ill. elágazásoknál vagy a bit-, bájt-, vagy szószek- venciákban megvalósított lezárásakor. A következő meghívások különböztethetők meg: Feltétel nélküli hívás: CM $ < név >
A PB programelem abszolút hívása
Feltételes hívások: (logikai hívások) CMC $ < név >
Klöckner-Moeller
Hívás (call) RA=1 feltételre A PB feltételes hívása bit szekvenciában ha a munkaregiszter (RA) tartalma log.1 3-76 9/96 AWB 27-1186-H
Program strukturálás A programelemek alkalmazása
CMCN $ < név >
Hívás RA=0 -ra A programelem feltételes hívása bitszekvenciában ha az RA tartalma log.0
CMB x $ < név >
Hívás x bitre A programelem feltételes hívása bájt-/ szószekvenciákban ha x bit értéke log.1 (x=0-15)
CMNB x $ < név >
Hívás negált x bitre A programelem feltételes hívása bájt-/ szószekvenciákban ha x bit értéke log.0
Feltételes hívások: (aritmetikai hívások) CMCY $ < név >
Hívás átvitelre (carry) A programelem feltételes hívása bájt-/szószekvenciákban ha az átvitel bit beíródott.
CMNC $ < név >
Hívás negált átvitelre (not carry) A programelem feltételes hívása bájt-/szószekvenciákban ha az átvitel bit nem íródott be.
CMZ $ < név >
Hívás zéróra A programelem feltételes hívása bájt-/szószekvenciák ban ha a zéró bit beíródott
CMNZ $ < név >
Hívás nem zéróra A programelem feltételes hívása bájt-/szószekvenciákban ha a zéró bit nem íródott be.
CME $ < név >
Hívás egyenlőségre A programelem feltételes hívása bájt-/szószekvenciákban egy összehasonlítás utáni azonosságnál.
CMNE $ < név >
Hívás egyenlőtlenségre A programelem feltételes hívása bájt-/szószekvenciákban egy összehasonlítás utáni egyenlőtlenség esetén
CMV $ < név >
Hívás túlcsordulásra (overflow) A programelem feltételes hívása bájt-/szószekvenciákban ha a túlcsordulást jelző bit beíródott 3-77 9/96 AWB 27-1186-H
Klöckner-Moeller
Program strukturálás A programelemek alkalmazása
CMNV $ < név >
Hívás túlcsordulás nélküli esetben A programelem feltételes hívása bájt-/szószekvenciákban ha a túlcsordulást jelző bit nem íródott be
CMP $ < név >
Hívás pozitív előjelre A programelem feltételes hívása bájt-/szószekvenciákban ha az előjelbit pozitív
CMM $ < név >
Hívás negatív előjelre A programelem feltételes hívása bájt-/szószekvenciákban ha az előjelbit negatív
CMGT $ < név >
Hívás nagyobb esetben (Greater Than) A programelem feltételes hívása bájt-/szószekvenciákban egy összehasonlítás utáni nagyobb esetben
CMLT $ < név >
Hívás kisebb esetben (Less Than) A programelem feltételes hívása bájt-/szószekvenciákban egy összehasonlítás utáni kisebb esetben
CMGE $ < név >
Hívás nagyobb vagy egyenlő esetben (Greater or Egal) A programelem feltételes hívása bájt-/szószekvenciákban egy összehasonlítás utáni nagyobb vagy egyenlő esetben
CMLE $ < név >
Hívás kisebb vagy egyenlő esetben (Less or Egal) A programelem feltételes hívása bájt-/szószekvenciákban egy összehasonlítás utáni kisebb vagy egyenlő esetben
Végrehajtási idő Egy programelem hívásának és az EM utasítás utáni visszaugrásnak a végrehajtási ideje és tárolóhely szükséglete független a hívás fajtájától, a PS4 esetén 153 mikro sec. A programelem hívások egy meghatározott szekvencia sorrend azonos csoportjába sorolhatók mint az ugró- vagy az elágazási utasítások. Az állapotregisztert nem módosítja. Programelemből történő „visszatérés” után az állapotregiszternek azonos a tartalma a hívás előttivel, még akkor is ha a programelem lefutása során változott volna.
Klöckner-Moeller
3-78
9/96 AWB 27-1186-H
Program strukturálás A programelemek alkalmazása Programelemek hívási szabályai A programelemek hívási szabályai az alábbiakban foglalhatók össze: 1. A feltétel nélküli hívásnak szekvencián kívül kell végbemennie. 2. A név max. 7 karakter hosszú lehet. Állhat alfanumerikus jelekből és speciális jelekből „-”, „_”, „/” is. A név előtt, a mondat nevek (címkék) megkülönböztetésére ,mindig a „$” speciális karakternek kell állnia . 3. A programelem hívások tetszőleges gyakorisággal történhetnek. A program elemek programozásának szabályai Az EP utáni utasítás egy mondatot megnyit, amelynek a neve a $ programelemindikátorral kezdődik. A programelemet AWL/IL-ben kell programozni és „EM” utasítással szükséges befejezni. A programelemen belül az include-hívás szintén megengedett. Mondat
Utasítások
$PB1
L I0.0 O M32.1 = Q.0.0 EM
PB1 kezdete x mondat PB1 vége
Programelem deklarálása AWL/IL-ben A programelemek programozási szabályai az alábbiakban foglalhatók össze: 1. Névre vonatkozó szabályok: Amint a mondat címkénél (label) , szintén $ jellel kell kezdődjenek. 2.A programelem neve a teljes programban csak egyszer fordulhat elő a programozás során. 3. Kintről a programelembe történő ugró- és elágazás műveletek alkalmazása nem engedélyezett. 4. Programelemekből történő ugrások a főprogramba vagy más programelemekbe csak a RET/RECN utasítások alkalmazásával engedélyezett. 5. Programelemen belüli elágazás megszorítás nélkül alkalmazható. 6. A programelemek további programelem hívásokat tartalmazhatnak. Az egymásbaágyazási mélység 16-ra korlátozott. Az egymásbaágyazási mélység figyelését a rendszerprogram végzi. 7. A programelemek include-fájlokat is tartalmazhatnak.(lásd a „Programelemek mint önálló(autonóm) fájlok” részben) 8. Programelemek include-hívásokat tartalmazhatnak. Klöckner-Moeller
3-79
9/96 AWB 27-1186-H
Program strukturálás A programelemek alkalmazása 9. A programelemekben a mondatnevek csak azokon a programrészeken belül érvényesek, amelyekben találhatók. 10. A mondatnevek „helyi állapottal” (lokális státussal) rendelkeznek, azaz egy programelemben azonos mondatnevek lehetnek mint a főprogramban vagy más programelemekben. 11. Programelemeken belül nem szabad a programelemek saját nevével meghívást végrehajtani (tilosak a rekurzív [önmagába visszatérő] hívások) 12. Ugrás címkék nem lehetnek „$” jeleket tartalmazó mondatnevek. Programelemek mint önálló adat fájlok Az eddig leírt programelem utasítások abból indulnak ki, hogy a programelemek éppen úgy mint a főprogram is önálló adat fájlba helyezhetők el. Ez úgy lehetséges, hogy a programelem egy önálló adatfájlban tárolódik és include-utasítással a főprogramba beszúródik.
Főprogram Mondat
Utasítások
M0
L ´PAR-BE A ´UGR-BE = ´1SZIV (szivattyú) CMC $PB2 L.... . . =.. CM $PB1 . EP # include < dpb1.qxx > # include < dpb2.qxx >
M1
Klöckner-Moeller
3-80
Főprogram kezdete 0 mondat
Főprogram 1 mondat
Főprogram vége PB1 programelem beszúrása PB2 programelem beszúrása
9/96 AWB 27-1186-H
Program strukturálás A programelemek alkalmazása Programelem dpb.qxx Programelem include-adatfájlban (folytatás) Mondat
Utasítások
$PB1
L ´BI-MET A ´U-NYOM (nyomás ) = ´4RIA (riasztás) . . = ´2DUDA EM
PB1 programelem kezdete
Programelem dpb2.qxx Programelem include-adatfájlban (folytatás) Mondat
Utasítások
$PB2
L ´AUTO A ´ MI-NYOM(ás) = ´1RIASZT(ás) = ´7JELZŐ EM
PB2 programelem kezdete
A fenti példában 2 programelem $PB1 és $PB2 hívása történik. A programelemek programozása a főprogramtól függetlenül történik és a dpb1.q42 valamint a dpb2.q42 adatfájlokban tárolódnak. Ezeknek a adatfájloknak az első mondata a PB programelem neve, itt $PB1 és $PB2; a programelem befejező utasítása az EM utasítás. Kapcsolódva a főprogram EP utasításához ezek az adatfájlok include-paranccsal kerülnek beszúrásra úgy, hogy a compiler futása után ezek a .pxx fájlok azonos struktúrájúak mint a 3-5 ábrán bemutatottaké. Lehetséges az is, hogy mindkét programelem egy adatfájlban van lementve és egy include-utasítással történik a beszúrásuk. Adatátadás a programelemek többszörös hívása esetén A programelem technikának egy lényeges haszna a program strukturálás mellett még a programelemek többszöri hívhatósága. Ezzel lehetővé válik, hogy az egyszer programozott algoritmus különböző adatokkal lefuttatható. Ezáltal memóriahely takarítható meg. Az adatátvitel ekkor merkertartományon keresztül történik.
Klöckner-Moeller
3-81
9/96 AWB 27-1186-H
Program strukturálás A programelemek alkalmazása
MAIN (Főprogram) L I 0.1 = M100.0 $PB: L M 100.0 . . = M120.0
Az adatok a PB részére a merker mezőbe íródnak Az adatok a PBben feldolgozásra kerülnek Az eredmények a merker mezőbe íródnak
A PB bemeneti adatai
A PB kimeneti adatai MAIN L M 120.0 = Q 0.4
Merkertartomány az adatok átvitelére a PB-től/hez
A PB adatai a merkermezőből kiolvasásra kerülnek
3-6 ábra: Az adatok főprogram-programelemek közötti átadása merkertartományon keresztül. A főprogramban egy merkertartományba kerülnek beírásra a programelemekhez szükséges bemeneti adatok. Ezután meghívásra kerülnek a programelemek. Ezek intézkednek a bemeneti adatokról és végrehajtják a számítási műveleteket valamint az eredményeket kiírják a kimeneti adatmezőbe. A főprogram ezután hozzárendeli az adatokat a kimenetekhez vagy merkerekhez. A bemeneti adatmezőbe aztán más értékek íródnak be, mielőtt a programelem újólag meghívásra kerülne. Ezzel a „Hibajelzés elem” c. rész is foglalkozik a programelemek többszörös hívását bemutató példában. A következő elvi példával a programelemek alkalmazási lehetőségei kerülnek bemutatásra .
Klöckner-Moeller
3-82
9/96 AWB 27-1186-H
Program strukturálás A programelemek alkalmazása Példa: Főprogram és programelemek egy fájlban 00002
00003
00004
START
”Itt kezdődik a főprogram L ´SZIV-ST = ´PAR-ST CM $PROGB1 feltétel nélküli hívás L M 20.3 = Q 0.3 KONTROL ”Ellenőrző program L I 0.1 O M í2.5 CMC $PROGB2 feltételes hívás = Q 0.1 VÉGE ”Főprogramnak vége EP ”Innentől kezdődően kerülnek programozásra ”az 1 programelem műveletei
00005 00006
$PROGB1 ST-FELT1
00007
VÉGE
00008 00009
$UPROG2 ELL-FEL
00010
VÉGE
Klöckner-Moeller
”Itt kezdődik az 1 programelem ”Indítási feltételek L MB 24 CP IB 0.0.0.0 BE VÉGE = QB 0.0.0.0 ”1 programelemnek vége EM ”Innentől kezdődően kerülnek programozásra ”a 2 programelem műveletei ”Itt kezdődik a 2 programelem ”Ellenőrzési művelet L I 0.3 A M 99.0 = TGEN 0 S TGEN 0 S: I: KW 250 Q: 0.1 ”2 programelemnek vége EM
3-83
9/96 AWB 27-1186-H
Program strukturálás A programelemek alkalmazása Példa: Főprogram és a programelemek különböző fájlokban 00002
00003
00004
START
”Itt kezdődik a főprogram L ´TAST23 = ´ANT7 CM $PB1 feltétel nélküli hívás L M 20.3 = Q 0.4 1 MONDAT ” L I 0.5 O M 12.5 CMC $PB2 feltételes hívás = Q 0.3 ” Főprogramnak vége VÉGE EP ” Innentől kerülnek programozásra az ” 1 programelem műveletei # include < prgbst1.q42 > ”Innentől kerülnek programozásra a ” 2 programelem műveletei # include < prgbst2.q42 >
Példa: A programelemek többszöri hívása ”Adatfájl kinyomtatása c: stor.q42 24.3.94” STOR 00002 (Hiba) 001 002 003 004 005 006 007 008 009 010 011 012 Klöckner-Moeller
"Hibajelzés program "Programelem többszöri hívásának realizálása "Sm "MELn "QUIT 3-84
9/96 AWB 27-1186-H
Program strukturálás A programelemek alkalmazása 013 014 015 016 017 018 019 020 021 022 023 00003 001 002 003 004 005 006 007 008 00004 001 002 003 004 005 006 007 008 009 010 011 00005 001 002 003 00006 001 002 003 004 005 006 007 008 Klöckner-Moeller
”A hiba felléptekor (egyes Stn bemenetek jele 1) ”az egyes MELn fényjelzők gyors villogással ” hibajelzés adnak. A QUIT nyomógombbal elvég”zett nyugtázás után a gyors villogás tartós fényjel ”zésbe megy át. Ha a hiba többé már nem létezik, ”a tartós fény a QUIT nyomógombbal nyugtázható ”Gyűjtő üzenet kerül kiadásra SAMM-ra, mihelyt egy ”hibajel létezik QUIT (nyugtáz)
”A nyugtázó nyomógomb felfutó élének kiértékelése L ´QUIT E_nyugtázó nyomógomb AN ´QUIT-FL M_nyugtázó nyg. felfutóél merker = ´QUIT-IP M_nyugtázó nyg. impulzus merker L =
STORUNG1 (1 Hiba)
´QUIT E_nyugtázó nyomógomb ´QUIT-FL M_nyugtázó nyg. felfutóél merker
"Első hiba "Bemeneti adatok STB-re (hibajelző elem) L =
'STB 'ST
E_1 hiba M_n hiba
L =
M100.0 'ST-FL
Felfutóél merker 1 hiba M_n felfutóél merker
L =
M120.0 'ST-BL
Villogás merker 1 hibára M_villogás hiba
STBAF1 (1 hibajelző pr. elem hívás)
"Hibajelző programelem hívása
MELD1 (1 jelzés)
"STB kimeneti adatai az 1 hibára
CM $STB
L =
'ST-FL M 110.0
L =
'ST-BL M 120.0
L
'MEL 3-85
9/96 AWB 27-1186-H
Program strukturálás A programelemek alkalmazása 009 010 00007 001 002 003 004 005 006 007 008 009 010 011 00008 001 002 003 00009 001 002 003 004 005 006 007 008 009 010 00010 001 002 003 004 00011 001 002
Klöckner-Moeller
= STORUNG2 (2 hiba)
'MEL1
”Második hiba ”Bemeneti adatok STB részére (hibajelzés elem) L ´ST2 = ´ST
E_ 2 hiba M_ n hiba
L =
Felfutóél merker 2 hiba M_Felfutóél merker n hiba
M100.1 ´ST-FL
L M 120.1 = ´ST-BL
Villogás merker 2 hibára M_Villogás n hiba
STBAUF2 (2 hibajelző pr. el. hívása)
"Hibajelző programelem hívása
MELD2 (2 jelzés)
"STBkimeneti adatai a 2 hibára
CM $STB
L =
'ST-FL M 100.1
M_felfutóél merker n hiba Felfutóél merker 2 hiba
L =
'ST-BL M 120.1
M_villogás hiba Villogás merker 2 hibára
L =
'MEL 'MEL1
M_n jelzéskimenet Q_2 hiba fényjelzés kimenet
SAMMAUS (gyűjtő üzenet kiadása)
”Gyűjtő üzenet kiadása
ENDE (vége)
"Főprogramnak vége EP # include < pb1.q42 >
L 'SAMM = 'SAMMQ
3-86
M_Gyűjtő üzenet Q_Gyűjtő üzenet
9/96 AWB 27-1186-H
Program strukturálás A programelemek alkalmazása "Adatfájlok kinyomtatása c: pb1.q42 24.3.94" 00002 001 002 003 004 005 006 007 008 009 010 011 00003 001 002 003 004 005 00004 001 002 003 004 005 006 00005 001 002 003 004 005 006 007 008 00006 001 002 003 004 005
Klöckner-Moeller
$STB
L 'ST AN 'ST-FL S 'ST-BL S 'ST-FL
BLQUIT (villogás nyugtázás)
TIMER (időzítő)
M_n hiba M_n hiba felfutóél merker M_n hiba villogás M_n felfutóél merker
M_n hiba LN 'ST A 'QUIT-IT M_n nyugtázó impulzus merker R 'ST-FL M_n hiba felfutóél merker "Villogás nyugtázás L 'QUIT-IP R 'ST-BL R 'SAMM
M_Impulzus merker nyugtázó gomb M_n hiba villogás M_gyűjtő üzenet
"Időtag beírása TGEN 13 S: K1 I: KW62 P:
MEL (jelzés)
"Jelzés kiadása L 'ST-BL A TGEN 13 P LN 'ST-BL A 'ST-FL O = 'MEL
SAMMEL (gyűjtő)
M_n hiba villogás M_n hiba villogás M_n hiba felfutóél merker M_n jelzés kimenet
"Gyűjtőjelzés L 'SAMM O 'MEL = 'SAMM EM
3-87
M_Gyűjtőjelzés M_n jelzés kimenet M_Gyűjtőjelzés
9/96 AWB 27-1186-H
Program strukturálás Ellenôrzési műveletek Ebben a fejezetben azokat az elleőrzési műveleteket írjuk le, amelyeket a program bevitelnél, a fordításnál, és az automatizálási rendszer központi egységének futási ideje alatt kerülnek megvalósításra. Szerkesztő (editor) Az editor sorszintaktikája a következő eseteket ellenőrzi: A „$” speciális karakter: - a mondatnévben csak az első helyen állhat - a mondatnévben csak egyszer szerepelhet. - ugrás címkében nem szerepelhet. - programelem hívásnál szerepelnie kell. A sorszintaktika felismeri: - az EP vagy EM került -e programozásra. -.mondat, vagy programelemnévről van-e szó. A sorszintaktika a szabályok megsértése esetén megfelelő hibajelzést készít. Az editor tudja azt, hogy az adott időben a főprogramban ( main ) programelemben dolgozik-e. A kiadott jelzések utalnak arra, hogy a programozó helytelenül alkalmazta az EP, és az EM utasításokat. Fordító (compiler) A compiler azonos ellenőrzési műveleteket végez mint az editor. Ennek alapján a következőket ellenőrzi: - ha egy olyan programelemet hívnak meg amelyet egyik helyen sem programoztak akkor erről megfelelő hibaüzenetet készít: ”Programelem: xyz nem létezik” - másrészt ha a programelemek programozottak ugyan, de nem megfelelően hívják meg ezeket Figyelmeztetés: ”Programelem xyz-t deklarálták ugyan, de nincs meghívott állapotban” - a programelemeket mindig a főprogramon, valamint más programelemeken kívül kell programozni. Ha a programozást a főprogramon, és/vagy más programelemen belül végzik, akkor a compiler az alábbi hibát ismeri fel: ”A programelem deklarálása nem korrekt” - az ugynevezett rekurzív hívást, azaz annak programelemnek a hívását, amelyen éppen dolgozik a program letíltja.
Klöckner-Moeller
3-88
9/96 AWB 27-1186-H
Program strukturálás Ellenôrzési műveletek A rekurrzív hívás megértésére a következő hiba példa: PB2 program
$PB2 L ´ST A ´VER = ´WEICHE6 (6 váltó) CM $PB2
PB2 hívása
EM
Modul vége
A hibajelzések összefoglalása: - programelemeket nem lehet a főprogramban, vagy más programelemben programozni. - főprogram / programelem nincs szabályszerűen lezárva (EP vagy EM hiányzik) - nem korrekten elkészített programelem - a programelem: XYZ többször fordul elő - nem szabályos a programelem hívás - programelem: XYZ nem programozott. - programelemre nem szabad ugrást végrehajtani - programelem neve korábban már felhasználásra került - rekurzív programelem hívás nem engedélyezett - főprogramot le kell zárni EP utasítással - programelemeket le kell zárni EM utasítással - mondat nevek / programelem nevek nem szabályosak ( a névben nem megengedett a speciális $ karakter használata ) Fordítás utáni figyelmeztetés: - programelem: XYZ ugyan programozott, de a meghívása nem történt meg.
A PLC központi egysége (CPU) Az egyes programelem blokkokat az EP utasítás után, a programelem könyvtár elé a P programfájlba (.pxx), és megfelelő módon a felhasználói programtárolóba kerülnek áttöltésre.
Klöckner-Moeller
3-89
9/96 AWB 27-1186-H
Program strukturálás Ellenôrzési műveletek
PCB
Információ a rendszerprogram számára
Főprogram(main) EP Pb1 (1. programelem) Teljes program EM . . . Pb (n. programelem) EM Programelemkönyvtár Szabad hely a közvetlen (on-line) módosítások számára
Csak ha létezik
3-7 ábra: A programelemek helye a felhasználói programtárolóban A központi egység az aktuális adatokat elmenti egy programelembe történő belépés elött. A főprogramba való visszatéréskor az elmentett adatok visszaolvasásra kerülnek. Programelembe történő belépés esetén elvégzendő műveletek: - a bit, bájt, szóregiszterek mentése - állapotregiszter mentése - az egymásba ágyazás mélységének ellenőrzése. Programelemből történő kilépés esetén elvégzendő műveletek: - Állapot regiszterek visszaírása - a bit, bájt, szómerkerek visszaírása A munkaregiszter és valamennyi állapotregiszter a programelemből történő visszatérés után a hívás előttivel megegyező adatokkal rendelkezik. Ez akkor is érvényes, ha a programelemben állapotregiszterekkel dolgozva ezek átmeneti adatokat tárolnak. Regiszterből programelembe adatátvitel nem történhet. Klöckner-Moeller
3-90
9/96 AWB 27-1186-H
Program strukturálás Ellenôrzési műveletek Amint a következő példa mutatja az egyes összehasonlítás eredményét a programelemek többszöri feltételes hívására alkalmazni lehet L IB 0.0.0.0 CP KB 20 CME $PB1 CMB 6 $PB2
”0.0.0.0 bemeneti bájt betöltése ”20-s állandóval történő összehasonlítás ”egyenlőség esetén a PB1 programelem hívása ”ha a 0 bemeneti bájt 6 bitje log.1, akkor PB2 programelem hívása ”ha a 0 bemeneti bájt nagyobb mint 20, akkor a PB3 programelem hívása ”az IB0 tartalmának a 0 kimeneti adatbájtban történő tárolása
CMGT $PB3 = Q 0.0.0.0
Rekurzív hívások: A programelemeknek közvetett (indirekt) rekurzív hívásai ciklusidő hibajelzéshez vezetnek. Az ilyen szerkezetek alkalmazását kerülni kell. Szemléltető példa egy hibásan alkalmazott indirekt rekurzív hívásra: $PB2
PB2 programelem L ´BERO1 A ´FREI (szabad) = ´ST-FR CM $PB3 EM
PB3 programelem hívása
$PB3
PB3 programelem L A O =
´STORN ´STOR-FL ´STOR-D ´MEL7
CM $PB2
PB2 programelem hívása
EM Egymásbaágyazási mélység ellenőrzése: Az egymásbaágyazási mélység engedélyezett ( max. 6 ) túllépése ciklusidő hibajelzéshez (DCT), és a központi egység (CPU) leállásához vezet.
Klöckner-Moeller
3-91
9/96 AWB 27-1186-H
Program strukturálás Vizsgálati műveletek
------------------------------------------------------------------------------------------------Közvetlen (on-line) programozás Az IL/AWL -ben a közvetlen programozás a programelemen belül azonos módon történik mint a főprogramban Figyelem! A közvetlen programozás lehetőségeit és korlátait a 4 fejezetben teljes egészében részletesen leírjuk Kérjük ismerkedjen meg ezzel az anyagrésszel, mielött a programelemek online programozását, és az include-fájlokat alkalmazná. Az off-line fordításnak valamennyi fordítási lehetősége a következő megszorításokkal áll rendelkezésre: - új programelemek programozása nem engedélyezett. Programelem hívás tetszőlegesen kiegészíthető, vagy törölhető. ( Kezelése megegyezik a funkcióelemekével ) - Programelem lezárását képező EM utasítás nem törölhető - az on-line programozás nem ellenőrzi azt, hogy egy programelem meghívása megtörtént-e. Ezért, hogy egy programelem megtalálása könnyebb legyen, a felhasználók rendelkezésére áll egy kereső művelet az on-line menüben. - Programelem választás. Az F8 „Programelem választás” nyomógombbal meghívható egy áttekintés az össze létező programelemről. Az F8 azokat a programfájlokat is nyilvántartásba veszi, amelyek más programkönyvtárban vannak tárolva. Példa: A képernyő a következő programrészletet mutatja: 00012
PUMPE3 (3 szivattyú)
”3 szivattyú vezérlés L ´ANF-FR = ´ANF-MEL CM $PB1 feltétel nélküli hívás L M 20.3 = Q 0.3
00013
PUMPE3S
00014
ENDE (vége)
00015
$SPB1
”3 szivattyú hibajelzés programja L I 0.3 O M 12.5 CMC $PB2 feltételes hívás = Q 0.4 ”Főprogramnak vége EP ”Általános szivattyú reteszelések L ´VER-BED A ´VER-7
Klöckner-Moeller
3-92
9/96 AWB 27-1186-H
Program strukturálás Vizsgálati műveletek
------------------------------------------------------------------------------------------------Az F8 nyomógomb működtetése után a képernyő jobb felső sarkában az összes programelemről egy áttekintés jelenik meg: $Main (főprogram) $PB1 $PB2 $Stor A kívánt programelemnek a kurzorral -, és a beviteli billentyűzettel történő kiválasztásával a programelemnek az első képernyő oldala jelentkezik be. Az F2 nyomógomb működtetésével aztán az on-line editor kiválasztható. Programfájl kiválasztása Az F7 ”Programfájl kiválasztás” nyomógombbal az összes programozott includefájlról egy áttekintés hívható. Ezekhez tartozik a főprogram melletti összes includefájl, amelyeket a főprogram vagy programelemek tartalmaznak. Példa: A képernyő a következő programrészletet mutatja: 00012
PUMPE3 (3 szivattyú)
00013
PUMPE3S
00014
ENDE (vége)
Klöckner-Moeller
3-93
”3 szivattyú vezérlése L ´ANF-FR . . = ´PUMP3 CM $PB1 feltétel nélküli hívás L M 20.3 = Q 0.3 ”3 szivattyú hibajelzés program L I 0.3 O M 12.5 CMC $PB2 feltételes hívás = Q 0.4 # include < Stor.q42 > ”A főprogramnak vége EP # include < pb1.q42 > # include < pb2.q42 >
9/96 AWB 27-1186-H
Program strukturálás Vizsgálati műveletek
------------------------------------------------------------------------------------------------Az F7 nyomógomb működtetése után az ablak jobb felső sarkában megjelenik egy áttekintés az összes include utasítást tartalmazó fájlról: main.q42 (főprogram) stor.q42 pb1.q42 pb2.q42 A kívánt fájl kurzorral történő kiválasztásával és beviteli billentyűzettel a fájl beolvasásra kerül és az első képernyő oldal megjelenik. Ezután az F2 nyomógombbal az on-line szerkesztő (editor) megjelenik és a fájlon belüli tetszőleges módosítás elvégezhető. Az F1 „Visszaugrás” nyomógomb működtetésével a fájlt ismét elhagyja és a módosításokat elmenti. Az F4 „Forrásadatok mentése” nyomógomb működtetésével az eredeti fájlt a módosítottal felülírja. Ha a PLC tárolómodult tartalmaz, pl. egy EEPROM flash tárolót, a menüből kiválaszthatja, hogy a programot ebbe a flach-tárolóban is felül akarja-e írni. Ha nemmel válaszol akkor a programmódosítást a PLC kikapcsolásakor elveszíti. Az ismételt bekapcsoláskor a korábbi programot tölti be a flash-tárolóból. Állapotkijelzések Az operandusok állapotának kijelzése a programelemekben is AWL / IL -ben történik, korlátozások nélkül változatlan formában. Az állapotkijelzés közvetlenül a ”Teszt és üzembe helyezés” menüből hívható. Az üzembe helyezésnél az állapotkijelzés AWL / IL- ben történik, de ”on-line” menüből az F9 és F4 nyomógombok egymás utáni működtetésével szintén elérhető. Ennek folyamatnak engedélyezett különösen egyszerű módja a „Módosítás” és „Megfigyelés” üzemmódok közötti ide-oda kapcsolgatás.
Klöckner-Moeller
3-94
9/96 AWB 27-1186-H
4 Üzembehelyezés
Tartalom Általánosságok
4-2
Főmenü teszt / üzembehelyezés
4-3
PLC állapota - Diagnózis állapotszó DSW - Információbájt INB
4-4 4-5 4-9
Készülékek-, I / Q - állapotai
4-11
Állapotkijelzés AWL / IL -ben - Dinamikus kényszerbeírás
4-16 4-18
Közvetlen (on-line) programmódosítás - Általánosságok - Kezelés - F2 PROGRAMBEVITEL műveleti nyomógomb - F7 Programfájlt kiválasztó nyomógomb - F8 Programelemet kiválasztó nyomógomb - Speciális megjegyzések az on-line módosításokra
4-20 4-20 4-22 4-23 4-25 4-25 4-26
Dátum / Idő
4-27
Távoli (kihelyezett) állomás programozása Suconet K hálózaton
4-28
Klöckner-Moeller
4-95
9/96 AWB27-1186-H
Üzembehelyezés Általánosságok A növekvő bonyolultságú PLC-kel vezérelt berendezéseknél tetemesen nőnek a programvizsgálati (teszt), üzembehelyezési, karbantartási és javítási (szerviz) költségek. Egy megfelelő PLC rendszer kiválasztásánál ezért a működési alkalmasság mellett különösen nagy értéket jelentenek a programkészítéshez, üzembehelyezéshez, és szerviz esetekre megajánlott segédtesztek. Különösen üzemzavar esetén fontos, hogy az üzemzavar oka gyorsan megállapítható és elhárítható legyen azért, hogy a termeléskiesés költségeit olyan alacsony szinten lehessen tartani amilyenen csak lehet. Az automatizálási készülékek ezeknek a követelményeknek a nagy teljesítőképességű teszt- és üzembehehelyezést segítő anyagaik révén maximálisan eleget tesznek. Ezekhez az anyagokhoz számíthatók a szoftver eszközök, valamint az állapotok kijelzésére alkalmas LED -ek is. Ebben a kézikönyvben közelebbről megismerkedhet a programozó készülékkel (PC) összekapcsoltan a teszt műveletekkel. A hibák vizsgálatánál tekintetbe kell venni, hogy tapasztalatok szerint kb. 90% -ban az üzemzavarok okai a perifériaelemekben keresendő, azaz ezek az érzékelőkben és az aktorokban [aktor = végrehajtó-, és beavatkozó szerv] lépnek fel. A következőkben leírt tesztműveletek szemléletes bemutatása és elmagyarázása a vezérlővel összekapcsolt állapotban üzemelő programozó készülék (PC) segítségével történhet.
Klöckner-Moeller
4-96
9/96 AWB27-1186-H
Üzembehelyezés Fômenü teszt/üzembehelyezés A 4-1 ábra a felajánlott teszt műveletekkel a teszt és üzembehelyezés menüt mutatja. A menü felosztódik almenükre, amelyek aztán mindig további részmenükre tagolódnak. A beépített támogató szövegek (help) felvilágosítást adnak az egyes teszt műveletek kezeléséről. S ucos o f t - S 3 0 - S4 V2.0 TESZT / ÜZEMBEHELYEZÉS F1 F2 F3 F4 F5 F6 F7 F8 F9 F10
FŐMENÜ PLC-ÁLLAPOT KÉSZÜLÉKEK-/ IQ-ÁLLAPOTA ÁLLAPOTKIJELZÉSEK AWL / IL ON - LINE - MÓDOSÍTÁS AWL / IL ÁTVITEL PC-HDD PLC ÁTVITEL PLC PC-HDD ÖSSZEHASONLÍTÁS PLC PC-HDD DÁTUM / IDŐ S E G I T S É G (Támogatás)
4-1 ábra : Főmenü teszt / üzembehelyezés
Klöckner-Moeller
4-97
9/96 AWB27-1186-H
Üzembehelyezés PLC- állapota
A 4-2 ábra a „PLC állapot” menüjét ábrázolja. A képernyő baloldala a központi egységet képezi le. Megismerhető az üzemmódválasztó kapcsoló állása és a PLC állapota továbbá több hiba okra történő utalás: PLC (SPS)
Magyarázat
FUTÁS
A felhasználói program feldolgozása Valamennyi hálózatra kapcsoláskor elvégzett memória teszt pozitív eredménnyel végződött. A felhasználói program indítható. A végrehajtott program vagy a memória teszt nincs rendben. A PLC nem kapcsolható futási (RUN) állapotába. A beépített pufferelem feszültségellenőrző áramköre működésbe lép.( Utalás a megvalósítandó elem cserére) Ciklusidő túllépés történt. (a max. ciklusidő az 1-255 ms tartományban választható)
KÉSZ
NEM KÉSZ
CSERE
CIKLUSIDŐ
A képernyő közepén található a diagnosztikai-állapotszó (DSW) 16 lehetséges eseménye. A PLC-nél 14 esemény ismerhető fel. A jobboldali képernyőrészben a PLC futási üzemállapotában a ciklusidő megjelenítése található. A rendszerprogram verziószáma és a memória kialakítása szintén megjelenítésre kerül. Ezek az információk különösen javítási esetekben hasznosak. Ebben a menüpontban indítható és leállítható a vezérlő. A remanens merkerek szintén törölhetők azért, hogy pl. a készülék újból indítható lehessen.
Klöckner-Moeller
4-98
9/96 AWB27-1186-H
Üzembehelyezés PLC- állapota
PS 4-201-MM1 Az utolsó módosítást feljegyezték 15:37:35 h
FUTÁS KÉSZ NEM KÉSZ CSERE CIKLUSIDŐ
A diagdnózisszámláló visszaállítása történt 00:00:00 h ECT EDC EWD EPM EDR ERT ENR
BILLENŐ KAPCSOLÓ: 1-MEGÁLLÁS 2-FUTÁS 3-FUTÁS < M-Törlés >
DAC DBM DMC DLK DLS DDK DDS
Kedd,12.4.1994 15:37:45
Állapot F1 Visszaugrás F2 PLC-indítása F3 PLC leállítása
F4 Diagnózis számlálótörlése F5 Diagnózisszó törlése
A diagnózis-szó visszaállítása történt 00:00:00 h Ciklusidő: 000 ms Külső tároló: 32-KB-RAM Program: teszt 19.jun. 96 Verziószám: 0000 Rendszerprogram verziószáma: V1.03 L SUCOsoft verziószáma: V 2.0 F7 Remanens merker törlése F10 Támogatás
4-2 ábra: PLC állapot menü Diagnózis állapotszó DSW A PLC-ben található „diagnózis állapotszó 16 bitből áll. A diagnózis bitek két csoportba oszthatók. A „D” csoportba (Diagnózis) tartozó bitek csak jelzési funkciókra szolgálnak. Az „E” csoportba (Hiba) tartozó diagnózisbitek úgyszintén jelzésre és ezen kívül a vezérlő lekapcsolására is szolgálnak. A 0-7 közötti diagnózis bitek lekérdezése az L IS 0.X (X=0-7) paranccsal a felhasználói programból történik. A 8-15 közötti hibajelző bitek a vezérlő lekapcsolásához vezetnek, úgyhogy ezeknek a biteknek az olvasása megszűnik. A hibák okainak megKlöckner-Moeller
4-99
9/96 AWB27-1186-H
Üzembehelyezés PLC- állapota
szüntetése után a „D” kategóriába tartozó diagnózis bitek a PLC előlapján található reset gombbal, vagy a programozó készülékkel (PC) visszaállíthatók. Azért ,hogy a megállapított hibák gyakoriságáról történő közlés egyszerűsíthető legyen, mindegyik diagnózis bithez egy számlálót rendeltek hozzá. Ezek a bitek a programozó készülékről leolvashatók és szükség esetén visszaállíthatók. 4-1 Táblázat: DSW diagnózis állapotszó bitjeinek az értelmezése Az első betű a kategória meghatározását jelenti E vagy D 15 bit ECT 14 bit EDC 13 bit EWD 12 bit EPM 11 bit EDR 10 bit ERT 9 bit ENR 8 7 6 5 4 3 2 1 0
bit bit bit bit bit bit bit bit bit
DAC DBM DMC DLK DLS DDK DDS
Értelmezés Ciklusidő túllépés A báziskészülékben a DC feszültség megszűnése A központi egység meghibásodása Hiba a programtárolóban Remanens adatok a rendszerprogramban Futási-idő (Run-time) hiba Újra indítás csak remanens-merker törléssel lehetséges Nincs lefoglalva Bemenetek feszültsége megszűnt Telep ellenőrzés Backup (támogatás) nincs Hibás a helyi konfigurálás Bemenetek/kimenetek hibája A távoli elemek konfigurálása hibás A SBI vagy a hálózati elemek hibásak Nincs lefoglalva
Ha az „E” kategóriában egy hiba lép fel, a vezérlő nyugalmi (halt) állapotba kerül és a hiba okának a megszüntetése után újból indítható. Elvileg ekkor M-RESET kapcsolóállással mindig hideg indítást kell elvégezni. Az újraindítási eljárást a programozást megelőzőleg RUN kapcsolóállásban a főmenü rendszerparaméter menüpontjában történő beállításával szükséges elvégezni. (lásd az 1 fejezetben) Ennek a konfigurálásnak az értelmében a Sucosoft aztán igény esetén működésbe hoz egy meleg- vagy hideg indítást. A szabványos (standard) HALT beállítás azt jelenti, hogy a vezérlő adatvesztése esetén minden esetben M-RESET állásban hidegindítást kell eszközölni. Az okok és válaszok (reakciók) leírása ECT
Klöckner-Moeller
Ciklusidő-túllépés A Sucosoftban a rendszerparaméter menüben beállított ciklusidőt (standard beállítás értéke: 60ms/max. érték: 4-100
9/96 AWB27-1186-H
Üzembehelyezés PLC- állapota
255 ms) a programvégrehajtás során túlléptük. A futó vezérlő válasza: jelzés a működés leállítása EDC
A bázis készülékben a DC feszültség megszűnt. Rövidzárlat vagy túlterhelés a bázis készülékben A futó vezérlő válasza: jelzés és a működés leállítása
EWD
A központi egység (CPU) meghibásodott A központi egység watchdog (felügyelő, őrző) egysége jelzi a meghibásodást. A futó vezérlő válasza: jelzés és a működés leállítása.
EPM
Hiba a programtárolóban A felhasználói program checksum vizsgálatánál vagy a hihetőség vizsgálatánál egy hibát talált. A programot újra kell tölteni. A futó vezérlő válasza: jelzés és a működés leállítása (NOT-Ready állapot)
EDR
Az operációs rendszerben az adatremanencia megsérült. A operációs rendszer fontos ellenőrző adatai megsérültek egy RAM csere után vagy egy új vezérlő esetén nem is léteznek. A vezérlő válasza: az indítás megakadályozása; járulékosan valamennyi memória tartomány törlése és újra inicializálása
ERT
Futási-idő (run-time) hiba A vezérlő futási-idő hibát talál A futás állapotában lévő vezérlő válasza: jelzés és a működés leállítása. (NOT-Ready állapot)
ENR
Klöckner-Moeller
Újraindítás csak remanens-merkerek törlésével Ez a jelzés csak akkor léphet fel, ha a vezérlőt a rendszerparaméter-menüben az „ Indítás NOTReady után” opciónál HALT(0) -ra konfigurálták és egy „E” kategóriás hiba fellépése után megkísérelnek melegindítást foganatosítani. Ebből a helyzetből csak remanensmerkerek törlésével történhet az indítás. 4-101
9/96 AWB27-1186-H
Üzembehelyezés PLC- állapota
DAC
Bemenetek feszültsége megszűnik A báziskészülék tápfeszültsége rövid ideig megszűnik. A futási állapotban lévő vezérlő válasza: jelzés Újraindítás RUN-al vagy M-RESET-el történhet.
DBM
Telep ellenőrzés A telep feszültsége a tűréssáv alsó értékét átlépte. A telep egységet ki kell cserélni, ha a vezérlő RAM memória modullal üzemel vagy remanens adattartományt vagy valósidejű órát alkalmaz. A futási állapotú vezérlő válasza: jelzés Újraindítás RESET-el vagy M-RESET-el
DMC
Backup (támogatás) nem létezik A memória modulba automatikusan elhelyezett backup hibás, vagy Flash-modullal nincsen ellátva. A futás állapotában lévő vezérlő válasza: jelzés Újraindítás RUN-al vagy M-RESET-el
DLK
Hiba a helyi (lokális) konfigurálásban A PLC konfigurálása nem helyes vagy egy báziskészülékkel összekapcsolt helyi (lokális) bővítmény (LEmodul) meghibásodott. A futás állapotában lévő vezérlő válasza: jelzés Újraindítás RUN-al vagy M-RESET-el
DLS
Bemeneti / kimeneti hiba (lokális állapothiba) A digitális kimeneteknél rövidzár vagy túlterhelés áll fenn, ill. a báziskészüléknek- vagy annak bővítményeinek (LE-modulok) analóg kimenetei az értéktartományukat túllépték. A futás állapotában lévő vezérlő válasza: jelzés Újraindítás RUN-al vagy M-RESET-el.
DDK Klöckner-Moeller
A távoli elemek konfigurálása hibás 4-102
9/96 AWB27-1186-H
Üzembehelyezés PLC- állapota
Egy vagy több hálózati elem konfigurálása nem helyes, azaz a lajstromozott típusjelölés nem egyezik meg a tényleges valódi készülékkel. A futás állapotában lévő vezérlő válasza: jelzés Újraindítás RUN-al vagy M-RESET-el. DDS
Az SBI (soros busz interfész) vagy hálózati elemek hibásak A báziskészülékben lévő soros interfész egység hibát állapít meg egy hálózati elemnél. Pontosabb helymeghatározást az egyes hálózati elemek diagnózis bájtjáról lehetséges elvégezni. A futás állapotában lévő vezérlő válasza: jelzés Újraindítás RUN-al vagy M-RESET-el.
Figyelem! Az itt leírt diagnózisbitek csak a PLC-kre érvényesek. A többi készülék (LE, EM, PS 3 ) más állapotinformációval rendelkezik, amelyeket a mindenkori hardver kézikönyvek leírják.
Információs bájt INB Az információs bájt felvilágosítást ad a vezérlő állapotáról, a hálózati elemek regisztereiről, a vezérlő indítási eljárásáról és így tovább. A PLC operációs rendszere állítja elő ezt az információs bájtot, amelyeknek az információs bitjeit a felhasználói prog ram értékeli ki, de nem kerül sor a beírásukra . Az információs bájtban az alábbi bitek foglaltak: 4-2 Táblázat: INB információs bájt Bit INB0.0 INB0.1 INB0.3 INB0.4. INB0.5 Klöckner-Moeller
Jelentése Az 1. ciklus a PLC indítása után Az 1.ciklus a ny.gomb reset után Információs bit a maradék ciklusról Információ az újraindításról: 0=melegindítás 1=hidegindítás információ az 1. hálózati vonal (strang) regiszterben lévő új adatokról 4-103
9/96 AWB27-1186-H
Üzembehelyezés PLC- állapota
Klöckner-Moeller
4-104
9/96 AWB27-1186-H
Üzembehelyezés PLC- állapota
INB0.0 Az első ciklus időtartamára a vezérlő indítása után a RUN és RUN-MRESET-el kapcsolóállásokban az INB0.0=1 . A felhasználói programban az INB0.0 arra használható, hogy az alkalmazásra vonatkoztatott kezdeti értékre állítás (inicializálás) indulhasson. Példa L INB 0.0 JC START INB 0.1 Az INB 0.1 az első ciklus időtartamára 1-re állítódik, ha a vezérlő indítása reset gombbal a központi egység parancsára megtörténik. Az INB 0.1 inicializálásra használható. Példa: L JC
INB 0.1 START
INB 0.3 Ha egy felhasználói programot ciklus közben megállítanak, akkor ez a bit az újraindítás után annyi ideig marad beírt állapotban, amíg a maradék ciklus beleértve a kimeneti regiszter aktualizálását is befejeződik. Az INB 0.3 bit lekérdezésével igény esetén az adattartományoknak egy speciális kezelése vezethető be, ha a felhasználói programot újra indítják. Példa: L INB 0.3 JC DATRESET INB 0.4 Itt azt jelzik ki , hogyan indították utoljára a vezérlőt. Az INB 0.4=1 esetben utoljára meleg indítást végeztek. Az INB 0.4=1 esetben utoljára hidegindítás történt, és valamennyi adattartomány újra inicializálódott. Ezek az információk csak az újraindítás utáni első ciklus alatt érvényesek. Ezután a bit önműködően visszaállítódik. INB 0.5 Ez a bit csupán egy ciklus időtartamig van beírt állapotban, ha a hálózati elemektől új adatok érkeznek a báziskészülékhez. Mivel a programfeldolgozás és a kommunikációs eljárás aszinkron történik, INB 0.5 alapján egyszerű összefüggéssel megállapítható mikor érkeztek meg az aktuális adatok. Ezek az adatok aztán irányíthatók és optimális időben feldolgozhatók. Példa: L INB 0.5 JC NEWDATA (új adatok)
Klöckner-Moeller
4-105
9/96 AWB27-1186-H
Üzembehelyezés Készülékek-, I/Q- állapotai
Ezek a műveletek különösen az üzembehelyzőket támogatják a kábelfektetések, kábelezések helyszínén elvégzendő ellenőrzéseknél. Ebből a célból a digitális- és analóg bemenetek állapotai dinamikusan megjelenítődnek, anélkül hogy a felhasználói programot futtatni kellene. A kábelezések ellenőrzése parancsadásra történik ugyanennek a működtetésével. A jelváltásokat a képernyőn megjelenítik. Az analóg bemenetek analóg étékeinek átalakítása készüléken belül történik és decimális számként kerülnek megjelenítésre. Ilymódon pl. egyszerűen elvégezhető az analóg jeladók nullázása. A TEST / ŰZEMBEHELYEZÉS menüben az F3 KÉSZÜLÉKEK-/ I / Q -ÁLLA POTAI kiválasztásánál mindenekelőtt a programozó készülékhez kapcsolódó PLC készülékből az előirt készülék konfigurálás olvasható ki. Ezeket a konfigurálási adatokat, amelyek a felhasználói programmal együtt kerülnek a vezérlőbe áttöltésre, a képernyőn grafikus formában történik az ábrázolásuk.
0.0.1 PS4-401-MM1 108-XR1
0.0.2 104-XP1
0.0.3 116-XD1
0.0.4 116-XD1
1.1.0 PS4-151-MM1 1.2.0 EM4-201-DX2 1.3.0 PS3-AC 1.4.0 RMQ-161 FŐMENÜ
TEST/ ÜZEMBEHELYEZÉS
F 1 Visszaugrás F 2 PLC indítása F 3 PLC leállítása
KÉSZÜLÉKEK-,I/Q- ÁLLAPOTAI
F 4 Készülékállapot be/ki F 5 I/Q - kijelzés be/ki F 6 Kényszerbeírás be/ki
F10 Támogatás
4-3 ábra: A készülék konfigurálás és az I/Q- állapotok ábrázolása
Klöckner-Moeller
4-106
9/96 AWB27-1186-H
Üzembehelyezés Készülékek-, I/Q- állapotai
Az F4 készülékállapot nyomógombbal megjeleníthető a felhasználó számára a hozzákapcsolt készülékek aktuális állapotai. Ehhez a készülékek grafikus ábrázolásának jobb felső sarkában lévő mindenkori „OK” vagy „DIAG” jelzésre szükséges a fényrekeszt beállítani.
RUN DIAG PS-4-201MM1
0.0.1 OK 108-XR1
0.0.2 OK 104-XP1
0.0.3 OK 116-XD1
0.0.4 OK 116-XD1
1.1.0 DIAG PS4-151-MM1 1.2.0 DIAG EM4-201-DX2 1.3.0 DIAG PS3-AC 1.4.0 DIAG RMQ-161 - FŐMENÜ --> TEST/ ÜZEMBEHELYEZÉS --> KÉSZÜLÉKEK-, I/Q-ÁLLAPOTAI Készülékek állapota aktív F 1 Visszaugrás F 2 PLC-indítása F 3 PLC-leállítása
F 4 Készülékállapot be / ki F 5 I / Q kijelzés be / ki F 6 Kényszerbeírás be / ki
F10 Támogatás
4-4 ábra : Készülékek állapota A nyílkurzorral kiválasztható a kívánt készülék és a return billentyű lenyomásával fennálló hiba megjeleníthető. Az F5 I / Q - kijelzés menüpont a nyílkurzorral kiválasztott készülék bemeneteinekés kimeneteinek az aktuális állapotait adja meg. Ezesetben ügyelni kell arra, hogy a vezérlő HALT (nyugalmi) állapotában valamennyi bemeneti állapot is frissítődik, de a kimenetek törlődnek. Amennyiben a PLC-t slave-nek paraméterezik, akkor a kommunikációs bemeneti- és kimeneti adatok is kijelzésre kerülnek .
Klöckner-Moeller
4-107
9/96 AWB27-1186-H
Üzembehelyezés Készülékek-, I/Q- állapotai
RUN DIAG PS4-201-MM1
0.0.1 OK 108-XR1
0.0.2 OK 104-XP1
1.1.0 DIAG PS4-151- MM1
0.0.3 116-XD1
OK
0.0.4 OK 116-XD1
Diagnózis kijelzés 6 bit : nincs összeköttetés
1.2.0 DIAG EM4-201-DX2 1.3.0 PS3-AC
DIAG
1.4.0 DIAG RMQ-161 FŐMENÜ
TESZT/ ÜZEMBEHELYEZÉS
F 1 Visszaugrás F 2 PLC-indítása F 3 PLC-leállítása
KÉSZÜLÉKEK-, I/ Q ÁLLAPOTAI Készülékállapot aktív F 4 Készülékállapot be/ ki F 5 I / Q kijelzés be / ki F 6 Kényszerbeírás be / ki F 10 Támogatás
4-5 ábra: Az egyes készülékekre vonatkozó diagnózis megjelenítés
0.0.1 108-XR1
PS4-201-MM1
Kommunikációs bemenet B0: x00 x00 x00 x00 x00 x00
0.0.2 104-XP1
0.0.3 116-XD1
0.0.4 116-XD1
Digitális bemenet Digitális kimenet B0: 00000111 0x07 B0: 00000000 0x00
Kommunikációs kimenet Analóg bemenet Analóg kimenet B0: x00 x00 x00 x00 x00 x00 x00 W0: 00153 0x0099 W0: 00000 0x0000 W1: 00293 0x0125 W2: 00485 0x01e5 W3: 00912 0x0390 FŐMENÜ
TESZT/ ÜZEMBEHELYEZÉS
F 1 Visszaugrás F 2 PLC indítása F 3 PLC leállítása
KÉSZÜLÉKEK-, I/Q-ÁLLAPOTAI I/Q kijelzés aktív F 4 Készülékállapot be/ki F7 Decimális+/F 5 I / Q kijelzés be / ki F8 Decimális F 6 Kényszer beírás be / ki F9 Hexadecimális
4-6 ábra: Az egyes készülékek be-/ kimeneteinek a kijelzése (itt a PLC mint slave üzemel) Klöckner-Moeller
4-108
9/96 AWB27-1186-H
Üzembehelyezés Készülékek-, I/Q- állapotai
Az F7 Decimális +/- funkcióbillentyűvel a decimálisan megjelenített számértékeknél az előjeles ábrázolási forma átkapcsolható előjel nélküli formává. Az F8 Decimális funkcióbillentyű működtetésénél az érték decimális kijelzési formában jelenítődik meg. Az F9 Hexadecimális funkcióbillentyű működtetésénél az érték hexadecimális kijelzési formában jelenítődik meg. Az F6 kényszerbeírás be / ki menüpont kiválasztásakor a vezérlő HALT állapotában a digitális- és analóg kimenetek kényszerbeírhatók. Ezáltal a huzalozás és a kapcsolódó aktuátorok (végrehajtó- és beavatkozó szervek) funkciói és a jeladó tesztelhetők.
Vigyázat ! A kimenetek kényszerbeírása a vezérelt gép/berendezésnél előre nem látható meghibásodásokhoz vezethet. A kényszerbeírás megkezdése előtt meg kell bizonyosodni arról, hogy sem személy sem valamilyen tárgy nincs e veszélyhelyzetben.
PS4-201-MM1
0.0.1 108-XR1
0.0.2 104-XP1
0.0.3 116-XD1
0.0.4 116-XD1
Digitális kimenet B0: 10010101 0x95 B1: 00101011 0x2b F1 F2 F3 F9 FŐMENÜ
Bevitelből kilépés Értékek beírása Értékek törlése Teljes törlés
TESZT/ ÜZEMBEHELYEZÉS
F 1 Visszaugrás F 2 PLC indítása F 3 PLC leállítása
KÉSZÜLÉKEK I/Q- ÁLLAPOTAI Kényszerbeírás aktív F 4 Készülékállapot be/ki F 5 I/Q- kijelzés be/ki F 6 Kényszerbeírás T 10 Támogatás
4-7 ábra: Kimenetek kényszerbeírása
Klöckner-Moeller
4-109
9/96 AWB27-1186-H
Üzembehelyezés Készülékek-, I/Q- állapotai
A PLC slave elemeként alkalmazandó EM4-101-AA1, PS3-..., vagy PS306-... készülékek esetén ügyelni kell arra, hogy ezekben a készülékekben található A/D és D/A egységek felbontása különböző lehet: 4-3 Táblázat: Az analóg értékek felbontása
IA QA 1
PLC 10 bit 12 bit
PS3-... 8 bit 8 bit
PS306-... 10 bit 12 bit
EM4-101-AA1 8 ill. 12 bit 1 ) 8 ill. 12 bit 1 )
) Az EM 4 készüléknél beállítható
Az aktorokhoz történő kábelezés ellenőrzésének szokásos módja, hogy a PLC-k kimenetét aktivizálják és ilymódon helyben meg lehet győződni az aktorok reakciójáról. A végrehajtó- beavatkozó szervekhez megvalósított kábelezés ellenőrzésekor a készülék konfigurálásán belül a vezérlő kimenetei 1-re vagy 0-ra állíthatók, un.”kény- szerbeírhatók”. ( Force-Funktion) Vigyázat! A vizsgálat megkezdése előtt meg kell győződni arról, hogy személyek vagy tárgyak nincsenek-e veszélyeztetve. Miután a kurzort a nyilakkal egy modulra pozícionálta amelynek digitális vagy analóg kimenetei vannak, az F6 Kényszerbeírás BE/KI funkcióbillentyűvel a beviteli ablak kényszerbeírásra megnyitható (4-7 ábra) Ezesetben a kiválasztott modulegység kimeneteire előírt értékek adhatók meg. A kényszerbeírás a digitális és analóg kimenetekre érvényes. Biztonsági okokból a beállított állapotokat F7-tel kell aktivizálni. Abban az esetben ha a bemenetek vagy kimenetek vizsgálatánál nem történik viszszajelzés , a referencia fájl felvilágosítást ad az érzékelők ill. aktorok és a PLC csatlakozási pontjai közötti kapcsolatról és jelekről. Az F9 Visszaállítás (reset) billentyűvel az összes kényszerbeállított kimenet visszaállítható eredeti értékére. Ez funkcióját tekintve ”Emergency-stop” (vészhelyzetben stop ) billentyűnek felel meg.
Klöckner-Moeller
4-110
9/96 AWB27-1186-H
4 Üzembehelyezés Állapotkijelzések AWL / IL -ben
A program ellenőrzésekor az operandusok és a funkcióelemek állapotai (4-8 ábra) dinamikusan megjelenítődnek. Az operandusok adattípusának megfelelően a monitoron megjelenik: - bit operandusoknál mindig a 0 vagy 1 állapot - többszörös bitoperandusoknál (bájt, szó) a tartalom választhatóan előjeles decimális számként, vagy pozitív számként valamint bináris ábrázolásban. Az ábrázolás tetszés szerint történhet hexadecimális formában is. A felhasználó egy tetszőleges billentyű (a funkció- és kurzor billentyűkön kívül) lenyomásával az állapotmegjelenítéseket befagyaszthatja azért, hogy pl. bizonyos események felléptekor a pillanatnyi állapotot nyugalmi állapotban lehessen kiértékelni. LC/Időzítő
”szabályozásikör - időzítő
1 0 0 3000 0 1
TR63 -MS [ ] S: LN ´LC/TR/S [ ] R: [ ] STOP: [w] I: KW 3000 [ ] EQ: [w] Q: ´LC/TR-Q
Szabályozásikör-időzítő M-szabályozásikör-időzitő beírás
L ´LC/TR-Q CP KW 2000 ” BLT LC/TIM-1
MW-szab.kör-időzítő aktuális ideje
”az időzítő lefutott
< 2000 ms> nem indított
LK1 = ´LC/TR-S ”
M-szab.kör-időzítő beírás Szabályozó művelet
1
1 FŐMENÜ
ÁLLAPOTKIJELZÉS
F 1 Visszaugrás F 4 Állapotkijelzés be F 2 Mondat választás F 5 Állapotkijelzés ki F 3 Karakterlánc keresés F 6 TARTOMÁNY ÁBRÁZOLÁS
MW-szab.kör-időzitő aktuális ideje
Időzítő még nem futott le
Decimális
Adatátvitel aktív
F 7 Decim./ hex. ábrázolás F 8 + / - ábrázolás F 9 Bináris ábrázolás
4-8 ábra: Állapotkijelzés AWL/ IL-ben
Klöckner-Moeller
4-111
9/96 AWB27-1186-H
4 Üzembehelyezés Állapotkijelzések AWL / IL -ben
Az F 6 funkció billentyűvel menjen a „TARTOMÁNY ÁBRÁZOLÁS” menübe. Működtesse az F1 funkcióbillentyűt és adja meg a kívánt merkertartományt (M). Ezután a következő menüképet kapja meg, amelyen az előbb kiválasztott merker tartomány jelenik meg, amint a 4-9 ábra mutatja. MB0 2 MB12 0
0 0
0 0
0 0
0 0
0 00
0 0
0 0
0
0
184
11
Vezérlő nincs futási (RUN) állapotban! TARTOMÁNY ÁBRÁZOLÁS Decimális F 1 Visszaugrás F 4 Duplatartomány F 2 Tartomány kijelzése F 3 LIFO/ FIFO F 6 VÁLTOZTATHATÓ ABLAK
F 7 Decim./hex. ábrázolás F 8 + / - ábrázolás F 9 Bináris ábrázolás
4-9 ábra : Tartomány megjelenítés Működtesse az F 4 funkcióbillentyűt és adja meg a kívánt merkertartományt (M). Ezután a következő menüképet kapja meg, amelyen az előbb kiválasztott M merkertartomány ábrázolása lesz látható a 4-10 képen Ez az ábrázolás különös segítséget nyújt ahhoz hogy az indirekt címzésű ICP és ICPY funkcióelemek műveletei vizsgálhatók lehessenek. MB0 30 MB12 0 MB24 0
20 0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
0 0
15 0
11 0
MB30 0 MB42 0 MB54 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
0 0
0 0
0 0
0 0
0 0
Tartomány ábrázolás F 1 Visszaugrás F 2 Tartomány kijelzés F 3 LIFO / FIFO
Decimális F 4 Kettős tartomány F 5 Ablak választás F 6 VÁLTOZTATHATÓ ABLAK
Adatátvitel aktív F7 Dec./ hex. ábrázolás F8 +/ - ábrázolás F9 Bináris ábrázolás
4-10 ábra: Kettős tartomány Klöckner-Moeller
4-112
9/96 AWB27-1186-H
4 Üzembehelyezés Állapotkijelzések AWL / IL -ben
Éppenígy vizsgálhatók a TARTOMÁNY ÁBRÁZOLÁS menüből az F3 funkció billentyűvel a FIFO (First-in-First-out) és a LIFO (Last-in-First-out) regiszterek állapottal is amint a 4-11 ábrán látható. 0 1903 2906 803 2 8092 8092 3 113 1100 1111 1222 1222 1222 2232 12 3 113 1105 1000 2000
20 1222 2232 13 3 103 1105 1000 2000 1903 2906 803 2 8092 8092 3 113 1100 1111 1222 1222
40 1000 2000 1903 2906 803 2 8092 8092 3 113
60
80
100
120
LIFOW0-50 CF: 0 CE: 1 R: 0 I: 0 F: 0 E: 1 Q: 0
Megszakítás tetszőleges funkcióbillentyűvel végezhető
Adatátvitel aktív
4-11 ábra: LIFO / FIFO regiszterek tartalmának megjelenítése Dinamikus kényszerbeírások A TARTOMÁNY ÁBRÁZOLÁS menüben ( 4-9 ábra) az F6 VÁLTOZTATHATÓ ABLAK funkcióbillentyűvel a bájt- és szómerkerek AWL/IL- ben történő állapotkijelzései a vezérlő futási (RUN) üzemében dinamikusan kényszer beírhatók. Csak azokon az operandusokon lehet dinamikus kényszerbeírást végrehajtani, amelyeket erre a műveletre a PROGRAMOZÁS / rendszerparaméter menüben szabaddá tett. (lásd az 1 fejezetben) Az utasításlistába az F2 funkcióbillentyűvel új sor iktatható be, amelyeknél az operandus típusa szerinti sorok , az operandus száma, a bemenet típusa és a bemenet értéke egymás után hozzárendelődik ezen új bejegyzéshez. Az operandus típusa (MB vagy MW) és a bemenet típusa a PgUp/PgDn billentyűkkel módosítható. A bemeneti érték ábrázolási formátuma illeszkedik a bemeneti típus kiválasztásához.
Klöckner-Moeller
4-113
9/96 AWB27-1186-H
4 Üzembehelyezés Állapotkijelzések AWL / IL -ben
Operandustípusa MB MB MW
Operandusszáma 0 4 10
Aktuális érték 30 00 0b0f
Bemenet típusa Decimális Hexadecimális Bináris
MB
20
101
+/- Decimális
Bemeneti érték 49 8e# 001000101011 1000 0
VÁLTOZTATHATÓ ABLAK F 1 Visszaugrás F 4 Állapotkijelzés be F 2 Sorok befűzése
Adatátvitel aktív F 8 Aktuális sorok törlése F 5 Operrandus kényszerbeírása F 10 Támogatás
4-12 ábra: Dinamikus kényszerbeírások Az F11 funkcióbillentyűvel az állapotkijelzésben az operandus kommentár helyett az abszolút és szimbolikus operandus ábrázolható Az F12 funkcióbillentyűvel átváltás valósítható meg az állapotkijelzésből a változó ablakra. Vigyázat! A merkerek kényszerbeírása a vezérelt gép/berendezésnél előre nem látható reakciókhoz vezethet. A kényszerbeírás előtt meg kell győződni arról, hogy személyek és tárgyak nincsenek-e veszélyhelyzetben. Az operandus kényszerbeírását végző F6 funkcióelem működtetésekor a kurzorral kiválasztott bemeneti értéket a hozzátartozó operandusba átviszi és ettől kezdve a felhasználói programba feldolgozásra kerül., azaz a kényszerbeírást csak egyszer kell elvégezni. A merker értéke a dinamikus kényszerbeírás befejezése után tehát kizárólag a program logikától függ: a merkerek a menüből történő kilépéskor nem állítódnak vissza a korábbi értékre vagy nullára. Az „ aktuális érték” kijelzése a változók listájában lehetővé teszi a pillanatnyi tényleges adatértékek ellenőrzését. Az aktuális érték ábrázolása a „bemeneti típus” szerint választott formátumban történik; amennyiben az adatok bináris formában adottak hexadecimális formátumban történik az ábrázolásuk. A dinamikus kényszerbeírás segítségével bizonyos adatértékek alapján példaképpen egy kívánt programlefutás kezdeményezhető vagy bizonyos akciók kiválthatók. A VÁLTOZTATHATÓ ABLAK menü szintén alkalmas arra, hogy 18 merkerig listában ezeket tetszőlegesen összeállítsa, azért hogy ezeknek az értékei megfigyelhetők legyenek. Klöckner-Moeller
4-114
9/96 AWB27-1186-H
Üzembehelyezés Közvetlen (on-line) programmódosítás
Általánosságok Ezek a műveletek (4-13 ábra) különösen az üzembehelyezésnél nyújtanak segítséget. Ezek lehetségessé teszik, hogy programmódosítások a program futásban lévő PLCnél végrehajthatók. A következő módosításokat lehet végrehajtani: - új mondatok nyitását - utasítások és kijelölések beszúrását - utasítások és kijelölések törlését - ugrások és ugrás célpontok módosítását - a funkcióelemek bemeneti paramétereinek módosítását Működtesse a „TESZT / ÜZEMBEHELYEZÉS” menüben az F5 funkcióbillentyűt és adja meg az adatok nevét valamint a meghajtó jelölését. Ön az aktuális futó programot fogja látni: 00000 001 002 00001 001 002 003 004 005 006 00002 001 002 00003 001 002 00004 001
INIT
”Készülékkonfigurálás kezdeményezése # include ”pet.k42”
PROG
”Mini program L I 0.0 A I 0.1 = Q 0.1 L KB 20 = MB 1000
I1
” include 1 # include < pbs1.q42 >
I2
”include 2 # include < pbs2.q42 >
VÉGE
”Program vége EP
pet. q42 pbs1.q42 pbs2. q42
FŐMENÜ ON-LINE-MÓDOSÍTÁS $ MAIN L:pet.q42 1:pet.z42 F 1 Visszaugrás F 4 Programfájl mentése F 7 Forrásfájl kiválasztása F 2 PROGRAMBEVITEL F 8 Programelem kiválasztása F 9 ÁLLAPOTKIJELZÉS 4-13 ábra: On-line módosítás Az „ On-line módosítás” menüben (4-13 ábra) válassza ki az F2 funkcióbillentyűvel a programbevitelt és a programot mondatonként módosíthatja.
Klöckner-Moeller
4-115
9/96 AWB27-1186-H
Üzembehelyezés Közvetlen (on-line) programmódosítás Az F6 „Aktivizálás” paranccsal (4-14 ábra) a módosítások lefordítódnak és a PLC-be áttöltődnek. Ha a módosításokat az aktivizálás előtt érvényteleníteni kívánja, akkor ezt az F7 „Helyreállítás” funkcióbillentyűvel teheti meg. Az on-line programmódosításon az üzemi állapotban működő gépek vagy berendezések programutasításainak kívánt módosítását értik. 00000 KONFIG 001 002 003 00001 ADATOK 001 002 003 004 005 006 007 008 009 00002 UGRÁS 001 002 003 004 005
” # include ”mas_201.k42” ” Adatok létrehozása L IAW0 = MW100 L MW1000 SHL 6 = MW10 = QW0.0.4.0
Bemeneti adatszó
”Egyes tesztek kiválasztása L I 0.0 AN I 0.1 AN I 0.2 AN I0.3
S0 = LIFOB teszt S1 = LIFOW teszt S2 = FIFOB teszt S3 = FIFOW teszt
FŐMENÜ ON-LINE MÓDOSÍTÁS $ MAIN Befűzés F1 Visszaugrás F4 Sor kiválasztás F7 Helyreállítás F2 Mondat nyitás F5 Karakterlánc keresés F8 Aktuális sorok törlése F3 Mondat kiválasztás F6 Aktivizálás F9 ÁLLAPOTKIJELZÉS Szabad PC-tároló:207000bájt Szabad PLC tároló: 16432bájt Állapot:RUN 4-14: On-line programmódosítáa
Vigyázat! Az on-line programmódosítások a vezérelt gépek / berendezések előre nem látható reakcióihoz vezethetnek. Az on-line programmódosítás megkezdése előtt meg kell győződnie arról , hogy személyek vagy tárgyak nincsenek -e veszélyhelyzetben Klöckner-Moeller
4-116
9/96 AWB27-1186-H
Üzembehelyezés Közvetlen (on-line) programmódosítás
Kezelés Az on-line módosítási műveletet a Sucosoft- S30 programszoftver TESZT és ÜZEMBEHELYEZÉS rovatokban találja. Ehhez válassza ki a Sucosoft-S30- főmenü F2 funkcióbillentyűjét. Ennek a funkcióbillentyűnek a működtetése után jut el a TESZT / ÜZEMBEHELYEZÉS almenübe. Itt az F5 funkcióbillentyű egy további elágazást engedélyez az AWL / IL- on-line programozásba. Ehhez viszont az szükséges, hogy a PLC a programozó készülékkel össze legyen kapcsolva. On-line programozás megvalósítható a vezérlő RUN és HALT üzemmódjaiban egyaránt. A további eljárásokban szüksége van az utolsó érvényes program- és referencia fájlokra az összes esetlegesen felhasznált include-forrásprogramfájlokkal bezárólag. Írja be a promptra a program fájljainak megfelelő meghajtó jelölést (a:,b:,stb.).
Megjegyzés: Ajánlatos a gyorsabb feldolgozás valamint az esetleg rendelkezésreálló nagy adatmennyiség miatt ezeket a program fájlokat merev lemezen tárolni. A meghajtó megadása után válasszon ki a menüből egyet a következő funkciók közül: F1 F2 F4
VISSZAUGRÁS PROGRAM FÁJL SZERKESZTÉSE PROGRAM FÁJL MENTÉSE
Az on-line menü elhagyása On-line programozási és programmódosítási funkciók A program fájl mentése az aktuális néven
Ha a PLC rendelkezik flash EEPROM memória modullal, megválaszolandó az a kérdés, hogy a program fájlokat a flash EEPROM-ban (Backup) is aktualizálni kell-e. Ha nemmel válaszol, akkor a PLC kikapcsolásakor a programmódosítás elveszik. Visszakapcsolás esetén a korábbi program a flash EEPROM-ból töltődik be. F7 FORRÁS FÁJL A főprogramban található összes program- ill. KIVÁLASZTÁSA include fájl kiválasztása F8 PROGRAMELEAz összes főprogramhoz kapcsolódó programMEK elem kiválasztása KIVÁLASZTÁSA F9 ÁLLAPOTAz AWL / IL állapotkijelzések aktivizálása KIJELZÉS F10 TÁMOGATÁS Kiegészítő, támogató segédszövegek Klöckner-Moeller 4-117 9/96 AWB27-1186-H
Üzembehelyezés Közvetlen (on-line) programmódosítás (HELP)
Klöckner-Moeller
4-118
9/96 AWB27-1186-H
Üzembehelyezés Közvetlen (on-line) programmódosítás
F2 PROGRAM FÁJL SZERKESZTÉS funkcióbillentyű Ez a menü engedélyezi a következő műveletek elvégzését: - a felhasználói program módosítását szekvenciálisan mondatról mondatra - utasítások és helykijelölések módosítását operandusok és a létező szimbolikus nevek - utasítások és helykijelölések törlését - utasítások és helykijelölések beszúrását operandusok és a létező szimbolikus nevek - szöveges magyarázatok beszúrását - ugrások és ugrás célpont módosítását - ugró utasítások törlését - funkcióelemek paraméterezésének a módosítását - új mondatok nyitását új mondatnevek meghatározásával Az on-line módosítás korlátozásai: Az alábbiakat nem lehet megvalósítani: - új szimbolikus nevek átruházását - egyidejűleg több mondatban módosítások végzését - a mondatokban az on-line módosításoknak a programutasításokkal és az # include < ... .q42 > -al történő keverését, - a funkcióelemek újbóli beadását
Figyelem! Nem lehet elvégezni az on-line módosításokat azoknál az alprogramoknál, amelyeket alarm elemek (CALARM, FALARM, TALARM) hívtak meg. Kedvezőtlen esetekben program-meghibásodást okozhat, ha pl. az esemény bekövetkezése, amely az alarm elemet működésbehozza, időlegesen az on-line módosítás aktivizálásával egybeesik. Nem törölhetők: - funkcióelemek - programelemeknél az EM modulvége utasítás - az EP programvége utasítás Nem módosíthatók vagy törölhetők: - létező mondatnevek (címkék) - operandusok megjegyzései (kommentárjai) - processzort megelőző (pre-processor) utasítások Klöckner-Moeller
4-119
9/96 AWB27-1186-H
Üzembehelyezés Közvetlen (on-line) programmódosítás Az F6 funkcióbillentyű az on-line módosítás menüben (4-14 ábra) engedélyezi a módosított program aktivizálását. Ekkor a módosított mondat lefordítódik és a vezérlőbe áttöltődik. Egyidejűleg a < ... .p42 > program fájlok és a < ... .r.42 > valamint a < ... .q42 > forrásfájlok is módosulnak. A program fájl tárolása segédprogram formájában történik .... .000, .... .001 és így tovább, az on-line módosítások számának megfelelően. Az on-line módosítás elhagyásakor ezek a segédprogramok automatikusan az aktuális program fájlokba áttöltődnek és aztán törlődnek.
Vigyázat! Tehát ne kapcsolja ki a PC-t , mielőtt az on-line menüt a „VISSZAUGRÁS”-al nem hagyná el. Egyébként a vezérlőben lévő program többé nem hozható összhangba az adathordozón (disk) lévő program fájlokkal. Mindegyik on-line módosításnál a PLC szabad felhasználói programtároló kapacitása csökken. Ezért a felhasználói programot lehetőleg rövid mondatokra célszerű tagolni. Minden on-line módosításnál a tároló szükséglet valamint a fennmaradó tárolóhely mérete megjelenítésre kerül. Amennyiben terjedelmes on-line módosításokkal a programtároló kapacitása felhasználásra kerülne, az optimalizált program fordítás (compiler) után megállított üzem módu CPU-nál (off-line) áttölthető.
Figyelem! Amennyiben a programfutás előtt beírt kimeneteket on-line formában módosít-ják azért, hogy a futó programhoz kapcsolódva ne tartalmazzon több kijelölést, úgy ezek a kimenetek a következő „HÁLÓZAT KIAPCSOLÁS”-ig a PLC-ben vezérelt állapotban maradnak A vezérlő HALT (megállított) állapotba történő átkapcsolásakor a kimenetek szintén visszaállítódnak (reset) Néhány alkalmazási esetben szükséges lehet, hogy a módosított de még nem aktivizált programrészek eredeti állapotba visszaállíthatók legyenek. Ennek megvalósítása az F7 helyreállítást végző funkcióbillentyű segítségével történhet (4-14 ábra) Ilyen alkalmazási esetek lehetnek például: - az utolsó módosítás(ok) elvetése, - az állapotkijelzésekben történő váltás - az include program fájlok hívása
Klöckner-Moeller
4-120
9/96 AWB27-1186-H
Üzembehelyezés Közvetlen (on-line) programmódosítás
Program fájl választását végző F7 funkcióbillentyű Ha a főprogram include program fájlokat tartalmaz, akkor ebben on-line módosítás is megvalósítható. Az adott include program fájlok hívása az F7 funkcióbillentyű működtetésével lehetséges. (4-13 ábra) Ennek alapján a főprogramból hívott valamennyi include fájl kiíródik. A hívás a kívánt adatfájl neveknek a jobbra fent található listából kurzor billentyűvel történő kiválasztással történik. Figyelem! Ajánlatos # include fájloknak a programba történő befűzését önálló mondatokban megvalósítani. A mondatokban az include- és programutasítások keverése esetén az on-line módosításoknál a programutasítások előre ill. visszahelyezése tiltott.
Példa: 00005
00006
00007 00008
”5 mondat L I 0.0 A M 10.0 = Q 0.0 # INCLUDE LQ 0.0 AI 0.1 = M 10.0 ”6 mondat L I 0.0 A M 10.0 =Q 0.0 ”7 mondat # INCLUDE ”8 mondat LQ 0.0 AI 0.1 = M 10.0
< PROGRAM.Q42>
On-line módosítás nem lehetséges
On-line módosítás lehetséges
On-line módosítás nem lehetséges On-line módosítás lehetséges
Programelemek kiválasztását végző F8 funkcióbillentyű Ha a főprogram programelemeket tartalmaz akkor ez esetben on-line módosítások elvégzése is lehetséges. Az adott programelem hívása az F8 funkcióbillentyű működtetésével lehetséges (4-15 ábra) Ennek alapján az összes főprogramból hívandó programelem kiíródik. Hívás a kívánt fájlnévnek a kijelölésével a jobbra fent látható listában kurzorral Klöckner-Moeller 4-121 9/96 AWB27-1186-H
Üzembehelyezés Közvetlen (on-line) programmódosítás történik.
00000 001 00001 001 002 003 004 005 006 00002 001 002 00003 001 002 00004 001
INIT PROG
”Készülék konfigurálás inicializálása # include ”pet.k42” ”Mini program LI 0.0 AI 0.1 = Q 0.1 L KB 20 = MB1000
I1
”Include 1 # include
I2
”Include 2 # include
VÉGE
”Program vége EP
FŐMENÜ
ON-LINE-MÓDOSÍTÁS
pet.q42 pbs1.q42 pbs2.q42
$MAIN c: pet.q42 c:pet.z42
F1 Visszaugrás F4 Progr. fájl mentés F2 Program fájl szerkesztés
F7 Forrás fájl kiválasztás F8 Programelem kiválasztás F9 Állapotkijelzés
4-15 ábra: Programelemjegyzék (könyvtár) Speciális utalások az on-line módosításokra Minden on-line módosítás előtt checksum (ellenőrző összeg) vizsgálat van a program és a PLC között. Más programok felülírása ezáltal kizárt
Sucosofttal fordítnak, on-line nem módosítható. Ehhez az szükséges, hogy a forr Az interfész módosítás alapján a programok, amelyeket 2.0 -nél kisebb verziószámú ást S30-S4 2.0 verzióval fordítsák és a vezérlőbe áttöltsék.
Klöckner-Moeller
4-122
9/96 AWB27-1186-H
Üzembehelyezés Közvetlen (on-line) programmódosítás
Klöckner-Moeller
4-123
9/96 AWB27-1186-H
Üzembehelyezés Dátum / Idô A 4-16 ábra azt a dátum/idő menüt mutatja, amely az F9 funkcióbillentyű lenyomásával a TESZT / ÜZEMBEHELYEZÉS menüben érhető el. Itt adhatók meg a dátum és idő értékek : - PC-re - a PLC-ben valósidejű órájára - a nyári- és téli időszámítás szerinti óra érték módosítására
Dátum < TT.MM.JJJJ>
Idő
Di..26. 03.1996 Di..26.03 .1996
13:31:00 13:30:58
PC PLC
Dátum / Idő F1 Visszaugrás F2 PC dátum F3 PC idő
F4 PC dátum/ idő F5 PLC dátum F6 PLC idő
PLC
F7 PLC dátum/idő F8 Téli- / nyári idő F10 Támogatás
PC
4-16 ábra : Dátum / idő
Klöckner-Moeller
4-124
9/96 AWB27-1186-H
Üzembehelyezés Távoli (kihelyezett) állomás programozása Suconet K hálózaton
Követelmények Sucosoft S30-S4 szoftver 2.0 verziószámtól PS 4-141/151-MM1 PS 4-201-MM1 04 verziótól PC
PS 4-141-MM1 PS 4-141-MM1 Nyomtató PS 4-151-MM1
4-17 ábra : A Suconet K hálózaton történő programozás A fenti feltételek teljesülésekor minden on-line művelet a kapcsolódó slave elemeken is végrehajtható. Mindenekelőtt a teszt- és üzembehelyezési műveleteket kiválasztva. A kívánt kapcsolódó hálózati állomások címezhetősége 0-31 számtartományban lehetséges. A hálózati állomás címzésének megadásakor a kurzor villog. Az F1 funkcióbillentyűvel a teljes hálózat lerajzolható. Közlendő az állomás száma, a vezérlő típusa, a vezérlőn futó program neve, és a vezérlők állapota és a kapcsolóállásai. A hálózati állomások címzésekor a kívánt állomás címe adandó meg. Innentől kezdve a további összes teszt és üzembehelyzési művelet a kiválasztott készülékre vonatkozik.
A masternek a címe mindig 0. A programozás nélküli slave-k címe mindig 1. A programozott slave-k címei 2-31 között lehetnek a szerint, hogy a készüléket konfiguráláskor melyik címre jelölték.
Klöckner-Moeller
4-125
9/96 AWB27-1186-H
Üzembehelyezés Távoli (kihelyezett) állomás programozása Suconet K hálózaton
A PLC készülékek hálózatra kapcsolása Suconet K hálózaton kétféle módon történhet: 1.Alapfeltöltés RS 232 -n pont-pont kapcsoláson keresztül. A hálózati készülékek alaptöltése pont-pont kapcsolású programozott RS 232 interfészen történik, amelyben mindenkor egy felhasználói program a vezérlőkre áttölt. A program voltaképpen egy programlogikából és egy készülék konfigurációból áll, amely a mindenkori készülék Suconet K címét is tartalmazza. Valamennyi készülék alapfeltöltése után a master készüléktől kezdve az összes kapcsolódó slave készülékhez hozzáfér. A vezérlő címzése menüből történik, amelyet minden teszt és üzembehelyezési művelet előtt közöl. 2. Készülékek egymás utáni összekapcsolása Egy további követelmény, hogy a készülékek egyenként és egymás után a hálózathoz kapcsolódjanak. Amennyiben példaképpen egy master vezérlő és három slave vezérlő kapcsolódik a hálózathoz, akkor először csak a master vezérlő és egy slave vezérlő között jön létre kapcsolat. A program áttöltődik a master vezérlőre. Ezek a követelmények a Suconet K hálózati kommunikációra érvényesek. Felhasználói program nélküli slave-nek a címe Suconet K hálózaton mindig 1. Ezen a címen megszólítható egy slave vezérlő. Csak egy program transzfer valósul meg a PLC az 1-es cím között. A felhasználói programban található az új állomás címe, amelyet a készülék konfigurátorban adnak ki. Ezáltal az első slave vezérlő korrekten rákapcsolódik és az új állomás számmal címezhető. Aztán a második slave vezérlő kapcsolódhat. Ennek a címe szintén 1. A program transzfer erre a PLC-re 1-es címmel történik. A folyamat megismétlődik aztán minden további hálózatra kapcsolódó slave vezérlőre. A fentiekben leírt eljárások akkor is alkalmazhatók, ha a slave hálózati állomás üzemelés során kiesett. Amennyiben két hálózati állomás egyidejűleg kiesik, vagy mindkettőnél alaptöltést kell végrehajtani (1 eljárás) vagy egy hálózati résztvevőt lekapcsolunk. amelynél a Suconet kábelt lehúzzuk; azután a másik hálózati állomás 1-es címen megszólítható. Amennyiben 1-es címmel egy hálózati állomásnak egy program küldése megvalósult (most ennek egy új címe van) egy másik hálózati állomása hálózatra kapcsolható. (a Suconet kábelt ismét rátesszük) Most ennek a hálózati állomásnak a címe 1 és egy program átküldése végrehajtható.
Egy vezérlőre két programozó készülékről történő párhuzamos írásra történő hozzáférés összeütközéshez vezethet, amely a PLC-t NOT Ready állapotába viszi.
Klöckner-Moeller
4-126
9/96 AWB27-1186-H
5. UTASÍTÁSOK ( IL ; AWL )
Tartalom Általánosan érvényes szabályok - Rövidítések - Feltétel bit
5-2 5-3 5-3
= A ADD B.. CM.. CP DI DIV EI EM EP GOR JC, JCN JP L MUL NOP NOT O R RET RETC, RETCN ROTL ROTR S SHL SHLC SHR SHRC SUB XO
5-4 5-6 5-8 5-10 5-12 5-14 5-16 5-17 5-19 5-20 5-21 5-22 5-23 5-24 5-25 5-26 5-28 5-29 5-30 5-31 5-32 5-33 5-34 5-36 5-38 5-40 5-42 5-44 5-46 5-48 5-50
Klöckner-Moeller
5-127
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL ) Általánosan érvényes szabályok Ez a kézikönyv a PS 4-200 sorozatszámú PLC -ék utasításainak tömör leírásait adja, valamint minden utasításnál áttekinti a feltétel bitek változásait. A feltétel bitek abc sorrendben vannak felsorolva. Az utasítások operandusait az alábbi táblázat mutatja. Figyeljen rá, hogy az utasítás adattipúsa ( bit, bájt, szó ) azonos legyen az operandus adattipusával. 5-1. Táblázat: Operandusok áttekintése
Rendeltetés
Bit
Bájt
Szó
Bemenetek 1) Kimenetek Merkerek Konstansok 1) Valós idejű óra 1) Közvetlen periféria elérés Állapot jelzés Kommunikációs adat Információ
I O M K IP 1) , QP IS 1) INB x,y 1)
IB, IAB, ICB QB, QAB MB KB, KHB CKxx IPB 1) , QPB ISB 1) RDB, SDB -
IW, IAW, ICW QW, QAW MW KW, KHW ISW 1) -
1)
Ezek az operandusok az alábbi műveletekkel nem használható: - Kijelölés ( egyenlőség: = ) - Visszatérés ( return: R ) - Beállítás ( set: S )
Ha szükséges a speciális az utasítások speciális tulajdonságait példák magyarázzák. Amikor jóváhagyja ( Enter ) a begépelt szintaktikailag helyes utasítássort, az automatikusan a képernyő formátumot veszi fel. Ez különösen hasznos az utasítássoros ( IL, AWL ) programírás menüpontban a keres / cserél ( FIND/REPLACE ) funkció használatakor.
Klöckner-Moeller
5-128
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL ) Általánosan érvényes szabályok
Megjegyzés' A szintaktikai ellenőrzés nem különbözteti meg az alábbi hexadecimális formátumú operandusokat: KHBB1 KHBC1 KHBE1 A jóváhagyáshoz ( Enter ) az alábbi szünetjellel elválasztott formát kell használni: KHB B1 KHB C1 KHB E1 A fejlécben látható táblázat kitöltött mezői megmutatják, hogy az adott utasítás milyen formátumú ( Bit, Bájt, Szó ) szekvenciákban használható. Bit
Bájt
Szó
Rövidítések Az következő rövidítéseket használja a kézikönyv: RA RAb RAw
Bit munkaregiszter ( egy bites, 1 bit széles ) Bájt munkaregiszter ( bájt szervezésű, 8 bit széles ) Szó munkaregiszter ( szó szervezésű, 16 bit széles )
RHw
Segédregiszter ( szó szervezésű, 16 bit széles )
RS RSb RSw
Bit veremregiszter ( 1 bit széles stack ) Bájt veremregiszter ( 8 bit széles stack ) Szó veremregiszter ( 16 bit széles stack )
Feltétel bit ( munkaregiszter állapotát jelző bit ) C Z P/M V
Klöckner-Moeller
Átvitel bit Zéró bit Plusz / mínusz bit Túlcsordulás bit
5-129
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
=
=
Hozzárendelés ( egyenlőség ) Bit
Bájt
Szó
Leírás A munkaregiszter tartalmát hozzárendeli az utasítás operandusához. Az operandus eredeti tartalmát felülírja. Az utasítás a negáció kiegészítőjellel ( =N ), a munkaregiszter tartalmának negált értékét rendeli hozzá az utasítás operandusához. Amikor a "Hozzárendelés" operandusa periféria kimenet, a megfelelő kimeneti érték csak a ciklikus működés "Rendszer program aktivitás" részében kerül az átmeneti tárolóba. A 1) megjelölt operandusok kivételével az 5-1 táblázatban szereplő összes többi használható a "Hozzárendelés" utasítással együtt. A fentebb már említett utasítás adattípusnak ( Bit, Bájt, Szó ), és az operandus adattípusának meg kell egyeznie. A munkaregiszter, és a segédregiszter tartalma nem változik a "Hozzárendelés" utasítás végrehajtásakor. A feltétel bitek új értéke
Átvitel bit (C)
Nem változik
Zéró bit (Z)
1 0
Nem változik Egyéb esetekben
Plusz / mínusz bit ( P/M )
1 0
Nem változik Egyéb esetekben
Túlcsordulás bit (V)
Klöckner-Moeller
Nem változik
5-130
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
=
=
Hozzárendelés ( egyenlőség ) Bit
Bájt
Szó
Példa
Utasítássor
Állapot
Szöveges magyarázat
L I0.0
1
A 0.0 bemenet tartalma betöltődik a munkaregiszterbe.
A I0.1
0
A 0.0, és a 0.1 bemenetek tartalma ÉS kapcsolatba kerül, az eredményt a munkaregiszter tartalmazza.
= M0.1
0
A 0.1 merker felveszi a munkaregiszter tartalmát.
Klöckner-Moeller
5-131
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
A
A
ÉS Bit
Bájt
Szó
Leírás Az ÉS szekvencia az operandus. és a munkaregiszter tartalma közötti logikai AND művelet. Az eredményt a munkaregiszter tárolja. Az eredmény a munkaregiszter eredeti tartalmát felülírja. Az operandus értéke nem változik meg. Szó formátumú operandusok közötti logikai ÉS művelet, az operandusok azonos helyértékű bitjei közötti ÉS műveletként hajtódik végre. Ha az utasítás mögé nem ír operandust, akkor a veremregiszterben tárolt utolsó értéket veszi figyelembe. Az ÉS szekvencia a veremregiszterben tárolt utolsó értéket ugyanolyan módon kezeli, mint az operandusokat. Ha ilyen esetben az ÉS művelet után egy negáció jel van, ez a munkaregiszter tartalmát befolyásolja, azaz a veremregiszterben tárolt utolsó értéket, és a munkaregiszter negált értéke között létesít ÉS kapcsolatot. Az 5-1 táblázatban szereplő összes operandus használható az "ÉS" utasítással együtt. Gondoskodjon róla, hogy az operandusok adattípusa egyezzen meg a fent említett adattípusokkal ( bit, bájt, szó ). A segédregiszter tartalma nem változik az "ÉS" utasítás végrehajtásakor. A feltétel bitek új értéke
Átvitel bit (C) Zéró bit (Z) Plusz / mínusz bit ( P/M ) Túlcsordulás bit (V) 1)
Nem változik 1
Felveszi ezt az értéket, ha a munkaregiszter tartalma nulla.
0
Egyéb esetekben
1
Felveszi ezt az értéket, ha az eredmény negatív 1).
0
Egyéb esetekben Nem változik
Ha a legmagasabb helyértékű bit értéke 1, a P/M feltétel bit 1.
Klöckner-Moeller
5-132
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
A
A
ÉS Bit
Bájt
Szó
Példa
Utasítássor L IB 0.0.0.0
Állapot 10001010
A MB 0
01001011
= QB 0.0.0.0
00001010
Klöckner-Moeller
Szöveges magyarázat A 0.0.0.0 bemeneti bájt tartalmát betölti a munkaregiszterbe ( RAb ). A "0" merker bájt bitjei, és a munkaregiszter bitjei között ÉS kapcsolat jön létre. Az eredmény a munkaregiszterben van. A 0.0.0.0 kimeneti bájt tartalma azonos lesz a munkaregiszter tartalmával.
5-133
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
ADD
ADD
Összeadás Bájt
Szó
Leírás Az operandus és a munkaregiszter tartalmát összeadja. Az eredmény a munkaregiszterben van, aminek az eredeti tartalma felülíródik. Az operandus tartalma nem változik. Az összeadás a munkaregiszter tartalma, és a veremregiszter utolsó értéke között ugyanígy történik. Megjegyzés'! Az összeadásban az értékek előjeles egész számként vannak értelmezve.
Az 5-1 táblázatban szereplő összes operandus használható az "Összeadás" utasítással együtt. A fent említett utasítás adattípusnak ( Bit, Bájt, Szó ), és az operandus adattípusának meg kell egyeznie. A segédregiszter tartalma nem változik az "Összeadás" utasítás végrehajtásakor. A feltétel bitek új értéke Átvitel bit (C)
1
Ha az összeadásnak van maradéka ( bájt operandusok esetén az eredmény nagyobb 8 bitnél, illetve szó operandusoknál 16 bitnél ).
0 1
Egyéb esetekben. Felveszi ezt az értéket, ha a munkaregiszter tartalma nulla.
0
Egyéb esetekben
Plusz / mínusz bit ( P/M )
1
Felveszi ezt az értéket, ha az eredmény negatív 1).
0
Egyéb esetekben
Túlcsordulás bit (V)
1
Felveszi ezt az értéket, ha aritmetikai túlcsordulás történik.
Zéró bit (Z)
2)
0 Egyéb esetekben 1) 2)
Ha a legmagasabb helyértékű bit értéke 1, a P/M feltétel bit 1. Ha az eredmény túllépi az előjeles számábrázolás határát: bájt műveleteknél: -128, +127 ; szó műveleteknél: -32768, +32767.
Klöckner-Moeller
5-134
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
ADD
ADD
Összeadás Bájt
Szó
Példa
Címke
Utasítássor L MB 2
Állapot Szöveges magyarázat 00110110 A munkaregiszterbe ( RAb ) tölti a "2" merker bájt tartalmát.
ADD MB 3
00011010 Hozzáadja a "3" merker bájt tartalmát a munkaregiszterhez. Az eredmény a munkaregiszterben lesz.
BV HIBA = MB 4 JP FOLYTAT
Ha a túlcsordulás bit 1, akkor a HIBA címkénél folytatódik a program. 01010000 A "4" merker bájt felveszi a munkaregiszter tartalmát. A megengedett határértéket nem lépte túl a számított érték. Az összeadás eredménye érvényes.
HIBA
Az összeadás eredménye nem érvényes. Az eredmény túllépte az szám értelmezési tartományát. A hiba lekezelésére szolgáló programot kell ideírni.
FOLYTAT
A program további része itt folytatódik.
Klöckner-Moeller
5-135
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
B..
B..
Feltételes elágazás Bájt
Szó
Leírás Feltételes elágazások
Magyarázat: az elágazás feltétele a
BB BC BZ BP BV BE BLT BGT BLE BGE
A munkaregiszter egyik bitjének értéke Az átvitel bit értéke A zéró bit értéke Az előjel bit értéke A túlcsordulás bit értéke Egyenlőség Különbözőség Kisebb, mint Nagyobb, mint Kisebb egyenlő, mint Nagyobb egyenlő, mint
BNB BNC BNZ BM BNV BNE
Az állapotregiszter tartalma, és az elágazási feltétel kerül összehasonlításra. Ha azonosak, akkor a program végrehajtása az elágazási parancsban kijelölt címkétől folytatódik. Ha a feltétel nem teljesül, nem történik elágazás. Elágazás célpontja csak Mondat ( szekvenciák összetartozó sorozata ) kezdete lehet. A Mondat egy, vagy több szekvenciát tartalmaz, így értelemszerűen ez a célpont egyben szekvencia kezdet is. Feltételes elágazás csak bájt, és szó szekvenciákban megengedett, és ezek a szekvenciák egy konkrét számérték betöltése, vagy aritmetikai utasításokat követ a feltételes elágazás. A munka-, segéd-, és állapotregiszterek tartalmát az elágazás utasítások nem befolyásolják.
Klöckner-Moeller
5-136
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
B..
B..
Feltételes elágazás Bájt
Szó
Példa: Elágazás egyenlőség esetén BE Címke
Utasítássor L KB 25
Állapot 00011101
CP IB 0.0.0.0
00101011
Szöveges magyarázat A munkaregiszterbe ( RAb ) tölti a konstans ( 25 ) értékét. Összehasonlítja a 0.0.0.0 bemeneti bájttal, és az eredménytől függően változik az állapotregiszter.
BE EQUAL
Ha egyenlő, akkor az "EQUAL" címkénél folytatódik a program.
JP FOLYTAT
Ha nem egyenlő, akkor az "EQUAL" címkéhez tartozó programrészt átugorva innen folytatódik a program végrehajtása.
EQUAL
Ez a programrész csak akkor fut le, ha az összehasonlítás eredménye egyenlő.
FOLYTAT
A program további része itt folytatódik.
Példa: Elágazás a munkaregiszter valamely konkrét bitjének értéke alapján. BB x Címke Utasítássor L MB 110 BNB 7 VPOS
JP END
VPOS
END
Állapot 10100011 x=1
Szöveges magyarázat A munkaregiszterbe ( RAb ) tölti a "110" merker bájt tartalmát. Megvizsgálja a munkaregiszter 7 -es bitjét, ha a bit értéke alacsony, akkor a VPOS címkétől folytatódik a program. Ha a munkaregiszter 8 -ik bitje ( ez a 7 -es ) magas, akkor a VPOS címkével jelölt programrészt átugorva, az END címkétől folytatja a programot. Ez a programrész csak, akkor hajtódik végre, ha a merker bit 110.7 = 0 feltétel teljesül, ami azonos a MB 110 tartalma pozitív feltétellel is.
EP
Klöckner-Moeller
A program vége. 5-137
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
CM..
CM..
Program modul behívás Bit
Bájt
Szó
Ezek az utasítások teszik lehetővé a strukturált programozást, vagyis a felhasználó alprogramokat írhat, amit képes a főprogramba behívni, és lefutatni. A modul behívás szintakszisa
A behívás feltétele
Adattípus
Feltétel nélküli behívás 1) CM
$ ( név )
bit, bájt, szó
$ ( név ) RA munkaregiszter $ ( név ) RAb, RAw x-ik bitje
bit bájt, szó
$ ( név ) $ ( név ) $ ( név ) $ ( név )
Átvitel bit Zéró bit Túlcsordulás bit Előjel bit ( plusz / mínusz )
bájt, szó bájt, szó bájt, szó bájt, szó
$ ( név ) $ ( név ) $ ( név ) $ ( név ) $ ( név )
Egyenlőség Nagyobb, mint Kisebb, mint Nagyobb egyenlő Kisebb egyenlő
bájt, szó bájt, szó bájt, szó bájt, szó bájt, szó
Feltételes behívás ( munkaregiszter ) CMC ; CMCN CMB x ; CMNB x Feltételes behívás ( állapotregiszter ) CMCY CMZ CMV CMP
; CMNC ; CMNZ ; CMNV ; CMM
Feltételes behívás ( összehasonlítás után ) CME ; CMNE CMGT CMLT CMGE CMLE
1)
A CM $ utasítás önálló, egy utasítássorból álló szekvencia. A feltételes modul behívó utasításokat, csak szekvencia lezáró utasításként lehet elfogadtatni.
Klöckner-Moeller
5-138
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
CM..
CM..
Program modul behívás Bit
Bájt
Szó
Leírás A program modulok ( alprogramok ) behívhatók feltétel nélküli program modul behívó, és feltételes program modul behívó utasítással. A feltétel lehet a munkaregiszter tartalma, az állapotregiszter tartalma, vagy valamely összehasonlítás ( <, =, >, ≤, ≥ ) eredménye. A behívási feltételek negált értéke, amint azt az előző oldalon levő táblázat mutatja, szintén alkalmas program modul behívásra. A program modul nevét mindig a modul behívó utasítás mögött kell megadni, és a névnek mindig a $ karakterrel kell kezdődnie, mert ez jelzi, hogy ez a programrész program modul ( alprogram ). Ha a feltétel nem teljesül a program végrehajtás a program modul behívó utasítást követő utasítássorral folytatódik. A program modul feldolgozása után a munka-, segéd-, és az állapotregiszterekhez ugyanaz a adat tartalom van hozzárendelve, mint ami a program modul behívás előtt volt. A modul végrehajtása közben ezen regiszterek tartalma korlátozás nélkül változtatható.
Klöckner-Moeller
5-139
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
CP
CP
Összehasonlítás Bájt
Szó
Leírás Összehasonlítás a munkaregiszteren keresztül: Az utasítással kijelölt operandus a munkaregiszter tartalmával kerül összehasonlításra. Az összehasonlítás eredménye a megfelelő állapot bitek változását okozza. Az összehasonlítás kiértékelése az állapot bitek alapján történik a "Feltételes elágazás" utasítások segítségével. Az összehasonlítás a gépen belül kivonás műveletként hajtódik végre: a munkaregiszter tartalmából kivonja az operandus tartalmát. A műveletben résztvevők eredeti tartalma nem változik. Összehasonlítás a veremregiszter utolsó tartalmával: A veremregiszter utolsó tartalmából kivonásra kerül a munkaregiszter tartalma.
Megjegyzés'! Az összehasonlításban az értékek előjeles egész számként vannak értelmezve.
Az 5-1 táblázatban szereplő összes operandus használható az "Összehasonlítás" utasítással együtt. Gondoskodjon róla, hogy az operandusok adattípusa egyezzen meg a fent említett adattípusokkal ( bit, bájt, szó ). A segédregiszter tartalma nem változik az "Összeadás" utasítás végrehajtásakor. A feltétel bitek új értéke Az "összehasonlítás" utasítás végrehajtásakor az állapot bitek azonnal megváltoznak. A kiértékelésben azonban közvetlenül nem használhatók. Csak az alábbi "feltételes elágazás" utasításokat lehet az "összehasonlítás" utasítással együtt használni. BE BLT BGT BLE BGE
Klöckner-Moeller
egyenlő kisebb, mint nagyobb, mint kisebb egyenlő nagyobb egyenlő
5-140
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
CP
CP
Összehasonlítás Bájt
Szó
Címke Utasítássor
Állapot
Példa
L MB 2 CP MB 3
LESS
TOVA
Klöckner-Moeller
Szöveges magyarázat
10100011 A munkaregiszterbe ( RAb ) tölti a "2" merker bájt tartalmát. 01101110 Összehasonlítja a "3" merker bájt tartalmát a munkaregiszter tartalmával.
BLT LESS
Ha MB 2 tartalma < MB 3 tartalma, akkor a LESS címkénél folytatódik a program.
.. .. .. JP TOVA
Ez a programrész akkor hajtódik végre, ha MB 2 tartalma ≥ MB 3 tartalmánál. Átugorja a LESS címkéhez tartozó programrészt. Ez a programrész akkor hajtódik végre, ha MB 2 tartalma < MB 3 tartalmánál. A program további része itt folytatódik.
5-141
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
DI
DI
Megszakítás lezárása Bit
Bájt
Szó
Behívás DI < Megszakítástkérő funkcióelem > Leírás Lezár egy megszakításkérést, és így az nem képes megszakítani a főprogram író, és olvasó műveleteit. A megszakítástkérő funkcióelemek az CALARM, FALARM, és a TALARM, a megszakítástkérő forrás ezekhez van rendelve. A DI behívása lezárja a megszakítástkérő forrást, ha azt funkcióelem már elindította. A megszakítás eljárása ( a megszakításhoz rendelt alprogram ), és a főprogram hozzáférése a közös adatokhoz ezáltal összeszinkronizált lesz. A szavak, és a bitek írásához való hozzáférést is magába foglalja. Mindig program szekvencia kezdete előtt kell behívni. Példák: 1.
2.
Főprogram
Alprogram
DI 'Alarm' L KHW 5555 = MW 10 EI 'Alarm'
L KHW 2222 = MW 10
Főprogram
Alprogram
DI 'Alarm' LK1 = M 0.0 EI 'Alarm'
LK1 = M 0.1
Klöckner-Moeller
5-142
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
DIV
DIV
Osztás Bájt
Szó
Leírás Osztás a munkaregiszteren keresztül: A munkaregiszter tartalmát ( osztandó ), az utasítás által kijelölt operandussal ( osztó ) elosztja, és az eredményt a munkaregiszter tartalmazza. A maradékot a segédregiszter tárolja. A munkaregiszter eredeti tartalma felülíródik. Az operandus értéke nem változik. Osztás a veremregiszteren keresztül az alábbi: A veremregiszter utolsóként eltárolt tartalmát ( osztandó ) elosztja a munkaregiszter tartalmával ( osztó ). Az eredményt a munkaregiszter, a maradékot a segédregiszter tárolja. Megjegyzés! Az osztás műveletben szereplő értékeket természetes számként ( előjel nélküli egész ) értelmezi a rendszer program. Az osztó, és az osztandó értékétől függően az osztás műveletének eredménye az alábbi két típus egyike: 1. A hányados értéke 0 és 65535 közötti, azaz a számábrázolási tartományon belüli érvényes érték. Az osztás eredménye érvényes, a hányados, és a maradék a értéke megfelelő regiszterekben van. A zéró bit a hányados értékétől függően változik. A túlcsordulás bit törlődik. 2. Ha az osztó értéke = 0, az osztás eredménye, és így a munkaregiszter, és a segédregiszter tartalma érvénytelen. Ezt a helyzetet a túlcsordulás bit beállításával jelzi a készülék. Az 5-1 táblázatban szereplő valamennyi operandus használható az "osztás" utasításban. Gondoskodjon róla, hogy az operandusok adattípusa egyezzen meg a fent említett adattípusokkal ( bit, bájt, szó ). Osztandó Maradék ; = Hányados Osztó A feltétel bitek új értéke Átvitel bit (C) Zéró bit (Z) Plusz / mínusz bit ( P/M ) Túlcsordulás bit (V) Klöckner-Moeller
Nem változik 1
Felveszi ezt az értéket, ha a munkaregiszter tartalma nulla.
0 1
Egyéb esetekben Felveszi ezt az értéket, ha az eredmény negatív.
0
Egyéb esetekben Nem változik 5-143
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
DIV
DIV
Osztás Bájt
Szó
Példa: MW0 tartalmának elosztása MW2 tartalmával. Az eredmény egész része az MW6, a tizedes pont utáni része az MW8 regiszterekbe kerül. MW0
=
MW6
KW10
=
RAw
MW2
=
MW8
:
MW2
Maradék
→
MW4
MW4
*
RAw
:
Címke
Utasítássor
Szöveges magyarázat
L MW 0 DIV MW2 = MW6 GOR
Az MW0 tartalmának betöltése a munkaregiszterbe Osztás az MW2 tartalmával A hányados betöltése az MW6 merker szóba. A segédregiszter tartalma a munkaregiszterbe töltődik. Ha az osztó nulla, az osztás eredménye érvénytelen, amit a túlcsordulás bit jelez. A maradék az MW4 merker szóba töltődik. Az első tizedes jegy kiszámítása: MW4 betöltése, szorzása 10-el, osztása MW2 merker szóval.
BV DIVZERO = MW4 L MW4 MUL KW 10 DIV MW2 = MW8 JP END DIVZERO L KW0 = MW6 = MW8 END EP
Klöckner-Moeller
Az első tízedesjegy tárolása az MW8 merker szóban. A "DIVZERO" címkéhez tartozó programrész átugrása. Az eredmények érvénytelenek, ezért törölni kell . A program vége.
5-144
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
EI
EI
Megszakítás engedélyezése Bit
Bájt
Szó
Behívás EI < Megszakítástkérő funkcióelem > Leírás Egy a DI utasítással lezárt megszakításkérést újra engedélyez az EI utasítás. A megszakítástkérő funkcióelemek az CALARM, FALARM, és a TALARM, a megszakítástkérő forrás ezekhez van rendelve. Példák: 1.
2.
Főprogram
Alprogram
DI 'Alarm' L KHW 5555 = MW 10 EI 'Alarm'
L KHW 2222 = MW 10
Főprogram
Alprogram
DI 'Alarm' LK1 = M 0.0 EI 'Alarm'
LK1 = M 0.1
Klöckner-Moeller
5-145
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
EM
EM
Modul vége Bit
Bájt
Szó
Leírás A "modul vége" utasítás lezár egy program modult. Valamennyi program modul végén el kell helyezni ezt a utasítást. Példa: $BP1 L I 0.0 A I 0.1 O I 0.2 = Q 0.3 EM
Klöckner-Moeller
5-146
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
EP
EP
Program vége Bit
Bájt
Szó
Leírás A "program vége" utasítás a logikai és egyben a fizikai vége egy programnak. A főprogram végén, utolsó utasítássorként el kell helyezni ezt a utasítást. A ciklikus működés során ez fejezi be a felhasználói program feldolgozás részt, és kapcsol az operációs rendszer működésére. A regiszterek tartalma, és adatok nem változnak. Példa: 00001 001 002 003 004 005
Klöckner-Moeller
L I 0.0 A I 0.1 O I 0.2 = Q 0.3 EP
5-147
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
GOR
GOR
Töltsd be a segédregisztert Bájt
Szó
Leírás A segédregiszter tartalma a munkaregiszterbe áttöltődik. Ezt a műveletet csak osztás, és szorzás után lehet végrehajtani, ezért csak bájt, illetve szó szekvenciákban értelmezett. A segédregiszter tartalma nem változik. Az állapotregisztert nem befolyásolja. Példa: Az MW0 tartalma osztva MW2 tartalmával, és a hányadost kerekítve. Ha az első tízedesjegy nagyobb mint 5, akkor felfelé kerekít. Az eredményt a MW6 merker szóba tárolva. Címke
Utasítássor
Szöveges magyarázat
L MW 0 DIV MW 2 = MW 6 GOR = MW 8 L MW 8 MUL KW 10 DIV MW 2 CP KW 5
MW0 betöltése a munkaregiszterbe. Osztás MW2 tartalmával. A hányados elhelyezése az MW 6 merker szóba. A segédregiszter tartalmát a munkaregiszterbe tölti. A maradékot az MW 8 merker szóba helyezi. A maradékot megszorozza tízzel, majd osztja az MW 2 tartalmával. A munkaregiszterben az első tízedesjegy van, amit összehasonlít konstans 5-el. Ha kisebb mint 5, akkor átugorja a kerekítő programot. A hányados értékét eggyel növeli, azaz felfelé kerekít, és ez a új hányados. A program vége.
BLT EP KEREKIT EP
Klöckner-Moeller
L MW 6 ADD KW 1 = MW 6 EP
5-148
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
JC ; JCN
JC ; JCN
Feltételes ugrás Bit Leírás A hozzátartozó szekvencia eredményét összehasonlítja a konstans 1, illetve 0 értékekkel. Ha megegyezik, a program ezen utasítássorban kijelölt címkétől folytatódik. Ha a feltétel nem teljesül, nincs ugrás, a program a következő programsorral folytatódik. Az ugrás kizárólag Mondat ( szekvenciák összetartozó sorozata ) elejére irányulhat. ( Az ugrás célpontja = A Mondat címkéje ) A feltételes ugrás utasítás csak bit szekvenciákban használható. A munkaregiszter, és a segédregiszter tartalmát nem befolyásolja a "feltételes ugrás" utasítás. Példa: Pulzus generátor Címke
Utasítássor LK0 = Q 1.0 TP0 [ ] S: LN Q 1.0 [ ] R: [w] I: KW 5000 [ ] P: [w] Q: L TP0 P JCN FOLYTAT LK1 = Q 1.0
Szöveges magyarázat Az 1.0 kimenet törlése. Pulzus generátor 5 másodperces periódus idő A generátor kimenet lekérdezése. Ha nem telt le az 5 sec., akkor ugrik a FOLYTAT címkére. Ez a programrész leállítja a pulzus generátort, ami csak egy impulzust adott.
FOLYTAT
Klöckner-Moeller
5-149
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
JP
JP
Feltétel nélküli ugrás Bit
Bájt
Szó
Leírás A program végrehajtás attól az utasítássortól folytatódik, ahova az ugrás célpontja ( Mondat címkéje ) mutat. A célpont csak Mondat ( szekvenciák összetartozó sorozata ) kezdete lehet. Ez a parancs önmagában egy szekvencia, amely így egyetlen utasítássorból áll. Feltétel nélküli ugrás utasítást csak az öt megelőző szekvencia lezárása után szabad alkalmazni. Ez a ugró utasítás nem változtatja a segéd-, és a munkaregiszterek tartalmát. Példa: Címke
Utasítássor L MB 0 CP MB 1 BGT CIM1 BLT CIM2 JP FOLYTAT
CIM1
.. .. .. JP FOLYTAT
CIM2
.. .. ..
FOLYTAT
.. ..
Klöckner-Moeller
Szöveges magyarázat Összehasonlítva a merkerek értékét a program elugrik CM1-re, ha "MB 0" tartalma a nagyobb, vagy CM2-re, ha "MB 0" tartalma a kisebb, vagy ha egyenlő a FOLYTAT címkére. A nagyobb, mint esethez tartozó program. Át kell ugrani a kisebb, mint esethez tartozó programot. A kisebb, mint esethez tartozó program.
További programrészek.
5-150
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
L
L
Betöltés Bit
Bájt
Szó
Leírás Az utasítás operandusának tartalma betöltődik a munkaregiszterbe. A munkaregiszter eredeti tartalma felülíródik. Ha a "Betöltés" utasítás egy szekvencia belsejében van, azaz a munkaregiszter tartalma nem lett áttöltve valamely operandusba, akkor a munkaregiszter eredeti tartalma a veremregiszterbe kerül, majd ezután íródik felül a "Betöltés" utasítás mögött álló operandus tartalmával. Az utasítás által kijelölt operandus nem változtatja meg az értékét. Az 5-1 táblázatban szereplő összes operandus használható a "Betöltés" utasítással együtt. Gondoskodjon róla, hogy az operandusok adattípusa egyezzen meg a fent említett adattípusokkal ( bit, bájt, szó ). A segédregiszter tartalma nem változik a "Betöltés" utasítás hatására, Az állapotregiszter tartalma nincs értelmezve. Példa Utasítássor L I 0.0 O I 0.1 L I 0.2
Állapot 1 0 1
A
= Q 0.0
Klöckner-Moeller
1
Szöveges magyarázat Az I 0.0, és az I 0.1 VAGY kapcsolatának eredménye a munkaregiszterben van. A munkaregiszter tartalmát, ami a fenti utasítások eredménye, a veremregiszter tetejére csúsztatja, majd az I 0.2 tartalma betöltődik a munkaregiszterbe. A veremregiszter tetején ( utolsóként ) elhelyezett érték, és a munkaregiszter tartalma között "ÉS" kapcsolatot létesít. Az eredmény a munkaregiszterben van. A veremregiszter tetején levő értéket kiveszi. A munkaregiszter tartalmát kiteszi a Q 0.0 kimenetre.
5-151
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
MUL
MUL
Szorzás Bájt
Szó
Leírás Szorzás a munkaregiszteren keresztül. Az utasításhoz tartozó operandus tartalmát szorozza össze a munkaregiszter tartalmával. A szorzás eredménye a munkaregiszterbe kerül, aminek az eredeti tartalma felülíródik. Az utasításhoz tartozó operandus tartalma nem változik. Szorzás a veremregiszteren keresztül. Az utasításhoz tartozó operandus tartalmát szorozza össze a veremregiszterbe utolsóként eltárolt értékkel. a fentiekkel azonos módon. Megjegyzés! A szorzás műveletben szereplő értékeket természetes számként ( előjel nélküli egész ) értelmezi a rendszer program.
Két 16 bites szám szorzata 32 bites szám. Az eredmény alsó 16 bites szava a munkaregiszterbe, a felső 16 bites szava a segédregiszterbe kerül. Ez a túlcsordulás, amint az ismert, feldolgozható a GOR utasítás segítségével. Az 5-1 táblázatban szereplő összes operandus használható a "Szorzás" utasítással együtt. Gondoskodjon róla, hogy az operandusok adattípusa egyezzen meg a fent említett adattípusokkal ( bit, bájt, szó ). A feltétel bitek új értéke Nem definiáltak, ilyenformán csak az utasítás végrehajtása után kell lekérdezni azokat.
Klöckner-Moeller
5-152
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
MUL
MUL
Szorzás Bájt
Szó
Példa Címke
Utasítássor
Állapot
Szöveges magyarázat
L MB 200
00010101
MUL MB 201
00000101
= QB 0.0.0.0
01101001
Az MB 200 merker bájt tartalmát a munkaregiszterbe ( RAb ) tölti. A munkaregiszter, és az MB 201 merker bájt tartalmát összeszorozza. Az eredmény a munkaregiszterben. A QB 0.0.0.0 bájtra kihelyezi az eredményt. A segédregiszter tartalma a munkaregiszterbe töltődik. Az eredmény felső szekciója a QB 0.0.1.0 kimeneti bájthoz lett hozzárendelve.
GOR = QB 0.0.1.0
00000000
FOLYTAT
Klöckner-Moeller
5-153
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
NOP
NOP
Nincs művelet Bit
Bájt
Szó
Leírás A NOP utasítás nem befolyásolja az adatokat, és a regiszterek tartalmát. A program bármely pontján, tetszőleges adattípusú szekvenciában beírható. Példa Utasítássor Állapot
Szöveges magyarázat
L I 0.0 A I 0.1 NOP NOP = Q 0.3
Az I 0.0 bemenet betöltése "ÉS" kapcsolat a két bemenet között A két NOP utasítássorral helyet hagyunk, a később beírandó a végeredményt kialakító további feltételeknek. Az eredményt a Q 0.3 kimenetre teszi ki.
Klöckner-Moeller
1 1 1
5-154
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
NOT
NOT
Negáció Bit
Bájt
Szó
Leírás A munkaregiszter tartalma az ellentétjére vált, azaz az úgynevezett "egyes komplemens" formára. A munkaregiszter új tartalmának bitjeinek értéke a negáltja az eredeti tartalom bit értékeinek. Az utasítás bit, bájt, és szó szekvenciákban is végrehajtható. A segédregiszter tartalma nem változik a NOT utasítás hatására. A feltétel bitek új értéke Átvitel bit (C)
Nem változik
Zéró bit (Z)
1
Felveszi ezt az értéket, ha a munkaregiszter tartalma nulla.
0 Plusz / mínusz bit ( P/M ) Túlcsordulás bit (V) 1)
1
Egyéb esetekben Felveszi ezt az értéket, ha az eredmény negatív. 1)
0
Egyéb esetekben Nem változik
Ha a legmagasabb helyértékű bit értéke 1, a P/M feltétel bit 1.
Példa Utasítássor L I 0.0 A I 0.1 A I 0.2 O I 0.3 NOT = Q 0.5
Klöckner-Moeller
Állapot Állapot Szöveges magyarázat operandus munkaregiszter 0 0 1 0 1 0 A műveletek eredménye van a munkare0 0 giszterben. 1 A munkaregiszter tartalma az ellentétére vélt. 1 1 A kimenet a munkaregiszterrel azonos értéket vesz fel.
5-155
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
O
O
VAGY Bit
Bájt
Szó
Leírás Az "OR" utasítás mögötti operandus, és a munkaregiszter tartalma között létesül "VAGY" kapcsolat. Az eredményt a munkaregiszter tartalmazza. A munkaregiszter eredeti tartalma felülíródik. Az operandus értéke nem változik. A "VAGY" utasítás bájt, és szó szekvenciákban az operandus, és a munkaregiszter azonos helyértékű bitjei között létesít "VAGY" kapcsolatot. Ugyanilyen módon hajtja végre a műveletet, ha az operandus a veremregiszter utolsóként eltárolt értéke. Ha szekvencia egy negáció ( NOT ) utasítássort tartalmaz, a munkaregiszter tartalma a veremregiszter tetejére kerül, és az eredeti tartalom negáltja a munkaregiszterbe. Az 5-1 táblázatban szereplő összes operandus használható a "VAGY" utasítással együtt. Gondoskodjon róla, hogy az operandusok adattípusa egyezzen meg a fent említett adattípusokkal ( bit, bájt, szó ). A segédregiszter tartalma nem változik az "VAGY" utasítás végrehajtásakor. A feltétel bitek új értéke Átvitel bit (C) Zéró bit (Z)
Nem változik 1 0
Felveszi ezt az értéket, ha a munkaregiszter tartalma nulla. Egyéb esetekben
Plusz / mínusz bit ( P/M )
1 0
Felveszi ezt az értéket, ha az eredmény negatív 1). Egyéb esetekben
Túlcsordulás bit (V) 1)
Nem változik
Ha a legmagasabb helyértékű bit értéke 1, a P/M feltétel bit 1.
Példa Utasítássor L I 0.0 O M 3.1 O M 3.2 O M 3.3 = Q 0.5
Klöckner-Moeller
Állapot Állapot Szöveges magyarázat operandus munkaregiszter 1 1 Az M 3.0 -tól az M 3.3 -ig a merkerek tar0 1 talma "VAGY" kapcsolatba kerülnek. 1 1 A műveletek eredménye van a munkare0 1 giszterben. 1 1 A kimenet a munkaregiszterrel azonos értéket vesz fel. 5-156
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
R
R
Törlés Bit Leírás Az utasítással kijelölt operandus törlődik, azaz a tartama "0" lesz. Ha a munkaregiszter tartalma "1" volt, akkor törlődik, ha "0" volt, akkor nem változik. Ez a utasítás csak bit szekvenciákban érvényes. Az 5-1 táblázatban szereplő összes operandus használható a "VAGY" utasítással együtt. Gondoskodjon róla, hogy az operandusok adattípusa egyezzen meg a fent említett adattípusokkal ( bit, bájt, szó ). A segédregiszter tartalma nem változik az "VAGY" utasítás végrehajtásakor. A feltétel bitek új értéke Átvitel bit (C) Zéró bit (Z)
Nem változik
Plusz / mínusz bit ( P/M ) Túlcsordulás bit (V)
1
Felveszi ezt az értéket, ha a munkaregiszter tartalma nulla.
0
Egyéb esetekben
0
Nem változik Nem változik
Példa Utasítássor L I 0.0 O Q 0.4 AN I 0.1 S Q 0.4 L I 0.1 R Q 0.4
Klöckner-Moeller
Állapot Állapot Szöveges magyarázat operandus munkaregiszter 1 1 Ha a 0.0 bemenet értéke magas, 0 1 a 0.4 kimenet értéke tetszőleges, és 0 1 a 0.1 bemeneté alacsony, akkor 1 a 0.4 kimenetbe magas érték kerül. ( ön-tartó funkció ) 1 0
1 1
Ha a 0.1 bemenet magas, akkor a 0.4 kimenet tartalma törlődik. ( az ön-tartó funkció megszűnik, ha az egyéb feltételek sem teljesülnek )
5-157
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
RET
RET
Visszatérés Bit
Bájt
Szó
Leírás Az utasítás hatására az aktuális program szintjéről az eggyel magasabb program szintre tér vissza a program, vagyis alprogramból a főprogramba, vagy a főprogramból az operációs rendszerbe. A RET parancs önmagában egy szekvencia. ( egy utasítássoros szekvencia ) A RET utasítást csak az öt megelőző szekvencia után szabad beprogramozni. Példa Utasítássor
Kommentár .. .. ..
L I 0.3 = M 3.5 RET
alprogram utasítások szekvencia lezárás visszatérés a főprogramba
.. ..
Klöckner-Moeller
5-158
9/96 AWB 27-1186-H
RETC, RETCN
UTASÍTÁSOK ( IL ; AWL )
RETC, RETCN
Feltételes visszatérés Bit Leírás Az aktuális szekvencia eredménye van összehasonlítva 1 ( RETC ), vagy 0 ( RETCN ) értékekkel, ha egyeznek az utasítás hatására az aktuális program szintjéről az eggyel magasabb program szintre tér vissza a program, vagyis alprogramból a főprogramba, vagy a főprogramból az operációs rendszerbe. Példa Utasítássor
Kommentár
L I 0.0 A M 3.4 RETCN
"ÉS" szekvencia a 0.0 bemenet, és a 3.4 merker tartalma között. Ha az "ÉS" szekvencia eredménye 0, visszatérés az eggyel magasabb szintre
.. ..
Klöckner-Moeller
5-159
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
ROTL
ROTL
Balra forgatás Bájt
Szó
Leírás A munkaregiszter bitjeinek tartalma balra tolódik, azaz a tőlük balra levő biteknek adják át az értékűket. Ebben az eljárásban a legmagasabb helyértékű bit a legkisebb helyértékű bit helyére, és ezzel párhuzamosan az állapotregiszter "Átvitel bit"-jébe is, beíródik. A bájt szekvenciában legfeljebb 8, a szó szekvenciában legfeljebb 16 bittel történő forgatás lehetséges egy utasítás hatására. 7 C
0 RAb
15
0
C
RAw
A művelet bájt és szó szekvenciákban megengedett. A segédregiszter tartalma nem változik. Szintakszis Adattípus
Utasítás
Művelet
Bájt
ROTL
Az RAb balra forgatása
ROTL n
Az RAb balra forgatása n -szer ( n = 1,..,8 )
ROTL
Az RAw balra forgatása
ROTL n
Az RAw balra forgatása n -szer ( n = 1,.., 8 )
Szó
Klöckner-Moeller
5-160
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
ROTL
ROTL
Balra forgatás Bájt
Szó
A feltétel bitek új értéke
Átvitel bit (C)
1
Zéró bit (Z) Plusz / mínusz bit ( P/M ) Túlcsordulás bit (V) 1)
0
Beíródik, ha a legmagasabb helyértékről utolsóként kiforgatott bit értéke 1 volt. Egyéb esetekben
1
Felveszi ezt az értéket, ha a munkaregiszter tartalma nulla.
0
Egyéb esetekben
1
Felveszi ezt az értéket, ha az eredmény negatív 1).
0
Egyéb esetekben Nem változik
Ha a legmagasabb helyértékű bit értéke 1, a P/M feltétel bit 1.
Példa Utasítássor
Állapot
Szöveges magyarázat
L MB 4
01011011
A MB 4 merker bájt betöltődik.
ROTL
10110110
A munkaregiszter tartalma eggyel eltolva balra.
= MB 4
10110110
A MB 4 felveszi a munkaregiszter tartalmát.
Klöckner-Moeller
5-161
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
ROTR
ROTR
Jobbra forgatás Bájt
Szó
Leírás A munkaregiszter bitjeinek tartalma jobbra tolódik, azaz a tőlük jobbra levő biteknek adják át az értékűket. Ebben az eljárásban a legkisebb helyértékű bit a legnagyobb helyértékű bit helyére, és ezzel párhuzamosan az állapotregiszter "Átvitel bit"-jébe is, beíródik. A bájt szekvenciában legfeljebb 8, a szó szekvenciában legfeljebb 16 bittel történő forgatás lehetséges egy utasítás hatására. 7
0 RAb
15
C 0
RAw
C
A művelet bájt és szó szekvenciákban megengedett. A segédregiszter tartalma nem változik. Szintakszis Adattípus
Utasítás
Művelet
Bájt
ROTR
Az RAb jobbra forgatása
ROTR n
Az RAb jobbra forgatása n -szer ( n = 1,..,8 )
ROTR
Az RAw jobbra forgatása
ROTR n
Az RAw jobbra forgatása n -szer ( n = 1,.., 8 )
Szó
Klöckner-Moeller
5-162
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
ROTR
ROTR
Jobbra forgatás Bájt
Szó
A feltétel bitek új értéke
Átvitel bit (C) Zéró bit (Z) Plusz / mínusz bit ( P/M ) Túlcsordulás bit (V)
1 0
Beíródik, ha a legmagasabb helyértékbe utolsóknak beforgatott bit értéke 1 volt. Egyéb esetekben
1
Felveszi ezt az értéket, ha a munkaregiszter tartalma nulla.
0
Egyéb esetekben
1
Felveszi ezt az értéket, ha az eredmény negatív 1).
0
Egyéb esetekben
1
Beíródik, ha a forgatás alatt a munkaregiszter tartalma előjelet vált. A plusz / mínusz bit értéke változik. Egyéb esetekben.
0 1)
Ha a legmagasabb helyértékű bit értéke 1, a P/M feltétel bit 1.
Példa Utasítássor
Állapot
Szöveges magyarázat
L MB 0
01101110
A MB 0 merker bájt betöltődik.
ROTL 2
100011011
A munkaregiszter tartalma kettővel eltolva jobbra.
= MB 0
100011011
A MB 0 felveszi a munkaregiszter tartalmát
Klöckner-Moeller
5-163
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
S
S
Beírás Bit Leírás Az utasítás által kijelölt bit értéke "1" lesz, ha a munkaregiszter ( RA ) tartalma "1". Ha a beírási feltétel nem teljesül az operandus értéke nem változik. A megjelöltek kivételével az 5-1 táblázatban szereplő összes operandus használható a "Beírás" utasítással együtt. Gondoskodjon róla, hogy az operandusok adattípusa egyezzen meg a fent említett adattípusokkal ( bit, bájt, szó ). A munkaregiszter, és a segédregiszter tartalma nem változik az "Beírás" utasítás végrehajtásakor. A feltétel bitek új értéke Átvitel bit (C) Zéró bit (Z)
Nem változik 1
Felveszi ezt az értéket, ha a munkaregiszter tartalma nulla.
0
Egyéb esetekben
Plusz / mínusz bit ( P/M )
Nem változik
Túlcsordulás bit (V)
Nem változik
Klöckner-Moeller
5-164
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
S
S
Beírás Bit Példa
Utasítássor L I 0.5 S M 0.6
Klöckner-Moeller
Állapot Állapot Szöveges magyarázat operandus munkaregiszter 1 1 A 0.5 bemenet betöltése, ennek értéke a "Beírás" feltétele. 1
1
Ha a 0.5 bemenet magas a 0.6 merker bitbe beíródik az 1. A merker bit megtartja ezt a értékét függetlenül a 0.5 bemenet további változásaitól.
5-165
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
SHL
SHL
Shift balra Bájt
Szó
Leírás A munkaregiszter bitjeinek tartalma balra tolódik, azaz a tőlük balra levő biteknek adják át az értékűket. Ebben az eljárásban a legmagasabb helyértékű bit az állapotregiszter "Átvitel bit"-jébe beíródik. A legalacsonyabb helyértékű bit a "0" értéket veszi fel.
7 C
0 RAb
15
0 0
C
RAw
0
A művelet bájt és szó szekvenciákban megengedett. A bájt szekvenciában legfeljebb 8, a szó szekvenciában legfeljebb 16 bittel történő forgatás lehetséges egy utasítás hatására. A segédregiszter tartalma nem változik. Szintakszis Adattípus
Utasítás
Művelet
Bájt
SHL
Az RAb balra shiftelése.
SHL n
Az RAb balra shiftelése n -szer ( n = 1,..,8 )
SHL
Az RAw balra shiftelése.
SHL n
Az RAw balra shiftelése n -szer ( n = 1,.., 8 )
Szó
Klöckner-Moeller
5-166
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
SHL
SHL
Shift balra Bájt
Szó
A feltétel bitek új értéke
Átvitel bit (C)
1 0
Zéró bit (Z)
1
Beíródik, ha a legmagasabb helyértékű ( utolsóként beshiftelt ) bit értéke 1 volt. Egyéb esetekben Felveszi ezt az értéket, ha a munkaregiszter tartalma nulla, a shiftelés után.
0 Plusz / mínusz bit ( P/M ) Túlcsordulás bit (V) 1)
1
Egyéb esetekben Felveszi ezt az értéket, ha az eredmény negatív 1).
0
Egyéb esetekben Nem változik
Ha a legmagasabb helyértékű bit értéke 1, a P/M feltétel bit 1.
Példa Utasítássor
Állapot
L MB 151
00000010
A MB 151 merker bájt betöltődik.
SHL
00000100
A munkaregiszter tartalma eggyel eltolva balra, alulra 0 kerül, a művelet hatása azonos a 2 -vel szorzással.
= MB 151
00000100
A MB 151 felveszi a munkaregiszter tartalmát.
Klöckner-Moeller
Szöveges magyarázat
5-167
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
SHLC
SHLC
Shift balra az átvitel bittel együtt Bájt
Szó
Leírás A munkaregiszter bitjeinek tartalma balra tolódik, azaz a tőlük balra levő biteknek adják át az értékűket. Ebben az eljárásban először az állapotregiszter átvitel bitjének tartalma betöltődik a munkaregiszter legkisebb helyértékű bitjébe, majd a munkaregiszter legmagasabb helyértékű bitje az állapotregiszter "Átvitel bit"-jébe shiftel. 7 C
0 RAb
15
C 0
C
RAw
C
A művelet bájt és szó szekvenciákban megengedett. A segédregiszter tartalma nem változik.
Klöckner-Moeller
5-168
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
SHLC
SHLC
Shift balra az átvitel bittel együtt Bájt
Szó
A feltétel bitek új értéke
Átvitel bit (C)
1 0
Zéró bit (Z)
1
Plusz / mínusz bit ( P/M ) Túlcsordulás bit (V) 1)
Beíródik, ha a legmagasabb helyértékű bit értéke magas a shiftelés után. Egyéb esetekben
0
Felveszi ezt az értéket, ha a munkaregiszter tartalma nulla, a shiftelés után. Egyéb esetekben
1
Felveszi ezt az értéket, ha az eredmény negatív 1).
0
Egyéb esetekben Nem változik
Ha a legmagasabb helyértékű bit értéke 1, a P/M feltétel bit 1.
Példa Utasítássor
Állapot
Szöveges magyarázat
L MB 12
01001101
A MB 12 merker bájt betöltődik.
SHL
10011010
= MB 12
10011010
A munkaregiszter tartalma eggyel eltolva balra, alulra 0 kerül. A legmagasabb helyértékű bit az átvitel bitbe kerül. A MB 12 felveszi a munkaregiszter tartalmát.
L MB 13
10110110
A MB 13 merker bájt betöltődik.
SHLC
01101100
SHLC
11011001
A munkaregiszter tartalma eltolva balra, alulra az átvitel bit tartalma kerül. A legmagasabb helyértékű bit az átvitel bitbe kerül.
= MB 13
11011001
A MB 13 felveszi a munkaregiszter tartalmát.
Klöckner-Moeller
5-169
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
SHR
SHR
Shift jobbra Bájt
Szó
Leírás A munkaregiszter bitjeinek tartalma jobbra tolódik, azaz a tőlük jobbra levő biteknek adják át az értékűket. Ebben az eljárásban a legalacsonyabb helyértékű bit az állapotregiszter "Átvitel bit"-jébe beíródik. A legmagasabb helyértékű bit a "0" értéket veszi fel.
7 0
0 RAb
15
C 0
0
RAw
C
A művelet bájt és szó szekvenciákban megengedett. A bájt szekvenciában legfeljebb 8, a szó szekvenciában legfeljebb 16 bittel történő forgatás lehetséges egy utasítás hatására. A segédregiszter tartalma nem változik. Szintakszis Adattípus
Utasítás
Művelet
Bájt
SHR
Az RAb jobbra shiftelése.
SHR n
Az RAb jobbra shiftelése n -szer ( n = 1,..,8 )
SHR
Az RAw jobbra shiftelése.
SHR n
Az RAw jobbra shiftelése n -szer ( n = 1,.., 8 )
Szó
Klöckner-Moeller
5-170
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
SHR
SHR
Shift jobbra Bájt
Szó
A feltétel bitek új értéke
Átvitel bit (C) Zéró bit (Z)
1
Beíródik, ha a legmagasabb helyértékű bit értéke 1 volt.
0
Egyéb esetekben
1
Felveszi ezt az értéket, ha a munkaregiszter tartalma nulla, a shiftelés után.
0 Plusz / mínusz bit ( P/M ) Túlcsordulás bit (V) 1)
1
Egyéb esetekben Felveszi ezt az értéket, ha az eredmény negatív 1).
0
Egyéb esetekben Nem változik
Ha a legmagasabb helyértékű bit értéke 1, a P/M feltétel bit 1.
Példa Utasítássor
Állapot
L IB 0.0.0.0
00101001
A 0.0.0.0 bemenet betöltődik.
SHR 4
00000010
= MB 20
00000010
A munkaregiszter tartalma néggyel eltolva jobbra, felülre 0 kerül, a művelet hatása azonos a 16 -tal osztással. A MB 20 felveszi a munkaregiszter tartalmát.
Klöckner-Moeller
Szöveges magyarázat
5-171
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
SHRC
SHRC
Shift jobbra az átvitel bittel együtt Bájt
Szó
Leírás A munkaregiszter bitjeinek tartalma jobbra tolódik, azaz a tőlük jobbra levő biteknek adják át az értékűket. Ebben az eljárásban először az állapotregiszter átvitel bitjének tartalma betöltődik a munkaregiszter legnagyobb helyértékű bitjébe, majd a munkaregiszter legkisebb helyértékű bitje az állapotregiszter "Átvitel bit"-jébe shiftel. 7 C
0 RAb
C
15
0
C
RAw
C
A művelet bájt és szó szekvenciákban megengedett. A segédregiszter tartalma nem változik. A feltétel bitek új értéke
Átvitel bit (C)
1
Beíródik, ha a legkisebb helyértékű bit értéke 1 a shiftelés után.
0 Zéró bit (Z) Plusz / mínusz bit ( P/M ) Túlcsordulás bit (V) 1)
0
Egyéb esetekben Felveszi ezt az értéket, ha a munkaregiszter tartalma nulla, a shiftelés után. Egyéb esetekben
1
Felveszi ezt az értéket, ha az eredmény negatív 1).
0
Egyéb esetekben
1
Nem változik
Ha a legmagasabb helyértékű bit értéke 1, a P/M feltétel bit 1.
Klöckner-Moeller
5-172
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
SHRC
SHRC
Shift jobbra az átvitel bittel együtt Bájt
Szó
Példa
Utasítássor L MB 9
Állapot (munkaregiszter) 10101001
A legmagasabb helyértékű bit helyére az átvitel bit C = 1 tartalma töltődik, a legalacsonyabb helyértékű bit az átvitel bitbe töltődik, miközben a munkaregiszter jobbra shiftelődik.
SHR = MB 9
01010100
L MB 8
11101000 A legmagasabb helyértékű bit helyére az átvitel bit C = 0 tartalma töltődik, a legalacsonyabb helyértékű bit az átvitel bitbe töltődik, miközben a munkaregiszter jobbra shiftelődik.
SHRC = MB 8
11110100
L MB 10
11100101 A legmagasabb helyértékű bit helyére az átvitel bit C = 1 tartalma töltődik, a legalacsonyabb helyértékű bit az átvitel bitbe töltődik, miközben a munkaregiszter jobbra shiftelődik.
SHLC = MB 10
01110010
L MB 9
00001110 A legmagasabb helyértékű bit helyére az átvitel bit C = 0 tartalma töltődik, a legalacsonyabb helyértékű bit az átvitel bitbe töltődik, miközben a munkaregiszter jobbra shiftelődik.
SHRC = MB 9
Klöckner-Moeller
Álla- Szöveges magyarázat pot bit
10000111
5-173
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
SUB
SUB
Kivonás Bájt
Szó
Leírás Kivonás a munkaregiszteren keresztül. Az utasítással kijelölt operandus ( kivonandó ) tartalmát kivonja a munkaregiszter ( kisebbítendő ) tartalmából. Az eredmény a munkaregiszterben van, aminek az eredeti tartalma felülíródik. Az operandus tartalma nem változik. Kivonás a veremregiszteren keresztül. A munkaregiszter ( kivonandó ) tartalmát, kivonja a veremregiszter utolsóként eltárolt értékből. Az eredmény a munkaregiszterbe íródik. Megjegyzés'! Az összeadásban az értékek előjeles egész számként vannak értelmezve.
Az 5-1 táblázatban szereplő összes operandus használható az "Összeadás" utasítással együtt. A fentebb már említett utasítás adattípusnak ( Bit, Bájt, Szó ), és az operandus adattípusának meg kell egyeznie. A segédregiszter tartalma nem változik az "Kivonás" utasítás végrehajtásakor. Emlékeztető: Kisebbítendő - Kivonandó = Különbség A feltétel bitek új értéke Átvitel bit (C)
1 0
Ha a kisebbítendő kisebb volt, mint a kivonandó, azaz úgynevezett "kölcsönkért bit" szükséges a művelethez. Törlődik, ha a legnagyobb helyértékű bit helyén van maradék. ( A kivonáskor ezt figyelmen kívül marad )
Zéró bit (Z)
1 0
Felveszi ezt az értéket, ha a munkaregiszter tartalma nulla. Egyéb esetekben
Plusz / mínusz bit ( P/M )
1 0
Felveszi ezt az értéket, ha az eredmény negatív 1). Egyéb esetekben
Túlcsordulás bit (V)
1 0
Felveszi ezt az értéket, ha aritmetikai túlcsordulás történik. 2)
Egyéb esetekben 1)
Ha a legmagasabb helyértékű bit értéke 1, a P/M feltétel bit 1.
Klöckner-Moeller
5-174
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
SUB
SUB
Kivonás Bájt 2)
Szó
Ha az eredmény túllépi az előjeles számábrázolás határát: bájt műveleteknél: -128, +127 ; szó műveleteknél: -32768, +32767.
Klöckner-Moeller
5-175
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
SUB
SUB
Kivonás Bájt
Szó
Példa: Kaszkád kivonás 15
8 MB 1
-
MB 4 C
MB 5
Címke
CARRY
0 MB 0
MB 3
+
7
MB 4
Utasítássor
Állapot
L MB 0 SUB MB 2 BV HIBA = MB 4 BC CARRY
00110110
Szöveges magyarázat
Az alacsonyabb helyértékű bájtok kivoná00011010 sa, az eredmény a MB 4 bájtba kerül. Ha számítás átvitel bitet eredményez, ennek figyelembevétele a "CARRY" címkénél.
JP FOLYTAT1 L MB 3 ADD KB 1 BV HIBA = MB 3
Ha az alacsonyabb helyértékű bájtok kivonása átvitelt eredményezett, ezt hozzá kell adni a magasabb helyértékű kisebbítendő bájthoz.
FOLYTAT1 L MB 1 SUB MB 3 = MB 5 BV HIBA
A magasabb helyértékű bájtok kivonása, az eredmény a MB 5 bájtba kerül.
JP FOLYTAT2 HIBA
Túlcsordulás történt, a számított érték túllépte a számábrázolási tartományt.
FOLYTAT2
A program további része itt folytatódik.
Klöckner-Moeller
5-176
9/96 AWB 27-1186-H
SUB
UTASÍTÁSOK ( IL ; AWL )
SUB
Kivonás Bájt
Klöckner-Moeller
Szó
5-177
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
XO
XO
Kizáró VAGY Bit
Bájt
Szó
Leírás Az utasítás operandusa, és a munkaregiszter tartalma között teremt "kizáró VAGY" kapcsolatot. Az eredmény a munkaregiszterbe kerül, aminek az eredeti tartalma felülíródik. Az operandus tartalma nem változik meg. A bájt és a szó szekvenciákban az azonos helyértékű bitek között létesül "kizáró VAGY" kapcsolat. A veremregiszterben eltárolt utolsó érték, és a munkaregiszter tartalma közötti "kizáró VAGY" kapcsolat a fentiekkel azonos módon létesül. Ha ilyenkor használ negációt a munkaregiszter tartalma vált az ellentétére, azaz a veremregiszterben eltárolt utolsó érték, és a munkaregiszter negált tartalma közötti jön létre a "kizáró VAGY" kapcsolat. Az 5-1 táblázatban szereplő valamennyi operandus használható a "kizáró VAGY" utasítással együtt. Gondoskodjon róla, hogy az operandus adattípusa megegyezzen a fent megemlítettekkel. A segédregiszter nem változik a "kizáró VAGY" utasítás hatására.
Igazság táblázat
Klöckner-Moeller
W1 0 0 1 1
W2 0 1 0 1
W1 ⊕ W2 0 1 1 0
5-178
9/96 AWB 27-1186-H
UTASÍTÁSOK ( IL ; AWL )
XO
XO
Kizáró VAGY Bit
Bájt
Szó
A feltétel bitek új értéke
Átvitel bit (C)
Nem változik
Zéró bit (Z) Plusz / mínusz bit ( P/M )
1
Felveszi ezt az értéket, ha a munkaregiszter tartalma nulla.
0
Egyéb esetekben
1
Felveszi ezt az értéket, ha az eredmény negatív 1).
0
Egyéb esetekben
Túlcsordulás bit (V) 1)
Nem változik
Ha a legmagasabb helyértékű bit értéke 1, a P/M feltétel bit 1.
Példa
Utasítássor
Állapot
L I 0.1
1
XO I 0.2
0
= Q 0.2
1
Klöckner-Moeller
Szöveges magyarázat
A Q 0.2 kimenet akkor lesz 1, ha vagy a I 0.1, vagy a 0.2 bemenet, de a kettő közül csak az egyik értéke 1.
5-179
9/96 AWB 27-1186-H
6. FUNKCIÓELEMEK
Tartalom Általánosságok - Műszaki, és üzemeltetési megjegyzések - A szimbólumok jelentése - Adattípus elnevezések
6-2 6-2 6-3
BKD C CALARM CK CP DEB FALARM FIFOB FIFOW ICP ICPY LIFOB LIFOW RDAT SCK SCO SDAT SK SR SRB SRW TALARM TF TGEN TP TR
6-4 6-5 6-8 6-11 6-15 6-16 6-17 6-20 6-22 6-24 6-28 6-32 6-34 6-36 6-38 6-40 6-42 6-44 6-46 6-50 6-52 6-54 6-58 6-60 6-61 6-62
Klöckner-Moeller
Bináris-decimális kód konverter Előre / hátra számláló Megszakítástkérő számláló funkcióelem Idő / dátum komparátor Komparátor Decimális-bináris kód konverter Megszakítástkérő élváltozás funkcióelem Első be / elsőként ki regiszter Első be / elsőként ki regiszter Adatblokk összehasonlítás Adatblokk áthelyezés Utolsó be / elsőként ki veremregiszter Utolsó be / elsőként ki veremregiszter Adat visszatöltés Valósidejű óra beállítása Soros kommunikáció Adat mentés Lépéslánc funkcióelem Shiftregiszter Shiftregiszter Shiftregiszter Megszakítástkérő időzítő funkcióelem Késleltetve elengedő időzítő Generátor funkcióelem Pulzus adó Késleltetve meghúzó időzítő
6-180
9/96 AWB 27-1186-H
FUNKCIÓELEMEK Általánosságok
A kézikönyv egyenként leírja az összes funkcióelemet, a funkcióelemek hivatkozási kódjának alfabetikus sorrendjében. A kezdő sorokban a funkcióelem legfontosabb adatai, és a szintakszisa van, majd ezt követi a hozzárendelt be-, és kimenetek leírása, és ahol ez szükséges az igazság tábla. A funkcióelem leírás ezen első részének az a rendeltetése, hogy tömör áttekintést adjon, a funkcióelem leírás második része szövegesen, és diagramokkal magyarázza a funkcióelem működését. Műszaki, és üzemeltetési megjegyzések A vezérlőt jellemző dinamikus memória kezelés, üzemeltetés közben, csak a felhasználói program végére enged hozzáírni új retentív ( értékőrző ) funkcióelemet. A felhasznált funkcióelemek száma nincs korlátozva. Csak a felhasználói memória kapacitása jelent korlátot. Elméletileg 65535 a felhasználható funkcióelemek felső határa. A funkcióelemek szervezése, beépülése a felhasználói programba, és a funkcióelemek be-, és kimeneteinek tulajdonságai a 2. Fejezetben van leírva. A szimbólumok jelentése x
választható érték felfutó él: a funkcióelemnek fel kell ismernie a 0 → 1 változást
-
elválasztó jel a regiszter hossz, értékőrző viselkedés, és az idő alap előtt.
R
Értékőrző ( Retentív ). A funkcióelem feszültségvesztéskor is megőrzi a tartalmát.
(Elemszáma) (Regiszter hossza) ( Idő alap ) ( Be-/kimenet) ( Bemenetek száma )
A funkcióelem fejrészébe a megfelelő értéket kell beírni. A zárójeleket nélkül kell az értékeket megadni.
Klöckner-Moeller
6-181
9/96 AWB 27-1186-H
FUNKCIÓELEMEK Általánosságok
Adattípus elnevezések A bemeneti , és a kimeneti adatok típusának jellemzésére, amit a szimbólumok meghatároznak, az alábbi elnevezések használtak: Utasítássorban
Klöckner-Moeller
Típus
[ ]
Bit
[B]
Bájt
[W]
Szó
[&]
Cím
[$]
Alprogram
[x]
Idő és dátum paraméter ( csak a valósidejű óra funkcióelemnél )
6-182
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
BID
BID
Bináris-Decimális kód konverter Szó Szintakszis Behívás:
BID < Elemszám >
Operandusként:
BID < Elemszám >_< Bemenet / kimenet >
Szám értelmezési tartomány: Eredmény:
-32768 .. 0 .. +32767 5 dekád
Végrehajtási idő:
460 ..560 µs
Ábrázolás Utasítássor BID 10 [W] [ ] [W] [W]
I: QS: Q1: Q2:
Bináris bemenet Előjel kimenet 5. dekád 1 - 4. dekád
Leírás Egy 16 bites binárisan kódolt számot átalakít 5 dekás hosszú BCD számmá. Az előjel a QS kimeneten jelenik meg. ( 0 ⇒ + , 1 ⇒ - ) 4. dekád
3. dekád
2. dekád
1. dekád
Q2 5. dekád Q1
Ihex 0000 0001 .. 7FFF 8000 8001 .. FFFF Klöckner-Moeller
Idec
QS 0 0 .. 0 1 1 .. 1
0 1 32767 -32768 -32767 -1 6-183
0 0
Q1 0 0 0 0
0 0
Q2 0 0 0 0
0 0
0 1
0 0 0
0 0 0
0 0 0
3 3 3
2 2 2
7 7 7
6 6 6
7 8 7
0
0
0
0
0
0
0
1
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
C
C
Előre / hátra számláló Szó Szintakszis Behívás:
C < Elemszám > -R
Operandusként:
C < Elemszám >_< Bemenet / kimenet >
Szám értelmezési tartomány: Végrehajtási idő:
0 ..65535 előjel nélküli 170 µs
Ábrázolás Utasítássor C 17-R [ ] [ ] [ ] [ ] [W] [ ] [W]
U: D: S: R: I: Z: Q:
Előre számlált bemeneti impulzus Hátra számlált bemeneti impulzus Beírás Törlés Kezdő érték Zéró tartalom A számláló tartalma
Igazság tábla Bemenet Adattípus Előre számlálás Hátra számlálás Beírás Törlés
Klöckner-Moeller
U Bit
x x x
D bit
S bit
R bit
I Szó
x
x x
0 0 0 1
x x érték x
x x
6-184
x
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
C
C
Előre / hátra számláló Szó Leírás Mikor az "S" beíró bemenetre felfutó él kerül, az "I" bemeneten levő kezdő érték betöltődik a számlálóba. Az "U" előre számláló bemenetre jutó felfutó él eggyel növeli, a "D" hátra számláló bemenetre jutó felfutó él eggyel csökkenti a számláló tartalmát. A számláló tartalmának értelmezése a felhasználói programtól függ. Ha előfordulhat negatív érték az előjeles számábrázolási tartományt használja ( -32768, .. , +32767 ). Ha csak pozitív értékek szükségesek, a szám tartomány 0, .. , 65535. A számok körbefutják ezeket a tartományokat. Ez utóbbi azt jelenti, hogy a 65535 után eggyel növelve a számláló tartalmát a 0 jelenik meg, illetve +32767 után eggyel növelve a számláló tartalmát a -32768. Ezt a folyamatot figyelembe kell venni a felhasználói programban. Mikor az "R" törlő bemeneten magas szint van a számláló tartalma törlődik, és így alaphelyzetébe ( 0 számérték ) kerül. A számlálónak a "Z" kimenete akkor magas, ha a számláló tartalma nulla. A "Q" kimenet mindig a számláló aktuális tartalmát mutatja.
Megjegyzés! A pulzusok hosszának legalább egy ciklusidőnél hosszabbnak kell lennie, hogy a számláló minden számlálandó pulzust figyelembe vegyen. A számlálónak képesnek kell lennie az egymást követő pulzusok alacsony szintjének felismerésére, azért hogy gondoskodjon az automatikus élformázásról. A maximális számlálási frekvencia: 1 F= 2 TCiklusid [
Klöckner-Moeller
6-185
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
C
C
Előre / hátra számláló Szó Példa A C 11 számláló egyet lép előre minden alkalommal, amikor az I0.5 bemeneten a kontaktus záródik. Az I0.6 bemenet törli a számlálót. A számláló aktuális tartalma az MW12 merker szóba kerül. Nincs felhasználva a hátra felé számlálás, és az érték beírás funkció. C 11 U: I0.5 D: S: R: I0.6 I: Z: Q: MW12
Ciklus
1
Előre számlálás Törlés Aktuális érték 2
3
4
5
6
7
8
9
10 11 12 13 14 15 16 17 18 1 20 9
I 0.5 I0.6 MW 12
x
0
1
2
3
4
5
0
Megjegyzés: A ciklikus működésből fakadóan nem a bemeneten megjelenő fizikai jelváltozáskor lép a számláló, hanem amikor ezt a változást az adott ciklus feldolgozta.
Klöckner-Moeller
6-186
9/96 AWB 27-1186-H
CALARM
FUNKCIÓELEMEK
CALARM
Megszakítástkérő számláló funkcióelem Számláló riasztás Gyorsszámláló Szintakszis Behívás:
CALARM 0
Végrehajtási idő:
20 µs alprogram nélkül ( UP ) 240 µs + az alprogram végrehajtásához szükséges idő
Ábrázolás Utasítássor CALARM 0 [ ] BN [W] VT [W] SOLL [B] ERR [W] CNT [$] AC
: Megszakítás engedélyezve ( = 1 ) / nem engedélyezve ( = 0 ) : Előosztó számláló : Alapérték számláló : Hiba kimenet : Megszakításkérés számláló ( a modul behívások száma ) : A behívott alprogram címe
Leírás Ez a funkcióelem az alapkészülék ( PS 4-201-MM1 ) I0.0 bemenetéhez van hozzárendelve. Az EN bemenet engedélyezi a számláló működését. A számláló indul, ha ez a bemenet magasba ( 0 → 1 ) vált. A számláló leáll, és törlődik, ha ez a bemenet alacsonyba kapcsol ( 1 → 0 ). A VT bemenet ( értékei: 1, .. , 65535 ) jelzi, hogy mennyi jelnek kell érkeznie a hardver bemenetre ahhoz, hogy az előosztó számláló tartalma eggyel növekedjen. A SOLL bemenet ( értékei: 1, .. , 65535 ) jelzi, hogy az előosztó számláló mely értékénél engedélyezett a megszakítás, azaz mikor kell a funkcióelemet behívni. Az ERR kimenet tartalmazza a hibák kódjait: 0 = nincs hiba 1 = alapérték bemeneten 0 van 2 = előosztó bemeneten 0 van A CNT kimenet ( értékei: 0, .. , 65535 ) jelzi, hogy az alapérték hányszor volt elérve, azaz hányszor történt megszakítás. Az AC bemenet lehetővé teszi egy esemény vezérelt program beillesztését. Ennek érdekében ezen a bemeneten az alprogram címét ( $név ) kell megadni. Mikor az esemény bekövetkezik ( a CNT számláló eggyel nő ) az alprogram végrehajtódik. Ha ezen a bemeneten nincs cím, akkor csak a CNT számláló tartalma nő. Klöckner-Moeller
6-187
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
CALARM
CALARM
Megszakítástkérő számláló funkcióelem Számláló riasztás Gyorsszámláló
impulzusok
I0.0
max: 3kHz
VT=512 SOLL=1 CV CNT
0 0
1 0
2 0
3 0
4 0
0 1
1 1
2 1
3 1
4 1
0 2
.. 0
0
..
... ...
0
Ugrás az alprogramra $.. VT=65535 SOLL=1 CV CNT
0 0
1 0
2 0
3 0
4 0
.. 0
.. 0
.. 0
65535 0
..
1
Ugrás az alprogramra $.. VT=3 SOLL=2 CV CNT
0 0
1 0
2 0
0 0
1 0
2 0
0 1
1 1
2 1
0 1
1 1
1
2
2
Ugrás az alprogramra $ Esemény vezérelt program alkalmazásakor az alábbi szempontokat kell figyelembe venni: • Az esemény bekövetkezte, a felhasználói program végrehajtását megszakítja, a regiszterek állapotát elmenti, és az AC bemeneten megadott címre ugorva végrehajtja az alprogramot. A Megszakítástkérő funkcióelem nem szakítható meg egy másik Megszakítástkérő funkcióelemmel ( az összes Megszakítástkérő funkcióelemnek azonos a prioritása ). • A felhasználói program 5 ms időtartamra ( kb. 1000 utasítássor végrehajtása ) korlátozza a Megszakítástkérő funkcióelemek végrehajtási idejét, mivel a Megszakítástkérő funkcióelemek működését a rendszerprogram sem tudja ( még tápvesztéskor sem ) megszakítani. Ha a végrehajtási időt túllépte a korlátot, akkor a táp kikapcsolásakor EDC hiba keletkezhet.
Klöckner-Moeller
6-188
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
CALARM
CALARM
Megszakítástkérő számláló funkcióelem Számláló riasztás Gyorsszámláló • A Megszakítástkérő funkcióelem végrehajtási ideje hozzáadódik a felhasználói program végrehajtási idejéhez, és a ciklus idő ellenőrző így együtt figyeli. • Az esemény vezérelt program feldolgozásakor korlátozás nélkül elérhetők az átmeneti tárolók ( regiszterek ), a felhasználói program, és az esemény vezérelt program által közösen használt adatok bizonyára megsérülnek. A felhasználói programban, és a Megszakítástkérő funkcióelemben ugyanabban a bájtban bit hozzáférés csak úgy történhet, ha a DI, és EI utasítások a hozzáférés összeszinkronizált. • A gyors reagálás érdekében a Megszakítástkérő funkcióelem nagy sebességű periféria ( közvetlen kimenet ) elérést igényel, az alapkészüléken található QB, QPB periféria operandusok használhatók. • Egy Megszakítástkérő funkcióelem többször használható ( többszöri felkészítés ), de ezt általában kerülni kell, mivel a Megszakítástkérő funkcióelem csoportok ugyanazzal az eseményforrással rendelkeznek ( esetünkben a I0.0 bemenettel ), és így a programban csak az utolsó funkcióelem érvényes. • A többszöri felkészítés azt jelenti, hogy egy egyedi funkcióelem típusnak az öszszes paraméter beállításához adatterületeket foglal le. A többszöri felkészítés csak akkor hasznos, ha a Megszakítástkérő funkcióelem alprogramja a funkcióelem paramétereit átírja, és egy él érvényesíti. Példa Az alábbi példában egy szögsebesség távadó impulzusainak számlálása történik. Az impulzus periódus ideje a PLC ciklus idejénél kisebb. A távadó 1000 impulzus / radián felbontású. A funkcióelem osztásaránya 100, így a szöghelyzet a CNT kimenet tartalma szorozva 0.1 radiánnal. 00000 001 002 00001 001 00002 001 002 003 004 005 006 Klöckner-Moeller
BLOKK0
"konfigurációs fájl beépítése
BLOKK1
#include 'config.k42 "program kezdete
BLOKK2
"A CALARM0 funkcióelem behívása, azért hogy számláljuk "az I 0.0 bemeneten érkező jeleket. CALARM0 [ ] BV [W] VT [W] SOLL [B] ERR [W]
I 0.5 Funkcióelem engedélyezés KW 100 KW 1 MB25
6-189
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
CALARM
CALARM
Megszakítástkérő számláló funkcióelem Számláló riasztás Gyorsszámláló 007 008 00003 001
Klöckner-Moeller
END
[$] CNT MW 10 AC "program vége EP
6-190
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
CK
CK
Idő / dátum komparátor Valósidejű óra
Szintakszis Behívás:
CK < Elemszám >
Operandusként:
CK < Elemszám >_< Bemenet / kimenet >
Szám értelmezési tartomány:
TIME
0....23 óra . elválasztó pont 0....59 perc
DAY
0 = vasárnap 1 = hétfő 2 = kedd 3 = szerda 4 = csütörtök 5 = péntek 6 = szombat
DATE
1....12 hónap . elválasztó pont 1....31 nap
VDAT
1...31 . 1...12 nap . hónap
VTM
0...23 . 0...59 óra . perc
Végrehajtási idő:
200 µs
Ábrázolás Utasítássor CK 10 [ ] [X] [X] [X] [W] [W] [ ] [ ] [ ] [ ] Klöckner-Moeller
S: TIME: DAY: DATE: VDAT: VTM: GT: EQ: LT: ERR: 6-191
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
CK
CK
Idő / dátum komparátor Valósidejű óra
Igazság tábla LT 1 0 0 0
tREF < t tREF = t tREF > t tREF érvénytelen
EQ 0 1 0 0
GT 0 0 1 0
ERR 0 0 0 1
Leírás Az idő / dátum komparátor folyamatosan lekérdezi a tápkikapcsoláskor elemmel védett, belső, valósidejű órát. A belső óra dátumát, és idejét a SUCOsoft "Idő / Dátum" menüjében lehet beírni, vagy módosítani. A funkcióelem összehasonlítja a beállított értékeket - ez lehet az idő ( óra, perc ), a nap ( a hét napjai ), a dátum ( nap, hónap ) - a belső órával. Kétféle módon lehet a belső, valósidejű óra értékeit beállítani: 1. A funkcióelem TIME, DAY, DATE bemenetein keresztül Az adatokat programozás közben kell megadni. Ezek a konstans értékek programfutatás közben nem változtathatók meg. Ezeket a konstans értékeket csak akkor veszi figyelembe, ha a VDAT, és a VTIM bemenet üres. Az ERR kimenet alacsony. Előforduló paraméter beállítások: TIME: DAY: DATE:
20.35 -
20.35 1 -
20.35 3.28
2. A funkcióelem VDAT, VTIM bemenetein keresztül Amikor a VTIM, vagy a VTIM és VDAT bemeneteken van operandus, akkor a TIME, DAY, DATE bemenetek nem aktívak. A beírások szó formátumúak. A beírás megtörténhet a funkcióelem behívásával, vagy a felhasználói programból.
Klöckner-Moeller
6-192
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
CK
CK
Idő / dátum komparátor Valósidejű óra
Példa Funkcióelem behívással
Felhasználói programból
L KB 35 = MB 10 L KB 17 = MB 11 L KB 3 = MB 12 L KB 18 = MB 13
L I0.0 = CK 10 S
CK 10 [ ] [X] [X] [X] [W] [W] [ ] [ ] [ ] [ ]
S: TIME: DAY: DATE: VDAT: VTIM: GT: EQ: LT: ERR:
L KB 35 = MB 10 L KB 17 = MB 11 L KB 3 = MB 12 L KB 18 = MB 13 L MW 10 = CK 10 VTIM L MW 12 = CK 10 VDAT
I 0.0
MW 12 MW 10
L CK 10 EQ = Q 0.0 L CK 10 ERR = Q 0.1
Q 0.0 Q 0.1
stb.
CK 10 stb.
15 14 13 12 11 10 9
8
7
6
5
4
3
2
1
0
0
0
0
1
0 óra
0
0
1
0
0
1
0 0 perc
0
1
1
17 35 VTIM
0
0
0
1
0 nap
0
1
0
0
0
0
0 0 0 hónap
1
1
18 3
VDAT
1 szó A merker szóba a szám értelmezési tartományon belül bármely érték beírható. Ha az értelmezési tartományon kívüli érték van megadva, például 25 óra, akkor az ERR kimenet magas. Klöckner-Moeller
6-193
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
CK
CK
Idő / dátum komparátor Valósidejű óra
Működés Mikor az "S" bemeneten magas szint van, akkor a funkcióelem aktív. Az alacsony szint az összes kimenetre alacsony szintet kényszerít. Első példa: S 2) LT 1) EQ GT 2) aktív 1) Amikor a beállított idő azonos a belső órájával, az EQ kimenet 1 percig tartja a magas szintet 2) A váltás a "nagyobb, mint" ( GT ), és a "kisebb, mint" ( LT ) között a 24. óra átmenettől ( 23 → 0 ) függ az alábbiak szerint: TIME, vagy VTIM operandusnál minden nap 24 órakor DAY operandusnál vasárnap 24 órakor DATE, vagy VDAT operandusnál minden év végén 24 órakor Második példa: Adatcsere programfutás közben S 1) VDAT, VTIM
W1
W2
LT EQ GT aktív
Klöckner-Moeller
6-194
aktív
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
CK
CK
Idő / dátum komparátor Valósidejű óra 1) Adatcsere: a régi = W1, az új = W2 Az új értéket a változást követő felhasználói program feldolgozás ciklusban veszi először figyelembe.
Klöckner-Moeller
6-195
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
CP
CP
Komparátor Szó Szintakszis Behívás:
CP < Elemszám >
Operandusként:
CP < Elemszám >_< Bemenet / kimenet >
Szám értelmezési tartomány:
-32768,..0,..+32767 decimális
Végrehajtási idő:
105 µs
Ábrázolás Utasítássor CP 10 [W] [W] [ ] [ ] [ ]
I1: I2: GT: EQ: LT:
érték 1 érték 2 I1 < I2 I1 = I2 I1 > I2
Igazság tábla
I1 < I2 I1 = I2 I1 > I2
LT
EQ
GT
1 0 0
0 1 0
0 0 1
Leírás A funkcióelem két, az I1 és az I2 bemeneteken megadott 16 bites szót hasonlít össze, és az igazság táblának megfelelően állítja a kimeneteket.
Klöckner-Moeller
6-196
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
DEB
DEB
Decimális-Bináris kód konverter Szó Szintakszis Behívás:
DEB < Elemszám >
Operandusként:
DEB < Elemszám >_< Bemenet / kimenet >
Szám értelmezési tartomány: Eredmény:
4 dekád -9999,..0,..+9999
Végrehajtási idő:
145 µs
Ábrázolás Utasítássor DEB 47 [ ] I1: [W] I: [W] Q:
Előjel bemenet BCD bemenet Bináris kimenet
Leírás Egy 16 bites ( 4 dekád ) BCD kódolt számot átalakít 16 bites binárisan kódolt számmá. A szám előjele az I1 bemenetre kerül, az alacsony szint jelentése pozitív, a magas szint jelentése negatív. Példa A konvertálandó 4 dekádos BCD számok: +11, +9999, -1311, -9999. I1 0 0 1 1
I 0 9 1 9
Klöckner-Moeller
0 9 2 9
Q 1 9 1 9
1 9 1 9
B 270F FAE1 DBF1
Számérték 11 9999 -1311 -9999
6-197
9/96 AWB 27-1186-H
FALARM
FUNKCIÓELEMEK
FALARM
Megszakítástkérő élváltozás funkcióelem Riasztó él
Szintakszis Behívás:
FALARM 0
Végrehajtási idő:
20 µs alprogram nélkül ( UP ) 240 µs + az alprogram végrehajtásához szükséges idő
Ábrázolás Utasítássor FALARM 0 [ ] BN [ ] ACT [W] SOLL [B] ERR [W] CNT [$] AC
: Megszakítás engedélyezve ( = 1 ) / nem engedélyezve ( = 0 ) : Élváltozás 0 = pozitív ( 0→1 ), 1= negatív ( 1→0 ). : Alapérték számláló : Hiba kimenet : Megszakításkérés számláló ( a modul behívások száma ) : A behívott alprogram címe
Leírás Ez a funkcióelem az alapkészülék ( PS 4-201-MM1 ) I0.1 bemenetéhez van hozzárendelve. Az EN bemenet engedélyezi a funkcóelem működését. A funkcióelem indul, ha ez a bemenet magasba ( 0 → 1 ) vált. A funkcióelem leáll, és törlődik, ha ez a bemenet alacsonyba kapcsol ( 1 → 0 ). Az ACT bemenet jelzi, hogy milyen irányú jelváltozást figyeljen. A SOLL bemenet ( értékei: 1, .. , 65535 ) jelzi, hogy hányadik élváltozás után engedélyezett a megszakítás ( riasztás ), azaz mikor kell a funkcióelemet behívni. Az ERR kimenet tartalmazza a hibák kódjait: 0 = nincs hiba 1 = alapérték bemeneten 0 van A CNT kimenet ( értékei: 0, .. , 65535 ) jelzi, hogy az alapérték hányszor volt elérve, azaz hányszor történt megszakítás. Az AC bemenet lehetővé teszi egy esemény vezérelt program beillesztését. Ennek érdekében ezen a bemeneten az alprogram címét ( $ név ) kell megadni. Mikor az esemény bekövetkezik ( a CNT számláló eggyel nő ) az alprogram végrehajtódik. Ha ezen a bemeneten nincs cím, akkor csak a CNT számláló tartalma nő. Klöckner-Moeller
6-198
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
FALARM
FALARM
Megszakítástkérő élváltozás funkcióelem Riasztó él
ACT=0 SOLL=1 CNT
0
1
2
3
4
5
6
7
8
9
10
1
1
2
...
Ugrás az alprogramra $.. ACT=1 SOLL=5 CNT
0
0
0
0
0
1
1
1
2
0
1
Ugrás az alprogramra $.. Esemény vezérelt program alkalmazásakor az alábbi szempontokat kell figyelembe venni: • Az esemény bekövetkezte, a felhasználói program végrehajtását megszakítja, a regiszterek állapotát elmenti, és az AC bemeneten megadott címre ugorva végrehajtja az alprogramot. A Megszakítástkérő funkcióelem nem szakítható meg egy másik Megszakítástkérő funkcióelemmel ( az összes Megszakítástkérő funkcióelemnek azonos a prioritása ). • A felhasználói program 5 ms időtartamra ( kb. 1000 utasítássor végrehajtása ) korlátozza a Megszakítástkérő funkcióelemek végrehajtási idejét, mivel a Megszakítástkérő funkcióelemek működését a rendszerprogram sem tudja ( még tápvesztéskor sem ) megszakítani. Ha a végrehajtási időt túllépte a korlátot, akkor a táp kikapcsolásakor EDC hiba keletkezhet. • A Megszakítástkérő funkcióelem végrehajtási ideje hozzáadódik a felhasználói program végrehajtási idejéhez, és a ciklus idő ellenőrző így együtt figyeli. • Az esemény vezérelt program feldolgozásakor korlátozás nélkül elérhetők az átmeneti tárolók ( regiszterek ), a felhasználói program, és az esemény vezérelt program által közösen használt adatok bizonyára megsérülnek. A felhasználói programban, és a Megszakítástkérő funkcióelemben ugyanabban a bájtban bit hozzáférés csak úgy történhet, ha a DI, és EI utasítások a hozzáférés összeszinkronizált. • A gyors reagálás érdekében a Megszakítástkérő funkcióelem nagy sebességű periféria ( közvetlen kimenet ) elérést igényel, az alapkészüléken található QB, QPB Klöckner-Moeller
6-199
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
FALARM
FALARM
Megszakítástkérő élváltozás funkcióelem Riasztó él periféria operandusok használhatók. • Egy Megszakítástkérő funkcióelem többször használható ( többszöri felkészítés ), de ezt általában kerülni kell, mivel a Megszakítástkérő funkcióelem csoportok ugyanazzal az eseményforrással rendelkeznek ( esetünkben a I0.0 bemenettel ), és így a programban csak az utolsó funkcióelem érvényes. • A többszöri felkészítés azt jelenti, hogy egy egyedi funkcióelem típusnak az öszszes paraméter beállításához adatterületeket foglal le. A többszöri felkészítés csak akkor hasznos, ha a Megszakítástkérő funkcióelem alprogramja a funkcióelem paramétereit átírja, és egy él érvényesíti. Példa 00000 001 002 003 00001 001 00002 001 002 003 004 005 006 007 008 009 010 011 012 013 014 00003 001 00004 001 002 003
Klöckner-Moeller
BLOKK0
"a konfigurációs fájl beillesztése #include 'config.k42
BLOKK1
"program start
BLOKK2
"A FALARM0 Megszakítástkérő funkcióelemmel egy tar"tályban a víz szintjét szabályozzuk. Mikor a szint eléri a "jelzett értéket pozitív élváltozás történik az I0.1 "bemeneten a funkcióelem indítja a UP0 alprogramot. FALARM0 [ ] EN [ ] ACT [W] SOLL [B] ERR [W] CNT [$] AC
END !UP0
I 0.2 a funkcióelem engedélyezése K0 KW 1 MB 22 MW 124 $UP0
"mikor pozitív él érkezik a riasztó bemenetre a "a funkcióelem az UP0 alprogramot behívja. " a főprogram vége EP "alprogram L .. = .. .. .. 6-200
9/96 AWB 27-1186-H
FALARM
FUNKCIÓELEMEK
FALARM
Megszakítástkérő élváltozás funkcióelem Riasztó él EM
Klöckner-Moeller
6-201
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
FIFOB
FIFOB
Első be / elsőként ki regiszter Bájt Szintakszis Behívás:
FIFOB < Elemszám > - < Regiszterhossz > -R
-R csak akkor, ha retentív ( értékőrző ) regiszter szükséges.
Operandusként:
FIFOB < Elemszám >_< Bemenet / kimenet >
Regiszterhossz
1 ..128 opcionális
Végrehajtási idő:
265 µs
Ábrázolás Utasítássor FIFOB 57-60-R [ ] CF: [ ] CE: [ ] R: [B] I: [ ] F: [ ] E: [B] Q:
Beíró impulzus Kiolvasó impulzus Törlés Adat bemenet Regiszter tele Regiszter üres Adat kimenet
Igazság tábla Bemenet / Kimenet Adattípus Beírás Kiolvasás Törlés
Klöckner-Moeller
CF Bit
0 x
CE bit
R bit
I bájt
Q bájt
0
0 0 1
érték x x
x érték 0
x
6-202
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
FIFOB
FIFOB
Első be / elsőként ki regiszter Bájt Leírás Az "I" bemeneten levő érték a "CF" bemeneten megjelenő felfutó él hatására belép a regiszterben levő adatok utáni első üres helyre. A "CE" bemeneten megjelenő felfutó él kimásolja az elsőként beolvasott értéket a "Q" kimenetre, majd a regiszter tartalmát eggyel előre lépteti. Az "E", és az "F" kimenetek magas szintje jelzi, hogy a regiszter üres, illetve tele van. A regiszter tartalma alapállapotba kerül ( üres ), ha az "R" bemenet magas. Példa CE
CF
Q
7
6
5
4
x
019
255
035
095
3
2
1
0
I 014
CE
CF
Q
7
6
5
4
3
x
019
255
035
095
014
2
1
0
I
Az "I" bemeneten levő bájt a regiszter adatainak a tetejére kerül a "CF" bemeneten megjelenő felfutó él hatására. CE
CF
Q
7
6
5
4
3
x
019
255
035
095
014
2
1
0
I x
CE
CF
Q
7
6
5
4
019
255
035
095
014
3
2
1
0
I x
A "CE" bemeneten megjelenő felfutó él hatására a legalacsonyabb ( amelyik először lett betöltve ) regiszter bájt tartalma a "Q" kimenetre kerül, és regiszter többi bájtja eggyel shiftelődik mélyebbre. Klöckner-Moeller
6-203
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
FIFOW
FIFOW
Első be / elsőként ki regiszter Szó Szintakszis Behívás:
FIFOW < Elemszám > - < Regiszterhossz > -R
-R csak akkor, ha retentív ( értékőrző ) regiszter szükséges.
Operandusként:
FIFOW < Elemszám >_< Bemenet / kimenet >
Regiszterhossz
1 ..128 opcionális
Végrehajtási idő:
265 µs
Ábrázolás Utasítássor FIFOW 57-60-R [ ] CF: [ ] CE: [ ] R: [W] I: [ ] F: [ ] E: [W] Q:
Beíró impulzus Kiolvasó impulzus Törlés Adat bemenet Regiszter tele Regiszter üres Adat kimenet
Igazság tábla Bemenet / Kimenet Adattípus Beírás Kiolvasás Törlés
Klöckner-Moeller
CF Bit
0 x
CE bit
R bit
I bájt
Q bájt
0
0 0 1
érték x x
x érték 0
x
6-204
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
FIFOW
FIFOW
Első be / elsőként ki regiszter Szó Leírás Az "I" bemeneten levő érték a "CF" bemeneten megjelenő felfutó él hatására belép a regiszterben levő adatok utáni első üres helyre. A "CE" bemeneten megjelenő felfutó él kimásolja az elsőként beolvasott értéket a "Q" kimenetre, majd a regiszter tartalmát eggyel előre lépteti. Az "E", és az "F" kimenetek magas szintje jelzi, hogy a regiszter üres, illetve tele van. A FIFO regiszter tartalma alapállapotba kerül ( üres ), ha az "R" bemenet magas. Példa CE
Q x
CF
7
6
5
4
3
2
1
0
00197 12555 18367 10023
CE
Q x
I 13657
CF
7
6
5
4
3
2
1
0
I
00197 12555 18367 10023 13657
Az "I" bemeneten levő bájt a regiszter adatainak a tetejére kerül a "CF" bemeneten megjelenő felfutó él hatására. CE
Q x
CF
7
6
5
4
3
2
1
0
00197 12555 18367 10023 13657
CE
Q 00197
I x
CF
7
6
5
4
12555 18367 10023 13657
3
2
1
0
I x
A "CE" bemeneten megjelenő felfutó él hatására a legalacsonyabb ( amelyik először lett betöltve ) regiszter bájt tartalma a "Q" kimenetre kerül, és regiszter többi bájtja eggyel shiftelődik mélyebbre. Klöckner-Moeller
6-205
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
ICP
ICP
Adatterület összehasonlító Bájt Szintakszis Behívás:
ICP < Elemszám > -R
-R csak akkor, ha retentív ( értékőrző ) regiszter szükséges.
Operandusként:
ICP < Elemszám >_< Bemenet / kimenet >
Az elemek száma
1 ..255
Végrehajtási idő:
Erősen függ a forrás, és a cél adattartomány operandusainak típusától, számától. Szabványos értékek: MOD0: ( 244 + 7 x n ) µs MOD1: ( 244 + 20 x n ) µs n = az elemek száma
Ábrázolás Utasítássor ICP 5 [ ] [&] [&] [B] [ ] [ ] [ ] [B] [B]
MOD: SADR: DADR: NO: GT: EQ: LT: Q: ERR:
Megjegyzés! Az "ICP" funkcióelem részletes leírása adja a 9. fejezet "Közvetett címzés"
Klöckner-Moeller
6-206
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
ICP
ICP
Adatterület összehasonlító Bájt Leírás Bemenetek: MOD:
Üzemmód
= 1 adatterületek összehasonlítása = 2 keresés adatértékre
SADR:
Forrás cím
Az összehasonlítandó forrásterület kezdő címe.
DADR:
Célterület cím
Az összehasonlítandó célterület kezdő címe.
NO:
Elemek száma
Az összehasonlítandó területek adatainak száma. A SADR, és DADR adattípusától függően 1 .. 255.
Kimenetek:
Megjegyzés: az összehasonlítás nem előjel helyes.
GT:
Nagyobb, mint = 1 A SADR adatérték > DADR adatérték
EQ:
Egyenlő
= 1 Az adatértékek azonosak.
LT:
Kisebb, mint
= 1 A SADR adatérték < DADR adatérték
Q:
Kimenet
Összehasonlításkor a nem egyező adatérték, adatérték kereséskor a megtalált adat relatív távolságát mutatja a DADR terület kezdetétől. A relatív távolság értéke függ a DADR adatainak típusától, de az értéke minden esetben az alábbi határok között marad: 0 ≤ Q < NO.
ERR:
Hibakód
=0 =1 =2 =3 =4
A határértékek elfogadhatók NO tartalma 0 SADR nincs definiálva DADR nincs definiálva SADR, és DADR azonos.
A funkcióelemnek kétféle üzemmódja van ( adat keresés, és adatterület összehasonlítás ) , amik között a választás a MOD bemenetre tett értékkel történik.
Klöckner-Moeller
6-207
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
ICP
ICP
Adatterület összehasonlító Bájt Keresés üzemmód A keresés üzemmód egy az adatterületen elhelyezkedő egyedi érték megkeresésére szolgál. A minta adat, aminek a megfelelőjét keresi a SADR bemeneten definiált címen levő operandus tartalma, Az átvizsgálandó adatterület kezdő címe a DADR bemeneten van. Azt, hogy az operandust címként kell értelmezni a operandus elé helyezett " &" címoperátor jelzi. Ha megtalálja a megadott ( SADR ) értéket a kijelölt (DADR bemeneten ) címtől kezdve megadott (NO bemeneten ) számú elemet átvizsgálva, akkor a megtalált adat helyzete a Q kimenetre, és az EQ kimenet magasba ( =1 ) kerül. A kimenetek állapota, amikor az értéket megtalálta az alábbi: Q = 0 .. (NO bemeneten megadott érték) között; EQ = 1; LT = 0; GT = 0; Ha a megadott értéket nem találja meg a kijelölt területen, akkor a Q kimenet az NO tartalmával egyenlő, és az EQ kimenetre "0" íródik, a LT, és a GT kimenetek pedig az utolsó adatérték összehasonlításkor felvett értékűket tartják meg. A kimenetek állapota, amikor az értéket nem találta meg az alábbi: Q = (NO bemeneten megadott érték) EQ = 0; LT ; GT ( 0 vagy 1 ) Az alábbi példában a MB 23 merker bájtban tárolt "7D" érték keresett a MB 27, és a MB 32 által határolt adatterületen Funkcióelem
Merker mező
ICP 10 [ ] MOD: [&] SADR: [&] DADR: [B] NO: [ ] GT: [ ] EQ: [ ] LT: [B] Q: [B] ERR:
Eredmény
K0 &MB 23 &MB 27 KB 6
Q=3 LT = 0 EQ = 1 GT = 0
MB 23 MB 24 MB 25 MB 26 MB 27 MB 28 MB 29 MB 30 MB 31 MB 32 MB 33 MB 34
7D 00 00 00 3D 70 4D 7D 7D 7D 00 00 találatkor abbahagyja a keresési eljárást
A "7D" értéket a DADR + (Q értéke) címen találta meg. ( Jelen esetben MB 27 + 3 ) Klöckner-Moeller
6-208
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
ICP
ICP
Adatterület összehasonlító Bájt Összehasonlítás üzemmód Az adatterület összehasonlítás üzemmód két adatterület tartalmát hasonlítja össze. Az adatterületek kezdete a SADR, és a DADR bemeneteken, az adatterület mérete a NO bemeneten adott. Ha a két adatterület tartalma azonos, akkor a Q kimenetre NO értéke, és az EQ kimenetre 1 kerül. A kimenetek állapota, amikor az adatterületek azonosak az alábbi: Q = NO bemeneten megadott érték; EQ = 1; LT = 0; GT = 0; Ha a megadott adatterületek nem azonosak, akkor a Q kimenet jelzi az eltérő adat helyét. Az EQ kimenetbe "0" íródik, a LT, és a GT kimenetek az eltérő adatértékek összehasonlításkor felvett értékűek. A kimenetek állapota, amikor az adatterületek nem azonosak az alábbi: Q = 0 .. NO - 1 között; EQ = 0; LT ; GT tartalma függ az összehasonlítástól Az alábbi példa a MB 23, és MB 26 közötti merker bájtok tartalmát hasonlítja össze a MB 30, és a MB 33 közötti merker bájtok tartalmával. Funkcióelem
Merker mező
ICP 10 [ ] MOD: [&] SADR: [&] DADR: [B] NO: [ ] GT: [ ] EQ: [ ] LT: [B] Q: [B] ERR:
Eredmény
K0 &MB 23 &MB 30 KB 4
Q=4 LT = 0 EQ = 1 GT = 0
MB 23 MB 24 MB 25 MB 26 MB 27 MB 28 MB 29 MB 30 MB 31 MB 32 MB 33 MB 34
7D 3B 64 A6 00 00 00 7D 3B 64 A6 00 összehasonlítás
A két adatterület azonos. Ezt a EQ = 1, és a Q = NO együtt jelzi.
Klöckner-Moeller
6-209
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
ICPY
ICPY
Adatblokk áthelyezés Közvetett másolás Bájt Szintakszis Behívás:
ICPY < Elemszám > -R
-R csak akkor, ha retentív ( értékőrző ) regiszter szükséges.
Operandusként:
ICPY < Elemszám >_< Bemenet / kimenet >
Az elemek száma
1 ..255
Végrehajtási idő:
Erősen függ a forrás, és a cél adattartomány operandusainak típusától, számától. Szabványos értékek: MOD0: ( 355 + 25 x n ) µs MOD1: ( 355 + 10 x n ) µs n = az elemek száma
Ábrázolás Utasítássor ICPY 63 [ ] MOD: [&] SADR: [&] DADR: [B] NO: [B] ERR:
Megjegyzés! Az "ICPY" funkcióelem részletes leírása adja a 9. fejezet "Közvetett címzés"
Klöckner-Moeller
6-210
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
ICPY
ICPY
Adatblokk áthelyezés Közvetett másolás Bájt Leírás Bemenetek: MOD:
Üzemmód
= 1 adatterület másolása = 2 adatterület értékadása
SADR:
Forrás cím
Az másolandó, forrásterület kezdő címe.
DADR:
Célterület cím
A célterület (ahová a lemásolt adatok kerülnek, illetve ahol az értékadás történik ) kezdő címe.
NO:
Elemek száma
Az adatterület elemeinek száma. A SADR, és DADR adattípusától függően 1 .. 255.
Hibakód
=0 =1 =2 =3 =4
Kimenet: ERR:
A határértékek elfogadhatók NO tartalma 0 SADR nincs definiálva DADR nincs definiálva SADR, és DADR azonos.
Az ICPY funkcióelem a rendszer adattartományán belül adatok átmásolását végzi. Az átmásolás mindig a "forrás" területről a "cél" területre történik. Merkerek ( M. ), a kommunikációs adatok ( RD / SD ), és a többi funkcióelem cím bemenetei használhatók, mint operandusok a címoperátorral együtt a cím bemeneteken. A funkcióelem kétféle üzemmódban használható. Az üzemmód választása a MOD bemeneten történik. Az 1 érték a másolás üzemmódot, a 0 érték az értékadás üzemmódot választja ki. A funkcióelem használatakor a különbség az adat, és a cím között fontos. A szokványos műveletekben, mint például a L M 2.2, mindig az operandus tartalma ( ebben az esetben a merkercella tartalma ) az, amire a művelet hat. Az adatterület áthelyezés esetében a forrásterület címet ( SADR ), és a célterület címet ( DADR ) elő kell írni. Emiatt itt szükséges a címoperátor "&" használata. A címoperátor jelzi, hogy a mögötte álló operandus tartalma cím, és nem adatérték.
Klöckner-Moeller
6-211
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
ICPY
ICPY
Adatblokk áthelyezés Közvetett másolás Bájt Másolás üzemmód Az NO bemenetre tett érték határozza meg adatcellák számát. A másolás kezdetének a helyét a SADR bemeneten, a célterület kezdetét a DADR bemeneten levő cím adja meg. Az alábbi példa az MB 23, és az MB 26 közötti merker terület tartalmának átmásolása az MB 30, és a MB 33 közötti merker területre.
Funkcióelem ICPY 0 [ ] MOD: [&] SADR: [&] DADR: [B] NO: [B] ERR:
Merker mező
K0 &MB 23 &MB 30 KB 4
MB 23 MB 24 MB 25 MB 26 MB 27 MB 28 MB 29 MB 30 MB 31 MB 32 MB 33 MB 34
7D 3B 64 A6 00 00 00 7D 3B 64 A6 00 másolás
Klöckner-Moeller
6-212
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
ICPY
ICPY
Adatblokk áthelyezés Közvetett másolás Bájt Értékadás üzemmód Az áthelyezendő alapérték a SADR bemeneten levő címen kijelölt adat bájt értéke. Az alaphelyzetbe állítandó adatcellák számát a NO bemeneten megadott érték. A céltartomány kezdetének címe a DADR bemeneten van. Az alábbi példa az MB 23 merker bájt tartalmának beírása az MB 27, és a MB 32 közötti merker bájtokba. Funkcióelem ICPY 0 [ ] MOD: [&] SADR: [&] DADR: [B] NO: [B] ERR:
Merker mező
K0 &MB 23 &MB 27 KB 6
MB 23 MB 24 MB 25 MB 26 MB 27 MB 28 MB 29 MB 30 MB 31 MB 32 MB 33 MB 34
7D 00 00 00 7D 7D 7D 7D 7D 7D 00 00 alapérték beírás
Klöckner-Moeller
6-213
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
LIFOB
LIFOB
Utolsó be / elsőként ki Veremregiszter Bájt Szintakszis Behívás:
LIFOB < Elemszám > - < Regiszterhossz > -R
-R csak akkor, ha retentív ( értékőrző ) regiszter szükséges.
Operandusként:
LIFOB < Elemszám >_< Bemenet / kimenet >
Regiszterhossz
1 ..128 opcionális
Végrehajtási idő:
255 µs
Ábrázolás Utasítássor FIFOB 57-60-R [ ] CF: [ ] CE: [ ] R: [B] I: [ ] F: [ ] E: [B] Q:
Beíró impulzus Kiolvasó impulzus Törlés Adat bemenet Regiszter tele Regiszter üres Adat kimenet
Igazság tábla Bemenet / Kimenet Adattípus Beírás Kiolvasás Törlés
CF Bit
0 x
CE bit
R bit
I bájt
Q bájt
0
0 0 1
érték x x
x érték 0
x
Leírás Az "I" bemeneten levő érték a "CF" bemeneten megjelenő felfutó él hatására belép a veremregiszterbe. A "CE" bemeneten megjelenő felfutó él kimásolja a veremregiszter tetején levő értéket a "Q" kimenetre. Az "E", és az "F" kimenetek magas szintje jelzi, hogy a regiszter üres, illetve tele van. A regiszter tartalma alapállapotba kerül ( üres ), ha az "R" bemenet magas. Klöckner-Moeller 6-214 9/96 AWB 27-1186-H
FUNKCIÓELEMEK
LIFOB
LIFOB
Utolsó be / elsőként ki Veremregiszter Bájt
Példa CF
7
I
CF
7
I
062
6
6
5
5
4
4 062
3
3
047
047
2
2
025
025
1
1
033
033
0
0
255
255
Az I bemenet tartalma a CF bemenet felfutó élére belép a veremregiszter tetejére.
Q
7
CEI
Q
7
CE
062
6
6
5
5
4
4
062
3
3
047
047
2
2
025
025
1
1
033
033
0
0
255
255
A veremregiszter tetején levő érték a CE bemenet felfutó élére kilép a Q kimenetre. Klöckner-Moeller
6-215
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
LIFOW
LIFOW
Utolsó be / elsőként ki Veremregiszter Bájt Szintakszis Behívás:
LIFOW < Elemszám > - < Regiszterhossz > -R
-R csak akkor, ha retentív ( értékőrző ) regiszter szükséges.
Operandusként:
LIFOW < Elemszám >_< Bemenet / kimenet >
Regiszterhossz
1 ..128 opcionális
Végrehajtási idő:
265 µs
Ábrázolás Utasítássor FIFOW 57-60-R [ ] CF: [ ] CE: [ ] R: [B] I: [ ] F: [ ] E: [B] Q:
Beíró impulzus Kiolvasó impulzus Törlés Adat bemenet Regiszter tele Regiszter üres Adat kimenet
Igazság tábla Bemenet / Kimenet Adattípus Beírás Kiolvasás Törlés
CF Bit
0 x
CE bit
R bit
I bájt
Q bájt
0
0 0 1
érték x x
x érték 0
x
Leírás Az "I" bemeneten levő érték a "CF" bemeneten megjelenő felfutó él hatására belép a veremregiszterbe. A "CE" bemeneten megjelenő felfutó él kimásolja a veremregiszter tetején levő értéket a "Q" kimenetre. Az "E", és az "F" kimenetek magas szintje jelzi, hogy a regiszter üres, illetve tele van. A regiszter tartalma alapállapotba kerül ( üres ), ha az "R" bemenet magas. Klöckner-Moeller 6-216 9/96 AWB 27-1186-H
FUNKCIÓELEMEK
LIFOW
LIFOW
Utolsó be / elsőként ki Veremregiszter Bájt
Példa CF
7
I
CF
7
I
02384
6
6
5
5
4
4 02384
3
3
00034
00034
2
2
01383
01383
1
1
00346
00346
0
0
12764
12764
Az I bemenet tartalma a CF bemenet felfutó élére belép a veremregiszter tetejére.
Q
7
CEI
Q
7
CE
02384
6
6
5
5
4
4
02384
3
3
00034
00034
2
2
01383
01383
1
1
00346
00346
0
0
12764
12764
A veremregiszter tetején levő érték a CE bemenet felfutó élére kilép a Q kimenetre. Klöckner-Moeller
6-217
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
LIFOW
LIFOW
Utolsó be / elsőként ki Veremregiszter Bájt
Klöckner-Moeller
6-218
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
RDAT
RDAT
Adat visszatöltés Bájt Szintakszis Behívás:
RDAT < Elemszám >
Végrehajtási idő:
( 330 + 25 x n ) µs n = az elemek száma
Ábrázolás Utasítássor RDAT 1 [ ] S: [&] DADR: [W] SGNO: [B] LEN: [B] ERR:
Engedélyező bemenet A célterület kezdő címe Szegment szám ( 0 .. 511 ) Szegment hossz ( 1 .. 128 ) Hiba kimenet
Leírás Bármely adat, amelyet az SDAT funkcióelem már eltárolt, visszanyerhető a memória modulból az aktív memória területre az RDAT funkcióelemmel. Az adatok elmenthetők, ha bármely PS 4-201 típusszámmal kezdődő készülékhez memória modul csatlakozik. A memória modul 64 Kbájtos, és logikailag fel van osztva 512 darab, egyenként 128 bájtos szegmentre. A memória modul tipikus felhasználása a hideg indítás részére értékőrző adatterület biztosítása. Az RDAT, és SDAT funkcióelemek másik fontos alkalmazása, ha ez szükséges, a készülék konfiguráció módosítása előtt az értékőrző merker tartományok elmentése. További információt talál erről az 1 fejezet "Rendszer paraméterek" alfejezetében. Az RDAT funkcióelemet úgy alakították ki, hogy a közvetett címzési módot használja. Lásd: 8. fejezet "Közvetett címzés".
Klöckner-Moeller
6-219
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
RDAT
RDAT
Adat visszatöltés Bájt Hibaüzenetek Az ERR kimenet tartalmazza a lehetséges hibák kódját 1: 2: 3: 4: 5: 6:
nincs jelen a memória modul az elérés nem lehetséges az "online" kapcsolat miatt az elérés nem lehetséges az SDAT egyidejű használat miatt SIGNO nagyobb, mint 511 LEN nagyobb, mint 128 A DADR paraméter inkorrekt beállítása
Példa RDAT 12 [ ] S: [&] DADR: [W] SIGNO: [B] LEN: [B] ERR:
Klöckner-Moeller
I 0.3 Ha az I 0.0.0.0.3 magasra ( 1 ) vált &MB 23 az MB 23 merkerbájt tartalma által meghatározott címtől kezdődő területre KW 5 a memória modul 5. szegmentéből kimásolódik KB 127 127 bájt hosszú információ. MB 12 Az esetleges hibák kódja itt található.
6-220
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
SCK
SCK
Valósidejű óra beállítása Óra beállítás
Szintakszis Behívás:
SCK < Elemszám >
Végrehajtási idő:
760 µs
Ábrázolás Utasítássor RDAT 1 [ ] S: [&] SADR: [B] ERR:
Engedélyező bemenet Adat cím ( közvetett ) Hiba kimenet
Leírás Ha az "S" bemeneten 0 → 1 váltás történik az óra újra beíródik azzal az értékkel, amit a SADR kijelöl. Az óra új adatai közvetve érhetők el a SADR bemenetre tett címen. Az adathossz nincs megadva, mivel a szabványos 7 bájt ( év, hónap, nap, hét napja, óra, perc, másodperc ) kerül automatikusan átadásra. Ez azt jelenti, hogy az óra csak akkor működik helyesen, ha az összes paramétere definiált. Az SCK funkcióelemet úgy alakították ki, hogy a közvetett címzési módot használja. Lásd: 8. fejezet "Közvetett címzés". Hibaüzenetek Az ERR kimenet tartalmazza a lehetséges hibák kódját 1: 2: 3: 4: 5: 6: 7: 8:
Inkorrekt SADR paraméter Inkorrekt év paraméter ( 0 - 99 ) Inkorrekt hónap paraméter ( 1 - 12 ) Inkorrekt nap paraméter ( 1 - 31 ) Inkorrekt hét napjai paraméter ( 0 - 6, 6 = vasárnap ) Inkorrekt óra paraméter ( 0 - 23 ) Inkorrekt perc paraméter ( 0 - 59 ) Inkorrekt másodperc paraméter ( 0 - 59 )
Klöckner-Moeller
6-221
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
SCK
SCK
Valósidejű óra beállítása Óra beállítás
Példa BLOKK1
BLOKK2
"Új paraméterek definiálása az SCK0 funkcióelem számára "hogy átállítsa a valósidejű órát L KB 94 = MB 10
év 1994
L KB 3 = MB 11
hónap március
L KB 27 = MB 12
nap 27
L KB 0 = MB 13
hét napja vasárnap
L KB 3 = MB 14
óra 3
L KB 0 = MB 15
perc 0
L KB 0 = MB 16
másodperc 0
A valósidejű óra állítása az SCK 0 funkcióelemmel. SCK 0 [ ] S [&] SADR [B] ERR
END
M 0.0 SCK 0 engedélyezése &MB 10 MB 20
"program vége EP
A példa mutatja, hogy a valósidejű óra beállításához igényelt merker tartományt hogyan kell meghatározni, valamint hogyan állítható át a valósidejű óra az SCK funkcióelemmel.
Klöckner-Moeller
6-222
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
SCO
SCO
Soros kommunikáció
Szintakszis Behívás: Végrehajtási idő:
SCO < Elemszám > 200 µs
Ábrázolás Utasítássor SCO 0 [ ] [B] [B] [&] [B] [ ] [B] [B]
S: CMD: CRD: MADR: NO: BUSY: ND: ERR:
Strobe ( engedélyező impulzus ) Parancs ( 1.. 4 ). Interfész kiválasztás A küldött, vagy fogadott adatok kezdőcíme A küldött, vagy fogadott adatok terjedelme A funkcióelem státusa A küldött, vagy fogadott adatbájtok száma Hiba üzenet
Megjegyzés! Az "ICPY" funkcióelem részletes leírása adja a 7. fejezet "Kommunikációs funkcióelem"
Leírás A PLC RS 232, vagy RS 485 interfészein keresztül a kommunikációt az SCO funkcióelem szervezi. A transzparens ( képernyőn, ember-gép készüléken, vagy egyéb terminálon kivetített, megjelenített, vagy kiválasztott ) adatokat lehet küldeni, vagy fogadni ezeken az interfészeken A felhasználói program, és a PLC-hez csatlakoztatott terminál között az interfészt ez a funkcióelem reprezentálja.
Klöckner-Moeller
6-223
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
SCO
SCO
Soros kommunikáció
A kommunikáció az RS 232 interfészen keresztül 9600 baud adatátviteli sebességgel, 8 adat bit, 1 stop bit, paritás bit nélkül valósul meg. ( baud = bit/ sec. ) Az RS 485 interfészen történő adatátvitelkor néhány paraméter állítása lehetséges. A paraméterek a Sucosoft S 30-S4 "Készülék konfiguráció menü”-jében állíthatók. A funkcióelemmel az RS 232 interfészen keresztül 1 bájttól 63 bájtig, az RS 485 interfészen keresztül 1 bájtól 127 bájtig küldhető át adat. A funkcióelem vezérli az adatküldés, és fogadás folyamatát, de nem párhuzamosan, minthogy az adatátvitel fél-duplex módon történik. Az adatküldés feladata magasabb prioritású, mint az adatfogadás feladata. Ha mindkét interfészen váltakozva akarunk adatot küldeni, akkor két SCO funkcióelem behívása szükséges, egy az RS 232, egy másik az RS 485 interfész számára.
Az interfészekhez saját funkcióelemet rendelni felhasználó barát cselekedet!
A funkcióelem értékőrző ( retentív ) beállítási lehetősséggel nem rendelkezik. CTS/RTS "handshake" ( fogadóoldali összekötetési módszer IEEE 488 szabvány ) nincs.
Klöckner-Moeller
6-224
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
SDAT
SDAT
Adat mentés
Szintakszis Behívás:
SDAT < Elemszám >
Végrehajtási idő:
( 330 + 25 x n ) µs n = az elemek száma
Ábrázolás Utasítássor SDAT 1 [ ] S: [&] SADR: [W] SGNO: [B] LEN: [B] ERR:
Engedélyező bemenet A forrásterület kezdő címe Szegment szám ( 0 .. 511 ) Szegment hossz ( 1 .. 128 ) Hiba kimenet
Leírás Az bármely adat elmenthető az SDAT funkcióelemmel, ha bármely PS 4-201 típusszámmal kezdődő készülékhez memória modul csatlakozik. A memória modul 64 Kbájtos, és logikailag fel van osztva 512 darab, egyenként 128 bájtos szegmentre. Az adatok visszatölthetők az aktív memória területre az RDAT funkcióelemmel. A memória modul tipikus felhasználása a hideg indítás részére értékőrző adatterület biztosítása. Az RDAT, és SDAT funkcióelemek másik fontos alkalmazása, ha ez szükséges, a készülék konfiguráció módosítása előtt az értékőrző merker tartományok elmentése. További információt talál erről az 1 fejezet "Rendszer paraméterek" alfejezetében. Az SDAT funkcióelemet úgy alakították ki, hogy a közvetett címzési módot használja. Lásd: 8. fejezet "Közvetett címzés".
Klöckner-Moeller
6-225
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
SDAT
SDAT
Adat mentés
Hibaüzenetek Az ERR kimenet tartalmazza a lehetséges hibák kódját 1: 2: 3: 4: 5: 6:
nincs jelen a memória modul az elérés nem lehetséges az "online" kapcsolat miatt az elérés nem lehetséges az RDAT egyidejű használat miatt SIGNO nagyobb, mint 511 LEN nagyobb, mint 128 A SADR paraméter inkorrekt beállítása
Példa SDAT 12 [ ] S: [&] SADR: [W] SIGNO: [B] LEN: [B] ERR:
Klöckner-Moeller
I 0.3 Ha az I 0.0.0.0.3 magasra ( 1 ) vált &MB 23 az MB 23 merkerbájt tartalma által meghatározott címtől kezdődően KW 5 a memória modul 5. szegmentébe beíródik KB 127 127 bájt hosszú információ MB 12 Az esetleges hibák kódja itt található.
6-226
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
SK
SK
Lépéslánc funkcióelem
Szintakszis Behívás:
SK < Elemszám > - < Lépések száma > -R
-R csak akkor, ha retentív ( értékőrző ) regiszter szükséges.
Operandusként:
SK < Elemszám >_< Bemenet / kimenet >
Lépések száma Egymásba agyazás mélysége
1 ..99 8
Végrehajtási idő:
SET = RESET = 0 esetén RESET = 1 esetén SET = 1 esetén érvénytelen SINO esetén
kb. 130 µs kb. 240 µs kb. 250 µs kb. 150 µs
Ábrázolás Utasítássor SK 3-14 [ ] S: [ ] R: [B] SINO: [B] ERR: [B] SQNO: [ ] TG: [$] INIT: [$] AC1: [$] AC2: [$] AC3: [$]
AC14:
Beírás Törlés Lépés száma bemenet Hiba kimenet Lépés száma kimenet Lépés váltás kijelző Modul behívás "reset" után Alprogram 1 címe Alprogram 2 címe Alprogram 3 címe Alprogram 14 címe
Megjegyzés! A funkcióelem használatának részletes magyarázata a 8. fejezetben van. Leírás A Lépéslánc funkcióelem felhasználásával egyszerűen, és gyorsan készíthető strukturált felhasználói program. Az összes Lépéslánc funkcióelem 99 lépést képes irányítani. A Lépéslánc funkcióelem lépései tartalmazhatnak Lépésláncot, így maximum 8 mélységben egymásba ágyazhatók. Klöckner-Moeller
6-227
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
SK
SK
Lépéslánc funkcióelem
A Lépéslánc egyes lépései alprogramok, amelyek a végrehajtandó utasításokat tartalmazzák. Lépéslánc funkcióelemmel a sorrendi vezérlés logikai struktúrája közvetlenül beépíthető a felhasználói programba. A Lépéslánc funkcióelem be-, és kimeneteinek jelentése: S Beírás Engedélyezi a Lépéslánc működését R Törlés Törli a Lépéslánc aktuális állapotát, és indítja a $INIT alprogramot, ha van, az alapérték beállítás érdekében. SINO A lépések száma bemenet A bemenetre tett számnak megfelelő lépés lesz aktiválva. ERR Hiba A hibás kapcsolat megjelenítése. A hiba oka Hibakód Bináris 00000001
A hiba hatása
Decimális A SINO bemeneten 0 érték van. 1
00000010
2
00000100
3
A SINO bemeneten levő érték meghaladja a megengedett lépésszámot. Nincs alprogram a kapcsolt AC.. kimeneten.
A funkcióelem passzív. Nem hajt végre alprogramot. A hiba kimenet jelez. A funkcióelem az előző állapotában marad. A hiba kimenet jelez. A kiválasztott lépés betöltődik, de mivel nincs jelen alprogram a semmi lesz feldolgozva.
SQNO Lépések száma kimenet Az éppen feldolgozás alatt levő lépés számát mutatja. Az egymásba ágyazás nyomon követését segíti. TG Váltó kimenet A TG kimenet jelzi az átváltást az egyik lépésről a másikra. Amíg a lépés aktív a TG magas, csak a lépés végrehajtás első ciklusában marad alacsony. INIT Alapérték beállítás A "reset" bemenet aktívvá válásakor lefutó alprogram neve.
Példa: $INIT
AC.. Cselekvés A lépés aktív állapotában végrehajtott alprogram neve.
Példa: $APR1
Klöckner-Moeller
6-228
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
SR
SR
Shiftregiszter Bit Szintakszis Behívás:
SR < Elemszám > - < Regiszterhossz > -R
-R csak akkor, ha retentív ( értékőrző ) regiszter szükséges.
Operandusként:
SR < Elemszám >_< Bemenet / kimenet >
Regiszterhossz
1 ..128
Végrehajtási idő:
148 µs + (n-1) x 20 µs n = regiszterhossz
Ábrázolás Utasítássor SR 54-13-R [ ] U: [ ] D: [ ] R: [ ] IU: [ ] ID: [ ] Q0: [ ]
Q12:
Előre léptető impulzus Hátra léptető impulzus Törlés Előre léptetésnél belépő adat Hátra léptetésnél belépő adat Első kimenet bit Regiszterhossz Utolsó kimenet bit
(n-1) Regiszterhossz
Igazság tábla Bemenetek Adattípus Shift előre Shift hátra Törlés
Klöckner-Moeller
U Bit
0 x
D bit
R bit
IU bit
ID bit
0
0 0 1
érték x x
x érték x
x
6-229
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
SR
SR
Shiftregiszter Bit Leírás Az "IU" bemeneten levő érték az "U" bemeneten megjelenő felfutó él hatására belép az első regiszter helyre. A regiszter eredeti tartalma egy lépéssel előre ( felfelé ) lép. D
U
ID
7
6
5
4
3
2
1
0
IU
x
1
1
0
0
1
1
0
1
1
D
U shiftelés iránya
ID
7
6
5
4
3
2
1
0
x
1
0
0
1
1
0
1
1
IU
8 bit hosszú shiftregiszter az IU bemenet figyelembevételével egyet előre lép.
Az "ID" bemeneten levő érték az "D" bemeneten megjelenő felfutó él hatására belép az utolsó regiszter helyre. A regiszter eredeti tartalma egy lépéssel hátra ( lefelé ) lép. D
U
ID
7
6
5
4
3
2
1
0
IU
x
1
0
0
1
1
0
0
1
x
D
U shiftelés iránya
Q
7
6
5
4
3
2
1
0
IU
0
1
0
0
1
1
0
1
x
8 bit hosszú shiftregiszter az ID bemenet figyelembevételével egyet hátra lép.
A Q kimenet a belső megjelenítése a regiszter aktuális tartalmának. Mikor az R törlő bemenet magas, akkor a regiszter tartalma törlődik, azaz alaphelyzetbe kerül. Ha az U, és a D bemeneten ugyanakkor jelenik meg a felfutó él, akkor az előre léptetés végrehajtása megelőzi a hátra léptetés végrehajtását. Klöckner-Moeller
6-230
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
SR
SR
Shiftregiszter Bit A regiszterhossz 128 lépésben van korlátozva. Néhány shiftregiszter egymáshoz fűzhető, és így 128 shift lépésnél hosszabb regiszter is kialakítható. Példa SR 14-8 U: I 0.1 D: I 0.2 R: I 0.3 IU: I 0.4 ID: SR 15 Q0 Q0: = M 100.0 Q1: = M 100.1 Q2: = M 100.2 Q3: = M 100.3 Q4: = M 100.4 Q5: = M 100.5 Q6: = M 100.6 Q7: = M 100.7 SR 15-8 U: I 0.1 D: I 0.2 R: I 0.3 IU: I 0.4 ID: SR 15 Q0 Q0: = M 100.0 Q1: = M 100.1 Q2: = M 100.2 Q3: = M 100.3 Q4: = M 100.4 Q5: = M 100.5 Q6: = M 100.6 Q7: = M 100.7
Klöckner-Moeller
Előre léptető impulzus Hátra léptető impulzus Törlés Előre léptetésnél belépő adat Hátra léptetésnél belépő adat Első kimenet bit .. .. Utolsó kimenet bit Előre léptető impulzus Hátra léptető impulzus Törlés Előre léptetésnél belépő adat Hátra léptetésnél belépő adat Első kimenet bit .. .. Utolsó kimenet bit
6-231
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
SR
SR
Shiftregiszter Bit A két összekapcsolt 8 lépéses bit shiftregiszter együtt dupla hosszú 16 lépéses bit shiftregisztert alkot. ( Ezt a példa csak a shiftregiszterek sorbaköthetőségének szemléltetésére készült. Az adott feladat egyszerűbben megoldható, ha az SR 14 shiftregisztert 16 regiszterhoszszal definiáljuk: SR 14-16. )
Klöckner-Moeller
6-232
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
SRB
SRB
Shiftregiszter Bájt Szintakszis Behívás:
SRB < Elemszám > - < Regiszterhossz > -R
-R csak akkor, ha retentív ( értékőrző ) regiszter szükséges.
Operandusként:
SRB < Elemszám >_< Bemenet / kimenet >
Regiszterhossz
1 ..128
Végrehajtási idő:
148 µs + (n-1) x 20 µs n = regiszterhossz
Ábrázolás Utasítássor SR 54-13-R [ ] U: [ ] D: [ ] R: [B] IU: [B] ID: [B] Q0: [B]
Előre léptető impulzus Hátra léptető impulzus Törlés Előre léptetésnél belépő adat Hátra léptetésnél belépő adat Első kimenet bájt
Q12:
Utolsó kimenet bájt
(n-1) Regiszterhossz
Igazság tábla Bemenetek Adattípus
U Bit
Shift előre Shift hátra Törlés
0 x
Klöckner-Moeller
D bit
R bit
IU bit
ID bit
0
0 0 1
érték x x
x érték x
x
6-233
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
SRB
SRB
Shiftregiszter Bájt Leírás Az "IU" bemeneten levő érték az "U" bemeneten megjelenő felfutó él hatására belép az első regiszter helyre. A regiszter eredeti tartalma egy lépéssel előre ( felfelé ) lép. D
U
ID
7
6
5
4
3
2
1
0
IU
x
019
255
035
086
122
023
082
003
102
D
U shiftelés iránya
ID
7
6
5
4
3
2
1
0
x
255
035
086
122
023
082
003
102
IU
8 lépés hosszú bájt shiftregiszter az IU bemenet figyelembevételével egyet előre lép.
Az "ID" bemeneten levő érték az "D" bemeneten megjelenő felfutó él hatására belép az utolsó regiszter helyre. A regiszter eredeti tartalma egy lépéssel hátra ( lefelé ) lép. D
U
ID
7
6
5
4
3
2
1
0
IU
007
255
035
086
122
023
082
003
102
x
D
U shiftelés iránya
Q
7
6
5
4
3
2
1
0
IU
007
255
035
086
122
023
082
003
x
8 lépés hosszú bájt shiftregiszter az ID bemenet figyelembevételével egyet hátra lép.
A Q kimenet a belső megjelenítése a regiszter aktuális tartalmának. Mikor az R törlő bemenet magas, akkor a regiszter tartalma ( az összes bájt ) törlődik, azaz alaphelyzetbe kerül. Ha az U, és a D bemeneten ugyanakkor jelenik meg a felfutó él, akkor az előre léptetés végrehajtása megelőzi a hátra léptetés végrehajtását. A regiszterhossz 128 lépésben van korlátozva. Ha hosszabb shiftregiszterre van szükség, akkor néhány shiftregiszter egymáshoz fűzhető. Klöckner-Moeller
6-234
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
SRW
SRW
Shiftregiszter Szó Szintakszis Behívás:
SRW < Elemszám > - < Regiszterhossz > -R
-R csak akkor, ha retentív ( értékőrző ) regiszter szükséges.
Operandusként:
SRW < Elemszám >_< Bemenet / kimenet >
Regiszterhossz
1 ..128
Végrehajtási idő:
158 µs + (n-1) x 65 µs n = regiszterhossz
Ábrázolás Utasítássor SR 54-13-R [ ] U: [ ] D: [ ] R: [W] IU: [W] ID: [W] Q0: [W]
Előre léptető impulzus Hátra léptető impulzus Törlés Előre léptetésnél belépő adat Hátra léptetésnél belépő adat Első kimenet bájt
Q12:
Utolsó kimenet bájt
(n-1) Regiszterhossz
Igazság tábla Bemenetek Adattípus
U Bit
Shift előre Shift hátra Törlés
0 x
Klöckner-Moeller
D bit
R bit
IU bit
ID bit
0
0 0 1
érték x x
x érték x
x
6-235
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
SRW
SRW
Shiftregiszter Szó Leírás Az "IU" bemeneten levő érték az "U" bemeneten megjelenő felfutó él hatására belép az első regiszter helyre. A regiszter eredeti tartalma egy lépéssel előre ( felfelé ) lép. D
ID x
U
7
6
5
4
3
2
1
0
00197 02555 18367 00023 12987 00292 09688 00023
D
IU 13857
U shiftelés iránya
ID x
7
6
5
4
3
2
1
0
IU
02555 18367 00023 12987 00292 09688 00023 13857
8 lépés hosszú szó shiftregiszter az IU bemenet figyelembevételével egyet előre lép.
Az "ID" bemeneten levő érték az "D" bemeneten megjelenő felfutó él hatására belép az utolsó regiszter helyre. A regiszter eredeti tartalma egy lépéssel hátra ( lefelé ) lép. D
ID 00984
U
7
6
5
4
3
2
1
0
02555 18367 00023 13987 00292 09688 00023 13657
D
IU x
U shiftelés iránya
Q
7
6
5
4
3
2
1
0
00984 02555 18367 00023 13987 00292 09688 00023
IU x
8 lépés hosszú szó shiftregiszter az ID bemenet figyelembevételével egyet hátra lép.
A Q kimenet a belső megjelenítése a regiszter aktuális tartalmának. Mikor az R törlő bemenet magas, akkor a regiszter tartalma ( az összes szó ) törlődik, azaz alaphelyzetbe kerül. Ha az U, és a D bemeneten ugyanakkor jelenik meg a felfutó él, akkor az előre léptetés végrehajtása megelőzi a hátra léptetés végrehajtását. A regiszterhossz 128 lépésben van korlátozva. Ha hosszabb shiftregiszterre van szükség, akkor néhány shiftregiszter egymáshoz fűzhető. Klöckner-Moeller
6-236
9/96 AWB 27-1186-H
TALARM
FUNKCIÓELEMEK
TALARM
Megszakítástkérő időzítő funkcióelem Riasztó időzítő
Szintakszis Behívás:
TALARM 0
Végrehajtási idő:
20 µs alprogram nélkül ( SP ) 240 µs + az alprogram végrehajtásához szükséges idő
Ábrázolás Utasítássor TALARM 0 [ ] BN [B] MOD [W] VT [W] SOLL [B] ERR [W] CNT [$] AC
: Megszakítás engedélyezve ( = 1 ) / nem engedélyezve ( = 0 ) : Üzemmód 1 = időzítő, üzemmód 2 = pulzusgenerátor :Az impulzus hossza (előosztó) :Impulzusok száma (alapérték számláló) : Hiba kimenet : Megszakításkérés számláló ( a modul behívások száma ) : A behívott alprogram címe
Leírás Az EN bemenet engedélyezi a funkcióelem működését. A funkcióelem indul, ha ez a bemenet magasba ( 0 → 1 ) vált, a CNT tartalma törlődik, a VT, és a SOLL értékeit átmenetileg eltárolja, hogy a funkcióelem működésében figyelembe vehesse . A funkcióelem leáll, és törlődik, ha ez a bemenet alacsonyba kapcsol ( 1 → 0 ). A funkcióelem az üzemmód 1 állásban egy időzítő. Az időalap = ( a VT bemeneten levő érték ) µs, a megengedett legrövidebb időalap 512 µs. Az alapérték = ( a SOLL bemeneten levő érték ). Ha az alapértéknek megfelelő számú, egyenként az időalap hosszú jel teljesen letelt, akkor a CNT tartalma eggyel nő, és ha ez igényelt, akkor behívja az alprogramot az AC kimeneten megadott címen. Az ERR kimenet tartalmazza a hibák kódjait: 0 = nincs hiba 1 = alapérték bemeneten (SOLL) 0 van 2 = előosztó bemeneten (VT) az érték kisebb, mint 512. 3 = a MOD csak 1, vagy 2 lehet
Klöckner-Moeller
6-237
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
TALARM
TALARM
Megszakítástkérő időzítő funkcióelem Riasztó időzítő A funkcióelem az üzemmód 2 állásban egy jelgenerátor. A jelgenerátor az alapkészülék (PS 4-201-MM1) Q 0.0 kimenetéhez csatlakozik. A generátor periódus ideje = ( a VT bemeneten levő érték ) µs, az alapérték = ( a SOLL bemeneten levő érték fele ). A SOLL bemeneten a Q 0.0 kimeneten megjelenő összes le-, és felfutó él összegét kell megadni. Ha az alapértéknek megfelelő számú, egyenként az időalap hosszú impulzus teljesen letelt, akkor a CNT tartalma eggyel nő. Az ERR kimenet tartalmazza a hibák kódjait: 0 = nincs hiba 1 = alapérték bemeneten (SOLL) 0 van 2 = előosztó bemeneten (VT) az érték kisebb, mint 512. 3 = a MOD csak 1, vagy 2 lehet Az AC bemenet lehetővé teszi egy esemény vezérelt program beillesztését. Ennek érdekében ezen a bemeneten az alprogram címét ( $név ) kell megadni. Mikor az esemény bekövetkezik ( a CNT számláló eggyel nő ) az alprogram végrehajtódik. Ha ezen a bemeneten nincs cím, akkor csak a CNT számláló tartalma nő. 512 VT=512 MOD=1 SOLL=1 CNT
0
1024
1
2
t µs
3
4
5
6
7
8
9
-
-
65534
0
Ugrás az alprogramra $.. 512 VT=512 MOD=1 SOLL=3 CNT
0
1024
0
0
t µs
1
1
1
2
2
2
3
-
-
65534
0
Ugrás az alprogramra $.. kimenet 512 VT=512 MOD=2 SOLL=4 CNT
0
1024
0
0
t µs
0
1
1
1
1
2
2
-
-
65534
0
Ugrás az alprogramra $.. Klöckner-Moeller
6-238
9/96 AWB 27-1186-H
TALARM
FUNKCIÓELEMEK
TALARM
Megszakítástkérő időzítő funkcióelem Riasztó időzítő Esemény vezérelt program alkalmazásakor az alábbi szempontokat kell figyelembe venni: • Az esemény bekövetkezte, a felhasználói program végrehajtását megszakítja, a regiszterek állapotát elmenti, és az AC bemeneten megadott címre ugorva végrehajtja az alprogramot. A Megszakítástkérő funkcióelem nem szakítható meg egy másik Megszakítástkérő funkcióelemmel ( az összes Megszakítástkérő funkcióelemnek azonos a prioritása ). • A felhasználói program 5 ms időtartamra ( kb. 1000 utasítássor végrehajtása ) korlátozza a Megszakítástkérő funkcióelemek végrehajtási idejét, mivel a Megszakítástkérő funkcióelemek működését a rendszerprogram sem tudja ( még tápvesztéskor sem ) megszakítani. Ha a végrehajtási időt túllépte a korlátot, akkor a táp kikapcsolásakor EDC hiba keletkezhet. • A Megszakítástkérő funkcióelem végrehajtási ideje hozzáadódik a felhasználói program végrehajtási idejéhez, és a ciklus idő ellenőrző így együtt figyeli. • Az esemény vezérelt program feldolgozásakor korlátozás nélkül elérhetők az átmeneti tárolók ( regiszterek ), a felhasználói program, és az esemény vezérelt program által közösen használt adatok bizonyára megsérülnek. A felhasználói programban, és a Megszakítástkérő funkcióelemben ugyanabban a bájtban bit hozzáférés csak úgy történhet, ha a DI, és EI utasítások a hozzáférés összeszinkronizált. • A gyors reagálás érdekében a Megszakítástkérő funkcióelem nagy sebességű periféria ( közvetlen kimenet ) elérést igényel, az alapkészüléken található QB, QPB periféria operandusok használhatók. • Egy Megszakítástkérő funkcióelem többször használható ( többszöri felkészítés ), de ezt általában kerülni kell, mivel a Megszakítástkérő funkcióelem csoportok ugyanazzal az eseményforrással rendelkeznek ( esetünkben a I0.0 bemenettel ), és így a programban csak az utolsó funkcióelem érvényes. • A többszöri felkészítés azt jelenti, hogy egy egyedi funkcióelem típusnak az öszszes paraméter beállításához adatterületeket foglal le. A többszöri felkészítés csak akkor hasznos, ha a Megszakítástkérő funkcióelem alprogramja a funkcióelem paramétereit átírja, és egy él érvényesíti.
Klöckner-Moeller
6-239
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
TALARM
TALARM
Megszakítástkérő időzítő funkcióelem Riasztó időzítő
Példa Az alábbi példában a Megszakítástkérő időzítő funkcióelem, mint egy impulzusgenerátor ( MOD = 2 ) működik. Az impulzus periódusideje 1 ms (VT=1000). A Q 0.0 kimeneten összesen 50 impulzus jelenik meg (SOLL=100, a le-, és felfutó élek száma együtt). 1 ms
1 ms
Q 0.0
... 1 ms
A Q 0.0 kimeneten megjelenő impulzussorozat
00000 001 002 003 00001 001 002 003 004 005 006 007 008 009 00002 001 002
Klöckner-Moeller
BLOKK0 "konfigurációs fájl beágyazása #include 'konfig.k42' BLOKK1 "a megszakítástkérő időzítő behívása TALARM0 [ ] EN [B] MOD [W] VT [W] SOLL [B] ERR [W] CNT [$] AC
I 0.3 KB 2 KW 1000 KW 100 MB 25 MW 12
funkcióelem engedélyezés
END EP
6-240
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
TF
TF
Késleltetve elengedő időzítő
Szintakszis Behívás:
TF < Elemszám > -R
Operandusként:
TF < Elemszám >_< Bemenet / kimenet >
Idő tartomány:
1 ..65535 ms 1 ..65535 s
Végrehajtási idő:
300 µs
Időalap
-ms milliszekundum -s másodperc
Ábrázolás Utasítássor TF 7-ms-R [ ] S: [ ] R: [ ] STOP [W] I: [ ] EQ: [W] Q:
(1)
Indítás, és beírás Törlés Az időzítés felfüggesztése Az idő beállítása Vezérlő kimenet Aktuális időérték (2)
(3)
(4)
(5)
S STOP TSTOP
TSTOP
EQ T
T+TSTOP
T+TSTOP
T = késleltetési faktor (I bemenet értéke) x időalap
Klöckner-Moeller
6-241
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
TF
TF
Késleltetve elengedő időzítő
Leírás Mikor az S bemenetre felfutó él jut, az EQ kimenet azonnal magasba vált. Ha az S bemenet alacsonyra vált, az EQ kimenet T idővel később követi. (1) A beállított késleltetési időnek a ciklusidőnél mindig nagyobbnak kell lennie, hogy biztosítva legyen a késleltetés nyomon követése. A Q kimenet a kiválasztott időalap lépésközökkel mutatja a még hátra levő késleltetési időt. A késleltetési idő visszaszámlálása felfüggeszthető a STOP bemenetre adott magas szinttel. A késleltetés megnő azzal az idővel, amíg a STOP bemenet magas, miközben S bemenet alacsony. (2), (3) Az EQ kimenet csak az S bemenetet követi, ha a STOP bemenet alacsony. (4), (5) Az időzítő alaphelyzetbe kerül ( kimenetei nullák ), ha az R bemenet magas. Példa Az időzítő 50 másodperc késleltetéssel a Q 0.3 kimeneten jelzi az I 0.2 bemenet szintjének leesését. Az időalap 1 ms. A késleltetési faktor = 50000, ami nagyobb, mint 32767, ezért a beírandó értékét ki kell számítani, vagy előjeles számként, vagy hexadecimálisan kell beírni. Az I 0.3 bemeneten keresztül egy külső esemény felfüggesztheti a késleltetési idő létéltét. Az aktuális hátra levő idő az MW 10 merkerszóban követhető nyomon. A késleltetés folyamatának még feszültségvesztés után ( vagy a készülék kikapcsolása után ) is, a rendszer újraindításakor folytatódnia kell. Ebből adódóan retentív időzítő kell. A program: opció 1
opció 2
TF 56-ms-R S: I 0.2 R: STOP: I 0.3 I: KW -15536 EQ: Q 0.3 Q: MW 10
TF 56-ms-R S: I 0.2 R: STOP: I 0.3 I: KW C350 EQ: Q 0.3 Q: MW 10
Klöckner-Moeller
6-242
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
TGEN
TGEN
Generátor
Szintakszis Behívás:
TGEN < Elemszám > -R
Operandusként:
TGEN < Elemszám >_< Bemenet / kimenet >
Periódusidő
2 x 1 ... 2 x 65535 ms
Végrehajtási idő:
50 µs
Időalap
-ms milliszekundum, nem kell specifikálni
Ábrázolás Utasítássor TGEN 63 [ ] S: [W] I: [ ] P:
Indítás, és beírás A periódusidő beállítása Impulzus kimenet
S
P T Leírás Mikor az S bemenet magasba vált a P kimeneten (az I bemeneten, milliszekundumban definiált periódusidővel ) 1:1 kitöltési tényezőjű pulzussorozat generálódik, mindaddig amíg az S bemenet magas. A periódusidőnek mindig nagyobbnak kell lennie a ciklusidő kétszeresénél, hogy az impulzus alacsony, és magas szintje tisztán elkülönüljön. Ha a periódusidőt meghatározó I bemenetre tett érték változik, ez csak akkor módosítja a periódusidőt, ha az S bemenetre egy felfutó él jut.
Klöckner-Moeller
6-243
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
TP
TP
Impulzusadó
Szintakszis Behívás:
TP < Elemszám > -R
Operandusként:
TP < Elemszám >_< Bemenet / kimenet >
Idő tartomány:
1 ..65535 ms
Végrehajtási idő:
300 µs
Időalap
-ms milliszekundum, nem kell specifikálni
Ábrázolás Utasítássor TP 5-R [ ] [ ] [W] [ ] [W]
S: R: I: P: Q:
Indítás, és beírás Törlés Az pulzusidő beállítása Impulzus kimenet Aktuális időérték
S R P T
T
Leírás Mikor felfutó él van az S bemeneten, a P kimenet az I bemeneten ( mindig milliszekundumban ) definiált időtartamra magas értéket vesz fel. Az S állapotától függetlenül az adott hosszúságú impulzus a P kimeneten fennmarad, és csak a pulzusidő letelte után lesz ismét alacsony a P kimenet értéke. A periódusidőnek mindig nagyobbnak kell lennie a ciklusidő kétszeresénél, hogy az impulzus alacsony, és magas szintje tisztán elkülönüljön. A Q kimenet milliszekundumban kijelzi a időszámláló aktuális értékét. Az R bemenet magas szintje, alaphelyzetbe állítja a Pulzusadót. Alaphelyzetben a kimenetek értéke nulla. Klöckner-Moeller
6-244
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
TR
TR
Késleltetve meghúzó időzítő
Szintakszis Behívás:
TR < Elemszám > -R
Operandusként:
TR < Elemszám >_< Bemenet / kimenet >
Idő tartomány:
1 ..65535 ms 1 ..65535 s
Végrehajtási idő:
300 µs
Időalap
-ms milliszekundum -s másodperc
Ábrázolás Utasítássor TR 7-ms-R [ ] S: [ ] R: [ ] STOP [W] I: [ ] EQ: [W] Q:
(1)
Indítás, és beírás Törlés Az időzítés felfüggesztése Az idő beállítása Vezérlő kimenet Aktuális időérték (2)
(3)
(4)
(5)
S R STOP TSTOP
EQ T
T+TSTOP
T
T = késleltetési faktor (I bemenet értéke) x időalap Klöckner-Moeller
6-245
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
TR
TR
Késleltetve meghúzó időzítő
Leírás Mikor az S bemenetre felfutó él jut, az I bemeneten megadott késleltetési faktor figyelembe vételével, az EQ kimenet T idővel később követi. (1) A beállított késleltetési időnek a ciklusidőnél mindig nagyobbnak kell lennie, hogy biztosítva legyen a késleltetés nyomon követése. A Q kimenet a kiválasztott időalap lépésközökkel mutatja a még hátra levő késleltetési időt. A késleltetési idő visszaszámlálása felfüggeszthető a STOP bemenetre adott magas szinttel. A késleltetés megnő azzal az idővel, amíg a STOP bemenet magas. (2) A STOP bemenetre magas szintet csak az S, és az EQ felfutó élei között lehet adni. Az EQ kimenet viselkedését a diagram mutatja, ha a STOP bemenet már magas, amikor az S bemenet alacsonyra (3), vagy magasba (4) vált. Az időzítő alaphelyzetbe kerül ( kimenetei nullák ), ha az R bemenet magas. Ha az R bemenet akkor vált magasba (0→1), amikor az S bemenet már magas, és végig magasban is marad, akkor az EQ kimenet az R lefutó éle után T idővel késleltetve lesz magas. (5) Példa 1 Hasonlóan a késleltetve elengedő időzítőhöz, ha a késleltetési faktor = 50000, ami nagyobb, mint 32767, akkor a beírandó értékét ki kell számítani, vagy előjeles számként, vagy hexadecimálisan kell beírni. A program: opció 1
opció 2
TR 12-ms S: I 0.2 R: STOP: I: KW -15536 EQ: Q 0.3 Q: MW 10
TR 12-ms S: R: STOP: I: EQ: Q:
Klöckner-Moeller
6-246
I 0.2 KW C350 Q 0.3 MW 10
9/96 AWB 27-1186-H
FUNKCIÓELEMEK
TR
TR
Késleltetve meghúzó időzítő
Példa 2 A késleltetési idő változtatható. Az I bemenetre nemcsak egy operandus, hanem szabványos utasítássorok ( IL, AWL ) is beírhatók. A szekvenciát nem szabad lezárni! A milliszekundumban megadott T késleltetési idő elteltével az időzítő kimenete Q 0.3 követi a bemenetét I 0.3. A T késleltetés egy 200 ms állandó, és egy az MW 28 mer-ker szóban tárolt, a folyamattól függő érték összege. A program TR 12-ms S: I 0.3 R: STOP: I: L KW 200 ADD MW28 EQ: Q 0.3 Q:
I 0.3
bemenet állandó időtartam változó időtartam kimenet
S
KW 200
200
200
MW 28
40
x
x
150
x
KW 200 + MW 28
240
x
x
350
x
Q 0.3
EQ T=200 ms
Klöckner-Moeller
6-247
T=350 ms
9/96 AWB 27-1186-H
7 Az SCO funkcióelem
Tartalom Általánosságok
7-2
Funkcióelem behívás
7-3
A funkcióelem bemenetei, és kimenetei
7-4
Interfészek
7-7
Program példák - Nyomtató, és a PLC közötti kommunikáció soros vonalon. - Terminál, és a PLC közötti kommunikáció
7-8
Klöckner-Moeller
7-248
9/96 AWB 27-1186-H
7 Az SCO funkcióelem Általánosságok A PLC RS 232, vagy RS 485 interfészein keresztül a kommunikációt az SCO funkcióelem szervezi. A transzparens ( képernyőn, ember-gép készüléken, vagy egyéb terminálon kivetített, megjelenített, vagy kiválasztott ) adatokat lehet küldeni, vagy fogadni ezeken az interfészeken A felhasználói program, és a PLC-hez csatlakoztatott terminál között az interfészt ez a funkcióelem reprezentálja. • A kommunikáció az RS 232 interfészen keresztül 9600 baud adatátviteli sebességgel, 8 adat bit, 1 stop bit, paritás bit nélkül valósul meg. ( baud = bit/ sec. ) • Az RS 485 interfészen történő adatátvitelkor néhány paraméter állítása lehetséges. • A paraméterek a Sucosoft S 30-S4 "Készülék konfiguráció menü”-jében állíthatók. • A funkcióelemmel az RS 232 interfészen keresztül 1 bájttól 63 bájtig, az RS 485 interfészen keresztül 1 bájtól 127 bájtig küldhető át adat. • A funkcióelem vezérli az adatküldés, és fogadás folyamatát, de nem párhuzamosan, minthogy az adatátvitel fél-duplex módon történik. Az adatküldés feladata magasabb prioritású, mint az adatfogadás feladata. • Ha mindkét interfészen váltakozva akarunk adatot küldeni, akkor két SCO funkcióelem behívása szükséges, egy az RS 232, egy másik az RS 485 interfész számára.
Az interfészekhez saját funkcióelemet rendelni felhasználó barát cselekedet!
A funkcióelem értékőrző ( retentív ) beállítási lehetősséggel nem rendelkezik. CTS/RTS "handshake" ( fogadóoldali összekötetési módszer IEEE 488 szabvány ) nincs.
Klöckner-Moeller
7-249
9/96 AWB 27-1186-H
7 Az SCO funkcióelem Funkcióelem behívás
Funkcióelem behívás Szintakszis Behívás: Végrehajtási idő:
SCO < Elemszám > 200 µs
Ábrázolás Utasítássor SCO 0 [ ] [B] [B] [&] [B] [ ] [B] [B]
Klöckner-Moeller
S: CMD: CRD: MADR: NO: BUSY: ND: ERR:
Strobe ( engedélyező impulzus ) Parancs ( 1.. 4 ). Interfész kiválasztás A küldött, vagy fogadott adatok kezdőcíme A küldött, vagy fogadott adatok terjedelme A funkcióelem státusa A küldött, vagy fogadott adatbájtok száma Hiba üzenet
7-250
9/96 AWB 27-1186-H
7 Az SCO funkcióelem A funkcióelem bemenetei, és kimenetei
A funkcióelem bemenetei S: Strobe Az "S" bemenet élvezérelt. A felfutó él ( 0 → 1 ) a "CMD" bemeneten megadott érték alapján kijelöli az elvégzendő feladatot. A funkcióelem valamennyi, a felfutó élnél aktuális bemeneti paramétere eltárolódik. A BUSY kimenet magas ( 1 ) szintje jelzi a funkcióelem aktív állapotát, vagyis hogy a strobe jel adatküldés feladatot, vagy adatfogadásra kész állapotot kezdeményezett. Az adatfogadásra kész állapot a strobe bemenet lefutó élével zárható le. CMD: Parancs A CMD bemenetre tett érték állítja be az SCO funkcióelem üzemmódját. Az üzemmód kiválasztás csak a strobe bemenet felfutó élénél aktív. Az RS 232 interfészen keresztül 1, és 63 közötti adatbájt, az RS 485 interfészen keresztül 1, és 127 közötti adatbájt küldhető. 1. Adatküldés feladat Először, még az adatküldés végrehajtása előtt, az interfész alaphelyzetbe kerül. 2. Adatfogadásra kész a fogadó puffertár törlésével Először törli az RS 232, az RS 485 interfészt, érvényesíti az NO bemeneten levő változót. A fogadott adatbájtok számát az ND kimenet kijelzi. A BUSY kimenet 0-ba vált, ha a fogadó puffertár tele van. Egy új él a strobe bemeneten törli az összes fogadott adatot. 3. Adatfogadásra kész a fogadó puffertár törlése nélkül A 3. üzemmód akkor használható, ha a kapcsolat az 1., vagy 2. üzemmódban már létre lett hozva, mivel csak ez a két üzemmód alkalmas az átkapcsolásra a SUCOM ( a PLC programozás kommunikációs protokollja ), és az SCO funkcióelemen keresztül a soros kommunikáció között. Az ND kimenet kijelzi a fogadott adatok számát. A fogadó puffertár nem törlődik ebben az üzemmódban. Ha az előző műveletből maradt adat a tárban, akkor az új fogadott adatok a tár szabad területére íródnak. A BUSY kimenet 0-ba vált, ha a fogadó puffertár tele van. 4. Az SCO funkcióelemen keresztül a soros kommunikáció kikapcsolása ( SUCOM aktiválódik )
Megjegyzés! Ha több, mint 63 adatbájtot fogad az RS 232 interfészen keresztül, akkor automatikusan átkapcsol a SUCOM-ra.
Klöckner-Moeller
7-251
9/96 AWB 27-1186-H
7 Az SCO funkcióelem A funkcióelem bemenetei, és kimenetei
ICRD Interfész kiválasztás A CRD bemenet jelöli ki, hogy melyik interfészen történjen a kommunikáció. 0: RS-232 1: RS-485 MADR Kezdő cím A küldött, vagy fogadott tartomány kezdő címe van ezen a bemeneten. A fogadott adatok közvetlenül beíródnak a megadott területre. Az MB, SDB, RDB tartományokat bájt formátumban kell megadni. NO A küldött, és a fogadott tartományok mérete Az elküldendő adatbájtok számát kell az NO bemenetre beírni. Ha a fogadásra kész állapot aktív, akkor az NO bemeneten a puffertár méretét kell megadni. Az alábbi értékek engedélyezetek: RS 232 interfész: 1, ..., 63 RS 485 interfész: 1, .. , 127 A funkcióelem kimenetei BUSY Az SCO funkcióelem állapota A funkcióelem visszajelzése: 0: A funkcióelem inaktív 1: A funkcióelem aktív Ha egy adatküldés feladat lett indítva, vagy az adatfogadásra kész állapot lett aktiválva, akkor a funkcióelem aktív állapota a BUSY kimenet magas értékével van jelezve. BUSY = 1. Az adatküldés végrehajtása után a BUSY kimenet alacsony szintre kapcsol. BUSY = 0. Ha a fogadó puffertár teljesen betelik a BUSY kimenet szintén nullára vált. BUSY = 0. ND Az adatbájtok száma A már elküldött, vagy fogadott adatbájtok száma van ezen a kimeneten. ERR Hiba üzenetek 0: Nincs hiba 1: Helytelen paraméter a CMD bemeneten. A helyes értékek 1, .., 4 2: Helytelen paraméter a CRD bemeneten. A helyes értékek 0, vagy 1. 3: Hiba a SUCOM, vagy a Suconet használatakor. Lehetséges hiba okok: RS 232: SUCOM aktív RS 485: Az SCO funcióelem paraméterei nincsenek beállítva ( a készülék konfigurátorban nem lett kiválasztva ). Klöckner-Moeller 7-252 9/96 AWB 27-1186-H
7 Az SCO funkcióelem A funkcióelem bemenetei, és kimenetei
4: A merker cím túl nagy. A használt memória tartománynak a CPU memóriában kell lennie, és nem lehet a memória bővítő kártyán ( kb.: MB 30 000-ig ). 5: Helytelen paraméter az NO bemeneten. A helyes értékek: RS 232 interfész: 1, ..., 63 RS 485 interfész: 1, .. , 127 6: Helytelen paraméter a MADR bemeneten 7: A fogadó puffertár túlcsordulása Több mint 67, illetve 127 bájt érkezet. 8: RS 485 paritás hiba A küldő / fogadó interfész paraméterei nem egyeznek. 9: A rendszer egyszerre próbált egy küldő, és egy fogadó feladatot elindítani.
Klöckner-Moeller
7-253
9/96 AWB 27-1186-H
7 Az SCO funkcióelem Interfészek Az SCO funkcióelem használatakor az RS 232, és az RS 485 interfészek az alábbi paraméterekkel rendelkeznek: RS 232 Adat átviteli sebesség: Adatbitek száma: Stop bit: Paritás vizsgálat:
9600 baud ( baud = bit/ sec. ) 8 1 nincs
RS 485 Az RS 485 interfész paramétereit a Sucosoft S 30-S4 "Készülék konfigurálás" menüben lehet kiválasztani. * Parameter editor for Suconet Bus status:
SCO
Baud rate:
9600 Baud
K
Protocol: Startbit 1
Stopbit 1
Select with PgUp/PgDn
Leave F1 **
Databit 8
Parity -
-- MAIN MENU ---> PROGRAMMING ---> DEVICE CONFIGURATION ---------------- c: test.k42 -------F 1: Return F 4: Replace module F 7: Reference file F 2: Add station F 5: Zoom/Normal F 8: Delete F 3: Add module F 6: Parameter editor F10: Help
7-1 ábra Paraméter beállítás a Suconet K hálózat részére * angol nyelvű képernyő ( a magyar nyelvű leírás a 9/96 AWB 27-1185 kézikönyvben ) ** Választás a PgUp/PgDn gombokkal Kilépés F1-gyel.
Az alábbi beállítások lehetségesek: Bus status Baud rate Protocol:
Klöckner-Moeller
SCO 300 ; 600 Start bit 1 1 1 1
1200 ; 2400 Stop bit 1 1 1 2
7-254
4800 ; 9600 Data bit 8 8 8 8
19200 Parity páratlan páros -
9/96 AWB 27-1186-H
7 Az SCO funkcióelem Program példák
Program példák Az SCO funcióelem alkalmazása két példán lesz bemutatva. Adatforgalom ( kommunikáció ) PLC, és nyomtató között soros vonalon. Az RS 485, vagy az RS 232 interfészen keresztül a PLC adatot küld a nyomtatónak. Készülék csatlakozások. Programozó készülék
PLC
Nyomtató
RS485 A példa kipróbálásához szükséges hardver: PLC ( pl. PS 4-201-MM1 a 04 verziószámtól ) Digitális szimulátor Nyomtató soros vonallal ( pl. IPP 144-40E, Metrix) RS 485 / RS 232 nyomtató kábel A példa kipróbálásához szükséges szoftver: Sucosoft S 30-S4 a 2.0 verziószámtól A nyomtató kábel láb ( pin ) kiosztása PLC ( RS-485 ) 5 pólusú kerek apa 1 3 4
IPP 144-40E Adatkábel ( T / RB ) 0V Adatkábel ( TA / RA )
PLC ( RS-232 ) 9 pólusú kerek apa 3 5
Klöckner-Moeller
9 pólusú SUB-D apa 2 1 5
IPP 144-40E 0V Tx D
7-255
9 pólusú SUB-D apa 5 2
9/96 AWB 27-1186-H
7 Az SCO funkcióelem Program példák A példa kipróbálásához szükséges interfészek Az RS-485 paraméterei a Sucosoft S 30-S4 "Készülék konfigurálás" menüben állíthatók. A nyomtató interfész paramétereinek beállítása megtalálható a nyomtató gépkönyvében, amely tájékoztat az igényelt speciális karakterekről is. Műveletek A PLC a pri9600a.q42 program felhasználásával küld adatot a nyomtatónak. A "MASCHINE 1 STARTBEREIT" szöveget kell a PLC-ből a nyomtatóba küldeni. A karakterek az MB100 kezdőcímtől az MB100-tól az MB122-ig terjedő merkertartományban helyezkednek el. A sorugrás vezérlő karakter figyelembe van véve, így összesen a nyomtató felé 23 karakter van elküldve. Az RS-485, vagy az RS-232 közötti választás az I 0.7 tett értékkel történik. I 0.7 = 0 RS-232 I 0.7 = 1 RS-485 Az adatküldés az I 0.0 bemenet jelének felfutó élére indul. Az adatátvitel alatt a BUSY kimenet magas, és így ebben a példában erre a rövid időre a Q 0.0 = 1. A nyomtató kinyomtatja a szöveget. 00000 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 021 022 023 024
Klöckner-Moeller
START
"Program példa az SCO funkcióelemmel "Adatküldés egy 04, vagy nagyobb verziószámú PS4-201-MM1-ből "az RS 485, vagy RS 232 interfészen keresztül a nyomtatóba "Szükséges: " HW: PS4-201-MM1 04, vagy nagyobb verziószámú " Digitális szimulátor " Nyomtató soros vonallal, pl.: IPP 144-40E, Metrix " " " " " "
Adatkábel RS 485 <---> Nyomtató Láb kiosztás: PS4-201-MM1 1 TB / RB 3 0V 4 TA / RA
" " " " "
Adatkábel RS 232 <---> Nyomtató Láb kiosztás: PS4-201-MM1 3 0V 5 TxD
" SW:
Sucosoft S30-S4 V2.0, vagy nagyobb verziószámú
7-256
IPP 144-40E 2 1 5
IPP 144-40E 5 2
9/96 AWB 27-1186-H
7 Az SCO funkcióelem Program példák
025 026 027 028 029 030 031 00001 001 002 003 004 005 006 007 00002 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036
Klöckner-Moeller
INCLUDE
"Használt bemenetek " I 0.0 " I 0.7
Küldés indítása 0 = RS 232 , 1 = RS 485
"Használt kimenetek " Q 0.0
0 = a küldés eljárás inaktív , 1 = a küldés aktív
"A konfigurációs fájl beágyazása "RS 485: 9600 baud, 8 adatbit, 1 stop bit, nincs paritás bit #include 'pri9600a.k42 L I 0.7 = M 4.0
SZOVEG
0 = RS 232 , 1 = RS 485 Interfész kiválasztás
"Az IPP 144-40E nyomtatóhoz küldendő szöveg előállítása "A szöveg: MASCHINE 1 STARTBEREIN L 'CTRLN A nyomtató vezérlő karaktere = MB 100 Az elküldendő tartomány kezdőcíme "CTRLN = Ennek a nyomtatónak a sorvezérlő karaktere L 'M = MB 101 L 'A = MB 102 L 'S = MB 103 L 'C = MB 104 L 'H = MB 105 L 'I = MB 106 L 'N = MB 107 L 'E = MB 108 L 'SPACE = MB 109 L '1 = MB 110 L 'SPACE = MB 111 L 'S = MB 112 L 'T = MB 113 L 'A = MB 114 L 'R = MB 115
ASCII karakter "M" ASCII karakter "A" ASCII karakter "S" ASCII karakter "C" ASCII karakter "H" ASCII karakter "I" ASCII karakter "N" ASCII karakter "E" ASCII karakter "üres" ASCII karakter "1" ASCII karakter "üres" ASCII karakter "S" ASCII karakter "T" ASCII karakter "A" ASCII karakter "R"
7-257
9/96 AWB 27-1186-H
7 Az SCO funkcióelem Program példák
037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 00003 001 002 003 004 005 006 007 008 009 010 011 00004 001 002
L 'T = MB 116 L 'B = MB117 L 'E = MB 118 L 'R = MB 119 L 'E = MB 120 L 'I = MB 121 L 'T = MB 122 KULD
ASCII karakter "E" ASCII karakter "R" ASCII karakter "E" ASCII karakter "I" ASCII karakter "T"
S: CMD: CRD: MADR: NO: BUSY: ND: ERR:
Kommunikációs funkcióelem Adatküldés indítása
I 0.0 KB 1 MB 4 $ MB 100 KB 23 Q 0.0
Interfész kiválasztás Az elküldendő terület kezdőcíme
MB 0
Hiba bájt
Adatküldés aktiv
Program vége EP
Szimbólum
Operandus
A B C CTRLN D E F G H I J K L M N O P Q
KHB 41 KHB 42 KHB 43 KHB 00 KHB 44 KHB 45 KHB 46 KHB 47 KHB 48 KHB 49 KHB 4A KHB 4B KHB 4C KHB 4D KHB 4E KHB 4F KHB 50 KHB 51
Klöckner-Moeller
ASCII karakter "S"
Adatküldés SCO1 [ ] [b] [b] [&] [b] [ ] [b] [b]
END
ASCII karakter "T"
V
Terminál
Kommentár ASCII karakter "A" ASCII karakter "B" ASCII karakter "C" Nyomtató vezérlő karakter ASCII karakter "D" ASCII karakter "E" ASCII karakter "F" ASCII karakter "G" ASCII karakter "H" ASCII karakter "I" ASCII karakter "J" ASCII karakter "K" ASCII karakter "L" ASCII karakter "M" ASCII karakter "N" ASCII karakter "O" ASCII karakter "P" ASCII karakter "Q"
7-258
9/96 AWB 27-1186-H
7 Az SCO funkcióelem Program példák
R S SPACE T U V W X Y Z 0 1 2 3 4 5 6 7 8 9
Klöckner-Moeller
KHB 52 KHB 53 KHB 20 KHB 54 KHB 55 KHB 56 KHB 57 KHB 58 KHB 59 KHB 5A KHB 30 KHB 31 KHB 32 KHB 33 KHB 34 KHB 35 KHB 36 KHB 37 KHB 38 KHB 39 I 0.0 I 0.7 Q 0.0 M 4.0 MB 0 MB 4 MB 100 SCO1
ASCII karakter "R" ASCII karakter "S" ASCII karakter "üres" ASCII karakter "T" ASCII karakter "U" ASCII karakter "V" ASCII karakter "W" ASCII karakter "X" ASCII karakter "Y" ASCII karakter "Z" ASCII karakter "0" ASCII karakter "1" ASCII karakter "2" ASCII karakter "3" ASCII karakter "4" ASCII karakter "5" ASCII karakter "6" ASCII karakter "7" ASCII karakter "8" ASCII karakter "9" Adatküldés indítása 0 = RS 232 , 1 = RS 485 Adatküldés aktiv Interfész kiválasztás Hiba bájt Interfész kiválasztás A küldendő adatterület kezdőcíme Kommunikációs funkcióelem
7-259
9/96 AWB 27-1186-H
7 Az SCO funkcióelem Program példák
Adatforgalom ( kommunikáció ) PLC, és terminál között soros vonalon. Készülék csatlakozások. Terminál
PLC
A példa kipróbálásához szükséges hardver: PLC ( pl. PS 4-201-MM1 a 04 verziószámtól ) Digitális szimulátor ZB 4-303-KB1 kábel A példa kipróbálásához szükséges szoftver: Sucosoft S 30-S4 a 2.0 verziószámtól Terminál emulátor program ( pl.: Telix ) A példa kipróbálásához szükséges interfészek Az RS-232 paraméterei: 9600 baud, 8 adatbit, 1 stop bit, nincs paritás bit. A terminál paraméterei a terminál emulátor programban beállíthatók. Műveletek Az adatcsere a vezérlő, és a terminál között a com9600a._ program segítségével zajlik. Adatküldés A szöveg elküldését a terminálhoz az I 0.1 bemeneten megjelenő felfutó él váltja ki. A text 1, és a text 2 közötti választás az I 0.0 értékétől függ: I 0.0 = 0 : "Einschaltbedingung 1 erfuellt" (az indítási feltétel teljesült) I 0.0 = 1 : "Endschalter 2 angefahren" (a határérték kapcsoló 2 jelez) Az elküldendő adatok a MB 200 merkerbájttal kezdődő területen helyezkednek el.
Klöckner-Moeller
7-260
9/96 AWB 27-1186-H
7 Az SCO funkcióelem Program példák
Adatfogadás Az I 0.6 bemenetre tett érték szolgál arra, hogy válaszon, hogy az adatok fogadására a mode 2, vagy a mode 3 üzemmódot kívánja használni. I 0.6 = 0 mode 2 -- 2. üzemmód Az NO jelzi az adatok fogadása részére lefoglalt fogadó puffer méretét. Az I 0.2 bemenetre tett érték kapcsolja az SCO funkcióelemet adatfogadás állapotba, és a funkcióelem BUSY kimenete magas szintje jelzi a funkcióelem aktiv állapotát. A fogadott adatok közvetlenül bemásolódnak a funkcióelem MADR bemenetén definiált kezdőcímtől felfelé kijelölt merkerterületre. Az ND kimenet a már fogadott adatok számát mutatja. A BUSY kimenet nullába vált, ha a fogadó puffertár teljesen betelt ( ND = NO ). Ha az I 0.2 bemenet ismét aktiv, a funkcióelem fogadja az új adatokat. A funkcióelem ND kimenetén megjelenő 0 érték jelzi, hogy a fogadó puffertár törlődött. I 0.6 = 1 mode 3 -- 3. üzemmód Ez a eljárás megegyezik a 2. üzemmód eljárásával. Az egyetlen különbség az, hogy a fogadó puffertár nem törlődik. Csak annyi adatbájtot képes fogadni, amennyit a fogadó puffertár képes tárolni. Ha a fogadó puffertár betelt, ebben az üzemmódban további adat nem fogadható mindaddig, amíg nem törli a fogadó puffertár területét a 2. üzemmódban. Ebben a példában két független funkcióelem végzi az adatküldés, és az adatfogadás műveleteit. A funkcióelemek egymást kölcsönösen lezárják, és így az egyidejű működés nem lehetséges. 00000 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017
Klöckner-Moeller
START
"Program példa az SCO funkcióelemmel "Adatküldés egy 04, vagy nagyobb verziószámú PS4-201-MM1-ből "az RS 485, vagy RS 232 interfészen keresztül a nyomtatóba "Szükséges: " HW: PS4-201-MM1 04, vagy nagyobb verziószámú " Digitális szimulátor " ZB4-303-KB1 kábel " SW: Sucosoft S30-S4 V2.0, vagy nagyobb " Terminál emulátor program ( pl.: Teltix ) "Használt bemenetek " I 0.0 0 = text 1 küldése , 1 = text 2 küldése " I 0.1 Az SCO1-en adatküldés eljárás indítása " I 0.2 Az SCO2 fogadó állapotba kapcsolása " I 0.6 0 = mode 2 , 1 = mode 3 üzemmódok
7-261
9/96 AWB 27-1186-H
7 Az SCO funkcióelem Program példák
018 019 020 00001 001 002 004 00002 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044
Klöckner-Moeller
"Használt kimenetek " Q 0.0 INCLUDE
0 = a küldés eljárás inaktív , 1 = a küldés aktiv
"A konfigurációs fájl beágyazása "RS 232: 9600 baud, 8 adatbit, 1 stop bit, nincs paritás bit
TEXT1
"A text 1 szöveg elküldése a terminálra L I 0.0 JC TEXT2
0 = TEXT1 , 1 = TEXT2
L 'E = MB 200 L 'I = MB 201 L 'N = MB 202 L 'S = MB 203 L 'C = MB 204 L 'H = MB 205 L 'A = MB 206 L 'L = MB 207 L 'T = MB 208 L 'B = MB 209 L 'E = MB 210 L 'D = MB 211 L 'I = MB 212 L 'N = MB 213 L 'G = MB 214 L 'U = MB 215 L 'N = MB 216 L 'G = MB 217 L 'SPACE = MB 218 L '1 = MB 219
ASCII karakter "E" A küldendő adatok kezdőcíme ASCII karakter "I" ASCII karakter "N" ASCII karakter "S" ASCII karakter "C" ASCII karakter "H" ASCII karakter "A" ASCII karakter "L" ASCII karakter "T" ASCII karakter "B" ASCII karakter "E" ASCII karakter "D" ASCII karakter "I" ASCII karakter "N" ASCII karakter "G" ASCII karakter "U" ASCII karakter "N" ASCII karakter "G" ASCII karakter "üres" ASCII karakter "1"
7-262
9/96 AWB 27-1186-H
7 Az SCO funkcióelem Program példák
045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 00003 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019
Klöckner-Moeller
L 'SPACE = MB 220 L 'E = MB 221 L 'R = MB 222 L 'F = MB 223 L 'U = MB 224 L 'E = MB 225 L 'L = MB 226 L 'L = MB 227 L 'T = MB 228
ASCII karakter "üres" ASCII karakter "E" ASCII karakter "R" ASCII karakter "F" ASCII karakter "U" ASCII karakter "E" ASCII karakter "L" ASCII karakter "L" ASCII karakter "T"
SCO1 [ ] S:
[b] [b] [&] [b] [ ] [b] [b]
L I 0.0 AN M 0.1 AN M 0.2 CMD: KB 1 CRD: KB 0 MADR: $ MB 200 NO: KB 29 BUSY: M 0.0 ND: ERR: MB 1
Küldő funkcióelem Adatküldés indítása Fogadó üzemmód 2 kizárása Fogadó üzemmód 3 kizárása Az elküldendő terület kezdőcíme Adatküldés aktiv Hiba bájt a küldés eljárásban
JP FOGAD2 TEXT2
"A text 2 szöveg elküldése a terminálra L 'E = MB 200 L 'N = MB 201 L 'D = MB 202 L 'S = MB 203 L 'C = MB 204 L 'H = MB 205 L 'A = MB 206 L 'L = MB 207 L 'T = MB 208
ASCII karakter "E" A küldendő adatok kezdőcíme ASCII karakter "N" ASCII karakter "D" ASCII karakter "S" ASCII karakter "C" ASCII karakter "H" ASCII karakter "A" ASCII karakter "L" ASCII karakter "T"
7-263
9/96 AWB 27-1186-H
7 Az SCO funkcióelem Program példák 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 00004 001 002 003 004
Klöckner-Moeller
L 'E = MB 209 L 'R = MB 210 L 'SPACE = MB 211 L '2 = MB 212 L 'SPACE = MB 213 L 'A = MB 214 L 'N = MB 215 L 'G = MB 216 L 'E = MB 217 L 'F = MB 218 L 'A = MB 219 L 'H = MB 220 L 'R = MB 221 L 'E = MB 222 L 'N = MB 223
ASCII karakter "E" ASCII karakter "R" ASCII karakter "üres" ASCII karakter "2" ASCII karakter "üres" ASCII karakter "A" ASCII karakter "N" ASCII karakter "G" ASCII karakter "E" ASCII karakter "F" ASCII karakter "A" ASCII karakter "H" ASCII karakter "R" ASCII karakter "E" ASCII karakter "N"
SCO1 [ ] S:
[b] [b] [&] [b] [ ] [b] [b] FOGAD2
L I 0.0 AN M 0.1 AN M 0.2 CMD: KB 1 CRD: KB 0 MADR: $ MB 200 NO: KB 24 BUSY: M 0.0 ND: ERR: MB 1
Küldő funkcióelem Adatküldés indítása Fogadó üzemmód 2 kizárása Fogadó üzemmód 3 kizárása Az elküldendő terület kezdőcíme Adatküldés aktiv Hiba bájt a küldés eljárásban
"Adatfogadás mode 2 üzemmódban L I 0.6 JC FOGAD3
0 = üzemmód 2 , 1 = üzemmód 3
7-264
9/96 AWB 27-1186-H
7 Az SCO funkcióelem Program példák
005 006 007 008 009 010 011 012 013 014 015 016 017 00005
SCO2 [ ] S: [b] [b] [&] [b] [ ] [b] [b]
A fogadó puffertár kezdőcíme Az üzemmód 2 aktiv A már fogadott adatok száma Hiba bájt a fogadás eljárásban
JP END FOGAD3
"Adatfogadás 3. üzemmódban SCO2 [ ] S: [b] [b] [&] [b] [ ] [b] [b]
00006
Fogadó funkcióelem A funkcióelem fogadó üzemmódban Adatküldés kizárása
L I 0.2 AN M 0.0 CMD: KB 2 CRD: KB 0 MADR: $ MB 400 NO: KB 63 BUSY: M 0.1 ND: QB 0 ERR: MB 2
L I 0.2 AN M 0.0 CMD: KB 3 CRD: KB 0 MADR: $ MB 400 NO: KB 63 BUSY: M 0.2 ND: QB 0 ERR: MB 2
Fogadó funkcióelem A funkcióelem fogadó üzemmódban A küldés eljárás kizárása A fogadó puffertár kezdőcíme Az üzemmód 3 aktiv A már fogadott adatok száma Hiba bájt a fogadás eljárásban
END EP
Szimbólum
Operandus
A B C D E F G H I J K L M N O P Q R S SPACE T U
KHB 41 KHB 42 KHB 43 KHB 44 KHB 45 KHB 46 KHB 47 KHB 48 KHB 49 KHB 4A KHB 4B KHB 4C KHB 4D KHB 4E KHB 4F KHB 50 KHB 51 KHB 52 KHB 53 KHB 20 KHB 54 KHB 55
Klöckner-Moeller
V
Terminál
Kommentár ASCII karakter "A" ASCII karakter "B" ASCII karakter "C" ASCII karakter "D" ASCII karakter "E" ASCII karakter "F" ASCII karakter "G" ASCII karakter "H" ASCII karakter "I" ASCII karakter "J" ASCII karakter "K" ASCII karakter "L" ASCII karakter "M" ASCII karakter "N" ASCII karakter "O" ASCII karakter "P" ASCII karakter "Q" ASCII karakter "R" ASCII karakter "S" ASCII karakter "üres" ASCII karakter "T" ASCII karakter "U"
7-265
9/96 AWB 27-1186-H
7 Az SCO funkcióelem Program példák V W X Y Z 0 1 2 3 4 5 6 7 8 9
Klöckner-Moeller
KHB 56 KHB 57 KHB 58 KHB 59 KHB 5A KHB 30 KHB 31 KHB 32 KHB 33 KHB 34 KHB 35 KHB 36 KHB 37 KHB 38 KHB 39 I 0.0 I 0.1 I 0.2 I 0.6 QB 0 M 0.0 M 0.1 M 0.2 MB 1 MB 2 MB 200 MB 400 SCO1 SCO2
ASCII karakter "V" ASCII karakter "W" ASCII karakter "X" ASCII karakter "Y" ASCII karakter "Z" ASCII karakter "0" ASCII karakter "1" ASCII karakter "2" ASCII karakter "3" ASCII karakter "4" ASCII karakter "5" ASCII karakter "6" ASCII karakter "7" ASCII karakter "8" ASCII karakter "9" 0 = TEXT1 , 1 = TEXT2 Adatküldés indítása A funkcióelem adatfogadás üzemmódban 0 = üzemmód 2 , 1 = üzemmód 3 A már fogadott adatok száma A küldés eljárás aktiv A fogadó eljárás 2. üzemmód aktiv A fogadó eljárás 3. üzemmód aktiv Hibabájt a küldési eljáráskor Hibabájt a fogadás eljáráskor A küldendő adattartomány kezdőcíme A fogadó puffertár kezdőcíme Adatküldő funkcióelem Adatfogadó funkcióelem
7-266
9/96 AWB 27-1186-H
8. SK Lépéslánc funkcióelem Sorrendi vezérlés funkcióelem
Tartalom Sorrendi vezérlés programozásának alapelvei
8-2
- Alkalmazások - Grafikai szimbólumok - Alkalmazási példa - Elemi sorrendi vezérlés
8-2 8-2 8-5 8-7
A funkcióelem leírása
8-10
- Szintakszis - Ábrázolás - Leírás
8-10 8-10 8-10
Lépéslánc funkcióelem végrehajtásának ütemei
8-12
- Kezdeti érték beállítás - Feldolgozás - Állapotjelzés
8-12 8-14 8-17
Program példák
8-19
- Lineáris lépéssorrend - VAGY ( OR ) lépéssorrend - ÉS ( AND ) lépéssorrend
8-19 8-22 8-25
Klöckner-Moeller
8-267
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Sorrendi vezérlés programozásának alapelvei
Alkalmazások Az eseményfüggő, vagy időfüggő sorrendi vezérlés az egyes ütemeihez különböző programok, megfelelő sorrendben történő végrehajtását igényli. Ezeket a programokat különálló részenként (Taszkok) tárolja a memória. Ezek a taszkok egymás után lépésről lépésre hajtódnak végre, a sorrendi vezérlés logikai struktúrájának megfelelően. Az SK lépéslánc funkcióelem egy felhasználó barát megoldást kínál ezen logikai struktúra megvalósítására a felhasználói programban. Minden lépés ebben a program szerkezetben önálló egység. Ez azt jelenti, hogy a lépéssorrend megszervezését, vagy a lépések önfenntartó funkcióit nem szükséges beprogramozni. A lépéssorrend irányítását az SK lépéslánc ( sorrend vezérlő ) funkcióelem végzi. Egy lépés csak akkor aktiválódik, ha az előző lépés már nem aktív. Ez a elv lehetővé teszi a teljes lépéssorrend egyszerű, és könnyen áttekinthető programozását. Az éppen aktív lépés mindig visszajelez, ami egyszerűsíti a hibafelderítést. A sorrendi vezérlő (SK lépéslánc) funkcióelem használatának előnyei: • Könnyen leképezhető összetett struktúrájú sorrendi vezérlés. • Csökkenti a programozási munkát: az önfenntartó funkciókat, és az lépések egymást követő sorrendjét nem kell beprogramozni. • Könnyű beállítani, és törölni a lépések jellemzőit. • Az SK lépéslánc funkcióelem módosítása problémamentes. • Az aktív lépés visszajelzése a programban egyszerű hiba analízist tesz lehetővé. • Gyors lépéssorrend feldolgozás ( ugrás sorrend lista eltérő). Az SK lépéslánc (sorrendi vezérlő) funcióelem ezeken túl rendelkezik a többszörös egymásba ágyazhatóság lehetőségével, ami megengedi, a szokványos alkalmazásokon messze túlmutató, nagyon összetett lépéssorrend kialakítását. Grafikai szimbólumok A sorrendi vezérlés programozás az ütemeket grafikusan, strukturáltan ábrázolja A DIN 40 719 Part 6 (összhangban az IEC 3B (sec) 49) szabvány ajánlásait az itt használt szimbólumok betartják. A start, vagy alaphelyzet lépés adja meg az alap, vagy kezdő helyzetet, ami magába foglalja az indítási, vagy törlési feltételeket a folyamat kezdetekor. Mindig dupla keret jelzi az alaphelyzet lépést. A lépések egymást követően vannak számozva, és minden lépéshez egy, vagy több művelet tartozik. A lépéssorrend alapvető tulajdonsága, hogy mindig csak egy lépés aktív, és az összes többi nincs figyelembe véve. A program, amíg a megfelelő lépésváltás ( átmenet ) feltétel nem teljesül, az éppen érvényes lépést dolgozza fel ciklikusan. A lépésváltás feltétel teljesülése után az új aktív lépés feldolgozásával folytatódik a program. Klöckner-Moeller
8-268
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Sorrendi vezérlés programozásának alapelvei
Az SK ábrázolása
Szimbólum
0
Név
0
Alaphelyzet lépés Átmenet (lépés feltétel)
1
1
Lépés Alternatív elágazás (VAGY sorrend)
2
3
Művelet
3
Művelet
Lépés művelettel
4 Egyidejű elágazás (ÉS sorrend) 5
6
7 Összeszinkronizálás
Klöckner-Moeller
8-269
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Sorrendi vezérlés programozásának alapelvei
1
2 Ciklikus feldolgozás
Aktív lépés Átmenet
3
4
8-1. ábra: Lépéssorrend ciklikus feldolgozása
Az alternatív elágazás ( VAGY (OR) sorrend ) esetén a párhuzamosan programozott lépések közül csak egy lesz aktív, csak egyet hajt végre abban a ciklusban. Az alternatív elágazást vízszintes egyszerű vonal jelképezi. Az egyidejű elágazás ( ÉS (AND) sorrend ) esetén a párhuzamosan programozott lépéseket mind végrehajtja abban a ciklusban. Az egyidejű elágazást dupla vízszintes vonal jelképezi. Az egyidejű elágazás összeszinkronizált. Az összeszinkronizálás következtében a következő átmenet nem jut addig érvényre, amíg a párhuzamos ágakban van aktív lépés.
Klöckner-Moeller
8-270
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Sorrendi vezérlés programozásának alapelvei
Alkalmazási példa Az alábbi festéktöltő automata példáján mutatjuk be a sorrendi vezérlő funkcióelemet tartalmazó program készítésének folyamatát.
8-2 ábra: Festéktöltő automata A szállítószalag egy gomb benyomására indul. A festékdoboz egy idő elteltével eléri az optóérzékelőt. A szállítószalag ekkor megáll, és a festéktöltő szelep kinyit. Mikor az igényelt festékmennyiséget eléri, a szelep visszazár. A Folyás = 0 ellenőrzés után a szalag a festékdobozt továbbszállítja.
Klöckner-Moeller
8-271
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Sorrendi vezérlés programozásának alapelvei Az egyes munkaütemek programozási sorrendje az alábbi: - A Start gomb megnyomása. - A szállítószalag motor működik. - A festékdoboz eléri az optóérzékelőt. - A szállítószalag leállítása - A szelep kinyitása - A töltési mennyiség mérése. - A szelep zárása - A anyagfolyás ellenőrzése. - A szállítószalag működtetése. A lépéssorrend a következő: Start gomb megnyomása 1
Szállítószalag motor be Optóérzékelő jelez
2
Szállítószalag megáll
Szelep kinyit
Töltési mennyiség elérve 3
Szelep zár Folyás = 0 ?
4
Szállítószalag bekapcsol
8-3 ábra: Töltő automata lépéssorrendje
Klöckner-Moeller
8-272
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Sorrendi vezérlés programozásának alapelvei
Elemi sorrendi vezérlés Lineáris lépéssorrend
S1 T1 S2 T2 S3
A sorrend átmegy az S1 lépésen, a T1 átmeneten keresztül eljut az S2 lépésre, majd ezen áthaladva a T2 átmeneten keresztül az S3 lépésre jut. Mikor a T1 engedélyezett, azaz a T1 átmenet feltétele teljesül, S2 aktívvá válik, miközben S1 nyugalomba kerül. S2 feldolgozása után, amennyiben T2 is engedélyezett, S2 nyugalomba kerül, és S3 aktiválódik. Az egyes lépéseket mindig átmenetek választják el, más szóval két lépés között mindig definiálni kell egy átmenetet, illetve két átmenet között mindig kell egy lépésnek lennie.
Klöckner-Moeller
8-273
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Sorrendi vezérlés programozásának alapelvei Vagy (OR) lépéssorrend - Alternatív elágazás
S1
T1 S2
T2 S3
T4
T3 4
T5
T6
S5
Azután, hogy S1 nyugalomba került, attól függően, hogy T1, T2, vagy T3 engedélyezett az S2, S3, vagy S4 lépés, de közülük csak egy, aktiválódik. Ha több, mint egy átmenet feltétele teljesül, akkor a balszélhez közelebb eső az engedélyezett. Az S5 akkor lesz aktív, ha T4, T5, vagy T6 feltétele közül az, melyiknek a lépése aktív teljesül, azaz az aktív lépés feldolgozása befejeződik, és az öt követő feltétel teljesül.
Klöckner-Moeller
8-274
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Sorrendi vezérlés programozásának alapelvei ÉS (AND) lépéssorrend - Egyidejű elágazás szinkronizálással.
S1 T1 Ág 1 S2
Ág 2 S3 T2 S4
T3 S5
Mikor a T1 engedélyezett, az S1 nyugalomba kerül. Az S1, és az S3 egyidejűleg aktválódig. Mikor T2 engedélyezett, az S3 lépés nyugalomba kerül. majd S4 aktiválódik. Az ágakat külön-külön, egymás után dolgozza fel a rendszer, de ugyanabban a ciklusban. Az egyidejű ágak találkozáspontja összeszinkronizált ( bevárják egymást ). A T3 értékének lekérdezése csak akkor kezdődik, amikor S2, S3, és S4 végrehajtása már befejeződött.
Klöckner-Moeller
8-275
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem A funkcióelem leírása
Szintakszis Behívás:
SK < Elemszám > - < Lépések száma > -R
-R csak akkor, ha retentív ( értékőrző ) regiszter szükséges.
Operandusként:
SK < Elemszám >_< Bemenet / kimenet >
A funkcióelemek száma
Csak a PS 4-201-MM1 típusszámú eszközök memória mérete korlátozza a funkcióelemek számát
Lépések száma Egymásba agyazás mélysége
1 ..99 8
Végrehajtási idő:
SET = RESET = 0 esetén RESET = 1 esetén SET = 1 esetén érvénytelen SINO esetén
kb. 130 µs kb. 240 µs kb. 250 µs kb. 150 µs
Ábrázolás Utasítássor SK 3-14 [ ] S: [ ] R: [B] SINO: [B] ERR: [B] SQNO: [ ] TG: [$] INIT: [$] AC1: [$] AC2: [$] AC3: [$]
AC14:
Beírás Törlés Lépés száma bemenet Hiba kimenet Lépés száma kimenet Lépés váltás kijelző Modul behívás "reset" után Alprogram 1 címe Alprogram 2 címe Alprogram 3 címe Alprogram 14 címe
Leírás A Lépéslánc funkcióelem felhasználásával egyszerűen, és gyorsan készíthető strukturált felhasználói program. Az összes Lépéslánc funkcióelem 99 lépést képes irányítani. A Lépéslánc funkcióelem lépései tartalmazhatnak Lépésláncot, így maximum 8 mélységben egymásba ágyazhatók. Klöckner-Moeller
8-276
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem A funkcióelem leírása A Lépéslánc egyes lépései alprogramok, amelyek a végrehajtandó utasításokat tartalmazzák, és ha az aktuális alprogramot aktivizálja a rendszer, akkor ezeket az utasításokat hajtja végre. A szükséges átmenetet ( lépésváltás feltételt ) a lépés vége, és a következő lépés kezdete között kell beprogramozni. Az alkalmazások igényeinek figyelembevételével a lépések végrehajtása törtéhet egymást követő sorrendben, párhuzamosan, vagy ezektől eltérő egyedi módon. Ez a rugalmasság lehetővé teszi nagyon bonyolult struktúrák kialakítását is. A Lépéslánc funkcióelem be-, és kimeneteinek jelentése: S Beírás Engedélyezi a Lépéslánc működését R Törlés Törli a Lépéslánc aktuális állapotát, és indítja a $INIT alprogramot, ha van, az alapérték beállítás érdekében. SINO A lépések száma bemenet A bemenetre tett számnak megfelelő lépés lesz aktiválva. ERR Hiba A hibás kapcsolat megjelenítése. SQNO Lépések száma kimenet Az éppen feldolgozás alatt levő lépés számát mutatja. Az egymásba ágyazás nyomon követését segíti. TG Váltó kimenet A TG kimenet jelzi az átváltást az egyik lépésről a másikra. A szokásos átváltásokat magas szinttel jelzi, csak az első ciklusban marad alacsony az első váltáskor. INIT Alapérték beállítás A "reset" bemenet aktivá válásakor lefutó alprogram neve.
Példa: $INIT
AC.. Cselekvés A lépés aktív állapotában végrehajtott alprogram neve.
Példa: $APR1
Klöckner-Moeller
8-277
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Lépéslánc funkcióelem végrehajtásának ütemei A sorrendi vezérlő funkcióelem működése, és a lépések egymást követő sorozata mindig az alábbi program feldolgozási ütemeket tartalmazza: 1. Az SK Lépéslánc funkcióelem kezdeti értékének beállítása 2. Az SK Lépéslánc funkcióelem feldolgozása 3. A funkcióelem állapot visszajelzése
Kezdeti érték beállítás A SINO bemenet kijelöli, hogy melyik lépés végrehajtása következik. A Lépéslánc funkcióelem legelső behívása előtt az elsőnek feldolgozandó lépés számát kell megadni. A kezdeti érték adást a legjobb az INIT alprogrammal végrehajtani. Az INIT alprogramot az R bemenetre adott magas szint aktivál, és amíg R = 1 addig aktív. Az indítás, és kezdeti érték adás automatikus az INB 0.0 operandus ( ami a rendszer Reset, vagy a Reset gomb használata után az első ciklust jelző flag ) használatával. Az INB 0.0 operandus a program start utáni első ciklusban magas, különben 0. Így az INIT program csak egyszer, az első ciklusban fut le. Az INIT programban kell kijelölni, az elsőként végrehajtandó lépés számát a SINO bemeneten.
Klöckner-Moeller
8-278
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Lépéslánc funkcióelem végrehajtásának ütemei
Példa program: Kezdeti érték adás "Példa a kezdeti érték adásra SK 0-2 [ ] S: [ ] R: [B] SINO: [B] ERR: [B] SQNO: [ ] TG: [$] INIT: [$] AC1: [$] AC2: EP
K1 INB 0.0
$INIT $STEP1 $STEP2
$INIT
"A funkcióelem kezdeti értékének kijelölése L KB 1 = SK0 SINO Kezdés az 1 sorszámú lépéssel EM
$STEP1
" .. .. .. EM
$STEP2
" .. .. .. EM
A fenti eljárás biztosítja, hogy a funkcóelem tudja a program start után közvetlenül végrehajtandó lépés számát. A SINO bemenet értéke, és így a végrehajtandó alprogram ezután tetszés szerint változtatható. A PLC felhasználói program logikai szerkezete ezért könnyen programozható.
Klöckner-Moeller
8-279
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Lépéslánc funkcióelem végrehajtásának ütemei
Feldolgozás A funkcióelem működéséhez az S bemeneten magas szintnek kell lennie. Ez egyben aktiválja a SINO bemeneten kijelölt lépést is. Ha egyidejűleg az S, és az R bemenet is magas, akkor csak a kezdeti érték adó alprogramot hajtja végre. A következő példában az S bemenet értéke állandóan 1, és a T1, és T2 változók szabadon definiálható átmenetek ( lépésváltás feltételek ). Számos művelet végrehajtása az alprogramokban történik. Ezek csak addig aktívak, amíg az alprogramok végén beprogramozott lépésváltási feltételek nem teljesülnek. Ha egyszer a lépésváltás feltétele teljesül a SINO bemeneten a következő lépés lesz kijelölve. feldolgozásra. A következő ciklusban az új lépés automatikusan aktiválódik, és az eddig aktív lépés nyugalomba kerül.
Klöckner-Moeller
8-280
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Lépéslánc funkcióelem végrehajtásának ütemei
Példa program: Átmenet ellenőrzés "Példa az átmenetek kezelésére SK 0-x [ ] S: [ ] R: [B] SINO: [B] ERR: [B] SQNO: [ ] TG: [$] INIT: [$] AC1: [$] AC2: .. .. EP $INIT
$STEP1
K1 INB 0.0
$INIT $STEP1 $STEP2
"A funkcióelem kezdeti értékének kijelölése .. .. EM "első lépés Első művelet Második művelet .. "Átmenet ellenőrzés ( teljesült-e a lépésváltás feltétele ? ) L T1 átmenet 1 JCN END L KB 2 = SK0 SINO
END $STEP2
EM "második lépés Első művelet Második művelet .. "Átmenet ellenőrzés ( teljesült-e a lépésváltás feltétele ? ) L T2 átmenet 2 JCN END L KB 3 = SKO SINO
END EM .. Klöckner-Moeller
8-281
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Lépéslánc funkcióelem végrehajtásának ütemei Amikor a lépéshez tartozó alprogramot végrehajtását befejezte, a program közvetlenül a Lépéslánc funkcióelem mögött levő utasítássorral folytatódik, függetlenül attól, hogy az átmenet feltétel közben teljesült, vagy sem. Ha az átmenet feltétele teljesült, akkor a következő ciklusban az új lépéshez, ha nem teljesült, akkor ugyanahhoz a lépéshez tartozó alprogram fut le.
IL, AWL utasítások
Ciklikus feldolgozás
$INIT az alprogramot egyszer, a Lépéslánc funkcióelem feldolgozása előtt végre kell hajtani
Lépéslánc funkcióelem
IL, AWL utasítások $< név > Lépés 1
EP
$ < név > Lépés 2
8-4 ábra: Lépéslánc funkcióelem feldolgozása a felhasználói programban
Klöckner-Moeller
8-282
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Lépéslánc funkcióelem végrehajtásának ütemei
Állapotjelzés Számos állapotjel szolgál a Lépéslánc funkcióelem működésének nyomon követésére. ERR kimenet A bemeneti adatok feldolgozásakor kapott hibák megjelenítése. Hibakód Bináris 00000001
A hiba oka Decimális A SINO bemeneten 0 érték van. 1
00000010
2
00000100
3
A SINO bemeneten levő érték meghaladja a megengedett lépésszámot. Nincs alprogram a kapcsolt AC.. kimeneten.
A hiba hatása A funkcióelem passzív. Nem hajt végre alprogramot. A hiba kimenet jelez. A funkcióelem az előző állapotában marad. A hiba kimenet jelez. A kiválasztott lépés betöltődik, de mivel nincs jelen alprogram a semmi lesz feldolgozva.
SQNO kimenet Az éppen feldolgozás alatt levő lépés számát mutatja. Az egymásba ágyazás nyomon követését segíti. Ha a kimenet értéke 3, akkor a harmadik, ha 5, akkor az ötödik lépés lett kiválasztva. A kezdeti érték adó alprogram kiválasztását a 0 érték mutatja. TG kimenet A TG kimenet jelzi az átváltást az egyik lépésről a másikra. A TG kimenet magas, amíg egy lépés aktív. Csak a lépésváltás után, az új lépés első ciklusában kapcsol át alacsony szintre.
lépés n
lépés (n+1)
első ciklus
első ciklus
8-6 ábra: Lépésváltás jelzés a TG kimeneten. Klöckner-Moeller
8-283
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Lépéslánc funkcióelem végrehajtásának ütemei
Klöckner-Moeller
8-284
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Lépéslánc funkcióelem végrehajtásának ütemei A TG kimenet használható bármely egyedi lépés megjelölésére. Például: Használható időkorlát beépítésére a felhasználói programban. Az egy lépések aktív állapotának időtartamát figyeli, és jelez ha egy művelet túl hosszú mert, vagy egy határérték kapcsoló nem lép működésbe, vagy elektronikus hiba van ( hibás jelet ad ki az érzékelő ).
Lépésváltozás TG Idő Az időzítő indítása
"Időzítő indítása TR 10-S [ ] S : SK0 TG [ ] R : [ ] STOP : [W] I : L KW 3 [ ] EQ : [W] Q : "Időzítő lekérdezése L TR 10 EQ JC Sber
8-6 : Időzítő indítása a TG kimenetről Három másodperc elteltével, az időfigyelő a program hibás működését jelzi. INIT / AC kimenetek Az INIT, és az AC kimenetek az "Állapot kijelzés" menüben nem operandusként vannak megjelenítve, hanem a kimenet értéke 1, ha ki van választva, és 0, ha nyugalomban van.
Klöckner-Moeller
8-285
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Program példák A felhasználói programban, megkönnyítendő a program írását, és olvashatóságát, használjon sokatmondó "mondat" címkéket. A következő példák a Sorrendi vezérlő (Lépéslánc) funkcióelem néhány tipikus alkalmazását mutatja be. A példák a Töltő automata vezérlési feladataira épülnek. Lineáris lépéssorrend Mikor a szakasz működése megkezdődik, a vezérlő várakozó állapotban van. Az első lépés végrehajtása, csak a start gomb megnyomása után történik meg. A Lépés 4 "Zárd le a szelepet" után a program visszatér a Lépés 2 "Szállítószalag motor bekapcsol" műveletre.
1
Várakozó állapot Start gomb megnyomva ?
2
Szállítószalag motor bekapcsol Optóérzékelő elérve ?
3
Szállítószalag motor kikapcsol
Szelep kinyit
Töltési mennyiség elérve ? 4
Zárd le a szelepet Anyagfolyás = 0 ?
8-7 ábra: Lineáris lépéssorrend
Klöckner-Moeller
8-286
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Program példák
Példa program: Lineáris lépéssorrend "Példa a lineáris lépéssorrendre SK 0-4 [ ] S: [ ] R: [B] SINO: [B] ERR: [B] SQNO: [ ] TG: [$] INIT: [$] AC1: [$] AC2: [$] AC3: [$] AC4: EP $INIT
$START
K1 INB 0.0
$INIT $START $MOTORBE $MOTORKI $SZELEPKI
"A funkcióelem kezdeti lépésének kijelölése "Az első lépéstől kezd LK1 = SK0 SINO EM "Indítási feltételek A Start gomb megnyomva ?" L 'START Start gomb JCN END L KB 2 JCN END L KB 2 = SKO SINO
END $MOTORBE
EM "Szállítószalag motor L K1 = 'MOTOR Szállítószalag motor " L 'OPTOERZ Optóérzékelő JCN END L KB 3 = SKO SINO
END EM
Klöckner-Moeller
8-287
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Program példák
$MOTORKI
"Szállítószalag motor kikapcsolása "Szele zárás LK0 = 'MOTOR Szállítószalag motor L K1 = 'SZELEP Töltő szelep "A töltési mennyiség elért ? L 'TELE A töltési mennyiség JCN END L KB 4 = SKO SINO
Első művelet Második művelet
END $SZELEPKI
EM "Szelep kikapcsolás LK0 = 'SZELEP Töltő szelep "Folyás = 0 ? L 'FOLYIK Folyás JCN END L KB 2 = SKO SINO
END EM
Klöckner-Moeller
8-288
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Program példák
VAGY lépéssorrend A festéktöltő automatát egyszer kék, egyszer zöld festék töltésére használják. Egy átváltó kapcsoló a piros, vagy a zöld festéktartállyal köti össze a szelepet.
1
Szállítószalag leáll
T1 Piros festék ? 2
T2 Kék festék ?
Átváltó kapcsoló piros állás T2 Piros festéktartály kiválasztva?
4
3
Átváltó kapcsoló kék állás T4 Kék festéktartály kiválasztva?
Szelep kinyit
8-8 ábra: VAGY lépéssorrend A VAGY lépéssorrend csak egy SK Lépéslánc funkcióelemet igényel, mivel csak egy lépés lehet aktív. Amint az egyik a két átmenet ( T1 vagy T3 ) közül teljesül, a lépéssorrend folytatódik a megfelelő ágon. Az ág kiválasztása végleges, ás nem változik amíg az ág összes lépésén végig nem haladt, még ha teljesül is a másik ág kiválasztásának feltétele. A T1, és a T3 átmenetek feltételeit az első lépés végén kell a programban elhelyezni. Az elágazás választás feltételes ugró utasításokkal oldható meg. Az első utasítás végén ugrás célpont lista készült erre a célra. A SINO bemenetre ez alapján töltődik be a konstans 2, vagy 3.
Klöckner-Moeller
8-289
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Program példák
Példa program: VAGY lépéssorrend SK 0-4 [ ] S: [ ] R: [B] SINO: [B] ERR: [B] SQNO: [ ] TG: [$] INIT: [$] AC1: [$] AC2: [$] AC3: [$] AC4: .. .. EP
K1 INB 0.0
$INIT $MOTORKI $PIROS_T $KEK_T $SZELEPBE
$INIT
"A funkcióelem kezdeti lépésének kijelölése LK1 = SK0 SINO EM
$MOTORKI
Motor kikapcsolás LK0 = 'MOTOR Szállítószalag motor L 'PIROS Piros festék ? JCN KEK L KB 2 = SKO SINO SK0 Lépéslánc JP END " L 'KEK Kék festék ? JCN END L KB 3 = SK0 SINO SK0 Lépéslánc " EM
KEK
END
Klöckner-Moeller
8-290
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Program példák
$PIROS_T
END $KEK_T
"Átváltás piros tartályra LK1 = 'FVALT Szín váltás L 'PIROS_T Piros festék tartály JCN END L KB 4 = SKO SINO SK0 Lépéslánc " EM "Átváltás kék tartályra LK2 = 'FVALT Szín váltás L 'KEK_T Kék festék tartály JCN END L KB 4 = SKO SINO SK0 Lépéslánc
END EM $SZELEPBE
Klöckner-Moeller
"Szelep nyitás LK1 = 'SZELEP Töltő szelep .. .. EM
8-291
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Program példák
ÉS lépéssorrend szinkronizálással Felszerelve az automatát egy festékkeverő szerkezettel, amely két külön szelepen keresztül mindkét festékből egyszerre, egy időben, a kívánt keverési aránynak megfelelően tölti a festék dobozokat, új irányítási feladat keletkezett.
1 T1
Szállítószalag leáll Szállítószalag leáll ?
2 T2
Piros festékszelep nyit Piros hányad elérve ?
3
T4
4 T3
Piros festékszelep zár
Kék festékszelep nyit Kék hányad elérve ?
5
Kék festékszelep zár
Folyás = 0 ? 6
Szállítószalag indul
A párhuzamos egyidejű ágak találkozási pontja összeszinkronizált. Mielőtt az ágakból a fő lépéssorozat következő elemére lépne, ellenőrzést kell végezni, hogy vajon a párhuzamos ágak az utolsó lépésüknél tartanak-e.
Klöckner-Moeller
8-292
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Program példák A teljes ÉS lépéssorrend felosztható néhány párhuzamos lépéssorrendre. Minden párhuzamos ág igényel egy saját SK Lépéslánc funkcióelemet. Az ágakhoz tartozó funkcióelemek a fő lépéssorozatból, mint annak egy eleme hívhatók meg. Az SK1, és SK2 Lépéslánc funkcióelemek együtt alkotják az SK0 Lépéslánc funkcióelem második lépését SK0
SK1
SK2
8-10 ábra: ÉS lépéssorrend egymásba ágyazott SK Lépéslánc funkcióelemekkel Klöckner-Moeller
8-293
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Program példák
Példa program: VAGY lépéssorrend SK 0-3 [ ] S: [ ] R: [B] SINO: [B] ERR: [B] SQNO: [ ] TG: [$] INIT: [$] AC1: [$] AC2: [$] AC3: .. .. EP $INIT
$MOTORKI
END $KEVERES
Klöckner-Moeller
SK0 Lépéslánc K1 INB 0.0
$INIT $MOTORKI $KEVERES $MOTORBE
"A funkcióelem kezdeti lépésének kijelölése "Az SK0 lépés1 indítása LK1 = SK0 SINO EM Szállítószalag motor ki LK0 = 'MOTOR Szállítószalag motor L 'MOZGAS Szalag sebesség BNZ END "Az SK0 lépés2 indítása L KB 2 = SK0 SINO SK0 Lépéslánc " EM " SK 1-2 SK1 Lépéslánc [ ] S: K1 [ ] R: N SK0 TG SK0 Lépéslánc [B] SINO: [B] ERR: [B] SQNO: [ ] TG: [$] INIT: $INIT1 [$] AC1: $PIROS_BE [$] AC2: $PIROS_KI 8-294
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Program példák
SK 2-2 [ ] S: [ ] R: [B] SINO: [B] ERR: [B] SQNO: [ ] TG: [$] INIT: [$] AC1: [$] AC2:
SK2 Lépéslánc K1 N SK0 TG
SK0 Lépéslánc
$INIT2 $KEK_BE $KEK_KI
"Szinkronizálás "Az SK1 lépéssorrend már befejeződött ? L SK1 SQNO SK1 Lépéssorrend CP KB 2 BNE END "Az SK2 lépéssorrend már befejeződött ? L SK2 SQNO SK2 Lépéssorrend CP KB 2 BNE END "Az anyagfolyás = 0 ? L 'FOLYAS anyagfolyás JCN END
END $MOTORBE
$INIT1
Klöckner-Moeller
"Az SK0 lépés3 indítása L KB 3 = SK0 SINO " EM Szállítószalag motor be LK1 = 'MOTOR Szállítószalag motor .. EM
SK0 Lépéssorrend
"A SK1 funkcióelem kezdeti lépésének kijelölése "Az SK1 lépés1 indítása LK1 = SK1 SINO SK1 Lépéssorrend EM
8-295
9//96 AWB 28-1186 -H
SK Lépéslánc funkcióelem Program példák
$PIROS_BE
END $PIROS_KI
$MOTORBE
$INIT2
$KEK_BE
END $PIROS_KI
Klöckner-Moeller
A piros festék szelepe kinyit LK1 = 'SZ_PIROS Piros festék szelep L 'A_P A piros festék aránya JCN END "Az SK1 lépés2 indítása L KB 2 = SK1 SINO SK1 Lépéslánc " EM "A piros festék szelep bezárása LK0 = 'SZ_PIROS Piros festék szelep EM Szállítószalag motor be LK1 = 'MOTOR Szállítószalag motor .. EM "A SK2 funkcióelem kezdeti lépésének kijelölése "Az SK2 lépés1 indítása LK1 = SK2 SINO SK2 Lépéssorrend EM A kék festék szelepe kinyit LK1 = 'SZ_KÉK Kék festék szelep L 'A_K A kék festék aránya JCN END "Az SK2 lépés2 indítása L KB 2 = SK2 SINO SK2 Lépéslánc " EM "A kék festék szelep bezárása LK0 = 'SZ_KÉK Kék festék szelep EM
8-296
9//96 AWB 28-1186 -H
9. Közvetett címzés
Tartalom Általánosságok - Alkalmazási terület - Alapelvek - A közvetett címzés definíciója - A közvetett címzésben használt operandusok
9-2 9-2 9-2 9-3 9-3
Adatblokk áthelyezés és adatblokk összehasonlítás - Adatblokk áthelyezés: másolás üzemmód - Adatblokk áthelyezés: értékadás üzemmód - Adatblokk összehasonlítás: másolás üzemmód - Adatblokk összehasonlítás: keresés üzemmód
9-4 9-4 9-5 9-6 9-7
Az ICPY, és a ICP használata - Adatblokk áthelyezés - Adatblokk összehasonlítás
9-9 9-9 9-13
Az "&" címoperátor használata
9-17
Alkalmazási példák
9-19
Teszt funkciók - Állapot visszajelzés
9-23 9-23
Klöckner-Moeller
9-297
9/96 AWB 27-1186-H
Közvetett címzés Általánosságok
Alkalmazási terület Ez a kézikönyv az operandusok közvetett címzését, és az adatblokk áthelyezés, és adatblokk összehasonlítás műveleteit írja le. Ezek a műveletek az ICPY ( áthelyezés ), és a ICP ( összehasonlítás ) funkcióelemekkel hajthatók végre. A következő oldalak részletesen leírják a funkcióelemek használatát. Az adatblokk áthelyező, és az adatblokk összehasonlító funkcióelemekkel végezhető: közvetett címzés, engedélyezett másolás, összehasonlítás, keresés. A közvetett címzés szolgáltatásain túl, ezek a funkcióelemek az alábbi programozási előnyökkel rendelkeznek: - A felhasználói program memória igényét csökkenti. - Csökkenti az utasítássorok számát - Növeli a program áttekinthetőségét. A közvetett címzés szabályainak megfelelően működnek az RDAT, SDAT, és az SCK funkcióelemek is. A felhasználható funkcióelemek száma nincs korlátozva. Korlátot csak a felhasználói program memória véges kapacitása jelent. Elméletileg a felhasznált funkcióelemek számának felső határa: 65535. Alapelvek A Programozható Logikai Vezérlők leggyakrabban használt címzési módszere a közvetlen ( direkt ) címzés. Közvetlen címzéskor az igényelt adat címe van közvetlenül specifikálva, így aztán például a L MW 234 utasítás hatására az MW 234 a cím, és ezen merkerszó tartalmát tölti a munkaregiszterbe. A közvetlen címzés használata összehasonlítva a közvetett címzés használatával valamennyi műveletben nagyobb adatkezelési biztonságról gondoskodik. Közvetett címzéskor az utasításban definiált cím adattartalmát az igényelt adat címeként értelmezi, nem pedig mint feldolgozandó adatot. Program futás közben a memóriahely valójában nincs definiálva, hanem kiszámításra kerül.
Klöckner-Moeller
9-298
9/96 AWB 27-1186-H
Közvetett címzés Általánosságok
A közvetett címzés definíciója Közvetlen címzéskor, az utasítássor szabványnak megfelelően, az utasítássor operandusa az igényelt adat címét jelenti. Program memória Utasítássor Utasítás + Operandus
Adat memória
Adat 9-1 ábra: Közvetlen címzés Közvetett címzéskor egy memóriacellában van eltárolva az igényelt adat címe. A memóriacella tartalma növelhető, csökkenthető a program futása közben. Az erre a memóriacellára mutató közvetett olvasás, vagy írás parancsok az utasítás számára az adatot a memóriacella tartalma által meghatározott címről veszik. Program memória Utasítássor Utasítás + Operandus
Adat memória
Adat címe
Adat 9-2 ábra: Közvetett címzés Az operandus tartalma a lényegét tekintve mint az adat memória címzéséhez szükséges pointer (mutató ) szolgál. Ez azt jelenti, hogy számos különböző memóriahely érhető el egyetlen utasítással. A további utasításokban csak a pointert ( operandus, ami az adatcímet tartalmazza ) kell változtatni. A közvetett címzés lehetővé teszi az operandusok címének változtatását programírás közben. Ez biztosítja, hogy egy utasítás különböző operandusokkal hajtódjon végre, ami csökkenti a program memória terület igényét. A közvetett címzésben használt operandusok - M Merkerek - SD Kommunikációs adat - RD Kommunikációs adat - Funkcióelemek cím be-, és kimenetei Klöckner-Moeller
9-299
9/96 AWB 27-1186-H
Közvetett címzés Adatblokk áthelyezés és adatblokk összehasonlítás Közvetett címzéshez felhasználható két funkcióelem. Az ICPY ( közvetett másolás ) funkcióelem, ami adatblokk átmásolására, az ICP ( közvetett összehasonlítás ) funkcióelem két adatblokk összehasonlítására szolgál. Adatblokk áthelyezés Az adatblokk áthelyező funkcióelemnek két üzemmódja van: - Adatterület átmásolás: Másolás üzemmód ( lásd: 9-3 ábra ) - Adatterület kezdeti érték beállítása: Értékadás üzemmód ( lásd: 9-4 ábra ) Adatblokk áthelyezés: Másolás üzemmód Forrás Adatterület I
Cél Adatterület II
56h C7h 53h 56h C7h 53h
9-3 ábra: Az adat áthelyező funkcióelem másolás üzemmódja A másolás üzemmódban a funkcióelem lemásolja a forrás címmel meghatározott adat-tarületet ( a 9-3 ábrán az adatterület I ) és a tartalmát behelyezi a cél címmel kijelölt, a forrás méretével azonos, vagy attól különböző méretű adatterületre ( a 9-3 ábrán az a-datterület II ). Az adat formátuma bájt. Az átmásolt terület mérete opcionális. Egy és 255 adatérték között tetszőleges méretű adatterület átmásolható.
Klöckner-Moeller
9-300
9/96 AWB 27-1186-H
Közvetett címzés Adatblokk áthelyezés és adatblokk összehasonlítás
Adatblokk áthelyezés: Értékadás üzemmód Forrás Adatterület I
Cél Adatterület II
56h
56h 56h 56h
9-4 ábra: Az adat áthelyező funkcióelem értékadás üzemmódja Mikor a funkcióelem értékadás üzemmódban van, a forrás egyetlen adatcella, amely tartalmazza azt az értéket, melyiket a cél területre be kell írni A cél terület mérete egy és 255 között megválasztható, de az adatok formátuma mindig bájt. A másolásnak ezt a speciális fajtáját kezdeti érték adásnak nevezik, mivel a funkcióelem egyetlen művelettel az egész kijelölt adatterületet felülírja ugyanazzal az adattal. Az értékadó művelettel például végrehajtható a kimenetek, vagy egy merkerterület törlése ( nulla értékkel feltöltése ). Adatblokk összehasonlítás Az adatblokk összehasonlító funkcióelemnek két üzemmódja van: - Adatterületek összehasonlítása: Összehasonlító üzemmód ( lásd 9-5 ábra ) - Adatérték keresése: Keresés üzemmód ( lásd 9-6 ábra )
Klöckner-Moeller
9-301
9/96 AWB 27-1186-H
Közvetett címzés Adatblokk áthelyezés és adatblokk összehasonlítás
Adatblokk összehasonlítás: Összehasonlítás üzemmód Első eset: Egyenlő Forrás Adatterület I
Cél Adatterület II összehasonlítás
56h C7h 53h 4Ah 56h C7h 53h 4Ah Eredmény: Az adatterület egyenlő Második eset: Nem egyenlő összehasonlítás 56h C7h 53h 4Ah 56h C7h 54h 4Ah Eredmény: Az adatterület egyenlő Az összehasonlító művelet abortál - A harmadik érték nem egyenlő - Cél > Forrás 9-5 ábra: Az adat összehasonlító funkcióelem összehasonlító művelete.
Klöckner-Moeller
9-302
9/96 AWB 27-1186-H
Közvetett címzés Adatblokk áthelyezés és adatblokk összehasonlítás Az összehasonlító üzemmódban a funkcióelem két adatterületet ellenőriz azért, hogy felderítse az eltéréseket. A forrás, és a cél adatterület bájt formátumú, és a méretük egy és 255 közötti lehet. A forrás, és a cél szakkifejezések ugyanúgy használhatók, mint az adatblokk áthelyező funkcióelemnél. Ha különbséget talál a két adatterület között, az összehasonlítás abortál ( az első különböző érték után a többi értéket már nem vizsgálja meg ). A funkcióelem az első eltérő érték alapján meghatároz, hogy a cél terület nagyobb, vagy kisebb mint a forrás terület. Ha például szükséges állandóan megfigyelni egy adatterület tartamának változásait, ez a funkcióelem alkalmas az aktuális, és a megelőző ciklus adatainak összehasonlítására. Adatblokk összehasonlítás: Keresés üzemmód Forrás Adatterület I
Cél Adatterület II
56h keresés C3h 54h 56h 56h
Eredmény: A harmadik értéknél találat 9-6 ábra: Az adat összehasonlító funkcióelem adatkeresés üzemmódja
Az adat összehasonlító funkcióelemmel egy konkrét adatérték keresése is lehetséges a kijelölt adatterületen. Az eredmény a keresés kezdőpontjától, az első azonos értékig mért cím távolság. Az adatok mindig bájt formátumúak. A cél terület mérete egy és 255 adatérték között adható meg. Ha egy egyedi cikket szükséges kikeresni, például a készlet nyilvántartó programból, akkor a funkcióelem ezen üzemmódja a kiértékelő program magja. Klöckner-Moeller
9-303
9/96 AWB 27-1186-H
Közvetett címzés Az ICPY, és a ICP használata Közvetett címzéssel csak a merker, és a kommunikációs adatok érhetők el. Megengedett még többi funkcióelem cím bemeneteinek elérése. Program futás közben az akaratlan hozzáféréssel szemben a rendszer belső adatai védettek. Ez a fejezet leírja, hogyan működik az adatblokk áthelyező, és az adatblokk összehasonlító funkcióelem a SUCOsoft csomagban. A szakkifejezések alábbi rövid definíciója segíti a funkcióelemek működésével kapcsolatos parancsok jobban érthetők legyenek. A címoperátor kizárólag a közvetett címzés funkcióelemekkel használatos. Ez jelzi, hogy a többi esettől eltérően az utasítás nem a hozzátartozó operandus adattartalmára vonatkozik. A közvetett címzés funkcióelemek részére két adattartományt kell definiálni: A forrás terület ( jele az S ), és a cél terület ( jele a D ) két változóval van kijelölve: 1. Az operandus cím: SADR, vagy DADR Adattípus: Cím Példa: [&] SADR: MB 230 2. Az adatterület elemeinek száma: NO Adattípus: Bájt Példa: [B] NO: KB 4
Az adatmező címe: [&] SADR ( 16 bit = 1 szó )
→ Adatmező tartalma 1 bájt = 8 bit
MB 228 MB 229 MB 230 MB 231 MB 232 MB 233 MB 234 [B] NO ( elemek száma )
MB 238 9-7 ábra: Adatblokk definiálása Bájt szervezésű adattartományokat szabad csak kijelölni. A SADR, vagy DADR bájtra mutat, az NO a bájtok számát jelöli.
Klöckner-Moeller
9-304
9/96 AWB 27-1186-H
Közvetett címzés Az ICPY, és a ICP használata
Az adatblokk áthelyezés szintakszisa Behívás:
ICPY < Elemszám > -R
-R csak akkor, ha retentív ( értékőrző ) regiszter szükséges.
Operandusként:
ICPY < Elemszám >_< Bemenet / kimenet >
Az elemek száma
1 ..255
Végrehajtási idő:
A PS 4-200 sorozat hardver felépítéséből adódóan erősen függ a forrás, és a cél adattartomány operandusainak típusától, számától. Megközelítő értékek: MOD0: ( 355 + 25 x n ) µs MOD1: ( 355 + 10 x n ) µs n = az elemek száma
Ábrázolás Utasítássor ICPY 63 [ ] MOD: [&] SADR: [&] DADR: [B] NO: [B] ERR:
Leírás Bemenetek: MOD:
Üzemmód
= 1 adatterület másolása = 2 adatterület alaphelyzetbe állítása
SADR:
Forrás cím
Az másolandó terület kezdő címe.
DADR:
Célterület cím
A célterület (ahová a lemásolt adatok kerülnek, illetve ahol az alaphelyzetbe állítás történik ) kezdő címe.
NO:
Elemek száma
Az adatterület elemeinek száma. A SADR, és DADR adattípusától függően 1 .. 255.
Klöckner-Moeller
9-305
9/96 AWB 27-1186-H
Közvetett címzés Az ICPY, és a ICP használata
Kimenet: ERR:
Hibakód
=0 =1 =2 =3 =4
A határértékek elfogadhatók NO tartalma 0 SADR helytelen beállítása DADR helytelen beállítása SADR, és DADR azonos.
Az ICPY funkcióelem a rendszer adattartományán belül adatok átmásolását végzi. Az átmásolás mindig a "forrás" területről a "cél" területre történik. Az alábbi operandusok használhatók: Forrás
Cél
Adattípus
M SD RD Cím bemenetek
M SD RD Cím bemenetek
Bájt Bájt Bájt Bájt
Természetesen nem lehetséges a bemeneti átmeneti tárolókba írni az adatblokk áthelyező funkcióelem használatával. A funkcióelem kétféle üzemmódban használható. Az üzemmód választása a MOD bemeneten történik. Az 1 érték a másolás üzemmódot, a 0 érték az alaphelyzetbe állítás üzemmódot választja ki. A funkcióelem használatakor a különbség az adat, és a cím között fontos. A szokványos műveletekben, mint például a L M 2.2, mindig az operandus tartalma ( ebben az esetben a merkercella tartalma ) az, amire a művelet hat. Az adatterület áthelyezés esetében a forrásterület címet ( SADR ), és a célterület címet ( DADR ) elő kell írni. Emiatt itt szükséges a címoperátor "&" használata. A címoperátor jelzi, hogy a mögötte álló operandus tartalma cím, és nem adatérték.
Klöckner-Moeller
9-306
9/96 AWB 27-1186-H
Közvetett címzés Az ICPY, és a ICP használata
Másolás üzemmód Az NO bemenetre tett érték határozza meg adatcellák számát. A másolás kezdetének a helyét a SADR bemeneten, a célterület kezdetét a DADR bemeneten levő cím adja meg. Az következő példa ( lásd: 9-8 ábra ) az MB 23, és az MB 26 közötti merker terület tartalmának átmásolása az MB 30, és a MB 33 közötti merker területre. Funkcióelem ICPY 0 [ ] Forrás→ [&] Cél → [&] [B] [B]
MOD: SADR: DADR: NO: ERR:
Merkermező
K0 &MB 23 &MB 30 KB 4
MB 23 MB 24 MB 25 MB 26 MB 27 MB 28 MB 29 MB 30 MB 31 MB 32 MB 33 MB 34
7D 3B 64 A6 00 00 00 7D 3B 64 A6 00 másolás
9-8 ábra: Az ICPY funkcióelem másolás üzemmódjára példa
Klöckner-Moeller
9-307
9/96 AWB 27-1186-H
Közvetett címzés Az ICPY, és a ICP használata
Alaphelyzetbe állítás üzemmód A SADR címen elérhető adatértékkel felülírja, az NO bemeneten megadott számú, a DADR címen kezdődő célterület tartalmát. Az alábbi példa az MB 23 merker bájt tartalmának (7Dh) az MB 27, és a MB 32 közötti merker bájtokba történő beírása. Funkcióelem ICPY 0 [ ] MOD: [&] SADR: [&] DADR: [B] NO: [B] ERR:
Merker mező alapérték beírás
K0 &MB 23 &MB 27 KB 6
MB 23 MB 24 MB 25 MB 26 MB 27 MB 28 MB 29 MB 30 MB 31 MB 32 MB 33
7D 00 00 00 7D 7D 7D 7D 7D 7D 00
9-9 ábra: Az ICPY funkcióelem értékadás üzemmódjára példa
Klöckner-Moeller
9-308
9/96 AWB 27-1186-H
Közvetett címzés Az ICPY, és a ICP használata
Az adatblokk összehasonlítás szintakszisa Behívás:
ICP < Elemszám > -R
-R csak akkor, ha retentív ( értékőrző ) regiszter szükséges.
Operandusként:
ICP < Elemszám >_< Bemenet / kimenet >
Az elemek száma
1 ..255
Végrehajtási idő:
A PS 4-200 sorozat hardver felépítése következtében erősen függ a forrás, és a cél adattartomány operanusainak típusától, számától. Közelítő értékek: MOD0: ( 244 + 7 x n ) µs MOD1: ( 244 + 20 x n ) µs n = az elemek száma
Ábrázolás Utasítássor ICP 5 [ ] [&] [&] [B] [ ] [ ] [ ] [B] [B]
MOD: SADR: DADR: NO: GT: EQ: LT: Q: ERR:
Leírás Bemenetek: MOD:
Üzemmód
= 1 adatterületek összehasonlítása = 2 keresés adatértékre
SADR:
Forrás cím
Az összehasonlítandó forrásterület kezdő címe.
DADR:
Célterület cím
Az összehasonlítandó célterület kezdő címe.
NO
Elemek száma
Egy és 255 között
Klöckner-Moeller
9-309
9/96 AWB 27-1186-H
Közvetett címzés Az ICPY, és a ICP használata
Kimenetek: GT:
Nagyobb, mint = 1 A SADR adatérték > DADR adatérték +/- előjel nincs beleszámítva
EQ:
Egyenlő
= 1 Az adatértékek azonosak. +/- előjel nincs beleszámítva
LT:
Kisebb, mint
= 1 A SADR adatérték < DADR adatérték +/- előjel nincs beleszámítva
Q:
Kimenet
Összehasonlításkor a nem egyező adatérték, adatérték kereséskor a megtalált adat relatív távolságát mutatja a DADR terület kezdetétől. A relatív távolság értéke minden esetben az alábbi határok között marad: 0 ≤ Q < NO.
ERR:
Hibakód
=0 =1 =2 =3 =4
A határértékek elfogadhatók NO tartalma 0 SADR helytelen beállítása DADR helytelen beállítása SADR, és DADR azonos.
A funkcióelemnek kétféle üzemmódja van ( adat keresés, és adatterület összehasonlítás ) , amik között a választás a MOD bemenetre tett értékkel történik. Összehasonlítás üzemmód Az adatterület összehasonlítás üzemmód két adatterület tartalmát hasonlítja össze. Az adatterületek kezdete a SADR, és a DADR bemeneteken, az adatterület mérete a NO bemeneten adott. Ha a két adatterület tartalma azonos, akkor a Q kimenetre NO értéke, és az EQ kimenetre 1 kerül. A kimenetek állapota, amikor az adatterületek azonosak az alábbi: Q = NO bemeneten megadott érték; EQ = 1 LT ; GT 0 Ha a megadott adatterületek nem azonosak, akkor a Q kimenet jelzi az eltérő adat helyét. Az EQ kimenetbe "0" íródik, a LT, és a GT kimenetek pedig az eltérő adattartalom összehasonlításakor felvett értékűek ( 1 vagy 0 értelemszerűen ). A kimenetek állapota, amikor az adatterületek nem azonosak az alábbi: Q = 0 .. NO - 1 között; EQ = 0 LT ; GT tartalma az összehasonlítás eredményétől Klöckner-Moeller 9-310 9/96 AWB 27-1186-H
Közvetett címzés Az ICPY, és a ICP használata függ
Az alábbi példa a MB 23, és MB 26 közötti merker bájtok tartalmát hasonlítja össze a MB 30, és a MB 33 közötti merker bájtok tartalmával. Funkcióelem
Merker mező
ICP 10 [ ] Forrás : [&] Cél : [&] [B] [ ] [ ] [ ] [B] [B]
Eredmény
MOD: SADR: DADR: NO: GT: EQ: LT: Q: ERR:
K0 &MB 23 &MB 30 KB 4
Q=4 LT = 0 EQ = 1 GT = 0
MB 23 MB 24 MB 25 MB 26 MB 27 MB 28 MB 29 MB 30 MB 31 MB 32 MB 33 MB 34
7D 3B 64 A6 00 00 00 7D 3B 64 A6 00 összehasonlítás
9-10 ábra: Az ICP funkcióelem összehasonlítás üzemmód példája A két adatterület azonos. Ezt a EQ = 1, és a Q = NO együtt jelzi. Keresés üzemmód A minta adat, aminek a megfelelőjét keresi a SADR bemeneten definiált címen levő operandus tartalma, Az átvizsgálandó adatterület kezdő címe a DADR bemeneten, mérete a NO bemeneten van. Ha megtalálja a megadott értéket , akkor a megtalált adat helyzete a Q kimenetre, és az EQ kimenet magasba ( =1 ) kerül. A kimenetek állapota, amikor az értéket megtalálta az alábbi: EQ = 1 0 ≤ Q < (NO bemeneten megadott érték) LT ; GT 0
Klöckner-Moeller
9-311
9/96 AWB 27-1186-H
Közvetett címzés Az ICPY, és a ICP használata Ha a megadott értéket nem találja meg a kijelölt területen, akkor a Q kimenet az NO tartalmával egyenlő, és az EQ kimenetre "0" íródik, a LT, és a GT kimenetek pedig az utolsó összehasonlításkor felvett értékűek. A kimenetek állapota, amikor az értéket nem találta meg az alábbi: Q = (NO bemeneten megadott érték) EQ = 0 LT ; GT tartalma az utolsóként összehasonlított adatoktól függ. Az alábbi példában a MB 23 merker bájtban tárolt "7D" érték keresett a MB 27, és a MB 32 által határolt adatterületen Funkcióelem
Merker mező
ICP 10 [ ] MOD: [&] SADR: [&] DADR: [B] NO: [ ] GT: [ ] EQ: [ ] LT: [B] Q: [B] ERR:
Eredmény
K0 &MB 23 &MB 27 KB 6
Q=3 LT = 0 EQ = 1 GT = 0
MB 23 MB 24 MB 25 MB 26 MB 27 MB 28 MB 29 MB 30 MB 31 MB 32 MB 33 MB 34
7D 00 00 00 3D 70 4D 7D 7D 7D 00 00 találatkor abbahagyja a keresési eljárást
9-11 ábra: Az ICP funkcióelem keresés üzemmód példája A "7D" értéket a DADR + (Q értéke) címen találta meg. ( Jelen esetben MB 27 + 3 )
Klöckner-Moeller
9-312
9/96 AWB 27-1186-H
Közvetett címzés Az "&" címoperátor használata A szabványnak megfelelően az operandus elé helyezett "&" címoperátor azonosítja, hogy az operandus tartalma nem a feldolgozandó érték, hanem cím, azaz közvetett címzés történt. (Lásd a fejezet bevezetőjében írtakat az alkalmazható operandusokról.) Példa: L &MB12 A címoperátor használata szimbolikus operandussal is megengedett. Példa: L &'Bemenet1 Ha egy program szekvencia címoperátoros operandussal kezdődik, akkor lezárni csak a közvetett címzéshez használt funkcióelem cím bemeneteinek kijelölésével lehet. Példa:
L &MB 0.0 = ICPY0 SADR = ICPY6 DADR
A SUCOsoft program rendszer a címeket normál esetben szó formátumú adatként kezeli. Következésképpen a címekkel el lehet végezni az összeadás, kivonás, szorzás, osztás, összehasonlítás, stb. műveleteket, de ezekben a műveletekben csak szó formátumú operandusok vehetnek részt (Lásd: 5 fejezet "Utasítások (IL, AWL) ). A címoperátor használatakor csak bájt formátum a megengedett. A címekkel végzett műveletek, mivel a teljes adatterület megcímzéséhez 16 bit = 1 szó szükséges, szó formátumú szekvenciát igényelnek, annak ellenére, hogy a címoperátoros szekvenciák esetében az adatterület tartalma 8 bit = 1 bájt. Példa:
1 L &MB 0 ADD MW 6 SUB MW 234 = ICPY255 SADR 2 ICPY255 MOD SADR: L &MB26 DIV ICP254 DADR ROTL O &MB22 DADR: NO: ERR:
Klöckner-Moeller
9-313
9/96 AWB 27-1186-H
Közvetett címzés Az "&" címoperátor használata A funkcióelemek paramétereként "&" címoperátoros operandus csak az ICP, és ICPY funkcióelemekben a SADR, és DADR bemeneteken megengedett. Példa:
ICPY8 .. .. [&] SADR: .. [&] DADR: ..
&MB0 &MB8
A címoperátort csak bájt formátumú operandussal együtt használható. ( A címoperátor operandusának tartalma, azaz a közvetett cím csak 0, .. ,255 lehet. )
Klöckner-Moeller
9-314
9/96 AWB 27-1186-H
Közvetett címzés Alkalmazási példák
Összeadás A feladat: Négy merker bájt ( MB20-tól MB23-ig ) tartalma az MB30 kisegítő merker bájton keresztül összeadva. Az eredmény az MB40 merkerbe kerül ( például átlagolás céljából ). Adat memória ( bájt szervezésű ) MB20 MB21 MB22 MB23 .. MB30 .. MB40 MB41
MW40
12d 34d 56d 78d ( 12, 34, 56, 78 ) 180d 00
Összeadó program: Az összegző programot a $SUM program modul tartalmazza. 00010
$SUM
00011
HUROK
00012
END
Klöckner-Moeller
"Előkészítés L KW0 = MW0 = MW40 "A SUM program modul kezdete ICPY 5 [ ] MOD: K1 [&] SADR: &MB20 ADD MB0 [&] DADR: &MB30 [B] NO: KB1 [B] ERR: L MW30 ADD MW40 = MW40 L MB0 ADD KB1 = MB0 L MB0 CP KB4 BLT LOOP "A SUM programmodul vége EM 9-315
9/96 AWB 27-1186-H
Közvetett címzés Alkalmazási példák
Keverési eljárás idejének módosítása Egy merketterület néhány különböző keverési eljárás részére az idő értékeket tartalmazza. A hozzáadott komponensek hőmérséklet különbségei következtében, az öszszes keverési időt ugyanazzal a faktorral módosítani kell. Ez megvalósítható egy ICPY funkcióelemmel az alábbi módon:
faktor
MB99 MB100 keverési MB101 idők MB102 MB103
adat1 feld.
adat2 feld.
adat3 feld.
MUL
MUL
MUL
...
02h 72h 3Eh 6Fh 03H
MB121
közbenső merker szó MB199 MB200 aktuális MB201 keverési MB202 idők MB203
E4h 7Ch DEh 06h
Az adatfeldolgozás 100-tól 122-ig egyetlen PLC ciklusban történik.
Klöckner-Moeller
9-316
9/96 AWB 27-1186-H
Közvetett címzés Alkalmazási példák
00000
00001
"Értékadás L INB0.0 JCN M2 L KB0 = MB 50 L KB114 = MB 100 L KB 62 = MB 101 L KB 111 = MB 102 L KB 3 = MB 103 M2
Az első ciklus jelzése
"Az egyes keverési idők szorzó faktorra ( kisebb, mint 50 ) az "MB99 merkerben van "A termék számára előállított aktuális keverési időket az alapidő "értékek, és a szorzó faktor szorzata adja L IB 0.0.0.0 = MB99
00002
M3
"Mostantól az MB200-tól felfele az aktuális keverési idők "lesznek elhelyezve "ICPY funkcióelemet alkalmazunk "Minden szorzás művelethez segédregiszterként az MB199 "alkalmazzuk. ICPY0 [ ] MOD: [&] SADR: [&] DADR: [B] NO: [B] ERR:
00002
M4
K1 &MB 100 ADD MB 50 &MB 199 KB 1 QB0.0.1.0
"Az aktuális keverési idők kiszámítása L MB 199 MUL MB 99 = MB 199
Klöckner-Moeller
9-317
9/96 AWB 27-1186-H
Közvetett címzés Alkalmazási példák
00004
M5
"Az értékek beírása a célterületre ICPY1 [ ] MOD: [&] SADR: [&] DADR: [B] NO: [B] ERR:
00005
M6
K1 &MB199 &MB200 ADD MB 50 KB 1 QB0.0.2.0
"Az eltolás növelése a következő értékre L MB 50 CP KB 20 BGT RESET L MB 50 ADD KB 1 = MB 50 JP M3
00006
RESET
"A feldolgozandó értékeket számláló törlése L KB 0 = MB 50
00007
Klöckner-Moeller
END
" EP
9-318
9/96 AWB 27-1186-H
8 Közvetett címzés Teszt funkciók
Állapot visszajelzés Az állapot visszajelzés szolgáltatások biztosítják, hogy a képernyőn, táblázatos formában adattartományok jelenjenek meg. Ez a közvetett címzés funkció ellenőrzésekor hasznos. Az is lehetséges, hogy egyidejűleg, két, nem összetartozó adattartomány jelenjen meg a képernyőn ( dupla tartomány ). A SUCOsoft program "Teszt és üzemeltetés" menüpontjában az alábbi funkció gombokat megnyomva behívható a fenti adattartomány megjelenítő funkció: F5 F6 F9
ONLINE PROGRAMOZÁS ÁLLAPOT VISSZAJELZÉS ÁLLAPOT KIJELZÉS
Beljebb lépés ( kiválasztva valamelyik szolgáltatást ) : F2 Állapot megjelenítés -tól MB 0 -ig MB 20 Mikor elfogadtatja ezeket az értékeket a képernyő bájt formátumban megjennuk az adattartomány tartalma.
Klöckner-Moeller
9-319
9/96 AWB 27-1186-H
10. PROGRAMOZÁSI PÉLDÁK
Tartalom Előszó
10-2
Általános példák - Üzembiztos programozás - Konfigurációs fájl készítése
10-3 10-3 10-4
Példák bit szekvenciákkal - ÉS /VAGY szekvencia - VAGY / ÉS szekvencia - Bináris osztó - Konstans hosszúságú impulzus felfutó élre - Változtatható hosszúságú impulzus felfutó élre - Konstans hosszúságú impulzus lefutó élre - Változtatható hosszúságú impulzus lefutó élre
10-6 10-6 10-7 10-8 10-9 10-10 10-11 10-12
Példák funkcióelemekkel - CK, SCK Nyári / téli idő - Karos sorompó vezérlése ( TR időzítők ) - Kétállású hiszterézises szabályozó ( mintavételi idő: TR időzítő ) - Impulzus generátor ( TR ) - Impulzus kimenet ( C )
10-13 10-13 10-15 10-17 10-21 10-22
Klöckner-Moeller
10-320
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK Előszó A SUCOcontrol PS4-200 sorozat készülékeinek utasítássors ( IL, AWL ) programozásához ad tanácsot ez a kézikönyv program példákon keresztül. A példák megértéséhez irányítástechnikai alapismeretek szükségesek. A bemutatott példa megoldások a SUCOsoft S30-S4-200 fejlesztő program programozási lehetőségeit illusztrálják. Ezek a feladatok nem törekszenek az összes programozási lehetőség mindenre kiterjedő bemutatására, és nem tartalmazza az adott feladat egyéb program megoldásait.
Klöckner-Moeller
10-321
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK Üzembiztos programozás A PS 4-200 sorozat központi egysége felismeri, hogy egy külső távadó jelet ad ( feszültség van a bemeneten ). Természetesen nem ismeri fel, hogy a magas állapotot vajon záró, vagy bontó érintkező okozza, azaz a távadó működött, vagy sem. Vezeték szakadás üzembiztos lekezelésére, mint minden irányítási tervben, a záró érintkező használható bekapcsolásra, és a bontó érintkező kikapcsolásra. PLC programozásakor az összes külső bontó érintkező záró érintkezőként programozandó. + 24 V L I 0.1 A I 0.2 = Q 0.1 Bemenetek CPU Kimenetek
Q 0.1
10-1 ábra A PS 4-200 sorozat üzembiztos áramköre A kimenet ( Q 0.1 ) magas szinten van ( 1 ), ha az első bemenet ( I 0.1 ) aktiválva van, és a második bemenet ( I 0.2 ) nincs aktiválva. Ez azt jelenti, hogy a Q 0.1 = 1, ha I 0.1 = 1, és I 0.2 = 1 egyidejűleg fennáll.
Klöckner-Moeller
10-322
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK Konfigurációs fájl készítése A felhasználónak, a PS 4-200 sorozat felhasználói programjának megírása előtt, a SUCOsoft S 30-S4-200 fejlesztő programban meg kell adnia a készülék elrendezést. Minden készüléket, amelyet a felhasználó csatlakoztat, vagy hálózatba köt, meg kell adni a "Készülék konfigurálás" menüben. A 9-2 ábra egy olyan készülék konfigurációt mutat, amelyben a PS 4-201-MM1-hez három különböző helyi bővítő (LE4) modul csatlakozik. Ezen felül PS 4-201-MM1hez, a hálózaton keresztül egy PS 3-AC, továbbá egy EM4 modul 4 LE4 modullal bővítve, és egy PS 3-DC csatlakozik. A készülék konfigurálás menete az 1 fejezet "Készülék konfigurálás" alfejezetében van leírva.
PS4-201-MM1
1
PS3-AC
2
EM-201-DX2
3
PS3-DC
- MAIN MENU-- > F 1: Visszatérés F 2: Állomás hozzáadás F 3: Modul hozzáadás
116-XD1
116-DX1
116-XD1
116-DX1
116-DX1
PROGRAMMING--- >
116-DX1
116-DX1
DEVICE CONFIGURATION
F 4: Modul áthelyezés F 5: Zoom / Normál F 6: Paraméter szerkesztés
------- v: le4bd.k42 -F 8: Törlés F10: Segítség
10-2 ábra Készülék konfigurációs menü.
Megjegyzés! Valamennyi felhasználói program részére kell készíteni készülék konfigurációs fájlt, és valamennyi felhasználói programba be kell ágyazni ezt a fájlt, függetlenül attól, hogy a PS 4-200 sorozat főkészülékéhez csatlakozik, vagy sem más készülék.
Klöckner-Moeller
10-323
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK Konfigurációs fájl készítése
Klöckner-Moeller
10-324
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK Konfigurációs fájl készítése A következő példa megmutatja, hogy a SUCOsoft fejlesztő programban készített készülék konfigurációs fájlt hogyan van beágyazva a felhasználói programba. A felhasználói program: 00000 001 002 003 00001
Klöckner-Moeller
c:bemutat.q42
BLOKK0 "Konfigurációs fájl beágyazása #include'bemutat.k42' BLOKK1 "Program start
10-325
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK ÉS / VAGY szekvencia Az áramkörrajz a 10-3 ábrán egy "ÉS", és egy "VAGY" szekvenciát tartalmaz. A PS 4-200 sorozat készülékeinek kimenete akkor aktiválódik, ha az érintkezők a baloldali ágban I 0.0 "ÉS" I 0.1 zártak, "VAGY" a jobboldali ágban az I 0.2 zárt.
I 0.0 I 0.1
Q 0.0
I 0.2
00000 001 002 003 00001 001 002 003 004 005 006 00002 001 002
BLOKK0
"Konfigurációs fájl beágyazása #include'bemutat.k42'
BLOKK1
"Program start L I 0.0 A I 0.1 O I 0.2 = Q 0.0
BLOKK2
Bemenet0 Bemenet1 Bemenet2 Kimenet0
"Programvége EP
10-3 ábra Az ÉS / VAGY szekvencia áramkörrajza, és programja
Klöckner-Moeller
10-326
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK VAGY / ÉS szekvencia Az áramkörrajz a 10-5 ábrán egy "VAGY", és egy "ÉS" szekvenciát tartalmaz. Az LE 4-116-XD1 kimenete (Q 1.2.1.0.1) akkor aktiválódik, mikor az érintkező zár az I 1.2.0.0.0 bemeneten "VAGY" az EM 4-201-DX2 I 1.2.0.0.3 bemenetének érintkezője zár, "ÉS" a PS 4-200 sorozatból a főkészülékként használt egységnek az I 0.5 bemeneti érintkezője zár. Az EM 4-201-DX2, és az LE 4-116-XD1 a SUCOnet K hálózaton keresztül csatlakoztatva vannak a PS 4-200-hoz. Az alábbi ábra mutatja a készülék konfigurációt.
PS4-201
1
EM-201-DX2
2
EM-201-DX2
I 1.2.0.0.0
I 1.2.0.0.3
116-XD1
Q 1.2.1.0.1
10-4 ábra Az VAGY / ÉS szekvencia készülék konfigurációja 00000 001 002 003 I 1.2.0.0.0 I 1.2.0.0.3 00001 001 002 I 0.5 003 004 005 006 Q 1.2.1.0.1 00002 001 002
BLOKK0
"Konfigurációs fájl beágyazása #include'bemutat.k42'
BLOKK1
"Program start L I 1.2.0.0.0 O I 1.2.0.0.3 A I 0.5 = Q 1.2.1.0.1
BLOKK2
Bemenet0 EM4 Bemenet3 EM4 Bemenet5 PS4 Kimenet1 LE4
"Programvége EP
10-5 ábra A VAGY /ÉS szekvencia áramkörrajza
Klöckner-Moeller
10-327
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK Bináris osztó A megvalósított bináris osztó az alábbi diagramnak megfelelően 2:1 arányú. I 0.5 Q 0.3 10-6 ábra A bináris osztó jelsorozata Az I 0.5 bemeneten megjelenő első magas szint magasba állítja (set) a Q 0.3 kimenetet, a második magas szint az I 0.5 bemeneten törli (reset) a Q 0.3 kimenetet, majd a harmadik megint magasba állítja, és így tovább. 00000 001 002 003 00001 001 002 003 004 005 006 007 08 00002 001 002 003 004 005 006 007 00003 001 002
Klöckner-Moeller
BLOKK0
"Konfigurációs fájl beágyazása #include'bemutat.k42'
BLOKK1
"Program start L I 0.5 ANM 0.1 JCN BLOKK2 LN M 0.2 = M 0.2
BLOKK2
" L I 0.5 = M 0.1 L M0.2 = Q 0.3
BLOKK3
"Program vége EP
10-328
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK Konstans hosszúságú impulzus felfutó élre
Konstans hosszúságú impulzus felfutó élre Mikor az I 0.1 bemeneten a jelátmenet 0 → 1, akkor a Q 0.2 kimenet egy programciklus időtartamra magasba kapcsol. Az idő diagramot az alábbi ábra mutatja. I 0.0 Q 0.2 →
← 1 ciklusidő
10-7 ábra Konstans hosszúságú impulzus felfutó élre 00000 001 002 003 004 00001 001 002 003 004 005 006 007 008 00002
BLOKK0 "A konfigurációs fájl beágyazása #include 'peldaimp.k42 BLOKK1 "A program kezdete L I 0.0 AN M 0.0 = Q 0.2
Az I 0.1 bemenet lekérdezése
L I 0.1 = M 0.0
Az I 0.1 bemenet lekérdezése
A kimenet
BLOKK2 "A program vége EP
Klöckner-Moeller
10-329
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK Változó hosszúságú impulzus felfutó élre
Változó hosszúságú impulzus felfutó élre Mikor az I 0.1 bemeneten a jelátmenet 0 → 1, akkor a Q 0.2 kimenet a beprogramozott időtartamra ( a példában 5 sec. ) magasba kapcsol. Az idő diagramot az alábbi ábra mutatja. I 0.0 Q 0.2 →
t1
t1
←
10-8 ábra Változó hosszúságú impulzus felfutó élre 00000 001 002 003 00001 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 00002
BLOKK0 "A konfigurációs fájl beágyazása #include 'peldat1.k42 BLOKK1 "A program kezdete L I 0.0 O Q 0.2 = M 0.1
Az I 0.1 bemenet lekérdezése
L M 0.1 AN M 0.2 = Q 0.2
A kimenet
"Az impulzushossz 5 sec. ebben a példában TR0 -S [ ] S: M 0.1 [ ] R: [ ] STOP: [w] I: KW 5 [ ] EQ: M 0.2 [w] Q: BLOKK2 "Program vége EP
Klöckner-Moeller
10-330
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK Konstans hosszúságú impulzus lefutó élre
Konstans hosszúságú impulzus lefutó élre Mikor az I 0.1 bemeneten a jelátmenet 1 → 0, akkor a Q 0.2 kimenet egy programciklus időtartamra magasba kapcsol. Az idő diagramot az alábbi ábra mutatja. I 0.0 Q 0.2 →
← 1 ciklusidő
10-9 ábra Konstans hosszúságú impulzus lefutó élre 00000 001 002 003 00001 001 002 003 004 005 006 007 008 009 010 011 00002
BLOKK0 "A konfigurációs fájl beágyazása #include 'peldaimp.k42 BLOKK1 "A program kezdete L I 0.0 =N M 0.1 L M 0.1 AN M 0.0 = Q 0.2
Az I 0.1 bemenet lekérdezése
A kimenet
L M 0.1 = M 0.0 BLOKK2 "A program vége EP
Klöckner-Moeller
10-331
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK Változó hosszúságú impulzus lefutó élre
Változó hosszúságú impulzus lefutó élre Mikor az I 0.1 bemeneten a jelátmenet 1 → 0, akkor a Q 0.2 kimenet a beprogramozott időtartamra ( a példában 8 sec. ) magasba kapcsol. Az idő diagramot az alábbi ábra mutatja. I 0.0 Q 0.2 →
t2
t2
←
10-10 ábra Változó hosszúságú impulzus felfutó élre 00000 001 002 003 00001 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 00002 001 Klöckner-Moeller
BLOKK0 "A konfigurációs fájl beágyazása #include 'peldat1.k42 BLOKK1 "A program kezdete L I 0.0 O M 0.1 AN M0.4 = M 0.1
Az I 0.1 bemenet lekérdezése
LN I 0.1 A M 0.1 O Q 0.2 AN M 0.4 = Q 0.2
Az I 0.1 bemenet lekérdezése A kimenet A kimenet
"Az impulzushossz 8 sec. ebben a példában TR0 -S [ ] S: Q 0.2 [ ] R: [ ] STOP: [w] I: KW 8 [ ] EQ: M 0.4 [w] Q: BLOKK2 "Program vége EP 10-332
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK CK, SCK Nyári / téli idő
CK, SCK Nyári / téli idő Ebben a példában a PLC valósidejű órája 1994 március 27-én 2:00-kor egy órával előbbre lesz állítva, a téli időszámításból a nyáriba történő átváltásnak megfelelően. Ez a művelet automatikus. A feladat megoldásához a felhasználói programban használni kell a CK0, és az SCK0 funkcióelemeket. Az időszámítás váltáshoz - a nyáriból a télibe, vagy fordítva - nincs szükség programozó készülékre, azaz kézi beavatkozásra. 00000 001 002 003 00001 001 002 003 004 05 006 007 008 009 010 011 012 013 014 00002
BLOKK0 "A konfigurációs fájl beágyazása #include 'peldati.k42 BLOKK1 "A program kezdete "A téli/nyári időszámítás áttérés időpontjának beállítása L KB 0 = MB 2
0 perc
L KB 2 = MB 3
2 óra
L KB 3 = MB 4
március
L KB 27 = MB 5
27 ( nap )
BLOKK2 "A CK0 funkcióelem figyeli az átváltás időpontját: "1994 március 27. 2:00-kor jelez, és a SCK0 átírja 3:00 órára. CK0 [ ] [x] [x] [x] [w] [w] [ ] [ ] [ ] [ ]
Klöckner-Moeller
S: TIME: DAY: DATE: VDAT: VRIM: GT: EQ: LT: ERR:
K1
MW 4 MW 2 M 0.0
10-333
Az SCK0 vezérlője
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK CK, SCK Nyári / téli idő
00003 001 002 003 004 05 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 00004
BLOKK3 "Az új paraméterek, amit az SCK0 funkcióelem használ "a valósidejű óra előre állítására L KB 94 = MB 10
1994
L KB 3 = MB 11
március
L KB 27 = MB 12
27 ( nap )
L KB 0 = MB 13
vasárnap
L KB 3 = MB 14
3 óra ( egy órával előre )
L KB 0 = MB 15
0 perc
L KB 0 = MB 16
0 másodperc
BLOKK4 "A valósidejű óra egy órával történő előre állítása "az SCK0 funkcióelemmel CK0 [ ] S: [&] SADR: [B] ERR:
00005
M 0.0 Engedélyező jel & MB 10 7 bájt kezdőcíme MB 20 Hiba üzenet
BLOKK5 "A program vége EP
Klöckner-Moeller
10-334
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK Karos sorompó vezérlése ( TR időzítők )
Karos sorompó vezérlése ( TR időzítők ) Ez a példa egy egyszerű karos sorompó vezérlést mutat be. A többszintes autóparkoló bejáratánál levő karos sorompó egy elektromotorral nyíható, és zárható. A sorompót egy külső kulcsos kapcsoló, és egy belső nyomógomb működteti. A sorompó automatikusan lezár, ha a beállított idő letelik. Egy figyelmeztető lámpa világít, hogy ne menjen a garázsba kocsi, amíg a sorompó zárva van. Egy optoérzékelő megakadályozza a sorompó lezárását addig, amíg a belépési területen belül kocsi tartózkodik. A sorompó lezárása után egy fix időtartamra a garázson belül, és a sorompó előtt a garázson kívül a világítás fennmarad. 00000 001 002 003 00001 001 002 003 004 005 006 007 008 009 010 00002 001 002 003 004 005 00003 001 002 003 004 00004 001 002 003 004
Klöckner-Moeller
BLOKK0 "A konfigurációs fájl beágyazása #include 'peldaks.k42 BLOKK1 "A program kezdete "A sorompómotor vezérlése ( nyitás ) L I 0.1 O I 0.2 O I 0.5 O Q 0.1 AN I 0.3 AN Q 0.2 = Q 0.1
Nyomógomb "sorompó nyit" Kulcsos kapcsoló "sorompó nyit" Optoérzékelő "kocsi a belépési zónában" Terhelés ( motor ) kapcsoló "sorompó nyit" Határkapcsoló "sorompó nyit" Terhelés kapcsoló "sorompó zár" Terhelés kapcsoló "sorompó nyit"
BLOKK2 "A sorompómotor vezérlése ( zárás ) L M 0.7 AN Q 0.1 = Q 0.2
Relé érintkező 1 "zárás késleltetés" Terhelés kapcsoló "sorompó nyit" Terhelés kapcsoló "sorompó zár"
BLOKK3 "A figyelmeztető lámpa vezérlése a sorompó zárt állapotában L M 0.7 = Q 0.3
Relé érintkező 1 "zárás késleltetés" Terhelés kapcsoló "sorompó zár"
BLOKK4 "A garázs világítás vezérlése L M 0.6 = Q 0.4
Relé érintkező 2 "a világítás ideje" Terhelés ( világítás ) kapcsoló "világítás"
10-335
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK Karos sorompó vezérlése ( TR időzítők )
00005 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 00006 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 00007 001 002 Klöckner-Moeller
BLOKK5 "A zárás késleltetés beállítása "az alapjel állító potenciométer ( P1 ) segítségével. L I 0.3 O M 0.7 AN I 0.1 AN I 0.5 = M 1.7
Határkapcsoló "sorompó nyit" Relé érintkező 1 "zárás késleltetés" Határkapcsoló "sorompó zár" Optoérzékelő "kocsi a belépési zónában" Relé érintkező 3 "zárás késleltetés"
TR0 -S zárás késleltetés 0, .., 1023 sec. között állítható [ ] S: M 1.7 Relé érintkező 3 "zárás késleltetés" [ ] R: [ ] STOP: [w] I: MW 18 Az idő 0, .., 1023 sec. között [ ] EQ: M 0.7 Relé érintkező 1 "zárás késleltetés" [w] Q: L IAW 0 = MW 18
Az idő 0, .., 1023 sec. között
BLOKK6 "A világítás késleltetés beállítása "az alapjel állító potenciométer ( P2 ) segítségével. L I 0.3 S M 0.6
Határkapcsoló "sorompó nyit" Relé érintkező 2 "világítás ideje"
TR1 -S A világítás idejének beállítása ( 0, .., 1023 sec. ) [ ] S: M 0.6 Relé érintkező 2 "világítás ideje" [ ] R: [ ] STOP: [w] I: MW 20 Az idő 0, .., 1023 sec. között [ ] EQ: M 1.6 Relé érintkező 4 "világítás ideje" [w] Q: L IAW 2 = MW 20
Az idő 0, .., 1023 sec. között
L M 1.6 R M 0.6
Relé érintkező 4 "világítás ideje" Relé érintkező 2 "világítás ideje"
BLOKK7 "Program vége EP 10-336
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK Kétállású hiszterézises szabályozó
Kétállású hiszterézises szabályozó ( mintavételi idő: TR időzítő ) A feladat: állítható hiszterézisű, és lekérdezési idejű kétállású szabályozó programjának elkészítése. Az utasítássoros programban konstans szó formátumban adott a hiszterézis, és a mintavételi idő. Az alapjelet a P1 alapjel potencióméter szolgáltatja. Az aktuális érték az analóg bemenet 0 csatornáról kerül beolvasásra. A zárt szabályozási-kör szabályozó algoritmusának engedélyezése az I 0.0 bemenetre tett értékkel történik. A kétállású szabályozó alapvetően egy olyan kapcsoló, amelynek csak "Be", és "Ki" állapota van. Az elkerülhetetlen, de szintén óhajtott hiszterézis következtében a kétállású szabályozó nem képes az xd = 0 értéket tartani, csak ha a megengedett xd értéke nagyobb, mint +xu, vagy kisebb, mint -xu. Ebben a példában a hiszterézis 1 Volt, ami a KW 102 merkerszóba írt értéknek felel meg. A mintavételi idő 1 másodperc ( KW 1000 ). Az értékek igény szerint módosíthatók. Az alábbi diagram a kétállású szabályozó jelleggörbéit mutatja. x
xu
w
y t xd 10-11 ábra Hiszterézises kétállású szabályozó jelleggörbéi x u: x d: x: w: y:
Hiszterézis Szabályozási eltérés = w - x A szabályozott jellemző aktuális értéke Alapjel, vagy referencia jellemző Módosító jellemző
Klöckner-Moeller
10-337
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK Kétállású hiszterézises szabályozó
00000 001 002 003 00001 001 002 003 004 005 006 007 008 00002 001 002 003 004 005 006 007 008 009 010 011 00003 001 002 003 004 005 006 007 008 009 010 011 012 00004 001 002 003 004 00005 001 002 003 004 005
Klöckner-Moeller
BLOKK0
"A konfigurációs fájl beágyazása #include 'peldatpc.k42
BLOKK1
BLOKK2
"A program kezdete "A szabályozó paramétereinek beállítása L KW 102 = MW 100
Hiszterézis = 1 Volt Hiszterézis xu
L KW 1000 = MW 102
Mintavételi idő = 1 sec. Mintavételi idő: T
"A zárt szabályozásikör szabályozó algoritmusának engedélyezése "I 0.0 = H → a zárt szabályozásikör aktív, L → a szabályozásikör kiiktatva. L I 0.0 JC BLOKK3 LK0 = Q 0.0 L I 0.0 JCN BLOKK12
BLOKK3
BLOKK4
Módosító jellemző ( "Be", vagy "Ki" ) Szabályozó engedélyező
"A mintavételi idő beállítása TR0 -MS [ ] S: [ ] R: [ ] STOP: [w] I: [ ] EQ: [w] Q:
A mintavételi idő 0.01, és 65.53 sec. között állítható N M 0.0 Alap impulzus
LN M 0.0 JC BLOKK12
Alap impulzus
MW 102 M 0.0
Mintavételi idő: T Alap impulzus
"Az alapjel ( 0 - 10 V ) beolvasása a P1 potenciométerről ( 0 - 1023 osztás ) L IAW 0 = MW 104
BLOKK5
Szabályozó engedélyező
Alapjel Belső alapjel w(t)
"A szabályozott jellemző ( 0 - 10 V ) beolvasása " az analóg bemenetről ( 0 - 1023 osztás ) L IAW 4 = MW 106
A szabályozott jellemző A szabályozott jellemző belső értéke x(t)
10-338
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK Kétállású hiszterézises szabályozó
00006 001 002 003 004 005 006 007 008 009 010 011 012 013 00007 001 002 003 004 005 006 007 008 00008 001 002 003 004 00009 001 002 003 004 005 006 007 008 009 010 011 012 013 014 00010 001 002 003 004
Klöckner-Moeller
BLOKK6
BLOKK7
"A +/- előjel kiszámítása, és a szabályozási eltérés xd kiszámítása L MW 100 DIV KW 2 = MW 108
Hiszterézis xu
L MW 106 ADD MW 108 = MW 110
A szabályozott jellemző belső értéke x(t) Kisegítő merkerbájt 1 Kisegítő merkerbájt 2
L MW 104 SUB MW 110 = MW112
Belső alapjel w(t) Kisegítő merkerbájt 2 Szabályozási eltérés aktuális értéke xd(t)
Kisegítő merkerbájt 1
"A kétállású szabályozó kimenetének kiszámítása L MW 112 BC BLOKK8
Szabályozási eltérés aktuális értéke xd(t)
LK0 = M 0.1 JP BLOKK9
Kisegítő merkerbit 1
BLOKK8 LK1 = M 0.1 BLOKK9
Kisegítő merkerbit 1
"A hiszterézis, és a szabályozási eltérés összehasonlítása L KHW FFFF SUB MW 112 ADD KW 1 = MW 114
Szabályozási eltérés aktuális értéke xd(t) A maradó szabályozási eltérés xd(t)
L MW 100 CP MW 114 BLT BLOKK10 LK0 = M 0.2 JP BLOKK11
Hiszterézis xu A maradó szabályozási eltérés xd(t)
Kisegítő merkerbit 2
BLOKK10 LK1 = M 0.2
Kisegítő merkerbit 2
10-339
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK Kétállású hiszterézises szabályozó
00011 001 002 003 004 005 006 007 008 009 010 011 012 00012 001 002
Klöckner-Moeller
BLOKK11
BLOKK12
L M 0.2 A M 0.1 S M 0.3
Kisegítő merkerbit 2 Kisegítő merkerbit 1 Kisegítő merkerbit 3
L M 0.2 AN M 0.1 R M 0.3
Kisegítő merkerbit 2 Kisegítő merkerbit 1 Kisegítő merkerbit 3
L M 0.3 =N Q 0.0
Kisegítő merkerbit 3 Módosító jellemző "Be", vagy "Ki"
"Program vége EP
10-340
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK Impulzus generátor
Impulzus generátor ( TR ) Ha egy alkalmazásban igény van változtatható kitöltési tényezőjű impulzus generátorra, akkor ez két funkcióelemmel ( TR0, TR1 ) megoldható. A példában az impulzus a Q 0.4 kimeneten jelenik meg, a magasszint időtartama 4 másodperc, az alacsonyszintté 6 másodperc. Az impulzus generátor automatikusan indul, ha a PLC "Halt" üzemmódból "Run" üzemmódba kapcsol. Az alábbi idődiagram magyarázza a működést
Start
4s
6s
4s
6s
10-12 ábra Az impulzus generátor idődiagramja 00000 001 002 003 00001 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 00002
BLOKK0 "A konfigurációs fájl beágyazása #include 'peldatgen.k42 BLOKK1 "A program kezdete "A TR0 állítja elő az impulzus alacsonyszintjének idejét 6 sec. TR0 -S [ ] S: N M 0.0 [ ] R: [ ] STOP: [w] I: KW 6 [ ] EQ: Q 0.4 [w] Q:
Impulzus kimenet
"A TR1 állítja elő az impulzus magasszintjének idejét 4 sec. TR1 -S [ ] S: Q 0.4 [ ] R: [ ] STOP: [w] I: KW 4 [ ] EQ: M 0.0 [w] Q:
Impulzus kimenet
BLOKK2 "Program vége EP
Klöckner-Moeller
10-341
9/96 AWB 27-1186-H
PROGRAMOZÁSI PÉLDÁK Hátraszámláló
Impulzus kimenet ( C ) Egy alkalmazás igényel egy a C0 funkcióelemmel megvalósított hátraszámlálót. A számláló funkcióelem kijelzi, ha a számláló tartalma nulla. Egy előre megadott, és a számlálóba beírt alapértéktől ( a példában ez 30 ) a beérkező impulzusokat hátrafelé számolva a számláló tartalma eléri a nullát. Ha tovább számlálja a beérkező impulzusokat, akkor a nulla után a 65535-től kezdődően számol hátrafelé. Impulzus bemenet: Alapérték beírás: Törlés Számláló kimenet: 00000 001 002 003 00001 002 003 004 005 006 007 008 009 010 011 00002
I 0.7 I 0.0 I 0,1 ( a számláló tartalma 0 lesz ) Q 0.5 ( a számláló tartama = 0 → a kimenet = 1 )
BLOKK0 "A konfigurációs fájl beágyazása #include 'peldathsz.k42 BLOKK1 "A program kezdete C0 [ ] [ ] [ ] [ ] [w] [ ] [w]
U: D: S: R: I: Z: Q:
I 0.7 I 0.0 I 0.1 KW 30 Q 0.5
Impulzus bemenet Alapérték beíró bemenet Számláló törlés
BLOKK2 "Program vége EP
Klöckner-Moeller
10-342
9/96 AWB 27-1186-H
Utasítások és funkcióelemek Az utasítások listája
Művelet
= = = = = =N =N =N =N =N A A A A A A A A A A A A A A ADD ADD ADD ADD ADD ADD ADD ADD
Példa operandusokra
Q0.0, M0.0 QP0.0.0.0.x QB0, MB0 QPB0 QW0, MW0 Q0.0, M0.0 QP0.0.0.0.x QB0, MB0 QPB0 QW0, MW0 I0.0, Q0.0, M0.0 K1 K0 IP0.0.0.0.x QP0.0.0.0.x 0.0, Q0.0, M0.0 KB0 IPB0 QPB0 IW0, QW0, MW0 KW0 IB0, QB0, MB0 KB0 IPB0 QPB0 IW0, QW0, MW0 KW0
Klöckner-Moeller
Bit Bájt Szó Bit Bit Bájt Bájt Szó Bit Bit Bájt Bájt Szó Bit Bit Bit Bit Bit Bit Bájt Bájt Bájt Bájt Bájt Szó Szó Szó Bájt Bájt Bájt Bájt Bájt Szó Szó Szó
Végre- Bájtok hajtási száma idő µs 8 22 5 22 9 9 22 6 22 11 2 6 0 1 4 4 3 6 3 4 4 6 11 6 3 6 3 4 4 6 11 6 11-343
7 8 5 7 8 9 10 6 8 10 2 6 0 1 5 5 4 6 4 5 5 8 10 8 4 6 4 5 5 8 10 8
Befolyásolt állapotbitek
Befolyásolt regiszterek
-
átmeneti
-
periféria
-
átmeneti
-
periféria
-
átmeneti
-
átmeneti
-
periféria
-
átmeneti
-
periféria
-
átmeneti
-
RA, RS
-
RA
-
RA
-
RA
-
RA, periféria
-
RA, periféria
Z, P/M
Rab, RSb
Z, P/M
RAb
Z, P/M
RAb
Z, P/M
RA, periféria
Z, P/M
RA, periféria
Z, P/M
RAw, RSw
Z, P/M
RAw
Z, P/M
RAw
C, Z, P/M, V
Rab, RSb
C, Z, P/M, V
RAb
C, Z, P/M, V
RAb
Z, P/M
RA, periféria
C, Z, P/M, V
RA, periféria
C, Z, P/M, V
RAw, RSw
C, Z, P/M, V
RAw
C, Z, P/M, V
RAw
9/96 AWB 27-1186-H
Utasítások és funkcióelemek Az utasítások listája
Művelet
AN AN AN AN AN AN AN AN AN AN AN AN AN AN BB BB BC BE BGE BGT BLE BLT BM BM BNB BNB BNC BNE BNV BNZ BNZ BP
Példa operandusokra
I0.0, Q0.0, M0.0 K1 K0 IP0.0.0.0.x QP0.0.0.0.x IB0, QB0, MB0 KB0 IPB0 QPB0 IW0, QW0, MW0 KW0 X LABEL X LABEL LABEL LABEL LABEL LABEL LABEL LABEL LABEL LABEL X LABEL X LABEL LABEL LABEL LABEL LABEL LABEL LABEL
Klöckner-Moeller
Bit Bájt Szó Bit Bit Bit Bit Bit Bit Bájt Bájt Bájt Bájt Bájt Szó Szó Szó Bájt Szó Bájt,Szó Bájt,Szó Bájt,Szó Bájt,Szó Bájt,Szó Bájt,Szó Bájt Szó Bájt Szó Bájt,Szó Bájt,Szó Bájt,Szó Bájt Szó Bájt
Végre- Bájtok hajtási száma idő µs 3 6 1 0 4 4 4 7 4 4 4 8 13 8 7 7 4 4 6 6 4 4 5 5 7 7 4 4 4 5 8 5 11-344
3 6 1 0 5 5 5 7 5 6 6 10 12 10 8 8 5 6 8 8 5 5 7 7 9 9 5 6 6 6 7 7
Befolyásolt állapotbitek
Befolyásolt regiszterek
-
RA, RS
-
RA
-
RA
-
RA
-
RA, periféria
-
RA, periféria
Z, P/M
RAb, RSb
Z, P/M
RAb
Z, P/M
RAb
Z, P/M
RAb,periféria
Z, P/M
RAb,periféria
Z, P/M
Raw, RSw
Z, P/M
RAw
Z, P/M
RAw
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
9/96 AWB 27-1186-H
Utasítások és funkcióelemek Az utasítások listája
BP Művelet
BV BZ BZ CM CMB CMB CMC CMCN CMCY CME CMGE CMGT CMLE CMLT CMM CMM CMNB CMNB CMNC CMNE CMW CMNZ CMNZ CMP CMP CMV CMZ CMZ
LABEL Példa operandusokra
LABEL LABEL LABEL
Szó
5 Bit Bájt Szó
Bájt, Szó Bájt Szó
$FUNCTION X $FUNCTION X $FUNCTION $FUNCTION $FUNCTION $FUNCTION $FUNCTION $FUNCTION $FUNCTION $FUNCTION $FUNCTION $FUNCTION $FUNCTION X $FUNCTION X $FUNCTION $FUNCTION $FUNCTION $FUNCTION $FUNCTION $FUNCTION $FUNCTION $FUNCTION $FUNCTION $FUNCTION $FUNCTION
Klöckner-Moeller
Bájt Szó Bit Bit Bájt, Szó Bájt, Szó Bájt, Szó Bájt, Szó Bájt, Szó Bájt, Szó Bájt Szó Bájt Szó Bájt, Szó Bájt, Szó Bájt, Szó Bájt Szó Bájt, Szó Bájt, Szó Bájt, Szó Bájt Szó
7
-
Végre- Bájtok hajtási száma idő µs 4 5 8 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153 153
11-345
6 6 7 3 12 12 8 8 8 6 11 11 11 11 9 10 12 12 9 9 9 9 10 10 10 9 9 10
Befolyásolt állapotbitek
Befolyásolt regiszterek
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
9/96 AWB 27-1186-H
Utasítások és funkcióelemek Az utasítások listája
Művelet
CP CP CP CP CP CP CP CP DI DIV DIV DIV DIV DIV DIV DIV DIV EI EM EP GOR GOR JC JCN JP L L L L L L
Példa operandusokra
IB0,QB0,MB0 KB0 IPB0 QPB0 IW0,QW0,MW0 KW0 T-, C-, F-ALARM
IB0, QB0, MB0 KB0 IPB0 QPB0 IW0, QW0, MW0 KW0 T-, C-, F-ALARM
LABEL LEBAL LEBAL I0.0, Q0.0, M0.0 I0.0, Q0.0, M0.0 K1 K0 IP0.0.0.0.x QP0.0.0.0.x
Klöckner-Moeller
Bit Bájt Szó Bájt Bájt Bájt Bájt Bájt Bájt Szó Szó Bit,Bájt,Sz ó Bájt Bájt Bájt Bájt Bájt Bájt Szó Szó Bit,Bájt,Sz ó
Bájt Szó Bit Bit Bájt, Szó Bit Bit Bit Bit Bit Bit
Végre- Bájtok hajtási száma idő µs 8 10 7 4 4 12 17 12 9
13 14 12 12 13 20 20 18
8 11 8 4 4 10+90 11+90 7+90 10
7 9 7 8 8 13+85 11+85 13+85
2 2 1 4 2;4 2;4 2 2 5 1 1 4 4
1 1 2 4 5 5 3 2 6 1 1 5 5
11-346
Befolyásolt állapotbitek
Befolyásolt regiszterek
GT/LT(C),E/NE
RAb, RSb
GT/LT(C),E/NE
RAb
GT/LT(C),E/NE
RAb
Z, P/M
RAb, periféria
GT/LT(C),E/NE
RAb, periféria
GT/LT(C),E/NE
Raw, RSw
GT/LT(C),E/NE
RAw
GT/LT(C),E/NE
RAw
-
-
Z, P/M, V
RAb, RSb, GOR
Z, P/M, V
RAb, GOR
Z, P/M, V
RAb, GOR
Z, P/M, V
RAb,GOR,perf.
Z, P/M, V
RAb, GOR,perif.
Z, P/M, V
RAw,RSw,GOR
Z, P/M, V
RAw,GOR
Z, P/M, V
RAw,GOR
-
-
-
-
-
-
C, Z, P/M, V
RAb
Z, P/M
RAw
-
-
-
-
-
-
-
RA, RS
-
RA
-
RA
-
RA
-
RA, periféria
-
RA, periféria
9/96 AWB 27-1186-H
Utasítások és funkcióelemek Az utasítások listája
L L
IB0, QB0, MB0 IB0, QB0, MB0
Művelet
L L L L L L LN LN LN LN LN LN LN LN LN LN LN MUL MUL MUL MUL MUL MUL MUL MUL NOT NOT NOT O O
Példa operandusokra
KB IPB0 QPB0 IW0, QW0, MW0 IW0, QW0, MW0 KW I0.0, Q0.0, M0.0 K1 K0 IP0.0.0.0.x QP0.0.0.0.x IB0, QB0, MB0 KB IPB0 QPB0 IW0, QW0, MW0 KW IB0, QB0, MB0 KB0 IPB0 QPB0 IW0, QW0, MW0 KW0
I0.0, Q0.0, M0.0
Klöckner-Moeller
Bájt Bájt
Bit Bájt Szó Bájt Bájt Bájt Szó Szó Szó Bit Bit Bit Bit Bit Bájt Bájt Bájt Bájt Szó Szó Bájt Bájt Bájt Bájt Bájt Bájt Szó Szó Bit Bájt Szó Bit Bit
2 5
3 5
Z, P/M
RAb, RSb
Z, P/M
RAb
Végre- Bájtok hajtási száma idő µs 2 4 4 4 9 4 6 1 1 4 4 6 3 4 4 11 6 8 10 7 4 4 9+60 9+60 7+60 1 3 6 2 6 11-347
3 4 4 6 8 6 7 1 1 6 6 6 4 5 5 10 8 7 8 6 7 7 11+49 11+49 9+49 1 3 6 2 6
Befolyásolt állapotbitek
Befolyásolt regiszterek
Z, P/M
RAb
Z, P/M
RAb, periféria
Z, P/M
RAb, periféria
Z, P/M
RAw, RSw
Z, P/M
RAw
Z, P/M
RAw
-
RA
-
RA
-
RA
-
RA, periféria
-
RA, periféria
Z, P/M
RAb
Z, P/M
RAb
Z, P/M
RAb, periféria
Z, P/M
RAb, periféria
Z, P/M
RAw
Z, P/M
Raw
Z, P/M, V
RAb, RSb, GOR
Z, P/M, V
RAb, GOR
Z, P/M, V
RAb, GOR
Z, P/M, V
RAb,GOR,perf.
Z, P/M, V
RAb, GOR,perif.
Z, P/M
RAw,RSw,GOR
Z, P/M
RAw,GOR
Z, P/M
RAw,GOR
-
RA
Z, P/M
RAb
-
RAw
-
RA
-
RA
9/96 AWB 27-1186-H
Utasítások és funkcióelemek Az utasítások listája
O O O
K1 K0 IP0.0.0.0.x
Művelet
O O O O O O O O O ON ON ON ON ON ON ON ON ON ON ON ON ON ON R R RET RETC RETCN ROTL
Példa operandusokra
QP0.0.0.0.x IB0, QB0, MB0 KB0 IPB0 QPB0 IW0, QW0, MW0 KW I0.0, Q0.0, M0.0 K1 K0 IP0.0.0.0.x QP0.0.0.0.x IB0, QB0, MB0 KB0 IPB0 QPB0 IW0, QW0, MW0 KW Q0.0, M0.0 QP0.0.0.0.x
Klöckner-Moeller
Bit Bit Bit
1 0 4 Bit Bájt Szó
Bit Bájt Bájt Bájt Bájt Bájt Szó Szó Szó Bit Bit Bit Bit Bit Bit Bájt Bájt Bájt Bájt Bájt Szó Szó Szó Bit Bit Bit Bit Bájt
1 0 5
-
RA
-
RA
-
RA, periféria
Végre- Bájtok hajtási száma idő µs 4 3 6 3 4 4 6 11 6 3 6 0 1 4 4 4 7 4 4 4 8 13 8 2;9 22 2 2;4 2;4 3 11-348
5 4 6 4 5 5 8 10 8 3 6 0 1 5 5 5 7 5 6 6 10 12 10 9 10 1 3 3 3
Befolyásolt állapotbitek
Befolyásolt regiszterek
-
RA, periféria
Z, P/M
RAb, RSb
Z, P/M
RAb
Z, P/M
RAb
Z, P/M
RAb, periféria
Z, P/M
RAb, periféria
Z, P/M
RAw, RSw
Z, P/M
RAw
Z, P/M
RAw
-
RA
-
RA
-
RA
-
RA
-
RA, periféria
-
RA, periféria
Z, P/M
RAb, RSb
Z, P/M
RAb
Z, P/M
RAb
Z, P/M
RAb, periféria
Z, P/M
RAb, periféria
Z, P/M
RAw, RSw
Z, P/M
RAw
Z, P/M
RAw
-
átmeneti
-
periféria
-
-
-
-
-
-
C, Z, P/M
RAb
9/96 AWB 27-1186-H
Utasítások és funkcióelemek Az utasítások listája
ROTL ROTL ROTL
x ( x = 1..8 ) x ( x = 1..8 )
Bájt
ROTL Művelet
Bájt Szó Szó
Példa operandusokra
ROTL ROTL ROTL
x ( x = 1..8 )
S S SHL SHL SHL SHL SHLC SHLC SHR SHR SHR SHR SHRC SHRC SUB SUB SUB SUB SUB SUB SUB SUB XO XO
Q0.0, M0.0
x ( x = 1..8 )
QP0.0.0.0.x x ( x = 1..8 ) x ( x = 1..16 )
x ( x = 1..8 ) x ( x = 1..16 )
IB0, QB0, MB0 KB0 IPB0 QPB0 IW0, QW0, MW0 KW0 I0.0, Q0.0, M0.0
Klöckner-Moeller
Bit Bájt Szó Bájt Szó Szó Bit Bit Bájt Bájt Szó Szó Bájt Szó Bájt Bájt Szó Szó Bájt Szó Bájt Bájt Bájt Bájt Bájt Szó Szó Szó Bit Bit
3+3xn 9 2+10x n 3
7 10 14
C, Z, P/M
RAb
C, Z, P/M
RAw
C, Z, P/M
RAw
3
C, Z, P/M
RAb
Végre- Bájtok hajtási száma idő µs 3+3xn 9 2+10x n 2;3 22 4 4+3xn 7 1+9xn 3 6 4 4+3xn 7 1+9xn 3 6 4 9 4 4 4 7 16 7 2;3 6;7 11-349
Befolyásolt állapotbitek
Befolyásolt regiszterek
7 10 14
C, Z, P/M
RAb
C, Z, P/M
RAw
C, Z, P/M
RAw
9 10 4 8 7 11 3 6 4 8 7 11 3 6 5 11 5 10 10 9 15 9 4 8
-
átmeneti
-
periféria
C, Z, P/M
RAb
C, Z, P/M
RAb
C, Z, P/M
RAw
C, Z, P/M
RAw
C, Z, P/M
RAb
C, Z, P/M
RAw
C, Z, P/M
RAb
C, Z, P/M
RAb
C, Z, P/M
RAw
C, Z, P/M
RAw
C, Z, P/M
RAb
C, Z, P/M
RAw
C, Z, P/M, V
RAb, RSb
C, Z, P/M, V
RAb
C, Z, P/M, V
RAb
Z, P/M
Rab, perféria
C, Z, P/M, V
RAb, periféria.
C, Z, P/M, V
RAw,RSw
C, Z, P/M, V
RAw
C, Z, P/M, V
RAw
-
RA
-
RA
9/96 AWB 27-1186-H
Utasítások és funkcióelemek Az utasítások listája
XO XO XO XO XO XO
K1 K0 IP0.0.0.0.x QP0.0.0.0.x IB0, QB0, MB0
Művelet
XO XO XO XO XO XO XON XON XON XON XON XON XON XON XON XON XON XON XON XON
Példa operandusokra
KB0 IPB0 QPB0 IW0, QW0, MW0 KW I0.0, Q0.0, M0.0 K1 K0 IP0.0.0.0.x QP0.0.0.0.x IB0, QB0, MB0 KB0 IPB0 QPB0 IW0, QW0, MW0 KW
Rövidítések:
Klöckner-Moeller
Bit Bit Bit Bit Bájt Bájt Bit Bájt Szó
1 0 4 4 3 6
1 0 7 7 4 6
-
RA
-
RA
-
RA, periféria
-
RA, periféria
Z, P/M
RAb, RSb
Z, P/M
RAb
Végre- Bájtok hajtási száma idő µs
Bájt Bájt Bájt Szó Szó Szó Bit Bit Bit Bit Bit Bit Bájt Bájt Bájt Bájt Bájt Szó Szó Szó
3 4 4 8 11 6 2;3 6;7 0 1 4 4 4 7 4 4 4 8 13 8
RSw RSb RS RAw RAb
Veremregiszter ( szó ) Veremregiszter ( bájt ) Veremregiszter ( bit ) Munkaregiszter ( szó ) Munkaregiszter ( bájt ) 11-350
4 5 5 10 10 8 4 8 0 1 7 7 5 7 5 6 6 10 12 10
Befolyásolt állapotbitek
Befolyásolt regiszterek
Z, P/M
RAb
Z, P/M
RAb, periféria
Z, P/M
RAb, periféria
Z, P/M
RAw, RSw
Z, P/M
RAw
Z, P/M
RAw
-
RA
-
RA
-
RA
-
RA
-
RA, periféria
-
RA, periféria
Z, P/M
RAb, RSb
Z, P/M
RAb
Z, P/M
RAb
Z, P/M
RAb, periféria
Z, P/M
RAb, periféria
Z, P/M
RAw, RSw
Z, P/M
RAw
Z, P/M
RAw
9/96 AWB 27-1186-H
Utasítások és funkcióelemek Az utasítások listája RA RHw
Klöckner-Moeller
Munkaregiszter ( bit ) Segédregiszter ( szó )
11-351
9/96 AWB 27-1186-H
Utasítások és funkcióelemek A funkcióelemek listája
Megnevezés Komparátor
CP
Végrehajtási idő µsec. 105
Előre/hátra számláló
C
170
szó
van
Időzítők: - késleltetve elengedő - pulzusadó - késleltetve meghuzó - impulzus generátor
TF TP TR TGEN
300 300 300 150
-
van van van -
Idő/détum komparátor CK Óra állítás SCK
200 790
-
-
Shiftregiszter
SR SRB SRW
148 + (n - 1) x 20 148 + (n - 1) x 20 158 + (n - 1) x 65 n = regiszterhossz
bit bájt szó
van van van
Veremregiszter
FIFOB FIFOW LIFOB LIFOW
265 265 265 265
bájt szó bájt szó
van van van van
Kódkonverterek Bináris → BCD BCD → bináris
BID DEB
460 .. 500 145
szó szó
-
Közvetett másolás
ICPY
referencia érték 1) MOD0: 355 + 20 x n MOD0: 355 + 20 x n n = elemek száma
bájt
van
Összehasonlító
IPC
referencia érték 1) MOD0: 244 + 7 x n MOD0: 264 + 20 x n n = elemek száma
bájt
van
Klöckner-Moeller
Funkcióelem
11-352
Adattípus Értékmegőrzé s szó -
9/96 AWB 27-1186-H
Utasítások és funkcióelemek A funkcióelemek listája
Megnevezés Adatvisszatöltés Adatmentés
Funkcióelem RDAT SDAT
Végrehajtási idő µsec. 330 + 25 x n 330 + 25 x n n = az elemek száma 20 $P 2) nélkül 240 + $P idő 240 + $P idő 240 + $P idő
Adattípus Értékmegőrzé s -
Megszakítástkérők Gyorsszámláló Élszámláló Időzítő
CALARM FALARM TALARM
Lépéslánc
SK
set/reset = 0 ; 130 reset = 1 ; 240 set = 1 ; 250 SINO érvénytelen 150
van
Soros kommunikáció
SCO
200
-
-
-
-
1 A végrehajtási idő erősen függ a forrás, és a cél operandus típusától 2 $P alprogram
Klöckner-Moeller
11-353
9/96 AWB 27-1186-H