how to -- Homing two motors one axis

More
10 years 3 months ago #78054 by kalio
I use two drives on the Y axis would like to connect them with the gantry modules. To avoid beveling gates have mounted on both sides of the two limit switches for homing. This servo-motors Stepper - so theoretically should not lose steps. Can you specify how to add homing procedure after starting the machine Before I set up referencing by stepconfa but here it does not work.

Please Log in to join the conversation.

More
10 years 3 months ago #78075 by andypugh
You should probably consider using the Master (development) branch of LinuxCNC which has much better handling of gantry machines.

linuxcnc.org/docs/devel/html/getting-sta..._configuration_files

Please Log in to join the conversation.

More
10 years 2 months ago #78255 by kalio
Hello
I have compiled the latest sources , unfortunately, does not work for me it properly

I can not find in the code where it writes the offset for a given engine on one axis if it is done in the ini file or the other ? - I have two engines .

A strange thing is happening even after moving to the limit switch gate just begins to go alone with halved speed.

Tomorrow throw ini files and halls can brighten this thing and help me find the mistake

Please Log in to join the conversation.

More
10 years 2 months ago #78259 by andypugh

kalio wrote: Hello
I have compiled the latest sources , unfortunately, does not work for me it properly


Which version did you compile?

Also, there is no need to compile, you can get a precompiled package:
buildbot.linuxcnc.org

Please Log in to join the conversation.

