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 

задает

 

положение

 

трубки

 

СОЖ

 

для

 

инструмента

в

 

положении

15. 

 

 

 

 

 

 

 

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