Haas Фрезерный станок Руководство 96-RU8200 (Редакция A Январь 2014 г.) - часть 16

 

  Главная      Книги - Разные     Haas Фрезерный станок Руководство 96-RU8200 (Редакция A Январь 2014 г.)

 

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

 

   

 

   

 

содержание      ..     14      15      16      17     ..

 

 

 

Haas Фрезерный станок Руководство 96-RU8200 (Редакция A Январь 2014 г.) - часть 16

 

 

Программирование

 

опций

 

235

Выражения

Выражения

 

определяются

 

как

 

любая

 

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

 

переменных

 

и

операторов

, 

заключенная

 

в

 

квадратные

 

скобки

 

[

 

и

 

]

. 

Существует

 

два

 

типа

выражений

: 

условные

 

и

 

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

. 

Условные

 

выражения

 

возвращают

значения

 

ЛОЖНО

 (0.0) 

или

 

ИСТИННО

 (

любое

 

отличное

 

от

 

нуля

). 

Арифметические

выражения

 

определяют

 

значение

 

с

 

помощью

 

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

 

операторов

и функций

.

Условные

 

выражения

В

 

системе

 

управления

 Haas 

все

 

выражения

 

задают

 

условное

 

значение

. 

Это

 

значение

равно

 

либо

 0.0 (

ЛОЖНО

), 

либо

 

не

 

равно

 

нулю

  (

ИСТИННО

). 

Контекст

, 

в

 

котором

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

 

выражение

, 

определяет

, 

является

 

ли

 

оно

 

условным

. 

Условные

выражения

 

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

 

в

 

операторах

 

IF

 

и

 

WHILE

, 

а

 

также

 

в

 

команде

 

M99

. 

Условные

выражения

 

могут

 

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

 

булевы

 

операторы

 

для

 

определения

 

ИСТИННОСТИ

или

 

ЛОЖНОСТИ

условия

.

Условная

 

конструкция

 

M99

 

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

 

только

 

в

 

системе

 

управления

 Haas. 

Без

макросов

 

M99

 

в

 

системе

 

управления

 Haas 

способна

 

выполнять

 

безусловный

 

переход

к

 

любой

 

строке

 

в

 

текущей

 

подпрограмме

, 

если

 

поместить

 

в

 

эту

 

строку

 

код

 

Р

.

Например

:

N50 M99 P10 ;

Пример

Пояснения

