Перпендикулярность осей

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
coldplay
Новичок
Сообщения: 9
Зарегистрирован: 23 дек 2015, 12:57
Репутация: 0
Настоящее имя: Виктор
Контактная информация:

Перпендикулярность осей

Сообщение coldplay »

Всех с наступившим.
Прошу помощи. Вот здесь: код. Не получается запустить, ошибка на строке;
net y-joint-cmd <= axis.1.joint-pos-cmd => sum2.y-comp.in1 - "does not exist"
Привел к виду - joint.1.joint-pos-cmd - то же самое
joint.1.motot-pos-cmd - "already linked"
Подскажите пожалуйста.
ini

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

# This config file was created 2017-12-14 22:39:28.186709 by the update_ini script
# The original config files may be found in the /home/vik/linuxcnc/configs/2.8.gmoccapy/mycnc.old directory

# Generated by stepconf 1.1 at Fri Dec 25 18:46:25 2015
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf

[EMC]
# The version string for this INI file.
VERSION = 1.0

MACHINE = mycnc
DEBUG = 0

[DISPLAY]


# required NativeCAM item :
NCAM_DIR = ncam

# required NativeCAM item :
PROGRAM_PREFIX = /home/vik/linuxcnc/nc_files

# required NativeCAM item :
EMBED_TAB_NAME = right_side_panel

# required NativeCAM item :
EMBED_TAB_LOCATION = box_right

# required NativeCAM item :
EMBED_TAB_COMMAND = gladevcp -x {XID} -U --catalog=mill ncam.ui


DISPLAY = gmoccapy
#DISPLAY = axis
#DISPLAY = gscreen
GEOMETRY = A X Y Z

#EMBED_TAB_NAME = my_new_panel
#EMBED_TAB_LOCATION = box_custom_2
#EMBED_TAB_COMMAND = gladevcp -x {XID} -u compensation_z.py -H compensation_z.hal compensation_z.glade

#EMBED_TAB_NAME = right_side_panel
#EMBED_TAB_LOCATION = box_right
#EMBED_TAB_COMMAND = gladevcp -x {XID} -U --catalog=mill ../../features.ui

EMBED_TAB_NAME = features
EMBED_TAB_LOCATION = box_right
EMBED_TAB_COMMAND = gladevcp -x {XID} features_gmoccapy.glade

EMBED_TAB_NAME=Probe Screen 
EMBED_TAB_LOCATION = ntb_user_tabs
EMBED_TAB_COMMAND = gladevcp  -x {XID} -u python/probe_screen.py probe_icons/probe_screen.glade

EMBED_TAB_NAME = progress_g_code_panel
EMBED_TAB_LOCATION = box_custom_4
EMBED_TAB_COMMAND = gladevcp -x {XID} -u progress.py progress.glade

EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
ARCDIVISION = 64
GRIDS = 10mm 20mm 50mm 100mm 1in 2in 5in 10in
MAX_FEED_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = 0.1
MAX_SPINDLE_OVERRIDE = 1.2

DEFAULT_ANGULAR_VELOCITY = 6.00
MIN_ANGULAR_VELOCITY = 0
MAX_ANGULAR_VELOCITY = 60.00
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 2
PROGRAM_PREFIX = /home/vik/linuxcnc/nc_files
INCREMENTS = 360mm 5mm 1mm .5mm .1mm .05mm .01mm .005mm

