Агрегатный станок

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

nkp писал(а):а вот почему так работает - это вопрос возможно надо вначале кода прописать G61пробуй
попробовал , не реагирует. когда остается 0,5 градуса, шд потихоньку доводит стол, а программа не смотря на то что позиционирование не закончено идет дальше.думаю технологический останов тоже не решение, стол может проскочить , возврат назад , выборка люфта, не угадаешь, сколько ему надо 1или 5 секунд. где же выход , как сделать , что бы программа не шла дальше , пока не закончится позиционирование?
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

и еще как сделать новый ярлык , что бы не запускать из терминала?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Агрегатный станок

Сообщение nkp »

ЗАВ писал(а):и еще как сделать новый ярлык , что бы не запускать из терминала?
наверно обычным способом
Выделение(014).jpg (703 просмотра) <a class='original' href='./download/file.php?id=11216&mode=view' target=_blank>Загрузить оригинал (149.74 КБ)</a>
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

с этим ясно, спасибо, а как с позиционированием- варианты , кроме останова , есть?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Агрегатный станок

Сообщение nkp »

а что за код ты запускаешь -не этот ли :

Код: Выделить всё

g91g0a45
m64p05
g4p10
m65p05
g91g0a45
m64p05
g4p10
m65p05
g91g0a45
m64p05
g4p10
m65p05
g91g0a45
m64p05
g4p10
m65p05
g91g0a45
m64p05
g4p10
m65p05
g91g0a45
m64p05
g4p10
m65p05
g91g0a45
m64p05
g4p10
m65p05
g91g0a45
m64p05
g4p10
m65p05
M30
m99
почему ж0 используешь??
если друкой код - выложи...
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

1
nkp писал(а):почему ж0 используешь??
стол поворачивается для позиционирования, обработки во время поворота нет, максимальная скорость и ускорение подобраны так , что бы мощности шд хватало на максимально быстрый поворот.
2 программа эта. дабавлял в нее G61.программа не реагировала.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Агрегатный станок

Сообщение nkp »

ЗАВ писал(а):как с позиционированием- варианты , кроме останова , есть?
я не просто по времени паузу предлагал - нечто иное :
у нас есть пин который сигнализирует - что мол все - в задание приехали
вот его можно заюзать
попробуй все таки G1 Fxx
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

у меня 5-10кадров должны повторяться раз 100-500, если писать как повтор подпрограммы, то при загрузки линукс будет ее полчаса крутить проверяя. какой код повторяет программу до бесконечности/или до остановки оператора.
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

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

Re: Агрегатный станок

Сообщение Nick »

проблема- поворот не закончился, а тормоз зажимает стол, шд пытается довести его , ясно что не получается. можно конечно заложить паузу, но думаю это не правильно. почему позиционирование стола (шд там связан с энкодером) не закончилось(примерно0,2). а программа дальше выполняется?
Лучше всего с паузой.
Суть вот в чем - LinuxCNC выдает команду на поворот стола в положение Х. Команда дается постепенно согласно настроенным скоростям и ускорениям. Как только дается команда на финальное положение LinuxCNC переходит к выполнению следующей строки. И если ось на самом деле отстает, ее никто ждать не будет. Поэтому, имхо G4 P1 нормальный вариант. Или можно сделать ожидание обратной связи через ladder или через sum2 (в sum2 сделать разницу axis.N.motor-pos-cmd и того, что подается на axis.N.motor-pos-fb, а вообще лучше просто их сравнивать через near: http://linuxcnc.org/docs/html/man/man9/near.9.html)
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

Nick писал(а):Или можно сделать ожидание обратной связи через ladder или через sum2 (в sum2 сделать разницу axis.N.motor-pos-cmd и того, что подается на axis.N.motor-pos-fb, а вообще лучше просто их сравнивать через near: http://linuxcnc.org/docs/html/man/man9/near.9.html)
если это не сложно , давайте попробуем?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Агрегатный станок

Сообщение Nick »

Не сложно:

в custom hal добавь:

Код: Выделить всё

# загружаем near
loadrt near names=near.x
net [сигнал положения] => near.x.in1
net [сигнал обратной связи] => near.x.in2
setp near.x.scale 1
setp near.x.difference [допуск на позиционирование]

# настраиваем выход near
net x-in-pos <= near.N.out => motion.digital-in-NN
И потом в Gкоде после перемещения ждем 1 на пине motion.digital-in-NN, т.е. M66 P0 L1
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

Nick писал(а):И потом в Gкоде после перемещения ждем 1 на пине motion.digital-in-NN, т.е. M66 P0 L1
тут поподробнее пожалуйста.
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

Nick писал(а):в custom hal добавь:
этот что у меня называется machne.hal?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Агрегатный станок

Сообщение Nick »

ЗАВ писал(а):этот что у меня называется machne.hal?
не, должен быть еще custom.hal, лучше в него, он не перезаписывается при изменениях сделанных через pncconf. Или можешь просто в основной хал.
ЗАВ писал(а):тут поподробнее пожалуйста
http://linuxcnc.org/docs/html/gcode/m-c ... ut-Control
ждем на пине motion.digital-in-00 растущий фронт.
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

объясни пожалуйста бестолковому еще раз-
1 custom.hal в конец копирую # загружаем near
loadrt near names=near.x
net [сигнал положения] => near.x.in1
net [сигнал обратной связи] => near.x.in2
setp near.x.scale 1
setp near.x.difference [допуск на позиционирование]

# настраиваем выход near
net x-in-pos <= near.N.out => motion.digital-in-NN

2
Nick писал(а): M66 P0 L1
- где это прописывать- при перемещении оси А? или вся управляющая программа остается прежней?
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Агрегатный станок

Сообщение Nick »

1. да, только вместо [сигнал ...] поставить названия нужных сигналов (команда положения оси и обратная связь по положению).
ЗАВ писал(а):- где это прописывать- при перемещении оси А?
после каждого перемещения, где нужно ждать точного позиционирования.
можешь сделать отдельную процедуру O<move-a> и в ней написать позиционирование и ожидание, и потом делать перемещения вот так O<move-a> CALL [координата]
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

Nick писал(а):да, только вместо [сигнал ...] поставить названия нужных сигналов (команда положения оси и обратная связь по положению).

а где их взять/посмотреть?
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

nkp писал(а):g91g0a45
вот строка в управляющей программе напиши - как она должна выглядеть ?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Агрегатный станок

Сообщение nkp »

Код: Выделить всё

loadrt  near names=near.x
addf near.x  servo-thread
net fb  axis.3.motor-pos-fb   =>  near.x.in1
net cmd axis.3.motor-pos-cmd  =>  near.x.in2
setp near.x.difference 0.1
net x-in-pos  near.x.out => motion.digital-in-00
пропиши в machine.hal в конце
только значение 0.1 потом подправишь...
Последний раз редактировалось nkp 28 янв 2013, 15:51, всего редактировалось 2 раза.
Ответить

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