УП: Технологическое программирование
1. Вступление
1. Структура управляющей программы
2. Наименование осей и передача их координат
3. Параметры команд
2. Описание G-кодов
1. G00: Позиционирование
2. G01: Линейная интерполяция
3. G02/03: Круговая интерполяция
4. G04: Задержка по времени
5. G10: Корректировка данных
6. G17/G18/G19: Выбор декартовой плоскости
7. G28/28.1/G30: Возврат в основное положение
8. G29/G29.1: Возврат из основной позиции
9. G30.1…G30.9: Переход в референтную позицию
10. G31: Команда замера
11. G36: Включение карты высот
12. G36.1: Инициализация карты высот
13. G36.2: Установка высоты смещения точки карты высот
14. G36.3: Цикл замера карты высот
15. G36.9: Выключение карты высот
16. G40/G41/G42, D: Коррекция на диаметр инструмента
17. G43/G49, H: Команды коррекции на длину инструмена
18. G52/G52.9: Смещение системы координат
19. G53: Перемещение в машинные координаты
20. G54…G59: Системы координат заготовки
21. G61/G64: Точная/Черновая обработка
22. G68/G68.9: Поворот системы координат в плоскости
23. G69/G69.2/G69.9: Режим TCP
24. G83: Цикл сверления
25. G85: Цикл нарезания резьбы фрезой
26. G90: Режим абсолютных координат
27. G91: Режим относительных координат
28. G90.1: Режим абсолютных координат для параметров I, J, K
29. G91.1: Режим относительных координат для параметров I, J, K
30. G92/G92.9: Задание произвольной системы координат
3. "T": Команда объявления нового инструмента
3. "S": Команда установки скорости шпинделя
4. "K": Работа в разных каналах
5. Описание M-команд
1. M0: Безусловный останов УП
2. M1: Условный останов УП
3. M3/M4/M5/M5.1: Команды управления шпинделем
4. M6/M6.1/M6.2/M6.3/M6.4/M6.5/M6.9: Управление инструментом
5. M7/M8/M9: Команды управления охлаждением
6. M30: Окончание УП
7. M68.X: Управление Патроном/Тисками и ваукумным столом
6. Макропрограммирование
1. Переменные
2. Область видимости переменных
3. Операторы
4. Арифметические функции
5. Получение координат по осям "#WORK_X, #MACH_X..."
6. Получение координат измерения по осям по команде G31 "#PROBE_X, #PROBEMACH_X, #PROBEREAL_X, #PROBEMACHREAL_X"
7. Номер канала "#CHANNEL"
8. Текущая скорость подачи в канале "#FEED"
9. Текущая скорость шпинделя в канале "#SPEED"
10. Текущая система координат в канале "#G54"
11. Получение координаты референсной точки "GetReferencePoint()"
12. Управление Входами/Выходами "GetInput()/SetOutput()"
13. Переменные инструмента
17. G-флаги модальных групп
18. Оператор "PRINT"
19. Оператор безусловного перехода "GOTO"
20. Вызов подпрограммы "CALL" / "RETURN"
21. Условные оператор "IF" / "ELSEIF" / "ELSE" / "ENDIF"
22. Оператор цикла "WHILE" / "DONE"
1. Вступление
Данная документация предназначена для операторов станков и для наладчиков ЧПУ и УП.
В инструкции приводится информация по программированию управляющих программ (УП), по которым будет происходить обработка детали.
Также приводится информация по программированию макросов УП.
Применяемые сокращения/пояснения:
• {xxxx} - В фигурных скобках указывается опциональный параметр/значение/Команда
1.2 Структура управляющей программы:
Каждая УП состоит из строк (далее)кадров
Кадр УП состоит из:
• {Номера кадра} = Формат: Nxxxxx, где "xxxx" число - номер кадра
• Буквы и номера команды
Для команды может быть переданы также:
• Буква оси станка и за ней число< - координата, куда должна переместится ось
• Буква параметра и за ней число< - значение параметра
Пример:
N568 G02 X20 Y10 Z50 R30
Номер кадра рекомендуется указывать только в тех случаях, когда на кадр УП должен быть совершен переход из другой части УП
В остальных случаях рекомендуем не указывать номер кадра вообще
1.2 Наименование осей и передача их координат
Записи формата X__, Y__, Z__ и т. д. обозначают указание названий осей и аргументов и их значений.
Например, X — название оси G-кода.
В вместо символа "_" надо подставлять численные значения координаты, куда должна переместится ОСЬ станка
Пример:
G01 X20.000 Y 10.000 Z 50.000
Наименование осей первого канала доступные для интерполирования:
• X - Линейная ось, обязательная
• Y - Линейная ось, обязательная
• Z - Линейная ось, обязательная
• A - Ось вращения вокруг оси X, необязательная
• B - Ось вращения вокруг оси Y, необязательная
• C - Ось вращения вокруг оси Z, необязательная
Наименование осей второго канала доступные для интерполирования:
• U - Линейная ось, обязательная
• V - Линейная ось, обязательная
• W - Линейная ось, обязательная
• Q - Ось вращения вокруг оси U, необязательная
• E - Ось вращения вокруг оси V, необязательная
• L - Ось вращения вокруг оси W, необязательная
Если в настройках включена настройка "15. Транслировать оси XYZ..в UVW.. во 2 канале" то во втором канале можно применять такие-же названия осей - как и в первом канале.
Это облегчает настройку пост-процессора для CAM системы.
И позволяет в некоторых случаях быстро менять канал обработки в УП.
При указании координат осей допускается указание перед координатами символов "Δ/d" b "¤"
Пример:
G01 XΔ20 Yd10 ; Перемещение в по относительным координатам G01 X¤100 Y¤200 ; Перемещение в машинные координаты
• Символ "d" или "Δ" после буквы оси означает что координаты задаются как относительные от предыдущих координат.
• Символ "¤" после буквы оси означает что координаты задаются как "Машинные" координаты.
1.3 Параметры команд
Параметры команд обозначаются произвольной буквой (как правило не совпадающей с буквами осей).
За буквой параметра следуе число - значение параметра.
2. Описание G-кодов:
G-команды определяют команды - отвечающие как правило за перемещение инструмента.
G-команды состоит из буквы G и номера, следующего за ней.
G-команды бывают модальные и однократные.
Модальные G-команды сохраняют своё значение до конца работа программы,
пока не будут отменены другим G-командой либо командой макроязыка.
Однократные G-команды исполняются один раз в рамках текущего кадра.
Модальные G-команды делятся на группы. Каждая группа включает в себя объединённые
по функциональному назначению G-команды, из которых одновременно может
быть активирован только один.
2.1 G00: Позиционирование
Команда G00 перемещает инструмент в заданное положение.
Положение можно задавать в абсолютных величинах либо через приращения относительно текущих координат.
Формат команды:
G00 X__ Y__ ...
В качестве аргументов указываются названия осей и координаты, в которые необходимо переместиться.
Пример:
G90; включение абсолютной системы координат G00 X10 Y10 Z10 ;перемещение в координаты X=10, Y=10, Z=10 ; G00 - модальная команда, G00 включена в предыдущем кадре и действует до отмены другой G-командой из этой группы X0 Y0 ; перемещение в координаты G00 X=0, Y=0, Z=10 Z0 ;перемещение в координаты G00 X=0, Y=0, Z=0
Где:
• {X_} {Y_} {Z_} {A_} {B_} {С_} - Координаты перемещения по осям
Примечание:
Скорость перемещения для позиционирования задается в настройках и не может быть изменена командой Fxxxxx
Обязательно убедитесь в том, что инструмент не ударится о заготовку при позиционировании по G00/G28/G30.
При указании координат осей допускается указание перед координатами символов "Δ/d" b "¤"
Пример:
G00 XΔ20 Yd10 ; Перемещение по относительным координатам G00 X¤100 Y¤200 ; Перемещение в машинные координаты
• Символ "d" или "Δ" после буквы оси означает что координаты задаются как относительные от предыдущих координат.
• Символ "¤" после буквы оси означает что координаты задаются как "Машинные" координаты.
2.2 G01: Линейная интерполяция
Команда G01 перемещает инструмент строго вдоль прямой линии, координаты которой задаются аргументами команды G01
Положение можно задавать в абсолютных величинах либо через приращения относительно текущих координат.
Различные оси - которые задействованы в перемещении инструмента - перемещаются строго в зависимости от положения других осей (интерполировано) - чтобы результирующая траектория была строго прямой линией.
Формат команды:
G01 X__ Y__ ...
В качестве аргументов указываются названия осей и координаты, в которые необходимо переместиться.
Для использования команды G01 необходимо/можно указать скорость подачи с помощью команды {Fxxxxx}.
Подача определяет скорость, с которой будет двигаться инструмент по прямой линии.
Скорость подачи, заданная в F, действует до следующей команды {Fxxxxx}.
Пример:
G01 X10 Y10 Z10 F2000 ;перемещение в координаты X=10, Y=10, Z=10 ; G01 - модальная команда, G01 включена в предыдущем кадре ; и действует до отмены другой G-командой из этой группы X0 Y0 ; перемещение в координаты G01 X=0, Y=0, Z=10 Z0 ;перемещение в координаты G01 X=0, Y=0, Z=0
Где:
• {X_} {Y_} {Z_} {A_} {B_} {С_} - Координаты перемещения по осям
• {F_} - Скорость подачи при обработке
Примечание:
Если команда Fxxxxx не задана, скорость подачи считается равной нулю.
При указании координат осей допускается указание перед координатами символов "Δ/d" b "¤"
Пример:
G01 XΔ20 Yd10 ; Перемещение по относительным координатам G01 X¤100 Y¤200 ; Перемещение в машинные координаты
• Символ "d" или "Δ" после буквы оси означает что координаты задаются как относительные от предыдущих координат.
• Символ "¤" после буквы оси означает что координаты задаются как "Машинные" координаты.
2.3 G02/03: Круговая интерполяция
Круговая интерполяция осуществляет перемещение инструмента по осям
выбранной плоскости по дуге окружности. При этом по остальным осям,
если они указаны, осуществляется линейная интерполяция.
Направление круговой интерполяции:
• G02 По часовой стрелке
• G03 Против часовой стрелки
Формат команды в плоскости XY:
G17 G2 X__ Y__ I__ J__ P__ ;указание координат центра дуги
G17 G2 X__ Y__ R__ P__ ;указание радиуса дуги
Где:
• I - Координата центра окружности по оси X
• J - Координата центра окружности по оси Y
• P - Полное количество оборотов по окружности
• R - Радиус дуги окружности
Формат команды в плоскости ZX:
G18 G2 X__ Z__ I__ K__ P__ ;указание координат центра дуги
G18 G2 X__ Z__ R__ P__ ;указание радиуса дуги
Где:
• I - Координата центра окружности по оси X
• K - Координата центра окружности декартовой оси Z
• P - Полное количество оборотов по окружности
• R - Радиус дуги окружности
Формат команды в плоскости YZ:
G19 G2 Z__ Y__ J__ K__ P__ ; указание координат центра дуги
G19 G2 Z__ Y__ R__ P__ ; указание радиуса дуги
Где:
• J - Координата центра окружности по оси Y
• K - Координата центра окружности декартовой оси Z
• P - Полное количество оборотов по окружности
• R - Радиус дуги окружности
Для команды G3 формат аналогичный.
Аргумент P задаёт полное количество оборотов, которое должен сделать
инструмент по задаваемой окружности. Заданные обороты начинают выполняться после того, как инструмент выйдет в конечную точку дуги. Аргумент P
не является обязательным. Если аргумент P не был указан, то его значение приравнивается к нулю.
Координаты I, J, K по умолчанию задаются как относительные от начальной точки дуги - заданные в предыдущем кадре
Они могут быть изменены командами:
• G90.1 Координаты I, J, K задаются как абсолютные
• G91.1 Координаты I, J, K задаются как относительные
Для использования команды G02/G03 необходимо/можно указать скорость подачи с помощью команды {Fxxxxx}.
Подача определяет скорость, с которой будет двигаться инструмент по окружности.
Скорость подачи, заданная в F, действует до следующей команды {Fxxxxx}.
2.4 G04: Задержка по времени
Команда G04 позволяет сделать паузу в отработке программы определённой длительности.br />
Формат команды/пример:
G04 P1.265 ; Пауза 1,265 секунд
Где:
• P - длительность паузы в секундах
2.5 G10: G10: Корректировка данных
Вариант:
• G10 L1 Задание смешений и корректоров инструмента
Формат команды/пример:
G10 L1 T3 B0 H0.2 D0.1 Z100 S5 N1;
Где:
• L1 - Версия команды на Задание смешений и корректоров инструмента
• {T3} - Номер инструмента - для которого корректируются данные (если не указать - для текущего инструмента)
• {B0} - Номер привязки инструмента - для которого корректируются данные (если не указать - для текущей привязки)
• {H0.2} - Корректор по длине инструмента (не путать с длиной инструмента)
• {D0.1} - Корректор на диаметр инструмента
• {S5} - Номер слота инструмента
• {N1} - Необходимость замера инструмента, Замер не нужен: -1, Замер нужен: 1.
• {Z100} - Смешение по длине инструмента (измеренная длина инструмента)
Для угловых головок можно задавать боковое смещение:
• {X30} - Смешение по X инструмента
• {Y45} - Смешение по Y инструмента
Вариант:
• G10 L2 Привязка системы координат G54-G59
Формат команды/пример:
G90 G54 ; Система координат заготовки 1 G10 L2 P1 X0 Y0 Z0 ; Новые рабочие координаты для текущей позиции
Где:
• L2 - Версия команды на Привязка системы координат G54-G59
• {P1} - Параметр P указывает, в какой системе координат заготовки будет осуществляться привязка:
1 - G54
2 - G55
3 - G56
4 - G57
5 - G58
6 - G59
Если параметр не указан - привязка осуществляется к текущей системе координат (G54-G59).
• {X0} {Y0} {Z0} {A0} {B0} {С0} - Координаты по осям к которым будет привязана текущая координата.
Привязка осуществляется только по тем осям, которые указаны в рамках команды.
В режиме G90 текущая координата привязывается к той, которая задана в качестве значения соответствующей оси.
В режиме G91 осуществляется смещение системы координат заготовки на величины, заданные в качестве значения осей.
Вариант:
• G10 L3 Загрузка описания инструмента
Формат команды/пример:
G10 L3 T67 H57 D6.0 Q2 R0.5 P33 I4 N[6D 57L Серый Сталь]
Где:
• L3 - Версия команды - Загрузка описания инструмента
• T67 - Номер инструмента
• [H57] - Длина инструмента
• [D6.0] - Диаметр инструмента
• [Q2] - Тип инструмента:
1 - Концевая фреза
2 - Радиусная концевая фреза
3 - Конусная фреза
4 - Радиусная фреза
5 - Шаровая фреза
6 - Угловая пазовая фреза
7 - Пазовая фреза
8 - Торцевая фреза
9 – Сверло
10 - Резьбо-фреза
11 – Зенковка
12 – Центровка
13 – Гравер
14 - Сеносор пробника
15 - Фасонная фреза
16 - Метчик
• [R0.5] - Радиус скругления
• [P33] - Длина режущей части
• [I4] - Количество режущих зубьев
• [N[‹Text›]] - Строковое наименование инструмента
При загрузке УП на выполнение ЧПУ проверит наличие и соответствие инструмента в команде и в таблице инструментов ЧПУ.
При выявлении разницы будет предложено или добавить инструмент в таблицу ЧПУ (при его отсутствии), или скорректировать параметры инструмента в таблице ЧПУ
При этом возможно отказаться от изменения таблицы ЧПУ.
Далее при работе УП эта команда игнорируется.
Вариант:
• G10 L4 Переустанов заготовки
Формат команды/пример:
G10 L4 P1 X-104.5 Y0 Z40 A-90 B180 C0 N[Дно]
Где:
• L4 - Версия команды - Переустанов заготовки
• P1 - Номер установки по порядку
• {X0} {Y0} {Z0} {A0} {B0} {С0} - Координаты смещения по осям
Не влияет на работу УП на станке
Влияет только на показ траектории в окне графики ЧПУ
Вариант:
• G10 L5 Задание текущего (установленного) инструмента
Формат команды/пример:
G10 L5 T3 B0
Где:
• L5 - Версия команды на Задание текущего (установленного) инструмента
• {T3} - Номер инструмента - для которого корректируются данные (если не указать - для текущего инструмента)
• {B0} - Номер привязки инструмента - для которого корректируются данные (если не указать - для текущей привязки)
2.6 G17/G18/G19: Выбор декартовой плоскости
Выбор декартовой плоскости для построения дуг по команде G02/G03
• G17 Дуга строится в плоскости XY
• G18 Дуга строится в плоскости ZX
• G19 Дуга строится в плоскости YZ
Смотрите описание команды G02/G03
2.7 G28/28.1/G30: Возврат в основное положение
Команда G28/28.1/G30 производит перемещение инструмента в основное положение станка.
Команда G28/28.1/G30 аналогична команде G0.
Происходит перемещение на ускоренной подаче в координаты, указанные аргументами команды G28 (промежуточную точку),
а затем происходит перемещение в основное положение.
Координаты основного положения по G28/G30.X задаются в ЧПУ на странице "Смещений".
Команда G28.1 - Стратегия выхода в G28 для конкретного станка
Команда G28.1 делает тоже самое что и G28 - но через цикл - описанный через УП и доступный для редактирования.
В скрипте "раскрутка" осей вращения происходит на безопасной высоте
Плюс в скрипте можно описать обход препятствий, например обход в зоны инструментального магазина
Так-же в скрипте задается порядок выхода в G28 по разным осям.
Как правило это сначала подъем по Z, а затем по XY с раскручиванием ABC
G28.1 очень желательно применять сразу по всем осям.
Формат команды/пример:
G28 X__ Y__ ... G28.1 G28.1 X__ Y__ ... G30.1 X__ Y__ ...
Где:
• {X0} {Y0} {Z0} {A0} {B0} {С0} - Координаты перемещения по осям
Как правило после обработки первое перемещение нужно совершить не в конкретные координаты,
а поднять инструмент на определенную высоту над деталью, и только потом двигаться в основное положение.
Для такого перемещения можно использовать относительное перемещение по координатам.
Пример:
G91 ; Включение режима относительных координат G28 Z50 ; Подымаем инструмент на 50 мм над деталью и затем двигаемся в основное положение по всем осям. G90 ; Не забываем включать режим абсолютных координат ; Для сокращения команды до одной строки можно команду указывать так: G28 Zd50 ; Символ "d" после буквы оси означает что координаты задаются как относительные. G28 ZΔ50 ; Символ "Δ" после буквы оси так-же означает что координаты задаются как относительные.
Рекомендуется всегда при окончании обработки отводить инструмент по команде G28
- это позволяет ЧПУ при построении графика правильно рассчитывать показываемую область обработки и удалять с трека холостые перемещения
2.8 G29/G29.1: Возврат из основной позиции
Команда G29 производит подвод инструмента в положение - перед обработкой станка.
Команда G28 аналогична команде G0.
Происходит перемещение на ускоренной подаче в координаты, указанные аргументами команды G29 (промежуточную точку)
Координаты основного положения по G28 задаются в ЧПУ на странице "Смещений".
Команда G29.1 - Стратегия подвода в точку старта прохода по G29 для конкретного станка
Команда G29.1 делает тоже самое что и G29 - но через цикл - описанный через УП и доступный для редактирования.
В скрипте "раскрутка" осей вращения происходит на безопасной высоте
Плюс в скрипте можно описать обход препятствий, например обход в зоны инструментального магазина
Так-же в скрипте задается порядок выхода в G29 по разным осям.
Как правило это сначала XY с раскручиванием ABC, а затем опускание по Z
G29.1 очень желательно применять сразу по всем осям.
Формат команды/пример:
G29 X__ Y__ ... G29.1 G29 X__ Y__ ...
Где:
• {X0} {Y0} {Z0} {A0} {B0} {С0} - Координаты перемещения по осям
Рекомендуется всегда подводить инструмент по команде G29
- это позволяет ЧПУ при построении графика правильно рассчитывать показываемую область обработки и удалять с трека холостые перемещения
2.9 G30.1…G30.9: Переход в референтную позицию
Команда действует аналогично команде G28, но осуществляет переход в
1 - 9 референтные положения, заданные через параметры
Координаты референсных координат для G30 задаются в ЧПУ на странице "Смещений".
2.10 G31: Команда замера
Команда G31 аналогична команде G1 за тем исключением, что её работа может быть прервана внешним сигналом.
При поступлении внешнего сигнала команда прекращает свою работу (не доходя до конечной), и
начинается выполнение следующего кадра.
Данную функцию можно использовать для измерений размеров заготовки, если на инструменте установлен соответствующий датчик.
Формат команды:
G31 Z−1 F50 ; Двигаемся вниз, пока датчик не коснётся поверхности
Результат выполнения замера можно получить через переменные:
• #PROBE_{X/Y/Z/A/B/C/U/V/W/Q/E} - Получение измеренных рабочих координат по осям
• #PROBEMACH_{X/Y/Z/A/B/C/U/V/W/Q/E} - Получение измеренных машинных координат по осям
• #PROBEREAL_{X/Y/Z} - Получение измеренных реальных рабочих координат по осям (с учетом размера 'шарика' щупа)
• #PROBEMACHREAL_{X/Y/Z} - Получение измеренных реальных машинных координат по осям (с учетом размера 'шарика' щупа)
#Probe01X = [#PROBE_X] #ProbeMach01Z = [#PROBEMACH_Z] #Probe01X_Real = [#PROBEREAL_X] #ProbeMach01Z_Real = [#PROBEMACHREAL_Z]
Механизм расчета реальных координат для переменных #PROBEREAL_{X/Y/Z} и #PROBEMACHREAL_{X/Y/Z} :
- Размер 'шарика' щупа берется из диаметра текущего инструмента.
- Считается что смещение инструмента задано по 'нижней' части 'шарика'
- По координатам из предыдущей команды и координатам из команды G31 расчитывается вектор движения щупа.
- По диаметру 'шарика' и вектора движения рассчитываются поправки на измеренные координаты.
2.11 G36: Включение карты высот
По команда G36 происходит включение коррекции по оси Z станка в соответствии с картой высот.
Предварительно карта высот должна быть инициализировано командой G36.1 и заполнена командами G36.2.
Формат команды:
G36; Включение карты высот
2.12 G36.1: Инициализация карты высот
Команда G36.1 предназначена для инициализация карты высот.
По команде:
• старые данные стираются,
• запоминаются новые данные по стартовым и конечным координатам сетки по X/Y
• запоминаются новые данные по количеству шагов по X/Y
• рассчитываются координаты точек замера сетки высот
При выполнении команды запрещено смещение координат по G68
Формат команды:
G36.1 X10 Y0 I50 J20 N5 H3 ;Инициализация карты высот
Где:
• {X..} {Y..} - Координаты начальной точки сетки карты высот
• {I..} {J..} - Координаты конечной точки сетки карты высот (I-X, J-Y)
• {N..} {H..} - Количество замеров по осям (N-X, H-Y)
2.13 G36.2: Установка высоты смещения точки карты высот
Команда G36.2 предназначена записи смешения точки сетки карты высот.
По команде:
• старые данные стираются,
• запоминаются новое смещение по Z для координат сетки по X/Y
При выполнении проверяется что координаты по XY соответствуют заданной сетки карты высот
При выполнении команды запрещено смещение координат по G68
Формат команды:
G36.2 X10 Y0 Z0.03 ;Установка высоты смещения точки карты высот
Где:
• {X..} {Y..} - Координаты точки сетки карты высот
• {Z..} - Записываемое смещение(дельта) по оси Z
2.14 G36.3: Цикл замера карты высот
Цикл G36.1 предназначена для инициализация и замера карты высот .
По команде:
• старые данные стираются,
• запоминаются новые данные по стартовым и конечным координатам сетки по X/Y
• запоминаются новые данные по количеству шагов по X/Y
• рассчитываются координаты точек замера сетки высот
• пыполняется УП - которая проходи щупом по всем точкам сетки высот и записывает смещения по Z
При выполнении команды запрещено смещение координат по G68
Первая высота в стартовой точке будет считаться базовой высотой Z - относительно которой будут вычисляться смещения по Z по остальным точкам
Формат команды:
G36.3 X10 Y0 I50 J20 N5 H3 Z20 ;Цикл замера карты высот
Где:
• {X..} {Y..} - Координаты начальной точки сетки карты высот
• {I..} {J..} - Координаты конечной точки сетки карты высот (I-X, J-Y)
• {N..} {H..} - Количество замеров по осям (N-X, H-Y)
• {Z..} - Величина (дельта) - на которую опустится щуп при замере смещения по Z
2.15 G36.9: Выключение карты высот
По команда G36.9 происходит выключение коррекции по оси Z станка в соответствии с картой высот.
Формат команды:
G36.9 ; Выключение карты высот
2.16 G40/G41/G42, D: Коррекция на диаметр инструмента
Коррекция на радиус предполагает изменение кадров таким образом,
чтоб учесть радиус инструмента при обработке детали. Существует два типа
коррекции на радиус:
• G41 - Коррекция на диаметр инструмент слева по направлению движения
• G42 - Коррекция на диаметр инструмент справа по направлению движения
Коррекция на радиус означает смещение инструмента относительно задаваемой траектории на
величину радиуса перпендикулярно траектории перемещения.
Если G41 поменять на G42, то новая траектория окажется по другую
сторону от изначального контура детали.
Например, если по G41 обрабатывается внешний контур, то при замене G41 на G42 обрабатываться будет не
внешний, а внутренний контур. То же самое с направлением движения. Если
для всего обрабатываемого по G41 контура детали поменять направление
движения на обратное при условии, что контур детали останется тем же
самым, то скорректированный по G41 контур будет уже по другую сторону от
контура детали. Для правильной работы коррекции отдельные перемещения
должны быть длиною не менее диаметра фрезы.
• G40 - Отмена коррекции на диаметр инструмента
В настройке ЧПУ "Включать в G41/42 радиус инструмента" можно модифицировать исполнение этой команды
Возможен выбор из:
• Включать радиус инструмента
В значение коррекции на режущий инструмент слева/справа будет включен радиус инструмента
Данная настройка применяется как правило для компенсации износа инструмента.
Достоинства - Трек в УП не зависит от применяемого инструмента.
Т.е. можно выбрать инструмент другого диаметра и трек рассчитается правильно.
Недостатки - при расхождении радиуса инструмента в таблице ЧПУ и реального инструмента - трек будет некорректным.
• Исключить радиус инструмента
В значение коррекции на режущий инструмент слева/справа не будет включен радиус инструмента
Данная настройка применяется для ТОЧНОГО подбора траектории (часто для подпора посадки для подшипника)
Недостатки - Трек в УП строго зависит от применяемого инструмента.
Значение по умолчанию - "Включать радиус инструмента"
• ВНИМАНИЕ! - Значение должно строго соответствовать подобному значению в применяемой Вами CAM системе
Радиус инструмента можно задавать как в таблице инструментов с помощью интерфейса ЧПУ, так и с помощью корректоров:
• {D__} , - значение коррекции на диаметр.
Следует учитывать, что радиус, прописанный в таблице инструментов для текущего инструмента, и радиус,
заданный корректором, суммируются (если это включено в настройках ЧПУ).
Формат команды:
G0 X0 Y0 Z0 G41 G1 X100 F100 ;Коррекция на радиус слева, значение коррекции берется из таблицы инструментов G1 Y−100 F100 D0.1 ; Установки нового значения коррекции, значение из таблицы инструментов игнорируется G40 X0 Y0 ;Отмена коррекции на радиус
2.17 G43/G49, H: Команды коррекции на длину инстумена
Команда G43 разрешает коррекцию инструмента в положительном направлении, т. е. значение корректора вычитается из координаты инструмента.
Значение коррекции - берется из таблицы инструментов - поля "Смещение" по различным осям.
По оси Z и W к значению смещения добавляется значение коррекции на длину инструмента.
Это Значение коррекции берётся ИЛИ из таблицы инструментов ИЛИ из назначения H:
• {H__} , - значение коррекции на длину.
В случае применения угловой головки по команде G43 так-же применяются смещения по осям X/Y/U/V - для компенсации бокового смещения точки резанья.
Пример:
G0 G90 ;Смещение по Z в таблице инструментов = 20 G43 H-0.2 Z0 ; Перемещение в абсолютную координату 20 (0 + 20 - 0.2 = 19.8) G49 Z0 ;Отмена коррекции по G43
2.18 G52/G52.9: Смещение системы координат
Систему координат станка можно смещать на заданную величину с помощью команды G52.
Пример:
G52 X__ Y__ ...
Где:
• {X0} {Y0} {Z0} {A0} {B0} {С0} - Координаты смещения по осям
Задание смещения системы координат с помощью команды G52 в режиме G90 перезаписывает смещение, заданное ранее.
В режиме G91 смещения прибавляются к указанным ранее.
• G52.9 - Отмена смещения системы координат
Примеры:
G0 X1000 Y200 ;Переместились в координаты X1000 Y200 G52 X1000 Y200 ;Сместили систему координат так, что X=0 и Y=0 G0 X0 Y0 ;Уже находимся в данной точке, поэтому перемещения не будет G91 G52 X1 Y1 ; Новые координаты: X=-1, Y=-1 G90 G0 X0 Y0 ;Переместились на 1 мм по каждой из осей в положительном направлении G52.9 ;Отмена смещения системы координат
2.19 G53: Перемещение в машинные координаты
Команда G53 выбирает систему координат станка (машинные координаты)
Подходит для перемещения в позицию смены инструмента либо для перемещения в какую-либо
определённую точку для выполнения обслуживания.
Действует только на текущий кадр УП
Координаты, задаваемые в системе координат G53, действительны, только если был осуществлён
выход в «0» после включения станка, либо если используются датчики абсолютного положения (обычно используются инкрементальные датчики).
Пример:
G53 G0 X100 Y100 ;Переход в известную позицию по машинным координатам G0 X100 Y100 ;Переход в известную позицию по рабочим координатам из G54-G59
2.20 G54…G59: Системы координат заготовки
Система координат заготовки используется при обработке заготовки.
Смещение каждой системы координат относительно «0» станка задаётся через
интерфейс ЧПУ либо записывается по команде G10 L2.
Команды G54…G59 являются модальными, т.е. действуют и на последующие кадры тоже.
Пример. Переход между системами координат:
G54 G0 X0 Y0 Z0 ; Перемещение в X0 Y0 Z0 в системе координат G54 G1 Z10 ; Обработка в системе координат G54 G55 G0 X0 Y0 Z0 ; Перемещение в X0 Y0 Z0 в системе координат G55 G1 Z50 ; Обработка в системе координат G55 G54 ; Возврат в систему координат G54
2.21 G61/G64: Точная/Черновая обработка
• G61 - Режим точной траектории (действует до смены командой G64).
Применяется и к последующим кадрам.
ЧПУ рассчитывает сглаживание траектории с максимальным возможным рассогласованием из настройки ЧПУ Макс. рассогласование по G61
• G64 - Режим черновой траектории (действует до смены командой G61).
Применяется и к последующим кадрам.
ЧПУ рассчитывает сглаживание траектории с максимальным возможным рассогласованием из настройки ЧПУ Макс. рассогласование по G64
Максимальное рассогласование возможно указать в параметре:
• {P__} - Значение максимального рассогласования траектории.
Пример:
G64 P0.2 ; включили режим черновой обработки с максимальным возможным рассогласованием 0.2 мм G1 X100 Y100 F2000 ; обработка G61 ; включаем режим точной траектории для чистовых проходов G1 X150 Y100 ; обработка
2.22 G68: Поворот системы координат в плоскости
Поворот системы координат осуществляется с помощью модальной команды G68.
Поворот осуществляется в рамках текущей плоскости интерполяции (G17, G18, G19).
При вызове команды G68 необходимо указать координаты точки, вокруг которой будет осуществляться поворот системы
координат (центр вращения).
Параметр R задаёт угол, на который необходимо повернуть систему координат.
Пример:
G17 G68 X__ Y__ R__ ;поворот в плоскости XY G18 G68 Z__ X__ R__ ;поворот в плоскости XZ G19 G68 Y__ Z__ R__ ;поворот в плоскости ZY
Отмена поворота системы координат осуществляется с помощью команды G69.9
2.22 G68: Поворот системы координат по осям
Поворот системы координат осуществляется с помощью модальной команды G68.
При вызове команды G68 необходимо указать координаты точки, вокруг которой будет осуществляться поворот системы
координат (центр вращения).
Угол поворота систему координат задается в осях ABC.
Пример:
G68 X__ Y__ Z__ A__ B__ C__ ;Поворот в произвольной плоскости
Отмена поворота системы координат осуществляется с помощью команды G69.9
2.23 G69/G69.2/G69.9: Режим TCP
• G69 Включение полного режима TCP
В зависимости от угла наклона шпинделя вырабатываются поправки по XYZ - для компенсации смешения координат режущей точки.
В зависимости от угла поворота заготовки вырабатываются поправки по XYZ - для компенсации смешения координат режущей точки.
• G69.2 Включение режима TCP для наклона шпинделя
В зависимости от угла наклона шпинделя вырабатываются поправки по XYZ - для компенсации смешения координат режущей точки.
• G69.9 Выключение режима TCP
Пример:
G69 ; Включение TCP G1 X100 Y100 A0.5 F2000 ; обработка G69.9 ; Выключение TCP
2.24 G83: Цикл сверления
• G83 - Многопроходный цикл сверления с дроблением стружки
Пример:
G83 Z__ R__ {Q__} {D__} {P__} {F__}
Где:
• Z__ - координата по Z нижней плоскости сверления
• R__ - координата по R верхней плоскости сверления
• {Q__} - шаг сверления по оси Z, если не задано - то на всю глубину
• {D__} - дистанция возврата от ранее просверленной глубины - если не задано то 0.5
• {P__} - пауза в секундах, выдерживаемая в конце шага сверления - если не задано то ноль.
• {F__} - скорость подачи инструмента.
• G98 - Возврат в плоскость Z после цикла.
• G99 - Возврат в плоскость R после цикла.
• G80 - Отмена цикла.
Команда может выполнятся в цикле:
G1 X0 Y0 Z10 F1000 ;Выходим в начальную точку запуска цикла G84 G98 ; Возврат в плоскость R после цикла. G83 X10 Z-10 R5 Q3 D10 P0.1 F200 G83 X20 Z-10 R5 Q3 D10 P0.1 F200 G80 ;Отмена цикла, возврат в плоскость Z
2.25 G85: Цикл нарезания резьбы фрезой
• G85 - Многопроходный цикл нарезания резьбы с помощью резьбо-фрезы
Пример:
G85 M__ {N__} {J__} R__ Z__ {L__} {I_} {F__}
Где:
• M__ - Диметр резьбы
• {N__} - Диметр дюймовый резьбы, пример: M0 N1.4 - 1/4 дюйма.
Возможные значения:
M0 N1.16 - 1/16 дюйма.
M0 N1.8 - 1/8 дюйма.
M0 N1.4 - 1/4 дюйма.
M0 N3.8 - 3/8 дюйма.
M0 N1.2 - 1/2 дюйма.
M0 N3.4 - 3/4 дюйма.
M1 N0.0 - 1 дюйм.
M1 N1.4 - 1 1/4 дюйма.
M1 N1.2 - 1 1/2 дюйма.
M2 N0.0 - 2 дюйма.
M2 N1.2 - 2 1/2 дюйма.
M3 N0.0 - 3 дюйма.
M3 N1.2 - 3 1/2 дюйма.
M4 N0.0 - 4 дюйма.
M5 N0.0 - 5 дюймов.
M5 N0.0 - 6 дюймов.
Боже! благослови метрическую систему!
• {J__} - Шаг резьбы - если не указать - будет применен стандартный шаг резьбы по диаметру (если указан стандартный диаметр резьбы)
• R__ - координата по R верхней плоскости сверления
• Z__ - координата по Z нижней плоскости сверления
• {L__} - Длина захода резьбы по Z от верхней плоскости резьбы (от #R - вниз)
• {I__} - количество черновых проходов - если 0 или не указать - один чистовой проход
• {F__} - скорость подачи инструмента.
• G98 - Возврат в плоскость Z после цикла.
• G99 - Возврат в плоскость R после цикла.
• G80 - Отмена цикла.
Команда может выполнятся в цикле:
G1 X0 Y0 Z10 F1000 ;Выходим в начальную точку запуска цикла G84 G98 ; Возврат в плоскость R после цикла. G85 X10 Y5 M6 Z0 R10 L1 G85 X20 Y5 M6 Z0 R10 L1 G80 ;Отмена цикла, возврат в плоскость Z
2.26 G90: Режим абсолютных координат
Абсолютная система координат означает задание координат относительно начала текущей системы координат.
Флаг действует до конца работы программы, либо до отмены командой G91.
2.27 G91: Режим относительных координат
Относительная система координат означает задание координат в приращениях, т. е. в расстояниях относительно текущей точки.
Данную систему координат удобно использовать при выполнении каких-либо цикличных однотипных операций при обработке детали.
Флаг действует до конца работы программы либо до отмены командой G90.
2.28 G90.1: Режим абсолютных координат для параметров I, J, K
Если задана модальная команда G90.1, то аргументы I, J, K задают координаты центра в абсолютных координатах.
Флаг действует до конца работы программы, либо до отмены командой G91.1.
2.29 G91.1: Режим относительных координат для параметров I, J, K
Если же задан флаг G91.1, то аргументы I, J, K представляют из себя смещения центра координат относительно
координат начала дуги (текущей позиции инструмента).
Флаг действует до конца работы программы либо до отмены командой G90.1.
2.30 G92/G92.9: Задание произвольной системы координат
Можно задать произвольную систему координат станка с помощью команды G92.
Пример:
G92 X__ Y__ ...
Где:
• {X0} {Y0} {Z0} {A0} {B0} {С0} - Координаты нулевой точки по осям
Задание произвольной системы координат с помощью команды G92.
• G92.9 - Отмена произвольной системы координат
Примеры:
G92 X1000 Y200 ; Задали новую систему координат G0 X0 Y0 ; Перемещаемся в нулевую точку новой системы координат G92.9 ; Отмена смещения системы координат
3. "T": Команда объявления нового инструмента
Формат команды:
• T__.{__} - Первое число - номер инструмента, второе число - номер привязки инструмента
По команде НЕ активируется функция смены инструмента.
Если после этой команды дать команду на смену инструмента М06 то:
Если для старого или нового инструмента не определен номер слота хранения (или вообще нет автосменщика) ЧПУ покажет диалоговое окно смены инструмента.
При этом возможно указать слот инструмента или выполнить смену вручную:'
Если Для старого и нового инструмента слоты хранения заданы и есть автоматический сменщик инструмента - замена произойдет автоматически.
Пример:
T23.2 M06 ; Выбор 23 инструмента во второй привязке и замена его по команде M06
3. "S": Команда установки скорости шпинделя
Формат команды:
• S______ - Скорость оборотов шпинделя (об/мин)
S12000 ; Установка скорости шпинделя 12000 об/мин
4. "K": Работа в разных каналах
Формат команды:
• K1 - После этой команды весь код УП выполняется в первом канале - до следующей команды K
• K2 - После этой команды весь код УП выполняется во втором канале - до следующей команды K
• K0 - Синхронизация каналов. При достижении этой команды в любом канале происходит ожидание окончания выполнения УП в другом канале
УП в первом и во втором канале выполняются параллельно.
Когда УП выполняется в конкретном канале - доступны оси только именно этого канала
После K0 Канала нет - доступны все оси. Но круговая интерполяция G02/G03 доступна только на осях первого канала (XYZ)
Пример:
G01 X0 Y0 Z0 U0 V0 W0 ; работа без канала - доступны все оси K1 ; Далее код выполняется в первом канале (параллельно со 2-ым) … G01 X10 Y10 Z10 ; работа в первом канале … K2 ; Далее код выполняется во 2 канале (параллельно с 1-вым) … G01 U10 V10 W10 ; работа во втором канале G01 X10 Y10 Z10 ; работа во втором канале, оси XYZ автоматически транслируются в UVW … K0 ; Точка синхронизации - ожидание окончания выполнения в обоих каналах G01 X0 Y0 Z0 U0 V0 W0 ; работа без канала - доступны все оси
5. Описание M-команд:
M-команды управляют системами электроавтоматики станка.
Они выполняются или в PLC или как отдельная УП программа.
Перед исполнением M-команд как правило происходит полное торможение подачи - останов станка
5.1 M0: Безусловный останов УП
Команда M0 выполняет останов программы с возможностью последующего возобновления работы программы через кнопку старта.
После выполнения данной команды программа должна перейти в состояние паузы.
Команду можно использовать в тех местах управляющей программы, где
необходимо произвести ручную смену инструмента, смену заготовки и т.п.
5.2 M1: Условный останов УП
Команда M1 выполняет останов программы аналогично команде M0, если модуль ПЛК разрешил условный останов (Включен условный останов).
Команду можно использовать при отладке управляющей программы.
5.3 M3/M4/M5/M5.1: Команды управления шпинделем
• M3 - Включает шпиндель и начинает его разгон в направлении по часовой стрелке
• M4 - Включает шпиндель и начинает его разгон в направлении против часовой стрелки (реврес)
• M5.1 - Останов УП, проверка - что шпиндель достиг заданных оборотов, продолжение УП
После подачи команды M3/M4 ЧПУ разрешает выполнение команд G00/G28/G29 до полного разгона шпинделя.
При первой команде G01/G02/G03 ЧПУ автоматически выполняет команду M5.1 - для контроля разгона шпинделя
• M5 - Выключает шпиндель и начинает его торможение
M3 S1000 F2000 ; включили шпиндель, начали его разгон G0 X10 Y10 ; холостое перемещение {M5.1} ; Останов УП, проверка - что шпиндель достиг заданных оборотов, продолжение УП ; Команда добавлена автоматически G1 X20 Y30 ; Обработка детали M5 ; выключили шпиндель, начали торможение
5.4 M6/M6.1/M6.2/M6.3/M6.4/M6.5/M6.9: Управление инструментом
• M6 - Смена инструмента
Перед командой нужно объявить новый инструмент по команде T.
После этого подать команду на смену инструмента М6
Если для старого или нового инструмента не определен номер слота хранения (или вообще нет авто-сменщика) ЧПУ покажет диалоговое окно смены инструмента.
При этом возможно указать слот инструмента или выполнить смену вручную:'
Если Для старого и нового инструмента слоты хранения заданы и есть автоматический сменщик инструмента - замена произойдет автоматически.
ВНИМАНИЕ: - Команда не реализована в ЧПУ. Она должна быть реализована пользователем для своего авто-сменщика.
Вспомогательные команды:
• M6.1 - Разжим оправки инструмента в шпинделе
• M6.2 - Зажим оправки инструмента в шпинделе
• M6.3 - Помещение инструмента в слот магазина. ВНИМАНИЕ: Команда не реализована - зависит от авто-сменщика
• M6.4 - Получение инструмента из слота магазина. ВНИМАНИЕ: Команда не реализована - зависит от авто-сменщика
• M6.5 - Открыть диалог смены инструмента (для ручной смены инструмента)
• M6.9 - Замер смещения высоты инструмента через пробник
Пример:
T23.2 M6 ; Выбор 23 инструмента во второй привязке и замена его по команде M6
5.5 M7/M8/M9: Команды управления охлаждением
• M7 - Включает охлаждение MQL
• M8 - Включение подачи охлаждающей жидкости
• M9 - Включает все системы охлаждения
5.6 M30: Окончание УП
По команде происходит полная остановка УП
5.7. M68.X: Управление Патроном/Тисками и вакуумным столом
• M68.1 - Зажать Патрон/Тиски
• M68.2 - Разжать Патрон/Тиски
• M68.3 - Включить вакуум на стол
• M68.4 - Выключить вакуум на стол
6. Макропрограммирование:
6.1. Переменные
• Наименование:
Наименование переменной всегда должно начинаться с символа '#'
Дале могут следовать символы алфавита, цифры или символ '_' в любом порядке.
• Значение переменной:
Число Double, диапазон значений: ±2.2250738585072014 * 10-308 ± 1.7976931348623157 * 10−308
• Выражения:
Выражения всегда должны заключаться в квадратные скобки []
Исключение - когда выражение состоит из одного числа.
Примеры:
#SDF = 10.1458 #S_1 = 50 #TEST = [#SDF * #S_1 - 10]
6.2. Область видимости переменных
Переменные, объявленные в УП - видны только в УП верхнего уровня.
При вызове команды цикла (G83/G85 и т.д.) эти переменные видны не будут.
При старте работы каналов - переменные копируются в каждый канал и существуют там по отдельности.
Т.е. переменная с одим и тем-же именем в разных каналах может иметь разное значение.
При завершении работы канала - его переменные копируются в основною УП.
Соответственно если была переменная с одним и тем-же именем - в основную УП придет значение из канала - который позднее всех завершил свою работу.
6.3. Операторы
• + - Оператор сложения
• - - Оператор вычитания
• * - Оператор умножения
• / - Оператор деления
• % - Остаток от целочисленного деления
• == - Логическое сравнение
• != - Проверка на неравенство
• > - Сравнение "Больше"
• < - Сравнение "Меньше"
• >= - Сравнение "Больше или равно"
• <= - Сравнение "Меньше или равно"
6.4. Арифметические функции
Арифметрические функции:
• SIN(_) - Вычисление Синуса
• SINH(_) - Вычисление Гиперболического синуса
• ASIN(_) - Вычисление арк-синуса
• ASINH(_) - Вычисление Гиперболического арк-синуса
• COS(_) - Вычисление Косинуса
• COSH(_) - Вычисление Гиперболического косинуса
• ACOS(_) - Вычисление арк-косинуса
• ACOSH(_) - Вычисление Гиперболического арк-косинуса
• TAN(_) - Вычисление Тангенса
• TANH(_) - Вычисление Гиперболического Тангенса
• ATAN(_) - Вычисление арк-Тангенса
• ATANH(_) - Вычисление Гиперболического арк-Тангенса
• CTG(_) - Вычисление Котангенса
• FLOOR(_) - Возвращает наибольшее целочисленное значение меньше или равно указанному числу
• CEILING(_) - Возвращает наименьшее целое число, которое больше или равно указанному числу.
• ROUND(_) - Округляет значение до ближайшего целого числа, используя режим округления по умолчанию.
• MIN(_,_) - Сравнивает два значения с вычислением, которое меньше.
• MAX(_,_) - Сравнивает два значения с вычислением, которое больше.
• CLAMP(_,_,_) - Первое значение приводится к диапазону Мин-Мах заданные во втором и третьем значении.
• SQRT(_) - Вычисление квадратного корня.
• CBRT(_) - Возвращает корень куба указанного числа.
• LOG(_) - Вычисляет натуральный логарифм значения.
• ABS(_) - Возвращает абсолютное значение заданного числа.
• RAD(_) - Возвращает переданный в градусах угол в радианах.
• DEG(_) - Возвращает переданный в радианах угол в градусах.
• TRUNC(_) - Возвращает целую часть параметра.
• MODF(_) - Возвращает дробную часть параметра.
• FUP(_) - Возвращает значение параметра, округлённое до ближайшего целого, большего либо равного заданному..
Логические функции:
• ISSET(_) - Проверяет, было ли задано значение.
Наименование функций можно писать во всех регистрах.
Примеры:
#S01 = 90 #SDF = [SQRT(#S01)] #3001 = [MIN(#SDF, #S01)]
6.5. Получение координат по осям "#WORK_X, #MACH_X"
• #WORK_{X/Y/Z/A/B/C} - Получение расчетных (на момент выполнения этого кадра) рабочих координат по осям
• #MACH_{X/Y/Z/A/B/C} - Получение расчетных (на момент выполнения этого кадра) машинных координат по осям
Примеры:
#W01X = [#WORK_X] #M02Z = [#MACH_Z]
6.6. Получение координат измерения по осям по команде G31 "#PROBE_X, #PROBEMACH_X"
• #PROBE_{X/Y/Z/A/B/C} - Получение рабочих координат измерения по команде G31 по осям
• #PROBEMACH_{X/Y/Z/A/B/C} - Получение машинных координат измерения по команле G31 по осям
• #PROBEREAL_{X/Y/Z} - Получение измеренных реальных рабочих координат по осям (с учетом размера 'шарика' щупа)
• #PROBEMACHREAL_{X/Y/Z} - Получение измеренных реальных машинных координат по осям (с учетом размера 'шарика' щупа)
Примеры:
#W01Z = [#PROBE_Z] #M02Z = [#PROBEMACH_Z] #Probe01X_Real = [#PROBEREAL_X] #ProbeMach01Z_Real = [#PROBEMACHREAL_Z]
6.7. Номер канала "#CHANNEL"
• #CHANNEL - Возвращает текущий номер канала
6.8. Текущая скорость подачи в канале "#FEED"
• #FEED - Текущая скорость подачи в канале
6.9. Текущая скорость шпинделя в канале "#SPEED"
• #SPEED - Текущая скорость шпинделя в канале
6.10. Текущая система координат в канале "#G54"
• #G54 - Текущая система координат в канале, Возможные значения 54…59
6.11. Получение координаты референсной точки "GetReferencePoint()"
• GetReferencePoint("Id_ReferencePoint", "Char_Axis") - Получение координаты референсной точки
Где:
"Id_ReferencePoint" - Id референсной точки, заданной в PLC объявлением ReferencePoint
Значение из стандартной поставки PLC:
• "Houm" - Домашнее положение
• "MachineNullChannal" - Нулевые машинные координаты
• "MachineMinLimitChannal" - Отрицательное ограничение осей
• "MachinePlusLimitChannal" - Положительное ограничение осей
• "Probe1" - Положение перед замером длины инструмента 1-го датчика
• "Probe2" - Положение перед замером длины инструмента 2-го датчик
• "ToolChangeManual" - Положение перед ручной сменой инструмента
• "ToolChangeAuto" - Положение перед автоматической смены инструмента
"Char_Axis" - Буква нужной оси
Возвращаемое значение - координата запрашиваемой точки.
#PosX = [GetReferencePoint("Probe1", "X")]
6.12. Управление Входами/Выходами "GetInput()/SetOutput()"
• GETINPUT("Id_Входа/Выхода") - Чтение значения входа/выхода
• SETOUTPUT("Id_Входа/Выхода") - Запись значения выхода. Возвращает 1 при успешности операции
Где: "Id_Входа/Выхода" - Id Входа/Выхода - объявленный в PLC
Читать можно как и значения входов так и установленные значения выходов
Записывать можно только выходы
Если Вход/Выход дискретный - значение или 1 или 0.
Если Вход/Выход аналоговый - значение - число.
Внимание! Если Выход контролируется из PLC - то менять его из УП бесполезно - PLC все равно перезатрёт значение выхода
; Чтение значения выхода #Rez = [GetInput("Out_Machine_Test")] ; Запись значения выхода #Rez = [SetOutput("Out_Machine_Test", 1)]
6.13. Переменные инструмента
• #TOOLNUM - Текущий номер объявленного (который может быть еще не установлен) инструмента в канале
• #TOOLD - Текущий диаметр объявленного (который может быть еще не установлен) инструмента в канале
• #TOOLH - Текущая длина объявленного (который может быть еще не установлен) инструмента в канале
• #TOOLSLOT - Назначенный слот для объявленного (который может быть еще не установлен) инструмента
• #TOOLCORD - Значение корректора на диаметр объявленного (который может быть еще не установлен) инструмента в канале
• #TOOLCORH - Значение корректора на длину объявленного (который может быть еще не установлен) инструмента в канале
• #TOOLTEETH - Количество режущих зубьев объявленного (который может быть еще не установлен) инструмента
• #TOOLBIND - Номер привязки объявленного (который может быть еще не установлен) инструмента
• #TOOLCORRECTORSX - Корректор инструмента по оси X
• #TOOLCORRECTORSY - Корректор инструмента по оси Y
• #TOOLCORRECTORSZ - Корректор инструмента по оси Z
• #TOOLCORRECTORSU - Корректор инструмента по оси U
• #TOOLCORRECTORSV - Корректор инструмента по оси V
• #TOOLCORRECTORSW - Корректор инструмента по оси W
• #CURTOOLNUM - Текущий номер текущего (который в шпинделе) инструмента в канале
• #CURTOOLD - Текущий диаметр текущего (который в шпинделе) инструмента в канале
• #CURTOOLH - Текущая длина текущего (который в шпинделе) инструмента в канале
• #CURTOOLSLOT - Назначенный слот для текущего (который в шпинделе) инструмента
• #CURTOOLBIND - Номер привязки текущего (который в шпинделе) инструмента
Примеры:
#01 = [#TOOLNUM]
6.17. G-флаги модальных групп
• #GROUP_G0_G3 - Группа модальных команд G00/G01/G02/G03/G31 - Возможные значение 0/1/2/3/31
• #GROUP_G17_G19 - Группа модальных команд G17/G18/G19 - Возможные значение 17/18/19
• #GROUP_G40_G42 - Группа модальных команд G40/G41/G42 - Возможные значение 40/41/42
• #GROUP_G43_G49 - Группа модальных команд G43/G49 - Возможные значение 43/49
• #GROUP_G52 - Группа модальных команд G52/G52.9 - Возможные значение 52/0
• #GROUP_G54 - Группа модальных команд G54…G59 - Возможные значение 1…6
• #GROUP_G61_G64 - Группа модальных команд G61/G64 - Возможные значение 61/64
• #GROUP_G68 - Группа модальных команд G68/G68.9 - Возможные значение 68/0
• #GROUP_G69 - Группа модальных команд G69/G69.2/G69.9 - Возможные значение 69/692/0
• #GROUP_G90_G91 - Группа модальных команд G90/G91 - Возможные значение 90/91
• #GROUP_G90.1_G91.1 - Группа модальных команд G90.1/G91.1 - Возможные значение 901/911
• #GROUP_G93_G95 - Группа модальных команд G93/G95 - Возможные значение 93/94/95
• #GROUP_G98_G99 - Группа модальных команд G98/G99 - Возможные значение 98/99
Примеры:
#01 = [#GROUP_G54] #02 = [#GROUP_G17_G19]
6.18. Оператор PRINT
Оператор предназначен для отправки сообщений (уведомлений).
Отправленные сообщения можно просмотреть в окне "Журнал"
Примеры:
#01 = [#GROUP_G54] PRINT #RezZ PRINT [#RezZ - #ToolProbe1_ZCoord] PRINT ["Метка #1"] PRINT ["Offset tool on Z = " + #RezZ] PRINT ["Offset tool on Z = " + [#RezZ - #ToolProbe1_ZCoord]]
6.19. Оператор безусловного перехода "GOTO"
Формат:
GOTO Label
Где:
• Label - Метка кадра, по которому будет происходить переход.
Примеры:
GOTO N100 ; Переход к кадру N100 #01 = [#GROUP_G54] ; Этот кадр будет пропущен N100 PRINT [Метка #1] ; С этого кадра продолжится выполнение УП
6.20. Вызов подпрограммы "CALL "CALL" / "RETURN"
Формат:
CALL Label {P[Наименование прохода]}
Где:
• Label - Метка кадра, по которому будет происходить вызов функции.
• P[_] - Наименование - которое будет выведено в журнал.
Возврат из функции происходит по оператору:
RETURN
Пример:
CALL N100 P[Тестовый проход]; Переход к кадру N100 #01 = [#GROUP_G54] ; Этот кадр будет выполнен после выполнения функции M30 ; Стоп программы N100 ; Начало подпрограммы PRINT [Метка #1] RETURN ; Возврат из подпрограммы
6.21. Условные оператор "IF" / "ELSEIF" / "ELSE" / "ENDIF"
Оператор условия делится на три части:
• блок IF…ElseIF/ELSE/ENDIF (если условие истинно)
• блок ElseIF…ELSE/ENDIF (если условие истинно)
• блок ELSE…ENDIF (если условие ложно).
В параметрах IF указываются логическое выражение.
Формат:
IF [Логическое выражение]
  операторы, выполняющиеся, если условие истинно
ELSEIF [Логическое выражение]
  операторы, выполняющиеся, если второе условие истинно
ELSE
  операторы, выполняющиеся, если условие ложно
ENDIF
Пример:
IF [!ISSET(#SDF)] PRINT "Переменная #SDF не определена"] ELSEIF [#SDF != 0] PRINT "Переменная #SDF не равна нулю" ELSE PRINT "Переменная #SDF равна нулю" ENDIF
6.22. Оператор цикла "WHILE" / "DONE"
WHILE — цикл с предусловием.
В качестве условия может выступать любое выражение, возвращающее значение типа BOOL.
Цикл будет выполняться, пока выражение возвращает ИСТИНА.
Если выражение вернет ложь - цикл прекратится.
Пример (Цикл, исполняющийся 4 раза):
#X = 0 WHILE [#X < 4] PRINT "Итерация цикла #" #X #X = [#X+1] DONE PRINT "Цикл завершился."