Ориентирование и частотник 0-10в

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Фрост
Мастер
Сообщения: 382
Зарегистрирован: 28 окт 2013, 00:18
Репутация: 17
Настоящее имя: Сергей
Контактная информация:

Ориентирование и частотник 0-10в

Сообщение Фрост »

Шпиндель в ручном и по программе работает, сейчас пытаюсь настроить ORIENT, но ничего не получается. Так понимаю компонент стандартно рассчитан на управление -10...+10в и сигнал enable. У меня в частотнике задание частоты 0-10в и направление входами 1 и 2 (как вариант возможно переключить на 3х проводное управление: вращение-стоп-направление).
Как допилить хал, чтоб вместо +- управлял выходами? Кусок хала, полный во вложении

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

#############################
# --- SPINDLE ---
#############################
net spindle-vel-cmd-rps		<=  spindle.0.speed-out-rps
net spindle-vel-cmd-rps-abs	<=  spindle.0.speed-out-rps-abs
net spindle-vel-cmd-rpm-abs	<=  spindle.0.speed-out-abs
net spindle-enable		<=  spindle.0.on
net spindle-cw			<=  spindle.0.forward
net spindle-ccw			<=  spindle.0.reverse
net spindle-brake		<=  spindle.0.brake


#------- SPINDLE FEEDBACK -----------------
setp to_pci.1.feedback.enc_scale2 [SPINDLE]ENCODER_SCALE
net spindle-position to_pci.1.feedback.encoder2 => spindle.0.revs
net spindle-velocity to_pci.1.feedback.enc_vel2 => spindle.0.speed-in
net spindle-index-enable to_pci.1.feedback.index_en2 <=> spindle.0.index-enable

#------- SPINDLE CONTROL ----------------
setp  to_pci.1.PWM.out_scale2 [SPINDLE]OUTPUT_SCALE
setp scale.2.gain 0.00542 #0.00542 точно на 500об
net spindle-speed-scale spindle.0.speed-out => scale.2.in 
net spindle-speed-DAC scale.2.out => mux2.0.in0
net mux2-out mux2.0.out abs.1.in
net spindle-abs-pwm abs.1.out => to_pci.1.PWM.dcontrol2


#------- SPINDLE ORIENT ----------------
setp   pid.orient.Pgain     [SPINDLE]P
setp   pid.orient.Igain     [SPINDLE]I
setp   pid.orient.Dgain     [SPINDLE]D
setp   pid.orient.bias      [SPINDLE]BIAS
setp   pid.orient.FF0       [SPINDLE]FF0
setp   pid.orient.FF1       [SPINDLE]FF1
setp   pid.orient.FF2       [SPINDLE]FF2
setp   pid.orient.deadband  [SPINDLE]DEADBAND
setp   pid.orient.maxoutput [SPINDLE]MAX_OUTPUT

net orient-enable	spindle.0.orient => orient.0.enable pid.orient.enable 
net orient-angle	spindle.0.orient-angle => orient.0.angle 
net orient-mode		spindle.0.orient-mode =>  orient.0.mode 
net spindle-position	orient.0.position  pid.orient.feedback 
net orient-command	orient.0.command => pid.orient.command 
net is-oriented		orient.0.is-oriented spindle.0.is-oriented

net orient-enable mux2.0.sel
net mult2  mult2.0.out mux2.0.in1

setp mult2.0.in0  10
net pid-out  pid.orient.output  mult2.0.in1



#------- SPINDLE-AT-SPEED ----------------
setp near.0.scale 1.08
net spindle-vel-cmd-rps => near.0.in1
net spindle-velocity => near.0.in2 #энкодер
net spindle-at-speed <= near.0.out => spindle.0.at-speed
Вложения
it42.hal
(18.27 КБ) 203 скачивания
Аватара пользователя
Maxekb77
Мастер
Сообщения: 1658
Зарегистрирован: 05 окт 2013, 00:04
Репутация: 285
Настоящее имя: Максим
Откуда: Екатеринбург
Контактная информация:

Re: Ориентирование и частотник 0-10в

Сообщение Maxekb77 »

Когда то делал похожее, там при выходе фильтр который в зависимости от того плюс или минус подключал релюшку разворота.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Ориентирование и частотник 0-10в

Сообщение Serg »

