CNCzone.com-The Largest Machinist Community on the net!



Home Page Mark Forums Read Today's Posts My Replies Classifieds Reviews Photo Gallery Web Links Share Files Advertise With Us Ad List
Go Back   CNCzone.com-The Largest Machinist Community on the net! > Machine Controllers Software and Solutions > CamSoft Products


CamSoft Products Discuss Camsoft PC based CNC controller products here!


This forum is sponsored by:

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Ban this user!
Old 01-24-2011, 06:19 AM
 
Join Date: Dec 2009
Location: USA
Posts: 34
Lohmeyer is on a distinguished road
Stalling in middle of CNC program

I'm having a stalling problem. I've tried a lot of things to solve it, and no luck, so I'm looking for some ideas. I have a 3 axis mill (Acer knee mill CNC conversion), Galil DMC-1842, DC Servo motors, and Camsoft Pro v16.7.

The machine stalls in the middle of running a CNC program. By stall, I mean Camsoft completes a move and then ceases to execute further moves, and it stops, leaving the spindle running. No error or reason why. I hit ESC, tell it to back up to the last command, it goes back one G code block, then I tell it to continue, and it works from there (until it stalls again at some later block).

The problem is 100% repeatable - i.e. the given G-code program will always stall at the same point. No single G-code command will cause it. It takes a series of commands to happen. E.g a series of arc moves with a Z component, or an X/Y move after an Arc move. Yet these moves by themselves never cause the issue. I can also single step through the offending section of code and it does fine.

That's important. It seems if there is a slight delay from one G-code block to the next, the problem goes away, or improves significantly.


Here's what I have tried:

TOLERANCE - If I increase TOLERANCE, it improves the issue (less stalling), but doesn't make it go away. TOLERANCE is normally set to 0.0005. I have increased it to 0.010, but it doesn't make it 100% disappear. Larger values cause other problems which are expected like odd arc moves.

I also thought bad servo tuning, but I can program back and forth X, Y, or Z moves all day long and never encounter the issue. So I don't think it's tolerance, or bad servo tuning.

I may be wrong, but before I go further, I wanted to ask if there is something I'm missing. Has anyone else seen this problem? The telling part is that everything works if there is a delay between commands like single step, or in a couple cases I used a momentary pause and was able to make it go away.

Thanks,
Mike
Reply With Quote

  #2   Ban this user!
Old 01-24-2011, 06:35 AM
 
Join Date: Jan 2005
Location: USA
Posts: 2,345
mactec54 is on a distinguished road
Buy me a Beer?

Lohmeyer

You should try the setting the tolerance at .0001, (.001 & .0005) are to big for this setting
__________________
Mactec54
Reply With Quote

  #3   Ban this user!
Old 01-24-2011, 08:31 AM
Karl_T's Avatar  
Join Date: Mar 2004
Location: Dassel,MN,USA
Posts: 1,318
Karl_T is on a distinguished road

I remember this problem on my large lathe six years ago. My memory is a bit foggy but it was caused by a poor combination of TOLERANCE BLEND and POSERROR commands. I do remember Earnie (Camsoft tech) walked me right through it. it took several trials to make the machine do my bidding. Here's some reading for you:



QUESTION 9
Are there any other settings to increase performance and accuracy of the machine?

Yes, the ADJUST.FIL file will provide a method to set an error correction factor at different places along the ball screw. Just enter the position in the ADJUST.FIL file at which point to do an offset correction and an equal sign followed by the value. You can also use the VOLUME.FIL file. This file is much like the ADJUST.FIL file in the sense that it will look up positions in the VOLUME.FIL file based on a user-defined table along the X and Y axes. This file is designed for 3-axis machine tool types using X, Y and Z-axis positioning. The principle function is to look up a position along either the X and Y axis and apply the Z position in the look-up table to the current Z-axis position to compensate in 3D for the bow or curve in the table. The NEXTMOVE= setting in the CNCSETUP.EXE program tells the control to issue the next motion target position to the motion card when the table arrives within the amount specified after the NEXTMOVE= setting. However, the table will not move until it has finally reached the target position. The need for this setting is to get the target position ready for the next move. Once it is issued, the G code display changes on the screen to the next move. A value too big causes the G code display to show the next move prematurely and a value too small can cause the machine to stop and dwell for a few milliseconds on each move. Another command that affects when the table moves to the next position is the BLEND= setting in the CNCSETUP.EXE program. This is a time value not based on any reference value. This can be set to a negative number to cause the machine to start the next move before it gets to the target position issued. Not all motion cards use the blend setting. (See the motion card integration documentation.) There is no stable advice on what to set this value at. It is our advice that you decrease the value negatively until the test part is within tolerance and all jerkiness is removed from motion. Please call the motion card manufacturer directly if you have problems with any jerkiness or rough unstable motion. There are many factors and issues to get advice on. There is a tolerance setting in the CNCSETUP.EXE program called TOLERANCE=. This setting will set the system wide tolerance and the axes display readouts to the desired decimal precision. There is a system wide tolerance value to set under the LOCK Icon in the CAD/CAM system, which affects the G code program and drawing independently from the controller.


