how to -- Homing two motors one axis

More
26 Jul 2016 20:17 #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 or Create an account to join the conversation.

More
27 Jul 2016 14:48 #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 or Create an account to join the conversation.

More
01 Aug 2016 20:35 #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 or Create an account to join the conversation.

More
01 Aug 2016 22:10 - 01 Aug 2016 22:10 #78259 by andypugh

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
Last edit: 01 Aug 2016 22:10 by andypugh.

Please Log in or Create an account to join the conversation.

More
02 Aug 2016 07:17 #78281 by kalio
I use master version
# 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
[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 or Create an account to join the conversation.

More
02 Aug 2016 08:05 #78283 by andypugh

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 or Create an account to join the conversation.

More
02 Aug 2016 09:26 #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 or Create an account to join the conversation.

More
02 Aug 2016 09:36 #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 or Create an account to join the conversation.

More
02 Aug 2016 09:50 #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 or Create an account to join the conversation.

Time to create page: 0.200 seconds
Powered by Kunena Forum