Auxiliary functions (m - codes). Main functions of programmed control systems on CNC machines M functions
Other functions (M functions)
Other waterjet functions are programmed with the letter M followed by 2 single digits. This system has several such functions:
M00 Stop program
M02 End of program
M30 End of the program with return to the beginning
M71-79 Malfunctioning plus output
Now we will look at the execution of the M function in detail.
1. M00 - Stop the program
Example: When the CNC of the waterjet cutting machine reads the M00 code in the block, it stops the program. To start the program, you must press the power button again.
2. M02 - End of the program
Example: This code denotes the end of the program and performs the basic reset function of the waterjet CNC.
3. M30 -Completion of the program with return to the beginning
Example: This function similar to function M02 plus the return of the waterjet CNC to the first block of the start of the program.
4.M71-79 Malfunctioning plus output
Format: M71 Example: The waterjet CNC system sets this function and the sequence of operations is as follows:
control of the corresponding transmission, connection
delay time 400 m / s
breakdown number 1
M71- Stopping the oil pump of the waterjet cutting machine
M71 usually occurs before M02, which means that the oil pump stops after cutting. This function is the same as pressing the stop button.
M72- stop water pump
When M72 is displayed, the pump motor stops running. This function is the same as that of the pump stop button of waterjet equipment.
M73- Starting the high pressure water supply system
When M73 is highlighted, the high pressure water supply valve opens. This function is the same as the function of pressing the button of the high pressure water system.
M74 - High pressure water system shutdown
When M74 is illuminated, the high pressure water supply valve is closed. This function is the same as the function of pressing the stop button of the water supply system.
under high pressure.
M75 - sand supply valve opening
The appearance of M 75 means the opening of the sand supply valve. This function is the same as the function of pressing the waterjet sand valve open button.
M76- Closing the sand supply valve
The appearance of M 76 means the closing of the sand supply valve. This function is the same as the function of pressing the sand valve close button.
F, S, T Functions.
1. F-feed selection function.
The feed selection function is commonly referred to as the F-function. With this function, you can directly control the feedrate on each axis. The F function can be indicated by the letter F and the numbers that follow the letter, as well as the designation of the feed rate, which is expressed in mm / min.
The feed rate in this system varies from 9 to 1300 mm / min. Waterjet speeds can be freely selected depending on the cutting conditions required.
2. T- tool selection function.
The tool select function is also referred to as the T function. This function is used to select a tool. The tool selection function is denoted by the letter T by the numbers that are placed after the symbol T. The system contains up to 20 names of tool selection parameters, from T01 to T20. In PARAM mode, press the F2 button and the display will show 20 instrument selection options. The operator can select any parameter D button on the waterjet screen depending on the tool diameter.
If the program requires a waterjet cutter radius compensation, the control system can refer to the corresponding parameter to correct it.
An important example of a closed class is the class of monotone functions. We will prove the fact that monotone functions form a closed class later, but for now let us get acquainted with what a monotone Boolean function is.
On the set B = 0,1, we introduce the complete order: we will assume that 0<1. Нам придётся иметь дело с функциями от n переменных, поэтому полезно ввести частичное упорядочение в булевом пространстве В n .
Definition 1. Let b = (b 1 b 2… b n) and c = (in 1 in 2… in n) - elements from B n. We will say that b precedes (younger) c, and denote bv if b k in k for k = 1,2, ..., n, and at least one k has a strict inequality.
Example. b = (001100), c = (001110); b 1 = in 1, b 2 = in 2, b 3 = in 3, b 4 = in 4, b 5<в 5 , б 6 =в 6 . Значит, бв.
Definition 2. Two vectors b and c are called comparable with each other if bv or wb. Otherwise, the vectors are considered incomparable. Such an order is called partial because not all elements from B n are comparable. So don't be confused partial order by B n s complete ordering, which was used when specifying a Boolean function by a table or a vector of its values.
Here are a couple of examples of incomparable vectors.
1.b = (1100), c = (0110). Here b 1> c 1, b 2 = c 2, b 3< 3 , б 4 =в 4 .
2.b = (01), c = (10). Here b 1< в 1 , б 2 >in 2 .
It can be seen from the examples that incomparable sets are those in which there are components of type (01) in one set and (10) in another set in the corresponding places.
Definition 3. A function f (x 1, ..., x n) is called monotone (belongs to the class M) if for any two comparable sets b, c B n from what b precedes c it follows that f (b) no more than f (), that is bc f (b) f (c).
If there is a pair of sets such that bc, but f (b)> f (c), then the function f (x1, ..., xn) is nonmonotonic. By analogy with continuous functions that are studied in the course of mathematical analysis, functions of the algebra of logic can would call non-decreasing... But since we will not deal with nonincreasing functions, we can simply talk about monotony..
Example 20. The identity function f (x) = x is monotone since b = (0) (1) = c and f (b) = 0< 1=f()
Example 21. f (x, y) = xy is a monotone function.
Indeed, the sets (01) and (10) are incomparable, we will not take them into account. For other sets we have:
(00) - (11) and f (0,0) = 0 1 = f (1,1).
(01) (11) and f (0,1) = 1 1 = f (1,1).
(10) - (11) and f (1,0) = 1 1 = f (1,1).
We made sure that xy equals 0 only on the set (00), which precedes all other sets, so that the monotonicity condition of the function is satisfied.
Example 22. f (x, y) = x & y is a monotone function, since is equal to 1 only on the set (11), which is preceded by all the others.
Example 23. Constants 0 and 1 are monotonic functions, since for any sets will be f (b) = f (c).
Example 24. f (x) = x "is a non-monotonic function, since for b = (0) and b = (1) we have bc, but f (b) = 1> 0 = f (c).
Example 25. f (x, y) = xy is a non-monotonic function.
Really,
(00) ---- (01) and f (0,0) = 1 1 = f (1,1),
(10) ---- (11) and f (1,0) = 0 1 = f (1,1).
But for (00) ---- (10) we get
f (0,0) = 1> 0 = f (1,0).
The monotonicity condition of the function is not met!
Example 26. Let's define the monotonicity of the function addition mod 2:
Sets (01) and (10) are incomparable, we will not take them into account.
For other sets we have:
(00) (01) and f (0,0) = 0 1 = f (0,1).
(00) - (10) and f (0,0) = 0 1 = f (1,0).
(00) (11) and f (0,0) = 0 0 = f (1,1).
(10) (11) and f (1,0) = 1> 0 = f (1,1).
The last condition says that the function x + y is non-monotonic.
When programming the machining of parts on CNC machines in accordance with DIN 66025 (ISO 6983), formerly known as ISO 7bit, the following operators are used:
- N - frame number;
- G - preparatory functions;
- X, Y, Z, A, B, C - information about displacements along the axes;
- M - additional functions;
- S - spindle functions;
- T - tool functions;
- F - feed functions;
- H - auxiliary functions (tool offset data blocks in DIN-ISO mode). In the presence of valid number D of the current instrument is additionally displayed.
For greater clarity of the structure of the frame, the operators in the frame should be arranged in the following sequence: N, G, X, Y, Z, A, B, C, F, S, T, D, M, H.
The control program consists of n-th number of frames played continuously or with specified pauses (with high-speed machining of parts made of high-strength aluminum alloys, even a short stop of the tool between adjacent frames is unacceptable because of the danger of overheating or penetration of the machined surface due to friction). In addition, it is possible to skip individual frames and correct sizes by connecting preparatory functions. This ensures the development of control programs for typical technological processes.
Personnel control program consist of the following components:
- commands (operators) according to DIN 66025;
- elements of the high-level CNC programming language;
- identifiers (specific names) for:
- system variables;
- user-defined variables;
- subroutines;
- code words;
- jump marks;
- macros;
- comparison operators;
- logical operators;
- calculation functions;
- control structures.
Since the instruction set according to DIN 66025 is not sufficient for programming complex machining processes on modern multi-purpose machines, it has been supplemented with elements of a high-level CNC programming language.
In contrast to the commands according to DIN 66025, the commands of the high-level NC programming language consist of several address letters, for example:
- OVR - for speed correction (percentage);
- SPOS - for positioning the spindle.
The structure of the program is as follows: "%" (only for programs developed on a PC), the title of the program "O" or ":" followed by the program number, containing no more than four digits. Each line in the program is a block.
Each program block has a structure:
- N - serial number frame (no more than four characters, numbering is carried out after 5 or 10 for the possibility of introducing additional frames when working out the program);
- preparatory function G;
- coordinates X, Y, Z, A, C, B;
- additional function M;
- spindle function S;
- tool function T;
- feed function F;
- D - tool offset number;
- H - tool offset data blocks in DIN-ISO mode. Commands operate either modally or frame-by-frame.
Modal acting teams remain valid in all subsequent blocks with the programmed value until a new value is programmed at the same address, canceling the previously valid command.
Non-modal commands remain valid only in the block in which they are programmed.
Each frame ends with an LF character, the LF character is not required to be written, it is automatically generated when the line is switched. The program ends with commands M2, M30 or M99. A block can have a maximum of 512 characters (including comment and end-of-block character LF).
The preparatory G functions provide all the actions of the machine.
X, Y, Z - linear coordinate axes of the machine, the Z coordinate is always parallel to the machine spindle axis or perpendicular to the workpiece clamping plane for machines with a two-turn milling head; А, С, В - angular coordinates of rotation about linear coordinate axes. If the machine has more than two spindles, as well as tool heads, then additional coordinate axes X ', Y', Z ', A', C ', B', etc. appear.
It should be noted that the preparatory functions allow you to go to the coordinate system of the part, which in some cases allows you to abandon the use of special devices.
Additional M functions are responsible for turning on and off the spindle, pumping stations for coolant supply, direction of spindle rotation, end of the program.
Spindle function S sets the spindle speed.
Tool function T defines the number of the tool or tool setting.
Feed function F sets the feed value.
Rice. 1.
The machine coordinate system and directions of positive displacements are shown in Figure 1.
NC programs can be drawn up in the machine coordinate system, in this case the used machine tooling must be coordinated with the coordinate grid of the machine table. The matching is done by the fact that the base plate of the fixture has a centering pin and a key. The pin is aligned with the bushing pressed in the center of the machine table, and the key with a cool groove. Thus, working space machine in the plane NS–Y aligned with the fixture's coordinate system. In the coordinate system of the device, basic surfaces are made, for example, a plane and two fingers (cylindrical and cut). Therefore, errors of locating occur both during the installation of the device and during the installation of the part.
In case of intensive operation in a multi-product production environment, that is, with frequent change of fixtures, it is necessary to recheck not only the tooling, but also the guides of the base surfaces of the machine table, namely the centering sleeve and the cool groove.
With this in mind, it is advisable to carry out the machining in the workpiece coordinate system. The fixture is oriented along one axis only, and the reference to the workpiece coordinate system is performed by the measuring sensors. In this case, in addition to eliminating the basing error, the requirements for the timing of the tooling rechecking are reduced, moreover, it becomes possible to more widely use normalized devices or adjustments from them without reference to the machine coordinate system.
Preparatory functions G, additional functions M are shown in tables 1, 2.
So, on milling machines, the tool change is performed in the following sequence: with the T command, the tool is selected, and its change occurs only with the M6 command.
For turrets on lathes, the T command is sufficient to change the tool.
The S spindle function sets the spindle speed, the T tool function sets the tool setting or tool number, and the F feed function sets the feed rate.
Table 1.Preparatory G functions
Instructions | Description |
G00 | Linear interpolation at rapid traverse |
G01 | Linear interpolation at feedrate |
G02 | Circular interpolation clockwise |
G03 | Circular interpolation counterclockwise |
G04 | Time delay |
G05 | Circular interpolation with a tangent circular path |
G06 | Decrease in the permissible level of acceleration |
G07 | Cancellation of the reduction of the permissible level of acceleration |
G0S | Control of the feed rate at the break points |
G09 | Canceling the control of the feedrate at the points of inflection |
G10 | Rapid traverse in polar coordinates |
G11 | Linear interpolation in polar coordinates |
G12 | Clockwise circular interpolation in polar coordinates |
G13 | Circular interpolation counterclockwise in polar coordinates |
G14 | Programming the value of the gain by the speed of the follower drive |
G15 | Cancel G14 |
G16 | Programming without Plane Specification |
G17 | Plane selection Have–NS |
G1S | Plane selection Z–X |
G19 | Plane selection Have–Z |
G20 | Specifying the Pole and Coordinate Plane When Programming in Polar Coordinates |
G21 | Axis classification programming |
G22 | Activating tables |
G23 | Conditional branch programming |
G24 | Programming an unconditional jump |
G32 | Tapping in linear interpolation mode without compensating chuck |
G34 | Corner rounding for two adjacent straight sections (with a tolerance under address E) |
G35 | Turn off corner smoothing |
G36 | Deactivation of the deflection programmed during corner rounding, which becomes equal to the machine parameter |
G37 | Programming a point for mirroring or rotation of coordinates |
G38 | Activation of mirroring, rotation of coordinates, scaling |
G39 | Canceling mirroring, rotating coordinates, scaling |
G40 | Canceling equidistant correction |
G41 | Equidistant correction to the left in the feed direction |
G42 | Equidistant correction to the right in the direction of feed |
G53 | Canceling zero offset |
G54-G59 | Initiating zero offset |
G60 | Offset of the program coordinate system |
G61 | Precise positioning when moving at feed rate |
G62 | Canceling fine positioning |
G63 | Switching on 100% of the programmed speed value |
G64 | Linking the feed rate to the point of contact between the cutter and the part |
G65 | Linking the feed rate to the center of the cutter |
G66 | Activation of the speed value set by the potentiometer |
G67 | Canceling a Program Coordinate System Offset |
G68 | Variant of conjugation of segments of equidistant lines along an arc |
G69 | A variant of conjugation of segments of equidistant lines along the trajectory of intersection of equidistant lines |
G70 | Inch programming |
G71 | Cancel programming in inches |
G73 | Linear interpolation with precise positioning |
G74 | Exit to the origin |
G75 | Touch Sensor Operation |
G76 | Moving to a point with absolute coordinates in the machine coordinate system |
G78 | Drilling axis activation |
G79 | Deactivation of one drilling axis or all at once |
G80 | Canceling the Call of Canned Cycles |
G81, G82 | Canned Drilling Cycle |
G83 | Deep hole canned cycle |
G84 | Tapping cycle with compensating chuck |
G85, G86 | Reaming Standard Cycle |
G90 | Absolute Coordinate Programming |
G91 | Relative Coordinate Programming |
G92 | Setting coordinate values |
G93 | Programming the block run time |
G94 | Feed rate programming in mm / min |
G95 | Feed rate programming in mm / rev |
G97 | Cutting speed programming |
G105 | Zero setting for linear infinite axes |
G108 | Look Ahead Inflection Control |
G112 | |
G113 | Enabling advanced braking control |
G114 | Enabling advanced speed control |
G115 | Deactivating advanced speed control |
G138 | Enabling workpiece position compensation |
G139 | Deactivating workpiece position compensation |
G145-845 | Activation of external correction by the programmable controller |
G146 | Turn off external tool offset |
G147, G847 | Secondary compensation group of tool offsets; corrections correlated with axes |
G148 | Canceling additional tool compensation |
G153 | Canceling the first additive zero offset |
G154-159 | Indication of the first additive zero offset |
G160-360 | External zero offset |
G161 | Accurate positioning during rapid traverse |
G162 | Canceling precise positioning during rapid traverse |
G163 | Precise positioning at rapid traverse and traversing at feed rate |
G164 | First precise positioning option |
G165 | Second precise positioning option |
G166 | Third precise positioning option |
G167 | Canceling External Zero Offset |
G168 | Offset of the coordinate system of the control program |
G169 | Canceling All Coordinate System Offsets |
G184 | Tapping cycle without compensating chuck |
G189 | Absolute Coordinate Programming for Infinite Axes |
G190 | Word-by-word programming in absolute coordinates |
G191 | Word-by-word programming in relative coordinates |
G192 | Setting the lower speed limit in the control program |
G194 | Programming speed (feed, speed) with adaptation of acceleration |
G200 | Linear interpolation at rapid traverse without deceleration up to V= 0 |
G202 | Clockwise helical interpolation |
G203 | Helical interpolation counterclockwise |
G206 | Activation and storage of maximum acceleration values |
G228 | Transitions from frame to frame without braking |
G253 | Canceling the second additive zero offset |
G254-259 | Initiating a second additive zero offset |
G268 | Additive offset of the coordinate system of the control program |
G269 | Cancellation of the additive offset of the coordinate system of the NC program |
G292 | Setting the upper speed limit in the control program |
G301 | Turning on oscillating motion |
G350 | Setting the parameters of the oscillating motion |
G408 | Formation of smooth acceleration from point to point |
G500 | Detection of possible collisions when previewing frames |
G543 | Enabling Frames Preview Collision Management |
G544 | Turn off collision management when previewing frames |
G575 | Frame switching by high-speed external signal |
G580 | Disbanding coordinate axes |
G581 | Formation of coordinate axes |
G608 | Formation of smooth acceleration when moving from point to point for each axis separately |
Note... For each control system, some of the values of the preparatory functions may have different meanings depending on the machine manufacturer. It should be noted that in order to expand the technological capabilities of equipment, manufacturers of CNC systems tend to increase the preparatory functions.
Table 2.Additional M functions
Instructions | Description |
MO | Stopping the program |
M1 | Request stop |
M2 | End of the program |
M3 | Enabling clockwise spindle rotation |
М4 | Enabling spindle rotation counterclockwise |
M5 | Spindle stop |
M2 = 3 | Power tool turned clockwise |
M2 = 4 | Power tool turned on counterclockwise |
M2 = 5 | Power tool off |
M6 | Automatic tool change |
M7 | Air blowing on |
MS | Turning on the coolant supply |
M9 | Cooling off |
М1О | Disabling air blowing |
M11 | Tool clamp |
M12 | Tool unclamping |
M13 | Turning the spindle clockwise in conjunction with turning on the coolant |
M14 | Turning on the spindle rotation counterclockwise together with turning on the coolant |
M15 | Switching on the chip flush coolant |
M17 | End of subroutine |
M19 | Spindle orientation |
M21 | NS |
M22 | Turn on mirroring of the program along the axis Have |
M23 | Disable program mirroring |
M29 | Enabling Rigid Threading Mode |
М3О | End of the program with the possibility of simultaneously turning off the power of the machine |
M52 | Moving the magazine to a position to the right |
M53 | Moving the magazine to a position to the left |
M7O | Store initialization |
M71 | Lowering the active magazine pocket |
M72 | Rotate manipulator 60 ° |
M73 | Tool unclamping |
M74 | Rotation of the manipulator by 120 ° |
M75 | Tool clamp |
M76 | Rotate manipulator 180 ° |
M77 | Raising the active pocket of the store |
M98 | Calling a subroutine |
M99 | Return to main program |
Note:... For different control systems and machine types, additional functions may have different meanings, for example, activate tailstock movement, functions boot device, steady rest, etc.
When creating an NC program, the programming itself, that is, the conversion of individual work transitions into the NC language, is often only a small part of the programming work.
Before programming, it is necessary to plan and prepare work transitions. The more precisely the start and structure of the NC program is planned, the faster and easier the programming itself will be and the more intuitive and less error-prone the finished NC program will be.
Advantage visual programs especially when changes need to be made later.
Since not every program has the same structure, it makes no sense to work according to a typical template. However, in most cases, it is advisable to adhere to the following sequence.
1. Preparation of a drawing of a part consists of:
- a) in determining the zero point of the part;
- b) in drawing a coordinate system;
- c) in the calculation of possibly missing coordinates.
2. Definition of the processing process:
- a) When will be used, what tools and for processing what contours?
- b) In what sequence will the individual elements details?
- c) Which individual elements are repeated (possibly rotated) and should be stored in the subroutine?
- d) Are there part contours in other part programs or subroutines that can be reused for the current part?
- e) Where are zero offsets, rotation, mirroring, scaling (frame concept) appropriate or necessary?
3. Creation of a technological map. Determine one by one all the machining processes of the machine, for example:
- a) movement in rapid traverse for positioning;
- b) tool change;
- c) determination of the processing plane;
- d) free play for additional measurement;
- e) turning on / off the spindle, coolant;
- f) call the tool data;
- g) submission;
- h) trajectory correction;
- i) approach to the contour;
- j) branch from the circuit, etc.
4. Translation of transitions into programming language: recording each transition as an NC block (or NC blocks).
5. Combining all the individual transitions into an operation, as a rule, in one program. Sometimes, especially when machining large parts into the program, the roughing, semi-finishing and finishing transitions can be highlighted. This was the case with the limited memory space found in legacy CNC systems. For modern systems program control the amount of memory practically does not limit the technological capabilities of the machines.
Standard processing cycles are widely used in modern software control systems. Their use significantly reduces the time spent on programming.
Some of the canned cycles for control systems used in the WIN NC SINUMERIK software are shown below:
- CYCLE81 - drilling, centering;
- CYCLE82 - drilling, countersinking;
- CYCLE83 - deep hole drilling with twist drills;
- CYCLE84 - internal threading without compensating chuck;
- CYCLE840 - Internal threading with compensating tap chuck;
- CYCLE85 - boring 1;
- CYCLE86 - boring 2;
- CYCLE87 - boring 3;
- CYCLE88 - boring 4;
- CYCLE89 - boring 5;
- CYCLE93 - groove;
- CYCLE94 - internal undercut;
- CYCLE95 - stock removal cycle;
- CYCLE96 - threaded undercut;
- CYCLE97 - threading cycle.
It should be noted that software control systems high level are open, which allows you to expand the library of standard cycles for processing typical surfaces typical for production of this type products and thereby reduce the preparation time for production.
Rice. 2.
The use of CAM systems has led to the need for each software control system to develop postprocessors, without which the equipment does not understand programs without translating them into machine codes (Fig. 2).
The programming of modern CNC systems is carried out in accordance with the ISO 6983 (DIN 66025) standard, which is more than 50 years old and which, according to programmers, allegedly hinders the development of CNC technologies. The term "CNC technology", according to the author, is not legitimate, the processing of parts on CNC machines obeys all the laws of engineering technology and metal cutting or other methods of shaping.
Violation of the laws of technological sciences leads to:
- to increased warpage of parts;
- to a decrease in the accuracy of linear dimensions;
- to an increase in the complexity of processing parts, etc.
The main difference for multi-purpose machine tools is the extremely pronounced concentration of operations, not only characteristic of this type of equipment, but also implemented by a driven tool and special spindle equipment, as well as methods of ensuring accuracy using machine-tool measuring systems. The standard supports simple commands for elementary movements and logical operations... Currently, to solve complex geometric and logical tasks in software control systems, in addition to machine codes in accordance with DIN 66025 (ISO 7bit), high-level programming languages are used. NC programs in the ISO 6983 standard contain a small amount of information obtained at the level of CAD-CAM systems. However, a more serious drawback, according to the developers of software control systems, is the impossibility of two-way exchange of information with these systems, which means that any changes in the control program cannot be reflected in the upstream information flow to the CAD-CAM systems. It should be noted that this is not advisable for all industries. So, for example, smoothing of smooth mates of theoretical contours with splines is permissible, and mating of two surfaces requires analysis. possible methods their shaping, for a number of structural materials there may be technological limitations, for example, the minimum admissible radius of conjugation of structural elements of parts made of high-strength aluminum alloys, etc.
In contrast to DIN 66025 (ISO 6983), the developed STEP-NC ISO 14649 standard (not all of its modules have been developed at this time) defines a special structure of the NC control program - a program structure, which is used to build logical blocks within the framework of structured machining programming. The structure of the control program is not a list of typical processed forms (features); it defines a workplan, which is a sequence of executables. STEP-NC assumes a wide exchange of information between engineering services, including preparation and planning of production, as well as the shop floor.
The structure of the proposed exchange of information is shown in Figure 3.
The structure of the planned information exchange raises a lot of questions:
- insufficient level of formalization of engineering work complicates the creation of knowledge bases;
- a large number of cutting tool catalogs, which provide insufficient information for choosing a tool for processing special materials and the conditions for its use, which in most cases requires experimental verification;
- equipment catalogs often lack information about the positional accuracy of the controlled axes of the machine, the dynamic characteristics of drives, etc.;
- outdated technological manuals, developed for universal equipment and systematically republished with practically no updating of technological information;
- lack of systematized information about progressive technological equipment.
Rice. 3. Planned communication between engineering services and the shop floor
Additionally, it should be noted that there are no standard methods for optimizing the programming of machine tools in terms of parameters that allow you to choose the best machine or group of machines for performing a particular technological operation or process.
These problems have been pointed out many times by users of various machine tools involved in the STEP-NC standardization process. Equipment manufacturers and developers software try to take into account the requirements of users and implement some of the these functions in their products. However, their work is often not subject to a single standard, which, according to the existing opinion, can slow down the upgrade of industrial systems. Also, one cannot fail to mention that the equipment produced is rarely used by all modern technologies and as a result, the production base is not as efficient and perfect. With this in mind, the manufacturers of software control systems have chosen a compromise option that allows them to work according to both DIN 66025 (ISO 6983) and ISO 14649 (Fig. 4).
Rice. 4. Mixed CNC architecture supporting DIN 66025 (ISO 6983) and ISO 14649 (STEP-NC)
All this indicates that, in addition to improving program control systems and programming methods, it is necessary to be engaged on a systematic basis and prepare technological information:
- a tool that provides intensification of processing modes;
- recommendations for the use of various tool designs;
- dependencies for calculating cutting;
- dependencies for calculating the components of the cutting forces;
- databases on CNC equipment and their technological capabilities, including in cases of equipment different systems management;
- algorithms for calculating cutting modes for machine tools, where an electric spindle is used as a drive of the main movement;
- strategy for processing various structural elements of parts on CNC machines;
- databases on the use of serially produced tooling for CNC machines;
- measuring systems for machine tools, including zero-reading and measuring sensors;
- production instructions for assembling tool adjustments and balancing them;
- technological regulations for checking the accuracy of CNC machines, rechecking spindle equipment, especially mandrels and HSK-type bushings, and much more.
Helper functions (or M-codes) are programmed using the address word M... Auxiliary functions are used to control the program and the electrical automatics of the machine - turning on / off the spindle, coolant, tool change, etc.
Table 3.
Designation |
Appointment |
M00 |
Programmable stop |
M01 |
Stop with confirmation |
M02 |
End of the program |
M03 |
Spindle rotation clockwise |
M04 |
Spindle rotation counterclockwise |
M05 |
Spindle stop |
M06 |
Tool change |
M08 |
Cooling on |
M09 |
Cooling off |
M17 |
Return from subroutine |
M18 |
Positioning the spindle at a given angle |
M19 |
Spindle orientation |
M20 |
End of a repeating program section |
M30 |
Stop and go to the beginning of the control program |
M99 |
Continue execution of NC of the first block |
Auxiliary functions that perform the inclusion of any operations ( M03, M04 and M08) are executed at the beginning of the block before the movement commands. The rest of the auxiliary functions are performed at the end of the block.
Table 3 is a list of commonly used helper functions.
2.1. Programmable stop (M00)
Unconditional stop of the NC program after execution of the motion contained in the current block. The UE state does not change until the button is pressed again START on the CNC control panel or keys TO THE BEGINING, to return to the beginning of the program in progress.
2.2. Stop with acknowledgment (M01)
Stop the control program after executing the movement contained in the current block, provided that the mode is set “Stop with confirmation” from the control panel of the CNC (see Document CNC MSHAK- CNC Operator's Manual).
Example:
X-2 X-4.
M1; Stop program execution in this block if
; the mode is set “Stop with confirmation” from the operator's console
2.3. End of program (M02)
Determines the end of the execution of the control program, stops the supply of coolant and stops the rotation of the spindle.
Example:
G0X20Z50 Z.5
G0 X0Z0 M2
2.4. Spindle rotation clockwise (M03)
Starts clockwise spindle rotation using the current value specified by the word.
Example:
G54 G0 X-20 Z30 S500M3
2.5. Spindle rotation counterclockwise (M04)
Starts counterclockwise rotation of the spindle using the current value specified by the word.
Example:
G54 G0 X-20 Z30 S1500M4
2.6. Spindle stop (M05)
Stops spindle rotation. It is executed after the movements contained in the frame.
Example:
G28 X0 Z0 M5
G4 P2 M2
2.7. Tool change (M06)
Performs a tool change between the spindle and the tool magazine. This function occurs:
· Positioning along the axes to the point of tool change;
· Spindle rotation stop and spindle orientation;
· Tool change.
Example:
T5; start searching for tool 5 in the magazine
X50 Z60; continuation of the program
M6; tool change
2.8. Cooling ON (M08)
Includes supply of cutting fluid (coolant).
Example:
S300M3X20Z30G0
G1X50Z44M8; Turn on coolant
G0Z-100
2.9. Cooling off (M09)
Turns off the supply of cutting fluid (coolant).
Example:
S300M3X20Z30G0 G1X50Z44 M9M5G0Z-100
2.10. Return from subroutine (M17)
Determines the end of a subroutine when it is called with a word with an address L.
Example:
X5Z5
; Main program
L10; Calling a subroutine starting with block N10 X2Z8
N10Z2; Subroutine with block label N10 X10
M17; End of subroutine and return to main program
2.11. Spindle positioning (M18)
With this function, you can turn the spindle at a given angle.
Format:
M18 Pnnn
Where: nnn - rotation angle +/- 360 degrees.
The angle of rotation is counted relative to the spindle position to which the spindle is set using function M19.
Example:
M18 P45; spindle rotation 45 degrees
2.12. Spindle orientation (M19)
Helper function M19 stops the rotation of the spindle, performs its orientation.
2.13. End of repeated program section (M20)
Determines the end of a repeated program segment when it is called by a word with an address H.
Example:
N10 H2; execute program section up to M20 2 times
Currently, many programming languages are used for programming CNC systems, which are based on the universal ISO 7 bit language. However, each manufacturer introduces its own characteristics, which are implemented through preparatory (G-codes) and auxiliary (M-codes) functions.Functions with address G- are called preparatory, they determine the operating conditions of the machine associated with programming the geometry of the tool movement. A detailed description of G-codes can be found in the chapter ISO 7-bit code.
In this chapter, we will take a closer look at the purpose of auxiliary functions.
Functions with address M- are called subsidiary(from English Miscellaneous) and are designed to control various modes and devices of the machine.
Auxiliary functions can be used alone or in conjunction with other addresses, for example, the block below inserts tool number 1 into the spindle.
N10 T1 M6, where
T1- tool number 1;
M6- tool change;
In this case, under the M6 command on the CNC stand, there is a whole set of commands that provide the tool change process:
Moving the tool to the change position;
- turning off the spindle speed;
- moving the installed tool in the store;
- tool replacement;
The use of M codes is allowed in blocks with tool movement, for example, in the line below, cooling will turn on (M8) simultaneously with the start of the cutter movement.
N10 X100 Y150 Z5 F1000 M8
M-codes that turn on any device of the machine have a paired M code, which this device turns off. For example,
M8- turn on the cooling, M9- turn off cooling;
M3- turn on the spindle speed, M5- turn off the revolutions;
It is allowed to use several M commands in one block.
Accordingly, the more devices the machine has, the more M commands will be involved in its control.
All auxiliary functions can be conventionally divided into standard and special... Standard auxiliary functions are used by CNC manufacturers to control the devices on each machine (spindle, cooling, tool change, etc.). Whereas special modes are programmed on one specific machine or a group of machines of this model (on / off the measuring head, clamping / unclamping rotary axes).
The picture above shows the rotary spindle of a multi-axis machine. To increase rigidity during positional machining, the machine is equipped with rotary axis clamps, which are controlled by M codes: M10 / M12- turn on the clamps for axes A and C. M11 / M13- turn off the clamps. On other equipment, the machine tool builder can configure these commands to control other devices.
List of standard M commands
M0 - stopping the program;M1 - stop on demand;
M2 - the end of the program;
M3 - turn on the spindle speed clockwise;
M4 - turn on the spindle revolutions counterclockwise;
M5 - spindle stop;
M6 – automatic change tool;
M8 - turn on the cooling (usually coolant);
M9 - turn off the cooling;
M19 - orientation of the spindle;
M30 - termination of the program (as a rule, with the reset of all parameters);
M98 - subroutine call;
M99 - return from the subroutine to the main one;
The machine manufacturer describes the special auxiliary functions in the corresponding technical documentation.