Страница 1 из 1
Двухкоординатная кислородно-пропановая резка листов
Добавлено: 16 апр 2012, 11:30
idsoft
Доброго времени суток всем. Имеется портал на котором размещены две головы кислородно-пропановой резки с независимыми Y,Z приводами. X, соответственно, у них общий. На головах, по координате Z, планируется сделать следящую систему высоты над металлом с автоматической подстройкой во время резки. Следящая система выдает 2 сигнала: слишком высоко, слишком низко. По этим сигналам должно выдаваться управление: опустить, поднять. То есть фактически, для EMC2 осей Z не существует. По команде M3 голова должна занять позицию над металлом, при этом EMC2 должна дождаться пока голова не встанет в позицию и затем начать отрабатывать программу дальше. Соответственно, по команде M5 должен отрабатываться обратный порядок. Головы должны работать в 2х режимах: работает одна(вторая припаркована), работают обе на одинаковом расстоянии друг от друга(для раскроя метала на полосы).
Собственно вопросов много. Как привязать к M5 отработку подпрограмм с ожиданием их завершения? Как из dxf получить G-код в 2х координатах(dxf2gcode выдает программу в 3х)? как сделать переключение голов?
Re: Двухкоординатная кислородно-пропановая резка листов
Добавлено: 16 апр 2012, 12:23
Nick
Можно все это сделать. Кстати, а третья ось у тебя контролируется внешним контроллером?
Мне надо логики работы станка, в терминах такой-то вход и такой-то = делаем то-то и то-то.
Пока, мне кажется все это можно написать на HAL, но если будет что-то серьезнее, то можно будет использовать Ladder Logic или вообще сторонний скрипт.
По dxf2gcode я тебе написал в соседней теме.
Re: Двухкоординатная кислородно-пропановая резка листов
Добавлено: 16 апр 2012, 12:34
idsoft
Nick писал(а): Кстати, а третья ось у тебя контролируется внешним контроллером?
Да, на третью ось у меня выход "enable" и "direction". Скорость задается один раз при настройке.
Я понимаю что можно на HAL сделать, но пока картина полностью в голове не складывается.
Спасибо за помощь.
Re: Двухкоординатная кислородно-пропановая резка листов
Добавлено: 16 апр 2012, 13:34
Nick
Значит, HAL, тогда смотри:
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 на задание второй голове.
Re: Двухкоординатная кислородно-пропановая резка листов
Добавлено: 17 апр 2012, 10:10
idsoft
Nick писал(а):Как головы управляются? Две разные оси?
Головы управляются просто: два сигнала по оси Z (ехать и направление), обычный step/dir по Y. У каждой головы свой Y и Z. Соответственно сигналы у них дублируются. Ось направляющая у голов по Y одна, но два независимых привода, которые уже должны переключаться оператором.
Есть еще момент спорный для меня. Для голов по оси Y лучше сделать два stepgen и переключать их входа, либо один stepgen и переключать выхода? В идеальном варианте головы должны иметь свои координаты и понимать где они находятся...
Re: Двухкоординатная кислородно-пропановая резка листов
Добавлено: 17 апр 2012, 18:10
Nick
idsoft писал(а): В идеальном варианте головы должны иметь свои координаты и понимать где они находятся...
Тогда лучше два stepgen

.
Про переключения ты понял?
вообще можно сделать два варианта, один - просто на вторую голову добавить две оси UV, и в Gкоде отдельно прописывать ее перемещения, или как я описал выше, но тогда вторая голова будет повторять движения первой.