Техника программирования с вложением подпрограмм
Применение
Вы также можете комбинировать техники программирования, например, в повторении части программы вызывать другую, управляющую программу или подпрограмму.
Глубина вложения включая определяет, насколько многократно части программы или подпрограммы могут содержать другие подпрограммы или повторы части программы.
Смежные темы
- Подпрограммы
- Повторение части программы
- Вызов отдельной управляющей программы
Описание функций
Следующие максимальные глубины вложения применяются к управляющим программам:
- Максимальная кратность вложения для подпрограмм: 19
- Максимальная глубина вложения для внешней программы: 19, причём CYCL CALL действует, как вызов подпрограммы
- Вложение повторов частей программы можно выполнять произвольно часто
Пример
Вызов подпрограмм внутри другой подпрограммы
0 BEGIN PGM UPGMS MM | |
* - ... | |
11 CALL LBL “UP1“ | ; Вызов подпрограммы LBL "UP1" |
* - ... | |
21 L Z+100 R0 FMAX M30 | ; Последний кадр главной программы с M30 |
22 LBL “UP1“ | ; Начало подпрограммы UP1 |
* - ... | |
31 CALL LBL 2 | ; Вызов подпрограммы LBL 2 |
* - ... | |
41 LBL 0 | ; Конец подпрограммы "UP1" |
42 LBL 2 | ; Начало подпрограммы LBL 2 |
* - ... | |
51 LBL 0 | ; Конец подпрограммы LBL 2 |
52 END PGM UPGMS MM |
Система ЧПУ отрабатывает управляющую программу следующим образом:
- Управляющая программа UPGMS отрабатывается до кадра 11.
- Вызывается подпрограмма UP1 и отрабатывается до кадра программы 31.
- Вызывается подпрограмма 2 и отрабатывается до кадра 51. Конец подпрограммы 2 и возврат к подпрограмме, из которой она была вызвана.
- Подпрограмма UP1 отрабатывается от кадра 32 до кадра 41. Конец подпрограммы UP1 и возврат в управляющую программу UPGMS.
- Управляющая программа UPGMS отрабатывается от кадра УП 12 до кадра УП 21. Конец программы с возвратом к кадру программы 1.
Повторение части программы внутри повторения части программы
0 BEGIN PGM REPS MM | |
* - ... | |
11 LBL 1 | ; Начало участка программы 1 |
* - ... | |
21 LBL 2 | ; Начало участка программы 2 |
* - ... | |
31 CALL LBL 2 REP 2 | ; Вызов участка программы 2 и двукратное повторение |
* - ... | |
41 CALL LBL 1 REP 1 | ; Вызов участка программы 1, включая участок программы 2, и повтор один раз. |
* - ... | |
51 END PGM REPS MM |
Система ЧПУ отрабатывает управляющую программу следующим образом:
- Управляющая программа REPS отрабатывается до кадра 31.
- Часть программы между кадром 31 и 21 повторяется дважды, то есть всего отрабатывается 3 раза.
- Управляющая программа REPS отрабатывается от кадра 32 до кадра 41.
- Часть программы между кадром 41 и 11 повторяется один раз, то есть всего 2 раза (содержит повторение части программы между кадрами 21 и 31).
- Управляющая программа REPS отрабатывается от кадра 42 до кадра 51. Конец программы с возвратом к кадру программы 1.
Вызов подпрограммы внутри повторения части программы
0 BEGIN PGM UPGREP MM | |
* - ... | |
11 LBL 1 | ; Начало участка программы 1 |
12 CALL LBL 2 | ; Вызов подпрограммы 2 |
13 CALL LBL 1 REP 2 | ; Вызов участка программы 1 и двукратное повторение |
* - ... | |
21 L Z+100 R0 FMAX M30 | ; Последний кадр главной программы с M30 |
22 LBL 2 | ; Начало подпрограммы 2 |
* - ... | |
31 LBL 0 | ; Конец подпрограммы 2 |
32 END PGM UPGREP MM |
Система ЧПУ отрабатывает управляющую программу следующим образом:
- Управляющая программа UPGREP отрабатывается до кадра 12.
- Вызывается подпрограмма 2 и отрабатывается до кадра УП 31.
- Часть программы между кадром 13 и 11 (вкл. подпрограмму 2) повторяется дважды, то есть всего отрабатывается 3 раза.
- Управляющая программа UPGREP отрабатывается от кадра 14 до кадра 21. Конец программы с возвратом к кадру программы 1.