steppers initially rotate then stop when jogging

More
15 Nov 2015 20:21 #65298 by megazoic
Hi. I need help to identify which settings in the .hal and .ini files I should try to tweak.

Thanks to help from members of this forum and Google group Machinekit forum, I have gotten the Beaglebone black (rev A6A) running Debian Wheezy from an image provided by machinekit (debian-7.4-machinekit-armhf-2014-05-19) with linuxcnc 2.7.0 to talk to a Probotix Fireball V90 through their prefab drive box with their PBX-RF cnc breakout board and ProboStepVX driver using the Sanken SLA7078MPR chip running. The BBB uses a Xylotex BBB_DB24 cape and I am using the Xylotex.ini and hal files provided in the machinekit image when starting linuxcnc. I made minor modifications to these files directly (not through stepconf) to convert them for use on the V90.

I can jog the steppers using Axis GUI but only initially. I click on the + or - button in manual control with "continuous" selected in the drop down box. If I hold down one of the two buttons rather than the spindle traveling for the duration that I hold the button down, it initially moves then while the stepper continues to whine, it stops (maybe a second or less into it). I can move the spindle as far as I want by pressing the button only momentarily multiple times. So, it seems as if my attempts to translate the information presented on the Probotix site for the stepconf to directly modify the .hal and .ini files were unsuccessful. I am including the files here. Thanks for any hints about which settings might be responsible for this behavior and how I might change them.
Regards, Nick

File Attachment:

File Name: Xylotex.ini
File Size:8 KB


File Attachment:

File Name: Xylotex.hal
File Size:12 KB
Attachments:

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

More
16 Nov 2015 06:36 - 16 Nov 2015 06:42 #65311 by Rick G

If I hold down one of the two buttons rather than the spindle traveling for the duration that I hold the button down, it initially moves then while the stepper continues to whine, it stops (maybe a second or less into it).

Sounds like you have your velocity set too high and the motor is stalling.
Try dramatically lowering your velocity and or acceleration.

The settings are In your ini file.

linuxcnc.org/docs/2.5/html/config/ini_co...tml#sub:AXIS-section
The [AXIS_0], [AXIS_1], etc. sections contains general parameters for the individual components in the axis control module. The axis section names begin numbering at 0, and run through the number of axes specified in the [TRAJ] AXES entry minus 1.

Typically (but not always):

AXIS_0 = X

AXIS_1 = Y

AXIS_2 = Z

AXIS_3 = A

AXIS_4 = B

AXIS_5 = C

AXIS_6 = U

AXIS_7 = V

AXIS_8 = W

TYPE = LINEAR - The type of axes, either LINEAR or ANGULAR.

WRAPPED_ROTARY = 1 - When this is set to 1 for an ANGULAR axis the axis will move 0-359.999 degrees. Positive Numbers will move the axis in a positive direction and negative numbers will move the axis in the negative direction.

LOCKING_INDEXER = 1 - When this is set to 1 a G0 move for this axis will initiate an unlock with axis.N.unlock pin then wait for the axis.N.is-unlocked pin then move the axis at the rapid rate for that axis. After the move the axis.N.unlock will be false and motion will wait for axis.N.is-unlocked to go false. Moving with other axes is not allowed when moving a locked rotary axis.

UNITS = INCH - If specified, this setting overrides the related [TRAJ] UNITS setting. (e.g., [TRAJ]LINEAR_UNITS if the TYPE of this axis is LINEAR, [TRAJ]ANGULAR_UNITS if the TYPE of this axis is ANGULAR)

MAX_VELOCITY = 1.2 - Maximum velocity for this axis in machine units per second.

MAX_ACCELERATION = 20.0 - Maximum acceleration for this axis in machine units per second squared.

BACKLASH = 0.0000 - Backlash in machine units. Backlash compensation value can be used to make up for small deficiencies in the hardware used to drive an axis. If backlash is added to an axis and you are using steppers the STEPGEN_MAXACCEL must be increased to 1.5 to 2 times the MAX_ACCELERATION for the axis.

COMP_FILE = file.extension - A file holding compensation structure for the axis. The file could be named xscrew.comp, for example, for the X axis. File names are case sensitive and can contain letters and/or numbers. The values are triplets per line separated by a space. The first value is nominal (where it should be). The second and third values depend on the setting of COMP_FILE_TYPE. Currently the limit inside LinuxCNC is for 256 triplets per axis. If COMP_FILE is specified, BACKLASH is ignored. Compensation file values are in machine units.

COMP_FILE_TYPE = 0 or 1 -

If 0: The second and third values specify the forward position (where the axis is while traveling forward) and the reverse position (where the axis is while traveling reverse), positions which correspond to the nominal position.'

If 1: The second and third values specify the forward trim (how far from nominal while traveling forward) and the reverse trim (how far from nominal while traveling in reverse), positions which correspond to the nominal position.

Example triplet with COMP_FILE_TYPE = 0: 1.00 1.01 0.99 +
Example triplet with COMP_FILE_TYPE = 1: 1.00 0.01 -0.01

MIN_LIMIT = -1000 - The minimum limit (soft limit) for axis motion, in machine units. When this limit is exceeded, the controller aborts axis motion.

MAX_LIMIT = 1000 - The maximum limit (soft limit) for axis motion, in machine units. When this limit is exceeded, the controller aborts axis motion.

