Понедельник, 07 Июнь 2021 03:44

Пример пользовательского макроса для ЧПУ

Автор 
Оцените материал
(2 голосов)

Если вы программировали с помощью пользовательского макроса, вы, вероятно, знаете, что один из способов вызвать пользовательскую макропрограмму - это использовать команду G65. Наладчики обычно вводят эту команду в основную программу, указывая номер программы для пользовательского макроса (с P-словом) и ряд аргументов буквенного адреса (переменных) для передачи в Пользовательский макрос.

Пример пользовательского макроса для ЧПУ

 

 

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

N050 G65 P1000 X5.0 Y5.0 Z0 D0.5 R0.75 F5.0

X и Y указывают расположение центра кармана. Z указывает на поверхность, на которой машина сделает карман. D - глубина, а R - радиус кармана. F определяет скорость подачи при обработке.

 

G65 не является модальным. Чтобы обработать еще один круглый карман в другом месте, наладчик должен предоставить еще одну полную команду G65 (конечно, изменив связанные аргументы). Однако у CNC FANUC есть два G-кода для модального вызова пользовательского макроса: G66 и G66.1. После установки любого из них программист должен использовать G67 для их отмены.

 

CNC

G66

G66 не вызывает пользовательский макрос сам по себе; он назначит только локальные переменные, соответствующие указанным аргументам адреса письма. Рассмотрим эти команды:

 

N050 G66 P1000 Z0 D0.5 R0.75 T0.5 F5.0

N055 G00 X5.0 Y5.0

N060 X10.0

N065 Y10.0

N070 X5.0

N075 G67

 

Строка N050 устанавливает локальную переменную #26 в значение Z, #7 в значение D, #18 в R, #20 в T и #9 в F. Но, опять же, эта строка не вызывает пользовательский макрос O1000.

 

В следующей команде (N055), которая должна быть командой движения (обычно G00 или G01), ЧПУ переместится в заданное положение, а затем вызовет пользовательский макрос O1000. Локальные переменные, назначенные в команде G66, будут доступны для использования в пользовательском макросе, но их невозможно обновить после выполнения команды G66. ЧПУ будет продолжать двигаться в нужное положение и вызывать пользовательский макрос в последующих командах движения, пока не достигнет команды G67 (N075).

 

Вот пример пользовательского макроса круглого кармана при использовании G66:

 

O1001 (Пользовательский макрос, вызываемый G66)

#32=#5001 (Достичь текущего абсолютного положения X)

Z[#26+0.1] (Переход в положение приближения)

G01 Z[#26-#7] F[#9/2] (Погружение в карман)

G02 X[#32+#18-#20/2] R[[#18-#20/2]/2] F#9

Я-[#18-#20/2]

X#32 R[[##18-#20/2]/2]

G00 Z[#26+0.1]

М99

G66.1

 

Как и G66, команда G66.1 укажет номер пользовательского макроса и установит локальные переменные в значение аргументов адреса письма. Также, как и G66, в конечном итоге должна быть указана команда G67, чтобы отменить модальный вызов. Но в отличие от G66, G66.1 вызовет пользовательский макрос. Рассмотрим эти команды:

 

N050 G66.1 P1001 X5.0 Y5.0 Z0 D0.5 R0.75 T0.5 F5.0

N055 X10.0

N060 Y10.0

N065 X5.0

N070 G67

 

Теперь линия N050 будет обрабатывать первый карман. В каждой последующей команде, которая не является командой движения, ЧПУ сбрасывает локальные переменные и снова вызывает пользовательский макрос. В строке N055 значение локальной переменной #24 (X) становится 10.0. Предполагая, что программист правильно написал пользовательский макрос, команда движения в пользовательском макро переместит инструмент в это положение до того, как машина начнет создавать карман.

 

Преимущество G66.1 перед G66 заключается в том, что любой из аргументов адреса письма может изменяться в любое время, когда пользователь вызывает пользовательский макрос. Например, если глубина кармана изменяется для карманных машин N060, программист может включить адрес буквы D в строку N060.

 

Создание пользовательских макросов с использованием G66.1 более сложно, чем G66. Поскольку значения всех локальных переменных возвращаются к вакантным по команде M99, завершающей пользовательский макрос, пользователи должны хранить эти значения в общих переменных, которые не теряются до отключения питания.

 

Рассмотрим эту пользовательскую макропрограмму с использованием G66.1:

 

O1001 (Пользовательский макрос, вызываемый G66.1)

(Измените значения аргументов, включенных в вызывающую команду)

ЕСЛИ [#24 NE #0], ТО #100 = #24

ЕСЛИ [#25 NE #0], ТО #101 = #25

ЕСЛИ [#26 NE #0], ТО #102 = #26

ЕСЛИ [#7 NE #0], ТО #103 = #7

ЕСЛИ [#18 NE #0], ТО #104 = #18

ЕСЛИ [#20 NE #0], ТО #105 = #20

ЕСЛИ [#9 NE #0], ТО #106 = #9

G00 X#100 Y#101 (Переместить в центр кармана)

Z[#102+0.1] (Переход в положение приближения)

G01 Z[#102-#103] F[#106/2] (Погружение в карман)

G02 X[#100+#104-#105/2] R[[#104-#105/2]/2] F#106

Я-[#104-#105/2]

X#100 R[[#104-#105/2]/2]

G00 Z[#102+0.1]

М99

 

Что Лучше?

Хотя такие макросы для ЧПУ требуют больше работы по программированию, G66.1 обеспечивает большую гибкость, чем G66. А именно, наладчик может изменить любой аргумент в любой из команд между командой G66.1 и командой G67. В нашем примере это означает положение кармана X/Y, радиус, глубину, расположение поверхности Z или скорость подачи. В этом смысле пользовательский макрос, вызываемый с помощью G66.1, ведет себя почти точно так же, как любой цикл обработки отверстий, например G81.

 

С другой стороны, если вы уверены, что после указания начального набора аргументов не потребуется ничего менять, использование G66 может быть более подходящим для вашего приложения, поскольку G66 намного проще в использовании.

Дополнительная информация

  • Заказчик: Организация
  • Статус: Нет исполнителя
  • Срок сдачи проекта после оплаты аванса: 01.10.2020
  • ЦЕЛЬ ПРОЕКТА: Рассказать подробней про тему проекта
Прочитано 1499 раз Последнее изменение Понедельник, 07 Июнь 2021 04:06
Авторизуйтесь, чтобы получить возможность оставлять комментарии