Как пишутся программы для чпу станков

Программирование ЧПУ — важнейшая составляющая процесса проектирования и производства. От того, насколько чистым будет код, зависит время тестирования, отладки и запуска детали в производство. Станки с числовым программным оборудованием различаются по назначению и методам программирования.

Типы станков с ЧПУ

фото станка ЧПУ

Одна и та же деталь может подвергаться обработке на разных станках. В зависимости от геометрии модели, наличия или отсутствия отверстий, деталь может проходить несколько последовательных технологических операций на разных станках с ЧПУ:

  • токарном — для придания формы, отрезания, нарезания канавок, подрезания;
  • фрезерном — для резания плоскостей, создания лысок, пазов;
  • сверлильном — для создания технологических отверстий и долбления;
  • шлифовальном — с целью окончательной или черновой обработки деталей, удаления сварных швов;
  • многоцелевом, который производит все операции предыдущих станков.

Как правило, на предприятии есть различные типы станков с ЧПУ, которые позволяют выполнять все необходимые технологические операции для создания как простых серийных деталей, так и сложных в стереометрическом отношении моделей.

Программирование станков с ЧПУ

фото пульта управления

Для того чтобы оборудование могло выполнять операции, ему необходимо задать набор команд, так называемый G-код. Он трансформируется из программы, написанной разработчиком, в постпроцессоре. Отсюда система управления станком получает информацию о задаче и этапах ее выполнения, затем формирует профиль, и станок выполняет технологические операции.

Чтобы в реальности воплотить конструкторские или инженерные разработки, нужно написать программу для создания конкретной детали. Это делает программист с помощью CAD-софта.

Важно! В зависимости от поколения станков, управляющей системы, типа оборудования применяются различные платформы программирования.

Методы программирования на станках с ЧПУ

фото

Способов написания программ для оборудования с ЧПУ несколько:

  • ручной — разработчик или проектировщик создает код на удаленном ПК, затем переносит готовую программу в станок с помощью CD-диска, флеш-накопителя, дискеты или посредством интерфейсного кабеля;
  • с пульта ЧПУ — оператор с клавиатуры вводит набор предустановленных команд, которые выполняет станок;
  • автоматизированным методом с помощью интегрированных CAD/CAE/CAM систем.

Важно! Автоматизированные методы применимы только в станках последних поколений, включенных в единую компьютерную систему производственного процесса.

Ручной способ программирования чаще всего применяют для однотипных и простых токарных работ, на фрезерных станках для обработки по двум координатам, для сверления групп отверстий.

пульт управления ЧПУ

Программирование с пульта позволяет осуществлять запуск тех же операций, что и при ручном методе, плюс переходы при 2,5–3-координатных перемещениях. Такой метод удобен для запуска однотипных операций или корректировки текущих.

принтскрин ПО

Самая сложная и одновременно самая гибкая система — программирование в CAM-средах. Здесь нужно сначала получить эскиз и модель из CAD, выбрать станок в диалоговом окне, задать приспособления, пределы перемещений, инструменты, режимы, способы обработки и коррекции. Постпроцессор, получив данные, преобразует их для генерации в управляющую систему. При этом оператор в удаленном режиме видит виртуальную модель и может в реальном времени вносить коррективы в работу оборудования.

Ручное программирование

пример программного кода

Подавляющее большинство предприятий применяют именно станки, программируемые вручную. Это связано с тем, что основные выполняемые операции — простые и однотипные. Поэтому приобретать современные станки, интегрированные в единую электронную систему, нет необходимости.

Ручное программирование требует скрупулезной точности и выверенности параметров. Оператор должен в совершенстве владеть G-кодом и знать все его команды. Программу технолог создает на своем компьютере в текстовом редакторе. Расширение файла — .txt. Программа включает координаты, по которым двигается инструмент, обрабатывая деталь, и набор кодов. После написания программы ее переносят в управляющую систему станка.

Важно! Для малых предприятий или мелкосерийных производств станки с ЧПУ с ручным программированием — оптимальное решение. Они эффективно справляются с работой, а от технолога или оператора требуется только один раз написать необходимые программы, либо писать их нечасто — по мере необходимости.

На пульте

Многие станки с ЧПУ оборудованы дисплеем и клавиатурой. Поэтому задавать программу оборудованию можно непосредственно с пульта. Производители предусмотрели два варианта постановки задачи станку:

  • ввод G и M кодов с клавиатуры;
  • использование диалогового окна.

Важно! Станки с ЧПУ, оборудованные дисплеем, позволяют запустить имитацию обработки детали с визуализацией на экране. Эта опция дает возможность провести отладку программы до запуска станка.

Автоматизировано

скриншот ПО

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

Предприятия, на которых станки с ЧПУ выполняют большое разнообразие технологических операций, также предпочитают оборудование полностью автоматизированное. Потому что временные затраты на написание программ в ручном режиме будут несопоставимыми со временем работы станков. Либо придется существенно увеличивать штат технологов и операторов.

Преимущества автоматизированных систем:

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

Важно! CAM-системы могут быть языковыми или графическими. Первые требуют знания определенного языка программирования, вторые ведут диалог с разработчиком в интерактивном режиме и значительно более просты в освоении.

Как составлять программы для станков с ЧПУ?

Чтобы написать программу для оборудования с числовым программным управлением, нужно придерживаться определенных правил:

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

Чем сложнее деталь, тем больше кадров будет содержать УП.

Модели САПР

модель самолета

Системы автоматического проектирования с появлением ПК стали называть CAD-системами — компьютерного проектирования. Тем не менее аббревиатура САПР прочно закрепилась, и технологи, разработчики, программисты, проектировщики любой софт для проектирования по-прежнему называют САПР.

модель трубы

Основные модели САПР:

  1. AutoCAD — лидер среди всех систем, программа, позволяющая программировать в 2D и 3D-средах. В AutoCAD можно строить чертежи, трехмерные модели и многое другое. Кроме того, это платформенный софт, то есть не узкоспециализированный, а предназначенный для любых видов проектирования — машиностроительного, автомобильного, дорожного и пр.
  2. Bricscad — альтернатива предыдущему софту. Включает инструменты вариационного моделирования, поддерживает напрямую формат DWG и BIM-технологии.
  3. Autodesk Inventor — профессиональная система 3D-проектирования для промышленного производства. Этот софт поддерживает импорт моделей и файлов из других САПР, интегрирован с иными программными средами линейки — 3ds Max, AutoCAD, Revit и другими. Адаптирован для российских стандартов при проектировании, проведении расчетов, моделировании, создании документации. Включает большой набор стандартизированных моделей, функций, параметров и инструментов.
  4. Компас 3D — отечественный софт для параметрического моделирования. Предназначен для машиностроения, строительства и приборостроения. Полностью поддерживает ЕСКД и ГОСТ.
  5. РТС Creo — «тяжелая» САПР для параметрического проектирования больших сборок (например, для авиа- или кораблестроения).
  6. NX — предназначена для моделирования и проектирования сложных изделий, включая многосоставные. Работает практически на любых ОС, поддержка кросс-функциональной многопользовательской команды, продвинутые возможности для промышленного дизайна. Этот софт позволяет даже моделировать поведение мехатронных систем.
  7. Fusion 360 — облачная САПР, работающая в виртуальной среде. Сохраняет большинство функций десктопного софта, при этом позволяет взаимодействовать пользователям удаленно.

