Помогите определиться

Mach, популярные и не очень CAD, CAM. Обсуждение и разработка программ для управления станками.
kondrik
Новичок
Сообщения: 14
Зарегистрирован: 11 дек 2012, 16:09
Репутация: 0
Контактная информация:

Помогите определиться

Сообщение kondrik »

С недавних пор у меня какая то навязчивая идея - собрать станок ЧПУ. Если сразу после нового года не пройдет, то точно буду собирать. Аппаратная часть меня пугает больше всего, но не в плане понимания, а в плане сделать аккуратно :hehehe: . А вот софтовая часть наоборот, не пугает ни капли - просто не знаю о ней ничего ни "плохого" ни "хорошего" :hehehe: . В общем, волнует меня вот какой вопрос:

Как вообще устроена связь со станком ? Вот, допустим, я создаю образ детали в SolidWorks или печатку в альтиуме - а что дальше ? Мне генерировать файл для станка и на контроллере (который рулит движками) его обрабатывать ? Или есть софтина, которая будет отдавать команды типа "передвинь головку в позицию Х,У" и т.п.

П.С. управление движками через LPT не вариант.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Помогите определиться

Сообщение Nick »

kondrik писал(а):Мне генерировать файл для станка и на контроллере (который рулит движками) его обрабатывать ?
Да файл для станка генерировать нужно, для этого есть SolidCAM. Файл будет в виде команд передвинь оси в положения ХУZ (если упрощенно).
kondrik писал(а):Или есть софтина, которая будет отдавать команды типа "передвинь головку в позицию Х,У" и т.п.
Да, есть спец софтины, которые управляют станком, они берут подготовленный файл и гоняют по нему станок. Пример Mach, LinuxCNC, TurboCNC и т.д.
Нужны обе программы и та, которая готовит УПравляющую программу и та, которая потом по ней управляет станком.
kondrik писал(а):П.С. управление движками через LPT не вариант.
Почему?
Если совсем не вариант - надо покупать дополнительные платы - KFlop, Mesa и прочие.
kondrik
Новичок
Сообщения: 14
Зарегистрирован: 11 дек 2012, 16:09
Репутация: 0
Контактная информация:

Re: Помогите определиться

Сообщение kondrik »

Nick писал(а):kondrik писал(а):
Мне генерировать файл для станка и на контроллере (который рулит движками) его обрабатывать ?

Да файл для станка генерировать нужно, для этого есть SolidCAM. Файл будет в виде команд передвинь оси в положения ХУZ (если упрощенно).
kondrik писал(а):
Или есть софтина, которая будет отдавать команды типа "передвинь головку в позицию Х,У" и т.п.

Да, есть спец софтины, которые управляют станком, они берут подготовленный файл и гоняют по нему станок. Пример Mach, LinuxCNC, TurboCNC и т.д.
Нужны обе программы и та, которая готовит УПравляющую программу и та, которая потом по ней управляет станком.
kondrik писал(а):
П.С. управление движками через LPT не вариант.

Почему?
Если совсем не вариант - надо покупать дополнительные платы - KFlop, Mesa и прочие.
Не доверяю я ЛПТ. Даже сам не знаю почему, просто не доверяю. Да и хочется, чтобы у станка был ручной режим управления, т.е. без компа простые команды.
А есть ли программа, которая так же управляет станком на уровне команд ? Т.е. прога не двигает сама движки, а передает некоторую команду (например по уарту) контроллеру и ждет от него ответа ? А сам контроллер пусть управляет движками и готовит отчет о выполнении одной команды.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Помогите определиться

Сообщение aftaev »

kondrik писал(а):Не доверяю я ЛПТ. Даже сам не знаю почему, просто не доверяю.
kondrik писал(а):А сам контроллер пусть управляет движками и готовит отчет о выполнении одной команды.
начинай тогда делать свой контроллер :)
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Бродяга
Новичок
Сообщения: 14
Зарегистрирован: 01 июл 2012, 22:48
Репутация: 0
Откуда: С-Петербург
Контактная информация:

Re: Помогите определиться

Сообщение Бродяга »

