gantry_kins LinuxCNC - зависимые оси
Re: gantry_kins LinuxCNC - зависимые оси
у меня оси едут одновременно.
ставишь им одинаковый приоритет.
у меня
Z 0
X 1
Y 2
A 2
B 3
вот Y и A едут одновременно с одинаковой скоростью. небольшой перекос не страшен, но это все решается механически.
ставишь им одинаковый приоритет.
у меня
Z 0
X 1
Y 2
A 2
B 3
вот Y и A едут одновременно с одинаковой скоростью. небольшой перекос не страшен, но это все решается механически.
- raddd
- Почётный участник

- Сообщения: 1564
- Зарегистрирован: 10 фев 2015, 08:50
- Репутация: 540
- Настоящее имя: Alexey Rodionov
- Откуда: Беларусь Минский р-н
- Контактная информация:
Re: gantry_kins LinuxCNC - зависимые оси
так вот как настроить то? по инструкции от Nick у меня появилось 4 оси и они хомятся отдельно.
но никак не вместе.
могет кто помогет?
иник с халом глянуть бы...
но никак не вместе.
могет кто помогет?
иник с халом глянуть бы...
||||||||||||
||||||||||||
||||||||||||
- raddd
- Почётный участник

- Сообщения: 1564
- Зарегистрирован: 10 фев 2015, 08:50
- Репутация: 540
- Настоящее имя: Alexey Rodionov
- Откуда: Беларусь Минский р-н
- Контактная информация:
Re: gantry_kins LinuxCNC - зависимые оси
выдержка из оригинального мануала;
быть может мне надо так? : loadrt gantrykins coordinates = coordinates=XYYZ
http://linuxcnc.org/docs/html/man/man9/ ... ins.9.html
написано предпочтительно указывать именно
вечером попробую
Код: Выделить всё
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.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||||||||||||
||||||||||||
||||||||||||
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: gantry_kins LinuxCNC - зависимые оси
Ferror вылетает когда axis.N.joint-pos-fb отличается от axis.N.joint-pos-cmd больще, чем на заданное значение.Argentum47 писал(а):pkasy писал(а):
это у тебя ferror слишком маленькие )) сделай больше, у тебя все равно обратной связи нет.
ну как нет... энкодеры, правда CNCL с ними никак не связан. А сколько лучше поставить?
UPD поставил 100, встаёт через полметра
Провыерь, что оба эти пина куда-то подключены для каждой из осей, и что на них правильные значения. Может "-" стоит. Т.е. надо было менять не полярность пина dir, а поменять scale у stepgen...
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: gantry_kins LinuxCNC - зависимые оси
вот так: (без coordinates =)raddd писал(а):
написано предпочтительно указывать именно
КОД: ВЫДЕЛИТЬ ВСЁ • РАЗВЕРНУТЬ
loadrt gantrykins coordinates = coordinates=XYYZ
Код: Выделить всё
loadrt gantrykins coordinates=XYYZ- raddd
- Почётный участник

- Сообщения: 1564
- Зарегистрирован: 10 фев 2015, 08:50
- Репутация: 540
- Настоящее имя: Alexey Rodionov
- Откуда: Беларусь Минский р-н
- Контактная информация:
Re: gantry_kins LinuxCNC - зависимые оси
я так и понял... просто скопипастил два раза)))
это я вечером попробую..
а вот как правильно добавить четвертую (подчиненную) ось в конфиг?
если через степконфиг делать тогда появляются ненужные ползунки с угловой скоростью.
можно ли правкой ини и хал файлов добавить подчиненную ось?
например скопипастить основной конфиг ведущей оси и переименовать ее на [axis_3] в ини ?
и что надо добавить в хал файл? ну кроме естественно пинов и gantrykins.
это я вечером попробую..
а вот как правильно добавить четвертую (подчиненную) ось в конфиг?
если через степконфиг делать тогда появляются ненужные ползунки с угловой скоростью.
можно ли правкой ини и хал файлов добавить подчиненную ось?
например скопипастить основной конфиг ведущей оси и переименовать ее на [axis_3] в ини ?
и что надо добавить в хал файл? ну кроме естественно пинов и gantrykins.
||||||||||||
||||||||||||
||||||||||||
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: gantry_kins LinuxCNC - зависимые оси
1. В ini в traj JOINTS = 3 сколько будет джоинтов
2. В ini добавить нужное количество [axis_N]
3. В hal loadrt gantrykins coordinates=XYYZ
2. В ini добавить нужное количество [axis_N]
3. В hal loadrt gantrykins coordinates=XYYZ
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: gantry_kins LinuxCNC - зависимые оси
4. В hal добавить соотв. строчки про ещё один привод.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- raddd
- Почётный участник