Важно! При выборе ПО следует учитывать задачи, стоящие перед технологом или проектировщиком, объем работы, возможности программы и поддержку ее интегрирования в общую электронную систему производства.

Конвертации файлов

скриншот ПО

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

Заменить ПО на новое не всегда возможно: лицензионный софт стоит дорого. А кроме того, современные программы попросту не будут работать на устаревших ПК с ОС Windows XP или 7. Замена же компьютерного парка и вовсе многим предприятиям не по карману.

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

скриншот ПО

Autodesk выпустил программу DWG TrueView, которая не дает просматривать файлы, но конвертирует их в нужный тип. Правда, она занимает много места на жестком диске, зато бесплатная. Альтернативный вариант — DWG Converter. Он не требует установки, позволяет конвертировать как одиночные, так и пакетные файлы

Онлайн-конвертер CAD Exchanger способен трансформировать в нужный формат практически любой тип файлов. При этом следует помнить, что бесплатно в сутки и месяц можно обработать не более 10 файлов.

Типы программного обеспечения

скриншот программы

Для обеспечения работы оборудования с числовым программным управлением предусмотрены виды софта:

  • CAM — система автоматизированного производства, которая работает с готовыми CAD-проектами;
  • CAD — система автоматизированной разработки — ПО для проектирования и создания 3D-объектов на основе определенных параметров;
  • CAE — вспомогательный софт, необходимый на предварительном этапе: подготовки проекта, анализа, моделирования, планирования;
  • CAD/CAM-пакеты для полнофункциональной разработки и внедрения проекта в модуль ЧПУ.

Для токарных станков с ЧПУ

фото

Лучшие CAD-программы для станков данного типа:

  • AutoCAD — полифункциональная проектировочно-чертежная система;
  • SolidWorks — ПО для проектирования 2D и 3D объектов любого назначения и сложности;
  • Pro/ENGINEER — пакетный софт для решения инженерных и конструкторских задач.

Эти программы дают широкие возможности для проектирования любых деталей — от простых до геометрически сложных.

скриншот ПО

CAM-софт для формирования управляющей программы:

  • SprutCAM — отечественная разработка для формирования УП по токарной обработке любых деталей и изделий;
  • Fusion 360 — комплексная система, позволяющая и проектировать и ставить задачи управляющей системе станка;
  • EdgeCAM — эффективное ПО, позволяющее формировать УП для токарного станка.

Эти программы трансформируют созданную в CAD-софте модель в понятный для станка код.

Важно! Для экономии можно устанавливать сразу пакетные системы, совмещающие в себе функции CAD/CAM. Например, AutoCAD или «Компас-3D».

Для фрезерных станков с ЧПУ

В зависимости от стоящих перед технологом задач, подбирают ПО для работы с фрезерным станком. Для создания эскизов для плоской резки подойдут:

  • CorelDraw — графический редактор для векторных изображений;
  • LibreCAD — программа, создающая 2D-чертежи;
  • Adobe Illustrator — программа для создания и обработки векторных изображений.

Для работы с 3D-моделями можно использовать тот же софт, что и для токарного станка.

Дополнительно стоит присмотреться к программам:

  • MasterCAM — софт для 2D/3D моделирования и формирования управляющих команд для станка;
  • ArtCAM — система, работающая с векторной и растровой графикой, позволяет выстроить траекторию движения фрезы для создания рельефных поверхностей;
  • Mach3 — программа для управления фрезерным станком на базе ОС Windows, она позволяет создавать пользовательские коды, управлять фрезерованием по шести осям, генерировать G-коды.

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

фото

Для создания программы, которая осуществит реализацию инженерной разработки, технолог должен владеть специальным кодом, который схож с C# или Basic. Это специализированный G-code, который способны распознавать управляющие системы станков с числовым программным управлением.

G-коды

G-коды содержат цифровую маркировку от 00 до 97 и каждый из них соответствует определенной операции или настройке станка — от прямолинейных и круговых перемещений, выбора плоскостей, ввода метрических данных до коррекции и контроля скоростей инструментов и двигателей.

Блоки G –кода

Набор команд для станка с ЧПУ объединяют в блоки. Их записывают в одну строку и управляющая система будет считывать их последовательно слева направо. Если строки недостаточно, код будет продолжен в следующей, и машина перейдет к ней.

Примеры блоков:

  • G17 G54 G90 — этот блок задает параметры (плоскость, нулевую точку и абсолютные значения);
  • G0 X-19 Y-19 — ускоренное перемещение в точку с указанными координатами;
  • G1 ХЗ Y3 F600 — линейное перемещение инструмента в точку с указанными координатами и подачей 600 мм/мин.

Операторы и технологи знают G-коды наизусть, поэтому для них не составляет труда быстро формировать нужные программы.

Программ G –кода

Команды даются последовательно и логично, поэтому программа состоит, как правило, из этапов:

  1. Пуск.
  2. Загрузка инструмента.
  3. Включение шпинделя.
  4. Подача охлаждения.
  5. Перемещение инструмента в исходное положение.
  6. Запуск процесса обработки.
  7. Отключение охлаждения.
  8. Останов шпинделя.
  9. Возвращение шпинделя на исходную позицию.
  10. Завершение программы.

Если обрабатываться будет серия заготовок, то повторяться будут команды со 2 по 9.

Модальные и адресные коды

Модальные необходимы для активации и отключения определенных функций станка, например, охлаждения или запуска шпинделя.

Адресные коды включают координаты по осям для перемещения исполнителя.

Самые распространенные G-коды

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

Код

Команда

Содержание

G0

Быстрое перемещение

Станок использует обе оси, чтобы максимально быстро доставить инструмент в нужную точку

G1

Линейное движение

Перемещает исполнитель по прямой

G2, 3

Дуга по часовой/против часовой стрелки

Обеспечивает плавное перемещение инструмента к заданным координатам через промежуточные, которые и задают дугу

G17, 18, 19

Задание плоскости

Дает команду станку, в какой из плоскостей совершить дуговое перемещение

G43

Компенсация длины инструмента

Задает длину исполнителя относительно оси Z

M-коды

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

Как написать программу ЧПУ станка с нуля?

пример кода

Для того чтобы составить правильный набор команд, нужно понимать принцип работы оборудования, знать режимы и инструменты резания, допуски и посадки, технологический процесс производства детали, основы программирования в G и M кодах. Последнее — самое простое из того, что нужно знать.

Сам процесс программирования состоит из последовательности действий:

Команда

Этап

Т5/Т0505

Вызов исполнителя

G10-G54

