AG250CNC

Тяжелые фрезерные станки по металлу.
botcman
Мастер
Сообщения: 557
Зарегистрирован: 04 мар 2016, 20:22
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

Re: AG250CNC

Сообщение botcman »

Подредактировал. Как обычно не работает.

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

loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES


# My driver
loadrt to_pci
loadrt pid names=pid.x,pid.z,pid.y


# ################################################
# THREADS
# ################################################

addf to_pci.1.update		       	servo-thread

addf motion-command-handler             servo-thread
addf motion-controller                  servo-thread
addf pid.x.do-pid-calcs 		servo-thread  
addf pid.z.do-pid-calcs 		servo-thread  
addf pid.y.do-pid-calcs 		servo-thread



#   -------E-STOP--------
net estop-ext iocontrol.0.emc-enable-in    <=  iocontrol.0.user-enable-out


#  ---motion control signals---

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

# external output signals

net machine-is-enabled                            to_pci.1.pins.pin-00-out


# external input signals

# --- MAX-X ---
#net max-x     <=  to_pci.1.pins.pin-00-in-n

# --- MIN-X ---
#net min-x     <=  to_pci.1.pins.pin-01-in-n

# --- HOME-X ---
net home-x     <=  to_pci.1.pins.pin-02-in-n

# --- MAX-Y ---
#net max-y     <=  to_pci.1.pins.pin-03-in-n

# --- MIN-Y ---
#net min-y     <=  to_pci.1.pins.pin-04-in-n

# --- HOME-Y ---
net home-y     <=  to_pci.1.pins.pin-05-in-n

# --- MAX-Z ---
#net max-z     <=  to_pci.1.pins.pin-06-in-n

# --- MIN-Z ---
#net min-z     <=  to_pci.1.pins.pin-07-in-n

# --- HOME-Z ---
net home-z     <=  to_pci.1.pins.pin-08-in-n



# rail lube on/off #

# смазка при включении длительностью 10 секунд
setp oneshot.0.width 10
net machine-is-on oneshot.0.in
net delay oneshot.0.out => or2.1.in0
net timer-delay => or2.1.in1
net bed-lube => or2.1.out
net bed-lube => to_pci.1.pins.pin-09-out

# интервал смазки 600 секунд длительностью 10 секунд
setp timedelay.0.on-delay 600
setp timedelay.0.off-delay 10
net machine-is-on => and2.4.in0
net timer-in => and2.4.in1
net timer-in-1 => and2.4.out
net timer-in-1 => timedelay.0.in
net timer-delay => timedelay.0.out
net timer-delay => not.0.in
net timer-in <= not.0.out


#*******************
#  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-enable       => pid.x.enable
net x-output       => pid.x.output
net x-pos-cmd      => pid.x.command
net x-pos-fb       => pid.x.feedback

# --------fb--------------
setp  to_pci.1.feedback.enc_scale0 [AXIS_0]ENCODER_SCALE
net x-pos-fb       <=  to_pci.1.feedback.encoder0
net x-pos-fb       =>  axis.0.motor-pos-fb


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

net x-enable     axis.0.amp-enable-out
net x-enable => to_pci.1.enable_drive


setp  to_pci.1.out_scale0 [AXIS_0]OUTPUT_SCALE

net x-output => to_pci.1.dcontrol0

net x-pos-cmd  <=  axis.0.motor-pos-cmd

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

#net home-x     =>  axis.0.home-sw-in
#net min-x     =>  axis.0.neg-lim-sw-in
#net max-x     =>  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-enable       => pid.y.enable
net y-output       => pid.y.output
net y-pos-cmd      => pid.y.command
net y-pos-fb       => pid.y.feedback

# --------fb--------------
setp  to_pci.1.feedback.enc_scale1 [AXIS_1]ENCODER_SCALE
net y-pos-fb       <=  to_pci.1.feedback.encoder1
net y-pos-fb       =>  axis.1.motor-pos-fb


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


net y-enable     axis.1.amp-enable-out

setp  to_pci.1.out_scale1 [AXIS_1]OUTPUT_SCALE

net y-output => to_pci.1.dcontrol1

net y-pos-cmd  <=  axis.1.motor-pos-cmd


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

#net home-y     =>  axis.1.home-sw-in
#net min-y     =>  axis.1.neg-lim-sw-in
#net max-y     =>  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-enable       => pid.z.enable
net z-output       => pid.z.output
net z-pos-cmd      => pid.z.command
net z-pos-fb       => pid.z.feedback