QUESTION 155
What would cause my motors to turn off and lock up the table while executing my G code program?

This is caused by an excessive position error. When the commanded position varies from the actual position, as reported by the encoders, that is greater than the TOLERANCE you specified in the CNCSETUP program, then that motor will automatically turn off or go limp. This is a safety issue that will keep the motors from running away or stop the machine from undue stress while trying to move the table against an immovable object or travel with too much resistance. You can either increase your tolerance size or search for the cause of the resistance or possible binding. You can also temporarily override this safety feature for diagnostic purposes only with the POSERROR logic command. The answer may be as simple as:

The ball screw is binding at a certain place along that axis.

The ACCEL or DECEL values are too steep for the weight and load on your machine causing too much stress on the motors. Just lower the ACCEL or DECEL settings in the CNCSETUP program to make more gradual feedrate transitions.

Your servo motors need to be better tuned. Inefficient servo tuning will cause the motors not to perform to the maximum ability.

Your TOLERANCE setting may need to be higher than what it is.

Use the Test Axis motion feature in the Diagnostic window. Check the box entitled Coordinated Move / Error Checking to have the controller tell you what is wrong.

QUESTION 196
What are the differences between POSERROR and TOLERANCE?

The TOLERANCE sets the overall tolerance factor the controller uses to satisfy motion positioning and math functions internally. When the control reads the current axes positions to see if the commanded position has been reached, it must satisfy the given target position within this tolerance before it goes onto the next move.

The POSERROR command turns on or off excessive position error checking and allows you to optionally set the tolerance for excessive error. If during travel any of the coordinated axes fall outside this tolerance for more than 60 milliseconds, the motors automatically will be shut down.

The POSERROR gets its information from the tolerance setting and then internally the system sets the POSERROR to 10 times the tolerance for the allowable following error in encoder counts only. For example, let's say that the tolerance setting is set to .001. If 40 encoder counts = .001 for tolerance, then 10 times 40 = 400 encoder counts for position error. This is what is being allowed for the following error (400 counts).

Now the tolerance setting by itself with or without the POSERROR will wait for the system to be within tolerance of .001 before it will issue the next G code position to continue on to the next move. Therefore, if the machine never gets to the commanded position within the tolerance setting, then it should not issue the next line of code and hang up until it is within tolerance.

You can override the POSERROR, which is turned on by default, and increase the following error to allow for spongy like performance and/or bad servo tuning so the machine can lag behind the default 10 times tolerance setting. However, the control will still not issue the next command until the machine has reached the target position within the tolerance setting.
Reply With Quote

  #4   Ban this user!
Old 01-24-2011, 08:30 PM
 
Join Date: Dec 2009
Location: USA
Posts: 34
Lohmeyer is on a distinguished road

I hadn't considered POSERROR. That should help diagnose things. I have played with TOLERANCE and improved things with a large TOLERANCE (e.g. 0.005), but did not get rid of the problem.

My encoders are rotary encoders on the servo motors, not linear scales on the bed. So, there are no issues with ball screw or table inaccuracy with respect to this problem. The Camsoft system can't see this inaccuracy. When it stalls, it occurs in no particular location on the axis, but instead as a result of certain moves. Again, G02/03 X.. Y.. Z.. moves are the worst. But, I've seen G01 X.. Y.. moves that follow an Arc move having problems as well.

I've never had the problem when moving a single axis - ever. I did a test on X, Y, and Z independently, moving back and forth with different feed rates and distances. Ran it long enough to find the issue if it was going to. No stalls.

It sounds like I'm on the right track. I need to spend more time checking my servo tuning, and messing with ACCEL, DECEL, etc.

