Доброго времени суток всем. Имеется портал на котором размещены две головы кислородно-пропановой резки с независимыми Y,Z приводами. X, соответственно, у них общий. На головах, по координате Z, планируется сделать следящую систему высоты над металлом с автоматической подстройкой во время резки. Следящая система выдает 2 сигнала: слишком высоко, слишком низко. По этим сигналам должно выдаваться управление: опустить, поднять. То есть фактически, для EMC2 осей Z не существует. По команде M3 голова должна занять позицию над металлом, при этом EMC2 должна дождаться пока голова не встанет в позицию и затем начать отрабатывать программу дальше. Соответственно, по команде M5 должен отрабатываться обратный порядок. Головы должны работать в 2х режимах: работает одна(вторая припаркована), работают обе на одинаковом расстоянии друг от друга(для раскроя метала на полосы).
Собственно вопросов много. Как привязать к M5 отработку подпрограмм с ожиданием их завершения? Как из dxf получить G-код в 2х координатах(dxf2gcode выдает программу в 3х)? как сделать переключение голов?
Двухкоординатная кислородно-пропановая резка листов
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Двухкоординатная кислородно-пропановая резка листов
Можно все это сделать. Кстати, а третья ось у тебя контролируется внешним контроллером?
Мне надо логики работы станка, в терминах такой-то вход и такой-то = делаем то-то и то-то.
Пока, мне кажется все это можно написать на HAL, но если будет что-то серьезнее, то можно будет использовать Ladder Logic или вообще сторонний скрипт.
По dxf2gcode я тебе написал в соседней теме.
Мне надо логики работы станка, в терминах такой-то вход и такой-то = делаем то-то и то-то.
Пока, мне кажется все это можно написать на HAL, но если будет что-то серьезнее, то можно будет использовать Ladder Logic или вообще сторонний скрипт.
По dxf2gcode я тебе написал в соседней теме.
-
idsoft
- Новичок
- Сообщения: 18
- Зарегистрирован: 13 апр 2012, 12:19
- Репутация: 0
- Контактная информация:
Re: Двухкоординатная кислородно-пропановая резка листов
Да, на третью ось у меня выход "enable" и "direction". Скорость задается один раз при настройке.Nick писал(а): Кстати, а третья ось у тебя контролируется внешним контроллером?
Я понимаю что можно на HAL сделать, но пока картина полностью в голове не складывается.
Спасибо за помощь.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Двухкоординатная кислородно-пропановая резка листов
Значит, HAL, тогда смотри:
Тогда делаем так, выход включения шпинделя на пин вывода. (ну это совсем просто)
И в gкоде пишешь
M3
M66 P0 L1 (ждем восходящего сигнала на motion.digital-in-00)
После этого дальнейший Gкод резки.
M66 P0 L2
В общем делаем через mux2, на вход sel подаем пин определяющий режим работы, на in1 - координату парковки головы, на in2 - координату команды для головы 0. (Эту команду наверное нужно прогнать через sum2 ).
И потом выход mux2 на задание второй голове.
Я так понимаю нужен выход на контроллер, занять положение а потом ждем сигнала на готовности пине.idsoft писал(а): По команде M3 голова должна занять позицию над металлом, при этом EMC2 должна дождаться пока голова не встанет в позицию и затем начать отрабатывать программу дальше.
Тогда делаем так, выход включения шпинделя на пин вывода. (ну это совсем просто)
И в gкоде пишешь
M3
M66 P0 L1 (ждем восходящего сигнала на motion.digital-in-00)
После этого дальнейший Gкод резки.
Примерно тоже самое, только возможно понадобится ждать нисходящего сигнала:idsoft писал(а): Соответственно, по команде M5 должен отрабатываться обратный порядок.
M66 P0 L2
Как головы управляются? Две разные оси?idsoft писал(а):Головы должны работать в 2х режимах: работает одна(вторая припаркована), работают обе на одинаковом расстоянии друг от друга(для раскроя метала на полосы).
В общем делаем через mux2, на вход sel подаем пин определяющий режим работы, на in1 - координату парковки головы, на in2 - координату команды для головы 0. (Эту команду наверное нужно прогнать через sum2 ).
И потом выход mux2 на задание второй голове.
-
idsoft
- Новичок
- Сообщения: 18
- Зарегистрирован: 13 апр 2012, 12:19
- Репутация: 0
- Контактная информация:
Re: Двухкоординатная кислородно-пропановая резка листов
Головы управляются просто: два сигнала по оси Z (ехать и направление), обычный step/dir по Y. У каждой головы свой Y и Z. Соответственно сигналы у них дублируются. Ось направляющая у голов по Y одна, но два независимых привода, которые уже должны переключаться оператором.Nick писал(а):Как головы управляются? Две разные оси?
Есть еще момент спорный для меня. Для голов по оси Y лучше сделать два stepgen и переключать их входа, либо один stepgen и переключать выхода? В идеальном варианте головы должны иметь свои координаты и понимать где они находятся...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Двухкоординатная кислородно-пропановая резка листов
Тогда лучше два stepgenidsoft писал(а): В идеальном варианте головы должны иметь свои координаты и понимать где они находятся...
Про переключения ты понял?
вообще можно сделать два варианта, один - просто на вторую голову добавить две оси UV, и в Gкоде отдельно прописывать ее перемещения, или как я описал выше, но тогда вторая голова будет повторять движения первой.
