Страница 8 из 10
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 25 май 2016, 05:13
pkasy
у меня оси едут одновременно.
ставишь им одинаковый приоритет.
у меня
Z 0
X 1
Y 2
A 2
B 3
вот Y и A едут одновременно с одинаковой скоростью. небольшой перекос не страшен, но это все решается механически.
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 25 май 2016, 08:05
raddd
так вот как настроить то? по инструкции от Nick у меня появилось 4 оси и они хомятся отдельно.
но никак не вместе.
могет кто помогет?
иник с халом глянуть бы...
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 25 май 2016, 10:30
raddd
выдержка из оригинального мануала;
Код: Выделить всё
loadrt gantrykins coordinates=axisletters
Specifying gantry joint mapping via loadrt
The coordinates= parameter specifies the initial gantry joint mapping. Each axis letter is mapped to a joint, starting from 0. So coordinates=XYYZ maps the X axis to joint 0, the Y axis to joint 1 and 2, and the Z axis to joint 3. If not specified, the default mapping is coordinates=XYZABC. Coordinate letters may be specified in uppercase or lowercase.
A note about joints and axes
LinuxCNC makes a distinction between joints and axes: a joint is something controlled by a motor, and an axis is a coordinate you can move via G-code. You can also jog joints or jog axes.
A gantry has two joints controlling one axis, and this requires a bit of special care.
Homing always happens in joint mode (aka Free mode). The two joints of a gantry’s axis must be homed together, so they must have the same [AXIS_n]HOME_SEQUENCE in the .ini file.
Jogging of a gantry must happen in world mode (aka Teleop mode). If you jog a gantry in joint mode (Free mode), you will move just one of the joints, and the gantry will rack. In contrast, if you jog a gantry in world mode (Teleop mode), it’s the axis that jogs: linuxcnc will coordinate the motion of the two joints that make up the axis, both joints will move together, and the gantry will stay square.
The Axis GUI has provisions for jogging in joint mode (Free) and in world mode (Teleop). Use the "$" hotkey, or the View menu to switch between them.
Joint-mode (aka Free mode) supports continuous and incremental jogging. World-mode (aka Teleop mode) only supports continuous jogging.
быть может мне надо так? : loadrt gantrykins coordinates = coordinates=XYYZ
http://linuxcnc.org/docs/html/man/man9/ ... ins.9.html
Код: Выделить всё
Specifies the axis mapped to joint N. The values 0 through 8 correspond to the axes XYZABCUVW. It is preferable to use the "coordinates=" parameter at loadrt-time rather than setting the joint-N parameters later, because the gantrykins module prints the joint-to-axis mapping at loadrt-time, and having that output correct is nice.
написано предпочтительно указывать именно
Код: Выделить всё
loadrt gantrykins coordinates = coordinates=XYYZ
вечером попробую
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 25 май 2016, 14:29
Nick
Argentum47 писал(а):pkasy писал(а):
это у тебя ferror слишком маленькие )) сделай больше, у тебя все равно обратной связи нет.
ну как нет... энкодеры, правда CNCL с ними никак не связан. А сколько лучше поставить?
UPD поставил 100, встаёт через полметра
Ferror вылетает когда axis.N.joint-pos-fb отличается от axis.N.joint-pos-cmd больще, чем на заданное значение.
Провыерь, что оба эти пина куда-то подключены для каждой из осей, и что на них правильные значения. Может "-" стоит. Т.е. надо было менять не полярность пина dir, а поменять scale у stepgen...
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 25 май 2016, 14:31
Nick
raddd писал(а):
написано предпочтительно указывать именно
КОД: ВЫДЕЛИТЬ ВСЁ • РАЗВЕРНУТЬ
loadrt gantrykins coordinates = coordinates=XYYZ
вот так: (без coordinates =)
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 25 май 2016, 14:45
raddd
я так и понял... просто скопипастил два раза)))
это я вечером попробую..
а вот как правильно добавить четвертую (подчиненную) ось в конфиг?
если через степконфиг делать тогда появляются ненужные ползунки с угловой скоростью.
можно ли правкой ини и хал файлов добавить подчиненную ось?
например скопипастить основной конфиг ведущей оси и переименовать ее на [axis_3] в ини ?
и что надо добавить в хал файл? ну кроме естественно пинов и gantrykins.
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 25 май 2016, 15:25
Nick
1. В ini в traj JOINTS = 3 сколько будет джоинтов
2. В ini добавить нужное количество [axis_N]
3. В hal loadrt gantrykins coordinates=XYYZ
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 25 май 2016, 15:34
Serg
4. В hal добавить соотв. строчки про ещё один привод.
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 25 май 2016, 20:13
raddd
Спасибо!!!!
сейчас попробуем....
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 25 май 2016, 21:15
raddd
UAVpilot писал(а):4. В hal добавить соотв. строчки про ещё один привод.
а так же в строку loadrt stepgen step_type=0,0,0 еще одну запятую и ноль
и такой блок
setp stepgen.3.position-scale [AXIS_3]SCALE
setp stepgen.3.steplen 1
setp stepgen.3.stepspace 0
setp stepgen.3.dirhold 50000
setp stepgen.3.dirsetup 50000
setp stepgen.3.maxaccel [AXIS_3]STEPGEN_MAXACCEL
net apos-cmd axis.3.motor-pos-cmd => stepgen.3.position-cmd
net apos-fb stepgen.3.position-fb => axis.3.motor-pos-fb
net astep <= stepgen.3.step
net adir <= stepgen.3.dir
net aenable axis.3.amp-enable-out => stepgen.3.enable
естественно с своими параметрами
подругому непоехало.
но.... как заставить хомится связку осей одновременно? их можно только по одной(((
а это перед выключением надо гнать портал к нулю....
писать кнопку?
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 25 май 2016, 22:18
Serg
raddd писал(а):а так же в строку
В том числе и это я и имел в виду.
raddd писал(а):но.... как заставить хомится связку осей одновременно?
Указать им одинаковое значение HOME_SEQUENCE.
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 26 май 2016, 00:19
raddd
Точно!!! Читал на работе да по усталости забыл!!!!!
Спасибище!!!
Завтра вечером тест....
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 26 май 2016, 13:57
pkasy
прикольно
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 26 май 2016, 22:23
raddd
все поехало, но с ложкой дегтя(((
joint 0 following error
такая незадача вылазит.
FERROR = 10000
отваливается постоянно при опускании shift+стрелка.
через MDI все вроде норм.
Код: Выделить всё
# Generated by stepconf 1.1 at Thu May 26 23:03:58 2016
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf
# loadrt trivkins
loadrt gantrykins coordinates=xyzy
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hal_parport cfg="0x378 out"
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0,0
loadrt pwmgen output_type=1
loadrt classicladder_rt numPhysInputs=15 numPhysOutputs=15 numS32in=10 numS32out=10 numFloatIn=10 numFloatOut=10
addf parport.0.read base-thread
addf stepgen.make-pulses 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 classicladder.0.refresh servo-thread
addf stepgen.update-freq servo-thread
addf pwmgen.update servo-thread
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 100.0
setp pwmgen.0.scale 1166.66666667
setp pwmgen.0.offset 0.114285714286
setp pwmgen.0.dither-pwm true
net spindle-at-speed => motion.spindle-at-speed
net spindle-cw <= motion.spindle-forward
net probe-in => motion.probe-input
net estop-out => parport.0.pin-01-out
net xstep => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
net xdir => parport.0.pin-03-out
net ystep => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
net ydir => parport.0.pin-05-out
net zstep => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 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 spindle-cw => parport.0.pin-14-out
net spindle-pwm => parport.0.pin-16-out
net xenable => parport.0.pin-17-out
net home-x <= parport.0.pin-10-in
net home-a <= parport.0.pin-11-in
net home-y <= parport.0.pin-12-in
net home-z <= parport.0.pin-13-in
net probe-in <= parport.0.pin-15-in
setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 70000
setp stepgen.0.dirsetup 70000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable axis.0.amp-enable-out => stepgen.0.enable
net home-x => axis.0.home-sw-in
setp stepgen.1.position-scale [AXIS_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 70000
setp stepgen.1.dirsetup 70000
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
net ypos-cmd axis.1.motor-pos-cmd => stepgen.1.position-cmd
net ypos-fb stepgen.1.position-fb => axis.1.motor-pos-fb
net ystep <= stepgen.1.step
net ydir <= stepgen.1.dir
net yenable axis.1.amp-enable-out => stepgen.1.enable
net home-y => axis.1.home-sw-in
setp stepgen.2.position-scale [AXIS_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 70000
setp stepgen.2.dirsetup 70000
setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.2.position-cmd
net zpos-fb stepgen.2.position-fb => axis.2.motor-pos-fb
net zstep <= stepgen.2.step
net zdir <= stepgen.2.dir
net zenable axis.2.amp-enable-out => stepgen.2.enable
net home-z => axis.2.home-sw-in
setp stepgen.3.position-scale [AXIS_3]SCALE
setp stepgen.3.steplen 1
setp stepgen.3.stepspace 0
setp stepgen.3.dirhold 70000
setp stepgen.3.dirsetup 70000
setp stepgen.3.maxaccel [AXIS_3]STEPGEN_MAXACCEL
net apos-cmd axis.3.motor-pos-cmd => stepgen.3.position-cmd
net apos-fb stepgen.3.position-fb => axis.3.motor-pos-fb
net astep <= stepgen.3.step
net adir <= stepgen.3.dir
net aenable axis.3.amp-enable-out => stepgen.3.enable
net home-a => axis.3.home-sw-in
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
loadusr -W hal_manualtoolchange
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
# Load Classicladder without GUI (can reload LADDER GUI in AXIS GUI
loadusr classicladder --nogui custom.clp
Код: Выделить всё
# Generated by stepconf 1.1 at Thu May 26 23:03:58 2016
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf
[EMC]
MACHINE = rabochiy
DEBUG = 0
[DISPLAY]
DISPLAY = axis
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.5
MAX_SPINDLE_OVERRIDE = 1.2
DEFAULT_LINEAR_VELOCITY = 7.00
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 70.00
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/radik/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
PYVCP = custompanel.xml
[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
BASE_PERIOD = 37000
SERVO_PERIOD = 1000000
[HAL]
HALUI = halui
HALFILE = rabochiy.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal
[HALUI]
# добавьте halui MDI команды сюда (max 64)
[TRAJ]
AXES = 4
COORDINATES = X Y Z A
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 7.00
MAX_VELOCITY = 70.00
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
[AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 66.5005320043
MAX_ACCELERATION = 1500.0
STEPGEN_MAXACCEL = 1875.0
SCALE = 200.0
FERROR = 10000
MIN_FERROR = .25
MIN_LIMIT = -20.0
MAX_LIMIT = 580.0
HOME_OFFSET = -20.000000
HOME_SEARCH_VEL = 10.00000
HOME_LATCH_VEL = 1.500000
HOME_SEQUENCE = 2
[AXIS_1]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 66.5005320043
MAX_ACCELERATION = 1500.0
STEPGEN_MAXACCEL = 1875.0
SCALE = 200.0
FERROR = 10000
MIN_FERROR = .25
MIN_LIMIT = -5.0
MAX_LIMIT = 780.0
HOME_OFFSET = -5.000000
HOME_SEARCH_VEL = 10.00000
HOME_LATCH_VEL = 1.500000
HOME_SEQUENCE = 1
[AXIS_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 66.5005320043
MAX_ACCELERATION = 1500.0
STEPGEN_MAXACCEL = 1875.0
SCALE = 200.0
FERROR = 10000
MIN_FERROR = .25
MIN_LIMIT = -170
MAX_LIMIT = 35
HOME_OFFSET = 5.000000
HOME_SEARCH_VEL = -10.00000
HOME_LATCH_VEL = 1.500000
HOME_SEQUENCE = 0
[AXIS_3]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 66.5005320043
MAX_ACCELERATION = 1500.0
STEPGEN_MAXACCEL = 1875.0
SCALE = 200.0
FERROR = 10000
MIN_FERROR = .25
MIN_LIMIT = -5.0
MAX_LIMIT = 780.0
HOME_OFFSET = -5.000000
HOME_SEARCH_VEL = 10.00000
HOME_LATCH_VEL = 1.500000
HOME_SEQUENCE = 1
еще обратил внимание что отваливается в режиме World
в joint что до обнуления что после все как и было - хорошо
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 26 май 2016, 22:54
raddd
дополню:
world, ручное перемещение отваливается с ошибкой и ударом, при этом пропускает шаги. (как будто ускорения огромные).
MDI: G0 X500 -G0X0 раз 20 гонял все норм
Joint режим: ручное перемещение без проблем, MDI тоже все гуд!
зы. пробова FERROR = 1000000
MIN_FERROR = от ,25 до 1000000
всеравно
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 27 май 2016, 13:09
Serg
raddd писал(а):world, ручное перемещение отваливается с ошибкой и ударом, при этом пропускает шаги. (как будто ускорения огромные).
Ускорения в этом режиме ограничиваются в секции TRAJ.
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 27 май 2016, 18:35
raddd
UAVpilot писал(а):raddd писал(а):world, ручное перемещение отваливается с ошибкой и ударом, при этом пропускает шаги. (как будто ускорения огромные).
Ускорения в этом режиме ограничиваются в секции TRAJ.
Спасибо! Попробую только в понедельник... А пока ещё почитают своим кривым английским, мануал по емс2.
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 29 май 2016, 20:22
raddd
Работает!!
строка в секции TRAJ
DEFAULT_ACCELERATION =
всем спасибо за советы!
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 29 май 2016, 20:32
raddd
вобщем небольшой отчет...
красным выделены изменения в миох HAL & INI
Код: Выделить всё
# Generated by stepconf 1.1 at Thu May 26 23:03:58 2016
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf
[EMC]
MACHINE = rabochiy
DEBUG = 0
[DISPLAY]
DISPLAY = axis
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.5
MAX_SPINDLE_OVERRIDE = 1.2
DEFAULT_LINEAR_VELOCITY = 7.00
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 70.00
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/radik/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
PYVCP = custompanel.xml
[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
BASE_PERIOD = 10000
SERVO_PERIOD = 1000000
[HAL]
HALUI = halui
HALFILE = rabochiy.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal
[HALUI]
# добавьте halui MDI команды сюда (max 64)
[TRAJ]
[color=#FF4040]AXES = 4[/color] #добавил доп ось
[color=#FF0000]COORDINATES = X Y Z A[/color] #название осей (добавил "А")
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 7.00
MAX_VELOCITY = 70.00
[color=#FF0000]DEFAULT_ACCELERATION = 1500.0
[/color] #добавил строку для ограничения ускорений в режиме World
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
[AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 70
MAX_ACCELERATION = 1500.0
STEPGEN_MAXACCEL = 1800
SCALE = 200.0
FERROR = 100
MIN_FERROR = .25
MIN_LIMIT = -20.0
MAX_LIMIT = 580.0
HOME_OFFSET = -20.000000
HOME_SEARCH_VEL = 10.00000
HOME_LATCH_VEL = 1.500000
HOME_SEQUENCE = 2
[AXIS_1]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 70
MAX_ACCELERATION = 1500.0
STEPGEN_MAXACCEL = 1800
SCALE = 200.0
FERROR = 100
MIN_FERROR = .25
MIN_LIMIT = -5.0
MAX_LIMIT = 780.0
HOME_OFFSET = -5.000000
HOME_SEARCH_VEL = 10.00000
HOME_LATCH_VEL = 1.500000
HOME_SEQUENCE = 1
[AXIS_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 70
MAX_ACCELERATION = 1500.0
STEPGEN_MAXACCEL = 1800
SCALE = 200.0
FERROR = 100
MIN_FERROR = .25
MIN_LIMIT = -170
MAX_LIMIT = 35
HOME_OFFSET = 5.000000
HOME_SEARCH_VEL = -10.00000
HOME_LATCH_VEL = 1.500000
HOME_SEQUENCE = 0
[color=#FF0000][AXIS_3]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 70
MAX_ACCELERATION = 1500.0
STEPGEN_MAXACCEL = 1800
SCALE = 200.0
FERROR = 100
MIN_FERROR = .25
MIN_LIMIT = -5.0
MAX_LIMIT = 780.0
HOME_OFFSET = -5.000000
HOME_SEARCH_VEL = 10.00000
HOME_LATCH_VEL = 1.500000
HOME_SEQUENCE = 1[/color] #скопировал настройки с ведущей оси переименовав в [AXIS_3]
Код: Выделить всё
# Generated by stepconf 1.1 at Thu May 26 23:03:58 2016
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf
[color=#FF0000]# loadrt trivkins[/color] #закоментил строку стандартной кинематики :attention:
[color=#FF0000]loadrt gantrykins coordinates=xyzy[/color] #добавил кинематику GANTRY и зависимые оси ( вданном случае зависима последняя У т.е. ось 3 или А)
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hal_parport cfg="0x378 out"
setp parport.0.reset-time 1000
[color=#FF0000]loadrt stepgen step_type=0,0,0,0[/color] #добавил четвертый Stepgen ( ,0)
loadrt pwmgen output_type=1
loadrt classicladder_rt numPhysInputs=15 numPhysOutputs=15 numS32in=10 numS32out=10 numFloatIn=10 numFloatOut=10
addf parport.0.read base-thread
addf stepgen.make-pulses 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 classicladder.0.refresh servo-thread
addf stepgen.update-freq servo-thread
addf pwmgen.update servo-thread
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 100.0
setp pwmgen.0.scale 1166.66666667
setp pwmgen.0.offset 0.114285714286
setp pwmgen.0.dither-pwm true
net spindle-at-speed => motion.spindle-at-speed
net spindle-cw <= motion.spindle-forward
net probe-in => motion.probe-input
net estop-out => parport.0.pin-01-out
net xstep => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
net xdir => parport.0.pin-03-out
net ystep => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
net ydir => parport.0.pin-05-out
net zstep => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 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 spindle-cw => parport.0.pin-14-out
net spindle-pwm => parport.0.pin-16-out
net xenable => parport.0.pin-17-out
net home-x <= parport.0.pin-10-in
net home-a <= parport.0.pin-11-in
net home-y <= parport.0.pin-12-in
net home-z <= parport.0.pin-13-in
net probe-in <= parport.0.pin-15-in
setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 32000
setp stepgen.0.dirsetup 32000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable axis.0.amp-enable-out => stepgen.0.enable
net home-x => axis.0.home-sw-in
setp stepgen.1.position-scale [AXIS_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 32000
setp stepgen.1.dirsetup 32000
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
net ypos-cmd axis.1.motor-pos-cmd => stepgen.1.position-cmd
net ypos-fb stepgen.1.position-fb => axis.1.motor-pos-fb
net ystep <= stepgen.1.step
net ydir <= stepgen.1.dir
net yenable axis.1.amp-enable-out => stepgen.1.enable
net home-y => axis.1.home-sw-in
setp stepgen.2.position-scale [AXIS_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 32000
setp stepgen.2.dirsetup 32000
setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.2.position-cmd
net zpos-fb stepgen.2.position-fb => axis.2.motor-pos-fb
net zstep <= stepgen.2.step
net zdir <= stepgen.2.dir
net zenable axis.2.amp-enable-out => stepgen.2.enable
net home-z => axis.2.home-sw-in
[color=#FF0000]setp stepgen.3.position-scale [AXIS_3]SCALE
setp stepgen.3.steplen 1
setp stepgen.3.stepspace 0
setp stepgen.3.dirhold 32000
setp stepgen.3.dirsetup 32000
setp stepgen.3.maxaccel [AXIS_3]STEPGEN_MAXACCEL
net apos-cmd axis.3.motor-pos-cmd => stepgen.3.position-cmd
net apos-fb stepgen.3.position-fb => axis.3.motor-pos-fb
net astep <= stepgen.3.step
net adir <= stepgen.3.dir
net aenable axis.3.amp-enable-out => stepgen.3.enable
net home-a => axis.3.home-sw-in[/color] #скопировал блок с ведущей оси, заменив соответсвенно букву и номер оси.
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
loadusr -W hal_manualtoolchange
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
# Load Classicladder without GUI (can reload LADDER GUI in AXIS GUI
loadusr classicladder --nogui custom.clp
начальный конфиг вышел из STEPCONFIG
станок XYZ, но настроил в пинах ЛПТ сразу ось А, как выходы на драйвер, так и вход от концевика.
или пины пожете вбить в HAL ручками)))
надеюсь кому нибудь поможет....

прошу заметить, файлы выложены в ознакомительных целях!!! нестоит их просто копировать как готовый конфиг. пины, скорости, ускорения, и прочие параметры станка весма отличны от вашего.
подробное описание настроек читать тут:
http://www.cnc-club.ru/wiki/index.php/L ... .D0.BB_INI
и тут:
http://www.cnc-club.ru/wiki/index.php/З ... раница#HAL
но рекомендую прочесть все!!!!
Re: gantry_kins LinuxCNC - зависимые оси
Добавлено: 30 май 2016, 20:27
raddd
добавил строку в custom.hal
Код: Выделить всё
net gant halui.joint.0.is-homed => halui.mode.teleop
и получил атоматический переход в режим WORLD после хомления.
ноль в halui.joint.0.is-homed, заменить на номер последней по очереди хомления оси.
если очередность не настроена тогда придется дописывать в HAL несколько and2 и спомощью их ждать "последнюю" ось.
зы.
перекинул из custom.hal в основной HAL.
все работает..
мои файлы для ознакомления.
Код: Выделить всё
# Generated by stepconf 1.1 at Thu May 26 23:03:58 2016
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf
[EMC]
MACHINE = rabochiy
DEBUG = 0
[DISPLAY]
DISPLAY = axis
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.5
MAX_SPINDLE_OVERRIDE = 1.2
DEFAULT_LINEAR_VELOCITY = 7.00
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 70.00
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/radik/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
PYVCP = custompanel.xml
[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
BASE_PERIOD = 37000
SERVO_PERIOD = 1000000
[HAL]
HALUI = halui
HALFILE = rabochiy.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal
[HALUI]
# добавьте halui MDI команды сюда (max 64)
[TRAJ]
AXES = 4
COORDINATES = X Y Z A
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 7.00
MAX_VELOCITY = 70.00
#MAX_ACCELERATION = 1500.0
DEFAULT_ACCELERATION = 1500.0
POSITION_FILE = position.txt
[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
[AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 70
MAX_ACCELERATION = 1500.0
STEPGEN_MAXACCEL = 1800
SCALE = 200.0
FERROR = 1000
MIN_FERROR = .25
MIN_LIMIT = -20.0
MAX_LIMIT = 580.0
HOME_OFFSET = -20.000000
HOME_SEARCH_VEL = 10.00000
HOME_LATCH_VEL = 1.500000
HOME_SEQUENCE = 2
HOME_FINAL_VEL = 10.00000
[AXIS_1]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 70
MAX_ACCELERATION = 1500.0
STEPGEN_MAXACCEL = 1800
SCALE = 200.0
FERROR = 1000
MIN_FERROR = .25
MIN_LIMIT = -5.0
MAX_LIMIT = 780.0
HOME_OFFSET = -5.000000
HOME_SEARCH_VEL = 10.00000
HOME_LATCH_VEL = 1.500000
HOME_SEQUENCE = 1
HOME_FINAL_VEL = 10.00000
[AXIS_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 70
MAX_ACCELERATION = 1500.0
STEPGEN_MAXACCEL = 1800
SCALE = 200.0
FERROR = 1000
MIN_FERROR = .25
MIN_LIMIT = -170
MAX_LIMIT = 35
HOME_OFFSET = 5.000000
HOME_SEARCH_VEL = -10.00000
HOME_LATCH_VEL = 1.500000
HOME_SEQUENCE = 0
HOME_FINAL_VEL = 10.00000
[AXIS_3]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 70
MAX_ACCELERATION = 1500.0
STEPGEN_MAXACCEL = 1800
SCALE = 200.0
FERROR = 1000
MIN_FERROR = .25
MIN_LIMIT = -5.0
MAX_LIMIT = 780.0
HOME_OFFSET = -5.000000
HOME_SEARCH_VEL = 10.00000
HOME_LATCH_VEL = 1.500000
HOME_SEQUENCE = 1
HOME_FINAL_VEL = 10.00000
Код: Выделить всё
# Generated by stepconf 1.1 at Thu May 26 23:03:58 2016
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf
# loadrt trivkins
loadrt gantrykins coordinates=xyzy
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hal_parport cfg="0x378 out"
setp parport.0.reset-time 1000
loadrt stepgen step_type=0,0,0,0
loadrt pwmgen output_type=1
loadrt classicladder_rt numPhysInputs=15 numPhysOutputs=15 numS32in=10 numS32out=10 numFloatIn=10 numFloatOut=10
addf parport.0.read base-thread
addf stepgen.make-pulses 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 classicladder.0.refresh servo-thread
addf stepgen.update-freq servo-thread
addf pwmgen.update servo-thread
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 100.0
setp pwmgen.0.scale 1166.66666667
setp pwmgen.0.offset 0.114285714286
setp pwmgen.0.dither-pwm true
net spindle-at-speed => motion.spindle-at-speed
net spindle-cw <= motion.spindle-forward
net probe-in => motion.probe-input
net estop-out => parport.0.pin-01-out
net xstep => parport.0.pin-02-out
setp parport.0.pin-02-out-reset 1
net xdir => parport.0.pin-03-out
net ystep => parport.0.pin-04-out
setp parport.0.pin-04-out-reset 1
net ydir => parport.0.pin-05-out
net zstep => parport.0.pin-06-out
setp parport.0.pin-06-out-reset 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 spindle-cw => parport.0.pin-14-out
net spindle-pwm => parport.0.pin-16-out
net xenable => parport.0.pin-17-out
net home-x <= parport.0.pin-10-in
net home-a <= parport.0.pin-11-in
net home-y <= parport.0.pin-12-in
net home-z <= parport.0.pin-13-in
net probe-in <= parport.0.pin-15-in
setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 32000
setp stepgen.0.dirsetup 32000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable axis.0.amp-enable-out => stepgen.0.enable
net home-x => axis.0.home-sw-in
setp stepgen.1.position-scale [AXIS_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 32000
setp stepgen.1.dirsetup 32000
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
net ypos-cmd axis.1.motor-pos-cmd => stepgen.1.position-cmd
net ypos-fb stepgen.1.position-fb => axis.1.motor-pos-fb
net ystep <= stepgen.1.step
net ydir <= stepgen.1.dir
net yenable axis.1.amp-enable-out => stepgen.1.enable
net home-y => axis.1.home-sw-in
setp stepgen.2.position-scale [AXIS_2]SCALE
setp stepgen.2.steplen 1
setp stepgen.2.stepspace 0
setp stepgen.2.dirhold 32000
setp stepgen.2.dirsetup 32000
setp stepgen.2.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.2.position-cmd
net zpos-fb stepgen.2.position-fb => axis.2.motor-pos-fb
net zstep <= stepgen.2.step
net zdir <= stepgen.2.dir
net zenable axis.2.amp-enable-out => stepgen.2.enable
net home-z => axis.2.home-sw-in
setp stepgen.3.position-scale [AXIS_3]SCALE
setp stepgen.3.steplen 1
setp stepgen.3.stepspace 0
setp stepgen.3.dirhold 32000
setp stepgen.3.dirsetup 32000
setp stepgen.3.maxaccel [AXIS_3]STEPGEN_MAXACCEL
net apos-cmd axis.3.motor-pos-cmd => stepgen.3.position-cmd
net apos-fb stepgen.3.position-fb => axis.3.motor-pos-fb
net astep <= stepgen.3.step
net adir <= stepgen.3.dir
net aenable axis.3.amp-enable-out => stepgen.3.enable
net home-a => axis.3.home-sw-in
net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in
loadusr -W hal_manualtoolchange
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
# Load Classicladder without GUI (can reload LADDER GUI in AXIS GUI
loadusr classicladder --nogui custom.clp
net gant halui.joint.0.is-homed => halui.mode.teleop