FANUC серия 0i-MC. РУКОВОДСТВО ПО ЭКСПЛУАТАЦИИ - часть 43

 

  Главная      Книги - Разные     FANUC серия 0i-MC. РУКОВОДСТВО ПО ЭКСПЛУАТАЦИИ (B-64124RU/01)

 

поиск по сайту            правообладателям  

 

 

 

 

 

 

 

 

 

 

 

содержание      ..     41      42      43      44     ..

 

 

 

FANUC серия 0i-MC. РУКОВОДСТВО ПО ЭКСПЛУАТАЦИИ - часть 43

 

 

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

15.

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

B--64124RU/01

314

Информацию о положении нельзя записывать

,

но можно

считывать

.

Таблица

15.2 (i)

Системные переменные для информации о

положении

Номер

перемен

-

ной

Информация о

положении

Система

координат

Значение

компенса

-

ции на

инструмент

Операция

считыва

-

ния

во время

переме

-

щения

#5001 --
#5004

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

Система
координат
заготовки

Не включено

Разрешено

#5021 --
#5024

Текущее
положение

Система
машинных
координат

Включено

Запрещено

#5041 --
#5044

Текущее
положение

Система
координат
заготовки

#5061 --
#5064

Положение
сигнала
пропуска

заготовки

Разрешено

#5081 --
#5084

Значение
коррекции на
инструмент

Запрещено

#5101 --
#5104

Отклоненное
положение
сервосистемы

S

Первая цифра

(

от

1

до

4)

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

.

S

В переменных от

#5081

до

5088

хранится значение коррекции

на инструмент

,

используемое при выполнении программы в

настоящий момент

,

а не непосредственно предшествующее

значение коррекции на инструмент

.

S

В переменных от

#5061

до

#5068

хранится положение

инструмента

,

когда включается сигнал пропуска в блоке

G31

(

функция пропуска

).

Когда в блоке

G31

включается сигнал

пропуска

,

конечная точка заданного блока сохраняется в

этих переменных

.

S

Если считывание во время перемещения

запрещено

”,

это

означает

,

что ожидаемые значения нельзя считать по

причине действия функции буферизации

.

D

Текущее положение

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

B--64124RU/01

15.

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

315

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

.

Таблица

15.2 (j)

Системные переменные для значений коррекции

точки отсчета заготовки

Номер

переменной

Функция

#5201
:
#5204

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

#5221
:
#5224

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

,

задаваемая

G54

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

,

задаваемая

G54

#5241
:
#5244

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

,

задаваемая

G55

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

,

задаваемая

G55

#5261
:
#5264

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

,

задаваемая

G56

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

,

задаваемая

G56

#5281
:
#5284

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

,

задаваемая

G57

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

,

задаваемая

G57

#5301
:
#5304

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

,

задаваемая

G58

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

,

задаваемая

G58

#5321
:
#5324

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

,

задаваемая

G59

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

,

задаваемая

G59

#7001
:
#7004

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

(G54.1 P1)

:

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

#7021
:
#7024

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

(G54.1 P2)

:

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

:

:

#7941
:
#7944

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

(G54.1 P48)

:

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

D

Значения смещения
системы координат
заготовки

(

значения

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

)

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

15.

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

B--64124RU/01

316

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

:

Ось

Функция

Номер

переменной

Первая ось Величина внешней коррекции

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

G54

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

заготовки

G55

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

заготовки

G56

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

заготовки

G57

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

заготовки

G58

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

заготовки

G59

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

заготовки

#2500
#2501
#2502
#2503
#2504
#2505
#2506

#5201
#5221
#5241
#5261
#5281
#5301
#5321

Вторая ось Величина внешней коррекции

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

G54

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

заготовки

G55

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

заготовки

G56

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

заготовки

G57

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

заготовки

G58

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

заготовки

G59

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

заготовки

#2600
#2601
#2602
#2603
#2604
#2605
#2606

#5202
#5222
#5242
#5262
#5282
#5302
#5322

Третья ось

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

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

G54

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

заготовки

G55

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

заготовки

G56

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

заготовки

G57

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

заготовки

G58

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

заготовки

G59

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

заготовки

#2700
#2701
#2702
#2703
#2704
#2705
#2706

#5203
#5223
#5243
#5263
#5283
#5303
#5323

Четвертая

ось

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

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

G54

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

заготовки

G55

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

заготовки

G56

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

заготовки

G57

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

