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

Fanuc SOi mate-md

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

B-64144RU/01 ПРОГРАММИРОВАНИE 15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ

ПРИМЕЧАНИЕ

Не заменяйте отрицательным значением.

D Модальная

Можносчитыватьмодальнуюинформацию, заданнуювблоках,

информация

вплоть до непосредственно предшествующего блока.

 

Таблица 15.2 (h) Системные переменные для модальной

 

 

информации

 

 

 

 

 

 

 

 

 

 

Номер

Функция

 

 

 

 

переменной

 

 

 

 

 

 

 

 

 

 

#4001

G00, G01, G02, G03, G33

(Группа 01)

 

 

 

#4002

G17, G18, G19

(Группа 02)

 

 

#4003

G90, G91

(Группа 03):

 

 

#4004

 

(Группа 04)

 

 

#4005

G94, G95

(Группа 05)

 

 

#4006

G20, G21

(Группа 06)

 

 

#4007

G40, G41, G42

(Группа 07)

 

 

#4008

G43, G44, G49

(Группа 08)

 

 

#4009

G73, G74, G76, G80-G89

(Группа 09)

 

 

#4010

G98, G99

(Группа 10)

 

 

#4011

G50, G51

(Группа 11)

 

 

#4012

G66, G67

(Группа 12)

 

 

#4013

G96, G97

(Группа 13)

 

 

#4014

G54-G59

(Группа 14)

 

 

#4015

G61-G64

(Группа 15)

 

 

#4016

G68, G69

(Группа 16):

 

 

:

:

:

 

 

 

#4022

 

(Группа 22)

 

 

#4102

B код

 

 

 

 

#4107

D код

 

 

 

 

#4109

F код

 

 

 

 

#4111

H код

 

 

 

 

#4113

M код

 

 

 

 

#4114

Номер последовательности

 

 

 

 

#4115

Номер программы

 

 

 

 

#4119

S код

 

 

 

 

#4120

T код

 

 

 

 

#4130

P код (номер выбранной в данный момент

 

 

 

дополнительной системы координат прибора )

 

 

 

 

 

 

 

Пример:

Есливыполняется#1=#4001; в#1 получится значение0, 1, 2, 3 или 33.

Если указанная системная переменная для считывания модальной информации соответствует группе G-кода, которая не может быть использована, включается сигнал тревоги P/S.

287

15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ

ПРОГРАММИРОВАНИE

B-64144RU/01

 

 

 

D Текущее положение Информацию о положении нельзя записывать, но можно считывать.

Таблица 15.2 (i) Системные переменные для информации о положении

Номер

Информация

Система

Значение

Операция

переменной

о положении

координат

компенса-

считывания

 

 

 

ции на ин-

во время

 

 

 

струмент

перемещения

 

 

 

 

 

#5001 -

Конечная точка

Система

Не

Разрешено

#5003

блока

координат

включено

 

 

 

заготовки

 

 

 

 

 

 

 

#5021 -

Текущее

Система

Включено

Запрещено

#5023

положение

машинных

 

 

 

 

координат

 

 

 

 

 

 

 

#5041 -

Текущее

Система

 

 

#5043

положение

координат

 

 

 

 

заготовки

 

 

#5061 -

Положение

 

Разрешено

 

 

#5063

сигнала

 

 

 

 

пропуска

 

 

 

 

 

 

 

 

#5081 -

Значение

 

 

Запрещено

#5083

коррекции на

 

 

 

 

инструмент

 

 

 

 

 

 

 

 

#5101 -

Отклоненное

 

 

 

#5103

положение

 

 

 

 

сервосистемы

 

 

 

 

 

 

 

 

S Первая цифра (от 1 до 3) представляет номер оси.

SВпеременныхот#5081 до5088 хранитсязначениекоррекции на инструмент, используемое при выполнении программы в настоящий момент, а не непосредственно предшествующее значение коррекции на инструмент.

SВ переменных от #5061 до #5068 хранится положение инструмента, когдавключаетсясигнал пропускав блоке G31 (функция пропуска). Когда в блоке G31 включается сигнал пропуска, конечная точка заданного блока сохраняется в этих переменных.

SЕсли считывание во время перемещения запрещено”, это означает, что ожидаемые значения нельзя считать по причине действия функции буферизации.

288

B-64144RU/01

ПРОГРАММИРОВАНИE

15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ

 

 

 

DЗначения смещения системы координат заготовки (значения смещения нулевой точки заготовки)

Можно считывать и записывать значения коррекции точки отсчета заготовки.

