Управляем Машиной В Groovy/Java. Как Станку С Чпу В Домашней Мастерской Не Превратиться В Героев Мультфильма «Двое Из Шкатулки»

Поговорим на темы от труда и труда, станков, автоматизации в java/groovy до прогнозов о будущем человечества.

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

Рассмотрим подход к отправке инструкций G-кода из JVM и groovy/java на исполнение станком с ЧПУ для автоматизации того, чего нет в системе «из коробки».



Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

Надеюсь, эта публикация будет познавательной для программистов, работающих с JVM, тех, кто интересуется темой IoT, кому не чужды мастерить, кто задумывается о покупке 3D-принтера, кто сделал прототип любой системы и запустил ее.

программное обеспечение на Raspberry PI/Beagleboard Black. То, о чем я вам говорю, можно повторить, используя программное обеспечение с открытым исходным кодом и открытое оборудование.

Содержание

  1. Предисловие
  2. станки с ЧПУ
  3. От модели к G-коду
  4. Программное управление
  5. Управляем машиной из java и groovy
  6. Красивое далеко.

  7. выводы
По материалам моего мини-отчета на конференции «Разработка программного обеспечения» (SECR-2016) .

А также опыт работы как с аппаратным, так и с программным обеспечением.

Видеозапись доклада.

Огромное спасибо Стасу Фомину Белонесокс для профессиональной видеозаписи и быстрого монтажа!!! Предисловие Обращение к слушателям.

Доброе утро, дорогие слушатели.

Спасибо всем, что проснулись и пришли утром в выходные.

Я рада видеть вас в зале! Времени на доклад у нас мало, поэтому секции вопросов и ответов в зале не будет, но вы сможете подойти и задать вопросы после доклада.

На последнем слайде указан адрес электронной почты, на который я также отвечу.

Ваше мнение об отчете очень важно для меня.

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

Это будет открытое/бесплатное мероприятие, и присоединиться к нему смогут все, кто находится в Москве.

Надеюсь в скором времени найти место проведения, подготовить примеры и разместить информацию о месте проведения на сайте meetup.com. Если кому-то интересно, можете написать на мой адрес электронной почты и я пришлю вам уведомление о мероприятии.

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

Начнем доклад на тему «Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки».

Кто смотрел и помнит, о чем этот мультфильм? Голоса из зала: «Все смотрели» Отлично, тогда вы примерно знаете, о чем я буду говорить.

И в конце доклада мы попробуем программно управлять машиной на Java и Groovy. Еще вопрос к зрителям.

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

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

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

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



Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

Либо ты управляешь теми, кто работает, либо впрягаешься и делаешь работу вместе со всеми – вместе тянешь одно «плечо».

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



Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

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

Все, наверное, помнят, как мальчик из мультфильма «Вовка в тридевятом царстве» хотел, чтобы его желания исполнились, но в то же время он не хотел ничего делать сам и не хотел ничему учиться.



Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

В тридевятое царство из гроба пришли двое, одинаковые внешне.

Они были исполнительными и для него сделали все, но совсем не так, как ему нужно .

Вы также, вероятно, помните этих двоих.



Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

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

Когда страус побежал, стервятник остановил его и произнес фразу «Лучше потерять день, чем улететь за пять минут».

Выполняя часто повторяющуюся работу, нужно задуматься, не проще ли потратить «день» на ее автоматизацию.

Технологии, о которых мы сейчас поговорим, родом из семидесятых годов 20 века.

Это машины, управление которыми осуществляется с помощью программ, хранящихся в памяти.

Раньше это были перфокарты, сейчас – флешки.

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



Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

В домашней мастерской все более прозаично.

В основном машины представляют собой ассортимент с AliExpress или наших импортеров, переименованных в «производителей» из Поднебесной.

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



Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

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

С другой стороны, собрать его самостоятельно – очень интересный опыт. Также есть проекты Shapeoko, MechMate CNC Router, Zenbot CNC и др.

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

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

Также можно изготовить деталь для ремонта любой бытовой техники.

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

На одном станке можно делать запчасти для другого ЧПУ, как и в случае с 3D-принтером, но не ограничиваясь пластиком как материалом для изготовления деталей.

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

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

Стервятник говорит, что крылья лучше, страус говорит, что ноги лучше.

В конце мультфильма появляется ящерица и говорит, что Главное - это хвост. Вначале ее хвост спас ей жизнь.

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



Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