# --------fb--------------
setp  to_pci.1.feedback.enc_scale2 [AXIS_2]ENCODER_SCALE
net z-pos-fb       <=  to_pci.1.feedback.encoder2
net z-pos-fb       =>  axis.2.motor-pos-fb


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

net z-enable     axis.2.amp-enable-out
setp  to_pci.1.out_scale2 [AXIS_2]OUTPUT_SCALE
net z-output => to_pci.1.dcontrol2
net z-pos-cmd  <=  axis.2.motor-pos-cmd

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

#net home-z     =>  axis.2.home-sw-in
#net min-z     =>  axis.2.neg-lim-sw-in
#net max-z     =>  axis.2.pos-lim-sw-in




#----------- SIGNALS ---------------
#net buton_test => to_pci.1.feedback.index_en0
net buton_test => to_pci.1.pins.pin-01-out
botcman
Мастер
Сообщения: 557
Зарегистрирован: 04 мар 2016, 20:22
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

Re: AG250CNC

Сообщение botcman »

Вот что пишет.
Вложения
фото15.png (2038 просмотров) <a class='original' href='./download/file.php?id=106593&mode=view' target=_blank>Загрузить оригинал (192.68 КБ)</a>
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: AG250CNC

Сообщение nkp »

ты "вырвал" кусок кода...
покажи исходный файл
botcman
Мастер
Сообщения: 557
Зарегистрирован: 04 мар 2016, 20:22
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

Re: AG250CNC

Сообщение botcman »

Кусок взял из 77-го поста. Целиком кода у меня нет.
botcman
Мастер
Сообщения: 557
Зарегистрирован: 04 мар 2016, 20:22
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

Re: AG250CNC

Сообщение botcman »

Заработало :cheesy:
Потихоньку начинаю догонять. Вот

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

loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES


# My driver
loadrt to_pci
loadrt pid names=pid.x,pid.z,pid.y
loadrt oneshot count=1
loadrt or2 count=1
loadrt and2 count=1
loadrt timedelay count=1
loadrt not count=1

# ################################################
# THREADS
# ################################################

addf to_pci.1.update		       	servo-thread

addf motion-command-handler             servo-thread
addf motion-controller                  servo-thread
addf pid.x.do-pid-calcs 		servo-thread  
addf pid.z.do-pid-calcs 		servo-thread  
addf pid.y.do-pid-calcs 		servo-thread
addf oneshot.0                          servo-thread
addf or2.0                              servo-thread
addf and2.0                             servo-thread
addf timedelay.0                        servo-thread
addf not.0                              servo-thread

#   -------E-STOP--------
net estop-ext iocontrol.0.emc-enable-in    <=  iocontrol.0.user-enable-out


#  ---motion control signals---

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

# external output signals

net machine-is-enabled                            to_pci.1.pins.pin-00-out


# external input signals

# --- MAX-X ---
#net max-x     <=  to_pci.1.pins.pin-00-in-n

# --- MIN-X ---
#net min-x     <=  to_pci.1.pins.pin-01-in-n

# --- HOME-X ---
net home-x     <=  to_pci.1.pins.pin-02-in-n

# --- MAX-Y ---
#net max-y     <=  to_pci.1.pins.pin-03-in-n

# --- MIN-Y ---
#net min-y     <=  to_pci.1.pins.pin-04-in-n

# --- HOME-Y ---
net home-y     <=  to_pci.1.pins.pin-05-in-n

# --- MAX-Z ---
#net max-z     <=  to_pci.1.pins.pin-06-in-n

# --- MIN-Z ---
#net min-z     <=  to_pci.1.pins.pin-07-in-n

# --- HOME-Z ---
net home-z     <=  to_pci.1.pins.pin-08-in-n



# rail lube on/off #

# смазка при включении длительностью 10 секунд
setp oneshot.0.width 10
net machine-is-on oneshot.0.in
net delay oneshot.0.out => or2.0.in0
net timer-delay => or2.0.in1
net rail-lube => or2.0.out
net rail-lube => to_pci.1.pins.pin-09-out

# интервал смазки 600 секунд длительностью 10 секунд
setp timedelay.0.on-delay 600
setp timedelay.0.off-delay 10
net machine-is-on => and2.0.in0
net timer-in => and2.0.in1
net timer-in-1 => and2.0.out
net timer-in-1 => timedelay.0.in
net timer-delay => timedelay.0.out
net timer-delay => not.0.in
net timer-in <= not.0.out


