Am 20.10.2011 um 20:20 schrieb Kirk Wallace:

> 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

>> 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?

I dont know wether they've been moved. What I meant to say: the current tool 
table 
is limited in several ways. First, it has a fixed layout and the whole table 
needs 
to fit into an NML message, or emcStatus. Second, laying out the table 
differently 
depending on the toolchanger type is really bad. Third, using a private 
property 
of a given toolchanger mechanism (a 'pocket') as an index into that - changing 
- table
is a really bad idea. Last, swapping entries in the table around is a bad idea. 
The whole
arrangement violates every rule in Data Modeling 101. And all those assumptions 
are littered 
throughout the code. Iocontrol is just the ice block about which one stumbles 
first
when looking at the problem. 

Just think through a random single idea, like for instance tool wear 
management, and 
think through what would be impacted. It is truly repelling.

Some of this is bad design, and some of it comes from NML limitations, which in 
turn
origin from its realtime properties.

However, much off the stuff which righfully would  belong to a world model, and 
would not fit the limited, compile-time defined space of emcStatus, not 
necessarily has to be hard realtime (like in the stepgen sense), and hence no 
need for 
early binding as in C/NML. Look at tool interactions. Very slow. 
User interface parameters - detto. 'Relaxed realtime' at most.

Look at HAL - a stunning success IMO. It uses late binding (via HAL) - 
components 
glued together with an interpreted language. How many folks would use EMC if 
the 
hardware layer were 'C adaptable'? So its safe to say much, if not most of 
EMC's 
success stems from its HAL layer configurability. 

The underlying theme is a constant - look outside EMC: Find a single successful 
software product which does NOT have any user extensibility/scripting/plugin 
mechanism. 
I can't think of one.

It's a funny mixture. Some parts of EMC are incredibly well done, and the whole 
thing 
sits on a foundation which is severly botched in some respects.


> 
>> 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?

No, there's no reason for that. Plus, I have just one life;-). 

What I'm proposing is an effort to fix the world model, and at the same time 
deploy 
a mechanism which is late binding and not size limited for all the stuff which 
does not rightfully belong into a hard realtime straightjacket. 

I'm currently looking into redis, which looks promising. But see below.

> 
> environments or even on a network. It seems EMC2 might benefit greatly
> by optimizing it for a single computer/user hobby shop context.

You're posing a very valid question, which I've raised as well but was unable
to get an answer or opinion which would be reliable enough to base a design 
decision on. 

Depending wether the answer on this is yes or no, the effort to remove some 
of EMC's limitations is VERY different, so it is an important question and one 
which
we should have consensus going forward, also looking at support impact.

That said, I'm currently thinking along the - more complex - distributed 
solution.
A shared memory approach with a late binding world model would have much less 
code impact.


> 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.

This reflects my perception 1:1. 

But this is too important a point to discuss on the subject 'spindle orient 
support'.

- Michael











------------------------------------------------------------------------------
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