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  
Old 10-12-2005, 06:46 PM
HuFlungDung's Avatar
Moderator
 
Join Date: Mar 2003
Location: Canada
Posts: 4,825
HuFlungDung is on a distinguished road
Short G1 ignored in ver 14.7 CNC Pro

I'm not up to date and don't have a Camsoft maintenance contract, hence my post here.
I never noticed til today that a sequence of very short movements could result in the G0 mode kind of overrunning G1 mode. See the note in my program below. It could be a motor tuning issue, but of course, I do not wish to insert a "WAITUNTIL STOP" command
in my G0 or G01 because of the resultant lousy profiling performance. However, I do use a DECELSTOP command in the G0 before the RAPID command

G90 G80 G40
G53 X0 Z-3.6
G92 X-4. Z0.1
M27 M3
T3 (CUTOFF TOOL ON REAR TOOLPOST)
M8
M98 L100 R29
M5 M9
T0
G98
M40
G99 M2
O100
M0 (RELEASE COLLET AND RECLAMP AFTER WORK MOVES TO STOP)
G0 X-.65 Z0.
M27
G1 X-.45 F4.5
G0 X-.65
G1 Z-.035 <---If I use a G0 here, then the next G1 is ignored and moves at rapid speed
G1 X-.6 Z0.
G0 X-.65
G0 Z.075
M28
G1 X-.5 Z0. F2.5
G1 X0.0000 F4.5
G0 X-1.
M27
M99


Below, is my naked G0 and G1 logic, for as much as you can make of it all by itself

DISPLAY1 t :TEXT 1;t :\81=t
IF\99=0THENIF{\3+\4}=0THENIF\5=1THENLABEL2 YOU FORGOT TO PROGRAM SPINDLE FWD/REV :[CYCLEBUTT] :EXIT
LABEL2 ;11
IF\99=0THENIF\5=1THENLABEL2 SPINDLE IS STOPPED;12 'detect a stopped spindle by M5 flag
DECELSTOP
RAPID z;{x/2};0
IF\99=1THENIFt<>\408THEN\408=t :FILEWRITE (T\408) :READNOTE \409 :FILEWRITE (\409) :FILEWRITE M0
IF\99=0THENIF\5=1THEN [CYCLEBUTT] 'if a dryrun is not in progress then if an M5 was not cancelled my an M3 or M4 ,go to the macro
\100=z
\101=x
-----G0
IF f=0THENLABEL2 YOU FORGOT TO SPECIFY A FEEDRATE;12 :[CYCLEBUTT] :EXIT
LABEL2 ;11
IF\99=0THENIF\5=1THENLABEL2 SPINDLE IS STOPPED;12 'detect a stopped spindle by M5 flag
GO z;{x/2};0
IF\99=0THENIF\5=1THEN [CYCLEBUTT] 'allows the program to run through with axis locked M31
\100=z
\101=x
-----G1
__________________
First you get good, then you get fast. Then grouchiness sets in.

(Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)
Reply With Quote

  #2   Ban this user!
Old 10-12-2005, 07:15 PM
 
Join Date: Apr 2003
Location: United States
Posts: 279
camsoft is on a distinguished road

Hello HuFlungDung,

There's nothing wrong with your G code program or in your GCODE.FIL file. While there is plenty of extra logic in G0 & G1, the important commands RAPID and GO are correct.

Try these things:

(1) Tighten your TOLERANCE
(2) Set BLEND to zero

A common occurrence is that the velocity (feedrate) carries over from one move to the next while making a transition from one velocity to the next, fast or slow.

The G1 is not ignored, instead because the move G1 X-.6 Z0. going G0 X-.65 is short when it gets within tolerance or is set to start to BLEND early it will pick up the G0 in the next move ahead in G0 X-.65. If the move were longer you would see it feed G1 at the F4.5 feedrate until it got within tolerance or else with in time value in milliseconds set by BLEND early.