#*******************
#  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-enable       => pid.x.enable
net x-output       => pid.x.output
net x-pos-cmd      => pid.x.command
net x-pos-fb       => pid.x.feedback

# --------fb--------------
setp  to_pci.1.feedback.enc_scale0 [AXIS_0]ENCODER_SCALE
net x-pos-fb       <=  to_pci.1.feedback.encoder0
net x-pos-fb       =>  axis.0.motor-pos-fb


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

net x-enable     axis.0.amp-enable-out
net x-enable => to_pci.1.enable_drive


setp  to_pci.1.out_scale0 [AXIS_0]OUTPUT_SCALE

net x-output => to_pci.1.dcontrol0

net x-pos-cmd  <=  axis.0.motor-pos-cmd

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

#net home-x     =>  axis.0.home-sw-in
#net min-x     =>  axis.0.neg-lim-sw-in
#net max-x     =>  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-enable       => pid.y.enable
net y-output       => pid.y.output
net y-pos-cmd      => pid.y.command
net y-pos-fb       => pid.y.feedback

# --------fb--------------
setp  to_pci.1.feedback.enc_scale1 [AXIS_1]ENCODER_SCALE
net y-pos-fb       <=  to_pci.1.feedback.encoder1
net y-pos-fb       =>  axis.1.motor-pos-fb


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


net y-enable     axis.1.amp-enable-out

setp  to_pci.1.out_scale1 [AXIS_1]OUTPUT_SCALE

net y-output => to_pci.1.dcontrol1

net y-pos-cmd  <=  axis.1.motor-pos-cmd


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

#net home-y     =>  axis.1.home-sw-in
#net min-y     =>  axis.1.neg-lim-sw-in
#net max-y     =>  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-enable       => pid.z.enable
net z-output       => pid.z.output
net z-pos-cmd      => pid.z.command
net z-pos-fb       => pid.z.feedback

# --------fb--------------
setp  to_pci.1.feedback.enc_scale2 [AXIS_2]ENCODER_SCALE
net z-pos-fb       <=  to_pci.1.feedback.encoder2
net z-pos-fb       =>  axis.2.motor-pos-fb


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

net z-enable     axis.2.amp-enable-out
setp  to_pci.1.out_scale2 [AXIS_2]OUTPUT_SCALE
net z-output => to_pci.1.dcontrol2
net z-pos-cmd  <=  axis.2.motor-pos-cmd

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

#net home-z     =>  axis.2.home-sw-in
#net min-z     =>  axis.2.neg-lim-sw-in
#net max-z     =>  axis.2.pos-lim-sw-in




#----------- SIGNALS ---------------
#net buton_test => to_pci.1.feedback.index_en0
net buton_test => to_pci.1.pins.pin-01-out
botcman
Мастер
Сообщения: 557
Зарегистрирован: 04 мар 2016, 20:22
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

Re: AG250CNC

Сообщение botcman »

Завтра попробую родить вторую часть - смазку шпиндельной бабки.
botcman
Мастер
Сообщения: 557
Зарегистрирован: 04 мар 2016, 20:22
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

Re: AG250CNC

Сообщение botcman »

Пытаюсь сообразить управление шпинделем. Не выходит.

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

loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES


# My driver
loadrt to_pci
loadrt pid names=pid.x,pid.z,pid.y
loadrt oneshot count=1
loadrt or2 count=1
loadrt and2 count=1
loadrt timedelay count=1
loadrt not count=1

# ################################################
# THREADS
# ################################################

addf to_pci.1.update		       	servo-thread

addf motion-command-handler             servo-thread
addf motion-controller                  servo-thread
addf pid.x.do-pid-calcs 		servo-thread  
addf pid.z.do-pid-calcs 		servo-thread  
addf pid.y.do-pid-calcs 		servo-thread
addf oneshot.0                          servo-thread
addf or2.0                              servo-thread
addf and2.0                             servo-thread
addf timedelay.0                        servo-thread
addf not.0                              servo-thread

#   -------E-STOP--------
net estop-ext iocontrol.0.emc-enable-in    <=  iocontrol.0.user-enable-out


#  ---motion control signals---

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

# external output signals

net machine-is-enabled                            to_pci.1.pins.pin-00-out


