itnc 530 oktatás · 2018-12-26 · (call lbl n rep n) 2 ezután az lbl n utasítással...

10
Programszervezés Bevezetés Programrész ismétlése Alprogram hívása Program hívása alprogramként Egymásbaágyazás

Upload: others

Post on 13-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: iTNC 530 oktatás · 2018-12-26 · (CALL LBL n REP n) 2 Ezután az LBL n utasítással megcímkézett mondattól újra végrehajtja a prog-ramrészt annyiszor, amennyi a REP utasításban

ProgramszervezésBevezetésProgramrész ismétléseAlprogram hívásaProgram hívása alprogramkéntEgymásbaágyazás

Page 2: iTNC 530 oktatás · 2018-12-26 · (CALL LBL n REP n) 2 Ezután az LBL n utasítással megcímkézett mondattól újra végrehajtja a prog-ramrészt annyiszor, amennyi a REP utasításban

Bevezetés, alapfogalmakA programhívás, az alprogramok használata és a programrész ismétlések lehetõvé teszik, hogy az egyszer leprogramozottmegmunkálási mûveletsort a programban -ahányszor csak szükséges- ismételten végrehajtsa.

MegjegyzésEgy alkatrész megmunkálását lehetõleg egyetlen programmal célszerû megvalósítani. Ilyenkor a program dokumentálása,biztonságos archiválása lényegesebben egyszerûbb, mintha egy fõprogramból és több -a fõprogramból hívott- alprogrambólépítenénk fel azt. A HEIDENHAIN ezt a szemléletet a programrész ismétlések és alprogram hívások programon belüli meg -valósításával hatékonyan támogatja.

CímkékA HEIDENHAIN programok sorainak sorszámozása nem használha-tó programszervezési feladatokra, a programban nem tudunk hivat-kozni ezekre. A hivatkozásokhoz címkéket kell használnunk. Az al-programok és programrész ismétlések kezdetét címkék ( LBL) jelzikaz alkatrészprogramban.A címkéket egy 1 és 999 közötti szám vagy egy szabadon megadottnév azonosítja. A megadható címkeneveknek csak a belsõ memóriaszab határt.Egy címke (szám vagy név) csak egyszer használható a program-ban. Kivétel a speciális 0 címke (LBL 0), ami kizárólag az alprog-ramok végét jelzi és ezért minden alprogram végén szerepel a prog-ramban. A LBL 0 nem használható alprogram vagy programrészmegjelölésére!Ha egy címkenév vagy -szám többször is szerepel, akkor a TNC hi-baüzenetet küld. Nagyon hosszú programoknál korlátozhatja a figyeltmondatok számát. Az MP7229 gépi paraméterrel beállíthatja a cím-ke ismételt elõfordulásának figyelési határát.

A címke megadása a gombbal kezdeményezhetõ. A megjelenõ funkcióbillentyûkkel választhat címkeszám, vagy -név

bevitele között, illetve betûk megadásával címkenév bevitelre vált. A címkenevet automatikusan idézõjelek közé rakja a vezér-lõ. A címke száma és neve azonos értéknél is különbözik, azaz a LBL 5 és LBL "5" két különbözõ címkét jelöl.

Page 3: iTNC 530 oktatás · 2018-12-26 · (CALL LBL n REP n) 2 Ezután az LBL n utasítással megcímkézett mondattól újra végrehajtja a prog-ramrészt annyiszor, amennyi a REP utasításban

Programrész ismétlésA programrész ismétléssel az alkatrészprogram egy kijelölt részét ismételten vég-rehajthatjuk. Növekményes programozással összekapcsolva kiválóan alkalmastöbbszöri fogásvétellel történõ megmunkálásra (L IZ...), vagy mintázatok eltolására(CYCL DEF 7.0 ... IX...).

0 BEGIN PGM ...: ...: ...: LBL 6: ...: ...: CALL LBL 6 REP 2: ...: ...: END PGM ...

1

2

3

2/1 2/2Az imételtetni kívánt programrész kezdetét egy címkével kell megjelölni.

A programrész végén kell megadni a programrész ismétlést -hivatkozva akezdetet jelölõ címkére- és az ismétlési számot.

Végrehajtási sorrend1 A vezérlés végrehajtja az alkatrészprogramot egészen a programrész végéig

(CALL LBL n REP n )2 Ezután az LBL n utasítással megcímkézett mondattól újra végrehajtja a prog-

