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

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

От токарных до лазерных

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

Как программируют станки на заводах
Токарный станок с ЧПУ, который вытачивает детали из металла.

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

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

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

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

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

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

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

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

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

Привод — это то, что заставляет что-либо двигаться. Например, чтобы сделать роборуку, н​​ужно 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).

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

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

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

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

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

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

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

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

Текст:

Михаил Полянин

Редактор:

Максим Ильяхов

Художник:

Даня Берковский

Корректор:

Ирина Михеева

Вёрстка:

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

Соцсети:

Олег Вешкурцев

Алгоритмы — основа разработки
Изучите алгоритмы, чтобы легко проходить ИТ-собеседования и делать более совершенный софт. Старт — бесплатно. Дальше — помощь с трудоустройством.
Новый уровень тут
Алгоритмы — основа разработки Алгоритмы — основа разработки Алгоритмы — основа разработки Алгоритмы — основа разработки
Получите ИТ-профессию
В «Яндекс Практикуме» можно стать разработчиком, тестировщиком, аналитиком и менеджером цифровых продуктов. Первая часть обучения всегда бесплатная, чтобы попробовать и найти то, что вам по душе. Дальше — программы трудоустройства.
Начать карьеру в ИТ
Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию Получите ИТ-профессию
Еще по теме
«Никто не верил, что я сама пишу код»

Анастасия Никулина: о дата-сайнс, ютубе и программировании.

Бустинг — ещё один способ машинного обучения

Как с помощью слабых алгоритмов сделать сильный.

medium
Как быстро освоить новую технологию
Как быстро освоить новую технологию

Пробуем метод разработчика из Яндекс.Практикума.

medium
Отлить в бетоне!
Отлить в бетоне!

Сага о генераторах статических сайтов.

medium
JavaScript для новичков: чем опасны нестрогие типы данных
JavaScript для новичков: чем опасны нестрогие типы данных

В JavaScript есть удобная штука, которая может сильно вам навредить.

medium
130 тысяч рублей за работу бэкенд-разработчика. Что это значит?
130 тысяч рублей за работу бэкенд-разработчика. Что это значит?

Что нужно делать, чтобы получать столько же.

easy
Как попасть в ИТ и построить карьеру: бесплатная рассылка

Ваш гид по быстрому старту карьеры.

easy
Роман Халкечев, руководитель отдела аналитики в Яндекс.Еде и Лавке
Роман Халкечев, руководитель отдела аналитики в Яндекс.Еде и Лавке

Часть 2: о Яндекс.Еде и Лавке, аналитических задачах и оптимизации бизнеса на основе данных.

easy
Тысячи пользователей онлайн: как работать, когда у тебя высоконагруженный проект
Тысячи пользователей онлайн: как работать, когда у тебя высоконагруженный проект

Скорость решает.

easy
Начинающим программистам: что такое фреймворки и библиотеки
medium
За что не любят программистов

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

easy
Почему разработчик сегодня злой
Почему разработчик сегодня злой

Три главные проблемы в работе программиста и как с ними быть.

easy
Почему разработчики любят запускать Doom на разном железе

Потому что это очень просто.

easy
easy