# external input signals

# --- MAX-X ---
net max-x     <=  to_pci.1.pins.pin-00-in-n

# --- MIN-X ---
net min-x     <=  to_pci.1.pins.pin-01-in-n

# --- HOME-X ---
net home-x     <=  to_pci.1.pins.pin-02-in-n

# --- MAX-Y ---
net max-y     <=  to_pci.1.pins.pin-03-in-n

# --- MIN-Y ---
net min-y     <=  to_pci.1.pins.pin-04-in-n

# --- HOME-Y ---
net home-y     <=  to_pci.1.pins.pin-05-in-n

# --- MAX-Z ---
net max-z     <=  to_pci.1.pins.pin-06-in-n

# --- MIN-Z ---
net min-z     <=  to_pci.1.pins.pin-07-in-n

# --- HOME-Z ---
net home-z     <=  to_pci.1.pins.pin-08-in-n



# rail lube on/off #

# смазка при включении длительностью 10 секунд
setp oneshot.0.width 10
net machine-is-on oneshot.0.in
net delay oneshot.0.out => or2.0.in0
net timer-delay => or2.0.in1
net rail-lube => or2.0.out
net rail-lube => to_pci.1.pins.pin-09-out

# интервал смазки 600 секунд длительностью 10 секунд
setp timedelay.0.on-delay 600
setp timedelay.0.off-delay 10
net machine-is-on => and2.0.in0
net timer-in => and2.0.in1
net timer-in-1 => and2.0.out
net timer-in-1 => timedelay.0.in
net timer-delay => timedelay.0.out
net timer-delay => not.0.in
net timer-in <= not.0.out


#*******************
#  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-enable       => pid.x.enable
net x-output       => pid.x.output
net x-pos-cmd      => pid.x.command
net x-pos-fb       => pid.x.feedback

# --------fb--------------
setp  to_pci.1.feedback.enc_scale0 [AXIS_0]ENCODER_SCALE
net x-pos-fb       <=  to_pci.1.feedback.encoder0
net x-pos-fb       =>  axis.0.motor-pos-fb


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

net x-enable     axis.0.amp-enable-out
net x-enable => to_pci.1.enable_drive


setp  to_pci.1.out_scale0 [AXIS_0]OUTPUT_SCALE

net x-output => to_pci.1.dcontrol0

net x-pos-cmd  <=  axis.0.motor-pos-cmd

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

#net home-x     =>  axis.0.home-sw-in
#net min-x     =>  axis.0.neg-lim-sw-in
#net max-x     =>  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-enable       => pid.y.enable
net y-output       => pid.y.output
net y-pos-cmd      => pid.y.command
net y-pos-fb       => pid.y.feedback

# --------fb--------------
setp  to_pci.1.feedback.enc_scale1 [AXIS_1]ENCODER_SCALE
net y-pos-fb       <=  to_pci.1.feedback.encoder1
net y-pos-fb       =>  axis.1.motor-pos-fb


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


net y-enable     axis.1.amp-enable-out

setp  to_pci.1.out_scale1 [AXIS_1]OUTPUT_SCALE

net y-output => to_pci.1.dcontrol1

net y-pos-cmd  <=  axis.1.motor-pos-cmd


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

#net home-y     =>  axis.1.home-sw-in
#net min-y     =>  axis.1.neg-lim-sw-in
#net max-y     =>  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-enable       => pid.z.enable
net z-output       => pid.z.output
net z-pos-cmd      => pid.z.command
net z-pos-fb       => pid.z.feedback

# --------fb--------------
setp  to_pci.1.feedback.enc_scale2 [AXIS_2]ENCODER_SCALE
net z-pos-fb       <=  to_pci.1.feedback.encoder2
net z-pos-fb       =>  axis.2.motor-pos-fb


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

net z-enable     axis.2.amp-enable-out
setp  to_pci.1.out_scale2 [AXIS_2]OUTPUT_SCALE
net z-output => to_pci.1.dcontrol2
net z-pos-cmd  <=  axis.2.motor-pos-cmd

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

#net home-z     =>  axis.2.home-sw-in
#net min-z     =>  axis.2.neg-lim-sw-in
#net max-z     =>  axis.2.pos-lim-sw-in


#_ _ _  SPINDLE _ _ _

