Страница 1 из 1
Асинхронная работа осей
Добавлено: 27 ноя 2015, 14:11
magnetic
Есть ли возможность из LinuxCNC запрограмировать независимую работу осей?
Цель такая, есть две оси которые двигают независимые каретки, нужно что бы во время того как одна ось двигается по программе, вторая максимально быстро отъехала в заданное положение, ну например для смены детали.
Re: Асинхронная работа осей
Добавлено: 27 ноя 2015, 14:18
nkp
magnetic писал(а):независимую работу осей?
насчет "независимой" работы не скажу,но вышеописаную задачу в емс можно сделать разными способами...
Re: Асинхронная работа осей
Добавлено: 27 ноя 2015, 15:43
magnetic
Может быть подскажете в какую сторону копать? Ибо даже не знаю как это может называться... Заранее спасибо.
Re: Асинхронная работа осей
Добавлено: 30 ноя 2015, 12:40
Nick
Лучше по подробнее опиши задачу.
Вообще команды осям сначала выходят из motion - пины - axis.N.pos-cmd, а потом ты их заводишь на управления моторами - stepgen.N.pos-cmd, можно в эту цепочку встроить что-то, что будет уводить ось в заданное поможение, при поступлении спец сигнала. (например компонент mux2).
ЗЫ но не проще ли все это написать на Gкоде?
Re: Асинхронная работа осей
Добавлено: 01 дек 2015, 10:38
magnetic
Вопрос и был про реализацию в g code.
Есть две каретки, оси А и В, с тисками, на одну закрепили деталь, она поехала под шпиндель, шпиндель сверлит.
В тиски на второй каретке ставим вторую деталь, она едет на рабочую позицию, шпиндель, все еще сверлит первую деталь.
Шпиндель досверлил, первая каретка отъезжает из рабочей зоны, а шпиндель уже вторую деталь сверлит.
Далее цикл повторяется.
Как такое можно реализовать, чтобы каретки независимо от шпинделя двигались? Настройка гибкая д.быть ибо детали разные небольших серий.
Заранее спасибо за подсказку.
Re: Асинхронная работа осей
Добавлено: 01 дек 2015, 12:07
MX_Master
Допустим, сделаете. А каким софтом траектории создавать?
Re: Асинхронная работа осей
Добавлено: 01 дек 2015, 12:37
magnetic
MX_Master писал(а):Допустим, сделаете. А каким софтом траектории создавать?
Траектории простые, поэтому использую
Vim
Частая задача: насверлить в нескольких сотнях фланцев 4 отверстия по углам, потом зенковку сделать.
Re: Асинхронная работа осей
Добавлено: 01 дек 2015, 13:45
Nick
Вообще по уму это называется pallet changer или как-то так

.
Для тебя... движение может быть только синхронно со шпинделем.
Заводить тиски в рабочую зону надо по нажатию кнопки?
Можно внутри цикла обработки вызывать процедуру, которая будет проверять, не нажата ли кнопка. И если нажата загонять тиски в рабочую зону.
НО опять же в это время не получится сверлить.
Покажи пример своей программы.
ЗЫ синхронизация со шпинделем нужна для ускорения цикла? Сколько по времени едут тиски? Сделай фото/видео работы.
Re: Асинхронная работа осей
Добавлено: 01 дек 2015, 21:29
magnetic
Станок в проекте, но уже на стадии проектирования возник такой вопрос, и опасения видимо не напрасны. G-code не предусматривает асинхрона, то есть надо ставить два компа, и их как-то связывать или мириться с последовательной работой осей.
синхронизация со шпинделем нужна для ускорения цикла? Сколько по времени едут тиски?
Скоре асинхронизация... Да, именно увеличить производительность, 30-40 секунд на смену детали, это примерно 30%-40% простоя. Придется думать о других способах оптимизации.
Re: Асинхронная работа осей
Добавлено: 01 дек 2015, 23:03
popcorn
Я в чпу нуб полный, но:
Если тиски с деталями в процессе сверловки неподвижны, то можно сделать достаточно большой поворачивающися круг или просто планку, на которую напротив друг-друга поместить тиски? И просто поворачивать по нажатию кнопки круг, и запускать цикл для сверления?
Хотя всё от размера и веса деталей зависит.
Даже фотку нашёл:
Как раз по запросу pallet changer, всё уже придумано за нас