Maxekb77 писал(а): там при выходе фильтр который в зависимости от того плюс или минус подключал релюшку разворота.
Гораздо проще доки почитать:
motion.spindle−forward OUT BIT: TRUE when the spindle should rotate forward
motion.spindle−on OUT BIT: TRUE when spindle should rotate
motion.spindle−reverse OUT BIT: TRUE when the spindle should rotate backward
:hehehe:
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Фрост
Мастер
Сообщения: 382
Зарегистрирован: 28 окт 2013, 00:18
Репутация: 17
Настоящее имя: Сергей
Контактная информация:

Re: Ориентирование и частотник 0-10в

Сообщение Фрост »

Spindle.0.on его просто тупо крутит... Сейчас завел напрямую на выход платы, если с первого оборота не спозицировался- раскручивается и крутит дальше, при формате M19R0Q5 отрубается по таймауту, если и типа спозицировался-выводит ошибку таймаута. И в зависимости от значений пида 0 получается в разных местах- это как?
Фрост
Мастер
Сообщения: 382
Зарегистрирован: 28 окт 2013, 00:18
Репутация: 17
Настоящее имя: Сергей
Контактная информация:

Re: Ориентирование и частотник 0-10в

Сообщение Фрост »

У меня 2.8 поэтому имена немного другие
Аватара пользователя
Maxekb77
Мастер
Сообщения: 1658
Зарегистрирован: 05 окт 2013, 00:04
Репутация: 285
Настоящее имя: Максим
Откуда: Екатеринбург
Контактная информация:

Re: Ориентирование и частотник 0-10в

Сообщение Maxekb77 »

Serg писал(а): Гораздо проще доки почитать:
motion.spindle−forward OUT BIT: TRUE when the spindle should rotate forward
motion.spindle−on OUT BIT: TRUE when spindle should rotate
motion.spindle−reverse OUT BIT: TRUE when the spindle should rotate backward
И каким образом spindle-on связан с ориентацией ? :hehehe:
Фрост писал(а): Spindle.0.on его просто тупо крутит... Сейчас завел напрямую на выход платы, если с первого оборота не спозицировался- раскручивается и крутит дальше, при формате M19R0Q5 отрубается по таймауту, если и типа спозицировался-выводит ошибку таймаута. И в зависимости от значений пида 0 получается в разных местах- это как?
Там сначала нужно еще сброс по индексной метке делать, в моем варианте выглядело как - шпиндель делает первый оборот до индексной метки а потом уже идет нужный угол.
Фрост
Мастер
Сообщения: 382
Зарегистрирован: 28 окт 2013, 00:18
Репутация: 17
Настоящее имя: Сергей
Контактная информация:

Re: Ориентирование и частотник 0-10в

Сообщение Фрост »

А по существу моего вопроса сможете подсказать?
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Ориентирование и частотник 0-10в

Сообщение Serg »

Используйте компонент abs - у него на выходе есть всё, что нужно.
Для включения шпинделя использовать сигналы motion.spindle-orient и motion.spindle-locked в зависимости от режима работы. Ну про про оригинальные сигналы управления шпинделем не забывать.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Фрост
Мастер
Сообщения: 382
Зарегистрирован: 28 окт 2013, 00:18
Репутация: 17
Настоящее имя: Сергей
Контактная информация:

Re: Ориентирование и частотник 0-10в

Сообщение Фрост »

Serg писал(а): abs - у него на выходе есть всё
С удивлением обнаружил, думал только 2-in и out
Serg писал(а): motion.spindle-locked
motion.spindle−locked OUT BIT - Spindle orient complete pin. Cleared by any of M3,M4,M5
не могу понять его назначения, его к чему подключать?
Аватара пользователя
dinkata
Мастер
Сообщения: 1025
Зарегистрирован: 05 сен 2014, 09:07
Репутация: 389
Настоящее имя: Диньо
Откуда: Болгария
Контактная информация:

Re: Ориентирование и частотник 0-10в

Сообщение dinkata »