Таблица 15.2 (j) Системные переменные для значений коррекции точки отсчета заготовки

Номер

Функция

переменной

 

 

 

#5201

Величина внешнего смещения нулевой точки

заготовки по первой оси

:

Величина внешней коррекции нулевой точки

#5203

заготовки по третьей оси

 

 

 

#5221

Величина смещения нулевой точки заготовки

по первой оси, задаваемая G54

:

Величина смещения нулевой точки заготовки по

#5223

третьей оси, задаваемая G54

 

 

 

#5241

Величина смещения нулевой точки заготовки по

первой оси, задаваемая G55

:

Величина смещения нулевой точки заготовки по

#5243

третьей оси, задаваемая G55

 

 

 

#5261

Величина смещения нулевой точки заготовки по

первой оси, задаваемая G56

:

Величина смещения нулевой точки заготовки по

#5263

третьей оси, задаваемая G56

 

 

 

#5281

Величина смещения нулевой точки заготовки по

первой оси, задаваемая G57

:

Величина смещения нулевой точки заготовки по

#5283

третьей оси, задаваемая G57

 

 

 

#5301

Величина смещения нулевой точки заготовки по

первой оси, задаваемая G58

:

Величина смещения нулевой точки заготовки по

#5303

третьей оси, задаваемая G58

 

 

 

#5321

Величина смещения нулевой точки заготовки по

первой оси, задаваемая G59

:

Величина смещения нулевой точки заготовки по

#5323

третьей оси, задаваемая G59

 

 

 

 

Значение коррекции нулевой точки заготовки по

#7001

первой оси (G54.1 P1)

:

:

#7003

Величина смещения нулевой точки заготовки по

 

третьей оси

 

 

 

Значение коррекции нулевой точки заготовки по

#7021

первой оси (G54.1 P2)

:

:

#7023

Величина смещения нулевой точки заготовки по

 

третьей оси

 

 

:

:

 

 

 

Значение коррекции нулевой точки заготовки по

#7941

первой оси (G54.1 P48)

:

:

#7943

Величина смещения нулевой точки заготовки по

 

третьей оси

 

 

289

15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ

ПРОГРАММИРОВАНИE

B-64144RU/01

 

 

 

Также могут быть использованы следующие переменные:

Ось

Функция

Номер

 

 

переменной

 

 

 

 

Первая ось

Величина внешней коррекции

#2500

#5201

 

нулевой точки заготовки

 

 

 

G54 коррекция нулевой точки

#2501

#5221

 

заготовки

 

 

 

G55 коррекция нулевой точки

#2502

#5241

 

заготовки

 

 

 

G56 коррекция нулевой точки

#2503

#5261

 

заготовки

 

 

 

G57 коррекция нулевой точки

#2504

#5281

 

заготовки

 

 

 

G58 коррекция нулевой точки

#2505

#5301

 

заготовки

 

 

 

G59 коррекция нулевой точки

#2506

#5321

 

заготовки

 

 

 

 

 

 

Вторая ось

Величина внешней коррекции

#2600

#5202

 

нулевой точки заготовки

 

 

 

G54 коррекция нулевой точки

#2601

#5222

 

заготовки

 

 

 

G55 коррекция нулевой точки

#2602

#5242

 

заготовки

 

 

 

G56 коррекция нулевой точки

#2603

#5262

 

заготовки

 

 

 

G57 коррекция нулевой точки

#2604

#5282

 

заготовки

 

 

 

G58 коррекция нулевой точки

#2605

#5302

 

заготовки

 

 

 

G59 коррекция нулевой точки

#2606

#5322

 

заготовки

 

 

 

 

 

 

Третья ось

Величина внешней коррекции

#2700

#5203

 

нулевой точки заготовки

 

 

 

G54 коррекция нулевой точки

#2701

#5223

 

заготовки

 

 

 

G55 коррекция нулевой точки

#2702

#5243

 

заготовки

 

 

 

G56 коррекция нулевой точки

#2703

#5263

 

заготовки

 

 

 

G57 коррекция нулевой точки

#2704

#5283

 

заготовки

 

 

 

G58 коррекция нулевой точки

#2705

#5303

 

заготовки

 

 

 

G59 коррекция нулевой точки

#2706

#5323

 

заготовки

 

 

 

 

 

 

290

B-64144RU/01

ПРОГРАММИРОВАНИE

15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ

 

 

 

15.3

АРИФМЕТИЧЕСКАЯ И ЛОГИЧЕСКАЯ ОПЕРАЦИЯ

Пояснения

DЕдиницы измерения углов