[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

[RS274NGC]
PARAMETER_FILE = linuxcnc.var

FEATURES=30
#SUBROUTINE_PATH = macros:../../lib
# required NativeCAM item :
SUBROUTINE_PATH = ncam/my-stuff:ncam/lib/mill:ncam/lib/utilities
[EMCMOT]

EMCMOT = motmod
COMM_TIMEOUT = 1.0
BASE_PERIOD = 60000
SERVO_PERIOD = 1000000

[TASK]
TASK = milltask
CYCLE_TIME = 0.001

[HAL]
HALFILE = mycnc.hal
#HALFILE = custom.hal
#POSTGUI_HALFILE = gmoccapy_postgui.hal
HALUI = halui

[HALUI]
#No Content

[TRAJ]

AXES = 4
COORDINATES = X Y Z A
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
DEFAULT_LINEAR_VELOCITY = 18.00
MIN_LINEAR_VELOCITY = 10.00
MAX_LINEAR_VELOCITY = 20.00

[EMCIO]
EMCIO = io
#CYCLE_TIME = 0.1
TOOL_TABLE = mill_mm.tbl


[KINS]
KINEMATICS = trivkins
#This is a best-guess at the number of joints, it should be checked
JOINTS = 4

[AXIS_X]

MIN_LIMIT = 0.0
MAX_LIMIT = 738.0
MAX_VELOCITY = 20.0
MAX_ACCELERATION = 1000.0

[JOINT_0]

TYPE = LINEAR
HOME = 1.5
MAX_VELOCITY = 20.0
MAX_ACCELERATION = 1000.0
STEPGEN_MAXACCEL = 1300.0
SCALE = 800.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = 0.0
MAX_LIMIT = 738.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -10.000000
HOME_LATCH_VEL = -2.500000
HOME_FINAL_VEL = 6
HOME_SEQUENCE = 1
HOME_IS_SHARED = 1

[AXIS_Y]
MIN_LIMIT = 0.0
MAX_LIMIT = 538.0
MAX_VELOCITY = 20.0
MAX_ACCELERATION = 1000.0

[JOINT_1]

TYPE = LINEAR
HOME = 1.5
MAX_VELOCITY = 20.0
MAX_ACCELERATION = 1000.0
STEPGEN_MAXACCEL = 1300.0
SCALE = 800.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = 0.0
MAX_LIMIT = 538.0
HOME_OFFSET = 0.000000
HOME_SEARCH_VEL = -10.000000
HOME_LATCH_VEL = -2.500000
HOME_FINAL_VEL = 6
HOME_SEQUENCE = 2
HOME_IS_SHARED = 1



[AXIS_Z]
MIN_LIMIT = -92.0
MAX_LIMIT = 0.0
MAX_VELOCITY = 11.0
MAX_ACCELERATION = 600.0

[JOINT_2]

TYPE = LINEAR
HOME = -1.5
MAX_VELOCITY = 11.0
MAX_ACCELERATION = 600.0
STEPGEN_MAXACCEL = 675.0
SCALE = 800.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -92.0
MAX_LIMIT = 0.0
HOME_OFFSET = 0.00000
HOME_SEARCH_VEL = 10.000000
HOME_LATCH_VEL = -2.500000
HOME_FINAL_VEL = 4
HOME_SEQUENCE = 0
HOME_IS_SHARED = 1

[AXIS_A]
MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 1000.0

[JOINT_3]

TYPE = ANGULAR
HOME = 0.0
MAX_VELOCITY = 25.0
MAX_ACCELERATION = 1000.0
BACKLASH = 0.45
STEPGEN_MAXACCEL = 1800.0
SCALE = 162.722
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0
HOME_OFFSET = 15.000000
HOME_SEARCH_VEL = 25.0
HOME_LATCH_VEL = -8.0
HOME_FINAL_VEL = 10
HOME_SEQUENCE = 3
HOME_IS_SHARED = 1

[TOOLSENSOR]
# Control probe rappid speed

RAPID_SPEED = 300
hal

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

# Generated by stepconf 1.1 at Fri Dec 25 18:46:25 2015
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf
loadrt [KINS]KINEMATICS
#autoconverted  trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[KINS]JOINTS 
#loadrt probe_parport
loadrt hal_parport cfg="0x378 out"
setp parport.0.reset-time 500
loadrt stepgen step_type=0,0,0,0

#######################
loadrt charge_pump
#net estop-out charge-pump.enable iocontrol.0.user-enable-out
net estop-out iocontrol.0.user-enable-out
net charge-pump <= charge-pump.out
loadrt pwmgen output_type=1
#######################

# загружаем сумматор 
loadrt sum2 names=sum2.y-comp,sum2.y-comp-fb

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

########################
addf charge-pump base-thread
addf pwmgen.make-pulses base-thread
########################



addf parport.0.write base-thread
addf parport.0.reset base-thread

addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread

# добавляем функции к серво потоку.
addf sum2.y-comp servo-thread
addf sum2.y-comp-fb servo-thread

addf stepgen.update-freq servo-thread

#########################
addf pwmgen.update servo-thread
#########################



#net spindle-cmd <= motion.spindle-speed-out
#net spindle-at-speed => motion.spindle-at-speed

#########################
net spindle-cmd <= motion.spindle-speed-out => pwmgen.0.value
net spindle-on <= motion.spindle-on => pwmgen.0.enable
net spindle-pwm <= pwmgen.0.pwm
setp pwmgen.0.pwm-freq 5.0
setp pwmgen.0.scale 17000.0
setp pwmgen.0.offset -0.003
setp pwmgen.0.dither-pwm true
net spindle-at-speed => motion.spindle-at-speed
#########################

#net probe-in => motion.probe-input

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

net spindle-pwm => parport.0.pin-01-out
#####################



setp parport.0.pin-02-out-invert 0
net xstep => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
setp parport.0.pin-02-out-invert 0
net xdir => parport.0.pin-03-out
setp parport.0.pin-04-out-invert 0
net ystep => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
setp parport.0.pin-05-out-invert 0
net ydir => parport.0.pin-05-out
setp parport.0.pin-06-out-invert 0
net zstep => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 1
setp parport.0.pin-07-out-invert 1
net zdir => parport.0.pin-07-out
net astep => parport.0.pin-08-out
setp parport.0.pin-08-out-reset 1
net adir => parport.0.pin-09-out
net xenable => parport.0.pin-14-out
####################
net coolant-flood => parport.0.pin-16-out
####################

#################
net charge-pump => parport.0.pin-17-out
#################


net all-home <= parport.0.pin-10-in
net estop-ext <= parport.0.pin-11-in-not

#net probe-in <= parport.0.pin-15-in

net probe motion.probe-input <= parport.0.pin-15-in

setp stepgen.0.position-scale [JOINT_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 36000
setp stepgen.0.dirsetup 33000
setp stepgen.0.maxaccel [JOINT_0]STEPGEN_MAXACCEL
net xpos-cmd joint.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => joint.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable joint.0.amp-enable-out => stepgen.0.enable
net all-home => joint.0.home-sw-in


setp stepgen.1.position-scale [JOINT_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 36000
setp stepgen.1.dirsetup 33000
setp stepgen.1.maxaccel [JOINT_1]STEPGEN_MAXACCEL
net ypos-cmd joint.1.motor-pos-cmd => stepgen.1.position-cmd
net ypos-fb stepgen.1.position-fb => joint.1.motor-pos-fb
net ystep <= stepgen.1.step
net ydir <= stepgen.1.dir
net yenable joint.1.amp-enable-out => stepgen.1.enable
net all-home => joint.1.home-sw-in

# подключаем пины
net xpos-cmd => sum2.y-comp.in0
net y-joint-cmd <= axis.1.joint-pos-cmd => sum2.y-comp.in1

net xpos-fb => sum2.y-comp-fb.in0
net y-joint-cmd => sum2.y-comp-fb.in1

# отключаем старые пины 
unlinkp stepgen.0.position-cmd
unlinkp joint.0.motor-pos-fb

# и подключаем их к сумматорам
net xpos-comp <= sum2.y-comp.out => stepgen.0.position-cmd
net xpos-fb-comp <= sum2.y-comp-fb.out => joint.0.motor-pos-fb

# Осталось только настроить коэффициенты 
setp sum2.y-comp.gain1 0.01
setp sum2.y-comp-fb.gain1 -0.01

setp stepgen.2.position-scale [JOINT_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 36000
setp stepgen.2.dirsetup 33000
setp stepgen.2.maxaccel [JOINT_2]STEPGEN_MAXACCEL
net zpos-cmd joint.2.motor-pos-cmd => stepgen.2.position-cmd
net zpos-fb stepgen.2.position-fb => joint.2.motor-pos-fb
net zstep <= stepgen.2.step
net zdir <= stepgen.2.dir
net zenable joint.2.amp-enable-out => stepgen.2.enable
net all-home => joint.2.home-sw-in

setp stepgen.3.position-scale [JOINT_3]SCALE
setp stepgen.3.steplen 1
setp stepgen.3.stepspace 0
setp stepgen.3.dirhold 36000
setp stepgen.3.dirsetup 33000
setp stepgen.3.maxaccel [JOINT_3]STEPGEN_MAXACCEL
net apos-cmd joint.3.motor-pos-cmd => stepgen.3.position-cmd
net apos-fb stepgen.3.position-fb => joint.3.motor-pos-fb
net astep <= stepgen.3.step
net adir <= stepgen.3.dir
net aenable joint.3.amp-enable-out => stepgen.3.enable
net all-home => joint.3.home-sw-in

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

net tool-number <= iocontrol.0.tool-prep-number
net tool-change-loopback iocontrol.0.tool-change => iocontrol.0.tool-changed
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared


Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Перпендикулярность осей

Сообщение Lexxa »

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

Re: Перпендикулярность осей

Сообщение nkp »

а что за проблема с осями? кинематика для "кривых" осей не помогает?
coldplay
Новичок
Сообщения: 9
Зарегистрирован: 23 дек 2015, 12:57
Репутация: 0
Настоящее имя: Виктор
Контактная информация:

Re: Перпендикулярность осей

Сообщение coldplay »

nkp писал(а):а что за проблема с осями? кинематика для "кривых" осей не помогает?
Прямоугольник 710х500 разница диагоналей 1.5 мм. Кинематику попробую, если так не победю)).
coldplay
Новичок
Сообщения: 9
Зарегистрирован: 23 дек 2015, 12:57
Репутация: 0
Настоящее имя: Виктор
Контактная информация:

Re: Перпендикулярность осей

Сообщение coldplay »

Lexxa писал(а):Закомментируй строки, где обращаешься к этим пинам, запусти lcnc и посмотри доступные пины.
Буду копать.
Спасибо за ответы
coldplay
Новичок
Сообщения: 9
Зарегистрирован: 23 дек 2015, 12:57
Репутация: 0
Настоящее имя: Виктор
Контактная информация:

Re: Перпендикулярность осей

Сообщение coldplay »

Разобрался, работает :good:
Надо так: net y-joint-cmd <= axis.y.pos-cmd => sum2.y-comp.in1
Осталось коэффициенты подобрать
coldplay
Новичок
Сообщения: 9
Зарегистрирован: 23 дек 2015, 12:57
Репутация: 0
Настоящее имя: Виктор
Контактная информация:

Re: Перпендикулярность осей

Сообщение coldplay »

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

Re: Перпендикулярность осей

Сообщение nkp »

а если (пока) софтлимиты убрать ?
coldplay
Новичок
Сообщения: 9
Зарегистрирован: 23 дек 2015, 12:57
Репутация: 0
Настоящее имя: Виктор
Контактная информация:

Re: Перпендикулярность осей

Сообщение coldplay »

В общем, пока работает. Коэффициенты должны быть одинаковые, иначе - ошибка оси 0. Ручные перемещения норм. Простенькую УП откатал нормально. Пока наблюдаю
Ответить

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