TOC PREV NEXT INDEX

National Institute of Standards and Technology


2 Machining Center Overview


This section gives a brief description of how a machining center is viewed from the input and output ends of the Interpreter. It is assumed the reader is already familiar with machining centers. This section is intended to be useful to NC programmers, machine operators, developers, and researchers. SAI installers will probably not find it useful.

The section describes the format of tool files, which are required for using the Interpreter but are not known to either the RS274/NGC language or the canonical machining functions. Parameter files, also required by the Interpreter, are described in Section 3.2.1.

2.1 Machining Centers

Both the RS274/NGC input language and the output canonical machining functions have a view of (1) mechanical components of a machining center being controlled and (2) what activities of the machining center may be controlled, and what data is used in control. The two views of the mechanical components are very similar, the canonical machining function view including a few more components. The two views of control and data differ significantly, with the canonical machining function view being much simpler in most cases; the Interpreter deals with many complexities of the RS274/NGC language so that lower levels of control do not have to. For example, the RS274/NGC language includes a single command to perform a peck drilling cycle. The Interpreter decomposes this complex single command into many simple straight_feed and straight_traverse canonical function calls.

This section, Section 2, presents the elements that are shared between the two views. Unshared elements of the two views are described in Section 3.2 (RS274/NGC language) and Section 4.2 (canonical machining functions).

The view here includes some items that a given machining center may not have, such as a pallet shuttle. The RS274/NGC language and canonical machining functions may be used with such a machine provided that no NC program used with the controller includes commands intended to activate physical capabilities the machine does not have. For such a machine, it would be useful to modify the Interpreter so it will reject input commands and will not produce output canonical function calls addressed to non-existent equipment. For each of the A, B, and C axes, the Interpreter source code already handles the case of the missing axis, as described in Section 5.2.

2.1.1 Mechanical Components

A machining center has many mechanical components that may be controlled or may affect the way in which control is exercised. This section describes the subset of those components that interact with the Interpreter. Mechanical components that do not interact directly with the Interpreter, such as the jog buttons, are not described here, even if they affect control.

2.1.1.1 Linear Axes

A machining center has independent mechanisms1 for producing relative linear motion of the tool and workpiece in three mutually orthogonal directions. These are the X, Y and Z axes.

2.1.1.2 Rotational axes

Three additional independent mechanisms produce relative rotation of the workpiece and the tool around an axis. These mechanisms (often a rotary table on which the workpiece is mounted or a drum on which the spindle is mounted) are called rotational axes and labelled A, B, and C. The A-axis is parallel to the X-axis. B is parallel to the Y-axis, and C parallel to the Z-axis2. Each rotational mechanism may or may not have a mechanical limit on how far it can rotate.

2.1.1.3 Spindle

A machining center has a spindle which holds one cutting tool, probe, or other item. The spindle can rotate in either direction, and it can be made to rotate at a constant rate, which may be changed. Except on machines where the spindle may be moved by moving a rotational axis, the axis of the spindle is kept parallel to the Z-axis and is coincident with the Z-axis when X and Y are zero. The spindle can be stopped in a fixed orientation or stopped without specifying orientation.

2.1.1.4 Coolant

A machining center has components to provide mist coolant and/or flood coolant. The canonical machining functions view also has through-tool coolant; see Section 4.2.2.1.

2.1.1.5 Pallet Shuttle

A machining center has a pallet shuttle system. The system has two movable pallets on which workpieces can be fixtured. Only one pallet at a time is in position for machining.

2.1.1.6 Tool Carousel

A machining center has a tool carousel with slots for tools fixed in tool holders.

2.1.1.7 Tool Changer

A machining center has a mechanism for changing tools (fixed in tool holders) between the spindle and the tool carousel.

2.1.1.8 Message Display

A machining center has a device that can display messages.

2.1.1.9 Feed and Speed Override Switches

A machining center has separate feed and speed override switches, which let the operator specify that the actual feed rate or spindle speed used in machining should be some percentage of the programmed rate. See Section 2.1.2.15 and Section 2.2.1.

