EMC Block Diagram





All these recent discussions about running EMC on remote
computers, running DOS computers to offload the realtime
parts of EMC, and so on have pointed out a serious problem:

We really need a block diagram that shows how EMC works.

The only ones I have seen are in the handbook, and look
like this:

http://linuxcnc.org/handbook/intro/images/whatstep1.gif
http://linuxcnc.org/handbook/intro/images/whatpc.gif

"whatpc.gif" is nowhere near detailed enough, especially
in the realtime area.  The single block labeled "Motion
Control Routines" is actually at least two, (maybe three)
independent real-time threads, running at different
speeds and doing different tasks (Motion planning, servo
loops, and step generation).

Some of the ideas mentioned lately seem to reflect a lack
of understanding of how the program works, what parts of
it are fine as they are, and what parts could benefit from
hardware assistance.  I'll be the first to admit that
I don't know enough myself about the inner workings of EMC.
I know that step generation is really fast hard realtime.
Servo loops are fairly fast hard realtime.  Motion planning
is also hard realtime, or at least I think it is.  Beyond
that, I don't know which functions are implemented in real
time tasks, and which ones are implemented in normal Linux
tasks, nor do I understand the inter-task communications,
except to know that NML plays a big role.

I'll volunteer to make the drawing.  I use EasyCad, and
can post DWG, DXF, postscript, and bitmap  (gif or png)
files.  For now, I'll post on my website.  Hopefully
when the drawing is finished, it can go on linuxcnc.org
or in the handbook.

I think I have a decent understanding of the real-time
stuff, but I understand nothing about the GUI, NML, and
higher level code.  I also don't understand the actual
details of the real-time code - which modules perform
which tasks for instance.  I'll make a first pass
this weekend, then post it.  I need someone, or several
someones, to volunteer to correct my mistakes and fill
in details.

I'd like to make real progress on this before NAMES.
Having a good block diagram to point at might make
conversations easier.  NAMES will also be a great
opportunity to make corrections and improvements to
the drawing.


John Kasunich







Date Index | Thread Index | Back to archive index | Back to Mailing List Page

Problems or questions? Contact