Значение соответствующего инструмента

G97 S1000 CW/CCW

Запуск вращения главного шпинделя со скоростью 1000 об/мин по часовой стрелке/против часовой стрелки

М08

Запуск охлаждения

G00 X… Y…

Быстрое перемещение исполнителя в заданные координаты

G02 X… Z… R…

Работа исполнителя по дуге по часовой стрелке

М30

Останов программы

Важно! Чтобы самостоятельно составлять программы для станков с ЧПУ, недостаточно знать команды, нужно предварительно построить чертеж в координатной сетке, чтобы понимать, куда и зачем будет передвинут режущий инструмент.

Самоучители для начинающих по основам программирования станков с ЧПУ

скриншот

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

  • Пайвин А. С., Чикова О. А. Основы программирования станков с ЧПУ;
  • Должиков В. П. Основы программирования и наладки станков с ЧПУ;
  • Сосонкин В. Л. Методика программирования станков с ЧПУ на наиболее полном полигоне вспомогательных G-функций;
  • Учебное пособие оператора станков с ЧПУ;
  • Основы программирования ЧПУ;
  • Ловыгин А. А., Теверовский Л. В. Современный станок с ЧПУ и CAD/CAM-система;
  • Уроки ЧПУ начинающим;
  • Турчин Д. Е. Программирование обработки на станках с ЧПУ.

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

Программированием ЧПУ овладеть несложно. Обычно этот процесс занимает не больше нескольких недель. Конечно, под руководством опытного наставника процесс пойдет быстрее, но это не всегда осуществимо. Начинать освоение программирования ЧПУ нужно со знакомства с самим оборудованием и технологическими операциями по обработке деталей.


  • 24 августа 2020

  • 164399

Фрезеровка — один из способов переноса детали из виртуального мира в реальный. Если простые детали можно изготовить на станках для ручной обработки, то сложные поверхности и 3D-формы возможно создать только при помощи станка с ЧПУ. В этом уроке мы разберем, как подготовить программу для такого станка и запустить его в работу.

Для успешного освоения материала рекомендуем вам изучить следующие понятия:

Область техники, связанная с применением цифровых вычислительных устройств для управления производственными процессами.

Язык программирования устройств с ЧПУ

Процесс создания управляющей программы для станка: указание размеров, выбор инструмента, написание траекторий обработки

  • Большие станки для работы с листовыми материалами.
  • Многокоординатные станки для обработки жаропрочных материалов: титана и суперсплавов.
  • Настольные станки с ЧПУ для небольших деталей.

Этапы создания детали на фрезерном станке с ЧПУ

1. Подготовка 3D-модели, по которой будет производиться фрезеровка.

2. Процесс CAM. Нужно указать станку, как вырезать деталь из тела заготовки:

  • задать размер детали,
  • подобрать инструмент для обработки,
  • указать траекторию движения станка.


3.
Загрузка программы обработки в станок с ЧПУ.

4. Запуск станка.

Подготовка управляющей программы для станка с ЧПУ

ПК с ПО для написания управляющей программы

1. Для того чтобы написать ЧПУ программу, нужно перейти из режима DESIGN в режим MANUFACTURE.

2. Задаем заготовку нажатием на строку New Setup в меню SETUP.

3. В меню справа в блоке Model нажимаем на кнопку Body и выбираем тело, которое нужно фрезеровать.

Важно

Если в проекте одно тело, оно выберется автоматически

4. Правильно располагаем оси станка. Для этого меняем ориентацию оси Z и выбираем любую плоскость, которая перпендикулярна ей.

Важно

Z — ось, вдоль которой располагается фреза, — расположена перпендикулярно заготовке. X и Y — оси, расположенные влево и вправо

5. В меню справа указываем габариты заготовки.

6. Чтобы расположить нижнюю плоскость тела на нижней плоскости заготовки, в поле Model Position выбираем значение Offset from bottom (Z), а в поле Offset выставляем значение «0».

7. Переносим нулевую точку на нижнюю плоскость заготовки. Для этого в меню справа нажимаем на кнопку Box Point и выбираем нижнюю точку.

1. Переходим в библиотеки инструментов.

2. Создаем библиотеку инструментов.

3. Добавляем нужный инструмент в библиотеку, нажав сначала значок «+», а затем выбрав инструмент.

4. Выполняем настройки инструмента на нескольких вкладках:

  • General — общая информация об инструменте,
  • Cutter — размерные характеристики,
  • Cutting Data — параметры режима фрезерования,
  • Post Processor — настройка номера инструмента.

5. При необходимости добавляем еще инструменты.

Важно

Если станок без автосмены инструментов, то номер инструмента всегда должен быть 1

Написание траекторий черновой обработки детали

1. Для черновой обработки выбираем траекторию Pocket Clearing.

2. Выбираем инструмент для выполнения черновой обработки. После выбора все его параметры отобразятся в меню справа.

3. В том же меню, на вкладке Geometry, настраиваем область обработки траектории. В строке Machining Boundary меняем значение на Silhouette.

4. Чтобы оставить припуск для чистовой обработки, в строке Tool Containment меняем значение на Tool outside boundary и устанавливаем дополнительный зазор в 2 мм.

5. Параметры на вкладке Height обычно настраиваются автоматически, но в некоторых случаях нужны ручные изменения. Например, если нужно изменить верхнюю или нижнюю границу обработки.

6. На вкладке Passes настраиваем режимы резания и стиль поведения инструмента.

7. На вкладке Linking меняем стиль захода фрезы в материал. После всех настроек нажимаем на кнопку OK.

Так выглядит модель после выполнения всех настроек. Синие линии — траектория движения инструмента, желтые — линии холостых перемещений.

Написание траекторий, которые очистят деталь от припуска

1. В меню 3D выбираем строку Horizontal, после чего в меню справа нажимаем на кнопку OK. Данная траектория сама вычисляет плоские поверхности на детали и обрабатывает их.

2. Очищаем припуск с внешнего контура детали. Для этого выбираем строку 2D Contour в меню 2D.

3. Фреза выбирается автоматически. Кликаем на вкладку Geometry, выбираем нижний контур детали и нажимаем на кнопку OK.

4.
Проверяем с помощью симуляции, как будет происходить фрезерование. Синие области — это поверхности, на которых остался припуск, а зеленые — поверхности, которые уже обработаны в допуск.

Обработка отверстий, скруглений и фасок

1. Для обработки отверстий выбираем строку Bore в меню 2D и нажимаем на отверстия. При этой операции фреза будет двигаться спирально.

2. Так как в отверстиях есть фаски, выбираем высоту фрезерования вручную и делаем подачу резания меньше.

3. Чтобы делать скругления, используем траекторию Scallop — она находится в меню 3D.

4. Выбираем из библиотеки инструментов сферическую фрезу.

5. В меню справа переходим на вкладку Geometry, на модели обозначаем область скругления двумя контурами и выбираем область с большим количеством скруглений.