ramrészt annyiszor, amennyi a REP utasításban szerepel3 A vezérlés az utolsó ismétlés után folytatja az alkatrészprogramot

Megjegyzések- Egy programrész legfeljebb 65534 alkalommal ismételhetõ meg- A vezérlés mindig eggyel többször hajtja végre a programrészt, mint ahány ismétlésszám a REP után áll

Page 4: iTNC 530 oktatás · 2018-12-26 · (CALL LBL n REP n) 2 Ezután az LBL n utasítással megcímkézett mondattól újra végrehajtja a prog-ramrészt annyiszor, amennyi a REP utasításban

Alprogram hívás

1

3

2 (alprogram)

0 BEGIN PGM ...: ...: ...: CALL LBL 4: ...: ...: M30: LBL 4: ...: ...: LBL 0: END PGM ...

Az alprogram olyan programrész, mely az alkatrészprogram tetszõleges helyérõlmeghívható. Alkalmas például egy kontúr leírására, melyet különbözõ szerszámmalés technológiával többször is meg kell munkálni.

Az alprogram kezdetét egy címke jelöli.

Az alprogramot a címkeszámával vagy -nevével hivatkozva, ismétlésszám(REP) nélkül kell meghívni.

Végrehajtási sorrend1 A vezérlés végrehajtja az alkatrészprogramot egészen addig a mondatig, ahol az

alprogram hívása (CALL LBL n ) szerepel2 A végrehajtás az alprogram kezdetét jelzõ címkétõl (LBL n) egészen az alprog-

ram végét jelzõ (LBL 0) utasításig tart, majd visszaugrik az alprogram hívásautáni sorra

3 A vezérlés folytatja az alkatrészprogramot a végrehajtást lezáró M30 utasításig

Megjegyzések- A fõprogram legfeljebb 254 alprogramot tartalmazhat- Az alprogramok tetszõleges sorrendben és alkalommal meghívhatók- Egy alprogram nem hívhatja meg önmagát (nincs rekurzív hívás)- Az alprogramok a fõprogram után állnak (célszerûen a fõprogramot lezáró M2 vagy M30 mondatot követõen)- Ha az alprogramok az M2 vagy az M30 funkciót tartalmazó mondat elõtt állnak, a vezérlõ legalább egyszer végrehajtja

azokat még akkor is, ha egyébként nem hívta meg

Minden alprogram végét a speciális LBL 0 címke jelöli.

Page 5: iTNC 530 oktatás · 2018-12-26 · (CALL LBL n REP n) 2 Ezután az LBL n utasítással megcímkézett mondattól újra végrehajtja a prog-ramrészt annyiszor, amennyi a REP utasításban

Program hívása alprogramként

1

3

0 BEGIN PGM A ...: ...: ...: ...: ...: CALL PGM B: ...: ...: ...: ...: ...: END PGM A ...

0 BEGIN PGM B ...: ...: ...: ...: ...: END PGM B ...

2 (alprogram)

Egy másik program -mint alprogram- az alkatrészprogram tetszõlegeshelyérõl meghívható.

Program hívás

Végrehajtási sorrend1 A vezérlés végrehajtja az alkatrészprogramot egészen addig a mondatig,

ahol az alprogram hívása (CALL PGM név) szerepel2 A végrehajtás a másik program elejétõl folytatódik egészen a végéig,

majd visszaugrik az alprogram hívása utáni sorra3 A vezérlés folytatja az alkatrészprogramot a végéig

Megjegyzések- Nincs szükség címkére az alprogram hívásához- A hívott program nem tartalmazhat M2 vagy M30 utasítást- Az alprogram nem hívhatja meg önmagát, vagy a hívó programot, mert az végtelen ciklust eredményezne- A meghívott programnak a vezérlés merevlemezén kell lennie- Ha a meghívott és a hívó program ugyanabban a könyvtárban van, akkor elegendõ csak a program nevét megadni- Ha a meghívott és a hívó program különbözõ könyvtárban vannak, akkor meg kell adni a teljes elérési utat- Ha DIN/ISO programot hív meg, akkor a fájl típusát is meg kell adnia, vagyis a fájl neve után írjon .I -t- Programot a 12 PGM CALL ciklus definícióval is meghívhat- Általában a Q paraméterek globális érvényûek PGM CALL esetén. Emiatt mindig vegye figyelembe, hogy a hívott