kondrik писал(а): а передает некоторую команду (например по уарту) контроллеру и ждет от него ответа ?
Может и не дождаться нужной команды и прямо у Вас на глазах сломается фреза об прижим детали. Это медленный последовательный интерфейс. Данные идут последовательными битами. Такая скорость обмена данными не высока. LPT - параллельный интерфейс. Данные выставляются одновременно целыми байтами. Так что преимущество в скорости параллельного интерфейса очевидное. Станок должен быстро реагировать на изменение команд. Теперь представьте программу для ЧПУ, которая выполняется через LPT несколько часов. Сколько она будет выполняться на последовательном интерфейсе? Есть Ethernet >LPT, USB>LPT контроллеры, если Вы не доверяете напрямую работу с LPT портом.
kondrik писал(а):Да и хочется, чтобы у станка был ручной режим управления, т.е. без компа простые команды.
Зачем вам ЧПУ тогда? Покупаете простой фрезерный станок и двигаете без компа осями куда захочется.
Для ЧПУ есть пульты выносные, типа джойстика кнопочного. Можно осями двигать, ну и еще функции имеются в зависимости от навороченности и цены пульта. Ну а если хотите ЧПУ со стойкой, то копите деньги. Это профессиональные станки и как все профессиональное стоит не малых денег.
kondrik
Новичок
Сообщения: 14
Зарегистрирован: 11 дек 2012, 16:09
Репутация: 0
Контактная информация:

Re: Помогите определиться

Сообщение kondrik »

Бродяга писал(а):
kondrik писал(а): а передает некоторую команду (например по уарту) контроллеру и ждет от него ответа ?
Может и не дождаться нужной команды и прямо у Вас на глазах сломается фреза об прижим детали. Это медленный последовательный интерфейс. Данные идут последовательными битами. Такая скорость обмена данными не высока. LPT - параллельный интерфейс. Данные выставляются одновременно целыми байтами. Так что преимущество в скорости параллельного интерфейса очевидное. Станок должен быстро реагировать на изменение команд. Теперь представьте программу для ЧПУ, которая выполняется через LPT несколько часов. Сколько она будет выполняться на последовательном интерфейсе? Есть Ethernet >LPT, USB>LPT контроллеры, если Вы не доверяете напрямую работу с LPT портом.
Я так понимаю, сейчас по LPT просто передаются "шаги" двигателей. Т.е. получается, чтобы сделать небольшой вырез необходимо послать следующие команды:
  • 1. опустить фрезу
  • 2. сделать шаг
  • 3. сделать шаг
  • ...
  • Х. поднять фрезу.
Я же считаю такой метод неправильным.

Намного лучше
  • 1. опустить фрезу
  • 2. указать на сколько и в какую сторону сместить фрезу
  • 3. поднять фрезу
Но опять же, если софт позволит.
А что так насчет ethernet>lpt ? Можно конкретнее название платки ? Возможно, первый вариант все таки придется делать как у всех с LPT, а потом уже пытаться сделать правильно. Но хотя бы, будет от чего отталкиваться ;)
Бродяга писал(а):
kondrik писал(а):Да и хочется, чтобы у станка был ручной режим управления, т.е. без компа простые команды.
Зачем вам ЧПУ тогда? Покупаете простой фрезерный станок и двигаете без компа осями куда захочется.
Для ЧПУ есть пульты выносные, типа джойстика кнопочного. Можно осями двигать, ну и еще функции имеются в зависимости от навороченности и цены пульта. Ну а если хотите ЧПУ со стойкой, то копите деньги. Это профессиональные станки и как все профессиональное стоит не малых денег.
Станок ЧПУ пусть делает свое дело. Но опять же, в случае простого выреза, в котором не важна высокая точность (+/- 1-2 мм допустимо) создавать деталь в солидворске, переводить в команды для станка и т.п. ...

П.С. покупать готовое - не мой метод. Максимум - платки интерфейсов. Для меня, сборка такого станка наверно большее удовольствие, чем его использование :D
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Помогите определиться

Сообщение Nick »

