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

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

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

Сообщение Nick »

nkp писал(а):а что скажешь про то - что мы тут чудим?? (последний вариант)
Что-то я не понимаю как оно будет работать...

O<clamp> sub
M66 E0 L0 ;--- смотрим, что на аналоговом пине ( abs(cmd-fb) )
O<m66> if [#5399 LE 0.1] ;--- если < 0.1 то
M64 P05 ; --- то выдаем на 05 вывод 1 класс.
O<m66> else
M66 E0 L0 ;--- если нет то опять смотрим, что на пине и все... т.е. продолжаем выполнять код... :thinking:
O<m66> endif
O<clamp> endsub

ИМХО правильнее всего сделать через near - так можно отследить тот момент, когда мы точно подойдем на нужное расстояние. И сразу после этого продолжить выполнение.
Функция будет тогда такая

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

O<clamp> sub
M66 P0 L1 Q10 ;--- Именно ждем, растущий фронт  1 
O<m66> if [#5399 LT 0] ;--- если < 0 то не дождались его за 10 секунд - встаем на АВОСТ
M64 PХХ ;--- сюда номер пина
O<m66> endif
O<clamp> endsub

И больше ничего не надо.

В вашем случае надо писать цикл на ожидание 0 на аналоговом пине. По аналоговым пинам нет есть только один режим input - L0 Mode 0: IMMEDIATE - no waiting, returns immediately. The current value of the input is stored in parameter #5399.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

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

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

Сообщение Nick »

nkp писал(а):вот только вопрос - не посчитает ли емс этот код бесконечным циклом ????
Скорее всего посчитает, точнее его может таким посчитать axis и подвиснуть на отрисовку... Можно добавить:
(AXIS,hide) Stops the preview (must be first)
(AXIS,show) Resumes the preview (must follow a hide)
(AXIS,stop) Stops the preview from here to the end of the file.
http://linuxcnc.org/docs/html/gui/axis. ... ew-control


----------
Уже посмотрел в принципе должно работать... но имхо ... см выше :)

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

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

Сообщение nkp »

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

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

Сообщение Nick »

Там понимать то нечего он как раз делает то, что нам нужно:
out is true if in1 and in2 are within a factor of scale (i.e., for in1 positive, in1/scale <= in2 <= in1*scale), OR if their absolute difference is no greater than difference (i.e., |in1-in2| <= difference). out is false otherwise.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

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

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

Сообщение Nick »

Реализация простая - на входы near направляем
axis.N.motor-pos-cmd
и
axis.N.motor-pos-fb
выход на digital-in-XX.

А потом просто M66 L1 P1 Q10. Все...
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

Nick писал(а):Реализация простая - на входы near направляем
axis.N.motor-pos-cmd
и
axis.N.motor-pos-fb
выход на digital-in-XX.

А потом просто M66 L1 P1 Q10. Все...
та это как ни странно мне ясно
я сейчас опишу где я туплю ;)
вот мое видение твоего способа:
мы получаем разницу между cmd и fb на near.out
пока не докрутили стол near.out у нас 0
если докрутили с допуском near.N.difference то near.out становится 1 (вот этот момент мы и отлавливаем) - тут тоже ясно
а вот дальше вопросы по самому коду
O<m66> if [#5399 LT 0] ;--- если < 0 то не дождались его за 10 секунд - встаем на АВОСТ
наверно я не понимаю - потому что не знаю - что будет
в переменной #5399 при разных состояниях motion.digital-in
вот мы еще докручиваем стол - motion.digital-in у нас 0 - а у нас в условии меньше нуля
потом motion.digital-in стал 1 -а у нас условие так и не отработало
вот логика здесь не ясна...... :thinking:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

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

Сообщение Nick »

Логика такова M66 L1 P1 Q10 - ждет Q10 секунд требуемый результат. Если через столько секунд результата нет, то в #5399 записывается -1

Q- - specifies the timeout in seconds for waiting. If the timeout is exceeded, the wait is interrupt, and the variable #5399 will be holding the value -1.

Мы даем станку 10 секунд на то, чтобы устаканится в нужном месте, если такого времени ему не хватит - лучше встать на Авост.

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

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

Сообщение nkp »

ну теперь прояснилось
просто ты в тело условия рабочее действие вписал
м64 p05 -это и есть наше действие (сигнал на зажим)
а ты наверно его приконнектить к авосту предлагал :)
надо же на "нашем" языке все объяснять :hehehe:
==============
может с while сработает - если нет
тогда по твоему сделаем (как всегда)
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

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

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

программа работает, линукс ждет позиционирования, только не понятно иногда получается- 0,0010 проскочил, а считает выполнил, но это ладно, думаю пойдет. другая проблемма- стол не возвращается в исходную точку.первые восемь циклов (круг 360 градусов) вроде попадают (на глаз), второй а тем более третий- явно переходит 5, 8 мм!!!!. проблема в скалле- градуировке? она расчетная , должна совпасть и реальностью!! червячная пара 1/90. энкодер если не ошибаюсь на 90 000 тиков. ВОТ ПРОБЛЕМА, с чего начали к тому и вернулись !!!!!!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

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

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

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

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

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

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

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

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

Сообщение nkp »

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

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

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

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

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

Сообщение nkp »

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

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

Сообщение nkp »

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

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

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

какие задания? в любом случае ты правильно говоришь, то я дал шд и получил на энкодере две большие разницы. А в маче стол четко давал 360 градусов при команде -360 градусов - попадание было точным ,а врал только внутри , когда нужно было давать меньше шагов(44,521) , когда больше(45,235). Это было видно по энкодеру, у него была своя программа от изготовителя-СКИФ. там были градусы , минуты, секунды. вот бы ее запустить и подключить энкодер на две программы и посмотреть есть ли расхождение. но она под виндовс. МОЖЕТ ПОСТАВИТЬ ВТОРОЙ ПК !!!если погрешность стабильно накапливающаяся может как то градуировку можно скорректировать ? как проверить где и сколько ошибается? я думаю ,я то если бы были проблемы с контролером (через него подключен энкодер, ) то были бы пропуски , а в действительности стол перекручивает лишнего!!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

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

Сообщение nkp »

для начала я бы выяснил момент повторяемости
то есть задания одинаковые много раз
при этом записывать показания с энкодера (см.выше)
без этого дальше никуда ;)
потом уже дело техники...)))
Ответить

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