D ARCSIN #i = ASIN[#j];

D ARCCOS #i = ACOS[#j];

С переменными можно выполнить операции, приведенные в таблице 15.3 (а). Выражение справа от оператора может содержать постоянные и/или переменные, сгруппированные с помощью функции или оператора. Переменные #j и #K можно заменить в выражении на постоянную. Переменные слева можно также заменить на выражение.

Таблица 15.3 (а) Арифметическая и логическая операция

Функция

Формат

Комментарии

 

 

 

Описание

#i=#j

 

 

 

 

Сумма

#i=#j+#k;

 

Разность

#i=#j-#k;

 

Произведение

#i=#j*#k;

 

Частное

#i=#j/#k;

 

 

 

 

Синус

#i=SIN[#j];

Угол задан в гра-

Арксинус

#i=ASIN[#j];

дусах. 90 граду-

Косинус

#i=COS[#j];

сов и 30 минут

Арккотангенс

#i=ACOS[#j];

представлены

Тангенс

#i=TAN[#j];

как 90.5

Арктангенс

#i=ATAN[#j]/[#k];

градусов.

 

 

 

Квадратный корень

#i=SQRT[#j];

 

Абсолютное значение

#i=ABS[#j];

 

Округление

#i=ROUND[#j];

 

Округление в меньшую сторону

#i=FIX[#j];

 

Округление в большую сторону

#i=FUP[#j];

 

Натуральный логарифм

#i=LN[#j];

 

Экспоненциальная функция

#i=EXP[#j];

 

 

 

 

OR

#i=#j OR #k;

Логическая опе-

XOR

#i=#j XOR #k;

рация выпол-

AND

#i=#j AND #k;

няется над

 

 

двоичными

 

 

числами

 

 

поразрядно.

 

 

 

Преобразование BCD в BIN

#i=BIN[#j];

Используется

Преобразование BIN в BCD

#i=BCD[#j];

для обмена

 

 

сигналами с PMC

Единицами измерения углов, используемыми с функциями

SIN, COS, TAN, ASIN, ACOS и ATAN, являются градусы.

Например, 90 градусов и 30 минут представлены как 90.5 градусов.

SДиапазоны решений представлены ниже:

Если разряд NAT (разряд 0 параметра ном. 6004) установлен на 0: 270_ - 90_

Если разряд NAT (разряд 0 параметра ном. 6004) установлен на 1: от -90_ до 90_

SЕсли #j не входит в диапазон от -1 до 1, выдается сигнал тревоги P/S ном. 111.

S Вместо переменной #j можно использовать постоянную. S Диапазон решений от 180_ до 0_.

SЕсли #j не входит в диапазон от -1 до 1, выдается сигнал тревоги P/S ном. 111.

S Вместо переменной #j можно использовать постоянную.

291

15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ

ПРОГРАММИРОВАНИE

B-64144RU/01

 

 

 

DARCTAN #i = ATAN[#j]/[#k];

DНатуральный логарифм #i = LN[#j];

DЭкспоненциальная функция #i = EXP[#j];

DФункция ОКРУГЛЕНИЯ

(ROUND)

S Задайте длину двух сторон, разделенное косой чертой (/). S Диапазоны решений следующие:

Если разряд NAT (разряд 0 параметра ном. 6004) установлен на 0: 0_ по 360_

[Пример] Если #1 = ATAN[-1]/[-1]; , то #1 равно 225.0.

Если разряд NAT (разряд 0 параметра ном. 6004) установлен на 1: от -180_ до 180_

[Пример] Если #1 = ATAN[-1]/[-1]; , то #1 равно -135.0.0.

S Вместо переменной #j можно использовать постоянную.

SОбратите внимание на то, что относительная погрешность может быть 10-8 или больше.