Электропривод таит в себе опасность при контакте с корпусом при нарушении изоляции.

Даже не пытайтесь тушить работающий электропривод водой, не отключив к нему питание.



Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

От модели к G-коду Почти каждый станок с ЧПУ управляется с помощью G-кода.

Это текстовый формат команд и данных, принятый в качестве международного стандарта.

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



Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

Управляющая программа на этом суппорте фрезерует треугольник на плоскости.

G21 говорит, что единицы измерения в программе будут в миллиметрах.

М3 Включает шпиндель с заданной скоростью вращения S. G0 перемещает рабочий инструмент на холостом ходу с линейной интерполяцией от текущей координаты к заданным в команде.

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

M5 останавливает шпиндель.

М2 завершает программу

В этом примере нет ничего сложного, но на практике G-код редко пишут вручную.

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

Вы можете создавать контуры в векторном редакторе, таком как Inkskape, и использовать программное обеспечение с открытым исходным кодом GCodeTools, чтобы превратить его в программу G-кода для машины.

Такой подход удобен для дизайнеров.



Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

Для тех, кто привык работать в Blender, можно превратить 3D-модель в 2,5D-рельеф с помощью BlenderCAM с открытым исходным кодом.



Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

Промышленные САПР стоимостью десятки и сотни тысяч долларов недоступны для хобби.

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



Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

Хоть он и не сравним по удобству и функциональности с дорогими CAD/CAM-пакетами, но в простых задачах для проектирования его вполне может хватить.

Его форк HeeksCAD более развит с точки зрения CAM и позволяет создавать управляющие программы на основе модели/чертежа.



Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

Программное управление Что непосредственно управляет координатным столом, фрезой или другим станком?

Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

Это специализированные DSP-контроллеры с ЧПУ, к которым можно подключить флешку и станок.

Или это платы расширения для одноплатного компьютера (Raspberry PI, BeagleBoard) для управления электроприводом и шпинделем.

Либо это обычный персональный компьютер с портом LPT, либо карта расширения PCI/PCIe для взаимодействия с электроникой машины.

Герой этого репортажа – персональный компьютер.

Потому что вы можете управлять машиной и интерпретировать g-код с помощью программы LinuxCNC с открытым исходным кодом.



Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

Программное обеспечение работает на ядре Linux реального времени.

Для одноплатных компьютеров Raspberry PI, BeagleBoard Black используется его форк Machinekit для ARM в виде готового ISO-образа.

Существует сборка Machinekit для одноплатного чипа C.H.I.P. за 9 долларов.

LinuxCNC — это конструктор и на основе его конфигурации можно построить практически любую конфигурацию.

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

Его используют как при модернизации промышленной электроники с ЧПУ, так и в новых станках.



Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

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

Расширить внутреннюю логику реагирования на события в LinuxCNC можно с помощью LD-диаграмм и даже скриптов оболочки или консольных программ.

Управляем машиной из java и groovy Вместо его GUI-составляющей мы попробуем управлять ЧПУ и передавать команды интерпретатору через внешний API, используя привычные нам технологии разработки программного обеспечения.

Для всех, кого заинтересует эта идея, вы можете найти компонент PoC Apache Camel и библиотеку для JVM. верблюжий код на гитхабе.

Существует множество решений для Интернета вещей, основанных на Java, зачастую это серверы для IoT-шлюзов.

Теперь можно интегрировать управление станком на LinuxCNC в сложные «облачные» сценарии автоматизации с доступом в Интернет. С помощью Eclipse Kura, Apache Camel и с помощью этого конструктора собрать работающее решение из сотен готовых компонентов не составит труда.

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

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

Под капотом библиотека будет отправлять команды telnet процессу linuxcncrsh из LinuxCNC/Machinekit.

  
   

//maven dependency com.github.igor-suhorukov:camel-gcode:0.1 import com.github.igorsuhorukov.gcode.GCodeClient; public class Gcode { public static void main(String[] args) throws Exception { String hostname = "beaglebone.local"; int port = 5007; try (GCodeClient gCodeClient = new GCodeClient(hostname, port)) { System.out.println(gCodeClient.login("EMC", "JVM", "1.0")); gCodeClient.sendCommand("set mode manual"); gCodeClient.sendCommand("set estop off"); gCodeClient.sendCommand("set machine on"); for (int axis = 0; axis < 4; axis++) gCodeClient.sendCommand("set home " + axis); System.out.println(gCodeClient.sendCommand("get abs_act_pos")); gCodeClient.sendCommand("set mode mdi"); gCodeClient.sendCommand("set mdi g0 x3 y4"); gCodeClient.sendCommand("set mdi g0 x5 y2"); } } }