net spindle-on             <=  motion.spindle-on
net spindle-cw             <=  motion.spindle-forward
net spindle-ccw            <=  motion.spindle-reverse
net spindle-enable         =>  motion.spindle-at-speed


#============== command SPINDLE================

setp  to_pci.1.PWM.out_scale3 [SPINDLE]OUTPUT_SCALE
net   spindle-cmd    motion.spindle-speed-out =>  to_pci.1.PWM.dcontrol3

net spindle-cw      =>to_pci.1.pins.pin-02-out
net spindle-ccw      =>to_pci.1.pins.pin-03-out


#----------- SIGNALS ---------------
#net buton_test => to_pci.1.feedback.index_en0
net buton_test => to_pci.1.pins.pin-01-out
botcman
Мастер
Сообщения: 557
Зарегистрирован: 04 мар 2016, 20:22
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

Re: AG250CNC

Сообщение botcman »

Вот что пишет.
Вложения
фото16.png (1971 просмотр) <a class='original' href='./download/file.php?id=106741&mode=view' target=_blank>Загрузить оригинал (192.18 КБ)</a>
Фрост
Мастер
Сообщения: 393
Зарегистрирован: 28 окт 2013, 00:18
Репутация: 23
Настоящее имя: Сергей
Контактная информация:

Re: AG250CNC

Сообщение Фрост »

добавь output_scale в .ini в секцию шпинделя по аналогии с осями.
botcman
Мастер
Сообщения: 557
Зарегистрирован: 04 мар 2016, 20:22
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

Re: AG250CNC

Сообщение botcman »

Вроде бы добавил, нужно проверить.
MGG
Мастер
Сообщения: 3673
Зарегистрирован: 08 фев 2016, 16:33
Репутация: 1010
Настоящее имя: Манн Геннадий Геннадьевич
Откуда: Москва
Контактная информация:

Re: AG250CNC

Сообщение MGG »

Можно прям в хал файле значение проставить
http://www.cnc-club.ru/forum/viewtopic. ... 76#p304076 Поставки оборудования для ваших станков
https://www.instagram.com/dtw.moscow/
dtw.moscow@gmail.com
botcman
Мастер
Сообщения: 557
Зарегистрирован: 04 мар 2016, 20:22
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

Re: AG250CNC

Сообщение botcman »

Не выходит у меня со шпинделемю Выручайте.

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

loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES


# My driver
loadrt to_pci
loadrt pid names=pid.x,pid.z,pid.y
loadrt oneshot count=1
loadrt or2 count=1
loadrt and2 count=1
loadrt timedelay count=1
loadrt not count=1

# ################################################
# THREADS
# ################################################

addf to_pci.1.update		       	servo-thread

addf motion-command-handler             servo-thread
addf motion-controller                  servo-thread
addf pid.x.do-pid-calcs 		servo-thread  
addf pid.z.do-pid-calcs 		servo-thread  
addf pid.y.do-pid-calcs 		servo-thread
addf oneshot.0                          servo-thread
addf or2.0                              servo-thread
addf and2.0                             servo-thread
addf timedelay.0                        servo-thread
addf not.0                              servo-thread

#   -------E-STOP--------
net estop-ext iocontrol.0.emc-enable-in    <=  iocontrol.0.user-enable-out


#  ---motion control signals---

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

# external output signals

net machine-is-enabled                            to_pci.1.pins.pin-00-out


# external input signals

# --- MAX-X ---
net max-x     <=  to_pci.1.pins.pin-00-in-n

# --- MIN-X ---
net min-x     <=  to_pci.1.pins.pin-01-in-n

# --- HOME-X ---
net home-x     <=  to_pci.1.pins.pin-02-in-n

# --- MAX-Y ---
net max-y     <=  to_pci.1.pins.pin-03-in-n

# --- MIN-Y ---
net min-y     <=  to_pci.1.pins.pin-04-in-n

# --- HOME-Y ---
net home-y     <=  to_pci.1.pins.pin-05-in-n

# --- MAX-Z ---
net max-z     <=  to_pci.1.pins.pin-06-in-n

# --- MIN-Z ---
net min-z     <=  to_pci.1.pins.pin-07-in-n

# --- HOME-Z ---
net home-z     <=  to_pci.1.pins.pin-08-in-n



# rail lube on/off #

# смазка при включении длительностью 10 секунд
setp oneshot.0.width 10
net machine-is-on oneshot.0.in
net delay oneshot.0.out => or2.0.in0
net timer-delay => or2.0.in1
net rail-lube => or2.0.out
net rail-lube => to_pci.1.pins.pin-09-out

