Эффективный вызов пользовательских макросов через модальные команды G65
Если вы программировали на пользовательских макросах, вероятно знаете, что один способ вызова — команда 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 I-[#18-#20/2] X#32 R[[##18-#20/2]/2] G00 Z[#26+0.1] M99
G66.1
Как G66, G66.1 задаёт номер макроса и устанавливает локальные переменные. Также нужен 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) (Изменение значений для аргументов, включённых в команду вызова) IF [#24 NE #0] THEN #100 = #24 IF [#25 NE #0] THEN #101 = #25 IF [#26 NE #0] THEN #102 = #26 IF [#7 NE #0] THEN #103 = #7 IF [#18 NE #0] THEN #104 = #18 IF [#20 NE #0] THEN #105 = #20 IF [#9 NE #0] THEN #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 I-[#104-#105/2] X#100 R[[#104-#105/2]/2] G00 Z[#102+0.1] M99
Какой лучше: G66 или G66.1?
Хотя требует больше программирования, G66.1 даёт больше гибкости. Программист может менять любой аргумент в любой команде между G66.1 и G67. В примере — X/Y позиция кармана, радиус, глубина, Z-поверхность, подача. В этом смысле макрос, вызываемый G66.1, ведёт себя почти как любой цикл заготовки отверстий, вроде G81.
С другой стороны, если уверены, что после начальной установки аргументов изменений не будет, G66 может быть более подходящим, так как гораздо проще в использовании.
Промышленное оборудование
- Пользовательские исключения в Python: практическое руководство
- Лидируй через слушание: как «Расскажи подробнее» строит доверие и дает инсайты
- Основные команды MATLAB для эффективных вычислений
- Точная фрезеровка на ЧПУ для 맞춤ных деталей: быстро, точно, индивидуально
- Новая серия токарных станков Alpha X с собственными системами управления для высшей производительности
- Топ-5 преимуществ кастомного металлообработки
- Точность и прибыль с индивидуальными решениями механической обработки
- Индивидуальная механическая обработка: когда и зачем она нужна
- Усиливайте бренд с персонализированными лазерно-гравированными новогодними подарками
- MarquipWardUnited приобрел кастомный тяжелый токарный станок Summit