Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
123.pdf
Скачиваний:
541
Добавлен:
27.02.2016
Размер:
8 Мб
Скачать
☆

Техника подпрограмм и повторение части

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]