Проблема со скоростью шпинделя на Mesa 5i20 + 7i27TA

Работа с платами MESA, подключение, конфигурация.
Konstantin_K
Новичок
Сообщения: 15
Зарегистрирован: 29 апр 2013, 14:43
Репутация: 0
Контактная информация:

Re: Проблема со скоростью шпинделя на Mesa 5i20 + 7i27TA

Сообщение Konstantin_K »

Добавил по примеру:

loadrt scale count=1
addf scale.0 servo-thread
setp scale.0.gain 0.002
net spindle-speed-scale motion.spindle-speed-out => scale.0.in
net spindle-speed-DAC scale.0.out => <your DAC pin name>

Теперь не запускается EMC - выдает ошибку при загрузке.
Подскажите , то не так с кодом? Где ошибка?

HAL

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

loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hostmot2
loadrt hm2_pci config="firmware=hm2/5i20/SVST8_4.BIT num_encoders=4 num_pwmgens=4 num_3pwmgens=0 num_stepgens=0  " 
setp     hm2_5i20.0.pwmgen.pwm_frequency 100000
setp     hm2_5i20.0.pwmgen.pdm_frequency 6000000
setp     hm2_5i20.0.watchdog.timeout_ns 10000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s
loadrt abs names=abs.spindle
loadrt lowpass names=lowpass.spindle
loadrt scale names=scale.spindle
loadrt mux16 names=jogincr,foincr

addf hm2_5i20.0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf pid.y.do-pid-calcs servo-thread
addf pid.z.do-pid-calcs servo-thread
addf pid.s.do-pid-calcs servo-thread
addf jogincr servo-thread
addf foincr servo-thread
addf abs.spindle servo-thread
addf scale.spindle servo-thread
addf lowpass.spindle servo-thread
addf hm2_5i20.0.write         servo-thread
addf hm2_5i20.0.pet_watchdog  servo-thread

# external output signals

# external input signals

# --- PROBE-IN ---
net probe-in     <=  hm2_5i20.0.gpio.024.in_not

# --- SPINDLE-MANUAL-STOP ---
net spindle-manual-stop     <=  hm2_5i20.0.gpio.028.in

# --- CYCLE-START ---
net cycle-start     <=  hm2_5i20.0.gpio.031.in

# --- SPINDLE-MANUAL-CCW ---
net spindle-manual-ccw     <=  hm2_5i20.0.gpio.032.in

# --- ABORT ---
net abort     <=  hm2_5i20.0.gpio.033.in

# --- HOME-X ---
net home-x     <=  hm2_5i20.0.gpio.034.in

# --- SINGLE-STEP ---
net single-step     <=  hm2_5i20.0.gpio.035.in

# --- HOME-Y ---
net home-y     <=  hm2_5i20.0.gpio.036.in

# --- HOME-Z ---
net home-z     <=  hm2_5i20.0.gpio.037.in

# --- SPINDLE-MANUAL-CW ---
net spindle-manual-cw     <=  hm2_5i20.0.gpio.038.in

# --- ESTOP-EXT ---
net estop-ext     <=  hm2_5i20.0.gpio.039.in

# --- JOG-SELECTED-POS ---
net jog-selected-pos     <=  hm2_5i20.0.gpio.048.in

# --- JOG-SELECTED-NEG ---
net jog-selected-neg     <=  hm2_5i20.0.gpio.049.in

# --- JOINT-SELECT-A ---
net joint-select-a     <=  hm2_5i20.0.gpio.050.in

# --- JOINT-SELECT-B ---
net joint-select-b     <=  hm2_5i20.0.gpio.051.in

# --- JOINT-SELECT-C ---
net joint-select-c     <=  hm2_5i20.0.gpio.052.in

# --- JOINT-SELECT-D ---
net joint-select-d     <=  hm2_5i20.0.gpio.053.in

# --- JOG-INCR-A ---
net jog-incr-a     <=  hm2_5i20.0.gpio.054.in

# --- JOG-INCR-B ---
net jog-incr-b     <=  hm2_5i20.0.gpio.055.in

# --- JOG-INCR-C ---
net jog-incr-c     <=  hm2_5i20.0.gpio.056.in

# --- JOG-INCR-D ---
net jog-incr-d     <=  hm2_5i20.0.gpio.057.in

# --- FO-INCR-A ---
net fo-incr-a     <=  hm2_5i20.0.gpio.058.in

# --- FO-INCR-B ---
net fo-incr-b     <=  hm2_5i20.0.gpio.059.in

# --- FO-INCR-C ---
net fo-incr-c     <=  hm2_5i20.0.gpio.060.in

# --- FO-INCR-D ---
net fo-incr-d     <=  hm2_5i20.0.gpio.061.in

#*******************
#  AXIS X
#*******************

setp   pid.x.Pgain     [AXIS_0]P
setp   pid.x.Igain     [AXIS_0]I
setp   pid.x.Dgain     [AXIS_0]D
setp   pid.x.bias      [AXIS_0]BIAS
setp   pid.x.FF0       [AXIS_0]FF0
setp   pid.x.FF1       [AXIS_0]FF1
setp   pid.x.FF2       [AXIS_0]FF2
setp   pid.x.deadband  [AXIS_0]DEADBAND
setp   pid.x.maxoutput [AXIS_0]MAX_OUTPUT

net x-index-enable  <=>  pid.x.index-enable
net x-enable       => pid.x.enable
net x-output       => pid.x.output
net x-pos-cmd      => pid.x.command
net x-vel-fb       => pid.x.command-deriv
net x-pos-fb       => pid.x.feedback

# ---PWM Generator signals/setup---

setp   hm2_5i20.0.pwmgen.01.output-type 1
setp   hm2_5i20.0.pwmgen.01.scale  [AXIS_0]OUTPUT_SCALE

net x-output                             => hm2_5i20.0.pwmgen.01.value
net x-pos-cmd    axis.0.motor-pos-cmd
net x-enable     axis.0.amp-enable-out  => hm2_5i20.0.pwmgen.01.enable

# ---Encoder feedback signals/setup---

setp    hm2_5i20.0.encoder.01.counter-mode 0
setp    hm2_5i20.0.encoder.01.filter 1
setp    hm2_5i20.0.encoder.01.index-invert 0
setp    hm2_5i20.0.encoder.01.index-mask 0
setp    hm2_5i20.0.encoder.01.index-mask-invert 0
setp    hm2_5i20.0.encoder.01.scale  [AXIS_0]ENCODER_SCALE

net x-pos-fb               <=  hm2_5i20.0.encoder.01.position
net x-vel-fb               <=  hm2_5i20.0.encoder.01.velocity
net x-pos-fb               =>  axis.0.motor-pos-fb
net x-index-enable    axis.0.index-enable  <=>  hm2_5i20.0.encoder.01.index-enable
net x-pos-rawcounts        <=  hm2_5i20.0.encoder.01.rawcounts

# ---setup home / limit switch signals---

net home-x     =>  axis.0.home-sw-in
net x-neg-limit     =>  axis.0.neg-lim-sw-in
net x-pos-limit     =>  axis.0.pos-lim-sw-in

#*******************
#  AXIS Y
#*******************

setp   pid.y.Pgain     [AXIS_1]P
setp   pid.y.Igain     [AXIS_1]I
setp   pid.y.Dgain     [AXIS_1]D
setp   pid.y.bias      [AXIS_1]BIAS
setp   pid.y.FF0       [AXIS_1]FF0
setp   pid.y.FF1       [AXIS_1]FF1
setp   pid.y.FF2       [AXIS_1]FF2
setp   pid.y.deadband  [AXIS_1]DEADBAND
setp   pid.y.maxoutput [AXIS_1]MAX_OUTPUT

net y-index-enable  <=>  pid.y.index-enable
net y-enable       => pid.y.enable
net y-output       => pid.y.output
net y-pos-cmd      => pid.y.command
net y-vel-fb       => pid.y.command-deriv
net y-pos-fb       => pid.y.feedback

# ---PWM Generator signals/setup---

setp   hm2_5i20.0.pwmgen.00.output-type 1
setp   hm2_5i20.0.pwmgen.00.scale  [AXIS_1]OUTPUT_SCALE

net y-output                             => hm2_5i20.0.pwmgen.00.value
net y-pos-cmd    axis.1.motor-pos-cmd
net y-enable     axis.1.amp-enable-out  => hm2_5i20.0.pwmgen.00.enable

# ---Encoder feedback signals/setup---

setp    hm2_5i20.0.encoder.00.counter-mode 0
setp    hm2_5i20.0.encoder.00.filter 1
setp    hm2_5i20.0.encoder.00.index-invert 0
setp    hm2_5i20.0.encoder.00.index-mask 0
setp    hm2_5i20.0.encoder.00.index-mask-invert 0
setp    hm2_5i20.0.encoder.00.scale  [AXIS_1]ENCODER_SCALE

net y-pos-fb               <=  hm2_5i20.0.encoder.00.position
net y-vel-fb               <=  hm2_5i20.0.encoder.00.velocity
net y-pos-fb               =>  axis.1.motor-pos-fb
net y-index-enable    axis.1.index-enable  <=>  hm2_5i20.0.encoder.00.index-enable
net y-pos-rawcounts        <=  hm2_5i20.0.encoder.00.rawcounts

# ---setup home / limit switch signals---

net home-y     =>  axis.1.home-sw-in
net y-neg-limit     =>  axis.1.neg-lim-sw-in
net y-pos-limit     =>  axis.1.pos-lim-sw-in

#*******************
#  AXIS Z
#*******************

setp   pid.z.Pgain     [AXIS_2]P
setp   pid.z.Igain     [AXIS_2]I
setp   pid.z.Dgain     [AXIS_2]D
setp   pid.z.bias      [AXIS_2]BIAS
setp   pid.z.FF0       [AXIS_2]FF0
setp   pid.z.FF1       [AXIS_2]FF1
setp   pid.z.FF2       [AXIS_2]FF2
setp   pid.z.deadband  [AXIS_2]DEADBAND
setp   pid.z.maxoutput [AXIS_2]MAX_OUTPUT

net z-index-enable  <=>  pid.z.index-enable
net z-enable       => pid.z.enable
net z-output       => pid.z.output
net z-pos-cmd      => pid.z.command
net z-vel-fb       => pid.z.command-deriv
net z-pos-fb       => pid.z.feedback

# ---PWM Generator signals/setup---

setp   hm2_5i20.0.pwmgen.03.output-type 1
setp   hm2_5i20.0.pwmgen.03.scale  [AXIS_2]OUTPUT_SCALE

net z-output                             => hm2_5i20.0.pwmgen.03.value
net z-pos-cmd    axis.2.motor-pos-cmd
net z-enable     axis.2.amp-enable-out  => hm2_5i20.0.pwmgen.03.enable

# ---Encoder feedback signals/setup---

setp    hm2_5i20.0.encoder.03.counter-mode 0
setp    hm2_5i20.0.encoder.03.filter 1
setp    hm2_5i20.0.encoder.03.index-invert 0
setp    hm2_5i20.0.encoder.03.index-mask 0
setp    hm2_5i20.0.encoder.03.index-mask-invert 0
setp    hm2_5i20.0.encoder.03.scale  [AXIS_2]ENCODER_SCALE

net z-pos-fb               <=  hm2_5i20.0.encoder.03.position
net z-vel-fb               <=  hm2_5i20.0.encoder.03.velocity
net z-pos-fb               =>  axis.2.motor-pos-fb
net z-index-enable    axis.2.index-enable  <=>  hm2_5i20.0.encoder.03.index-enable
net z-pos-rawcounts        <=  hm2_5i20.0.encoder.03.rawcounts

# ---setup home / limit switch signals---

net home-z     =>  axis.2.home-sw-in
net z-neg-limit     =>  axis.2.neg-lim-sw-in
net z-pos-limit     =>  axis.2.pos-lim-sw-in

#*******************
#  SPINDLE S
#*******************

# ---PWM Generator signals/setup---

setp   hm2_5i20.0.pwmgen.02.output-type 1
setp   hm2_5i20.0.pwmgen.02.scale  [SPINDLE_9]OUTPUT_SCALE

loadrt scale count=1
addf scale.0 servo-thread
setp scale.0.gain 0.0033
net spindle-speed-limit motion.spindle-speed-out => scale.0.in
net spindle-speed-DAC scale.0.out => hm2_5i20.0.pwmgen.02.value

#net spindle-vel-cmd     => hm2_5i20.0.pwmgen.02.value
net spindle-enable      => hm2_5i20.0.pwmgen.02.enable

# ---Encoder feedback signals/setup---

setp    hm2_5i20.0.encoder.02.counter-mode 0
setp    hm2_5i20.0.encoder.02.filter 1
setp    hm2_5i20.0.encoder.02.index-invert 0
setp    hm2_5i20.0.encoder.02.index-mask 0
setp    hm2_5i20.0.encoder.02.index-mask-invert 0
setp    hm2_5i20.0.encoder.02.scale  [SPINDLE_9]ENCODER_SCALE

net spindle-revs              <=  hm2_5i20.0.encoder.02.position
net spindle-vel-fb            <=  hm2_5i20.0.encoder.02.velocity
net spindle-index-enable     <=>  hm2_5i20.0.encoder.02.index-enable

# ---setup spindle control signals---

net spindle-vel-cmd-rps    <=  motion.spindle-speed-out-rps
net spindle-vel-cmd        <=  motion.spindle-speed-out
net spindle-enable         <=  motion.spindle-on
net spindle-cw             <=  motion.spindle-forward
net spindle-ccw            <=  motion.spindle-reverse
net spindle-brake          <=  motion.spindle-brake
net spindle-revs           =>  motion.spindle-revs
net spindle-at-speed       =>  motion.spindle-at-speed
net spindle-vel-fb         =>  motion.spindle-speed-in
net spindle-index-enable  <=>  motion.spindle-index-enable

# ---Setup spindle at speed signals---

#sets spindle-at-speed true

#  Use ACTUAL spindle velocity from spindle encoder
#  spindle-velocity bounces around so we filter it with lowpass
#  spindle-velocity is signed so we use absolute component to remove sign
#  ACTUAL velocity is in RPS not RPM so we scale it.

setp     scale.spindle.gain 0.0033
#setp     lowpass.spindle.gain 0.100000
net spindle-vel-fb        =>   lowpass.spindle.in
net spindle-fb-filtered-rps    lowpass.spindle.out      =>   abs.spindle.in
net spindle-fb-filtered-abs-rps    abs.spindle.out      =>   scale.spindle.in
net spindle-fb-filtered-abs-rpm    scale.spindle.out

#******************************
# connect miscellaneous signals
#******************************

#  ---HALUI signals---

net joint-select-a        halui.joint.0.select
net x-is-homed            halui.joint.0.is-homed
net jog-x-pos             halui.jog.0.plus
net jog-x-neg             halui.jog.0.minus
net jog-x-analog          halui.jog.0.analog
net joint-select-b        halui.joint.1.select
net y-is-homed            halui.joint.1.is-homed
net jog-y-pos             halui.jog.1.plus
net jog-y-neg             halui.jog.1.minus
net jog-y-analog          halui.jog.1.analog
net joint-select-c        halui.joint.2.select
net z-is-homed            halui.joint.2.is-homed
net jog-z-pos             halui.jog.2.plus
net jog-z-neg             halui.jog.2.minus
net jog-z-analog          halui.jog.2.analog
net jog-selected-pos      halui.jog.selected.plus
net jog-selected-neg      halui.jog.selected.minus
net spindle-manual-cw     halui.spindle.forward
net spindle-manual-ccw    halui.spindle.reverse
net spindle-manual-stop   halui.spindle.stop
net machine-is-on         halui.machine.is-on
net jog-speed             halui.jog-speed 
net MDI-mode              halui.mode.is-mdi

#  ---coolant signals---

net coolant-mist      <=  iocontrol.0.coolant-mist
net coolant-flood     <=  iocontrol.0.coolant-flood

#  ---probe signal---

net probe-in     =>  motion.probe-input

# connect selectable mpg jog increments 

net jog-incr-a           =>  jogincr.sel0
net jog-incr-b           =>  jogincr.sel1
net jog-incr-c           =>  jogincr.sel2
net jog-incr-d           =>  jogincr.sel3
net selected-jog-incr    <=  jogincr.out-f
    setp jogincr.debounce-time      0.200000
    setp jogincr.use-graycode      False
    setp jogincr.suppress-no-input False
    setp jogincr.in00          0.000000
    setp jogincr.in01          0.000100
    setp jogincr.in02          0.001000
    setp jogincr.in03          0.000000
    setp jogincr.in04          0.010000
    setp jogincr.in05          0.000000
    setp jogincr.in06          0.000000
    setp jogincr.in07          0.000000
    setp jogincr.in08          0.000000
    setp jogincr.in09          0.000000
    setp jogincr.in10          0.000000
    setp jogincr.in11          0.000000
    setp jogincr.in12          0.000000
    setp jogincr.in13          0.000000
    setp jogincr.in14          0.000000
    setp jogincr.in15          0.000000

# connect feed overide increments - switches

    setp halui.feed-override.count-enable true
    setp halui.feed-override.direct-value true
    setp halui.feed-override.scale .01
net feedoverride-incr   =>  halui.feed-override.counts
net fo-incr-a           =>  foincr.sel0
net fo-incr-b           =>  foincr.sel1
net fo-incr-c           =>  foincr.sel2
net fo-incr-d           =>  foincr.sel3
net feedoverride-incr   <=  foincr.out-s
    setp foincr.debounce-time      0.200000
    setp foincr.use-graycode      False
    setp foincr.suppress-no-input False
    setp foincr.in00          0.000000
    setp foincr.in01          5.000000
    setp foincr.in02          10.000000
    setp foincr.in03          25.000000
    setp foincr.in04          50.000000
    setp foincr.in05          75.000000
    setp foincr.in06          90.000000
    setp foincr.in07          100.000000
    setp foincr.in08          110.000000
    setp foincr.in09          125.000000
    setp foincr.in10          140.000000
    setp foincr.in11          150.000000
    setp foincr.in12          165.000000
    setp foincr.in13          180.000000
    setp foincr.in14          190.000000
    setp foincr.in15          200.000000

#  ---motion control signals---

net in-position               <=  motion.in-position
net machine-is-enabled        <=  motion.motion-enabled

#  ---digital in / out signals---

#  ---estop signals---

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

#  ---manual tool change signals---

loadusr -W hal_manualtoolchange
net tool-change-request     iocontrol.0.tool-change       =>  hal_manualtoolchange.change
net tool-change-confirmed   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
INI

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

[EMC]
MACHINE = CNC
DEBUG = 0

[DISPLAY]
DISPLAY = axis
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.200000
MAX_SPINDLE_OVERRIDE = 1.000000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/c3640/linuxcnc/nc_files
PYVCP = pyvcp-panel.xml
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
DEFAULT_LINEAR_VELOCITY = 0.250000
MAX_LINEAR_VELOCITY = 30.000000
MIN_LINEAR_VELOCITY = 0.010000
DEFAULT_ANGULAR_VELOCITY = 0.170000
MAX_ANGULAR_VELOCITY = 60.000000
MIN_ANGULAR_VELOCITY = 0.010000
EDITOR = gedit
GEOMETRY = xyz

[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python

[TASK]
TASK = milltask
CYCLE_TIME = 0.010

[RS274NGC]
PARAMETER_FILE = linuxcnc.var

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
SERVO_PERIOD = 1000000

[HOSTMOT2]
# **** This is for info only ****
# DRIVER0=hm2_pci
# BOARD0=5i20

[HAL]
HALUI = halui
HALFILE = CNC.hal
HALFILE = custom.hal
POSTGUI_HALFILE = postgui_call_list.hal
SHUTDOWN = shutdown.hal

[HALUI]

[TRAJ]
AXES = 3
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 0.17
MAX_LINEAR_VELOCITY = 30.0

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
TOOLCHANGE_QUILL_UP = 1

#********************
# Axis X
#********************
[AXIS_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 2.0
MIN_FERROR = 0.2
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 60.0
P = 4.0
I = 0.02
D = 0.001
FF0 = 0.0
FF1 = 0.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 10.0
ENCODER_SCALE = 2000.0
OUTPUT_SCALE = 10.0
MIN_LIMIT = -640.0
MAX_LIMIT = 640.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -10.0
HOME_LATCH_VEL = -1.0
HOME_FINAL_VEL = 0.5
HOME_USE_INDEX = NO
HOME_SEQUENCE = 1

#********************
# Axis Y
#********************
[AXIS_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 2.0
MIN_FERROR = 0.2
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 60.0
P = 5.0
I = 0.03
D = 0.001
FF0 = 0.0
FF1 = 0.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 10.0
ENCODER_SCALE = -1000.0
OUTPUT_SCALE = 10.0
MIN_LIMIT = -400.0
MAX_LIMIT = 400.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -10.0
HOME_LATCH_VEL = -1.0
HOME_FINAL_VEL = 0.5
HOME_USE_INDEX = NO
HOME_SEQUENCE = 1

#********************
# Axis Z
#********************
[AXIS_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 2.0
MIN_FERROR = 0.2
MAX_VELOCITY = 20.0
MAX_ACCELERATION = 60.0
P = 5.0
I = 0.03
D = 0.001
FF0 = 0.0
FF1 = 0.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 10.0
ENCODER_SCALE = -1000.0
OUTPUT_SCALE = -10.0
MIN_LIMIT = -500.0
MAX_LIMIT = 500.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = 10.0
HOME_LATCH_VEL = -1.0
HOME_FINAL_VEL = 0.5
HOME_USE_INDEX = NO
HOME_SEQUENCE = 0

#********************
# Spindle 
#********************
[SPINDLE_9]
ENCODER_SCALE = -16.67
OUTPUT_SCALE = -1.0

#MAX_VELOCITY = 50.0
#MAX_ACCELERATION = 3.0
#P = 1.0
#I = 1.0
#D = 0.000
#FF0 = 0.5
#FF1 = 0.0
#FF2 = 0.0
#BIAS = 0.0
#DEADBAND = 0.15
#OUTPUT_OFFSET = 0.0
# MAX_OUTPUT = 10.0
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Проблема со скоростью шпинделя на Mesa 5i20 + 7i27TA

Сообщение nkp »

вот так попробовать:

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

loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hostmot2
loadrt hm2_pci config="firmware=hm2/5i20/SVST8_4.BIT num_encoders=4 num_pwmgens=4 num_3pwmgens=0 num_stepgens=0  " 
setp     hm2_5i20.0.pwmgen.pwm_frequency 100000
setp     hm2_5i20.0.pwmgen.pdm_frequency 6000000
setp     hm2_5i20.0.watchdog.timeout_ns 10000000
loadrt pid names=pid.x,pid.y,pid.z,pid.s
loadrt abs names=abs.spindle
loadrt lowpass names=lowpass.spindle
loadrt scale names=scale.spindle
loadrt mux16 names=jogincr,foincr

addf hm2_5i20.0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf pid.y.do-pid-calcs servo-thread
addf pid.z.do-pid-calcs servo-thread
addf pid.s.do-pid-calcs servo-thread
addf jogincr servo-thread
addf foincr servo-thread
addf abs.spindle servo-thread
addf scale.spindle servo-thread
addf lowpass.spindle servo-thread
addf hm2_5i20.0.write         servo-thread
addf hm2_5i20.0.pet_watchdog  servo-thread

# external output signals

# external input signals

# --- PROBE-IN ---
net probe-in     <=  hm2_5i20.0.gpio.024.in_not

# --- SPINDLE-MANUAL-STOP ---
net spindle-manual-stop     <=  hm2_5i20.0.gpio.028.in

# --- CYCLE-START ---
net cycle-start     <=  hm2_5i20.0.gpio.031.in

# --- SPINDLE-MANUAL-CCW ---
net spindle-manual-ccw     <=  hm2_5i20.0.gpio.032.in

# --- ABORT ---
net abort     <=  hm2_5i20.0.gpio.033.in

# --- HOME-X ---
net home-x     <=  hm2_5i20.0.gpio.034.in

# --- SINGLE-STEP ---
net single-step     <=  hm2_5i20.0.gpio.035.in

# --- HOME-Y ---
net home-y     <=  hm2_5i20.0.gpio.036.in

# --- HOME-Z ---
net home-z     <=  hm2_5i20.0.gpio.037.in

# --- SPINDLE-MANUAL-CW ---
net spindle-manual-cw     <=  hm2_5i20.0.gpio.038.in

# --- ESTOP-EXT ---
net estop-ext     <=  hm2_5i20.0.gpio.039.in

# --- JOG-SELECTED-POS ---
net jog-selected-pos     <=  hm2_5i20.0.gpio.048.in

# --- JOG-SELECTED-NEG ---
net jog-selected-neg     <=  hm2_5i20.0.gpio.049.in

# --- JOINT-SELECT-A ---
net joint-select-a     <=  hm2_5i20.0.gpio.050.in

# --- JOINT-SELECT-B ---
net joint-select-b     <=  hm2_5i20.0.gpio.051.in

# --- JOINT-SELECT-C ---
net joint-select-c     <=  hm2_5i20.0.gpio.052.in

# --- JOINT-SELECT-D ---
net joint-select-d     <=  hm2_5i20.0.gpio.053.in

# --- JOG-INCR-A ---
net jog-incr-a     <=  hm2_5i20.0.gpio.054.in

# --- JOG-INCR-B ---
net jog-incr-b     <=  hm2_5i20.0.gpio.055.in

# --- JOG-INCR-C ---
net jog-incr-c     <=  hm2_5i20.0.gpio.056.in

# --- JOG-INCR-D ---
net jog-incr-d     <=  hm2_5i20.0.gpio.057.in

# --- FO-INCR-A ---
net fo-incr-a     <=  hm2_5i20.0.gpio.058.in

# --- FO-INCR-B ---
net fo-incr-b     <=  hm2_5i20.0.gpio.059.in

# --- FO-INCR-C ---
net fo-incr-c     <=  hm2_5i20.0.gpio.060.in

# --- FO-INCR-D ---
net fo-incr-d     <=  hm2_5i20.0.gpio.061.in

#*******************
#  AXIS X
#*******************

setp   pid.x.Pgain     [AXIS_0]P
setp   pid.x.Igain     [AXIS_0]I
setp   pid.x.Dgain     [AXIS_0]D
setp   pid.x.bias      [AXIS_0]BIAS
setp   pid.x.FF0       [AXIS_0]FF0
setp   pid.x.FF1       [AXIS_0]FF1
setp   pid.x.FF2       [AXIS_0]FF2
setp   pid.x.deadband  [AXIS_0]DEADBAND
setp   pid.x.maxoutput [AXIS_0]MAX_OUTPUT

net x-index-enable  <=>  pid.x.index-enable
net x-enable       => pid.x.enable
net x-output       => pid.x.output
net x-pos-cmd      => pid.x.command
net x-vel-fb       => pid.x.command-deriv
net x-pos-fb       => pid.x.feedback

# ---PWM Generator signals/setup---

setp   hm2_5i20.0.pwmgen.01.output-type 1
setp   hm2_5i20.0.pwmgen.01.scale  [AXIS_0]OUTPUT_SCALE

net x-output                             => hm2_5i20.0.pwmgen.01.value
net x-pos-cmd    axis.0.motor-pos-cmd
net x-enable     axis.0.amp-enable-out  => hm2_5i20.0.pwmgen.01.enable

# ---Encoder feedback signals/setup---

setp    hm2_5i20.0.encoder.01.counter-mode 0
setp    hm2_5i20.0.encoder.01.filter 1
setp    hm2_5i20.0.encoder.01.index-invert 0
setp    hm2_5i20.0.encoder.01.index-mask 0
setp    hm2_5i20.0.encoder.01.index-mask-invert 0
setp    hm2_5i20.0.encoder.01.scale  [AXIS_0]ENCODER_SCALE

net x-pos-fb               <=  hm2_5i20.0.encoder.01.position
net x-vel-fb               <=  hm2_5i20.0.encoder.01.velocity
net x-pos-fb               =>  axis.0.motor-pos-fb
net x-index-enable    axis.0.index-enable  <=>  hm2_5i20.0.encoder.01.index-enable
net x-pos-rawcounts        <=  hm2_5i20.0.encoder.01.rawcounts

# ---setup home / limit switch signals---

net home-x     =>  axis.0.home-sw-in
net x-neg-limit     =>  axis.0.neg-lim-sw-in
net x-pos-limit     =>  axis.0.pos-lim-sw-in

#*******************
#  AXIS Y
#*******************

setp   pid.y.Pgain     [AXIS_1]P
setp   pid.y.Igain     [AXIS_1]I
setp   pid.y.Dgain     [AXIS_1]D
setp   pid.y.bias      [AXIS_1]BIAS
setp   pid.y.FF0       [AXIS_1]FF0
setp   pid.y.FF1       [AXIS_1]FF1
setp   pid.y.FF2       [AXIS_1]FF2
setp   pid.y.deadband  [AXIS_1]DEADBAND
setp   pid.y.maxoutput [AXIS_1]MAX_OUTPUT

net y-index-enable  <=>  pid.y.index-enable
net y-enable       => pid.y.enable
net y-output       => pid.y.output
net y-pos-cmd      => pid.y.command
net y-vel-fb       => pid.y.command-deriv
net y-pos-fb       => pid.y.feedback

# ---PWM Generator signals/setup---

setp   hm2_5i20.0.pwmgen.00.output-type 1
setp   hm2_5i20.0.pwmgen.00.scale  [AXIS_1]OUTPUT_SCALE

net y-output                             => hm2_5i20.0.pwmgen.00.value
net y-pos-cmd    axis.1.motor-pos-cmd
net y-enable     axis.1.amp-enable-out  => hm2_5i20.0.pwmgen.00.enable

# ---Encoder feedback signals/setup---

setp    hm2_5i20.0.encoder.00.counter-mode 0
setp    hm2_5i20.0.encoder.00.filter 1
setp    hm2_5i20.0.encoder.00.index-invert 0
setp    hm2_5i20.0.encoder.00.index-mask 0
setp    hm2_5i20.0.encoder.00.index-mask-invert 0
setp    hm2_5i20.0.encoder.00.scale  [AXIS_1]ENCODER_SCALE

net y-pos-fb               <=  hm2_5i20.0.encoder.00.position
net y-vel-fb               <=  hm2_5i20.0.encoder.00.velocity
net y-pos-fb               =>  axis.1.motor-pos-fb
net y-index-enable    axis.1.index-enable  <=>  hm2_5i20.0.encoder.00.index-enable
net y-pos-rawcounts        <=  hm2_5i20.0.encoder.00.rawcounts

# ---setup home / limit switch signals---

net home-y     =>  axis.1.home-sw-in
net y-neg-limit     =>  axis.1.neg-lim-sw-in
net y-pos-limit     =>  axis.1.pos-lim-sw-in

#*******************
#  AXIS Z
#*******************

setp   pid.z.Pgain     [AXIS_2]P
setp   pid.z.Igain     [AXIS_2]I
setp   pid.z.Dgain     [AXIS_2]D
setp   pid.z.bias      [AXIS_2]BIAS
setp   pid.z.FF0       [AXIS_2]FF0
setp   pid.z.FF1       [AXIS_2]FF1
setp   pid.z.FF2       [AXIS_2]FF2
setp   pid.z.deadband  [AXIS_2]DEADBAND
setp   pid.z.maxoutput [AXIS_2]MAX_OUTPUT

net z-index-enable  <=>  pid.z.index-enable
net z-enable       => pid.z.enable
net z-output       => pid.z.output
net z-pos-cmd      => pid.z.command
net z-vel-fb       => pid.z.command-deriv
net z-pos-fb       => pid.z.feedback

# ---PWM Generator signals/setup---

setp   hm2_5i20.0.pwmgen.03.output-type 1
setp   hm2_5i20.0.pwmgen.03.scale  [AXIS_2]OUTPUT_SCALE

net z-output                             => hm2_5i20.0.pwmgen.03.value
net z-pos-cmd    axis.2.motor-pos-cmd
net z-enable     axis.2.amp-enable-out  => hm2_5i20.0.pwmgen.03.enable

# ---Encoder feedback signals/setup---

setp    hm2_5i20.0.encoder.03.counter-mode 0
setp    hm2_5i20.0.encoder.03.filter 1
setp    hm2_5i20.0.encoder.03.index-invert 0
setp    hm2_5i20.0.encoder.03.index-mask 0
setp    hm2_5i20.0.encoder.03.index-mask-invert 0
setp    hm2_5i20.0.encoder.03.scale  [AXIS_2]ENCODER_SCALE

net z-pos-fb               <=  hm2_5i20.0.encoder.03.position
net z-vel-fb               <=  hm2_5i20.0.encoder.03.velocity
net z-pos-fb               =>  axis.2.motor-pos-fb
net z-index-enable    axis.2.index-enable  <=>  hm2_5i20.0.encoder.03.index-enable
net z-pos-rawcounts        <=  hm2_5i20.0.encoder.03.rawcounts

# ---setup home / limit switch signals---

net home-z     =>  axis.2.home-sw-in
net z-neg-limit     =>  axis.2.neg-lim-sw-in
net z-pos-limit     =>  axis.2.pos-lim-sw-in

#*******************
#  SPINDLE S
#*******************

# ---PWM Generator signals/setup---

setp   hm2_5i20.0.pwmgen.02.output-type 1
setp   hm2_5i20.0.pwmgen.02.scale  [SPINDLE_9]OUTPUT_SCALE

setp     scale.spindle.gain 0.0033
net spindle-speed-limit motion.spindle-speed-out => scale.spindle.in
net spindle-speed-DAC scale.spindle.out => hm2_5i20.0.pwmgen.02.value

#net spindle-vel-cmd     => hm2_5i20.0.pwmgen.02.value
net spindle-enable      => hm2_5i20.0.pwmgen.02.enable

# ---Encoder feedback signals/setup---

setp    hm2_5i20.0.encoder.02.counter-mode 0
setp    hm2_5i20.0.encoder.02.filter 1
setp    hm2_5i20.0.encoder.02.index-invert 0
setp    hm2_5i20.0.encoder.02.index-mask 0
setp    hm2_5i20.0.encoder.02.index-mask-invert 0
setp    hm2_5i20.0.encoder.02.scale  [SPINDLE_9]ENCODER_SCALE

net spindle-revs              <=  hm2_5i20.0.encoder.02.position
net spindle-vel-fb            <=  hm2_5i20.0.encoder.02.velocity
net spindle-index-enable     <=>  hm2_5i20.0.encoder.02.index-enable

# ---setup spindle control signals---

net spindle-vel-cmd-rps    <=  motion.spindle-speed-out-rps
net spindle-vel-cmd        <=  motion.spindle-speed-out
net spindle-enable         <=  motion.spindle-on
net spindle-cw             <=  motion.spindle-forward
net spindle-ccw            <=  motion.spindle-reverse
net spindle-brake          <=  motion.spindle-brake
net spindle-revs           =>  motion.spindle-revs
net spindle-at-speed       =>  motion.spindle-at-speed
net spindle-vel-fb         =>  motion.spindle-speed-in
net spindle-index-enable  <=>  motion.spindle-index-enable

# ---Setup spindle at speed signals---

#sets spindle-at-speed true

#  Use ACTUAL spindle velocity from spindle encoder
#  spindle-velocity bounces around so we filter it with lowpass
#  spindle-velocity is signed so we use absolute component to remove sign
#  ACTUAL velocity is in RPS not RPM so we scale it.


#setp     lowpass.spindle.gain 0.100000
net spindle-vel-fb        =>   lowpass.spindle.in
net spindle-fb-filtered-rps    lowpass.spindle.out      =>   abs.spindle.in
net spindle-fb-filtered-abs-rps    abs.spindle.out      =>   scale.spindle.in
net spindle-fb-filtered-abs-rpm    scale.spindle.out

#******************************
# connect miscellaneous signals
#******************************

#  ---HALUI signals---

net joint-select-a        halui.joint.0.select
net x-is-homed            halui.joint.0.is-homed
net jog-x-pos             halui.jog.0.plus
net jog-x-neg             halui.jog.0.minus
net jog-x-analog          halui.jog.0.analog
net joint-select-b        halui.joint.1.select
net y-is-homed            halui.joint.1.is-homed
net jog-y-pos             halui.jog.1.plus
net jog-y-neg             halui.jog.1.minus
net jog-y-analog          halui.jog.1.analog
net joint-select-c        halui.joint.2.select
net z-is-homed            halui.joint.2.is-homed
net jog-z-pos             halui.jog.2.plus
net jog-z-neg             halui.jog.2.minus
net jog-z-analog          halui.jog.2.analog
net jog-selected-pos      halui.jog.selected.plus
net jog-selected-neg      halui.jog.selected.minus
net spindle-manual-cw     halui.spindle.forward
net spindle-manual-ccw    halui.spindle.reverse
net spindle-manual-stop   halui.spindle.stop
net machine-is-on         halui.machine.is-on
net jog-speed             halui.jog-speed 
net MDI-mode              halui.mode.is-mdi

#  ---coolant signals---

net coolant-mist      <=  iocontrol.0.coolant-mist
net coolant-flood     <=  iocontrol.0.coolant-flood

#  ---probe signal---

net probe-in     =>  motion.probe-input

# connect selectable mpg jog increments 

net jog-incr-a           =>  jogincr.sel0
net jog-incr-b           =>  jogincr.sel1
net jog-incr-c           =>  jogincr.sel2
net jog-incr-d           =>  jogincr.sel3
net selected-jog-incr    <=  jogincr.out-f
    setp jogincr.debounce-time      0.200000
    setp jogincr.use-graycode      False
    setp jogincr.suppress-no-input False
    setp jogincr.in00          0.000000
    setp jogincr.in01          0.000100
    setp jogincr.in02          0.001000
    setp jogincr.in03          0.000000
    setp jogincr.in04          0.010000
    setp jogincr.in05          0.000000
    setp jogincr.in06          0.000000
    setp jogincr.in07          0.000000
    setp jogincr.in08          0.000000
    setp jogincr.in09          0.000000
    setp jogincr.in10          0.000000
    setp jogincr.in11          0.000000
    setp jogincr.in12          0.000000
    setp jogincr.in13          0.000000
    setp jogincr.in14          0.000000
    setp jogincr.in15          0.000000

# connect feed overide increments - switches

    setp halui.feed-override.count-enable true
    setp halui.feed-override.direct-value true
    setp halui.feed-override.scale .01
net feedoverride-incr   =>  halui.feed-override.counts
net fo-incr-a           =>  foincr.sel0
net fo-incr-b           =>  foincr.sel1
net fo-incr-c           =>  foincr.sel2
net fo-incr-d           =>  foincr.sel3
net feedoverride-incr   <=  foincr.out-s
    setp foincr.debounce-time      0.200000
    setp foincr.use-graycode      False
    setp foincr.suppress-no-input False
    setp foincr.in00          0.000000
    setp foincr.in01          5.000000
    setp foincr.in02          10.000000
    setp foincr.in03          25.000000
    setp foincr.in04          50.000000
    setp foincr.in05          75.000000
    setp foincr.in06          90.000000
    setp foincr.in07          100.000000
    setp foincr.in08          110.000000
    setp foincr.in09          125.000000
    setp foincr.in10          140.000000
    setp foincr.in11          150.000000
    setp foincr.in12          165.000000
    setp foincr.in13          180.000000
    setp foincr.in14          190.000000
    setp foincr.in15          200.000000

#  ---motion control signals---

net in-position               <=  motion.in-position
net machine-is-enabled        <=  motion.motion-enabled

#  ---digital in / out signals---

#  ---estop signals---

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

#  ---manual tool change signals---

loadusr -W hal_manualtoolchange
net tool-change-request     iocontrol.0.tool-change       =>  hal_manualtoolchange.change
net tool-change-confirmed   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
такие вещи конечно быстрее можно настроить , если станок под рукой :
смотрим ошибку , оперативно исправляем, за короткий период времени добиваемся оптимума ;)
кстати - текст ошибки тоже выкладывай (понятней,что исправлять))
Konstantin_K
Новичок
Сообщения: 15
Зарегистрирован: 29 апр 2013, 14:43
Репутация: 0
Контактная информация:

Re: Проблема со скоростью шпинделя на Mesa 5i20 + 7i27TA

Сообщение Konstantin_K »

nkp писал(а):если станок под рукой
К сожалению, наша промышленность отстала от западной.. Не научились телепортировать еще 5-ти тонные станки :-)
Но надеюсь что в недалеком будущем это станет возможно (и без таможенных платежей) :)

Попробую завтра предложенный код.
Я так понял различие в том что вместо scale.0.gain предложено scale.spindle.gain

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

Re: Проблема со скоростью шпинделя на Mesa 5i20 + 7i27TA

Сообщение nkp »

Konstantin_K писал(а):К сожалению, наша промышленность отстала от западной.. Не научились телепортировать еще 5-ти тонные станки
обычно поступаем проще - интернет к станку и в течении 15 минут исправляем-опробуем много ошибок-вариантов ))))
я как раз это имел в виду... :)
----------------------------
Konstantin_K писал(а):Я так понял различие в том что вместо scale.0.gain предложено scale.spindle.gain
да - пока заметил только это...
Konstantin_K писал(а):но вроде никаких ссылок на строки или параметры нет.
в подавляющем большинстве случаев - есть...
Konstantin_K
Новичок
Сообщения: 15
Зарегистрирован: 29 апр 2013, 14:43
Репутация: 0
Контактная информация:

Re: Проблема со скоростью шпинделя на Mesa 5i20 + 7i27TA

Сообщение Konstantin_K »

nkp, ОГРОМНОЕ СПАСИБО!

Все получилось еще 1 сентября. Сразу на следующий день.

nkp писал(а):в подавляющем большинстве случаев - есть...
Вот это и была главная подсказка. Так бы еще долго писал и справшивал. В разделе Debugging оказывается есть сообщения с указанием строк в которых ошибка.
А я перед эти смотрел и не увидел.
Оказалось просто что разные строки несли одну и туже информацию и требовалось некоторые закомментировать.

Еще раз огромное спасибо.
Konstantin_K
Новичок
Сообщения: 15
Зарегистрирован: 29 апр 2013, 14:43
Репутация: 0
Контактная информация:

Re: Проблема со скоростью шпинделя на Mesa 5i20 + 7i27TA

Сообщение Konstantin_K »

Здравствуйте и Всех с наступившим Новым Годом!

Кто знает как установить в LinuxCNC скорость торможения шпинделя (время торможения)?
Для осей вроде есть max_acceleration
А для шпинделя он не работает (вроде бы).

У нас проблема - при команде остановки двигатель останавливается СЛИШКОМ резко. Прямо мгновенно. Если на 3000 оборотах делаем стоп, то чуть ли не удар происходит и на коллекторе аж искры сыпятся.

Для нас нет необходимости в такой резкой остановке, надо что бы она происходила намного медленее.


Заранее спасибо.
Аватара пользователя
tooshka
Почётный участник
Почётный участник
Сообщения: 1803
Зарегистрирован: 24 окт 2012, 14:26
Репутация: 209
Настоящее имя: Андрей
Откуда: Нижний Новгород
Контактная информация:

Re: Проблема со скоростью шпинделя на Mesa 5i20 + 7i27TA

Сообщение tooshka »

Konstantin_K писал(а):Кто знает как установить в LinuxCNC скорость торможения шпинделя (время торможения)
Вроде это в частотнике нужно устанавливать.
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Проблема со скоростью шпинделя на Mesa 5i20 + 7i27TA

Сообщение nkp »

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

Re: Проблема со скоростью шпинделя на Mesa 5i20 + 7i27TA

Сообщение Serg »

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

Re: Проблема со скоростью шпинделя на Mesa 5i20 + 7i27TA

Сообщение Nick »

nkp писал(а):если после M5 из хал постепенно уменьшать задание на шпиндель ,как при плавном разгоне
Еще как вариант через lowpass, но с limit гораздо интереснее :)...
Konstantin_K
Новичок
Сообщения: 15
Зарегистрирован: 29 апр 2013, 14:43
Репутация: 0
Контактная информация:

Re: Проблема со скоростью шпинделя на Mesa 5i20 + 7i27TA

Сообщение Konstantin_K »

UAVpilot писал(а):Если управление аналоговое по скорости, то можно тупо RC-цепочку приделать.
Если был частотник, то я бы знал как сделать.

А тут БТУ3601 (старый советский привод постоянного тока). На нем знаю как это сделать.
Хотя по нормальному думаю что привод тоже должен был бы так настраиваться.
Konstantin_K
Новичок
Сообщения: 15
Зарегистрирован: 29 апр 2013, 14:43
Репутация: 0
Контактная информация:

Re: Проблема со скоростью шпинделя на Mesa 5i20 + 7i27TA

Сообщение Konstantin_K »

Сейчас буду разбираться с приведенными ссылками. А пока еще одни вопрос.
Резкий останов - это реально из-за привода или чпу?
На ЧПУ в момент остановки шпинделя есть еще пункт "Тормоз" , который становится активным. Может это ЧПУ специально посылает сигнал резкого останова , имитируя тормоз? Может там можно отключить торможение?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Проблема со скоростью шпинделя на Mesa 5i20 + 7i27TA

Сообщение nkp »

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

Re: Проблема со скоростью шпинделя на Mesa 5i20 + 7i27TA

Сообщение Serg »

Konstantin_K писал(а):А тут БТУ3601 (старый советский привод постоянного тока). На нем знаю как это сделать.
Точно также. У него аналоговое управление +/-10V, подаётся на клеммы 21 и 22(GND).
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Konstantin_K
Новичок
Сообщения: 15
Зарегистрирован: 29 апр 2013, 14:43
Репутация: 0
Контактная информация:

Re: Проблема со скоростью шпинделя на Mesa 5i20 + 7i27TA

Сообщение Konstantin_K »

Вроде остановились на том что это реально проблема со стороны Привод+Двигатель. ЧПУ вроде тут не причем.
Электронщик обещал сделать что то типа RC цепочки для уменьшения тока
Ответить

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