Programozási technikák egymásba ágyazása

Alkalmazás

Programozási technikákat is kombinálhat egymással, pl. egy programrész-ismétlésben meghívhat egy másik, külön NC programot vagy egy alprogramot.

Ha minden meghívás után visszatér a kiinduláshoz, csak egy beágyazási szintet használjon. Ha a kiinduláshoz való visszatérés előtt újabb meghívást programoz, akkor egy beágyazási szinttel lejjebb kerül.

Funkcióleírás

Vegye figyelembe a maximális beágyazási mélységeket:

  • Maximális beágyazási mélység alprogramok meghívásához: 19
  • Maximális beágyazási mélység külső NC programok meghívásához: 19, ahol a CYCL CALL külső program meghívására szolgál
  • A programrész-ismétlések tetszőleges gyakorisággal egymásba ágyazhatók

Példa

Alprogram behívása egy alprogramon belül

0 BEGIN PGM UPGMS MM

* - ...

11 CALL LBL “UP1“

; LBL "UP1" alprogram behívása

* - ...

21 L Z+100 R0 FMAX M30

; A főprogram utolsó programmondata M30-cal

22 LBL “UP1“

; "UP1” alprogram kezdete

* - ...

31 CALL LBL 2

; LBL 2 alprogram behívása

* - ...

41 LBL 0

; "UP1” alprogram vége

42 LBL 2

; LBL 2 alprogram kezdete

* - ...

51 LBL 0

; LBL 2 alprogram vége

52 END PGM UPGMS MM

A vezérlő az NC programot az alábbiak szerint hajtja végre:

  1. Az UPGMS NC program végrehajtása a 11. NC mondatig.
  2. Az UP1 alprogram behívása és végrehajtása a 31. NC mondatig.
  3. A 2. alprogram meghívása és végrehajtása az 51. NC mondatig tart. A 2. alprogram vége, és visszaugrás ahhoz az alprogramhoz, ahonnan a meghívása történt.
  4. Az UP1 alprogram végrehajtása a 32. NC mondattól a 41. NC mondatig tart. Az UP1 alprogram vége, és visszaugrás az UPGMS NC programba.
  5. Az UPGMS NC program végrehajtása a 12. NC mondattól a 21. NC mondatig tart. Program vége, és visszaugrás a 0. NC mondatra.

Programrész-ismétlés egy programrész-ismétlésen belül

0 BEGIN PGM REPS MM

* - ...

11 LBL 1

; 1. programrész kezdete

* - ...

21 LBL 2

; 2. programrész kezdete

* - ...

31 CALL LBL 2 REP 2

; 2. programrész behívása és kétszeri ismétlése

* - ...

41 CALL LBL 1 REP 1

; 1. programrész behívása a 2. programrésszel együtt és egyszeri ismétlése

* - ...

51 END PGM REPS MM

A vezérlő az NC programot az alábbiak szerint hajtja végre:

  1. A REPS NC program végrehajtása a 31. NC mondatig tart.
  2. A 31. NC mondat és 21. NC mondat közötti programrész kétszer ismétlődik, tehát összesen háromszor lesz végrehajtva.
  3. A REPS NC program végrehajtása a 32. NC mondattól a 41. NC mondatig tart.
  4. A 41. NC mondat és 11. NC mondat közötti programrész egyszer ismétlődik, tehát összesen kétszer lesz végrehajtva (tartalmazza a 21. NC mondat és 31. NC mondat közötti programrész-ismétlést).
  5. A REPS NC program végrehajtása a 42. NC mondattól az 51. NC mondatig tart. Program vége, és visszaugrás a 0. NC mondatra.

Alprogram behívása egy programrész-ismétlésen belül

0 BEGIN PGM UPGREP MM

* - ...

11 LBL 1

; 1. programrész kezdete

12 CALL LBL 2

; 2. alprogram behívása

13 CALL LBL 1 REP 2

; 1. programrész behívása és kétszeri ismétlése

* - ...

21 L Z+100 R0 FMAX M30

; Főprogram utolsó NC mondata M30-cal

22 LBL 2

; 2. alprogram kezdete

* - ...

31 LBL 0

; 2. alprogram vége

32 END PGM UPGREP MM

A vezérlő az NC programot az alábbiak szerint hajtja végre:

  1. A UPGREP NC program végrehajtása a 12. NC mondatig tart.
  2. A 2. alprogram meghívása és végrehajtása a 31. NC mondatig tart.
  3. A 13. NC mondat és 11. NC mondat (a 2. alprogrammal együtt) közötti programrész kétszer ismétlődik, tehát összesen háromszor lesz végrehajtva.
  4. Az UPGREP NC program végrehajtása a 14. NC mondattól a 21. NC mondatig tart. Program vége, és visszaugrás a 0. NC mondatra.