Лабораторная работа «Основы числового программного управления»

Материал из КИИСЭиА
Перейти к навигации Перейти к поиску


Общие сведения

Числовое программное управление (сокр. ЧПУ) (англ. CNC — computer numeric control) — техника использования цифровых вычислительных устройств для автоматизации производственных процессов. Числовым программным управлением могут быть оборудованы фрезерные, токарные станки, промышленные роботы, периферийные устройства (3D-сканеры, 3D-принтеры, плоттеры). Типичное оборудование с ЧПУ состоит из:

  • пульта оператора (консоли, дисплея),
  • вычислительного устройства (промышленного контроллера, программируемого логического контроллера, промышленного микрокомпьютера) и
  • исполнительных механизмов (сервоприводов, шаговых двигателей).

Выполнение производственного процесса описывается специализированным языком программирования (например, G-кодом). Программа на этом языке может быть введена непосредственно с пульта оператора либо загружена с внешних носителей, либо через заводскую (цеховую) сеть связи получена из централизованной системы управления производственным процессом. Кроме наиболее распространённого языка — G-кода, — для простых задач типа раскроя плоских заготовок система с ЧПУ в качестве входной информации может использовать DXF- или HPGL-файлы (DXF — текстовый формат описания векторных изображений для САПР, HPGL (Hewlett-Packard Graphics Language) — текстовый язык управления плоттерами и принтерами).

Техника безопасности при работе на учебном макете станка с ЧПУ

  1. Используйте средства индивидуальной защиты.
  2. Перед запуском программы убедитесь, что объект и инструмент закреплены надлежащим образом.
  3. На вашей одежде не должно быть свисающих рукавов, карманов или шнурков, всегда заправляйте рубашки!
  4. Снимите аксессуары (ожерелья, браслеты, …), которые могут зацепиться за движущиеся механизмы!
  5. Если у вас длинные волосы — завяжите их или уберите под плотно облегающий головной убор.
  6. Во время движения инструмента в рабочей области не должно находиться посторонних предметов. Не приближайтесь к движущейся части установки!
  7. Хотя доступные оператору части установки питаются низковольным напряжением и должным образом заизолированы, без необходимости не касайтесь металлических частей установки!
  8. Следите за ходом выполнения программы. При возникновении нештатной ситуации будьте готовы сразу же остановить программу или, при возникновении угрозы травмы или повреждения имущества, — обесточить установку.

Ошибки в программах для ЧПУ и нарушение техники безопасности могут привести к травмам и повреждению оборудования!

G-код

Пример G-кода:

%
M3
G21 (All units in mm)

(Start cutting path id: path4081)
G00 Z10.000000
G00 X33.472909 Y270.533712

G01 Z-0.125000 F100.0(Penetrate)
G01 X34.516769 Y270.533712 Z-0.125000 F400.000000
G01 X34.516769 Y262.818445 Z-0.125000
G01 X33.472909 Y262.818445 Z-0.125000
G01 X33.472909 Y270.533712 Z-0.125000
G00 Z10.000000
(End cutting path id: path4081)
...
M5
G00 X0.0000 Y0.0000
M2
%

Язык программирования устройств с ЧПУ под условным названием G-код разрабатывался ассоциацией EIA в 1960-х годах. Стандарты языка: ISO 6983-1:2009, ГОСТ 20999-83. Производители ЧПУ-станков используют G-код в качестве основы языка программирования своего станка, расширяя его по своему усмотрению. Основная часть команд языка начинается с латинской буквы G, за которой следует номер команды, — отсюда условное название языка «G-код».

Строка программы называется кадром и может состоять из одной или нескольких команд. Пробелы игнорируются. Большинство современных интерпретаторов G-кода не различают строчные и прописные буквы, поэтому допустимо использовать буквы в любом регистре. Обычно программа начинается (а иногда и завершается) кадром, состоящим из символа '%'.

Программа может содержать комментарии. Они размещаются в круглых скобках. Комментарий может размещаться в любом месте кадра, но должен размещаться целиком в одной строке (недопустимо оформлять одной парой круглых скобок многострочный комментарий).

Если в кадре указано несколько команд, они выполняются одновременно. Порядок указания команд в кадре не специфицирован. Обычно сначала указывают подготовительные команды (выбор скорости, системы координат и т. п.), затем указываются собственно координаты, затем режимы обработки и технологические команды.

При указании координат сначала обозначается ось (X, Y, Z), затем значение координаты. Для отделения дробной части от целой используется точка. Незначащие нули можно опускать. Примеры: Y0.2 и Y.2; X12 и X12. и X12.0.

