5 Axis ParPort Stepper Setup with RTCP
- marq_torque
- Topic Author
- Offline
- Elite Member
Less
More
- Posts: 162
- Thank you received: 2
10 Sep 2015 16:43 #62375
by marq_torque
5 Axis ParPort Stepper Setup with RTCP was created by marq_torque
Hello All members.
This is my first thread in this legendary forum, i am following threads since long. now i have started building one machine and need help as follow.
Machine is having 4 Axis out of which two are linear Axis, two are rotary axis.
1) X = Gantry
2) Z = Vertical Axis
3) B/A = Rotary swivel head
4) C = Rotary table.
now i coming on point. i am not pro EMC CNC user. i have run configuration with three axis and four axis. that is satisfactory. but at this special machine i am stuck at configuring Stepper motor outputs with ParPort and given 5Axis INI and HAL file. because its configured with Mesa electronics. and i want to use with Par port and stepper with different type of Joint as sample 5 axis setup give C axis in Z axis. while i need C axis on fixed Rotary table there is Y axis. x Axis will always run in center of Rotary table.
Looking fro some hints clues.
thanks all member for keeping this community so strong.
This is my first thread in this legendary forum, i am following threads since long. now i have started building one machine and need help as follow.
Machine is having 4 Axis out of which two are linear Axis, two are rotary axis.
1) X = Gantry
2) Z = Vertical Axis
3) B/A = Rotary swivel head
4) C = Rotary table.
now i coming on point. i am not pro EMC CNC user. i have run configuration with three axis and four axis. that is satisfactory. but at this special machine i am stuck at configuring Stepper motor outputs with ParPort and given 5Axis INI and HAL file. because its configured with Mesa electronics. and i want to use with Par port and stepper with different type of Joint as sample 5 axis setup give C axis in Z axis. while i need C axis on fixed Rotary table there is Y axis. x Axis will always run in center of Rotary table.
Looking fro some hints clues.
thanks all member for keeping this community so strong.
Please Log in or Create an account to join the conversation.
10 Sep 2015 19:25 #62383
by andypugh
Replied by andypugh on topic 5 Axis ParPort Stepper Setup with RTCP
The first question would be about how you want to control the machine. If you want RTCP then you will need to use a special kinematics module.
if you can write a kinematics module then hand-coding a parallel-port HAL file should be trivial.
To get started, create a 6-axis machine and ignore the Y. That should get you close.
if you can write a kinematics module then hand-coding a parallel-port HAL file should be trivial.
To get started, create a 6-axis machine and ignore the Y. That should get you close.
The following user(s) said Thank You: marq_torque
Please Log in or Create an account to join the conversation.
- marq_torque
- Topic Author
- Offline
- Elite Member
Less
More
- Posts: 162
- Thank you received: 2
10 Sep 2015 19:38 #62385
by marq_torque
Replied by marq_torque on topic 5 Axis ParPort Stepper Setup with RTCP
Thanks andypugh for quick reply,
i am noob for writing new configuration, though i did modification for sample 4Axis mill and did my machine working but didnt teased kinematics yet. yes i tried sample 5 axis configuration but its configured to run with mesa cards, i dont know how to replace mesa configuration with PP and modify that machine kinematics as i need only A/U, B/V axis i think. may b A/W, B/W i am totally new.... i tried to look into ini and hal file didnt get idea where to start...
and yes can you guide me how to start from 6 axis ??
Regards,
Ankit Mistry
i am noob for writing new configuration, though i did modification for sample 4Axis mill and did my machine working but didnt teased kinematics yet. yes i tried sample 5 axis configuration but its configured to run with mesa cards, i dont know how to replace mesa configuration with PP and modify that machine kinematics as i need only A/U, B/V axis i think. may b A/W, B/W i am totally new.... i tried to look into ini and hal file didnt get idea where to start...
and yes can you guide me how to start from 6 axis ??
Regards,
Ankit Mistry
Please Log in or Create an account to join the conversation.
10 Sep 2015 19:46 #62387
by andypugh
Replied by andypugh on topic 5 Axis ParPort Stepper Setup with RTCP
I just checked, and stepconf can't make a 6-axis config. So:
www.linuxcnc.org/docs/html/config/stepconf.html
Create a 5-axis config, then edit the INI and HAL files to add the extra axes, using the structure created by Stepconf for guidance.
www.linuxcnc.org/docs/html/config/stepconf.html
Create a 5-axis config, then edit the INI and HAL files to add the extra axes, using the structure created by Stepconf for guidance.
The following user(s) said Thank You: marq_torque
Please Log in or Create an account to join the conversation.
- marq_torque
- Topic Author
- Offline
- Elite Member
Less
More
- Posts: 162
- Thank you received: 2
10 Sep 2015 19:47 #62389
by marq_torque
Replied by marq_torque on topic 5 Axis ParPort Stepper Setup with RTCP
and yes about RTCP, Z and X will compensate tool length offset and will follow part geometry by shifting programing positions. and C has to do nothing with compensation in C there will be start degree and end degree thats it sort of Y axis with donut shape, in short sweep angle of B/A axis will be definite, regardless of tool offset.
Please Log in or Create an account to join the conversation.
- marq_torque
- Topic Author
- Offline
- Elite Member
Less
More
- Posts: 162
- Thank you received: 2
10 Sep 2015 20:08 - 10 Sep 2015 20:19 #62390
by marq_torque
Replied by marq_torque on topic 5 Axis ParPort Stepper Setup with RTCP
i manually tried adding 5th axis in Hal and ini, but it ended with error, may be interface. let me post error message
Debug file information:
HAL: ERROR: duplicate component name 'inihal'
ini_hal_init: ERROR: hal_init() failed
HAL: ERROR: duplicate component name 'inihal'
ini_hal_init: ERROR: hal_init() failed
HAL: ERROR: duplicate component name 'inihal'
ini_hal_init: ERROR: hal_init() failed
HAL: ERROR: duplicate component name 'inihal'
ini_hal_init: ERROR: hal_init() failed
HAL: ERROR: duplicate component name 'inihal'
ini_hal_init: ERROR: hal_init() failed
A configuration error is preventing LinuxCNC from starting.
More information may be available when running from a terminal.
6666
PID TTY STAT TIME COMMAND
6729
PID TTY STAT TIME COMMAND
Stopping realtime threads
Unloading hal components
I replaced Y With Z, Z with B axis, A axis with C axis
Debug file information:
HAL: ERROR: duplicate component name 'inihal'
ini_hal_init: ERROR: hal_init() failed
HAL: ERROR: duplicate component name 'inihal'
ini_hal_init: ERROR: hal_init() failed
HAL: ERROR: duplicate component name 'inihal'
ini_hal_init: ERROR: hal_init() failed
HAL: ERROR: duplicate component name 'inihal'
ini_hal_init: ERROR: hal_init() failed
HAL: ERROR: duplicate component name 'inihal'
ini_hal_init: ERROR: hal_init() failed
A configuration error is preventing LinuxCNC from starting.
More information may be available when running from a terminal.
6666
PID TTY STAT TIME COMMAND
6729
PID TTY STAT TIME COMMAND
Stopping realtime threads
Unloading hal components
I replaced Y With Z, Z with B axis, A axis with C axis
Last edit: 10 Sep 2015 20:19 by marq_torque.
Please Log in or Create an account to join the conversation.
10 Sep 2015 20:23 #62391
by andypugh
Replied by andypugh on topic 5 Axis ParPort Stepper Setup with RTCP
Don't delete any entries from the INI file, create duplicates for the extra axes/joints. You need a full set of 6 axes in the INI.
In the HAL connect motors 0, 2, 3, 4, 5 to the required parallel port stepper pins.
Set [TRAJ]AXES to 6, set [TRAJ]COORDINATES to XZABC
www.linuxcnc.org/docs/html/config/ini-config.html
In the HAL connect motors 0, 2, 3, 4, 5 to the required parallel port stepper pins.
Set [TRAJ]AXES to 6, set [TRAJ]COORDINATES to XZABC
www.linuxcnc.org/docs/html/config/ini-config.html
The following user(s) said Thank You: marq_torque
Please Log in or Create an account to join the conversation.
- marq_torque
- Topic Author
- Offline
- Elite Member
Less
More
- Posts: 162
- Thank you received: 2
10 Sep 2015 20:34 #62393
by marq_torque
Replied by marq_torque on topic 5 Axis ParPort Stepper Setup with RTCP
i have pasted my hal file can you confirm if any mistakes ? i did added b and c axis
# Generated by stepconf 1.1 at Thu Sep 10 13:58:36 2015
# If you make changes to this file, they will be
# overwritten when you run stepconf again
loadrt trivkins
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 1 out"
setp parport.0.reset-time 3500
loadrt stepgen step_type=0,0,0,0
loadrt abs count=1
loadrt pwmgen output_type=1
addf parport.0.read base-thread
addf parport.1.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 parport.1.write base-thread
addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
addf pwmgen.update servo-thread
addf abs.0 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 xstep => parport.0.pin-01-out
setp parport.0.pin-01-out-reset 1
net xdir => parport.0.pin-02-out
net zstep => parport.0.pin-03-out
setp parport.0.pin-03-out-reset 1
net zdir => parport.0.pin-04-out
net bstep => parport.0.pin-05-out
setp parport.0.pin-05-out-reset 1
net bdir => parport.0.pin-06-out
net cstep => parport.0.pin-07-out
setp parport.0.pin-07-out-reset 1
net cdir => parport.0.pin-08-out
net spindle-cw => parport.0.pin-09-out
net spindle-pwm => parport.0.pin-14-out
net estop-ext <= parport.0.pin-10-in
net all-home <= parport.0.pin-11-in
setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 15200
setp stepgen.0.dirsetup 15200
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 all-home => 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 15200
setp stepgen.1.dirsetup 15200
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 all-home => 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 15200
setp stepgen.2.dirsetup 15200
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 all-home => 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 15200
setp stepgen.3.dirsetup 15200
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 all-home => axis.3.home-sw-in
setp stepgen.4.position-scale [AXIS_4]SCALE
setp stepgen.4.steplen 1
setp stepgen.4.stepspace 0
setp stepgen.4.dirhold 15200
setp stepgen.4.dirsetup 15200
setp stepgen.4.maxaccel [AXIS_4]STEPGEN_MAXACCEL
net bpos-cmd axis.4.motor-pos-cmd => stepgen.4.position-cmd
net bpos-fb stepgen.e.position-fb => axis.4.motor-pos-fb
net bstep <= stepgen.e.step
net bdir <= stepgen.e.dir
net benable axis.e.amp-enable-out => stepgen.4.enable
net all-home => axis.e.home-sw-in
setp stepgen.5.position-scale [AXIS_5]SCALE
setp stepgen.5.steplen 1
setp stepgen.5.stepspace 0
setp stepgen.5.dirhold 15200
setp stepgen.5.dirsetup 15200
setp stepgen.5.maxaccel [AXIS_5]STEPGEN_MAXACCEL
net cpos-cmd axis.5.motor-pos-cmd => stepgen.5.position-cmd
net cpos-fb stepgen.e.position-fb => axis.5.motor-pos-fb
net cstep <= stepgen.e.step
net cdir <= stepgen.e.dir
net cenable axis.e.amp-enable-out => stepgen.5.enable
net all-home => axis.e.home-sw-in
net estop-out <= iocontrol.0.user-enable-out
net estop-ext => 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
# Generated by stepconf 1.1 at Thu Sep 10 13:58:36 2015
# If you make changes to this file, they will be
# overwritten when you run stepconf again
loadrt trivkins
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 1 out"
setp parport.0.reset-time 3500
loadrt stepgen step_type=0,0,0,0
loadrt abs count=1
loadrt pwmgen output_type=1
addf parport.0.read base-thread
addf parport.1.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 parport.1.write base-thread
addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
addf pwmgen.update servo-thread
addf abs.0 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 xstep => parport.0.pin-01-out
setp parport.0.pin-01-out-reset 1
net xdir => parport.0.pin-02-out
net zstep => parport.0.pin-03-out
setp parport.0.pin-03-out-reset 1
net zdir => parport.0.pin-04-out
net bstep => parport.0.pin-05-out
setp parport.0.pin-05-out-reset 1
net bdir => parport.0.pin-06-out
net cstep => parport.0.pin-07-out
setp parport.0.pin-07-out-reset 1
net cdir => parport.0.pin-08-out
net spindle-cw => parport.0.pin-09-out
net spindle-pwm => parport.0.pin-14-out
net estop-ext <= parport.0.pin-10-in
net all-home <= parport.0.pin-11-in
setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 15200
setp stepgen.0.dirsetup 15200
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 all-home => 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 15200
setp stepgen.1.dirsetup 15200
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 all-home => 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 15200
setp stepgen.2.dirsetup 15200
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 all-home => 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 15200
setp stepgen.3.dirsetup 15200
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 all-home => axis.3.home-sw-in
setp stepgen.4.position-scale [AXIS_4]SCALE
setp stepgen.4.steplen 1
setp stepgen.4.stepspace 0
setp stepgen.4.dirhold 15200
setp stepgen.4.dirsetup 15200
setp stepgen.4.maxaccel [AXIS_4]STEPGEN_MAXACCEL
net bpos-cmd axis.4.motor-pos-cmd => stepgen.4.position-cmd
net bpos-fb stepgen.e.position-fb => axis.4.motor-pos-fb
net bstep <= stepgen.e.step
net bdir <= stepgen.e.dir
net benable axis.e.amp-enable-out => stepgen.4.enable
net all-home => axis.e.home-sw-in
setp stepgen.5.position-scale [AXIS_5]SCALE
setp stepgen.5.steplen 1
setp stepgen.5.stepspace 0
setp stepgen.5.dirhold 15200
setp stepgen.5.dirsetup 15200
setp stepgen.5.maxaccel [AXIS_5]STEPGEN_MAXACCEL
net cpos-cmd axis.5.motor-pos-cmd => stepgen.5.position-cmd
net cpos-fb stepgen.e.position-fb => axis.5.motor-pos-fb
net cstep <= stepgen.e.step
net cdir <= stepgen.e.dir
net cenable axis.e.amp-enable-out => stepgen.5.enable
net all-home => axis.e.home-sw-in
net estop-out <= iocontrol.0.user-enable-out
net estop-ext => 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
Please Log in or Create an account to join the conversation.
10 Sep 2015 20:59 #62395
by andypugh
Replied by andypugh on topic 5 Axis ParPort Stepper Setup with RTCP
You haven't allocated parport pins to astep and adir.
Otherwise, that part looks OK. If it isn't loading then I would suspect the INI file is where the problem lies.
Otherwise, that part looks OK. If it isn't loading then I would suspect the INI file is where the problem lies.
The following user(s) said Thank You: marq_torque
Please Log in or Create an account to join the conversation.
- marq_torque
- Topic Author
- Offline
- Elite Member
Less
More
- Posts: 162
- Thank you received: 2
10 Sep 2015 21:05 #62396
by marq_torque
Replied by marq_torque on topic 5 Axis ParPort Stepper Setup with RTCP
I dont want to configure A axis, i want to configure B axis, so is it necessary to put A information ?
Please Log in or Create an account to join the conversation.
Time to create page: 0.647 seconds