В этом примере портал машины перемещается на максимальной скорости холостого хода сначала в координаты (3;4), а затем в (5;2).

Следующий пример Groovy-программы на основе фреймворка Apache Camel и компонента для отправки команд на машину com.github.igor-suhorukov:camel-gcode

@Grab('com.github. igor-suhorukov:camel-gcode:0.1 ') @Grab('org.apache. camel:camel-groovy:2.18.0 ') @Grab('org.apache. camel:camel-core:2.18.0 ') @Grab('org.apache. camel:camel-jetty:2.18.0 ') @Grab('org. slf4j:slf4j-simple:1.6.6 ') import org.apache.camel.builder.RouteBuilder import org.apache.camel.impl.DefaultCamelContext import com.github.igorsuhorukov.smreed.dropship.MavenClassLoader def camelContext = new DefaultCamelContext() camelContext.setName("I'll be back") camelContext.addRoutes(new RouteBuilder() { def void configure() { from(' jetty:http://0.0.0.0:9090/moveTo ').

routeId('CamelCNC') .

process{ it.in.body = ("set mdi g0 x${Math.round(Math.random()*10)} y${Math.round(Math.random()*10)} z1") } .

to('gcode:Эhost=beaglebone.local&port=5007&autoHomeAxisCount=4') } }) addShutdownHook{ camelContext.stop() } camelContext.start() def HawtIo = MavenClassLoader.usingCentralRepo() .

forMavenCoordinates('io. hawt:hawtio-app:2.0.0 ').

loadClass('io.hawt.app.App') Thread.currentThread().

setContextClassLoader(HawtIo.getClassLoader()) HawtIo.main('--port','10090')

Вы можете запустить пример, используя java -jar groovy-grape-aether-2.4.5.4.jar CamelCNC.groovy

Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»



Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

В этом примере приложение Groovy соединяет компоненты Jetty и Gcode, генерирует маршрут в groovy DSL Camel, а также загружает и запускает веб-консоль для мониторинга HawtIo. При каждом запросе по http к HOST:9090/moveTo создается новая команда с перемещением в случайные координаты по осям X и Y и отправляется в LinuxCNC и станок на исполнение, а сгенерированная команда возвращается клиенту в виде HTTP-ответ. Веб-консоль прослушивает адрес ХОЗЯИН :10090/хаутио Довольно сложные вещи можно легко сделать благодаря волшебству Apache Camel, Groovy и HawtIo. Красивое далеко.

Мы можем погадать на будущее.

Существует тенденция, что все, что можно автоматизировать и экономически целесообразно это сделать, автоматизируется.

На днях появилась новость о Foxconn в Китае и о 40 000 станках на их производстве, что сократило рабочие места на предприятии.

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

Хоть я и не Нострадамус, сейчас становится ясно, что рабочие места в будущем исчезнут из-за автоматизации.

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

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

А личное ЧПУ-производство проникнет в каждый цех.

Каким именно будет будущее? Будут ли роботы порабощать или уничтожать людей?

Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

Или люди тоже будут управлять роботами.



Управляем машиной в Groovy/Java. Как станку с ЧПУ в домашней мастерской не превратиться в героев мультфильма «двое из шкатулки»

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

В этом случае начать нужно с создания модели.

Следующий шаг — превратить эту модель в программу управления машиной.

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

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

Бегать с флешкой между компьютером и машиной точно не стоит; вам необходимо передавать команды по сети.

Пусть машина сделает всю работу.

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

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

Ссылки

Для всех, кого не волнует, является ли САПР продуктом с открытым исходным кодом, если программное обеспечение можно легально использовать бесплатно, прочтите публикации и видеокурсы авторство ДИХАЛЬТ Теги: #java #Groovy #apache Camel #linuxcnc #machinekit #gcodetools #freecad #heekscad #Inkscape #blendercam #G-code #beagleboard black #Raspberry Pi #grape #hawtio #open source #programming #java #Groovy & Grails #CAD /CAM
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.