On Mon, 2009-03-02 at 14:20 -0600, forget color wrote:
> > There are G250/G251 drives from Gecko, which might appear superior
> to
> > Xylotex.
> > Considering your need of high customization, G540 (break out board +
> 4 x G250) will not suit you.
> 
> Thanks for the response. Could a tool changer be thought of and/or
> used as a '4th axis'? I would normally think of a 4th axis as
> rotation of the cutting bed or something like that, but can one setup
> emc to think of the 4th axis as anything (including tool changing)?
> If so, then the 540 brb might work (or, for that matter, the Xylotex
> 4-axis kit). I don't expect to need anything else that moves.
> Although maybe tool changing could require more than one motor?
> 
> > You probably should look how tool changers are implemented.
> > Imaging a wheel with small rings, holding brushes.
> 
> That's a nice idea. I was thinking of starting with something as
> simple as possible. For example, setting down brushes in wells (that
> are in fixed locations) designed to hold them, and picking them up as
> needed. Although the more I think about this the more complicated it
> gets.
> 
> > However, your mail makes me think that you are going to deal with a
> > problem that plotters do not have, paint drip.
> 
> Indeed, but for me this is a good thing, not a bad one :)

Some basics that come to mind are:

Normally a "tool change" is invoked by an M6 g-code in the file that
contains the codes to make your "part". The M6 changes to the tool that
was called for from the last T code called at the time the M6 was
called, so you can have more than one tool called but only the last one
before the M6 really counts. Depending on the machine, the T code will
do what is necessary to get the appropriate tool ready for a change. The
M6 puts the tool in the spindle or tool holder. When EMC2 gets to a Tx
code in your g-code file, it sets a signal "iocontrol.0.tool-prepare",
then EMC2 waits until it gets the okay to go ahead by having the signal
iocontrol.0.tool-prepared set. Most of the time, the default EMC2
configuration (somesuch.hal) has something like this:

...
# create signals for tool loading loopback
linkpp iocontrol.0.tool-prepare iocontrol.0.tool-prepared
linkpp iocontrol.0.tool-change iocontrol.0.tool-changed
...

In the above example, when the prepare signal gets set (Tx), it
immediately sets the prepared signal which tells EMC2 that the tool is
prepared. When the change signal gets set (by M6), it immediately sets
the changed signal, which tells EMC2 that the tool change is complete.
This works for situations where nothing needs to get done in order to
prepare or change the appropriate tool. For machines with tool carousels
or similar device, a tool is prepared by indexing it to a location where
the tool change occurs. The tool is changed by placing the tool in a
spindle or tool holder. For this, the prepare, prepared and change,
changed signals need to be disconnected and reconnected to custom
prepare and change scripts or programs. The prepare script watches
"prepare" and when it sees that it is set, it completes a tool prepare
procedure. When completed, it returns by setting the "prepared" signal.
The tool change does the same thing with the change signals. Here is a
Mazak example:

...
# ioControl exports some tool pins 
# iocontrol.0.tool-prepare
# iocontrol.0.tool-prep-number
# and expects iocontrol.0.tool-prepared (when the tool prep. is done)
# iocontrol.0.tool-change (output)
# and expects iocontrol.0.tool-changed (when tool changed)
# it also exports iocontrol.0.tool-number, which is the current tool
# in the spindle and is used when its time to return that tool to
# the tool magazine
newsig tool-prepare bit
linksp tool-prepare iocontrol.0.tool-prepare
newsig tool-prepared bit
linksp tool-prepared iocontrol.0.tool-prepared
newsig tool-change bit
linksp tool-change iocontrol.0.tool-change
newsig tool-changed bit
linksp tool-changed iocontrol.0.tool-changed
newsig tool-requested-number s32
linksp tool-requested-number iocontrol.0.tool-prep-number
newsig tool-current-number s32
linksp tool-current-number iocontrol.0.tool-number
...
linkps classicladder.0.in-25 tool-requested-match 
linkps classicladder.0.in-26 tool-prepare
...
linkps classicladder.0.out-20 tool-prepared 
linkps classicladder.0.out-21 tool-changed
...
linksp tool-change tristate-bit.0.enable
...

Not the best example, but you can see that prepare(d) and change(d) are
redirected to their respective scripts, using Classic Ladder in this
case. (this uses the older newsig/link .hal file format, the net command
is the preferred form)

This brings me to your brush tool situation. The prepare and change
scripts can not invoke axis motion because axes movement is suspended as
soon as M6 is set, so axes like movements cannot be used for classic
tool changes. For M6 Tx changes, your custom script will typically be
limited to setting and resetting signals or pins in sequence.

If you need axes motion control for your tool change, typically, you
would need to create g-code subroutines, which you would insert into
your part g-code files as needed. For example, to change a pen in a
plotter, all that might be needed is to move the pen holder into and out
of a pen park location (toggle). Each pen unload and load would be two
g-code subroutines of X and Y movements. You can also set/reset pins
with g-code (M62-65) so if you have a solenoid activated gripper, this
could be used. Conditional control could be handled with g-code O (Oh)
commands.

I have left out some details, and I may not be accurate on others, but
this should give you some issues to research.
-------
Kirk
http://www.wallacecompany.com/machine_shop/




------------------------------------------------------------------------------
Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, CA
-OSBC tackles the biggest issue in open source: Open Sourcing the Enterprise
-Strategies to boost innovation and cut costs with open source participation
-Receive a $600 discount off the registration fee with the source code: SFAD
http://p.sf.net/sfu/XcvMzF8H
_______________________________________________
Emc-users mailing list
Emc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-users

Reply via email to