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 > LinuxCNC (formerly EMC2)


LinuxCNC (formerly EMC2) Discuss LinuxCNC (formerly EMC2) Controlers here!


This forum is sponsored by:

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
  #1   Ban this user!
Old 05-10-2007, 08:36 AM
 
Join Date: Apr 2007
Location: Slovenia
Posts: 11
grebator is on a distinguished road
EMC+closed loop?

Hi,guys!

Does EMC has got closed loops?
Can i make closed loops with stepper motors?

EMC+C10-bidirectional breakout board+step drivers+step motors with encoders
Reply With Quote

  #2   Ban this user!
Old 05-14-2007, 11:16 AM
 
Join Date: Jun 2006
Location: Canada
Posts: 93
flash319 is on a distinguished road

I am no expert with EMC2 and am just starting out myself but it looks like that is what it was designed to do. Your problem will be interfacing. I think it was designed to use a servo control board to act as a buffer for the drives. You are using steppers and there is no buffer in the drives so I don't know if your computer can keep up with live encoder updating to drive in closed loop. You will need a stand alone card to control the motors that does the updating for you, dedicated. I may be wrong....anyone???????
Reply With Quote

  #3   Ban this user!
Old 05-25-2007, 11:36 PM
 
Join Date: Jun 2003
Location: Boalsburg PA
Posts: 844
unterhaus is on a distinguished road

there is actually a theoretical problem using step/direction with encoders which has nothing to do with EMC. I ran into this problem years ago with a totally different stepper based system. It came with encoders, but they weren't used. I called the company that made the system and asked them how to make it closed loop with the encoders and they told me it wasn't going to work and go open loop, so I did. I just read the position from the encoders, but they aren't in the control.

Most people find that a properly set up open loop stepper system works fine. There was a configuration in the EMC1 that would do closed loop steppers, and I really doubt anyone uses it. EMC2 is flexible that you probably could set it up.
Reply With Quote

  #4   Ban this user!
Old 05-28-2007, 10:12 PM
 
Join Date: Feb 2007
Location: USA
Posts: 531
skullworks is on a distinguished road
closed loop steppers

Use a Pico systems USC - it generates its own step/dir output pulses and is not limited by paraport speed.

It can also read encoders on steppers.

http://pico-systems.com/univstep.html
Reply With Quote

  #5   Ban this user!
Old 08-27-2007, 09:35 PM
 
Join Date: Aug 2007
Location: Australia
Posts: 20
HelicalCut is on a distinguished road

What do you mean by closed loop with steppers? reading off a shaft encoder is pointless unless it is to determine a step error and issue a fault (how the fault is handled is another matter) On the other hand if you have axis encoders and use them to close the loop which is what I call closed loop, steppers can be used, if the stepper has not missed a step and the axis position does not equal the desired position then take corrective action. It can be quite tricky as the acceleration ramp of the stepper needs to be incorporated into the desired position.

Also you really need a quadrature decoder board to take this load off the system, axis position encoders can have very high pulse rates, best handled by hardware.
Reply With Quote

Sponsored Links
  #6   Ban this user!
Old 08-28-2007, 11:15 AM
 
Join Date: Aug 2007
Location: USA
Posts: 7
ironchops is on a distinguished road

HelicalCut,

Sounds like you have a working understanding of the issues around closed loop servo systems. Do have all the hardware worked out for interfacing with the linear encoders? I don't quite understand why anyone would put up with the accumulated ball screw errors when a DRO style scale is a possibility. Perhaps the unpredictable travel is an issue. A dead reckoning is made for the travel, the ramp up and ramp down takes place and you are left somewhere in the general vicinity of your intended destination. If that is too far, the metal is already gone if this event was a cut so no taking it back. The software/hardware will have to be smart enough to finish the travel somewhere towards the end of the move in order linear position readings to mean something.

What have you done to make all this work out?

Thanks,
John Mc
Reply With Quote

  #7   Ban this user!
Old 08-28-2007, 12:48 PM
Seb Seb is offline
 
Join Date: Jan 2006
Location: USA
Posts: 58
Seb is on a distinguished road

EMC2 can read quadrature encoders in software. Overall performance depends on how fast the computer is, how many lines the encoder has, and how fast you're spinning the motor.