IF [#1 EQ 0.0] GOTO100;

Перейти

 

к

 

блоку

 100, 

если

 

переменная

 #1 

равна

 

0.0.

WHILE [#101 LT 10] DO1;

Пока

 

переменная

 #101 

меньше

 10, 

повторять

 

цикл

 

DO1..END1.

#1=[1.0 LT 5.0];

Переменной

 #1 

присвоено

 

значение

 1.0 

(

ИСТИННО

).

IF [#1 AND #2 EQ #3] 
GOTO1 ;

Если

 

переменная

 #1 

И

 

переменная

 #2 

равны

 

значению

 

в

 #3, 

то

 

система

 

управления

 

выполняет

 

переход

 

в

 

блок

 1.

Подстановка

 

адреса

 

236

выполняет

 

переход

 

к

 

строке

 

N10

. 

Команда

 

не

 

возвращает

 

управление

 

вызывающей

подпрограмме

. 

Если

 

макросы

 

включены

, 

M99

 

можно

 

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

 

с

 

условным

выражением

 

для

 

выполнения

 

условного

 

перехода

. 

Чтобы

 

выполнить

 

переход

, 

если

переменная

 

#100

 

меньше

 10, 

можно

 

составить

 

строку

 

выше

 

следующим образом

: 

N50 [#100 LT 10] M99 P10;

В

 

этом

 

случае

 

переход

 

произойдёт

, 

только

 

если

 

#100

 

будет

 

меньше

 10, 

в

 

противном

случае

 

продолжится

 

обработка

 

следующей

 

строки

 

программы

. 

В

 

примере

 

выше

условный

 

оператор

 

M99

 

можно

 

заменить так

: 

N50 IF [#100 LT 10] GOTO10;

Арифметические

 

выражения

Арифметическим

 

является

 

любое

 

выражение

, 

использующее

 

переменные

,

операторы

 

или

 

функции

. 

Арифметическое

 

выражение

 

возвращает

 

некоторое

значение

. 

Обычно

 

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

 

выражения

 

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

 

в

 

операторах

присваивания

, 

но

 

не

 

ограничиваются ими

.

Примеры

 

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

 

выражений

:

#101=#145*#30 ;
#1=#1+1 ;
X[#105+COS[#101]];
#[#2000+#13]=0 ;

Операторы

 

присваивания

Операторы

 

присваивания

 

позволяют

 

программисту

 

изменять

 

значения

 

переменных

.

Формат

 

оператора

 

присваивания таков

: 

<

выражение

>=<

выражение

>

Выражение

 

слева

 

от

 

знака

 

равенства

 

всегда

 

должно

 

прямо

 

или

 

косвенно

 

указывать

на

 

макропеременную

. 

Следующая

 

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

 

запускает

 

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

присвоения

 

любых

 

значений

 

переменным

. 

В

 

ней

 

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

 

как

 

прямое

, 

так

 

и

косвенное присваивание

.

O0300 (

Инициализация

 

массива

 

переменных

) ;

N1 IF [#2 NE #0] GOTO2 (B=

базовая

 

переменная

) ;

#3000=1 (

Базовая

 

переменная

 

не

 

дается

) ;

N2 IF [#19 NE #0] GOTO3 (S=

размер

 

массива

) ;

#3000=2 (

Размер

 

массива

 

не

 

дается

) ;

N3 WHILE [#19 GT 0] DO1 ;
#19=#19-1 (

Отрицательное

 

приращение

) ;

#[#2+#19]=#22 (V=

значение

 

для

 

присвоения

 

переменным

 

Программирование

 

опций

 

237

массива

) ;

END1 ;
M99;

Показанная

 

выше

 

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

 

может

 

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

 

для

 

инициализации

 

трех

совокупностей

 

переменных

 

следующим образом

:

G65 P300 B101. S20 (INIT 101..120 TO #0) ;
G65 P300 B501. S5 V1. (INIT 501..505 TO 1.0) ;
G65 P300 B550. S5 V0 (INIT 550..554 TO 0.0) ;

Десятичная

 

точка

 

в

 B101. 

и

 

т

.

д

. 

будет обязательной

.

Управляющие

 

операторы

Управляющие

 

операторы

 

позволяют

 

программисту

 

выполнять

 

как

 

условные

, 

так

 

и

безусловные

 

переходы

. 

Они

 

также

 

дают

 

возможность

 

повторять

 

выполнение

 

части

текста

 

программы

 

в

 

зависимости

 

от условия

.

Безусловный

 

переход

 (GOTOnnn 

и

 M99 Pnnnn)

Система

 

управления

 HAAS 

позволяет

 

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

 

два

 

способа

 

безусловного

перехода

. 

Безусловный

 

переход

 

всегда

 

осуществляется

 

к

 

указанному

 

блоку

.

Команда

 

M99 P15

 

выполнит

 

безусловный

 

к

 

блоку

 

номер

 15. 

Команду

 

M99

 

можно

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

 

независимо

 

от

 

того

, 

установлены

 

макросы

, 

или

 

нет

, 

и

 

это

традиционный

 

способ

 

безусловного

 

перехода

 

в

 

системе

 

управления

 Haas. 

GOTO15

делает

 

то

 

же

, 

что

 

M99 P15

. 

В

 

системе

 

управления

 Haas 

команду

 

GOTO

 

можно

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

 

в

 

одной

 

строке

 

с

 

другими

 G-

кодами

. 

GOTO

 

исполняется

 

после

 

всех

других

 

команд

, 

например

, 

М кодов

.

Вычисляемый

 

переход

 (GOTO#n 

и

 GOTO [

выражение

])

Вычисляемый

 

переход

 

позволяет

 

программе

 

передавать

 

управление

 

другой

 

строке

кода

 

в

 

той

 

же

 

подпрограмме

. 

Вычислять

 

блок

 

можно

, 

пока

 

программа

 

исполняется

, 

с

помощью

 

формы

 

GOTO [

выражение

]

. 

Или

 

же

 

блок

 

может

 

передаваться

 

с

 

помощью

локальной

 

переменной

, 

например

, 

как

 

в

 

форме

GOTO#n

.

Команда

 

GOTO

 

округлит

 

переменную

 

или

 

результат

 

выражения

, 

связанного

 

с

вычисляемым

 

переходом

. 

Например

, 

если

 

переменная

 

#1

 

содержит

 

значение

 4.49 

и

выполняется

 

команда

 

GOTO#1

, 

система

 

управления

 

сделает

 

попытку

 

выполнить

переход

 

к

 

блоку

, 

содержащему

 

N4

. 

Если

 

#1

 

содержит

 4.5, 

то

 

исполнение

 

перейдет

 

в

блок

, 

содержащий

 

N5

.

Подстановка

 

адреса

 

238

Для

 

составления

 

программы

, 

которая

 

присваивает

 

деталям

 

заводские

 

номера

,

можно

 

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

 

следующую

 

структуру

 

кода

:

O9200 (

Гравировка

 

цифры

 

в

 

текущей

 

позиции

) ;

(D=

Десятичная

 

цифра

 

для

 

гравировки

);

;
IF [[#7 NE #0] AND [#7 GE 0] AND [#7 LE 9]] GOTO99 ;
#3000=1 (

Недопустимая

 

цифра

) ;

;
N99
#7=FIX[#7] (

Отсекание

 

дробной

 

части

) ;

;
GOTO#7 (

Начать

 

гравирование

 

цифры

) ;

;
N0 (

Гравировка

 

цифры

 "

ноль

") ;

M99;
;
N1 (

Гравировка

 

цифры

 "

один

") ;

;
M99;
;
N2 (

Гравировка

 

цифры

 "

два

") ;

;
...
;
(

и

 

т

.

д

.)

Используя

 

приведенную

 

выше

 

подпрограмму

 

можно

 

выгравировать

 

цифру

 

пять

следующим

 

образом

:

G65 P9200 D5;

Вычисляемые

 

переходы

 

GOTO

 

с

 

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

 

выражения

 

можно

 

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

для

 

обработки

 

переходов

 

на

 

основе

 

результатов

 

опроса

 

входов

 

оборудования

. 

См

.

например

, 

следующий

 

фрагмент

 

программы

:

GOTO [[#1030*2]+#1031];
NO(1030=0, 1031=0) ;
...
M99;
N1(1030=0, 1031=1) ;
...
M99;
N2(1030=1, 1031=0) ;
...
M99;
N3(1030=1, 1031=1) ;
...
M99;

Программирование

 

опций

 

239

При

 

чтении

 

дискретных

 

входных

 

сигналов

 

всегда

 

получается

 

значение

 0 

или

 1.

Конструкция

 

GOTO[

выражение

]

 

выполнит

 

переход

 

к

 

соответствующей

 

строке

программы

, 

основываясь

 

на

 

состоянии

 

двух

 

дискретных

 

входов

 

#1030

 

и

#1031

.

Условный

 

переход

 (IF 

и

 M99 Pnnnn)

Условный

 

переход

 

позволяет

 

программе

 

передавать

 

управление

 

другому

 

фрагменту

кода

 

в

 

той

 

же

 

подпрограмме

. 

Условный

 

переход

 

может

 

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

, 

только

 

когда

разрешено

 

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

 

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

. 

Система

 

управления

 Haas 

позволяет

выполнять

 

условные

 

переходы

 

двумя

 

похожими способами

.

IF [<

условное

 

выражение

>] GOTOn

Как

 

говорилось

 

выше

, <

условное

 

выражение

> – 

это

 

любое

 

выражение

,

использующее

 

какой

-

либо

 

из

 

шести

 

булевых

 

операторов

: 

EQ

, 

NE

, 

GT

, 

LT

, 

GE

 

или

 

LE

.

Выражение

 

обязательно

 

заключается

 

в

 

скобки

. 

Для

 

системы

 

управления

 Haas

включать

 

эти

 

операторы

 

нет

 

необходимости

. 

Например

:

IF [#1 NE 0.0] GOTO5 ;

может

 

также

 

иметь

 

вид

:

IF [#1] GOTO5;

В

 

этом

 

операторе

, 

если

 

значение

 

переменной

 

#1

 

не

 

равно

 0.0 

или

 

не

неопределенное

 

значение

 

#0

, 

то

 

произойдет

 

переход

 

к

 

блоку

 5, 

в

 

противном

 

случае

будет

 

выполняться

 

следующий блок

.

На

 

системе

 

управления

 Haas, <

условное

 

выражение

> 

также

 

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

 

с

форматом

 

M99 Pnnnn

. 

Например

:

G00 X0 Y0 [#1EQ#2] M99 P5;

Здесь

 

условие

 

относится

 

только

 

к

 

части

 

M99

 

оператора

. 

Станок

 

получает

 

команду

перейти

 

к

 

X0

, 

Y0

 

независимо

 

от

 

того

, 

является

 

ли

 

выражение

 

истинным

 

или

 

ложным

.

В

 

зависимости

 

от

 

значения

 

выражения

 

выполняется

 

только

 

переход

, 

M99

.

Рекомендуется

 

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

 

вариант

 

IF GOTO

, 

если

 

необходимо

 

обеспечить

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

.

Условное

 

выполнение

 (IF THEN)

Исполнение

 

управляющих

 

операторов

 

может

 

также

 

осуществляться

 

с

 

помощью

конструкции

 

IF THEN

. 

Формат следующий

:

IF [<

условное

 

выражение

>] THEN <

оператор

>;

Подстановка

 

адреса

 

240

ПРИМЕЧАНИЕ

:

Для

 

сохранения

 

совместимости

 

с

 

синтаксисом

 FANUC

оператор

 

THEN

 

нельзя

 

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

 

с

 

GOTOn

.

Этот

 

формат

 

традиционно

 

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

 

для

 

условных

 

операторов

присваивания

,

например

:

IF [#590 GT 100] THEN #590=0.0 ;

Переменной

 

#590

 

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

 

нулевое

 

значение

, 

если

 

когда

 

значение

 

#590

превышает

 100.0. 

В

 

системе

 

управления

 Haas, 

если

 

условное

 

выражение

возвращает

 

ЛОЖЬ

 (0.0), 

то

 

оставшаяся

 

часть

 

блока

 

IF

 

игнорируется

. 

Это

 

значит

, 

что

для

 

управляющих

 

операторов

 

также

 

можно

 

задавать

 

условия

, 

чтобы

 

можно

 

было

написать

 

что

-

то следующее

:

IF [#1 NE #0] THEN G01 X#24 Y#26 F#9 ;

При

 

этом

 

линейное

 

перемещение

 

будет

 

выполняться

 

только

 

в

 

том

 

случае

, 

если

переменной

 

#1

 

было

 

присвоено

 

значение

. 

Ниже

 

приводится

 

еще

 

один пример

:

IF [#1 GE 180] THEN #101=0.0 M99 ;

То

 

есть

, 

если

 

значение

 

переменной

 

#1

  (

адрес

 

A

) 

больше

 

или

 

равно

 180, 

то

переменной

 

#101

 

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

 

нулевое

 

значение

 

и

 

происходит

 

возврат

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

.

Вот

 

пример

 

использования

 

оператора

 

IF

, 

который

 

выполняет

 

переход

, 

если

переменная

 

инициализирована

 

и

 

имеет

 

какое

-

либо

 

значение

. 

В

 

противном

 

случае

обработка

 

продолжается

 

и

 

выдается

 

сигнал

 

об

 

ошибке

. 

Помните

, 

что

 

при

 

выдаче

сигнала

 

об

 

ошибке

 

происходит

 

останов

 

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

.

N1 IF [#9NE#0] GOTO3 (

ПРОВЕРКА

 

ЗНАЧЕНИЯ

 

В

 F) ;

N2 #3000=11(

НЕТ

 

СКОРОСТИ

 

ПОДАЧИ

) ;

N3 (

ПРОДОЛЖЕНИЕ

) ;

Повторение

 / 

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

 

циклов

 (WHILE DO END)

Важной

 

характеристикой

 

любого

 

языка

 

программирования

 

является

 

способность

исполнять

 

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

 

операторов

 

заданное

 

число

 

раз

 

или

 

выполнять

циклы

 

операторов

 

до

 

достижения

 

некоторого

 

условия

. 

Традиционное

программирование

 

с

 

помощью

 G-

кодов

 

позволяет

 

делать

 

это

, 

используя

 

L

-

адрес

.

Подпрограмму

 

можно

 

выполнять

 

любое

 

количество

 

раз

 

при

 

помощи

 

L

-

адреса

.

M98 P2000 L5;

Возможности

 

этого

 

подхода

 

ограничены

, 

поскольку

 

нельзя

 

прервать

 

исполнение

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

 

по

 

условию

. 

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

 

обеспечивают

 

большую

 

гибкость

,

позволяя

 

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

 

циклическую

 

конструкцию

 WHILE-DO-END. 

Например

:

Программирование

 

опций

 

241

WHILE [<

условное

 

выражение

>] DOn;

<

операторы

>;

ENDn;

Эта

 

программа

 

выполняет

 

операторы

 

между

 

DOn

 

и

 

ENDn

, 

пока

 

условное

 

выражение

остается

 

истинным

. 

Скобки

 

в

 

выражении

 

обязательны

. 

Если

 

выражение

 

становится

ложным

, 

то

 

далее

 

исполняется

 

блок

 

после

 

ENDn

. 

Вместо

 

WHILE

 

можно

 

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

краткое

 

написание

 

WH

. 

Часть

 

оператора

 

DOn

-

ENDn

 – 

согласованная

 

пара

. 

Значение

 n

равно

 1-3. 

Это

 

значит

, 

что

 

в

 

подпрограмме

 

может

 

быть

 

не

 

более

 

трех

 

вложенных

циклов

. 

Вложение

 – 

это

 

цикл внутри цикла

.

Несмотря

 

на

 

то

 

что

 

вложенность

 

операторов

 

WHILE

 

возможна

 

только

 

до

 

трех

уровней

, 

фактически

 

ограничений

 

нет

, 

поскольку

 

каждая

 

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

 

может

 

иметь

до

 

трех

 

уровней

 

вложенности

. 

При

 

необходимости

 

получить

 

вложенность

 

более

  3

уровней

 

можно

 

вынести

 

фрагмент

 

с

 

тремя

 

младшими

 

уровнями

 

вложенности

 

в

подпрограмму

 

и

 

таким

 

образом

 

обойти ограничение

.

Если

 

в

 

подпрограмме

 

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

 

два

 

независимых

 

цикла

 

WHILE

, 

они

 

могут

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

 

один

 

и

 

тот

 

же

 

индекс

 

вложенности

. 

Например

:

#3001=0 (

ЖДАТЬ

 500 

МИЛЛИСЕКУНД

);

WH [#3001 LT 500] DO1;
END1 ;
<

Другие

 

операторы

>

#3001=0 (

ЖДАТЬ

 300 

МИЛЛИСЕКУНД

);

WH [#3001 LT 300] DO1;
END1 ;

Можно

 

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

 

GOTO

 

для

 

перехода

 

из

 

фрагмента

, 

ограниченного

 

DO

-

END

, 

но

 

с

помощью

 

GOTO

 

невозможно

 

перейти

 

внутрь

 

цикла

. 

Переход

 

в

 

пределах

 

цикла

,

ограниченного

 

DO

-

END

, 

с

 

помощью

 

GOTO

допускается

.

Бесконечный

 

цикл

 

можно

 

выполнить

, 

если

 

удалить

 

WHILE

 

и

 

выражение

. 

Таким

образом

,

DO1;
<

операторы

>

END1 ;

выполнение

 

продолжается

 

до

 

нажатия

 

клавиши

 

СБРОС

.

ПРЕДОСТЕРЕЖЕНИЕ

:

Избегайте

 

следующей

 

ошибки

:

WH [#1] D01;
END1 ;

В

 

этом

 

примере

 

выдается

 

сигнал

 

об

 

ошибке

, 

указывающий

, 

что

 

Then

 

не

 

обнаружено

;

Then

 

относится

 

к

 

D01

. 

Замените

 

D01

 (

ноль

) 

на

 

DO1

(

буква

 O).

Опция

 

вызова

 

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

 G65 (

группа

 00)

 

242

5.3.6

Опция

 

вызова

 

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

 G65 (

группа

 

00)

Команда

 

G65

 

вызывает

 

подпрограмму

 

и

 

может

 

передавать

 

ей

 

аргументы

.

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

 

следующий

 

формат

:

G65 Pnnnn [Lnnnn] [

аргументы

];

Аргументы

, 

выделенные

 

курсивом

 

в

 

квадратных

 

скобках

, 

являются

необязательными

. 

Для

 

получения

 

дополнительной

 

информации

 

об

 

аргументах

макросов

 

см

. 

раздел

 «

Программирование

».

Команда

 

G65

 

требует

 

адреса

 

Р

, 

соответствующего

 

номеру

 

программы

, 

находящейся

в

 

текущий

 

момент

 

в

 

памяти

 

системы

 

управления

. 

При

 

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

 

адреса

 

L

 

вызов

макроса

 

повторяется

 

заданное

 

количество

 

раз

.

В

 

Примере

 1 

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

 1000 

вызывается

 

один

 

раз

 

без

 

передачи

 

ей

 

условий

.

Вызовы

 

G65

 

похожи

 

на

 

вызовы

 

M98

, 

но

 

не

 

идентичны

 

им

. 

Вызовы

 

G65

 

допускают

вложение

 

до

 9 

уровней

, 

это

 

значит

, 

что

 

программа

 1 

может

 

вызвать

 

программу

 2,

программа

 2 

может

 

вызвать

 

программу

 3, 

а

 

программа

 3 

может

 

вызвать

 

программу

 4.

Пример

 1:

G65 P1000 (

Вызов

 

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

 1000 

как

 

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

) 

;
M30 (

Останов

 

программы

) ;

O1000 (

Макроподпрограмма

) ;

...
M99 (

Возврат

 

из

 

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

) ;

В

 

примере

 2 

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

 9010 

предназначена

 

для

 

сверления

 

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

отверстий

 

по

 

линии

, 

наклон

 

которой

 

определяется

 

аргументами

 X 

и

 Y, 

которые

 

ей

передаются

 

в

 

командной

 

строке

 

G65

. 

Глубина

 

сверления

 Z 

передается

 

как

 

Z

,

скорость

 

подачи

 

передается

 

как

 

F

, 

а

 

количество

 

отверстий

, 

которые

 

необходимо

просверлить

, 

передается

 

как

 

T

. 

Сверление

 

линии

 

отверстий

 

выполняется

 

начиная

 

с

текущего

 

положения

 

инструмента

 

на

 

момент

 

вызова

 

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

.

Пример

 2:

G00 G90 X1.0 Y1.0 Z.05 S1000 M03 (

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

 

инструмента

) ;

G65 P9010 X.5 Y.25 Z.05 F10. T10 (

Вызов

 9010) ;

G28;
M30;
O9010 (

Диагональная

 

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

 

отверстий

) ;

F#9 (F=

Скорость

 

подачи

) ;

WHILE [#20 GT 0] DO1 (

Повторить

 T 

раз

) ;

G91 G81 Z#26 (

Сверление

 

на

 

глубину

 Z) ;

Программирование

 

опций

 

243

#20=#20-1 (

Обратный

 

отсчет

) ;

IF [#20 EQ 0] GOTO5 (

Все

 

отверстия

 

выполнены

) ;

G00 X#24 Y#25 (

Перемещение

 

по

 

наклону

) ;

N5 END1;
M99 (

Возврат

 

в

 

вызывающую

 

программу

) ;

Псевдонимы

Коды

 

псевдонима

 – 

это

 

заданные

 

пользователем

 

коды

 G 

и

 M, 

которые

 

обращаются

к

 

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

. 

Есть

 10 

кодов

 

псевдонима

 G 

и

 10 

кодов

 

псевдонима

 M, 

доступных

пользователям

.

Псевдонимы

 – 

это

 

способ

 

назначить

 G-

код

 

или

 M-

код

 

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

 

G65

P#####

. 

Например

, 

в

 

примере

 2 

было

 

бы

 

проще записать

:

G06 X.5 Y.25 Z.05 F10. T10;

При

 

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

 

псевдонимов

 

переменные

 

можно

 

передавать

 

с

 

кодом

 G,

переменную

 

невозможно

 

передавать

 

с

 

кодом

M.

Здесь

 

был

 

заменен

 

неиспользуемый

 G-

код

, 

G06

 

вместо

 

G65 P9010

. 

Чтобы

предыдущий

 

блок

 

работал

, 

параметр

, 

связанный

 

с

 

подпрограммой

 

9010

,

необходимо

 

установить

 

на

 

значение

 06 (

Параметр

 

91

).

ПРИМЕЧАНИЕ

:

G00

, 

G65

, 

G66

 

и

 

G67

 

невозможно

 

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

 

с

 

псевдонимами

.

Все

 

остальные

 

коды

 

от

 1 

до

 255 

можно

 

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

с псевдонимами

.

Номера

 

программ

 

от

 

9010

 

до

 

9019

 

зарезервированы

 

для

 

псевдонимов

 G-

кодов

. 

В

следующей

 

таблице

 

перечислены

 

параметры

 Haas, 

которые

 

зарезервированы

 

для

псевдонимов

 

имен макроподпрограмм

.

F5.7:

Псевдонимы

 G- 

и

 M-

кодов

81

82

83

84

85

86

87

88

89

90

9000

9001

9002

9003

9004

9005

9006

9007

9008

9009

Haas Parameter O Code

Haas Parameter

91

92

93

94

95

96

97

98

99

100

9010
9012

9013

9014

9015

9016

9017

9018

9019

O Code

9011

Связь

 

с

 

внешними

 

устройствами

 - DPRNT[ ]

 

244

Установка

 

параметра

 

совмещения

 

имени

 

в

 

значение

 0 (

ноль

) 

не

 

разрешает

присвоение

 

имени

 

соответствующей

 

подпрограмме

. 

Если

 

для

 

параметра

псевдонима

 

задан

 G-

код

, 

а

 

соответствующая

 

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

 

не

 

находится

 

в

 

памяти

,

будет

 

выдан

 

сигнал

 

об

 

ошибке

. 

При

 

вызове

 

макроса

 

G65

, 

кода

 

М

 

с

 

псевдонимом

 

или

кода

 G 

с

 

псевдонимом

 

система

 

управления

 

сначала

 

ищет

 

подпрограмму

 

в

 

памяти

.

Если

 

она

 

не

 

обнаружена

 

в

 

памяти

, 

система

 

управления

 

далее

 

ищет

 

подпрограмму

на

 

активном

 

носителе

 (

USB

, 

жестком

 

диске

). 

Если

 

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

 

не

 

обнаружена

,

выдается

 

сигнал

 

об ошибке

.

При

 

вызове

 

макроса

 

G65

, 

кода

 

М

 

с

 

псевдонимом

 

или

 

кода

 G 

с

 

псевдонимом

 

система

управления

 

ищет

 

подпрограмму

 

в

 

памяти

, 

а

 

затем

, 

если

 

подпрограмму

 

не

 

удается

обнаружить

, – 

на

 

любом

 

другом

 

активном

 

носителе

. 

Активный

 

носитель

 

может

 

быть

памятью

, USB-

носителем

 

или

 

жестким

 

диском

. 

Если

 

система

 

управления

 

не

 

находит

подпрограмму

 

в

 

памяти

 

или

 

на

 

активном

 

носителе

, 

выдается

 

сигнал

 

об ошибке

.

5.3.7

Связь

 

с

 

внешними

 

устройствами

 - DPRNT[ ]

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

 

обеспечивают

 

дополнительные

 

возможности

 

для

 

связи

 

с

периферийными

 

устройствами

. 

С

 

помощью

 

устройств

, 

которые

 

обеспечивает

пользователь

, 

можно

 

выполнять

 

оцифровку

 

деталей

, 

создавать

 

отчеты

 

об

исполнении

 

программы

 

или

 

синхронизировать

 

системы

 

управления

. 

Команды

,

предусмотренные

 

для

 

этого

, – 

POPEN

, 

DPRNT[ ]

 

и

PCLOS

.

Команды

 

подготовки

 

обмена

 

данными

Станку

 Haas 

не

 

требуются

 

операторы

 

POPEN

 

и

 

PCLOS

. 

Они

 

включены

 

для

 

того

, 

чтобы

программы

, 

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

 

для

 

других

 

блоков

 

управления

 

могли

 

передаваться

 

в

систему

 

управления

Haas.

Форматный

 

вывод

 

данных

Оператор

 

DPRNT

 

позволяет

 

программисту

 

отправлять

 

форматированный

 

текст

 

в

последовательный

 

порт

. 

На

 

последовательный

 

порт

 

можно

 

направить

 

любой

 

текст

 

и

любую

 

переменную

. 

Форма

 

оператора

 

DPRNT

 

указана ниже

:

DPRNT [<

текст

> <#nnnn[wf]>... ] ;

Программирование

 

опций

 

245

Команда

 

DPRNT

 

должна

 

быть

 

единственной

 

командой

 

в

 

блоке

. 

В

 

предыдущем

примере

 

<

текст

>

 - 

это

 

любые

 

символы

 

от

 A 

до

 Z 

или

 

буквы

 (+,-,/,* 

и

 

пробел

). 

При

вводе

 

звездочки

 

она

 

преобразуется

 

в

 

пробел

. 

Строка

 

<#nnnn[wf]>

 – 

это

переменная

, 

после

 

которой

 

указан

 

формат

. 

Номером

 

переменной

 

может

 

быть

 

любая

макропеременная

. 

Указание

 

формата

 

[wf]

 

является

 

обязательным

 

и

 

состоит

 

из

двух

 

цифр

 

в

 

квадратных

 

скобках

. 

Помните

, 

что

 

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

 - 

это

действительные

 

числа

 

с

 

целой

 

и

 

дробной

 

частями

. 

Первая

 

цифра

 

в

 

обозначении

формата

 

указывает

 

общее

 

число

 

знаков

, 

зарезервированных

 

на

 

выходе

 

для

 

целой

части

. 

Вторая

 

цифра

 

указывает

 

на

 

общее

 

число

 

знаков

, 

зарезервированных

 

для

дробной

 

части

. 

Общее

 

количество

 

знаков

, 

зарезервированных

 

для

 

вывода

 

числа

, 

не

может

 

быть

 

равно

 

нулю

 

или

 

превышать

 

восемь

. 

Таким

 

образом

, 

следующие

форматы

 

являются

 

недействительными

: [00] [54] [45] [36] /* 

недопустимые

форматы

*/

Между

 

целой

 

и

 

дробной

 

частью

 

числа

 

печатается

 

десятичная

 

точка

. 

Дробная

 

часть

округляется

 

до

 

наименьшего

 

значимого

 

разряда

. 

Если

 

для

 

дробной

 

части

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

 0 

знаков

, 

десятичная

 

точка

 

не

 

печатается

. 

При

 

наличии

 

дробной

части

 

нулевые

 

младшие

 

разряды

 

выводятся

 

на

 

печать

. 

Для

 

целой

 

части

резервируется

 

как

 

минимум

 

один

 

разряд

, 

даже

 

если

 

она

 

равна

 

нулю

. 

Если

 

целая

часть

 

числа

 

имеет

 

меньше

 

знаков

, 

чем

 

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

, 

то

 

вместо

 

старших

разрядов

 

выводятся

 

пробелы

. 

Если

 

значение

 

целой

 

части

 

имеет

 

больше

 

знаков

, 

чем

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

, 

то

 

поле

 

печати

 

расширяется

 

так

, 

чтобы

 

вместить

 

эти цифры

.

После

 

каждого

 

блока

 DPRNT 

отправляется

 

команда

 

возврата

 

каретки

.

Примеры

 DPRNT[ ]

Код

Вывод

N1 #1= 1.5436 ;

N2 
DPRNT[X#1[44]*Z#1[03]*T#1[40]
] ;

X1.5436 Z 1.544 T 1

N3 
DPRNT[***MEASURED*INSIDE*DIAM
ETER***] ;

ИЗМЕРЕННЫЙ

 

ВНУТРЕННИЙ

 

ДИАМЕТР

N4 DPRNT[] ;

(

без

 

текста

, 

только

 

возврат

 

каретки

)

N5 #1=123.456789 ;

N6 DPRNT[X-#1[35]] ;

X-123.45679 ;

Связь

 

с

 

внешними

 

устройствами

 - DPRNT[ ]

 

246

Исполнение

Операторы

 

DPRNT

 

выполняются

 

во

 

время

 

интерпретации

 

блока

. 

Это

 

значит

, 

что

программист

 

должен

 

внимательно

 

следить

 

за

 

тем

, 

где

 

в

 

программе

 

появляются

операторы

 

DPRNT

, 

особенно

 

с

 

целью распечатки

.

Для

 

ограничения

 

опережающего

 

просмотра

 

удобно

 

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

 

G103

. 

Если

 

вы

хотите

 

ограничить

 

упреждающий

 

просмотр

 

одним

 

блоком

, 

поставьте

 

в

 

начале

программы

 

следующую

 

команду

: (

Фактически

 

это

 

приводит

 

к

 

опережающему

просмотру

 

двух блоков

).

G103 P1;

Для

 

отмены

 

ограничения

 

предел

 

опережающего

 

просмотра

 

измените

 

команду

 

на

G103 P0

. 

G103

 

невозможно

 

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

 

при

 

активной

 

коррекции

 

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

.

Редактирование

Неправильная

 

структура

 

или

 

расстановка

 

операторов

 

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

 

приводит

 

к

сигналу

 

об

 

ошибке

. 

При

 

редактировании

 

выражений

 

будьте

 

внимательны

,

соблюдайте

 

парность скобок

.

Функцию

 

DPRNT[ ]

 

можно

 

редактировать

 

так

 

же

, 

как

 

комментарий

. 

Ее

 

можно

удалить

, 

перенести

 

как

 

единое

 

целое

 

или

 

отредактировать

 

отдельные

 

элементы

 

в

скобках

. 

Ссылки

 

на

 

переменные

 

и

 

описания

 

формата

 

необходимо

 

изменять

 

как

единое

 

целое

. 

Если

 

необходимо

 

изменить

 [24] 

на

 [44], 

установите

 

курсор

 

так

, 

чтобы

[24] 

было

 

выделено

, 

введите

 [44] 

и

 

нажмите

 

[ENTER]

. 

Помните

, 

что

 

можно

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

 

орган

 

управления

 

[HANDLE JOG]

 

для

 

перемещения

 

по

 

длинным

выражениям

DPRNT[ ]

.

Адреса

, 

содержащие

 

выражения

, 

могут

 

иметь

 

несколько

 

запутанный

 

вид

. 

В

 

этом

случае

 

символьный

 

адрес

 

является

 

самостоятельной

 

единицей

. 

Например

, 

в

следующем

 

блоке

 

содержится

 

адресное

 

выражение

 

в

Х

:

G1 G90 X [COS [90]] Y3.0 (

ПРАВИЛЬНО

) ;

Здесь

 

Х

 

и

 

скобки

 

являются

 

самостоятельным

 

элементом

 

и

 

могут

 

редактироваться

отдельно

. 

Возможно

 

путем

 

редактирования

 

удалить

 

выражение

 

целиком

 

и

 

заменить

его

 

константой

 

с

 

плавающей точкой

.

G1 G90 X 0 Y3.0 (

НЕПРАВИЛЬНО

) ;

Выполнение

 

приведенного

 

выше

 

блока

 

вызовет

 

сигнал

 

об

 

ошибке

. 

Правильный

 

вид

блока

 

должен

 

быть следующим

:

G1 G90 X0 Y3.0 (

ПРАВИЛЬНО

) ;

Программирование

 

опций

 

247

ПРИМЕЧАНИЕ

:

Между

 X 

и

 

нулем

 (0) 

нет

 

пробела

. 

ПОМНИТЕ

, 

что

 

если

 

вы

видите

 

отдельный

 

текстовый

 

символ

, – 

это

адресное выражение

.

5.3.8

Функции

 

макросов

 Fanuc, 

не

 

включенные

 

в

 

ЧПУ

 

Haas

В

 

этом

 

разделе

 

приведены

 

функции

 

макросов

 FANUC, 

отсутствующие

 

в

 

блоке

управления

Haas.

Замена

 

псевдонима

 M 

G65 Pnnnn

 

на

 

Mnn PROGS 9020-9029

.

Имена

 

для

 

переменных

 

для

 

отображения

:

G66

Модальный

 

вызов

 

в

 

каждом

 

блоке

 

перемещения

G66.1

Модальный

 

вызов

 

в

 

каждом

 

блоке

 

перемещения

G67

Модальная

 

отмена

M98

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

 

псевдонима

, T-

код

 

программа

 9000, 

переменная

 #149, 

бит

 

включения

M98

Совмещение

 

имени

, 

В

-

код

 

программа

 9028, 

переменная

 #146, 

бит

 

разрешения

ПРОПУСК

/N

N=1..9

#3007

Флажок

 

включения

 

зеркального

 

отражения

 

по

 

каждой

 

оси

#4201

-

#4320

Модальные

 

данные

 

текущего

 

блока

#5101

-

#5106

Текущее

 

отклонение

 

сервопривода

ATAN [ ]/[ ]

Арктангенс

, 

версия

 FANUC

BIN [ ]

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

 

из

 BCD (

двоично

-

десятичного

 

кода

) 

в

 BIN (

двоичный

)

BCD [ ]

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

 

из

 BIN (

двоичного

 

кода

) 

в

 BCD 

(

двоично

-

десятичный

)

Функции

 

макросов

 Fanuc, 

не

 

включенные

 

в

 

ЧПУ

 Haas

 

248

GOTO-nnnn

Поиск

 

блока

 

для

 

перехода

 

в

 

отрицательном

 

направлении

, 

т

.

е

. 

в

 

обратную

 

сторону

программы

, 

не

 

нужен

, 

если

 

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

 

уникальные

 

адресные

N

-

коды

.

Поиск

 

блока

 

осуществляется

 

начиная

 

с

 

текущего

 

интерпретируемого

 

блока

. 

При

достижении

 

конца

 

программы

 

поиск

 

продолжается

 

с

 

начала

 

программы

 

до

обнаружения

 

текущего блока

.

5.4

Программируемая

 

СОЖ

 (P-Cool)

Программируемая

 

СОЖ

 (P-Cool) 

позволяет

 

направить

 

СОЖ

 

на

 

инструмент

 

из

 

одного

из

 34 

положений

. 

Вообще

, 

при

 

программировании

 

положений

 

программируемой

СОЖ

, 

сначала

 

необходимо

 

найти

 

правильное

 

положение

 

сопла

 

подачи

 

СОЖ

 

для

каждого

 

инструмента

. 

Затем

 

можно

 

задать

 

это

 

положение

 

различными

 

способами

.

Краткий

 

обзор

 

команд

 

программируемой

 

СОЖ

•

M08 / M09

 - 

включение

 

СОЖ

 / 

выключение

 

СОЖ

 (

см

. 

страницу

359

) 

•

M34 / M35

 - 

Приращение

 

СОЖ

 / 

уменьшение

 

СОЖ

 (

см

. 

страницу

363

)

•

[

CLNT UP]

 / 

[CLNT DOWN]

 - 

Двигать

 

сопло

 

программируемой

 

СОЖ

 

вверх

 

и

 

вниз

FUP [ ]

Отбрасывание

 

младших

 

разрядов

LN [ ]

Натуральный

 

логарифм

EXP [ ]

Возведение

 

в

 

степень

 

с

 

основанием

 

Е

ADP [ ]

Перемасштабирование

 

переменной

 

до

 

целого

 

числа

BPRNT [ ]

01

34

Программирование

 

опций

 

249

5.4.1

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

 

программируемой

 

СОЖ

Используйте

 

эту

 

процедуру

, 

чтобы

 

определить

 

правильное

 

положение

 

трубки

подачи

 

СОЖ

 

для

 

каждого

 

инструмента

.

ПРЕДОСТЕРЕЖЕНИЕ

:

Не

 

двигайте

 

трубку

 

программируемой

 

СОЖ

 

рукой

, 

это

приведет

 

к

 

повреждению

 

двигателя

. 

Используйте

 

только

команды

 

управления

.

1.

Если

 

у

 

вас

 

установлено

 

управление

 

с

 

шаровым

 

клапаном

 

для

 

переключения

 

линиями

 

обычной

 

СОЖ

 

или

 

программируемой

 

СОЖ

, 

убедитесь

, 

что

 

клапан

 

установлен

 

в

 

положение

 

программируемой

 

СОЖ

.

2.

Нажимайте

 

[OFFSET]

 

пока

 

на

 

дисплее

 

не

 

появится

 

таблица

 

КОРРЕКЦИИ

 

НА

 

ИНСТРУМЕНТ

. 

3.

Подайте

 

команду

 

на

 

установку

 

первого

 

инструмента

 

в

 

шпиндель

. 

Пока

 

ТАБЛИЦА

 

КОРРЕКЦИИ

 

активна

, 

можно

 

нажать

 

[ATC FWD]

 

или

 

[ATC REV]

 

для

 

смены

 

инструмента

, 

или

 

можно

 

подать

 

команду

 

M06 TXX

 

в

 

режиме

 

РВД

, 

где

 XX 

– 

это

 

необходимый

 

номер

 

инструмента

.

4.

Нажмите

 

[COOLANT]

 

для

 

запуска

 

подачи

 

СОЖ

. 

5.

Нажимайте

 

[CLNT UP]

 

или

 

[CLNT DOWN]

 

пока

 

трубка

 

подачи

 

СОЖ

 

не

 

будет

 

подавать

 

СОЖ

 

в

 

необходимую

 

точку

.

6.

Нажмите

 

[COOLANT]

 

для

 

остановки

 

подачи

 

СОЖ

. 

7.

Запишите

 

значение

 

рядом

 

с

 

индикацией

 

ПЛЖ СОЖ

 

внизу

 

таблицы

 

КОРРЕКЦИИ НА

 

ИНСТРУМЕНТ

. 

Есть

 

несколько

 

способов

, 

которыми

 

можно

 

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

 

эту

 

информацию

 

о

 

положении

. 

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

 

программируемой

 

СОЖ

 

250

F5.8:

Экран

 

положения

 

трубки

 

подачи

 

СОЖ

Положение

 

трубки

 

подачи

 

СОЖ

 

в

 

таблицах

 

коррекции

1.

Выделите

 

столбец

 «

ПОЛОЖЕНИЕ

 

ТРУБКИ

 

ПОДАЧИ

 

СОЖ

» 

для

 

необходимого

 

инструмента

 

в

 

таблице КОРРЕКЦИИ

 

НА

 

ИНСТРУМЕНТ

.

2.

Введите

 

номер

 

положения

 

трубки

 

подачи

 

СОЖ

 

для

 

инструмента

.

3.

Нажмите

 

[F1]

 

для

 

ввода

 

значения

 

в

 

столбец

 

ПОЛОЖЕНИЕ

 

ТРУБКИ

 

ПОДАЧИ

 

СОЖ

.

4.

Повторите

 

эти

 

пункты

 

для

 

всех

 

инструментов

. 

Трубка

 

программируемой

 

СОЖ

 

изменяет

 

положение

 

согласно

 

данным

 

в

 

столбце

ПОЛОЖЕНИЕ

 

ТРУБКИ

 

ПОДАЧИ

 

СОЖ

, 

когда

 

программа

 

вызывает

 

инструмент

 

и

включает

 

подачу

 

СОЖ

 (M08). 

Системные

 

переменные

 

положения

 

трубки

 

подачи

 

СОЖ

Если

 

в

 

станке

 

включены

 

макросы

, 

можно

 

задать

 

положения

 

трубки

 

подачи

 

СОЖ

 

для

инструментов

 

с

 1 

по

 200, 

с

 

помощью

 

системных

 

переменных

 

с

 3401 

по

 3600.

Например

, #3401=15 

задает

 

положение

 

трубки

 

СОЖ

 

для

 

инструмента

1 

в

 

положении

15. 

 

 

 

 

 

 

 

содержание      ..     14      15      16      17     ..