199
Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 1. oldal SIMATIC S7 Programozás gyakorlata (munkaváltozat) Vámos Sándor A jegyzet tartalmát folyamatosan bővítem, tartalmát a kritikák és észrevételek alapján is változtatom, ezért számítok az ön kommentárjaira is. Ez az anyag jelen állapotában még semmiképpen nem végleges, csak átnézésre adom ki. Ez a dokumentum egy munkaváltozat. Ennek ellenére az összes jogot fenntartom. A Simatic, WinCC, ProfiNet szavak jogai a Siemens Ag tulajdonában állnak.

128473626 Simatic Hardware Alapok 04

Embed Size (px)

Citation preview

Page 1: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 1. oldal

SIMATIC S7 Programozás gyakorlata

(munkaváltozat)

Vámos Sándor

A jegyzet tartalmát folyamatosan bővítem, tartalmát a kritikák és észrevételek alapján is változtatom, ezért számítok az ön kommentárjaira is. Ez az anyag jelen állapotában még semmiképpen nem végleges, csak átnézésre adom ki. Ez a dokumentum egy munkaváltozat. Ennek ellenére az összes jogot fenntartom. A Simatic, WinCC, ProfiNet szavak jogai a Siemens Ag tulajdonában állnak.

Page 2: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 2. oldal

Tartalomjegyzék SIMATIC S7 Programozás gyakorlata .....................................................................................1 (munkaváltozat)........................................................................................................................1

Tartalomjegyzék ...................................................................................................................2 Mi a PLC - bevezetés ...............................................................................................................8

Alapfogalmak ........................................................................................................................8 A PLC programok felépítése .............................................................................................9

memória.........................................................................................................................9 Lokális változók .............................................................................................................9 DB (Daten Baustein)......................................................................................................9 i / o...............................................................................................................................10 Periféria be- és kimenetek...........................................................................................10 FC, SFC.......................................................................................................................10 FB, SFB .......................................................................................................................10 OB ...............................................................................................................................10 Adatterületek csoportosítása .......................................................................................10 KOP, FUP, AWL..........................................................................................................12

Hardware - alapok...........................................................................................................16 Központi egység (ZE) ..................................................................................................16 I/O kártyák ...................................................................................................................17 További kártyák ...........................................................................................................18 Alegységek ..................................................................................................................18

A PLC programozás írott és íratlan szabályai ....................................................................19 Programozástechnika .....................................................................................................20

A kimenetek csak egyszer szerepelhetnek a programban ..........................................20 A kimeneteket nem olvassuk vissza............................................................................20 Vészálljt a kimenet kiadása előtt kell lekezelni ............................................................21 A vészjelzések (pl. vészállj) jellemzően negált jelek ...................................................21 LOG0, LOG1, SIM0, SIM1, Dummy ............................................................................21 Vonalkód......................................................................................................................22 KKS jelrendszer...........................................................................................................22 P&I séma értelmezése ................................................................................................23 Remanens területek ....................................................................................................29 Beszélő változónevek, kommentárok használata........................................................31 OB-ba nem írunk programot........................................................................................32 Network-ök használata ................................................................................................33 Specializált FC-k, DB-k................................................................................................33 Azonos funkciójú egységekre FC-t vagy FB-t kell írni .................................................33 Analóg ki- és bemenetek kezelése..............................................................................33 HMI kapcsolat..............................................................................................................33 Gyártástechnológia vs. Felügyeleti rendszerek...........................................................33

Hajtástechnika.................................................................................................................34 Szenzortípusok ...............................................................................................................34

Mágnesestér szenzor (Magnetfeld Sensor).................................................................34 Kapacitív szenzor (Kapazitiven Sensor)......................................................................35 Induktív szenzor (Induktive Sensor) ............................................................................35 Fénysorompó és opto-szenzor (Lichtschrank und Opto-Sensor) ................................35 Nyomás- és vákuumszenzor (Druck- und Vakuumsensoren) .....................................36 Átfolyás szenzor (Durchflusssensoren) .......................................................................36 mágnesszalagos útmérőrendszer ...............................................................................36 Azonosítók (IS – Identifikation System).......................................................................37 Lézerszkener (LS – Laser Scanner)............................................................................37

Gyártástechnológia eszközei ..........................................................................................38

Page 3: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 3. oldal

Paletta (WT – Werkstückträger) ..................................................................................38 Megállító (VE – Vereinzeler).......................................................................................39 Feltámasztás (PE – Positioniereinheit)........................................................................39 Rezgőtálcás adagoló (Schwingförderer Zuführanlage) ...............................................40 Vészállj funkció (Notaus) .............................................................................................40 Védett zóna .................................................................................................................40 Biztonsági relék (Pilz-ek) .............................................................................................41 Körasztal (Rundtisch) ..................................................................................................41 OP – Operation panel..................................................................................................42 Üzemmódok (Mode) ....................................................................................................42 Szignál-lámpák jelentése.............................................................................................45

Felügyeleti rendszerek jellemzői .....................................................................................45 Digitális mérések késleltetése .....................................................................................46 Távfelügyelet ...............................................................................................................46 Helyi és táv mód ..........................................................................................................46 Motor- és szelepfunkciók.............................................................................................46 Lefutó program ............................................................................................................46 Üzemóra számlálók .....................................................................................................46 Jelzés FC-k..................................................................................................................47 Szintjelölések: LL, L, H, HH.........................................................................................47 Szintjelzések kezelése ................................................................................................47 Szárazfutás védelem ...................................................................................................47 Forgásfelügyelet ..........................................................................................................47 Biztonsági relék – funkciók (Pilz).................................................................................47

Szabályozástechnika ......................................................................................................47 Beüzemelés ....................................................................................................................47

Szignálteszt .................................................................................................................47 SIM0, SIM1, Dummy ...................................................................................................49

Új S7-300-as projekt létrehozása (német nyelvű SIMATIC Manager-ben).........................50 Hardware konfig diagnózis CPU szimbólumai online módban........................................53 PLCSim használata.........................................................................................................54

Kommunikáció ....................................................................................................................58 Buszrendszerek ismertetése ..............................................................................................59

ISO-OSI referencia modell ..............................................................................................59 Az OSI rétegek feladatai..............................................................................................60

MPI..................................................................................................................................61 Profibus ...........................................................................................................................61

RS485 a PROFIBUS DP-hez és FMS-hez..................................................................63 Az IEC 1158-2 átviteli szabvány a PROFIBUS PA-hoz...............................................64 PROFIBUS OLM .........................................................................................................66 PROFIBUS ILM ...........................................................................................................66 PROFIBUS-DP ............................................................................................................69 PROFIBUS-PA ............................................................................................................71 PROFIBUS-FMS .........................................................................................................71 PROFIBUS – Device Data Base fájlok (GSD).............................................................72

AS-I .................................................................................................................................73 AS-I ISO/OSI rétegek ismertetése...............................................................................73 Intelligens vagy hagyományos eszközök ....................................................................74 Terepbusz interface.....................................................................................................74

Can..................................................................................................................................76 Hogyan működik a CAN hálózat..................................................................................76

HMI – Human – Machine Interface .....................................................................................78 SCADA............................................................................................................................79

Software – alapok ...............................................................................................................80 Változó típusok ...................................................................................................................80

Page 4: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 4. oldal

Bit ................................................................................................................................81 Byte .............................................................................................................................81 Char.............................................................................................................................81 Date .............................................................................................................................81 Date_and_time (DT) ....................................................................................................81 Dint ..............................................................................................................................82 Dword ..........................................................................................................................82 Int.................................................................................................................................83 Real .............................................................................................................................83 S5time .........................................................................................................................83 String ...........................................................................................................................84 Time.............................................................................................................................84 Time_of_day (TOD).....................................................................................................85 Word ............................................................................................................................85

Definíciók és regiszterek.....................................................................................................85 Globális és instant DB-k..................................................................................................85 kiértékelési lánc (Verknüpfungskette) .............................................................................86 Konstansok megadása....................................................................................................86 Státusz szó, VKE, STA, STANDARD..............................................................................88

Státusz szó ..................................................................................................................89 /ER Kiértékelő (0.) bit ..................................................................................................90 VKE (1.) bit ..................................................................................................................90 STA (2.) bit ..................................................................................................................90 OR (3.) bit ....................................................................................................................91 OS (4.) bit ....................................................................................................................92 OV (5.) bit ....................................................................................................................92 A1, A0 (6., 7.) bit..........................................................................................................93 BIE (8.) bit....................................................................................................................94

Zárójel verem (Klammerstack) ........................................................................................94 Utasításkészlet ...................................................................................................................95

Bit logikai műveletek .......................................................................................................96 U (és)...........................................................................................................................96 UN (és nem) ................................................................................................................96 O (vagy).......................................................................................................................97 ON (vagy nem) ............................................................................................................98 X (kizáró vagy).............................................................................................................99 XN (kizáró vagy nem) ..................................................................................................99 = (egyenlő) ................................................................................................................100 R (reset).....................................................................................................................100 S (set) ........................................................................................................................101 NOT (VKE negálás)...................................................................................................101 SET (VKE állítás).......................................................................................................102 CLR (VKE törlés) .......................................................................................................102

Összehasonlítási műveletek .........................................................................................103 ? I (16 bites egész szám összehasonlítás)................................................................103 ? D (32 bites egész szám összehasonlítás) ..............................................................103 ? R (32 bites törtszám összehasonlítás) ...................................................................104

Transzformációk............................................................................................................106 BTI (BCD konvertálás egész szám formátumra) .......................................................106 ITB (egész szám konvertálás BCD formátumra) .......................................................107 ITB (egész szám konvertálás BCD formátumra) .......................................................107 BTD (BCD konvertálás 32 bites egész szám formátumra)........................................107 DTB (32 bites egész szám konvertálás BCD formátumra) ........................................108 ITD (16 bites egész szám átalakítása 32 bitessé).....................................................108 DTR (32 bites egész szám átalakítása IEEE-FP törtszámmá)..................................109

Page 5: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 5. oldal

INVI (egyes inklementer képzés 16 bites egész számon).........................................109 INVD (egyes inklementer képzés 32 bites egész számon) .......................................109 NEGI (16 bites egész szám negálása) ......................................................................110 NEGD (32 bites egész szám negálása) ....................................................................110 NEGR (IEEE-FP törtszám negálása) ........................................................................111 TAW (bájtok cseréje az AKKU1-L-ben) .....................................................................111 TAD (bájtok cseréje az AKKU1-ben) .........................................................................112 RND (törtszám kerekítése egész számra).................................................................112 RND+ (törtszám felkerekítése egész számra)...........................................................113 RND- (törtszám lekerekítése egész számra).............................................................113 TRUNC (törtszám csonkolása egész számra) ..........................................................114

Számláló (Zähler) műveletek ........................................................................................115 FR (számláló feloldása).............................................................................................115 L (számlálóérték betöltése egész számként) ............................................................115 LC (számlálóérték betöltése BCD-ként) ....................................................................116 R (számláló nullázása) ..............................................................................................116 S (számláló beállítása) ..............................................................................................116 ZV (számláló előre) ...................................................................................................116 ZR (számláló hátra) ...................................................................................................117

Adatblokk műveletek .....................................................................................................118 AUF (Adatblokk nyitása)............................................................................................118 TDB (Globális DB és instant DB cseréje) ..................................................................119 L DBLG (Globális DB hosszának betöltése az AKKU1-be) .......................................119 L DBNO (Globális DB számának betöltése az AKKU1-be) .......................................120 L DILG (Instant DB hosszának betöltése az AKKU1-be) ..........................................120 L DINO (Instant DB számának betöltése az AKKU1-be)...........................................120

Ugrás műveletek ...........................................................................................................121 SPA (Abszolút ugrás) ................................................................................................122 SPL (Ugráslista) ........................................................................................................123 SPB (Ugrás, ha a VKE = 1) .......................................................................................123 SPBN (Ugrás, ha a VKE = 0).....................................................................................124 SPBB (Ugrás, ha a VKE = 1, és menti a VKE-t a BIE-be).........................................124 SPBNB (Ugrás, ha a VKE = 0, és menti a VKE-t a BIE-be) ......................................125 SPBI (Ugrás, ha a BIE = 1)........................................................................................126 SPBIN (Ugrás, ha a BIE = 0) .....................................................................................126 SPO (Ugrás, ha az OV = 1) .......................................................................................126 SPS (Ugrás, ha az OS = 1) .......................................................................................127 SPZ (Ugrás, ha az eredmény = 0).............................................................................128 SPN (Ugrás, ha az eredmény <> 0) ..........................................................................128 SPP (Ugrás, ha az eredmény > 0).............................................................................129 SPM (Ugrás, ha az eredmény < 0) ............................................................................130 SPPZ (Ugrás, ha az eredmény >= 0) ........................................................................130 SPMZ (Ugrás, ha az eredmény < 0)..........................................................................131 SPU (Ugrás, ha érvénytelen az eredmény)...............................................................132 LOOP (hurok) ............................................................................................................132

Egész szám műveletek .................................................................................................134 +I (AKKU1 és AKKU2 összeadása 16 bites egész számként) ..................................135 -I (AKKU1 kivonása AKKU2-ből 16 bites egész számként).......................................136 *I (AKKU1 és AKKU2 összeszorzása 16 bites egész számként) ..............................137 /I (AKKU2 osztása AKKU1-gyel 16 bites egész számként) .......................................137 + (Egész szám konstans hozzáadása (16, 32 bit))....................................................139 +D (AKKU1 és AKKU2 összeadása 32 bites egész számként) ................................139 -D (AKKU1 kivonása AKKU2-ből 32 bites egész számként) .....................................140 *D (AKKU1 és AKKU2 összeszorzása 32 bites egész számként) ............................141 /D (AKKU2 osztása AKKU1-gyel 32 bites egész számként) .....................................142

Page 6: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 6. oldal

MOD (AKKU2 osztási maradéka AKKU1-gyel 32 bites egész számként).................143 Törtszám műveletek......................................................................................................144

+R (AKKU1 és AKKU2 összeadása 32 bites törtszámként)......................................145 -R (AKKU1 kivonása AKKU2-ből 32 bites törtszámként) ..........................................146 *R (AKKU1 és AKKU2 összeszorzása 32 bites törtszámként)..................................147 /R (AKKU2 osztása AKKU1-gyel 32 bites törtszámként)...........................................147 ABS (32 bites törtszám abszolút értéke) ...................................................................148 SQR (32 bites törtszám négyzete) ............................................................................149 SQRT (32 bites törtszám köbgyöke) .........................................................................149 EXP (32 bites törtszám exponenciális értéke)...........................................................150 LN (32 bites törtszám természetes logaritmusa) .......................................................151 SIN (32 bites törtszám szinusz értéke)......................................................................152 COS (32 bites törtszám koszinusz értéke) ................................................................152 TAN (32 bites törtszám tangens értéke)....................................................................153 ASIN (32 bites törtszám arkusz szinusz értéke)........................................................154 ACOS (32 bites törtszám arkusz koszinusz értéke) ..................................................155 ATAN (32 bites törtszám arkusz tangens értéke)......................................................155

Betöltés/mozgatás műveletek .......................................................................................156 L (Betöltés) ................................................................................................................157 L STW (Státusz szó betöltése az AKKU1-be) ...........................................................157 LAR1 (1. címregiszter feltöltése AKKU1-ből) ............................................................158 LAR1 <D> (1. címregiszter betöltése 32 bites pointerrel)..........................................158 LAR1 AR2 (2. címregiszter betöltése az 1. címregiszterbe)......................................159 LAR2 (2. címregiszter feltöltése AKKU1-ből) ............................................................160 LAR2 <D> (2. címregiszter betöltése 32 bites pointerrel)..........................................160 T (Mozgatás) .............................................................................................................161 T STW (Státusz szó feltöltése az AKKU1-ből) ..........................................................162 TAR (1. és 2. címregiszter cseréje) ...........................................................................162 TAR1 (1. címregiszter mozgatása az AKKU1-be) .....................................................162 TAR1 <D> (1. címregiszter mozgatása a 32 bites pointer által megjelölt célcímre) ..163 TAR1 AR2 (1. címregiszter mozgatása a 2. címregiszterbe) ....................................164 TAR2 (2. címregiszter mozgatása az AKKU1-be) .....................................................164 TAR2 <D> (2. címregiszter mozgatása a 32 bites pointer által megjelölt célcímre) ..165

Programvezérlés ...........................................................................................................166 Léptetés műveletek .......................................................................................................167

SSI (előjeles 16 bites szám léptetése jobbra) ...........................................................167 SSD (előjeles 32 bites szám léptetése).....................................................................168 SLW (16 bites szó balra léptetése)............................................................................169 SRW (16 bites szó jobbra léptetése) .........................................................................170 SLD (32 bites duplaszó balra léptetése)....................................................................171 SRD (32 bites duplaszó jobbra léptetése) .................................................................172

Forgatás műveletek.......................................................................................................173 RLD (32 bites duplaszó forgatása balra) ...................................................................173 RRD (32 bites duplaszó forgatása jobbra) ................................................................174 RLDA (32 bites duplaszó forgatása balra).................................................................175 RRDA (32 bites duplaszó forgatása jobbra) ..............................................................176

Időfunkciók ....................................................................................................................176 FR (Timer feloldása)..................................................................................................177 L (Időérték megadása AKKU1-be, egész szám formátumban) .................................177 LC (Időérték megadása AKKU1-be, BCD formátumban) ..........................................178 R (Timer nullázása) ...................................................................................................178 SI (Impulzus időfunkció) ............................................................................................178 SV (Meghosszabbított impulzus időfunkció)..............................................................179 SE (Bekapcsolás késleltetési időfunkció) ..................................................................179

Simatic Manager...............................................................................................................181

Page 7: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 7. oldal

Teljes Simatic AWL utasításkészlet ..............................................................................185 BCD...............................................................................................................................193 Kettes komplementer képzés........................................................................................193 Néhány S7-400 plc összehasonlítása...........................................................................194 Ascii kódtábla ................................................................................................................195 Szótár, rövidítések ........................................................................................................196 Csatlakozók...................................................................................................................198

PG/OP Csatlakozó (9 tűs Sub D) ..............................................................................198 Források ........................................................................................................................198

Page 8: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 8. oldal

Mi a PLC - bevezetés

A PLC rövidítés a programable logic controller szavakra utal, mindez németül Speicherprogrammierbare Steuerung (SPS). A rövidítés nagyjából arra utal, hogy egy olyan felügyeleti egységgel van dolgunk, mely programozható. Első nekifutásra ennyi elég is lesz. Ez a dokumentum a Simatic S7 PLC-k bemutatásával foglalkozik, az alapok ismertetésétől a programozásig. A dokumentumot az előadás-sorozat háttéranyagának szánom, az előadásokon az alapismereteket ismertnek tekintem, ezek jelentős részét ez a dokumentum tartalmazza. Ami itt nem lelhető fel, azt a http://www4.ad.siemens.de oldalon fogja megtalálni – angolul vagy németül. Az előadás magyar nyelven folyik, de – mivel a teljes ismeretanyag jellemzően németül, ki-sebb részben angolul lelhető fel – a jó értési szintű német és/vagy angol nyelvismeret a szakmához elengedhetetlen. Az előadás során és ebben a dokumentumban is gyökeresen szakítani kívánok az eddigi – elméleti tudás orientált – oktatással, és a fő hangsúlyt a gyakorlati ismeretekre és az ehhez elengedhetetlen elméleti tudásra szeretném fektetni. Nem kívánok a szükségesnél több elvet ismertetni, akit ez érdekel, ajánlom figyelmébe a www.google.hu -t , itt mindenféle, a neten fellelhető ismeretre rá lehet bukkanni. A Siemens Simatic rendszere német fejlesztés, a programozók fő felvevőpiaca is Németor-szág, ezért a szakkifejezésekben, utasításokban a német opciót követem. A PLC programozás egy önálló szakma saját fogásokkal és az ezekhez tartozó szakkifejezésekkel. Biztos, hogy valamelyik porosodó tankönyv mélyén már felbukkant a „merker” szócskát helyettesítő frappáns és rövid kifejezés, de ez sajnos még a szakmai berkekbe nem szivárgott be, így, hogy az üzembe helyezést például ne a szakmai fogalmak tisztázásával kelljen kezdeni, a bevett szóhasználat szerinti „merker”-t használom ebben a jegyzetben. Hozzáteszem, a német nyelvkörnyezetben is a „merker” leginkább csak az automatizálás területén nyert teret, az informatikában nem terjedt el, itt az angolszász kifejezések uralják a terepet – Németországban is. Kezdjük talán rögtön az alapfogalmak tisztázásával:

Alapfogalmak Amennyiben ön már programozott valamilyen magas szintű nyelven, kérem, felejtse el! A PLC programozás alapvetően más elveken nyugszik. Egy magas szintű nyelv ma jellemzően objektum orientált (OOP), ahol a programok lefutása jellemzően eseményekhez (events) van kötve, a program futásideje nem értelmezhető, hiszen a végrehajtás mindig valahol a kódon belül „kódorog”. A PLC programok jellemzően (mert kivétel itt is van) teljesen szekvenciális lefutásúak, a futásnak ráadásul szintideje van, amit ha a kód nem tud teljesíteni, akkor a PLC leáll. A szintidő miatt az eseményvezéreltségnek lőttek – és nincs is igazán értelme itt – megszakítások kezelése lehetséges, de ezeket is meglehetősen egyedi megszorításokkal

Page 9: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 9. oldal

lehet alkalmazni. Az ebben a jegyzetben tárgyalt AWL leginkább a PC-s assembly-re, míg az SCL a Pascal-ra hajaz – szintaktika tekintetében.

A PLC programok felépítése

A PLC bármely funkciójának ismertetése hasonlóan az angol nyelvtanhoz, meglehetősen ellentmondásos mutatvány tud lenni, hiszen itt is a rendhagyó esetek brutális mennyisége időnként kérdésessé teszi a szabályrendszer létét. Mindenesetre megkísérelem a csupasz szabályokat ismertetni, a kivételeket, extrákat és miegyebeket majd később fogjuk erre az egyszerű szerkezetre aggatni.

memória A memória egy PLC típusától függő méretű terület, melynek bármely részére szabadon hivatkozhatunk. Lehetőségünk van a maszkolásra is, azaz ugyanarra a területre többször, több formátumban is hivatkozhatunk. A hivatkozás lehet direkt és szimbolikus, a szimbólumokat egy e célra rendszeresített táblázatban kell rögzítenünk, típusmegjelöléssel és memóriaterület hivatkozással. A memóriát a németből átvett „merker” (jelölő) szócskával szoktuk illetni, mellé biggyesztve a hivatkozás típusát is, pl. merker-byte, merker-bit, merker-szó, merker-duplaszó. Hülyén néz ki, de megszokható. Jellemzően, ha valaki csak merker-t emleget, akkor egy bitet ért alatta.

Lokális változók A lokális változók az OB-ken és FC-ken belül definiált változók, melyeknek az érvényessége lokális, azaz csak az adott funkción belül léteznek, a funkcióból való kilépéskor értéküket elvesztik. Ha programunkban egy nem definiált lokális változót másolunk át a kimenetre, annak tartalma teljesen esetleges lesz.

DB (Daten Baustein)

A DB-ket a PLC-n a PC-s fájlok analógiájára hozták létre. A DB-k szeparált és előre meghatározott struktúra szerint felépített adatterületek. Két típusuk lehetséges, a globális és az instant DB. A globális DB-t jellemzően a programozó hozza létre, és univerzális célokra alkalmazza, míg az instant DB-t jellemzően az FB meghívás generálja, és jellemzően az instant DB az adott FB-hez köthető.

FC10

FC11

FB12

Globális DB

Instant DB

DB20

DB45

Csak az FB12 fér hozzá

Minden FC és FB hozzáférhet

Page 10: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 10. oldal

i / o A fő feladata jellemzően a beérkező inputok feldolgozása és a kimenő outputok felügyelete. A jeleket a PLC un. i/o kártyákon kapja meg (bemeneti kártyák) és adja ki (kimeneti kártyák). Az i/o-k jellemzően lehetnek digitálisak (bitek) vagy analógok (word-ök), de például a digitális területet is olvashatjuk más formátumban (pl. EB : Eingang byte). A bemenetet angolul input, németül az Eingang szavakkal illetjük, a kimenet pedig output-tal illetve Ausgang-gal.

Periféria be- és kimenetek A periféria be- és kimenetek direkt hozzáférést nyújtanak a központi egységre és a decentralizált egységre csatolt kártyákhoz. A perifériákon jellemzően az analóg jeleket kezeljük, az alapértelmezett periféria bemenet a PEW, kimenetként a PAW (Az analóg jeleket általában word-ön írhatjuk és olvashatjuk).

FC, SFC A funkció strukturált programozás egyik alapeleme. Az FC rendelkezhet bemeneti, kimeneti paraméterekkel és lokális (belső) változókkal, jellemzően egy funkciót tartalmaz (pl. Motor FC). Speciális esete az SFC (Systemfunktionen), mely egy előre megírt célfunkció, melyet az alapkönyvtárban találhatunk meg. A funkció lezárásával a lokális változóit „elveszti”, amennyiben a kimenetet az FC-ben nem definiáltuk vagy olyan lokális változót másoltunk ki a kimenetre, melyet a programban nem inicializáltunk, akkor a kimenet tartalma bizonytalan lesz.

FB, SFB Funkciós baustein vagy funkciós blokk. Ez egy „emlékező funkció”, ugyanis minden FB-hez hozzá kell rendelni egy instant DB-t, melybe a lokális változóit elmenti. Ebből is létezik az SFB (Systemfunktionsbausteine), melyet szintén az alapkönyvtárból tudunk előkaparni.

OB Organisationsbausteine (szervezkedő építőkövek?). A PLC a betöltött OB-kat hívogatja minden ciklusban (prioritás –sorrendben), és az innen meghívott FC-k és FB-k kerülnek végrehajtásra, természetesen hívási sorrendben. Az OB-knek sok típusa létezik (vannak, melyek időközönként, mások eseményekre – például programozói hiba esetén – kerülnek meghívásra). Első nekifutásra elégedjünk meg az OB1 alkalmazásával, ez egyszerűen minden ciklusban meghívásra kerül.

Adatterületek csoportosítása

Operand terület Megnevezés S7 jelölés Jellemzés

Bemenet (bit) Eingang

E

Bemeneti byte Eingangsbyte

EB

Bemeneti szó Eingangswort

EW

Bementi változók Prozessabbild der Eingänge

Bemeneti duplaszó Eingangsdoppelwort

ED

Minden ciklus kezdetén a CPU beolvassa a bemeneteket a bemeneti változókba.

Page 11: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 11. oldal

Kimenet (bit) Ausgang

A

Kimeneti byte Ausgangsbyte

AB

Kimeneti szó Ausgangswort

AW

Kimeneti változók Prozessabbild der Ausgänge

Kimeneti duplaszó Ausgangsdoppelwort

AD

Minden ciklus végeztével a CPU a kimeneti változókat kiadja a kimenetekre.

Merker (bit) M Merkerbyte MB Merkerwort MW

Merker

Merkerdoppelwort MD

Merker memória

Idők Zeiten

Timer Zeit

T Időfunkciók

Számlálók Zähler

Számláló Zähler

Z Számláló funkciók

Adatterületek, melyek lehetnek global és instant típusúak

Global DB Global Datenbaustein AUF DB-vel hívható

DB

DB bit Datenbit

DBX

DB byte Datenbyte

DBB

DB szó Datenwort

DBW

DB duplaszó Datendoppelwort

DBD

Globális DB jelölések Global Datenbaustein Notation

Instant DI Instanz Datenbaustein AUF DI-vel hívható

DI

DI bit Datenbit

DIX

DI byte Datenbyte

DIB

DI szó Datenwort

DIW

DB Datenbaustein

DI duplaszó Datendoppelwort

DID

Instant DB változók Instanz Datenbaustein Notation

Lokális bit Lokaldatenbit

L

Lokális változók Lokaldaten

Lokális byte Lokaldatenbyte

LB

A lokális változók az OB-ken és FC-ken belül definiált változók.

Page 12: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 12. oldal

Lokális szó Lokaldatenwort

LW

Lokális duplaszó Lokaldatendoppelwort

LD

Periféria bemeneti byte Peripherieeingangsbyte

PEB

Periféria bemeneti szó Peripherieeingangswort

PEW

Periféria bemenetek Peripheriebereich: Eingänge

Periféria bemeneti duplaszó Peripherieeingangsdoppelwort

PED

Periféria kimeneti byte Peripherieausgangsbyte

PAB

Periféria kimeneti szó Peripherieausgangswort

PAW

Periféria kimenetek Peripheriebereich: Ausgänge

Periféria kimeneti duplaszó Peripherieausgangsdoppelwort

PAD

A periféria be- és kimenetek direkt hozzáférést nyújtanak a központi egységre és a decentralizált egységre csatolt kártyákhoz.

1. Táblázat Adatterületek

KOP, FUP, AWL A Simatic fejlesztői rendszere – hasonlóan más fejlesztői környezethez – több programozás technikát is megenged. Ezek alapból a KOP (Kontaktplan), FUP (Funktionsplan) és az AWL (Anweisungsliste). Programunkat természetesen további programnyelvekkel és programozási környezetekkel bővíthetjük (CFC, SCL, Graph, F-KOP, F-FUP,..), de ezeket csak opciós pakettek telepítésével érhetjük el, melyek nem olcsóságukról híresek.