6. Ставим галочку в меню рядом с Contact Point Boundary. Она нужна, чтобы фреза обработала самую нижнюю часть скругления.

7. Чтобы фреза не трогала уже обработанную поверхность, ставим галочку рядом с Avoid/Touch Surfaces и выбираем эти поверхности.

8. На вкладке Passes настраиваем шаг чистовой обработки, ставим галочку рядом с Smoothing и нажимаем OK.

9. Чтобы посмотреть, все ли правильно сделано, запускаем симуляцию.

10. Для обработки фасок на отверстиях нужно использовать ту же траекторию, что и для скругления. Поэтому можно скопировать настройки предыдущей траектории и поменять в них область скругления.

Перевод с языка программы в G-код

1. Нажимаем на кнопку постпроцесса и в открывшемся окне выбираем станок и его модель.

Важно

Перед этим нужно выбрать весь этап обработки, а не отдельную траекторию

2. Сохраняем программу на съемном носителе.

Станок с ЧПУ Roland MDX‑40

Заготовка из модельного пластика

Ноутбук с ПО для управления станком

1. Проводим две диагональные линии и отмечаем их пересечение, чтобы найти центр заготовки.

2. Подписываем оси фрезеровки.

3. Обклеиваем нижнюю часть заготовки малярным скотчем и обрезаем лишнее.

4. Сверху приклеиваем полоски двухстороннего скотча.

5. Наклеиваем заготовку на стол фрезерного станка.

Подготовка и запуск станка

Важно

Работать со станком нужно в очках и респираторе. Перчатки же можно использовать только при выключенном станке

1. Устанавливаем фрезу в цангу и затягиваем ее ключами.

2. Зануляем фрезу, используя автоматическую таблетку зануления. Для этого подводим фрезу к ней, в программе нажимаем Занулить и убираем таблетку.

3. Зануляем заготовку по осям X и Y. Чтобы это сделать, подводим фрезу к перекрестью диагоналей и обнуляем координаты.

4. Загружаем управляющую программу и запускаем станок.

В этом уроке мы изучили общий алгоритм работы станков с ЧПУ, научились писать программу для фрезерного станка и подготавливать станок к работе. А сейчас пройдите небольшое задание, чтобы закрепить свои знания.

Для закрепления полученных знаний пройдите тест

Что входит в процесс CAM?

Подбор инструмента для обработки

Загрузка программы обработки в станок с ЧПУ

В процессе фрезерования на станке с ЧПУ будут использованы несколько фрез. При написании программы управления специалист каждому инструменту поставил порядковый номер 1. Почему?

Станок без автосмены инструментов

Фрезы будут работать одновременно

Специалист допустил ошибку

Станок сам поменяет инструменты, основываясь на написанной программе

К сожалению, вы ответили неправильно на все вопросы

Прочитайте лекцию и посмотрите видео еще раз

Но можно лучше. Прочитайте лекцию и посмотрите видео еще раз

Вы отлично справились. Теперь можете ознакомиться с другими компетенциями

Программисты востребованы везде, даже на производстве. Дело в том, что изготавливать каждую деталь вручную долго, поэтому нужна автоматизация. А где автоматизация, там программы и алгоритмы. Сегодня покажем вам направление в ИТ, о котором мы ещё не говорили: программирование станков с ЧПУ.

Как программируют станки на заводах

Токарный станок с ЧПУ, который вытачивает детали из металла.

Что такое станки с ЧПУ

Чтобы понять, что такое станок с ЧПУ, нужно сначала понять, что такое обычный станок, например токарный. У тебя есть некая металлическая заготовка, например цилиндр. Ты закрепляешь его на станке. Место закрепления начинает вращаться (это место называют шпинделем), вместе с ним вращается закреплённая заготовка, а токарь с помощью специального резца может вырезать из заготовки деталь нужного размера и формы. Пока что всё вручную. 

Теперь берём этот же станок, но делаем так, чтобы резцы ездили сами в разных плоскостях. Вешаем всевозможные датчики — скорости вращения, температуры и нажима. И делаем так, чтобы деталь вытачивал не токарь, а сам станок. 

Чтобы управлять таким автоматическим станком, нужен некий управляющий модуль — который заставит заготовку вращаться, а резцы ездить в нужные стороны. Вот этот блок и называют блоком ЧПУ — числового программного управления. 

Каждый блок ЧПУ соединён со всеми основными частями станка, чтобы ими можно было управлять или контролировать их состояние. Например, в токарном станке ЧПУ будет следить:

  • за скоростью вращения заготовки,
  • направлением вращения,
  • положением резцов,
  • температурой режущей кромки,
  • температурой детали,
  • силой нажима резца на деталь,
  • перемещениями резцов и направляющих.

Блоки ЧПУ нужны для того, чтобы автоматизировать работу станка. Ты программируешь, что куда должно ездить и как вращаться, а станок это исполняет. 

Что на производстве можно запрограммировать

Запрограммировать можно всё, в чём есть блок ЧПУ — хоть станок для работы по дереву, хоть установку для лазерной резки, хоть манипулятор с точечной сваркой. Главное, чтобы нужные части производственного агрегата были снабжены приводами и датчиками.

Привод — это то, что заставляет что-либо двигаться. Например, чтобы сделать роборуку, н​​ужно 5–6 приводов, которые будут приводить в движения сочленения роборуки. Приводу можно сказать: «Разогнись на столько-то градусов» или «Повернись так-то», и он будет приводить в движение то, что к нему присоединено. 

Датчик — это штука, которая собирает какие-то данные. Например, скорость вращения, температуру, нажим, угол сгиба. Благодаря датчикам можно сказать: «разгибай привод такой-то, пока не почувствуешь датчиком нажима такую-то силу нажима». 

Как пишутся программы для ЧПУ

Есть два варианта: автоматически создать программу из макета детали или написать её с нуля.

Чаще всего используют первый вариант — сначала рисуют в деталь в 3D (для этого есть специальный софт), а потом программа сама формирует нужный код для станка, чтобы получилась нарисованная деталь. Минус такого подхода в том, что код может получиться неоптимальным: будет выполняться слишком долго или в процессе получается много отходов.

Как программируют станки на заводах

Трёхмерная модель детали, на основе которой будет сгенерирован код для станка.

Второй подход — написать программу вручную с нуля. Для этого нужно идеально знать все параметры станка и возможные состояния каждого датчика. Это сложнее, зато даёт больший контроль над тем, как изготавливается деталь.

На практике обычно делают так: рисуют трёхмерную модель, выгружают на основе неё код для ЧПУ, а потом дорабатывают его, если требуется.

Как программируют станки на заводах

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

На чём пишут такие программы

Код для станков с ЧПУ пишут на языке программирования G-code. Это относительно общий стандарт для всех станков с ЧПУ, но детали, коды и последовательности у разных производителей отличаются. Проще говоря, нельзя просто так перенести программу со станка одной фирмы и запустить на станке другой фирмы — команды могут не совпасть.

