Двухкоординатная кислородно-пропановая резка листов

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
idsoft
Новичок
Сообщения: 18
Зарегистрирован: 13 апр 2012, 12:19
Репутация: 0
Контактная информация:

Двухкоординатная кислородно-пропановая резка листов

Сообщение idsoft »

Доброго времени суток всем. Имеется портал на котором размещены две головы кислородно-пропановой резки с независимыми 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: Двухкоординатная кислородно-пропановая резка листов

Сообщение Nick »

Можно все это сделать. Кстати, а третья ось у тебя контролируется внешним контроллером?

Мне надо логики работы станка, в терминах такой-то вход и такой-то = делаем то-то и то-то.

Пока, мне кажется все это можно написать на HAL, но если будет что-то серьезнее, то можно будет использовать Ladder Logic или вообще сторонний скрипт.

По dxf2gcode я тебе написал в соседней теме.
idsoft
Новичок
Сообщения: 18
Зарегистрирован: 13 апр 2012, 12:19
Репутация: 0
Контактная информация:

Re: Двухкоординатная кислородно-пропановая резка листов

Сообщение idsoft »

Nick писал(а): Кстати, а третья ось у тебя контролируется внешним контроллером?
Да, на третью ось у меня выход "enable" и "direction". Скорость задается один раз при настройке.
Я понимаю что можно на HAL сделать, но пока картина полностью в голове не складывается.
Спасибо за помощь.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Двухкоординатная кислородно-пропановая резка листов

Сообщение 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 на задание второй голове.
idsoft
Новичок
Сообщения: 18
Зарегистрирован: 13 апр 2012, 12:19
Репутация: 0
Контактная информация:

Re: Двухкоординатная кислородно-пропановая резка листов

Сообщение idsoft »

Nick писал(а):Как головы управляются? Две разные оси?
Головы управляются просто: два сигнала по оси Z (ехать и направление), обычный step/dir по Y. У каждой головы свой Y и Z. Соответственно сигналы у них дублируются. Ось направляющая у голов по Y одна, но два независимых привода, которые уже должны переключаться оператором.
Есть еще момент спорный для меня. Для голов по оси Y лучше сделать два stepgen и переключать их входа, либо один stepgen и переключать выхода? В идеальном варианте головы должны иметь свои координаты и понимать где они находятся...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Двухкоординатная кислородно-пропановая резка листов

Сообщение Nick »

idsoft писал(а): В идеальном варианте головы должны иметь свои координаты и понимать где они находятся...
Тогда лучше два stepgen :).

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

Вернуться в «LinuxCNC»