- •Лекции по основам программирования
- •1. Структура программы
- •1.1 Набор символов
- •1.2 Слова
- •1.5 Присвоения значений
- •1.6 Структура и содержание nc программы
- •1.6.5 Конец программы
- •1.6.6 Программируемые сообщения
- •1.6.7 Комментарии
- •2. Системы координат
- •2.1 Просмотр систем координат
- •2.2 Система координат станка
- •2.3 Базовая система координат (g500)
- •2.4 Система координат детали (g54-g57)
- •2.5 Соотношение системы координат детали к осям станка
- •2.6 Текущая система координат детали
- •3. Программирование перемещений инструмента
- •3.1 Абсолютные/относительные размеры, g90/g91
- •3.2 Поворотные оси: Абсолютные размеры, dc, acp, acn
- •3.3 Метрические/дюймовые размеры, g70, g71
- •3.4 Устанавливаемые смещения нуля, g54-g599
- •3.5 Выбор рабочей плоскости, g17 - g19
- •3.6 Быстрый ход, g0
- •3.7 Прямолинейная интерполяция, g1
- •3.8 Круговая интерполяция g2/g3, cip
- •3.9 Винтовая интерполяция
- •4. Преобразование системы координат
- •4.1 Концепция кадра
- •4.2 Команды кадра
- •4.3 Программируемое смещение нуля trans, atrans
- •4.4 Программируемое вращение rot, arot
- •4.5 Программирование масштабного фактора, scale, ascale
- •4.6 Программируемое зеркало, mirror, amirror
- •5. Управление подачей и движением шпинделя
- •5.1 Подача
- •5.2 Скорость шпинделя s, направление вращения шпинделя м3, м4, м5
- •8.3 Постоянная скорость резания g96, g97, lims
- •6. Смещение инструмента
- •6.1 Общие замечания
- •6.2 Вызов инструмента, корректировка длины инструмента, td
- •6.3 Корректировка радиуса инструмента g40, g41, g42
- •1. Номер инструмента т
- •2. Направление обработки g41, g42
- •7.2 Безусловные переходы в программе
- •7.3 Операнды сравнения и логические операнды
- •8 Техника подпрограмм и повторение части программы
- •8.1 Использование подпрограмм
- •8.2 Вызов подпрограммы
- •8.3 Подпрограмма с повторением программы
- •8.4 Повторение части программы
- •8.5 Модальной вызов подпрограммы, mcall
8.2 Вызов подпрограммы
Функция
Вызов подпрограммы в главной программе осуществляется либо посредством адреса L и номера подпрограммы, либо посредством указания имени программы.
Пример
Пример передачи R-параметров
Вызов главной программы как подпрограммы
Главная программа также может быть вызвана как подпрограмма. Установленный в главной программе конец программы M30 в этом случае обрабатывается как M17 (конец программы с возвратом в вызывающую программу). Вызов программируется посредством указания имени программы. Пример: N10 MPF739 или N10 WELLE3
Соответственно подпрограмма также может быть запущена как главная программа.
Указание
Стратегия поиска СЧПУ: Есть ли *_MPF ?
Есть ли *_SPF ?
Из этого следует: Если имя вызываемой подпрограммы идентично имени главной программы, то снова вызывается вызывающая главная программа. Избежать этого, как правило, нежелательно эффекта, можно посредством однозначного выбора имени для главных и подпрограмм.
8.3 Подпрограмма с повторением программы
Функция
Если подпрограмма должна быть выполнена последовательно несколько раз, то в кадре с вызовом подпрограммы по адресу Р может быть запрограммировано желаемое количество повторений программы.
Параметры
P Количество проходов программы или повторений программы
Диапазон значений P: 1…9999
Пример
N40 RAHMEN P3
Подпрограмма Rahmen должны быть выполнена последовательно 3 раза.
Вызов подпрограммы с повторением программы и передачей параметров: Передача параметров осуществляется только при вызове или первом выполнении программы. Для других повторений параметры остаются неизменными. Если при повторении программы необходимо изменить параметры, то нужно установить в подпрограмме соответствующие согласования.
8.4 Повторение части программы
Функция
В отличии от техники подпрограмм повторение части программы позволяет повторять уже написанные части программы внутри одной программы в любом составе. При этом посредством меток обозначаются кадр или сегменты программы, которые должны быть повторены.
Программирование повторения кадра
LABEL: xxx
yyy
REPEATB LABEL P=n
Zzz
Обозначенные любой меткой строки программы повторяются с P=n раз. Если P не указано, то кадр повторяется точно один раз. После последнего повторения программа продолжается на строке zzz, следующей за строкой REPEATB.
Обозначенный с помощью метки кадр может стоять до или после оператора REPEATB. Поиск сначала осуществляется в направлении начала программы. Если метка в этом направлении не найдена, то поиск осуществляется в направлении конца программы.
Программирование повторения диапазона после метки
LABEL: 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.
Указание
Повторяемый сегмент программы может стоять до или после оператора REPEAT. Поиск сначала осуществляется в направлении начала программы. Если стартовая метка в этом направлении не найдена, то поиск осуществляется от оператора REPEAT назад к концу программы.
Заключение в скобки оператора REPEAT с обеими метками невозможно. Если стартовая метка найдена перед оператором REPEAT, а конечная метка не достигнута перед оператором REPEAT, то повторение осуществляется между стартовой меткой и оператором REPEAT.
Параметры
Пример повторения позиции
Пример изготовления 5 квадратов с увеличивающейся шириной
Пример повторения сегмента программы от BEGIN до END
Пример ENDLABEL
Пример фрезерной обработки: обработка позиции сверления различными технологиями
Граничные условия
-
Повторение части программы может вызываться вложенным. Каждый вызов занимает один уровень подпрограмм.
-
Если при обработке повторения части программы программируются M17 или RET, то повторение части программы отменяется. Программа продолжается в кадре, следующим за строкой REPEAT.
-
В актуальной индикации программы повторение части программы показывается как собственный уровень подпрограммы.
-
Если при обработке части программы запускается отмена уровней, то программа продолжается после вызова обработки части программы.
Пример:
-
Контрольные структуры и повторение части программы могут комбинироваться. Но при этом не должно быть пересечений. Повторение части программы должно находится внутри ветви контрольной структуры или контрольная структура внутри повторения части программы.
-
При комбинации переходов и повторения части программы кадры выполняются только последовательно. Если, к примеру, осуществляется переход из повторения части программы, то обработка продолжается до тех пор, пока не будет найден запрограммированный конец части программы.
Пример:
Указание
Повторение части программы активируется через программирование. Оператор REPEAT должен стоять после кадров перемещения.