Статьи о станках


Параметрическое программирование

Одним из самых интересных и эффективных методов программирования обработки является параметрическое программирование. Удивительно, но большинство технологов-программистов хоть и слышали об этом методе, но совершенно не умеют его использовать. В этом разделе вы познакомитесь
с теорией параметрического программирования и коснетесь основ макроязыка системы ЧПУ современного станка.
Большинство станочных систем ЧПУ имеют в своем распоряжении специальный язык для параметрического программирования (макропрограммирования). Например, в СЧПУ Fanuc этот язык называется Macro В. Если вы хоть немного знакомы с языком программирования Бейсик (Basic), то вы без труда разберетесь и с Macro В. Команды и функции именно этого языка мы рассмотрим подробно.
В обычной управляющей программе вы указываете различные G коды, а так же направления и величины перемещений при помощи числовых значений. Например, G10 или ХЮО. Однако СЧПУ станка может делать то же самое при помощи переменных.
Символом переменной в Macro В является знак #. Например, в программе можно указать следующие выражения:
#1=100 #2=200 #3=#1+#2
Это означает, что переменной #1 присваивается значение 100. а переменной #2 значение 200. Переменная #3 будет являться результатом суммы переменной #1 и переменной #2. С таким же успехом можно записать и G код:
#25=1 G#25
Это означает, что переменной #1 присвоено значение 1. Тогда вторая строка по своей сути будет обозначать код линейной интерполяции G1. С переменными можно производить различные арифметические и логические операции, что позволяет создавать "умные" программы обработки или различные станочные циклы.
В памяти системы ЧПУ существует область, в которой хранятся значения переменных. Вы можете заглянуть в эту область, если найдете раздел памяти СЧПУ, который обычно называется MACRO или VARIABLES. Присваивать значения переменным можно не только внутри программы, но и непосредственно - вводя значения в регистры этой памяти. Приведу несколько примеров. Можно составить такую программу:
#1=25 #2=30 #3=#2+#1
В этом случае, значения присваиваются переменным внутри программы. Чтобы в будущем изменить числовые значения переменных #1 и #2 придется отредактировать программ}'.
Можно реализовать более удобный вариант, который позволит изменять значения переменных в любой момент, не прибегая к изменению самой программы:
#3=#2+#1
Как видите, переменным #1 и #2 в программе не присвоено никаких значений. Оператор станка может войти в область переменных MACRO и ввести любое числовое значение для любой переменной.
№ переменной значение
0 0
1 IQ
2
3 0
4 0
700 0
701 0
После того, как оператор станка присвоил переменной #1 значение 10, а переменной #2 значение 12 и выполнил программу, значение переменной #3 станет равным 22.
№ переменной значение
0 о
1 ю
2 12
3 22
4 0
700 0
701 о
Все переменные системы ЧПУ можно условно разделить на 4 типа:
• нулевые
• локальные
• общие
• системные.
Локальные переменные могут быть использованы внутри макросов для хранения данных. При выключении электропитания локальные переменные обнуляются. У большинства станков с СЧПУ Fanuc нулевой серии локальными являются переменные с номерами от 1 до 33.
Общие переменные могут работать внутри различных параметрических программ и макросов. При выключении электропитания некоторые общие переменные обнуляются, а некоторые сохраняют свои значения. У большинства станков с СЧПУ Fanuc нулевой серии общими являются переменные с номерами от 100 до 999.
Системные переменные используются для чтения и записи различной системной информации - данных о позиции инструмента, величинах компенсации, времени и др. Номера системных переменных для Fanuc нулевой серии начинаются с 1000.
Нулевые переменные всегда равны нулю.
Для выполнения арифметических и логических операций язык Macro В предоставляет набор команд и операторов.
Таблица 17. Основные арифметические и логические команды.
Функции Формат
Равенство #а=#Ь
Сложение #с=#а+#Ь
Вычитание #с=#а-#Ь
Умножение #с=#а*#Ь
Деление #с=#а/#Ь
Синус #c=SIN[#b]
Косинус #c=COS[#b]
Тангенс #c=TAN[#b]
Арктангенс #c=ATAN[#b]
Квадратный корень #c=SQRT[#b]
Абсолютное значение #c=ABS[#b]
Округление #c=ROUND[#b]
ИЛИ (OR) #c=#a OR #b
И (AND) #c=#a AND #b
Для управления переменными и для выполнения различных логических операций служат макрокоманды. Макрокоманды языка Macro В похожи на команды Бейсика.
Команда безусловного перехода GOTO предназначена для передачи управления определенному кадру программы. Формат команды следующий:
GOTO N- безусловный переход к кадру N
GOTO #А безусловный переход к кадру, установленному переменной