В ЧПУ-станках координаты можно задавать в одной из двух систем координат: «машинной» или «рабочей». Машинная система координат определяется производителем и зависит от геометрии станка (от того, где расположены концевики). Она используется по умолчанию. У оператора также есть возможность выбрать «рабочую» систему координат, задав определённые смещения по осям.

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

Основные команды начинаются с буквы 'G' (General), технологические — с буквы 'M' (Miscellaneous). За буквой следует номер команды. Принято использовать двузначные номера, дополняя одноциферные команды незначащим нулём, но это необязательно (то есть G01 и G1 — эквивалентны).

Кроме того, конкретный интерпретатор G-кода может иметь дополнительный набор команд для конфигурирования и общего управления установкой. Например, в интерпретаторе GRBL такие команды начинаются со знака '$'.

Задание:

  • Выясните, какой командой можно переместить инструмент в заданную точку на холостом ходу.
  • Выясните, какой командой инструмент перемещается в рабочем положении по отрезку прямой.
  • Выясните, какой командой инструмент перемещается в рабочем положении по отрезку дуги по часовой стрелке.
Статья в «Википедии»: G-code.

Описание установки

В данной работе используется макет ЧПУ-станка на основе 3-координатного механизма, способного перемещать каретку с закреплённым на ней инструментом (маркером) в горизонтальной плоскости, а также поднимать и опускать инструмент. В качестве контроллера выступает плата Arduino. Наиболее популярной реализацией интерпретатора G-кодов для Arduino является G-code Realtime Boot Loader (GRBL, «грибл»). GRBL считывает инструкции G-кодов из последовательного порта, которым плата Arduino соединена с микрокомпьютером Raspberry Pi 3B+. Микрокомпьютер используется в качестве пульта оператора для подготовки и визуализации программ в G-кодах. Одноплатный микрокомпьютер Raspberry Pi 3B+ имеет HDMI-интерфейс, 4 USB-порта, Ethernet-порт, использует в качестве накопителя SD-карту и работает под управлением операционной системы Debian GNU/Linux.

Для данного станка по умолчанию настроено, что рабочей плоскостью является плоскость OXY, перемещение инструмента происходит вдоль оси Z. Допустимые перемещения каретки:

  • вдоль оси X — от 0 до −750 мм;
  • вдоль оси Y — от 0 до −1200 мм;
  • вдоль оси Z (перемещение инструмента) — от 0 до −100 мм.

Знакомство с утилитой передачи G-кода

К станку можно подключиться по SSH (желательно использование SSH X11 Forwarding или VNC). Для управления GRBL-контроллером можно воспользоваться программой SourceRabbit или аналогичной.

В стартовом диалоге необходимо выбрать правильный последовательный порт, к которому подключен контроллер — /dev/tty/USB0. При успешном подключении к контроллеру откроется основной экран программы.

В блоке «Connection» отображается текущий статус (Connected) и две кнопки: «Disconnect» (разъединение) — приводит к возврату на стартовый диалог и «Soft Reset» — программный сброс контроллера.

Блок «Machine status» отображает состояние исполнительного устройства и текущие координаты каретки (в машинной и рабочей системе координат). Состояние может быть: «Idle» — устройство бездействует и готово к исполнению команд, «Running» — устройство движется в заданную точку, «Homing» — выполняется поиск начальной позиции, «Alarm» — устройство не готово. При установлении соединения с контроллером происходит его программный сброс. После сброса данное устройство не имеет информации о текущем положении каретки и поэтому переходит в состояние «Alarm». Из состояния «Alarm» устройство можно вывести, выполнив команду поиска начальной позиции ($H — homing). Не рекомендуется нажимать кнопку «Kill Alarm», поскольку в этом случае просто сбрасывается флаг состояния «Alarm» без поиска начальной позиции.

Блок «Machine Control» предоставляет «пульт» для ручного перемещения каретки вдоль выбранной оси (X, Y или Z) на заданное значение шага (step).

Блок «GCode File» позволяет загрузить и исполнить программу на языке G-кода из файла.

Справа внизу находятся также вкладка консоли для ручной отправки G-команд, вкладка журнала, вкладка макросов и вкладка с информацией о контроллере.

Полезные команды GRBL:

  • $H — сброс «Alarm» с поиском начальной позиции;
  • $X — сброс «Alarm» без поиска начальной позиции (аналогично кнопке «Kill Alarm»);
  • $G — вывод состояния G-кода (режим движения, система координат, выбор плоскости и т. п.).

Перед началом работы со станком пройдите контроль знаний техники безопасности!

Задание:

  • Подключитесь к Raspberry Pi с выданными вам учётными данными.
  • Запустите в эмуляторе терминала SourceRabbit командой:

java -jar SourceRabbit-GCODE-Sender.jar

  • Запустите командой $H цикл поиска начальной позиции.
  • Выполните команду $G и убедитесь, что в качестве единиц по умолчанию выбраны миллиметры, система координат — машинная.
  • При помощи линейки определите примерное положение предметного столика с закреплённым листом бумаги.
  • Кнопками в блоке «Machine Control» подведите инструмент к ближайшему углу листа бумаги.
  • При помощи линейки определите высоту, на которую надо опустить маркер, чтобы он коснулся листа бумаги.
  • Кнопками в блоке «Machine Control» опустите маркер. Убедитесь, что высота такова, что при последующем движении каретка не столкнётся с предметным столиком.
  • Кнопками в блоке «Machine Control» передвигайте маркер по листу вдоль его границ, чтобы начертить рамочку. Размер рамки должен получиться не менее 180×200 мм.
  • Кнопками в блоке «Machine Control» поднимите маркер на начальную высоту и верните каретку в начальную позицию.

Построение сложных изображений с помощью G-кода

Для автоматизированных систем, предназначенных для подготовки программ для ЧПУ-станков, обычно используют аббревиатуру CAM (computer-aided manufacturing — автоматизированное производство).

Существует достаточно большое количество программных средств для перевода векторного изображения (SVG, PS, DXF и т. п.) в команды G-кода. Познакомимся со свободным векторным редактором Inkscape и его расширением Gcodetools («Инструменты Gcode»). Таким образом, Inkscape+Gcodetools реализуют элементы CAM-системы.

Плагин Gcodetools переводит в G-код векторное изображение, состоящее из контуров (paths), поэтому предварительно все объекты должны быть преобразованы в контуры («Контур» (Path) -> «Оконтурить объект» (Object to Path), затем «Контур» (Path) -> «Динамическая втяжка» (Dynamic Offset)).

Для знакомства с принципами работы системы достаточно будет задать точки ориентации и преобразовать контуры в G-код.

В меню «Точки ориентации» (Orientation points) необходимо выбрать ориентирование по трём точкам (3-points mode), а также глубину по оси Z, на которую будет опускаться инструмент (Z depth), нажать кнопку «Применить» (Apply), затем «Закрыть» (Close). В результате на рабочем листе появится слой с тремя опорными точками, находящимися на конце стрелок и с текстовыми подписями, обозначающими координаты точек. По умолчанию создаются точки с координатами (0;0;0), (0;100;0) и (100;0;Zdepth). Чтобы задать преобразование/смещение координат, необходимо изменить текст в подписях к этим точкам.

В меню «Библиотека инструментов» (Tools library) можно выбрать инструмент, который будет использоваться для построения изображения. От выбора инструмента зависит блок дополнительных настроек G-кода. Несмотря на то, что выбор конкретного инструмента в данной работе особого смысла не имеет, этот этап необходимо пройти, чтобы получить блок дополнительных настроек. Можно выбрать инструмент «по умолчанию» (default), нажать кнопку «Применить» (Apply), затем «Закрыть» (Close). В результате на рабочем листе появится слой с таблицей дополнительных настроек.

В дополнительных настройках имеет смысл изменить:

  • диаметр (diameter) инструмента — для маркера должно быть 3-5 мм,
  • скорость (feed) инструмента — для маркера приемлемо увеличить скорость до 800—1000 мм/мин,
  • шаг заглубления (depth step) — для маркера нет необходимости в пошаговом заглублении, поэтому следует указать значение не менее Zdepth.

Затем можно открыть меню «Контур в Gcode» (Path to Gcode). На вкладке Preferences обратите внимание на имя формируемого файла и папку, куда он попадает. У вас должны быть права записи на эту папку. В качестве безопасной высоты по оси Z (Z safe height for G00 move over blank) должно быть значение от 0 до −5 мм (при использовании машинной системы координат). На вкладке Options интерес представляет значение масштабирования по оси Z (scale along Z axis), которое, впрочем, можно оставить в значении 1. Для выполнения преобразования необходимо переключиться на первую вкладку (Path to Gcode) нажать кнопку «Применить» (Apply), затем «Закрыть» (Close).

Если вы забыли выделить контур для преобразования, утилита выдаст предупреждающее сообщение и продолжит работу:

No paths are selected! Trying to work on all available paths.

Полученный файл можно загрузить в SourceRabbit и исполнить (обратите внимание: Gcodetools создаёт по умолчанию файл с суффиксом .ngc, а SourceRabbit ищет файлы с суффиксом .ng).

Задание:

  • Создайте в Inkscape векторный рисунок, переведите его в контуры.
  • При помощи Gcodetools сформируйте файл с программой в G-кодах. Постарайтесь «попасть» в нарисованную в предыдущем задании рамочку.
  • При помощи SourceRabbit исполните на станке полученную программу.