Tech Support
CamSoft Corp.
(951) 674-8100
support@camsoftcorp.com
www.cnccontrols.com
__________________
(Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)
Reply With Quote

  #3   Ban this user!
Old 10-12-2005, 07:31 PM
 
Join Date: Mar 2003
Location: USA
Posts: 332
keithorr is on a distinguished road

I have maybe a similar situation?
In order to smooth out the motion, I use a large blend value of -300. (300ms). This along with a large tolerance value of "1" helps interpolated G1 moves from being jerky and keeps the machine for stopping with a "Feedrate too slow" message. (even if the feedrate is 2000). One problem though is that M and F values are read before the motion of the same line is being processed.

i.e.

G01 zippidee do-dah whatever F1200.
20 lines later
still G01 (modal) moves
5 lines after that
X this Y that Z the other thing M115
X yadda Y yadda Z uh-huh
G11 the end.

The M115 activates at the 20th line, not the 25th.

Also, unless I insert a M code with a
!WAITUNTIL STOP
!SLEEP .5
after the G11 and make the machine wait, any following command begins without any decel/acceleration. If the G11 is followed by a G10 with a feed of F1000., the line with the G11 SLAMS to a halt and the machine jerks to the G10 motion.

I'm not just blending the axis values, I'm blending all of the letter codes too.

Using a small blend value causes the machine to halt at each line of code until the program is satisfied with the position.

Kind of a rock and a hard place for me. The machine has a lot of inertia/load and I'm still trying to figure out the best compromise.

So... What are you using for blend/tolerance?

____________________

Oh great, I type all this out while CamSoft is posting the same ideas. Well, at least I know I'm on the right track.
Reply With Quote

  #4   Ban this user!
Old 10-12-2005, 10:01 PM
 
Join Date: Apr 2005
Location: usa
Posts: 51
Carlo Rechi is on a distinguished road

I am using a Blend of 0 and a Tolerance of .0005 and mine is running okay. When I cut splines I use Fastmode or Smoothing with G61,G64 or G8 and G9 and I can go pretty fast. I have ran many jobs and they all seem to run pretty smooth and run the G and M codes where I put them. I think your WAITUNTIL stop command would be removed and your Tolerance should be less. You should try some other settings because something is screwed up.

Carlo
Reply With Quote

  #5   Ban this user!
Old 10-12-2005, 10:55 PM
 
Join Date: Mar 2003
Location: USA
Posts: 332
keithorr is on a distinguished road

What speeds are you running? Also, my G8 doesn't function well. Each block accels and decels. Doesn't matter what value I place after the "L", 1 or 100.
Reply With Quote

Sponsored Links
  #6   Ban this user!
Old 10-13-2005, 08:28 AM
 
Join Date: Apr 2005
Location: usa
Posts: 51
Carlo Rechi is on a distinguished road

It's not my machine. They normally cut 30-40 ipm on most jobs but I have seen it run through a G code program at several hundred ipm.

Carlo
Reply With Quote

  #7   Ban this user!
Old 10-13-2005, 10:05 AM
 
Join Date: Apr 2003
Location: United States
Posts: 279
camsoft is on a distinguished road

Hello All,

Timing is everything. You want those settings tight.

This is a actually one of those complex subjects with a very niche answer that applies to each application on a case to case basis.

HuFlungDung is running a lathe and Keithorr is running a 6 axis robotic arm for glass grinding and polishing.

There are general terms that do apply here to all cases, but it does boil down to what carlo said. It's all in settings and knowing what your machine can or can not do. We viewed the video on your web-site of the Robot arm retrofit you did and we're quite impressed. Hence, we can see how a long robot arms weight and inertia would be extreme.

If setup right, the system has the ability to out perform the speed, accuracy and cut quality of the most expensive CNC systems out there.