Язык G-code так называется потому, что в нём почти все команды начинаются с буквы G, за которой идут числа — команды для станка. Ещё есть буква M — она используется для обозначения дополнительных кодов и O — для подпрограмм. Но это деление условно и может меняться у каждого производителя станков.

Как выглядит программа для ЧПУ

Если мы заглянем в код, то увидим такое:

N1 G17 G20 G34 G40
N2 T1 M16
N3 S8600 M2
N4 G54
N5 M8

N-код отвечает за номер строки — они могут пригодиться, если нам нужно перепрыгнуть на какую-то определённую строку или пропустить часть команд. M отвечают за детали, например, команда N3 S8600 M2 означает, что нужно раскрутить рабочий шпиндель (за него отвечает M2) до скорости 8600 оборотов в минуту (команда S8600).

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

Особенность программирования станков

В отличие от компьютера, где для каждой программы и переменной выделяется новый и пустой участок памяти, в станках всё по-другому. Дело в том, что программа в момент запуска не знает, в каком положении находятся резцы, закреплены ли направляющие и так далее. Если просто запустить программу без подготовки, ЧПУ, например, может подвинуть ещё левее резец, который и так находится в самом левом положении, и тогда может сломаться привод или крепление резца.

Чтобы такого не было, перед каждым запуском в программу встраивают команды обнуления и инициализации, чтобы каждый элемент вернуть в исходное положение. Это лучше, чем просто проверить, что где находится — после обнуления мы точно будем знать, что все элементы станка находятся в известной нам позиции и программа сможет с ними правильно работать.

Также важно понимать, что станки работают с живым материалом: металлом, деревом, акрилом, камнем и т. д. Материал несовершенен, может иметь внутренние дефекты, может плавиться и трескаться. Резцы и шпиндели тоже сделаны из каких-то материалов, у которых есть пороги нагрева, прочности и скорости. Если в компьютерном коде ошибиться и вызвать переполнение памяти, то компьютер просто зависнет. Ты его перезагрузишь, и всё. А у станка можно сломать резец или повредить шпиндель. А стоит это хозяйство будь здоров. 

Получается, это такое же программирование и алгоритмы, как и на других языках?

Независимо от того, программируем ли мы сервер или станки на заводе, в основе всего лежат алгоритмы: логика работы, переменные, циклы, подпрограммы и проверки условий. Поэтому если вы знаете, как устроены алгоритмы и можете программировать на любом языке программирования, то и освоить программирование для ЧПУ будет намного проще.

Главное — не перегрейте резец.

Вёрстка:

Кирилл Климентьев

  1. Написать управляющую программу для станка с ЧПУ можно несколькими способами.
    • Первый вариант:
    • Второй вариант:

В данной статье я опишу общие принципы создания управляющих программ с ЧПУ или как написать программу для станка с ЧПУ. Она подойдет для начинающих в ЧПУ, или для еще не совсем разобравшихся пользователей. Это не инструкция, а общие понятия. Рекомендую к прочтению, если собираетесь более-менее понимать, почему и как двигается ваш станок!

Написать управляющую программу для станка с ЧПУ можно несколькими способами.

Как мы с вами знаем (или еще нет!) управляющая программа (далее УП) состоит из различных команд и координат перемещений станка по его осям (пример – на трехосевом по осям X, Y и Z).

Пример кода УП

Владея данной информацией переходим к основному вопросу – как написать программу для станка с ЧПУ?

Первый вариант:

мы можем использовать язык программирования станков с ЧПУ – g-code. Ознакомившись с основным перечнем команд и значений данного языка программирования, мы сможем написать управляющую программу собственными руками буквально в блокноте!

Но! Технологии уже давно шагнули вперед, поэтому рассмотрим

Второй вариант:

Использование CAM-систем для создания управляющих программ. На сегодняшний день их превеликое множество. Большинство из них совмещают CAD/CAM функции, т.е. помимо управляющих программ в них можно создавать 3д модели и чертежи.

Пример CAM-системы

В каждой такой системе есть основные принципы, общие для всех программ:

  1. Задание системы координат (чтобы совместить нашу УП с координатами станка)
  2. Задание заготовки
  3. Задание инструмента
  4. Задание режимов обработки
  5. Создание траектории обработки (вы выбираете, каким образом будет перемещаться ваш инструмент, для наиболее корректной и чистой обработки)
  6. При помощи постпроцессора мы получаем из траекторий g-codе, который и идет в конечном счете в наш станок с ЧПУ.

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

Если вас интересует обучение одной из CAM — систем, вы можете посмотреть первый урок из моего видео-курса совершенно бесплатно.

С уважением,
Никита Гришанов

Skip to content

Home » Posts » Способы написания управляющих программ к станкам с ЧПУ

Способы написания управляющих программ к станкам с ЧПУ

Так как этот материал рассчитан на тех кто только знакомится с ЧПУ обработкой, объясним принципы работы и основные термины.

Для того, что бы ЧПУ станок обработал заготовку, ему необходим алгоритм, по которому он будет это делать. Такой алгоритм называется Управляющая Программа (УП).

Управляющая программа пишется на языке G-кодов (ISO 7-bit). G-код – это набор стандартных команд, которые поддерживают станки с ЧПУ. Эти команды содержат информацию, где и с какой скоростью двигать режущий инструмент, чтобы обработать деталь.

Передвижение режущего инструмента называется траекторией. Траектория инструмента в управляющей программе состоит из отрезков. Эти отрезки могут быть прямыми линиями, дугами окружностей или кривыми.

Точки пересечения таких отрезков называются опорными точками. В тексте управляющей программы выводятся координаты опорных точек.

Пример программы в G-кодах

Текст программы Описание
G17 G54 G90 Задаем параметры: плоскость обработки, номер нулевой точки, абсолютные значения
T1 M6 Вызов инструмента с номером 1
M3 S8000 Включение шпинделя – 8000 об/мин
G0 X-19 Y-19 Ускоренное перемещение в точку X-19 Y-19
G0 Z3 Ускоренное перемещение на высоту
по Z 3 мм
G1 ХЗ Y3 F600 Линейное перемещение инструмента в точку ХЗ Y3 с подачей F = 600 мм/мин
G2 Х8 Y3 R8 Перемещение инструмента по дуге радиусом 8 мм в точку X8 Y3
М5 Выключение шпинделя
МЗ0 Завершение программы
В этом материале мы рассмотрим 3 способа написания УП:
  1. Написание УП вручную
  2. Написание УП на стойке
  3. Написание УП в CAD/CAM системе

Написание управляющей программы к станку ЧПУ вручную

Для ручного программирования вычисляют координаты опорных точек и описывают последовательность перемещения от одной точки к другой. Так можно описать обработку простой геометрии, в основном для токарной обработки: втулки, кольца, гладкие ступенчатые валы. Делают это в текстовых редакторах, например в Блокноте Виндовс.

Плюсы

  • Быстро
    Это гораздо быстрее, чем остальными способами, при написании очень простых программ.
  • Канонично :)
    Так писали УП 30 и 40 лет назад

