Асинхронная работа осей
- magnetic
- Мастер
- Сообщения: 431
- Зарегистрирован: 03 авг 2015, 11:27
- Репутация: 73
- Настоящее имя: Алексей
- Контактная информация:
Асинхронная работа осей
Есть ли возможность из LinuxCNC запрограмировать независимую работу осей?
Цель такая, есть две оси которые двигают независимые каретки, нужно что бы во время того как одна ось двигается по программе, вторая максимально быстро отъехала в заданное положение, ну например для смены детали.
Цель такая, есть две оси которые двигают независимые каретки, нужно что бы во время того как одна ось двигается по программе, вторая максимально быстро отъехала в заданное положение, ну например для смены детали.
Вилки и ложки на фото из AISI304!
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Асинхронная работа осей
насчет "независимой" работы не скажу,но вышеописаную задачу в емс можно сделать разными способами...magnetic писал(а):независимую работу осей?
- magnetic
- Мастер
- Сообщения: 431
- Зарегистрирован: 03 авг 2015, 11:27
- Репутация: 73
- Настоящее имя: Алексей
- Контактная информация:
Re: Асинхронная работа осей
Может быть подскажете в какую сторону копать? Ибо даже не знаю как это может называться... Заранее спасибо.
Вилки и ложки на фото из AISI304!
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Асинхронная работа осей
Лучше по подробнее опиши задачу.
Вообще команды осям сначала выходят из motion - пины - axis.N.pos-cmd, а потом ты их заводишь на управления моторами - stepgen.N.pos-cmd, можно в эту цепочку встроить что-то, что будет уводить ось в заданное поможение, при поступлении спец сигнала. (например компонент mux2).
ЗЫ но не проще ли все это написать на Gкоде?
Вообще команды осям сначала выходят из motion - пины - axis.N.pos-cmd, а потом ты их заводишь на управления моторами - stepgen.N.pos-cmd, можно в эту цепочку встроить что-то, что будет уводить ось в заданное поможение, при поступлении спец сигнала. (например компонент mux2).
ЗЫ но не проще ли все это написать на Gкоде?
- magnetic
- Мастер
- Сообщения: 431
- Зарегистрирован: 03 авг 2015, 11:27
- Репутация: 73
- Настоящее имя: Алексей
- Контактная информация:
Re: Асинхронная работа осей
Вопрос и был про реализацию в g code.
Есть две каретки, оси А и В, с тисками, на одну закрепили деталь, она поехала под шпиндель, шпиндель сверлит.
В тиски на второй каретке ставим вторую деталь, она едет на рабочую позицию, шпиндель, все еще сверлит первую деталь.
Шпиндель досверлил, первая каретка отъезжает из рабочей зоны, а шпиндель уже вторую деталь сверлит.
Далее цикл повторяется.
Как такое можно реализовать, чтобы каретки независимо от шпинделя двигались? Настройка гибкая д.быть ибо детали разные небольших серий.
Заранее спасибо за подсказку.
Есть две каретки, оси А и В, с тисками, на одну закрепили деталь, она поехала под шпиндель, шпиндель сверлит.
В тиски на второй каретке ставим вторую деталь, она едет на рабочую позицию, шпиндель, все еще сверлит первую деталь.
Шпиндель досверлил, первая каретка отъезжает из рабочей зоны, а шпиндель уже вторую деталь сверлит.
Далее цикл повторяется.
Как такое можно реализовать, чтобы каретки независимо от шпинделя двигались? Настройка гибкая д.быть ибо детали разные небольших серий.
Заранее спасибо за подсказку.
Вилки и ложки на фото из AISI304!
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Асинхронная работа осей
Допустим, сделаете. А каким софтом траектории создавать?
- magnetic
- Мастер
- Сообщения: 431
- Зарегистрирован: 03 авг 2015, 11:27
- Репутация: 73
- Настоящее имя: Алексей
- Контактная информация:
Re: Асинхронная работа осей
Траектории простые, поэтому использую VimMX_Master писал(а):Допустим, сделаете. А каким софтом траектории создавать?
Частая задача: насверлить в нескольких сотнях фланцев 4 отверстия по углам, потом зенковку сделать.
Вилки и ложки на фото из AISI304!
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Асинхронная работа осей
Вообще по уму это называется pallet changer или как-то так
.
Для тебя... движение может быть только синхронно со шпинделем.
Заводить тиски в рабочую зону надо по нажатию кнопки?
Можно внутри цикла обработки вызывать процедуру, которая будет проверять, не нажата ли кнопка. И если нажата загонять тиски в рабочую зону.
НО опять же в это время не получится сверлить.
Покажи пример своей программы.
ЗЫ синхронизация со шпинделем нужна для ускорения цикла? Сколько по времени едут тиски? Сделай фото/видео работы.
Для тебя... движение может быть только синхронно со шпинделем.
Заводить тиски в рабочую зону надо по нажатию кнопки?
Можно внутри цикла обработки вызывать процедуру, которая будет проверять, не нажата ли кнопка. И если нажата загонять тиски в рабочую зону.
НО опять же в это время не получится сверлить.
Покажи пример своей программы.
ЗЫ синхронизация со шпинделем нужна для ускорения цикла? Сколько по времени едут тиски? Сделай фото/видео работы.
- magnetic
- Мастер
- Сообщения: 431
- Зарегистрирован: 03 авг 2015, 11:27
- Репутация: 73
- Настоящее имя: Алексей
- Контактная информация:
Re: Асинхронная работа осей
Станок в проекте, но уже на стадии проектирования возник такой вопрос, и опасения видимо не напрасны. G-code не предусматривает асинхрона, то есть надо ставить два компа, и их как-то связывать или мириться с последовательной работой осей.
Скоре асинхронизация... Да, именно увеличить производительность, 30-40 секунд на смену детали, это примерно 30%-40% простоя. Придется думать о других способах оптимизации.синхронизация со шпинделем нужна для ускорения цикла? Сколько по времени едут тиски?
Вилки и ложки на фото из AISI304!
-
popcorn
- Мастер
- Сообщения: 252
- Зарегистрирован: 21 янв 2015, 00:20
- Репутация: 18
- Откуда: Янтарный край
- Контактная информация:
Re: Асинхронная работа осей
Я в чпу нуб полный, но:
Если тиски с деталями в процессе сверловки неподвижны, то можно сделать достаточно большой поворачивающися круг или просто планку, на которую напротив друг-друга поместить тиски? И просто поворачивать по нажатию кнопки круг, и запускать цикл для сверления?
Хотя всё от размера и веса деталей зависит.
Даже фотку нашёл:
Как раз по запросу pallet changer, всё уже придумано за нас
Если тиски с деталями в процессе сверловки неподвижны, то можно сделать достаточно большой поворачивающися круг или просто планку, на которую напротив друг-друга поместить тиски? И просто поворачивать по нажатию кнопки круг, и запускать цикл для сверления?
Хотя всё от размера и веса деталей зависит.
Даже фотку нашёл:
Как раз по запросу pallet changer, всё уже придумано за нас
- magnetic
- Мастер
- Сообщения: 431
- Зарегистрирован: 03 авг 2015, 11:27
- Репутация: 73
- Настоящее имя: Алексей
- Контактная информация:
Re: Асинхронная работа осей
popcorn, спасибо за фото, но речь шла не о механическом исполнении, а о программных возможностях LinuxCNC и именно о возможности задать перемещение осей независимо друг от друга.
Выяснили, что влоб через g-code не получится скорее всего.
Хотелось бы так:
Видимо надо 2 компа ставить или какие-то решения еще искать.
Выяснили, что влоб через 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 и она б к шпинделю поехала)
Вилки и ложки на фото из AISI304!
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Асинхронная работа осей
В принципе пролема решаема средствами HAL. Исполнителем будет pid или stepgen, позиция им будет задаваться с помощью M68, ну и limit3 ещё поставить в промежутке...
Тут разве что не решён вопрос хоминга этих осей. Для полноценного решения нужно ждать выхода нового компонента auxaxis, но на его доделку у меня пока нет времени.
Тут разве что не решён вопрос хоминга этих осей. Для полноценного решения нужно ждать выхода нового компонента auxaxis, но на его доделку у меня пока нет времени.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Асинхронная работа осей
А попробуйте синхронно
Код: Выделить всё
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
(и т.д.)- magnetic
- Мастер
- Сообщения: 431
- Зарегистрирован: 03 авг 2015, 11:27
- Репутация: 73
- Настоящее имя: Алексей
- Контактная информация:
Re: Асинхронная работа осей
менно.MX_Master писал(а):А попробуйте синхронно
MX_Master, спасибо, вы тонко уловили суть проблемы, но вот тут-то нелепое и вырисовывается:
Код: Выделить всё
G0 Y100 A0 (убираем первую заготовку и едем ко второй)Вилки и ложки на фото из AISI304!
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Асинхронная работа осей
Можно вот так:
Подаем задание на stepgen через sum2, в котором на втором входе будет mux2. У mux2 - на одном входе 0, на втором 500.
Контроллируем mux через M62-65 и через кнопку.
Т.е. просверлили, через M62-65 включили mux2 - тиски с максимальной скоростью (stepgen) ломанулись на смену.
Нажали кнопку -> тиски поехали назад.
И все это будет происходить не зависимо от motion - значит ассинхронно движению шпинделя.
(надо только логику включения mux2 чуть чуть проработать)
Подаем задание на stepgen через sum2, в котором на втором входе будет mux2. У mux2 - на одном входе 0, на втором 500.
Контроллируем mux через M62-65 и через кнопку.
Т.е. просверлили, через M62-65 включили mux2 - тиски с максимальной скоростью (stepgen) ломанулись на смену.
Нажали кнопку -> тиски поехали назад.
И все это будет происходить не зависимо от motion - значит ассинхронно движению шпинделя.
(надо только логику включения mux2 чуть чуть проработать)
- magnetic
- Мастер
- Сообщения: 431
- Зарегистрирован: 03 авг 2015, 11:27
- Репутация: 73
- Настоящее имя: Алексей
- Контактная информация:
Re: Асинхронная работа осей
Одни незнакомые слова, но пути решения намечены, спасибо.
Вилки и ложки на фото из AISI304!
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Асинхронная работа осей
Тут главное начать
.
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 - второго.
В итоге тебе надо получить цепочку:
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 -> /