Как все обычно выглядит:
  • Для программы управляющей станком готовится так называемая УП (управляющая программа), написанная на Языке Gкодов.
  • Потом эта программа анализируется и "компилируется" в базовую траекторию
  • Затем планировщик траектории рассчитывает оптимальную скоростную траекторию исходя из допусков по отклонениям, скруглениям, максимальных скоростей и ускорений станка.
  • Потом эта траектория постепенно "скармливается" исполнительным органам станка.
  • Заодно обрабатываются показания датчиков и отслеживается обратная связь, если она есть.
Все это можно делать на компе, или выводить на внешние контроллеры.

Например, можно:
1. все делать на компе, и выдавать сигналы через LPT.
2. в случае с LinuxCNC+MESA, рассчитываем траекторию на компе, а непосредственно шаговиками или сервами управляет MESA.
3. использовать автономный контроллер, например MyCNC: Контроллеры myCNC #1

ЗЫ управление станком, это не просто поднять фрезу, опустить фрезу, ехать в X... Для получения лучшей, более быстрой или более точной обработки надо учитывать множество параметров. Например, если мы режем плавную кривую (заданную множеством мелких отрезков), то ее можно резать на большей скорости, если не останавливаться на каждой контрольной точке.
Бродяга
Новичок
Сообщения: 14
Зарегистрирован: 01 июл 2012, 22:48
Репутация: 0
Откуда: С-Петербург
Контактная информация:

Re: Помогите определиться

Сообщение Бродяга »

kondrik писал(а):Но опять же, в случае простого выреза, в котором не важна высокая точность (+/- 1-2 мм допустимо) создавать деталь в солидворске
С допусками +/- 1-2 мм Solidworks не нужен. Он таких допусков в размерах не знает.
kondrik, согласитесь со мной, глупо на ЧПУ обрабатывать детали с допусками 2 мм.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Помогите определиться

Сообщение Сергей Саныч »

kondrik писал(а):Это медленный последовательный интерфейс. Данные идут последовательными битами. Такая скорость обмена данными не высока. LPT - параллельный интерфейс. Данные выставляются одновременно целыми байтами. Так что преимущество в скорости параллельного интерфейса очевидное. Станок должен быстро реагировать на изменение команд. Теперь представьте программу для ЧПУ, которая выполняется через LPT несколько часов. Сколько она будет выполняться на последовательном интерфейсе?
Время передачи G-файла через последовательный интерфейс скорее всего гораздо меньше, чем выполнение этого же файла на ЧПУ. Как говорят в народе (если не использовать ненормативную лексику) "трындеть - не мешки ворочать". Так вот - передача файла по интерфейсу это как раз "трындеть", а станку приходится "мешки ворочать" :)
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Помогите определиться

Сообщение Nick »

Файл то прогнать не проблема, проблема точки прогонять с частотой 1кГц и более, и обратную связь получать.
kondrik
Новичок
Сообщения: 14
Зарегистрирован: 11 дек 2012, 16:09
Репутация: 0
Контактная информация:

Re: Помогите определиться

Сообщение kondrik »

Бродяга писал(а):С допусками +/- 1-2 мм Solidworks не нужен. Он таких допусков в размерах не знает.
kondrik, согласитесь со мной, глупо на ЧПУ обрабатывать детали с допусками 2 мм.
Согласен, что для прямого назначения станка ЧПУ это глупая задача. А как дополнительный функционал - вполне сойдет.
Nick писал(а):1. все делать на компе, и выдавать сигналы через LPT.
Если все таки идти классическим способом - LinuxCNC способен работать в 5 осевом режиме (пока что просто интересуюсь) ? Можно ли на каждую ось создавать свой передаточный коэффициент ?
Просто первый станок хочу собрать простенький, из того что есть - куча движек из принтеров и ксероксов. Они все разные. Возможно получится собрать редуктора.
Nick писал(а):Файл то прогнать не проблема, проблема точки прогонять с частотой 1кГц и более, и обратную связь получать.
А тут то какая проблема ? Сделал шаг, посмотрел на датчики. Если все ок, то делаем следующий шаг. Если какой то датчик сообщает об ошибке - посылаем отчет в программу. Самое главное тут, это знать, может ли программа работать в таком режиме. А скорость обработки датчиков на контроллере с частотой 72 Мгц будет намного выше, чем скорость обработки датчиков напрямую на компе. Если все еще мало - можно поставить ПЛИС, которая будет работать с частотой 500 Мгц и выше :hehehe:

Соответственно, (как я понял) мне необходимы 2 программы:
1 строит файл для станка (solidcam как я понял, или скрипт для альтиума)
2 создает скрипт для движений станка уже с учетом материала, размера фрезы и т.п. (linuxCNC). Позволяет сделать предпросмотр и т.п.
2.5 (скорее всего это часть второй программы, но допускается и отдельная, третья программа) которая посылает по одной команде в станок и ждет отчет об ошибках или что все ОК. В случае ОК посылает следующую команду, в случае ошибку - останавливает работу.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Помогите определиться

Сообщение Nick »

kondrik писал(а):Если все таки идти классическим способом - LinuxCNC способен работать в 5 осевом режиме (пока что просто интересуюсь) ? Можно ли на каждую ось создавать свой передаточный коэффициент ?
Да, в базовой версии до 9 осей, если перекомпилировать, то можно больше.
kondrik писал(а):А тут то какая проблема ? Сделал шаг, посмотрел на датчики. Если все ок, то делаем следующий шаг. Если какой то датчик сообщает об ошибке - посылаем отчет в программу.
Самый главный вопрос, когда программа получит эти данные от датчика? И как определить тот момент когда она их получит?
Пример поиск 0. В буфере у нас есть 100 команд шагать вправо, получаем сигнал от концевого датчика, сообщаем в программу - "датчик", но откуда программа будет знать где на самом деле сейчас станок?
kondrik писал(а):которая посылает по одной команде в станок и ждет отчет об ошибках или что все ОК. В случае ОК посылает следующую команду, в случае ошибку - останавливает работу.
По одной команде посылать не эффективно. Очень большие потери будут на получение и ожидание новой команды (придется каждый раз разгоняться и тормозить после каждой команды).
kondrik
Новичок
Сообщения: 14
Зарегистрирован: 11 дек 2012, 16:09
Репутация: 0
Контактная информация:

Re: Помогите определиться

Сообщение kondrik »

Nick писал(а):Да, в базовой версии до 9 осей, если перекомпилировать, то можно больше.
И эти оси можно свободно менять ? XYZ - базовые линейные. А если я захочу добавить ось F - ось вращения заготовки. Как все это будет выглядеть в LinuxCNC ?
Nick писал(а):Самый главный вопрос, когда программа получит эти данные от датчика? И как определить тот момент когда она их получит?
Пример поиск 0. В буфере у нас есть 100 команд шагать вправо, получаем сигнал от концевого датчика, сообщаем в программу - "датчик", но откуда программа будет знать где на самом деле сейчас станок?
Nick писал(а):По одной команде посылать не эффективно. Очень большие потери будут на получение и ожидание новой команды (придется каждый раз разгоняться и тормозить после каждой команды).
Все зависит от возможностей LinuxCNC. Могу я в нем добавить свой допобработчик ? Например, программа генерирует 1000 шагов, я анализирую и, например, сжимаю (если станок должен идти по прямой, то просто передаю направление и указываю количество шагов ;) ). Если срабатывает датчик, то передаю программе отчет, на каком шаге сработало. Но опять же, этот план зависит от возможности LinuxCNC в своей доптобработке шагов.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Помогите определиться

Сообщение nkp »

kondrik писал(а):Как все это будет выглядеть в LinuxCNC ?
это будет выглядеть как X,Y,Z,A
kondrik писал(а):Все зависит от возможностей LinuxCNC. Могу я в нем добавить свой допобработчик
имхо , тут уже будет зависить от умения программировать
Lcnc открытый код - бери переделывай как заблагорассудится :)
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Помогите определиться

Сообщение Nick »

kondrik писал(а):Все зависит от возможностей LinuxCNC. Могу я в нем добавить свой допобработчик ? Например, программа генерирует 1000 шагов, я анализирую и, например, сжимаю (если станок должен идти по прямой, то просто передаю направление и указываю количество шагов ).
Можно-то оно конечно можно, но лучше не надо :). Проблем куча, а вот выигрыша от этого вряд ли получишь. Т.к. все равно придется обрабатывать углы и вот на них такой контроллер должен будет работать так же как обычный step/dir...
Ответить

Вернуться в «Windows / Mach»