For example, a 256-line encoder produces 1,024 quadrature transitions per revolution. If you're spinning this motor at 1,000 rpm, that's about 17 revolutions per second, or about 17,000 quadrature transitions per second. You need to sample at more than twice that frequency to capture the input waveform properly, call it 35 KHz. So the encoder reader thread needs a period of 28 microseconds or faster to do its job. (If your motor is connected to a .200" pitch lead screw, that's 5 revolutions/inch, so 1,000 rpm is 200 inches/minute or 3 inches per second...)

You can use the realtime latency checker to see what kind of realtime latency your computer is capable of. That time is slightly shorter than the shortest possible sampling period.

Here's the general formula:
  • Let L be the number on lines on your encoder.
  • Let R be the maximum number of revolutions/minute.
  • Then F, the sampling frequency in Hz, needs to be at least 2 * (4 * L) * (R / 60) or (0.1333 * L * R)

Alternatively, if you've determined how fast you can run your encoder-reader thread, you can solve for the max supported rpm using the formula R = (7.5 * F / L)


That's my understanding, at least.
Reply With Quote

  #8   Ban this user!
Old 08-28-2007, 06:16 PM
 
Join Date: Aug 2007
Location: USA
Posts: 7
ironchops is on a distinguished road
interrupts

I was suggesting using the linear scale of the DRO variety rather than doing shaft encoding.

I was hoping that resolution could be improved by using table position encoder rather than a shaft encoder and thereby allow the use of looser tolerances on the ball screws.

Are there systems out there that use such a method?

By the way, I am new to CNC but not new to science. Fact is, this stuff is pretty simple in nature but lacking experience, I have to fumble around to find out what other people are doing to implement systems.

So far I have the feeling that servos with very accurate ball screws with an encoder on the ball screw shaft is good, provided you have a really good ball screw and bearing. Steppers are burdened with resolution issues but that depends on the stepper and the screw pitch.

No sense in getting too worked up over a few tenths if you don't need to cut super tight parts but my interest in what works best is more of an exercise in specsmanship and curiosity.
Reply With Quote

  #9  
Old 08-28-2007, 06:59 PM
Gold Member
 
Join Date: Mar 2003
Location: United States
Posts: 2,717
Mariss Freimanis is on a distinguished road

I wasted 2 years trying to run a step motor PID closed-loop with only the encoder and step / direction available before concluding it's not possible. Arriving at that conclusion also suggested a different approach that does in fact work.

Mariss
Reply With Quote

  #10   Ban this user!
Old 08-28-2007, 09:10 PM
Seb Seb is offline
 
Join Date: Jan 2006
Location: USA
Posts: 58
Seb is on a distinguished road

Originally Posted by ironchops View Post
I was suggesting using the linear scale of the DRO variety rather than doing shaft encoding.

I was hoping that resolution could be improved by using table position encoder rather than a shaft encoder and thereby allow the use of looser tolerances on the ball screws.

Are there systems out there that use such a method?
I'm a noob at this too, but I think most closed-loop motors controllers get their feedback from the drive axle (ie an encoder on the lead screw) rather than from the driven object (the table or the quill, on a mill). When I first started thinking about CNC mills I also imagined getting the feedback from the table, but some study of the state of the art has indicated that this is not the way things are usually done.

Proper control of the table position is extremely difficult if there is backlash in the drive train, or other loose tolerances in the positioning hardware (ie loose gibs). Backlash is often dependent on where in its travel the axis is, and of course it changes over time, so it's difficult to compensate for accurately. CNC machines are engineered to minimize positional slop, and the less positional slop there is the less incentive there is to get the feedback from the table rather than the leadscrew.

That's my understanding.
Reply With Quote

Sponsored Links
  #11   Ban this user!
Old 08-28-2007, 10:50 PM
 
Join Date: Jan 2007
Location: MI. USA
Posts: 203
CarbideBob is on a distinguished road

Using encoders with steppers on a machine tool is worthless. Lets say you try to close the loop with and encoder. Once there is an error what do you do? If you try to pump more steps into a running motor that is losing counts it will just stall and sing at you. If you wait till the end of the move and add extra steps you've already cut the part wrong. Say you've programmed a 45 degree line and lost some steps in X. Now you've got a 50 degree line with a straight correction move at the end.
Steppers are made to be used as open loop devices. Unless of course you drive them like a brushless servo which is what I believe Mariss is working on.

On the subject of using linear scales yes this can be done with servo motors but its very tricky and usually works worse than using the encoders on the motor. The problem here is related to backlash, stiction, mechanical response speed, and abbe errors. The errors add up to a phase shift in the control loop that make the loop unstable. You try to correct for the error and nothing happens so you add more correction and so on. Eventually you remove the backlash and suddenly you have too much correction. So you correct in the opposite direction and now you find yourself in oscillation.
To make the thing run you end up "softening" the servo loop so much that your running error is much larger than with a conventional system. Your ending position will be right on but you'll have larger errors while cutting. It's important to remember that a servo system is always in error when moving, it is the error that make them move. Thats why servos typically have higher resolutions than stepper systems Normally you design a servo for at least 5 to 10 counts to your desired running resolution.

Not to say it can't be done and this system works quite well in point to point machines that don't care about errors while moving (machine vision measuring machines for example). Some very, very high end machine tools will use laser interferometers as a linear scale for feed back. But you need a deep understanding of control theory and servo systems to make it work.
Galil has a tutorial on their web site about this, using the "dual loop" feature of their controls to accomplish this task. I've set this up a number of times but have always ended up going back to the conventional method using just an encoder on the motor.

I would never consider trying to read a high resolution encoder in software. If you stop right on a line you may get very high frequency up/down counts as the encoder settles and the software will miss counts. I've never seen a software system that doesn't lose counts and the circuitry for hardware quadrature decoding is so simple.
Bob
__________________
You can always spot the pioneers -- They're the ones with the arrows in their backs.
Reply With Quote

  #12   Ban this user!
Old 08-28-2007, 11:01 PM
 
Join Date: Feb 2007
Location: USA
Posts: 531
skullworks is on a distinguished road
Arrow Linier scales?

I once saw a FADAL with glass scales fitted in ADDITION to the normal axis encoders.

It could call a macro that would do a series of moves to compare the stored screw pitch error map to what was being reported NOW, and updated a temporary pitch error map which corrected for thermal expansion issues at that moment.

The glass scales were never read while in actual motion.
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 On
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Closed loop vs. open loop pelesl Benchtop Machines 10 04-06-2007 04:56 PM
closed loop Art Ransom Servo Motors and Drives 5 10-13-2006 03:49 AM
Lathe conversion - open loop vs closed loop bhowden General Metal Working Machines 7 03-21-2006 03:56 PM
Closed loop....open loop? DAB_Design General Electronics Discussion 10 06-26-2004 04:02 PM
Closed Loop Driver vs. Closed Loop Computer ojibberish Gecko Drives 3 06-08-2004 11:30 AM




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