- Configuring LinuxCNC
- Configuration Tools
- PnCConf Wizard
- Rotary Axis ("A") driven by Stepper Motor with no encoder
Rotary Axis ("A") driven by Stepper Motor with no encoder
22 Jan 2023 18:23 #262667
by mloser
Rotary Axis ("A") driven by Stepper Motor with no encoder was created by mloser
I'm working on the tool changer for a 3 axis milling machine. It has a 10 tool rotary carousel run by a 200 pulse/rev. stepper motor and a90:1 gear reducer. It works fine when I connect step, dir and enable signals from a microcontroller. I set it up as an "A" axis in pncconf with a 7i76 board doing the stepgen. I played with all the settings in the hal file and the ini file, but I get strange behavior when trying to jog the "A" axis from the axis screen. The 1st time I hit the "+" jog button it starts moving very slowly. I can barely see it move. Each additional time I hit the "+" button it goes a little faster and if I continue to press it, it eventually goes so fast that the motor can't keep up with the steps. Is there an example of someone setting up a rotary table on the A, B or C axis with a stepper motor drive? I am not understanding how the jog works with a rotary/angular position axis.
Please Log in or Create an account to join the conversation.
23 Jan 2023 11:31 #262737
by spumco
Replied by spumco on topic Rotary Axis ("A") driven by Stepper Motor with no encoder
Post your config files (INI file plus all hal files) and I'll take a look.
I suspect you've accidentally connected your angular jog velocity command to the jog inputs.
Keep in mind that I (and others) have seen odd behavior with rotary axes in the past. If the rotary axis is calculated in degrees, but is moved (jog or gcode) in 'inches per minute' then they are really, really slow.
Usually this has to do with the multitude of sources of a jog command: halui, direct hal, the GUI screen can be talking to LCNC via python, or even a halcmd from a terminal. Any of these could be commanding a jog speed that's inappropriate for what you want.
I suspect you've accidentally connected your angular jog velocity command to the jog inputs.
Keep in mind that I (and others) have seen odd behavior with rotary axes in the past. If the rotary axis is calculated in degrees, but is moved (jog or gcode) in 'inches per minute' then they are really, really slow.
Usually this has to do with the multitude of sources of a jog command: halui, direct hal, the GUI screen can be talking to LCNC via python, or even a halcmd from a terminal. Any of these could be commanding a jog speed that's inappropriate for what you want.
Please Log in or Create an account to join the conversation.
23 Jan 2023 11:43 #262738
by CNC_ANDI
Replied by CNC_ANDI on topic Rotary Axis ("A") driven by Stepper Motor with no encoder
did you set default. min, max angular speed in the ini file?
whats your scale, velocity and acclereation?
whats your scale, velocity and acclereation?
Please Log in or Create an account to join the conversation.
24 Jan 2023 01:52 #262784
by mloser
Replied by mloser on topic Rotary Axis ("A") driven by Stepper Motor with no encoder
Thanks, I attached the hal and ini files.
Please Log in or Create an account to join the conversation.
24 Jan 2023 02:08 #262788
by mloser
Replied by mloser on topic Rotary Axis ("A") driven by Stepper Motor with no encoder
Here is what's on the ini file:
[AXIS_A]
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 90.0
MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0
[JOINT_3]
TYPE = ANGULAR
HOME = 0.0
FERROR = 1000.0
MIN_FERROR = 1000.0
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 40
STEPGEN_MAXACCEL = 40.0
P = 1.0
I = 0.0
D = 0.0
FF0 = 1.0
FF1 = 0.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 3000.0
# these are in nanoseconds
DIRSETUP = 5000
DIRHOLD = 5000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 100.0
MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0
HOME_OFFSET = 0.0
[AXIS_A]
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 90.0
MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0
[JOINT_3]
TYPE = ANGULAR
HOME = 0.0
FERROR = 1000.0
MIN_FERROR = 1000.0
MAX_VELOCITY = 30.0
MAX_ACCELERATION = 30.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 40
STEPGEN_MAXACCEL = 40.0
P = 1.0
I = 0.0
D = 0.0
FF0 = 1.0
FF1 = 0.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 3000.0
# these are in nanoseconds
DIRSETUP = 5000
DIRHOLD = 5000
STEPLEN = 5000
STEPSPACE = 5000
STEP_SCALE = 100.0
MIN_LIMIT = -9999.0
MAX_LIMIT = 9999.0
HOME_OFFSET = 0.0
Please Log in or Create an account to join the conversation.
24 Jan 2023 04:44 #262795
by spumco
Replied by spumco on topic Rotary Axis ("A") driven by Stepper Motor with no encoder
In your Axis display, do you have two jog sliders shown? i.e. one for linear jog speed, and another for angular/rotary?
From the Axis manual page, section 3.9
Or just one?
From the Axis manual page, section 3.9
On machines with a rotary axis, a second jog speed slider is shown. This slider sets the jog rate for the rotary axes (A, B and C).
Or just one?
Attachments:
Please Log in or Create an account to join the conversation.
- tommylight
-
- Away
- Moderator
-
Less
More
- Posts: 18563
- Thank you received: 6219
24 Jan 2023 05:00 #262797
by tommylight
Replied by tommylight on topic Rotary Axis ("A") driven by Stepper Motor with no encoder
Editing machine files with random values is never a good idea.
FERROR = 1000.0
MIN_FERROR = 1000.0
should be
FERROR = 10
MIN_FERROR = 1
-
MAX_ACCELERATION = 30.0
should be 90, same as for Axis A
-
STEPGEN_MAXACCEL = 40.0
For 30 above is OK, for 90 it should be 120
-
P = 1.0
should be 1000, and never edited for stepper systems with no feedback to LinuxCNC
-
MAX_OUTPUT = 3000.0
should be 0
FERROR = 1000.0
MIN_FERROR = 1000.0
should be
FERROR = 10
MIN_FERROR = 1
-
MAX_ACCELERATION = 30.0
should be 90, same as for Axis A
-
STEPGEN_MAXACCEL = 40.0
For 30 above is OK, for 90 it should be 120
-
P = 1.0
should be 1000, and never edited for stepper systems with no feedback to LinuxCNC
-
MAX_OUTPUT = 3000.0
should be 0
The following user(s) said Thank You: mloser
Please Log in or Create an account to join the conversation.
24 Jan 2023 05:35 #262799
by spumco
Replied by spumco on topic Rotary Axis ("A") driven by Stepper Motor with no encoder
Tommy - is that why his jog speed is going up with each press of the "+" GUI button?
Please Log in or Create an account to join the conversation.
- tommylight
-
- Away
- Moderator
-
Less
More
- Posts: 18563
- Thank you received: 6219
24 Jan 2023 14:49 #262817
by tommylight
Replied by tommylight on topic Rotary Axis ("A") driven by Stepper Motor with no encoder
Probably due to PID P value as the error keeps accumulating, but not sure, i never tested that.
Please Log in or Create an account to join the conversation.
27 Jan 2023 19:02 #263018
by mloser
Replied by mloser on topic Rotary Axis ("A") driven by Stepper Motor with no encoder
I do have 2 jog sliders.
Thanks
Thanks
Please Log in or Create an account to join the conversation.
Moderators: cmorley
- Configuring LinuxCNC
- Configuration Tools
- PnCConf Wizard
- Rotary Axis ("A") driven by Stepper Motor with no encoder
Time to create page: 0.097 seconds