I actually wonder why the controller must have modes at all.

The only thing really important is if it is busy it must finish.

ie if it's busy running an MDI command it can't jog

If it's running a program it can't MDI

etc

Traditionally NC machines separated these modes with a switch.

I don't see why we need to do that any more.


If the controller is idle it should be able to do anything.

This would leave it to the UI/user to decide whats allowed when.


UIs have been working around this problem for  a very long time.

Ie touchoff is an MDI command which is quite obviously a manual

mode command.


Chris M

________________________________
From: Kurt Jacobson <kurtcjacob...@gmail.com>
Sent: December 4, 2017 7:27 PM
To: EMC developers
Subject: Re: [Emc-developers] Mode switching bug

Any UI that wants to work well with wheel jogging has to find some way of
setting the task_mode
back to manual after each MDI command, and as we have seen that is not
trivial to do without
breaking external programs that issue MDI commands. In fact, I do not think
it is an overstatement
to say that so far *nobody* has managed to make both wheel jogging and
external  MDI commands
work satisfactorily at the same time.

Since all UIs suffer from this problem, it seem like instead of each UI
using some kind of work
around, this problem might should be solved at a lower level.

I have no idea what MDI mode actually does internally, but from a practical
user perspective, I can't think
of any time were there is a need for LCNC to remain in MDI mode after
issuing an MDI.

As far as I can tell most UIs that work well with wheel jogging employ
something like the following pseudo code:

def issue_mdi(cmd):
    set_mode(MDI)
    issue_mdi(cmd)
    set_mode(MANUAL)

while(True):
    if not mode_manual and is_idle:
         set_mode(MANUAL)

So basically the UI ensures that LCNC is not in MDI mode unless it it
actively issuing an MDI command, which
essentially is the same thing as not having an MDI mode at all (from the
users perspective). So what if instead
of making each UI have to handle switching back to manual mode this is done
elsewhere. For example `command.mdi()`
could switch LCNC to mdi mode, issues the command, and then switched back
to manual.

It seems like something like this would make life simpler for the UIs ...

Cheers,
Kurt


On Mon, Dec 4, 2017 at 11:43 AM, Kurt Jacobson <kurtcjacob...@gmail.com>
wrote:

> On Mon, Dec 4, 2017 at 10:54 AM, Rene Hopf <reneh...@mac.com> wrote:
>
>>
>> > On 4. Dec 2017, at 16:14, Les Newell <les.new...@fastmail.co.uk> wrote:
>> >
>> > This is master as of a couple of months ago. I'd rather not install the
>> patch because I want it to switch back to manual after MDI.
>>
>> the patch should still allow you to do that. thats why I asked you to
>> test.
>>
>
> I am afraid not. Dewey's branch does not switch back to manual after an
> MDI, at least in my tests.
>
>
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to