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

Alkalmazás

SA programozási technikákat is kombinálhatja egymással, pl. egy programrész-ismétlésben behív egy másik, külön NC programot vagy egy alprogramot.

A beágyazás mélységét többek között az határozza meg, hogy a programrészek vagy alprogramok milyen gyakran tartalmazhatnak további alprogramokat vagy programrész-ismétléseket.

Funkcióleírás

A következő maximális egymásba ágyazódások érvényesek az NC programokra:

  • Maximális egymásbaágyazási mélység alprogramoknál: 19
  • Külső NC programok maximális beágyazási mélysége: 19, amikor is egy CYCL CALL külső program meghívásaként funkcionál
  • A programrész ismétlés tetszőleges gyakorisággal egymásbaágyazható

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 behívása és végrehajtása az 51. NC mondatig. A 2. alprogram vége és visszaugrás az alprogramhoz, ahonnan a behívása történt.
  4. Az UP1 alprogram végrehajtása a 32. NC mondattól a 41. NC mondatig. 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. Program vége visszaugrással az 1. 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.
  2. A 31. NC mondat és 21. NC mondat közötti programrész kétszeri ismétlése, tehát összesen háromszor lesz végrehajtva.
  3. Az REPS NC program végrehajtása a 32. NC mondattól a 41. NC mondatig.
  4. A 41. NC mondat és 11. NC mondat közötti programrész egyszeri ismétlése, 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. Program vége visszaugrással az 1. 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. Az UPGREP NC program végrehajtása a 12. NC mondatig.
  2. A 2. alprogram behívása és végrehajtása a 31. NC mondatig.
  3. A 13. NC mondat és 11. NC mondat (a 2. alprogrammal együtt) közötti programrész kétszeri ismétlése, tehát összesen háromszor lesz végrehajtva.
  4. Az UPGREP NC program végrehajtása a 14. NC mondattól az 21. NC mondatig. Program vége visszaugrással az 1. NC mondatra.