ЕМС2 и ШД с энкодером

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

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

намбаван писал(а):FERROR = 1
MIN_FERROR = .25
Это вроде в порядке....
Значит, нужно смотреть на обратную связь.
Т.е. смотри параметр encoder position, и смотри на сколько он соответствует реальному положению.
намбаван
Опытный
Сообщения: 128
Зарегистрирован: 08 авг 2011, 16:33
Репутация: 9
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение намбаван »

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

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

Значит обратная связь не правильная.
Ты уверен, что энкодер правильно работал?

Joint 0 following error это ошибка следования траектории, она возникает, когда реальное положение шарнира отличается от заданного больше чем на FERROR.
намбаван
Опытный
Сообщения: 128
Зарегистрирован: 08 авг 2011, 16:33
Репутация: 9
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение намбаван »

нет,что то не так :(
добрался наконец как следует и никак не выходит мотор крутить.максимум,что получилось-если изменить значение
setp pid.0.bias,то будет как на видео(с телефона-7 мб)
http://narod.ru/disk/23681065001/vid.rar.html
нажимаешь кнопку"вкл",проезжает MIN_FERROR и выключается
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

Обратная связь по любому глючит. Энкодер точно правильно работает? Положение оси правильно меняется на экране?

Попробуй поставить min_ferror и ferror = 100. Посмотри как двигатель крутится...
намбаван
Опытный
Сообщения: 128
Зарегистрирован: 08 авг 2011, 16:33
Репутация: 9
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение намбаван »

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

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

таааак... давай еще раз hal ...

Надо его целиком пересмотреть, в предыдущих сообщениях что-то странный он какой-то :think:.
намбаван
Опытный
Сообщения: 128
Зарегистрирован: 08 авг 2011, 16:33
Репутация: 9
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение намбаван »

в данный момент такой

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

# Создан stepconf в Wed Dec 11 01:41:27 2002
# Все изменения в этом файле будут перезаписаны
# при следующем запуске 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 1000
loadrt stepgen step_type=0,0,0 ctrl_type=v,v,v

addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread

# encoder
loadrt encoder num_chan=1
addf encoder.update-counters base-thread
addf encoder.capture-position servo-thread
setp encoder.0.position-scale 1333.333333
net Xpos-phase-a encoder.0.phase-A
net Xpos-phase-b encoder.0.phase-B
net Xpos-phase-a <= parport.0.pin-10-in
net Xpos-phase-b <= parport.0.pin-11-in
# encoder

# KNOPKA SBROS
net reset-encoders parport.0.pin-13-in => encoder.0.reset
# KNOPKA SBROS

#PID
loadrt at_pid num_chan=1
addf pid.0.do-pid-calcs servo-thread
net Xpos-fb <= encoder.0.position => pid.0.feedback
#PID

# çàäàåì çíà÷åíèÿ ïàðàìåòðîâ äëÿ PID
setp pid.0.Pgain 1
setp pid.0.Igain 0
setp pid.0.Dgain 0
setp pid.0.bias 0
setp pid.0.FF0 0
setp pid.0.FF1 0
setp pid.0.FF2 0
setp pid.0.deadband 0
# çàäàåì çíà÷åíèÿ ïàðàìåòðîâ äëÿ PID

# enable
net xenable axis.0.amp-enable-out => stepgen.0.enable
net xenable => pid.0.enable
# enable

# stepgen-pid
net Xvel-cmd <= pid.0.output => stepgen.0.velocity-cmd
# stepgen-pid

addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
net spindle-cmd <= motion.spindle-speed-out
net din-01 => motion.digital-in-01
net din-02 => motion.digital-in-02

net xstep => parport.0.pin-01-out
setp parport.0.pin-01-out-reset 1
net xdir => parport.0.pin-02-out


net din-01 <= parport.0.pin-12-in



setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 24000
setp stepgen.0.dirsetup 223000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
#net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.velocity-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 24000
setp stepgen.1.dirsetup 223000
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
net ypos-cmd axis.1.motor-pos-cmd => stepgen.1.velocity-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 24000
setp stepgen.2.dirsetup 223000
setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.2.velocity-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: ЕМС2 и ШД с энкодером

Сообщение Nick »

Вот переработал hal.
Сейчас напишу, что сделал. Пока попробуй, не выдаст ли сразу ошибок (мне проверить негде).

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

# Создан stepconf в Wed Dec 11 01:41:27 2002
# Все изменения в этом файле будут перезаписаны
# при следующем запуске 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 1000
loadrt stepgen step_type=0,0,0 ctrl_type=v,v,v
loadrt at_pid num_chan=1

addf parport.0.read base-thread
addf encoder.update-counters base-thread
addf stepgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread

addf encoder.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.do-pid-calcs servo-thread
addf stepgen.update-freq servo-thread


#-------- Encoder-X --------#
loadrt encoder num_chan=1
setp encoder.0.position-scale 1333.333333
net Xpos-phase-a encoder.0.phase-A
net Xpos-phase-b encoder.0.phase-B
net Xpos-phase-a <= parport.0.pin-10-in
net Xpos-phase-b <= parport.0.pin-11-in
	# Add feedback to motion. This replaces sepgen.0.position-fb
net Xpos-fb <= encoder.0.position
net Xpos-fb => axis.0.motor-pos-fb
#-------- Encoder-X --------#

#-------- Reset Button --------#
net reset-encoders parport.0.pin-13-in => encoder.0.reset
#-------- Reset Button --------#

#-------- PID-X --------#
net Xpos-fb => pid.0.feedback
net xenable <= axis.0.amp-enable-out => pid.0.enable
net Xvel-cmd <= pid.0.output
setp pid.0.Pgain 1
setp pid.0.Igain 0
setp pid.0.Dgain 0
setp pid.0.bias 0
setp pid.0.FF0 0
setp pid.0.FF1 0
setp pid.0.FF2 0
setp pid.0.deadband 0
#-------- PID-X --------#

#-------- Stepgen-X --------#
net xstep <= stepgen.0.step => parport.0.pin-01-out
net xdir <= stepgen.0.dir => parport.0.pin-02-out
net xenable => stepgen.0.enable
	# get-cmd from PID-X
net Xvel-cmd => stepgen.0.velocity-cmd

setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 35000
setp stepgen.0.dirsetup 35000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
#-------- Stepgen-X --------#

#-------- EStop --------#
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
#-------- EStop --------#

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: ЕМС2 и ШД с энкодером

Сообщение Nick »

Что сделал.
  1. Убрал пока две не используемые оси.
  2. Переделал порядок объявлений.
  3. Основное! Скорее всего могло не работать вот из-за этой строчки:
    net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb т.е. планировщику траекторий дается обратная связь от генератора шагов (обычно считается, что шаговый двигатель не пропускает шаги, соответственно обратную связь можно брать прямо с генератора шагов). Но эта обратная связь может отличаться от той, которую мы получаем от энкодера. Эту строчку заменил на
    net Xpos-fb <= encoder.0.position
    net Xpos-fb => axis.0.motor-pos-fb
    Т.е. берем обратную связь от энкодера и пихаем ее в net Xpos-fb => axis.0.motor-pos-fb
  4. Изменил вот эти цифры
    setp stepgen.1.dirhold 24000
    setp stepgen.1.dirsetup 223000
    на стандартные
    setp stepgen.0.dirhold 35000
    setp stepgen.0.dirsetup 35000
намбаван
Опытный
Сообщения: 128
Зарегистрирован: 08 авг 2011, 16:33
Репутация: 9
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение намбаван »

не съел ))
Debug file information:
HAL: ERROR: function 'encoder.update-counters' not found
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

строчку loadrt encoder num_chan=1 перенес наверх, чтобы она была выше addf encoder.update-counters base-thread
т.е. сначала мы загружаем модуль encoder, а потом добавляем его функции к потоку base thread.
+еще исправил одну ошибочку...

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

# Создан stepconf в Wed Dec 11 01:41:27 2002
# Все изменения в этом файле будут перезаписаны
# при следующем запуске 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 1000
loadrt encoder num_chan=1
loadrt stepgen step_type=0,0,0 ctrl_type=v,v,v
loadrt at_pid num_chan=1

addf parport.0.read base-thread
addf encoder.update-counters base-thread
addf stepgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread

addf encoder.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.0.do-pid-calcs servo-thread
addf stepgen.update-freq servo-thread


#-------- Encoder-X --------#
setp encoder.0.position-scale 1333.333333
net Xpos-phase-a encoder.0.phase-A
net Xpos-phase-b encoder.0.phase-B
net Xpos-phase-a <= parport.0.pin-10-in
net Xpos-phase-b <= parport.0.pin-11-in
   # Add feedback to motion. This replaces sepgen.0.position-fb
net Xpos-fb <= encoder.0.position
net Xpos-fb => axis.0.motor-pos-fb
#-------- Encoder-X --------#

#-------- Reset Button --------#
net reset-encoders parport.0.pin-13-in => encoder.0.reset
#-------- Reset Button --------#

#-------- PID-X --------#
net Xpos-fb => pid.0.feedback
net xenable <= axis.0.amp-enable-out => pid.0.enable
net Xvel-cmd <= pid.0.output
setp pid.0.Pgain 1
setp pid.0.Igain 0
setp pid.0.Dgain 0
setp pid.0.bias 0
setp pid.0.FF0 0
setp pid.0.FF1 0
setp pid.0.FF2 0
setp pid.0.deadband 0
#-------- PID-X --------#

#-------- Stepgen-X --------#
net xstep <= stepgen.0.step => parport.0.pin-01-out
net xdir <= stepgen.0.dir => parport.0.pin-02-out
net xenable => stepgen.0.enable
   # get-cmd from PID-X
net Xvel-cmd => stepgen.0.velocity-cmd

setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 35000
setp stepgen.0.dirsetup 35000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
#-------- Stepgen-X --------#

#-------- EStop --------#
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
#-------- EStop --------#

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
намбаван
Опытный
Сообщения: 128
Зарегистрирован: 08 авг 2011, 16:33
Репутация: 9
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение намбаван »

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

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

Так, тогда попробуй поставить более маленькое ускорение и макс скорость оси. В ini

[AXIS_0]
...
MAX_VELOCITY = 5
MAX_ACCELERATION = 5
STEPGEN_MAXACCEL = 8

Может он не успевает разогнаться...
намбаван
Опытный
Сообщения: 128
Зарегистрирован: 08 авг 2011, 16:33
Репутация: 9
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение намбаван »

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

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

Попробуй поменять знак encoder.0.position-scale, может он считает в обратную сторону?
Т.е. должно быть так:

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

setp encoder.0.position-scale -1333.333333
Кстати, сколько тиков на оборот у энкодера?
намбаван
Опытный
Сообщения: 128
Зарегистрирован: 08 авг 2011, 16:33
Репутация: 9
Контактная информация:

Re: ЕМС2 и ШД с энкодером

Сообщение намбаван »

Попробуй поменять знак encoder.0.position-scale, может он считает в обратную сторону?
не,он правильно считал .поменял на минус,отключил питание мотора,покрутил винт,чтоб на энкодере не ноль был,включил питание и станок чуть в космос не улетел отрабатывая ошибку :P но ни по программе,ни вручную не желает шагать,только ошибку отрабатывает :cry:
Nick писал(а):Кстати, сколько тиков на оборот у энкодера?

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

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

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

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

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

Re: ЕМС2 и ШД с энкодером

Сообщение Nick »

Вот такую строчку забыли:
net Xpos-cmd axis.0.motor-pos-cmd => pid.0.command
Забыли на pid послать указание положения :oops:!
Вставь ее в блок #-------- PID-X --------#

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

# Создан stepconf в Wed Dec 11 01:41:27 2002
# Все изменения в этом файле будут перезаписаны
# при следующем запуске 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 1000
loadrt encoder num_chan=1
loadrt stepgen step_type=0,0,0 ctrl_type=v,v,v
loadrt at_pid num_chan=1

addf parport.0.read base-thread
addf encoder.update-counters base-thread
addf stepgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread

addf encoder.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.0.do-pid-calcs servo-thread
addf stepgen.update-freq servo-thread


#-------- Encoder-X --------#
setp encoder.0.position-scale 1333.333333
net Xpos-phase-a encoder.0.phase-A
net Xpos-phase-b encoder.0.phase-B
net Xpos-phase-a <= parport.0.pin-10-in
net Xpos-phase-b <= parport.0.pin-11-in
   # Add feedback to motion. This replaces sepgen.0.position-fb
net Xpos-fb <= encoder.0.position
net Xpos-fb => axis.0.motor-pos-fb
#-------- Encoder-X --------#

#-------- Reset Button --------#
net reset-encoders parport.0.pin-13-in => encoder.0.reset
#-------- Reset Button --------#

#-------- PID-X --------#
net Xpos-fb => pid.0.feedback
net Xpos-cmd axis.0.motor-pos-cmd => pid.0.command
net xenable <= axis.0.amp-enable-out => pid.0.enable
net Xvel-cmd <= pid.0.output
setp pid.0.Pgain 1
setp pid.0.Igain 0
setp pid.0.Dgain 0
setp pid.0.bias 0
setp pid.0.FF0 0
setp pid.0.FF1 0
setp pid.0.FF2 0
setp pid.0.deadband 0
#-------- PID-X --------#

#-------- Stepgen-X --------#
net xstep <= stepgen.0.step => parport.0.pin-01-out
net xdir <= stepgen.0.dir => parport.0.pin-02-out
net xenable => stepgen.0.enable
   # get-cmd from PID-X
net Xvel-cmd => stepgen.0.velocity-cmd

setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 35000
setp stepgen.0.dirsetup 35000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
#-------- Stepgen-X --------#

#-------- EStop --------#
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
#-------- EStop --------#

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
Ответить

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