Минусы

  • Занимает много времени
    Чем больше строк кода в программе, тем выше трудоемкость изготовления детали, тем выше себестоимость этой детали. Если в программе получается больше 70 строк кода, то лучше выбрать другой способ программирования.
  • Большой процент брака
    Так как отсутствуют инструменты для проверки перед запуском, легко забыть добавить команду, что приведет к поломке детали либо станка. Нужна лишняя заготовка на внедрение, чтобы отладить управляющую программу и проверить на зарезы или недорезы.
  • Поломка оборудования или инструмента
    Ошибки в тексте управляющей программы, помимо брака, также могут привести и к поломке шпинделя станка или инструмента.

Написание управляющей программы к станку ЧПУ на стойке ЧПУ

На стойке с ЧПУ программируют обработку детали в диалоговом режиме. Наладчик станка заполняет таблицу с условиями обработки. Указывает, какую геометрию обрабатывать, ширину и глубину резания, подходы и отходы, безопасную плоскость, режимы резания и другие параметры, которые для каждого вида обработки индивидуальны. На основе этих данных стойка с ЧПУ создает G-команды для траектории движения инструмента. Так можно программировать простые корпусные детали. Чтобы проверить программу, наладчик запускает режим симуляции на стойке с ЧПУ.

Плюсы

  • Наглядность
    Программа пишется прям на рабочем месте и, как правило, специалистом который и будет отслеживать ее выполнение на станке.
  • Быстрая модернизация УП
    Нет необходимости передавать программу на ПК. Можно отредактировать по месту и сразу запустить в работу.

Минусы

  • Простой станка и оператора
    Станок не работает, пока наладчик пишет программу для обработки детали. Простой станка – это потерянные деньги. Если в программе получается больше 130 строк кода, то лучше выбрать другой способ программирования. Хотя на стойке с ЧПУ, конечно, написать программу быстрее, чем вручную
  • Брак
    Стойка с ЧПУ не сравнивает результат обработки с 3D-моделью детали, поэтому симуляция на стойке с ЧПУ не показывает зарезы или положительный припуск. Для отладки программы нужно заложить лишнюю заготовку.
  • Не подходит для сложнопрофильных деталей
    На стойке с ЧПУ не запрограммировать обработку сложнопрофильных деталей. Иногда для конкретных деталей и типоразмеров производители стоек ЧПУ под заказ делают специальные операции.

Написание управляющей программы к станку ЧПУ в СAD/CAM системе

Написание УП в CAD/CAM системе начинается с загрузки 3D-модель детали или 2D-контура. Затем, выстраивается последовательность изготовления детали. Программа рассчитывает траекторию режущего инструмента и выводит ее в G-кодах для передачи на станок. Для вывода траектории в G-код используют постпроцессор. Постпроцессор переводит внутренние команды CAD/CAM на команды G-кода для станка с ЧПУ. Это похоже на перевод с иностранного языка.

Плюсы

Написание программ в CAD/CAM системе является самым прогрессивным и удобным способом.

  • Быстрое написание УП любой сложности
    Сокращает время на создание программ для станков с ЧПУ на 70 %.
  • Исключает брак.
    По отзывам наших пользователей, использование SprutCAM сокращает появление брака на 60 %.
  • Безопасно для инструмента и заготовки
    Продвинутые CAD/CAM системы содержат набор функций для проверки УП. Например, SprutCAM содержит функции контроль столкновений с заготовкой, контроль подачи при врезании и т. п.

Минусы

  • Стоимость
    СAD/CAM систему необходимо покупать.
    Нашу CAD/CAM систему вы можете попробовать перед покупкой. Скачайте 30 дневный полнофункциональный триал CAD/CAM системы SprutCAM →
  • Квалификация технолога
    Для того, что бы писать УП в определенной CAD/CAM системе необходимо пройти обучение.
    Научится работать в нашей CAD/CAM системе SprutCAM вы можете бесплатно пройдя небольшой , но содержательный онлайн курс →

🔥 🔥 🔥
Хотите начать работать в SprutCAM, но не знаете как начать?

Отправьте свои вопросы в форме и мы обязательно Вам ответим.

iV2021-12-30T10:02:47+03:0015 ноября, 2021|

Похожие записи

Заголовок

СПРУТ-Технология 1993 – 2022
Все права зарегистрированы

Page load link

Про язык управления промышленными CNC-станками и всевозможными любительскими устройствами вроде 3D-принтеров написано очень много статей, но почитать о том, какова идеология этого языка и как она связана с аппаратной реализацией — почти негде. Поскольку моя работа связана непосредственно с программированием станков и автоматизацией производства, я попробую заполнить этот пробел, а также объяснить, почему выбрал такой странный заголовок.

Пару слов о себе, и почему я вообще решил написать об этом. Мои рабочие обязанности заключаются, в том числе, в том, чтобы заставить любой имеющийся в компании станок с ЧПУ делать всё, что он вообще может физически. Компания — небольшая (единицы сотен сотрудников), но в арсенале — вертикальные фрезерные автоматы Haas трех разных поколений, горизонтальные фрезерные автоматы DMG Mori нескольких типов, лазерный резак Mitsubishi, токарные автоматы Citizen Cincom и куча всего еще. И весь этот зоопарк управляется программами на G-code. Изучая разные реализации этого языка, я понял, что то, что пишут в учебниках и книгах по нему — не всегда является правдой. В то же время, мне стали понятны многие аналогии между этим языком и Assembler-ом, который я изучал когда-то в институте, и на котором практически ничего серьезного никогда не написал.

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

Для человека, привыкшего писать на языках высокого уровня, G-code, на первый взгляд, кажется ущербным. Он выглядит, как древний Basic с его goto, отсутствием явного определения переменных и прочими архаизмами. Но стоит посмотреть на него внимательнее, и становится понятно, что эта «ущербность» и «архаизм» — результат нескольких практических факторов: это язык довольно старый, он придуман для выполнения в строгих рамках доступных ресурсов, он решает одну и довольно простую задачу. Так что это вовсе не «ущербность», а рациональный минимализм, роднящий его с Assembler-ом.

Базовый синтаксис