programban megváltoztatott Q paraméterek hatással lehetnek a hívó programra.Ütközésveszély!- A hívott programban meghatározott koordináta-transzformációk a hívó programban is érvényben maradnak, amíg vissza

nem állítja azokat. Az MP7300 gépi paraméter beállítása ezt nem befolyásolja.

Program hívása mint alprogram

Program nevének megadása, vagy a funkcióval elõugró ablakbólaz állomány kiválasztása

Page 6: iTNC 530 oktatás · 2018-12-26 · (CALL LBL n REP n) 2 Ezután az LBL n utasítással megcímkézett mondattól újra végrehajtja a prog-ramrészt annyiszor, amennyi a REP utasításban

EgymásbaágyazásEgymásbaágyazási mélységAz egymásbaágyazási mélység az egymást követõ szintek száma, melyekben a programrészek vagy alprogramok továbbiprogramrészeket vagy alprogramokat hívnak meg.- Maximális egymásbaágyazási mélység alprogramoknál: 8- A maximális egymásbaágyazási mélység fõprogramoknál: 6, ahol a CYCL CALL utasítás megfelel egy fõprogram hívásnak- A programrész ismétlés tetszõleges gyakorisággal egymásbaágyazható

Egymásbaágyazás típusaiAlprogram egy alprogramon belül

1

5

3

2

4

0 BEGIN PGM ...: ...: ...: CALL LBL 9: ...: ...: M30: LBL 4: ...: ...: LBL 0: LBL 9: ...: CALL LBL 4: ...: LBL 0: END PGM ...

Végrehajtási sorrend1 A vezérlés végrehajtja az alkatrészprogramot egészen addig a mondatig,

ahol az elsõ alprogram hívása (CALL LBL n) szerepel2 A végrehajtás az elsõ alprogram kezdetét jelzõ címkétõl (LBL n) egészen

a második alprogram hívásig (CALL LBL n) tart3 A végrehajtás a második alprogram kezdetét jelzõ címkétõl (LBL n) egé-

szen a második alprogram végét jelzõ (LBL 0) utasításig tart, majd visz-szaugrik az elsõ alprogramba a hívás utáni sorra

4 A végrehajtás az elsõ alprogram végét jelzõ (LBL 0) utasításig tart, majdvisszaugrik a fõprogramba a hívás utáni sorra

5 A vezérlés folytatja az alkatrészprogramot a végrehajtást lezáró (M30) u-tasításig

Megjegyzések- Az alprogramok sorrendje az alkatrészprogram végén tetszõleges, a vég-

rehajtási sorrendet nem befolyásolja.- Az alprogramok nem hívhatják kölcsönösen egymást, mert az végtelen

ciklust eredményezne.

Page 7: iTNC 530 oktatás · 2018-12-26 · (CALL LBL n REP n) 2 Ezután az LBL n utasítással megcímkézett mondattól újra végrehajtja a prog-ramrészt annyiszor, amennyi a REP utasításban

EgymásbaágyazásProgramrész ismétlés egy programrész ismétlésen belül

1

3

5

3B1

2

4

3K1

2K1

4K1

3B2 3B1 3B23K1 3K1

0 BEGIN PGM ...: ...: ...: LBL “K”: ...: ...: LBL “B”: ...: ...: CALL LBL “B” REP 2: ...: ...: CALL LBL “K” REP 1: ...: ...: END PGM ...

Végrehajtási sorrend1-2-3 A vezérlés végrehajtja az alkatrészprogramot egészen a belsõ (B)

programrész végéig (CALL LBL “B” REP n )3Bn Ezután a belsõ programrész LBL “B” utasítással megcímkézett

mondatától újra végrehajtja a belsõ programrészt annyiszor,amennyi a belsõ programrész ismétlésszámában (n) szerepel

4 A belsõ rész utolsó ismétlése után folytatódik az alkatrészprograma külsõ (K) programrész végéig (CALL LBL “K” REP m )

2Km-3Km Visszaugrik a külsõ programrész LBL “K” utasítással megcímké-zett kezdetére és újra végrehajtja alkatrészprogramot egészen abelsõ (B) programrész végéig (CALL LBL “B” REP n )

3KmBn Ezután a belsõ programrész LBL “B” utasítással megcímkézett

mondatától újra végrehajtja a belsõ programrészt annyiszor,amennyi a belsõ programrész ismétlésszámában (n) szerepel

