Страница 2 из 6
Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 03 апр 2014, 00:42
Ворон226
Ещё немного вводных:
LPT - 12 выходов и 4 входа. Значит мы можем подключить шаговики: X, Y1, Y2, Z1, Z2 - 10 выходов. ESTOP, X-home, Y1+Y2home, Z1+Z2-home и всё...
И выход в HOME можно минимизировать по времени так: выходим по Z1, затем вместе в Y1 + Z2, затем Y2+X.
Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 03 апр 2014, 01:00
Serg
Ворон226 писал(а):А не запутаешься потом? Где у кого плюсы-минусы?
Так у тебя ж названия осей разные будут...
Ворон226 писал(а):LPT - 12 выходов и 4 входа.
Мне было-бы стыдно управлять таким станком через LPT.

Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 03 апр 2014, 07:22
Ворон226
Стыдно - это когда не знаешь, но делаешь вид, что знаешь.
А я ещё научусь

Столько всего интересного вокруг!

Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 03 апр 2014, 08:48
Nick
Ну всегда можно поставить доп порт.
ИМХО управление на уровне команд положения будет более универсальным и простым. Да и отслеживать расстояние между шпинделями проще...
Как ты планируешь перекидывать сигналы? через unlinkp и net?
Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 03 апр 2014, 09:01
Ворон226
Nick писал(а):Как ты планируешь перекидывать сигналы? через unlinkp и net?
Если про переключение STEP и DIR, то используя кнопку визуальной панели и компоненты HAL AND, NOT, OR прям на пинах parport.0.pin-NN-out
Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 03 апр 2014, 09:16
Nick
Появится хорошая вероятность впилиться башкой в конец оси - как только мы переключаем управление, мы не будем точно знать, где сейчас реально находится башка...
Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 03 апр 2014, 10:34
vovafed
у меня получилось что оси A B C по умолчанию привязаны по скорости к поворотным
и не работает G 64, при любых параметрах работает как G61
Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 03 апр 2014, 10:44
Ворон226
Nick писал(а):Появится хорошая вероятность впилиться башкой в конец оси - как только мы переключаем управление, мы не будем точно знать, где сейчас реально находится башка...
Если у моего станка реальная рабочая зона 1000мм, то в режиме двушпиндельного (как минимум) делю пополам. И никуда не впилится... Плюс к тому - датчики крайних положений.
Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 03 апр 2014, 10:47
tooshka
Ворон226 писал(а):Если у моего станка реальная рабочая зона 1000мм, то в режиме двушпиндельного (как минимум) делю пополам. И никуда не впилится... Плюс к тому - датчики крайних положений.
Я бы посоветовал на ось У прицепить магнитную линейку, а на головы датчики положения, это надежнее будет и не очень дорого.
Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 03 апр 2014, 12:02
Ворон226
Так придется все равно каким-то образом контролировать взаимное положение. Разве это реализовано в LCNC? А имея датчики крайних положений и датчик "столкновения", можно обойтись без сложных вычислений. Ведь подготовка к фрезеровке все равно в ручном режиме. А уже в синхронном режиме головы принципиально не смогут поехать навстречу.
ИМХО нужно найти оптимальное соотношение автоматизации и простоты. Ищу...
Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 03 апр 2014, 12:10
tooshka
Ворон226 писал(а):Так придется все равно каким-то образом контролировать взаимное положение. Разве это реализовано в LCNC? А имея датчики крайних положений и датчик "столкновения", можно обойтись без сложных вычислений. Ведь подготовка к фрезеровке все равно в ручном режиме. А уже в синхронном режиме головы принципиально не смогут поехать навстречу.
Через МЕСУ завести такие датчики наверно не сложно?
Мне вообще не очень понятно зачем бошки разделять? Ось Z тут понятно (опять же можно механически выставлять длинну инструмента). Все равно головы будут резать одно и тоже, просто механически сделать возможным регулировку расстояния между головами?
Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 03 апр 2014, 12:17
Serg
Ворон226 писал(а):А имея датчики крайних положений и датчик "столкновения", можно обойтись без сложных вычислений.
Нельзя. Наезд на любой из этих датчиков - это авария и прекращение программы. А конечная цель как правило - это готовая деталь.

Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 03 апр 2014, 12:24
Ворон226
UAVpilot писал(а):Ворон226 писал(а):А имея датчики крайних положений и датчик "столкновения", можно обойтись без сложных вычислений.
Нельзя. Наезд на любой из этих датчиков - это авария и прекращение программы. А конечная цель как правило - это готовая деталь.