2.1.1.10 Block Delete Switch

A machining center has a block delete switch. See Section 2.2.2.

2.1.1.11 Optional Program Stop Switch

A machining center has an optional program stop switch. See Section 2.2.3.

2.1.2 Control and Data Components

2.1.2.1 Linear Axes

The X, Y, and Z axes form a standard right-handed coordinate system of orthogonal linear axes. Positions of the three linear motion mechanisms are expressed using coordinates on these axes.

2.1.2.2 Rotational Axes

The rotational axes are measured in degrees as wrapped linear axes in which the direction of positive rotation is counterclockwise when viewed from the positive end of the corresponding X, Y, or Z-axis. By "wrapped linear axis," we mean one on which the angular position increases without limit (goes towards plus infinity) as the axis turns counterclockwise and deceases without limit (goes towards minus infinity) as the axis turns clockwise. Wrapped linear axes are used regardless of whether or not there is a mechanical limit on rotation.

Clockwise or counterclockwise is from the point of view of the workpiece. If the workpiece is fastened to a turntable which turns on a rotational axis, a counterclockwise turn from the point of view of the workpiece is accomplished by turning the turntable in a direction that (for most common machine configurations) looks clockwise from the point of view of someone standing next to the machine.3

2.1.2.3 Controlled Point

The controlled point is the point whose position and rate of motion are controlled. When the tool length offset is zero (the default value), this is a point on the spindle axis (often called the gauge point) that is some fixed distance beyond the end of the spindle, usually near the end of a tool holder that fits into the spindle. The location of the controlled point can be moved out along the spindle axis by specifying some positive amount for the tool length offset. This amount is normally the length of the cutting tool in use, so that the controlled point is at the end of the cutting tool.

2.1.2.4 Coordinated Linear Motion

To drive a tool along a specified path, a machining center must often coordinate the motion of several axes. We use the term "coordinated linear motion" to describe the situation in which, nominally, each axis moves at constant speed and all axes move from their starting positions to their end positions at the same time. If only the X, Y, and Z axes (or any one or two of them) move, this produces motion in a straight line, hence the word "linear" in the term. In actual motions, it is often not possible to maintain constant speed because acceleration or deceleration is required at the beginning and/or end of the motion. It is feasible, however, to control the axes so that, at all times, each axis has completed the same fraction of its required motion as the other axes. This moves the tool along same path, and we also call this kind of motion coordinated linear motion.

Coordinated linear motion can be performed either at the prevailing feed rate, or at traverse rate. If physical limits on axis speed make the desired rate unobtainable, all axes are slowed to maintain the desired path.

2.1.2.5 Feed Rate

The rate at which the controlled point or the axes move is nominally a steady rate which may be set by the user. In the Interpreter, the interpretation of the feed rate is as follows unless inverse time feed rate mode is being used in the RS274/NGC view (see Section 3.5.19). The canonical machining functions view of feed rate, as described in Section 4.3.5.1, has conditions under which the set feed rate is applied differently, but none of these is used in the Interpreter.

2.1.2.6 Arc Motion

Any pair of the linear axes (XY, YZ, XZ) can be controlled to move in a circular arc in the plane of that pair of axes. While this is occurring, the third linear axis and the rotational axes can be controlled to move simultaneously at effectively a constant rate. As in coordinated linear motion, the motions can be coordinated so that acceleration and deceleration do not affect the path.

If the rotational axes do not move, but the third linear axis does move, the trajectory of the controlled point is a helix.

The feed rate during arc motion is as described in item A of Section 2.1.2.5, immediately above. In the case of helical motion, the rate is applied along the helix. In some other versions of RS274, the rate is applied to the circular arc which is the projection of the helix on the selected plane.

2.1.2.7 Coolant

Flood coolant and mist coolant may each be turned on independently. The RS274/NGC language turns them off together (see Section 3.6.4) while the canonical machining functions turn them off independently (see Section 4.3.9).

2.1.2.8 Dwell

