EMC and Galil and I/O

Been learning a lot about EMC watching Iggy's progress. It turns out there's a lot of knowledge about this on RCM. The discussions about
desirability of tachs for EMC and latency problems make me glad I use a dedicated real time Galil motion controller. These cards can go cheap on eBay (can also go high). So, is anybody using a Galil card with EMC?
I'm also an I/O hog and use a 96 I/O card that hooks up to opto 22 isolated boards. http://www.adlinktech.com/PD/web/PD_detail.php?pid These also can go cheap (or high) on eBay. I've seen Linux drivers for this card on their CD. Same question, anybody using large digital I/O cards with EMC?
In short, I'm interested in EMC software but I'm not willing to give up on top end hardware.
Karl
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Karl, the more I use EMC, the more it "grows on me", it looks like very well thought out piece of software, a lot of reliability related and safety related things are put in very carefully, and a lot of high performance related ideas are in it.
EMC is at linuxcnc.org and they have a forum. To date, all my questions were answered adequately.
As you know, I am not very knowledgeable myself, but the more I use it, the more I am impressed. (same applies to Jon's PPMC board)
As for tachs, I am not pretending to be an expert by any means, but it would seem that there is some benefit to them, as the drives close the velocity loop and help run things smoothly _even in case_ of software delays.
i
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Fri, 16 Jul 2010 09:06:57 -0500, Ignoramus16581

It took a while, but a light finally came on for me regarding this tach business. If I understand correctly, the system you're building runs the PID loop on the PC. The Galil, and similar industrial motion controllers, run the loop entirely onboard, and the loop update rate is very fast (faster than the response of the motor by a couple orders of magnitude) and independent of any processes that may be running on the PC.
I can see now that the tach feedback may be desirable if the update rate of your system is relatively slow and/or unpredictable.
Karl - I'm curious about how your systems run. What sort of program is running on the Galil card and what data is the PC passing to it?
--
Ned Simmons

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Yes, that's what "motion cards" do.

Great question.
i
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On Fri, 16 Jul 2010 10:53:35 -0500, Ignoramus16581

But it sounds like yours does not. Where is the PID loop calculated in your system? By the PC, or by a dedicated processor on the motion card?
--
Ned Simmons

Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

By the PC, I believe, but the servo drives take the tachometer signal and they are good at maintaining commanded speed.
i
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On 07/16/2010 09:30 AM, Ignoramus16581 wrote:

Which means that the servo drives themselves are implementing some derivative control (with the derivative coming from the tach). PD at the least, possibly PID.
--

Tim Wescott
Wescott Design Services
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

I agree.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Ned Simmons wrote:

The PC handles the positioning loop, PID tuning, following error checking, etc. In the system Iggy is using, his velocity servo amps are doing the velocity and torque loops. But, with a 1 ms servo period (1 KHz) and a 10 us timing jitter, then that contributes about 1 % velocity jitter, the quantizing of the encoder is often worse than that.
Jon
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
...

I can see the tach helping when you don't have a dedicated motion controller. In standard mode, Galil runs the PID loop at 3K Hz. on the old cards. The new generation is over 10K Hz with a high speed option available. With a 50,000 ct. or more encoder, I'm sure there's no need for velocity or tach. mode on the servos unless you're doing something like a wire EDM to millions accuracy and feeds of .0x IPM.
Camsoft is the host software I use. It passes Galil motion commands to the card and reads back position and I/O information. Also reads a nearly unlimited amount of additional I/O. The host includes the logic control and operator interface. Camsoft is really a motion control and logic programming language or large set of macro commands written in VB6 and C++ with a few assembler routines. Its a bit complex to learn and extremely powerful.
Its also expensive, there would be a market for a EMC that could make full use of a galil card. But, I think this would be almost a total rewrite of EMC.
Karl
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
On 07/16/2010 09:51 AM, Karl Townsend wrote:

Tachometer feedback makes sense when your position measure is noisy, lacks resolution, just plain isn't available on the motor, is on the other side of some mechanism from the motor, or when your control electronics are pure analog. It also makes sense in the system that is posited here, i.e. with an outer controller that samples slowly and is remote from the inner loop (which is on the IMHO-misnamed servo motor "drive" in this case).
In fact, current technology for brushless servo motor "drives" is to use an encoder on the motor both for "tach" and for sinusoidal commutation. The one brand that I've worked with has a DSP on board that does some moderately heavy lifting, and has a full PID controller built in.
I did an analysis years ago, because an old experienced analog guy and I were in a fit of mutual frustration and incomprehension over a decision I was trying to make to leave the tach off a motor and just use a Really Good Encoder on the motor instead. The upshot of that was that _if_ it really is a good enough encoder _and if_ the controller is sampling often enough, then using a tach is entirely redundant.
(For some reason as a kid engineer I never fell into the trap of dissing the old guys -- maybe it's because I was lured into engineering by an uncle. Disagree with them, yes. Cross them, even to the extent of sneaking in methods that they had adamantly refused to consider, yes. But diss them, never -- I always listened to their advise with respect, and made sure that if I _was_ going against the grain that I had gone over my reasoning quite thoroughly, including going over all their objections twice or more.).
--

Tim Wescott
Wescott Design Services
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
Ned Simmons wrote:

The servo update rate is 1 KHz by default. You can raise it to about 5 KHz on a decent PC, with 4 motion axes, using the PPMC boards.
A properly built EMC2 system has low timing jitter on the servo loop, and within that range should be completely predictable.
Jon
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

    [ ... ]

    Do you know that it was originally developed at NIST (National Institute of Standards and Technology) -- used to be NBS (National Bureau of Standards). They developed it and kept it open source for quite a while, before releasing it to the public for future development.
    This is probably why it was so carefully written.
    Enjoy,         DoN.
--
Email: < snipped-for-privacy@d-and-d.com> | Voice (all times): (703) 938-4564
(too) near Washington D.C. | http://www.d-and-d.com/dnichols/DoN.html
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

I thought BRLCAD was developed by the govt?
i
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

    Yes -- but it was developed in particular by Ballistics Research Lab -- for other things than drawing parts for machine tools. :-)
    It was used regularly where I used to work -- at an Army R&D lab. And for that, it was excellent.
    I've not tried it for drawing parts, and have no idea how good or bad it is for that.
    EMC stands for "Extensible Machine Control" and was designed so it could be adapted to new machines as they appeared. IIRC, it was used to control the "hexapod" machine -- with a really weird coordinate system. :-)
    In case you don't know what hexapod is -- try picturing this:
    Three rigid anchor points forming a triangle.
    From each point a telescoping arm leading to the bottom of a powered spindle, and another leading to the top of the same spindle. (A total of six arms or legs).
    The head is moved by shortening or lengthening these arms to move the business end of the spindle through whatever path was needed to make the workpiece, and the other end to tilt the spindle so the milling cutter could take on whatever angle was best for that cut.
    Obviously -- the anchor points of the arms need to be *very* rigid, and the length control needs to be very strong and precise.
    Enjoy,         DoN.