Давай ещё раз пройдем по пунктам:
1. При автоматической резки двух деталей двумя головками вероятность столкновения головок стремится к нулю.
2. При автоматической резки двух деталей двумя головками вероятность выхода из рабочей зоны можно также свести к нулю, если разбивать рабочую зону на равные две части, которые прописать в INI, например. (потому и был вопрос как переобозначать предел по Y через визуальную панель).
3. Остается вполне себе реальная опасность столкнуться шпинделями или вылететь за пределы рабочей зоны станка в ручном режиме. В этом случае можно ставить датчики, по которым не отключать станок ESTOP-ом, а просто останавливать (запрещать) движение. (мы так делали на принтере. При наезде на концевой датчик, безусловно включалось движение ОТ датчика до его отключения).
Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 03 апр 2014, 12:38
Serg
Ворон226 писал(а):потому и был вопрос как переобозначать предел по Y через визуальную панель
А смысл? Наезд даже на программный лимит - это прекращение программы
P.S. Можно просто в HAL самостоятельно контролировать позицию осей и сравнивать со "своими" лимитами.
Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 03 апр 2014, 20:32
Ворон226
Когда я запускаю программу обработки, то она ДО выполнения проверяется на лимиты. Или я ошибаюсь?
Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 03 апр 2014, 20:39
nkp
Ворон226 писал(а):Когда я запускаю программу обработки, то она ДО выполнения проверяется на лимиты.
лимиты,указаные в ини, читаются один раз при запуске емс...
поэтому из панели корректировать проблематично...
так что:
UAVpilot писал(а):P.S. Можно просто в HAL самостоятельно контролировать позицию осей и сравнивать со "своими" лимитами.
Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 03 апр 2014, 21:53
Ворон226
... и если мы подошли к лимиту во время отработки программы, то...
(что напишем дальше?)
Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 03 апр 2014, 21:58
Ворон226
Ну, народ!
Понятное дело, что если мы левый шпиндель отведем влево, а правый вправо, а затем перейдем в режим двушпиндельной обработки детали, размером в полстола, то правый шпиндель попытается вылететь вправо. Но тут ведь:
1. Сам дурак, раз такое допустил.
2. О каком сохранении заготовки идет речь, если ты дурак? Учись. Хотя бы на заготовках.
3. Если ты не подумал об этой ситуации заранее, то хоть станок пусть сам себя сохранит. Для того и лимиты.
Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 04 апр 2014, 03:09
Serg
Ворон226 писал(а):Когда я запускаю программу обработки, то она ДО выполнения проверяется на лимиты. Или я ошибаюсь?
Почти не ошибаешься. До выполнения не возможно проверить все перемещения. Например можно задать позиции G28 за пределами лимитов и потом попытаться туда уехать - ошибка будет только
при выполнении команды.
Тебе помогло-бы G22/G23, но в LinuxCNC их пока нет.
Re: ПО двушпиндельного (многошпиндельного) фрезера
Добавлено: 10 май 2014, 18:00
Ворон226
Сегодня запустил станок в двушпиндельном режиме.
Буду в этой теме продолжать описывать его и, попутно, задавать вопросы...
Итак, двушпиндельный станок.
Оси:
Общая ось Y выполнена на двух ШД с двумя драйверами (до этого включал два ШД на один драйвер последовательно).
Две оси X1 и X2 - ещё два ШД и два драйвера.
Две оси Z1 и Z2 - ещё два ШД и два драйвера.
Датчики HOME - пять штук.
Выход в HOME организовал следующим образом: сначала обе оси Z одновременно в HOME; затем первая ось X1, за ней вторая ось X2 и одновременно с ней ось Y. Обе оси X идут в HOME влево, при чем вторая базируется относительно первой оси X1. Это менее точно, но по точности меня пока устраивает, а затем, возможно, сделаю HOME_X1 и HOME_X2 в противоположных сторонах... После выхода второй оси X2 в HOME - ось быстро перемещается в противоположную сторону до конца, чтобы не мешалась
Для реализации такой конфигурации пришлось использовать два порта LPT. (есть вариант ужимания по датчикам и перейти на один LPT. Возможно со временем...)
Для удобства управления двумя шпинделями "прикрутил" к стандартной панели AXIS дополнительные кнопки: ЛЕВЫЙ ВЛЕВО, ПРАВЫЙ ВПРАВО, ОБА В СТОРОНЫ, ЛЕВЫЙ ВВЕРХ, ПРАВЫЙ ВВЕРХ, ОБА ВВЕРХ, ВСЕ В ИСХОДНОЕ СОСТОЯНИЕ (Y в 0, X в 0, Х2 в 1550, Z1 в 0, Z2 в 0). Также добавил кнопку - СИНХРОННАЯ РАБОТА.
Подробнее опишу о реализации СИНХРОННОЙ РАБОТЫ шпинделей на примере X1 и X2.
У меня ось X1 реализована на AXIS1, а X2 на AXIS3. Соответственно,
x1step берется на stepgen.1.step
x1dir берется на stepgen.1.dir
x2step берется на stepgen.3.step
x2dirp берется на stepgen.3.dir
Как я связал кнопку "Синхронная работа" с управляющими сигналами LCNC:
(на примере формирования x2step)
loadrt and2 count=2
loadrt or2
loadrt not
addf and2.0 servo-thread
addf and2.1 servo-thread
addf or2.0 servo-thread
addf not.0 servo-thread
далее сформировал связи в соответствии со схемой, которая ниже...