Fanuc SOi mate-md
.pdfB-64144RU/01 |
ПРОГРАММИРОВАНИE |
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
||
15.6.2 |
Когда выдается G66, задающий модальный вызов, то после |
|||
Модальный вызов |
выполнения блока, задающего перемещение, осуществляется |
|||
вызов макропрограммы. Это продолжается до появления G67, |
||||
(G66) |
||||
отменяющего модальный вызов. |
|
|||
|
|
|||
|
G66 P p L ℓ <аргумент-определение> ; |
|||
|
Р : Номер вызываемой программы |
|||
|
ℓ : Количество повторов (по умолчанию 1) |
|||
|
Аргумент : Данные, переданные в макропрограмму |
|||
|
O0001 ; |
|
O9100 ; |
|
|
: |
|
: |
|
|
G66 P9100 L2 A1.0 B2.0 ; |
G00 Z-#1 ; |
||
|
G00 G90 X100.0 ; |
|
G01 Z-#2 F300 ; |
|
|
Y200.0 ; |
|
: |
|
|
X150.0 Y300.0 ; |
|
: |
|
|
G67 ; |
|
: |
|
|
: |
|
: |
|
|
M30 ; |
|
M99 ; |
Пояснения
D Вызов |
S После G66 укажите в P адресе номер программы, к которой |
|
будет применен модальный вызов. |
SЕслитребуетсяввестиколичествоповторов, вадресеL можно задать число от 1 до 9999.
SАналогично простомувызову (G65), данные, передаваемыев макропрограмму, задаются с использованием аргументов.
D Отмена |
Если задан G67, то в последующих блоках модальные вызовы |
|
макропрограмм выполняться не будут. |
D Вложение вызова |
Можно представить вызовы в виде вложений до четырех |
|
уровней, включая простые вызовы (G65) и модальные вызовы |
|
(G66). Вызовы подпрограмм (M98) не включаются. |
D Вложение модального |
Модальные вызовы могут быть представлены в виде вложений |
вызова |
посредством ввода другого G66 во время модального вызова. |
Ограничения |
S Невозможно вызватьникакую макропрограммувблокеG66. |
|
S Перед любым аргументом необходимо задать G66. |
|
S Нельзя вызвать никакую макропрограмму в блоке, |
|
содержащем, например, такой код, как смешаннаяфункция, |
|
которая не вызывает перемещения вдоль оси. |
SЛокальные переменные (аргументы) можно задать только в блоках G66. Обратите внимание на то, что каждый раз при выполнении модального вызова локальные переменные заново не устанавливаются.
307
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
ПРОГРАММИРОВАНИE |
B-64144RU/01 |
|
|
|
Образец программы Такая же операция, как и постоянный цикл сверления G81, можетбытьсозданаспомощью макропрограммыпользователя, и тогда программа обработки производит модальный макровызов. Для упрощения программы, все данные по сверлению указываются с абсолютными значениями.
Постоянный цикл состоит из |
Ускоренный подвод |
|
|
|
|
следующих основных операций: |
Рабочая подача |
|
|
||
Операция 1 |
Операция 1 |
Положение I |
Расположения вдоль осей X и Y |
|
|
Операция 2 |
Операция 2 Операция 4 |
|
Быстрый переход к точке R |
|
Положение R |
Операция 3 |
R |
|
|
Z=0 |
|
Рабочая подача на точку Z |
Операция 3 |
|
|
|
|
Операция 4 |
|
Положение Z |
Быстрый переход к точке Rили I |
|
Z |
|
|
D Формат вызова
G65 P9110 X x Y y Z z R r F f L l ;
X: X координата отверстия
(только абсолютное определение) . . . . . . . . . . . . . . . . (#24) Y: Y координата отверстия
(только абсолютное определение) . . . . . . . . . . . . . . . . (#25) Z: Координаты положения Z
(только абсолютное определение) . . . . . . . . . . . . . . . . (#26)
R:Координаты положения R
(только абсолютное определение)(#18)
|
F: Скорость рабочей подачи . . . . . . . . . . . . . . . . . . . . . . . . . |
(#9) |
|
L : Количество повторов |
|
D Программа, |
O0001 ; |
|
вызывающая |
G28 G91 X0 Y0 Z0 ; |
|
макропрограмму |
G92 X0 Y0 Z50.0 ; |
|
|
G00 G90 X100.0 Y50.0 ; |
|
|
G66 P9110 Z-20.0 R5.0 F500 ; |
|
|
G90 X20.0 Y20.0 ; |
|
|
X50.0 ; |
|
|
Y50.0 ; |
|
|
X70.0 Y80.0 ; |
|
|
G67 ; |
|
|
M30 ; |
|
D Макропрограмма |
O9110 ; |
|
(вызванная |
#1=#4001 ; . . . . . . . . . . . . . . |
. . . . . . . . . . . . . . . ХранитG00/G01. |
программа) |
#3=#4003 ; . . . . . . . . . . . . . . . |
. . . . . . . . . . . . . . ХранитG90/G91. |
|
#4=#4109 ; . . . . . . . . . . . . . . . |
Хранит скорость рабочей подачи. |
|
#5=#5003 ; . . . . ХраниткоординатуZ призапускесверления. |
|
|
G00 G90 Z#18; . . . . . . . . . . . . |
. . . . . Размещениев положение R |
|
G01 Z#26 F#9; . . . . . . . . . . . . . |
. . Рабочая подача в положение Z |
|
IF[#4010 EQ 98]GOTO 1; . . . . |
. . . . . . . . . Возврат в положение I |
|
G00 Z#18; . . . . . . . . . . . . . . . . |
. . . . . Размещениев положение R |
|
GOTO 2; |
|
|
N1 G00 Z#5; . . . . . . . . . . . . . . . . |
. . . . . Размещение в положение I |
N2 G#1 G#3 F#4; . . . Восстанавливаетмодальную информацию.
M99 ;
308
B-64144RU/01 |
ПРОГРАММИРОВАНИE |
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
|
|
|
15.6.3
Вызов макропрограммы с использованием G-кода
Ввод номера G-кода, используемого для вызова макропро- граммы в параметре, позволяет вызвать макропрограмму способом, аналогичным простому вызову (G65).
O0001 ; |
O9010 ; |
: |
: |
G81 X10.0 Y20.0 Z-10.0 ; |
: |
: |
: |
M30 ; |
N9 M99 ; |
Параметр ном. 6050 = 81 |
|
Пояснения |
Если установить номер G кода от 1 до 9999, используемого для |
||||
|
вызова макропрограммы, (с O9010 по O9019) в соответст- |
||||
|
вующем параметре (с ном. 6050 по ном. 6059), макропрограмма |
||||
|
может быть вызвана также, как и при помощи G65. |
||||
|
Например, если параметр задан таким образом, что с помощью |
||||
|
G81 можно вызвать макропрограмму О9010, то не изменяя |
||||
|
программу обработки, можно вызвать цикл, созданный |
||||
|
пользователем с помощью макропрограммы. |
||||
D Соотношение между |
|
|
|
|
|
номерами параметров |
|
|
|
|
|
|
Номер программы |
Номер параметра |
|
||
и номерами программ |
|
|
|||
|
|
|
|
|
|
|
O9010 |
|
6050 |
|
|
|
|
|
|
||
|
|
O9011 |
|
6051 |
|
|
|
O9012 |
|
6052 |
|
|
|
O9013 |
|
6053 |
|
|
|
O9014 |
|
6054 |
|
|
|
O9015 |
|
6055 |
|
|
|
O9016 |
|
6056 |
|
|
|
O9017 |
|
6057 |
|
|
|
O9018 |
|
6058 |
|
|
|
O9019 |
|
6059 |
|
D Повтор |
|
|
|
|
|
Аналогично |
простому вызову, можно задать в адресе L |
||||
|
количество повторов от 1 до 9999. |
||||
D Указание аргумента |
Аналогично |
простому вызову, имеется два типа указания |
|||
|
аргумента: Тип I указания аргумента и тип II указания |
||||
|
аргумента. Типуказанияаргументаопределяетсяавтоматически |
||||
|
согласно используемым адресам. |
||||
Ограничения |
|
|
|
|
|
D Вложение вызовов с |
В программе, вызванной с помощью G-кода, нельзя вызвать |
||||
использованием |
макропрограмму с помощью G-кода. G-код в такой программе |
||||
G-кодов |
рассматривается в качестве обычного G-кода. В программе, |
||||
|
вызваннойвкачествеподпрограммыс помощью МилиТ-кода, |
||||
|
нельзя вызвать макропрограмму с помощью G-кода. G-код в |
||||
|
такой программе также рассматривается в качестве обычного |
||||
|
G-кода. |
|
|
|
309
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
ПРОГРАММИРОВАНИE |
B-64144RU/01 |
|
|
|
15.6.4
Вызов макропрограммы с использованием М-кода
Пояснения
DСоотношение между номерами параметров и номерами программ
D Повтор
D Указание аргумента
Ограничения
Ввод номера М-кода, используемого для вызова макропро- граммы в параметре, позволяет вызвать макропрограмму способом, аналогичным простому вызову (G65).
O0001 ; |
O9020 ; |
: |
: |
M50 A1.0 B2.0 ; |
: |
: |
: |
M30 ; |
M99 ; |
Параметр ном. 6080 = 50 |
|
Если установить номер M кода от 1 до 99999999, используемого длявызовамакропрограммы(с9020 по9029) всоответствующем параметре (с ном. 6080 по ном. 6089), макропрограмма может быть вызванатаким же способом, как и с помощьюпод- программы G65.
Номер программы |
Номер параметра |
|
|
O9020 |
6080 |
O9021 |
6081 |
O9022 |
6082 |
O9023 |
6083 |
O9024 |
6084 |
O9025 |
6085 |
O9026 |
6086 |
O9027 |
6087 |
O9028 |
6088 |
O9029 |
6089 |
|
|
Аналогично простому вызову, можно задать в адресе L количество повторов от 1 до 9999.
Аналогично простому вызову, имеется два типа указания аргумента: Тип I указания аргумента и тип II указания аргумента. Типуказанияаргументаопределяетсяавтоматически согласно используемым адресам.
SМ-код, используемый для вызова макропрограммы, должен задаваться в начале блока.
SВ макропрограмме, вызванной с помощью G-кода, или в программе, вызваннойв качествеподпрограммы с помощью М или Т-кода, нельзя вызвать макропрограмму с помощью М-кода. М-код в такой макропрограмме или программе рассматривается в качестве обычного М-кода.
310
B-64144RU/01 |
ПРОГРАММИРОВАНИE |
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
|
|
|
15.6.5
Вызов подпрограммы с использованием М-кода
Ввод в параметре номера М-кода, используемого для вызова подпрограммы (макропрограммы), позволяет вызвать макро- программу способом, аналогичным вызову подпрограммы
(М98).
O0001 ; |
O9001 ; |
: |
: |
M03 ; |
: |
: |
: |
M30 ; |
M99 ; |
Параметр ном. 6071 = 03 |
|
Пояснения |
Ввод М-кода под номером от 1 до 99999999, используемого для |
|
вызова подпрограммы в параметре (с ном. 6071 по ном. 6079) |
|
позволяет вызвать соответствующую макропрограмму пользо- |
|
вателя (с O9001 по O9009) таким жеспособом, каки с помощью |
|
применения M98. |
DСоотношение между номерами параметров и номерами программ
D Повтор
D Указание аргумента
D M-код
Ограничения
Номер программы |
Номер параметра |
|
|
O9001 |
6071 |
O9002 |
6072 |
O9003 |
6073 |
O9004 |
6074 |
O9005 |
6075 |
O9006 |
6076 |
O9007 |
6077 |
O9008 |
6078 |
O9009 |
6079 |
|
|
Аналогично простому вызову, можно задать в адресе L количество повторов от 1 до 9999.
Указание аргументов не допускается.
М-код в такой вызванной макропрограмме рассматривается в качестве обычного М-кода.
В макропрограмме, вызванной с помощью G-кода, или в программе, вызванной с помощью М или Т-кода, нельзя вызвать никакую подпрограмму с помощью М-кода. М-код в такой макропрограмме или программе рассматривается в качестве обычного М-кода.
311
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
ПРОГРАММИРОВАНИE |
B-64144RU/01 |
|
|
|
15.6.6
Вызовы подпрограммы с использованием Т-кода
Выбрав в параметре вызов подпрограмм (макропрограмм) с помощьюТ-кода, можновызыватьмакропрограммукаждыйраз при указании в программе обработки Т-кода.
O0001 ; |
O9000 ; |
: |
: |
T23 ; |
: |
: |
: |
M30 ; |
M99 ; |
Разряд 5 параметра ном. 6001 = 1 |
|
Пояснения
D Вызов |
Установка разряда 5 TCS параметра ном. 6001 на 1 позволяет |
|
вызвать макропрограмму O9000, когда в программе обработки |
|
задан Т-код. Т-код, заданный в программе обработки, |
|
присваивается общей переменной #149. |
Ограничения |
В макропрограмме, вызванной с помощью G-кода, или в про- |
|
грамме, вызванной с помощью М или Т-кода, нельзя вызвать |
|
никакую подпрограмму с помощью Т-кода. Т-код в такой |
|
макропрограмме или программе рассматривается в качестве |
|
обычного Т-кода. |
312
B-64144RU/01 |
ПРОГРАММИРОВАНИE |
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
|
|
|
15.6.7
Образец программы
Условия
Проверка операции
D Установка параметра
DУстановка значения переменной
DПрограмма, вызывающая макропрограмму
Используя функцию вызова подпрограммы, в которой применяются М-коды, можно измерить совокупное время использования каждого инструмента.
S Измеряется совокупное время использования каждого инструмента с номером от T0 до T05. Для инструментов с номерами больше, чем Т05, измерение не проводится.
SДля записи в память номеров инструментов и измеренного времени используются следующие переменные:
#501 |
Совокупное время использования инструмента номер 1 |
#502 |
Совокупное время использования инструмента номер 2 |
#503 |
Совокупное время использования инструмента номер 3 |
#504 |
Совокупное время использования инструмента номер 4 |
#505 |
Совокупное время использования инструмента номер 5 |
SОтсчет времени использования начинается, когда задана команда М03, и завершается, когда заданакоманда М05. Для измерения времени, в течение которого горит лампа пуска цикла, используется системнаяпеременная #3002. Время, на которое работа станка приостановлена в результате блокировки подачи или операции остановки единичного блока, не учитывается, однако время, используемое для смены инструментов и приспособлений-спутников, включается.
Установите 3 в параметре ном. 6071 и 05 в параметре ном. 6072. Установите 0 в переменных #501 - #505.
O0001 ;
T01 M06;
M03 ;
M05 ; . . . . . . . . . . . . . . . . . . . . . Изменяет #501.
T02 M06;
M03 ;
M05 ; . . . . . . . . . . . . . . . . . . . . . Изменяет #502.
T0300 M06;
M03 ;
M05 ; . . . . . . . . . . . . . . . . . . . . . Изменяет #503.
T0400 M06;
M03 ;
M05 ; . . . . . . . . . . . . . . . . . . . . . Изменяет #504.
T0500 M06;
M03 ;
M05 ; . . . . . . . . . . . . . . . . . . . . . |
Изменяет #505. |
M30; |
|
313
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
ПРОГРАММИРОВАНИE |
B-64144RU/01 |
|
|
|
Макропрограмма (вызванная программа)
O9001(M03); . . . . . . Макрокоманда, задающая начало отсчета.
M01;
IF[#4120 EQ 0]GOTO 9; . . . . . . . . . . . . . . . . Инструмент не задан
IF[#4120 GT 5]GOTO 9; . . Номер инструмента вне диапазона.
#3002=0; . . . . . . . . . . . . . . . . . . . . . . . . . . . . Обнуляет таймер.
N9 M03; . . . . . . . . . . Вращаетшпиндельвпрямомнаправлении.
M99 ;
O9002(M05); . . . Макрокоманда, задающаязавершениеотсчета.
M01;
IF[#4120 EQ 0]GOTO 9; . . . . . . . . . . . . . . Инструмент не задан.
IF [#4120 GT 5] GOTO 9 ; . . Номер инструмент вне диапазона.
#[500+#4120]=#3002+#[500+#4120];
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Рассчитываетсовокупноевремя.
N9 M05; . . . . . . . . . . . . . . . . . . . . . . . . . |
Останавливаетшпиндель. |
M99 ; |
|
314
B-64144RU/01 |
ПРОГРАММИРОВАНИE |
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
|
|
|
15.7
ОБРАБОТКА
МАКРООПЕРАТОРОВ
Для чистовой обработки ЧПУ предварительно считывает оператор ЧПУ, подлежащий выполнению следующим. Эта операция называется буферизацией. В режиме управления с расширеннымпредварительнымпросмотромAI ЧПУпредвари- тельно считывает не только следующий блок, но несколько блоков. Также в режиме коррекции на режущий инструмент (G41, G42), ЧПУ считывает предварительно операторы ЧУ вперед на два или три блока, чтобы найти точки пересечения, даже если ЧПУ не находится в режиме управления с расширенным предварительным просмотром AI. Макроопера- торы арифметических выражений и условные переходы обрабатываются с момента их считывания в буфер. Поэтому, время выполнения макрооператора не всегда совпадает с установленным порядком.
В блоках, содержащих M00, M01, M02 или M30, и в блоках, содержащих M-коды, для которых буферизация прекращается установкойпараметра(ном. 3411-3432), ивблоках, содержащих предупреждающие G-коды буферизации например, G53, ЧПУ останавливается, чтобы после этого произвести предваритель- ную считку оператора ЧПУ. Затем обеспечивается приоста- новление выполнения макрооператора до тех пор, пока подобные M- или G-коды не закончат его выполнение.
15.7.1
Подробности выполнения ЧПУ операторов и макрооператоров
DЕсли следующий блок не записывается в буфер (не записываются в буфер M-коды, G53, G31, и т.д.)
|
> N1 G31 X100.0 ; |
Выполнение |
N1 |
|
|
|
|
N2 #100=1 |
|
|
|
|
|
: |
оператора ЧУ |
|
|
|||
|
||||||
|
|
|
|
|
N2 |
|
|
|
Выполнение |
|
|
|
|
|
> : Выполняемый блок |
|
|
|
||
|
|
|
|
|||
|
макрооператора |
|||||
|
|
|||||
|
|
Буфер |
||||
|
|
|||||
|
|
|
|
|
|
|
ПРИМЕЧАНИЕ
Если вам необходимо выполнить макрооператор послезавершенияблока, носразупередмакроопера- тором, укажите сразу перед макрооператором такой M- или G-код, который не записывается в буфер. Особенно, в случае считывания / записи системных переменных в контрольные сигналы, координаты, значения коррекции, и т.д, этот процесс может изменить данные о системных переменных на время выполнения оператора ЧПУ. Чтобы этого избежать, укажите подобные M- или G-коды перед макро- оператором, если необходимо.
315
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
ПРОГРАММИРОВАНИE |
|
|
B-64144RU/01 |
|||
D Запись следующего |
|
|
|
|
|
|
|
блока в буфер в |
> |
N1 X100.0 ; |
|
|
|
N1 |
N4 |
режиме, кроме |
|
Выполнение |
|
||||
|
N2 #1=100 ; |
|
|
|
|||
режима коррекции на |
|
оператора ЧУ |
|
|
|
||
режущий инструмент |
|
N3 #2=200 ; |
|
|
|
|
|
|
N4 Y200.0 ; |
|
|
N2 |
N3 |
|
|
(G41, G42) (обычно |
|
|
Выполнение |
|
|||
|
: |
|
|
|
|
||
предварительно |
|
|
|
макрооператора |
|
|
|
|
|
|
|
|
|
|
|
считывается один |
|
|
|
Буфер |
|
|
N4 |
блок) |
|
|
|
|
|
|
|
> |
: Выполняемый блок |
|
|
|
|||
|
|
|
|
||||
|
j : Блок, считанный в буфер |
|
|
|
|||
|
Когда выполняется N1, следующий оператор ЧУ (N4) считыва- |
||||||
|
етсявбуфер. Операторымакропрограмм(N2, N3) междуN1 иN4 |
||||||
|
обрабатываются во время выполнения N1. |
|
|
DЗапись в буфер следующего блока в режиме коррекции на режущий инструмент
(G41, G42)
> N1 G01 G41 G91 X50.0 Y30.0 F100 Dd ;
N2 #1=100 ; |
|
|
|
> : Выполняемый блок |
|||
N3 X100.0 ; |
|
||
|
j : Блоки, считанные в буфер |
||
N4 #2=200 ; |
|
||
|
|
||
N5 Y50.0 ; |
|
|
|
: |
|
|
|
|
|
|
Выполнение |
|
|
|
|
|
|
N1 |
|
|
|
|
|
N3 |
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
оператора ЧУ |
|
|
N2 |
|
|
|
N4 |
|
|
|
|
|
|
Выполнение |
|
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
||
макрооператора |
|
|
|
N3 |
|
|
|
N5 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||||
Буфер |
|
|
|
|
|
|
|
|
|||||
|
|
|
|
|
|
|
|
||||||
|
|
|
|
|
|
|
|||||||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Когда выполняется N1, в буфер считываются операторы ЧУ в следующихдвухблоках(доN5). Макрооператоры(N2, N4) отN1 до N45 обрабатываются в процессе выполнения N1.
316