попробовал , не реагирует. когда остается 0,5 градуса, шд потихоньку доводит стол, а программа не смотря на то что позиционирование не закончено идет дальше.думаю технологический останов тоже не решение, стол может проскочить , возврат назад , выборка люфта, не угадаешь, сколько ему надо 1или 5 секунд. где же выход , как сделать , что бы программа не шла дальше , пока не закончится позиционирование?nkp писал(а):а вот почему так работает - это вопрос возможно надо вначале кода прописать G61пробуй
Агрегатный станок
-
ЗАВ
- Мастер
- Сообщения: 665
- Зарегистрирован: 22 июн 2012, 07:43
- Репутация: 0
- Откуда: Орск Оренбургская область
- Контактная информация:
Re: Агрегатный станок
-
ЗАВ
- Мастер
- Сообщения: 665
- Зарегистрирован: 22 июн 2012, 07:43
- Репутация: 0
- Откуда: Орск Оренбургская область
- Контактная информация:
Re: Агрегатный станок
и еще как сделать новый ярлык , что бы не запускать из терминала?
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Агрегатный станок
наверно обычным способомЗАВ писал(а):и еще как сделать новый ярлык , что бы не запускать из терминала?
-
ЗАВ
- Мастер
- Сообщения: 665
- Зарегистрирован: 22 июн 2012, 07:43
- Репутация: 0
- Откуда: Орск Оренбургская область
- Контактная информация:
Re: Агрегатный станок
с этим ясно, спасибо, а как с позиционированием- варианты , кроме останова , есть?
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Агрегатный станок
а что за код ты запускаешь -не этот ли :
почему ж0 используешь??
если друкой код - выложи...
Код: Выделить всё
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если друкой код - выложи...
-
ЗАВ
- Мастер
- Сообщения: 665
- Зарегистрирован: 22 июн 2012, 07:43
- Репутация: 0
- Откуда: Орск Оренбургская область
- Контактная информация:
Re: Агрегатный станок
1
2 программа эта. дабавлял в нее G61.программа не реагировала.
стол поворачивается для позиционирования, обработки во время поворота нет, максимальная скорость и ускорение подобраны так , что бы мощности шд хватало на максимально быстрый поворот.nkp писал(а):почему ж0 используешь??
2 программа эта. дабавлял в нее G61.программа не реагировала.
-
nkp
- Мастер
- Сообщения: 8340
- Зарегистрирован: 28 ноя 2011, 00:25
- Репутация: 1589
- Контактная информация:
Re: Агрегатный станок
я не просто по времени паузу предлагал - нечто иное :ЗАВ писал(а):как с позиционированием- варианты , кроме останова , есть?
у нас есть пин который сигнализирует - что мол все - в задание приехали
вот его можно заюзать
попробуй все таки G1 Fxx
-
ЗАВ
- Мастер
- Сообщения: 665
- Зарегистрирован: 22 июн 2012, 07:43
- Репутация: 0
- Откуда: Орск Оренбургская область
- Контактная информация:
Re: Агрегатный станок
у меня 5-10кадров должны повторяться раз 100-500, если писать как повтор подпрограммы, то при загрузки линукс будет ее полчаса крутить проверяя. какой код повторяет программу до бесконечности/или до остановки оператора.
-
ЗАВ
- Мастер
- Сообщения: 665
- Зарегистрирован: 22 июн 2012, 07:43
- Репутация: 0
- Откуда: Орск Оренбургская область
- Контактная информация:
Re: Агрегатный станок
пробовал и так результат такой же , только какие то непонятные вещи происходили- шд первый поворот выполнял ускоренно, остальные какой на G1, какой в середине хода включал G0. непонятка какая то. но позиционирование не давала заканчивать.nkp писал(а):попробуй все таки G1 Fxx
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Агрегатный станок
Лучше всего с паузой.проблема- поворот не закончился, а тормоз зажимает стол, шд пытается довести его , ясно что не получается. можно конечно заложить паузу, но думаю это не правильно. почему позиционирование стола (шд там связан с энкодером) не закончилось(примерно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: Агрегатный станок
Не сложно:
в custom hal добавь:
И потом в Gкоде после перемещения ждем 1 на пине motion.digital-in-NN, т.е. M66 P0 L1
в 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
-
ЗАВ
- Мастер
- Сообщения: 665
- Зарегистрирован: 22 июн 2012, 07:43
- Репутация: 0
- Откуда: Орск Оренбургская область
- Контактная информация:
Re: Агрегатный станок
тут поподробнее пожалуйста.Nick писал(а):И потом в Gкоде после перемещения ждем 1 на пине motion.digital-in-NN, т.е. M66 P0 L1
-
ЗАВ
- Мастер
- Сообщения: 665
- Зарегистрирован: 22 июн 2012, 07:43
- Репутация: 0
- Откуда: Орск Оренбургская область
- Контактная информация:
Re: Агрегатный станок
этот что у меня называется machne.hal?Nick писал(а):в custom hal добавь:
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Агрегатный станок
не, должен быть еще custom.hal, лучше в него, он не перезаписывается при изменениях сделанных через pncconf. Или можешь просто в основной хал.ЗАВ писал(а):этот что у меня называется machne.hal?
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
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: Агрегатный станок
1. да, только вместо [сигнал ...] поставить названия нужных сигналов (команда положения оси и обратная связь по положению).
можешь сделать отдельную процедуру O<move-a> и в ней написать позиционирование и ожидание, и потом делать перемещения вот так O<move-a> CALL [координата]
после каждого перемещения, где нужно ждать точного позиционирования.ЗАВ писал(а):- где это прописывать- при перемещении оси А?
можешь сделать отдельную процедуру 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: Агрегатный станок
Код: Выделить всё
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только значение 0.1 потом подправишь...
Последний раз редактировалось nkp 28 янв 2013, 15:51, всего редактировалось 2 раза.