# интервал смазки 600 секунд длительностью 10 секунд
setp timedelay.0.on-delay 600
setp timedelay.0.off-delay 10
net machine-is-on => and2.0.in0
net timer-in => and2.0.in1
net timer-in-1 => and2.0.out
net timer-in-1 => timedelay.0.in
net timer-delay => timedelay.0.out
net timer-delay => not.0.in
net timer-in <= not.0.out


#*******************
#  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-enable       => pid.x.enable
net x-output       => pid.x.output
net x-pos-cmd      => pid.x.command
net x-pos-fb       => pid.x.feedback

# --------fb--------------
setp  to_pci.1.feedback.enc_scale0 [AXIS_0]ENCODER_SCALE
net x-pos-fb       <=  to_pci.1.feedback.encoder0
net x-pos-fb       =>  axis.0.motor-pos-fb


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

net x-enable     axis.0.amp-enable-out
net x-enable => to_pci.1.enable_drive


setp  to_pci.1.out_scale0 [AXIS_0]OUTPUT_SCALE

net x-output => to_pci.1.dcontrol0

net x-pos-cmd  <=  axis.0.motor-pos-cmd

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

#net home-x     =>  axis.0.home-sw-in
#net min-x     =>  axis.0.neg-lim-sw-in
#net max-x     =>  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-enable       => pid.y.enable
net y-output       => pid.y.output
net y-pos-cmd      => pid.y.command
net y-pos-fb       => pid.y.feedback

# --------fb--------------
setp  to_pci.1.feedback.enc_scale1 [AXIS_1]ENCODER_SCALE
net y-pos-fb       <=  to_pci.1.feedback.encoder1
net y-pos-fb       =>  axis.1.motor-pos-fb


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


net y-enable     axis.1.amp-enable-out

setp  to_pci.1.out_scale1 [AXIS_1]OUTPUT_SCALE

net y-output => to_pci.1.dcontrol1

net y-pos-cmd  <=  axis.1.motor-pos-cmd


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

#net home-y     =>  axis.1.home-sw-in
#net min-y     =>  axis.1.neg-lim-sw-in
#net max-y     =>  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-enable       => pid.z.enable
net z-output       => pid.z.output
net z-pos-cmd      => pid.z.command
net z-pos-fb       => pid.z.feedback

# --------fb--------------
setp  to_pci.1.feedback.enc_scale2 [AXIS_2]ENCODER_SCALE
net z-pos-fb       <=  to_pci.1.feedback.encoder2
net z-pos-fb       =>  axis.2.motor-pos-fb


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

net z-enable     axis.2.amp-enable-out
setp  to_pci.1.out_scale2 [AXIS_2]OUTPUT_SCALE
net z-output => to_pci.1.dcontrol2
net z-pos-cmd  <=  axis.2.motor-pos-cmd

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

#net home-z     =>  axis.2.home-sw-in
#net min-z     =>  axis.2.neg-lim-sw-in
#net max-z     =>  axis.2.pos-lim-sw-in


#_ _ _  SPINDLE _ _ _

net spindle-on             <=  motion.spindle-on
net spindle-cw             <=  motion.spindle-forward
net spindle-ccw            <=  motion.spindle-reverse
net spindle-enable         =>  motion.spindle-at-speed


#============== PWM Generator command SPINDLE================


setp  to_pci.1.out_scale3 [SPINDLE]OUTPUT_SCALE
net   spindle-output  to_pci.1.dcontrol3

net spindle-cw      =>to_pci.1.pins.pin-02-out
net spindle-ccw      =>to_pci.1.pins.pin-03-out


#----------- SIGNALS ---------------
#net buton_test => to_pci.1.feedback.index_en0
net buton_test => to_pci.1.pins.pin-01-out
botcman
Мастер
Сообщения: 557
Зарегистрирован: 04 мар 2016, 20:22
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

Re: AG250CNC

Сообщение botcman »

Жалоба
Вложения
фото17.png (1895 просмотров) <a class='original' href='./download/file.php?id=106881&mode=view' target=_blank>Загрузить оригинал (190.6 КБ)</a>
MGG
Мастер
Сообщения: 3673
Зарегистрирован: 08 фев 2016, 16:33
Репутация: 1010
Настоящее имя: Манн Геннадий Геннадьевич
Откуда: Москва
Контактная информация:

Re: AG250CNC

Сообщение MGG »

=>to_pci.1.pins.pin-02-out
Пробел поставь после =>
http://www.cnc-club.ru/forum/viewtopic. ... 76#p304076 Поставки оборудования для ваших станков
https://www.instagram.com/dtw.moscow/
dtw.moscow@gmail.com
botcman
Мастер
Сообщения: 557
Зарегистрирован: 04 мар 2016, 20:22
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

Re: AG250CNC

Сообщение botcman »

Работает :D Спасибо!
botcman
Мастер
Сообщения: 557
Зарегистрирован: 04 мар 2016, 20:22
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

Re: AG250CNC

Сообщение botcman »

Подскажите по пину Machine is enable- плюс на нем появляется тогда, когда включается сама плата? Так?
Фрост
Мастер
Сообщения: 393
Зарегистрирован: 28 окт 2013, 00:18
Репутация: 23
Настоящее имя: Сергей
Контактная информация:

Re: AG250CNC

Сообщение Фрост »

ну пин обозвать можешь как угодно, а если про сигнал halui.machine.is-on, то он включается при входном halui.machine.on, просто так ничего не произойдет
botcman
Мастер
Сообщения: 557
Зарегистрирован: 04 мар 2016, 20:22
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

Re: AG250CNC

Сообщение botcman »

Я про строчку net machine is enable в самом начале Хал файла.
botcman
Мастер
Сообщения: 557
Зарегистрирован: 04 мар 2016, 20:22
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

Re: AG250CNC

Сообщение botcman »

Дописал смазку шпиндельной бабки. Не могу понять в чем косяк.

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

loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES


# My driver
loadrt to_pci
loadrt pid names=pid.x,pid.z,pid.y
loadrt oneshot count=1
loadrt or2 count=1
loadrt and2 count=2
loadrt timedelay count=2
loadrt not count=2

# ################################################
# THREADS
# ################################################

addf to_pci.1.update		       	servo-thread

addf motion-command-handler             servo-thread
addf motion-controller                  servo-thread
addf pid.x.do-pid-calcs 		servo-thread  
addf pid.z.do-pid-calcs 		servo-thread  
addf pid.y.do-pid-calcs 		servo-thread
addf oneshot.0                          servo-thread
addf or2.0                              servo-thread
addf and2.0                             servo-thread
addf timedelay.0                        servo-thread
addf not.0                              servo-thread
addf timedelay.1                        servo-thread
addf not.1                              servo-thread
addf and2.1                             servo-thread
 
#   -------E-STOP--------
net estop-ext iocontrol.0.emc-enable-in    <=  iocontrol.0.user-enable-out


#  ---motion control signals---

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

# external output signals

net machine-is-enabled                            to_pci.1.pins.pin-00-out


# external input signals

# --- MAX-X ---
net max-x     <=  to_pci.1.pins.pin-00-in-n

# --- MIN-X ---
net min-x     <=  to_pci.1.pins.pin-01-in-n

# --- HOME-X ---
net home-x     <=  to_pci.1.pins.pin-02-in-n

# --- MAX-Y ---
net max-y     <=  to_pci.1.pins.pin-03-in-n

# --- MIN-Y ---
net min-y     <=  to_pci.1.pins.pin-04-in-n

# --- HOME-Y ---
net home-y     <=  to_pci.1.pins.pin-05-in-n

# --- MAX-Z ---
net max-z     <=  to_pci.1.pins.pin-06-in-n

# --- MIN-Z ---
net min-z     <=  to_pci.1.pins.pin-07-in-n

# --- HOME-Z ---
net home-z     <=  to_pci.1.pins.pin-08-in-n



# rail lube on/off #

# смазка при включении длительностью 10 секунд
setp oneshot.0.width 10
net machine-is-on oneshot.0.in
net delay oneshot.0.out => or2.0.in0
net timer-delay => or2.0.in1
net rail-lube => or2.0.out
net rail-lube => to_pci.1.pins.pin-09-out

# интервал смазки 600 секунд длительностью 10 секунд
setp timedelay.0.on-delay 600
setp timedelay.0.off-delay 10
net machine-is-on => and2.0.in0
net timer-in => and2.0.in1
net timer-in-1 => and2.0.out
net timer-in-1 => timedelay.0.in
net timer-delay => timedelay.0.out
net timer-delay => not.0.in
net timer-in <= not.0.out