More
10 years 2 months ago #78281 by kalio
I use master version
Code:
# kinematics loadrt trivkins # trajectory planner loadrt tp # motion controller, get name and thread periods from ini file loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD base_period_nsec=[EMCMOT]BASE_PERIOD num_joints=[KINS]JOINTS kins=trivkins tp=tp loadrt picnc #loadrt mux2 count=2 #loadrt encoder num_chan=1 loadrt gantry count=1 personality=2 #newinst gantry gantry.0 pincount=2 addf picnc.read servo-thread addf motion-command-handler servo-thread addf motion-controller servo-thread addf picnc.update servo-thread addf picnc.write servo-thread addf gantry.0.read servo-thread addf gantry.0.write servo-thread #loadrt thc #addf thc servo-thread loadrt not count=1 addf not.0 servo-thread #addf not.1 servo-thread #******************encoder********************* setp halui.feed-override.count-enable true setp halui.feed-override.direct-value true setp halui.feed-override.scale 0.01 #net enc-a picnc.enc-a => encoder.0.phase-A #net enc-b picnc.enc-b => encoder.0.phase-B #net enc_s32 conv-s32-float.0.in <= encoder.0.counts #net ext-fork0 mux2.0.in0 <= conv-s32-float.0.out #net enc-btn picnc.enc-btn => mux2.0.sel #net ext-fork halui.feed-override.counts <= encoder.0.counts net spindle-cmd-rpm <= motion.spindle-speed-out net spindle-cmd-rpm-abs <= motion.spindle-speed-out-abs net spindle-cmd-rps <= motion.spindle-speed-out-rps net spindle-cmd-rps-abs <= motion.spindle-speed-out-rps-abs net spindle-at-speed => motion.spindle-at-speed #net spindle-cw <= motion.spindle-on net coolant-flood <= iocontrol.0.coolant-flood net coolant-mist <= iocontrol.0.coolant-mist #rafal net coolant-flood => picnc.out1 net both-x <= picnc.axis.0.home net home-y <= picnc.axis.1.home net home-y1 <= picnc.in1 net home-y2 <= picnc.in2 net both-z <= picnc.axis.2.home net power picnc.in4 => picnc.out2 #net probe-in <= picnc.in.probe net float-switch <= picnc.in.float net net-estop-ext-not not.0.in <= picnc.in.stop net estop-ext <= not.0.out net torch-probe motion.probe-input picnc.in.probe # spindle on starts the arc net spindle-on motion.spindle-on => picnc.out0 #net spindle-on thc.torch-on # starts the motion when the plasma arc has transfered to the work net start-motion-input <= motion.digital-in-00 <= picnc.in.arc-ok net spindle-on => picnc.float_as_stop setp picnc.axis.0.scale [AXIS_0]SCALE setp picnc.axis.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL net xpos-cmd axis.0.motor-pos-cmd => picnc.axis.0.position-cmd net xpos-fb picnc.axis.0.position-fb => axis.0.motor-pos-fb net both-x => axis.0.neg-lim-sw-in net both-x => axis.0.pos-lim-sw-in net both-x => axis.0.home-sw-in setp picnc.axis.1.scale [AXIS_1]SCALE setp picnc.axis.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL setp picnc.axis.2.scale [AXIS_1]SCALE setp picnc.axis.2.maxaccel [AXIS_1]STEPGEN_MAXACCEL #setp gantry.0.search-vel [AXIS_1]HOME_SEARCH_VEL net ypos-cmd gantry.0.position-cmd <= axis.1.motor-pos-cmd net ypos-fb gantry.0.position-fb => axis.1.motor-pos-fb net joint-cmd1 gantry.0.joint.00.pos-cmd => picnc.axis.1.position-cmd net joint-cmd2 gantry.0.joint.01.pos-cmd => picnc.axis.2.position-cmd net y1pos-fb picnc.axis.1.position-fb => gantry.0.joint.00.pos-fb net y2pos-fb picnc.axis.2.position-fb => gantry.0.joint.01.pos-fb net home-y axis.1.neg-lim-sw-in => axis.1.pos-lim-sw-in net limit-y gantry.0.limit => axis.1.neg-lim-sw-in => axis.1.pos-lim-sw-in #net home-yg gantry.0.home => axis.1.home-sw-in net home-y1 => gantry.0.joint.00.home net home-y2 => gantry.0.joint.01.home # position command and feedback # hijack position command and feed through thc #net zpos-cmd thc.z-pos-in <= axis.2.motor-pos-cmd #net thc-pos-cmd thc.z-pos-out => picnc.axis.3.position-cmd #net zpos-fb axis.2.motor-pos-fb <= thc.z-fb-out setp picnc.axis.3.scale [AXIS_2]SCALE setp picnc.axis.3.maxaccel [AXIS_2]STEPGEN_MAXACCEL net zpos-cmd axis.2.motor-pos-cmd => picnc.axis.3.position-cmd net zpos-fb picnc.axis.3.position-fb => axis.2.motor-pos-fb net both-z => axis.2.neg-lim-sw-in net both-z => axis.2.pos-lim-sw-in net both-z => axis.2.home-sw-in net estop-out <= iocontrol.0.user-enable-out #net estop-out => iocontrol.0.emc-enable-in net estop-ext => iocontrol.0.emc-enable-in #setp picnc.out.enable 1
Code:
[EMC] MACHINE = plasma DEBUG = 1 [DISPLAY] DISPLAY = axis EDITOR = gedit POSITION_OFFSET = RELATIVE POSITION_FEEDBACK = ACTUAL MAX_FEED_OVERRIDE = 1.5 INTRO_GRAPHIC = start-linux.gif INTRO_TIME = 5 PROGRAM_PREFIX = /home/mk/Desktop/gcody/ INCREMENTS = 5mm 1mm .5mm .1mm .05mm #PYVCP = adc.xml #PYVCP = plasma.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 = 100000 SERVO_PERIOD = 1000000 [HAL] HALFILE = MF70.hal POSTGUI_HALFILE = [TRAJ] AXES = 3 COORDINATES = X Y Z LINEAR_UNITS = mm ANGULAR_UNITS = degree CYCLE_TIME = 0.010 DEFAULT_VELOCITY = 100 MAX_LINEAR_VELOCITY = 400 [EMCIO] EMCIO = io CYCLE_TIME = 0.010 TOOL_TABLE = tool.tbl [AXIS_0] TYPE = LINEAR HOME = 0.0 MAX_VELOCITY = 400.0 MAX_ACCELERATION = 1000 STEPGEN_MAXACCEL = 1200 SCALE = 88.52 FERROR = 1 MIN_FERROR = .25 MIN_LIMIT = -1600.0 MAX_LIMIT = 1600.0 HOME_OFFSET = 0.0 [AXIS_1] TYPE = LINEAR HOME = 0.0 MAX_VELOCITY = 400.0 MAX_ACCELERATION = 1000 STEPGEN_MAXACCEL = 1200 SCALE = 76.08 FERROR = 1 MIN_FERROR = .25 MIN_LIMIT = -3100.0 MAX_LIMIT = 3100.0 HOME_OFFSET = 0.0 [AXIS_2] TYPE = LINEAR HOME = 0.0 MAX_VELOCITY = 25.0 MAX_ACCELERATION = 1250.0 STEPGEN_MAXACCEL = 1562.4 SCALE = 400.0 FERROR = 1 MIN_FERROR = .25 MIN_LIMIT = -90000.0 MAX_LIMIT = 1400.0 HOME_OFFSET = 0.0

Please Log in to join the conversation.

More
10 years 2 months ago #78283 by andypugh

kalio wrote: I use master version


In that case do not use the gantry component.

linuxcnc.org/docs/devel/html/getting-sta..._configuration_files

Contains some information, and also look at the gantry sample configs:

Please Log in to join the conversation.

More
10 years 2 months ago #78285 by kalio
I do not use the module kinematics did not work properly and I forever spillage . And unfortunately this example to the gate for me does not work

Please Log in to join the conversation.

More
10 years 2 months ago #78286 by andypugh
Part of the whole _point_ of the major changes to Master is to make Gantry machines work properly.

Please can you describe exactly what goes wrong for you if you use the new trivkins xyyz format?

Please Log in to join the conversation.

More
10 years 2 months ago #78287 by aleksamc
You should set tool in the position where you know your coordinates manually, for example X0 Y0 Z0.
Then in linuxcnc after manual homing you press "touch off" for every axis and write there what you need.

As for me, I work on two CNC-machines with stepper motors and complitly don't use homings and probes.

I do homing manually and error is in ~0.1mm.

Please Log in to join the conversation.

Time to create page: 0.086 seconds
Powered by Kunena Forum