On Wed, 2011-10-19 at 21:24 +0200, Michael Haberler wrote:
> Am 19.10.2011 um 19:38 schrieb Kirk Wallace:
> 
> > On Wed, 2011-10-19 at 18:08 +0200, Michael Haberler wrote:
> > ... snip
> >> Because it modifies spindle state, and interacts with spindle motion
> >> commands, all of which are in motion. The contortions to do the same
> >> semantics in, say, iocontrol would have been substantial, for no
> >> benefit I could see.
> > 
> > Thinking aloud some more. My guess is, motion should be were realtime
> > and coordinated movement functions should live, basically axis stuff.
> > iocontrol should hold non-realtime user functions. On the surface, a
> > spindle seems to be a user function, Speed, On, Off, Brake, except for
> > the fancier features like CSS, threading, tapping, etcetera, so I can
> > better see having it in motion.
> 
> I understand your structural argument, but personally I dont see the upside -
> resource use of spindle related commands is likely a non-issue. 
> I do see some potential for new synchronization issues.

In trying to understand more, I looked up the diagram of EMC2's basic
parts:
http://wiki.linuxcnc.org/emcinfo.pl?EMC_Components 
http://wiki.linuxcnc.org/uploads/EMC_Control_LG.gif 

I don't see iocontrol or io on the diagram, but I assume that it is or
they are EMCIO or contained within it. Until recently all of the spindle
features where non-realtime and uncoordinated like flood, but that seems
to have changed. Maybe spindle could be a new joint type in EMCMOT, as
well as leave the dumb spindle in EMCIO.


... snip
> ok, so what does iocontrol do? wiggle some pins, and 'manage' the tool table. 
> 
> Does it do any meaningful action which does warrant a separate process (eg. 
> so things can run in parallel)? No, it doesnt. Does it make the tooltable
> handling better if it is in a separate process? No, to the contrary it is
> one of the major boat anchors wrt tool handling in EMC.

>From my limited view, EMCIO or iocontrol is just a place to put
non-realtime functions. You hint that, for instance the tool table,
functions have been moved from a more natural container. Which would
that be?

> That trivial functionality is bought with gobs of inflexible and size-limited
> NML messages and a separate process with its own set of synchronization 
> problems.
> (e.g hang on abort). All it really is is a HAL I/O device with tooltable 
> hardship thrown in.

Are you saying you want to git rid of NML?

> I understand iocontrol had different functionality over time, so I'm sure it 
> was warranted 
> at some point, so I'm not blaming anybody here. Note that I'm not alone with 
> my view - 
> micges took a viable stab at the same issue:
> (see 
> http://git.linuxcnc.org/gitweb?p=emc2.git;a=shortlog;h=refs/heads/iotask_remove).
> 
> My angle on this is that removing iocontrol necessary, but not sufficient in 
> itself to really
> improve tool handling in EMC. The other part is work on the world
> model, where 'world' translates into 'shared by all processes, even if 
> remote', and 
> 'not limited by the NML funnel'. The upside is not limited to tool handling 
> btw. UI's
> would benefit a lot. Consistency between task and UI G-code interpreter 
> instances
> would benefit a lot.

I thought this was why NIST created NML, to allow for integration of
manufacturing functions of all kinds.

> To give an idea how EMC without iocontrol would work: I've experimentally 
> removed it 
> and replaced its methods (basically the task/iocontrol NML interactions) by 
> Python methods with same functionality. All that's left of iocontrol is a 
> Python 
> class running in task, of some 400 lines which look remotely like so: 
> http://git.mah.priv.at/gitweb/emc2-dev.git/blob/refs/heads/remapping-preview-1:/configs/sim/remap/iocontrol-removed/python/customtask.py
> 
> No separate process, no NML, no sync issues, no deadlocks, hence easier 
> debugging
> and IMO a lot more flexible than what we have now. See my point?

Not yet, but that is my fault. To take a more anti-NML approach, it
might be argued that extremely few EMC2 machines are in production
environments or even on a network. It seems EMC2 might benefit greatly
by optimizing it for a single computer/user hobby shop context.

> 
> --
> 
> wrt the second issue - work on the world model: I have a plan on how to do 
> this, 
> but have nothing to show yet, and this is the reason why my remapping 
> branch still has the existing NML-based tooltable mechanism, despite the 
> experiment in
> removing iocontrol.
> 
> It's just that I havent seen that work item on the EMC road map (ha!).  
> Personally
> I'd prefer to work on something which there is consensus on that it's 
> desirable 
> to do, and get accepted provided its not broken. 
> But at that point I'm in the dark here.
> 
> - Michael

A few years back, I made a comment on how it seemed impossible to get
more than one person to collaborate on a shared goal. After prodding a
bit, I seem to recall the response I got was that each developer
preferred to work pretty much alone. I'd prefer to see more structure to
the project, but then I suppose that might take many people out of their
comfort zone and that is what a day job is for. It's a bit unnerving to
think that if a relatively few people decided that EMC2 wasn't fun
anymore, I could find myself with a shop full of CNC machines that won't
work, but it is what it is.

-- 
Kirk Wallace
http://www.wallacecompany.com/machine_shop/
http://www.wallacecompany.com/E45/index.html
California, USA


------------------------------------------------------------------------------
The demand for IT networking professionals continues to grow, and the
demand for specialized networking skills is growing even more rapidly.
Take a complimentary Learning@Cisco Self-Assessment and learn 
about Cisco certifications, training, and career opportunities. 
http://p.sf.net/sfu/cisco-dev2dev
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to