4Km A belsõ rész utolsó ismétlése után folytatódik az alkatrészprograma külsõ (K) programrész végéig (CALL LBL “K” REP m ), és ösz-szesen csak annyiszor tér vissza a külsõ programrész kezdetére(LBL “K”), ahányszor a külsõ részt ismételni kell (m)

5 Folytatódik az alkatrészprogram végrehajtása a program végéig.

Page 8: iTNC 530 oktatás · 2018-12-26 · (CALL LBL n REP n) 2 Ezután az LBL n utasítással megcímkézett mondattól újra végrehajtja a prog-ramrészt annyiszor, amennyi a REP utasításban

EgymásbaágyazásIsmételt alprogram

Végrehajtási sorrend1 A vezérlés végrehajtja az alkatrészprogramot egészen addig a mondat-

ig, ahol az alprogram hívása (CALL LBL n) szerepel2 A végrehajtás az alprogram kezdetét jelzõ címkétõl (LBL n) egészen az

alprogram végét jelzõ (LBL 0) utasításig tart, majd visszaugrik a fõprog-ramba a hívás utáni sorra

3m A programrész ismétlésbe ágyazott (LBL i ... CALL LBL i REP m ) al-programhívás ezután annyiszor megismétli az alprogram hívását, a-mennyi a REP m utasításban szerepel

4 A vezérlés az utolsó ismétlés után folytatja az alkatrészprogramot a vég-rehajtást lezáró M30 utasításig

1

4

3/1

2

3/2

0 BEGIN PGM ...: ...: ...: LBL 1: CALL LBL 4: CALL LBL 1 REP 2: ...: ...: M30: LBL 4: ...: ...: LBL 0: END PGM ...

Megjegyzés- A programrész ismétlés célszerûen csak az alprogram hívását tartalmaz-

za.

Page 9: iTNC 530 oktatás · 2018-12-26 · (CALL LBL n REP n) 2 Ezután az LBL n utasítással megcímkézett mondattól újra végrehajtja a prog-ramrészt annyiszor, amennyi a REP utasításban

EgymásbaágyazásProgramrész ismétlés egy alprogramon belül

Végrehajtási sorrend1 A vezérlés végrehajtja az alkatrészprogramot egészen addig a mondat-

ig, ahol az alprogram hívása (CALL LBL n) szerepel2-3 A végrehajtás az alprogram kezdetét jelzõ címkétõl (LBL n) egészen a

programrész ismétlés végéig (CALL LBL i REP m ) folytatódik3/m Visszaugrik a programrész LBL i utasítással megcímkézett mondatára

annyiszor, ahányszor az az ismétlések számában (m) szerepel4 A végrehajtás az alprogram végét jelzõ (LBL 0) utasításig fut, majd

visszatér a fõprogramba a hívás utáni sorra5 A vezérlés folytatja az alkatrészprogramot a végrehajtást lezáró M30 u-

tasításig

1

3

5

3/1

2

3/2

4

0 BEGIN PGM ...: ...: ...: CALL LBL 4: ...: ...: M30: LBL 4: ...: ...: LBL 1: ...: ...: CALL LBL 1 REP 2: ...: ...: LBL 0: END PGM ...

Megjegyzés- Ha az alprogram elejét jelzõ címke (LBL i) és a programrész ismétlés

kezdete (LBL n) között nincs egyetlen utasítás sem (2), akkor a két cím-ke helyett lelegendõ csak egyet alkalmazni (n/i).

Page 10: iTNC 530 oktatás · 2018-12-26 · (CALL LBL n REP n) 2 Ezután az LBL n utasítással megcímkézett mondattól újra végrehajtja a prog-ramrészt annyiszor, amennyi a REP utasításban

Alprogramok, ismétlések kijelzéseA vezérlés nyilvántartja és kijelzi a fõprogramot, az aktuálisan hívott programo(ka)tés alprogramo(ka)t és a programrész ismétlés(eke)t.

Az Áttekintés fül az aktuális- alprogramot és hívó programsorának számát,- programrész ismétlést, annak hívó sorát és ismétlésszámát,- a programhívást,- valamint a fõprogramot is mutatja.

A PGM fül az- aktuális fõprogramot- és a programhívások egymásbaágyazását mutatja.

Az LBL fül az- alprogramok és- programrész ismétlések egymásbaágyazását szemlélteti.