Пример:
N10 G01 ХЮО N20 G01 Х-ЮО N30 GOTO 10
После выполнения кадра N30 система ЧПУ переходит к кадру N10. Затем снова работает с кадрами N20 и N30 - получается бесконечный цикл.
Команда условия IF позволяет выполнять различные действия с условием. После IF указывается некоторое выражение. Если это выражение оказывается справедливым, то выполняется команда (например, команда без-\ словного перехода), находящаяся в кадре с W. Если выражение оказывается несправедливым, то команда, находящаяся в кадре с IF не выполняется, а > правление передается следующему кадру.
Формат команды следующий: IF [#а GT #b] GOTO N
Пример:
#1=100 #2=80
N10G01 Х200
N20 IF [#1 GT #2] GOTO 40
N30 G01 Х300
N40 МЗО
В начале программного примера переменным #1 и #2 присваиваются значения 100 и 80 соответственно. В кадре N20 происходит проверка условия. Если значение переменной #1 больше значения переменной #2, то выполняется команда перехода GOTO к кадру окончания программы N40. В нашем случае, выражения считается справедливым, так как 100 больше, чем
80. В результате, после выполнения кадра N10 происходит переход к кадру N40, то есть кадр N30 не выполняется.
В этой же программе можно изменить значения переменных:
#1=100 #2=120
N10 GO 1X200
N20 IF [#1 GT #2] GOTO 40
N30 GOl X300
N40 МЗО
Во втором случае условие в кадре N20 не будет справедливым, так как 100 не больше, чем 120. В результате, после выполнения кадра N10 не происходит переход к кадру N40, то есть кадр N30 выполняется как обычно.
В выражении [#1 GT #2] используются операторы сравнения. В таблицу 18 сведены операторы для сравнения переменных языка Macro В.
Таблица 18. Операторы сравнения.
Оператор Смысл
EQ Равно (=)
NE Не равно
GT Больше (>)
GE Больше или равно
LT Меньше (<)
LE Меньше или равно
Команда WHILE позволяет повторять различные действия с условием. Пока указанное выражение считается справедливым, происходит выполнение части программы, ограниченной командами DO и END. Если выражение не справедливо, то управление передается кадру, следующему за END
Пример:
%
оюоо
#1=0 #2=1
WHILE [#2 LE 10] DO 1; #1=#1+#2
#2=#2+1 END 1 МЗО
%
Макропрограммой называется программа, которая находится в памяти СЧПУ и содержит различные макрокоманды. Макропрограмму можно вызывать из обычной программы с помощью G кода, аналогично постоянным циклам. При вызове макропрограммы существует возможность прямой передачи значений для переменных макропрограммы.
Команда G65 предназначена для немодального вызова макропрограммы. Формат для этой команды следующий:
G65 P_L_A_B_
где.
G65 - команда вызова макропрограммы
Р - номер вызываемой макропрограммы
L - число повторений макропрограммы
А и В - адреса и значения локальных переменных
Пример:
G65 Р9010 L2 А121 ВЗОЗ - макропрограмма 9010 вызывается 2 раза, соответствующим локальным переменным присваиваются значения 121 и
303.
Необходимо знать какой локальной переменной присваивается значение с помощью того или иного адреса. Например, для СЧПУ Fanuc O-MD будут справедливы следующие зависимости:
Таблица 19. Соответствие адресов локальным переменным
Адрес Переменная
А #1
В #2
с #3
D #7
Е #8
F #9
Н #11
I #4
J #5
К #6
М #13
Q #17
R #18
S #19
Т #20
и #21
V #22
W #23
X #24
Y #25
Z #26
Теперь можно приступить к созданию несложной, но очень полезной параметрической программы. Довольно часто возникает необходимость в обработке нескольких отверстий, находящихся на некотором радиусе и следующих через определенный угол (рис. 10.7). Чтобы освободить программиста от утомительного переделывания программы в случае изменения радиуса, угла или количества отверстий создадим такую программу обработки, которая позволит оператору вводить значения радиуса и угла и выполнять операцию сверления по окружности с любыми размерами.
Для сверления отверстий будем использовать стандартный цикл G81. Угол, на котором находятся отверстия, отсчитывается от оси X против часовой стрелки (положительный угол).
Необходимо задать:
• Радиус окружности, на которой находятся отверстия
• Начальный угол (угол, на котором находится первое отверстие)
• Относительный угол (угол, через который следуют остальные отверстия)
• Общее количество отверстий
Все эти данные должны быть представлены в параметрическом виде, то есть при помощи переменных.
Пусть #100= радиус окружности, на которой находятся отверстия
#101= начальный угол
#102= относительный угол
#103= общее количество отверстий

Рисунки к станкам с чпу Рис. 10.7. Создадим параметрическую программу для обработки детали с неизвестными размерами.
Для того чтобы создать параметрическую программу необходимо придумать алгоритм, позволяющий изменять поведение программы обработки в зависимости от значений указанных переменных. В нашем случае, основой УП является стандартный цикл сверления G81. Остается найти закон, по которому описываются координаты центров отверстий при любых первоначальных значениях радиуса, углов и произвольном количестве отверстий.
%
О2000
N10 G21 G90 G80 G54 G40 G49 GO0 N20 G17
Первые кадры программы будут стандартными. Это номер программы, строка безопасности и код G17 выбора плоскости XY.
N30 G16
Так как координаты центров отверстий задаются с помощью радиуса и > гла. то есть в полярной системе координат, то в кадре N30 укажем код G16.
Далее следует вызов инструмента (сверла), компенсация его длины и включение оборотов шпинделя.
N40 Т1 Мб N45 G43H1Z100 N50 S1000 МОЗ #120=0
В кадр N60 поставим цикл сверления G81 и координаты центра первого отверстия. Как вы помните, в случае работы с полярными координатами. X обозначает радиус, a Y определяет угол. Значения радиуса и начального угла известны, они устанавливаются переменными #100 (радиус) и #101 (начальный угол). Вводится некоторая переменная #120 с нулевым значением. Эта переменная представляет собой счетчик. Чуть позже вы поймете назначение этой переменной.
N60 G98 G81 Х#Ю0 Y#101 Z-5 R0.5 F50
Переменная #103 отвечает за общее количество отверстий. Так как первое отверстие мы уже просверлили, то уменьшим #103 на 1.Таким образом, кадр N70 обеспечивает подсчет оставшихся отверстий. А кадр N75 увеличивает значение переменной #120 на 1.
N70#103=#103-l N75 #120=#120+1
Если количество отверстий, которые осталось просверлить равно нулю, то следует отменить цикл сверления, выключить обороты шпинделя и завершить программу.
N80 IF [#103 EQ 0] GOTO 120
В кадре N80 происходит сравнение значения переменной #103 с нулем. Если переменная #103 равна нулю, то управление передается кадру N120 в конце программы. Если же переменная #103 не равна нулю, то выполняется следующий кадр.
N90#130=#102*#120 N95 #110=#Ю1+#130
Кадр N90 предназначен для определения углового приращения. Новая переменная #110 является суммой #101 (начального угла) и #130 (углового приращения). Кадр N95 обеспечивает расчет угла последующего отверстия.
Затем указывается новый угол для сверления, и управление передается кадру
N70.
N100 Y#110 N110 GOTO 70
При помощи кадра N70 образуется замкнутый цикл, который обеспечивает расчет координат центров отверстий и сверление, до тех пор, пока значение переменной #103 не будет равно нулю. Если значение #103 станет равным нулю, то управление будет передано кадру N120.
N120 G80 N125 М05 N130 G15 N140 МЗО
%
Заключительные кадры программы предназначены для отмены постоянного цикла (G80), выключения оборотов шпинделя (М05), выключения режима полярных координат (G15) и завершения программы (МЗО).
%
О2000
N10 G21 G90 G80 G54 G40 G49 G00
N20 G17
N30 G16
N40 Т1 Мб
N45 G43 HI Z100
N50 SI ООО МОЗ
#120=0
N60 G98 G81 Х#Ю0 Y#101 Z-5 R0.5 F50
N70 #103=#ЮЗ-1
N75 #120=#120+1
N80 IF [#103 EQ 0] GOTO 120
N90 #130=#102*#120
N95 #110=#101+#130
N100 Y#110
N110 GOTO 70
N120 G80
N125 M05
N130 G15
N140 M30
%

Рисунки к станкам с чпу Рис. 10.8. Вместо переменных на чертеже стоят конкретные размеры и известно количество отверстий.
Любая параметрическая программа должна быть тщательно проверена, прежде чем она попадет на станок. Скорее всего, у вас не получиться проверить такую программу при помощи редактора УП и бэкплота. так как в ней присутствуют переменные. Самая надежная проверка в данном случае -это подстановка значений для входных переменных и "раскручивание" алгоритма уже с конкретными числами.
Предположим, что оператор станка получил чертеж детали (рис. 10.8) для обработки отверстий. Он должен установить нулевую точку G54 в центр детали, замерить длину сверла и установить его в шпиндель. Затем следует войти в область переменных MACRO и ввести следующие числовые значения:
№ переменной значение
100 12.5
101 45
102 20
103 4
104 0
105 0
Для проверки созданной параметрической программы достаточно подставить конкретные значения переменных и "прокручивая" алгоритм, получить обычную программу.
%
О2000
N10 G21 G90 G80 G54 G40 G49 GOO
N20 G17
N30 G16
N40 Tl M6
N45 G43 HI Z100
N50 S1000 M03
#120=0
N60 G98 G81 X12 5 Y45 Z-5 RO 5 F50
N70 #103=#ЮЗ-1=4-1=3 - количество оставшихся отверстий
N75 #120=#120+1=0+1=1
N80 Переменная #103 не равна О
N90 #130=#102*#120=20*1=20
N95 #110=#101+#130=45+20=65
N100 Y65
N70 # 103=# 103-1=3-1=2- количество оставшихся отверстий
N75 #120=#120+1=1+1=2
N80 Переменная #103 не равна 0
N90 #130=#102*#120=20*2=40
N95 #1 Ю=#101+#130=45+40=85
N100 Y85
N70 #ЮЗ=#103-1=2-1=1- количество оставшихся отверстий
N75 #120=#120+1=2+1=3
N80 Переменная #103 не равна 0
N90 #130=#102*#120=20*3=60
N95 #110=#101+#130=45+60=105
N100 Y105
N70 # 103 =# 103-1 = 1-1 =0- количество оставшихся отверстий N75 #120=#120+1=3+1=4
N80 Переменная #103 равна 0, переход к кадру N120 N120 G80 N125 М05 N130 G15 N140 МЗО
о/ /о
Эту же программу можно записать и в привычном виде
%
О2000
N10 G21 G90 G80 G54 G40 G49 G00 N20 G17
161
N30G16 N40 Т1 Мб N45G43H1Z100 N50 SI ООО МОЗ
N60 G98 G81 Х12.5 Y45 Z-5 R0.5 F50
N100 Y65
N100 Y85
N100 Y105
N120 G80
N125 M05
N130 G15
N140 M30
%
Теперь попробуем создать макропрограмму, которая будет функционировать аналогично постоянному циклу. Для обработки детали показанной на рисунке 10.8 оператору станка должен ввести и отработать следующую команду:
G65 Р9010 112.5 А45 В20 Н4
При этом наша параметрическая программа (с новым номером 09() Ю) уже должна находиться в памяти СЧПУ. Как правило, макропрограммы имеют номера с 9000 и выше и не доступны для свободного редактирования. Команда G65 предназначена для немодального вызова макропрограммы. При этом адреса I, А, В, Н в кадре с G65 передают свои числовые значения определенным локальным переменным. Для нахождения соответствия адресов локальным переменным можно воспользоваться таблицей 19.
Можно подстроить переменные в нашей программе, вставив следующие строки в программу:
#100=#4 #101=#1 #Ю2=#2 #103=#11
В результате получаем макропрограмму: %
О90Ю
#Ю0=#4
#Ю1=#1

Обсудить вопрос в студенческом форуме

 

Сайт содержит информацию о учебном заведении и студенческой общине и не является официальным