MIN_FERROR = 0.010 - This is the value in machine units by which the axis is permitted to deviate from commanded position at very low speeds. If MIN_FERROR is smaller than FERROR, the two produce a ramp of error trip points. You could think of this as a graph where one dimension is speed and the other is permitted following error. As speed increases the amount of following error also increases toward the FERROR value.

FERROR = 1.0 - FERROR is the maximum allowable following error, in machine units. If the difference between commanded and sensed position exceeds this amount, the controller disables servo calculations, sets all the outputs to 0.0, and disables the amplifiers. If MIN_FERROR is present in the .ini file, velocity-proportional following errors are used. Here, the maximum allowable following error is proportional to the speed, with FERROR applying to the rapid rate set by [TRAJ]MAX_VELOCITY, and proportionally smaller following errors for slower speeds. The maximum allowable following error will always be greater than MIN_FERROR. This prevents small following errors for stationary axes from inadvertently aborting motion. Small following errors will always be present due to vibration, etc. The following polarity values determine how inputs are interpreted and how outputs are applied. They can usually be set via trial-and-error since there are only two possibilities. The LinuxCNC Servo Axis Calibration utility program (in the AXIS interface menu Machine/Calibration and in TkLinuxCNC it is under Setting/Calibration) can be used to set these and more interactively and verify their results so that the proper values can be put in the INI file with a minimum of trouble.


Rick G
Last edit: 16 Nov 2015 06:42 by Rick G.

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

More
16 Nov 2015 10:22 #65315 by cncbasher
your running too fast , tune everything down by at least 50 - 75% , get everything correct , then once stable bring everything back up .
if you having to use negative values , to get everything running in the correct directions , you would be better off to reverse your stepper motor connections to get the correct movement
this simplifies the config considerably , and make it easier in the long run .

Tuning of the system is a slow process , and again changing as i suggest will help also .

glad you got it all up and running

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

More
16 Nov 2015 18:39 #65340 by megazoic
Thanks Rick and cncbasher. I got the axis to travel as expected. What I didn't realize was that when I used manual control in the Axis GUI, the system was not using the values in the ini file but what was displayed at the bottom of the manual control tab (set by the sliders). These default values were obviously too high for this system. Where are these default values read from? It doesn't seem like the values entered for DEFAULT_VELOCITY and MAX_LINEAR_VELOCITY in the [TRAJ] section of the ini file are used.

So, the only thing I have to do to incorporate changes made in the ini file is to restart linuxcnc and choose the correct setup? The reason that I ask is because I see that I'm getting a emc/iotask/ioControl.cc 752: can't load tool table error in terminal even though I commented out the TOOL_TABLE assignment in the [EMCIO]. I get this error with or without that line commented out - maybe I need a tool table?
Thanks for all of your help!!
N

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

More
16 Nov 2015 19:51 #65343 by cncbasher
probably because the tooltable is missing , and is listed in the ini file .
just copy one from the examples

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

More
16 Nov 2015 19:53 #65344 by cncbasher
you have sections per axis in the ini file , each axis be indvidualy tuned , or use the default values etc

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

More
16 Nov 2015 20:28 #65348 by Todd Zuercher

Thanks Rick and cncbasher. I got the axis to travel as expected. What I didn't realize was that when I used manual control in the Axis GUI, the system was not using the values in the ini file but what was displayed at the bottom of the manual control tab (set by the sliders). These default values were obviously too high for this system. Where are these default values read from? It doesn't seem like the values entered for DEFAULT_VELOCITY and MAX_LINEAR_VELOCITY in the [TRAJ] section of the ini file are used.
N


The values entered in the ini file are in machine units/second. So if your machine is in inches and you put MAX_LINEAR_VELOCITY = 10 and DEFAULT_VELOCITY = 5, that will show up as 600ipm and 300ipm at the bottom of your screen.

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

More
16 Nov 2015 22:48 #65350 by megazoic
Something else is calling for the tool table file since I've commented out the only reference to TOOL_TABLE in the INI file and the net tool-prep-loop, net tool-change-loop in the HAL file and still get the "can't load tool table" error. Not a problem for me to see this error for now since I am using a palm router for my spindle and just getting started here.

Just so I'm clear on the Feed Override, Jog Speed, and Max Velocity set with the slider controls in the Manual Control tab of the Axis GUI. Am I correct in stating that those values displayed _only_ pertain to the behavior when the jog buttons "+" and "-" are pressed in that tab? All other feed rate control when running a program is set with the ini file in the respective sections for the axis.

Thanks for helping me get this started. There's so much to learn here but I'm stoked to run even a simple system like this.

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

More
17 Nov 2015 02:27 #65352 by Todd Zuercher
Yes and no, a linear move using 2 or more axis are capible of a higher feed rate than a single axis linear move so there the MAX_LINEAR_VELOCITY may also come into play, But hopefully this will only happen during positioning moves (G0), assuming you would not code for feed rates that are faster than your singular axis.

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

More
17 Nov 2015 06:57 #65357 by Rick G

Just so I'm clear on the Feed Override, Jog Speed, and Max Velocity set with the slider controls in the Manual Control tab of the Axis GUI. Am I correct in stating that those values displayed _only_ pertain to the behavior when the jog buttons "+" and "-" are pressed in that tab? All other feed rate control when running a program is set with the ini file in the respective sections for the axis.

The feed override will also effect the speed when running a program. But not exceed the max speed from the ini file settings.

Rick G

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

Time to create page: 0.191 seconds
Powered by Kunena Forum