But, how should I proceed to tune my servos? I'd like to use the Galil tools (their nice "scope" application), but if I install the Galil tools, it will install the Galil driver and screw up the Camsoft driver from what I understand. Should I just do that, and then re-install Camsoft afterwards to re-install the correct driver? The Camsoft Diagnose function doesn't have anything like the Galil tools. Or am I missing something.

Thanks,
Mike
Reply With Quote

  #5   Ban this user!
Old 01-25-2011, 07:49 AM
Karl_T's Avatar  
Join Date: Mar 2004
Location: Dassel,MN,USA
Posts: 1,318
Karl_T is on a distinguished road

Originally Posted by Lohmeyer View Post
...
But, how should I proceed to tune my servos? I'd like to use the Galil tools (their nice "scope" application), but if I install the Galil tools, it will install the Galil driver and screw up the Camsoft driver from what I understand. Should I just do that, and then re-install Camsoft afterwards to re-install the correct driver? The Camsoft Diagnose function doesn't have anything like the Galil tools. Or am I missing something.

Thanks,
Mike
OH BOY. BTDT (been there done that). Galil tools is the way to tune your servos.

AND, it will not install on top of Camsoft. I've had a truely awful time getting both softwares on the same computer but it can be done. My method: wipe the harddisk, install OS (I use XP SP1), install Galil, install Camsoft, install IO card drivers. ONCE its running: CLONE the disk at least twice so you never have to do it again.

Getting your control computer to run Galil, Camsoft, IO drivers is the hardest part of doing a Camsoft refit. The last two Camsoft upgrades went in without a hitch but I have had to start at the beginning to upgrade. For some reason, if you have the old 1700 Galil cards its dang near impossilbe. I've talked with both Camsoft and Galil. They both agree - its the other vendor's problem.

Karl
Reply With Quote

Sponsored Links
  #6   Ban this user!
Old 01-25-2011, 06:32 PM
 
Join Date: Dec 2009
Location: USA
Posts: 34
Lohmeyer is on a distinguished road

Ha, that's what I figured. FYI, I have a Galil DMC-1842 (the econo series 4 axis PCI based card).

I'll install the Galil tools on a spare hard disk and tune with it, then swap back to the Camsoft disk when done. Actually, I've been wanting a non-Camsoft bootable system anyway to try some other software. So, when I'm done, I'll probably leave the system multi-boot with the two disks installed, or make two partitions on the same disk using my cloning/partition management software.

Thanks for the help.
Mike
Reply With Quote

  #7   Ban this user!
Old 02-25-2011, 07:47 PM
 
Join Date: Dec 2009
Location: USA
Posts: 34
Lohmeyer is on a distinguished road

I (mostly) resolved my stalling issues. It was just servo tuning (bad servo board settings and bad Galil PID values).

My DC Servo boards were adjusted to output only 10A torque when they are capable of driving 25A max. My motors are 45A (X and Y axis) and 65A (Z), so I set the servo board gain to allow 25A at max torque (just shy of 25A actually to prevent clipping). That made a big difference. At 10A, the motors were underpowered for the machine.

For the PID values, I put a second hard disk in the system and set it up for multi-boot, installed GalilTools and used it to tune the PID values using their scope function. Wow, huge difference. Under Camsoft, it no longer stalls with a TOLERANCE of 0.0005", and with TOLERANCE at 0.0001" it is only stalling for certain high feed rate and rapid moves. I have a little more work to do in GalilTools. With the GalilTools' scope function, I can see exactly where the problem is and tune it out.

Fixing the servo tuning also solved several other problems. Lots of issues with the jog wheel for example. Fortunately, it also finally revealed the real issue I've been trying to solve - a Z axis cumulative error during X, Y, Z arc moves. I'll explain that in a different thread.

Thanks again for your help guys!
Mike
Reply With Quote

Reply




Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Need Help!- Need to start in the middle of my program tjatdrilltech Haas Lathes 5 09-13-2010 09:28 AM
Problem- VF-2 stops in the middle of a program!! southernexplore Haas Mills 6 08-12-2009 12:34 PM
starting in the middle of a program panaceabea Milltronics 11 05-19-2009 08:54 AM
locked up in middle of program nmn Haas Mills 9 03-30-2009 09:33 PM
starting from the middle of a program panaceabea Haas Mills 8 03-27-2009 06:31 PM




All times are GMT -5. The time now is 01:33 PM.





Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Content Relevant URLs by vBSEO
Template-Modifications by TMS

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361