#spinle lube on/off#
 
# интервал смазки 900 секунд длительностью 10 секунд
setp timedelay.1.on-delay 900
setp timedelay.1.off-delay 10
net spindle-on => and2.1.in0
net timer-in => and2.1.in1
net timer-in-1 => and2.1.out
net timer-in-1 => timedelay.1.in
net timer-delay => timedelay.1.out
net timer-delay => not.1.in
net timer-in <= not.1.out
net spindle-lube => to_pci.1.pins.pin-08-out

#*******************
#  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-enable       => pid.x.enable
net x-output       => pid.x.output
net x-pos-cmd      => pid.x.command
net x-pos-fb       => pid.x.feedback

# --------fb--------------
setp  to_pci.1.feedback.enc_scale0 [AXIS_0]ENCODER_SCALE
net x-pos-fb       <=  to_pci.1.feedback.encoder0
net x-pos-fb       =>  axis.0.motor-pos-fb


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

net x-enable     axis.0.amp-enable-out
net x-enable => to_pci.1.enable_drive


setp  to_pci.1.out_scale0 [AXIS_0]OUTPUT_SCALE

net x-output => to_pci.1.dcontrol0

net x-pos-cmd  <=  axis.0.motor-pos-cmd

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

#net home-x     =>  axis.0.home-sw-in
#net min-x     =>  axis.0.neg-lim-sw-in
#net max-x     =>  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-enable       => pid.y.enable
net y-output       => pid.y.output
net y-pos-cmd      => pid.y.command
net y-pos-fb       => pid.y.feedback

# --------fb--------------
setp  to_pci.1.feedback.enc_scale1 [AXIS_1]ENCODER_SCALE
net y-pos-fb       <=  to_pci.1.feedback.encoder1
net y-pos-fb       =>  axis.1.motor-pos-fb


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


net y-enable     axis.1.amp-enable-out

setp  to_pci.1.out_scale1 [AXIS_1]OUTPUT_SCALE

net y-output => to_pci.1.dcontrol1

net y-pos-cmd  <=  axis.1.motor-pos-cmd


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

#net home-y     =>  axis.1.home-sw-in
#net min-y     =>  axis.1.neg-lim-sw-in
#net max-y     =>  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-enable       => pid.z.enable
net z-output       => pid.z.output
net z-pos-cmd      => pid.z.command
net z-pos-fb       => pid.z.feedback

# --------fb--------------
setp  to_pci.1.feedback.enc_scale2 [AXIS_2]ENCODER_SCALE
net z-pos-fb       <=  to_pci.1.feedback.encoder2
net z-pos-fb       =>  axis.2.motor-pos-fb


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

net z-enable     axis.2.amp-enable-out
setp  to_pci.1.out_scale2 [AXIS_2]OUTPUT_SCALE
net z-output => to_pci.1.dcontrol2
net z-pos-cmd  <=  axis.2.motor-pos-cmd

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

#net home-z     =>  axis.2.home-sw-in
#net min-z     =>  axis.2.neg-lim-sw-in
#net max-z     =>  axis.2.pos-lim-sw-in


#_ _ _  SPINDLE _ _ _

net spindle-on             <=  motion.spindle-on
net spindle-cw             <=  motion.spindle-forward
net spindle-ccw            <=  motion.spindle-reverse
net spindle-enable         =>  motion.spindle-at-speed


#============== PWM Generator command SPINDLE================


setp  to_pci.1.out_scale3 [SPINDLE]OUTPUT_SCALE
net   spindle-output  to_pci.1.dcontrol3

net spindle-cw      => to_pci.1.pins.pin-02-out
net spindle-ccw      => to_pci.1.pins.pin-03-out


#----------- SIGNALS ---------------
#net buton_test => to_pci.1.feedback.index_en0
net buton_test => to_pci.1.pins.pin-01-out
botcman
Мастер
Сообщения: 557
Зарегистрирован: 04 мар 2016, 20:22
Репутация: 1
Настоящее имя: Андрей
Контактная информация:

Re: AG250CNC

Сообщение botcman »

Ошибка
Вложения
фото18.png (1734 просмотра) <a class='original' href='./download/file.php?id=107250&mode=view' target=_blank>Загрузить оригинал (191.5 КБ)</a>
Ответить

Вернуться в «Фрезерные станки по металлам»