Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Fanuc SOi mate-md

.pdf
Скачиваний:
924
Добавлен:
21.03.2015
Размер:
6.94 Mб
Скачать

B-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

M97 ;

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]