Страница 1 из 1

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

Добавлено: 02 окт 2020, 13:47
Фрост
Шпиндель в ручном и по программе работает, сейчас пытаюсь настроить 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

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

Добавлено: 02 окт 2020, 19:27
Maxekb77
Когда то делал похожее, там при выходе фильтр который в зависимости от того плюс или минус подключал релюшку разворота.

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

Добавлено: 02 окт 2020, 21:27
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:

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

Добавлено: 03 окт 2020, 09:07
Фрост
Spindle.0.on его просто тупо крутит... Сейчас завел напрямую на выход платы, если с первого оборота не спозицировался- раскручивается и крутит дальше, при формате M19R0Q5 отрубается по таймауту, если и типа спозицировался-выводит ошибку таймаута. И в зависимости от значений пида 0 получается в разных местах- это как?

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

Добавлено: 03 окт 2020, 09:10
Фрост
У меня 2.8 поэтому имена немного другие

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

Добавлено: 03 окт 2020, 09:15
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 получается в разных местах- это как?
Там сначала нужно еще сброс по индексной метке делать, в моем варианте выглядело как - шпиндель делает первый оборот до индексной метки а потом уже идет нужный угол.

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

Добавлено: 04 окт 2020, 00:29
Фрост
А по существу моего вопроса сможете подсказать?

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

Добавлено: 04 окт 2020, 01:03
Serg
Используйте компонент abs - у него на выходе есть всё, что нужно.
Для включения шпинделя использовать сигналы motion.spindle-orient и motion.spindle-locked в зависимости от режима работы. Ну про про оригинальные сигналы управления шпинделем не забывать.

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

Добавлено: 04 окт 2020, 03:08
Фрост
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
не могу понять его назначения, его к чему подключать?

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

Добавлено: 04 окт 2020, 07:44
dinkata
Фрост писал(а): motion.spindle−locked OUT BIT - Spindle orient complete pin. Cleared by any of M3,M4,M5
не могу понять его назначения, его к чему подключать?
У меня работает такое ориентирование . Представте сечение вал шпинделя.
Lock.JPG (1864 просмотра) <a class='original' href='./download/file.php?id=187144&mode=view' target=_blank>Загрузить оригинал (28.42 КБ)</a>
По протяжение вала ест канавка , а напротив вала шток .
Когда получаем команда М19 вал начинает крутится медлено , ест датчик которьй
срабатьйвает немножко перед совпадение канавка напротив шток ,
тогда електромагнит прижимает шток к валу и при совпадение шток
заполняет канавку , блокирает крутение шпинделя а другой датчик сигнализирует
о совпадение шток в канавке и тогда надо задействоват тот пин motion.spindle−locked .

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

Добавлено: 04 окт 2020, 09:45
Maxekb77
Фрост писал(а): А по существу моего вопроса сможете подсказать?
Так вроде и сказал все что использовал, а дальше уже ручками в код.
ну как вариант m19r0q0p1 если такой вариант устраивает.

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

Добавлено: 04 окт 2020, 11:48
Фрост
dinkata писал(а): и тогда надо задействоват тот пин motion.spindle−locked
Понял, спасибо, не мой случай
Maxekb77 писал(а): ну как вариант m19r0q0p1
Сейчас на сигналах abs.1.is-positive, abs.1.is-negative стал крутиться в обоих направлениях и даже иногда позиционируется, так понимаю нужно теперь настраивать ПИД

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

Добавлено: 04 окт 2020, 13:19
Фрост
Maxekb77 писал(а): Там сначала нужно еще сброс по индексной метке делать
А это каким образом? Если дописать в ини шпинделя index-enable, ничего не происходит. Какой то отдельный компонент нужен? Нашел что-то похожее в компоненте orient-v2, https://github.com/LinuxCNC/linuxcnc/issues/725 но пока не разбирался

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

Добавлено: 04 окт 2020, 13:30
Maxekb77
Если нет сомнений в работе энкодера, то достаточно при старте linuxcnc установить в 1 index метку энкодера - когда шпиндель до нее доедет он сбросит счетчик энкодера, но при пуске станка будет некий моцион.
Если как у меня когда в энкодере не уверен, то писать отдельный компонент что бы сам его включал перед позиционированием.
(для просмотра содержимого нажмите на ссылку)

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

Добавлено: 04 окт 2020, 13:56
Фрост
Ну написать компонент это точно не осилю)

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

Добавлено: 04 окт 2020, 17:08
Maxekb77
Ну тогда p1 ;)

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

Добавлено: 04 окт 2020, 19:04
Serg
Фрост писал(а): motion.spindle−locked OUT BIT - Spindle orient complete pin. Cleared by any of M3,M4,M5
не могу понять его назначения, его к чему подключать?
Например если после ориентации нужно удержание этой позиции, то сигналом motion.spindle−locked нужно привод шпинделя и его ПИД поддерживать в активном состоянии.

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

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