- Сообщения: 1564
- Зарегистрирован: 10 фев 2015, 08:50
- Репутация: 540
- Настоящее имя: Alexey Rodionov
- Откуда: Беларусь Минский р-н
- Контактная информация:
Re: gantry_kins LinuxCNC - зависимые оси
а так же в строку loadrt stepgen step_type=0,0,0 еще одну запятую и нольUAVpilot писал(а):4. В hal добавить соотв. строчки про ещё один привод.
и такой блок
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
естественно с своими параметрами
подругому непоехало.
но.... как заставить хомится связку осей одновременно? их можно только по одной(((
а это перед выключением надо гнать портал к нулю....
писать кнопку?
||||||||||||
||||||||||||
||||||||||||
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: gantry_kins LinuxCNC - зависимые оси
В том числе и это я и имел в виду.raddd писал(а):а так же в строку
Указать им одинаковое значение HOME_SEQUENCE.raddd писал(а):но.... как заставить хомится связку осей одновременно?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- raddd
- Почётный участник

- Сообщения: 1564
- Зарегистрирован: 10 фев 2015, 08:50
- Репутация: 540
- Настоящее имя: Alexey Rodionov
- Откуда: Беларусь Минский р-н
- Контактная информация:
Re: gantry_kins LinuxCNC - зависимые оси
Точно!!! Читал на работе да по усталости забыл!!!!!
Спасибище!!!
Завтра вечером тест....
Спасибище!!!
Завтра вечером тест....
||||||||||||
||||||||||||
||||||||||||
Re: gantry_kins LinuxCNC - зависимые оси
прикольно
- raddd
- Почётный участник

- Сообщения: 1564
- Зарегистрирован: 10 фев 2015, 08:50
- Репутация: 540
- Настоящее имя: Alexey Rodionov
- Откуда: Беларусь Минский р-н
- Контактная информация:
Re: gantry_kins LinuxCNC - зависимые оси
все поехало, но с ложкой дегтя(((
joint 0 following error
такая незадача вылазит.
FERROR = 10000
отваливается постоянно при опускании shift+стрелка.
через MDI все вроде норм.
еще обратил внимание что отваливается в режиме World
в joint что до обнуления что после все как и было - хорошо
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
в joint что до обнуления что после все как и было - хорошо
||||||||||||
||||||||||||
||||||||||||
- raddd
- Почётный участник

- Сообщения: 1564
- Зарегистрирован: 10 фев 2015, 08:50
- Репутация: 540
- Настоящее имя: Alexey Rodionov
- Откуда: Беларусь Минский р-н
- Контактная информация:
Re: gantry_kins LinuxCNC - зависимые оси
дополню:
world, ручное перемещение отваливается с ошибкой и ударом, при этом пропускает шаги. (как будто ускорения огромные).
MDI: G0 X500 -G0X0 раз 20 гонял все норм
Joint режим: ручное перемещение без проблем, MDI тоже все гуд!

зы. пробова FERROR = 1000000
MIN_FERROR = от ,25 до 1000000
всеравно
world, ручное перемещение отваливается с ошибкой и ударом, при этом пропускает шаги. (как будто ускорения огромные).
MDI: G0 X500 -G0X0 раз 20 гонял все норм
Joint режим: ручное перемещение без проблем, MDI тоже все гуд!
зы. пробова FERROR = 1000000
MIN_FERROR = от ,25 до 1000000
всеравно
||||||||||||
||||||||||||
||||||||||||
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: gantry_kins LinuxCNC - зависимые оси
Ускорения в этом режиме ограничиваются в секции TRAJ.raddd писал(а):world, ручное перемещение отваливается с ошибкой и ударом, при этом пропускает шаги. (как будто ускорения огромные).
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- raddd
- Почётный участник

- Сообщения: 1564
- Зарегистрирован: 10 фев 2015, 08:50
- Репутация: 540
- Настоящее имя: Alexey Rodionov
- Откуда: Беларусь Минский р-н
- Контактная информация:
Re: gantry_kins LinuxCNC - зависимые оси
Спасибо! Попробую только в понедельник... А пока ещё почитают своим кривым английским, мануал по емс2.UAVpilot писал(а):Ускорения в этом режиме ограничиваются в секции TRAJ.raddd писал(а):world, ручное перемещение отваливается с ошибкой и ударом, при этом пропускает шаги. (как будто ускорения огромные).
||||||||||||
||||||||||||
||||||||||||
- raddd
- Почётный участник

- Сообщения: 1564
- Зарегистрирован: 10 фев 2015, 08:50
- Репутация: 540
- Настоящее имя: Alexey Rodionov
- Откуда: Беларусь Минский р-н
- Контактная информация:
Re: gantry_kins LinuxCNC - зависимые оси
Работает!!
строка в секции TRAJ
DEFAULT_ACCELERATION =
всем спасибо за советы!
строка в секции TRAJ
DEFAULT_ACCELERATION =
всем спасибо за советы!
||||||||||||
||||||||||||
||||||||||||
- raddd
- Почётный участник

- Сообщения: 1564
- Зарегистрирован: 10 фев 2015, 08:50
- Репутация: 540
- Настоящее имя: Alexey Rodionov
- Откуда: Беларусь Минский р-н
- Контактная информация:
Re: gantry_kins LinuxCNC - зависимые оси
вобщем небольшой отчет...
красным выделены изменения в миох HAL & INI
начальный конфиг вышел из STEPCONFIG
станок XYZ, но настроил в пинах ЛПТ сразу ось А, как выходы на драйвер, так и вход от концевика.
или пины пожете вбить в HAL ручками)))
надеюсь кому нибудь поможет....
прошу заметить, файлы выложены в ознакомительных целях!!! нестоит их просто копировать как готовый конфиг. пины, скорости, ускорения, и прочие параметры станка весма отличны от вашего.
подробное описание настроек читать тут: http://www.cnc-club.ru/wiki/index.php/L ... .D0.BB_INI
и тут: http://www.cnc-club.ru/wiki/index.php/З ... раница#HAL
но рекомендую прочесть все!!!!
красным выделены изменения в миох 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станок XYZ, но настроил в пинах ЛПТ сразу ось А, как выходы на драйвер, так и вход от концевика.
или пины пожете вбить в HAL ручками)))
надеюсь кому нибудь поможет....
подробное описание настроек читать тут: http://www.cnc-club.ru/wiki/index.php/L ... .D0.BB_INI
и тут: http://www.cnc-club.ru/wiki/index.php/З ... раница#HAL
но рекомендую прочесть все!!!!
||||||||||||
||||||||||||
||||||||||||
- raddd
- Почётный участник

- Сообщения: 1564
- Зарегистрирован: 10 фев 2015, 08:50
- Репутация: 540
- Настоящее имя: Alexey Rodionov
- Откуда: Беларусь Минский р-н
- Контактная информация:
Re: gantry_kins LinuxCNC - зависимые оси
добавил строку в custom.hal
и получил атоматический переход в режим WORLD после хомления.
ноль в halui.joint.0.is-homed, заменить на номер последней по очереди хомления оси.
если очередность не настроена тогда придется дописывать в HAL несколько and2 и спомощью их ждать "последнюю" ось.
зы.
перекинул из custom.hal в основной HAL.
все работает..
мои файлы для ознакомления.
Код: Выделить всё
net gant halui.joint.0.is-homed => halui.mode.teleopноль в 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||||||||||||
||||||||||||
||||||||||||
