Hi,

----- original Nachricht --------

> What you want to do is look at emccanon.cc and canon.hh (located in 
> emc2/src/emc/task and emc2/src/emc/nml_intf if my memory serves me right).
I have been looking at them a few hours ago as i took a look at the stant alone
parser compiled from the rs274ngc part of emc1. 

> Those are the canonical calls that get called after the interpreter analyzed
> the g-code.
Yes, but they are before any path planning takes place. I love my usb gadgets
t be as cheap and simple as possible and in my scenario i don't think it's
necessary to do the actual path planning in the device. The PC has much more
power to do this and can send the results to the interface.

> So you'll send things like STRAIGHT_TRAVERSE or LINEAR_FEED to the 
> microcontroller.
These won't be a problem, but i'll also see ARC_FEED and the like and that will
be too much for a simple microcotroller. 

>  - you need at least from time to time feedback from the motion controller 
> (machine hit a limit, various error things, etc)
Agreed

>  - the USB side needs to buffer the commands that come from task (they can 
> be quite many on programs with small segments, etc)
Yes

>  - you need to implement the "motion controller" on the USB device (which 
> you'll have to do no matter what approach you take, be it emc or something 
> else).
Why can't the PC do this and forward a whole bulk of "do one step here and then
one step there and after this time do a step there" commands to the interface?

> It might be that the current buildsystem is scary for newcomers, but it 
> wouldn't be _that_ hard to remove all realtime stuff from it (for example 
> emc2 builds for non-RT systems using --enable-simulator). That might be a 
> good place to start.
Yes, in fact that's why i asked in the first place. The simulation shows that 
everything
can be done in non-real-time-userspace. And the simulation can probably 
accelerated
to insane speed meaning that alle machanisms to generate the "step by step" 
information
fast than real time already is there. 

> not quite true, see my description above, and I can provide more indepth 
> info if you need it.
I'll take a look at it. Thanks for that offer.

> it's not a control loop in the traditional way, but there are things which 
> are supposed to go back and forth.
> for example the motion controller reports the current position, which gets 
> displayed in the GUI.
My suggestion basically only is: Don' t run the motion controller at a rate 
provided by the real time kernel, but have it run as fast as possible and
have it stalled by the usb layer being stalled having its buffer filled up.

> well, the problem with EMC is that it's not a single loop, there are various
> interconnected ones, so it won't be a 2-hour hack job to make it work.
> The most likely loop you want to embed is inside emc2/src/emc/motion (of 
> course stripping half of what is there, that you don't need).
Thanks, that's exactly the info i wanted.

> that depends how you implement it. If you want to implement the motion 
> capabilities inside de USB controller,
> und use the remaining EMC for the interpreter, GUI and IO control, then I 
> think it's fine..
Hmm, as it said before i'd love to have the PC doing the complex motion 
planning.

Till



-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to