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

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

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

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