There's much more to this subject than just setting up BLEND and TOLERANCE. You have to understand the best settings for you, which would be different than other peoples. There are other features to use as carlo suggested such as Fastmode or G8 & G9 , but this suggestion doesn't apply to what you're describing per say.

Without a DECELSTOP , WAITUNTIL STOP could suddenly end if used like this and should not be placed in a G1 normally. As already menetioned it would be lousy to stop and go while cutting. Even on a robot a M code with a WAITUNTIL STOP is also not normally used, unless again depending on the application case if motion is required to be sure it's stopped first to doing something such as grind or polish the glass. This is not the answer either in this case.


To better understand this subject in whole there are several Solutions in the Search for Solutions that reflect upon this. Each case if different, so pick out the explanation that fits best. Some topics sound similar but are not related. There's lot there to study.

The TOLERANCE should never be greater than what your machine mechanically can handle. A setting of 1 is extreme and a BLEND of -300 is almost 1/3 of a second time wise.

The system never should slam unless you want it too. This is usually a combination of settings that come into play, but in general terms slam either because you have it set to stop too fast (DECEL) or take off too fast (ACCEL). One setting may work good on one machine and bad on another. Linear motors have excellent acceleration and can take off and stop quickly. The G forces are so much better that the ACCEL and DECEL values can be entered in the millions and you would never notice a jerk or slam.

As you wrote in your last post "Each block accels and decels" This tells us you have some extra logic in there telling it to do so. It won't do this unless it's told to. However, in a robotic application it is common practice to position each move of the arm with accel and decel. Metal cutting is different. You're video is looking good. Your application is unique. There's not too many glass grinding and polishing 6 axis robot out there. We can see how you had to develop some special routines and logic. Good job, we never really knew what you were doing.

The ideal settings would be TOLERANCE of a micron and zero BLEND with ACCEL and DECEL values in the millions with a few ounces of weight to move , but that's why we have user defined settings. Not every machine is built this way and we can't all afford over sized servo motors.


A wide opened TOLERANCE is bad because it tells the system you're okay with the position accuracy and anything that falls within this zone is acceptable. Any negative BLEND causes the next line to process this many milliseconds early. A little BLEND is okay, but in most system it's never needed and should be set to zero and of course a small Tolerance is okay, but again never more than what's acceptable. If you find that either of these cases reasonable values don't help and you have to enter extremes you should think about motor size, faster computers, ball screws, mechanical slop, weight, load, inertia, etc..etc..etc.. You want these settings tight.

The blending of feedrates are a different story and have nothing to do with mechanical reasons, unless again the settings would have to be set looser than acceptable because of a mechanical or motor problem. Here the 4 settings are really what matter most to tighten this up. TOLERANCE, BLEND, ACCEL and DECEL. We covered Tolerance and BLEND and only the manuals would go into this further. So now it's the theory of how feedrates make their transition from a higher rate of speed to a lower rate (DECEL) and from a low rate to a higher speed (ACCEL). If these settings are set with very large values the feedrate issued would jump with no noticeable ramp up or down in velocity. Here you would notice a slam or jerk. As you lower the values, a ramp or transition is made between the two feedrates smoother. The lower the values the smoother the flow. However, when speaking of ACCEL when the next line of G code is coming up the system will see this in advance and makes it's transition to the new speed upon reaching destination when satisfied within Tolerance distance or time setting with BLEND. Decel is different and can be affected by other commands such a DECELSTOP or end or program or even WAITUNTIL STOP. Decel will calculate in advance how far back or early it needs to start slowing down inorder to be deceled at the end of the move. The rate in which both accel and decel happen or make these transitions are user programmable.


Tech Support
CamSoft Corp.
951-674-8100
support@camsoftcorp.com
__________________
(Note: The opinions expressed in this post are my own and are not necessarily those of CNCzone and its management)

Last edited by camsoft; 10-13-2005 at 10:11 AM. Reason: spelling
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





All times are GMT -5. The time now is 01:35 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