Если вы хоть раз видели программу на G-code, то знаете, что это последовательность строк, которые состоят из буквенных кодов, за которыми следуют некие числа. Эти буквенные коды называются «адрес». Причина такого термина очень проста: в первых контроллерах станков программа выполнялась путем записи значений в ячейки памяти, которым были даны буквенные имена. Исполнительные устройства, в свою очередь, читали значения по этим адресам и делали то, что от них требуется. Когда мне приходится обучать операторов, я объясняю им, что контроллер, на самом деле, можно условно поделить на две части: ту, что отвечает за интерфейс с пользователем, и ту, что отвечает за работу механизмов. Они часто и физически разнесены по разным платам. А общение между ними происходит все еще через ограниченный набор этих самых ячеек памяти. Другой вопрос, что со временем, к именованным адресам, которые обозначаются буквами латинского алфавита, добавились еще численные адреса (начинающиеся с символа #), через которые осуществляется доступ к портам ввода-вывода, настройкам, специальным возможностям, и так далее.

Традиционно, когда описывают синтаксис G-code, говорят, что любая команда в программе начинается с буквы G для «подготовительных» кодов и M — для дополнительных, что номер строки начинается с буквы N, а номер программы или подпрограммы — с буквы O. Это, в принципе, правда, но не вся и не всегда.

Во-первых, деление на G- и M-коды — условно. Раньше, во времена первых станков с ЧПУ, это имело практическое значение, потому что связь синтаксиса с аппаратной реализацией была жестче. Сейчас же, это деление практически потеряло свое значение. Однако, правило о том, что M-код может быть только один на строке, все же стоит выполнять, как в старые времена, потому что никогда не знаешь точно, на сколько вольно производитель контроллера станка обошелся с реализацией языка. Например, на станках DMG Mori, автоматическое измерение длины инструмента, установленного в шпинделе, выполняется кодом G324, но если вы просто хотите активировать измерительный сенсор для того, чтобы почистить его (при этом крышка, под которой он скрыт во время обычной работы, открывается, и он выдвигается, но измерение не происходит), вам нужно выполнить код M44. По классической логике языка, использование G-кода для измерения длины — нестандартное решение, потому что вы явно не хотите, чтобы одновременно с этим (одной строкой кода) выполнялись какие-то еще действия. Но в современных реалиях это не имеет значения. На станках Haas та же операция измерения делается вообще запуском специальной подпрограммы с параметрами (тип и номер инструмента), а не одним кодом. Плюс, практически любой контроллер позволяет определять пользовательские G- или M-коды, полностью стирая различие между ними.

Ветвление и циклы

В G-code есть условный и безусловный переход по команде GOTO. Синтаксис адреса (аргумента) этой команды может различаться. Чаще всего, это число, соответствующее номеру строки, заданному на самой строке, как Nчисло. Но некоторые реализации языка, например — синтаксис контроллеров Okuma, позволяют давать строкам буквенные метки. С одной стороны, это хорошо, а с другой — нетипично, что смущает некоторых программистов и операторов.

Условный переход выполняется традиционным IF [выражение] THEN команда. Конструкция ELSE в языке не нужна, потому что если условие — ложно, команда на этой строке не будет выполнена, а будет выполнен переход на следующую строку. Это важно понимать, потому что ошибка с тем, чтобы поместить команду, которая должна быть выполнена только если условие истинно, на следующую строку — одна из самых распространенных в «ручном» программировании. Вероятно, это случается с неопытными программистами, которые до этого привыкли к синтаксису языков высокого уровня. В некоторых реализациях не обязательно и THEN, что добавляет краткости, но не добавляет читаемости. Сравните (даже не имея представления о смысле):

IF [#1 NE 10] THEN #2=20

и

IF [#1 NE 10] #2=20

Циклы в явном виде реализованы конструкцией WHILE [выражение] DOметка ... ENDметка, но, конечно, могут быть реализованы и через условный переход. Синтаксис позволяет также «выпрыгивать» изнутри цикла, используя GOTO. Но «запрыгнуть» внутрь цикла, используя размещенную внутри него метку — нельзя. Возможно, в каких-то контроллерах это и разрешено, но в тех, на которых я это проверял, это вызывает ошибку.

Подпрограммы

История использования подпрограмм в G-code тянется еще со времен перфолент. Существует несколько способов их вызывать, и это достаточно избыточно. Каждая программа или подпрограмма на G-code имеет свой идентификатор — цифровой код. Положение (под)программы определяет, должен ли этот идентификатор начинаться с латинской O или латинской N. По этому коду их можно вызывать разными способами. Эти способы (используемые для этого коды) различаются, например, тем, где контроллер будет искать эту подпрограмму — внутри файла (на станках Haas это код M97) программы или во всех файлах (а это уже M98). Если подпрограмма содержится в файле программы и имеет идентификатор номера строки (N), ее следует вызывать, как «внутреннюю подпрограмму». В этом случае, совершенно не нужно беспокоиться об уникальности идентификатора. Если же подпрограмма имеет идентификатор, начинающийся с буквы O, она может содержаться и внутри файла основной программы, и в отдельном файле. В этом случае, следует заботиться о том, чтобы номер был уникален среди всех программ в памяти контроллера, потому что иначе, контроллер либо выдаст ошибку при попытке записать такую подпрограмму в его память, либо, что хуже, может выполнить первую попавшуюся подпрограмму из нескольких с одинаковыми номерами. На большинстве контроллеров это, к счастью, невозможно. В общем, любую программу можно вызвать, как подпрограмму, только из-за отсутствия кода возврата M99, аналога return, и присутствия кода остановки M30, аналога halt, контроллер просто остановит выполнение. Но в некоторых случаях (когда это действительно конец процесса обработки детали) это может быть совершенно нормальным решением, пусть оно и выглядит некрасиво с точки зрения классического программирования. Это различие, на самом деле, восходит к временам, когда носителем для программ были перфокарты и перфолента, которые нужно было менять вручную, если подпрограмма находилась на другой ленте или в другой пачке перфокарт.

Еще одна существенная разница между тем, как работают вызовы подпрограмм, состоит в том, что при этом происходит со стеком локальных переменных, и как при этом передаются параметры, и передаются ли они вообще. Например, вызывая подпрограмму кодом M98, вы не можете передать подпрограмме параметры в этой же строке. Вам придется положить их в переменные заранее. А вызов через код G65 как раз предполагает передачу параметров, однако стек локальных переменных программы при этом создается новый.

Указатели, переменные, регистры

Хотя G- и M-коды контроллеров — довольно большая тема, переменные — еще более обширная и сложная история. Дело в том, что «железо» станков управляется огромным количеством переменных, напоминающих по принципу их работы регистры процессоров. Доступ к этим регистрам в каких-то случаях возможен по предопределенным буквенным именам, в каких-то — по номерам, в каких-то — по назначенным буквенно-цифровым именам. При этом, свойства, назначение и поведение этих переменных могут быть совершенно разными.

Если вы хоть раз видели программу на G-code для промышленного станка, вы, возможно, заметили, что в начале самой программы, а иногда — в начале каждого фрагмента или подпрограммы, отвечающей за один инструмент или один элемент детали, есть длинная строка кодов, которые вроде бы ничего не делают. Это так называемая safe line. Она нужна, потому что станок помнит свое состояние. Например, содержимое какого-то регистра может сохраняться даже после выключения и включения станка, потому абсолютно всегда имеет смысл в явном виде устанавливать желаемое состояние перед совершением каких-то операций. Это напоминает то, как в web-разработке используются Reset.css и Normalize.css. Иначе, это правило для программистов звучит как «никогда не предполагай, что станок находится в определенном состоянии, если ты его в это состояние не привел». Пренебрежение этим может стоить дорого, включая капитальный ремонт станка. При этом, наиболее надежной практикой считается именно приведение станка в искомое состояние, а не проверка, находится ли он в нем. Почему? Потому что приведение, как правило, делается одной безусловной командой, а проверка требует условного ветвления.

Практический пример. При использовании контроллера Haas, некоторые адреса доступны для чтения только по номеру ячейки памяти, тогда как для записи — по буквенному псевдониму и по номеру. Скажем, чтобы установить скорость вращения шпинделя, достаточно выполнить код S<целое число>, запись IF [S EQ 200] (проверка если скорость шпинделя равна 200) работать не будет, нужно писать IF [#цифровой номер ячейки EQ 200]. Очевидно, что установить нужную скорость — куда проще, чем проверить ее. Более того, я с большим трудом могу себе представить ситуацию, когда проверка была бы действительно нужна, за исключением всего одного случая, с которым мне пришлось столкнуться. Некоторые станки имеют в своем наборе инструментов вентилятор, который устанавливается в шпиндель, как обычный держатель фрез. Это нужно, чтобы сдувать охлаждающую жидкость и стружку с детали после окончания ее обработки. Работа вентилятора зависит от скорости вращения — он складной, ему нужна определенная скорость, чтобы раскрыться от центробежной силы. Но станок имеет функцию изменения скорости вращения шпинделя, чтобы при отладке программы оператор мог на ходу переопределить скорость, заданную программой. Однако, если забыть отключить это изменение, вентилятор может или не раскрыться, или разлететься от слишком быстрого вращения. До того, как я начал работать в компании, этот вопрос никак не решался, считалось, что это ответственность оператора. Я же обратил на это внимание после первого происшествия и написал дополнение к программе для вентилятора, которое запускает вентилятор сразу после его установки в шпиндель, затем читает по нумерованному адресу (на счастье, документированному) значение реальной скорости вращения, делит его на устанавливаемую программой скорость и определяет, не различаются ли они больше чем на 1% (легкие вариации допускаются, хотя 1% — это порог с запасом), и если различаются — останавливает программу, включая индикатор ошибки и выдавая сообщение о том, что переопределение скорости следует отключить. Иронично, что тот же самый контроллер позволяет запретить переопределение некоторых параметров из программы (скорости движения стола, например), но не скорости вращения шпинделя. Почему? Так решил производитель. А моя задача — сделать так, как нужно производству, несмотря на то, что думает производитель, не нарушая гарантию. Для типичного производственного программиста, который не связан с автоматизацией, подобное решение выходит за рамки его деятельности.

Причина, почему я упомянул переменные и регистры вместе — то, что многие контроллеры станков имеют одно общее «пространство адресации» ячеек памяти, которые не только выполняют разную функцию, но и «живут» в совершенно разных аппаратных частях контроллера. В одно и то же пространство отображаются такие разные группы ячеек, как действующая страница стека локальных переменных, глобальные общедоступные переменные, глобальные общедоступные энергонезависимые переменные, выделенные регистры хранения координат перемещения, значения датчиков, порты управления состоянием реле внешнего оборудования, порты ввода состояния внешнего оборудования, состояние аварийной остановки, порты выделенного назначения для устройства смены оснастки, переменные калибровочных данных устройств автоматического измерения длины инструмента и положения/размера деталей, положение рабочих систем координат относительно глобальной системы координат станка, типы, геометрия и время жизни (в секундах или циклах) инструмента. Соответственно, множество разных действий могут выполняться простой записью в ту или иную переменную.

Приведение типов

Это одна из неприятных особенностей многих реализаций G-code и контроллеров. Глядя на параметр X10, логично предположить, что это целое число. Но, в зависимости от того, как контроллер работает и как настроен, машина может интерпретировать и как X10.0 и как X0.0010 — в втором случае, это будет «десять минимальных единиц инкремента для данного контроллера». (Что, в свою очередь, может быть и десять микрон и десять десятитысячных долей дюйма.) Чудовищно, правда? Студенты и начинающие операторы постоянно делают эту ошибку. При этом, это можно настроить в контроллере. Потому, для полной переносимости и независимости от настроек, десятичная точка должна быть в цифровых значениях координат абсолютно всегда.

Хуже становится, когда речь о параметрах, передаваемых вызываемой подпрограмме. Практический пример. Автоматический измеритель длины инструмента Renishaw, установленный на станке Haas, требует для запуска измерения одного инструмента код G65 P9023 A12. T1, где T1 — номер инструмента (1, в данном случае). Но если вы хотите измерить сразу несколько инструментов, код будет G65 P9023 A22. I1. J2. K3. Тут уже параметры должны быть с точкой. Почему? Потому что когда вы пишете в T, этот адрес предназначен для хранения номера инструмента, потому на станке Haas он автоматически интерпретируется как целое число (мне неизвестны реализации, где это может быть дробное число, но я не могу этого исключить, например — у одного инструмента могут быть разные режущие кромки, нумеруемые, как дробная часть его номера). А вот когда параметры передаются через регистры, хранящие локальный стек переменных общего назначения, точка нужа, потому что там может храниться что угодно. При этом, у тех же станков Haas есть две настройки, которые отвечают за изменение этого поведения. Одна касается ввода параметров в контроллер, а другая — интерпретации некоторых именованных регистров использующихся для хранения координат.

Об обучении

Программированию станков с ЧПУ учат очень разными путями и с разными задачами. В одном случае, речь просто о том, чтобы научить пользоваться CAD/CAM, чтобы программист был в состоянии превратить модель (чертёж) в код, исполняемый на том или ином станке, изготавливающий деталь по модели. Это напоминает процесс обучения программированию «общего назначения» в ВУЗе, где вопросы исполнения кода, аппаратной архитектуры и написания кода на Ассемблере рассматриваются очень поверхностно. В других, заметно более редких случаях, процесс более всего напоминает обучение системному программированию, а примеры исполнения кода на конкретной архитектуре входят в него, как неотъемлемая часть. Поскольку я когда-то учился цифровой электронике, и программирование железа на низком уровне было частью этого, пусть и в довольно скромном объеме, второй вариант лично мне как-то ближе, и именно так я старался преподавать это сам, когда у меня была такая возможность.

Я вполне допускаю, что некоторые аналогии в статье могут показаться кому-то натянутыми, но я и не претендую на их точность. Речь, скорее, о сходстве «духа» упомянутых выше языков, о том, что опыт «ассемблерного мышления» может довольно сильно способствовать глубокому пониманию G-code, тогда как опыт программирования только на языках высокого уровня, отделенных от аппаратной реализации, может вызвать недоумение и даже некоторую неприязнь у того, у кого вдруг возникнет необходимость писать вручную для станков с ЧПУ.

Понравилась статья? Поделить с друзьями:

Не пропустите также:

  • Как пишутся параметры длина ширина высота
  • Как пишутся притяжательные прилагательные образованные от имен собственных
  • Как пишутся официальные письма образец
  • Как пишутся притинки на иконе богородицы
  • Как пишутся приставки со словами

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии