5i23+2x7i47+7i42TA

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

Re: 5i23+2x7i47+7i42TA

Сообщение nkp »

sysrover писал(а):Мне интересно другое как все это добавлять ?
написать конфиг для шпинделя
проверить
написать конфиг для поворотки
проверить
выложить оба конфига сюда
попробуем "совместить"
sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

первое уже внутри конфигов
второе добавлю завтра
sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

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

Re: 5i23+2x7i47+7i42TA

Сообщение Nick »

Фото кишков делай! Чтоб можно потом было обсудить!
sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

Тут оська А это поворотная.
Вложения
test.hal
(9.91 КБ) 776 скачиваний
test.ini
(4.21 КБ) 983 скачивания
sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

Итак мой хал и ини
ini

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

# Generated by PNCconf at Fri Jul 24 15:03:37 2015
# Все изменения в этом файле будут перезаписаны
# overwritten when you run PNCconf again

[EMC]
MACHINE = my_LinuxCNC_machine
DEBUG = 0

[DISPLAY]

DISPLAY = gmoccapy
EMBED_TAB_NAME = progress_g_code_panel
EMBED_TAB_LOCATION = box_custom_4
EMBED_TAB_COMMAND = gladevcp -x {XID} -u progress.py progress.glade
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 1.000000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/work/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
DEFAULT_LINEAR_VELOCITY = 166.666667
MAX_LINEAR_VELOCITY = 150
MIN_LINEAR_VELOCITY = 0.010000
DEFAULT_ANGULAR_VELOCITY = 0.250000
MAX_ANGULAR_VELOCITY = 1.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=5i23

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

[HALUI]

[TRAJ]
AXES = 4
COORDINATES = X Y Z A
MAX_ANGULAR_VELOCITY = 150.00
DEFAULT_ANGULAR_VELOCITY = 15.00
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 1.67
MAX_LINEAR_VELOCITY = 16.67

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

#********************
# Axis X
#********************
[AXIS_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 1.005
MIN_FERROR = 1.0005
MAX_VELOCITY = 166.666666667
MAX_ACCELERATION = 200.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 208.3
STEPGEN_MAXACCEL = 1000.0
P = 20.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.025
BIAS = 0.0
DEADBAND = 0.005
MAX_OUTPUT = 200.0
ENCODER_SCALE = 2000.0
# these are in nanoseconds
DIRSETUP   = 1000
DIRHOLD    = 1000
STEPLEN    = 1000
STEPSPACE  = 1000
STEP_SCALE = 2000.0
MIN_LIMIT = 0
MAX_LIMIT = 106
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = 10.666667
HOME_LATCH_VEL = 10.666667
HOME_FINAL_VEL = -10.666667
HOME_USE_INDEX = YES
HOME_SEQUENCE = 1

#********************
# Axis Y
#********************
[AXIS_1]
TYPE = LINEAR
HOME = 0.0
FERROR = 1.005
MIN_FERROR = 1.0005
MAX_VELOCITY = 166.666666667
MAX_ACCELERATION = 200.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 208.3
STEPGEN_MAXACCEL = 1000.0
P = 20.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.025
BIAS = 0.0
DEADBAND = 0.005
MAX_OUTPUT = 200.0
ENCODER_SCALE = 2000.0
# these are in nanoseconds
DIRSETUP   = 1000
DIRHOLD    = 1000
STEPLEN    = 1000
STEPSPACE  = 1000
STEP_SCALE = 2000.0
MIN_LIMIT = 0
MAX_LIMIT = 248
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = 10.666667
HOME_LATCH_VEL = 10.666667
HOME_FINAL_VEL = -10.666667
HOME_USE_INDEX = YES
HOME_SEQUENCE = 3


#********************
# Axis Z
#********************
[AXIS_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 1.005
MIN_FERROR = 1.0005
MAX_VELOCITY = 166.666666667
MAX_ACCELERATION = 200.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 208.3
STEPGEN_MAXACCEL = 1000.0
P = 20.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.025
BIAS = 0.0
DEADBAND = 0.005
MAX_OUTPUT = 200.0
ENCODER_SCALE = 2000.0
# these are in nanoseconds
DIRSETUP   = 1000
DIRHOLD    = 1000
STEPLEN    = 1000
STEPSPACE  = 1000
STEP_SCALE = -2000.0
MIN_LIMIT = 0.0
MAX_LIMIT = 210.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = 10.666667
HOME_LATCH_VEL = 10.666667
HOME_FINAL_VEL = -10.666667
HOME_USE_INDEX = YES
HOME_SEQUENCE = 0

#********************
# Axis A
#********************
[AXIS_3]
TYPE = LINEAR
HOME = 0.0
FERROR = 10.005
MIN_FERROR = 10.0005
MAX_VELOCITY = 166.666666667
MAX_ACCELERATION = 200.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 208.3
STEPGEN_MAXACCEL = 1000.0
P = 20.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.025
BIAS = 0.0
DEADBAND = 0.005
MAX_OUTPUT = 200.0
ENCODER_SCALE = 2000.0
# these are in nanoseconds
DIRSETUP   = 1000
DIRHOLD    = 1000
STEPLEN    = 1000
STEPSPACE  = 1000
STEP_SCALE = -2000.0
MIN_LIMIT = 0
MAX_LIMIT = 266
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = 10.666667
HOME_LATCH_VEL = 10.666667
HOME_FINAL_VEL = -10.666667
HOME_USE_INDEX = YES
HOME_SEQUENCE = 2
#********************
# Spindle 
#********************
[SPINDLE_8]
MAX_VELOCITY = 53.125
MAX_ACCELERATION = 45.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 41.7
STEPGEN_MAXACCEL = 1000.0
P = 20.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.025
BIAS = 0.0
DEADBAND = 0.005
MAX_OUTPUT = 200.0
ENCODER_SCALE = 7843.1373
# these are in nanoseconds
DIRSETUP   = 1000
DIRHOLD    = 1000
STEPLEN    = 1000
STEPSPACE  = 1000
STEP_SCALE = -7843.1373


[SPINDLE_9]
MAX_VELOCITY = 53.125
MAX_ACCELERATION = 45.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 41.7
STEPGEN_MAXACCEL = 1000.0
ENCODER_SCALE = 7843.1373
# these are in nanoseconds
DIRSETUP   = 1000
DIRHOLD    = 1000
STEPLEN    = 1000
STEPSPACE  = 1000
STEP_SCALE = 7843.1373

Hal

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

# Generated by PNCconf at Fri Jul 24 15:03:37 2015
# Все изменения в этом файле будут перезаписаны
# overwritten when you run PNCconf again

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/5i23/SVST8_12_2X7I47.BIT num_encoders=6 num_pwmgens=0 num_3pwmgens=0 num_stepgens=8  " 
setp     hm2_5i23.0.watchdog.timeout_ns 10000000
loadrt pid names=pid.x,pid.y,pid.z,pid.a,pid.s

addf hm2_5i23.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.a.do-pid-calcs                 servo-thread
addf pid.s.do-pid-calcs                 servo-thread
addf hm2_5i23.0.write         servo-thread
addf hm2_5i23.0.pet_watchdog  servo-thread

# external output signals
setp hm2_5i23.0.gpio.048.is_output true
setp hm2_5i23.0.gpio.050.is_output true

# external input signals

# --- HOME-X ---
net all-home      <=  hm2_5i23.0.gpio.049.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.feedback-deriv
net x-pos-fb       => pid.x.feedback

# Step Gen signals/setup

setp   hm2_5i23.0.stepgen.00.dirsetup        [AXIS_0]DIRSETUP
setp   hm2_5i23.0.stepgen.00.dirhold         [AXIS_0]DIRHOLD
setp   hm2_5i23.0.stepgen.00.steplen         [AXIS_0]STEPLEN
setp   hm2_5i23.0.stepgen.00.stepspace       [AXIS_0]STEPSPACE
setp   hm2_5i23.0.stepgen.00.position-scale  [AXIS_0]STEP_SCALE
setp   hm2_5i23.0.stepgen.00.step_type        0
setp   hm2_5i23.0.stepgen.00.control-type     1
setp   hm2_5i23.0.stepgen.00.maxaccel         [AXIS_0]STEPGEN_MAXACCEL
setp   hm2_5i23.0.stepgen.00.maxvel           [AXIS_0]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net x-pos-cmd    axis.0.motor-pos-cmd
net x-output                             => hm2_5i23.0.stepgen.00.velocity-cmd
net x-enable     axis.0.amp-enable-out  => hm2_5i23.0.stepgen.00.enable

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

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

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

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

net all-home     =>  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.feedback-deriv
net y-pos-fb       => pid.y.feedback

# Step Gen signals/setup

setp   hm2_5i23.0.stepgen.03.dirsetup        [AXIS_1]DIRSETUP
setp   hm2_5i23.0.stepgen.03.dirhold         [AXIS_1]DIRHOLD
setp   hm2_5i23.0.stepgen.03.steplen         [AXIS_1]STEPLEN
setp   hm2_5i23.0.stepgen.03.stepspace       [AXIS_1]STEPSPACE
setp   hm2_5i23.0.stepgen.03.position-scale  [AXIS_1]STEP_SCALE
setp   hm2_5i23.0.stepgen.03.step_type        0
setp   hm2_5i23.0.stepgen.03.control-type     1
setp   hm2_5i23.0.stepgen.03.maxaccel         [AXIS_1]STEPGEN_MAXACCEL
setp   hm2_5i23.0.stepgen.03.maxvel           [AXIS_1]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net y-pos-cmd    axis.1.motor-pos-cmd
net y-output                             => hm2_5i23.0.stepgen.03.velocity-cmd
net y-enable     axis.1.amp-enable-out  => hm2_5i23.0.stepgen.03.enable

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

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

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

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

net all-home     =>  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.feedback-deriv
net z-pos-fb       => pid.z.feedback

# Step Gen signals/setup

setp   hm2_5i23.0.stepgen.02.dirsetup        [AXIS_2]DIRSETUP
setp   hm2_5i23.0.stepgen.02.dirhold         [AXIS_2]DIRHOLD
setp   hm2_5i23.0.stepgen.02.steplen         [AXIS_2]STEPLEN
setp   hm2_5i23.0.stepgen.02.stepspace       [AXIS_2]STEPSPACE
setp   hm2_5i23.0.stepgen.02.position-scale  [AXIS_2]STEP_SCALE
setp   hm2_5i23.0.stepgen.02.step_type        0
setp   hm2_5i23.0.stepgen.02.control-type     1
setp   hm2_5i23.0.stepgen.02.maxaccel         [AXIS_2]STEPGEN_MAXACCEL
setp   hm2_5i23.0.stepgen.02.maxvel           [AXIS_2]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net z-pos-cmd    axis.2.motor-pos-cmd
net z-output                             => hm2_5i23.0.stepgen.02.velocity-cmd
net z-enable     axis.2.amp-enable-out  => hm2_5i23.0.stepgen.02.enable

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

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

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

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

net all-home     =>  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

#*******************
#  AXIS A
#*******************

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

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

# Step Gen signals/setup

setp   hm2_5i23.0.stepgen.01.dirsetup        [AXIS_3]DIRSETUP
setp   hm2_5i23.0.stepgen.01.dirhold         [AXIS_3]DIRHOLD
setp   hm2_5i23.0.stepgen.01.steplen         [AXIS_3]STEPLEN
setp   hm2_5i23.0.stepgen.01.stepspace       [AXIS_3]STEPSPACE
setp   hm2_5i23.0.stepgen.01.position-scale  [AXIS_3]STEP_SCALE
setp   hm2_5i23.0.stepgen.01.step_type        0
setp   hm2_5i23.0.stepgen.01.control-type     1
setp   hm2_5i23.0.stepgen.01.maxaccel         [AXIS_3]STEPGEN_MAXACCEL
setp   hm2_5i23.0.stepgen.01.maxvel           [AXIS_3]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net a-pos-cmd    axis.3.motor-pos-cmd
net a-output                             => hm2_5i23.0.stepgen.01.velocity-cmd
net a-enable     axis.3.amp-enable-out  => hm2_5i23.0.stepgen.01.enable

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

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

net a-pos-fb               <=  hm2_5i23.0.encoder.01.position
net a-vel-fb               <=  hm2_5i23.0.encoder.01.velocity
net a-pos-fb               =>  axis.3.motor-pos-fb
net a-index-enable    axis.3.index-enable  <=>  hm2_5i23.0.encoder.01.index-enable
net a-pos-rawcounts        <=  hm2_5i23.0.encoder.01.rawcounts

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

net all-home     =>  axis.3.home-sw-in
net a-neg-limit     =>  axis.3.neg-lim-sw-in
net a-pos-limit     =>  axis.3.pos-lim-sw-in

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

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

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


loadrt mux2 count=2
addf mux2.0 servo-thread
addf mux2.1 servo-thread

setp   hm2_5i23.0.stepgen.06.dirsetup        [SPINDLE_9]DIRSETUP
setp   hm2_5i23.0.stepgen.06.dirhold         [SPINDLE_9]DIRHOLD
setp   hm2_5i23.0.stepgen.06.steplen         [SPINDLE_9]STEPLEN
setp   hm2_5i23.0.stepgen.06.stepspace       [SPINDLE_9]STEPSPACE
setp   hm2_5i23.0.stepgen.06.position-scale  [SPINDLE_9]STEP_SCALE
setp   hm2_5i23.0.stepgen.06.step_type        0
setp   hm2_5i23.0.stepgen.06.control-type     1
setp   hm2_5i23.0.stepgen.06.maxaccel         [SPINDLE_9]MAX_ACCELERATION
setp   hm2_5i23.0.stepgen.06.maxvel           [SPINDLE_9]MAX_VELOCITY

setp   hm2_5i23.0.stepgen.07.dirsetup        [SPINDLE_8]DIRSETUP
setp   hm2_5i23.0.stepgen.07.dirhold         [SPINDLE_8]DIRHOLD
setp   hm2_5i23.0.stepgen.07.steplen         [SPINDLE_8]STEPLEN
setp   hm2_5i23.0.stepgen.07.stepspace       [SPINDLE_8]STEPSPACE
setp   hm2_5i23.0.stepgen.07.position-scale  [SPINDLE_8]STEP_SCALE
setp   hm2_5i23.0.stepgen.07.step_type        0
setp   hm2_5i23.0.stepgen.07.control-type     1
setp   hm2_5i23.0.stepgen.07.maxaccel         [SPINDLE_8]MAX_ACCELERATION
setp   hm2_5i23.0.stepgen.07.maxvel           [SPINDLE_8]MAX_VELOCITY

net machine-is-enabled          =>  hm2_5i23.0.stepgen.06.enable
net machine-is-enabled          =>  hm2_5i23.0.stepgen.07.enable
#net spindle-vel-cmd-rps     =>  hm2_5i23.0.stepgen.06.velocity-cmd

net spindle-vel-cmd-rps     =>  mux2.0.in1 
net spindle-vel-cmd-rps-mux <= mux2.0.out => hm2_5i23.0.stepgen.06.velocity-cmd

net spindle-vel-cmd-rps     =>  mux2.1.in1 
net spindle-vel-cmd-rps-mux1 <= mux2.1.out => hm2_5i23.0.stepgen.07.velocity-cmd


net spindle1-on motion.digital-out-00 => mux2.0.sel
net spindle2-on motion.digital-out-01 => mux2.1.sel

#net spindle-vel-fb         <=  hm2_5i23.0.stepgen.06.velocity-fb


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

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

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

# ---setup spindle control signals---

net spindle-vel-cmd-rps        <=  motion.spindle-speed-out-rps
net spindle-vel-cmd-rps-abs    <=  motion.spindle-speed-out-rps-abs
net spindle-vel-cmd            <=  motion.spindle-speed-out
net spindle-vel-cmd-rpm-abs    <=  motion.spindle-speed-out-abs
net spindle-on                 <=  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








#******************************
# 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 joint-select-d        halui.joint.3.select
net a-is-homed            halui.joint.3.is-homed
net jog-a-pos             halui.jog.3.plus
net jog-a-neg             halui.jog.3.minus
net jog-a-analog          halui.jog.3.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

#  ---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-out     =>  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

Кусок ини для поворотной оси

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

#********************
# Axis A
#********************
[AXIS_3]
TYPE = ANGULAR
HOME = 0.0
FERROR = 0.01
MIN_FERROR = 0.01
MAX_VELOCITY = 16.6666666667
MAX_ACCELERATION = 200.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 20.8
STEPGEN_MAXACCEL = 250.0
P = 20.0
I = 0.0
D = 0.0
FF0 = 0.0
FF1 = 1.0
FF2 = 0.025
BIAS = 0.0
DEADBAND = 0.005
MAX_OUTPUT = 200.0
ENCODER_SCALE = 56.9444
# these are in nanoseconds
DIRSETUP   = 1000
DIRHOLD    = 1000
STEPLEN    = 1000
STEPSPACE  = 1000
STEP_SCALE = 56.9444
MIN_LIMIT = -9.999e+62
MAX_LIMIT = 9.999e+62
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -0.050000
HOME_LATCH_VEL = -0.016667
HOME_FINAL_VEL = 0.000000
HOME_USE_INDEX = YES

Кусок хала по поворотной

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

#*******************
#  AXIS A
#*******************

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

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

# Step Gen signals/setup

setp   hm2_5i23.0.stepgen.06.dirsetup        [AXIS_3]DIRSETUP
setp   hm2_5i23.0.stepgen.06.dirhold         [AXIS_3]DIRHOLD
setp   hm2_5i23.0.stepgen.06.steplen         [AXIS_3]STEPLEN
setp   hm2_5i23.0.stepgen.06.stepspace       [AXIS_3]STEPSPACE
setp   hm2_5i23.0.stepgen.06.position-scale  [AXIS_3]STEP_SCALE
setp   hm2_5i23.0.stepgen.06.step_type        0
setp   hm2_5i23.0.stepgen.06.control-type     1
setp   hm2_5i23.0.stepgen.06.maxaccel         [AXIS_3]STEPGEN_MAXACCEL
setp   hm2_5i23.0.stepgen.06.maxvel           [AXIS_3]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net a-pos-cmd    axis.3.motor-pos-cmd
net a-output                             => hm2_5i23.0.stepgen.06.velocity-cmd
net a-enable     axis.3.amp-enable-out  => hm2_5i23.0.stepgen.06.enable

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

setp    hm2_5i23.0.encoder.06.counter-mode 0
setp    hm2_5i23.0.encoder.06.filter 1
setp    hm2_5i23.0.encoder.06.index-invert 0
setp    hm2_5i23.0.encoder.06.index-mask 0
setp    hm2_5i23.0.encoder.06.index-mask-invert 0
setp    hm2_5i23.0.encoder.06.scale  [AXIS_3]ENCODER_SCALE

net a-pos-fb               <=  hm2_5i23.0.encoder.06.position
net a-vel-fb               <=  hm2_5i23.0.encoder.06.velocity
net a-pos-fb               =>  axis.3.motor-pos-fb
net a-index-enable    axis.3.index-enable  <=>  hm2_5i23.0.encoder.06.index-enable
net a-pos-rawcounts        <=  hm2_5i23.0.encoder.06.rawcounts

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

net home-a     =>  axis.3.home-sw-in
net a-neg-limit     =>  axis.3.neg-lim-sw-in
net a-pos-limit     =>  axis.3.pos-lim-sw-in
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение Nick »

Серва у тебя по step/dir управляется, в режиме положения?
sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

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

Re: 5i23+2x7i47+7i42TA

Сообщение Nick »

Я тут подумал, а может ими без ПИД управлять... :roll:
Только step/dir + обратная связь для контроля ferror + обнуление. Нули прописать через пин index-enable у энкодера...


По теме: вот тут есть компонент, я так понял это как раз для нашего случая:
https://forum.linuxcnc.org/forum/10-adv ... t=10#52088
sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

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

Re: 5i23+2x7i47+7i42TA

Сообщение nkp »

sysrover писал(а):Хал и ини
если в #220 конфиг рабочий ,то провильно ли я понял ,что задача:
вместо SPINDLE_9 ,который работает с encoder.04
необходимо прикрутить [AXIS_4] - (то есть - ось B)
??
(ну и наверно?? потом и для SPINDLE_8 ==>[AXIS_5] - (то есть - ось C)
sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

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

Re: 5i23+2x7i47+7i42TA

Сообщение nkp »

sysrover писал(а):Да и иметь джикод чтобы переключать это все на ходу.
"переключать" - это второй этап...
необходимо настроить конфиг , где просто шпиндель(изначально) будет подключен к оси B
(я думал что ты уже это проделал ,испытал,всё работает,и осталось только "скрестить" два конфига :) )
вот потому и писал:"выложи один ,выложи второй) ;)
теперь в хал нужно добавить примерно такое:

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

#*******************
#  AXIS B
#*******************

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

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

# Step Gen signals/setup

setp   hm2_5i23.0.stepgen.04.dirsetup        [AXIS_4]DIRSETUP
setp   hm2_5i23.0.stepgen.04.dirhold         [AXIS_4]DIRHOLD
setp   hm2_5i23.0.stepgen.04.steplen         [AXIS_4]STEPLEN
setp   hm2_5i23.0.stepgen.04.stepspace       [AXIS_4]STEPSPACE
setp   hm2_5i23.0.stepgen.04.position-scale  [AXIS_4]STEP_SCALE
setp   hm2_5i23.0.stepgen.04.step_type        0
setp   hm2_5i23.0.stepgen.04.control-type     1
setp   hm2_5i23.0.stepgen.04.maxaccel         [AXIS_4]STEPGEN_MAXACCEL
setp   hm2_5i23.0.stepgen.04.maxvel           [AXIS_4]STEPGEN_MAXVEL

# ---closedloop stepper signals---

net b-pos-cmd    axis.4.motor-pos-cmd
net b-output                             => hm2_5i23.0.stepgen.04.velocity-cmd
net b-enable     axis.4.amp-enable-out  => hm2_5i23.0.stepgen.04.enable

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

setp    hm2_5i23.0.encoder.04.counter-mode 0
setp    hm2_5i23.0.encoder.04.filter 1
setp    hm2_5i23.0.encoder.04.index-invert 0
setp    hm2_5i23.0.encoder.04.index-mask 0
setp    hm2_5i23.0.encoder.04.index-mask-invert 0
setp    hm2_5i23.0.encoder.04.scale  [AXIS_4]ENCODER_SCALE

net b-pos-fb               <=  hm2_5i23.0.encoder.01.position
net b-vel-fb               <=  hm2_5i23.0.encoder.01.velocity
net b-pos-fb               =>  axis.3.motor-pos-fb
net b-index-enable    axis.4.index-enable  <=>  hm2_5i23.0.encoder.04.index-enable
net b-pos-rawcounts        <=  hm2_5i23.0.encoder.04.rawcounts
а [SPINDLE_9] убрать
ну и ини добавить [AXIS_4] и настроить на работу в роли поворотки
а потом уже ,этот испытаный на станке конфиг "скрещивать" с рабочим "обычным"...
sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

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

Re: 5i23+2x7i47+7i42TA

Сообщение nkp »

sysrover писал(а):ну второй конфиг там где А он крутит на станке, главный вопрос как его скрестить.
первый в #220
второй в #???
я чуть раньше прочитал ,что ось A - это смена инструмента...
просто хочу "въехать" - что ,где...))
sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

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

Re: 5i23+2x7i47+7i42TA

Сообщение Nick »

А чего не хочешь попробовать компонент, на который я ссылку давал?

sysrover писал(а):Мы с тобой пробовали так делать но чтот не вышло с обнулением по энкодеру.
Это я просто раньше не в курсе был, как это организовать можно :).
Вроде как можно сделать так:
1. обнуляемся грубо как обычно по датчику.
2. при уточнении (тоже как обычно) включаем encoder.index-enable, и его же испольщуем в качетсве датчика. В итоге, как только найдем индексную метку encoder.index-enable отрубится - и мы обнулим ось. Погрешность будет (скорость уточнения)/(серво период), т.е. если скорость 60мм/мин, то погрешность 1мкм.
sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

Ну время попробовать есть, пока переезжаем в новый шкаф и ровняем шпиндели.
sysrover
Мастер
Сообщения: 433
Зарегистрирован: 23 янв 2012, 16:32
Репутация: 90
Откуда: Украина Житомир
Контактная информация:

Re: 5i23+2x7i47+7i42TA

Сообщение sysrover »

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

Re: 5i23+2x7i47+7i42TA

Сообщение Nick »

Завтра напишу, с телефона не удобно.
Ответить

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