¿ªÔÆÌåÓý

ctrl + shift + ? for shortcuts
© 2025 Groups.io
Date

Re: Linux vs. DOS

Matt Shaver
 

I finally have made my first item using EMC!!!

If you want to check it out you can see it on my website at
I like it! I'm also happy to see that you were able to use your CAM output
with the EMC.

In getting this g-code to run I have discovered another thing I wish EMC
would do. When it runs into an error in your g-code EMC pops up an alert
window telling you what the error is in terms that give you a hint at the
problem, but it resets your program at that point and gives you no
indication of the line that caused the error. The code for cutting this
little EMC sign I made was 572 lines long. So it was a little bit of a pain
to watch the program code as it flys by in Xemc and hope I was paying close
enough attention to catch the line number just before I hit an error. If
Fred could add the ability to display the line of g-code in the alert
window
along with the error message debugging a g-code program would be 1000 times
faster.
At the beginning of the error message there is a number. Although it doesn't
say so, this is the line number of the error. Not the "N" number (if you use
them), but the number of lines into the program from the top. This should be
easy to find with emacs or any editor that counts the lines for you. I'll
agree that the error messages could be more explanatory in their verbiage.

Here is a question for Matt or Jon or anyone else running EMC:
Is there a way to run the g-code through EMC's code interpreted without
just
loading it in Xemc and running it?
Yes, open the file for editing, scroll down all the way to the last line that
says M2 and put your cursor there. Press the "Set Run Mark" button at the
bottom of the editor window, and confirm that you want to start running at
this line when the little window pops up to ask you. Make sure you are clear
of any obstructions since the machine may try to move to the position that it
would be in at the end of your program (probably the tool change position).
Originally, the interpreter could be run in standalone mode (without the
motion control system) and do its inputs and outputs to and from disk files.
More interpreter information is in the file:

ftp://ftp.isd.cme.nist.gov/pub/emc/emcsoft/RS274NGC_22.doc

I am about halfway through turning this document into html which will improve
its accessibility. The raw .doc file doesn't have the table of contents,
illustrations, tables, etc.

I found that if I tried running the code
with the my stepper controller turned off so I could crank up the feed rate
to just check the code more quickly I would get an error that would abort
the code referring to a "follow error" on an axis. If I ran the code with
the controller turned on I had no errors in this section of code, but it
took MUCH longer as I had to use realistic feed rates.
Since you have no feedback in your control system (like encoders), I don't
think you should get following errors. I'm puzzled by this, so I'll forward
it to Fred.

Now for some observations that may help others over the EMC learning curve
a
little faster:
The enter key by your number pad and the enter key by your letter keys are
not equivalent in EMC. If you use your mouse to click on either the feed
rate or the feed override it pops up a window to enter a rate into, but to
get it to accept the rate and use it you have to use the enter key by your
letter keys. The one on the number pad will close the box, but your entry
disappears.
I didn't know this, but it may be fixable. I'll send it to Fred as well.

EMC seems to want it's circular moves (G2, G3) to be entered in the format
using R and not I and J.
Actually, I had the same problem, but the other way around. I couldn't always
use R format, but IJ worked fine. I'd like to know what the error message
was. I drew these in AutoCad and assuming the starting point to be X-2.196
Y-5.946 I got the following results:

EMC seems to likes: N331 G03 X-2.309 Y-6.059 R.094
The center of this arc is X-2.2175 Y-6.0375.

EMC seems to not like: N331 G03 X-2.309 Y-6.059 I-2.253 J-6.003
The radius of this arc is .0806 .

Truthfully, I got some bad R format output from my CAM system that the EMC
couldn't digest. Here are some excerpts from the e-mail of that era:

-----
From: Matt Shaver
When the EMC tried to execute the block:

N285G3X22.4352Y-1.8132R0.0025

it produced the error:

"arc_data_r: error 2: Arc Radius is too small to reach end point".

The starting point for the arc was X22.4388 Y-1.8168.

I thought it might be the result of a rounding error so I changed the post
processor in the CAM software we're using to output the coordinates with 100%
precision. This made the code look like:

N285G3X22.4352322Y-1.8132322R-0.0025

but it still failed.

I drew the geometry (as two points connected by an arc) in AutoCAD to check
whether this was a valid arc and it seems OK. The entity list was:

POINT Layer: 0
Space: Model space
at point, X= 22.4352 Y= -1.8132 Z= 0.0000

POINT Layer: 0
Space: Model space
at point, X= 22.4388 Y= -1.8168 Z= 0.0000

ARC Layer: 0
Space: Model space
center point, X= 22.4370 Y= -1.8150 Z= 0.0000
radius 0.0025
start angle 315
end angle 135
-----

