[РЕШЕНО] помогите подключить линейки к EMC2
[РЕШЕНО] помогите подключить линейки к EMC2
Есть линейки с которых выходят два квадратурных сигнала. С mach 3 через LPT порт работают без проблем. Подскажите как сконфигурировать EMC2, что-бы использовать эти линейки в качестве обратной связи, т.е. что-бы расстояние перемещения считалось по количеству импульсов полученных с линейки, а не по количеству поданных импульсов step на ШД ? Сигналы заведены на 12 и 13 pin LPT порта. Большая просьба, подскажите что нужно сделать, по шагам. А то что-то с HALом, в разделе encoder, я совсем не разобрался.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: помогите подключить линейки к EMC2
Вот тут мы разбирались с настройками серво привода с энкодером и PID контроллером http://cnc-club.ru/forum/viewtopic.php? ... t=60#p3356 .
Вот кусок обработки энкодера:
# описываем энкодер
loadrt encoder num_chan=1
addf encoder.update-counters base-thread
addf encoder.capture-position servo-thread
setp encoder.0.position-scale 20.000000
net Xpos-phase-a encoder.0.phase-A
net Xpos-phase-b encoder.0.phase-B
net Xpos-index encoder.0.phase-Z
net Xpos-phase-a <= parport.0.pin-10-in
net Xpos-index <= parport.0.pin-11-in
В нем теперь будет нужная информация.
Но с управлением несколько хитрее...
По идее, нужно настраивать такой же PID контроллер как на серве...
А какая основная функция линейки - отслеживать положение или просто определять пропуски шагов шагового двигателя?
Вот кусок обработки энкодера:
# описываем энкодер
loadrt encoder num_chan=1
addf encoder.update-counters base-thread
addf encoder.capture-position servo-thread
setp encoder.0.position-scale 20.000000
net Xpos-phase-a encoder.0.phase-A
net Xpos-phase-b encoder.0.phase-B
net Xpos-index encoder.0.phase-Z
net Xpos-phase-a <= parport.0.pin-10-in
net Xpos-index <= parport.0.pin-11-in
В нем теперь будет нужная информация.
Но с управлением несколько хитрее...
По идее, нужно настраивать такой же PID контроллер как на серве...
А какая основная функция линейки - отслеживать положение или просто определять пропуски шагов шагового двигателя?
Re: помогите подключить линейки к EMC2
Не знаю как это правильно сказать, нужно что-бы EMC давала импульсы step до тех пор пока с линейки не было-бы получено количество импульсов соответствующие заданному в УП расстоянию. Например текущие значение X=0, идёт строка G1 X10, значит нужно передвинуть X на +10мм, при перемещении головки линейки на 10мм она должна выдать 1000 импульсов (1 импульс= 0,01мм), и соответственно пока эти 1000 импульсов с линейки не получены импульсы step должны выдаваться на драйвер ШД. В общем не просто сигнализировать о пропуске шагов но и вводить корректировки.А какая основная функция линейки - отслеживать положение или просто определять пропуски шагов шагового двигателя?
У меня шаговые двигатели, это что-то меняет в настойках?
- ubey_bobra
- Кандидат
- Сообщения: 75
- Зарегистрирован: 21 ноя 2010, 21:56
- Репутация: 0
- Откуда: г. Сосновый Бор Ленинградская обл.
- Контактная информация:
Re: помогите подключить линейки к EMC2
да, это меняет очень многое.
настроить емс чтобы она просто показывала положение считывая данные с линеек можно, а вот насчет управлять шаговым двигателем... где то натыкался на такое, не помню где.
суть в том что когда управление идет сервой, то в зависимости от положения рабочего органа, блок ПИД выдает свой определенным методом рассчитанный вольтаж на двигатель, где учтены ускорения, дальность и т.д. а вот такого блока для управления шаговика вроде как в емс нету, вариант писать ручками самому. (под блоком подразумевается часть программного кода, либо часть "железа" которая выполняет какие либо записанные в нее функции)
настроить емс чтобы она просто показывала положение считывая данные с линеек можно, а вот насчет управлять шаговым двигателем... где то натыкался на такое, не помню где.
суть в том что когда управление идет сервой, то в зависимости от положения рабочего органа, блок ПИД выдает свой определенным методом рассчитанный вольтаж на двигатель, где учтены ускорения, дальность и т.д. а вот такого блока для управления шаговика вроде как в емс нету, вариант писать ручками самому. (под блоком подразумевается часть программного кода, либо часть "железа" которая выполняет какие либо записанные в нее функции)
p.s. Все гениальное просто, тогда когда оно известно и популярно. А в свое время людей жгли на костре, за то что они утверждали что земля круглая.
Re: помогите подключить линейки к EMC2
Судя по всему можно. Достаточно использовать stepgen в velocity режиме, а не position.
Кормить ему на вход результат pid. Правда, поскольку это шаговик, работать это будет не идеально
Кормить ему на вход результат pid. Правда, поскольку это шаговик, работать это будет не идеально
root, доделай конвертацию!
Re: помогите подключить линейки к EMC2
да, это меняет очень многое.
настроить емс чтобы она просто показывала положение считывая данные с линеек можно, а вот насчет управлять шаговым двигателем... где то натыкался на такое, не помню где.
суть в том что когда управление идет сервой, то в зависимости от положения рабочего органа, блок ПИД выдает свой определенным методом рассчитанный вольтаж на двигатель, где учтены ускорения, дальность и т.д. а вот такого блока для управления шаговика вроде как в емс нету, вариант писать ручками самому. (под блоком подразумевается часть программного кода, либо часть "железа" которая выполняет какие либо записанные в нее функции)
настроить емс чтобы она просто показывала положение считывая данные с линеек можно, а вот насчет управлять шаговым двигателем... где то натыкался на такое, не помню где.
суть в том что когда управление идет сервой, то в зависимости от положения рабочего органа, блок ПИД выдает свой определенным методом рассчитанный вольтаж на двигатель, где учтены ускорения, дальность и т.д. а вот такого блока для управления шаговика вроде как в емс нету, вариант писать ручками самому. (под блоком подразумевается часть программного кода, либо часть "железа" которая выполняет какие либо записанные в нее функции)
Re: помогите подключить линейки к EMC2
Блок ПИД выдает абстрактное желаемое значение. Для сервы он потом загоняется в pwm и преобразуется в ШИМ.Boris писал(а):блок ПИД выдает свой определенным методом рассчитанный вольтаж на двигатель, где учтены ускорения, дальность и т.д. а вот такого блока для управления шаговика вроде как в емс нету
Для шаговика надо загнать в stepgen и получить пульсы.
http://psha.org.ru/irc/%23emc/2011-03-02.html#18:02:38
root, доделай конвертацию!
Re: помогите подключить линейки к EMC2
Я в EMC абсолютный чайник, да и в CNC тоже не шибко разбираюсь, пользовался немного mach. Если не сильно затруднит, подскажите, что и где надо написать (ini, hal ...) что-бы линейки хоть что-то показали в EMC.
Re: помогите подключить линейки к EMC2
Ну я тут ничего не подскажу, проверить негде и сервы не делал. Я только путь в светлое будущее указать могу
root, доделай конвертацию!
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: помогите подключить линейки к EMC2
Ну чтобы показывали, нужно написать то, что я вверху указал.
Значения параметров на энкодере можно посмотреть в HAL Meter или HAL Show, в зависимости от GUI они находятся в разных разделах верхнего меню.
Psha все правильно написал. Нужно добавить PID, как для сервы но выход его писать не в pwm как для сервы, а в stepgen.
Аналогичная ситуация была при описании внешнего джойстика для управления станком через EMC2.
Скинь свой файл hal попробуем написать.
Значения параметров на энкодере можно посмотреть в HAL Meter или HAL Show, в зависимости от GUI они находятся в разных разделах верхнего меню.
Psha все правильно написал. Нужно добавить PID, как для сервы но выход его писать не в pwm как для сервы, а в stepgen.
Аналогичная ситуация была при описании внешнего джойстика для управления станком через EMC2.
Скинь свой файл hal попробуем написать.
Re: помогите подключить линейки к EMC2
# Создан stepconf в Sat Feb 26 01:07:08 2011
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf
loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hal_parport cfg="0x378 out "
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0
loadrt pwmgen output_type=0
# энкодер
loadrt encoder num_chan=1
addf encoder.update-counters base-thread
addf encoder.capture-position servo-thread
setp encoder.0.position-scale 20.000000
net Xpos-phase-a encoder.0.phase-A
net Xpos-phase-b encoder.0.phase-B
net Xpos-index encoder.0.phase-Z
net Xpos-phase-a <= parport.0.pin-12-in
net Xpos-index <= parport.0.pin-13-in
# энкодер
addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf pwmgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread
addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
addf pwmgen.update servo-thread
net spindle-cmd <= motion.spindle-speed-out => pwmgen.0.value
net spindle-enable <= motion.spindle-on => pwmgen.0.enable
net spindle-pwm <= pwmgen.0.pwm
setp pwmgen.0.pwm-freq 100.0
setp pwmgen.0.scale 1166.66666667
setp pwmgen.0.offset 0.114285714286
setp pwmgen.0.dither-pwm true
net spindle-cw <= motion.spindle-forward
net estop-out => parport.0.pin-01-out
net xstep => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
net xdir => parport.0.pin-03-out
net ystep => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
net ydir => parport.0.pin-05-out
net zstep => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 1
net zdir => parport.0.pin-07-out
net astep => parport.0.pin-08-out
setp parport.0.pin-08-out-reset 1
net adir => parport.0.pin-09-out
net spindle-cw => parport.0.pin-14-out
net spindle-pwm => parport.0.pin-16-out
net xenable => parport.0.pin-17-out
setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 70000
setp stepgen.0.dirsetup 70000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable axis.0.amp-enable-out => stepgen.0.enable
setp stepgen.1.position-scale [AXIS_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 70000
setp stepgen.1.dirsetup 70000
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
net ypos-cmd axis.1.motor-pos-cmd => stepgen.1.position-cmd
net ypos-fb stepgen.1.position-fb => axis.1.motor-pos-fb
net ystep <= stepgen.1.step
net ydir <= stepgen.1.dir
net yenable axis.1.amp-enable-out => stepgen.1.enable
setp stepgen.2.position-scale [AXIS_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 70000
setp stepgen.2.dirsetup 70000
setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.2.position-cmd
net zpos-fb stepgen.2.position-fb => axis.2.motor-pos-fb
net zstep <= stepgen.2.step
net zdir <= stepgen.2.dir
net zenable axis.2.amp-enable-out => stepgen.2.enable
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
loadusr -W hal_manualtoolchange
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf
loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hal_parport cfg="0x378 out "
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0
loadrt pwmgen output_type=0
# энкодер
loadrt encoder num_chan=1
addf encoder.update-counters base-thread
addf encoder.capture-position servo-thread
setp encoder.0.position-scale 20.000000
net Xpos-phase-a encoder.0.phase-A
net Xpos-phase-b encoder.0.phase-B
net Xpos-index encoder.0.phase-Z
net Xpos-phase-a <= parport.0.pin-12-in
net Xpos-index <= parport.0.pin-13-in
# энкодер
addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf pwmgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread
addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
addf pwmgen.update servo-thread
net spindle-cmd <= motion.spindle-speed-out => pwmgen.0.value
net spindle-enable <= motion.spindle-on => pwmgen.0.enable
net spindle-pwm <= pwmgen.0.pwm
setp pwmgen.0.pwm-freq 100.0
setp pwmgen.0.scale 1166.66666667
setp pwmgen.0.offset 0.114285714286
setp pwmgen.0.dither-pwm true
net spindle-cw <= motion.spindle-forward
net estop-out => parport.0.pin-01-out
net xstep => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
net xdir => parport.0.pin-03-out
net ystep => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
net ydir => parport.0.pin-05-out
net zstep => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 1
net zdir => parport.0.pin-07-out
net astep => parport.0.pin-08-out
setp parport.0.pin-08-out-reset 1
net adir => parport.0.pin-09-out
net spindle-cw => parport.0.pin-14-out
net spindle-pwm => parport.0.pin-16-out
net xenable => parport.0.pin-17-out
setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 70000
setp stepgen.0.dirsetup 70000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable axis.0.amp-enable-out => stepgen.0.enable
setp stepgen.1.position-scale [AXIS_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 70000
setp stepgen.1.dirsetup 70000
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
net ypos-cmd axis.1.motor-pos-cmd => stepgen.1.position-cmd
net ypos-fb stepgen.1.position-fb => axis.1.motor-pos-fb
net ystep <= stepgen.1.step
net ydir <= stepgen.1.dir
net yenable axis.1.amp-enable-out => stepgen.1.enable
setp stepgen.2.position-scale [AXIS_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 70000
setp stepgen.2.dirsetup 70000
setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.2.position-cmd
net zpos-fb stepgen.2.position-fb => axis.2.motor-pos-fb
net zstep <= stepgen.2.step
net zdir <= stepgen.2.dir
net zenable axis.2.amp-enable-out => stepgen.2.enable
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
loadusr -W hal_manualtoolchange
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: помогите подключить линейки к EMC2
1. нужно поменять тип stepgen для нужной оси:
loadrt stepgen step_type=0,0,0 ctrl_type=p,p,v
На нужную выставляем v = velocity.
2. добавляем PID
loadrt at_pid num_chan=1
addf pid.0.do-pid-calcs servo-thread
net Xpos-fb <= encoder.0.position => pid.0.feedback
net Xpos-cmd <= axis.0.motor-pos-cmd => pid.0.command
net Xpos-fb axis.0.motor-pos-fb
net xenable axis.0.amp-enable-out => pid.0.enable
# привязываем pid к stepgen
net Xvel-cmd <= pid.0.out => stepgen.0.velocity-cmd
# задаем значения параметров для PID
setp pid.0.Pgain [AXIS_0]P
setp pid.0.Igain [AXIS_0]I
setp pid.0.Dgain [AXIS_0]D
setp pid.0.bias [AXIS_0]BIAS
setp pid.0.FF0 [AXIS_0]FF0
setp pid.0.FF1 [AXIS_0]FF1
setp pid.0.FF2 [AXIS_0]FF2
setp pid.0.deadband [AXIS_0]DEADBAND
--------------
Как-то так. Пишу с нетбука, правильность не гарантирую...
loadrt stepgen step_type=0,0,0 ctrl_type=p,p,v
На нужную выставляем v = velocity.
2. добавляем PID
loadrt at_pid num_chan=1
addf pid.0.do-pid-calcs servo-thread
net Xpos-fb <= encoder.0.position => pid.0.feedback
net Xpos-cmd <= axis.0.motor-pos-cmd => pid.0.command
net Xpos-fb axis.0.motor-pos-fb
net xenable axis.0.amp-enable-out => pid.0.enable
# привязываем pid к stepgen
net Xvel-cmd <= pid.0.out => stepgen.0.velocity-cmd
# задаем значения параметров для PID
setp pid.0.Pgain [AXIS_0]P
setp pid.0.Igain [AXIS_0]I
setp pid.0.Dgain [AXIS_0]D
setp pid.0.bias [AXIS_0]BIAS
setp pid.0.FF0 [AXIS_0]FF0
setp pid.0.FF1 [AXIS_0]FF1
setp pid.0.FF2 [AXIS_0]FF2
setp pid.0.deadband [AXIS_0]DEADBAND
--------------
Как-то так. Пишу с нетбука, правильность не гарантирую...
Re: помогите подключить линейки к EMC2
До того как прочитал Ваше последнее сообщение, сделал следующие изменения:
Убрал строку net Xpos-index encoder.0.phase-Z зерометки у меня с линейки не идёт
поменял net Xpos-index <= parport.0.pin-13-in на net Xpos-phase-B <= parport.0.pin-13-in сделал это интуитивно, методом тыка так сказать, потому что не понимаю значение Xpos-index
всё равно не показывает с линеек ни чего
В меню "Вид" что надо выбрать: показать заданную позицию или показать реальную позицию (выбрал: показать реальную позицию); показать станочную позицию или показать относительную позицию ?
Пины 12 и 13 (parport.0 ) дополнительно нигде не надо инициализировать?
Сейчас верну всё назад и попробую внести изменения указанные Вами в последнем посте.
Убрал строку net Xpos-index encoder.0.phase-Z зерометки у меня с линейки не идёт
поменял net Xpos-index <= parport.0.pin-13-in на net Xpos-phase-B <= parport.0.pin-13-in сделал это интуитивно, методом тыка так сказать, потому что не понимаю значение Xpos-index
всё равно не показывает с линеек ни чего
В меню "Вид" что надо выбрать: показать заданную позицию или показать реальную позицию (выбрал: показать реальную позицию); показать станочную позицию или показать относительную позицию ?
Пины 12 и 13 (parport.0 ) дополнительно нигде не надо инициализировать?
Сейчас верну всё назад и попробую внести изменения указанные Вами в последнем посте.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: помогите подключить линейки к EMC2
В меню нужно найти или hal meter или hal watch или hal show и в открывшемся окне найти encoder.0.counts, таким образом можно протестировать, что энкодер действительно заработал.
Re: помогите подключить линейки к EMC2
После внесения изменений "ЕМС2 завершился с ошибкой".
В место строки loadrt stepgen step_type=0,0,0 нужна строка loadrt stepgen step_type=0,0,0 ctrl_type=v,p,v ? Если ось Х.
Сейчас закоментирую все изменения и запущу hal meter.
В место строки loadrt stepgen step_type=0,0,0 нужна строка loadrt stepgen step_type=0,0,0 ctrl_type=v,p,v ? Если ось Х.
Сейчас закоментирую все изменения и запущу hal meter.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: помогите подключить линейки к EMC2
если ось x (ось 0) то v, p, p. Каждая буква - это тип генератора, для одной оси. Оси с номерами задаются в файле ini. Обычно x - 0, y - 1, z - 2.
Когда он завершается с ошибкой обычно выводится сообщение, из которого можно понять в какой строчке конфига какая ошибка.
Когда он завершается с ошибкой обычно выводится сообщение, из которого можно понять в какой строчке конфига какая ошибка.
Re: помогите подключить линейки к EMC2
Нашёл encoder.0.counts в hal meter. Что это даёт и что с ним делать?
Re: помогите подключить линейки к EMC2
Вроде что-то появилось. После двойного клика на encoder.0.counts в hal meter, появилось окно с счётчиком, значение которого меняется при передвижении головки линейки.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: помогите подключить линейки к EMC2
Это хорошо! Энкодер работает.
Теперь по-тихоньку его нужно подключить к pid.
Попробуй для начала вот это и посмотри в hal meter что он тоже работает.
loadrt at_pid num_chan=1
addf pid.0.do-pid-calcs servo-thread
net Xpos-fb <= encoder.0.position => pid.0.feedback
net Xpos-cmd <= axis.0.motor-pos-cmd => pid.0.command
Теперь по-тихоньку его нужно подключить к pid.
Попробуй для начала вот это и посмотри в hal meter что он тоже работает.
loadrt at_pid num_chan=1
addf pid.0.do-pid-calcs servo-thread
net Xpos-fb <= encoder.0.position => pid.0.feedback
net Xpos-cmd <= axis.0.motor-pos-cmd => pid.0.command
Re: помогите подключить линейки к EMC2
Попутно вопрос.
это корректно, или лучше править custom.hal?
Я вношу изменения именно в этот файл (он у меня называется Мой_станок)my-mill.hal (Если ваш файл когфигурации называется "my-mill") Этот файл загружается первым и не должен быть изменен, если вы использовали Stepper Config Wizard.
это корректно, или лучше править custom.hal?