--
Email: < snipped-for-privacy@d-and-d.com> | Voice (all times): (703) 938-4564
(too) near Washington D.C. | http://www.d-and-d.com/dnichols/DoN.html
  Click to see the full signature.
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
DoN. Nichols wrote:

You mean this weird thing?
http://www.laboratoryformicroenterprise.org/lme/LMEHexapodMachine.html
--

Richard Lamb



Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
DoN. Nichols wrote:

Its actually "Enhanced" not extensible, but that label may be more fitting, now. http://linuxcnc.org/handbook/intro/whatisemc2.html
Jon
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
DoN. Nichols wrote:

The original EMC (EMC1) was indeed well written, but it was a fairly narrow implementation. 3 cartesian programmable axes, although the machine could be entirely non-cartesian, such as a SCARA robot or Stewart platform (hexapod). It had no ability to do any motion synchronized to anything outside the computer, so lathe threading was out, and even rotary axes (ABC) were not well supported. Also, the G-code interpreter, the motion planner and the servo control were tightly integrated, which made modifying anything quite difficult.
There were some who thought John Kasunich's idea of a hardware abstracton layer would foul up EMC terribly, and we even had one complete defection from the project over it (Paul Corner, the developer of the BDI, a live CD distribution kit). However, I think John's vision has been completely vindicated. There IS a measurable performance penalty to this level of abstraction, but PCs have improved in speed quite a bit since this started, so I really don't see it as a problem. It has made it vastly easier to create drivers for different motion or I/O hardware, and the set of HAL components to do various tasks interfacing this to that is a real blessing. It also made it possible to connect to a special real-time version of Classic Ladder, for machines with more complex I/O requirements, like tool changers.
I can't say that HAL made it possible to include both lathe threading and rigid tapping in EMC2, but I think it was instrumental in breaking out and isolating the major components so that this was also doable.
I also have to give credit to John Kasunich in writing the framework of a VERY flexible driver for my boards, so that one driver handles all 3 boards, and they can be combined to work together in one system. I never would have taken the time to craft such an advanced driver.
Plenty of other people deserve credit too, Chris Radek and Jeff Epler developed the Axis GUI, which not only is a great screen presentation but also fixes some rough edges in EMC, like making some problems with G92 just "disappear". They now have a touch-screen GUI, too.
But, it never would have started without the great work at NIST, mostly by Fred Proctor and Will Shackleford. I was the second outside user of EMC after Matt Shaver, and Fred helped me a lot get EMC running by sending me CDs and answering my emails. That was back in mid 1998.
Jon
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Jon, thanks for shring, very interesting. I used TkEMC for now , but will give axis a try.
As for rigid tapping, it pretty much requires a servo driven spindle, right?
i
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload
wrote:

Can't speak for EMC, but I just have an encoder on a VFD driven spindle in both mills and lathes to do threading or tapping. Spindle encoder is master, axis is the slave. lathe is slightly more complicated as you hit the same spot several times at high speed for multi pass threading.
You won't hand tap again once your CNC does it.
Karl
Add pictures here
<% if( /^image/.test(type) ){ %>
<% } %>
<%-name%>
Add image file
Upload

Polytechforum.com is a website by engineers for engineers. It is not affiliated with any of manufacturers or vendors discussed here. All logos and trade names are the property of their respective owners.