Фрост писал(а): motion.spindle−locked OUT BIT - Spindle orient complete pin. Cleared by any of M3,M4,M5
не могу понять его назначения, его к чему подключать?
У меня работает такое ориентирование . Представте сечение вал шпинделя.
Lock.JPG (1519 просмотров) <a class='original' href='./download/file.php?id=187144&sid=39af85575f799190cc2d673f4b38121c&mode=view' target=_blank>Загрузить оригинал (28.42 КБ)</a>
По протяжение вала ест канавка , а напротив вала шток .
Когда получаем команда М19 вал начинает крутится медлено , ест датчик которьй
срабатьйвает немножко перед совпадение канавка напротив шток ,
тогда електромагнит прижимает шток к валу и при совпадение шток
заполняет канавку , блокирает крутение шпинделя а другой датчик сигнализирует
о совпадение шток в канавке и тогда надо задействоват тот пин motion.spindle−locked .
Простите ошибки, я иностранец.У моя клавиатура нету "э" и "ы"
Аватара пользователя
Maxekb77
Мастер
Сообщения: 1658
Зарегистрирован: 05 окт 2013, 00:04
Репутация: 285
Настоящее имя: Максим
Откуда: Екатеринбург
Контактная информация:

Re: Ориентирование и частотник 0-10в

Сообщение Maxekb77 »

Фрост писал(а): А по существу моего вопроса сможете подсказать?
Так вроде и сказал все что использовал, а дальше уже ручками в код.
ну как вариант m19r0q0p1 если такой вариант устраивает.
Фрост
Мастер
Сообщения: 382
Зарегистрирован: 28 окт 2013, 00:18
Репутация: 17
Настоящее имя: Сергей
Контактная информация:

Re: Ориентирование и частотник 0-10в

Сообщение Фрост »

dinkata писал(а): и тогда надо задействоват тот пин motion.spindle−locked
Понял, спасибо, не мой случай
Maxekb77 писал(а): ну как вариант m19r0q0p1
Сейчас на сигналах abs.1.is-positive, abs.1.is-negative стал крутиться в обоих направлениях и даже иногда позиционируется, так понимаю нужно теперь настраивать ПИД
Фрост
Мастер
Сообщения: 382
Зарегистрирован: 28 окт 2013, 00:18
Репутация: 17
Настоящее имя: Сергей
Контактная информация:

Re: Ориентирование и частотник 0-10в

Сообщение Фрост »

Maxekb77 писал(а): Там сначала нужно еще сброс по индексной метке делать
А это каким образом? Если дописать в ини шпинделя index-enable, ничего не происходит. Какой то отдельный компонент нужен? Нашел что-то похожее в компоненте orient-v2, https://github.com/LinuxCNC/linuxcnc/issues/725 но пока не разбирался
Аватара пользователя
Maxekb77
Мастер
Сообщения: 1658
Зарегистрирован: 05 окт 2013, 00:04
Репутация: 285
Настоящее имя: Максим
Откуда: Екатеринбург
Контактная информация:

Re: Ориентирование и частотник 0-10в

Сообщение Maxekb77 »

Если нет сомнений в работе энкодера, то достаточно при старте linuxcnc установить в 1 index метку энкодера - когда шпиндель до нее доедет он сбросит счетчик энкодера, но при пуске станка будет некий моцион.
Если как у меня когда в энкодере не уверен, то писать отдельный компонент что бы сам его включал перед позиционированием.
Фрост
Мастер
Сообщения: 382
Зарегистрирован: 28 окт 2013, 00:18
Репутация: 17
Настоящее имя: Сергей
Контактная информация:

Re: Ориентирование и частотник 0-10в

Сообщение Фрост »

Ну написать компонент это точно не осилю)
Аватара пользователя
Maxekb77
Мастер
Сообщения: 1658
Зарегистрирован: 05 окт 2013, 00:04
Репутация: 285
Настоящее имя: Максим
Откуда: Екатеринбург
Контактная информация:

Re: Ориентирование и частотник 0-10в

Сообщение Maxekb77 »

Ну тогда p1 ;)
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Ориентирование и частотник 0-10в

Сообщение Serg »

Фрост писал(а): motion.spindle−locked OUT BIT - Spindle orient complete pin. Cleared by any of M3,M4,M5
не могу понять его назначения, его к чему подключать?
Например если после ориентации нужно удержание этой позиции, то сигналом motion.spindle−locked нужно привод шпинделя и его ПИД поддерживать в активном состоянии.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Фрост
Мастер
Сообщения: 382
Зарегистрирован: 28 окт 2013, 00:18
Репутация: 17
Настоящее имя: Сергей
Контактная информация:

Re: Ориентирование и частотник 0-10в

Сообщение Фрост »

Подниму тему - ориентирование работает, ошибок не выдает, но сигнал is-orientired никогда не становится true. Что ему не нравится и нужен ли он вообще? Вопрос больше теоретический, т.к. пока необходимости в нем не заметил.
Ответить

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