SЕсли алгоритм (#j) равен нулю или меньше, то выдается сигнал тревоги P/S ном. 111.

S Вместо переменной #j можно использовать постоянную.

SОбратите внимание на то, что относительная погрешность может быть 10-8 или больше.

SЕсли результат операции превышает 3.65 X 1047 (j приблизи- тельно равно 110), то возникает переполнение и выдается сигнал тревоги P/S ном. 111.

S Вместо переменной #j можно использовать постоянную.

SЕсли в команду логической или арифметической операции включена функция ОКРУГЛЕНИЕ, то условный оператор ЕСЛИ (IF) или оператор цикла (WHILE) или функция ОКРУГЛЕНИЕпроизводитокруглениевпервомдесятичном

разряде. Пример:

Если выполняется #1=ROUND[#2]; , когда в #2 содержится 1.2345, то значение переменной #1 равно 1.0.

SЕсли функция ОКРГЛЕНИЕ используется в адресах опера- торов ЧПУ, то функция ОКРУГЛЕНИЕ производит округ-

ление заданного значения в соответствии с наименьшим вводимым приращением в адресе.

Пример:

Созданиепрограммысверления, котораявыполняетрезание в соответствии с переменными #1 и #2, затем осуществляет возврат в исходное положение Предположим, что система приращений - 1/1000 мм, в

переменной #1 содержится 1.2345, а в переменной #2 содержится 2.3456. Тогда,

G00 G91 X-#1; Перемещение на 1,235 мм.

G01 X-#2 F300; Перемещение на 2,346 мм.

G00 X[#1+#2]; Так как 1.2345 + 2.3456 = 3.5801, расстояние перемещения равно 3.580, и оно не возвра- щает инструмент в исходное положение

Эта разница возникает в зависимости от того, выполняется липрибавлениедоилипослеокругления. Дляосуществления возврата инструмента в исходное положение необходимо задать G00X-[ROUND[#1]+ROUND[#2]].

292

B-64144RU/01

ПРОГРАММИРОВАНИE

15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ

 

 

 

D Округление в

 

ПриЧПУ, когдаабсолютноезначениецелогочисла, полученное

меньшую и большую

 

в результате операции над числом, больше абсолютного

сторону до целого

 

значения исходного числа, такая операция называется

числа

 

округлением до целого числа в большую сторону. И, наоборот,

 

 

когда абсолютное значение целого числа, полученное в

 

 

результатеоперациинадчислом, меньшеабсолютногозначения

 

 

исходного числа, такая операция называется округлением до

 

 

целого числа в меньшую сторону. Будьте предельно вниматель-

 

 

ны при операциях с отрицательными числами.

 

 

Пример:

 

 

 

Предположим, что #1=1.2 и #2=-1.2.

 

 

Когда выполняется #3=FUP[#1], то #3 присваивается 2.0.

 

 

Когда выполняется #3=FIX[#1], то #3 присваивается 1.0.

 

 

Когда выполняется #3=FUP[#2], то #3 присваивается -2.0.

 

 

Когда выполняется #3=FIX[#2], то #3 присваивается -1.0.

D Аббревиатуры команд

 

Есливпрограммезаданафункция, первыедвасимволаназвания

арифметических и

 

этойфункциимогутбытьиспользованыдлявводаэтойфункции

логических операций

 

(См III-9.7).

 

 

 

Пример:

 

 

 

ROUND RO

 

 

 

FIX FI

 

D Очередность

 

¡ Функции

 

выполнения операций

 

© Операции умножения и деления (*, /, AND)

 

 

¢ Операции сложения и вычитания (+, -, OR, XOR)

 

 

 

 

 

Пример) #1=#2+#3*SIN[#4];

 

 

 

¡

 

 

 

©

 

 

 

¢

 

 

¡, © м ¢ обозначают порядок выполнения операций.

D Вложение в

 

 

 

Скобки используются для изменения порядка выполнения

квадратные скобки

 

операций. Можно использовать до пяти уровней вложений в

 

 

квадратные скобки, включая скобки, заключающие в себя

 

 

функцию. Если превышено 5 уровней, то возникает P/S сигнал

 

 

тревоги ном. 118.

 

Пример) #1=SIN [ [ [#2+#3] *#4 +#5] *#6] ;

¡

©

¢

£

¤

¡ по ¤ обозначают порядок выполнения операций.

293

15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ ПРОГРАММИРОВАНИE B-64144RU/01

Ограничения

D Квадратные скобки

Квадратные скобки ([, ]) используются для заключения выра-

 

 

жения. Обратите внимание, что круглые скобки используются

 

 

для комментариев.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

D Ошибка в операции

Во время выполнения операций могут возникать ошибки.

 

 

 

 

Таблица 15.3 (b) Ошибки, возникающие в операциях

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Операции

Средняя

Макс.

Тип ошибки

 

 

 

 

 

ошибка

ошибка

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a = b*c

1.55×10-10

4.66×10-10

Относительная

 

 

 

 

 

 

 

ошибка (*1)

 

 

a = b / c

4.66×10-10

1.88×10-9

 

 

 

 

 

 

 

 

ε

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a

 

 

 

 

 

 

 

 

a =

 

 

1.24×10-9

3.73×10-9

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a = b + c

2.33×10-10

5.32×10-10

 

 

 

 

 

(*2)

 

 

 

a = b - c

 

 

Мин

 

ε

 

 

 

ε

 

 

 

 

 

 

 

 

 

 

 

 

 

 

b

 

 

 

c

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

a = SIN [ b ]

5.0×10-9

1.0×10-8

Абсолютная

 

 

a = COS [ b ]

 

 

ошибка (*3)

 

 

 

 

 

 

 

 

ε

 

градусы

 

 

 

 

 

 

 

 

 

 

 

a = ATAN [ b ] / [ c ]

1.8×10-6

3.6×10-6

 

 

(*4)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПРИМЕЧАНИЕ

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1 Относительная ошибка зависит от результата

 

 

операции.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2Используется наименьшая из двух типов ошибок.

3Абсолютная ошибка является постоянной, независи- мо от результата операции.

4Функция TAN выполняет SIN/COS.

5Когда параметр ном. 6004#1 установлен на 1, если

результат действия функции SIN, COS или TAN менее, чем 1.0 × 10-8, или не снижается до 0 вследствие ограничения точности, то значение результата операции может быть нормализовано до 0.

SТочность значений переменных около 8 десятичных цифр. Если операция сложения или вычитания выполняется с очень большими числами, можно получить неожиданные результаты.

Пример:

При попытке присвоить следующие значения переменным

#1 и #2: #1=9876543210123.456 #2=9876543277777.777

значения переменных становятся: #1=9876543200000.000 #2=9876543300000.000

В этом случае, если вычисляется #3=#2-#1; , то получается #3=100000.000. (Действительный результат вычисления несколькоиной, таккаконосуществленвдвоичныхчислах).

294

B-64144RU/01

ПРОГРАММИРОВАНИE

15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ

 

 

 

SТакже учитывайте ошибки, которые могут возникнуть из условныхвыраженийс использованием EQ, NE, GE, GT, LE

и LT.

Пример:

Приоперациис IF [#1 EQ #2] возниклиошибкикакв #1, так и в #2, что может привести к неверному решению. Следовательно, вместо этого найдите разность между двумя переменными с IF[ABS[#1-#2]LT0.001].

Затем предположим, что значения двух переменных равны, а разность не превышает допустимый предел (в данном случае 0.001).

SТакже будьте внимательны при округлении значения в меньшую сторону.

Пример:

Если вычисляется #2=#1*1000; , где #1=0.002;,

получившееся значение переменной #2 составляет не точно 2, а 1.99999997.

Здесь, если задано #3=FIX[#2]; , то получившееся значение переменной #1 составляет не точно 2.0, а 1.0. В этом случае после исправления ошибки округлите значение в меньшую сторону, так чтобы результат получился больше, чем ожидаемое число, или выполните округление следующим образом:

#3=FIX[#2+0.001]

#3=ROUND[#2]

D Делитель

Если делитель нуль задан в операции деления или TAN[90], то

 

возникает сигнал P/S тревоги ном. 112.

295

15. МАКРОПРОГРАММА ПОЛЬЗОВАТЕЛЯ

ПРОГРАММИРОВАНИE

B-64144RU/01

 

 

 

15.4

ОПЕРАТОРЫ

МАКРОПРОГРАММ И ОПЕРАТОРЫ ЧУ

Пояснения

DОтличия от операторов ЧПУ

DОператоры ЧУ, обладающие такими же характеристиками, что и операторы макропрограмм

Следующие блоки называются операторами макропрограмм:

S Блоки, содержащие арифметическую или логическую

операцию (=)

S Блоки, содержащие управляющий оператор (например GOTO,

DO, END)

S Блоки, содержащие макрокоманду вызова (например макровы-

зовы с G65, G66, G67, или другими G кодами, или с M кодами)

Любой другой блок, кроме макрооператора, рассматривается как оператор ЧПУ.

SДаже при включении режима единичного блока, станок не останавливается. Темнеменее, обратитевниманиенато, что станок останавливается в режиме единичного блока, если разряд 5 SBM параметра 6000 установлен на 1.

SМакроблокинерассматриваютсявкачествеблоков, которые вызывают перемещение в режиме коррекции на режущий инструмент (см. II-15.7).

S Операторы ЧПУ, которые содержат команду вызова подпрограммы (например подпрограммы вызова с кодами M98 или другими M кодами, или T кодами) и не содержат адресов других команд, кроме адресов O,N или L, обладают теми же свойствами, что и макрооператоры.

SБлоки, которые не содержат адресов других команд, кроме адресов O,N,P или L, обладают теми же свойствами, что и макрооператоры.

296

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