
- •SINUMERIK 840D/840Di/810D
- •Руководство по программированию
- •Предисловие
- •Содержание
- •1. Геометрические основы
- •2. Основы программирования ЧПУ
- •3. Характеристика перемещения
- •4. Программирование команд перемещения
- •5. Параметры движения по траектории
- •6. Фреймы
- •7. Управление подачей и движение шпинделя
- •8. Коррекции инструмента
- •9. Дополнительные функции
- •10. R-параметры и переходы в программе
- •11. Техника подпрограмм и повторение части
- •12. Таблицы
- •Указатель

Техника подпрограмм и повторение части |
11 |
программы |
11.1 Использование подпрограмм
Функция
Принципиальная структура подпрограммы идентична программе обработки детали. Она состоит из кадров ЧПУ с командами движения и переключения. Принципиальные различия между главными и подпрограммами отсутствуют. Подпрограмме содержит либо технологические циклы, либо рабочие операции, которые должны быть повторены несколько раз.
Параметры
M17 Конец подпрограммы, возврат в вызывающую программу.
RET |
Конец подпрограммы, если режим управления траекторией не должен быть |
|
|
|
прерван возвратом. Для RET необходим собственный кадр. |
M30 |
Установленный в главной программе конец программы M30 оценивается как M17 |
|
|
|
в подпрограмме. Главная программа тем самым может вызываться как |
|
подпрограмма. |
Основы |
11-1 |
Руководство по программированию, выпуск 10.2004, 6FC5 298-7AB00-0PP1 |