заготовки

G58

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

заготовки

G59

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

заготовки

#2800
#2801
#2802
#2803
#2804
#2805
#2806

#5204
#5224
#5244
#5264
#5284
#5304
#5324

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

B--64124RU/01

15.

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

317

С переменными можно выполнить операции

,

приведенные в

табл

. 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];
#i=COS[#j];
#i=ACOS[#j];
#i=TAN[#j];
#i=ATAN[#j]/[#k];

Угол задан в
градусах

. 90

_

и

30

мин

.

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

90.5

градусов

.

Квадратный корень
Абсолютное значение
Округление
Округление в меньшую сторону
Округление в большую сторону
Натуральный логарифм
Экспоненциальная функция

#i=SQRT[#j];
#i=ABS[#j];
#i=ROUND[#j];
#i=FIX[#j];
#i=FUP[#j];
#i=LN[#j];
#i=EXP[#j];

OR
XOR
AND

#i=#j OR #k;
#i=#j XOR #k;
#i=#j AND #k;

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

.

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

BCD

в

BIN

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

BIN

в

BCD

#i=BIN[#j];
#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

Диапазон решений от

1805

до

05.

S

Если

#j

не входит в диапазон от

-1

до

1,

выдается сигнал

тревоги

P/S

ном

. 111.

S

Вместо переменной

#j

можно использовать постоянную

.

15.3

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

Пояснения

D

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

D

ARCSIN #i = ASIN[#j];

D

ARCCOS #i = ACOS[#j];

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

15.

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

B--64124RU/01

318

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

10

47

(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]].

D

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

D

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

#i = LN[#j];

D

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

#i = EXP[#j];

D

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

(ROUND)

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

B--64124RU/01

15.

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

319

При ЧПУ

,

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

,

полученное

в результате операции над числом

,

больше абсолютного

значения исходного числа

,

такая операция называется

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

.

И

,

наоборот

,

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

,

полученное в

результате операции над числом

,

меньше абсолютного значения

исходного числа

,

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

целого

числа в

меньшую сторону

.

Будьте предельно

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

.

Пример

:

Предположим

,

что

#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.

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

,

первые два символа названия

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

(

См

III-9.7).

Пример

:

ROUND

RO

FIX

FI

¡

Функции

Операции умножения и деления

(*, /, AND)

¢

Операции сложения и вычитания

(+, -, OR, XOR)

Пример

) #1=#2+#3*SIN[#4];

м

¢

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

.

¢

¡

¡ ©

,

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

.

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

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

,

включая скобки

,

заключающие в себя

функцию

.

Если превышено

5

уровней

,

то возникает

P/S

сигнал

тревоги ном

. 118.

Пример

) #1=SIN [ [ [#2+#3] *#4 +#5] *#6] ;

¡

по

¤

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

.

¤

¡

¢

£

D

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

D

Аббревиатуры команд
арифметических и
логических операций

D

Очередность
выполнения операций

D

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

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

15.

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

B--64124RU/01

320

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

([, ])

используются для заключения

выражения

.

Обратите

внимание

,

что

круглые

скобки

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

.

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

.

Таблица

15.3 (b)

Ошибки

,

возникающие в операциях

Операции

Средняя

ошибка

Макси

-

мальная

ошибка

Тип ошибки

a = b*c

1.55

×

10

--10

4.66

×

10

--10

a = b / c

4.66

×

10

--10

1.88

×

10

--9

1.24

×

10

--9

3.73

×

10

--9

a = b + c
a = b -- c

2.33

×

10

--10

5.32

×

10

--10

a = SIN [ b ]
a = COS [ b ]

5.0

×

10

--9

1.0

×

10

--8

a = ATAN [ b ] / [ c ]
(*4)

1.8

×

10

--6

3.6

×

10

--6

ПРИМЕЧАНИЕ

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.

(

Действительный результат вычисления

несколько иной

,

так как он осуществлен в двоичных числах

).

Ограничения

D

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

D

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

ε

a

a

=

b

Относительная
ошибка

(*1)

ε

b

Мин

ε

c

(*2)

ε

Абсолютная
ошибка

(*3)

градусы

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

B--64124RU/01

15.

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

321

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]

Если делитель нуль задан в операции деления или

TAN[90],

то

возникает сигнал

P/S

тревоги ном

. 112.

D

Делитель

 

 

 

 

 

 

 

содержание      ..     41      42      43      44     ..