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

 

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

 

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

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

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

 

 

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

15.

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

B--64124RU/01

322

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

:

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,

обладают теми же свойствами

,

что и

макрооператоры

.

15.4

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

Пояснения

D

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

D

Операторы ЧУ

,

обладающие такими
же характеристиками

,

что и операторы
макропрограмм

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

B--64124RU/01

15.

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

323

В программе можно изменить процесс управления с помощью
оператора перехода

GOTO

и условного оператора

IF.

Используются три типа операций перехода и повтора

:

Переход и повтор

Оператор

GOTO (

безусловный переход

)

Оператор

IF (

условный переход

:

если

..

то

...

Оператор цикла

WHILE (

повтор во время

...)

Происходит переход к номеру последовательности

n.

Если задан

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

,

не входящий в диапазон от

1

до

99999,

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

P/S

ном

. 128.

Для ввода

номера

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

также

можно

использовать

выражение

.

GOTO n ;

n:

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

(

от

1

до

99999)

Пример

:

GOTO1;
GOTO#10;

15.5

ПЕРЕХОД И ПОВТОР

15.5.1

Безусловный
переход

(

оператор

GOTO)

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

15.

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

B--64124RU/01

324

После

IF

задайте условное выражение

.

Если

указанное

условное

выражение

удовлетворено

,

происходит переход к номеру секвенции

n.

Если заданное

условие не удовлетворяется

,

то выполняется следующий блок

.

IF [#1 GT 10] GOTO 2 ;

N2 G00 G91 X10.0 ;

:

Если значение переменной

#1

больше

10,

то происходит переход к

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

N2.

Если условие
не удовлет

--

воряется

Обработка
данных

Если условие
удовлетворяется

Если заданное условное выражение удовлетворяется

,

то

выполняется

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

установленный

оператор

макропрограммы

.

Выполняется только единичный оператор

макропрограммы

.

IF [#1 EQ #2] THEN #3=0;

Если значения

#1

и

#2

одинаковые

,

то

#3

присваивается

0.

Условное выражение должно включать оператор

,

помещенный

между двумя переменными или между переменной и
постоянной

,

и должно заключаться в скобки

([, ]).

Вместо

переменной может быть использовано выражение

.

Операторы

,

каждый состоит из двух букв

,

используются для

сравнения двух значений и определения

,

являются ли эти

значения равными

,

или одно значение больше или меньше

другого значения

.

Обратите внимание на невозможность

использования знака неравенства

.

Таблица

15.5.2

Операторы

Оператор

Значение

EQ

Равен

(=)

NE

Не равно

(

)

GT

Больше

(>)

GE

Больше или равно

(

)

LT

Меньше

(<)

LE

Меньше или равно

(

)

15.5.2

Условный переход

(

оператор

IF)

IF[<

условное

выражение

>]GOTOn

IF[<

условное

выражение

>]THEN

Пояснения

D

Условное выражение

D

Операторы

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

B--64124RU/01

15.

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

325

В образце программы ниже вычисляется сумма цифр от

1

до

10.

O9500;

#1=0;

Начальное значение переменной

,

в которой хранится сумма

#2=1;

Начальное значение переменной как слагаемого

N1 IF[#2 GT 10] GOTO 2;

Переход к

N2

если второе слагаемое больше

,

чем

10

#1=#1+#2;

Вычисление суммы

#2=#2+1;

Следующее слагаемое

GOTO 1;

Переход к

N1

.

N2 M30;

Конец программы

После

WHILE

задайте условное выражение

.

Если заданное

условие удовлетворяется

,

то выполняется программа от

DO

до

END.

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

,

то

выполнение программы переходит к блоку после

END.

WHILE [

условное выражение

] DO m ; (m=1,2,3)

END m ;

:

Обработка
данных

Если условие
не удовле

--

творяется

Если условие

удовле

--

творяется

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

,

то после

WHILE

выполняется программа от

DO

до

END.

Если заданное условие

не удовлетворяется

,

то выполнение программы переходит к

блоку после

END.

Применяется такой же формат

,

что и для

оператора

IF.

Номер после

DO

и номер после

END

являются

идентификационными

номерами

для

ввода

диапазона

выполнения

.

Можно использовать номера

1, 2

и

3.

Если

используется номер

,

кроме

1, 2

и

3,

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

P/S

ном

. 126.

Образец программы

15.5.3

Повтор

(

оператор цикла

)

Пояснения

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

15.

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

B--64124RU/01

326

Идентификационные номера

(1 - 3)

в цикле

DO-END

могут

использоваться неограниченное количество раз

.

Тем не менее

,

обратите внимание на то

,

что если программа включает

пересекающиеся циклы повтора

(

перекрывающиеся диапазоны

DO),

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

P/S

ном

. 124.

1.

Идентификационные номера

(1 -- 3)

могут использоваться

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

.

WHILE [

] DO 1 ;

END 1 ;

:

WHILE [

] DO 1 ;

END 1 ;

WHILE [

] DO 1 ;

END 1 ;

:

WHILE [

] DO 2 ;

END 2 ;

WHILE [

] DO 1 ;

WHILE [

] DO 2 ;

:

WHILE [

] DO 3 ;

:

END 3 ;

:

END 2 ;

:

END 1 ;

WHILE [

] DO 1 ;

END 1 ;

IF [

] GOTO n ;

Nn

WHILE [

] DO 1 ;

END 1 ;

IF [

] GOTO n ;

Nn

;

:

2.

Диапазоны

DO

не могут

перекрещиваться

.

Обработка
данных

Обработка
данных

Обработка
данных

Обработка
данных

Обработка
данных

3.

Циклы

DO

могут быть

вложены до трех уровней

.

4.

Управление может

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

.

5.

Нельзя выполнить

переходы к позиции внутри
цикла

.

Если задан

DO m

и не задан оператор цикла

WHILE,

то создается

бесконечный цикл от

DO

до

END.

Если выполняется переход к номеру последовательности

,

заданный оператором перехода

GOTO,

то осуществляется поиск

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

.

По этой причине обработка

данных в обратном направлении занимает больше времени

,

чем

обработка данных в прямом направлении

.

Использование

оператора цикла

WHILE

для выполнения повторов сокращает

время на обработку данных

.

D

Вложение

Ограничения

D

Бесконечные циклы

D

Время обработки
данных

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

B--64124RU/01

15.

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

327

В условном выражении

,

в котором используется

EQ

или

NE,

<

пустое значение

>

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

.

В других

типах условных выражений пустое значение рассматривается в
качестве нуля

.

В образце программы ниже вычисляется сумма цифр от

1

до

10.

O0001 ;
#1=0;
#2=1;

WHILE[#2 LE 10]DO 1;
#1=#1+#2;

#2=#2+1 ;
END 1 ;
M30;

D

Неопределенная
переменная

Образец программы

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

15.

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

B--64124RU/01

328

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

:

Вызов
макропрограммы

Простой вызов

(G65)

Модальный вызов

(G66, G67)

Вызов макропрограммы с помощью

G--

кода

Вызов макропрограммы с помощью М

--

кода

Вызов подпрограммы с помощью М

--

кода

Вызов подпрограммы с помощью Т

--

кода

Вызов

макропрограммы

(G65)

отличается

от

вызова

подпрограммы

(

М

98),

как описано ниже

.

S

С помощью

G65

можно задать аргумент

(

данные передаются

в макропрограмму

). M98

не имеет такой возможности

.

S

Если в блоке

M98

содержится другая команда ЧУ

(

например

,

G01 X100.0 M98Pp),

то вызов подпрограммы осуществляется

после выполнения этой команды

.

С другой стороны

, G65

вызывает макропрограмму без условий

.

S

Если в блоке

M98

содержится другая команда ЧУ

(

например

,

G01 X100.0 M98Pp),

то станок останавливается в режиме

единичного блока

.

С другой стороны

, G65

не приводит к

остановке станка

.

S

При

G65

уровень локальных переменных меняется

.

При

M98

уровень локальных переменных не меняется

.

15.6

ВЫЗОВ
МАКРОПРОГРАММЫ

Ограничения

D

Различия между
вызовами
макропрограммы и
вызовами
подпрограммы

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

B--64124RU/01

15.

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

329

Если задан

G65,

то вызывается макропрограмма пользователя

,

заданная в адресе Р

.

Данные

(

аргумент

)

могут передаваться в

макропрограмму пользователя

.

G65 P p L

<

аргумент

--

определение

> ;

P :

Номер вызываемой программы

:

Количество повторов

(

по умолчанию

1)

Аргумент

:

Данные

,

переданные в макропрограмму

O0001 ;

:

G65 P9010 L2 A1.0 B2.0 ;

:

M30 ;

O9010 ;
#3=#1+#2;
IF [#3 GT 360] GOTO 9 ;

G00 G91 X#3 ;
N9 M99 ;

S

Задайте в адресе Р после

G65

номер макропрограммы

пользователя для вызова

.

S

Если требуется ввести количество повторов

,

после адреса

L

задайте число от

1

до

9999.

Если

L

пропущено

,

подразумевается

1.

S

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

.

Имеются два типа указания аргумента

.

В типе

I

указания

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

,

кроме

G, L, O, N

и

P,

каждая

один раз

.

В типе

II

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

,

B

и

C,

каждая один раз

,

а также используются

I, J

и

K

до десяти

раз

.

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

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

.

Указание аргумента

A
B
C

D
E

F
H

#1
#2
#3

#7
#8

#9
#11

I
J
K

M
Q

R
S

#4
#5
#6

#13
#17

#18
#19

T
U
V

W
X

Y
Z

#20
#21
#22

#23
#24

#25
#26

Адрес

Адрес

Адрес

Номер
пере

--

менной

Номер
пере

--

менной

Номер

пере

--

менной

S

Нельзя использовать в аргументах адреса

G, L, N, O

и

P.

S

Можно пропустить адреса

,

указание которых необязательно

.

Локальные переменные

,

соответствующие пропущенным

адресам

,

устанавливаются на нуль

.

S

Нет необходимости указывать адреса буквами

.

Они

соответствуют формату адреса слова

.

Однако

, I, J

и

K

необходимо задавать буквами

.

Пример

B_A_D_

J_K_

Верно

B_A_D_

J_I_

Неверно

15.6.1

Простой вызов

(G65)

Пояснения

D

Вызов

D

Указание аргумента

 

 

 

 

 

 

 

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