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.
Felhasznált témák
- Alprogramok
- Programrész-ismétlések
- Külön NC program behívása
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:
- Az UPGMS NC program végrehajtása a 11. NC mondatig.
- Az UP1 alprogram behívása és végrehajtása a 31. NC mondatig.
- 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.
- 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.
- 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:
- A REPS NC program végrehajtása a 31. NC mondatig.
- 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.
- Az REPS NC program végrehajtása a 32. NC mondattól a 41. NC mondatig.
- 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).
- 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:
- Az UPGREP NC program végrehajtása a 12. NC mondatig.
- A 2. alprogram behívása és végrehajtása a 31. NC mondatig.
- 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.
- 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.