A machining center may be commanded to dwell (i.e., keep all axes unmoving) for a specific amount of time. The most common use of dwell is to break and clear chips, so the spindle is usually turning during a dwell.

2.1.2.9 Units

Units used for distances along the X, Y, and Z axes may be measured in millimeters or inches. Units for all other quantities involved in machine control cannot be changed. Different quantities use different specific units. Spindle speed is measured in revolutions per minute. The positions of rotational axes are measured in degrees. Feed rates are expressed in current length units per minute or in degrees per minute, as described in Section 2.1.2.5.

2.1.2.10 Current Position

The controlled point is always at some location called the "current position," and the controller always knows where that is. The numbers representing the current position must be adjusted in the absence of any axis motion if any of several events take place:

2.1.2.11 Selected Plane

There is always a "selected plane", which must be the XY-plane, the YZ-plane, or the XZ-plane of the machining center. The Z-axis is, of course, perpendicular to the XY-plane, the X-axis to the YZ-plane, and the Y-axis to the XZ-plane.

2.1.2.12 Tool Carousel

Zero or one tool is assigned to each slot in the tool carousel.

2.1.2.13 Tool Change

A machining center may be commanded to change tools.

2.1.2.14 Pallet Shuttle

The two pallets may be exchanged by command.

2.1.2.15 Feed and Speed Override Switches

The feed and speed override switches may be enabled (so they work as expected) or disabled (so they have no effect on the feed rate or spindle speed). The RS274/NGC language has one command that enables both switches and one command that disables both (see Section 3.6.5). The canonical machining functions have separate commands for the two switches (see Section 4.3.9). See Section 2.2.1 for further details.

2.1.2.16 Path Control Mode

The machining center may be put into any one of three path control modes: (1) exact stop mode, (2) exact path mode, or (3) continuous mode. In exact stop mode, the machine stops briefly at the end of each programmed move. In exact path mode, the machine follows the programmed path as exactly as possible, slowing or stopping if necessary at sharp corners of the path. In continuous mode, sharp corners of the path may be rounded slightly so that the feed rate may be kept up. See Section 3.5.14 and Section 4.3.5.3

The canonical machining functions share with the RS274 language the simplifying assumption that machine dynamics can be almost ignored. That is, in this model, acceleration and deceleration do not occur. Components of the machining center can be told to move at a specific rate, and that rate is imagined as being achieved instantaneously. Stopping is also imagined as instantaneous. This model obviously does not correspond with reality. The control modes provided here provide some compensation for this lack of consideration of dynamics.

2.2 Interpreter Interaction with Switches

As noted in Section 2.1.2, the Interpreter interacts with three switches. This section describes the interactions in more detail. In no case does the Interpreter know what the setting of any of these switches is.

2.2.1 Feed and Speed Override Switches

The Interpreter will interpret RS274/NGC commands which enable (M48) or disable (M49) the feed and speed override switches and will make canonical machining function calls to enable or disable them (Section 4.3.9). It is useful to be able to override these switches for some machining operations. The idea is that optimal settings have been included in the program, and the operator should not change them.

The EMC control system reacts to the setting of the speed or feed override switches on the control panel, when these switches are enabled.

The SAI does not emulate these switches.

2.2.2 Block Delete Switch

If the block delete switch is on, lines of RS274/NGC code which start with a slash (the block delete character) are not interpreted. If the switch is off, such lines are interpreted.

As outlined in Section 1.3.1, the Interpreter runs in two stages (read and execute). The driver tells the Interpreter when to perform each stage. When the Interpreter reads a line starting with a slash, it informs the driver, "I just read a line starting with a slash." The driver checks the setting of the block delete switch. If the switch is off, it tells the Interpreter, "Execute that line." If the switch is on, the driver does not tell the Interpreter to execute the line. Instead, it tells the Interpreter to read another line, with the result that the line starting with the slash is not executed.

In the SAI, the block delete switch may be set, and its default setting is off.

2.2.3 Optional Program Stop Switch

