Вызов пользовательских макросов с помощью модальных команд
Если вы программировали с помощью пользовательского макроса, вы, вероятно, знаете, что один из способов вызвать программу пользовательского макроса — это использовать команду G65. Пользователи обычно вводят эту команду в основную программу, указывая номер программы для пользовательского макроса (со словом P) и ряд аргументов буквенного адреса (переменных), которые необходимо передать пользовательскому макросу.
Рассмотрим следующую команду для вызова пользовательского макроса обработки круглых карманов:
- N050 G65 P1000 X5.0 Y5.0 Z0 D0.5 R0.75 F5.0
X и Y определяют положение центра кармана. Z указывает поверхность, на которой станок будет делать карман. D — глубина, R — радиус кармана. F определяет скорость подачи обработки.
G65 не является модальным. Для обработки другого круглого кармана в другом месте пользователь должен ввести еще одну полную команду G65 (конечно, изменив соответствующие аргументы). Однако ЧПУ FANUC имеют два G-кода для модального вызова пользовательского макроса:G66 и G66.1. После установки любого из них программист должен использовать G67 для их отмены.
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]
- M99
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, завершающей пользовательский макрос, пользователи должны сохранять эти значения в общих переменных, которые не теряются до отключения питания.
Рассмотрим эту программу Custom Macro с использованием 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]
- M99
Какая пользовательская макрокоманда лучше? G66 или G66.1?
Хотя для этого требуется больше работы по программированию, G66.1 обеспечивает большую гибкость, чем G66. А именно, программист может изменить любой аргумент в любой из команд между G66.1 и командой G67. В нашем примере это означает положение кармана по осям X/Y, радиус, глубину, положение Z-поверхности или скорость подачи. В этом смысле пользовательский макрос, вызываемый с помощью G66.1, ведет себя почти так же, как любой постоянный цикл обработки отверстий, такой как G81.
С другой стороны, если вы уверены, что после указания начального набора аргументов ничего менять не нужно, использование G66 может больше подойти для вашего приложения, поскольку G66 намного проще в использовании.
Промышленное оборудование
- Пользовательские исключения Python
- Проведите через прослушивание
- МАТЛАБ — Команды
- Обработка пользовательских деталей с ЧПУ
- Серия токарных станков с пользовательскими элементами управления
- 5 ключевых преимуществ изготовления металлоконструкций на заказ
- Причины, по которым вам нужна нестандартная обработка
- Понимание пользовательской обработки и когда она вам нужна
- Подарки с лазерной гравировкой на заказ
- MarquipWardUnited закупает изготовленный на заказ токарный станок для тяжелых условий эксплуатации