Fanuc SOi mate-md
.pdfB-64144RU/01 |
ПРОГРАММИРОВАНИE |
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
|||
D Если следующий блок |
|
|
|
|
|
не вызывает |
> N1 G01 G41 X100.0 G100 Dd ; |
|
|||
перемещение в |
|
||||
N2 #1=100 ; |
|
|
|
||
режиме коррекции на |
> |
: Выполняемый блок |
|||
N3 Y100.0 ; |
|||||
режущий инструмент |
j |
: Блоки, считанные в буфер |
|||
N4 #2=200 ; |
|||||
С (G41, G42) |
|
|
|
||
N5 M08 ; |
|
|
|
||
|
N6 #3=300 ; |
|
|
|
|
|
N7 X200.0 ; |
|
|
|
|
|
: |
|
|
|
|
|
Выполнение |
|
N1 |
N3 |
|
|
|
|
|
||
|
оператора ЧУ |
|
|
|
|
|
Выполнение |
N2 |
N4 |
N6 |
|
|
|
|
|
||
|
макрооператора |
|
|
|
|
|
Буфер |
N3 |
N5 |
N7 |
|
|
|
|
|
||
|
Когда выполняется N1, в буфер считываются операторы ЧУ в |
||||
|
следующихдвухблоках(доN5). ПосколькуN5 являетсяблоком, |
||||
|
который не вызывает перемещение, то невозможно вычислить |
||||
|
точку пересечения. В этом случае считываются операторы ЧУ в |
||||
|
следующихтрехблоках (до N7). Макрооператоры (N2, N4 иN6) |
||||
|
от N1 до N7 обрабатываются в процессе выполнения N1. |
15.7.2 |
В случае использования следующих системных переменных |
|||||||
Осторожность в |
(Таблица 15.7.2) в макропрограмме, если вам необходимо |
|||||||
выполнить макропрограмму после завершения выполнения |
||||||||
использовании |
||||||||
блока непосредственно перед макропрограммой, непосредст- |
||||||||
системных |
||||||||
венно перед |
макропрограммой необходим |
M-код, который |
||||||
переменных |
предотвращает буферизацию (параметры ном. 3411-3432) или |
|||||||
|
блок команды G53. |
|
|
|
|
|||
|
|
|
|
Таблица 15.7.2 |
|
|
|
|
|
|
|
|
|
|
|
||
|
Значение |
|
Считка |
Номер |
|
Примечание |
||
|
|
|
Запись |
переменной |
(В случае, если не |
|||
|
|
|
|
|
задан M-код, предот- |
|||
|
|
|
|
|
вращающий буфериза- |
|||
|
|
|
|
|
цию, или G53 блок.) |
|||
|
|
|
|
|
||||
|
Интерфейсные |
Считка |
#1000 - #1015 , |
Данные считываются во |
||||
|
сигналы |
|
|
#1032 |
время буферизации |
|||
|
|
|
|
|
макропрограммы. |
|||
|
|
|
|
|
|
|||
|
|
|
Запись |
#1100 - #1115 , |
Данные записываются во |
|||
|
|
|
|
#1132 |
время буферизации |
|||
|
|
|
|
|
макропрограммы. |
|||
|
|
|
|
|
|
|||
|
Значения |
|
Запись |
#10001 - |
Данные записываются во |
|||
|
коррекции на |
|
|
|
время буферизации |
|||
|
инструмент |
|
|
|
макропрограммы. |
|||
|
|
|
|
|
|
|
||
|
Макросигналы |
|
Запись |
#3000 |
Макросигнал |
тревоги |
||
|
тревоги |
|
|
|
производится максимум |
|||
|
|
|
|
|
за |
два блока |
перед |
|
|
|
|
|
|
макропрограммой. |
317
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
ПРОГРАММИРОВАНИE |
|
B-64144RU/01 |
|||||
|
|
|
|
|
|
|
|
|
|
|
|
|
Таблица 15.7.2 |
|
|
|
|
|
|
|
|
|
|
|
||
|
Значение |
|
Считка |
Номер |
Примечание |
|
||
|
|
|
Запись |
переменной |
(В случае, если не |
|
||
|
|
|
|
|
задан M-код, предот- |
|||
|
|
|
|
|
вращающий буфериза- |
|||
|
|
|
|
|
цию, или G53 блок.) |
|||
|
|
|
|
|
|
|
||
|
Остановка с |
|
Запись |
#3006 |
Программа останавли- |
|
||
|
выводом |
|
|
|
вается максимум за два |
|||
|
сообщения |
|
|
|
блока перед макропро- |
|||
|
|
|
|
|
граммой. |
|
|
|
|
|
|
|
|
|
|
||
|
Информация о |
|
Считка |
#3001, #3002 |
Данные |
считываются/ |
||
|
времени |
|
Запись |
|
записываются |
во время |
||
|
|
|
|
|
буферизации |
макропро- |
||
|
|
|
|
|
граммы. |
|
|
|
|
|
|
Считка |
#3011, #3012 |
Данные считываются во |
|||
|
|
|
|
|
время буферизации |
|
||
|
|
|
|
|
макропрограммы. |
|
||
|
|
|
|
|
|
|
|
|
|
Управление |
|
Запись |
#3003, #3004 |
Данные |
по |
установке |
|
|
автоматической |
|
|
|
доступны |
максимум |
за |
|
|
работой |
|
|
|
два блока перед макро- |
|||
|
|
|
|
|
программой. |
|
|
|
|
|
|
|
|
|
|||
|
Установки |
|
Запись |
#3005 |
Данные записываются во |
|||
|
|
|
|
|
время буферизации |
|
||
|
|
|
|
|
макропрограммы. |
|
||
|
|
|
|
|
|
|||
|
Зеркальное |
|
Считка |
#3007 |
Данные считываются во |
|||
|
отображение |
|
|
|
время буферизации |
|
||
|
|
|
|
|
макропрограммы. |
|
||
|
|
|
|
|
|
|
||
|
Текущая |
|
Считка |
#4130(P) |
Данные |
считываются |
||
|
выбранная |
|
|
#4014 |
максимум |
за |
три блока |
|
|
дополнительная |
|
|
(G54 - G59) |
передмакропрограммой. |
|||
|
система |
|
|
|
|
|
|
|
|
координат |
|
|
|
|
|
|
|
|
заготовки |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Текущее |
|
Считка |
#5021 - #5023 |
Считывается |
неопреде- |
||
|
положение |
|
|
|
ленное |
положение |
в |
|
|
(Система |
|
|
|
процессе перемещения. |
|||
|
координат |
|
|
|
|
|
|
|
|
станка) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Текущее |
|
Считка |
#5041 - #5043 |
Считывается |
неопреде- |
||
|
положение |
|
|
|
ленное |
положение |
в |
|
|
(Система |
|
|
|
процессе перемещения. |
|||
|
координат |
|
|
|
|
|
|
|
|
заготовки) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
||
|
Значение |
|
Считка |
#5081 - #5083 |
Считывается значение |
|
||
|
коррекции на |
|
|
|
коррекции текущего |
|
||
|
инструмент |
|
|
|
выполняемого блока. |
|
||
|
|
|
|
|
|
|
||
|
Отклоненное |
|
Считка |
#5101 - #5103 |
Считывается |
неопреде- |
||
|
положение |
|
|
|
ленноеотклонение впро- |
|||
|
сервосистемы |
|
|
|
цессе перемещения. |
|
||
|
|
|
|
|
|
|||
|
Величина |
|
Запись |
#5201 - #5323 |
Данные записываются во |
|||
|
внешней |
|
|
#7001 - #7943 |
время буферизации ма- |
|||
|
коррекции точки |
|
|
кропрограммы. |
|
|||
|
отсчета |
|
|
|
|
|
|
|
|
заготовки |
|
|
|
|
|
|
|
318
B-64144RU/01 |
ПРОГРАММИРОВАНИE |
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
|
|
|
|
Пример ) |
|
|
O0001 |
O2000 |
|
N1 X10.Y10.; |
(Mxx ;) Укажите М- или G- коды, |
|
|
предотвращающие буферизацию |
|
N2 M98P2000; |
N100 #1=#5041; |
|
|
(Считывание текущего положения оси X) |
|
N3 Y200.0; |
N101 #2=#5042; |
|
|
(Считывание текущего положения оси Y) |
|
: |
: |
|
|
M99 ; |
В вышеуказанном случае, происходит буферизацияблока N2, и макропрограмма O2000 считывается и выполняется в блоке N1 выполнения основной программы O1000. Поэтому, процессы считывания текущего положения производятся во время перемещений осей в блоке N1. Таким образом, данные о неожиданном положении могут быть считаны в #1 и #2 благодаря перемещению осей. В этом случае укажите М- код, предотвращающий буферизацию Mxx ; (или G53 ;) непосредст- венно перед блоком N100 программы O2000. При этом, данные положения при завершении выполнения блока N1 могут быть считаныв #1 и#2 таккакO2000 выполняется послезавершения выполнения блока N1 программы O0001.
ПРИМЕЧАНИЕ
G53 не может быть указан во время режима постоянного цикла. (В этом случае подается сигнал тревоги P/S ном. 44). Поэтому, для того, чтобы пре- дотвратить буферизацию во время режима постоян- ного цикла, укажите M- код, предотвращающий буферизацию.
319
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
ПРОГРАММИРОВАНИE |
B-64144RU/01 |
|
|
|
15.8
РЕГИСТРАЦИЯ
МАКРОПРОГРАММ
ПОЛЬЗОВАТЕЛЯ
15.9
ОГРАНИЧЕНИЯ
DОперация ручного ввода данных
DПоиск номера последовательности
D Единичный блок
DУсловный пропуск блока
DРабота в режиме ПРАВКА (EDIT)
Макропрограммы пользователя аналогичны подпрограммам. Они могут быть зарегистрированы и отредактированы способом, аналогичным для подпрограмм. Емкость памяти определяется общей длиной ленты, используемой для записи как макропрограмм пользователя, так и подпрограмм.
В режиме ввода данных вручную может быть задана команда вызова макропрограммы. Однако во время автоматической операции невозможно переключиться в режим ручного ввода данных для осуществления вызова макропрограммы.
Невозможно осуществить поиск макропрограммы пользо- вателя по номеру последовательности.
Дажеесливыполняетсямакропрограмма, врежимеединичногоблока блоки могут быть остановлены. В блоке, содержащем команду вызова макропрограммы(G65, G66 илиG67), остановканевыполняетсядаже при включении режима единичного блока. В блоках, содержащих команды арифметической операции и команды управления, возмож- наостановкаврежимеединичногоблокапосредствомустановки SBM (разряда 5 параметра 6000) на 1. Операция остановки единичного блока используется для проведения тестирования макропрограмм пользователя. Обратите внимание на то, что если остановка единич- ного блока выполняется при наличии макрооператора в режиме С-коррекции на режущий инструмент, то предполагается, что этот оператор представляет собой блок, не вызывающий перемещения, и, следовательно, внекоторыхслучаяхневозможновыполнитьнадлежа- щую коррекцию. (Собственно говоря, этот блок рассматривается в качестве блока, задающего перемещение на расстояние, равное 0).
Знак /, появляющийся в середине <выражения> (заключенный в квадратные скобки [ ] справа от арифметического выражения), расс- матривается в качестве оператора деления; он не рассматривается в качестве указателя кода условного пропуска блока.
УстановкаNE8 (разряда0 параметра3202) иNE9 (разряда4 параметра 3202) на 1 приводит к отключению опцииудаления иредактирования макропрограмм пользователя и подпрограмм с программными номерами от 8000 до 8999 и от 9000 до 9999. Это защищает зареги- стрированные макропрограммы пользователя и подпрограммы от случайного повреждения. Если вся память очищается (с помощью
одновременного нажатия на клавиши и при включении
питания), то очищается содержание памяти, например, макропро- граммы пользователя.
320
B-64144RU/01 |
ПРОГРАММИРОВАНИE |
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
|
|
|
D Сброс |
Врезультатеоперацииперезагрузкивлокальныхпеременныхиобщих |
|
|
переменных от #100 до #149 устанавливаются нулевые значения. |
|
|
Можно предотвратить их обнуление посредством установки CLV и |
|
|
CCV (разряды7 и6 параметра6001). Системныепеременные от #1000 |
|
|
до#1133 нестираются. Операцияперезагрузкиприводиткочищению |
|
|
любых состояний макропрограмм и подпрограм, любых состояний |
|
|
DO, после чего выполняется возврат в основную программу. |
|
D Отображение экрана |
Как и при М98, не отображаются М и Т-коды, используемые для |
|
ПЕРЕЗАПУСК |
вызовов подпрограмм. |
|
ПРОГРАММЫ |
|
|
(PROGRAM RESTART) |
|
|
D Останов подачи |
Есливпроцессевыполнениямакрооператораактивируетсяблокиров- |
|
|
каподачи, тостанокостанавливаетсяпослевыполнениямакроопера- |
|
|
тора. Станок также останавливается в случае перезагрузки или |
|
|
сигнала тревоги. |
|
D Постоянные значения, |
от+0.0000001 до +99999999 |
|
которые могут быть |
от -99999999 до -0.0000001 |
|
использованы в |
Количество значащих цифр - 8 (десятичных). Если это число |
|
<выражении> |
превышено, возникает сигнал тревоги P/S ном. 003. |
321
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
ПРОГРАММИРОВАНИE |
B-64144RU/01 |
|
|
|
15.10
КОМАНДЫ ВЫВОДА ДАННЫХ НА ВНЕШНЕЕ УСТРОЙСТВО
Пояснения
DКоманда ”открыть”
POPEN
DКоманда вывода данных BPRNT
В дополнение к стандартным макрокомандам пользователя предусмотрены следующие макрокоманды. Эти команды называются командами вывода данных на внешнее устройство.
-BPRNT
-DPRNT
-POPEN
-PCLOS
Эти команды предназначены для вывода значений переменных через интерфейс считывания - вывода на перфоленту.
Задайте эти команды в следующем порядке:
Команда ”открыть” POPEN
Задайте эту команду перед вводом последовательности команд вывода данных для того, чтобы установить соединение с внешним устройством ввода-вывода.
Команда вывода данных: BPRNT или DPRNT
Задайте необходимые выходные данные.
Команда ”закрыть”: PCLOS
По завершении ввода всех команд вывода данных задайте PCLOS для того, чтобы разорвать соединение с внешним устройством ввода-вывода.
POPEN
POPEN устанавливает соединение с внешним устройством ввода-вывода. Эту команду необходимо задать до ввода последовательности команд вывода данных. ЧПУ выводит код управления DC2.
BPRNT [ a #b [ c ] … ]
Количество значимых десятичных разрядов Переменная Символ
Команда BPRNT выводит символы и значения переменных в двоично-десятичной системе.
(i) Заданныесимволыпреобразуютсявсоответствующиекоды ISO согласно заданнымданным (ISO), которыевыводятсяв этот момент.
Задаваемыми символами являются следующие:
-Буквы (от A до Z)
-Цифры
-Специальные символы (*, /, +, -, etc.)
Звездочка (*) задается пробелом.
(ii) Все переменные записываются с десятичной точкой. Задайте переменную с последующим числом значимых десятичных разрядов, заключенных в скобки. Значение переменнойрассматриваетсявкачестведанных, состоящих из 2 слов (32 разряда), включаядесятичные цифры. Данные выводятсявкачестведвоично-десятичныхданных, начиная с самого старшего байта.
(iii) Когда заданные данные выведены, выводится код ЕОВ согласно установкам кодов ISO.
(iv) Нулевые переменные рассматриваются как 0.
322
B-64144RU/01 |
ПРОГРАММИРОВАНИE |
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
|
|
|
Пример )
BPRNT [ C** X#100 [3] Y#101 [3] M#10 [0] ]
Значение переменной
#100=0.40956 #101=-1638.4 #10=12.34
LF
12 (0000000C) M
-1638400(FFE70000)
Y
410 (0000019A)
X
Пробел
C
DКоманда вывода данных DPRNT
DPRNT [ a #b [ c d ] … ]
Количество значимых десятичных разрядов
Количество значимых цифр в целой части числа Переменная Символ
Команда DPRNT выводит символы и каждую цифру в значении переменнойвсоответствиискодом, заданнымвнастройках(ISO).
(i)Впунктах(i), (iii) и(iv) длякомандыBPRNT такжесодержатся пояснения для команды DPRNT.
(ii)При выводе переменной задайте # с последующим номером переменной, затем задайте количество цифр в целой части и количество десятичных разрядов, заключенных в скобки.
Длякаждого заданного количествацифрвыводитсяодинкод, начиная с высшей цифры. Для каждой цифры выводится код в соответствии с настройками (ISO). Десятичная точка также выводится с помощью кода, заданного в настройках (ISO). Каждая переменная должная иметь числовое значение, состоящее до восьми цифр. Когда цифры старшего разряда - нули, эти нули не выводятся, если PRT (разряд параметра 6001) установлен на 1. Если PRT разряд 1 параметра установлен на 0, каждый раз, когда встречается нуль, выводится код пробела. Когда количество десятичных разрядов не равно нулю, то цифры в десятичной части числа выводятся всегда. Если количество десятичных разрядов равно нулю, десятичная точка не выводится. Когда PRT (разряд1 параметра6001) установленна0, вместо+ выводится код пробела, указывающий на положительное число; если параметр PRT установлен на 1, выводится номер кода.
323
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
ПРОГРАММИРОВАНИE |
B-64144RU/01 |
|
|
|
Пример )
DPRNT [ X#2 [53] Y#5 [53] T#30 [20] ]
Значение переменной
#2=128.47398 #5=-91.2 #30=123.456
(1) Параметр PRT (ном. 6001#1)=0
L F |
|
|
|
|
T |
sp 23 |
|
|
|
Y |
sp |
sp |
sp |
91200 |
X |
sp |
sp |
sp |
128474 |
(2) Параметр PRT (ном. 6001#1)=0
|
LF |
|
|
T23 |
|
|
Y-91.200 |
|
|
X128.474 |
|
D Команда ”закрыть” |
|
|
PCLOS ; |
||
PCLOS |
КомандаPCLOS разрываетсоединениес внешнимустройством |
|
|
ввода-вывода. Задайте эту команду по завершении ввода всех |
|
|
командвыводаданных. СЧПУ выводитсякодуправленияDC4. |
|
D Необходимая |
Укажите канал для установки данных (канал ввода/вывода). В |
|
установка |
соответствиисопределениемэтихданных, установитеэлементы |
|
|
данных (например, скорость бода) на интерфейс считывания/ |
|
|
вывода на перфоленту. |
|
|
Канал ввода-вывода 0: Парам.етры (ном. 101, ном. 102 и ном. 103) |
|
|
канал ввода-вывода 1 : Параметры (ном. 111, ном. 112 и ном. 113) |
|
|
канал ввода-вывода 2 : Параметры (ном. 112, ном. 122 и ном. 123) |
|
|
Длявыводаналентуникогданеуказывайтевкачествевнешнего |
|
|
устройства кассету FANUC или дискету При вводе команды |
|
|
DPRNT длявыводаданных, задайте(спомощьюустановкиPRT |
|
|
(разряда1 параметра6001) на1 или0), выводитьливедущиенули |
|
|
в виде пробелов. Задайте, использовать ли только LF для |
|
|
обозначения концастрокиданныхвкоде (CRO, разряд4 парам. |
|
|
6001 установленна0) илиLF иCR (CRO, разряд4 параметра6001 |
|
|
установлен на 1). |
324
B-64144RU/01 |
ПРОГРАММИРОВАНИE |
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
|
|
|
ПРИМЕЧАНИЕ
1Нет необходимости всегда задавать одновременно команду ”открыть” (POPEN), команду вывода данных
(BPRNT, DPRNT) и команду ”закрыть” (PCLOS). Если команда ”открыть” задана в начале программы, нет необходимости задавать эту команду снова, за исключения случая, когда задана команда ”закрыть”.
2Обязательно задайте команды ”открыть” и команды ”закрыть” парами. Задайте команду ”закрыть” в конце программы. Однако, не задавайте команду ”закрыть”, если не была задана команда ”открыть”.
3Когда операция перезагрузки выполняется в процессе вывода команд, осуществляемого по команде вывода данных, вывод приостанавливается, и последующие данные стираются. Следовательно, когдаоперацияперезагрузкивыполняетсяспомощью кода, например М30, в конце программы, выпол- няющей вывод данных, задайте команду ”закрыть” в концепрограммы, такчтобыобработкаданных, напри- мер, М30, не выполнялась до вывода всех данных.
4Сокращенныемакрослова, заключенныевквадратные скобки [ ], остаются неизменными. Тем не менее, обратите внимание на то, что, когда символы в квадратных скобках разделяются и вводятся несколь- ко раз, второе и последующие сокращения преобра- зуются и вводятся.
5O может быть задано в квадратных скобках [ ]. Обратите внимание на то, что, когда символы в квадратных скобках [ ] разделяются и вводятся несколько раз, О пропускается во втором и последующих вводах.
325
15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ |
ПРОГРАММИРОВАНИE |
B-64144RU/01 |
|
|
|
15.11
МАКРОПРОГРАММА
ПОЛЬЗОВАТЕЛЯ ТИПА ПРЕРЫВАНИЯ
Формат
Пояснения
В процессе выполнения программы можно вызвать другую программу посредством ввода со станка сигнала прерывания (UINT). Эта функция называется функцией макропрограммы пользователя типа прерывания. Запрограммируйте команду прерывания в следующем формате:
M96 Pffff ; Разрешает прерывание с помощью макропрограммы пользователя Запрещает прерывание с помощью макропрограммы пользователя
Применение функции макропрограммы пользователя типа прерывания позволяет пользователю вызвать программу во время выполнения произвольного блока другой программы. Это позволяет работать с программами в соответствии с ситуациями, которые могут иногда меняться.
(1)Когда обнаруживается неисправность инструмента, посредством внешнего сигнала начинается процесс анализа этой неисправности. .
(2)Последовательность операций обработки прерывается другой операцией обработки без отмены текущей операции..
(3)Считывание информации о текущей обработке происходит черезрегулярныеинтервалывремени. Нижеприведенытакие примеры, как применение функции макропрограммы пользователя типа прерывания в адаптивном управлении.
M96 |
|
|
|
Pxxxx; |
Сигнал |
|
|
|
|
прерывания |
O xxxx; |
|
|
||
|
|
(UINT) |
|
|
|
|
Сигнал
прерывания
(UINT)**
M99 (Pffff);
Nffff;
M97 ; Сигнал прерывания
(UINT)*
Рис. 15.11 Функция макропрограммы пользователя типа прерывания
Если в программе задан М96Рхххх, то последующая операция программыможетбытьпрерванасигналомпрерывания(UINT), введенным для выполнения программы, заданной Рхххх.
ПРЕДУПРЕЖДЕНИЕ
Если сигнал прерывания (UINT, отмеченный * в Рис. 15.11) вводится после того, как указан M97, то он иг- норируется. Сигнал прерывания не должен вводится во время выполнения программы прерывания.
326