Tom Kramer, the author of the G code interpreter replied:
-----
The start and end point are 0.0050919293 apart. This is 0.00009 more
than twice the desired radius of 0.00250 (a relative error of 9/250).
The interpreter allows a relative error of only 0.000000000001
(#define'd as TINY in rs274ngc.hh). The check is made in the arc_data_r
function. TINY is not used for anything else and could be changed easily,
but I do not think we want to make it as large as 9/250.

The block of code is trying to make a semi-circle using the r-format
for an arc. This is inherently numerically unstable (which we discussed
in one or more of the NISTIR's on interpreters) and should not be done.
A change of 0.0001 in the position of the end of an r-format semicircle
may move the center of the semicircle as much as 0.01, which is likely
to result in an out-of tolerance part.

To deal with this, the arc may be split into to quarter circles (then
numerical stability is not a problem), or some other format arc should
be used.
-----

Since switching to IJ format there haven't been any problems since for any
two points (start and end) and a specified center point, an arc of some
radius exists!


Re: Linux vs. DOS

Jon Elson
 

Tim Goldstein wrote:

Has anyone tried running a lathe using EMC? I have set up a 2 axis
configuration file on my machine and hope to give it a try this weekend.
Got impatient and gave it a try. Here is what I found:

You have to change your g-code to be X Y and not X Z as is normal for
lathes.

Don't set the AXES setting in the [TRAJ] setting to 2. If you do Xemc will
come up with the Z axis numbers in red and you can jog X and Y just fine,
but as soon as you try to gun a g-code program and it hits a linear move you
get an error something like "linear moves can't be made if beyond the
limit". After checking to make sure I was not beyond the soft limits for X &
Y and restarting EMC a few times it dawned on me what is happening. The red
numbers is the same thing you get when you hit a limit switch. Apparently,
EMC thinks you are against the limit switch for the Z axis.

Other than this it seems to work just fine after you reverse the direction
of movement of the X and Y axis in your ini file.
Yes, Fred and Matt Shaver have made some comments about parameterizing
the axis names. Most of the other info for each axis is already a parameter.
Also, you need diameter display, which I think can be a display-only
finction of the user interface.

Jon


Re: Linux vs. DOS

Jon Elson
 

Tim Goldstein wrote:

From: "Tim Goldstein" <timg@...>

I finally have made my first item using EMC!!!

If you want to check it out you can see it on my website at
Very cute! You should send one to Fred Proctor! I think it
would look nice on his desk!
<snip>

Here is a question for Matt or Jon or anyone else running EMC:
Is there a way to run the g-code through EMC's code interpreted without just
loading it in Xemc and running it? I found that if I tried running the code
with the my stepper controller turned off so I could crank up the feed rate
to just check the code more quickly I would get an error that would abort
the code referring to a "follow error" on an axis. If I ran the code with
the controller turned on I had no errors in this section of code, but it
took MUCH longer as I had to use realistic feed rates.
Hmm, you must have your encoders hooked up. What you can do is
build a 'demo' version of EMC, that has simulation code rather than
motion hardware code. In fact, you should have these programs and
scripts on your system. It will give you a quick check of a program,
but you'll still have the same problem of identifying WHERE the error
is. Fred is supposed to be working on a major revamp of this whole
area.


Now for some observations that may help others over the EMC learning curve a
little faster:
The enter key by your number pad and the enter key by your letter keys are
not equivalent in EMC. If you use your mouse to click on either the feed
rate or the feed override it pops up a window to enter a rate into, but to
get it to accept the rate and use it you have to use the enter key by your
letter keys. The one on the number pad will close the box, but your entry
disappears.
All this keyboard stuff is one of the biggest bags of worms in Linux. It has
to do with the huge variety of keyboards that have been made, and the wide
variety of keyboard scan codes they produce. All of this can be fixed in
the X-windows setup script, but it is not that easy to decipher the wrong
keycodes. There are a couple of utilities that tell you what keycodes and
scancodes are being generated by various keys.

EMC seems VERY picky about the g-code it will accept. The other controller
software product I was using will let you run most any code you throw at it
as long as you don't give it a code it doesn't handle. EMC seems to require
everything is exact. This is not a bad thing, but it does make the debugging
lengthy particularly in light of the fact that when it errors you have no
clue of the line that caused it.
I addressed some of this in a response to another message on this list.

On the plus side, my machine seems to run much smoother under EMC than on
any of the other softwares I have tried.
Yes, the smooth blending of any move into the next move, whether linear,
arc or helical, in any of the 3 planes, is tough enough that I shied away
from rolling my own CNC for exectly that reason. That's why a group
of guys spent a couple of years figuring all this out at taxpayer's expense!
Next time you pay your taxes, remember that that is also funding the
great guys like Will Shackleford and Fred Proctor who beat this path
through for us!

So, I can understand why Allen-Bradley and Fanuc have this, and
why Ah-Ha and Microkinetics might not.

Jon


Re: EMC & Linux

Jon Elson
 

Matt Shaver wrote:

3. Maybe there should be an _actual_ feed rate display to compliment the
_commanded_ feed rate display we have now. If we go to the "exact path"
motion control system this would show when the system is forced to decrease
the feed rate to keep acceleration within bounds.
My antique Allen-Bradley had this. The feedrate would actually ramp up and
down as moves started and stopped. This much activity isn't necessary
(the AB updated the screen at 100 Hz, same as the servo update rate and
the trajectory update). But, showing the rate it is actually going (at the plateau
of the trapezoidal velocity profile) would be nice. Of course, it now shows
the feedrate of the LAST move in the program, since the interpreter has
run to the end before I hit start!

Jon


Re: EMC & Linux

Jon Elson
 

Tim Goldstein wrote:

What I noticed was not that EMC wouldn't process the I & J format, but that
it seemed as if I had more errors than if I used the R format. Except for
very simple stuff I use Vector 7.0 to generate my g-code and what I found
was when I generated both styles off the same part there were far fewer
lines that errored with the R format. This could be an indication that
Vector's g-code algorithms are a little lacking when it comes to the I & J
style, but I never had a problem with it in DeskNC.
Yes, EMC is VERY picky about inside corners when using a cutter
radius offset. It is also very picky about extremely small errors in
matching the radius computed from the I and J words to the current
position and the new position specified in the X and Y words.
These things have to match to about .000001" or you get an error.


Despite having used the I & J format in the past I will admit that I really
don't understand it. It is my understanding that the X & Y values indicate
the destination position, but can you clue me in on what the I and J are
indicating?
To make an arc, you have to know not only where you started and
where you end, but also the radius. The I, J and K words are the distance
from the starting point to the center of the arc, in the X, Y and Z
axes, respectively. So, in your earlier question, the I and J words
give a set of coordinates for the center of the arc. Then, EMC compares
the length of imaginary lines from this center to the start and end points.
many CNC controls allow quite a bit of difference in these, and just fudge
it. EMC requires them to be really accurately the same length.

I found out that if you set the Acceleration too low, you get some odd
behavior. The move that is just ending slides to a stop slowly after the
next move starts. The ramping was working pretty good for my setup and I
kept running it lower and lower just to try it out. At
Acceleration set to
.05 it does this lazy motion thing. At .15 it looks ok. When I cut parts
I will check it for sure.
This is the blending of moves. It can be a problem when you make an X
move, then a Y move, as the Y move will start to ramp up when the X move
just begins to ramp down. But, for a string of short continuous moves describing
a fluid curve, you need this, or the machine will absolutely CREEP. (My
antique AB suffered from this.)
Maybe we should ask Fred Proctor for some sort of switch (either in
the RS-274 program (G-code) or on the user interface) to turn this
on and off.

Actually I had no problems running any code in lathe mode. Here is the few
lines I tried to run. It has small enough move you should have no problems
if you want to give it a try. It isn't anything special. It just turns a
shaft down to a number of steps with roughing passes and then has a finish
pass to complete it.
This is good news (although, really, except for some very small tricks like
wanting a diameter/radius display) the CNC really doesn't need to know
what it is moving - a Mill, a Lathe, or a robot. Oh, yes, then there is
the constant surface speed trick, where the spindle speed changes as
the cutter radius changes.

I agree on the program. I like what it has to offer a lot. I want to get a
better handle on how to use the cutter comp and I would like to find a way
to know what line it is that is failing on a program, but all in all it is a
far superior program to the DOS / Windows based items I have been using.
I believe Fred has something in the works that will make this a lot better.
Clearly, a real need.

Jon


Re: EMC & Linux

Matt Shaver
 

From: "Tim Goldstein" <timg@...>
Despite having used the I & J format in the past I will admit that I really
don't understand it. It is my understanding that the X & Y values indicate
the destination position, but can you clue me in on what the I and J are
indicating?
I and J are the coordinates of the center of the arc, I=X, J=Y. See my next
post for more on this.

<much other stuff cut>

I've got a lot to say about the rest of this stuff you're talking about, but
I'm slow at typing so I might break it down into a few separate replies. I'm
beginning to think we need audio/video/whiteboard type conferencing rather
than e-mail!

Matt


My mini-EDM system

Jon Elson
 

Since several people have asked for details of my mini-EDM
system, I have put together a couple pictures, and a drawing
of the power supply, with some text to describe how it
was set up and how it worked.

It is at :


If you have any questions, feel free to let me know.

Jon


Re: EMC & Linux

Tim Goldstein
 

Matt,
Sorry to hear you are still sick. It sure is a drag when you have things you
need to do.

-----Original Message-----
From: "Matt Shaver" <mshaver@...>
From: Fred Proctor
To: mshaver@...
Subject: Feed rate override and max feed rate
Date: Saturday, June 05, 1999 6:49 PM
I think the 60, 60, 60, 30 scenario is the correct one. The way this is
handled in other cncs is that the rapid traverse rate is greater than the
highest allowable _programmed feed rate_. Also, the feed override control
usually only goes up to 125%. For example, on a mill that rapids
at 150ipm,
the max feed rate you can program might be 100ipm which can be
increased to
125ipm with the feed override knob.

Some random ideas:

1. Add a MAX_PROGRAMMED_FEED_RATE parameter to allow setting up the
conditions described above. The writer of the .ini file could
always goof up
and allow MAX_PROGRAMMED_FEED_RATE x MAX_FEED_OVERRIDE > MAX_VELOCITY, but
the maximum actual velocity should never exceed MAX_VELOCITY.

2. Maybe there should be a "clipping" indicator when this error condition
happens.

3. Maybe there should be an _actual_ feed rate display to compliment the
_commanded_ feed rate display we have now. If we go to the "exact path"
motion control system this would show when the system is forced
to decrease
the feed rate to keep acceleration within bounds.
If anyone else has suggestions on how to handle this, speak up!
I would agree with the scenario giving 60,60,60,30 and also think you should
never be able to do anything that will cause the machine to try and move
faster than what is set in the MAX_VELOCITY parameter. I also think a window
that showed the actual rate you will get (programmed rate X override, not to
exceed MAX_VELOCITY) would be a handy addition. DeskNC offers this feature
and I found it handy.

There is a ./update script as well that I believe saves your customized
settings, but I've never used it. If you try it, let me know,
maybe I should too!
I tried the ./update script and as best as I could tell it didn't do
anything. It took only a second or two to run and gave a number of directory
not found messages. I don't know if the problem is that I am using the
directory structure as you suggested (/usr/local/nist) and it expected
everything to be at /usr/local/emc or whether it just does not work.

Here is what I tried first:
I put the emc-05-jun-1999.tgz file in the nist directory and did tar -xzvf
on it.
Then while still in the nist directory I did ./install and got the above
results.
I finally just did a ./install without a clean or anything and it looks like
it just overwrote all the existing source and library files and then
compiled everything without deleting any of my files that were in the emc
directory.

Don't know if this is the recommended method, but it seems like it did the
job.

Tim
[Denver, CO]


Re: EMC & Linux

Tim Goldstein
 

-----Original Message-----
From: Dan Falck <dfalck@...>

Tim,

I have been running EMC this week on a Sherline mill. I haven't made any
parts yet, but have been running the table to get a feel for it. On G02,
G03, cirular interpolation- I have been using I and J format with no
problem so far. Maxnc uses I's and J's, so I'm use to it now.
What I noticed was not that EMC wouldn't process the I & J format, but that
it seemed as if I had more errors than if I used the R format. Except for
very simple stuff I use Vector 7.0 to generate my g-code and what I found
was when I generated both styles off the same part there were far fewer
lines that errored with the R format. This could be an indication that
Vector's g-code algorithms are a little lacking when it comes to the I & J
style, but I never had a problem with it in DeskNC.

Despite having used the I & J format in the past I will admit that I really
don't understand it. It is my understanding that the X & Y values indicate
the destination position, but can you clue me in on what the I and J are
indicating?

I found out that if you set the Acceleration too low, you get some odd
behavior. The move that is just ending slides to a stop slowly after the
next move starts. The ramping was working pretty good for my setup and I
kept running it lower and lower just to try it out. At
Acceleration set to
.05 it does this lazy motion thing. At .15 it looks ok. When I cut parts
I will check it for sure.
I haven't tried going to settings that low, but it is good to know what type
of behavior to expect if you get it too low. Currently I have the
acceleration set to 0.8 and that seems to be working well. I am not sure
what the symptom would be for having it set too high, but it seems as if it
would be hard on the drive train (cogged belts in my case) to have the motor
try to hit top speed in too short a time.

What kind of problem did you have with the XZ motion with the lathe? Did
you set up a G18 (XZ plane) before trying to make a curve? I haven't tried
it myself yet. I will try it tommorrow.
Actually I had no problems running any code in lathe mode. Here is the few
lines I tried to run. It has small enough move you should have no problems
if you want to give it a try. It isn't anything special. It just turns a
shaft down to a number of steps with roughing passes and then has a finish
pass to complete it.

N10 F20
N11 G40
N12 G00 X3.559 Y-1.118
N13 G01 X3.559 Y-1.068
N14 X1.113 Y-1.068
N15 G02 X1.039 Y-1.118 R0.079
N16 G01 X1.095 Y-1.174
N17 G00 X3.559 Y-1.174
N18 G01 X3.559 Y-1.068
N19 X3.559 Y-1.018
N20 X1.118 Y-1.018
N21 X1.118 Y-1.039
N22 G02 X1.113 Y-1.068 R0.079
N23 G01 X1.168 Y-1.124
N24 G00 X3.559 Y-1.124
N25 G01 X3.559 Y-1.018
N26 X3.559 Y-0.968
N27 X1.118 Y-0.968
N28 X1.118 Y-1.000
N29 X1.118 Y-1.018
N30 X1.174 Y-1.074
N31 G00 X3.559 Y-1.074
N32 G01 X3.559 Y-0.968
N33 X3.559 Y-0.918
N34 X1.118 Y-0.918
N35 X1.118 Y-0.968
N36 X1.174 Y-1.024
N37 G00 X3.559 Y-1.024
N38 G01 X3.559 Y-0.918
N39 X3.559 Y-0.868
N40 X2.039 Y-0.868
N41 X1.118 Y-0.868
N42 X1.118 Y-0.918
N43 X1.174 Y-0.974
N44 G00 X3.559 Y-0.974
N45 G01 X3.559 Y-0.868
N46 X3.559 Y-0.818
N47 X2.113 Y-0.818
N48 G02 X2.039 Y-0.868 R0.079
N49 G01 X2.095 Y-0.924
N50 G00 X3.559 Y-0.924
N51 G01 X3.559 Y-0.818
N52 X3.559 Y-0.768
N53 X2.118 Y-0.768
N54 X2.118 Y-0.789
N55 G02 X2.113 Y-0.818 R0.079
N56 G01 X2.168 Y-0.874
N57 G00 X3.559 Y-0.874
N58 G01 X3.559 Y-0.768
N59 X3.559 Y-0.718
N60 X2.118 Y-0.718
N61 X2.118 Y-0.750
N62 X2.118 Y-0.768
N63 X2.174 Y-0.824
N64 G00 X3.559 Y-0.824
N65 G01 X3.559 Y-0.718
N66 X3.559 Y-0.668
N67 X2.118 Y-0.668
N68 X2.118 Y-0.718
N69 X2.174 Y-0.774
N70 G00 X3.559 Y-0.774
N71 G01 X3.559 Y-0.668
N72 X3.559 Y-0.618
N73 X2.118 Y-0.618
N74 X2.118 Y-0.668
N75 X2.174 Y-0.724
N76 G00 X2.174 Y-0.928
N77 X2.039 Y-0.928
N78 G01 X2.039 Y-0.868
N79 X1.118 Y-0.868
N80 X1.174 Y-0.924
N81 G00 X1.174 Y-1.118
N82 X3.559 Y-1.118
N83 G01 X3.519 Y-1.039
N84 G00 X3.519 Y-0.539
N85 G01 X3.401 Y-0.539
N86 X2.039 Y-0.539
N87 X2.039 Y-0.750
N88 G02 X2.000 Y-0.789 R0.039
N89 G01 X1.039 Y-0.789
N90 X1.039 Y-1.000
N91 G02 X1.000 Y-1.039 R0.039
N92 G01 X0.055 Y-1.039
N93 X0.111 Y-1.095
N94 G00 X3.519 Y-1.095
N95 X3.519 Y-1.039
N96 M2

I really do like this program so far. The fact that it is rewrote
constantly and the source is out there is kind of reassuring. I
am looking forward to being able to use it for the lathe and gang the
spindle to the
compound using encoders. I don't have servos yet, but someday I will bite
the bullet and get them.
I agree on the program. I like what it has to offer a lot. I want to get a
better handle on how to use the cutter comp and I would like to find a way
to know what line it is that is failing on a program, but all in all it is a
far superior program to the DOS / Windows based items I have been using.

I'm also with you on the servos. I have started talking with Jon Elson and
will be taking a look at building up his design. You may want to take a look
at it.

Tim
[Denver, CO]


Re: EMC & Linux

Tim Goldstein
 

-----Original Message-----
From: "Tim Goldstein" <timg@...>

I just checked the ftp server for EMC and there is a new build dated
June-5-1999 on the site. Don't know what it fixes, but I am downloading it
right now and will report back later.
Just had a few minutes to install the new build. I don't know all the fixes
or if they affect you servo guys, but this version has fixed the problem
with the DEFAULT_VELOCITY setting. What you enter in this parameter in the
[TRAJ] section of your ini file is now the feed rate that Xemc initializes
with. Also, the MAX_VELOCITY setting in the [TRAJ] section is working as the
feed rate you get for your "G0" rapid moves.

Tim
[Denver, CO]


Re: EMC & Linux

Matt Shaver
 

From: "Tim Goldstein" <timg@...>

I just checked the ftp server for EMC and there is a new build dated
June-5-1999 on the site. Don't know what it fixes, but I am downloading it
right now and will report back later.
Sorry, I forgot to tell you. I believe this fixes the problem of
DEFAULT_VELOCITY not affecting the default feed rate. It also may limit the
max feed rate to MAX_VELOCITY. Fred told me this on Friday, but I was sick
and my brain was clogged up so I didn't do any writing to the list and by now
I've forgotten the exact details. Fred also e-mailed a question to me today
on this same subject and I'm sure he wont mind my echoing it here as well as
my reply:

From: Fred Proctor
To: mshaver@...
Subject: Feed rate override and max feed rate
Date: Saturday, June 05, 1999 6:49 PM

Matt,

More detail than I left on your answering machine: consider this
example:

1. As set in the ini file, the max feed rate is 60 IPM and the max
allowable feedrate override is 200%.
1. You set the feed rate override to its max, 200%.
2. You MDI "G1 X10 F60", which moves the machine at 60 IPM despite the
200% feed rate override, since the max feed is set to 60 IPM.
3. You reduce the feed rate override to 150%, then 100%, then 50%.

What should happen? Should the feeds be 60, 60, 30, or should they be
45, 30, 15? In the first case the operator would be surprised that
reducing the feed rate override from 200% to 150% and 100% had no
effect. In the second case the operator would be surprised that at the
final 50% feed rate override and a nominal 60 IPM, the feed is actually
15 IPM.

What is your experience with other CNCs?

--Fred
I replied:
-----
I think the 60, 60, 60, 30 scenario is the correct one. The way this is
handled in other cncs is that the rapid traverse rate is greater than the
highest allowable _programmed feed rate_. Also, the feed override control
usually only goes up to 125%. For example, on a mill that rapids at 150ipm,
the max feed rate you can program might be 100ipm which can be increased to
125ipm with the feed override knob.

Some random ideas:

1. Add a MAX_PROGRAMMED_FEED_RATE parameter to allow setting up the
conditions described above. The writer of the .ini file could always goof up
and allow MAX_PROGRAMMED_FEED_RATE x MAX_FEED_OVERRIDE > MAX_VELOCITY, but
the maximum actual velocity should never exceed MAX_VELOCITY.

2. Maybe there should be a "clipping" indicator when this error condition
happens.

3. Maybe there should be an _actual_ feed rate display to compliment the
_commanded_ feed rate display we have now. If we go to the "exact path"
motion control system this would show when the system is forced to decrease
the feed rate to keep acceleration within bounds.

Sorry I didn't get your phone message earlier, I've been home most all day
but I left to go to Radio Shack when your message came in and I never looked
at the machine until I read your e-mail. The stepper control hardware is
progressing...

Thanks,

Matt
-----

If anyone else has suggestions on how to handle this, speak up!

When I do a software update, I usually:

1. Save run.emc (or whatever you've named your customized script), emc.ini
(ditto here), tool.tbl (tool data), and rs274ngc.var (the offsets). Also save
any other stuff you want to keep that is in or below /usr/local/nist/emc.

2. Go to /usr/local/nist and run ./clean which removes everything including
the emc directory.

3. Put the latest emc.tgz (whatever its name) in /usr/local/nist and
un-tar/zip it.

4. Run ./install to compile the new version.

5. Put back the files you saved in step 1.

There is a ./update script as well that I believe saves your customized
settings, but I've never used it. If you try it, let me know, maybe I should
too!

Thought I would take the opportunity to start a new thread name as the
original one of Linux vs. DOS has become just info and tips about setting
up
and using Linux and EMC.
A good idea! I'll start using it too.

Matt


Re: EMC & Linux

Dan Falck
 

Tim,

I have been running EMC this week on a Sherline mill. I haven't made any
parts yet, but have been running the table to get a feel for it. On G02,
G03, cirular interpolation- I have been using I and J format with no
problem so far. Maxnc uses I's and J's, so I'm use to it now.
I found out that if you set the Acceleration too low, you get some odd
behavior. The move that is just ending slides to a stop slowly after the
next move starts. The ramping was working pretty good for my setup and I
kept running it lower and lower just to try it out. At Acceleration set to
.05 it does this lazy motion thing. At .15 it looks ok. When I cut parts
I will check it for sure.
What kind of problem did you have with the XZ motion with the lathe? Did
you set up a G18 (XZ plane) before trying to make a curve? I haven't tried
it myself yet. I will try it tommorrow.

I really do like this program so far. The fact that it is rewrote
constantly and the source is out there is kind of reassuring. I am looking
forward to being able to use it for the lathe and gang the spindle to the
compound using encoders. I don't have servos yet, but someday I will bite
the bullet and get them.

Sincerly,
Dan Falck



At 07:25 PM 6/5/99 -0600, you wrote:
From: "Tim Goldstein" <timg@...>

I just checked the ftp server for EMC and there is a new build dated
June-5-1999 on the site. Don't know what it fixes, but I am downloading it
right now and will report back later.

Thought I would take the opportunity to start a new thread name as the
original one of Linux vs. DOS has become just info and tips about setting up
and using Linux and EMC.

Tim
[Denver, CO]


------------------------------------------------------------------------
Have you entered ONElist's "Grow to Give" program?

Deadline is June 19. Join now to win $5000 for your charity of choice.
------------------------------------------------------------------------
welcome to CAD_CAM_EDM_DRO@..., an unmodulated list for the
discussion of shop built systems in the above catagories.


EMC & Linux

Tim Goldstein
 

I just checked the ftp server for EMC and there is a new build dated
June-5-1999 on the site. Don't know what it fixes, but I am downloading it
right now and will report back later.

Thought I would take the opportunity to start a new thread name as the
original one of Linux vs. DOS has become just info and tips about setting up
and using Linux and EMC.

Tim
[Denver, CO]


Re: Linux vs. DOS

Tim Goldstein
 

-----Original Message-----
From: "Tim Goldstein" <timg@...>

Has anyone tried running a lathe using EMC? I have set up a 2 axis
configuration file on my machine and hope to give it a try this weekend.
Got impatient and gave it a try. Here is what I found:

You have to change your g-code to be X Y and not X Z as is normal for
lathes.

Don't set the AXES setting in the [TRAJ] setting to 2. If you do Xemc will
come up with the Z axis numbers in red and you can jog X and Y just fine,
but as soon as you try to gun a g-code program and it hits a linear move you
get an error something like "linear moves can't be made if beyond the
limit". After checking to make sure I was not beyond the soft limits for X &
Y and restarting EMC a few times it dawned on me what is happening. The red
numbers is the same thing you get when you hit a limit switch. Apparently,
EMC thinks you are against the limit switch for the Z axis.

Other than this it seems to work just fine after you reverse the direction
of movement of the X and Y axis in your ini file.

Tim
[Denver, CO]


Re: Linux vs. DOS

Tim Goldstein
 

I finally have made my first item using EMC!!!

If you want to check it out you can see it on my website at


In getting this g-code to run I have discovered another thing I wish EMC
would do. When it runs into an error in your g-code EMC pops up an alert
window telling you what the error is in terms that give you a hint at the
problem, but it resets your program at that point and gives you no
indication of the line that caused the error. The code for cutting this
little EMC sign I made was 572 lines long. So it was a little bit of a pain
to watch the program code as it flys by in Xemc and hope I was paying close
enough attention to catch the line number just before I hit an error. If
Fred could add the ability to display the line of g-code in the alert window
along with the error message debugging a g-code program would be 1000 times
faster.

Here is a question for Matt or Jon or anyone else running EMC:
Is there a way to run the g-code through EMC's code interpreted without just
loading it in Xemc and running it? I found that if I tried running the code
with the my stepper controller turned off so I could crank up the feed rate
to just check the code more quickly I would get an error that would abort
the code referring to a "follow error" on an axis. If I ran the code with
the controller turned on I had no errors in this section of code, but it
took MUCH longer as I had to use realistic feed rates.

Now for some observations that may help others over the EMC learning curve a
little faster:
The enter key by your number pad and the enter key by your letter keys are
not equivalent in EMC. If you use your mouse to click on either the feed
rate or the feed override it pops up a window to enter a rate into, but to
get it to accept the rate and use it you have to use the enter key by your
letter keys. The one on the number pad will close the box, but your entry
disappears.

EMC seems to want it's circular moves (G2, G3) to be entered in the format
using R and not I and J.
EMC seems to likes: N331 G03 X-2.309 Y-6.059 R.094
EMC seems to not like: N331 G03 X-2.309 Y-6.059 I-2.253 J-6.003
BTW, does anyone know of a way to easily figure out what a circular move in
the XYIJ format would be in the XYR format?

EMC seems VERY picky about the g-code it will accept. The other controller
software product I was using will let you run most any code you throw at it
as long as you don't give it a code it doesn't handle. EMC seems to require
everything is exact. This is not a bad thing, but it does make the debugging
lengthy particularly in light of the fact that when it errors you have no
clue of the line that caused it.

On the plus side, my machine seems to run much smoother under EMC than on
any of the other softwares I have tried.

Has anyone tried running a lathe using EMC? I have set up a 2 axis
configuration file on my machine and hope to give it a try this weekend.

Tim
[Denver, CO]


Re: Term: Mag Amp

Mike Chaney <[email protected]
 

Jon Elson wrote:

Sorry, old technology. Mag amp is short for a magnetic amplifier.
This goes back to WW-II, and certainly Korea.
A way of getting a lot of gain without much energy loss is to use a winding
of many turns of fine wire to drive an inductor into and out of saturation.
When the inductor is saturated, AC current passes through a winding
of a modest number of turns of heavy wire fairly easily. When the control
winding does not saturate the inductor, then the inductance blocks the
power flow through the power winding.
Ah! You mean a "saturable reactor". These were once the cutting edge
technology for stage lighting dimmers - until someone invented the
thyristor.

Mike


Re: Term: Mag Amp

"Ian W. Wright" <[email protected]
 

Thanks Jon.

Ian

Jon Elson wrote:

No. What is similar to the low voltage winding of a mains transformer
would be put in series with the AC output of the real mains transformer,
Best wishes

Ian

--

Ian W. Wright LBHI
Sheffield Branch Chairman of the British Horological Institute.
Bandmaster and Euphonium player of the Hathersage Brass Band. UK.
See our homepage at:- or
or


'Music is the filling of regular time intervals with harmonious
oscillations.'


Re: Term: Mag Amp

Jon Elson
 

"Ian W. Wright" wrote:

From: "Ian W. Wright" <Ian@...>

Thanks Jon but let me just get it clear. Are you saying that if you put,
say, the high voltage winding of a mains transformer in series with the
low voltage motor, it will boost its starting torque?
No. What is similar to the low voltage winding of a mains transformer
would be put in series with the AC output of the real mains transformer,
before the rectifiers. This would lower the current flowing through the
rectifier, and bring down the DC voltage at the capacitors after the
rectifier.

So, the mag amp goes into the power supply, and is not connected
to the motor. Also, a mains transformer would likely make a poor
mag amp. Special magnetic laminations much different from ordinary
transformer iron would be used. Also, the control winding would
be wound with LOTS of turns of fine wire, to minimize power
demand to saturate the iron.

I hope this helps clear it up. Anyway, there are much better ways
to do this, today. A chopper-type stepper drive is cheaper,
more efficient, probably more reliable, more responsive, a
LOT smaller and lighter, etc.

Jon


Re: Term: Mag Amp

"Ian W. Wright" <[email protected]
 

Thanks Jon but let me just get it clear. Are you saying that if you put,
say, the high voltage winding of a mains transformer in series with the
low voltage motor, it will boost its starting torque?

Ian

Jon Elson wrote:


From: Jon Elson <jmelson@...>

"Ian W. Wright" wrote:

From: "Ian W. Wright" <Ian@...>

Sorry to seem so dim but what, pray, is a mag amp?

The trick Bridgeport uses (pretty tricky, but not original) is to use a mag
amp on the AC input to the rectifier.
Sorry, old technology. Mag amp is short for a magnetic amplifier.
This goes back to WW-II, and certainly Korea.
A way of getting a lot of gain without much energy loss is to use a winding
of many turns of fine wire to drive an inductor into and out of saturation.
When the inductor is saturated, AC current passes through a winding
of a modest number of turns of heavy wire fairly easily. When the control
winding does not saturate the inductor, then the inductance blocks the
power flow through the power winding.

Jon

------------------------------------------------------------------------
Have you entered ONElist's "Grow to Give" program?

Deadline is June 19. Join now to win $5000 for your charity of choice.
------------------------------------------------------------------------
welcome to CAD_CAM_EDM_DRO@..., an unmodulated list for the discussion of shop built systems in the above catagories.
--
Best wishes

Ian
--

Ian W. Wright LBHI
Sheffield Branch Chairman of the British Horological Institute.
Bandmaster and Euphonium player of the Hathersage Brass Band. UK.
See our homepage at:- or
or


'Music is the filling of regular time intervals with harmonious
oscillations.'


Term: Mag Amp

Jon Elson
 

"Ian W. Wright" wrote:

From: "Ian W. Wright" <Ian@...>

Sorry to seem so dim but what, pray, is a mag amp?

The trick Bridgeport uses (pretty tricky, but not original) is to use a mag
amp on the AC input to the rectifier.
Sorry, old technology. Mag amp is short for a magnetic amplifier.
This goes back to WW-II, and certainly Korea.
A way of getting a lot of gain without much energy loss is to use a winding
of many turns of fine wire to drive an inductor into and out of saturation.
When the inductor is saturated, AC current passes through a winding
of a modest number of turns of heavy wire fairly easily. When the control
winding does not saturate the inductor, then the inductance blocks the
power flow through the power winding.

Jon