Ebben a pár sorban az AWL, KOP és FUP programozást jellemzem pár sorban, ugyanazt a példaprogramot használva. A programunk természetesen (?) lehet „vegyes felvágott”, azaz a programozási technikákat ötvözhetjük is egymással, de ez a technika – magunk között szólva – nem tesz jót a megítélésünknek. A kombinálást a fejlesztői rendszer sem támogatja, de nagyon sok olyan művelet van, amit a bal oldali példával élve, nem lehet KOP-ban megjeleníteni, ezért ezek a részek AWL-ben íródhatnak csak. (A fenti programban az első két sor egy Word másolásáról szól, ezt a műveletet a KOP nem tudja megjeleníteni, ezért az egész network-öt AWL-ben hozza fel.

Page 13: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 13. oldal

Érdekesség, hogy például a 300-as „F” (Fail-safety) program biztonsági részét csak KOP-ban és/vagy FUP-ban lehet írni, az AWL-t nem kedveli. (Illetve van egy, un. F-AWL program, de ez már egy másik bolygó..)

Talán a leggyakrabban felbukkanó programozás technika. Vannak olyan fejlesztői környezetek, ahol más lehetőség nincs is a programozásra. Óriási előnye, hogy gyorsan áttekinthető, és a logikája könnyen követhető. A lenti ábrán egy példát mutatok be, ahol a nyitott kontaktusok az ÉS, a zártak pedig az ÉS NEM jelentéssel bírnak. Baloldalról indulnak az ágak, és minden egyes új ág egy VAGY kapcsolatot jelent. Érdemes a rajzot a többi programkezelési móddal is összevetni. A kezdő programozók szívét leginkább ez a technika dobogtatja meg, de a rutin kialakulásával egyre inkább csak akadályozza a KOP alkalmazása a PLC teljes körű megismerését, ugyanis nagyon sok utasítás a KOP-ból nem érhető el.

KOP (Kontaktplan) – LAD (Ladder logic)

Page 14: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 14. oldal

A FUP a funkcióleírások közvetlen leprogramozását teszi lehetővé, ugyanis főleg német környezetben a programokra vonatkozó technológiai leírásokat (Ablaufplan) FUP formában adják ki az erre érdemesített mérnöki irodák, és simán rosszul lesznek, ha a kinyomtatott programban nem ebben a formában látják viszont csodagépüket. A FUP-ra is vonatkozik az a kitétel, mint a KOP-ra, hogy sok utasítás nem írható le itt sem AWL nélkül.

FUP (Funktionsplan) – FBD (Function block diagram)

Page 15: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 15. oldal

És végül, de nem utolsó sorban bemutatom az AWL-t, a kezdő programozók rémálmát. Átláthatóságával nem könnyíti meg a programozók életét, de legalább – ha a program írója nincs igazán tisztában a parancsok prioritásával – pokollá teszi azt. Úgy érzem, elérkezett a pillanat, hogy elővezessem kedvenc – AWL-re mindenképpen igaz – beköpésemet, miszerint

„A program nem szándékaid, hanem utasításaid szerint működik”.

Az AWL-t meg kell szokni, főleg azért mert sok esetben megkerülhetetlen. Némi rutinnal már csak ritkán (minden network-ben csak egyszer-kétszer) okoz meglepetéseket, és még több rutinnal igazán hatékony eszközzé válik a programozáshoz. Elöljáróban talán ennyi (rémisztgetés) is elég, hiszen főleg erről a programozásról fog szólni a könyv hátralevő része.

AWL (Anweisungsliste) – STL (Statement list)

Page 16: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 16. oldal

Hardware - alapok

A PLC szó alatt szűkebb értelemben a központi egységet értjük, de ha tárgyszerűen akarunk fogalmazni, akkor ezt ZE (Zentrale Einheit) rövidítéssel illetjük. A központi egység végzi a program futtatását, itt helyezkednek el a kezelőgombok és visszajelző LED-ek, és legalább egy kommunikációs lehetőséggel is rendelkezik, ahol a programot lehet feltölteni. Az egysé-get önmagában ritkán szoktuk használni, ugyanis a jelek feldolgozását és a kimenő jelek to-vábbítását már más kártyák illetve alegységek végzik.

Központi egység (ZE) A központi egység (németül ZE: Zentrale Einheit) végzi a program futtatását, a kezelőszer-vek itt találhatók, illetve legalább egy kommunikációs csatlakozóval is rendelkezik. A jelek fogadását és továbbítását az I/O kártyák végzik, további műveleteket ( kommunikáció, bővítő modulok csatolása, számlálófunkciók) a speciális kártyák és az alegységek végeznek. A Simatic S7 család a S7-200, 300 és 400-as sorozata a jellemzően alkalmazott PLC, de ezek közül is a 200-as sorozat viszonylag ritkán szokott felbukkanni ipari környezetben. Az S7-300-as sorozat a leggyakoribb, míg az S7-400 jellemzően a nagy üzembiztonságot igénylő rendszereket szolgálja ki – ára is ezt tükrözi.

A teljesség kedvéért megemlítem az S5-ös PLC sorozatot is, mely az S7-est előzte meg. Ez a sorozat ma már leginkább programok portolásakor (portolás: magasabb verziószámra való programátírás) szokott felbukkanni. Programozása az S7 sorozattól jelentősen eltér!

A PLC családokon belül is sok érdekes típus található, ilyen például az F, H, FH sorozat. Erről bővebben egy későbbi bekezdésben olvashat.

1. ábra S7 PLC család

Page 17: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 17. oldal

2. ábra S7-300 PLC felépítése

I/O kártyák Az I/O kártyák végzik a PLC fizikai kapcsolattartását, négy fő típust különböztetünk meg:

I/O kártyatípusok, gyakoriságuk sorrendjében

Jellemző alkalmazási területük

DI – Digital input Szenzorok, kapcsolók, digitális jeladók jeleinek a fogadása

DO – Digital output Kapcsolók, digitális kimenetek vezérlése

AI – Analog input Analóg jeladók értékeinek átvétele

AO – analog output Analóg jel kiadása (jellemzően szabályozástechnikai kimenet)

2. Táblázat I/O kártyák A kártyák hardware-es szempontból rendkívül sokfélék lehetnek, de jellemzően a digitális kártyák 24V feszültséget fogadnak / adnak ki, 16 / 32 porton. Az analóg kártyákat leggyak-rabban a 4-20 mA opcióval szokás alkalmazni.

Page 18: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 18. oldal

További kártyák méghátravan

Alegységek méghátravan

Page 19: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 19. oldal

A PLC programozás írott és íratlan szabályai Minden szakmának megvannak a maga alapfogásai, és ez a PLC programozásra fokozottan érvényes. Egy egyszerű példaprogrammal könnyedén tudjuk tesztelni, hogy kinek mennyi tapasztalata – jártassága van e területen. Ezeknek a fogásoknak a nagy részének megvan a jól megalapozott oka, egy kisebb része pedig „szépségtapasz”, vagy csak megszokásból kerülnek be a programba. Vegyük ezeket sorra! A példázatokat (vö. hegyi beszédeket) szeretném szemléletes példaprogramokkal alátámasztani. Ezekhez a lenti ábrán látható vázlatot veszem alapul:

3. ábra Keverő berendezés sémája

A fenti ábrát direkt német feliratokkal rajzoltam. Érdemes megszokni, hogy a PLC programozás világában (legalábbis a Siemens környezetében) a német és az angol sajátosan keveredik. A magunk részéről még a magyart szoktuk még bevinni ebbe a bábeli zűrzavarba.

-V1 (out)

Ventil 1 1. szelep Monotsabil szelep, ha a kimenet értéke TRUE, akkor nyit, egyébként zárt állásban van

-RW1 (out)

Rührwerk 1 1. keverő Keverőmotor, ha a kimenet értéke TRUE, üzemel

-P1 (out)

Pumpe 1 1. szivattyú Szivattyú, ha a kimenet értéke TRUE, akkor üzemel. Figyelni kell az un. szárazfutás védelemre.

-NS (in)

Not-Aus Not-Stop

vészállj Vészállj nyomógomb. Lenyomott állapotban bontja az áramkört. (negált jelzés)

-EIN (in)

Ein/aus Hauptschalter

be/ki főkapcsoló

Egyállású (impulzus) kapcsoló. Egyszeri megnyomásra bekapcsol, ismételt nyomásra kikapcsol.

-OS1 (in)

Obere (niveau)

1. felső (szint-) kapcsoló

Szintkapcsoló, mely akkor ad jelzést (ebben az esetben), ha a folyadék szintje alá merült

Page 20: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 20. oldal

Schalter 1 -US1 (in)

Untere (niveau) Schalter 1

1. alsó (szint-) kapcsoló

Szintkapcsoló, mely akkor ad jelzést (ebben az esetben), ha a folyadék szintje alá merült

3. Táblázat Példaprogram (ábra) jelölései

Programozástechnika

A kimenetek csak egyszer szerepelhetnek a programban Gyakran felbukkanó hiba, hogy a kimenetek a program során többször kerülnek meghívásra. Ettől lehetőség szerint tartózkodni kell, hiszen hibakeresés során (és főleg, ha gyors hibaelhárításra van szükség, és már mindenkinek szikrázik a szeme a környéken) rendkívül hosszadalmas az összes kimeneti utasítás csekkolása. Sokkal egyszerűbb, ha egy ideiglenes változót vezetünk be erre a célra, és ennek a végső eredményét visszük át a kimenetre. Előnytelen megoldás Jobb megoldás

U -OS1 R -V1 UN -US1 S -V1 UN -NS R -V1

U -OS1 R M10.1 UN -US1 S M10.1 UN -NS R M10.1 U M10.1 = -V1 Megjegyzés: Lehetőség szerint az M10.1-et is szimbolikus névvel kell használni.

A kimeneteket nem olvassuk vissza Persze a Siemens esetén jellemzően ennek semmi akadálya, de sok – főleg régebbi PLC – nem engedte meg ezt a műveletet. Nem egy elegáns megoldás, és főleg a fenti ponttal (a kimenetek csak egyszer szerepelnek a programban) jellemzően nincs is rá szükség, hiszen a kimenetet a programban helyettesítő merker tökéletesen alkalmas a visszaolvasásra. A fenti program folytatása két példával: Előnytelen megoldás Jobb megoldás

U –V1 // ugye kimenet UN –NS R -V1

U M10.1 UN –NS R M10.1 U M10.1 // prg. vége = -V1 Megjegyzés: Lehetőség szerint az M10.1-et is szimbolikus névvel kell használni.

Page 21: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 21. oldal

Vészálljt a kimenet kiadása előtt kell lekezelni A vészállj funkció jellegéből adódóan minden egyéb kimeneti változót felülír. Vészállj esetén minden műveletnek le kell állnia, jellemzően a teljes pneumatika és hidraulika el kell, hogy dobja a nyomást, és a vezérelt hajtások (szervók, villanymotorok, ..) jellemzően feszültég-mentes, szabadonfutó állapotba kell, hogy kerüljenek (kivételt képeznek azok az egységek, melyek leállásukkal sokkal problémásabb vagy életveszélyesebb állapotot idézhetnek elő). Vészállj jelzést jellemzően az alábbi helyekről kaphatunk:

• Közvetlen vészállj nyomógomb • Közvetlen védett zóna oldása jel • Fenti jelek összegzése biztonsági relén, pl. Pilz-en keresztül • Tűzjelző rendszer aktivált állapota

A vészállj jelzés komolyabb helyeken biztonsági relén keresztül érkezik, ugyanis a leoldások jelentős része a PLC közreműködése nélkül, közvetlenül a hardverből történik meg. Előnytelen megoldás Jobb megoldás

... UN –NS // vészállj R M10.1 U -EIN ... S M10.1 U M10.1 = -V1

U M10.1 ... R M10.1 U M10.1 // prg. Vége U -NS1 // vészállj = -V1

Megjegyzés: Lehetőség szerint az M10.1-et is szimbolikus névvel kell használni.

A vészjelzések (pl. vészállj) jellemzően negált jelek

A vészjelzések, kritikus jelzések (pl. HH, LL) jellemzően negált formában érkeznek a PLC-re, azaz 0: hiba, 1: rendben. Ennek az az egyszerű, prózai oka, hogy így a vezetékszakadás is „beleszámít”. Például az egység rendben van („1”), de a PLC felé a kábelcsatornát egy viccesebb kedvű festő flex-szel vette kezelésbe, a vezetékszakadás miatt a jel eltűnik („0”), hibajelzés lép fel, és esetleg a vészleállás is aktiválódik (a melóst meg kitüntetik leleményességéért).

LOG0, LOG1, SIM0, SIM1, Dummy (VKE0, VKE1 : Verknüpfungsergebniss) A régi, rutinos motorosok programjaiban gyakran felbukkan az OB1 első network-jében az alábbi pár sor: U –LOG0 UN –LOG0 = -LOG0 = -SIM0

Page 22: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 22. oldal

U -LOG1 ON -LOG1 = -LOG1 = -SIM1

Az S7 előtti időkben még gyakran szükség volt az „1”-re és „0”-ra változóba tárolt formában, így ezeket manuálisan kellett létrehozni. (Ha nem jönne rá, hogy miért így, szerintem kezdje előröl a könyvet). A -Dummy a magas szintű nyelvek DEV NULL megfelelője ( = szemetes kosár, fekete lyuk,..), teszteléskor, beüzemeléskor használata elkerülhetetlen, és a SIM0, SIM1 is ezekben az esetekben hálálja meg létét. Ezekről bővebben a beüzemelés pont alatt olvashat.

Vonalkód A vonalkódban nem a fekete vonalak, hanem a köztük lévõ fehérek a "hasznosak", mivel ezekrõl verõdik vissza a leolvasó által kibocsátott impulzus. A különbözõ vastagságú, és távolságú fehér vonalak egy számsorozatot kódolnak, ami általában olvasható is a vonalkód alatt.

Az Európában használt vonalkód szabványa a GS1 kódolás (régebben EAN kódolás, azaz European Article Numbering), ebben 13 számjegy jelöli az illető terméket. Ezen számsorozat utolsó jegye egy ellenõrzõ szám, ami egy speciális algoritmus eredményeképpen adódik az elsõ 12 számjegybõl. Az első tizenkét számjegy az alábbi jellemzőket határozza meg:

• 1-3. számjegyek: a gyártási ország (Magyarország esetében 599*********) • 4-12. számjegyek: egyrészről a gyártót jelölik, másrészről azt, hogy az adott termék

hányadik a gyártó által készített listán

A gyártó számát aszerint határozzák meg, hogy hány darab termék (10000 vagy 100000) kódolási lehetőségét vásárolja meg. Természetesen, mivel csupán egy sorszám utal (az ország és a gyártó száma után) a termékre, külön kell a leolvasó (kereskedõ) rendszerében hozzárendelni a termék valódi nevét. Így a fenti módon képzett számhoz a gyártón múlik, hogy mit is rendel hozzá. Csak a termék nevét, vagy eltérõ kódokkal jelöli a méreteket is, esetleg ezen belül a színeket is külön kezeli (hogy csak kettõt emeljünk ki a számtalan tulajdonság közül, ami egy terméket jellemezhet). A bejegyzést a a magyar Wikipedia-ból emeltem át.

KKS jelrendszer A német eredetű erőműi jelölőszabvány (Kraftwerk-Kennzeichensystem – KKS) Magyarországon is kezd elterjedni – csakúgy, mint a világ több – jellemzően Siemens által érintett –részén. A kód gyakorlatilag minden egyedi berendezést leír a gyár területén, így ismeretével jelentősen könnyebb a tájékozódás a területen. A KKS jellemzően 15-17 karakterből álló kódsor, de ha például csak egy adott egységre akarunk hivatkozni, az utolsó blokk elhagyható. A KKS-t egy szabványleírásból (DIN 6779, IEC 61346) minden gyár saját magára szabhatja.

Page 23: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 23. oldal

• 0. blokk: A teljes berendezésen belüli elhelyezkedés • 1. blokk: Funkcionális részegység jellemzése, megjelölése • 2. blokk: Az adott egység jellemzése, megjelölése • 3. blokk: Az adott részegység jellemzése, megjelölése

Nézzünk meg egy példát: 0 2LAC03 CT002 QT12

Blokk száma

Tartalma Jelentése

0. blokk „0” Az adott gyáron belül nem használt kód

1. blokk „2LAC03” 2: Második kazán L: Gőz-, víz- vagy gázberendezés A: Tápvízrendszer C: Tápvíz szivattyú 03: A harmadik szivattyú

2. blokk „CT002” C: közvetlen mérés T: hőmérsékletmérés 002: második mérés

3. blokk „QT12” Q: irányítástechnikai alegység T: védőcső a jeladóhoz 12: 12-es számú védőcső

4. Táblázat KKS példa A fenti kód így a 2.kazánnál található 3.-as számú tápszivattyú második hőmérséklet mérésének a 12 számú jeladó védőcsövét jelenti. Ez így egy kissé talán bonyolultnak tűnik, de aki már dolgozott erőműben, tudja, hogy ez még csak a kezdet.. (A fenti példát a német Wikipedia-ból plagizáltam.)

P&I séma értelmezése

A KKS kód felépítése

Page 24: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 24. oldal

4. ábra P&I séma A P&I séma (Pipe and Instrumentation Diagram) feladata leírni a technológia felépítését, a csövek és technológiai berendezések kapcsolatrendszerét. A rajzokon jellemzően feltüntetik a méréspontokat és ezek összefüggéseit is. A feltüntetett egységek mellett egy körben (vagy kerekített sarkú négyzetben) az egység jellemzőit és számozását is feltüntetik. KKS alkalmazása esetén a felső sorban az egység KKS számát találjuk meg. Új berendezések esetén jellemzően ez az egyetlen, használható dokumentáció, mindenki ebből dolgozik. A programozóknak jellemzően kiadnak egy funkcióleírást, ami általában köszönőviszonyban nincs a berendezéssel. Vagy ha mégis, a sok változást, ami a beüzemelés alatt bekövetkezik, csak a P&I fogja követni, a funkcióleírások aktualizálására – ha egyáltalán léteznek – senkinek nem lesz ideje. A P&I lapon fontos, hogy mindig a legutolsó, aktuális változatot kapjuk meg a programozáshoz, a „felhőcskézett” (felhő keretbe foglalt) részekre külön oda kell figyelni, a P&I-on ugyanis így kell jelölni a változásokat. A programírás előtt, ha megkapjuk az aktuális P&I változatot, érdemes azt alaposan áttanulmányozni, és a hibákat kiszínezve első körben visszaküldeni. Az alábbi pontokra – tapasztalataim szerint – külön érdemes ügyelni:

• KKS vagy a használt kódrendszer konzekvens használata. • Csövek megfelelő alkalmazása, az áramlásirány értelemszerű feltüntetése. • Több lap esetén a lapokról kimenő és belépő jelzések összeegyeztetése. • Technológiai szakaszoláshoz szükséges szelepek megléte. • Tartályoknál a szükséges szintjelzések megléte. Csak analóg szintjelzés esetén

szükség van-e digitális LL vagy HH jelzésre? • Szivattyúknál a szárazfutás védelemhez a megfelelő mérések megléte. • Az irányítástechnikához nem kapcsolt műszereket nem kellene inkább csatolni

(persze ez jelentősen megemeli az árukat)

Page 25: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 25. oldal

• ET modulok alkalmazása esetén a terepi szekrényekben van-e elég helyünk, vagy kártyabővítés is szükséges (az előírt tartalék-képzést is figyelembe kell venni).

• A berendezés működtetéséhez minden mérés, ki- és bemenet, minden alegység és funkciós modul a rendelkezésünkre áll?

5. ábra S7 P&I egység jelölése

First Letter Az első betű jelentése

Succeeding Letters A többi betű jelentése

Measured or Initiating Variable Mért vagy állított

érték

Modifier

módosító

Readout or Passive Function Kiolvasott vagy

módosított funkció

Output Function Kimeneti funkció

Modifier

módosító

A Analysis Elemzés

Alarm Riasztás

B Burner, Combustion Égő, Füstgáz

User’s Choice Szabadon választható

User’s Choice Szabadon választható

User’s Choice Szabadon választható

C User’s Choice Szabadon választható

Control

D User’s Choice Szabadon választható

Differential Különbség

E Voltage Feszültség

Sensory (Primary) Érzékelés (elsődleges)

F Flow Rate Átfolyó mennyiség

Ratio (fraction) Arány (törtrész)

G User’s Choice Szabadon választható

Glass, Viewing Üveg, láthatóság

H Hand Kézi mód High

Magas érték

I Current Áram Indicate

Kijelzés

J Power teljesítmény

Scan vizsgálat

A P&I séma prefixum kódjai

Page 26: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 26. oldal

K Time, Time Schedule Idő, ütemterv

Time Rate of Change időzítés

Control Station Felügyeleti állomás

L Level szint Light

Fény, fényerő Low Alacsony érték

M User’s Choice Szabadon választható

Momentary pillanatnyi Middle

középérték

N User’s Choice Szabadon választható

User’s Choice Szabadon választható

User’s Choice Szabadon választható

User’s Choice Szabadon választható

O User’s Choice Szabadon választható

Orifice Nyílás

P Pressure, Vacuum Nyomás, vákuum Point, Test

Pont, teszt

Q Quantity Számosság, mennyiség

Integrate, Totalize összegzett

R Radiation sugárzás Record

rekord

S Speed, Frequency Sebesség, frekvencia

Safety biztonsági Switch

kapcsoló

T Temperature Hőmérséklet Transmit

Átadás, átvitel

U Multivariable Összetett változó, összetett művelet

Multifunction multifunkciós

Multifunction multifunkciós

Multifunction multifunkciós

V Vibration Rezgés, vibráció

W Weight, Force Súly, erő Well

akna

X Unclassified Nem osztályozott, nem osztályozható

x-axis x-tengely

Unclassified Nem osztályozott, nem osztályozható

Unclassified Nem osztályozott, nem osztályozható

Unclassified Nem osztályozott, nem osztályozható

Y Event, State Esemény, állapot

y-axis y-tengely

Relay, Compute Relé, számítás

Z Position, Dimension Pozíció, dimenzió

z-axis z-tengely

Driver, Actuator Hajtás, vezérlés

5. Táblázat P&I prefixumok

jelölés Magyar megnevezés Angol megnevezés

gate

Page 27: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 27. oldal

barstock

diaphragm

tree-way

four-way

transflow

plug

ball

globe

angle

flush

needle

butterfly

unspecified

check

Fusible link

6. Táblázat P&I szeleptípusok

jelölés Magyar megnevezés Angol megnevezés

Folyamatosan levegővel vezérelt

(szabályozott) Air operated continuous

Levegővel vezérelt nyitás-zárás Air operated on-off

Villamos motorral vezérelt Electric motor operated

S

Mágnesszelep nyit-zár funkcióval Electric Solenoid on-off

7. Táblázat P&I szelep operátor típusok

Műszervonal típusa Magyar megnevezés Angol megnevezés

Technológiai vagy

mechanikai kapcsolat Process or mechanical link

Page 28: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 28. oldal

Tápellátás vagy termikus

kapcsolat Electrical or thermocouple

Kapilláris csövezés Capillary tubing

Műszerlevegő vagy

pneumatika Instrument air or pneumatic

Hidraulikus jel Hydraulic signal

Adatkapcsolat Data highway serial link

Üvegszál jel Fiber optic signal

8. Táblázat P&I vonal típusok Nézzünk egy konkrét példát a P&I alkalmazására:

6. ábra S7 P&I példa

A fenti képen egy kazán teljesítmény égő betáplálás egy részét ollóztam ki. Baloldalon a gázbetáplálás nyila látható, utalással, hogy honnan jön a gáz. A belépő blokk a 10EKG10 KKS blokk. Ezen található rögtön egy mérés, az EKG10CF001, ahol a KKS-ből rögtön kiderül, hogy ez egy közvetlen (C) átáramlás (F) mérés. Középen a vonal jelzi, hogy az irányítástechnika megkapja a mérést, a felső prefixum megfejtése pedig F: (flow) átfolyás, átáramlás; I: (indicate) analóg mérés; Q (quantity) összegzés. Ebből az jön le, hogy itt egy analóg mérés található, mely egy mért mennyiséget ad át nekünk, pl. m3 formátumban, és jó eséllyel ezt kell összegeznünk (integrálnunk). A méréshez tisztázni kell a

• bemeneti formát pl. 4-20 mA (a legvalószínűbb), 0 – 20 mA, 0 – 10 V,.. • skálatartományt pl. 0 – 2000 m3

Fejtsük meg az ábrát!

Page 29: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 29. oldal

• gázmérésről lévén szó, kompenzálni kell-e a mérést a hőmérséklettel (normál köbméterre), bár itt, a sémán hőmérsékletmérés nem látható.

Ezt követően az EKG10 KKS blokkot az EKG10AA101 motoros tolózár zárja le. Van olyan P&I, ami a vezérelt egységekhez is bővebb információt nyújt, de a fenti példa jól látható módon a mérésekre lett kihegyezve, így nem derül ki, hogy az adott hajtás az irányítástechnika felügyelete alá tartozik, vagy sem. A gázcsövön továbbhaladva (a gyakorlati megvalósítás ellenjavallt) a következő mérés a HHA10CP501, mely mivel a buborék közepén nincs áthúzva, irányítástechnikai szempontból érdektelen.

A következő három mérés egy kézi csappal szakaszolható, illetve a PIA+- -hoz egy további kézi szakaszolási lehetőség is tartozik. A KKS számozásból kiderül, hogy három, egymástól független közvetlen nyomásmérésről beszélhetünk. Az első, a PIA+- egy analóg (I) nyomásmérés (P), melyhez egy alacsony (-: L) és egy magas (+: H) riasztás (A) kijelzést kell majd rendelnünk. Ennek határértékeit jellemzően a HMI felől kapjuk, de lehet, hogy fixen be kell állítani ezeket. A PZ++, és PZ--Nagy valószínűséggel a nagyon alacsony (LL) és nagyon magas (HH) értékeket bejelző digitális mérés (lehet, hogy a PA++, PA--jelölés szerencsésebb lett volna). A fenti példán talán jól látható, hogy ahány pláner, annyi P&I értelmezés van, így az ismertetett jelzéseket néha meglehetősen rugalmasan kell kezelni.

Remanens területek Jellemzően minden PLC-ben lehetőségünk van az un. remanens területek definiálására. Az S7-300-as sorozat esetén a remanens területek feszültség-kimaradás illetve leállítás és újraindítás esetén is megőrzik a tartalmukat, akár akkumlátor nélkül is. Ha az akkumlátor a helyén van, a DB-k remanensek maradnak. Az S7-300-as CPU-k és C7 komplett modulok a remanens tartalmat az MMC kártyán tárolják. Az S7-400-as sorozatnál a működőképes akkumlátor a remanencia előfeltétele. Warm-start esetén minden operandus és DB értéke megmarad, cold-start esetén csak a DB-k értéke marad meg, és azoknak az operandusoknak (merker, timer, számláló), melyeket remanens-nek jelöltünk ki. A legtöbb PLC-nél az első 16 merker-byte, és az első 8 számláló alapból remanens. Ha ellenőrizni kívánjuk a remanens beállításokat, akkor → HW Konfig indítása → Kétszer rákattintani az adott CPU-ra, az itt felnyíló Eingenschaften ablakban a ► Remanenz pont.

Page 30: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 30. oldal

7. ábra S7 remanencia beállítások A Remanenz pont alatt a remanens MB, T és Z változókat tudjuk kijelölni, ezeknek a számozása nullától indul, ebből következik, hogy remanens-sé csak az alacsony címtartományú, összefüggő merker területek, és alacsony számozású timer-ek és számlálók jelölhetők. DB-k esetén 8 DB tartományt tehetünk remanens-sé, itt megjelölhetjük a tartomány kezdetét és hosszát is a számán kívül. A fenti példa szerint a DB10 50 byte hosszan, míg a DB12 a 10. byte-tól 40 byte hosszan remanens. Ismétlem, az S7-400-as sorozatnál és jellemzően az újabb S7-300-asoknál minden DB remanens. A DB-k esetében lehetőségünk van a remanencia kikapcsolására: → SIMATIC Manager → jobb oldali egérgombbal rákattintani az adott DB-re ► Objekteingeschaften.. ► Allgemein Teil 2

Page 31: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 31. oldal

8. ábra S7 DB remanencia kikapcsolása

A bejelölt Non-retain esetén a DB nem tartja meg az értékeit. Ez a pont alapból nincs bejelölve (alaphelyzetben minden DB remanens). Vigyázat, ez a pont akkor is szerepel a DB adatlapján, ha az adott CPU nem tartja meg a DB értékeit.

Beszélő változónevek, kommentárok használata SET SAVE = L 10.1 CLR = #out2 L 0 T #out3 L #in3 L T#0MS <D L #in4 L T#0MS = L 10.2 <D O L 10.2 SPBN A7d0 SET = #out2 L 1001 T #out3 SPA A000 A7d0: TAR2 LD 12 UC FC 699 P#L 16.0 P#L 10.2 LAR2 LD 12 U L 10.2 = #b20 L LW 16 T #i L #in3 T #d22

TAK /D SPO I007 SPA I008 I007: CLR = L 10.1 I008: T #d26 L #in4 T #d22 L #i ITD L #d22 TAK /D SPO I009 SPA I00a I009: CLR = L 10.1 I00a: T #d30 CLR U #b2 SPBN A7d1 L #d4 L L#1 +D SPO I00b SPA I00c I00b: CLR = L 10.1 I00c: T #d4 L #d4 L #d26

Page 32: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 32. oldal

L #i ITD L #d22

>D SPBN A7d1 L

A fenti program egy működőképes program része (csaltam egy kicsit, egy SCL programot másoltam vissza a PLC-ről, ennek ilyen „átlátható” a kódja). Megírni egy programot egy dolog, és utólag módosítani meg egy másik. Ismerek nem egy olyan programozót, akiknek ha meghallom a nevüket egy felmerülő program módosítás kapcsán; menekülök. Az, hogy az ön programja fut, szép dolog, de a programozás mindig csoportmunka (teamwork, ha jobban tetszik), és saját magunkkal is kibabrálunk, ha lustaságból, kapkodásból vagy direkt kiszúrásból (ilyen is van) nem használunk megfelelő – beszélő – szimbolikus neveket és nem kommentáljuk a programunkat. Nagyon faramuci az a helyzet, ha egy évekkel korábban írt programunk „kiismeréséhez” hosszú napokra van szükségünk.

Persze, a példával megint csalok egy kicsit, a fenti példa egy SCL program kezdete, de talán jól mutatja a különbséget. Talán látszik, nem kell „kisregényt” írni, hiszen akinek nincs köze a program funkcionalitásához, az ne nyúljon hozzá. A kommentárok és a beszélő nevek nem kell, hogy „elmeséljék” a programot, elég, ha segítik a programozó munkáját, és átláthatóvá teszik a kódot. A beszélő nevek közül első blikkre talán az i, j, k bukik ki, de ez sem igaz, hiszen jellemzően e három változót mindig a ciklusváltozó célra szokás definiálni.

OB-ba nem írunk programot Az OB-ba csak az FB-k és FC-k hívását „illik” beírni, illetve néhány olyan funkciót, melyek fontosságát jelzi, hogy az OB-ba kerülnek (Pl., LOG-ok, SIM-ek definíciója, redundancia lekezelése). Láttam már olyan programot, amit szerzője egy az egyben az OB1-be hányt be – nem túl jó benyomást keltve programozási képességeit illetően.

VAR_TEMP lastBit : BOOL; // last stand of status switchTemp : BOOL; // save the switch-stand onTimeRun : BOOL; // on switch watchdog under process offTimeRun : BOOL; // off switch watchdog under process onTimeCyc : DINT; // number of cycles by on time offTimeCyc : DINT; // number of cycles by off time END_VAR VAR i,j,k : INT; // for variables errorBit : BOOL; // error output bit (TRUE: program error) timeInDint : DINT; // error watchdog in ms timeConv AT timeInDint : TIME; // converting time type to DINT over masking toOnTimeCyc : DINT; // target number of cycles by on-time toOffTimeCyc : DINT; // target number of cycles by off-time END_VAR VAR_INPUT switch : BOOL; // switch bit enable : BOOL; // process enabled onTime : TIME; // on time watchdog offTime : TIME; // off time watchdog END_VAR VAR_OUTPUT switchOut : BOOL; // output stand error : BOOL; // error bit status : INT; // status information (0: ok, 1: sw.on watchdog 2: // sw.off wd., 1001: error by definiton) END_VAR

Page 33: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 33. oldal

Network-ök használata A network-ök használata a programot átláthatóbbá teszi, a fejlécben szépen lehet kommentelni a kódot.

Specializált FC-k, DB-k Egy átlátható programban fontos, hogy az egy csoportba sorolható egységek összesítetten, egy blokkban áttekinthetők legyenek. Ennek a legegyszerűbb módja, ha az adott egységekre univerzális, minden esetben meghívható programot (jellemzően FC-t) írunk, majd ezt az összes egység esetében egy specializált FC-ből, vagy FB-ből hívjuk meg. Folyamatosan üzemelő berendezés esetében, ahol „röptében” kell programozni, érdemes ezt a hívó programot is FC-nek írni, és az adatokat egy rendesen megméretezett globális DB-be tárolni, ugyanis FB esetén az adatterület bővítése kissé körülményesebb. Ha mégis bővítenünk kell a (globális vagy instant) DB-t, azt különös körültekintéssel tegyük (adatok másolása, minden egység „kézi” üzembe vétele, az áttöltéshez egy kevésbé kritikus időszak kivárása), hiszen ennek – ezeknek a DB-(k)nek a bolygatása a teljes technológiára kihat.

Azonos funkciójú egységekre FC-t vagy FB-t kell írni Értelemszerűen a hasonló funkciókra érdemes FC-t vagy FB-t írni, hiszen ezért találták ki ezt a lehetőséget. Ezeket a modulokat érdemes egységesen (pl. _FC-vel) jelölni, és egyértelmű nevet adni neki (MOTOR_FC, SZELEP_FC, ANALOG_FC,..).

Analóg ki- és bemenetek kezelése Az analóg jelek jellemzően periféria bemeneten olvashatók, és általában ide írhatók ki.

HMI kapcsolat mégnincskész

Gyártástechnológia vs. Felügyeleti rendszerek Jellemzően erre a két nagy csoportra lehet osztani a PLC által felügyelt rendszereket. Egy technológiában ezeknek a programozásoknak a keveréke szokott felbukkanni, erőműveknél inkább a felügyelet, míg gyártósoroknál a gyártástechnológia kerül előtérbe. Gyártástechnológiánál a hangsúly általában a termelési ciklusra helyeződik. Ezt a német nyelvterületen a „Takt” kifejezéssel illetik, és rendkívül sok programozói küszködés forrása. Amikor egy gyártósoron a takt két másodperc, akkor ha törik, ha szakad, minden gyártási lépésnek ez alatt az idő alatt le kell zajlania. Ha ez nem megoldható, akkor annyi – azonos működési funkciójú gépet kell egymás mellé rendelnünk, hogy azok összességükben teljesíteni tudják a szintidőt. A gépek általában egy szállítósor köré rendeződnek, ahonnan a félkész terméket kapják, a beépítendő alkatrészek rezgőtálcákról vagy szintén szállítósorokról kapják. Egy gép általában több alegységet is tartalmaz, ezeknek nagy része egyszerre kell, hogy induljon, és azonos üzemmódban kell, hogy legyen. A gépek általában kevés szabályzástechnikát tartalmaznak, a programok nagy része lefutó program – ezekben a megmunkálási lépések szekvenciálisan követik egymást. Felügyeleti rendszerek esetén a hangsúly a folyamatos üzemre tevődik át. Itt jellemzően egy folyamatos termelést kell a programnak biztosítania, a részegységek egy – egy technológiai folyamat köré szerveződnek, egymással csak minimális kapcsolatuk van. Az egységek általában szabályzástechnikai elvek szerint működnek, az összetettebb műveletek esetén gyakran bukkannak fel a PID „szörnyetegek”.

Page 34: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 34. oldal

Hajtástechnika

Szenzortípusok

A PLC technológiában jellemzően a szenzorok biztosítják a bemeneteket. A legegyszerűbb kontakt kapcsolók a nagy mechanikai igénybevétel miatt csak viszonylag ritkán kerülnek – főleg gyártósorokon – beépítésre, szerepüket jellemzően a kopó-alkatrész nélküli indukciós- , kapacitív- és opto- szenzorok vették át. Ezeknek a szenzoroknak a vázlatos bemutatását tartalmazza ez a fejezet. Gyakran szükséges az emelt biztonsági fokozatú rendszerekhez az un. biztonsági szenzorokat alkalmazni. Ezeknek jellemzően sárga a színük, negált vagy többszörös jelzést adnak.

Kapacitív szenzor

Száloptikás rendszer

Egyirányú induktív átviteli rendszer

Villás fénysorompó

Kétirányú induktív átviteli rendszer

Ferdevillás fénysorompó

Induktív analóg szenzor feszültség kimenettel

Keretes fénysorompó

Induktív analóg szenzor áram kimenettel

Fényrács

Mágnesestér szenzor Kontrasztérzékelő szenzor

Tárgyreflexiós optikai szenzor

Lumineszcencia érzékelő szenzor

Reflexiós fénysorompó

Színérzékelő szenzor

Egyutas fénysorompó, adó-vevő pár

A fenti ikonokat a www.balluff.hu oldalról plagizáltam. 9. Táblázat Szenzortípusok jelölései

Mágnesestér szenzor (Magnetfeld Sensor) A mágnesestér érzékeny szenzorokat főként pneumatikus hengerek dugattyúinak helyzetérzékelésére alkalmazzák. A dugattyúba

Page 35: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 35. oldal

integrált mágnes mezejét a szenzor a henger házán keresztül érzékeli. Az érintésmentes működésnek köszönhetően az érzékelés megbízható, kopásmentes, ezáltal a gyártástechnikában egy rendkívül elterjedt megoldás.

Kapacitív szenzor (Kapazitiven Sensor) A kapacitív szenzor egy tárgy közeledése által a kondenzátor elektromos mezejében okozott kapacitásváltozást alakítja át jelzéssé. Fémeket, műanyagokat és folyadékokat is érzékel, ezért sokoldalúan alkalmazható. Kapacitív elven víz- és páratartalom is mérhető, de adott esetben ujjlenyomat olvasásra is alkalmas. A szenzor felületére helyezett ujj eltérő kapacitást mutat az ujj felületén lévő völgyek és fodorszálak függvényében. Ezt az eltérő kapacitást detektálják és elektromos jellé alakítva továbbítják. Ezzel a technológiával kis méretű és közepes minőségű szenzorok készíthetők. A technológia hátránya, hogy kapacitív jellegből adódóan a szenzorok érzékenyek az elektrosztatikus kisülésekre.

Induktív szenzor (Induktive Sensor) Az induktív érzékelők olyan jelátalakítók, melyek kimenetük állapotváltozásával jelzik fémes tárgyak jelenlétét érzékelési területükön belül, anélkül hogy direkt kontaktus alakulna ki a szenzor és a tárgy között. A kapcsolási távolsága függ a fémtárgy anyagának elektromos vezetőképességétől, így az acéltól eltérő anyagok esetén az un. redukciós tényező értéke emelkedik és ezzel párhuzamosan az érzékelés valószínűsége csökken.

Fénysorompó és opto-szenzor (Lichtschrank und Opto-Sensor)

Optische Sensor Opto-szenzorok

Gabellichtschrank Villás fénysorompó

Rahmenlichtschrank Keretes fénysorompó

Lichtvorhäng Fénykapu

Az optikai elven működő szenzorok jellemzően „kitakarás” elven működnek, azaz egy fényforrás és az érzékelő közé belépő tárgy elzárja a fény útját, és a szenzor ezt érzékeli, ezt a típust egyutas optikai szenzornak nevezzük. Léteznek az un. tárgyreflexiós szenzorok is, ezekhez egy tükröző felület tartozik, ahonnan visszaverődik a kibocsátott fény. A villás és keretes fénysorompók egyutas szenzorokkal vannak felszerelve, a nehezen hozzáférhető tárgyakhoz igazodik a formájuk, jellemzően mindegyiknek a szára végén található a fénykapu.

Page 36: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 36. oldal

A fénykapuk nagy felületek lebiztosítására alkalmasak, jellemzően olyan gépeknél bukkannak fel, ahol a technológiát azonnal le kell állítani, ha valaki benyúl a gépbe. Ilyenkor a gép nyitott felületének a két oldalán találhatók a – biztonsági funkciójuk miatt – sárgára festett kapuk. Ha pásztázás közben tárgyat érzékelnek, általában a vészkörön keresztül vészállj funkciót eredményeznek, ha a gép automata üzemmódban dolgozik.

Nyomás- és vákuumszenzor (Druck- und Vakuumsensoren) A szenzor a nyomásértékeket továbbít a PLC felé. A jelek formátuma lehet analóg és digitális. Digitális mérés esetén a szenzoron jellemzően beállítható a határérték.

Átfolyás szenzor (Durchflusssensoren) A szenzor a mért folyadék vagy gáz –jellemzően pillanatnyi – mennyiségét továbbítja a PLC felé. Legegyszerűbb típusa csak impulzust ad egy adott mennyiség átfolyása után – ebben az esetben vagy beállítható vagy előre meghatározott ez a mennyiség. Gáznemű anyagok mennyisége esetén az átáramló mennyiséget normalizálni kell, azaz a pillanatnyi hőmérséklet figyelembe vételével ét kell számolni a mennyiséget a 25 C°-os állapotra.

mágnesszalagos útmérőrendszer Az inkrementális útmérőrendszer egy szenzorfejből és egy mágnesesen kódolt szalagból áll. A váltakozva polarizált mágnesszalag felett 1 - 2 mm-re úszik a szenzorfej. Szabványos négyszög vagy szinuszos jelek periódusai a kimeneten állnak rendelkezésre. A jelek számlálása illetve kiértékelése a feldolgozó – jelátalakító - elektronika hagyományos inkrementális vagy szinuszos bemenetein valósítható meg.

Page 37: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 37. oldal

Azonosítók (IS – Identifikation System)

9. ábra Azonosítók elhelyezkedése Összetettebb műveleteket végző gyártósoron a palettákon található egy egység, az ISE (Identifikation System Einheit), melyben a félkész termék összes adata kódolásra kerül. Induláskor csak a termék típusa található itt – ez főleg az egyidejűleg több terméket gyártó soroknál lehet fontos –, és a szériaszám. A paletta tartalmát megmunkáló gépállások rögzítik munkájuk eredményét (jellemzően iO: in Ordnung – rendben vagy NiO nicht in Ordnung – rontott) és az elvégzett mérések számadatait is ide tárolják. A teljes munka végeztével ezeket az adatokat a gyár a szériaszámmal indexelve tárolja és visszakereshetővé teszi. Az ISE-khez a gépeknél társulnak az olvasó (ISR) vagy író/olvasó (ISRW) egységek, melyek a gépállások számára olvassák be a fenti adatokat, vagy írják ki az eredményeket az ISE-re.

Lézerszkener (LS – Laser Scanner) A lézerszkenereket jellemzően a termékeken szerepelő vonalkód olvasására használják a gyártósorokon. A rendszernek jellemzően a gyártás vége felé nő meg a szerepe, amikor a félkész termékeket már vonalkóddal látják el, így ezeket már jellemzően nem ISE-n található kóddal, hanem a vonalkóddal azonosítják (a termékekhez rendelt adatok itt jellemzően valamilyen háttér – adattárolón kerülnek továbbításra. A régebbi szkennerek jellemzően csak az RS232-t ismerték, mint kommunikációs lehetőséget – ez a helyzet mára szerencsére rendeződött, így a legkülönfélébb buszokhoz is találunk csatolható egységeket. A vonalkódról bővebb információt ebben a bejegyzésben találhat.

Page 38: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 38. oldal

Gyártástechnológia eszközei

Paletta (WT – Werkstückträger)

Werkstückträger (WT)

Paletta Bandstrecke (TS)

Pálya Kurve

pályakanyar Hub-Quereinheit

Lift A félkész termékek a palettákon keringenek a gyártógépek között. A szalagon a megállítók minden állomásnál és liftnél megállítják a palettákat, ha szükséges, az azonosító (IS) beazonosítja, hogy az adott darab melyik munkafázisnál tart. Ha a gépállás igényt tart a darabra, azt jellemzően egy lift (HQ) felemeli a behordó-szalag szintjére. Itt jellemzően egy manipulátor leemeli a félkész darabot a WT-ről, és egy megmunkált darabot tesz a helyére, közben az IS a palettán található azonosítóra az újonnan felhelyezett darab adatait írja fel. Amennyiben több azonos működésű gépállás is szerepel a gyártósoron, jellemzően a paletták több kört is futhatnak, mire valamelyik gép fogadja a félkész terméket. Ilyenkor sokszor a gépek felett, egy felső (vagy hátsó, vagy alsó) szalagon viszik vissza ezeket a palettákat az első gép elé. A két pályaszint közötti átemelőket szintén lift névvel illethetjük. Legtöbb esetben a paletták alsó fele egy antisztatikus műanyagból készül, megakadályozva a statikus feltöltődést.

Page 39: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 39. oldal

Megállító (VE – Vereinzeler)

Megállító egység Megállítók elhelyezkedése Megállító egy palettával

A megállítók (szokták ezeket még stoppereknek is hívni) az állomások szakaszos üzemelését biztosítják. Jellemzően monostabil pneumatikus elemek, melyek, ha jelet kapnak a PLC-től, szabad utat engednek az előttük várakozó palettának. Ha két szenzorral vannak szerelve, a második jelzésére a megállítót a PLC-nek ismét el kell engednie, hogy a következő palettát is biztonsággal megfoghassa. Ha csak előtte van szenzor, akkor a visszaállást késleltetéssel kell megoldani, de egy szűkre szabott idő nagyjából olyan hatással lehet a paletta tartalmára, mint a menzán ön, miután bekötötte a cipőjét, és pont főnöke teleszedett tálcája alatt bukkan fel lendületesen. Jellemzően a gépállás előtt található egy VE, a VVE (Vorvereinzeler), ami a gépbe ereszti be a palettákat. Itt található még általában az az IS egység is, mely megállapítja, hogy az adott darabbal kell-e dolgoznia a gépnek – ha például az adott darab már rontott, akkor simán át kell ereszteni az álláson. A gépben a VE-ket számozva szokás jelölni (VE1, VE2,..) az állomáson belüli állások számától függően. A gép végén az NVE (Nachvereinzeler) található, mely mellett az IS a műveletek eredményét írja ki a palettára. A kiválasztókat, hogy könnyebb legyen őket áthelyezgetni, jellemzően vagy jó hosszú vezetékkel látják el, vagy AS-I busszal szerelik. Az AS-I busz alkalmazása pályák környékén egyébként is egy jó választás, hiszen könnyen át lehet helyezni az elemeit. (Az AS-I alkalmazása nem egy olcsó megoldás, de könnyen megváltozhat a véleménye az árakról, ha utánanéz, hogy a pályatestek és az alkatrészek mennyibe kerülnek).

Feltámasztás (PE – Positioniereinheit)

WT: paletta, ST: gépállás, PE: feltámasztás, VE: megállító Lágyforrasztáshoz szükséges a PE

Page 40: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 40. oldal

A feltámasztás olyan műveletek esetén szükséges, amikor a beavatkozás a szalagon álló palettán történik, de a szalag mozgásából adódó rezgés és billegés zavaró lehet (ilyen például a lágyforrasztás, amikor a pasztát pontosan a helyére kell adagolni, majd a lámpa fókuszával szintén el kell találni ezt a helyet). Ezekben az esetekben egy henger a palettát felemeli a szalagról – miután a VE megállította azt – majd a művelet végeztével visszateszi a pályára.

Rezgőtálcás adagoló (Schwingförderer Zuführanlage)

Rezgőtálcás adagoló előröl Rezgőtálcás adagoló felülről

Az adagoló a kisebb – ömlesztett – alkatrészek pozícióba rendezésére és beszállítására szolgál. A tálcán spirálisan felfutó meneteken rezegve mozgatja előre az alkatrészeket, majd a szalagra továbbítás előtt irányba rendezi azokat. Jellemzően saját vezérlésük van, ahol a szállításra vonatkozó paramétereket be lehet állítani, a PLC csak az anyagszükségletet jelzi a berendezés felé.

Vészállj funkció (Notaus) A gyártástechnológiában a vészállj funkció – különösen a veszélyes gépek estén – a legmagasabb prioritással bír. Jellemzően amellett, hogy a szoftver is jelzést kap felőle, hardveresen kerül lekezelésre. A vészállj funkció jellegéből adódóan minden egyéb kimeneti változót felülír. Vészállj esetén minden műveletnek le kell állnia, jellemzően a teljes pneumatika és hidraulika el kell, hogy dobja a nyomást, és a vezérelt hajtások (szervók, villanymotorok, ..) jellemzően feszültég-mentes, szabadonfutó állapotba kell, hogy

kerüljenek (kivételt képeznek azok az egységek, melyek leállásukkal sokkal problémásabb vagy életveszélyesebb állapotot idézhetnek elő). A vészállj egységek mindig negált jelet adnak (1: ok, 0: vészállj).

Védett zóna Amikor néhány gépgyártásban utazó szakember összejön pár korsó sörre, viszonylag gyorsan terítékre kerülnek a horror sztorik; kit vágott fejbe a robot, melyik melósnak maradt ott az ujja a prés alatt.. ezek a történetek mindig a biztonsági szabályok hiányosságára vagy azok figyelmen kívül hagyására vezethetők vissza.

Page 41: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 41. oldal

Előrebocsátom, minden biztonsági rendszer kijátszható. A biztonsági szabályok és a védett zónák csak a figyelmetlenségekből adódó balesetek elkerülésére alkalmasak, a szuicid sztahanovistákat gyakorlatilag semmi sem állíthatja meg. Láttam már olyan berendezést, ahol a kétgombos prést – ahol két nyomógombot kell megnyomni a gépen kívül, éppen hogy csak elérhető távolságban – egy, a hasához támasztott, dróton lógatott deszkával „hidalta át” a jól képzett melós, miközben a lecsapó prés alatt kotorászott.

A védett zóna a gépnek az a része, ahová nem lehet benyúlni (belépni meg pláne nem) automata üzem alatt. Ezt az ajtóknál és a zárható ablakoknál biztonsági zárak biztosítják, amik lezárnak, ha a gépet „auto” módba kapcsoljuk. Ha mégis sikerül kifeszegetnünk a zárat, akkor ez a „vészállj” funkcióval azonos leállást eredményez. Szintén a „vészállj” analógiájára old ki a fénykapu is, ha valami (vagy valaki) megsérti a lebiztosított zónát. Gyártósorokon a jelenlevők nem tekintik vicces megnyilatkozásnak, ha a működő gép fénykapuját inzultáljuk – én szóltam.

Biztonsági relék (Pilz-ek)

Körasztal (Rundtisch)

Vertikális körasztal Horizontális körasztal

Komolyabb gyártósorokon gyakran bukkan fel a körasztal köré szerkesztett gép. Ezeken a gépeken – ha gyártósorra dolgoznak – mindig van egy berakodó és egy kirakodó egység, vagy a két feladatot egy egység látja el. A többi pozícióban jellemzően egy gyártó egységet egy ellenőrző állás követ. A félkész termékhez tartozó információt a háttérben a PLC-nek kell cipelnie minden darabhoz, és amikor a darab kihordásra kerül, akkor kell továbbítania azt. A körasztal esetén fokozottan ügyelni kell a ciklusidőre, hiszen jellemzően az azonos idő alatt elvégezhető műveleteket szervezik egy asztalra, nem előnyös, ha egy állás túl sokat „mojol” a munkafázisával, a többi gépállás pedig várakozik.

Page 42: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 42. oldal

OP – Operation panel

Az OP tartalmazza az HMI-t, ahonnan gyakorlatilag az egész berendezés irányítható, illetve e fölött még néhány alapfunkció is innen kapcsolható. Az OP-t a gépen úgy szokás elhelyezni, hogy azt a gép bármely sarkába is magunkkal „vihessük”. Jellemzően vagy forgatható karra kerül felépítésre, vagy a gép síkjában egy függesztett sínen lehet gördíteni. Jellemzően az alábbi funkciókkal szokták felruházni:

Maga a megjelenítés, ahol a műveleteket lehet felügyelni, kézi üzemmódban a mozgásokat irányítani, stb.

Kiemelt piros nyomógomb sárga háttérrel, hogy probléma esetén egy jól irányzott ütéssel el lehessen találni. Jellemzően mindent leold. (lásd vészállj funkció)

Jellemzően hardverre kötött nyomógomb, melynek – ha a PLC-nek külön tápellátása van – a PLC felé is van bemenete. Ha nincs, akkor a PLC úgyis „értesül” arról, hogy a gép ki / be lett kapcsolva.

Az automata és kézi üzem közötti átváltásra szolgál. Megszokásból ma is jellemzően kulcsos kapcsolót szokás ellőni erre a célra.

Jellemzően hardveres funkció, mely a pneumatika betáp szelepet nyitja / zárja (vagy a kompresszort kapcsolja be / ki). Néha a PLC-re bízzák ezt a műveletet.

Ez is leginkább hardveres funkció szokott lenni, a hidraulika nyomást dobja el. A hidraulika legtöbb esetben önjáró, a géppel együtt kapcsol be, de néha ennek a be / ki kapcsolására is szánnal egy külön gombot.

Üzemmódok (Mode) Gyártástechnikai berendezések esetén az üzemmódok az egyik legfontosabb, és egyben legellentmondásosabb területe a szoftver fejlesztésének. Több, mint tíz éve foglalkozok programozással – és üzem behelyezéssel – a lenti modellt a tapasztalataim alapján állítottam össze.

Az első – és talán legfontosabb – üzemmódja a gépeknek. Ha áram alá helyezzük berendezésünket, először ez a mód fog aktiválódni, csakúgy, mint amikor bármely más módban hiba lép fel, vagy csak egyszerűen erre a módra kapcsolunk. Az üzemmódra váltáskor nem kapcsolhatunk semmit se be (hiszen hiba esetén is ide tér vissza a

HMI

Vészállj

Főkapcsoló Be / Ki

Kulcsos Kézi / Auto átváltó

Pneumatika be / ki

Hidraulika be / ki

Kézi mód

Page 43: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 43. oldal

végrehajtás), a pneumatikát és/vagy hidraulikát külön gombokkal (és az ezekhez rendelt reteszekkel) lehet visszakapcsolni az HMI panelről. (lásd OP). Amennyiben a kulcsos kapcsolót auto módba forgatják, és nincs alaphelyzet, vagy a gép bekapcsolásakor a kulcs az auto módon maradt, a kézi mód marad érvényben.

Az alaphelyzet felvétele egy olyan funkció, mely alatt a gép felveszi az automatika indításához szükséges kiindulási pozíciót úgy, hogy az összes egységet biztonsággal ebbe a helyzetbe állítja. Amennyiben az alaphelyzet felvétele közben hiba lép fel, vagy valamelyik továbblépési feltétel nem teljesül, a gép hibát jelez, és vagy az adott lépésben várakozik, vagy visszavált kézi módba.

Az automatikus üzemelést kézi mód után csak alaphelyzetből lehet indítani és jellemzően minden ciklus elején innen indíthatjuk a működést. Automatikában fut a gép mindaddig, míg:

• Hiba lép fel – ilyenkor hibajelzés mellett a gép kézi módba vált • Vészállj, vagy a védett zóna megsértése – azonnal kézi módba kapcsol, és hibát

jelez • Alkatrészhiány lép fel a behordó-sor(ok)on – a gép alkatrészhiányt jelez, és auto

módban vár • Nem érkezik darab a gyártósoron – a gép jelzés nélkül vár • Ciklus vége utasítás érkezik – a gép végrehajtja az aktuális ciklus hátralevő

műveleteit, majd ciklus vége állapotot vesz fel • Tipp mód lenyomása – minden jelzés nélkül átvált tipp módra • Tipp módban auto mód választása – amennyiben az adott lépésből lehetséges,

visszatér az automatikába, és az aktuális lépésből folytatja a végrehajtást.

Vagy más néven léptetés mód. Ebben az üzemmódban az automatika lépéseit lehet elemezni úgy, hogy bizonyos lépésenként az automatika futása egy nyomógomb lenyomására vár. Bizonyos technológiai lépéseket nem lehet vagy nem szabad megszakítani, így ilyenkor az automatika több lépést hajt végre egy menetben, a megszakítás lehetősége nélkül. Amíg a végrehajtás a „tovább” nyomógombra vár, nem léphet fel hiba az automatikában. Jellemzően majdnem minden lépésből visszaválthatunk auto módra. A tipp mód szabályai gyakorlatilag az auto mód-dal egyeznek meg.

Jellemzően műszakváltáskor, vagy bármely hasonló okból meg kell hagyni a lehetőséget az automatikus termelés megszakítására. Ilyenkor az automatika még lezárja az utolsó ciklust, majd ciklus vége állapotba áll ki. A gép az automatikától eltérő módon jelzi ezt az állapotot (zölden villogó jelzés), de nem ad hibaüzenetet. A ciklus vége gomb ismételt megnyomásával a gép visszatér az automatikus üzemeléshez – első lépésben ehhez alaphelyzetet vesz fel.

Alaphelyzet

Auto mód

Tipp mód

Ciklus vége

Page 44: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 44. oldal

AUTOKÉZI TIPP

Alaphelyzet felvétele

Ciklusvége

Alaphelyzet

xsany 2007

automata üzemmód be/ki

hiba / szabálytalan leállás

tipp / auto átváltás

egyéb üzemmód váltások

10. ábra Gyártástechnológiai üzemmódok

Mód / Állapot

Esetek, amikor ebbe a módba jut a vezénylés

Feltételek, melyek teljesülése esetén ezt a módot

kapcsolhatjuk

Lehetőségeink az adott módban

Kézi

• Bekapcsolás után • Vészállj • Hiba a többi

módban • Kézi mód

választása

nincs

• Egységek kézi működtetése, mozgatása

• Hozzáférés az összes egységhez a védett zónában

• Alaphelyzet felvétele

Auto

Az alábbi állapotokban Auto mód választása:

• Tipp mód • Ciklus vége aktív • Alaphelyzet

• Alaphelyzet • ciklus vége • tipp mód (innen nem

minden esetben)

• Ciklus vége választása

• Kézi módba „rántás” (csak végszükség esetén)

Tipp

Az alábbi állapotokban Tipp mód választása:

• Auto módban • Ciklus vége aktív • Alaphelyzet

• Alaphelyzet • Ciklus vége • Auto mód

• Léptetéssel tesztelni az automata működést

• Visszakapcsolni automata módba (nem minden lépésben engedélyezett)

• Kézi módba kapcsolás

Alaphelyzet • Kézi módból

alaphelyzet felvétele

• Kézi mód • Auto mód indítása • Tipp mód indítása

Ciklus vége • Auto módban ciklus vége • Auto mód • Visszakapcsolni auto

módba

Page 45: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 45. oldal

választása • Tipp mód indítása • Kézi módba váltás

10. Táblázat Üzemmódok, állapotok

Szignál-lámpák jelentése A gyártósoroknál jellemzően a gépek állapota az állomások felett, jól látható helyen elhelyezett szigál-lámpákról „olvasható” le. A színek sorrendje jellemzően – fentről lefelé – piros, sárga, zöld és kék. A sárgát és a kéket – ahol nem szükséges – el szokták hagyni. Sokszor a lámpa-oszlop tetején egy kis kürt is található, de a találékony kezelők ezt majdnem mindig „félállásra pöckölik”. A lenti táblázatban foglalom össze a lámpák – jellemző – jelentését, de ettől sok részletben gyáranként el szoktak térni (érdemes az alkalmazás előtt efelől helyben tájékozódni).

Jelzés Jelentése

Nincs jelzés • A gép nincs áram alatt • Kézi mód

Piros jelzés • Nyugtázott hiba

Piros villogó (+ kürt vijjog)

• Nyugtázatlan hiba (pl. vészállj)

Sárga jelzés • Beszerelendő alkatrész fogytán vagy kifogyott

Zöld jelzés • Automatika üzemben

Zöld villogó • Ciklus vége állapot • Tipp mód

Kék villogó • Átállás folyamatban

Kék jelzés • Átállás megtörtént 11. Táblázat Szignál-lámpák jelzései

Felügyeleti rendszerek jellemzői

A felügyeleti rendszerekkel jellemzően folyamatos üzemű technológiai rendszereknél és berendezéseknél lehet összefutni. Jellemzőjük, hogy alapvetően nem szakaszos üzemeltetésűek – bár lehetnek ilyen (lefutóprogramos) komponenseik, és leginkább csak karbantartásra szokás ezeket leállítani. A nagyobb felügyeleti rendszerek esetén az HMI (Human-Machine Interface) feladatát többnyire már egy (vagy több) SCADA (supervisory control and data acquisition) rendszer látja el. A felügyeleti rendszerek fontos komponensei a szabályozástechnikák és az átfogó (általában többszintű) buszrendszerek.

Page 46: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 46. oldal

Digitális mérések késleltetése Komolyabb berendezéseknél – a pontosabb mérések érdekében – előírás szokott lenni a digitális jelek késleltetése, mert így sok zavaró – és adott esetben bizonytalan működést eredményező tényező kiszűrhető. Nagy távolságból érkező jelek esetén a vezetéken könnyedén indukálódhat feszültség (tüske), főleg, ha a mérés környékén frekvenciaváltók is találhatók. Ezekben az esetekben a jel formájában érkező tüskét „lenyeli” a felügyeleti idő. Tartályok szintmérésében is gyakran előfordul, hogy a folyadék hullámzása miatt a jel „berezeg”, bizonytalan. Ezen a jelenségen is a késleltetéssel tudunk segíteni, ugyanis ha a felügyeleti idő leteltével is érkezik a jel, akkor a folyadék szintje biztos, hogy elérte – és kissé meghaladta – a szenzor szintjét. A mérések nagy száma természetesen sok esetben nem teszi lehetővé, hogy minden jelhez timer-t rendeljünk hozzá, hiszen nincs ennyi timer-ünk, de kis programozói készséggel akár több ezer jel késleltetése is megoldható timer nélkül ;).

Távfelügyelet A felügyeleti rendszerek esetén a mérések a PLC-be futnak be, és a vezérlést is ez biztosítja, de a kezelő(k) a berendezést a SCADA-n keresztül irányítják. Ennek egy tipikus menetét írom itt le – vázlatosan – de ettől sok berendezés jelentősen eltérhet.

Helyi és táv mód Olyan berendezéseknél, ahol a folyamatos üzem nagy távolságokkal párosul, szokás alkalmazni a helyi/táv átkapcsolási lehetőséget. Ez a kapcsolás a helyi szekrényben, hardver szinten történik, a felügyeleti rendszer csak értesítést kap a kapcsolás állapotáról. Jellemzően karbantartás vagy hibaelhárítás esetén szokás a „helyi” módot kapcsolni, ilyenkor a helyi szekrényen található „helyi ki” és „helyi be” gombokkal (vagy egyéb kezelőszervekkel) lehet az adott egységet üzemeltetni, de ez az üzemeltetés hardverből, jellemzően védelmek nélkül történik – általában a kezelő felelőségére. Az automatikus részegység üzemeltetésnek az egyik feltétele, hogy az összes alegységnek „táv” módban kell lennie. Ha valamelyik egységet „helyi”-be veszik a kezelők, a részegység automatikája általában azonnal „kézi” módra vált. A „helyi” módot a SCADA-ban feltűnő, megkülönböztetett jelzéssel kell ellátni, és ki és bekapcsolását loggolni kell. Táv módba való visszaváltáskor ügyelni kell arra, hogy a „helyi” módban állított állapotot „másoljuk”, azaz, például ha helyiben a kezelő bekapcsolta a motort, akkor táv módba való visszaváltáskor a motort bekapcsolva kell hagyni, és a SCADA kézi módban kell az állapotot „be”-re változtatni.

Motor- és szelepfunkciók mégnincskész

Lefutó program mégnincskész

Üzemóra számlálók mégnincskész

Page 47: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 47. oldal

Jelzés FC-k mégnincskész

Szintjelölések: LL, L, H, HH mégnincskész

Szintjelzések kezelése mégnincskész

Szárazfutás védelem mégnincskész

Forgásfelügyelet mégnincskész

Biztonsági relék – funkciók (Pilz) mégnincskész Redundancia kezelése F-programozás

Szabályozástechnika

mégnincskész

Beüzemelés

A programírás legkritikusabb időszaka a beüzemelés. 400-as PLC-knél, új blokk beillesztésekor gyakori a „6-ig számolok, de addig zabszem” effektus, mely annak köszönhető, hogy a 400-asok ciklus-felügyeleti ideje 6000 ms. Ha ennek elteltével sem borul sötétségbe és csendbe a gyár, akkor van esély arra, hogy a programunk fut, és nem csapta ki a PLC-t. De kezdjük az elején:

Szignálteszt Első lépés minden berendezés esetén a szignálteszt. Ilyenkor a villanyos kolléga walky-talky-val és kötél idegekkel felszerelkezve kivágtázik a terepre, és a szenzorokat (végállás-kapcsolókat, érzékelőket, műszereket) addig bizergálja, míg azoknak a jelei be nem futnak a PLC-be. Ezeket a megnyitott VAT-unkból érdemes figyelemmel kísérni, és a program futása előtt az összes OB-nkbe a BEA utasítást beilleszteni kezdésként (ezzel lezárva az OB-ket). Második lépésként el lehet kezdeni a kimenetek tételes tesztelését, ami sok esetben komoly meglepetéseket tartogathat, így érdemes olyan időszakra tenni ezt, amikor kevesen kavarnak az érintett területen. Nem baj az, ha az átvevő sincs ilyenkor a terepen, nem túl emeletes látvány a füstölő szivattyú és szikrázó frekvenciaváltó. Sok esetben a jel kiadása után nem az az egység indul, vagy nem úgy, ahogy azt gondolnánk, ezért a teszt alatt oda kell figyelni a történésekre.

Page 48: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 48. oldal

A motorok forgásirányát a szellőzőn keresztül - óvatosan! - bedugott kábelkötözővel tudjuk ellenőrizni, elejét véve néhány későbbi burleszk-jelenetnek. Ha az adott egység még nincs kiépítve, legalább a PLC-n érdemes egy darab vezetékkel szimulálni a bemeneteket, és a kimenetek LED visszajelzéseit is áttekinteni. Az analóg kártyák tesztelése jellemzően egy külön „műsorszám”. A 300-asoknál (meg az ET200-asoknál is!) a jeleket párba kell állítani, mert egy csatorna jellemzően két analógot tartalmaz, és csatornánként azonosak a beállítások. Sok kártyán a hardveres beállítást a kártyán (a sorkapocs alatti kiválasztók állításával) is meg kell erősíteni. A kártyákat könnyű hazavágni, így mindenképpen tisztában kell lenni az alkalmazott beállításokkal. Hőmérők – PT100, PT1000 – bekötése esetén külön figyelmet kell fordítani arra, hogy 2 vagy 4 vezetékes kötésről van-e szó. Analóg méréseknél tisztázni szükséges még a méréstartományt, azaz a mérőműszer által mért legalacsonyabb és legmagasabb jelszintet valós mérésekhez kell rendelni (pl. 0 – 100 bar). A beállított skálázást mindenképpen le kell tesztelni (pl. 0 – 400 kg tartományú mérleg esetén a kolléga álljon rá, és ha az eredmény 200 kg, akkor vagy emberünk van jó súlyban vagy a mérleg „csal”). Ha a mérés nem lineáris, akkor annak a mérését a programban kell kompenzálni (ezt hívják szívásnak). Húzósabb helyeken szokás alkalmazni a két mérés háromból elvet. Ilyenkor a három mérésből a két – egymáshoz legközelebb esőt – kell átlagolni, és ez a méréseredmény. Ha a mérések valamelyike bizonyos – előre definiált – mérésen kívül esik, vagy a legkisebb tolerancia is nagyobb ennél a tűrésnél, riasztást kell kiadni. Sok – látszólag jól működő – mérés tud beüzemeléskor furcsa értékeket produkálni (például azok a pálcás hőmérők, melyeknek az égéstér hőmérsékletét kellene mérni, de hosszuk nem haladja meg a falazat vastagságát). Ne dőljünk be nekik! Szekrény élesztése esetén a főkapcsoló feltolása előtt húzzunk ki, minden a gépből kivezető „drótot”, Profibus és MPI csatlakozókat, mert így elkerülhető, hogy laptopunkban az mpi kártya az alaplapra olvadjon. Ha biztosíték levág, vagy nagyon szikrázik a csatlakozó, illetve füstöl a kártya, semmiképpen se próbáljuk meg azonnal visszatolni a biztosítékot. Kapcsoljuk le az egész szekrényt, vegyük ki a sorkapcsokat, majd csak eztán próbálkozzunk a visszakapcsolással. Ha a szekrény „állva marad”, mérjük ki a PLC-re menő vezetékeket – biztos, hogy találunk egyet, ahol a 24V helyett legalább 230V lesz. (Ez így leírva viccesnek hangzik, de sajnos tapasztalatból írtam ezt le). Mielőtt benyúlnánk egy szekrénybe, érdemes azt is ellenőrizni, hogy a hátlaphoz érintve világít-e a kezünkben a fázisceruza – főleg, ha frekvenciaváltó vagy szervóvezérlő is van a szekrényben. Ha igen, akkor óvatosan csukjuk be, ragasszunk rá valami vicces cetlit (legközelebbi temetkezési vállalkozó telefonszáma), figyelmeztető jelleggel, és a csarnokból kifelé menet értesítsük a villanyos kollégát. Az eddigi problémákért moshattuk a kezünket, ezek jellemzően nem szoftveres gondok voltak. Az izzasztóbb időszak ezek után kezdődik számunkra, hiszen fel kell éleszteni a programot. Beüzemelés során ügyeljünk a mozdítható tárgyakra. Sajnos ilyenkor a területen jellemzően elég vegyes a humanoid felhozatal, és mindig akad egy-két szarka vagy fétisgyűjtő, aki a számára alapvetően totálisan értéktelen és érdektelen tárgyakat képes meglovasítani. Így első körben a memóriakártyák és a PLC kulcsok tűnnek el a tárva-nyitva hagyott

Page 49: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 49. oldal

szekrényekből, közvetlenül az összes Rittal – sörnyitó – kulcsot megelőzve. Nagyobb berendezések beüzemelésekor pár laptop, mobil telefon, - gyakorlatilag sehol máshol nem használható, de iszonyúan drága – műszer válik a gyűjtögetők martalékává.

SIM0, SIM1, Dummy A programunkban eddig az OB-k BEA-val le voltak zárva (remélem). Mielőtt ezeket feloldanánk, az összes meghívott kimenet helyére érdemes egy Dummy változót betoldani. Így elkerülhető, hogy a berendezés összes kimenete egyszerre éledjen fel, mert ez könnyen a közhangulat feléledéséhez is vezethet. CALL "tesztel" bemenet1:=E1.0 bemenet2:=E1.1 kimenet1:="Dummy" //A1.0 kimenet2:="Dummy" //A1.1 Természetesen az „igazi” (>>Trebics) kimeneteket érdemes egy // mögött otthagyni, hiszen a programrész élesztése így hosszas keresgélés helyett gyors törléssel megoldható. Az élesztést személy szerint úgy szoktam végezni, hogy az így Dummy-ra tett blokkok végére teszem át a BEA-t, majd a blokkokat egyenként élesztem és tesztelem. Meglepetések így is érhetnek bárkit, de ennyi adrenalin azért kell. Sok esetben a bemeneteket fix értékre kell tenni, ilyenkor érdemes a LOG0-t és LOG1-et alkalmazni (tehát azokban az esetekben, amikor az állítás véglegesen bent marad a programban). Előfordul az az eset is, amikor a beüzemelés időpontjában az adott bináris bemenet még nem áll rendelkezésünkre (vö.: „Nem mondod, hogy ide is kell egy ilyen végállás-szenzor..”). Ilyenkor érdemes a SIM0-t és a SIM1-et betűzdelni a programunkba, hiszen ezek később (elvileg) ki kell, hogy kerüljenek onnan. A projekt vége felé érdemes néha egy-egy keresztreferenciát futtatni, és áttekinteni, hogy még mennyi SIM0/1 akna leledzik a programunkban, hiszen ideális esetben ezeknek átadásig el kell tűnniük (a gyakorlat persze mindig mást mutat – és az még a jobbik eset, ha ezek „átalakulnak” LOG0/1-é). CALL "tesztel" bemenet1:=”LOG0” // maradó nulla bemenet2:=”SIM1” // ideiglenes 1 kimenet1:=A1.0 kimenet2:=A1.1

A projekt vége felé, ha már egyszer úgyis újrageneráltattuk a programot, érdemes azt is áttekinteni, hogy bemenetek és kimenetek „nem kerültek még felhasználásra” (kevésbé szofisztikátlan: mi maradt ki). A program üzembe helyezése jellemzően nem „magányos farkas kóborol” akció, hanem csapatmunka. Ilyenkor szokta rettenetesen megbosszulni magát a meggondolatlanul fejlesztett (vö.: összehányt), össze-vissza tagolt és nem kommentált program.

Page 50: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 50. oldal

Új S7-300-as projekt létrehozása (német nyelvű SIMATIC Manager-ben) Az S7-300-as környezetet telepítettnek tekintem, a lenti leírás csak az alapkonfiguráció összeállításához szükséges ismereteket tartalmazza. 1 Új projekt Datei ► Neu..

Itt adja meg a projekt nevét (Name:) → s7_300_proj S7_300-proj (Komponentsicht) felirattal új projektablak nyílik. Einfügen ► Station ► SIMATIC 300 Station Az újonnan megjelent PLC – SIMATIC 300(1) - ikonjára kétszer rákattintani. A felnyíló hardware ikonra kétszer rákattintani.

2 Hardver konfigurálás, Új konfig létrehozása

A hardver konfigurátorban – HW Konfig – SIMATIC 300(1) – egy konfig ablak nyílt: SIMATIC 300(1) (Konfiguration) – s7_300_proj Itt kell a projektünk hardveres konfigurációját összeállítani. Ha szimulátort akarunk használni, a szimulálandó környezetet kell összepakolni. Jobb oldalt található a kiválasztó-ablak, innen kell a nekünk tetsző elemeket áthúzkodnunk a projekt ablakunkba. A Profil: kiválasztó menünél megadhatjuk, hogy melyik projekt-környezetben akarunk dolgozni. Válasszuk ki a → Standard pontot.

A SIMATIC 300-as menüpontot nyissuk fel.

Innen első nekifutásra egy hátlapot – Profilschine – kell áthúznunk a projektünkbe, és ezt kell a későbbiekben „berendeznünk”:

Page 51: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 51. oldal

Az első slot-ba (slot-okba) a tápegységet kell behúznunk, a PS300-as pontból. Akciónkat megkönnyíti, hogy azok a mezők zöldre váltanak, ahová tehetjük az adott modult. A tápot rögtön követheti a CPU áthúzása, Több CPU-nál több verziószámú egység is létezik, ezt a számot a CPU-n is fellelhetjük. Az egység behúzását követően a program feldob egy ablakot, ahol a kommunikációs beállítások felől érdeklődik. Ezt itt nyugodtan leOKzhatjuk, ráérünk a későbbiekben beállítani ezt. Az i/o kártyákat az SM-300 pont alatt lelhetjük fel. Ezekből is pakoljunk fel néhányat – ha csak tesztprojektet akarunk létrehozni. Ha az adott „vas” alapján kívánjuk a HW Konfig-ot összeállítani, akkor a kiválasztott egység alatt feltüntetett Siemens kódot mindig egyeztessük az adott egységen szerepelő számmal.

3 Hardverkonfigurálás, Új konfig áttekintése

A beállított konfigurációnkat a bal alsó sarokban található ablakban tekinthetjük át, és innen is módosíthatjuk – vagy a felette található grafikus összegzésből – két kattintással.

Az itt található mezők: Steckplatz: Slot száma, a kártyák sorrendisége. A

Page 52: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 52. oldal

háromszázasnál az üres pozíciókkal nem kell foglalkozni, a 400-asnál mindig a megjelölt pozícióba kell pakolni a kártyákat. Baugruppe: Az adott modul neve. Ha a CPU-ban van kommunikációs modul is (pl. fent), akkor azt – a könnyebb átláthatóság okán – külön sorba pakolja. Bestellnummer: A Siemens azonosító. Ezeknek a számoknak egyezniük kell a „vas”-on szereplőkkel, egyébként nem tudjuk hibátlanul letölteni a hw.konfig-ot. Ha nem találja az adott Siemens azonosítót, csapja fel a ttt fejezetet. Firmware: Ennek a verziószámnak is meg kell egyeznie a kártyán találhatóval.

MPI adresse: Az adott modul MPI címe. A címet mindenképpen hagyjuk 2-n, mert a PLC-nek ez a default címe. Erről bővebben az MPI fejezetben olvashat. E-Adresse: Bemeneti címek. A-Adresse: Kimeneti címek. Kommentar: megjegyzés.

4 Hardverkonfigurálás, Konzisztencia ellenőrzése

Station ► Konsistenz prüfen Ebben a lépésben ellenőrizhetjük, hogy az összelapátolt konfiguráció működőképes-e.

5 Hardver konfigurálás, mentés és befordítás

Station ► Speichern und überprüfen ( ) A konfigurációt mentjük és befordítjuk.

6 Hardver konfigurálás, letöltés

Zielsystem ► Laden in Baugruppen.. ( ) Letöltéskor először feldob egy ablakot, hogy melyik gépen akarjuk felülírni a programot (Zielbaugruppe auswählen). Nem mintha olyan sok választásunk volna..

Ezt leOKézva, a következő ablak a Teilnehmeradresse Auswählen. Itt sincs túl sok lehetőségünk, mert csak a default 2 MPI címet tudnánk megváltoztatni, azt pedig nem érdemes, mert

Page 53: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 53. oldal

a hw.konfig nélküli PLC minden esetben erre a címre áll rá. Ha ezek után eredményként a lenti üzenetet kapjuk,

akkor a címzéssel vagy a drótozással valamit elszúrtunk. A legtriviálisabb lehetőségek:

• A konfig-ban nem MPI 2-t állítottunk be. → Korrigáljuk. • A PLC nem a 2 címen áll. → Hideg reset. • Nem csatoltuk az MPI-t megfelelően, vagy nem a

megfelelő csatlakozót használtuk (MPI, vagy DP/MPI) → Keressük meg a drót két végét.

• Nem MPI vezetéket használunk → ellenőrizzük. • Halott a PLC vagy a PG MPI portja → földet reá.

Ha szimulátort használunk, akkor letöltés előtt indítsuk azt el. SIMATIC Manager ► Extras ► Baugruppen simulieren ( ). A letöltés a fent ismertetett módon történik, azzal a különbséggel, hogy a célállomásként a CPU841-0 fog felbukkanni:

7 Hardverkonfigurálás, On-line státusz Station ► Online öffnen ( )

Ha minden jól alakult, és a PLC-nk is fut, a fenti ablak fog megjelenni. Ha nem, fejtsük meg az ikonok üzenetét.

Hardware konfig diagnózis CPU szimbólumai online módban

ikon hatáskör Leírás

Page 54: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 54. oldal

FM / CPU A projektben megadott egység nem található, vagy nincs

csatlakoztatva.

FM / CPU Modul hiba. Lehetséges okok:

• Diagnózis alarm • Periféria elérési hiba • Hiba LED

FM / CPU Nincs diagnosztikai lehetőség.

• Nincs on-line kapcsolat • Az adott egység nem ad ki diagnózis információkat (pl.

tápegység, részmodul)

CPU Felfutás (Anlauf)

CPU Stop

CPU Stop

Multicomputing üzemmódban stop-ban várakozó PLC (pl. H-s rendszereknél a stand-by gép)

CPU Fut (run) – minden rendben hardver oldalon

CPU Leállás (Halt) – a PLC leállt

FM / CPU A modul fut, és „force” módja aktív.

Legalább egy változó force-olt állapotban van.

CPU Karbantartás szükséges

CPU Karbantartás

12. Táblázat HW konfig CPU státusz

PLCSim használata

A PLCSim program nem képezi az alap Simatic környezet részét, opcionálisan kell hozzá megvásárolni (nem olcsó). Használatával a programok tesztelése kényelmesen, külső PLC nélkül is meg tudjuk valósítani. A PLCSim gyakorlatilag csak tesztelésre alkalmas, a PLC-t nem helyettesíti (Ha a PC-jével kívánja helyettesíteni a PLC-t, keressen rá a WinAC-re).

Ha a SIMATIC Manager-ünkön az ikonsorban nincs „kiszürkítve” a ( ) ikon, akkor a gépünkön van PLCSim. Hivatalosan itt győződhetünk meg afelől, hogy van-e szimulátorunk: (Windows) Start ► SIMATIC ► Information ► Installed Software

Page 55: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 55. oldal

11. ábra Installált SIMATIC szoftver-komponensek

Tegyük fel, hogy van PLCSim-ünk. 1 PLCSim

indítása SIMATIC Manager ► Extras ► Baugruppen simulieren ( ).

2 PLCSim Fel-építése

A PLCSim futás közben valahogy így néz ki. Most nézzük meg ezt az ábrát részleteiben: Kezdjük a legfontosabbal, a CPU ablakkal. Ez az ablak helyettesíti a PLC-k frontlapját, a kijelzések ahhoz hasonlóak, de itt a kulcsot – értelemszerűen check-box-ok helyettesítik.

Page 56: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 56. oldal

A jobb oldali oszlop jelzései: SF : Systemfehler – rendszerhiba Egy – üzemmód váltás által előidézett – rendszerhiba lépett fel. DP: dezentrale Peripherie – decentralizált periféria A DP felé irányuló kommunikáció állapota. Ha van DP-nk, de nem használjuk, a visszajelzés alapból piros. DC: Spannungsversorgung – tápellátás A CPU ki- illetve bekapcsolt állapota. A tápegység le- illetve felkapcsolását az alábbi pontban tudjuk szimulálni: Zielsystem ► Netz Ein / Netz Aus RUN: A program fut. Felfutás közben – a PLC-kel megegyező módon – villog a LED. STOP: Áll a PLC. RUN_P: Programozói futtatás. Ebben az üzemmódban folyamatosan lehetőségünk van a program on-line letöltésére, VAT-táblák működtetésére és a PLCSim-ben nyitott ablakokon keresztüli változtatásokra. RUN: Védett módú futtatás. Ilyenkor a PG felől nem tudunk változtatni a programunkon, de a PLCSim-ből az ottani ablakokon keresztüli változatás lehetősége továbbra is fennáll. STOP: Kézi PLC leállítás. MRES: Urlöschen. Törli a programot, a memória tartalmát és a letöltött hardver konfigurációt. További, a PLC futtatásához kapcsolódó ikonok és funkciók:

Page 57: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 57. oldal

Zielsystem ► Netz Ein / Netz Aus Tápfeszültség be- és kikapcsolásának szimulálása. Zielsystem ► MPI Adresse... A modellezett MPI cím megváltoztatása

zyklusweise ausführen

Ciklusonkénti végrehajtás. A PLC működését minden ciklus után befagyasztja, és azt csak a léptetéssel lehet feloldani.

Nächster Zyklus

Következő ciklus – léptetés. A ciklusonkénti végrehajtás esetén a következő lefutást engedélyezi.

Automatisch ausführen

Automatikus végrehajtás. A szimulátor – a PLC-kkel megegyezően – folyamatosan futtatja a programot.

Anhalten Futás felfüggesztése.

Zeiten zurücksetzen

Timer-ek nullázása.

Page 58: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 58. oldal

Kommunikáció A PLC technológia egyik legfonto-sabb eleme a kommunikáció. PC-s környezetben megszoktuk – és kellemesen kényelmessé tett minket – az Ethernet alapú TCP/IP. PLC-s körökben sajnos az élet nem ilyen egyszerű. Először is megkülönböztetjük a kommuni-káció fizikai és logikai szintjét, és a két csoport között a legkülön-félébb kombinációkat. Sokszor a logikai szinten belül is két szint létezik. Ezeknek a cso-portosításával már sokan ve-sződtek, és többnyire ered-ménytelenül, mert a kivételeknek olyan magas a száma, hogy a szabályok sokszor értelmüket vesztik (mint a német ragozás-ban).

Leggyakrabban felbukkanó fizikai szintek: RS232, RS422/485, Profibus/MPI, Ethernet Gyakori logikai szintek: RS232PP, Modbus, Can, CanOpen, Profibus (Standard, DP, PA, FMS), Ethernet TCP/IP (layer 4, layer 6). A kombinációk sokfélék lehetnek, gyakori például a az RS485 Modbus és az Ethernet Modbus, vagy a Profibus és a Profibus Ethernet-en (Profinet). Sok esetben a kommunikáció teljesen speciális hardware-en történik, ilyen például az AS-I. Talán ebből a vázlatos bevezetőből is kiderült, hogy a PLC kommunikációt óvatosan kell kö-zelíteni, és érdemes minden esetben alaposan áttanulmányozni az specifikáció ide vonat-kozó pontjait. A témára a későbbiekben visszatérünk. A Siemens – hasonlóan a többi gyártóhoz – a kommunikációs rendszerek rendkívül széles palettáját kínálja, ebből szemezgettem ki azt a párat, amit a leggyakrabban szokás hasz-nálni: MPI, Profibus, RS232. A Siemens az utóbbi időben rendkívül „nyomja” a Profinet-et, ami egy nagyon gyors (Ethernet alapú) Profibus. Bevallom őszintén, még nincs gyakorlati tapasztalatom ezzel a rendszerrel, így ebből a verzióból ennek ismertetését kihagyom.

Page 59: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 59. oldal

Buszrendszerek ismertetése

ISO-OSI referencia modell

Két egység között – mielőtt egy buszon elindulna a kommunikáció – az átvitel és a hozzáférés módját meg kell határozni. Erre a célra született az International Standardization Organization (Nemzetközi Szabványügyi Szervezet - ISO) által meghatározott 7 rétegű (7 layer) modell, az OSI (Open System Interconnection).

Layer / réteg Name Név Leírás

7 Application layer

Alkalmazási réteg

Supplies the application-specific communication Alkalmazás specifikus kommunikáció biztosítása.

6 Presentation Layer

Megjelenítési réteg

Transforms the data from the standard display of the communication system to the site-specific form. Ez a szint átalakítja/konvertálja az üzenetek formáját.

Logi

kai ö

ssze

kötte

tés

réte

gek

5 Session Layer viszonyréteg

responsible for connecting, disconnecting, and monitoring of communication link. Ez a szint határozza meg a csatlakozások, lecsatlakozások módját, biztosítja a kommunikáció felügyeletét.

4 Transport Layer

Forgalmazási réteg

Responsible for transport control. Ez a réteg felel az adatátvitel irányításáért.

3 Network Layer

Hálózati Réteg

Responsible for data path from one address to another. Ez a réteg felel a címek közötti adatút meghatározásáért.

2 Data Link Layer

Adatkapcsolati réteg

Responsible for error recognition and error elimination. Ez a réteg felel a hibafelismerésért és kiküszöböléséért.

adat

átvi

teli

réte

gek

1 Physical Layer

Fizikai réteg

Specifies physics of data transmission. Az adatátvitel fizikai specifikációja

13. Táblázat OSI/ISO modell rétegeinek jellemzése

Page 60: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 60. oldal

Az OSI rétegek feladatai Az adatátvitellel foglalkozó rétegek: A fizikai réteg (physical layer) A bitek kommunikációs csatornára való kibocsátásáért felelős. Biztosítania kell, hogy az adó által küldött jeleket a vevő is azonosként értelmezze. Tipikus villamosmérnöki feladat a tervezése. Az adatkapcsolati réteg (data link layer) Alapvető feladata a hibamentes átvitel biztosítása a szomszéd gépek között, vagyis a hibás, zavart, tetszőlegesen kezdetleges átviteli vonalat hibamentessé transzformálja az összeköttetés fennállása alatt. Az adatokat adatkeretekké (data frame) tördeli, továbbítja, a nyugtát fogadja, hibajavítást és forgalomszabályozást végez. A hálózati réteg (network layer) A kommunikációs alhálózatok működését vezérli, feladata az útvonalválasztás forrás és célállomás között. Ha az útvonalban eltérő hálózatok vannak, akkor fregmentálást, protokoll átalakítást is végez. Az utolsó olyan réteg, amely ismeri a hálózat topológiáját. A szállítási réteg (transport layer) Feladata a végpontok közötti hibamentes adatátvitel biztosítása. Már nem ismeri a topológiát, csak a két végpontban van rá szükség. Feladata az összeköttetések felépítése, bontása, csomagok sorrendbe állítása. A logikai összeköttetéssel foglalkozó rétegek: A viszonyréteg (session layer) Lehetővé teszi, hogy két számítógép felhasználói kapcsolatot létesítsenek egymással. Jellegzetes feladata a logikai kapcsolat felépítése és bontása, párbeszéd szervezése. Szinkronizációs feladatokat is ellát, ellenőrzési pontok beépítésével. A megjelenítési réteg (presentation layer) Az egyetlen olyan réteg, amely megváltoztathatja az üzenet tartalmát. Tömörít, rejtjelez (adatvédelem és adatbiztonság miatt), kódcserét (pl.: ASCII - EBCDIC) végez el. Az alkalmazási réteg (application layer) Széles körben igényelt szolgáltatásokat tartalmaz. Pl.: fájlok gépek közötti másolása.

Page 61: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 61. oldal

MPI

méghátravan

Profibus

A PROFIBUS egy univerzális ipari kommunikációs rendszer, melyet nagy előszeretettel alkalmaznak ott, ahol nagyobb rendszerek jelcseréje zajlik. A PROFIBUS gyártó-független, nyílt terepbusz szabvány széleskörű alkalmazási területtel. A

gyártó-függetlenséget és a nyíltságot az EN 50 170 PROFIBUS szabvány garantálja. A PROFIBUS lehetővé teszi különböző gyártók eszközeinek speciális interface nélküli kommunikációját. A PROFIBUS felhasználható nagysebességű időkritikus adatátvitelre és nagy, bonyolult kommunikációs feladatok megoldására egyaránt. A PROFIBUS család három - alapjaiban kompatibilis - változatból áll.

Page 62: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 62. oldal

12. ábra Profibus alkalmazási szintek Ezt a nagysebességű és olcsó összeköttetésekre optimalizált változatot elsősorban automatikus vezérlőrendszerek és elosztott I/O eszközök kommunikációjára fejlesztették ki. A PROFIBUS szabványosított műszaki és funkcionális jellemzői lehetővé teszik decentralizált digitális vezérlők közös hálózatba kapcsolását. A PROFIBUS különbséget tesz master és slave eszközök között. A master eszközök vezérlik az adatkommunikációt a buszon. A master külső kérés nélkül is küldhet üzenetet, ha nála van a buszhozzáférési jog ( a token). A PROFIBUS protokollban a master-eket aktív állomásoknak is nevezik. A slave-ek perifériás eszközök. Tipikus slave eszközök az input-output eszközök, a szelepek, meghajtók és mérőeszközök. Nincs buszhozzáférési joguk: csak a bejövő üzeneteket nyugtázhatják, illetve a master kérésére küldhetnek adatot. A slave-eket passzív állomásoknak is nevezik. Mivel a busz protokollnak csak kis részét képezik, ezért implementációjuk gazdaságos. A PROFIBUS-DP és a PROFIBUS-FMS egyaránt RS 485-öt (vagy száloptikás átvitelt) és hossz hozzáférési protokollt használ, ezért ugyanazon a vezetéken egyidejűleg is alkalmazhatók. A PROFIBUS-PA az IEC 1158-2 szabvány szerinti adatátvitel biztosítása mellett az eszközök buszvezetéken keresztül történő tápellátását is biztosítja.

Page 63: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 63. oldal

13. ábra A profibus típusai (a nyelvgyakorlás okán angolul)

Rövidítések jelentése: Profibus DP : Decentralized periphery - Decentralizált periféria Profibus PA : Process Automation – Folyamatautomatizálás Profibus FMS: Fieldbus Message Specification – terepi busz üzenetspecifikáció

RS485 a PROFIBUS DP-hez és FMS-hez Az RS 485 átvitel a PROFIBUS rendszerekben leggyakrabban alkalmazott átviteli technológia. Gyakran hivatkoznak rá H2 néven is. Alkalmazási területe magában foglalja a nagy átviteli sebességet és egyszerű, olcsó installációt igénylő területeket. Egy vezetőpáras, árnyékolt, sodrott érpárt használ fel. Az RS 485 átviteli technológia nagyon egyszerűen kezelhető. A sodrott érpár bekötése nem igényel szaktudást. A busz struktúrája lehetővé teszi állomások hozzáadását és eltávolítását, a rendszer lépésről lépésre történő felállítását a többi állomás zavarása nélkül. A későbbi bővítéseknek nincs hatása a már működő állomásokra. Az átviteli sebesség 9.6 kbit/sec és 12 Mbit/sec között választható meg. A rendszer összeállításakor egy átviteli sebességet kell meghatározni az összes berendezés számára.

Hálózati topológia Lineáris busz, mindkét végén aktív lezárással, lezárás nélkül csak <= 1.5 Mbit/sec baud rate valósítható meg

Átviteli közeg Árnyékolt sodrott érpár. Az árnyékolás a környezeti feltételektől (EMC) függően elhagyható

Állomások száma 32 állomás szegmensenként repeaterek nélkül, max. 127 állomás repeaterek-kel

Csatlakozók Jellemzően 9 tűs D csatlakozó 14. ábra Az RS485 technikai jellemzői

Minden eszköz a buszhoz (vonal) csatlakozik. Egy szegmensre maximum 32 állomás (master vagy slave) csatlakoztatható. A szegmensek mindkét végét aktív buszvégződéssel kell lezárni. (4. ábra) A hibamentes működés biztosításához gondoskodni kell a buszvégződések tápfeszültség-ellátásáról. Sok gyártó kínálja eszközeit és csatlakozóit bekapcsolható buszvégződéssel. Ha az

Page 64: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 64. oldal

állomások száma meghaladja a 32-t, repeater-eket (vonali erősítők) kell használni a busz szegmensek összekötésére. A legnagyobb kábelhossz az átviteli sebességtől függ. A megadott kábelhosszak repeater-ek használatával növelhetők, de 3-nál több repeater soros alkalmazása nem javasolt. Impedancia 135 - 165 Ohm

Kapacitás < 30 pf/m

Hurokellenállás 110 Ohm/km

Vezetékméret 0.64mm

Vezető terület > 0.34mm² 15. ábra RS485 'A' típusú vezeték technikai adatai Baud rate (kbit/sec) 9.6 19.2 93.75 187.5 500 1500 12000

Távolság/szegmens 1200 m 1200 m 1200 m 1000 m 400 m 200 m 100 m 16. ábra RS485 ’A’ típusú vezeték jellemző kbps adatok a hossz függvényében Állomások csatlakoztatásakor meg kell győződni arról, hogy az adatvonalak nem cserélődtek-e fel. Az árnyékolt adatvonalak használata nagy elektromágneses terekben (pl. autógyárak) létfontosságú a rendszer védettsége szempontjából. Az árnyékolás az elektromágneses kompatibilitás (EMC) növelésére szolgál. Az árnyékoló fonatot vagy fóliát a vezeték mindkét végén földelni kell. Ajánlott továbbá az adatvonalak elkülönítése a nagyfeszültségű kábelektől. A lezárás nélküli vonalak használatát 500 kbit/sec átviteli sebesség fölött kerülni kell. A jelenleg kapható csatlakozók lehetővé teszik, hogy a bejövő és kimenő adatvonalak közvetlenül a csatlakozóhoz kapcsolódjanak. Ez azt jelenti, hogy nincs szükség lezárás nélküli vonalakra, hiszen a csatlakozó a többi állomás zavarása nélkül bármikor hozzákapcsolható a buszhoz illetve levehető róla.

Az IEC 1158-2 átviteli szabvány a PROFIBUS PA-hoz Az IEC 1158-2 szabvánnyal összhangban levő átviteli technológia megfelel a vegyipar követelményeinek. Nagy megbízhatóságú és lehetővé teszi a terepi eszközök buszon keresztüli tápfeszültség-ellátását. Ez a technológia egy bitszinkron protokoll, folyamatos árammentes átvitellel. Gyakran hivatkoznak rá H1 néven is. Az IEC 1158-2 technológiát a PROFIBUS-PA használja. Az átvitel alapjai a következők:

• Minden szegmensnek egy tápegysége van. • Egy állomás adási ideje alatt nincs tápfeszültség a buszon. • Minden terepi eszköz konstans alapáramot fogyaszt. • A terepi eszközök passzív áramnyelőként működnek. • A fő buszvonal mindkét végére passzív buszvégződést kell elhelyezni. • Lineáris-, fa- és csillag topológiájú hálózatok megengedettek. • A megbízhatóság növelése érdekében redundáns busz szegmensek is kialakíthatók.

Page 65: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 65. oldal

• Feltételezhető, hogy állomásonként 10mA alapáram szükséges az eszköz működéséhez. A kommunikációs jelzéseket az adóberendezés állítja elő az alapáram +/- 9 mA-es modulációjával.

Általában a vezérlő szobában helyezik el a folyamatszabályozási rendszert, a vezérlő eszközöket, a monitorokat és a szegmenscsatolókat, melyek az IEC 1158-2 átvitelt használó szegmenseket kapcsolják össze az RS 485 átvitelű szegmensekkel. A szegmenscsatolók illesztik az RS 485 jelzéseket az IEC 1158-2 jelzésekhez. Ezek biztosítják az áramot is a terepi eszközök távoli tápfeszültség-ellátásához. A tápegység korlátozza az IEC 1158-2 szegmens feszültségét és áramát.

Adatátvitel Digitális, bitszinkron, Manchester kódolású

Átviteli sebesség 31.25 kbit/sec, feszültség módú

Adatbiztonság Előhang (preamble), hibatűrő start és end delimiter

Kábelezés Kétvezetékes sodrott érpár (árnyékolt/árnyékolatlan)

Távoli tápfeszültség-ellátás

Opcionális, az adatvonalakon keresztül

Hibatűrés típusa Nagy megbízhatóságú/kevésbé megbízható működés lehetséges

Topológia Vonal és fa topológia, vagy ezek kombinációja

Az állomások száma 32 állomás szegmensenként, összesen maximum 126

Repeater Maximum 4 repeater használható 14. Táblázat Az IEC 1158-1 technikai jellemzői Kábelezés árnyékolt sodrott érpár

Vezető terület (névleges) 0.8 mm² (AWG 18)

Hurokellenállás (direkt áram) 44 Ohm/km

Impedancia 31.25 kHz-en 100 Ohm ±20%

Csillapítás 39 kHz-en 3 dB/km

Kapacitív aszimmetria 2 nF/km 15. Táblázat Az IEC 1158-2 átvitel referencia kábelének jellemzői A fa és vonal struktúrák kombinációja lehetővé teszi a busz hosszának optimalizálását és a meglévő rendszerhez illesztését. A lezárás nélküli vonalak maximális megengedhető hosszát figyelembe kell venni. Átviteli közegként a kétvezetékes kábel (árnyékolt/árnyékolatlan) használatos. Ajánlott a fenti táblázatban szereplő referencia kábel használata. Az ennél nagyobb vezető területű kábelek szintén elfogadhatóak. A fő buszkábel mindkét vége passzív buszvégződéssel van ellátva, ami sorba kapcsolt RC elemekből áll (R=100 Ohm és C=1 µF). Egy állomás fordított polaritású csatlakoztatása nincs hatással a buszra. Ajánlott az eszközök automatikus polaritás-felismerővel való ellátása, így az eszközök bekötésüktől függetlenül helyesen működhetnek. Az egy szegmensre csatlakoztatható állomások maximális száma 32. Ezt a számot csökkentheti a választott hibatűrési típus és a buszon keresztüli tápfeszültség-ellátás. Nagy

Page 66: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 66. oldal

megbízhatóságú hálózatok működtetésekor mind a maximális tápfeszültség, mind a maximális tápáram pontosan definiált. A távoli tápegység teljesítménye még kevésbé megbízható működés esetén is limitált.

PROFIBUS OLM A Profibus üvegszálas adatátvitelét a Simatic környezetben az OLM modulokkal valósíthatjuk meg. (OLM : Optical link module). Az OLM átviteli sebessége a környező hálózathoz igazodik, és 9.6 Kbps és 12 Mbps között lehet. Az OLM egységek lehetővé teszik a vezetékes és optikai rendszerek széleskörű variálását, és sok esetben fontossá válik az a lehetőség is, hogy az üvegszállal izolálhatók az RS485 protokollt alkalmazó hálózatok.

Műanyag optikai vezeték (980/1000 μm) , 80 m távolságra alkalmazható. A vezeték két végét BFOC-kal kell lezárni.

PCF optikai vezeték (200/230 μm) , 400 m távolságra alkalmazható. A vezeték hosszán 4 BFOC megengedett.

Üvegszálas (multimode) optikai vezeték (62,5/125 μm) , 3000 m távolságra alkalmazható. A vezeték hosszán 4 BFOC megengedett.

Üvegszálas (monomode) optikai vezeték (10/125 μm) , 1,5 km távolságra alkalmazható.

A BFOC csatakozók lehetővé teszik a precíziós optikai vezeték csatlakozásokat. A csatlakozók szerkezete segít elkerülni a vezetékek sérüléseit. Alkalmazások elkerülhetetlen hosszabb üvegszál vezetékek esetén.

PROFIBUS ILM A PROFIBUS ILM (ILM : Infrared Link Module) két, egymástól független Profibus hálózat közötti kommunikációt valósít meg, infravörös adatátvitellel.

OLM BFOC csatlakozó

Page 67: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 67. oldal

Az infravörös adatátvitel jellegéből következően a két modulnak „látniuk kell egymást”. Az ILM modul az adatok fogadásához RS485 protokollt alkalmaz, ennek sebessége 9600 bps és 1,5 Mbps között állítható. Alkalmazásának két módja lehetséges: point-to-point link Két ILM modul köthet össze két hálózatot, melyek közül az egyik

tartalmazhat egy vagy több master-t, és slave-et, a másikon pedig csak slave-ek lóghatnak.

point-to-multipoint link Több ILM modul köthet össze olyan hálózatokat, melyek közül csak egy tartalmazhat master-t, vagy master-eket, a többi hálózatnak csak slave-ek lehetnek az elemei.

16. Táblázat ILM modulok alkalmazásai

17. ábra ILM Point-to-point kapcsolat sémája

Page 68: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 68. oldal

18. ábra ILM Point-to-multipoint kapcsolat sémája

19. ábra ILM Point-to-multipoint kapcsolat egy infravörös kapcsolattal

Page 69: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 69. oldal

PROFIBUS-DP A PROFIBUS-DP-t nagysebességű eszközszintű átvitelre fejlesztették ki. Itt a központi vezérlők (pl. PLC, PC) nagysebességű soros vonalon kommunikálnak az elosztott terepi eszközökkel (I/O, meghajtók, szelepek, stb.).

Az elosztott eszközökkel való kommunikáció legnagyobb része ciklikusan történik. Ebben a kommunikációban az EN 50 170 szabvánnyal összhangban levő PROFIBUS-DP funkciók használhatók fel. Ezen ciklikus funkciók végrehajtása mellett az intelligens terepi eszközök konfigurálására, diagnosztizálására és hibakezelésére aciklikus kommunikációs funkciók használata is szükséges, magyarul normál működés mellett a PLC ciklusa szerint meghatározott időközönként történik az adatok olvasása/írása, de konfigurálás/diagnosztika esetén a kommunikáció ütemezése eltér ettől. Egy DP buszra maximum 126 egység csatlakozhat. A PROFIBUS-DP mono-master és multi-master rendszereket tesz lehetővé. A Simatic csak a mono-master módot támogatja, azaz egy DP hálózaton csak egy master lehetséges. Egy buszra maximum 126 eszköz csatlakoztatható. Egy rendszer konfigurációja leírható az állomások számának, az állomások és az I/O címek egymáshoz rendelésének, az adatformátumnak, a diagnosztikai üzenetek formátumának és a használt busz paramétereinek megadásával. A PROFIBUS-DP rendszerek három eszköztípusa: 1. osztályú DP master (DPM1) Az 1. osztályú DP master egy központi vezérlő, mely egy

meghatározott üzenetciklus során információt cserél az elosztott állomásokkal (DP slave-ek). Ebbe az osztályba tartoznak a programozható vezérlők (PLC-k), a PC-k és a VME rendszerek.

2. osztályú DP master (DPM2) A 2. osztályú DP masterek programozók, konfigurációs eszközök vagy vezérlő panelek. A DP rendszer konfigurálására, vezérlési és ellenőrzési célokra használhatók fel.

DP slave A DP slave egy periféria (I/O eszköz, meghajtó, HMI,

Page 70: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 70. oldal

szelep, stb.) mely begyűjti az input információt és az output információt a vezérlő felé továbbítja. Vannak csak input vagy csak output eszközök is.

17. Táblázat PROFIBUS-DP rendszerek három eszköztípusa Az input és output információ mennyisége az eszköz típusától függ. Egyidejűleg maximum 246 byte információ megengedett mind az input, mind az output vonatkozásában.

A DPM1 által automatikusan végrehajtott felhasználói adatátvitelen túl a master utasításokat is küldhet egy slave-nek, a slave-ek egy csoportjának vagy az összes slave-nek egyszerre (multicast). Ezek az utasítások a DP slave-ek eseményvezérelt szinkronizálására támogatják a sync és a freeze mód használatát.

A slave-ek a mastertől kapott sync utasítás hatására lépnek a sync módba. Az összes megcímzett slave kimenete aktuális állapotába fagy. Az ezt követő felhasználói adatátvitelek során a slave-ek eltárolják az output adatokat, de output állapotuk változatlan marad. Ezek a tárolt output adatok csak a következő sync parancsot követően kerülnek átvitelre. A sync mód az unsync utasítással fejeződik be. Ehhez hasonlóan a megcímzett slave-ek a freeze utasítás hatására lépnek a freeze módba. Ekkor a bemenetek fagynak aktuális állapotukba. Az input adatok csak a master következő freeze utasítására frissülnek. A freeze mód az unfreeze utasítással fejeződik be.

A PROFIBUS-DP protokoll határozza meg, hogy a felhasználói adatok továbbítása hogyan történjen a buszra csatlakoztatott állomások között. A PROFIBUS-DP átviteli protokoll nem értékeli ki a felhasználói adatokat, az átvitel módját a profilok írják le, emellett meghatározzák a PROFIBUS-DP alkalmazási területeit is. A profilok az operátorok és végfelhasználók számára lehetővé teszik különböző gyártók eszközeinek használatát. A profilok egyúttal jelentősen csökkentik a tervezési költségeket is, hiszen pontosan meghatározzák az alkalmazási paramétereket. Jelenleg a következő PROFIBUS-DP profilok érhetők el: (zárójelben a dokumentáció száma) NC/RC profil (3.052) Ez a profil írja le, hogyan vezérelhetők PROFIBUS-DP

buszon keresztül a manipulátor és szerelő robotok. A robotok mozgás- és programvezérlésének sorrendi diagramokon alapuló leírása magas szintű automatizálási szempontok szerint történik.

Kódoló profil (3.062) Ez a profil a PROFIBUS-DP és a pozíció kódolók, szögkódolók ill. lineáris kódolók összekapcsolását írja le. A két eszköztípus alapvető és kiegészítő funkciókat határoz meg (pl. skálázás, interrupt feldolgozás, kibővített diagnosztika).

Változtatható sebességű meghajtó profil (3.071)

A vezető gyártók együttesen definiálták a PROFIDRIVE profilt. Ez meghatározza a meghajtók paraméterezését, a setpoint-ok és az aktuális értékek átvitelét. Lehetővé teszi a különböző gyártók meghajtóinak kicserélését. A profil tartalmazza a sebesség-szabályozáshoz és a pozícionáláshoz szükséges

Multicast

Sync / Freeze

PROFIBUS-DP profilok

Page 71: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 71. oldal

specifikációkat is. Meghatározza az alapvető funkciókat, lehetőséget adva az alkalmazás-specifikus kiterjesztésre ill. későbbi továbbfejlesztésekre. Leírja az alkalmazási funkciók illesztését DP-re vagy FMS-re.

Vezérlési és folyamatellenőrzési profil (HMI)

Az egyszerű vezérlési és folyamatellenőrzési eszközök profilja leírja ezen eszközök és a magas szintű automatizálási komponensek PROFIBUS-DP buszrendszeren keresztüli összekapcsolását. A profil a kibővített PROFIBUS-DP funkciókat használja a kommunikációra.

18. Táblázat PROFIBUS-DP Profilok

PROFIBUS-PA A PROFIBUS-PA folyamatszabályozási célokra használható. Lehetővé teszi érzékelők és beavatkozók közös buszra csatlakozását nagy megbízhatóságot igénylő környezetben is. Az IEC 1158-2 nemzetközi szabvány szerinti 2 vezetékes technológiával egyszerre szolgál kommunikációra és a tápfeszültség továbbítására. A PROFIBUS-PA a folyamatautomatizálásban használatos. A PA az automatizálási rendszereket kapcsolja össze a folyamatvezérlő rendszerekkel és a terepi eszközökkel. Az analóg 4-20 mA-es technológiát váltja fel. A PROFIBUS-PA használata a tervezési, kábelezési, szerelési és karbantartási költségek 40%-os csökkenését eredményezi, miközben az elérhető funkciók száma és a megbízhatóság nő. További előnyei:

• Egyedi folyamat automatizálási alkalmazási profilok és a különböző gyártók eszközeinek kicserélhetősége

• Eszközök hozzáadása és eltávolítása a többi állomás zavarása nélkül • Transzparens kommunikáció a PROFIBUS-PA és a PROFIBUS-DP busz

szegmensek között szegmenscsatolók alkalmazásával • Az IEC 1158-2 technológián alapuló távoli tápfeszültség-ellátás és adatátvitel

ugyanazon a két vezetéken • Kétféle hibatűrési típus "teljesen megbízható" vagy "nem teljesen megbízható"

PROFIBUS-FMS A PROFIBUS-FMS adja a cella szintű kommunikációs feladatok általános megoldását. A hatékony FMS szolgáltatások széleskörűen használhatók fel és nagy rugalmasságot biztosítanak. A PROFIBUS-FMS a kiterjedt és bonyolult kommunikációs feladatok megoldását is támogatja. Az FMS-en elsősorban a programozható vezérlők (PLC, PC) kommunikálnak egymással. Az FMS szolgáltatások a terepbusz alkalmazásokra optimalizált MMS szolgáltatások (MMS = Manufacturing Message Specification, ISO 9506) részét képezik, melyeket a kommunikációs objektumok adminisztrációját szolgáló és hálózatmenedzsment funkciókkal egészítettek ki.

Az FMS szolgáltatások a következő csoportokba sorolhatók:

Page 72: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 72. oldal

Context Management A logikai kapcsolatok létrehozására és bontására valamint nem megengedett szolgáltatások elutasítására szolgálnak.

Variable Access Egyszerű változók, rekordok, tömbök és változó listák érhetők el.

Domain Management Nagy memóriaterületeket továbbítanak. A továbbítandó adatokat a felhasználó szegmentálja.

Event Management Alarm üzenetek és események továbbítására szolgálnak. Ezek az üzenetek broadcast vagy multicast továbbítással is átvihetők.

Program Invocation Management

A szolgáltatások programvezérlésre használhatók.

VFD Support Azonosításra és státusz lekérdezésre szolgálnak. Az eszköz kérésére is továbbíthatók multicast vagy broadcast üzenetként.

OD Management Ezekkel a szolgáltatásokkal olvasható vagy írható az objektumkönyvtár.

19. Táblázat FMS szolgáltatások

PROFIBUS – Device Data Base fájlok (GSD) A PROFIBUS eszközök az elérhető funkciók (az I/O jelek és a diagnosztikai üzenetek száma) és a busz paraméterek (baud rate és időzítések) tekintetében különböznek. Ezek a paraméterek eszközönként és gyártónként változnak. Dokumentációjuk megtalálható az eszköz kézikönyvében. A PROFIBUS egyszerű plug and play konfigurálásának támogatására ezek a jellemzők elektronikus adatlap formájában is meg vannak adva, ezt gyakran device data base vagy GSD fájlnak nevezik. A GSD adatok szabványosítása a nyílt kommunikációt egészen a vezérlési szintig terjeszti ki. A GSD fájlokon alapuló konfigurációs eszközök használata a különböző gyártók eszközeinek egy rendszerbe való integrálását egyszerűvé és felhasználóbaráttá teszi.

Page 73: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 73. oldal

AS-I

Az AS-Interface (Actuator Sensor Interface) és jellegzetes sárga kábele a modern automatizálási technológia egyik legújabb hálózati megoldása. 1990-ben fejlesztették ki a hagyományos kábelezés költségkímélő, több funkciós alternatívájaként. Ma már több százezer eszköz és alkalmazás használja az automatizálás minden területén. Az alapötlet az volt, hogy az alacsonyszintű bináris eszközöket

egy könnyen csatlakoztatható kábellel kapcsoljuk össze, mely a tápfeszültség-ellátást és az adatátvitelt is biztosítja. Az AS-Interface gyors fejlődésének köszönhetően mára a technológia bizonyította alkalmazhatóságát. Felhasználható intelligens érzékelők összekapcsolására és távoli konfigurálására, DC és AC tápfeszültség-ellátásra, különböző gyártóktól származó eszközök együttműködésére és analóg jelek átvitelére. Az AS-Interface szabványosított, robusztus technológiája rugalmas hálózat felépítését teszi lehetővé a jellegzetes sárga kábel használatával, mely két vezetéket tartalmaz, és az adatátvitel mellett a tápfeszültség-ellátást is megoldja. A kábel maximális hossza 100 méter, de repeaterek használatával meghosszabbítható. A sárga kábel maximálisan 8A átvitelére képes, ami azt jelenti, hogy a tipikus alkalmazásokban nincs szükség további kábelekre. A hálózaton egyetlen slave eszköz több száz mA áramot vehet fel, ezért ha mégis szükség van további tápfeszültség átvitelre, egy fekete kiegészítő AC vagy DC tápkábel használható.

AS-I ISO/OSI rétegek ismertetése

Layer / réteg Name Név Leírás

7 Application layer

Alkalmazási réteg

messages, cycles, profiles, automatic address assignment Üzenetek, ciklus, profilok, automatikus címhozzárendelés

6 Presentation Layer

Megjelenítési réteg

Logi

kai ö

ssze

kötte

tés

réte

gek

5 Session Layer viszonyréteg

4 Transport Layer

Forgalmazási réteg

3 Network Layer

Hálózati Réteg

Nem alkalmazott rétegek

adat

átvi

teli

réte

gek

2 Data Link Layer

Adatkapcsolati réteg

data telegram, start bit, stop bit, protection, error processing

Page 74: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 74. oldal

Adattelegramm, start/stop bit, védelem és hibakezelés

1 Physical Layer

Fizikai réteg

Cable, power supply, data de-coupling, APM, energy supply Vezeték és tápellátás, adat lecsatlakozás, energiaellátás

20. Táblázat Az AS-I ISO/OSI rétegei

Az ISO/OSI-ról bővebben az azonos nevű fejezetben olvashat ISO/OSI

A kábel struktúrájának köszönhetően az AS-Interface egyedülálló csatlakoztatási megoldást tesz lehetővé. Nincs szükség a kábel elvágására ill. blankolásra, mivel a konnektor lezárásakor a tűk átszúrják a szigetelést és létrejön a fémes kontaktus. A technológia IP65 besorolású. A kábel mechanikai kialakításával elkerülhető a rossz polarizáltságú bekötés, a csatlakoztatás bontásával pedig a hálózat egyszerűen átalakítható. Így a rendszer tervezése, installálása és működtetése

igen egyszerűvé válik. Bármilyen hálózati topológia megvalósítható, beleértve a kedvelt fa struktúrát is, így a slave eszközök mindig az alkalmazásnak leginkább megfelelő módon kapcsolhatók össze.

Intelligens vagy hagyományos eszközök Egy egyszerű hálózatba legfeljebb 31 'intelligens' eszköz csatlakoztatható. A slave-ek lehetnek intelligensek - mint például a kapcsolók vagy a kibővített funkciójú szelepek - vagy 'modulok', melyek hagyományos bináris eszközök csatlakoztatására szolgálnak. A duplex AS-Interface hálózat maximálisan 124 bináris bemenetet és 124 bináris kimenetet tartalmazhat. A felhasználónak egyedül a slave címét kell beállítania, vagy a master felől, vagy pedig egy kézi eszközzel. Új slave elhelyezésekor a master automatikusan a helyes címet fogja használni.

Terepbusz interface Az AS-Interface 'nyílt' rendszer és kiegészíti a magasabb szintű terepbuszokat. Az AS-Interface egyszerű hozzáférést biztosít a terepbuszok felé (pl. PROFIBUS, Device Net, Interbus-S, FIP, CAN). A rendszer támogatja a transzparens kapcsolatokat és a terepbuszokon intelligens csomópontként jelenik meg. Átviteli közeg

Árnyékolatlan kétvezetékes kábel az adat és tápfeszültség együttes átvitelére (tipikusan 24 V DC, max. 8A)

A kábel hossza max. 100m / repeater

A slave-ek száma max. 31

Page 75: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 75. oldal

A résztvevők száma Slave-enként max. 4 érzékelő és 4 beavatkozó (max. 124, kétirányú = max. 248 bináris résztvevő)

Címzés Minden slave-nek definiált címe van. A címet kézileg vagy a masterrel lehet beállítani.

Üzenetek A master minden címre küld üzenetet és azonnali választ vár a slave-től

Bit-rate 4 bit slavenként és üzenetenként

Ciklusidő 31 slave esetén 5 ms

Hibadetektálás A hibás üzenetek azonosítása és ismétlése megbízható

Eszköz interface 4 konfigurálható adatport (inputok, outputok vagy kétirányúak) + 4 paraméter output és 2 vezérlési output (strobe)

Adatfeldolgozás a masterben

• Az összes résztvevő ciklikus lekérdezése • Ciklikus adatátvitel a hostnak illetve a slave-eknek

Master szolgáltatások • A hálózat inicializálása • A résztvevők azonosítása • A slave-ek paramétereinek aciklikus beállítása • A busz és az AS-Interface slave-ek hibaellenőrzése • Hibaüzenetek a hostnak • A kicserélt slave-ek címének beállítása

Kódolás Az AS-Interface Manchester kódolást használ. 21. Táblázat Az AS-I technikai jellemzői

20. ábra Az AS-I tipikus felépítése

Page 76: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 76. oldal

Can

A Bosch fejlesztette ki a "Controller Area Network"-öt, amit szabványosítottak (ISO 11898) és sok félvezető gyártó kínál hozzá eszközöket. Jellemzően a gépjárművek fedélzeti kommunikációjánál alkalmazzák, de az ipari automatizálási rendszerekben is gyakran

felbukkan. A CAN használatakor az állomások (vezérlők, érzékelők és beavatkozók) soros buszon keresztül vannak összekapcsolva. A busz egy szimmetrikus vagy aszimmetrikus kétvezetékes áramkör, ami lehet árnyékolt vagy árnyékolatlan is. A fizikai átvitel elektromos paramétereit szintén az ISO 11898 szabvány specifikálja. A CAN protokoll, mely az ISO/OSI hivatkozási modell adatkapcsolati rétegének felel meg, megfelel a járműipari alkalmazások valósidejű követelményeinek. A hálózat detektálja és kijavítja az elektromágneses zajokból eredő átviteli hibákat. Az egyszerű konfigurálás és a központi hibaellenőrzés szintén a hálózat előnyös tulajdonságai. A CAN rendszerek járművekben való használatának célja annak lehetővé tétele, hogy az állomások központi vezérlő számítógép használata nélkül tudjanak kommunikálni. Az adatátvitel megbízhatóságán túl az állomásokra eső alacsony kapcsolati költség is jelentős érv a CAN használata mellett. Az olyan alkalmazásokban, ahol a költség kritikus, felhasználhatjuk a sok gyártó által kínált CAN chipeket. A kompakt vezérlő chipek előnyösen használhatók fel például a kisfeszültségű kapcsoló berendezésekben.

Hogyan működik a CAN hálózat Az adatátvitelkor nincs megcímzett állomás, ehelyett az üzenet tartalmát egy a hálózatban egyedi azonosító jellemzi. Az azonosító nemcsak a tartalmat definiálja, hanem az üzenet prioritását is. Erre a busz allokáció során van szükség, amikor több állomás verseng a hozzáférés jogáért. Ha egy adott állomás CPU-ja egy vagy több állomásnak üzenetet akar küldeni, az átviendő adatokat és azonosítókat a hozzárendelt CAN chipnek továbbítja ("Make ready"). Ennyi a CPU összes feladata. Az üzenet összeállítása és elküldése a CAN chip feladata. Amint a CAN chip megszerzi a buszhozzáférés jogát ("Send Message"), az összes többi állomás veszi az üzenetét ("Receive Message"). A CAN hálózat minden állomása, mely helyesen vette az üzenetet, végrehajt egy elfogadási tesztet, hogy eldöntse, a vett adat neki szól-e ("Select"). Ha igen, feldolgozza ("Accept"), különben eldobja. A tartalom orientált címzési sémának köszönhetően a rendszer és a konfiguráció nagyfokú rugalmassága érhető el. Nagyon egyszerűen lehet új állomást felvenni a hálózatba a többi állomás szoftverének vagy hardverének módosítása nélkül, ha az új állomások csak vevők. Mivel az adatátviteli protokoll nem használ fizikai címeket, broadcast és multicast üzenetek is küldhetők, és elosztott folyamatok is szinkronizálhatók: a több vezérlő által is igényelt mérési információt át lehet küldeni a hálózaton, így nincs szükség arra, hogy minden vezérlőnek saját érzékelője legyen.

Page 77: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 77. oldal

A valósidejű feldolgozás adatait nagyon gyorsan kell átvinni. Ez nemcsak egy 1Mbps adatátviteli sebességű fizikai kapcsolatot igényel, hanem gyors busz allokációt is, ha több állomás egyszerre szeretne üzenetet átvinni. A valósidejű feldolgozás adatainak sürgőssége nagyon különböző lehet: egy gyorsan változó mennyiséget (pl. a motor fogyasztása) sokkal gyakrabban kell átvinni, tehát kisebb késleltetéssel más lassan változó mennyiségekhez (pl. a motor hőmérséklete) képest. Az átviendő üzenet prioritását az az azonosító határozza meg, melyhez az üzenet tartozik. A prioritási szinteket a rendszer tervezésekor bináris számokban kódolják, ez tehát nem változtatható dinamikusan. A legkisebb bináris szám jelenti a legmagasabb prioritást. A buszhozzáférési konfliktusok az azonosítókon alapuló bitenkénti döntés módszerével oldhatók fel, melyeket minden állomás figyel. A "huzalozott ÉS kapcsolatnak" megfelelően, amikor a domináns állítás (logical 0) felülírja a receszívet (logical 1), a buszhozzáférési versenyt is azok az állomások veszítik el, melyek átvitele receszív, megfigyelése pedig domináns. Az összes "vesztes" a legmagasabb prioritású üzenet vevőjévé válik, és nem kísérli meg az átvitelt mindaddig, míg a busz ismét szabad nem lesz. A CAN protokoll 2 keretformát támogat, melyek között az egyetlen lényeges különbség az azonosító (ID) hossza. A standard formátumú üzenetben ez 11 bit, a kiterjesztett formátumúban pedig 29 bit. A keretek 7 további mezőt tartalmaznak.

Page 78: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 78. oldal

HMI – Human – Machine Interface

21. ábra Klasszikus HMI A PLC-n fut a program, eddig rendben is van, de hogyan tudjuk nyomon követni a működését, illetve hol tudunk beavatkozni, paramétereket megadni? Nos, itt kerül a képbe az HMI (ember – gép kapcsolat). A klasszikus megoldást a plafonig felpakolt műszerfal jelentette, kijelzőkkel, nyomógombokkal, és viszonylag minimális interaktivitással.

A mai elvárások ennél azért többet kívánnak. A beavatkozási felület legyen egyszerű, áttekinthető és mégis hatékony. A beavatkozási lehetőségeken felül tárolja a technológiai adatokat, és ezeket tegye rugalmasan lekérdezhetővé. Az sem baj, ha az egész egy „színes, szagos” high-tech-ként néz ki, (és lelke mélyén talán az is). Ezeknek a kritériumoknak probálnak megfelelni az un. SCADA rendszerek. Érdekes törekvés, hogy az interaktivitásba bevonjuk az internet, illetve intranet kínálta lehetőségeket, és a speciális rendszer helyett „mezei” internet böngészőnkre bízzuk az HMI funkcióját. Ezt a megoldást a WebHMI pont alatt fogom boncolgatni.

Page 79: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 79. oldal

SCADA

A SCADA (supervisory control and data acquisition; felügyelői ellen-őrzés és adatgyűjtés) a folyamatirányítással kapcsolatos szoftverek egy önálló csoportja. Az információk valós idejű feldolgozását végzi, illetve a parancsok továbbításának feladatát látja el. További feladata az adatok gyűjtése, regisztrálása, tárolása és a lekérdezési lehetőség biztosítása. Jogosultsági szinteket kell tudni állítani benne, és igen gyakran a redundancia elvárásainak is meg kell felelnie. A SCADA rendszerek jellemzően több szerver, több kliens hálózatba szervezve látják el feladataikat. A SCADA-kat általában nagy üzembiztonságot igénylő helyeken alkalmazzák (erőművek, olajfinomítók, telekommunikációs és logisztikai rendszerek felügyelete,..) A SCADA rendszerek jellemzően – más hálózatoktól szigorúan szeparált – ethernet hálózatokon kommunikálnak. A Siemens a Simatic környezethez a WinCC SCADA rendszert ajánlja. A WinCC egy OPC felületen csatlakoztatható több típusú plc-hez.

Page 80: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 80. oldal

Software – alapok A plc programozása jelentősen eltér a PC-n megszokott programozástól, így, ha Önnek PC-s programozási nyelvek-ben van tapasztalata (Java, Delphi, Pascal, VB.. ) akkor kérem, nyisson új lapot – ez nagyon más lesz. A változókkal olyan nagy „baj” nincs, az egy byte itt is 8 bit. Az eltérés a program jellegében adódik, a PLC program „fo-lyamatosan” fut. Nincs várakozás, interrupt. Az utasításoknak egymás után le kell futniuk egy záros időn belül, és ha ez nem sikerül, a plc megáll. Ez egy „ját-szós” teszt plc-nél nem olyan nagy gond, de ha a plc-n történetesen egy gyárrész fut, akkor már a dolog nem hangzik olyan viccesen.

A programban természetesen vannak elágazások, de ezek nem if-then-else szinten mozog-nak, hanem az assembly-s környezetekre jellemző ugorj-ha, ugorj-ha-nem utasításokat kell alkalmazni. Az egész programozás inkább a PC-s assembly-re hajaz, mint bármely más, magas szintű nyelvére. Az utasítások megtanulása általában senkinek nem okoz nehézséget, 20 – 30 pa-rancs ismeretében „simán” meg lehet írni egy egyszerűbb plc programot. A nehézségét a programozásnak szintén ez adja, hiszen ezzel a néhány tucat utasítással kell tudni leírni egy technológiai rendszert. Nos, akkor kezdjük az alapokkal, a változók bemutatásával. Kérem, ezt a fejezetet „nyomja be” rendesen, az idevonatkozó ismeretek „fehér foltjai” nagyon sok kellemetlenséget okoz-hatnak.

Változó típusok A változótípusok csoportosítása hosszuk szerint:

Bit (1 bit) Byte (8 bit) Wort (16 bit) Doppelwort

(32 bit)

64 bit BOOL BYTE WORD DWORD CHAR INT DINT DATE S5TIME REAL TIME TOD DT Egyéb (változó hosszú) deklarációk: ARRAY, STRUCT, UDT, STRING[n]

Page 81: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 81. oldal

Bit A bit a legkisebb egység a plc-n értéke TRUE vagy FALSE.

Byte A byte 8 bitet tartalmaz. A biteket hátulról előre számozzuk, a byte 0.bitje mindig a legutolsó. Egy byte értéke 0 – 255 –ig terjedhet. (Hex 00-FF).

7 6 5 4 3 2 1 0

MSB LSB A byte felső és alsó 4 bitjét MSB (Most Significant Bit) és LSB (Least Significant Bit) nevek-kel illetjük.

Char

A karakter változótípust plc-n meglehetősen ritkán alkalmazzuk. Általában az RS232-vel kommunikáló egységek kapcsán szokott felbukkanni ez a típus. Ebben az esetben is, mint a byte-nál, a változó 8 bitből áll, és 0 -255 közötti értéket vehet fel. Az ASCII kódtáblázat sze-rinti hozzárendeléssel egy byte – egy char – egy karakter. Az Ascii kódtáblázatot a mellékletben találja.

Date A dátum típus 2 byte-on, előjel nélkül a napok számát adja a kezdeti időponttól. A kezdet az S7 esetén 1990.01.01, ezen időpont előtti dátum ezzel a típussal nem írható le. A maximáli-san leírható dátum pedig: 2168.12.31. A biteket ebben az esetben is hátulról előre számozzuk:

Date_and_time (DT) A típus 64 bites, és BCD formátumban tartalmazza az információkat az alábbi tagolás sze-rint:

0.byte 1 2 3 4 5 6 7.byte MSB

7.byte LSB

Év 90 .. 89

Hónap 01 .. 12

Nap 01 .. 31

Óra 00 .. 23

Perc 00 .. 59

Másodperc 00 .. 59

MSec 00 .. 99 (MSD)

Msec 0 .. 9 (LSD)

Munkanap 1 .. 7

: : : Év (0.byte)

90-nel indul (1990) és 89-nel ér véget (2089)

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0

Page 82: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 82. oldal

Hónap (1.byte)

Január – December

Msec (6.byte és 7.byte MSB)

A milliszekundum egy 3 jegyű szám (000 – 999). A BCD egy byte-on csak két számjegyet „engedélyez”. Ezért a felső két számjegyet a 6.byte tartalmazza, a hiányzó, legkisebb helyiértéket a 7.byte felső (MSB) 4 bitje tartalmazza.

Munkanap (7.byte LSB)

A munkanap kódját a 7.byte alsó (LSB) négy bitje tartalmazza: 1: vasárnap 2: hétfő 3: kedd 4: szerda 5: csütörtök 6: péntek 7: szombat

BCD kód: a számjegyeknek azok kettes számrendszerbeli értéke felel meg. Egy számjegyet 4 helyi értéken ábrázolunk.

Dint Dupla integer (32 bit), működése megegyezik az integer-rel, azaz, kettes komplementer kép-zéssel lehet „bevinni” az értéket, és az első bit itt is az előjel, a többi pedig a számértéket tar-talmazza. A változó csak egész számokra (Ganzzahl) alkalmazható. A DINT minimuma -2.147.483.648, a maximuma +2.147.483.647. (Egyszerűbben megje-gyezhető az, hogy a DINT nagyjából mínusz kétmilliárdtól plusz kétmilliárdig használható). A DINT felépítése: 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 00. byte 1.byte 2.byte 3.byte Az első pozícióban található bit az előjel (0: plusz, 1: mínusz). Látható, hogy a biteket hátulról előre, míg a byte-okat elölről hátrafelé számozzuk.

A kettes komplementer képzésről a mellékletben olvashat bővebben.

Dword A DWORD 32 bitet tartalmaz. A bitek számot „nem írnak le”, tartalma pusztán bitek halmaza. 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 00. byte 1.byte 2.byte 3.byte Tartalma leírható:

• Binárisan : 11111111111111111111111111111111 • Hexadecimálisan: FFFFFFFF • Előjel nélküli byte-okban (255, 255, 255, 255).

A típus lényege, hogy tartalmára nem vonatkozik formai megkötés. Két – egymást követő - Word típusú változó egy Dword-öt ír le.

Page 83: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 83. oldal

Int Az integer (16 bit) működése megegyezik a Dint-tel, azaz, kettes komplementer képzéssel lehet „bevinni” az értéket, és az első bit itt is az előjel, a többi pedig a számértéket tartal-mazza. A változó csak egész számokra (Ganzzahl) alkalmazható. Az INT minimuma -32.768, a maximuma +32.767. (Egyszerűbben megjegyezhető az, hogy a DINT nagyjából mínusz harminckétezertől plusz harminckétezerig használható). Az INT fel-építése:

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 0. byte 1.byte

Az első pozícióban található bit az előjel (0: plusz, 1: mínusz). Látható, hogy a biteket hátulról előre, míg a byte-okat elölről hátrafelé számozzuk.

A kettes komplementer képzésről a mellékletben olvashat bővebben.

Real A real típus 32 biten a számokat lebegőpontos formátumban tárolja. A belső szerkezet kiala-kítása az IEEE FP32 szabványa szerint történik. (Például 2334.342487e-6)

Az IEEE (Institute for Electrical and Electronics Engineers) standard 754. definiálja a lebegőpontos (floating point) számok tárolását és feldolgozását.

A Real típusú számok tárolási határai:

Minimum pozitív: Maximum pozitív:

+1.175495e-38 +3.402823e+38

Minimum negatív: Maximum negatív:

-1.175495e-38 -3.402823e+38 A Real típus felépítése: 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 00.byte 1.byte 2.byte 3.byte előjel

Exponenciális 8 bit

Mantissza 23 bit

• Az előjel 1: negatív szám, 0: pozitív szám • Exponenciális: 0-255 közötti számérték, e + 127 –tel kerül megjelenítésre. Decimális

szám. • Mantissza: A szám kerekített pontosságú leírása

S5time

Page 84: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 84. oldal

Az S5time (16 bit) típus még az S7 előtti S5 termékcsaládból öröklődött. Kissé körülménye-sebb használni, mint a normál idő-definíciót, ezért viszonylag ritkán bukkan fel. Felépítése: 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0

0.byte 1.byte üres Időköz 2.BCD 1.BCD 0.BCD

0 0 Időköz : 0,01 sec 0 1 Időköz : 0,1 sec 1 0 Időköz : 1 sec 1 1 Időköz : 10 sec A változó minimuma: 10 ms, maximuma: 2h46m30s. A BCD kódokkal 0 – 999 –ig definiálhatók számok.

BCD kód: a számjegyeknek azok kettes számrendszerbeli értéke felel meg. Egy számjegyet 4 helyi értéken ábrázolunk.

String A String típussal szövegeket tudunk tárolni. Hossza maximum 254 byte, tetszőleges. A String[n] esetén n hosszú szöveg tárolására alkalmas a változó, de a valóságban 2 byte-tal többet foglal el, mert az első byte-ján tárolja a maximális hosszat (n), a második byte-on pe-dig a valós hosszat. Ha például String[6] változónkba a „CICA” szót tároljuk, akkor a változó 8 byte-ot foglal el, első byte-ja 6-t, második pedig 4-et fog tárolni. A tartalma így néz ki ebben az esetben: 6 4 „C” „I” „C” „A” 0.byte 1.byte 2.byte 3.byte 4.byte 5.byte 6.byte 7.byte

Time A különböző időfunkciókhoz leginkább a Time típusú definíciót szokás használni. A típus 32 bites, gyakorlatilag egy előjeles egész számot tartalmaz, melynek értéke -65.535 és +65.535 között változhat. Ez az érték a milliszekundumokat jelenti, és hogy ne legyen ilyen bonyolult az életünk (v.ö.: minden időt milliszekundumban kellene megadni), a definíciónál megengedi a „részletes” időleírást, mint például T#2d1h12m32s210ms, mely 2 nap, 1 óra, 12 perc 32 másodperc és 210 milliszekundum jelentéssel bír.

• A megadható idő maximuma: T#+24d20h31m23s647ms • A megadható idő minimuma: T# -24d20h31m23s648ms

Persze nem muszáj mindig, minden paramétert kitölteni, érvényes definíció a T#12h23s és a T#123ms is. A „time” típus felépítése:

Page 85: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 85. oldal

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 00. byte 1.byte 2.byte 3.byte A 0.byte 7.bitje az előjelet tartalmazza. Képzése megegyezik a Dint típussal – kettős komple-menter képzéssel állítja elő a negatív számokat.

Time_of_day (TOD) A TOD típus 32 bites, tartalma egy előjel nélküli egész szám, mely a milliszekundumokat tá-rolja. A típus az egy napon belüli pontos idő definiálására alkalmas, így értéke a TOD#00:00:00.000 és TOD#23:59:59.999 értékek között változhat. A milliszekundum meg-adása a definícióban nem kötelező. Érvényes megadás például a TOD#21:12:10 és a TOD#05:14:22.100 is. Felépítése: 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 00. byte 1.byte 2.byte 3.byte

Word A Word (Wort) típus 16 bitet tartalmaz. A bitek számot „nem írnak le”, tartalma pusztán bitek halmaza.

7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0 0. byte 1.byte

Tartalma leírható:

• Binárisan : 11111111_11111111 • Hexadecimálisan: FF_FF • Előjel nélküli byte-okban (255, 255).

A típus lényege, hogy tartalmára nem vonatkozik formai megkötés. Két – egymást követő - Word típusú változó egy Dword -öt ír le.

Definíciók és regiszterek

Globális és instant DB-k

DB jelentése: Datenbaustein (német), Data Block (angol), adatblokk (magyar). A DI jelölés az instant DB-re utal, így lehet a két típust elkülöníteni. A továbbiakban így a globális adatblokkot DB-vel, az instant adatblokkot DI-vel jelöljük. A DB voltaképpen a PC-s adatfájl PLC-s megfelelője. Az adatok összeszervezése a programozó feladata, mindenesetre érdemes az azonos jellegű adatokat egy blokkba összerendezni, például Motorok_DB, Szelepek_DB, Meresek_DB, stb. Ezek a DB-k az egész program területén elérhetők, ezért ezeket globális DB-nek nevezzük.

Page 86: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 86. oldal

Az instant DI-t legegyszerűbben úgy tudjuk létrehozni, ha generálunk egy FB-t, és ennek a fejlécében a STAT pontnál definiálunk néhány változót. Az FB-t meghívjuk (például az OB1-ből). A híváskor hozzá kell rendelni egy DI számot is, valahogy így : CALL FB8, DB8. A szerkesztőprogram rákérdez, hogy létrehozhatja e a DI-t, majd „igen” válaszra menti az instant DI-t. Jellemzően az instant DI-t a DB paraméterező program nyitja meg, a globális DB-t pedig az editor. A globális DB nevéből talán arra lehetne következtetni, hogy akkor az instant DI nem globális, de ez nem igaz, az instant DI adatai is elérhetők globálisan.

kiértékelési lánc (Verknüpfungskette)

A kiértékelési lánc bináris műveletek sora, melyet a kiértékelő művelet zár le. A kiértékelési lánc elemei: U, UN, O, ON, X, XN és ezek zárójeles változatai és a zárójel nyit, zár. A kiértékelő műveletek: S, R, = és azok az ugrások, melyek VKE függőek. Egy NETZERK több kiértékelési láncot is tartalmazhat. Első kiértékelési lánc O M 1.0

UN M 1.1 UN M 1.2 UN M 1.3 O U M 1.4 U M 1.5 UN M 1.6 O M 1.7 = M 5.0

Második kiértékelési lánc U M 1.0 UN M 1.1 O UN M 1.2 U M 1.3 U M 1.4 = M 5.1

Harmadik kiértékelési lánc O M 2.0 O M 2.1 = M 5.2

1. Példaprogram Kiértékelési láncok

Konstansok megadása

Konstansok megadásánál figyelni kell a pontos formátumra, mert amennyiben ezt nem sikerül eltalálnunk, teljesen más számértékeket fogunk találni az elvártak helyett. Formátum Megadási forma Típus

bináris TRUE vagy FALSE 0 vagy 1 BOOL

Előjel nélküli 16 bites egész szám

B#(0,0) -től B#(255,255) - ig WORD

Page 87: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 87. oldal

Formátum Megadási forma Típus

Előjel nélküli 32 bites egész szám

B# (0,0,0,0) -től B#(255, 255,255,255) -ig DWORD

Előjeles 16 bites egész szám

-32768 -tól 32767 –ig INT

Előjeles 32 bites egész szám

-2.147.483.648 -tól +2.147.483.647 –ig DINT

B#16#0 -től B#16#FF -ig BYTE

B#16#0 -től B#16#FFFF -ig WORD

Hexadecimális megadás

B#16#0 -től B#16#FFFFFFFF –ig DWORD

2#0 -től 2#1111111111111111 -ig WORD

Dual megadás 2#0 -től 2#11111111111111111111111111111111 -ig –ig

DWORD

IEEE típusú törtszám

+1.175495e-38 (pozitív minimum) +3.402823e+38 (pozitív maximum) -1.175495e -38 (negatív minimum) -3.402823e +38 (negatív maximum)

REAL

BCD megadás C#0 -tól C#999 –ig WORD (BCD formában)

S5TIME S5T#0ms -tól S5T#2h46m30s –ig S5TIME

T# -24d20h31m23s647ms -tól T#+24d20h31m23s647ms –ig TIME

CPU idő konstans TIME T# -65535ms -tól

T#+65535ms –ig TIME

CPU idő konstans DATE

D#1990-01-01 -tól D#2168-12-31 –ig DATE

CPU idő konstans TIME_OF_DAY

TOD#00:00:00.000 -tól TOD#23:59:59.999 –ig TIME_OF_DAY

CPU idő konstans DATE_AND_TIME DT#89-12-31-23:59:59.999 DATE_AND_TIME

karakter „a” (ASCII kód) CHAR

karakterlánc 2-től 254 karakterig a vezérlőkarakterekkel együtt Vezérlőkarakterek:

STRING

Page 88: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 88. oldal

Formátum Megadási forma Típus

$L : soremelés $P : oldaltörés $R : fej vissza $T : tabulátor

P#x.y (megadott tartományon belül) POINTER

P#[tartomány]x.y POINTER Pointer konstansok

P#[tartomány]x.y TYPE z (típusmegjelöléssel) ANY

22. Táblázat Konstans típusok Néhány példa a konstansok alkalmazására: Példa a konstans alkalmazására (több sor esetén azonos az eredmény) Leírás

L + 12 Egy előjeles egész szám (16 bit) betöltése az AKKU1-L-L-be.

L 1.2345e-2 L 0.012345

Egy IEEE formátumú törtszám (32 bit) betöltése az AKKU1-be

L 2#1010101010101010 Bináris szó konstans (16 bit) betöltése az AKKU1-L-be

L B#(12,22) Két előjel nélküli byte (16 bit) betöltés az AKKU1-L-be

L B#(12,22,32,42) Négy előjel nélküli byte (32 bit) betöltés az AKKU1-be

L B#16#FF 8 bites hexadecimális konstans betöltése az AKKU1-L-L-be

L W#16#FFFF 16 bites hexadecimális konstans betöltése az AKKU1-L-be

L DW#16#FFFFFFFF 32 bites hexadecimális konstans betöltése az AKKU1-be

L S5T#20.4 S 20,4 sec betöltése S5T formátumban az AKKU1-L-be

L C#123 123 betöltése BCD formátumban az AKKU1-L-be

OW W#16#AAAA VAGY szóművelet hexadecimális „AAAA”-val. Az érték az AKKU1-L-be kerül.

23. Táblázat Konstansok alkalmazása

Státusz szó, VKE, STA, STANDARD

A VKE (Verknüpfungeredmény) a művelet eredményét tartalmazza, a STA (status) az adott sor műveleti eredményét. A fenti esetben, a második példánál jól látható, hogy a második sorban (M4.1) értéke „0”, ezért a STA is „0”, viszont az ÉS művelet okán a „VKE” sor is ebben a sorban szakad meg, a továbbiakban ezért a „VKE” „0” marad. (VAGY láncoknál

Page 89: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 89. oldal

persze ez kissé másként működik). A VKE, mint a státusz szó 1. bitje, a státusz szónál is tárgyalásra kerül.

22. ábra Példaprogram állapotok

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

23. ábra STANDARD kijelzés módja

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

Státusz szó

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

A jelzések jelentése:

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

Page 90: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 90. oldal

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

/ER Kiértékelő (0.) bit Erstabfragebit Az ER bit állapota irányítja egy kiértékelési lánc lekérdezését. Az ER bit a 0. a státusz szóban (balról a legutolsó). Minden utasítás előtt a program lekérdezi az ER állapotát. Ha az ER „0”, akkor új kiértékelési lánc indul, a művelet eredményét csak beírja a program a „VKE”-be. Ha az ER „1”, akkor a kiértékelési lánc tart, a VKE-t a művelet előtt beolvassa, majd a művelet kiértékelése után visszamásolja a program. Az állítási műveletek (S, R, =) törlik az ER tartalmát, csakúgy, mint a VKE függő ugrásműveletek.

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

STA (2.) bit Statusbit

Page 91: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 91. oldal

A STA bit egy megcímzett bit értékét tárolja. A STA bit a 2. a státusz szóban (balról a harmadik). Ha valaki a német definíciót értelmezhetően le tudja fordítani, annak gratula: Der Status einer Verknüpfungsoperation, die Lesezugriff auf den Speicher hat (U, UN, O, ON, X oder XN), ist immer gleich dem Wert des adressierten Bits. Der Status einer Verknüpfungsoperation, die Schreibzugriff auf den Speicher hat (R, S, oder =), ist gleich dem Wert des Bits, in das die Operation schreibt. Falls nicht geschrieben wird, ist der Status gleich dem Wert des adressierten Bits. Das Statusbit hat keine Bedeutung für Verknüpfungsoperationen, die nicht auf den Speicher zugreifen. Diese Operationen setzen das Statusbit auf "1". Das Statusbit wird von Operationen nicht abgefragt. Es wird lediglich beim Anzeigen des Programmstatus von Programmvariablen ausgewertet. A státuszbit gyakorlatilag különbségzi a műveletek (VKE-k) eredményeit. Ez „1”, amennyiben a részművelet eredménye „1”. Ha egy VKE „0” is besikerül, akkor a kiértékelési lánc megszakad, a STA eredménye a továbbiakban „0”. VAGY műveletek esetén a lánc nem folytonosan, hanem a VAGY sorok különbségzésével értendő (lásd OR bit). Amennyiben olyan művelet van soron, mely nem ad bináris eredményt, a STA állapota „1”.

OR (3.) bit Oder bit Ez a bit akkor szükséges, ha a VAGY műveletet ÉS műveletek előzik meg. Az OR bit a 3. a státusz szóban (balról a negyedik). Feladata a feltétel teljesülésének tárolása, és átvitele a többi VAGY művelet „felett”. A lenti példákon szemléltetem a bit működését. Az 1. változat azt az állapotot szemlélteti, amikor az első VAGY feltétel nem teljesül, csak a második. Jól látható, hogy a blokk után található VAGY művelettől a kiértékelésig az OR bit értéke „1”-re vált. A 2. változat esetén már az első VAGY blokk eredménye is „1”, így az OR bit ettől a ponttól „1”.

25. ábra OR bit állapota (1.változat)

Page 92: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 92. oldal

26. ábra OR bit állapota (2. változat)

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

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

27. ábra OS, OV bitek állapota

OV (5.) bit Überlauf

Page 93: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 93. oldal

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

28. ábra OS, OV bitek állapota

A1, A0 (6., 7.) bit Anzeigenbits Az ábrázolóbitek a műveletek eredményeit tartalmazzák. Az A1 és A0 eredményeit az ugrásműveletek olvassák. Az eredmények képzését és jelentését a lenti táblázat tartalmazza. A1 A0 Jelentése

Aritmetikai művelet túlcsordulás nélkül

0 0 Eredmény = 0

0 1 Eredmény < 0

1 0 Eredmény > 0

Aritmetikai művelet (egész szám aritmetika) túlcsordulással

0 0 Negatív irányú túlcsordulás +I, +D műveleteknél

0 1 Negatív irányú túlcsordulás *I, *D műveleteknél Pozitív irányú túlcsordulás +I, -I, +D, -D, NEGI, NEGD műveleteknél

1 0 Negatív irányú túlcsordulás +I, -I, +D, -D műveleteknél Pozitív irányú túlcsordulás *I, /I, *D, /D műveleteknél

1 1 0-val való osztás /I, /D, MOD műveleteknél

Aritmetikai művelet (törtszám aritmetika) túlcsordulással

0 0 Fokozatos értékvesztés

0 1 Túlcsordulás negatív irányban

Page 94: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 94. oldal

1 0 Túlcsordulás pozitív irányban

1 1 Érvénytelen törtszám

Léptetés/forgatás művelet eredménye

0 0 Az AKKU-ból kikerülő bit = 0

1 0 Az AKKU-ból kikerülő bit = 1

Összehasonlítás művelet eredménye

0 0 AKKU2 = AKKU1

0 1 AKKU2 < AKKU1

1 0 AKKU2 > AKKU1

1 1 Érvénytelen (csak egész szám összehasonlítás esetén)

Szavak összevetése művelet eredménye

0 0 Eredmény = 0

1 0 Eredmény <> 0 25. Táblázat A1, A0 státuszbitek jelentése

BIE (8.) bit Binäreredménybit Az BIE bit az AWL bináris eredményt tárolja és átviszi a további – nem AWL - műveletekbe. A BIE bit a 8. a státusz szóban. Ha a műveleteket AWL-ben kezdtük írni, és KOP/FUP programozásra akarunk áttérni, a művelet addigi eredményét a BIE biten keresztül tudjuk átvinni, úgy, hogy a VKE-t a BIE-be mentjük. A BIE-t a SAVE, SPBB és SPBNB műveletekkel kezelhetjük. Ha a program egy SFB-t vagy egy SFC-t hajt végre, a végrehajtás eredményességét a BIE bitben közli. Ha a BIE értéke a végrehajtást követően „1”, akkor az eljárás hiba nélkül lefutott, ha a „BIE” értéke „0”, akkor a futás során hiba lépett fel.

Zárójel verem (Klammerstack)

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

Page 95: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 95. oldal

29. ábra Zárójelezési probléma

Utasításkészlet Ebben a fejezetben összefoglalom az AWL utasításokat. Az összes utasítást összefoglaló abc rendbe szedett táblázatot a Teljes Simatic AWL utasításkészlet pont alatt találja meg a mellékletben. A példaprogramokat a Simatic program on-line státuszából emeltem ki, így az ott megjelenő állapotjelöléseket ismertetem itt is. Egyszerűbb esetben ez így néz ki:

30. ábra Példaprogram állapotok

Page 96: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 96. oldal

Bit logikai műveletek

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

U 0 1

0 0 0

1 0 1 26. Táblázat A művelet igazságtáblázata

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

31. ábra Példaprogram állapotok

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

UN 0 1

0 0 0

1 1 0 28. Táblázat A művelet igazságtáblázata

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

BIE A1 A0 OV OS OR STA VKE /ER

Page 97: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 97. oldal

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

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

32. ábra Példaprogram állapotok

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

UN 0 1

0 0 1

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

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

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - - - - - 0 x x 1

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

KOP AWL

Az első VAGY ág teljesül (az első vagy ágat nem kell „O” utasítással kezdeni).

Page 98: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 98. oldal

A második VAGY ág teljesül.

A harmadik vagy ág teljesül

Az utasítás eredménye 0. 2. Példaprogram OR állapotok

ON (vagy nem) A VAGY NEM művelet a megcímzett bit „0” állapotától függően egy logikai műveletben állítja a VKE értéket. Az ÉS NEM művelettel a státusz szó állapotát is lekérdezhetjük, az alábbi operandusokat: ==0, <>0, >0, <0, >=0, <=0, OV, OS, UO, BIE.

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - - - - - 0 x x 1

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

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

Page 99: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 99. oldal

33. ábra Példaprogram állapotok

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

UN 0 1

0 0 1

1 1 0 33. Táblázat A művelet igazságtáblázata

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

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - - - - - 0 x x 1

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

34. ábra Példaprogram állapotok

XN (kizáró vagy nem) A kizáró vagy nem művelet a megcímzett bit „0” állapotától függően egy logikai műveletben állítja a VKE értéket. Az ÉS NEM művelettel a státusz szó állapotát is lekérdezhetjük, az alábbi operandusokat:

Page 100: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 100. oldal

==0, <>0, >0, <0, >=0, <=0, OV, OS, UO, BIE.

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - - - - - 0 x x 1

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

35. ábra Példaprogram állapotok

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

36. ábra Példaprogram állapotok

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

Page 101: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 101. oldal

BIE A1 A0 OV OS OR STA VKE /ER

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

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

37. ábra Példaprogram állapotok

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

38. ábra Példaprogram állapotok

NOT (VKE negálás) A NOT negálja a VKE értékét.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

Page 102: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 102. oldal

39. ábra Példaprogram állapotok

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

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - - - - - 0 1 1 0

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

40. ábra Példaprogram állapotok

CLR (VKE törlés) A CLR a VKE-t „0”-ra állítja.

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - - - - - 0 0 0 0

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

41. ábra Példaprogram állapotok

Page 103: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 103. oldal

Összehasonlítási műveletek

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

művelet VKE, AKKU2 > AKKU1

VKE, AKKU2 = AKKU1

VKE, AKKU2 < AKKU1

==I 0 1 0

<>I 1 0 1

>I 1 0 0

<I 0 0 1

>=I 1 1 0

<=I 0 1 1 42. Táblázat A VKE értéke

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - x x 0 - 0 x x 1

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

42. ábra Példaprogram állapotok

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

művelet VKE, AKKU2 > AKKU1

VKE, AKKU2 = AKKU1

VKE, AKKU2 < AKKU1

==D 0 1 0

Page 104: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 104. oldal

<>D 1 0 1

>D 1 0 0

<D 0 0 1

>=D 1 1 0

<=D 0 1 1 44. Táblázat A VKE értéke

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - x x 0 - 0 x x 1

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

43. ábra Példaprogram állapotok

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

művelet VKE, AKKU2 > AKKU1

VKE, AKKU2 = AKKU1

VKE, AKKU2 < AKKU1

==R 0 1 0

<>R 1 0 1

>R 1 0 0

<R 0 0 1

>=R 1 1 0

<=R 0 1 1 46. Táblázat A VKE értéke

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - x x x x 0 x x 1

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

Page 105: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 105. oldal

44. ábra Példaprogram állapotok

Page 106: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 106. oldal

Transzformációk

BTI (BCD konvertálás egész szám formátumra) A BTI egy előjeles, 3 számjegyű BCD formátumú számot alakít át integer formátumúra. Az eredmény az AKKU1-H-ban tárolódik, az AKKU1-L és AKKU2 értéke a művelet során nem változik. Az átalakítandó értéket az AKKU1-L-be tárolja az utasítás, „-999”-től „+999” értékig. A 0.bit-től a 11.bit-ig az érték tárolása történik, az 15.bit az előjel (0: pozitív, 1: negatív). A 12-bit-től a 14.bit-ig a tárolónak nincs része a műveletben. Amennyiben érvénytelen érték érkezik konvertálásra, BCDF hiba lép fel. Amennyiben a hibát nem kezelik le az OB121-ben, a PLC stop-ba megy:

45. ábra BCD transzformáció hiba a diagnózis ablakban

BIE A1 A0 OV OS OR STA VKE /ER

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

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

46. ábra Példaprogram

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

Page 107: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 107. oldal

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

47. ábra BCD transzformáció hiba a diagnózis ablakban

BIE A1 A0 OV OS OR STA VKE /ER

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

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

48. ábra Példaprogram

BTD (BCD konvertálás 32 bites egész szám formátumra) A BTD egy előjeles, 7 számjegyű BCD formátumú számot alakít át integer formátumúra. Az eredmény az AKKU1-ben tárolódik, az AKKU2 értéke a művelet során nem változik. Az átalakítandó értéket az AKKU1-L-be tárolja az utasítás, „-9999999”-től „+9999999” értékig. A 0.bit-től a 27.bit-ig az érték tárolása történik, az 31.bit az előjel (0: pozitív, 1: negatív). A 28.-bit-től a 30.bit-ig a tárolónak nincs része a műveletben. Amennyiben érvénytelen érték érkezik konvertálásra, BCDF hiba lép fel. Amennyiben a hibát nem kezelik le az OB121-ben, a PLC stop-ba megy:

49. ábra BCD transzformáció hiba a diagnózis ablakban

BIE A1 A0 OV OS OR STA VKE /ER

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

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

Page 108: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 108. oldal

50. ábra Példaprogram

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

51. ábra BCD transzformáció hiba a diagnózis ablakban

BIE A1 A0 OV OS OR STA VKE /ER

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

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

52. ábra Példaprogram

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

Page 109: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 109. oldal

53. ábra Példaprogram

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

54. ábra Példaprogram

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

55. ábra Példaprogram

INVD (egyes inklementer képzés 32 bites egész számon) A eljárás egy 16 bites egész számot beolvassa az AKKU1-ből és bitenként felcseréli az értékeket. Az eredményt az AKKU1-be tárolja.

BIE A1 A0 OV OS OR STA VKE /ER

Page 110: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 110. oldal

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

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

56. ábra Példaprogram

NEGI (16 bites egész szám negálása) A eljárás egy 16 bites egész számot (INTEGER) beolvassa az AKKU1-L-ből és negálja. Az eredményt az AKKU1-L-be tárolja. A kettes komplementer képzésről bővebben itt olvashat. Az A1, A0, OS és OV státuszbiteket állítja az eljárás.

BIE A1 A0 OV OS OR STA VKE /ER

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

56. Táblázat Státusz szó változásai Státuszbitek képzése A1 A0 OV OS

Eredmény = 0 0 0 0 -

-32 768 <= Eredmény <= -1 0 1 0 -

32 767 >= Eredmény >= 1 1 0 0 -

Eredmény = 32 768 0 1 1 1 57. Táblázat Státuszbitek képzése

57. ábra Példaprogram

NEGD (32 bites egész szám negálása) A eljárás egy 32 bites egész számot beolvassa (DINT) az AKKU1-ből és negálja. Az eredményt az AKKU1-be tárolja. A kettes komplementer képzésről bővebben itt olvashat. Az A1, A0, OS és OV státuszbiteket állítja az eljárás.

BIE A1 A0 OV OS OR STA VKE /ER

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

Page 111: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 111. oldal

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

Státuszbitek képzése A1 A0 OV OS

Eredmény = 0 0 0 0 -

-2 147 483 648 <= Eredmény <= -1 0 1 0 -

2 147 483 647 >= Eredmény >= 1 1 0 0 -

Eredmény = 2 147 483 648 0 1 1 1 59. Táblázat Státuszbitek képzése

58. ábra Példaprogram

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

59. ábra Példaprogram

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

Page 112: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 112. oldal

60. ábra TAW

61. ábra Példaprogram

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

62. ábra TAD

63. ábra Példaprogram

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

Page 113: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 113. oldal

BIE A1 A0 OV OS OR STA VKE /ER

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

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

64. ábra Példaprogram

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

65. ábra Példaprogram

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

Page 114: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 114. oldal

66. ábra Példaprogram

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

67. ábra Példaprogram

Page 115: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 115. oldal

Számláló (Zähler) műveletek

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

FR Freigabe Zähler Számláló feloldása

L Lade aktuellen Zählwert als Ganzzahl in AKKU 1

Pillanatnyi számlálóérték betöltése AKKU1-be, egész szám formátumban

LC Lade aktuellen Zählwert als BCD in AKKU 1

Pillanatnyi számlálóérték betöltése AKKU1-be, BCD formátumban

R Rücksetze Zähler Számláló nullázása

S Setze Zählerstartwert Számláló beállítása

ZV Zählen vorwärts Számláló előre

ZR Zählen rückwärts Számláló hátra 67. Táblázat Számláló műveletek

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

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - - - - - 0 - - 0

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

L (számlálóérték betöltése egész számként) Formátuma: L <számláló> A számláló értékét betölti az AKKU1-L-be egész számként, időalap nélkül, miután lementette az AKKU1 és AKKU2 értékét. A számláló maximális értéke „999” lehet, ennek ábrázolására 10 bit elegendő, így az AKKU1-L felső 6 bitjét nem tölti ki a művelet. Az AKKU1-L-ből akkor is be kell tölteni a számláló értéket, ha a számláló nem kerül elindításra (VKE = 0).

BIE A1 A0 OV OS OR STA VKE /ER

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

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

Page 116: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 116. oldal

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

R (számláló nullázása) Formátuma: R <számláló> „0” értéket tölt be a számlálóba, ha a VKE = 1.

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - - - - - 0 - - 0

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

S (számláló beállítása) Formátuma: S <számláló> Betölti az AKKU1-L tartalmát a számlálóba, ha a VKE „0”-ról „1”-re változik. A számláló értéket „0” és „999” között kell megadni, BCD formátumban.

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - - - - - 0 - - 0

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

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

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - - - - - 0 - - 0

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

Page 117: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 117. oldal

68. ábra ZV példaprogram

L MW 10 L 1 +I T MW 10 L C#0 // Számlálóba betöltendő érték U M 11.7 // A számláló inicializálását végző bit S Z 12 // a 12. számláló U M 11.1 // Számlálást vezérlő bit ZV Z 12 // Minden VKE 0->1 után számol egyet U Z 12 // Ha a számlálás ismét a "0" értéken áll = A 11.0 // a kimenet "0"-ra vált, egyébként "1" L Z 12

3. Példaprogram ZV

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

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - - - - - 0 - - 0

74. Táblázat Státusz szó változásai L MW 10 L 1 +I T MW 10 L C#55 // Számlálóba betöltendő érték U M 11.7 // A számláló inicializálását végző bit S Z 12 // a 12. számláló U M 11.1 // Visszaszámlálást vezérlő bit ZR Z 12 // Minden VKE 0->1 után számol egyet U Z 12 // Ha a számlálás elérte a "0" értéket = A 11.0 // a kimenet "0"-ra vált, egyébként "1" L Z 12

4. Példaprogram ZR

Page 118: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 118. oldal

Adatblokk műveletek

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

TDB Tausche Global-DB und Instanz-DB

Globális DB és instant DB cseréje

L DBLG Lade Länge Global-DB in AKKU 1 Globális DB hosszának betöltése az AKKU1-be

L DBNO Lade Nummer Global-DB in AKKU 1

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

L DILG Lade Länge Instanz-DB in AKKU 1

Instant DB hosszának betöltése az AKKU1-be

L DINO Lade Nummer Instanz-DB in AKKU 1

Instant DB számának betöltése az AKKU1-be

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

AUF (Adatblokk nyitása) Formátuma: AUF <Adatblokk>

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

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

AUF DB 10 // 10. globális DB nyitása L DBW 12 // 12.word a DB-ből T MW 10 // memóriába másol AUF DI 11 // 11. instant DI nyitása L DIB 12 // 12 byte olvasása a DI-ből T DBB 24 // átmásolása a DB-be

5. Példaprogram AUF

BIE A1 A0 OV OS OR STA VKE /ER

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

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

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

Amennyiben a meghívni kívánt DB és az OB121 sincs letöltve, akkor a PLC „stop”-ba megy az alábbi hibával „DB nicht geladen”. Előfordulhat, hogy az OB121 lekezeli a hibát, de az új

Page 119: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 119. oldal

funkciónk akkor is furcsa dolgokat művel. Ilyenkor érdemes a ránézni a diagnózisra, mert ha a lenti hibaüzenetet találja ott, biztos lehet a hiba okában: elfelejtette letölteni a DB-t.

69. ábra DB nincs letöltve hiba

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L DBLG (Globális DB hosszának betöltése az AKKU1-be) Formátuma: L DBLG A nyitott globális DB hosszát betölti az AKKU1-be, miután az AKKU1 és AKKU2 tartalmát lementi.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

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

6. Példaprogram L DBLG

Page 120: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 120. oldal

70. ábra Példaprogram futás közben

L DBNO (Globális DB számának betöltése az AKKU1-be) Formátuma: L DBNO A nyitott globális DB számát betölti az AKKU1-be, miután az AKKU1 és AKKU2 tartalmát lementi.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

71. ábra Példaprogram

L DILG (Instant DB hosszának betöltése az AKKU1-be) Formátuma: L DILG A nyitott instant DB hosszát betölti az AKKU1-be, miután az AKKU1 és AKKU2 tartalmát lementi.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L DINO (Instant DB számának betöltése az AKKU1-be) Formátuma: L DINO A nyitott instant DB számát betölti az AKKU1-be, miután az AKKU1 és AKKU2 tartalmát lementi.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

Page 121: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 121. oldal

Ugrás műveletek

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

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

U M 11.1 SPBN m001 // itt számolok, és ezt sokszorosítom m001: NOP 0 U M 11.2 SPBN m001 // itt számolok, és ezt sokszorosítom m002: NOP 0 U M 11.3 SPBN m003 // itt számolok, és ezt sokszorosítom m003: NOP 0

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

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

SPA Springe absolut Abszolút ugrás

SPL Sprungleiste Ugráslista

SPB Springe, wenn VKE = 1 Ugrás, ha a VKE = 1

SPBN Springe, wenn VKE = 0 Ugrás, ha a VKE = 0

SPBB Springe, wenn VKE = 1 und rette Ugrás, ha a VKE = 1, és menti a VKE-t a

Page 122: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 122. oldal

VKE ins BIE BIE-be

SPBNB Springe, wenn VKE = 0 und rette VKE ins BIE

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

SPBI Springe, wenn BIE = 1 Ugrás, ha a BIE = 1

SPBIN Springe, wenn BIE = 0 Ugrás, ha a BIE = 0

SPO Springe, wenn OV = 1 Ugrás, ha az OV = 1

SPS Springe, wenn OS = 1 Ugrás, ha az OS = 1

SPZ Springe, wenn Eredmény = 0 Ugrás, ha az eredmény = 0

SPN Springe, wenn Eredmény <> 0 Ugrás, ha az eredmény <> 0

SPP Springe, wenn Eredmény > 0 Ugrás, ha az eredmény > 0

SPM Springe, wenn Eredmény < 0 Ugrás, ha az eredmény < 0

SPPZ Springe, wenn Eredmény >= 0 Ugrás, ha az eredmény >= 0

SPMZ Springe, wenn Eredmény <= 0 Ugrás, ha az eredmény <= 0

SPU Springe, wenn Eredmény ungültig Ugrás, ha érvénytelen az eredmény 82. Táblázat Ugrás műveletek összefoglalása

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

SPA (Abszolút ugrás) Formátuma: SPA <címke> Feltétel nélkül megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

U M 10.0 // ugrási feltételek U M 11.0 SPB M011 // ha a feltételek igazak, ugrik SET // egyébként végrehajtja ezt a részt = M 12.0 SPA M012 // majd feltétel nélkül ugrik M011: NOP 0 // feltételes ugrás címke CLR // feltételek teljesülése esetén = M 13.0 // ez a rész végrehajtásra kerül = M 14.0

Page 123: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 123. oldal

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

8. Példaprogram SPA

SPL (Ugráslista) Formátuma: SPL <címke> Lista szerinti ugrás. A lista elemeinek maximális száma 255 (címke). A műveletet feltétlenül az SPL-lel kell kezdeni. Minden ugrási címkét SPA utasítással kell definiálni, melyek közül az a számú kerül meghívásra, mely érték az AKKU1-L-L-ben van (0 – 255). Ha az AKKU1-L-L nagyobb számot tartalmaz, mint amennyi SPA felsorolásra került, akkor az ugrás az SPL-nél definiált címkére történik. Az ugrás minden célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkéknek az adott eljáráson belül kell lennie, és mindegyik csak egyszer szerepelhet. Több SPA-ban és SPL-ben is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L MB 20 // ugráspozíció megadása SPL mas // minden más esetben ide ugrik SPA ide0 // MB20 = 0 esetén ide ugrik SPA ide1 // MB20 = 1 esetén ide ugrik SPA ide2 // MB20 = 2 esetén ide ugrik SPA ide3 // MB20 = 3 esetén ide ugrik mas: L 100 // MB20 > 3 esetén 100-at tölt az AKKU1-be SPA tov ide0: L 0 // MB20 = 0 esetén 0-át tölt az AKKU1-be SPA tov ide1: L 1 // MB20 = 1 esetén 1-et tölt az AKKU1-be SPA tov ide2: L 2 // MB20 = 2 esetén 2-t tölt az AKKU1-be SPA tov ide3: L 3 // MB20 = 3 esetén 3-at tölt az AKKU1-be SPA tov tov: T MW 30 // AKKU1 mentése MW30-ba

9. Példaprogram SPL

SPB (Ugrás, ha a VKE = 1) Formátuma: SPB <címke> A VKE = 1 állapot estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - - - - - 0 1 1 0

Page 124: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 124. oldal

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

U M 10.0 // ugrási feltételek U M 11.0 SPB M011 // ha a feltételek igazak, ugrik SET // egyébként végrehajtja ezt a részt = M 12.0 SPA M012 // majd feltétel nélkül ugrik M011: NOP 0 // feltételes ugrás címke CLR // feltételek teljesülése esetén = M 13.0 // ez a rész végrehajtásra kerül = M 14.0 M012: NOP 0 // feltétel nélküli ugrás címke

10. Példaprogram SPB

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

SPBN (Ugrás, ha a VKE = 0) Formátuma: SPBN <címke> A VKE = 0 állapot estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - - - - - 0 1 1 0

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

U M 10.0 // ugrási feltételek U M 11.0 SPBN M011 // ha a feltételek nem igazak, ugrik SET // egyébként végrehajtja ezt a részt = M 12.0 SPA M012 // majd feltétel nélkül ugrik M011: NOP 0 // feltételes ugrás címke CLR // feltételek teljesülése esetén = M 13.0 // ez a rész végrehajtásra kerül = M 14.0 M012: NOP 0 // feltétel nélküli ugrás címke

11. Példaprogram SPBN

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

SPBB (Ugrás, ha a VKE = 1, és menti a VKE-t a BIE-be) Formátuma: SPBB <címke>

Page 125: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 125. oldal

A VKE = 1 állapot estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást, a VKE állapotot átmásolja a BIE bitbe. Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIE A1 A0 OV OS OR STA VKE /ER

Írja: x - - - - 0 1 1 0

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

U M 10.0 // ugrási feltételek U M 11.0 SPBB M011 // ha a feltételek igazak, ugrik SET // egyébként végrehajtja ezt a részt = M 12.0 SPA M012 // majd feltétel nélkül ugrik M011: NOP 0 // feltételes ugrás címke CLR // feltételek teljesülése esetén = M 13.0 // ez a rész végrehajtásra kerül = M 14.0 M012: NOP 0 // feltétel nélküli ugrás címke

12. Példaprogram SPBB

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

SPBNB (Ugrás, ha a VKE = 0, és menti a VKE-t a BIE-be) Formátuma: SPBNB <címke> A VKE = 0 állapot estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást, a VKE állapotot átmásolja a BIE bitbe. Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIE A1 A0 OV OS OR STA VKE /ER

Írja: x - - - - 0 1 1 0

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

U M 10.0 // ugrási feltételek U M 11.0 SPBN M011 // ha a feltételek nem igazak, ugrik SET // egyébként végrehajtja ezt a részt = M 12.0 SPA M012 // majd feltétel nélkül ugrik

Page 126: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 126. oldal

M011: NOP 0 // feltételes ugrás címke CLR // feltételek teljesülése esetén = M 13.0 // ez a rész végrehajtásra kerül = M 14.0 M012: NOP 0 // feltétel nélküli ugrás címke

13. Példaprogram SPBNB

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

SPBI (Ugrás, ha a BIE = 1) Formátuma: SPBI <címke> A BIE = 1 állapot estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - - - - - 0 1 - 0

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

SPBIN (Ugrás, ha a BIE = 0) Formátuma: SPBIN <címke> A BIE = 0 állapot estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - - - - - 0 1 - 0

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

SPO (Ugrás, ha az OV = 1) Formátuma: SPO <címke> A OV = 1 állapot estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az OV státusz bit akkor vált egyre, ha a számolási műveletben túlcsordulás történik. Az SPO csak közvetlenül a túlcsordulást produkáló művelet után használható, a következő – nem túlcsordulásos – művelet az OV bitet „0”-ra állítja. Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

Page 127: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 127. oldal

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 23333 // túlcsordulás képzése L 234 *I // túlcsordulás OV=1 T MW 22 // L 12 // kikommentelve, mert itt // L 14 // nincs túlcsordulás, az // *I // OV visszaíródna 0-ra // T MW 24 SPO m012 // ha OV=1, ugrás BEA // eljárás vége, ha OV=0 m012: NOP 0 // túlcsordulás kezelése SET = M 122.2 // pl. hibaüzenet generálása

14. Példaprogram SPO

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

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

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

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

Page 128: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 128. oldal

L 23333 // túlcsordulás képzése L 234 *I // túlcsordulás OV=1 T MW 22 L 12 // nincs túlcsordulás, az L 14 // OV visszaíródik 0-ra *I // de az OS=1 továbbra is T MW 24 SPS m012 // ha OS=1, ugrás BEA // eljárás vége, ha OV=0 m012: NOP 0 // túlcsordulás kezelése SET = M 122.2 // pl. hibaüzenet generálása

15. Példaprogram SPS

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

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 123 // viszonylag egyszerű összehasonlítás L 123 // melynek várható eredménye egyenlőség SPZ ide // lesz. SPA tov // ha nem egyenlő, tov ide: NOP 0 SET = M 123.0 // ha egyenlő, állítja a bitet tov: NOP 0 // tov

16. Példaprogram SPZ

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

SPN (Ugrás, ha az eredmény <> 0) Formátuma: SPN <címke>

Page 129: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 129. oldal

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 123 // viszonylag egyszerű összehasonlítás L 122 // melynek várható eredménye <> SPN ide // lesz. SPA tov // ha egyenlő, tov ide: NOP 0 SET = M 123.0 // ha nem egyenlő, állítja a bitet tov: NOP 0 // tov

17. Példaprogram SPN

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

SPP (Ugrás, ha az eredmény > 0) Formátuma: SPP <címke> Az A1 = 1 és A0 = 0 állapotok estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az A1 = 1 és A0 =0 abban az esetben következik be, ha az AKKU1 < AKKU2 (lásd 13. Táblázat A1, A0 státuszbitek jelentése). Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

Page 130: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 130. oldal

L 124 // AKKU2 L 120 // AKKU1 ==I SPP ide // ha AKKU2 > AKKU1, ugrás SPA tov //egyébként, tov ide: NOP 0 SET = M 123.0 // ha a feltétel igaz, állítja a bitet tov: NOP 0 // tov

18. Példaprogram SPP

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

SPM (Ugrás, ha az eredmény < 0) Formátuma: SPM <címke> Az A1 = 0 és A0 = 1 állapotok estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. Az A1 = 0 és A0 =1 abban az esetben következik be, ha az AKKU1 > AKKU2 (lásd 13. Táblázat A1, A0 státuszbitek jelentése). Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 100 // AKKU2 L 120 // AKKU1 ==I SPM ide // ha AKKU2 < AKKU1, ugrás SPA tov //egyébként, tov ide: NOP 0 SET = M 123.0 // ha a feltétel igaz, állítja a bitet tov: NOP 0 // tov

19. Példaprogram SPM

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

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

Page 131: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 131. oldal

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 124 // AKKU2 L 120 // AKKU1 ==I SPPZ ide // ha AKKU2 >= AKKU1, ugrás SPA tov //egyébként, tov ide: NOP 0 SET = M 123.0 // ha a feltétel igaz, állítja a bitet tov: NOP 0 // tov

20. Példaprogram SPPZ

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

SPMZ (Ugrás, ha az eredmény < 0) Formátuma: SPMZ <címke> Az A1 = 0/A0 = 0 vagy A1 = 0/A0 = 1 állapotok estén megszakítja a program futását, és a címke által megjelölt sorra viszi át a végrehajtást. A fenti állapot abban az esetben következik be, ha az AKKU1 >= AKKU2 (lásd 13. Táblázat A1, A0 státuszbitek jelentése). Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 100 // AKKU2 L 120 // AKKU1 ==I SPM ide // ha AKKU2 <= AKKU1, ugrás SPA tov //egyébként, tov ide: NOP 0 SET = M 123.0 // ha a feltétel igaz, állítja a bitet tov: NOP 0 // tov

21. Példaprogram SPMZ

Page 132: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 132. oldal

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

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 100 // AKKU2 L 0 // AKKU1 /I SPU ide // érvénytelen művelet esetén ugrás SPA tov //egyébként, tov ide: NOP 0 SET = M 123.0 // a nullával való osztás érvénytelen tov: NOP 0 // tov

22. Példaprogram SPU

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

LOOP (hurok) Formátuma: LOOP <címke> A LOOP művelet ugrik, és csökkenti az AKKU1-L értékét, ha az AKKU1-L <> 0. A hurokszámláló egy előjel nélküli (16 bites) egész szám változó, melynek értéke betöltésre kerül az AKKU1-be. A LOOP mindaddig végrehajtásra kerül, amíg az AKKU1-L <> 0. Az ugrás célsorát egy négy karakteres címke jelöli. Az ugrás történhet a programkódban előre és hátra is, de a címkének az adott eljáráson belül kell lennie, és csak egyszer szerepelhet. Több ugrásban is szerepelhet viszont az adott címke. Az ugrás maximum 32768 soron keresztül történhet - előre és hátra is.

A LOOP-olással azért óvatosan kell bánni. Minden PLC-nek van egy ciklus felügyeleti ideje (Baugruppezustand Zykluszeit Zyklusüberwachungszeit). Amennyiben a program futásideje ezt az időt meghaladja, a PLC „stop”-ba megy. Ezt az időt nem lehet felülbírálni, OB-vel kezelni, a „stop” elkerülhetetlen. Gyakran előfordul, hogy egymás után egy eljárást copy – paste technikával sokszorosítunk. Amennyiben egy

Page 133: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 133. oldal

ugrásban a címkét nem sikerül átírni a sajátjára, hanem a korábbi címkén marad, a PLC „stop”-ba fog szaladni, ami például egy erőműi rendszer esetén túlmutat a kínos programozói elírás fogalmán.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 7 T MW 8 // Faktoriális alap (7) L 0 T MW 10 // Lépegelő (0) L 1 T MW 12 // Szorozgató (1) L MW 8 // Alap betöltése a számlálóba itt: T MW 14 // Ennek értékét csökkenti ciklusonként a LOOP L MW 10 // Lépegetés L 1 +I T MW 10 // Lépegető L MW 12 // szorozva a szorozgatóval *I T MW 12 // eredmény vissza a szorozgatóba L MW 14 // számláló csökkentése LOOP itt // LOOP-olásonként L MW 10 // eredmény: faktoriális alap (7) L MW 12 // eredmény: faktoriális (7!) (5040) // ha ez utóbbi két változó nem "látszik" // a státuszban, akkor új Netzwerk-be kell másolni ezeket.

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

Page 134: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 134. oldal

Egész szám műveletek

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

+I Addiere AKKU 1 und 2 als Ganzzahl (16 Bit)

AKKU1 és AKKU2 összeadása 16 bites egész számként

-I Subtrahiere AKKU 1 von 2 als Ganzzahl (16 Bit)

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

*I Multipliziere AKKU 1 und 2 als Ganzzahl (16 Bit)

AKKU1 és AKKU2 összeszorzása 16 bites egész számként

/I Dividiere AKKU 2 durch 1 als Ganzzahl (16 Bit)

AKKU2 osztása AKKU1-gyel 16 bites egész számként

+ Addiere Ganzzahlkonstante (16, 32 Bit)

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

+D Addiere AKKU 1 und 2 als Ganzzahl (32 Bit)

AKKU1 és AKKU2 összeadása 32 bites egész számként

-D Subtrahiere AKKU 1 von 2 als Ganzzahl (32 Bit)

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

*D Multipliziere AKKU 1 und 2 als Ganzzahl (32 Bit)

AKKU1 és AKKU2 összeszorzása 32 bites egész számként

/D Dividiere AKKU 2 durch 1 als Ganzzahl (32 Bit)

AKKU2 osztása AKKU1-gyel 32 bites egész számként

MOD Divisionsrest Ganzzahl (32 Bit) Maradék képzés 32 bites egész számon 101. Táblázat Egész szám műveletek

Az egész szám műveletek befolyásolják az A1, A0, OV és OS státuszbiteket, az alábbi táblázat szerint.

Érvényesség A1 A0 OV OS

Érvényes műveleti tartomány esetén

0 (nulla) 0 0 0 *

16 bit: 32 bit:

-32 768 <= Eredmény < 0 (negatív szám) -2 147 483 648 <= Eredmény < 0 (negatív szám) 0 1 0 *

16 bit: 32 bit:

32 767 >= Eredmény > 0 (pozitív szám) 2 147 483 647 >= Eredmény > 0 (pozitív szám) 1 0 0 *

Érvénytelen műveleti tartomány esetén

Alsó határérték alatti eredmény összeadásnál 0 0 1 1

Page 135: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 135. oldal

Érvényesség A1 A0 OV OS

16 bit: 32 bit:

Eredmény = -65536 Eredmény = -4 294 967 296

16 bit: 32 bit:

Alsó határérték alatti eredmény szorzásnál Eredmény < -32 768 (negatív szám) Eredmény < -2 147 483 648 (negatív szám)

0 1 1 1

16 bit: 32 bit:

Felső határérték feletti eredmény összeadásnál, kivonásnál Eredmény > 32 767 (pozitív szám) Eredmény > 2 147 483 647 (pozitív szám)

0 1 1 1

16 bit: 32 bit:

Felső határérték feletti eredmény szorzásnál, osztásnál Eredmény > 32 767 (pozitív szám) Eredmény > 2 147 483 647 (pozitív szám)

1 0 1 1

16 bit: 32 bit:

Alsó határérték alatti eredmény összeadásnál, kivonásnál Eredmény < -32 768 (negatív szám) Eredmény < -2 147 483 648 (negatív szám)

1 0 1 1

Nullával való osztás 1 1 1 1

+D: Eredmény = -4 294 967 296 0 0 1 1 102. Táblázat Státuszbit állapotok egész szám műveletek esetén

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

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

+I (AKKU1 és AKKU2 összeadása 16 bites egész számként) Formátuma: +I AKKU1-L és AKKU2-L összeadása 16 bites egész számként, az eredmény az AKKU1-L-be kerül mentésre. Az akku-k tartalmát a művelet egész számként (INT formátumként) értelmezi. A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja. Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad. Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

Státuszbitek képzése A1 A0 OV OS

Összeg = 0 0 0 0 -

-32768 <= Összeg < 0 0 1 0 -

Page 136: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 136. oldal

Státuszbitek képzése A1 A0 OV OS

32767 >= Összeg > 0 1 0 0 -

Összeg = -65536 0 0 1 1

65534 >= Összeg > 32767 0 1 1 1

-65535 <= Összeg < -32768 1 0 1 1 104. Táblázat A1, A0, OV, OS státuszbitek képzése

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

24. Példaprogram +I A VKE, A1, A0, OV, OS leírását a státusz szó fejezetben találja.

-I (AKKU1 kivonása AKKU2-ből 16 bites egész számként) Formátuma: -I AKKU1-L kivonása AKKU2-L-ből 16 bites egész számként, az eredmény az AKKU1-L-be kerül mentésre. Az akku-k tartalmát a művelet egész számként (INT formátumként) értelmezi. A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja. Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad. Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

Státuszbitek képzése A1 A0 OV OS

Különbség = 0 0 0 0 -

-32768 <= Különbség < 0 0 1 0 -

32767 >= Különbség > 0 1 0 0 -

65534 >= Különbség > 32767 0 1 1 1

-65535 <= Különbség < -32768 1 0 1 1 106. Táblázat A1, A0, OV, OS státuszbitek képzése

L MW 10 // AKKU2 L MW 12 // AKKU1

Page 137: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 137. oldal

-I // kivonás T MW 14 // eredmény -> AKKU1-be

25. Példaprogram -I A VKE, A1, A0, OV, OS leírását a státusz szó fejezetben találja.

*I (AKKU1 és AKKU2 összeszorzása 16 bites egész számként) Formátuma: *I AKKU1-L és AKKU2-L összeszorzása 16 bites egész számként, az eredmény az AKKU1-L-be kerül mentésre. Az akku-k tartalmát a művelet egész számként (INT formátumként) értelmezi. A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja. Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad. Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

Státuszbitek képzése A1 A0 OV OS

Szorzat = 0 0 0 0 -

-32768 <= Szorzat < 0 0 1 0 -

32767 >= Szorzat > 0 1 0 0 -

Szorzat > 32767 1 0 1 1

Szorzat < -32768 0 1 1 1 108. Táblázat A1, A0, OV, OS státuszbitek képzése

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

26. Példaprogram *I A VKE, A1, A0, OV, OS leírását a státusz szó fejezetben találja.

/I (AKKU2 osztása AKKU1-gyel 16 bites egész számként) Formátuma: /I AKKU2 osztása AKKU1-gyel 16 bites egész számként, az eredmény az AKKU1-be kerül mentésre, úgy hogy az osztási eredmény az AKKU1-L-be kerül, az osztási maradék pedig az AKKU1-H-ba. Az akku-k tartalmát a művelet egész számként (INT formátumként) értelmezi. A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja.

Page 138: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 138. oldal

Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad. Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

Státuszbitek képzése A1 A0 OV OS

Osztási eredmény = 0 0 0 0 -

-32768 <= Osztási eredmény < 0 0 1 0 -

32767 >= Osztási eredmény > 0 1 0 0 -

Osztási eredmény = 32 768 1 0 1 1

Nullával való osztás 1 1 1 1 110. Táblázat A1, A0, OV, OS státuszbitek képzése

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

27. Példaprogram /I

72. ábra Példaprogram /I státusz

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

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

Page 139: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 139. oldal

+ (Egész szám konstans hozzáadása (16, 32 bit)) Formátuma: + <egész szám konstans formátum> + <egész szám konstans formátum> Az egész szám konstans az AKKU1 értékéhez kerül hozzáadásra, az eredmény az AKKU1-ben tárolódik. A művelet a státusz bitek értékét nem befolyásolja. Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad. Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik. + <16 bites egész szám konstans formátum> A 16 bites egész szám konstans az AKKU1-L értékéhez kerül hozzáadásra (a -32768 - +32767 értéktartományban), az eredmény az AKKU1-L-ben tárolódik. A művelet a státusz bitek értékét nem befolyásolja. Két akku-s CPU-s esetén az AKKU2 és AKKU1-H tartalma a művelet után is változatlan marad. Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 és AKKU1-H tartalma nem változik. + <32 bites egész szám konstans formátum> A 32 bites egész szám konstans az AKKU1 értékéhez kerül hozzáadásra (-2.147.483.648 - 2.147.483.647 értéktartományban), az eredmény az AKKU1-ben tárolódik. A művelet a státusz bitek értékét nem befolyásolja. Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad. Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 100 T MW 100 // kezdőérték betöltése L 100 T MD 200 // szintén L MW 100 // 16 bites egész szám + 12 // 16 bites egész konstans T MW 100 // eredmény L MD 200 // 32 bites egész szám + L#40000 // 32 bites egész konstans T MD 200 // eredmény

28. Példaprogram +konstans

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

Page 140: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 140. oldal

AKKU1 és AKKU2 összeadása 32 bites egész számként, az eredmény az AKKU1-be kerül mentésre. Az akku-k tartalmát a művelet egész számként (DINT formátumként) értelmezi. A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja. Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad. Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

Státuszbitek képzése A1 A0 OV OS

Összeg = 0 0 0 0 -

-2.147.483.648 <= Összeg < 0 0 1 0 -

2.147.483.647 >= Összeg > 0 1 0 0 -

Összeg = -4.294.967.296 0 0 1 1

4.294.967.294 >= Összeg > 2.147.483.647 0 1 1 1

-4.294.967.295 <= Összeg < -2.147.483.648 1 0 1 1 113. Táblázat A1, A0, OV, OS státuszbitek képzése

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

29. Példaprogram +D A VKE, A1, A0, OV, OS leírását a státusz szó fejezetben találja.

-D (AKKU1 kivonása AKKU2-ből 32 bites egész számként) Formátuma: -D AKKU1 kivonása AKKU2-ből 32 bites egész számként, az eredmény az AKKU1-be kerül mentésre. Az akku-k tartalmát a művelet egész számként (DINT formátumként) értelmezi. A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja. Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad. Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

BIE A1 A0 OV OS OR STA VKE /ER

Page 141: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 141. oldal

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

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

Státuszbitek képzése A1 A0 OV OS

Különbség = 0 0 0 0 -

-2.147.483.648 <= Különbség < 0 0 1 0 -

2.147.483.647 >= Különbség > 0 1 0 0 -

4.294.967.295 >= Különbség > 2.147.483.647 0 1 1 1

-4.294.967.295 <= Különbség < -2.147.483.648 1 0 1 1 115. Táblázat A1, A0, OV, OS státuszbitek képzése

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

30. Példaprogram -D A VKE, A1, A0, OV, OS leírását a státusz szó fejezetben találja.

*D (AKKU1 és AKKU2 összeszorzása 32 bites egész számként) Formátuma: *D AKKU1 és AKKU2 összeszorzása 32 bites egész számként, az eredmény az AKKU1-be kerül mentésre. Az akku-k tartalmát a művelet egész számként (INT formátumként) értelmezi. A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja. Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad. Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

Státuszbitek képzése A1 A0 OV OS

Szorzat = 0 0 0 0 -

-2.147.483.648 <= Szorzat < 0 0 1 0 -

2.147.483.647 >= Szorzat > 0 1 0 0 -

Szorzat > 2.147.483.647 0 0 1 1

Page 142: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 142. oldal

Státuszbitek képzése A1 A0 OV OS

Szorzat < -2.147.483.648 0 1 1 1 117. Táblázat A1, A0, OV, OS státuszbitek képzése

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

31. Példaprogram *D A VKE, A1, A0, OV, OS leírását a státusz szó fejezetben találja.

/D (AKKU2 osztása AKKU1-gyel 32 bites egész számként) Formátuma: /D AKKU2 osztása AKKU1-gyel 32 bites egész számként, az eredmény az AKKU1-be kerül mentésre. Az eredmény csak az osztási eredményt tartalmazza, a maradékot nem. (A MOD művelettel kaphatja meg a maradékot). Az akku-k tartalmát a művelet egész számként (DINT formátumként) értelmezi. A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja. Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad. Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

Státuszbitek képzése A1 A0 OV OS

Osztási eredmény = 0 0 0 0 -

-2147483648 <= Osztási eredmény < 0 0 1 0 -

2147483647 >= Osztási eredmény > 0 1 0 0 -

Osztási eredmény = 2147483648 1 0 1 1

Nullával való osztás 1 1 1 1 119. Táblázat A1, A0, OV, OS státuszbitek képzése

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

Page 143: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 143. oldal

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

32. Példaprogram /D

Osztott érték (AKKU2) dec: 10 000 Osztó érték (AKKU1) dec: 3 Osztási eredmény (AKKU1) dec: 3 333 Osztási maradék nincs

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

MOD (AKKU2 osztási maradéka AKKU1-gyel 32 bites egész számként) Formátuma: /D AKKU2 osztása AKKU1-gyel 32 bites egész számként, az eredmény az AKKU1-be kerül mentésre. Az eredmény csak az osztási maradélot tartalmazza, az eredményt nem. (A /D művelettel kaphatja meg az eredményt). Az akku-k tartalmát a művelet egész számként (DINT formátumként) értelmezi. A művelet a VKE bit értékét nem befolyásolja, ellenben az A1, A0, OS és OV státuszbiteket állítja illetve állíthatja. Két akku-s CPU-s esetén az AKKU2 tartalma a művelet után is változatlan marad. Négy akku-s CPU esetében az AKKU3 tartalma az AKKU2-be, az AKKU4 tartalma az AKKU3-ba kerül átmásolásra, az AKKU4 tartalma nem változik.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

Státuszbitek képzése A1 A0 OV OS

Osztási eredmény = 0 0 0 0 -

-2147483648 <= Osztási maradék < 0 0 1 0 -

2147483647 >= Osztási maradék > 0 1 0 0 -

Nullával való osztás 1 1 1 1 121. Táblázat A1, A0, OV, OS státuszbitek képzése

L 10000 T MD 100 // kezdőérték betöltése L 3 T MD 104 // szintén L MD 100 // AKKU2 L MD 104 // AKKU1 MOD // 32 bites osztás maradéka

Page 144: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 144. oldal

T MD 108 // csak a maradék 33. Példaprogram MOD

Törtszám műveletek

Az egész szám műveletek befolyásolják az A1, A0, OV és OS státuszbiteket, az alábbi táblázat szerint.

Érvényesség A1 A0 OV OS

Érvényes műveleti tartomány esetén

+0, -0 (Nulla) 0 0 0 -

-3,402823E+38 < eredmény < -1,175494E-38 (negatív szám) 0 1 0 -

+1,175494E-38 < eredmény < 3,402824E+38 (pozitív szám) 1 0 0 -

Érvénytelen műveleti tartomány esetén

Alulhaladott érték -1,175494E-38 < eredmény < - 1,401298E-45 (negatív szám) 0 0 1 1

Alulhaladott érték +1,401298E-45 < eredmény < +1,175494E-38 (pozitív szám) 0 0 1 1

Felülhaladott érték < -3,402823E+38 (negatív szám) 0 1 1 1

Felülhaladott érték > 3,402823E+38 (pozitív szám) 1 0 1 1

Érvénytelen érték vagy érvénytelen művelet (bemeneti érték kívül esik az érvényes tartományon) 1 1 1 1

+R Addiere AKKU 1 und 2 als

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

-R Subtrahiere AKKU 1 von 2 als Gleitpunktzahl (32 Bit)

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

*R Multipliziere AKKU 1 und 2 als Gleitpunktzahl (32 Bit)

AKKU1 és AKKU2 összeszorzása 32 bites törtszámként

/R Dividiere AKKU 2 durch 1 als Gleitpunktzahl (32 Bit)

AKKU2 osztása AKKU1-gyel 32 bites törtszámként

ABS Absolutwert einer Gleitpunktzahl (32 Bit, IEEE-FP)

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

SQR Bilden des Quadrats einer Gleitpunktzahl (32 Bit)

32 bites törtszám négyzete

SQRT Bilden der Quadratwurzel einer Gleitpunktzahl (32 Bit)

32 bites törtszám köbgyöke

EXP Bilden des Exponentialwerts einer 32 bites törtszám exponenciális értéke

Page 145: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 145. oldal

Gleitpunktzahl (32 Bit)

LN Bilden des natürlichen Logarithmus einer Gleitpunktzahl (32 Bit)

32 bites törtszám természetes logaritmusa

SIN Bilden des Sinus eines Winkels als Gleitpunktzahlen (32 Bit)

32 bites törtszám szinusz értéke

COS Bilden des Cosinus eines Winkels als Gleitpunktzahlen (32 Bit)

32 bites törtszám koszinusz értéke

TAN Bilden des Tangens eines Winkels als Gleitpunktzahlen (32 Bit)

32 bites törtszám tangens értéke

ASIN Bilden des Arcussinus einer Gleitpunktzahl (32 Bit)

32 bites törtszám arkusz-szinusz értéke

ACOS Bilden des Arcuscosinus einer Gleitpunktzahl (32 Bit)

32 bites törtszám arkusz-koszinusz értéke

ATAN Bilden des Arcustangens einer Gleitpunktzahl (32 Bit)

32 bites törtszám arkusz-tangens értéke

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

Eredmény az AKKU1-ben A1 A0 OV OS Notesz

+ qNaN 1 1 1 1

+ végtelen 1 0 1 1 Túlcsordult

+ normalizált 1 0 0 -

+ denormalizált 0 0 1 1 Túlcsordult

+ nulla 0 0 0 -

- nulla 0 0 0 -

- denormalizált 0 0 1 1 Túlcsordult

- normalizált 0 1 0 -

- végtelen 0 1 1 1 Túlcsordult

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

Page 146: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 146. oldal

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 2.200000e+001 // értékek állítása T MD 8 L 3.300000e+001 T MD 12 L MD 8 // AKKU2 L MD 12 // AKKU1 +R // művelet T MD 16 // AKKU1 -> MD16

34. Példaprogram +R

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

Eredmény az AKKU1-ben A1 A0 OV OS Notesz

+ qNaN 1 1 1 1

+ végtelen 1 0 1 1 Túlcsordult

+ normalizált 1 0 0 -

+ denormalizált 0 0 1 1 Túlcsordult

+ nulla 0 0 0 -

- nulla 0 0 0 -

- denormalizált 0 0 1 1 Túlcsordult

- normalizált 0 1 0 -

- végtelen 0 1 1 1 Túlcsordult

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 2.200000e+001 // értékek állítása T MD 8 L 3.300000e+001 T MD 12 L MD 8 // AKKU2 L MD 12 // AKKU1 -R // művelet T MD 16 // AKKU1 -> MD16

Page 147: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 147. oldal

35. Példaprogram -R

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

Eredmény az AKKU1-ben A1 A0 OV OS Notesz

+ qNaN 1 1 1 1

+ végtelen 1 0 1 1 Túlcsordult

+ normalizált 1 0 0 -

+ denormalizált 0 0 1 1 Túlcsordult

+ nulla 0 0 0 -

- nulla 0 0 0 -

- denormalizált 0 0 1 1 Túlcsordult

- normalizált 0 1 0 -

- végtelen 0 1 1 1 Túlcsordult

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 2.200000e+001 // értékek állítása T MD 8 L 3.300000e+001 T MD 12 L MD 8 // AKKU2 L MD 12 // AKKU1 *R // művelet T MD 16 // AKKU1 -> MD16

36. Példaprogram *R

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

Page 148: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 148. oldal

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

Eredmény az AKKU1-ben A1 A0 OV OS Notesz

+ qNaN 1 1 1 1

+ végtelen 1 0 1 1 Túlcsordult

+ normalizált 1 0 0 -

+ denormalizált 0 0 1 1 Túlcsordult

+ nulla 0 0 0 -

- nulla 0 0 0 -

- denormalizált 0 0 1 1 Túlcsordult

- normalizált 0 1 0 -

- végtelen 0 1 1 1 Túlcsordult

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 2.200000e+001 // értékek állítása T MD 8 L 3.300000e+001 T MD 12 L MD 8 // AKKU2 L MD 12 // AKKU1 /R // művelet T MD 16 // AKKU1 -> MD16

37. Példaprogram /R

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L -1.172200e+002 // értékek állítása T MD 8 L MD 8 ABS // abszolút érték T MD 12 // eredmény az MD12-be

38. Példaprogram ABS

Page 149: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 149. oldal

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

Eredmény az AKKU1-ben A1 A0 OV OS Notesz

+ qNaN 1 1 1 1

+ végtelen 1 0 1 1 Túlcsordult

+ normalizált 1 0 0 -

+ denormalizált 0 0 1 1 Túlcsordult

+ nulla 0 0 0 -

- qNaN 1 1 1 1 131. Táblázat A1, A0, OV, OS státuszbitek állapota

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 2.000000e+001 // értékek állítása T MD 8 L MD 8 SQR // négyzetérték T MD 12 // eredmény az MD12-be

39. Példaprogram SQR

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

Page 150: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 150. oldal

Eredmény az AKKU1-ben A1 A0 OV OS Notesz

+ qNaN 1 1 1 1

+ végtelen 1 0 1 1 Túlcsordult

+ normalizált 1 0 0 -

+ denormalizált 0 0 1 1 Túlcsordult

+ nulla 0 0 0 -

- nulla 0 0 0 -

- qNaN 1 1 1 1 133. Táblázat A1, A0, OV, OS státuszbitek állapota

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 2.250000e+002 // értékek állítása T MD 8 L MD 8 SQRT // négyzetgyök érték T MD 12 // eredmény az MD12-be

40. Példaprogram SQRT

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

Eredmény az AKKU1-ben A1 A0 OV OS Notesz

+ qNaN 1 1 1 1

+ végtelen 1 0 1 1 Túlcsordult

+ normalizált 1 0 0 -

+ denormalizált 0 0 1 1 Túlcsordult

+ nulla 0 0 0 -

- qNaN 1 1 1 1 135. Táblázat A1, A0, OV, OS státuszbitek állapota

Page 151: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 151. oldal

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 1.500000e-001 // értékek állítása T MD 8 L MD 8 EXP // exponenciális érték T MD 12 // eredmény az MD12-be

41. Példaprogram EXP

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

Eredmény az AKKU1-ben A1 A0 OV OS Notesz

+ qNaN 1 1 1 1

+ végtelen 1 0 1 1 Túlcsordult

+ normalizált 1 0 0 -

+ denormalizált 0 0 1 1 Túlcsordult

+ nulla 0 0 0 -

- nulla 0 0 0 -

- denormalizált 0 0 1 1 Túlcsordult

- normalizált 0 1 0 -

- végtelen 0 1 1 1 Túlcsordult

- qNaN 1 1 1 1 137. Táblázat A1, A0, OV, OS státuszbitek állapota

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 1.500000e-001 // értékek állítása T MD 8 L MD 8 LN // természetes alapú logaritmus T MD 12 // eredmény az MD12-be

42. Példaprogram LN

Page 152: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 152. oldal

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

Eredmény az AKKU1-ben A1 A0 OV OS Notesz

+ qNaN 1 1 1 1

+ normalizált 1 0 0 -

+ denormalizált 0 0 1 1 Túlcsordult

+ nulla 0 0 0 -

- nulla 0 0 0 -

- denormalizált 0 0 1 1 Túlcsordult

- normalizált 0 1 0 -

- qNaN 1 1 1 1 139. Táblázat A1, A0, OV, OS státuszbitek állapota

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 1.500000e-001 // értékek állítása T MD 8 L MD 8 SIN // sinus T MD 12 // eredmény az MD12-be

43. Példaprogram SIN

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

Page 153: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 153. oldal

Eredmény az AKKU1-ben A1 A0 OV OS Notesz

+ qNaN 1 1 1 1

+ normalizált 1 0 0 -

+ denormalizált 0 0 1 1 Túlcsordult

+ nulla 0 0 0 -

- nulla 0 0 0 -

- denormalizált 0 0 1 1 Túlcsordult

- normalizált 0 1 0 -

- qNaN 1 1 1 1 141. Táblázat A1, A0, OV, OS státuszbitek állapota

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 1.500000e-001 // értékek állítása T MD 8 L MD 8 COS // cosinus T MD 12 // eredmény az MD12-be

44. Példaprogram COS

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

Eredmény az AKKU1-ben A1 A0 OV OS Notesz

+ qNaN 1 1 1 1

+ normalizált 1 0 0 -

+ denormalizált 0 0 1 1 Túlcsordult

+ nulla 0 0 0 -

- nulla 0 0 0 -

- denormalizált 0 0 1 1 Túlcsordult

- normalizált 0 1 0 -

- qNaN 1 1 1 1 143. Táblázat A1, A0, OV, OS státuszbitek állapota

Page 154: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 154. oldal

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 1.500000e-001 // értékek állítása T MD 8 L MD 8 TAN // tangens T MD 12 // eredmény az MD12-be

45. Példaprogram TAN

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

Eredmény az AKKU1-ben A1 A0 OV OS Notesz

+ qNaN 1 1 1 1

+ normalizált 1 0 0 -

+ denormalizált 0 0 1 1 Túlcsordult

+ nulla 0 0 0 -

- nulla 0 0 0 -

- denormalizált 0 0 1 1 Túlcsordult

- normalizált 0 1 0 -

- qNaN 1 1 1 1 145. Táblázat A1, A0, OV, OS státuszbitek állapota

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 1.500000e-001 // értékek állítása T MD 8 L MD 8 ASIN // arcussinus T MD 12 // eredmény az MD12-be

46. Példaprogram ASIN

Page 155: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 155. oldal

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

Eredmény az AKKU1-ben A1 A0 OV OS Notesz

+ qNaN 1 1 1 1

+ normalizált 1 0 0 -

+ denormalizált 0 0 1 1 Túlcsordult

+ nulla 0 0 0 -

- nulla 0 0 0 -

- denormalizált 0 0 1 1 Túlcsordult

- normalizált 0 1 0 -

- qNaN 1 1 1 1 147. Táblázat A1, A0, OV, OS státuszbitek állapota

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 1.500000e-001 // értékek állítása T MD 8 L MD 8 ACOS // arcuscosinus T MD 12 // eredmény az MD12-be

47. Példaprogram ACOS

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

Eredmény az AKKU1-ben A1 A0 OV OS Notesz

+ qNaN 1 1 1 1

Page 156: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 156. oldal

Eredmény az AKKU1-ben A1 A0 OV OS Notesz

+ normalizált 1 0 0 -

+ denormalizált 0 0 1 1 Túlcsordult

+ nulla 0 0 0 -

- nulla 0 0 0 -

- denormalizált 0 0 1 1 Túlcsordult

- normalizált 0 1 0 -

- qNaN 1 1 1 1 149. Táblázat A1, A0, OV, OS státuszbitek állapota

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 1.500000e-001 // értékek állítása T MD 8 L MD 8 ATAN // arkusz tangens T MD 12 // eredmény az MD12-be

48. Példaprogram ATAN

Betöltés/mozgatás műveletek

Betöltés műveletek

L Lade Betöltés

L STW Lade Statuswort in AKKU 1 Státusz szó betöltése az AKKU1-be

LAR1 Lade Adreßregister 1 mit Inhalt von AKKU 1 1. címregiszter feltöltése AKKU1-ből

LAR1 <D> Lade Adreßregister 1 mit Pointer (32 Bit-Format) 1. címregiszter betöltése 32 bites pointerrel

LAR1 AR2 Lade Adreßregister 1 mit Inhalt von Adressregister 2 2. címregiszter betöltése az 1. címregiszterbe

LAR2 Lade Adreßregister 2 mit Inhalt von AKKU 1 2. címregiszter feltöltése AKKU1-ből

LAR2 <D> Lade Adreßregister 2 mit Ganzzahl (32 Bit) 2. címregiszter betöltése 32 bites pointerrel

Mozgatás műveletek

T Transferiere Mozgatás

T STW Transferiere AKKU 1 in Statuswort Státusz szó feltöltése az AKKU1-ből

Page 157: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 157. oldal

TAR Tausche Adreßregister 1 mit 2 1. és 2. címregiszter cseréje

TAR1 Transferiere Adreßregister 1 in AKKU 1 1. címregiszter mozgatása az AKKU1-be

TAR1 <D> Transferiere Adreßregister 1 nach Zieladresse (32-Bit-Pointer)

1. címregiszter mozgatása a 32 bites pointer által megjelölt célcímre

TAR1 AR2 Transferiere Adreßregister 1 in Adreßregister 2

1. címregiszter mozgatása a 2. címregiszterbe

TAR2 Transferiere Adreßregister 2 in AKKU 1 2. címregiszter mozgatása az AKKU1-be

TAR2 <D> Transferiere Adreßregister 2 nach Zieladresse (32-Bit-Pointer)

2. címregiszter mozgatása a 32 bites pointer által megjelölt célcímre

L (Betöltés)

művelet Adattípus Forráscím

BYTE E, A, PE, M, L, D 0..65535

WORD Pointer, paraméter 0..65534

L

DWORD 0..65532 151. Táblázat L operandusok

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

// byte hosszú betöltések L B#16#12 // hex 12 az AKKU1-L-L-be L MB 10 // MB10 az AKKU1-L-L-be L DB10.DBB 10 //DB10.DBB10 az AKKU1-L-L-be L EB 10 // EB10 az AKKU1-L-L-be L AB 10 // AB10 az AKKU1-L-L-be // word hosszú betöltések L B#(255, 255) // két 8 bites szám az AKKU1-L-be L MW 10 // MW10 az AKKU1-L-be L DB10.DBW 10 // DB10.DBW10 az AKKU1-L-be L P#0.0 // null pointer az AKKU1-L-be // dword hosszú betöltések L 1.210000e+001 // real konstans az AKKU1-be L MD 10 // MD10 az AKKU1-be L DB10.DBD 10 // DB10.DBD10 az AKKU1-be

49. Példaprogram L

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

Page 158: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 158. oldal

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

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

50. Példaprogram L STW

73. ábra Példaprogram státusza

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

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

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

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

51. Példaprogram LAR1

74. ábra Példaprogram státusza

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

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

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

Page 159: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 159. oldal

BIE A1 A0 OV OS OR STA VKE /ER

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

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

LAR1 P#111.3 // direkt pointeres megadás // vagy L P#133.1 // direkt pointer az MD4-be T MD 4 LAR1 MD 4 // MD4 átmásolása az 1. címregiszterbe

52. Példaprogram LAR1 <D>

75. ábra Példaprogram státusza

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

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

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

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

53. Példaprogram LAR1 AR2

Page 160: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 160. oldal

76. ábra Példaprogram státusza

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

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

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

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

54. Példaprogram LAR2

77. ábra Példaprogram státusza

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

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

Page 161: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 161. oldal

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

BIE A1 A0 OV OS OR STA VKE /ER

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

158. Táblázat Státusz szó változásai LAR2 P#444.2 // direkt pointeres megadás // vagy L P#222.4 // direkt pointer az MD4-be T MD 4 LAR2 MD 4 // MD4 átmásolása a 2. címregiszterbe

55. Példaprogram LAR2 <D>

78. ábra Példaprogram státusza

T (Mozgatás)

művelet Adattípus Forráscím

BYTE E, A, PA, M, L, D 0..65535

WORD 0..65534

T

DWORD 0..65532 159. Táblázat T operandusok

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

// byte hosszú mozgatás az AKKU1-ből T MB 10 // MB10 az AKKU1-L-L-ből T DB10.DBB 10 //DB10.DBB10 az AKKU1-L-L-ből T AB 10 // AB10 az AKKU1-L-L-ből // word hosszú mozgatás az AKKU1-ből T MW 10 // MW10 az AKKU1-L-ből T DB10.DBW 10 // DB10.DBW10 az AKKU1-L-ből // dword hosszú mozgatás az AKKU1-ből T MD 10 // MD10 az AKKU1-ből T DB10.DBD 10 // DB10.DBD10 az AKKU1-ből

56. Példaprogram T

Page 162: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 162. oldal

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

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

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

57. Példaprogram T STW

79. ábra Példaprogram státusza

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

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

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

58. Példaprogram TAR

80. ábra Példaprogram státusza

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

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

Page 163: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 163. oldal

BIE A1 A0 OV OS OR STA VKE /ER

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

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

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

59. Példaprogram TAR1

81. ábra Példaprogram státusza

A fenti példaprogram szerint a LAR1 111.1-et betölti az 1. címregiszterbe. Ezt olvassa vissza a TAR1 a STANDARD-ba (889 bit = 111.1 byte), majd a következő sor ezt az értéket viszi át az MW10-be.

TAR1 <D> (1. címregiszter mozgatása a 32 bites pointer által megjelölt célcímre) 1. címregiszter mozgatása a 32 bites pointer által megjelölt célcímre, 32 bites pointer formátumban. A célcím lehet memória duplaszó (MD), lokális duplaszó (LD), globális adatblokk duplaszó (DBD), instant adatblokk duplaszó (DID). A művelet a státusz szó tartalmát nem befolyásolja.

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

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

L LD 10 // a másolás ellenőrzése

60. Példaprogram TAR1 <D>

82. ábra Példaprogram státusza

A fenti példaprogram szerint a LAR1 111.1-et betölti az 1. címregiszterbe. Ezt olvassa vissza a TAR1 a STANDARD-ba (889 bit = 111.1 byte), majd a következő sor ezt az értéket viszi át az MW10-be. TAR1 AR2 (1. címregiszter mozgatása a 2. címregiszterbe)

Page 164: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 164. oldal

TAR1 AR2 (1. címregiszter mozgatása a 2. címregiszterbe) Az 1. címregiszter másolása a 2. címregiszterbe. Az AKKU1 és AKKU2 tartalma nem változik. A művelet a státuszbitek állapotát nem befolyásolja.

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

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

61. Példaprogram TAR1 AR2

83. ábra Példaprogram státusza

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

TAR2 (2. címregiszter mozgatása az AKKU1-be) 2. címregiszter mozgatása AKKU1-be 32 bites pointer-ként. A művelet a státuszbitek állapotát nem befolyásolja.

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

Page 165: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 165. oldal

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 321 // 321 (bit) másolása LAR2 // a 2.címregiszterbe TAR2 // 2.címregiszter az AKKU1-be T MW 10 // AKKU1 az MW10-be

62. Példaprogram TAR2

84. ábra Példaprogram státusza

A fenti programban a konstans 321-et betöltjük az AR2-be, majd a TAR2-vel visszaolvassuk az AKKU1-be, majd onnan az MW10-be.

TAR2 <D> (2. címregiszter mozgatása a 32 bites pointer által megjelölt célcímre) 2. címregiszter mozgatása egy megcímzett területre. A célcím lehet memória duplaszó (MD), lokális duplaszó (LD), globális adatblokk duplaszó (DBD), instant adatblokk duplaszó (DID). A művelet a státuszbitek állapotát nem befolyásolja.

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

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 321 // 321 (bit) másolása LAR2 // a 2.címregiszterbe TAR2 MD 10 // 2.címregiszter az MD10-be

63. Példaprogram TAR2 <D>

Page 166: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 166. oldal

Programvezérlés

Page 167: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 167. oldal

Léptetés műveletek

A léptetési műveletekkel az AKKU1 vagy az összes AKKU tartalmát lehet bitszinten jobbra vagy balra léptetni. Az akkumlátorokban minden lépés balra egy kettővel való szorzásnak, jobbra pedig kettővel való osztásnak felel meg. Így például ha az AKKU értéke 5 (dec) és 3 lépéssel ezt az értéket balra toljuk akkor az AKKU a 40-es értéket fogja felvenni.

SSI Schiebe Vorzeichen rechts Ganzzahl (16 Bit) Előjeles 16 bites szám léptetése jobbra

SSD Schiebe Vorzeichen rechts Ganzzahl (32 Bit) Előjeles 32 bites szám léptetése jobbra

SLW Schiebe links Wort (16 Bit) 16 bites szó balra léptetése

SRW Schiebe rechts Wort (16 Bit 16 bites szó jobbra léptetése

SLD Schiebe links Doppelwort (32 Bit 32 bites duplaszó balra léptetése

SRD Schiebe rechts Doppelwort (32 Bit) 32 bites duplaszó jobbra léptetése 168. Táblázat Léptetési műveletek

SSI (előjeles 16 bites szám léptetése jobbra) Az előjeles 16 bites szám (INT) léptetése jobbra csak az AKKU1-L területet mozgatja bitenként jobbra. A léptetett területet a művelet „0”-kal tölti fel. A léptetés során utoljára kimozgatott bitet a művelet a státusz szó A1 pozíciójába másolja. Amennyiben az SSI-hez nem adunk meg értéket, úgy az AKKU2-L-L értéke szerint hajtja végre a léptetést (lsd. első példaprogram). Ha az SSI <léptetés_szám> megadást alkalmazzuk, akkor a léptetés szám szerint hajtja végre a léptetéseket (második példaprogram). A megadott érték mindkét esetben 0 és 15 között lehet. Az A0 és OV státuszbitek is „0” értéket vesznek fel, ha sikerült ennek a kritériumnak a programunkban megfelelni. A „0” léptetés szám esetén a művelet működése azonos a NOP műveletével (üres utasítás).

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 3 // AKKU2 (léptetések száma) L 125 // AKKU1 (léptetendő érték) SSI // léptetés T MW 10 // AKKU1 -> MW10

64. Példaprogram SSI Az egyszerűbb példaprogram esetén a 125 értéket léptethetjük 3-szor jobbra, így az eredmény (125 / 2^3 ) 15 lesz, és ezt az MW10-ben találjuk meg.

UN T 12 // ha lefutott az idő SPB ide // bejut a végrehajtáshoz L MW 20 // MW20 értékét lépteti eggyel balra SSI 1 T MW 20 // eredmény vissza L STW // státusz szó olvasása T MW 22 // státusz szó -> MW22

Page 168: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 168. oldal

U M 23.7 // státusz szó A1 -> MW20 bal utolsó bitjébe = M 20.7 ide: NOP 0 // ugrás vége L S5T#500MS // futás időzítés : 500 ms UN T 12 SE T 12

65. Példaprogram SSI <léptetés_szám> Ez a program az MW20 értékét forgatja folyamatosan, és minden lépés után 500 ms-ot vár. (MW20 értékét például a VAT táblázatban lehet megadni, és bit szinten figyelemmel kísérni.)

SSD (előjeles 32 bites szám léptetése) Az előjeles 32 bites szám (DINT) léptetése jobbra az AKKU1 területet mozgatja bitenként jobbra. A léptetett területet a művelet „0”-kal tölti fel. A léptetés során utoljára kimozgatott bitet a művelet a státusz szó A1 pozíciójába másolja. Amennyiben az SSD-hez nem adunk meg értéket, úgy az AKKU2-L-L értéke szerint hajtja végre a léptetést (lsd. első példaprogram). Ha az SSD <léptetés_szám> megadást alkalmazzuk, akkor a léptetés szám szerint hajtja végre a léptetéseket (második példaprogram). A megadott érték mindkét esetben 0 és 32 között lehet. Az A0 és OV státuszbitek is „0” értéket vesznek fel, ha sikerült ennek a kritériumnak a programunkban megfelelni. A „0” léptetés szám esetén a művelet működése azonos a NOP műveletével (üres utasítás).

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 4 // AKKU2 (léptetések száma) L 13400 // AKKU1 (léptetendő érték) SSD // léptetés T MD 10 // AKKU1 -> MD10

66. Példaprogram SSD Az egyszerűbb példaprogram esetén a 13400 értéket léptethetjük 4-szor jobbra, így az eredmény (13400 / 2^4 ) 837 lesz, és ezt az MD10-ben találjuk meg.

UN T 12 // ha lefutott az idő SPB ide // bejut a végrehajtáshoz L MD 20 // MW20 értékét lépteti eggyel balra SSD 1 T MD 20 // eredmény vissza L STW // státusz szó olvasása T MW 10 // státusz szó -> MW10 U M 11.7 // státusz szó A1 -> MD20 bal utolsó bitjébe = M 20.7 ide: NOP 0 // ugrás vége L S5T#200MS // futás időzítés : 500 ms UN T 12 SE T 12

67. Példaprogram SSD <léptetés_szám>

Page 169: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 169. oldal

Ez a program az MD20 értékét forgatja folyamatosan, és minden lépés után 200 ms-ot vár. (MD20 értékét például a VAT táblázatban lehet megadni, és bit szinten figyelemmel kísérni.)

SLW (16 bites szó balra léptetése) A 16 bites szó (WORD) léptetése balra csak az AKKU1-L területet mozgatja bitenként balra. A léptetett területet a művelet „0”-kal tölti fel. A léptetés során utoljára kimozgatott bitet a művelet a státusz szó A1 pozíciójába másolja. Amennyiben az SLW-hez nem adunk meg értéket, úgy az AKKU2-L-L értéke szerint hajtja végre a léptetést (lsd. első példaprogram). Ha az SLW <léptetés_szám> megadást alkalmazzuk, akkor a léptetés szám szerint hajtja végre a léptetéseket (második példaprogram). A megadott érték mindkét esetben 0 és 255 között lehet. Az A0 és OV státuszbitek is „0” értéket vesznek fel, ha sikerült ennek a kritériumnak a programunkban megfelelni. Ha a megadott léptetés szám > 16, akkor AKKU1-L = 0, A1 = 0, A0 = 0 és az OV = 0. A „0” léptetés szám esetén a művelet működése azonos a NOP műveletével (üres utasítás).

Az ellenkező irányú szó hosszú forgatás az SRW művelettel történik. Azonos irányban duplaszó hosszon a SLD, ellenkező irányban duplaszó hosszon az SRD művelet végzi a léptetést.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 4 // AKKU2 (léptetések száma) L 500 // AKKU1 (léptetendő érték) SLW // léptetés T MW 10 // AKKU1 -> MW10

68. Példaprogram SLW Az egyszerűbb példaprogram esetén az 500 értéket léptethetjük 4-szer balra, így az eredmény (500 * 2^4 ) 8 000 lesz, és ezt az MW10-ben találjuk meg.

UN T 12 // ha lefutott az idő SPB ide // bejut a végrehajtáshoz L MW 20 // MW20 értékét lépteti eggyel balra U M 1.0 // irányválasztó bit 0:jobbra, 1: balra SPB bal SRW 1 // irány: jobbra SPA tov bal: SLW 1 // irány: balra tov: T MW 20 // eredmény vissza L STW // státusz szó olvasása T MW 10 // státusz szó -> MW10 U M 1.0 // irányválasztó SPB ball U M 11.7 // státusz szó A1 = M 20.7 // ha jobbra, akkor elöl pótolja a kiesett bitet SPA tovv ball: U M 11.7 = M 21.0 // ha balra, akkor hátul pótolja a kiesett bitet tovv: NOP 0

Page 170: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 170. oldal

ide: NOP 0 // ugrás vége L S5T#200MS // futás időzítés : 500 ms UN T 12 SE T 12

69. Példaprogram SLW <léptetés_szám> Ez a program az MW20 értékét forgatja az M1.0 bitnek megfelelő irányba (0: jobbra, 1:balra), és minden lépés után 200 ms-ot vár. (MW20 értékét például a VAT táblázatban lehet megadni, és bit szinten figyelemmel kísérni.) A program az SLW -t és az SRW –t is tartalmazza.

SRW (16 bites szó jobbra léptetése) A 16 bites szó (WORD) léptetése jobbra csak az AKKU1-L területet mozgatja bitenként jobbra. A léptetett területet a művelet „0”-kal tölti fel. A léptetés során utoljára kimozgatott bitet a művelet a státusz szó A1 pozíciójába másolja. Amennyiben az SRW-hez nem adunk meg értéket, úgy az AKKU2-L-L értéke szerint hajtja végre a léptetést (lsd. első példaprogram). Ha az SRW <léptetés_szám> megadást alkalmazzuk, akkor a léptetés szám szerint hajtja végre a léptetéseket (második példaprogram). A megadott érték mindkét esetben 0 és 255 között lehet. Az A0 és OV státuszbitek is „0” értéket vesznek fel, ha sikerült ennek a kritériumnak a programunkban megfelelni. Ha a megadott léptetés szám > 16, akkor AKKU1-L = 0, A1 = 0, A0 = 0 és az OV = 0. A „0” léptetés szám esetén a művelet működése azonos a NOP műveletével (üres utasítás).

Az ellenkező irányú szó hosszú forgatás az SLW művelettel történik. Azonos irányban duplaszó hosszon a SRD, ellenkező irányban duplaszó hosszon az SLD művelet végzi a léptetést.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 4 // AKKU2 (léptetések száma) L 500 // AKKU1 (léptetendő érték) SRW // léptetés T MW 10 // AKKU1 -> MW10

70. Példaprogram SRW Az egyszerűbb példaprogram esetén az 500 értéket léptethetjük 4-szer jobbra, így az eredmény (500 / 2^4 ) 31 lesz, és ezt az MW10-ben találjuk meg.

UN T 12 // ha lefutott az idő SPB ide // bejut a végrehajtáshoz L MW 20 // MW20 értékét lépteti eggyel balra U M 1.0 // irányválasztó bit 0:jobbra, 1: balra SPB bal SRW 1 // irány: jobbra SPA tov bal: SLW 1 // irány: balra tov: T MW 20 // eredmény vissza L STW // státusz szó olvasása

Page 171: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 171. oldal

T MW 10 // státusz szó -> MW10 U M 1.0 // irányválasztó SPB ball U M 11.7 // státusz szó A1 = M 20.7 // ha jobbra, akkor elöl pótolja a kiesett bitet SPA tovv ball: U M 11.7 = M 21.0 // ha balra, akkor hátul pótolja a kiesett bitet tovv: NOP 0 ide: NOP 0 // ugrás vége L S5T#200MS // futás időzítés : 500 ms UN T 12 SE T 12

71. Példaprogram SRW <léptetés_szám> Ez a program az MW20 értékét forgatja az M1.0 bitnek megfelelő irányba (0: jobbra, 1:balra), és minden lépés után 200 ms-ot vár. (MW20 értékét például a VAT táblázatban lehet megadni, és bit szinten figyelemmel kísérni.) A program az SLW -t és az SRW –t is tartalmazza.

SLD (32 bites duplaszó balra léptetése) A 32 bites szó (DWORD) léptetése balra az AKKU1 területet mozgatja bitenként balra. A léptetett területet a művelet „0”-kal tölti fel. A léptetés során utoljára kimozgatott bitet a művelet a státusz szó A1 pozíciójába másolja. Amennyiben az SLD-hez nem adunk meg értéket, úgy az AKKU2-L-L értéke szerint hajtja végre a léptetést (lsd. első példaprogram). Ha az SLD <léptetés_szám> megadást alkalmazzuk, akkor a léptetés szám szerint hajtja végre a léptetéseket (második példaprogram). A megadott érték mindkét esetben 0 és 255 között lehet. Az A0 és OV státuszbitek is „0” értéket vesznek fel, ha sikerült ennek a kritériumnak a programunkban megfelelni. Ha a megadott léptetés szám > 32, akkor AKKU1-L = 0, A1 = 0, A0 = 0 és az OV = 0. A „0” léptetés szám esetén a művelet működése azonos a NOP műveletével (üres utasítás).

Az azonos irányú szó hosszú forgatás az SLW művelettel, az ellenkező irányú szó hosszú forgatás az SRW művelettel történik. ellenkező irányban duplaszó hosszon az SRD művelet végzi a léptetést.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 4 // AKKU2 (léptetések száma) L 500 // AKKU1 (léptetendő érték) SLD // léptetés T MD 10 // AKKU1 -> MD10

72. Példaprogram SLD Az egyszerűbb példaprogram esetén az 500 értéket léptethetjük 4-szer balra, így az eredmény (500 * 2^4 ) 8 000 lesz, és ezt az MD10-ben találjuk meg.

UN T 12 // ha lefutott az idő SPB ide // bejut a végrehajtáshoz

Page 172: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 172. oldal

L MD 20 // MD20 értékét lépteti eggyel balra U M 1.0 // irányválasztó bit 0:jobbra, 1: balra SPB bal SRD 1 // irány: jobbra SPA tov bal: SLD 1 // irány: balra tov: T MD 20 // eredmény vissza L STW // státusz szó olvasása T MW 10 // státusz szó -> MW10 U M 1.0 // irányválasztó SPB ball U M 11.7 // státusz szó A1 = M 20.7 // ha jobbra, akkor elöl pótolja a kiesett bitet SPA tovv ball: U M 11.7 = M 23.0 // ha balra, akkor hátul pótolja a kiesett bitet tovv: NOP 0 ide: NOP 0 // ugrás vége L S5T#200MS // futás időzítés : 500 ms UN T 12 SE T 12

73. Példaprogram SLD <léptetés_szám> Ez a program az MD20 értékét forgatja az M1.0 bitnek megfelelő irányba (0: jobbra, 1:balra), és minden lépés után 200 ms-ot vár. (MD20 értékét például a VAT táblázatban lehet megadni, és bit szinten figyelemmel kísérni.) A program az SLD –t és az SRD –t is egyaránt alkalmazza. A programban a léptetés műveletek a forgatás műveletekhez (RLD, RRD) hasonlóan működnek.

SRD (32 bites duplaszó jobbra léptetése) A 32 bites szó (DWORD) léptetése jobbra az AKKU1 területet mozgatja bitenként jobbra. A léptetett területet a művelet „0”-kal tölti fel. A léptetés során utoljára kimozgatott bitet a művelet a státusz szó A1 pozíciójába másolja. Amennyiben az SRD-hez nem adunk meg értéket, úgy az AKKU2-L-L értéke szerint hajtja végre a léptetést (lsd. első példaprogram). Ha az SRD <léptetés_szám> megadást alkalmazzuk, akkor a léptetés szám szerint hajtja végre a léptetéseket (második példaprogram). A megadott érték mindkét esetben 0 és 255 között lehet. Az A0 és OV státuszbitek is „0” értéket vesznek fel, ha sikerült ennek a kritériumnak a programunkban megfelelni. Ha a megadott léptetés szám > 32, akkor AKKU1-L = 0, A1 = 0, A0 = 0 és az OV = 0. A „0” léptetés szám esetén a művelet működése azonos a NOP műveletével (üres utasítás).

Az azonos irányú szó hosszú forgatás az SRW művelettel, az ellenkező irányú szó hosszú forgatás az SLW művelettel történik. ellenkező irányban duplaszó hosszon az SLD művelet végzi a léptetést.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 4 // AKKU2 (léptetések száma) L 500 // AKKU1 (léptetendő érték) SRD // léptetés

Page 173: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 173. oldal

T MD 10 // AKKU1 -> MD10 74. Példaprogram SRD

Az egyszerűbb példaprogram esetén az 500 értéket léptethetjük 4-szer balra, így az eredmény (500 / 2^4 ) 31 lesz, és ezt az MD10-ben találjuk meg.

UN T 12 // ha lefutott az idő SPB ide // bejut a végrehajtáshoz L MD 20 // MD20 értékét lépteti eggyel balra U M 1.0 // irányválasztó bit 0:jobbra, 1: balra SPB bal SRD 1 // irány: jobbra SPA tov bal: SLD 1 // irány: balra tov: T MD 20 // eredmény vissza L STW // státusz szó olvasása T MW 10 // státusz szó -> MW10 U M 1.0 // irányválasztó SPB ball U M 11.7 // státusz szó A1 = M 20.7 // ha jobbra, akkor elöl pótolja a kiesett bitet SPA tovv ball: U M 11.7 = M 23.0 // ha balra, akkor hátul pótolja a kiesett bitet tovv: NOP 0 ide: NOP 0 // ugrás vége L S5T#200MS // futás időzítés : 500 ms UN T 12 SE T 12

75. Példaprogram SRD <léptetés_szám> Ez a program az MD20 értékét forgatja az M1.0 bitnek megfelelő irányba (0: jobbra, 1:balra), és minden lépés után 200 ms-ot vár. (MD20 értékét például a VAT táblázatban lehet megadni, és bit szinten figyelemmel kísérni.) A program az SLD -t és az SRD –t is egyaránt alkalmazza. A programban a léptetés műveletek a forgatás műveletekhez (RLD, RRD) hasonlóan működnek.

Forgatás műveletek

A forgatási műveletekkel az AKKU1 tartalmát lehet bitszinten jobbra vagy balra forgatni. A forgatásnál a felszabaduló bit pozícióba tölti a másik oldalon „kieső” bit értékét. A forgatás teljes akkumlátor hosszon (32 bit) történik, némelyik művelet az A1 státusz bitet használja. A műveletek az A0-t „0”-ra állítják.

RLD Rotiere links Doppelwort (32 Bit) 32 bites duplaszó forgatása balra

RRD Rotiere rechts Doppelwort (32 Bit) 32 bites duplaszó forgatása jobbra

RLDA Rotiere Akku 1 links über A1-Anzeige (32 Bit) 32 bites duplaszó forgatása balra A1 bit jelzéssel

RRDA Rotiere Akku 1 rechts über A1-Anzeige (32 Bit

32 bites duplaszó forgatása jobbra A1 bit jelzéssel

175. Táblázat Forgatási műveletek

RLD (32 bites duplaszó forgatása balra) A művelet 32 bites duplaszó forgatását végzi bitenként balra. A forgatandó duplaszót az AKKU1-ből veszi, és az eredményt is ide másolja vissza. A „kieső” bitet a művelet az A1

Page 174: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 174. oldal

státuszbitbe másolja át. A forgatandó bitek számát vagy a <forgatás_szám> paraméterrel, vagy az AKKU2-L-L területen kell átadni a műveletnek. RLD <forgatás_szám>: A <forgatás_szám> paraméter adja meg a műveletnek, hogy hány bitet kell átforgatnia, és ez az érték 0 és 32 között lehet. Ha a megadott szám nagyobb, mint nulla, a művelet az A0 és OV státuszbiteket „0”-ra állítja. Amennyiben a <forgatás_szám> paraméter = 0, akkor a művelet egy NOP parancsnak felel meg. RLD: Az AKKU2-L-L tartalma adja meg a műveletnek, hogy hány bitet kell átforgatnia, és ez az érték 0 és 255 között lehet. Ha a megadott szám nagyobb, mint nulla, a művelet az A0 és OV státuszbiteket „0”-ra állítja. Amennyiben a megadott paraméter = 0, akkor a művelet egy NOP parancsnak felel meg.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 31 // AKKU2 (léptetések száma) L 500 // AKKU1 (léptetendő érték) RLD // léptetés T MD 10 // AKKU1 -> MD10

76. Példaprogram RLD Az AKKU2-L-L-be 31-et töltünk, és az 500-at 31 bit-tel balra forgatjuk. Ez egy kettővel való osztásnak felel meg, így az MD10-be 250-et kapunk eredményül.

UN T 12 // ha lefutott az idő SPB ide // bejut a végrehajtáshoz L MD 20 // MD20 értékét lépteti eggyel balra RLD 1 T MD 20 // az eredményt visszateszi az MD20-ba ide: NOP 0 L S5T#200MS // futás időzítés : 250 ms UN T 12 SE T 12

77. Példaprogram RLD <forgatás_szám>

RRD (32 bites duplaszó forgatása jobbra) A művelet 32 bites duplaszó forgatását végzi bitenként jobbra. A forgatandó duplaszót az AKKU1-ből veszi, és az eredményt is ide másolja vissza. A „kieső” bitet a művelet az A1 státuszbitbe másolja át. A forgatandó bitek számát vagy a <forgatás_szám> paraméterrel, vagy az AKKU2-L-L területen kell átadni a műveletnek. RRD <forgatás_szám>: A <forgatás_szám> paraméter adja meg a műveletnek, hogy hány bitet kell átforgatnia, és ez az érték 0 és 32 között lehet. Ha a megadott szám nagyobb, mint nulla, a művelet az A0 és OV státuszbiteket „0”-ra állítja. Amennyiben a <forgatás_szám> paraméter = 0, akkor a művelet egy NOP parancsnak felel meg. RRD: Az AKKU2-L-L tartalma adja meg a műveletnek, hogy hány bitet kell átforgatnia, és ez az érték 0 és 255 között lehet. Ha a megadott szám nagyobb, mint nulla, a művelet az A0 és OV státuszbiteket „0”-ra állítja. Amennyiben a megadott paraméter = 0, akkor a művelet egy NOP parancsnak felel meg.

Page 175: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 175. oldal

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 31 // AKKU2 (léptetések száma) L 500 // AKKU1 (léptetendő érték) RRD // léptetés T MD 10 // AKKU1 -> MD10

78. Példaprogram RRD Az AKKU2-L-L-be 31-et töltünk, és az 500-at 31 bit-tel jobbra forgatjuk. Ez egy kettővel való szorzásnak felel meg, így az MD10-be 1000-et kapunk eredményül.

UN T 12 // ha lefutott az idő SPB ide // bejut a végrehajtáshoz L MD 20 // MD20 értékét lépteti eggyel jobbra RRD 1 T MD 20 // az eredményt visszateszi az MD20-ba ide: NOP 0 L S5T#200MS // futás időzítés : 250 ms UN T 12 SE T 12

79. Példaprogram RRD <forgatás_szám>

RLDA (32 bites duplaszó forgatása balra) A művelet 32 bites duplaszó forgatását végzi bitenként balra. A forgatandó duplaszót az AKKU1-ből veszi, és az eredményt is ide másolja vissza. A „kieső” bitet a művelet az A1 státuszbitbe másolja át. A forgatandó bitek számát vagy a <forgatás_szám> paraméterrel, vagy az AKKU2-L-L területen kell átadni a műveletnek. RLDA <forgatás_szám>: A <forgatás_szám> paraméter adja meg a műveletnek, hogy hány bitet kell átforgatnia, és ez az érték 0 és 32 között lehet. Ha a megadott szám nagyobb, mint nulla, a művelet az A0 és OV státuszbiteket „0”-ra állítja. Amennyiben a <forgatás_szám> paraméter = 0, akkor a művelet egy NOP parancsnak felel meg. RLDA: Az AKKU2-L-L tartalma adja meg a műveletnek, hogy hány bitet kell átforgatnia, és ez az érték 0 és 255 között lehet. Ha a megadott szám nagyobb, mint nulla, a művelet az A0 és OV státuszbiteket „0”-ra állítja. Amennyiben a megadott paraméter = 0, akkor a művelet egy NOP parancsnak felel meg.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 31 // AKKU2 (léptetések száma) L 500 // AKKU1 (léptetendő érték) RLDA // léptetés T MD 10 // AKKU1 -> MD10

80. Példaprogram RLDA Az AKKU2-L-L-be 31-et töltünk, és az 500-at 31 bit-tel balra forgatjuk. Ez egy kettővel való osztásnak felel meg, így az MD10-be 250-et kapunk eredményül.

Page 176: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 176. oldal

UN T 12 // ha lefutott az idő SPB ide // bejut a végrehajtáshoz L MD 20 // MD20 értékét lépteti eggyel balra RLDA 1 T MD 20 // az eredményt visszateszi az MD20-ba ide: NOP 0 L S5T#200MS // futás időzítés : 250 ms UN T 12 SE T 12

81. Példaprogram RLDA <forgatás_szám>

RRDA (32 bites duplaszó forgatása jobbra) A művelet 32 bites duplaszó forgatását végzi bitenként jobbra. A forgatandó duplaszót az AKKU1-ből veszi, és az eredményt is ide másolja vissza. A „kieső” bitet a művelet az A1 státuszbitbe másolja át. A forgatandó bitek számát vagy a <forgatás_szám> paraméterrel, vagy az AKKU2-L-L területen kell átadni a műveletnek. RRDA <forgatás_szám>: A <forgatás_szám> paraméter adja meg a műveletnek, hogy hány bitet kell átforgatnia, és ez az érték 0 és 32 között lehet. Ha a megadott szám nagyobb, mint nulla, a művelet az A0 és OV státuszbiteket „0”-ra állítja. Amennyiben a <forgatás_szám> paraméter = 0, akkor a művelet egy NOP parancsnak felel meg. RRDA: Az AKKU2-L-L tartalma adja meg a műveletnek, hogy hány bitet kell átforgatnia, és ez az érték 0 és 255 között lehet. Ha a megadott szám nagyobb, mint nulla, a művelet az A0 és OV státuszbiteket „0”-ra állítja. Amennyiben a megadott paraméter = 0, akkor a művelet egy NOP parancsnak felel meg.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

L 31 // AKKU2 (léptetések száma) L 500 // AKKU1 (léptetendő érték) RRDA // léptetés T MD 10 // AKKU1 -> MD10

82. Példaprogram RRDA Az AKKU2-L-L-be 31-et töltünk, és az 500-at 31 bit-tel jobbra forgatjuk. Ez egy kettővel való szorzásnak felel meg, így az MD10-be 1000-et kapunk eredményül.

UN T 12 // ha lefutott az idő SPB ide // bejut a végrehajtáshoz L MD 20 // MD20 értékét lépteti eggyel jobbra RRDA 1 T MD 20 // az eredményt visszateszi az MD20-ba ide: NOP 0 L S5T#200MS // futás időzítés : 250 ms UN T 12 SE T 12

83. Példaprogram RRDA <forgatás_szám>

Időfunkciók

Page 177: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 177. oldal

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

L Lade aktuellen Zeitwert als Ganzzahl in AKKU 1

Időérték megadása AKKU1-be, egész szám formátumban

LC Lade aktuellen Zeitwert als BCD in AKKU 1

Időérték megadása AKKU1-be, BCD formátumban

R Rücksetze Timer Timer nullázása

SI Zeit als Impuls Impulzus időfunkció

SV Zeit als verlängerter Impuls Meghosszabbított impulzus időfunkció

SE Zeit als Einschaltverzögerung Bekapcsolás késleltetési időfunkció

SS Zeit als speichernde Einschaltver-zögerung

Tárolt bekapcsolás késleltetési időfunkció

SA Zeit als Ausschaltverzögerung Kikapcsolás késleltetési időfunkció

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

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - - - - - 0 - - 0

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

L (Időérték megadása AKKU1-be, egész szám formátumban) Formátuma L <idő> Az idő értékét betölti az AKKU1-L-be egész számként, miután lementette az AKKU1 és AKKU2 értékét. Betöltéskor a 0.-9. biten található a bináris formátumú számérték (0 – 999), és az 12. és 13. biten kerül megadásra az időalap (00: 10 ms, 01: 100 ms, 10: 1 s, 11: 10 s). Az AKKU1-L-be, csak az időérték kerül betöltésre, időalap nélkül. Az AKKU1-L-ből akkor is be kell tölteni az időértéket, ha az időfunkció nem kerül elindításra (VKE = 0).

BIE A1 A0 OV OS OR STA VKE /ER

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

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

Page 178: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 178. oldal

LC (Időérték megadása AKKU1-be, BCD formátumban) Formátuma: LC <idő> Az idő értékét betölti az AKKU1-L-be BCD-ként, miután lementette az AKKU1 és AKKU2 értékét. A megadott idő maximális értéke „999” lehet, ennek ábrázolására 12 bit (3*4) elegendő, az időalap 2 további biten kerül ábrázolásra, így az AKKU1-L felső 2 bitjét nem tölti ki a művelet.

BIE A1 A0 OV OS OR STA VKE /ER

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

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

R (Timer nullázása) Formátuma: R <idő> A művelet megszakítja az elindított időfunkció futását, és törli annak időértékét. Az indítása akkor történik, amikor a VKE státusz bit értéke „0”-ról „1”-re vált.

BIE A1 A0 OV OS OR STA VKE /ER

Írja: - - - - - 0 - - 0

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

SI (Impulzus időfunkció) Formátuma: SI <idő>

Idő indítása

Idő nullázása

Idő lefutás

Kimenet

Időérték

időtartam

1 2 3 4 5 6 7

időtartam időtartam időtartam

SI Impulzus időfunkció

www.campanella.huS7 Simatic időfunkciók 1: időfunkció indítása 2: időfunkció „rendes” lefutása,az indító bit a lefutás alatt „1”, és csak később „0” 3: időfunkció indítása 4: időfunkció indító bitjének a lefutás előtti visszavétele

Page 179: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 179. oldal

5: időfunkció indítása 6: időfunkció futásának megszakítása reset-tel 7: reset kint van és az időfunkciót megkíséreljük indítani

85. ábra SI funkció diagramm

SV (Meghosszabbított impulzus időfunkció)

Idő indítása

Idő nullázása

Idő lefutás

Kimenet

Időérték

1 2 3 4 5 7 8

SV Meghosszabbított impulzus időfunkció

www.campanella.huS7 Simatic időfunkciók

9 10

időtartam időtartam időtartamidőtartam

6

időtartam

1: időfunkció indítása 2: időfunkció „rendes” lefutása,az indító bit a lefutás alatt „1”, és csak később „0” 3: időfunkció indítása 4: időfunkció indító bitjének a lefutás előtti visszavétele, az idő ennek ellenére lefut 5: időfunkció indítása 6: időfunkció ismételt indítása („beleindítás”). Az időzítés újból indul 7: ismételt időfunkció lefutása. A két időfunkció futásideje összeadódott. 8: időfunkció indítása 9: időfunkció futásának megszakítása reset-tel 10: reset kint van és az időfunkciót megkíséreljük indítani

86. ábra SV funkció diagramm

SE (Bekapcsolás késleltetési időfunkció)

Page 180: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 180. oldal

Idő indítása

Idő nullázása

Idő lefutás

Kimenet

Időérték

időtartam

1 2 4 5 6 7 8

időtartam időtartam időtartam

SE Bekapcsolás késleltetési időfunkció

www.campanella.huS7 Simatic időfunkciók

3

1: időfunkció indítása 2: időfunkció „rendes” lefutása,az indító bit a lefutás alatt „1” 3: idő indítása „0”-ra. Amint lefutott az idő, és ez a bit „1”, addig a kimenet is „1”. 4: időfunkció indítása 5: időfunkció indító bitjének a lefutás előtti visszavétele 6: időfunkció indítása 7: időfunkció futásának megszakítása reset-tel 8: reset kint van és az időfunkciót megkíséreljük indítani

87. ábra SE funkció diagramm SS () Tárolt bekapcsolás késleltetési időfunkció SA () Kikapcsolás késleltetési időfunkció

Page 181: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 181. oldal

Simatic Manager

88. ábra SIMATIC Manager menüsor

Neue(s) Projekt / Bibliothek Új projekt / könyvtár

Projekt/Bibliothek öffnen Projekt / könyvtár nyitása

Erreichbare Teilnehmer Elérhető egységek

Memory card Memóriakártya

Ausschneiden Kivágás (cut)

Kopieren Másolás (copy)

Einfügen Beillesztés (paste)

Laden Letöltés (download)

Offline / Online Offline / online

Liste Ansicht Listázás módja

Filtern Szűrők

Page 182: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 182. oldal

Netz konfigurieren Hálózat konfigurálása

Simulation ein/aus Szimuláció be/ki

Fenster Anordnen Ablakok elhelyezése

Hilfe Segítség

184. Táblázat SIMATIC Manager nyomógombok

89. ábra SIMATIC Manager objektum hierarchia

SDB - Systemdaten

OB – Organisationsbaustein

FC – Funktionen

FB - Funktionsbausteine

UDT – Anwenderdefinierte Datentypen

DB – Globale Adatblokk művelete

SFC - Systemfunktionen

SFB - Systemfunktionsbausteine

Page 183: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 183. oldal

Diagnosefaehiger Baustein

Baustein mit KNOW-HOW Schutz

Baustein wurde mit der Erstellsprache F-FUP/- KOP/-AWL/-DB erstellt

VAT (Variablentabelle)

Page 184: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 184. oldal

Page 185: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 185. oldal

Melléklet

Teljes Simatic AWL utasításkészlet

Német

szintaktika Angol

szintaktika Művelet / funkció Leírása

= = Bit művelet Összehasonlítás

) ) Bit művelet Zárójel zárása

*D *D Egész szám művelet

AKKU1 és AKKU2 szorzása 32 bites egész számként (DINT)

*I *I Egész szám művelet

AKKU1 és AKKU2 szorzása 16 bites egész számként (INT)

*R *R Tizedes tört funkció AKKU1 és AKKU2 szorzása 32 bites törtszámként (REAL)

/D /D Egész szám művelet

AKKU2 osztása AKKU1-el 32 bites egész számként (DINT)

/I /I Egész szám művelet

AKKU2 osztása AKKU1-el 16 bites egész számként (INT)

/R /R Tizedes tört funkció AKKU2 osztása AKKU1-el 32 bites törtszámként (REAL)

? D ? D Összehasonlítás 32 bites egész számok (DINT) összehasonlítása ==, <>, >, <, >=, <=

? I ? I Összehasonlítás 16 bites egész számok (INT) összehasonlítása ==, <>, >, <, >=, <=

? R ? R Összehasonlítás 32 bites törtszámok (REAL) összehasonlítása ==, <>, >, <, >=, <=

+ + Egész szám művelet

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

+AR1 +AR1 Akkumulátor AKKU1 hozzáadása az 1. címregiszterhez

+AR2 +AR2 Akkumulátor AKKU1 hozzáadása a 2. címregiszterhez

+D +D Egész szám művelet

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

+I +I Egész szám művelet

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

+R +R Tizedes tört funkció AKKU1 és AKKU2 összeadása 32 bites törtszámként (REAL)

-D -D Egész szám művelet

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

-I -I Egész szám AKKU2 kivonása az AKKU1-ből 16 bites

Page 186: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 186. oldal

Német szintaktika

Angol szintaktika

Művelet / funkció Leírása

művelet egész számként (INT)

-R -R Tizedes tört funkció AKKU2 kivonása az AKKU1-ből 32 bites törtszámként (REAL)

ABS ABS Tizedes tört funkció Törtszám abszolút értéke (REAL)

ACOS ACOS Tizedes tört funkció Arcus cosinus képzése (REAL)

ASIN ASIN Tizedes tört funkció Arcus sinus képzése (REAL)

ATAN ATAN Tizedes tört funkció Arcus tangens képzése (REAL)

AUF OPN Adatblokk művelet DB kijelölése

BE BE Programvezérlés Blokk vége

BEA BEU Programvezérlés Blokk vége feltétel nélkül

BEB BEC Programvezérlés Feltételes blokk vége

BLD BLD Akkumulátor Képkezdés (helytartó parancs)

BTD BTD Transzformáció BCD átalakítása 32 bites egész számmá (DINT)

BTI BTI Transzformáció BCD átalakítása 16 bites egész számmá (INT)

CALL CALL Programvezérlés Eljárás hívása könyvtárból

CALL CALL Programvezérlés Eljárás hívása

CALL CALL Programvezérlés Multi instanz hívása

CC CC Programvezérlés Feltételes eljáráshívás

CLR CLR Bit művelet VKE nullázása (=0)

COS COS Tizedes tört funkció Cosinus képzése (REAL)

DEC DEC Akkumulátor AKKU 1 csökkentése

DTB DTB Transzformáció 32 bites egész szám átalakítása BCD-vé (BCD)

DTR DTR Transzformáció 32 bites egész szám átalakítása 32 bites törtszámmá (REAL)

ENT ENT Akkumulátor AKKU-Stack feltöltése (ENTER)

EXP EXP Tizedes tört funkció Exponenciális értékképzése (REAL)

FN FN Bit művelet Negatív flanke (lefutóél)

Page 187: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 187. oldal

Német szintaktika

Angol szintaktika

Művelet / funkció Leírása

FP FP Bit művelet Pozitív flanke (felfutóél)

FR FR Idő funkció Timer szabadon hagyása (Freigabe)

FR FR Számláló funkció Számláló szabadon hagyása (Freigabe)

INC INC Akkumulátor AKKU1 növelése

INVD INVD Transzformáció Egyszeres komplementer (DINT)

INVI INVI Transzformáció Egyszeres komplementer (INT)

ITB ITB Transzformáció 16 bites egész szám átalakítása BCD-vé (BCD)

ITD ITD Transzformáció 16 bites egész szám átalakítása 32 bites egész számmá (DINT)

L DBLG L DBLG Adatblokk művelet Globális DB hosszának a másolása AKKU1-be

L DBNO L DBNO Adatblokk művelet Globális DB számának a másolása AKKU1-be

L DILG L DILG Adatblokk művelet Instant DB hosszának a másolása AKKU1-be

L DINO L DINO Adatblokk művelet Instant DB számának a másolása AKKU1-be

L L Betöltés/mozgatás Betöltés (LOAD/LADE)

L L Számláló funkció Az aktuális számláló értékének a betöltése egész számként AKKU1-be

L L Idő funkció Az aktuális idő értékének a betöltése egész számként AKKU1-be

L STW L STW Betöltés/mozgatás Státusz-szó (STATUS WORD) betöltése az AKKU1-be

LAR1 LAR1 Betöltés/mozgatás A 2. címregiszter tartalmának a betöltése az 1. címregiszterbe

LAR1 LAR1 Betöltés/mozgatás Az 1. címregiszter feltöltése AKKU1-ből

LAR1 LAR1 Betöltés/mozgatás Az 1. címregiszter betöltése pointerrel

LAR2 LAR2 Betöltés/mozgatás Az 2. címregiszter betöltése 32 bites egész számmal

LAR2 LAR2 Betöltés/mozgatás Az 2. címregiszter betöltése AKKU1-ből

LC LC Számláló funkció Az aktuális számlálóérték betöltése BCD formában az AKKU1-be

Page 188: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 188. oldal

Német szintaktika

Angol szintaktika

Művelet / funkció Leírása

LC LC Idő funkció Az aktuális időérték betöltése BCD formában az AKKU1-be

LEAVE LEAVE Akkumulátor AKKU Verem ürítése

LN LN Tizedes tört funkció Természetes logaritmus képzése (REAL)

LOOP LOOP Ugrás művelet Programciklus

MCR( MCR( Programvezérlés MCR verem nyitása

)MCR )MCR Programvezérlés MCR verem zárása

MCRA MCRA Programvezérlés MCR verem aktiválása

MCRD MCRD Programvezérlés MCR verem deaktiválása

MOD MOD Egész szám művelet

Osztási maradék (DINT)

NEGD NEGD Transzformáció 32 bites egész szám kettes komplementer (DINT)

NEGI NEGI Transzformáció 16 bites egész szám kettes komplementer (INT)

NEGR NEGR Transzformáció Törtszám negálása (REAL)

NOP 0 NOP 0 Akkumulátor Null operáció 0 (helytartó parancs)

NOP 1 NOP 1 Akkumulátor Null operáció 1 (helytartó parancs)

NOT NOT Bit művelet VKE negálása

O O Bit művelet VAGY

O O Bit művelet Az első és, mint vagy

O( O( Bit művelet Vagy zárójel nyitással

OD OD Szavak összevetése

Vagy duplaszó (DWORD)

ON ON Bit művelet VAGY NEM

ON( ON( Bit művelet Vagy nem zárójel nyitással

OW OW Szavak összevetése

Vagy szó (WORD)

POP POP Akkumulátor POP CPU 4 AKKU-val

POP POP Akkumulátor POP CPU 2 AKKU-val

Page 189: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 189. oldal

Német szintaktika

Angol szintaktika

Művelet / funkció Leírása

PUSH PUSH Akkumulátor PUSH CPU 4 AKKU-val

PUSH PUSH Akkumulátor PUSH CPU 2 AKKU-val

R R Bit művelet RESET

R R Idő funkció Időfunkció reset

R R Számláló funkció Számláló reset

RLD RLD Forgatás Duplaszó forgatása balra (DWORD)

RLDA RLDA Forgatás Duplaszó forgatása balra (DWORD), A1 kijelzéssel

RND RND Transzformáció Törtszám kerekítése egész számra (DINT)

RND– RND– Transzformáció Törtszám kerekítése a nála a tizedesrésszel kisebb egész számra (DINT)

RND+ RND+ Transzformáció Törtszám kerekítése a nála a tizedesrésszel nagyobb egész számra (DINT)

RRD RRD Forgatás Duplaszó forgatása jobbra (DWORD)

RRDA RRDA Forgatás Duplaszó forgatása jobbra (DWORD), A1 kijelzéssel

S S Bit művelet SET

S S Számláló funkció Számláló beállítása

SA SF Idő funkció Kikapcsolás késleltetetett idő

SAVE SAVE Bit művelet VKE mentése a BIE-be

SE SD Idő funkció Bekapcsolás késleltetett idő

SET SET Bit művelet Állítás

SI SP Idő funkció Impulzus idő

SIN SIN Tizedestört funkció Sinus képzése (REAL)

SLD SLD Léptetés Duplaszó léptetése balra (DWORD)

SLW SLW Léptetés Szó léptetése balra (WORD)

SPA JU Ugrás művelet Feltétel nélküli ugrás

SPB JC Ugrás művelet Feltételes ugrás, ha VKE = 1

SPBB JCB Ugrás művelet Feltételes ugrás, ha VKE = 1, és a VKE másolása BIE-be

Page 190: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 190. oldal

Német szintaktika

Angol szintaktika

Művelet / funkció Leírása

SPBI JBI Ugrás művelet Feltételes ugrás, ha BIE = 1

SPBIN JNBI Ugrás művelet Feltételes ugrás, ha BIE = 0

SPBN JCN Ugrás művelet Feltételes ugrás, ha VKE = 0

SPBNB JNB Ugrás művelet Feltételes ugrás, ha VKE = 0, és a VKE másolása BIE-be

SPL JL Ugrás művelet Ugráslista

SPM JM Ugrás művelet Feltételes ugrás, ha az eredmény < 0

SPMZ JMZ Ugrás művelet Feltételes ugrás, ha az eredmény <= 0

SPN JN Ugrás művelet Feltételes ugrás, ha az eredmény <> 0

SPO JO Ugrás művelet Feltételes ugrás, ha az OV = 1

SPP JP Ugrás művelet Feltételes ugrás, ha az eredmény > 0

SPPZ JPZ Ugrás művelet Feltételes ugrás, ha az eredmény >= 0

SPS JOS Ugrás művelet Feltételes ugrás, ha az OS = 1

SPU JUO Ugrás művelet Feltételes ugrás, ha az eredmény érvénytelen

SPZ JZ Ugrás művelet Feltételes ugrás, ha az eredmény = 0

SQR SQR Tizedes tört funkció Négyzetre emelés (REAL)

SQRT SQRT Tizedes tört funkció Gyökvonás (REAL)

SRD SRD Léptetés Duplaszó léptetése jobbra (DWORD)

SRW SRW Léptetés Szó léptetése jobbra (WORD)

SS SS Idő funkció Halmozott bekapcsolás késleltetett idő

SSD SSD Léptetés 32 bites egész szám előjelhelyes léptetése jobbra

SSI SSI Léptetés 16 bites egész szám előjelhelyes léptetése jobbra

SV SE Idő funkció Impulzus hosszabbított idő

T T Betöltés/mozgatás Mozgatás

T STW T STW Betöltés/mozgatás AKKU1 mozgatása a státusz szóba (STATUSWORD)

TAD CAD Transzformáció A byte sorrend megfordítása 32 bit hosszan

Page 191: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 191. oldal

Német szintaktika

Angol szintaktika

Művelet / funkció Leírása

az AKKU1-ben

TAK TAK Akkumulátor AKKU1 és AKKU2 tartalmának cseréje

TAN TAN Tizedes tört funkció Tangens (REAL)

TAR CAR Betöltés/mozgatás 1. és 2. címregiszter tartalmának a cseréje

TAR1 TAR1 Betöltés/mozgatás 1. címregiszter mozgatása a 2. címregiszterbe

TAR1 TAR1 Betöltés/mozgatás 1.címregiszter mozgatása AKKU1-be

TAR1 TAR1 Betöltés/mozgatás 1.címregiszter mozgatása a célcímre (32 bit pointer)

TAR2 TAR2 Betöltés/mozgatás 2.címregiszter mozgatása AKKU1-re

TAR2 TAR2 Betöltés/mozgatás 2.címregiszter mozgatása a célcímre (32 bit pointer)

TAW CAW Transzformáció A byte sorrend megfordítása 16 bit hosszan az AKKU1-L-ben

TDB CDB Adatblokk művelet Globál DB és Instant DB cseréje

TRUNC TRUNC Transzformáció Törtszám kerekítése csonkolással egész számra (DINT)

U A Bit művelet ÉS

U( A( Bit művelet És zárójel nyitással

UC UC Programvezérlés Feltétel nélküli eljáráshívás

UD AD Szavak összevetése

És duplaszó (DWORD)

UN AN Bit művelet ÉS NEM

UN( AN( Bit művelet És nem zárójel nyitással

UW AW Szavak összevetése

És szó (WORD)

X X Bit művelet KIZÁRÓ VAGY

X( X( Bit művelet Kizáró vagy zárójel nyitással

XN XN Bit művelet Kizáró vagy nem

XN( XN( Bit művelet Kizáró vagy nem zárójel nyitással

XOD XOD Szavak Kizáró vagy duplaszó (DWORD)

Page 192: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 192. oldal

Német szintaktika

Angol szintaktika

Művelet / funkció Leírása

összevetése

XOW XOW Szavak összevetése

Kizáró vagy szó (WORD)

ZR CD Számláló funkció Számláló visszaszámlálás

ZV CU Számláló funkció Számláló (előre)számlálás

Page 193: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 193. oldal

BCD

Kettes komplementer képzés

A kettes komplementer képzés a rettenetes elnevezés ellenére nem bonyolult eljárás. Az INT és DINT típusoknál alkalmazzuk. Vegyük lépésről lépésre:

1. Adva van egy ábrázolandó számértékünk (pl. -10).Ezt akarjuk INT-be leírni) 2. Ha a szám pozitív, egyszerűen leírjuk binárisan, és kész is vagyunk. 3. Ha nulla, szintúgy nincs teendőnk. 4. Ha negatív, akkor adjon hozzá egyet. (-10 -9). 5. Írja le a számot (az előjellel ne foglalkozzon a továbbiakban) binárisan:

(0000_0000_0000_1001). 6. Forgassa át az összes bitet (0 1, 1 0) . (1111_1111_1111_0110). 7. Ennyi.

Néhány példa, hogy a technikát kissé „be tudja járatni”: Szám (decimális formá-ban)

INT (bináris formában)

100 2#0000_0000_0110_0100 10 2#0000_0000_0000_1010 2 2#0000_0000_0000_0010 1 2#0000_0000_0000_0001 0 2#0000_0000_0000_0000 -1 2#1111_1111_1111_1111 -2 2#1111_1111_1111_1110 -10 2#1111_1111_1111_0110 -100 2#1111_1111_1001_1100

185. Táblázat Példák a kettes komplementer képzésre A kettes komplementer képzést az alábbi típusok alkalmazzák:

• INT • DINT • TIME

Page 194: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 194. oldal

Néhány S7-400 plc összehasonlítása

CPU

41

6-2

DP

0.8/

1.6

Mby

tes

58

CPU

41

6-1

512

Kby

tes

16 K

byte

s

512

byte

s ea

ch

1310

72

8192

1638

4 M

0.0

to M

204

7.7

512

C 0

to C

511

512

T 0

to T

511

16 K

byte

s in

tota

l

44

2048

2048

4095

24

512

55

CPU

41

4-2

DP

128/

384

Kby

tes

58

CPU

41

4-1

128

Kbyt

es

8 Kb

ytes

6553

6

4096

8192

M

0.0

to M

102

3.7

8 K

byte

s in

tota

l

31

512

1024

1023

24

512

55

CPU

41

3-2

DP

58

CPU

41

3-1 72

Kby

tes

CPU

41

2-1

48 K

byte

s

8 Kb

ytes

up to

15

Mby

tes

2 Kb

ytes

1638

4

1024

4096

M

0.0

to M

511

.7

256

C 0

to C

255

256

T 0

to T

255

4 K

byte

s in

tota

l

23

256

256

511

24

512

55

inte

grál

t

Bőv

íthető

Mun

kam

emór

ia

(Wor

k m

emor

y)

Load

mem

ory

I/O c

ímte

rüle

t

DI /

DO

max

.

AI /

AO

max

.

Bitm

emór

ia

Cou

nter

s

Tim

ers

Loca

l dat

a

OB

s

FBs

FCs

DB

s

SFB

s

SD

Bs

SFC

s

Page 195: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 195. oldal

Ascii kódtábla

Page 196: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 196. oldal

Szótár, rövidítések

AS 511 Kommunikációs protokoll a programozókészülék és az S5 plc között

AS-I AS-Interface (Actuator Sensor Interface) Jeladó és szenzor interfész

AS-I

ASCII American Standard Code for Information Interchange

ASIC Application Specific Integrated Circuit Felhasználás specifikus integrált áramkör

CNC A CNC (Computer Numerical Control) olyan számvezérlésű berendezés, amely szabadon programozható mikroszámítógépet is tartalmaz. Működését alapvetően a beépített mikroszámítógép programozása határozza meg. Ezt a programot - kitörlődés ellen biztonságosan védve - a vevő készen kapja, ami a CNC-berendezés üzemprogramja (szoftvere). A szerszámgép állandóan optimálisan működtethető, mivel a CNC több részegységet vezérel, felügyel a kenésidőre, a holtjáték kivételére, a biztonsági reteszelésekre, az általános hibaállapot kijelzésére. A CNC gép külső jegyeiben is eltér a kézi működtetésű gépektől. A képernyő a program kijelzésére és a billentyűzet a program beadására, illetve módosítására. Robosztus, merev felépítésű, jellemzője a gépet beborító burkolat. Nincsenek, vagy nem a megszokott helyen találhatók a kézi vezérlőelemek. Speciális konstrukciós megoldásokkal is találkozni, hol a szerkezeti elemek hasonlóak, de a gép felépítése eltérő (pl. NC vagy CNC lézersugaras kivágó, lángvágó, lemezdaraboló).

CPU Central Processing Unit

CREF Communication REFerence Kommunikációs referencia: a kommunikációs viszony helyi rövid megnevezése.

CRL Communication Reference List Kommunikációs referencia lista: a CRL az állomás összes kommunikációs viszonyának listáját tartalmazza.

DC Direct current egyenáram

DP Decentralized periphery vagy Distributed Control 1) Decentralizált periféria 2) Elosztott vezérlés

Profibus DP

DPM1 DP Master (class 1) A DPM1 a PROFIBUS-DP központi programozható kontrollere.

DPM2 DP Master (class 2) A DPM2 a PROFIBUS-DP konfigurációs berendezése.

EMC Electromagnetic Compatibility Elektromágneses környezeti feltételek

Page 197: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 197. oldal

EN European Norm (Standard) Európai szabvány

FDL Fieldbus Data Link Az FDL (field-busz adat link) a PROFIBUS adatbiztonsági rétege

FMS Fieldbus Message Specification FMS (terepi-busz üzenetspecifikáció) a PROFIBUS-FMS-ben definiálja a felhasználás szolgáltatásait.

HMI Human Machine Interface Ember-gép interfész: az operátor irányító és megfigyelő berendezései.

IEC International Electrotechnical Commission

ILM Infrared Link Module Infravörös kapcsolatmodul

PROFIBUS ILM

ISO International Standards Organization Nemzetközi Szabványügyi Szervezet

ISO/OSI International Standards Organization/ Open System Interconnection Nemzetközi Szabványügyi Szervezet/ nyílt rendszerek összekapcsolása

ISO/OSI referencia modell AS-I ISO/OSI

LLI Lower Layer Interface

LCD Liquid Crystal Display

LED Light Emitting Diode

MMS Manufacturing Message Specification, ISO 9506

MPI Multipoint Interface (SIMATIC S7) MPI

OLM Optical link module Optikai kapcsolatmodul

Profibus OLM

OP Operator Panel

NC Az NC - technika, amely a Numerical Control angol szavak kezdőbetűiből származik és a magyar fordítása "számvezérlés". A szerszámgépet számok és betűk programozásával vezéreljük. A működtető program tetszőlegesen változtatható, ismételhető és megfelelő formában tárolható.

PA Process Automation A PA (folyamat automatizálás) a PROFIBUS megoldása a folyamat automatizálásra.

Profibus PA

PC Personal Computer

PCL Printer Control Language

Page 198: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 198. oldal

PG Programming device

PLC Programable Logic Controller

Profibus A PROFIBUS gyártó-független, nyílt terepbusz szabvány széleskörű alkalmazási területtel. A gyártó-függetlenséget és a nyíltságot az EN 50 170 PROFIBUS szabvány garantálja.

Profibus

TCP/IP Transmission Control Protocol / Internet Protocol

TFT Thin Film Transistor

TP Touch Panel

UPS Uninterruptible Power Supply

VFD Virtual Field Device A VFD (virtuális field berendezés) a valós berendezés egy része, ami kommunikációval elérhetõ.

186. Táblázat Szótár, rövidítések

Csatlakozók

PG/OP Csatlakozó (9 tűs Sub D)

Pin Neve Ami a feladata

1 - -

2 M24V Chassis 24 V

3 RxD/TxD-P Data line B

4 RTS Request To Send

5 M5V2 Data reference potential (from station)

6 P5V2 Power supply plus (from station)

7 P24V 24 V

8 RxD/TxD-N Data line A

9 - - 187. Táblázat PG/OP Sub D pin kiosztás

Források

Fejezet Forrás megnevezése Honlap

AS-I

Budapesti Műszaki Egyetem Irányítástechnika és Informatika Tanszék honlapja

http://www.iit.bme.hu/traficc

CAN Budapesti Műszaki Egyetem http://www.iit.bme.hu/traficc

Page 199: 128473626 Simatic Hardware Alapok 04

Simatic S7 programozás gyakorlata – munkapéldány (V1.1) Minden jog fenntartva, Vámos Sándor Hibabejentés meg miegyéb: [email protected] összesen: 199 On-line fórum: http://www.plcsourcecode.com 199. oldal

Irányítástechnika és Informatika Tanszék honlapja

Profibus Profibus oldal http://www.profibus.com/pb/technology

Budapesti Műszaki Egyetem Irányítástechnika és Informatika Tanszék honlapja

http://www.iit.bme.hu/traficc

188. Táblázat Forrásmegjelölés