Техника подпрограмм и повторение части программы 11.1 Использование подпрограмм
Указание
Просьба учитывать различия в функциях станка, к примеру, стоп шпинделя при M30!
Пример
N10 TASCHE1
Дополнительно для подпрограмм существует возможность использования слова адреса L....
Для значения возможно 7 десятичных позиций (только целочисленные). Учитывать: Вводные нули для адреса L изменяют значение.
N10 L123
N20 L0123
N30 L00123
В этом примере это три различные подпрограммы.
Использование подпрограмм
Последовательности обработок, которые постоянно повторяются, программируются только один раз в подпрограмме. К примеру, определенные формы контура, которые часто повторяются, или циклы обработки. Эта подпрограмма после может быть вызвана и обработана в любой главной программе.
Структура подпрограммы
Структура подпрограммы идентична главной программе (см. главу "Структура и содержания программы ЧПУ “). Подпрограммам присваивается конец программы M17. Здесь это означает возврат в вызывающий конец программы. Через машинные данные этот конец программы M17 может быть подавлен (к примеру, для достижения преимуществ рабочего цикла).
11-2 |
Основы |
Руководство по программированию, выпуск 10.2004, 6FC5 298-7AB00-0PP1 |

Техника подпрограмм и повторение части программы 11.1 Использование подпрограмм
Указание Дополнительно в подпрограмме может быть запрограммирован заголовок программы с
определением параметров. Это программирование описывает руководство по программированию, часть "Расширенное программирование“.
Конец подпрограммы с RET
В качестве замены возврата с M17 в подпрограмме может использоваться и оператор RET. Для RET необходим собственный кадр. Оператор RET используется тогда, когда режим управления траекторией G64 (G641, G642, G643) не должен прерываться возвратом. Условием этого является отсутствие у подпрограммы атрибута SAVE.
Если M17 программируется в собственном кадре, то G64 прерывается и создается точный останов. Помощь: Не записывать только одну M17 в кадре UP, а, к примеру, с путем перемещения: G1 X=YY M17. Через машинные данные должно быть установлено: "нет
M17 из PLC".
Имя подпрограммы
Чтобы выбрать определенную подпрограмму из нескольких, она получает имя. Имя может свободно выбираться при создании программы при соблюдении следующих правил:
• первые два символа должны быть буквами
• остальные буквы, цифры или символы подчеркивания
•использовать макс. 31 символ
•не использовать разделительных символов (см. главу "Языковые элементы языка программирования")
Действуют те же правила, что и для имен главных программ.
Глубина вложенности
Подпрограммы могут вызываться не только в главной программе, но и в подпрограмме. Всего для такого вложенного вызова доступно максимум 12 программных уровней; включая главный уровень программирования. Это означает: С главной программой может быть связано 11 вложенных вызовов подпрограмм.
Основы |
11-3 |
Руководство по программированию, выпуск 10.2004, 6FC5 298-7AB00-0PP1 |

Техника подпрограмм и повторение части программы 11.2 Вызов подпрограммы
Указание
Если работа осуществляется с циклами обработки и измерения SIEMENS, то необходимо 3 уровня. Если цикл вызывается из подпрограммы, то вызов может осуществляться максимум в уровне 9.
11.2 Вызов подпрограммы
Функция
Вызов подпрограммы в главной программе осуществляется либо посредством адреса L и номера подпрограммы, либо посредством указания имени программы.
Пример
... |
|
N120 L100 |
;вызов подпрограммы |
|
;„L100.SPF“: |
|
N10 MSG (подпрограмма DIN“) |
|
N20 G1 G91... |
|
... |
|
N60 M17 |
N160 M30 |
;конец подпрограммы |
;конец главной программы |
11-4 |
Основы |
Руководство по программированию, выпуск 10.2004, 6FC5 298-7AB00-0PP1 |

Техника подпрограмм и повторение части программы 11.2 Вызов подпрограммы
Пример передачи R-параметров
N10 G0 X0 Y0 G90 T1
N20 R10=10 R11=20
N30 RECHTECK
N40 G0 X50 Y50 G90
N50 RECHTECK
N60 M30
;Инструмент T1 ускоренным ходом на первую ;позицию, абсолютное указание размера
;описание R-параметров R10 и R11
;вызов подпрограммы прямоугольника
„RECHTECK.SPF“ с передачей
;R-параметров:
N15 G1 X=R10 G91 F500
N25 Y=R11
N35 X=-R10
N45 Y=-R11
N55 M17
;конец подпрограммы
;установка инструмента в следующую ;позицию обработки
;вызов подпрограммы прямоугольника
„RECHTECK.SPF“ с передачей
;R-параметров
;конец главной программы
Вызов главной программы как подпрограммы
Главная программа также может быть вызвана как подпрограмма. Установленный в главной программе конец программы M30 в этом случае обрабатывается как M17 (конец программы с возвратом в вызывающую программу). Вызов программируется посредством указания имени программы.
Пример: N10 MPF739 или N10 WELLE3
Соответственно подпрограмма также может быть запущена как главная программа.
Основы |
11-5 |
Руководство по программированию, выпуск 10.2004, 6FC5 298-7AB00-0PP1 |

Техника подпрограмм и повторение части программы 11.3 Подпрограмма с повторением программы
Указание Стратегия поиска СЧПУ: Есть ли *_MPF ?
Есть ли *_SPF ?
Из этого следует: Если имя вызываемой подпрограммы идентично имени главной программы, то снова вызывается вызывающая главная программа. Избежать этого, как правило, нежелательно эффекта, можно посредством однозначного выбора имени для главных программ и подпрограмм.
Вызов подпрограмм с помощью файла INI
Из файла инициализации могут вызываться подпрограммы, которые не требуют передачи параметров:
Пример:
N10 MYINISUB1
;вызов подпрограммы без параметров
11.3 Подпрограмма с повторением программы
Функция
Если подпрограмма должна быть выполнена последовательно несколько раз, то в кадре с вызовом подпрограммы по адресу Р может быть запрограммировано желаемое количество повторений программы.
Параметры
PКоличество проходов программы или повторений программы
Диапазон значений P: 1…9999
Пример
N40 RAHMEN P3
Подпрограмма Rahmen должна быть выполнена последовательно 3 раза.
11-6 |
Основы |
Руководство по программированию, выпуск 10.2004, 6FC5 298-7AB00-0PP1 |

Техника подпрограмм и повторение части программы 11.4 Повторение части программы
Осторожно Для каждого вызова подпрограммы действует:
Вызов подпрограмма должен быть всегда запрограммирован в отдельном кадре ЧПУ.
Вызов подпрограммы с повторением программы и передачей параметров: Передача параметров осуществляется только при вызове или первом выполнении программы. Для других повторений параметры остаются неизменными. Если при повторении программы необходимо изменить параметры, то нужно установить в подпрограмме соответствующие согласования.
11.4 Повторение части программы
Функция
В отличие от техники подпрограмм повторение части программы позволяет повторять уже написанные части программы внутри одной программы в любом составе. При этом посредством меток обозначаются кадр или сегменты программы, которые должны быть повторены.
Метки см.: Литература:
/PG/ Руководство по программированию "Основы", глава "Языковые элементы языка программирования"
/PGA/ Руководство по программированию "Расширенное программирование", глава "Оператор CASE", "Контрольные структуры"
Основы |
11-7 |
Руководство по программированию, выпуск 10.2004, 6FC5 298-7AB00-0PP1 |

Техника подпрограмм и повторение части программы 11.4 Повторение части программы
Программирование повторения кадра
Метка: xxx yyy
REPEATB LABEL P=n Zzz
Обозначенные любой меткой строки программы повторяются с P=n раз. Если P не указано, то кадр повторяется только один раз. После последнего повторения программа продолжается на строке zzz, следующей за строкой REPEATB.
Обозначенный с помощью метки кадр может стоять до или после оператора REPEATB. Поиск сначала осуществляется в направлении начала программы. Если метка в этом направлении не найдена, то поиск осуществляется в направлении конца программы.
Программирование повторения диапазона после метки
Метка: xxx yyy
REPEAT LABEL P=n zzz
Сегмент программы между меткой с любым именем и оператором REPEAT повторяется с P=n раз. Если кадр с меткой содержит другие операторы, то они заново выполняются при каждом повторении. Если P не указана, то сегмент программы повторяется только один раз. После последнего повторения программа продолжается на строке zzz, следующей за строкой REPEAT.
Указание
Метка должна стоять перед оператором REPEAT. Поиск осуществляется только в направлении начала программы.
Программирование повторения диапазона между двумя метками
START_LABEL: xxx ooo END_LABEL: yyy ppp
REPEAT START_LABEL END_LABEL P=n zzz
Диапазон между двумя метками повторяется с P=n раз. Метки могут быть определены любыми именами. Первой строкой повторения является строка со стартовой меткой, последней – с конечной меткой. Если строка со стартовой или конечной меткой включает другие операторы, то они заново выполняются при каждом проходе. Если P не указана, то сегмент программы повторяется только один раз. После последнего повторения программа продолжается на строке zzz, следующей за строкой REPEAT.
11-8 |
Основы |
Руководство по программированию, выпуск 10.2004, 6FC5 298-7AB00-0PP1 |

Техника подпрограмм и повторение части программы 11.4 Повторение части программы
Указание
Повторяемый сегмент программы может стоять до или после оператора REPEAT. Поиск сначала осуществляется в направлении начала программы. Если стартовая метка в этом направлении не найдена, то поиск осуществляется от оператора REPEAT назад к концу программы.
Заключение оператора REPEAT с обеими метками невозможно. Если стартовая метка найдена перед оператором REPEAT, а конечная метка не достигнута перед оператором REPEAT, то повторение осуществляется между стартовой меткой и оператором REPEAT.
Программирование повторения диапазона между меткой и конечной меткой
LABEL: xxx ooo
ENDLABEL: yyy REPEAT LABEL P=n zzz
ENDLABEL это заранее определенная метка с фиксированным именем. ENDLABEL обозначает конец сегмента программы и может использоваться несколько раз в программе. Помеченный ENDLABEL кадр может содержать другие операторы. Диапазон между меткой и последующей ENDLABEL повторяется с P=n раз. Начальная метка может быть определена любым именем. Если кадр со стартовой меткой или ENDLABEL содержит другие операторы, то они выполняются при каждом повторении.
Указание
Если от начальной метки до кадра с вызовом REPEAT ENDLABEL не найдена, то цикл завершается перед строкой REPEAT. При этом конструкция действует так, как описано выше для "Повторения диапазона от метки“.
Если P не указана, то сегмент программы повторяется только один раз.
После последнего повторения программа продолжается на строке zzz, следующей за строкой REPEAT.
Параметры
|
LABEL: |
Цель перехода; после имени цели перехода следует двоеточие |
|
|
|
|
|
|
REPEAT |
Повторить (повторить несколько строк) |
|
|
REPEATB |
Повторить блок (повторить только одну строку) |
|
Основы |
|
11-9 |
|
Руководство по программированию, выпуск 10.2004, 6FC5 298-7AB00-0PP1 |

Техника подпрограмм и повторение части программы 11.4 Повторение части программы
Пример повторения позиции
N10 POSITION1: X10 Y20 |
|
N20 POSITION2: CYCLE(0,,9,8) |
;цикл позиции |
N30 ... |
|
N40 REPEATB POSITION1 P=5 |
;выполнить КАДР N10 пять раз |
N50 REPEATB POSITION2 |
;выполнить кадр N20 один раз |
N60 ... |
|
N70 M30 |
|
Пример изготовления 5 квадратов с увеличивающейся шириной
N5 R10=15 |
|
N10 Begin: R10=R10+1 |
;ширина |
N20 Z=10-R10 |
|
N30 G1 X=R10 F200 |
|
N40 Y=R10 |
|
N50 X=-R10 |
|
N60 Y=-R10 |
|
N70 Z=10+R10 |
|
N80 REPEAT BEGIN P=4 |
;выполнить диапазон N10 до N70 четыре раза |
N90 Z10 |
|
N100 M30 |
|
Пример повторения сегмента программы от BEGIN до END
N5 R10=15 |
|
N10 BEGIN: R10=R10+1 |
;ширина |
N20 Z=10-R10 |
|
N30 G1 X=R10 F200 |
|
N40 Y=R10 |
|
N50 X=-R10 |
|
N60 Y=-R10 |
|
N70 END:Z=10 |
|
N80 Z10 |
|
N90 CYCLE(10,20,30) |
|
N100 REPEAT BEGIN END P=3 |
;выполнить диапазон N10 до N70 три раза |
N110 Z10 |
|
N120 M30 |
|
11-10 |
Основы |
Руководство по программированию, выпуск 10.2004, 6FC5 298-7AB00-0PP1 |

Техника подпрограмм и повторение части программы 11.4 Повторение части программы
Пример ENDLABEL
|
N10 G1 F300 Z-10 |
|
|
|
N20 BEGIN1: |
|
|
|
N30 X10 |
|
|
|
N40 Y10 |
|
|
|
N50 BEGIN2: |
|
|
|
N60 X20 |
|
|
|
N70 Y30 |
|
|
|
N80 ENDLABEL: Z10 |
|
|
|
N90 X0 Y0 Z0 |
|
|
|
N100 Z-10 |
|
|
|
N110 BEGIN3: X20 |
|
|
|
N120 Y30 |
|
|
|
N130 REPEAT BEGIN3 P=3 |
;выполнить диапазон N110 до N120 три раза |
|
|
N140 REPEAT BEGIN2 P=2 |
;выполнить диапазон N50 до N80 два раза |
|
|
N150 M100 |
|
|
|
N160 REPEAT BEGIN1 P=2 |
;выполнить диапазон N20 до N80 два раза |
|
|
N170 Z10 |
|
|
|
N180 X0 Y0 |
|
|
|
N190 M30 |
|
|
Пример фрезерной обработки: обработка позиции сверления различными технологиями |
|
||
|
|
|
|
|
N10 ZENTRIERBOHRER() |
;установка центрового сверла |
|
|
N20 POS_1: |
;позиции сверления 1 |
|
|
N30 X1 Y1 |
|
|
|
N40 X2 |
|
|
|
N50 Y2 |
|
|
|
N60 X3 Y3 |
|
|
|
N70 ENDLABEL: |
|
|
|
N80 POS_2: |
;позиции сверления 2 |
|
|
N90 X10 Y5 |
|
|
|
N100 X9 Y-5 |
|
|
|
N110 X3 Y3 |
|
|
|
N120 ENDLABEL: |
|
|
|
N130 BOHRER() |
;сменить сверло и цикл сверления |
|
|
N140 GEWINDE(6) |
;установка метчика M6 и |
|
|
|
;цикл резьбы |
|
|
N150 REPEAT POS_1 |
;повторить сегмент программы от |
|
|
|
;POS_1 один раз до ENDLABEL |
|
|
N160 BOHRER() |
;сменить сверло и цикл сверления |
|
|
N170 GEWINDE(8) |
;установка метчика M8 и |
|
|
|
;цикл резьбы |
|
|
N180 REPEAT POS_2 |
;повторить сегмент программы от |
|
Основы |
|
11-11 |
|
Руководство по программированию, выпуск 10.2004, 6FC5 298-7AB00-0PP1 |

Техника подпрограмм и повторение части программы 11.4 Повторение части программы
;POS_2 один раз до ENDLABEL
N190 M30
Граничные
условия
11-12
• Повторение части программы могут быть вложенными. Каждый вызов занимает один уровень подпрограмм.
• Если при обработке повторения части программы программируются M17 или RET, то повторение части программы отменяется. Программа продолжается в кадре, следующим за строкой REPEAT.
• В актуальной индикации программы повторение части программы показывается как собственный уровень подпрограммы.
Если при обработке повторения части программы уровни отменяются, то программа продолжается после вызова обработки части программы.
Пример:
N5 R10=15 |
|
N10 BEGIN: R10=R10+1 |
; ширина |
N20 Z=10-R10 |
|
N30 G1 X=R10 F200 |
|
N40 Y=R10 |
;отмена уровней |
N50 X=-R10 |
|
N60 Y=-R10 |
|
N70 END: Z10 |
|
N80 Z10 |
|
N90 CYCLE(10,20,30) |
|
N100 REPEAT BEGIN END P=3 |
|
N120 Z10 |
;продолжение обработки программы |
N100 M30 |
|
• Контрольные структуры и повторение части программы могут комбинироваться. Но при этом не должно быть пересечений. Повторение части программы должно находится внутри ветви контрольной структуры или контрольная структура внутри повторения части программы.
• При комбинации переходов и повторения части программы кадры выполняются только последовательно. Если, к примеру, осуществляется переход из повторения части программы, то обработка продолжается до тех пор, пока не будет найден запрограммированный конец части программы.
Пример:
N10 G1 F300 Z-10
N20 BEGIN1:
N30 X=10
N40 Y=10
N50 GOTOF BEGIN2
N60 ENDLABEL:
Основы Руководство по программированию, выпуск 10.2004, 6FC5 298-7AB00-0PP1

Техника подпрограмм и повторение части программы 11.4 Повторение части программы
N70 BEGIN2:
N80 X20
N90 Y30
N100 ENDLABEL: Z10
N110 X0 Y0 Z0
N120 Z-10
N130 REPEAT BEGIN1 P=2
N140 Z10
N150 X0 Y0
N160 M30
Указание Повторение части программы активируется через программирование.
Оператор REPEAT должен стоять после кадров перемещения.
Основы |
11-13 |
Руководство по программированию, выпуск 10.2004, 6FC5 298-7AB00-0PP1 |

Техника подпрограмм и повторение части программы 11.4 Повторение части программы
11-14 |
Основы |
Руководство по программированию, выпуск 10.2004, 6FC5 298-7AB00-0PP1 |