Главная Книги - Разные Haas Automation Руководство оператора токарного станка (96-RU8910, Редакция M, 2020 год)
поиск по сайту правообладателям
|
|
содержание .. 9 10 11 12 ..
Макросы (опция)
#[#1]=3.5 + #1 ;
Это выражение присваивает переменной #3 значение 6,5.
Переменную можно использовать вместо адреса G-кода, где адрес относится к
буквам A-Z.
В блоке:
N1 G0 X1.0 ;
переменным можно присвоить следующие значения:
#7 = 0 ;
#1 = 1.0 ;
и заменить блок на:
N1 G#7 X#1 ;
Значения в переменных во время выполнения программы используются как
значения адресов.
6.7.5
Подстановка адреса
Обычно для задания управляющих адресов A-Z используется адрес с числом после
него. Например:
G01 X1.5 Z3.7 F.02 ;
задает адресам G, X, Z и F значения 1, 1,5, 3,7 и 0,02, соответственно, и таким
образом дает указание системе управления перемещаться линейно, G01, в
положение X=1,5 и Z=3,7 со скоростью подачи 0,02 дюйма на оборот. Синтаксис
макропрограммы позволяет заменять значение адреса на любую переменную или
выражение.
Предыдущий оператор можно заменить следующим кодом:
#1=1 ;
#2=0.5 ;
#3=3.7 ;
284
Программирование опций
#4=0.02 ;
G#1 X[#1+#2] Z#3 F#4 ;
Допустимый синтаксис адресов A-Z (исключая N или O) следующий:
<адрес><переменная>
A#101
<адрес><-><переменная>
A-#101
<адрес>[<expression>]
Z[#5041+3.5]
<адрес><->[<expression>]
Z-[SIN[#1]]
Если значение переменной не соответствует диапазону адреса, будет выдан
обычный сигнал ошибки управления. Например, следующий текст программы
приводит к сигналу об ошибке из-за недопустимого G-кода, потому что код G143
отсутствует:
#1= 143 ;
G#1 ;
Когда переменная или выражение используется в качестве значения адреса, их
значение округляется до наименьшего значимого разряда. Если #1=0,123456, то G01
X#1 переместит станок в положение 0,1235 по оси X. Если система управления
работает в метрическом режиме, станок переместится в положение 0,123 по оси Х.
Если для замены значения адреса используется неопределенная переменная, эта
адресная ссылка игнорируется. Например:
(#1 is undefined) ;
G00 X1.0 Z#1 ;
становится
G00 X1.0 (no Z movement takes place) ;
285
Макросы (опция)
Макрооператоры
Макрооператоры - это строки кода, позволяющие программисту манипулировать
системой управления, используя характеристики, свойственные любому
стандартному языку программирования. Сюда входят функции, операторы,
условные и арифметические выражения, операторы присваивания и управляющие
операторы.
Функции и операторы используются в выражениях для изменения переменных или
значений. Выражения обязательно содержат операторы, в то время как функции
просто облегчают работу программиста.
Функции
Функции - это встроенные программы, которыми может пользоваться программист.
Все функции имеют форму <
[argument] и возвращают десятичные значения с плавающей точкой. В систему
управления HAAS включены следующие функции:
Примечания по использованию функций
Функция округления ROUND работает по-разному в зависимости от контекста, в
котором она используется. При использовании в арифметическом выражении любое
число, с дробной частью большей или равной 0,5 округляется до следующего целого
числа, в остальных случаях дробная часть отсекается от числа.
%
#1=1.714 ;
#2=ROUND[#1] (#2 is set to 2.0) ;
#1=3.1416 ;
#2=ROUND[#1] (#2 is set to 3.0) ;
%
Если оператор ROUND (округлить) используется в адресном выражении, метрические
и угловые размеры округляются с точностью до трех десятичных знаков. Для
дюймовых размеров точность по умолчанию - четыре знака.
%
#1= 1.00333 ;
G00 X[ #1 + #1 ] ;
(Table X Axis moves to 2.0067) ;
G00 X[ ROUND[ #1 ] + ROUND[ #1 ] ] ;
(Table X Axis moves to 2.0067) ;
G00 A[ #1 + #1 ] ;
(Axis rotates to 2.007) ;
286
Программирование опций
G00 A[ ROUND[ #1 ] + ROUND[ #1 ] ] ;
(Axis rotates to 2.007) ;
D[1.67] (Diameter rounded up to 2) ;
%
Разница между функциями Fix и Round
%
#1=3.54 ;
#2=ROUND[#1] ;
#3=FIX[#1].
%
#2 будет установлена на 4. #3 будет установлена на 3.
Операторы
Операторы подразделяются на 3 категории: булевы, арифметические и логические.
Булевы операторы
Булевы операторы всегда дают в результате 1,0 (ИСТИННО) или 0,0 (ЛОЖНО).
Существует шесть булевых операторов. Чаще всего они используются в условных
выражениях, но не ограничиваются ими. Это:
EQ - равняется
NE - не равняется
GT - больше
LT - меньше
GE - больше или равно
LE - меньше или равно
Ниже приводится четыре примера того, как можно использовать булевы и логические
операторы:
287
Макросы (опция)
Пример
Пояснения
Переход к блоку 100, если значение в переменной
IF [#10001 EQ 0.0] GOTO100 ;
#10001 равно 0.0.
Пока переменная #10101 меньше 10, повторять
WHILE [#10101 LT 10] DO1 ;
цикл DO1..END1.
Переменной #10001 установлена на 1,0
#10001=[1.0 LT 5.0] ;
(ИСТИНА).
Если переменная #10001 И переменная #10002
IF [#10001 AND #10002 EQ
равны значению в #10003, то система управления
#10003] GOTO1 ;
выполняет переход в блок 1.
Арифметические операторы
Арифметические операторы состоят из обычных унарных и бинарных операторов.
Это:
+
- Унарный плюс
+1.23
-
- Унарный минус
-[COS[30]]
+
- Бинарное сложение
#10001=#10001+5
-
- Бинарное вычитание
#10001=#10001-1
- Умножение
#10001=#10002*#10003
/
- Деление
#10001=#10002/4
MOD
- Остаток
#10001=27 MOD 20 (#10001 содержит
7)
288
Программирование опций
Логические операторы
К логическим операторам относятся операторы, работающие с значениями
двоичных битов. Макропеременные
- это числа с плавающей точкой. При
применении логических операторов к макропеременным используется только целая
часть числа с плавающей точкой. Логические операторы следующие:
OR - Логическое ИЛИ для двух значений
XOR - Исключающее ИЛИ для двух значений
AND - Логическое И для двух значений
Примеры:
%
#10001=1.0 ;
#10002=2.0 ;
#10003=#10001 OR #10002 ;
%
Здесь переменная #10003 будет иметь значение 3,0 после выполнения операции OR.
%
#10001=5.0 ;
#10002=3.0 ;
IF [[#10001 GT 3.0] AND [#10002 LT 10]] GOTO1 ;
%
Здесь система управления переходит к блоку 1, потому что #10001 GT
3.0 дает
результат 1,0, а #10002 LT 10 дает результат 1,0, таким образом, 1,0 AND 1,0 дает
1,0 (ИСТИНА), значит выполняется команда перехода GOTO.
NOTE:
Чтобы достичь нужных результатов, будьте очень
осторожны при использовании логических операторов.
Выражения
Выражения определяются как любая последовательность переменных и
операторов, заключенная в квадратные скобки [ и ]. Есть два использования для
выражений: условные выражения или арифметические выражения. Условные
выражения возвращают значения ЛОЖНО (0,0) или ИСТИННО (любое отличное от
нуля). Арифметические выражения определяют значение с помощью
арифметических операторов и функций.
289
Макросы (опция)
Арифметические выражения
Арифметическим является любое выражение, использующее переменные,
операторы или функции. Арифметическое выражение возвращает некоторое
значение. Обычно арифметические выражения используются в операторах
присваивания, но не ограничиваются ими.
Примеры арифметических выражений:
%
#10001=#10045*#10030 ;
#10001=#10001+1 ;
X[#10005+COS[#10001]] ;
#[#10200+#10013]=0 ;
%
Условные выражения
В системе управления Haas все выражения задают условное значение. Это значение
равно либо 0,0 (ЛОЖНО), либо не равно нулю (ИСТИННО). Контекст, в котором
используется выражение, определяет, является ли оно условным. Условные
выражения используются в операторах IF и WHILE, а также в команде M99. Условные
выражения могут использовать булевы операторы для определения TRUE (ИСТИНА)
или FALSE (ЛОЖЬ) условия.
Условная конструкция M99 используется только в системе управления Haas. Без
макросов M99 в системе управления Haas способна выполнять безусловный переход
к любой строке в текущей подпрограмме, если поместить в эту строку код P.
Например:
N50 M99 P10 ;
выполняет переход на строку N10. Команда не возвращает управление
вызывающей подпрограмме. Если макросы включены, M99 можно использовать с
условным выражением для выполнения условного перехода. Чтобы выполнить
переход с переменной #10000 меньше 10, можно составить строку выше следующим
образом:
N50 [#10000 LT 10] M99 P10 ;
В этом случае переход произойдет, только если #10000 будет меньше 10. В
противном случае продолжится обработка следующей строки программы. В примере
выше условный оператор M99 можно заменить на
290
Программирование опций
N50 IF [#10000 LT 10] GOTO10 ;
Операторы присваивания
Операторы присваивания позволяют изменять переменные. Формат оператора
присваивания таков:
<expression>=<expression>
Выражение слева от знака равенства всегда должно прямо или косвенно указывать
на макропеременную. Эта макропрограмма инициализирует последовательность
переменных до любого значения. В этом примере используется и прямое, и
косвенное присваивание.
%
O50001 (INITIALIZE A SEQUENCE OF VARIABLES) ;
N1 IF [#2 NE #0] GOTO2 (B=base variable) ;
#3000=1 (Base variable not given) ;
N2 IF [#19 NE #0] GOTO3 (S=size of array) ;
#3000=2 (Size of array not given) ;
N3 WHILE [#19 GT 0] DO1 ;
#19=#19-1 (Decrement count) ;
#[#2+#19]=#22 (V=value to set array to) ;
END1 ;
M99 ;
%
Можно использовать макропрограмму выше для инициализации трех совокупностей
переменных следующим образом:
%
G65 P300 B101. S20 (INIT 101..120 TO #0) ;
G65 P300 B501. S5 V1. (INIT 501..505 TO 1.0) ;
G65 P300 B550. S5 V0 (INIT 550..554 TO 0.0) ;
%
Десятичная точка в B101. и т.д. обязательна.
291
Макросы (опция)
Управляющие операторы
Управляющие операторы позволяют программисту выполнять как условные, так и
безусловные переходы. Они также дают возможность повторять выполнение части
текста программы в зависимости от условия.
Безусловный переход (GOTOnnn и M99 Pnnnn)
Система управления HAAS позволяет использовать два способа безусловного
перехода. Безусловный переход всегда осуществляется к указанному блоку.
Команда M99 P15 выполнит безусловный к блоку номер 15. Команду M99 можно
использовать независимо от того, установлены макросы, или нет, и это
традиционный способ безусловного перехода в системе управления Haas. GOTO15
делает то же, что M99 P15. В системе управления Haas команду GOTO можно
использовать в одной строке с другими G-кодами. GOTO исполняется после всех
других команд, например, М кодов.
Вычисляемый переход (GOTO#n и GOTO [expression])
Вычисляемый переход позволяет программе передавать управление другой строке
кода в той же подпрограмме. Система управления может вычислить блок, пока
выполняется программа, с помощью формы GOTO
[expression], или она может
передать блок для обработки с помощью локальной переменной, как делается в
форме GOTO#n.
Команда GOTO округляет переменную или результат выражения, связанного с
вычисляемым переходом. Например, если переменная #1 содержит значение 4,49,
а программа содержит команду перехода GOTO#1, система управления делает
попытку перехода к блоку, который содержит N4. Если #1 содержит значение 4,5, то
система управления перейдет в блок, который содержит N5.
Пример: Можно развить следующий скелет текста программы для составления
программы, которая наносит серийные номера на детали:
%
O50002 (COMPUTED BRANCHING) ;
(D=Decimal digit to engrave) ;
;
IF [[#7 NE #0] AND [#7 GE 0] AND [#7 LE 9]] GOTO99 ;
#3000=1 (Invalid digit) ;
;
N99;
#7=FIX[#7] (Truncate any fractional part) ;
;
GOTO#7 (Now engrave the digit) ;
;
N0 (Do digit zero) ;
M99 ;
292
Программирование опций
;
N1 (Do digit one) ;
;
M99 ;
%
С помощью приведенной выше подпрограммы можно использовать этот вызов,
чтобы гравировать пятую цифру:
G65 P9200 D5 ;
Вычисляемые переходы GOTO с использованием выражения можно использовать
для обработки переходов на основе результатов опроса входов оборудования.
Например:
%
GOTO [[#1030*2]+#1031] ;
N0(1030=0, 1031=0) ;
...M99 ;
N1(1030=0, 1031=1) ;
...M99 ;
N2(1030=1, 1031=0) ;
...M99 ;
N3(1030=1, 1031=1) ;
...M99 ;
%
#1030 и #1031.
Условный переход (IF и M99 Pnnnn)
Условный переход позволяет программе передавать управление другому фрагменту
кода в той же подпрограмме. Условный переход может использоваться, только если
разрешено использование макросов. Система управления Haas позволяет
выполнять условные переходы двумя похожими способами.
IF [<conditional expression>] GOTOn
Как говорилось выше,
<условное выражение>
- это любое выражение,
использующее какой-либо из шести булевых операторов: EQ, NE, GT, LT, GE или LE.
Выражение обязательно заключается в скобки. Для системы управления Haas
включать эти операторы не обязательно. Например:
293
Макросы (опция)
IF [#1 NE 0.0] GOTO5 ;
может также иметь вид:
IF [#1] GOTO5 ;
В этом операторе, если значение переменной
#1 не равно
0,0 или не
неопределенное значение #0, то произойдет переход к блоку 5, в противном случае
будет исполняться следующий блок.
На системе управления Haas,
<условное выражение> также используется с
форматом M99 Pnnnn. Например:
G00 X0 Y0 [#1EQ#2] M99 P5;
Здесь условие относится только к части M99 оператора. Станок получает команду
перейти к X0, Y0 независимо от того, является ли выражение истинным или ложным.
В зависимости от значения выражения выполняется только переход M99.
Рекомендуется использовать вариант IF
GOTO, если необходимо обеспечить
переносимость кода.
Условное выполнение (IF THEN)
Исполнение управляющих операторов может также осуществляться с помощью
конструкции IF THEN. Формат:
IF [<conditional expression>] THEN <statement> ;
NOTE:
Для сохранения совместимости с синтаксисом FANUC
оператор THEN нельзя использовать с GOTOn.
Этот формат традиционно используется для условных операторов присваивания,
например:
IF [#590 GT 100] THEN #590=0.0 ;
294
Программирование опций
Переменной #590 присваивается нулевое значение, если когда значение #590
превышает
100.0. В системе управления Haas, если условное выражение
возвращает ЛОЖЬ (0.0), то оставшаяся часть блока IF игнорируется. Это значит, что
для управляющих операторов также можно задавать условия, чтобы можно было
написать что-то следующее:
IF [#1 NE #0] THEN G01 X#24 Y#26 F#9 ;
При этом линейное перемещение будет выполняться только в том случае, если
переменной #1 было присвоено значение. Ниже приводится еще один пример:
IF [#1 GE 180] THEN #101=0.0 M99 ;
То есть, если значение переменной #1 (адрес A) больше или равно 180, то
переменной
#101 присваивается нулевое значение и происходит возврат из
подпрограммы.
Вот пример использования оператора IF, который выполняет переход, если
переменная инициализирована и имеет какое-либо значение. В противном случае
обработка продолжается и выдается сигнал об ошибке. Помните, что при выдаче
сигнала об ошибке происходит останов выполнения программы.
%
N1 IF [#9NE#0] GOTO3 (TEST FOR VALUE IN F) ;
N2 #3000=11(NO FEED RATE) ;
N3 (CONTINUE) ;
%
Повторение / использование циклов (WHILE DO END)
Важной характеристикой любого языка программирования является способность
исполнять последовательности операторов заданное число раз или выполнять
циклы операторов до достижения некоторого условия. Традиционное
программирование с помощью G-кодов позволяет делать это, используя L адрес.
Подпрограмму можно выполнять любое количество раз, используя L адрес.
M98 P2000 L5 ;
Возможности этого подхода ограничены, поскольку нельзя прервать исполнение
подпрограммы по условию. Макросы обеспечивают большую гибкость, позволяя
использовать циклическую конструкцию WHILE-DO-END. Например:
295
Макросы (опция)
%
WHILE [<conditional expression>] DOn ;
<statements> ;
ENDn ;
%
Эта программа выполняет операторы между DOn и ENDn, пока условное выражение
остается истинным. Скобки в выражении обязательны. Если выражение становится
ложным, то далее исполняется блок после ENDn. Вместо WHILE можно использовать
краткое написание WH. Часть оператора DOn-ENDn - согласованная пара. Значение n
равно 1-3. Это значит, что в подпрограмме может быть максимум три вложенных
цикла. Вложение - это цикл внутри цикла.
Несмотря на то что вложенность операторов WHILE возможна только до трех
уровней, фактически ограничений нет, поскольку каждая подпрограмма может иметь
до трех уровней вложенности. При необходимости получить вложенность более 3
уровней можно вынести фрагмент с тремя младшими уровнями вложенности в
подпрограмму и таким образом обойти ограничение.
Если в подпрограмме используется два независимых цикла WHILE, они могут
использовать один и тот же индекс вложенности. Например:
%
#3001=0 (WAIT 500 MILLISECONDS) ;
WH [#3001 LT 500] DO1 ;
END1 ;
<Other statements>
#3001=0 (WAIT 300 MILLISECONDS) ;
WH [#3001 LT 300] DO1 ;
END1 ;
%
Можно использовать GOTO для перехода из фрагмента, ограниченного DO-END, но с
помощью GOTO невозможно перейти внутрь цикла. Переход в пределах цикла,
ограниченного DO-END, с помощью GOTO допускается.
Бесконечный цикл можно выполнить, если удалить WHILE и выражение. Таким
образом,
%
DO1 ;
<statements>
END1 ;
%
296
Программирование опций
выполнение продолжается до нажатия клавиши RESET (СБРОС).
CAUTION:
Избегайте следующей ошибки:
%
WH [#1] D01 ;
END1 ;
%
В этом примере выдается сигнал об ошибке, указывающий, что Then не обнаружено;
Then относится к D01. Измените D01 (ноль) на DO1 (букву O).
6.7.6
Связь с внешними устройствами - DPRNT[ ]
Макросы обеспечивают дополнительные возможности для связи с периферийными
устройствами. С помощью устройств, которые обеспечивает пользователь, можно
выполнять оцифровку деталей, создавать отчеты об исполнении программы или
синхронизировать системы управления.
Форматный вывод данных
Оператор DPRNT позволяет программе отправлять форматированный текст в
последовательный порт. Оператор DPRNT может распечатать любой текст и любую
переменную через последовательный порт. Форма оператора DPRNT указана ниже:
DPRNT [<text> <#nnnn[wf]>... ] ;
Команда DPRNT должна быть единственной командой в блоке. В предыдущем
примере <text> - это любые символы от A до Z или буквы (+,-,/,* и пробел).
Звездочка при выводе преобразуется в пробел. Строка
<#nnnn[wf]>
- это
переменная, после которой указан формат. Номером переменной может быть любая
макропеременная. Указание формата [wf] является обязательным и состоит из
двух цифр в квадратных скобках. Помните, что макропеременные
- это
действительные числа с целой и дробной частями. Первая цифра в обозначении
формата указывает общее число знаков, зарезервированных на выходе для целой
части. Вторая цифра указывает на общее число знаков, зарезервированных для
дробной части. Система управления может использовать любое число от 0-9, как для
целых, так и для дробных частей.
297
Макросы (опция)
Между целой и дробной частью числа печатается десятичная точка. Дробная часть
округляется до наименьшего значимого разряда. Если для дробной части
зарезервировано 0 знаков, десятичная точка не печатается. При наличии дробной
части нулевые младшие разряды выводятся на печать. Для целой части
резервируется как минимум один разряд, даже если она равна нулю. Если целая
часть числа имеет меньше знаков, чем зарезервировано, то вместо старших
разрядов выводятся пробелы. Если значение целой части имеет больше знаков, чем
зарезервировано, то поле печати расширяется так, чтобы вместить эти цифры.
Система управления передает возврат каретки после каждого блока DPRNT.
Пример DPRNT[ ]:
Код
Вывод
#1= 1.5436 ;
X1,5436 Z 1,544 T 1
DPRNT[X#1[44]*Z#1[03]*T#1[40]] ;
ИЗМЕРЕННЫЙ ВНУТРЕННИЙ ДИАМЕТР
DPRNT[***MEASURED*INSIDE*DIAMETER**
*] ;
(без текста, только возврат каретки)
DPRNT[] ;
#1=123.456789 ;
X-123,45679 ;
DPRNT[X-#1[35]] ;
Настройки DPRNT[ ]
Настройка 261 определяет назначение для операторов DPRNT. Можно выбрать их
вывод в файл или в порт TCP. Настройки 262 и 263 задают назначение для вывода
данных DPRNT. Дальнейшую информацию см. в разделе «Настройки» настоящего
руководства.
298
Программирование опций
Исполнение
DPRNTОператоры выполняются во время опережающего просмотра. Это значит, что
необходимо внимательно следить за тем, где в программе находятся операторы
DPRNT, особенно если планируется распечатка.
Для ограничения опережающего просмотра удобно использовать G103. Если
необходимо ограничить интерпретацию опережающего просмотра одним блоком,
необходимо включить следующую команду в начало программы: Это заставляет
систему управления выполнять опережающий просмотр на 2 блока.
G103 P1 ;
Для отмены ограничения предел опережающего просмотра измените команду на
G103 P0. G103 невозможно использовать при активной коррекции на режущий
инструмент.
Редактирование
Неправильная структура или расстановка операторов макропрограммы приводит к
сигналу об ошибке. При редактировании выражений будьте внимательны,
соблюдайте парность скобок.
Функцию DPRNT[
] можно редактировать так же, как комментарий. Ее можно
удалить, перенести как единое целое или отредактировать отдельные элементы в
скобках. Ссылки на переменные и описания формата необходимо изменять как
единое целое. Если необходимо изменить [24] на [44], установите курсор так, чтобы
[24] было выделено, введите [44] и нажмите [ENTER] (ввод). Помните, что для
перемещения по длинным выражениям DPRNT[
] можно использовать маховичок
толчковой подачи.
Адреса, содержащие выражения, могут иметь несколько запутанный вид. В этом
случае символьный адрес является самостоятельной единицей. Например, в
следующем блоке содержится адресное выражение в X:
G01 X [COS [90]] Z3.0 (CORRECT) ;
Здесь Х и скобки являются самостоятельным элементом и могут редактироваться
отдельно. Возможно путем редактирования удалить выражение целиком и заменить
его константой с плавающей точкой.
G01 X 0 Z3.0 (WRONG) ;
299
Макросы (опция)
Выполнение приведенного выше блока вызовет сигнал об ошибке. Правильный вид
блока должен быть следующим:
G01 X0 Z3.0 (CORRECT) ;
NOTE:
Между X и нулем (0) нет пробела. ПОМНИТЕ, что если вы
видите отдельный текстовый символ,
- это адресное
выражение.
6.7.7
G65 Опция вызова макроподпрограммы (группа 00)
G65 - это программа, вызывающая подпрограмму и способная передавать ей
аргументы. Используется следующий формат:
G65 Pnnnnn [Lnnnn] [arguments] ;
Аргументы, выделенные курсивом в квадратных скобках, являются
необязательными. Для получения дополнительной информации об аргументах
макросов см. раздел «Программирование».
Команда G65 требует наличия адреса P, соответствующего номеру программы,
которая находится на диске системы управления. При использовании адреса L вызов
макроса повторяется заданное количество раз.
При вызове подпрограммы система управления ищет ее на активном диске или путь
к программе. Если подпрограмму не удается обнаружить на активном диске, система
управления выполняет поиск на диске, указанном в настройке 251. Дополнительную
информацию о поиске подпрограммы см. в разделе «Настройка путей поиска». Если
система управления не находит подпрограмму, подается сигнал об ошибке.
В примере 1 подпрограмма 1000 вызывается один раз, при этом условия ей не
передаются. Вызовы G65 похожи на вызовы M98, но не идентичны им. Вызовы G65
допускают вложение до 9 уровней, это значит, что программа 1 может вызвать
программу 2, программа 2 может вызвать программу 3, а программа 3 может вызвать
программу 4.
Пример 1:
%
G65 P1000 (Call subprogram O01000 as a macro) ;
M30 (Program stop) ;
O01000 (Macro Subprogram) ;
300
Программирование опций
M99 (Return from Macro Subprogram) ;
%
В примере 2 программа LightHousing.nc вызывается с использованием указанного в
ней пути.
Пример 2:
%
G65 P15 A1. B1.;
G65 (/Memory/LightHousing.nc) A1. B1.;
NOTE:
Пути чувствительны к регистру.
6.7.8
Псевдонимы
Коды псевдонима - это заданные пользователем коды G и M, которые обращаются
к макропрограмме. Есть 10 кодов псевдонима G и 10 кодов псевдонима M, доступных
пользователям. Номера программ с 9010 по 9019 зарезервированы для псевдонимов
G-кода, а номера с 9000 по 9009 зарезервированы для псевдонимов M-кода.
Псевдонимы - это способ назначить G-код или M-код последовательности G65
P#####. Например, в предыдущем примере 2 было бы проще записать:
G06 X.5 Y.25 Z.05 F10. T10 ;
При использовании псевдонимов переменные могут передаваться с кодом G,
переменные не могут передаваться с кодом M.
Здесь был заменен неиспользуемый G-код (G06 на G65 P9010). Чтобы предыдущий
блок работал, значение, связанное с подпрограммой 9010, должно быть 06. Порядок
настройки псевдонимов см. в разделе «Настройка псевдонимов».
NOTE:
G00, G65, G66 и G67 невозможно использовать с псевдонимами.
Все остальные коды от 1 до 255 можно использовать с
псевдонимами.
301
Макросы (опция)
Если вызываемая макросом подпрограмма установлена на код G и подпрограмма не
находится в памяти, выдается сигнал об ошибке. Расположение подпрограммы см. в
разделе «G65 Вызов макроподпрограммы» на странице 300. Если подпрограмма не
обнаружена, выдается сигнал об ошибке.
Настройка псевдонимов
Настройка псевдонимов G-кода или M-кода выполняется в окне
«Коды
псевдонимов». Как настроить псевдоним:
1.
Нажмите [SETTING] (настройка) и перейдите на вкладку Alias Codes (коды
псевдонимов).
2.
Нажмите [EMERGENCY STOP] (аварийная остановка) в системе управления.
3.
С помощью клавиш курсора выберите вызов макроса M или G, который будет
использоваться.
4.
Введите номер кода G или кода M, для которого необходимо задать псевдоним.
Например, если необходимо задать псевдоним для кода G06, введите 06.
5.
Нажмите [ENTER].
6.
Повторите пункты 3 - 5 для других кодов G или M, для которых задаются
псевдонимы.
7.
Отпустите кнопку [EMERGENCY STOP] в системе управления.
Задание значения псевдонима 0 выключает псевдонимы для связанной
подпрограммы.
302
Программирование опций
F6.10:
Окно ALIAS CODES (коды псевдонимов)
303
Мастер контуров
6.8
Мастер контуров
Мастер контуров позволяет вам быстро рисовать программные контуры и траектории
перемещения инструментов. Чтобы создать новый контур, нажмите [EDIT], затем
выберите вкладку Shape Creator. Если вы уже создали профиль контура, зайдите
в папку User Data, My Profiles в списке программных папок и выберите файл мастера
контуров. Нажмите
[SELECT PROGRAM], чтобы продолжить редактирование
контура.
F6.11:
Экран мастера контуров.
1
3
2
4
9
5
10
13
6
11
7
12
8
14
1.
Переменные перемещения.
2.
Нажмите [ENTER], чтобы добавить новый ряд.
3.
Доска рисования мастера контуров.
4.
Скорость толчковой подачи
5.
Нажмите [ENTER] для установки значения.
6.
Нажмите [INSERT], чтобы вставить перемещение: перемещение с линейной
подачей, перемещение с круговой подачей по часовой стрелке, перемещение
с круговой подачей против часовой стрелки.
304
Программирование опций
7.
Выделите нужное перемещение и нажмите кнопку [ALTER], чтобы установить
нужный тип перемещения.
8.
Выделите нужное перемещение и нажмите кнопку [DELETE], чтобы удалить
перемещение.
9.
Нажмите [F4] и введите имя, чтобы сохранить файл мастера контуров. Файл
будет сохранен в папке User Data/My Profiles/.
10. Нажмите кнопку [F2], чтобы включить масштабирование
11. Нажмите кнопку [F3], чтобы открыть функцию калькулятора.
12. Нажмите кнопку [ORIGIN], чтобы создать новую форму или удалить внесенные
изменения.
13. Окно масштабированного вида.
14. Справочный текст.
6.8.1
Использование мастера контуров
Ниже приведен пример с использованием мастера контуров для генерирования
простого профиля черновой обработкой по наруж. диаметру.
F6.12:
Пример мастера контуров.
305
Мастер контуров
1.
Нажмите кнопку [EDIT] и перейдите курсором влево во вкладку Shape Creator.
2.
Используйте маховичок толчковой подачи, чтобы установить значения.
Установите положения по размерам: X положение 2,5000, Z положение
0,0250.
3.
Установите положения по точке ускоренного перемещения: X положение
3,3000, Z положение 0,2000.
4.
Установите начальные положения: X положение 0,5000, Z положение 0,2000.
5.
Нажмите [ENTER], чтобы добавить строку и выберите 1: Перемещение с
линейной подачей.
6.
Установите положения линейной подачи: X положение 0,5000, Z положение
-1,6000, Угол180,000, Фаска 0,0000, Округление 0,0000.
7.
Нажмите [ENTER], чтобы добавить строку и выберите 1: Перемещение с
линейной подачей.
8.
Установите положения линейной подачи: X положение 1,5000, Z положение
-1,6000, Угол90,000, Фаска 0,0000, Округление 0,0000.
9.
Нажмите [ENTER], чтобы добавить строку и выберите 1: Перемещение с
линейной подачей.
10.
Установите положения линейной подачи: X положение 1,5000, Z положение
-3,0000, Угол180,000, Фаска 0,0000, Округление 0,0000.
11.
Нажмите [ENTER], чтобы добавить строку и выберите 1: Перемещение с
линейной подачей.
12.
Установите положения линейной подачи: X положение 3,3000, Z положение
-3,0000, Угол90,000, Фаска 0,0000, Округление 0,0000.
13.
Нажмите [F4], чтобы сохранить профиль контура. По окончании система
управления сохранит файл во вкладку User Data (пользовательские данные),
папку My Profiles (мои профили). В следующем разделе описывается
генерирование программы в G-коде с использованием шаблона СВП, в
котором применяется данный профиль контура.
306
Программирование опций
6.8.2
Использование мастера контуров - шаблон СВП
В данном примере описывается создание программы в G-коде с использованием
циклов снятия наружного профиля в шаблонах СВП.
F6.13:
Пример мастера контуров.
1.
Нажмите кнопку [EDIT] и перейдите курсором влево во вкладку VPS.
2.
Перейдите в папку VPS и перейдите курсором вправо для просмотра
шаблонов.
3.
Найдите шаблон OD Profile Removal Cycles и нажмите кнопку [ENTER].
4.
Для SHAPE нажмите [ENTER], чтобы выбрать файл мастера контуров,
созданный в предыдущем разделе.
5.
В поле TOOL_NUMBER установите 1.
6.
В поле TOOL_OFFSET_NUMBER установите 1.
7.
Введите число WORK_OFFSET. В данном примере это значение равно 54.
8.
Задайте значение переменной MAX_RPM: 2300
9.
Задайте значение переменной SURFACE_SPEED_MINUTE: 650
10. В поле FLOOD _COOLANT установите: 8.
307
Мастер контуров
11.
Задайте значение переменной HPC_COOLANT: 88
12.
Задайте STOCK_DIAMETER, который определяется в файле мастера
контуров.
13.
Задайте значение переменной STOCK_REMOVAL _CYCLE: 71.
14.
Задайте значение переменной TOOL_NOSE_COMP (коррекция на режущую
кромку): 42.
15.
Задайте значение переменной DOC (глубина резания): 0.05
16.
Задайте значение переменной X_FINISH _STOCK: 0.01
17.
Задайте значение переменной Z_FINISH _STOCK: 0.003
18.
Задайте значение переменной FEEDRATE: 0.01
19.
X_RAPID_POINT определяется в файле мастера контуров.
20.
Z_RAPID_POINT определяется в файле мастера контуров.
21.
Для RETRACT_X_HOME введите Y, чтобы отправить револьверную головку в
исходное положение по оси Х или N, чтобы ввести положение смены
инструмента по оси Z в следующей строке.
22.
Для RETRACT_Z_HOME введите Y, чтобы отправить револьверную головку в
исходное положение по оси Z или N, чтобы ввести положение смены
инструмента по оси Z в следующей строке.
23.
Задайте значение переменной END_M_CODE: 30, чтобы завершить программу
с M30.
24.
Нажмите [F4] для генерирования G-кода и выберите 2 для Output to MDI.
25.
Нажмите кнопку [GRAPHICS]. Запустите программу и проверьте, чтобы во
время ее выполнения не поступило никаких сигналов об ошибке.
308
Программирование опций
6.9
Система визуального программирования
(СВП)
Система СВП позволяет быстро строить программы из программных шаблонов. Для
доступа к СВП нажмите [EDIT] (РЕДАКТИРОВАНИЕ), а затем выберите вкладку СВП
VPS.
F6.14:
Начальный экран СВП. [1] Недавно использованные шаблоны, [2] Окно каталога
шаблонов, [3] [ENTER] для загрузки шаблона, [4] [F4] для переключения между
недавно использованными и каталогом шаблонов.
4
3
1
2
В окне каталога шаблонов можно выбрать из каталогов VPS (СВП) или CUSTOM
(НАСТРАИВАЕМЫЕ). Для просмотра содержимого каталога выделите имя каталога
и нажмите клавишу курсора [RIGHT] (вправо).
Начальный экран СВП также позволяет выбирать шаблоны, которые недавно
использовались. Для переключения на окно недавно использованных шаблонов
нажмите окна [F4] и выделите в списке шаблон. Для загрузки шаблона нажмите
[ENTER] (ввод).
309
Система визуального программирования (СВП)
6.9.1
Пример СВП
При использовании СВП выбирается шаблон для функции, которую необходимо
запрограммировать, а затем вводятся переменные, чтобы создать программу.
Шаблоны по умолчанию включают измерение головкой и элементы детали. Можно
также создавать собственные шаблоны. Для получения технического содействия при
создании настраиваемых шаблонов свяжитесь с отделом приложений в вашем
дилерском центре компании Haas.
В данном примере шаблон СВП используется для программирования OD ROUGH
PROFILING. Все шаблоны СВП работают одинаково: Сначала необходимо внести
значения в переменные шаблона, затем выводится программа.
1.
Нажмите [EDIT] (редактировать), а затем выберите вкладку VPS.
2.
Используйте клавиши курсора, чтобы выделить пункт меню VPS (СВП). Чтобы
выбрать пункт, нажмите клавишу курсора [RIGHT] (вправо).
3.
В следующем меню выделите и выберите пункт OD Rough Profiling.
F6.15:
Пример окна подготовки программы гравирования СВП. [1] Иллюстрация
переменных, [2] Таблица переменных, [3] Текст описания переменных, [4] Индикатор
«Значение по умолчанию изменено», [5] Иллюстрация шаблона, [6] Очистить
[ORIGIN], [7] Создание кода G [F4], [8] Выполнить в РВД [CYCLE START] (запуск
цикла).
8
7
6
1
5
4
2
3
310
Программирование опций
4.
В окне подготовки программы для выделения строк с переменными
используйте клавиши курсора [UP] (вверх) и [DOWN] (вниз).
5.
Введите значение для выделенной переменной и нажмите [ENTER]. Система
управления отобразит звездочку (*) рядом с переменной, если значение по
умолчанию было изменено. Чтобы установить переменную обратно на
значение по умолчанию, нажмите кнопку [ORIGIN].
6.
Для перехода к следующей переменной, нажмите клавишу курсора [DOWN].
7.
Когда все переменные введены, можно нажать [CYCLE START] (запуск цикла)
для немедленного выполнения программы в режиме MDI (РВД), или [F4] - для
вывода текста программы или в буфер обмена, или в MDI (РВД) без
выполнения программы.
6.10
Ось Y
Ось Y перемещает инструменты перпендикулярно осевой линии шпинделя. Это
перемещение достигается сложным движением шариковых винтов осей Х и Y.
См. G17 и G18, начиная на странице
340, где имеется информация по
программированию.
311
Ось Y
F6.16:
Перемещение оси Y: [1] Сложное движение оси Y, [2] Горизонтальная плоскость.
1
X
2
+
X
Z
+
+
C1
6.10.1
Рабочие зоны перемещения оси Y
Подробную информацию о рабочей зоне и зоне перемещения станка см. на странице
data.haascnc.com/install.
TIP:
нижней части страницы и нажмите на
«Руководство по
установке станка».
Выберите вашу модель станка, затем нажмите
«Загрузить подробные
компоновочные чертежи для …» PDF».
После установки оснастки для оси Y примите во внимание следующие факторы:
312
Программирование опций
•
Диаметр обрабатываемой детали
•
Вылет инструмента (радиальные инструменты)
•
Необходимое перемещение оси Y от осевой линии
6.10.2
Токарный станок с осью Y с револьверной головкой
VDI
При использовании радиального приводного инструмента положение рабочей зоны
перемещается. Длина, на которую режущий инструмент выступает от осевой линии
инструментального гнезда, определяет расстояние сдвига рабочей зоны.
Подробную информацию о рабочей зоне и зоне перемещения станка см. на странице
data.haascnc.com/install.
TIP:
нижней части страницы и нажмите на
«Руководство по
установке станка».
Выберите вашу модель станка, затем нажмите
«Загрузить подробные
компоновочные чертежи для …» PDF».
6.10.3
Принцип работы и программирование
Ось Y - это дополнительная ось на токарных станках (если имеется), которой можно
управлять командами и поведение которой аналогично стандартным осям X и Z. Для
включения оси Y нет специальной команды.
После смены инструмента токарный станок автоматически выполняет возврат оси Y
к осевой линии шпинделя. Прежде чем подавать команду на вращение, убедитесь,
что револьверная головка расположена правильно.
Стандартные коды G и M Haas доступны при программировании с использованием
оси Y.
При выполнении операций приводного инструмента коррекция на инструмент типа
фрезы может применяться как в плоскости G17, так и G19. Необходимо выполнять
правила коррекции на режущий инструмент во избежание непредсказуемого
перемещения при применении и отмене коррекции. Значение радиуса
используемого инструмента необходимо ввести в столбец RADIUS на странице
геометрии соответствующего инструмента. Вершина инструмента принимается за
«0», и значение вводить не нужно.
Рекомендации по программированию:
313
содержание .. 9 10 11 12 ..
|
||
|
|
|