Re: Асинхронная работа осей
Добавлено: 02 дек 2015, 00:15
magnetic
popcorn, спасибо за фото, но речь шла не о механическом исполнении, а о программных возможностях LinuxCNC и именно о возможности задать перемещение осей независимо друг от друга.
Выяснили, что влоб через g-code не получится скорее всего.
Хотелось бы так:
Код: Выделить всё
g0 A500 B500 (оси А и B подают заготовку 1 и 2 на позицию для сверления)
g1 Z-5 F1 (сверлим)
g0 Z0 (просверлили, шпиндель наверх уехал)
g0 A0 + "команда не жди, когда приеду обрабатывай след. кадр." (ось A с готовой деталью на смену едет и не дожидаясь исполнения переход к сл. кадру)
g0 Y100 (сместили шпиндель к B оси - второй заготовке)
g0 Z-5 F1 (сверлим вторую деталь, тут бы где-то обработать кнопку, что поменяли деталь A и она б к шпинделю поехала)
Видимо надо 2 компа ставить или какие-то решения еще искать.
Re: Асинхронная работа осей
Добавлено: 02 дек 2015, 00:49
Serg
В принципе пролема решаема средствами HAL. Исполнителем будет pid или stepgen, позиция им будет задаваться с помощью M68, ну и limit3 ещё поставить в промежутке...
Тут разве что не решён вопрос хоминга этих осей. Для полноценного решения нужно ждать выхода нового компонента auxaxis, но на его доделку у меня пока нет времени.

Re: Асинхронная работа осей
Добавлено: 02 дек 2015, 06:22
MX_Master
А попробуйте синхронно
Код: Выделить всё
G0 Y0 A500 B500
G1 Z-5 F1
G0 Z0
G0 Y100 A0 (убираем первую заготовку и едем ко второй)
G1 Z-5 F1
G0 Z0
M0 (или M1, или G4, в общем пауза для смены заготовок)
G0 Y0 A500 B0 (убираем вторую заготовку, ставим первую и едем к ней)
G1 Z-5 F1
G0 Z0
(и т.д.)
Re: Асинхронная работа осей
Добавлено: 02 дек 2015, 09:26
magnetic
MX_Master писал(а):А попробуйте синхронно
менно.
MX_Master, спасибо, вы тонко уловили суть проблемы, но вот тут-то нелепое и вырисовывается:
Код: Выделить всё
G0 Y100 A0 (убираем первую заготовку и едем ко второй)
Они одновременно приедут в пункт назначения, хотя, безусловно, Ваш вариант экономичней по времени (если Y быстрее доедет), а вопрос был именно в том можно ли их заставить приехать не одновременно.
Re: Асинхронная работа осей
Добавлено: 02 дек 2015, 10:29
Nick
Можно вот так:
Подаем задание на stepgen через sum2, в котором на втором входе будет mux2. У mux2 - на одном входе 0, на втором 500.
Контроллируем mux через M62-65 и через кнопку.
Т.е. просверлили, через M62-65 включили mux2 - тиски с максимальной скоростью (stepgen) ломанулись на смену.
Нажали кнопку -> тиски поехали назад.
И все это будет происходить не зависимо от motion - значит ассинхронно движению шпинделя.
(надо только логику включения mux2 чуть чуть проработать)
Re: Асинхронная работа осей
Добавлено: 02 дек 2015, 11:56
magnetic
Одни незнакомые слова, но пути решения намечены, спасибо.
Re: Асинхронная работа осей
Добавлено: 02 дек 2015, 12:09
Nick
Тут главное начать

.
1. Почитай как работает hal
http://www.cnc-club.ru/wiki/index.php/% ... %D1%8B_hal
http://www.cnc-club.ru/wiki/index.php/% ... %D1%8B_hal
2. Редактируй свой хал.
sum2 - компонент который имеет два входа и 1 выход. На выходе у него сумма входов.
mux2 - имеет два входа и 1 выход + пин выбора (sel). Если sel=0 на выходе значение первого входа, если sel=1 - второго.
В итоге тебе надо получить цепочку:
Код: Выделить всё
axis.N.pos-cmd -> sum2 -> stepgen.pos-cmd
/
0 -> mux2 ->
500 -> /