Tool Length Offsets in EMC

More
22 Apr 2010 22:00 - 22 Apr 2010 22:02 #2653 by ewlsey
I am using this post to support an email to the mailing list.


Tool length offset in EMC2

I am hoping that I can make this more clear. EMC is functioning correctly. However, the functionality does not conform to the industrial CNC control standard. The methods described below are for a vertical mill, other machines and configurations will work in a similar manner.

For the purposes of this discussion:
Absolute Coordinates = the position of the machine with respect to its home position for any given axis
Relative Coordinates = the position of the machine with respect to the currently active work offset (G54, G55,....G59.3)

The current EMC method for setting up tool length offsets by "touching off" works as follows:

1) A tool is loaded into the machine (M6 T1) in MDI mode.
2) That tool is jogged to some know location on the machine (usually the location of the desired active work offset).
3) Using the "touch off" commands in Axis, the machine records the current position relative to the active work offset and enters this value into the tool table as the tool length. The value in the tool table ensures that the tool height offset for the current tool with be correct for the active work offset.
4) Additional tools are added using the same method.

Why this is good:
-If the tools are touched off relative to the work piece, then having G54 active and touching off tools relative to G54 causes no problems, and saves a step (more on this later).
-This also allows one work offset to be designated for tool setting (G59 could be used for the location of an automatic tool setter for instance)

Why this is a problem:
-If tools are setup on the table or some fixed machine position, and the G54 Z coordinate has been changed since the tool table was originally loaded, any new tools added to the table will now "touch off" relative to the new G54 Z coordinate, and the tool lenght will be wrong by the amount that the G54 Z coordinate has changed.


The method used by most industrial controls (Fanuc, Haas, Fadal, etc.):

1) A tool is loaded into the machine (M6 T1) in MDI mode or using a built in utility.
2) That tool is jogged to some know location on the machine (usually a sliding gauge block or tool length probe). Using the tool table in the control, the active tool is selected, and a measure command is used to record the current ABSOLUTE Z axis position which is then entered as the tool length by the control (you can then add in the height of the gauge being used if you like). Tool 1 would have a "length" of -220 according to the figure.
3) Additional tools are added using the same method at the same gauge location. Tool 2 would have a "length" of -210 according to the figure.
4) After the tools are set, one tool is chosen to set the work offsets by "touching off" (any tool will work as long as its length offset is active).
(See included figure)

Why this is good:
-Tool length measurment is done independently of any active work offset, changing offsets will not impact the ability to add or change tools in the tool table.
-As long as tools are measured from the same know location on the machine, the tool setting method will always be the same. The operator does not need to know which work offset was active when the tools were originally set. The tool table only needs to know the DIFFERENCE in length from one tool to another, so this method is prefectly adequate.
-If a tool breaks, a replacement can be set up without concern for the work offsets. This is important if the tools were set using the top of the work like one would do with EMC now. If machining were to be done on the top of the work and a tool broke, a new tool could not be set using the top of the work as a reference, because this surface was machined away.

Why this is bad:
-The only problem is that this is not the current EMC method, and changing this behavior may inconvenience some users.
-Most popular controls can be changed to set tools like EMC by changing a control preference, this is rarely done.


Where do we go from here?

It would be great to have the Axis interface enhanced to add an option to touch off the tool lenght using ABSOLUTE coordinates. This could be a simple radio button available when the "tool table" touch off is active. This way users could set tool lengths using RELATIVE or ABSOLUTE coordinates. There are a number of possible work arounds for this issue, but a simple enhancement to Axis would eliminate that need.

The current EMC method works, but is very confusing to those migrating from more popular controls, and is very poorly documented. Setting tool lengths relative to the current work offset is unexpected behavior for a CNC control. If we wish to expand the use of EMC, it seems only logical that we would want to standardize its behavior with the industry standard (I have never seen another control setup to work like EMC currently does). I have no doubt this can be done without losing any current functionality. This is just a new option.

Thanks
-Wes
Attachments:
Last edit: 22 Apr 2010 22:02 by ewlsey.

Please Log in or Create an account to join the conversation.

More
22 Apr 2010 22:04 #2654 by ewlsey
Figure
Attachments:

Please Log in or Create an account to join the conversation.

More
23 Apr 2010 11:34 #2657 by BigJohnT
You can do it either way in Axis. I touch off all my tools a known distance from the spindle face so I can add or change tools to my turret at will. All you have to do is make sure no offsets are in effect when you set up your tools.

Any help with the documents is welcome.

John

Please Log in or Create an account to join the conversation.

More
24 Apr 2010 00:53 #2663 by ewlsey
BigJohnT wrote:

All you have to do is make sure no offsets are in effect when you set up your tools.


John


I don't know of anyway in EMC to work without an active offset. G53 can move in absolute units, but does not allow you do anything else. On some controls G53 cancels the work offset and is modal, EMC is not set up like this.

Please Log in or Create an account to join the conversation.

More
24 Apr 2010 05:19 #2666 by umerov
Maybe there are some who have some ideas to make so that when changing a tool (Tn M6), after I change the instrument, it moved to fixed absolute position of probing sensor and measured their offset in absolute coordinates.

In the examples EMC2 is an example of measuring the offset of cutters, but I would like this to take place automatically at each call Tn M6 without interfering in g-code program

Maybe this can be done with Classic ladder and HAL?

P.S. sorry for my bad English

Please Log in or Create an account to join the conversation.

More
24 Apr 2010 11:35 #2669 by BigJohnT
ewlsey wrote:

BigJohnT wrote:

All you have to do is make sure no offsets are in effect when you set up your tools.


John


I don't know of anyway in EMC to work without an active offset. G53 can move in absolute units, but does not allow you do anything else. On some controls G53 cancels the work offset and is modal, EMC is not set up like this.


You always work with an active offset but when setting the tool table you want it to be equal to the machine coordinate system.

linuxcnc.org/docs/2.4/html/gcode_main.ht...:G10:-Set-Coordinate

and yes all controls are different and no one control follows any standard past G0 and perhaps G1 on some controls.

The beauty of EMC2 is you can change to to be anything you like by downloading the source code and modifying it to be like the control your familiar with.

John

Please Log in or Create an account to join the conversation.

More
24 Apr 2010 14:53 - 24 Apr 2010 14:58 #2675 by ewlsey


You always work with an active offset but when setting the tool table you want it to be equal to the machine coordinate system.

linuxcnc.org/docs/2.4/html/gcode_main.ht...:G10:-Set-Coordinate

and yes all controls are different and no one control follows any standard past G0 and perhaps G1 on some controls.

The beauty of EMC2 is you can change to to be anything you like by downloading the source code and modifying it to be like the control your familiar with.

John


John,

My current method to do this is to use one of the work offsets for tool setting only (G59.3). This code might do it:

Set up tool table:

G10 L2 P9 X0 Z0 Y0 (set G59.3 to machine 0)
G59.3 (activate G59.3)
M6 T1 (load tool 1)
#Touch off tool table in Axis for each tool being loaded

Then to set the work offset (using tool 1 to touch off the work offset):

G54 (activate G54)
M6 T1 (load tool 1)
G43 H1 (activate tool length offset for tool 1)
#Touch off to G54 in Axis

That gets me where I want to be. It would be better if I could do this without losing one of my work offsets and if I didn't have to remember to activate G59.3 when setting tools. Maybe I am just lazy.

-Wes
Last edit: 24 Apr 2010 14:58 by ewlsey.
The following user(s) said Thank You: pkasy, Dougefresh

Please Log in or Create an account to join the conversation.

Time to create page: 0.147 seconds
Powered by Kunena Forum