Re: Automatic tool changing ?





Max Heise wrote:

> Hello list,
>
> does anyone know just how to achieve this with emc ?
> What I want to do, is having emc give me a signal on some pin when I select a
> tool, either by a T or M command ( I could always parse the NC program with
> perl and change everything as needed). 3 pins, maybe on an additional parport
> or a servotogo card could provide 8 different states, from 000 to 111, that
> would be 7 tools plus 000 for no tool selected. Has anybody done this or what
> would have to be changed (by me...)

Well, I don't think this is completely implemented.  but, there are c++ routines
in there now for xxToolChange.cc and such, that add some new states and
variables to EMC.  These routines are really just empty shells for you to fill
in the specific code to do what you need.  You need to figure out what
I/O bits you'll reserve for these functions, and make sure no other code
will touch them.  Then, you can build a little table to map the bits the
way you want, and code the requested tool into binary bits to be sent
out on the I/O.  I'm not sure how you handle the wait until the new tool
is in place.  The two possibilities are that the routine returns only when
it has received the signal that the new tool is in and the spindle is ready.
I would guess that it might be more likely that the tool change program
needs to send an NML message to pause, then it may need to jog the
spindle to some specific Z coordinate (the home position would be a good
one for tool change)  accomplish the tool change by manipulating the
external I/O bits, and then wait for a completion signal from the
tool changer.  When it gets that, it can then send a continue NML
message to get the program to continue.  Hmmm, this may pose a
problem, in that the interpreter won't let you do a jog in the middle of
a program.  So, unless the program contained the G-code to move the
spindle to the tool change position, I don't know if you could move
it there from within the tool change routine.

Anyway, I think you really need 5 I/O lines, 3 to select the tool, 1 to
command tool changes, and one to sense tool changer status.  I think
just sending out the 3 tool # lines would lead to a lot of tool changer
cycles that were not really needed, when programs are aborted, etc.

Jon




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

Problems or questions? Contact