The optional program stop switch works as follows. If this switch is on and an input RS274/NGC code line contains an M1 code, program execution is supposed to stop until the cycle start button is pushed. The Interpreter interprets an M1 on an input line into an OPTIONAL_PROGRAM_STOP canonical function call in the output (see Section 4.3.10).

When the Interpreter is integrated with the EMC system, the controller checks the optional stop switch when the OPTIONAL_PROGRAM_STOP canonical function call is executed and either stops (if the switch is on) or not (if the switch is off).

The SAI does not emulate the optional program stop switch.

2.3 Tool File

A tool file is required to use the Interpreter. The file tells which tools are in which carousel slots and what the length and diameter of each tool are.

The Interpreter does not deal directly with tool files. A tool file is read either by the EMC system or the SAI, as the case may be, and the Interpreter gets the tool information by making calls to canonical functions that obtain it from the EMC system or SAI.

The format of a tool file is exemplified in Table 1.

The file consists of any number of header lines, followed by one blank line, followed by any number of lines of data. The header lines are ignored. It is important that there be exactly one blank line (with no spaces or tabs, even) before the data. The header line shown in Table 1 describes the data columns, so it is suggested (but not required) that such a line always be included in the header.

Each data line of the file contains the data for one tool. Each line has five entries. The first four entries are required. The last entry (a comment) is optional. It makes reading easier if the entries are arranged in columns, as shown in the table, but the only format requirement is that there be at least one space or tab after each of the first three entries on a line and a space, tab, or newline at the end of the fourth entry. The meanings of the columns and the type of data to be put in each are as follows.

The "POCKET" column contains an unsigned integer which represents the pocket number (slot number) of the tool carousel slot in which the tool is placed. The entries in this column must all be different.

The "FMS" column contains an unsigned integer which represents a code number for the tool. The user may use any code for any tool, as long as the codes are unsigned integers.

The "TLO" column contains a real number which represents the tool length offset. This number will be used if tool length offsets are being used and this pocket is selected. This is normally a positive real number, but it may be zero or any other number if it is never to be used.

The "DIAM" column contains a real number. This number is used only if tool radius compensation is turned on using this pocket. If the programmed path during compensation is the edge of the material being cut, this should be a positive real number representing the measured diameter of the tool. If the programmed path during compensation is the path of a tool whose diameter is nominal, this should be a small number (positive, negative, or zero) representing the difference between the measured diameter of the tool and the nominal diameter. If cutter radius compensation is not used with a tool, it does not matter what number is in this column.

The "Comment" column may optionally be used to describe the tool. Any type of description is OK. This column is for the benefit of human readers only.

The SAI only reads data from the first four columns of each line. The rest of the line is read but ignored.

The units used for the length and diameter of the tool may be in either millimeters or inches, but if the data is used by an NC program, the user must be sure the units used for a tool in the file are the same as the units in effect when NC code that uses the tool data is interpreted. The table shows a mixture of types of units.

The lines do not have to be in any particular order. Switching the order of lines has no effect on the SAI (unless the same slot number is used on two or more lines, which should not normally be done, in which case the data for only the last such line will persist).

POCKET
FMS
TLO
DIAMETER
COMMENT
1
1
2.0
1.0

2
2
1.0
0.2

5
5
1.5
0.25
endmill
10
10
2.4
-0.3
for testing
21
21
173.740
0
1/2" spot drill
32
32
247.615
0
8.5 mm drill
41
41
228.360
0
10 mm tap
60
60
0
0
large chuck
Table 1. Sample Tool File

1
If the motion of mechanical components is not independent, as with hexapod machines, the RS274/NGC language and the canonical machining functions will still be usable, as long as the lower levels of control know how to control the actual mechanisms to produce the same relative motion of tool and workpiece as would be produced by independent axes.

2
The requirement of parallelism is not used by either language, so both languages are usable if any rotational axis is not parallel to any linear axis. Rotational axis commands flow through both languages to lower levels of control without significant change in nature.

3
If the parallelism requirement is violated, the system builder will have to say how to distinguish clockwise from counterclockwise.


TOC PREV NEXT INDEX