Команды g code

Команды g code

Описание G и M кодов для программирования ЧПУ (CNC) станков

На производстве, где работают различные станки с числовым программным управлением, используется множество различного программного обеспечения, но в большинстве случаев весь управляющий софт использует один и тот же управляющий код. Программное обеспечение для любительских станков, так же базируется на аналогичном коде. В обиходе его называют «G-код». В данном материале представлена общая информация по G-коду (G-code).

G-code это условное именование языка для программирования устройств с ЧПУ (CNC) (Числовое программное управление). Был создан компанией Electronic Industries Alliance в начале 1960-х. Финальная доработка была одобрена в феврале 1980-о года как RS274D стандарт. Комитет ИСО утвердил G-code, как стандарт ISO 6983-1:1982, Госкомитет по стандартам СССР — как ГОСТ 20999-83. В советской технической литературе G-code обозначается, как код ИСО-7 бит.

Производители систем управления используют G-code в качестве базового подмножества языка программирования, расширяя его по своему усмотрению.

Программа, написанная с использованием G-code, имеет жесткую структуру. Все команды управления объединяются в кадры — группы, состоящие из одной или более команд. Кадр завершается символом перевода строки (ПС/LF) и имеет номер, за исключеним первого кадра программы. Первый кадр содержит только один символ» %». Завершается программа командой M02 или M30.

Основные (в стандарте называются подготовительными) команды языка начинаются с буквы G:

Сводная таблица кодов:

Подготовительные (основные) команды / КодыОписание
G00-G04Позиционирование инструмента
G17-G19Переключение рабочих плоскостей (XY, XZ, YZ)
G20-G21Не стандаризовано
G40-G44Компенсация размера различных частей инструмента (длина, диаметр)
G53-G59Переключение систем координат
G80-G84Циклы сверления, нарезания резьбы
G90-G92Переключение систем координат (абсолютная, относительная)

Таблица основных команд:

Таблица технологических кодов:

Технологические команды языка начинаются с буквы М. Включают такие действия, как:

G Codes

1. Conventions

Conventions used in this section

In the G code prototypes the hyphen () stands for a real value and (<>) denotes an optional item.

If L- is written in a prototype the will often be referred to as the L number, and so on for any other letter.

In the G code prototypes the word axes stands for any axis as defined in your configuration.

A real value may be:

An explicit number, 4

A parameter value, #88

A unary function value, acos[0]

In most cases, if axis words are given (any or all of X Y Z A B C U V W), they specify a destination point.

Axis numbers are in the currently active coordinate system, unless explicitly described as being in the absolute coordinate system.

Where axis words are optional, any omitted axes will retain their original value.

Any items in the G code prototypes not explicitly described as optional are required.

The values following letters are often given as explicit numbers. Unless stated otherwise, the explicit numbers can be real values. For example, G10 L2 could equally well be written G[2*5] L[1+1]. If the value of parameter 100 were 2, G10 L#100 would also mean the same.

If L- is written in a prototype the will often be referred to as the L number, and so on for any other letter.

2. G Code Quick Reference Table

Coordinated Motion at Rapid Rate

Coordinated Motion at Feed Rate

Coordinated Helical Motion at Feed Rate

NURBS, add control point

Diameter Mode (lathe)

Radius Mode (lathe)

Set Tool Table Entry

Set Tool Table, Calculated, Workpiece

Set Tool Table, Calculated, Fixture

Coordinate System Origin Setting

Coordinate System Origin Setting Calculated

Set Units of Measure

Go to Predefined Position

Go to Predefined Position

Spindle Synchronized Motion

Cancel Cutter Compensation

Dynamic Cutter Compensation

Use Tool Length Offset from Tool Table

Dynamic Tool Length Offset

Apply additional Tool Length Offset

Cancel Tool Length Offset

Local Coordinate System Offset

Move in Machine Coordinates

Exact Path Mode

Exact Stop Mode

Path Control Mode with Optional Tolerance

Drilling Cycle with Chip Breaking

Left-hand Tapping Cycle with Dwell

Multi-pass Threading Cycle (Lathe)

Cancel Motion Modes

Drilling Cycle with Dwell

Drilling Cycle with Peck

Right-hand Tapping Cycle with Dwell

Boring Cycle, No Dwell, Feed Out

Boring Cycle, Stop, Rapid Out

Boring Cycle, Dwell, Feed Out

Arc Distance Mode

Coordinate System Offset

Cancel G92 Offsets

Restore G92 Offsets

Spindle Control Mode

Canned Cycle Z Retract Mode

3. G0 Rapid Move

For rapid motion, program G0 axes, where all the axis words are optional. The G0 is optional if the current motion mode is G0. This will produce coordinated motion to the destination point at the maximum rapid rate (or slower). G0 is typically used as a positioning move.

3.1. Rapid Velocity Rate

The MAX_VELOCITY setting in the ini file [TRAJ] section defines the maximum rapid traverse rate. The maximum rapid traverse rate can be higher than the individual axes MAX_VELOCITY setting during a coordinated move. The maximum rapid traverse rate can be slower than the MAX_VELOCITY setting in the [TRAJ] section if an axis MAX_VELOCITY or trajectory constraints limit it.

See G90 & M2 sections for more information.

If cutter compensation is active, the motion will differ from the above; see the Cutter Compensation Section.

If G53 is programmed on the same line, the motion will also differ; see the G53 Section for more information.

The path of a G0 rapid motion can be rounded at direction changes and depends on the trajectory control settings and maximum acceleration of the axes.

It is an error if:

An axis letter is without a real value.

An axis letter is used that is not configured

4. G1 Linear Move

For linear (straight line) motion at programed feed rate (for cutting or not), program G1 ‘axes‘, where all the axis words are optional. The G1 is optional if the current motion mode is G1. This will produce coordinated motion to the destination point at the current feed rate (or slower).

See G90 & F & M2 sections for more information.

If cutter compensation is active, the motion will differ from the above; see the Cutter Compensation Section.

If G53 is programmed on the same line, the motion will also differ; see the G53 Section for more information.

It is an error if:

No feed rate has been set.

An axis letter is without a real value.

An axis letter is used that is not configured

5. G2, G3 Arc Move

A circular or helical arc is specified using either G2 (clockwise arc) or G3 (counterclockwise arc) at the current feed rate. The direction (CW, CCW) is as viewed from the positive end of the axis about which the circular motion occurs.

The axis of the circle or helix must be parallel to the X, Y, or Z axis of the machine coordinate system. The axis (or, equivalently, the plane perpendicular to the axis) is selected with G17 (Z-axis, XY-plane), G18 (Y-axis, XZ-plane), or G19 (X-axis, YZ-plane). Planes 17.1, 18.1, and 19.1 are not currently supported. If the arc is circular, it lies in a plane parallel to the selected plane.

To program a helix, include the axis word perpendicular to the arc plane, for example, if in the G17 plane, include a Z word. This will cause the Z axis to move to the programmed value during the circular XY motion.

To program an arc that gives more than one full turn, use the P word specifying the number of full turns plus the programmed arc. The P word must be an integer. If P is unspecified, the behavior is as if P1 was given that is, only one full or partial turn will result. For example, if a 180 degree arc is programmed with a P2, the resulting motion will be 1 1/2 rotations. For each P increment above 1 an extra full circle is added to the programmed arc. Multi turn helical arcs are supported and give motion useful for milling holes or threads.

If the pitch of the helix is very small (less than the naive CAM tolerance then the helix might be converted into a straight line. Bug #222

If a line of code makes an arc and includes rotary axis motion, the rotary axes turn at a constant rate so that the rotary motion starts and finishes when the XYZ motion starts and finishes. Lines of this sort are hardly ever programmed.

If cutter compensation is active, the motion will differ from the above; see the Cutter Compensation Section.

The arc center is absolute or relative as set by G90.1 or G91.1 respectively.

Two formats are allowed for specifying an arc: Center Format and Radius Format.

It is an error if:

No feed rate has been set.

The P word is not an integer.

5.1. Center Format Arcs

Center format arcs are more accurate than radius format arcs and are the preferred format to use.

The end point of the arc along with the offset to the center of the arc from the current location are used to program arcs that are less than a full circle. It is OK if the end point of the arc is the same as the current location.

The offset to the center of the arc from the current location and optionally the number of turns are used to program full circles.

When programming arcs an error due to rounding can result from using a precision of less than 4 decimal places (0.0000) for inch and less than 3 decimal places (0.000) for millimeters.

Arc center offsets are a relative distance from the start location of the arc. Incremental Arc Distance Mode is default.

One or more axis words and one or more offsets must be programmed for an arc that is less than 360 degrees.

No axis words and one or more offsets must be programmed for full circles. The P word defaults to 1 and is optional.

For more information on ‘Incremental Arc Distance Mode see the G91.1 section.

Arc center offsets are the absolute distance from the current 0 position of the axis.

One or more axis words and both offsets must be programmed for arcs less than 360 degrees.

No axis words and both offsets must be programmed for full circles. The P word defaults to 1 and is optional.

For more information on ‘Absolute Arc Distance Mode see the G90.1 section.

It is an error if:

No feed rate is set with the F word.

No offsets are programmed.

Deciphering the Error message Radius to end of arc differs from radius to start:

5.2. Center Format Examples

Calculating arcs by hand can be difficult at times. One option is to draw the arc with a cad program to get the coordinates and offsets. Keep in mind the tolerance mentioned above, you may have to change the precision of your cad program to get the desired results. Another option is to calculate the coordinates and offset using formulas. As you can see in the following figures a triangle can be formed from the current position the end position and the arc center.

In the following figure you can see the start position is X0 Y0, the end position is X1 Y1. The arc center position is at X1 Y0. This gives us an offset from the start position of 1 in the X axis and 0 in the Y axis. In this case only an I offset is needed.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

In the next example we show how the arc can make a helix in the Z axis by adding the Z word.

In the next example we show how to make more than one turn using the P word.

In the center format, the radius of the arc is not specified, but it may be found easily as the distance from the center of the circle to either the current point or the end point of the arc.

5.3. Radius Format Arcs

It is not good practice to program radius format arcs that are nearly full circles or nearly semicircles because a small change in the location of the end point will produce a much larger change in the location of the center of the circle (and, hence, the middle of the arc). The magnification effect is large enough that rounding error in a number can produce out-of-tolerance cuts. For instance, a 1% displacement of the endpoint of a 180 degree arc produced a 7% displacement of the point 90 degrees along the arc. Nearly full circles are even worse. Other size arcs (in the range tiny to 165 degrees or 195 to 345 degrees) are OK.

In the radius format, the coordinates of the end point of the arc in the selected plane are specified along with the radius of the arc. Program G2 axes R- (or use G3 instead of G2 ). R is the radius. The axis words are all optional except that at least one of the two words for the axes in the selected plane must be used. The R number is the radius. A positive radius indicates that the arc turns through less than 180 degrees, while a negative radius indicates a turn of more than 180 degrees. If the arc is helical, the value of the end point of the arc on the coordinate axis parallel to the axis of the helix is also specified.

It is an error if:

both of the axis words for the axes of the selected plane are omitted

the end point of the arc is the same as the current point.

The above example makes a clockwise (as viewed from the positive Z-axis) circular or helical arc whose axis is parallel to the Z-axis, ending where X=10, Y=15, and Z=5, with a radius of 20. If the starting value of Z is 5, this is an arc of a circle parallel to the XY-plane; otherwise it is a helical arc.

6. G4 Dwell

The P number is the time in seconds that all axes will remain unmoving. The P number is a floating point number so fractions of a second may be used. G4 does not affect spindle, coolant and any I/O.

It is an error if:

the P number is negative or not specified.

7. G5 Cubic Spline

G5 creates a cubic B-spline in the XY plane with the X and Y axes only. P and Q must both be specified for every G5 command.

For the first G5 command in a series of G5 commands, I and J must both be specified. For subsequent G5 commands, either both I and J must be specified, or neither. If I and J are unspecified, the starting direction of this cubic will automatically match the ending direction of the previous cubic (as if I and J are the negation of the previous P and Q).

For example, to program a curvy N shape:

A second curvy N that attaches smoothly to this one can now be made without specifying I and J:

It is an error if:

P and Q are not both specified

Just one of I or J are specified

I or J are unspecified in the first of a series of G5 commands

An axis other than X or Y is specified

The active plane is not G17

8. G5.1 Quadratic Spline

G5.1 creates a quadratic B-spline in the XY plane with the X and Y axis only. Not specifying I or J gives zero offset for the unspecified axis, so one or both must be given.

For example, to program a parabola, through the origin, from X-2 Y4 to X2 Y4:

It is an error if:

both I and J offset are unspecified or zero

An axis other than X or Y is specified

The active plane is not G17

9. G5.2 G5.3 NURBS Block

Warning: G5.2, G5.3 is experimental and not fully tested.

G5.2 is for opening the data block defining a NURBS and G5.3 for closing the data block. In the lines between these two codes the curve control points are defined with both their related weights (P) and the parameter (L) which determines the order of the curve.

The current coordinate, before the first G5.2 command, is always taken as the first NURBS control point. To set the weight for this first control point, first program G5.2 P- without giving any X Y.

The default weight if P is unspecified is 1. The default order if L is unspecified is 3.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

More information on NURBS can be found here:

10. G7 Lathe Diameter Mode

Program G7 to enter the diameter mode for axis X on a lathe. When in the diameter mode the X axis moves on a lathe will be 1/2 the distance to the center of the lathe. For example X1 would move the cutter to 0.500” from the center of the lathe thus giving a 1” diameter part.

11. G8 Lathe Radius Mode

Program G8 to enter the radius mode for axis X on a lathe. When in Radius mode the X axis moves on a lathe will be the distance from the center. Thus a cut at X1 would result in a part that is 2″ in diameter. G8 is default at power up.

12. G10 L1 Set Tool Table

G10 L1 sets the tool table for the P tool number to the values of the words.

A valid G10 L1 rewrites and reloads the tool table.

It is an error if:

Cutter Compensation is on

The P number is unspecified

The P number is not a valid tool number from the tool table

The P number is 0

For more information on cutter orientation used by the Q word, see the Lathe Tool Orientation diagram.

13. G10 L2 Set Coordinate System

G10 L2 offsets the origin of the axes in the coordinate system specified to the value of the axis word. The offset is from the machine origin established during homing. The offset value will replace any current offsets in effect for the coordinate system specified. Axis words not used will not be changed.

Program P0 to P9 to specify which coordinate system to change.

Table 1. Coordinate System

Optionally program R to indicate the rotation of the XY axis around the Z axis. The direction of rotation is CCW as viewed from the positive end of the Z axis.

All axis words are optional.

Being in incremental distance mode (G91) has no effect on G10 L2.

G10 L2 Pn does not change from the current coordinate system to the one specified by P, you have to use G54-59.3 to select a coordinate system.

When a rotation is in effect jogging an axis will only move that axis in a positive or negative direction and not along the rotated axis.

If a G52 local offset or G92 origin offset was in effect before G10 L2, it will continue to be in effect afterwards.

When programming a coordinate system with R, any G52 or G92 will be applied after the rotation.

The coordinate system whose origin is set by a G10 command may be active or inactive at the time the G10 is executed. If it is currently active, the new coordinates take effect immediately.

It is an error if:

The P number does not evaluate to an integer in the range 0 to 9.

An axis is programmed that is not defined in the configuration.

In the above example the origin of the first coordinate system (the one selected by G54) is set to be X=3.5 and Y=17.2. Because only X and Y are specified, the origin point is only moved in X and Y; the other coordinates are not changed.

The above example sets the XYZ coordinates of the coordinate system 1 to the machine origin.

The coordinate system is described in the Coordinate System Section.

14. G10 L10 Set Tool Table

G10 L10 changes the tool table entry for tool P so that if the tool offset is reloaded, with the machine in its current position and with the current G5x and G52/G92 offsets active, the current coordinates for the given axes will become the given values. The axes that are not specified in the G10 L10 command will not be changed. This could be useful with a probe move as described in the G38 section.

See T & M6, and G43/G43.1 sections for more information.

It is an error if:

Cutter Compensation is on

The P number is unspecified

The P number is not a valid tool number from the tool table

The P number is 0

15. G10 L11 Set Tool Table

G10 L11 is just like G10 L10 except that instead of setting the entry according to the current offsets, it is set so that the current coordinates would become the given value if the new tool offset is reloaded and the machine is placed in the G59.3 coordinate system without any G52/G92 offset active.

This allows the user to set the G59.3 coordinate system according to a fixed point on the machine, and then use that fixture to measure tools without regard to other currently-active offsets.

It is an error if:

Cutter Compensation is on

The P number is unspecified

The P number is not a valid tool number from the tool table

The P number is 0

16. G10 L20 Set Coordinate System

G10 L20 is similar to G10 L2 except that instead of setting the offset/entry to the given value, it is set to a calculated value that makes the current coordinates become the given value.

It is an error if:

The P number does not evaluate to an integer in the range 0 to 9.

An axis is programmed that is not defined in the configuration.

These codes set the current plane as follows:

The UV, WU and VW planes do not support arcs.

It is a good idea to include a plane selection in the preamble of each G code file.

The effects of having a plane selected are discussed in Section G2 G3 Arcs and Section G81 G89

18. G20, G21 Units

It is a good idea to include units in the preamble of each G code file.

19. G28, G28.1 Go/Set Predefined Position

P ValueCoordinate SystemG code
Only use G28 when your machine is homed to a repeatable position and the desired G28 position has been stored with G28.1.

G28 uses the values stored in parameters 5161-5169 as the X Y Z A B C U V W final point to move to. The parameter values are absolute machine coordinates in the native machine units as specified in the ini file. All axes defined in the ini file will be moved when a G28 is issued. If no positions are stored with G28.1 then all axes will go to the machine origin.

It is an error if :

Cutter Compensation is turned on

20. G30, G30.1 Go/Set Predefined Position

Only use G30 when your machine is homed to a repeatable position and the desired G30 position has been stored with G30.1.

G30 functions the same as G28 but uses the values stored in parameters 5181-5189 as the X Y Z A B C U V W final point to move to. The parameter values are absolute machine coordinates in the native machine units as specified in the ini file. All axes defined in the ini file will be moved when a G30 is issued. If no positions are stored with G30.1 then all axes will go to the machine origin.

G30 parameters will be used to move the tool when a M6 is programmed if TOOL_CHANGE_AT_G30=1 is in the [EMCIO] section of the ini file.

It is an error if :

Cutter Compensation is turned on

21. G33 Spindle Synchronized Motion

For spindle-synchronized motion in one direction, code G33 X- Y- Z- K- where K gives the distance moved in XYZ for each revolution of the spindle. For instance, if starting at Z=0, G33 Z-1 K.0625 produces a 1 inch motion in Z over 16 revolutions of the spindle. This command might be part of a program to produce a 16TPI thread. Another example in metric, G33 Z-15 K1.5 produces a movement of 15mm while the spindle rotates 10 times for a thread of 1.5mm.

Spindle-synchronized motion waits for the spindle index and spindle at speed pins, so multiple passes line up. G33 moves end at the programmed endpoint. G33 could be used to cut tapered threads or a fusee.

All the axis words are optional, except that at least one must be used.

K follows the drive line described by X- Y- Z-. K is not parallel to the Z axis if X or Y endpoints are used for example when cutting tapered threads.

At the beginning of each G33 pass, LinuxCNC uses the spindle speed and the machine acceleration limits to calculate how long it will take Z to accelerate after the index pulse, and determines how many degrees the spindle will rotate during that time. It then adds that angle to the index position and computes the Z position using the corrected spindle angle. That means that Z will reach the correct position just as it finishes accelerating to the proper speed, and can immediately begin cutting a good thread.

The pin spindle.N.at-speed must be set or driven true for the motion to start. Additionally spindle.N.revs must increase by 1 for each revolution of the spindle and the spindle.N.index-enable pin must be connected to an encoder (or resolver) counter which resets index-enable once per rev.

See the Integrators Manual for more information on spindle synchronized motion.

See G90 & G0 & M2 sections for more information.

It is an error if:

All axis words are omitted.

The spindle is not turning when this command is executed

The requested linear motion exceeds machine velocity limits due to the spindle speed

22. G33.1 Rigid Tapping

For Z only tapping preposition the XY location prior to calling G33.1 and only use a Z word in the G33.1. If the coordinates specified are not the current coordinates when calling G33.1 for tapping the move will not be along the Z axis but will be a coordinated, spindle-synchronized move from the current location to the location specified and back.

For rigid tapping (spindle synchronized motion with return), code G33.1 X- Y- Z- K- where K- gives the distance moved for each revolution of the spindle.

A rigid tapping move consists of the following sequence:

A move from the current coordinate to the specified coordinate, synchronized with the selected spindle at the given ratio and starting from the current coordinate with a spindle index pulse.

When reaching the endpoint, a command to reverse the spindle, and speed up by a factor set by the multiplier (e.g., from clockwise to counterclockwise).

Continued synchronized motion beyond the specified end coordinate until the spindle actually stops and reverses.

Continued synchronized motion back to the original coordinate.

When reaching the original coordinate, a command to reverse the spindle a second time (e.g., from counterclockwise to clockwise).

Continued synchronized motion beyond the original coordinate until the spindle actually stops and reverses.

An unsynchronized move back to the original coordinate.

Spindle-synchronized motions wait for spindle index, so multiple passes line up.G33.1 moves end at the original coordinate.

All the axis words are optional, except that at least one must be used.

See G90 & G0 & M2 sections for more information.

It is an error if:

All axis words are omitted.

The spindle is not turning when this command is executed

The requested linear motion exceeds machine velocity limits due to the spindle speed

23. G38.n Straight Probe

Program G38.n axes to perform a straight probe operation. The axis words are optional, except that at least one of them must be used. The axis words together define the destination point that the probe will move towards, starting from the current location. If the probe is not tripped before the destination is reached G38.2 and G38.4 will signal an error.

The tool in the spindle must be a probe or contact a probe switch.

In response to this command, the machine moves the controlled point (which should be at the center of the probe ball) in a straight line at the current feed rate toward the programmed point. In inverse time feed mode, the feed rate is such that the whole motion from the current point to the programmed point would take the specified time. The move stops (within machine acceleration limits) when the programmed point is reached, or when the requested change in the probe input takes place, whichever occurs first.

After successful probing, parameters #5061 to #5069 will be set to the X, Y, Z, A, B, C, U, V, W coordinates of the location of the controlled point at the time the probe changed state (in the current work coordinate system). After unsuccessful probing, they are set to the coordinates of the programmed point. Parameter 5070 is set to 1 if the probe succeeded and 0 if the probe failed. If the probing operation failed, G38.2 and G38.4 will signal an error by posting an message on screen if the selected GUI supports that. And by halting program execution.

A comment of the form (PROBEOPEN filename.txt) will open filename.txt and store the 9-number coordinate consisting of XYZABCUVW of each successful straight probe in it. The file must be closed with (PROBECLOSE). For more information see the Comments Section.

An example file smartprobe.ngc is included (in the examples directory) to demonstrate using probe moves to log to a file the coordinates of a part. The program smartprobe.ngc could be used with ngcgui with minimal changes.

It is an error if:

the current point is the same as the programmed point.

no axis word is used

cutter compensation is enabled

the feed rate is zero

the probe is already in the target state

24. G40 Compensation Off

See G0 & M2 sections for more information.

It is an error if:

A G2/G3 arc move is programmed next after a G40.

The linear move after turning compensation off is less than the tool diameter.

25. G41, G42 Cutter Compensation

The D word is optional; if there is no D word the radius of the currently loaded tool will be used (if no tool is loaded and no D word is given, a radius of 0 will be used).

If supplied, the D word is the tool number to use. This would normally be the number of the tool in the spindle (in which case the D word is redundant and need not be supplied), but it may be any valid tool number.

G41/G42 D0 is a little special. Its behavior is different on random tool changer machines and nonrandom tool changer machines (see the Tool Change section). On nonrandom tool changer machines, G41/G42 D0 applies the Tool Length Offset of the tool currently in the spindle, or a TLO of 0 if no tool is in the spindle. On random tool changer machines, G41/G42 D0 applies the TLO of the tool T0 defined in the tool table file (or causes an error if T0 is not defined in the tool table).

To start cutter compensation to the left of the part profile, use G41. G41 starts cutter compensation to the left of the programmed line as viewed from the positive end of the axis perpendicular to the plane.

To start cutter compensation to the right of the part profile, use G42. G42 starts cutter compensation to the right of the programmed line as viewed from the positive end of the axis perpendicular to the plane.

The lead in move must be at least as long as the tool radius. The lead in move can be a rapid move.

Cutter compensation may be performed if the XY-plane or XZ-plane is active.

User M100-M199 commands are allowed when Cutter Compensation is on.

The behavior of the machining center when cutter compensation is on is described in the Cutter Compensation Section along with code examples.

It is an error if:

The D number is not a valid tool number or 0.

The YZ plane is active.

Cutter compensation is commanded to turn on when it is already on.

26. G41.1, G42.1 Dynamic Cutter Compensation

G41.1 & G42.1 function the same as G41 & G42 with the added scope of being able to program the tool diameter. The L word defaults to 0 if unspecified.

It is an error if:

The YZ plane is active.

The L number is not in the range from 0 to 9 inclusive.

The L number is used when the XZ plane is not active.

Cutter compensation is commanded to turn on when it is already on.

27. G43 Tool Length Offset

G43 enables tool length compensation. G43 changes subsequent motions by offsetting the axis coordinates by the length of the offset. G43 does not cause any motion. The next time a compensated axis is moved, that axis’s endpoint is the compensated location.

G43 without an H word uses the currently loaded tool from the last Tn M6.

G43 Hn uses the offset for tool n.

G43 H0 is a little special. Its behavior is different on random tool changer machines and nonrandom tool changer machines (see the Tool Changers section). On nonrandom tool changer machines, G43 H0 applies the Tool Length Offset of the tool currently in the spindle, or a TLO of 0 if no tool is in the spindle. On random tool changer machines, G43 H0 applies the TLO of the tool T0 defined in the tool table file (or causes an error if T0 is not defined in the tool table).

It is an error if:

the H number is not an integer, or

the H number is negative, or

the H number is not a valid tool number (though note that 0 is a valid tool number on nonrandom tool changer machines, it means «the tool currently in the spindle»)

28. G43.1 Dynamic Tool Length Offset

See G90 & T & M6 sections for more information.

It is an error if:

motion is commanded on the same line as G43.1

29. G43.2 Apply additional Tool Length Offset

G43.2 applies an additional simultaneous tool offset.

You can sum together an arbitrary number of offsets by calling G43.2 more times. There are no built-in assumptions about which numbers are geometry offsets and which are wear offsets, or that you should have only one of each.

Like the other G43 commands, G43.2 does not cause any motion. The next time a compensated axis is moved, that axis’s endpoint is the compensated location.

It is an error if:

H is unspecified, or

the given tool number does not exist in the tool table

30. G49 Cancel Tool Length Compensation

It is OK to program using the same offset already in use. It is also OK to program using no tool length offset if none is currently being used.

31. G52 Local Coordinate System Offset

G52 is used in a part program as a temporary «local coordinate system offset» within the workpiece coordinate system. More information on G52 is in the Local and Global Offsets section.

32. G53 Move in Machine Coordinates

To move in the machine coordinate system, program G53 on the same line as a linear move. G53 is not modal and must be programmed on each line. G0 or G1 does not have to be programmed on the same line if one is currently active.

For example G53 G0 X0 Y0 Z0 will move the axes to the home position even if the currently selected coordinate system has offsets in effect.

See G0 section for more information.

It is an error if:

G53 is used without G0 or G1 being active,

or G53 is used while cutter compensation is on.

33. G54-G59.3 Select Coordinate System

The coordinate systems store the axis values and the XY rotation angle around the Z axis in the parameters shown in the following table.

Table 2. Coordinate System Parameters

It is an error if:

selecting a coordinate system is used while cutter compensation is on.

See the Coordinate System Section for an overview of coordinate systems.

34. G61 Exact Path Mode

35. G61.1 Exact Stop Mode

36. G64 Path Blending

G64 P- blending with tolerance.

It is a good idea to include a path control specification in the preamble of each G code file.

37. G73 Drilling Cycle with Chip Breaking

The G73 cycle is drilling or milling with chip breaking. This cycle takes a Q number which represents a delta increment along the Z axis.

If the current Z position is below the R position, The Z axis does a rapid move to the R position.

Move to the X Y coordinates

Move the Z-axis only at the current feed rate downward by delta or to the Z position, whichever is less deep.

Repeat steps 2 and 3 until the Z position is reached at step 2.

The Z axis does a rapid move to the R position.

It is an error if:

the Q number is negative or zero.

the R number is not specified

38. G74 Left-hand Tapping Cycle, Dwell

The G74 cycle is intended for tapping with floating chuck and dwell at the bottom of the hole.

Preliminary motion, as described in the Preliminary and In-Between Motion section.

Disable Feed and Speed Overrides.

Move the Z-axis at the current feed rate to the Z position.

Start spindle rotation clockwise.

Dwell for the P number of seconds.

Move the Z-axis at the current feed rate to clear Z

Restore Feed and Speed override enables to previous state

The length of the dwell is specified by a P- word in the G74 block. Thread pitch is F divided by S. In example S100 F125 gives pitch of 1.25MM per revolution.

39. G76 Threading Cycle

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

SelectCSXYZABCUVWR
When G7 Lathe Diameter Mode is in force the values for I, J and K are diameter measurements. When G8 Lathe Radius Mode is in force the values for I, J and K are radius measurements.

The tool is moved to the initial X and Z positions prior to issuing the G76. The X position is the drive line and the Z position is the start of the threads.

The tool will pause briefly for synchronization before each threading pass, so a relief groove will be required at the entry unless the beginning of the thread is past the end of the material or an entry taper is used.

Unless using an exit taper, the exit move is not synchronized to the spindle speed and will be a rapid move. With a slow spindle, the exit move might take only a small fraction of a revolution. If the spindle speed is increased after several passes are complete, subsequent exit moves will require a larger portion of a revolution, resulting in a very heavy cut during the exit move. This can be avoided by providing a relief groove at the exit, or by not changing the spindle speed while threading.

The final position of the tool will be at the end of the drive line. A safe Z move will be needed with an internal thread to remove the tool from the hole.

It is an error if:

The active plane is not the ZX plane

Other axis words, such as X- or Y-, are specified

The R- degression value is less than 1.0.

All the required words are not specified

E- is greater than half the drive line length

The pins spindle.N.at-speed and the encoder.n.phase-Z for the spindle must be connected in your HAL file before G76 will work. See the spindle pins in the Motion section for more information.

The G76 canned cycle is based on the G33 Spindle Synchronized Motion. For more information see the G33 Technical Info.

The sample program g76.ngc shows the use of the G76 canned cycle, and can be previewed and executed on any machine using the sim/lathe.ini configuration.

In the figure the tool is in the final position after the G76 cycle is completed. You can see the entry path on the right from the Q29.5 and the exit path on the left from the L2 E0.045. The white lines are the cutting moves.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

40. Canned Cycles

The canned cycles G81 through G89 and the canned cycle stop G80 are described in this section.

All canned cycles are performed with respect to the currently-selected plane. Any of the nine planes may be selected. Throughout this section, most of the descriptions assume the XY-plane has been selected. The behavior is analogous if another plane is selected, and the correct words must be used. For instance, in the G17.1 plane, the action of the canned cycle is along W, and the locations or increments are given with U and V. In this case substitute U,V,W for X,Y,Z in the instructions below.

Rotary axis words are not allowed in canned cycles. When the active plane is one of the XYZ family, the UVW axis words are not allowed. Likewise, when the active plane is one of the UVW family, the XYZ axis words are not allowed.

40.1. Common Words

All canned cycles use X, Y, Z, or U, V, W groups depending on the plane selected and R words. The R (usually meaning retract) position is along the axis perpendicular to the currently selected plane (Z-axis for XY-plane, etc.) Some canned cycles use additional arguments.

40.2. Sticky Words

For canned cycles, we will call a number sticky if, when the same cycle is used on several lines of code in a row, the number must be used the first time, but is optional on the rest of the lines. Sticky numbers keep their value on the rest of the lines if they are not explicitly programmed to be different. The R number is always sticky.

In incremental distance mode X, Y, and R numbers are treated as increments from the current position and Z as an increment from the Z-axis position before the move involving Z takes place. In absolute distance mode, the X, Y, R, and Z numbers are absolute positions in the current coordinate system.

40.3. Repeat Cycle

40.4. Retract Mode

The height of the retract move at the end of each repeat (called clear Z in the descriptions below) is determined by the setting of the retract mode, either to the original Z position (if that is above the R position and the retract mode is G98, OLD_Z), or otherwise to the R position. See the G98 G99 Section.

40.5. Canned Cycle Errors

It is an error if:

axis words are all missing during a canned cycle,

axis words from different groups (XYZ) (UVW) are used together,

a P number is required and a negative P number is used,

an L number is used that does not evaluate to a positive integer,

rotary axis motion is used during a canned cycle,

inverse time feed rate is active during a canned cycle,

or cutter compensation is active during a canned cycle.

If the XY plane is active, the Z number is sticky, and it is an error if:

the Z number is missing and the same canned cycle was not already active,

or the R number is less than the Z number.

If other planes are active, the error conditions are analogous to the XY conditions above.

40.6. Preliminary and In-Between Motion

Preliminary motion is a set of motions that is common to all of the milling canned cycles. If the current Z position is below the R position, the Z axis does a rapid move to the R position. This happens only once, regardless of the value of L.

In addition, at the beginning of the first cycle and each repeat, the following one or two moves are made

A rapid move parallel to the XY-plane to the given XY-position,

The Z-axis make a rapid move to the R position, if it is not already at the R position.

If another plane is active, the preliminary and in-between motions are analogous.

40.7. Why use a canned cycle?

There are at least two reasons for using canned cycles. The first is the economy of code. A single bore would take several lines of code to execute.

The G81 Example 1 demonstrates how a canned cycle could be used to produce 8 holes with ten lines of G code within the canned cycle mode. The program below will produce the same set of 8 holes using five lines for the canned cycle. It does not follow exactly the same path nor does it drill in the same order as the earlier example. But the program writing economy of a good canned cycle should be obvious.

Line numbers are not needed but help clarify these examples

The G98 to the second line above means that the return move will be to the value of Z in the first line since it is higher that the R value specified.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

This example demonstrates the use of the L word to repeat a set of incremental drill cycles for successive blocks of code within the same G81 motion mode. Here we produce 12 holes using five lines of code in the canned motion mode.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

The second reason to use a canned cycle is that they all produce preliminary moves and returns that you can anticipate and control regardless of the start point of the canned cycle.

41. G80 Cancel Canned Cycle

It is an error if:

Axis words are programmed when G80 is active.

The following code produces the same final position and machine state as the previous code.

The advantage of the first set is that, the G80 line clearly turns off the G81 canned cycle. With the first set of blocks, the programmer must turn motion back on with G0, as is done in the next line, or any other motion mode G word.

If a canned cycle is not turned off with G80 or another motion word, the canned cycle will attempt to repeat itself using the next block of code that contains an X, Y, or Z word. The following file drills (G81) a set of eight holes as shown in the following caption.

Notice the z position change after the first four holes. Also, this is one of the few places where line numbers have some value, being able to point a reader to a specific line of code.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

The use of G80 in line N200 is optional because the G0 on the next line will turn off the G81 cycle. But using the G80 as shown in Example 1, will provide for easier to read canned cycle. Without it, it is not so obvious that all of the blocks between N120 and N200 belong to the canned cycle.

42. G81 Drilling Cycle

The G81 cycle is intended for drilling.

The cycle functions as follows:

Preliminary motion, as described in the Preliminary and In-Between Motion section.

Move the Z-axis at the current feed rate to the Z position.

The Z-axis does a rapid move to clear Z.

Suppose the current position is (X1, Y2, Z3) and the following line of NC code is interpreted.

This calls for absolute distance mode (G90) and OLD_Z retract mode (G98) and calls for the G81 drilling cycle to be performed once.

The X value and X position are 4.

The Y value and Y position are 5.

The Z value and Z position are 1.5.

The R value and clear Z are 2.8. OLD_Z is 3.

The following moves take place:

a rapid move parallel to the XY plane to (X4, Y5)

a rapid move move parallel to the Z-axis to (Z2.8).

move parallel to the Z-axis at the feed rate to (Z1.5)

a rapid move parallel to the Z-axis to (Z3)

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Suppose the current position is (X1, Y2, Z3) and the following line of NC code is interpreted.

The first preliminary move is a maximum rapid move along the Z axis to (X1,Y2,Z4.8), since OLD_Z Z

This is a plot of the path of motion for the second g81 block of code.

Since this plot starts with (X0, Y0, Z0), the interpreter adds the initial Z0 and R1.8 and rapid moves to that location. After that initial Z move, the repeat feature works the same as it did in example 3 with the final Z depth being 0.6 below the R value.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Since this plot starts with (X0, Y0, Z0), the interpreter adds the initial Z0 and R1.8 and rapid moves to that location as in Example 4. After that initial Z move, the rapid move to X4 Y5 is done. Then the final Z depth being 0.6 below the R value. The repeat function would make the Z move in the same location again.

G-коды для программирования станков с ЧПУ

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Для управления автоматизированными обрабатывающими центрами применяется язык программирования, созданный специально для этих целей, — G-Code. Программа генерации G-кодов для станков с ЧПУ была разработана американской компанией Electronic Industries Alliance. В СССР программа была введена стандартом ГОСТ 20999-83 и в технической литературе получила наименование ISO 7-bit (ИСО 7-бит).

Система G-кодов для управления оборудованием с ЧПУ и 3D-принтерами представляет собой высокоуровневый язык. Программа содержит список команд, расположенных в определенной последовательности, и может при необходимости редактироваться в любом текстовом редакторе. Также она открывается в специализированных приложениях G-CodeViewer или Simplify3D.

Описание G-кодов и структуры управляющей программы

Алгоритм работы обрабатывающего центра задается набором команд, расположенных в установленном порядке. Программы, созданные на основе джи-кодов для станков с ЧПУ, отличаются жесткой структурой. Отдельные команды группируются в кадры; в некоторых из них команда может быть одна, в других — несколько. Все группы, за исключением первой, в обязательном порядке нумеруются и начинаются символом номера. Допускается добавление комментариев в круглые скобки.

Элементарные команды в кадрах выполняются в один и тот же промежуток времени, но традиционно размещаются в такой последовательности:

У подавляющего большинства интерпретаторов языка G-команд для станков с ЧПУ число элементарных команд в пределах кадра не превышает шести. Они могут быть как модальными, так и немодальными. Первые используются для изменения настроек или параметров, и их действие распространяется на все следующие за ними кадры вплоть до появления другой модальной команды. Соответственно, немодальные команды работают только в пределах своей группы.

Интерпретаторы программного языка, содержащего коды для ЧПУ, сохраняют показатели введенных данных на все время работы алгоритма. Изменение их происходит путем отмены или последующей модальной командой. Это упрощает процесс разработки и делает необязательным задание всех параметров в каждом кадре.

Группы команд G-кодов

Подготовительные программные коды имеют разные функции и управляют различными технологическими операциями. Так, некоторые из них устанавливают линейную или круговую скорость перемещения рабочих органов оборудования, а другие задают режимы обработки детали. С их помощью указываются значения параметров, и осуществляется управление координатными системами: относительной и абсолютной.

Для удобства освоения и использования все команды разделены на группы по определенному признаку. Перечислим основные:

Полный перечень групп G-кодов можно найти в справочниках по программированию на описываемом языке. Операторы станков с ЧПУ, как правило, изучают такие справочники в полном объеме.

Основные G-коды

Расшифровка всех G-кодов для ЧПУ дается в таблицах, которые можно найти в профильной учебной и технической литературе. Рассмотрим подробнее наиболее часто используемые команды:

Полная таблица кодов для ЧПУ содержит порядка 100 позиций с подробными описаниями команд. Выдержки из нее часто приводятся на профильных форумах в обсуждениях специалистов.

Написание G-кода и подготовительные функции

Перечисленные G-команды для ЧПУ считаются основными, но наряду с ними при написании программ используются и другие символы. Они имеют следующие значения:

Эти команды, помимо буквенных символов, содержат числовые параметры. Они указывают направление и скорость движения рабочих органов фрезерно-гравировальных устройств.

Подпрограммы, их запуск и уровни вложений

Функционал языка G-кодов для станков с ЧПУ предусматривает возможность циклического выполнения некоторого набора команд, в том числе размещенных в разных частях алгоритма. Такие неоднократно выполняемые последовательности операций называются подпрограммами, а каждая из них реализует заданный сценарий. При этом управление перемещением инструмента производится в системе относительных (инкрементных) координат. Переход к подпрограмме задается специальной командой G90, а выход из нее — G91.

В описании тела подпрограммы обязательно содержатся М-команды для ЧПУ, например, M30 (окончание). После нее допустимо использование команды M02, обозначающей завершение основной программы с именем вида O111 и любым другим аналогичным. Количество выполнений подпрограммы задается необязательным параметром L c числовым значением, например, L5. Тело обязательно завершается командой M99, предписывающей переход в основную программу.

Система M-кодов для ЧПУ допускает вложение подпрограмм одна в другую по принципу матрешки. При этом вызов вложения осуществляется специальным оператором. Количество уровней определяется конкретной версией программы-интерпретатора.

Компания MULTICUT осуществляет продажу высокопроизводительных обрабатывающих станков, а также выполняет их установку и обслуживание. Коды программирования для ЧПУ обязательно указываются в документации, входящей в комплект поставки. Наши инженеры предоставляют консультации по вопросам применения G-кодов по телефону и электронной почте.

Программирование. Основные G-коды

Фрезерные работы на станках с ЧПУ

Разберем синтаксис кадров перемещения режущего инструмента. Будем использовать в качестве основной плоскость XY.

Пример
Зададим текущее положение инструмента X12; Y22 и рассмотрим два случая.

1. Активен G90
G90
G0 X48.5 Y43
Перемещение ускоренного хода произойдет в координату X48.5 и Y43.

2. Активен G91
G91
G0 X48.5 Y43
Перемещение ускоренного хода произойдет на 18,5 мм в положительном направлении оси X и 43 мм в отрицательном направление оси Y, т. е. в координаты X60.5 и Y65.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Процесс резания осуществляется с использованием перемещения по линейной и круговой интерполяции.

1. Используя радиус дуги CR.

2. Используя координаты центра дуги (I, J, K по осям X, Y и Z).

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Часто требуется удалить материал снаружи или изнутри контура, сформировав при этом тот или иной элемент. Чтобы не нарушить границы контура, необходимо учитывать радиус инструмента. Другими словами, необходимо, чтобы траектория перемещения оси инструмента была смещена, или эквидистантна, обрабатываемому контуру.

1. Компенсация может быть включена/отключена только при прямолинейном движении.

2. В кадре включения компенсации длина перемещения должна быть больше длины используемой коррекции на радиус инструмента.

Рассмотрим смещения на примере обработки контура квадрата 90 × 90 мм.

1. Начало системы координат в центре.

2. Глубина фрезерования — 5 мм.

3. Обработка будет проводиться фрезой диаметром 10 мм с частотой вращения 10 000 об/мин и подачей 500 мм/мин.

4. Материал заготовки — сплав Д16Т.

Программирование. G1
1.
Подвод:
D1
G0 X−51 Y−51
G0 Z−5

2. Компенсация и перемещение линейно в первую точку:
G1 G41 X−45 Y−45 F500

3. Оставшаяся часть:
G1 Y45
G1 X45
G1 Y−45
G1 −45

4. Отвод инструмента и выключение коррекции:
G1 G40 X−51 Y−51

G-коды для станков с ЧПУ: таблица с примерами и обучение

Предлагаем выяснить, как задается траектория движения (и вообще последовательность действий) высокопроизводительного металлообрабатывающего оборудования. Подробно рассмотрим готовые G-коды для ЧПУ: с примерами, обучением оператора и другими нюансами, играющими достаточно важную роль. Максимум полезной информации – от возможных методов и актуальных стандартов до основных и подготовительных функций, от определений и терминов, до причин, по которым обслуживающему персоналу нужно разбираться в вопросе.

Начнем с того, что сегодня они применяются для всех видов оборудования с числовым управлением, как для профессионального и устанавливаемого на максимально ответственных объектах, так и для любительского. В своей совокупности они образуют базовое подмножество языка ISO 7 bit, позволяющего установить и проконтролировать режимы обработки деталей.

Что такое программирование ЧПУ G-кодами

Фактически это задание определенной последовательности команд, определяющих характер движения режущего инструмента и захватных органов, степень фиксации заготовки и другие параметры. По своей роли это ключевая часть технологического обеспечения металлообрабатывающего оборудования, устанавливаемого на современных производствах.

Написанный алгоритм отличается жесткой структурой и представляет собой последовательность кадров – групп из нескольких команд. Каждый такой блок, объединенный общей функцией, обладает порядковым номером и отделен от последующих и предыдущих переводом строки (символ ПС/LF). Это сделано для наглядности листинга.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Что такое G-код ЧПУ

Это система команд, воспринимаемых станками с программным управлением. Была создана еще на заре 60-х годов – ассоциацией EIA (Electronic Industries Alliance), – но до готового к использованию формата (RS274D) ее доработали только в 1980-м году. Позднее, на очередном заседании профильного комитета, ее утвердили в качестве стандарта ISO 6983-1:1982. В Советском Союзе для регламентации ее положений ввели ГОСТ 20999-83, а обозначать ее в технической литературе стали ИСО-7 бит.

С того времени и по сей день широко используется, как самостоятельно, так и в роли базового подмножества для создания сходных языков, постоянно совершенствуется и расширяется.

Методы программирования обработки деталей ДЖИ-кодами для ЧПУ

Существуют 3 принципиально разных варианта – каждый со своими особенностями, плюсами, минусами и спецификой применения. Кратко рассмотрим каждый способ из этой тройки, выделяя основные моменты.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Ручное

Алгоритм функционирования составляется в текстовом формате, в редакторе на удаленном компьютере. После чего переносится технологом в память оборудования – записывается с оптического диска, USB-устройства (раньше для этого также использовались дискеты), а при непосредственном соединении с ПК – через порты интерфейса.

На пульте УЧПУ

В данном случае ввод команд осуществляется с клавиатуры, размещенной на стойке. Каждый кадр (блок) отображается на дисплее, причем постоянные циклы могут быть представлены в виде пиктограмм (по выбору оператора) – для удобства, чтобы сократить листинг. Нюансы зависят от особенностей системы, например, интерфейс HEIDENHAIN или Fanuc диалоговый, поэтому последовательность действий можно задать интуитивным путем.

При помощи CAD/CAM

Наиболее прогрессивным способом справедливо считаются именно САПР, так как они помогают сократить временные затраты и уберечься от ошибок, которые особенно часты при сложных алгоритмах. Но для их эффективного использования нужно внедрить единые для всего производственного цикла электронные решения, что не всегда возможно.

Вручную сегодня вводятся G-коды для токарного станка с ЧПУ, и то тогда, когда нужно выполнить простые задачи, допустим, расточить отверстие или снять металл по двум направлениям, то есть в ситуациях, когда ошибки реально выявить сразу. С пульта можно задать все то же самое и переходы посложнее, с обработкой по 2,5 и 3 координатам. Это очень подходящий выбор для серийного выпуска деталей по шаблону.

После создания эскиза в ADEM, MasterCAM или другой популярной САПР в диалоговом режиме удобно выбирать оборудование, инструменты и дополнительные приспособления, пределы перемещения и степень коррекции. Возможности задания траектории максимально широки, а при современном уровне развития CAD/CAM не составит труда выполнить виртуальную симуляцию техпроцесса, обнаружить сразу заметные ошибки вроде соударений, пропущенных припусков, зарезов, и исключить их.

Почему стоит изучать программирование ЧПУ

Ответ очевиден – чтобы уметь писать оптимальные алгоритмы для выполнения конкретной технологической операции. Просто понимать команды и пользоваться готовыми решениями не всегда удобно – в силу следующих причин:

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Стандарты и диалекты G-кода для ЧПУ станка: примеры

Первые шаги по регламентированию совокупности команд предприняла уже упомянутая Ассоциация электронной промышленности (EIA), когда ввела RS-274. Со временем свод правил был дополнен и расширен, превратился в NIST RS-274NGC. Большинство его положений перешли в актуальный сегодня стандарт ISO 7 bit.

Диалекты – это ответвления языка, в рамках которых инженеры дописали свои функции, ориентированные на определенную специфику техпроцессов или помогающие положительно выделиться среди ряда конкурентов.

И так далее – диалектов много, они отличаются между собой уровнями поддержки и отображения, характером макро- и микроопераций, параметрами смещения и форматирования, инкрементными и абсолютными координатами.

Какие бывают G и M коды ЧПУ: описание

Сначала определим, в чем между ними разница. ДЖИ-команды являются основными и подготовительными, ЭМ – вспомогательными (технологическими). Записываются вместе, в строчку (первые – в начале, вторые – в конце) или, другими словами, покадрово – для наглядности листинга. В результате алгоритм представляет собой совокупность символьных блоков – с адресами и числовыми значениями.

В задачи G-группы входит определение линейной или круговой скорости, а также направления движения рабочих инструментов оборудования. Кроме того, они обязаны регламентировать расточку отверстий и нарезание резьбы, управлять координированием и другими особенностями дополнительной аппаратуры.

М-коды программирования ЧПУ призваны дополнять основные, упрощая выполнение алгоритма. На практике их роль сводится к смене лезвий, сверл (или других органов), к вызову и завершению подпрограмм.

Помимо этих двух распространенных семейств, также есть:

Поэтому оператору крайне важно разбираться в разнообразии представленных символов, а умение читать их построчно вообще подразумевается – это необходимое условие для контроля выполнения технологических операций.

Подготовительные G-функции ЧПУ

Могут задавать скорость перемещения ножа (гильотины) или выбор плоскости резания, но в блоке всегда записываются первыми. После обязательной литеры – ДЖИ с символами – идут координаты, представленные в виде числовых значений.

В зависимости от своего назначения они определяют позицию рабочего органа, выполняют переключение, компенсируют диаметр и длину, определяют особенности сверления, расточки, резьбования (полный список соответствия мы приведем ниже). Важно, что при составлении алгоритма, в текстовом формате, они остаются наглядными: при должном опыте чтения листинга оператору не составляет труда понять, что содержит каждая из них.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Расшифровка G-кодов для ЧПУ

Основных функций достаточно много, поэтому подробнее рассмотрим те из них, которые чаще всего применяются на практике, и это:

Конечно, есть и другие, менее применимые, но все равно нужные и используемые. В процессе написания алгоритма инженер объединяет их в группы, заставляя взаимодействовать между собой и/или менять друг друга. От эффективности комбинаций зависит общая рациональность листинга, а значит и производительность выполнения технических операций.

Дополнительные функции и символы при программировании

Планируя последовательность действий сложного и высокоточного оборудования, лучше держать все возможные варианты в поле своего зрения и, при необходимости, сверяться, за что ответственен тот или иной ДЖИ. Поэтому мы и представляем их Вашему вниманию в максимально наглядном виде.

ПОЛЕЗНО Изучаем G коды (Общая справка по G кодам)

Подготовительные (основные) команды

Коды Описание
G00-G03 Позиционирование инструмента

G17-G19 Переключение рабочих плоскостей (XY, ZX, YZ)

G20-G21 Не стандартизовано

G40-G44 Компенсация размера различных частей инструмента (длина, диаметр)

G53-G59 Переключение систем координат

G80-G85 Циклы сверления, растачивания, нарезания резьбы

G90-G91 Переключение систем координат (абсолютная, относительная)

G00 Ускоренное перемещение инструмента (холостой ход) G0 X0 Y0 Z100

G01 Линейная интерполяция G01 X0 Y0 Z100 F200

G02 Круговая интерполяция по часовой стрелке G02 X15 Y15 R5 F200

G03 Круговая интерполяция против часовой стрелки G03 X15 Y15 R5 F200

G04 Задержка выполнения программы, способ задания величины задержки зависит от реализации системы управления G04

G15 Отмена полярной системы координат G15 X15 Y22.5; G15;

G16 Полярная система координат (X радиус Y угол) G16 X15 Y22.5

G17 Выбор рабочей плоскости X-Y

G18 Выбор рабочей плоскости X-Z

G19 Выбор рабочей плоскости Y-Z

G40 Отмена компенсации радиуса инструмента G1 G40 X0 Y0 F200

G41 Компенсировать радиус инструмента слева от траектории G41 X15 Y15 D1 F100

G42 Компенсировать радиус инструмента справа от траектории G42 X15 Y15 D1 F100

G43 Компенсировать длину инструмента положительно G43 X15 Y15 Z100 H1 S1000 M3

G44 Компенсировать длину инструмента отрицательно G44 X15 Y15 Z4 H1 S1000 M3

G49 Отмена компенсации длины инструмента G49 Z100

G53 Отключить смещение начала системы координат станка G53 G0 X0 Y0 Z0

G54-G59 Переключиться на заданную оператором систему координат G54 G0 X0 Y0 Z100

G70 Программировать в inch M70

G71 Программировать в мм M71

G73 Вращать M73

G75 Фрезеровка четырехугольной камеры по часовой стрелке, против движения M75

G76 Фрезеровка четырехугольной камеры против часовой стрелке, по движению M75

G77 Фрезеровка круглой камеры против часовой стрелке, по движению M77

G78 Фрезеровка круглой камеры по часовой стрелке, против движения M78

G80 Отмена циклов сверления, растачивания, нарезания резьбы метчиком и т. д. G80

G81 Цикл сверления G81 X0 Y0 Z-10 R3 F100

G82 Цикл сверления с задержкой G82 X0 Y0 Z-10 R3 P100 F100

G83 Цикл прерывистого сверления (с полным выводом сверла) G83 X0 Y0 Z-10 R3 Q8 F100

G84 Цикл нарезания резьбы G95 G84 M29 X0 Y0 Z-10 R3 F1.411

G90 Задание абсолютных координат опорных точек траектории G90 G1 X0.5 Y0.5 F10

G91 Задание координат инкрементально последней введённой опорной точки G91 G1 X4 Y5 F100

G94 F (подача) — в формате мм/мин. G94 G80 Z100

G95 F (подача) — в формате мм/об. G95 G84 X0 Y0 Z-10 R3 F1.411

максимум 4 команды в кадре

Таблица технологических кодов

Технологические команды языка начинаются с буквы М. Включают такие действия, как:

Работа с подпрограммами

Вспомогательные (технологические) команды

M00 Приостановить работу станка до нажатия кнопки «старт» на пульте управления, так называемый «безусловный технологический останов» G0 X0 Y0 Z100 M0

M01 Приостановить работу станка до нажатия кнопки «старт», если включён режим подтверждения останова G0 X0 Y0 Z100 M1

M02 Конец программы, без сброса модальных функций M02

M03 Начать вращение шпинделя по часовой стрелке M3 S2000

M04 Начать вращение шпинделя против часовой стрелки M4 S2000

M05 Остановить вращение шпинделя M5

M06 Сменить инструмент T15 M6

M07 Включить дополнительное охлаждение M3 S2000 M7

M08 Включить основное охлаждение. Иногда использование более одного M-кода в одной строке (как в примере) недопустимо, для этого используются M13 и M14 M3 S2000 M8

M09 Выключить охлаждение G0 X0 Y0 Z100 M5 M9

M13 Включить охлаждение и вращение шпинделя по часовой стрелке S2000 M13

M14 Включить охлаждение и вращение шпинделя против часовой стрелки S2000 M14

M17 Конец подпрограммы M17

M25 Замена инструмента вручную M25

M99 Конец подпрограммы M99

M30 Конец программы, со сбросом модальных функций M30

не больше одного кода в кадре

Параметры команд задаются буквами латинского алфавита

Код Описание Пример

X Координата точки траектории по оси X G0 X100 Y0 Z0

Y Координата точки траектории по оси Y G0 X0 Y100 Z0

Z Координата точки траектории по оси Z G0 X0 Y0 Z100

P Параметр команды G04 P101

F Скорость рабочей подачи G1 G91 X10 F100

S Скорость вращения шпинделя S3000 M3

R Параметр стандартного цикла или радиус дуги (расширение стандарта) G81 R1 0 R2 −10 F50 или G1 G91 X12.5 R12.5

H Параметр коррекции выбранного инструмента G1 G41 D1 X10. F150.

P Число вызовов подпрограммы L82 P10

I,J,K Параметры дуги при круговой интерполяции G03 X10 Y10 I0 J0 F10

L Вызов подпрограммы с данной меткой L12

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

C G21 начинается команда управления щупом изначально, т.е. не может быть не стандартизирована.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Skelati

Я бы добавил сюда в начале поддерживаемые коды GRBL и к ним уже описание.
Выборочный перевод с github
Интерпретатор G-кода реализует подмножество стандарта LinuxCNC и поддерживается большинством CAM-инструментов без проблем. В превосходной документации LinuxCNC с описанием их G-кодов (краткий справочник по G-кодам) и вики Shapeoko, в которой предпринята попытка перечислить все коды, поддерживаемые Grbl, с соответствующими комментариями. Обратите внимание, что есть только несколько отклонений от письменного стандарта G-кода, перечисленного ниже. Если вы заметили какие-либо другие несоответствия, сообщите об этом!

Поддерживаемые G-коды в v1.1

Что такое G-код для станков с ЧПУ

Программы с G-кодом пишутся в виде текстового формата, каждую строчку называют кадром. Кадр состоит из буквенного символа – это адрес и цифра, в которой выражено числовое значение. Коды бывают основными и вспомогательными. На основе такой программы работает токарный и фрезерный станок с ЧПУ.

Для станков с программным числовым управлением существует специальный язык. Этот язык называют ISO 7 bit. Система G кодов для ЧПУ представляет собой специальные команды для работы фрезерных и токарных станков с ПУ, в командах задаются специальные параметры. Обучение ЧПУ программированию производится в технических колледжах или на курсах дополнительного образования.

Что такое G-код

Кодовая система для токарно – фрезерных станков с ЧПУ представляет собой особую группу команд, которые распознаются станками с функциями программного управления. Кодовая система была разработана компанией Electronic Industries Allience в 1960 году и доработана в 1980 году. С 1982 года она начала действовать в России. Кодовый язык входит в структуру основ программирования, он непрерывно совершенствуется и изменяется.

Какие бывают G-коды

Программы с G-кодом пишутся в виде текстового формата, каждую строчку называют кадром. Кадр состоит из буквенного символа – это адрес и цифра, в которой выражено числовое значение. Коды бывают основными и вспомогательными. На основе такой программы работает токарный и фрезерный станок с ЧПУ.

Команды группы G называют подготовительными. Они задают движение рабочих элементов на станке с определенной скоростью. Скорость может быть круговой или линейной. Также G-код используется для обработки отверстий и резьбы. Еще одной функцией является управление параметрами и координатными системами аппаратуры.

Основные команды программы направлены на выполнение следующих функций:

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Символы бывают разными: М выполняет вспомогательные функции, такая команда необходима для смены инструмента, вызова подпрограммы и ее завершения, S – это функция основного движения, F – подача, Т, D, Н являются выражением функций инструмента.

Значение символа зависит от вида станка с ЧПУ. Программирование осуществляется на основе этих кодов.

Подготовительные функции

Подготовительные функции в кодовой системе выражены символом G. Каждому коду соответствует особенное значение. Все подготовительные команды, к примеру, выбор рабочей плоскости или выбор скорости перемещения, задаются первыми в программе. В коде зашифрована определенная функция. Числовыми значениями задаются параметры.

Расшифровка основных G кодов для ЧПУ

Перейдем к рассмотрению того, как расшифровываются основные G коды для станков с ПУ.

Задает скоростное позиционирование. Ее используют, когда нужно быстро переместить режущий инструмент в готовое состояние для начала работы или поместить его в безопасную позицию. Ускоренный вариант не применяют в процессе обработки деталей, поскольку скорость, которая развивается в данном случае, очень высока. Данную команду можно отменить с помощью команды G01, G02, G03.

Представляет собой линейную интерполяцию. Такая команда необходима для движения инструмента по прямой, скорость задается символом F. Отмена функции осуществляется кодами G00, G02, G03. Пример записи команды: G01 X20 Y150 F60.

Задает движение по часовой стрелке, режущий инструмент начинает двигаться по дугообразной траектории, скорость задается символом F. Также задаются параметры в координатной плоскости. Символы I, J, K – определяющие координаты дуги в плоскости. Отмена осуществляется кодами G00, G01, G03.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Это движение против часовой стрелки по дуге с заданной скоростью.

Задают перерыв в работе. продолжительность паузы задается Х или Р символом. Обычно пауза длится около одной секунды.

Задает плоскость. С помощью кода G17 выбирают координаты XY. Такая функция необходима для вращающихся движений и процесса сверления.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Задает плоскость в координатах XZ, эта плоскость становится рабочей в процессе круговой интерполяции, вращательных движениях и процессе сверления.

Позволяет выбрать рабочую площадь в координатах YZ. Такая функция необходима для движения инструмента в круговой интерполяции и постоянном цикле сверления.

Позволяет вводить данные в дюймовых измерениях. Функция предназначена для работы с дюймовыми показателями.

Позволяет работать с метрическими показателями. Он необходим при работе с данными, выраженными в метрах.

Отменяет функцию автоматической коррекции на заданный радиус инструмента, задаваемого G41 и G42.

Включает автокоррекцию на радиус инструмента, который располагается слева от обрабатываемой детали относительно хода его движения. В программу также входит функция D.

Аналогичен коду G41, он предназначен для автокоррекции на радиус, расположенный справа от обрабатываемой детали. Программу также задают с функцией D.

Необходим для компенсации длины инструмента, корректирует его положение и задается вместе с функцией инструмента Н.

Задает локальные координатные параметры помимо стандартных параметров.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Позволяет переключаться на координатную систему рабочего станка.

G54 – G59

Осуществляют заданное смещение рабочего элемента относительно координатных параметров станка. Используя коды G54, G55, G56, G57, G58, G59 можно определить, в какой именно системе координат будет совершаться работа. Меняя коды, программист получает возможность обрабатывать разнообразные детали.

Если кодами G54 – G59 была задана какая-либо координатная система, то она будет действовать до тех пор, пока не будет отменена, и введутся другие параметры.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Представляет собой режим резки, при этом автоматически отменяются другие функции.

Задается вращение координат, команда позволяет смещать координатную систему под определенным углом. Плоскость вращения, центр и угол поворота задается командами G17, G18, G19, R. Команда G69 отменяет эту функцию.

Позволяет делать отверстия в изделиях.

Это функция высокоскоростного сверления отверстий.

Используется для нарезания левой резьбы.

G81, G82, G83

Используются для цикла сверления: стандартного, с выдержкой и прерывистого.

G85 – G87

Позволяют осуществлять разные циклы растачивания.

Позволяет установить абсолютные накопители положения.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Задает параметры оборотов, производимых за одну минуту.

Все коды взаимодействуют между собой и образовывают отдельную группу. В системе программы одна функция сменяется другой. Пример кодовой программы можно найти в интернете. Кодовая таблица должна быть в поле зрения во время программирования.

Требования к написанию программы

Программы, которые пишут для станка с ЧПУ на основе использования джи кодов, имеют определенную совершенно четкую структуру, которая состоит из нескольких команд. Все команды для работы со станком объединяются по группам – кадрам. Завершение одного кадра отмечается символом CR/LF, программу заканчивает вспомогательный код М02 или М30.

Если к программе необходимо сделать комментарий, то его размещают в круглых скобках. К примеру, (перемещение к точке начала фрезерования). Комментарий может находиться сразу после кода, но можно также и вынести его в отдельную строку.

Одна и та же команда может повторяться неоднократно, заданное количество раз в определенной последовательности. Программа пишется с помощью основных и вспомогательных функций. Ее считывают токарные и фрезерные станки.

Генерированием кодов для работы за станком на производстве занимаются специальные программы. На каждом предприятии такая система действует отлажено и ее контролирует оператор. При необходимости любую программу можно сгенерировать самостоятельно с помощью специального программного обеспечения, которое можно скачать в интернете.

Никаких специальных знаний для этого не потребуется, достаточно иметь представление о декартовой системе координат, знать физические величины и определения из курса геометрии. В качестве примера можно воспользоваться уже готовой программой. Для работы потребуются таблицы с расшифровкой кодов.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Для создания кода необходимо иметь следующие знания:

На практике такие действия произвести несложно. Для того чтобы понять как устроена система, можно посмотреть пример записи команд, потребуется также вспомогательная таблица с кодами.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Существуют специальные сервисы, позволяющие создавать программы для станков онлайн, их можно генерировать на готовом примере. Никакое дополнительное программное обеспечение устанавливать на компьютер не потребуется. Все, что нужно, это выход в интернет. При программировании требуется особая внимательность, если ошибиться в ведении числового показания, можно повредить деталь или сломать станки. Программы, созданные таким образом, можно использовать на токарных, фрезерных, плазменных станках и обрабатывать самые разные материалы.

RoboZone.SU

Описание G и M кодов для программирования ЧПУ (CNC) станков

Сводная таблица кодов

Основные, в стандарте называются подготовительными, команды языка начинаются с буквы G:

Подготовительные (основные) команды

КодыОписание
G00-G04Позиционирование инструмента
G17-G19Переключение рабочих плоскостей (XY, XZ, YZ)
G20-G21Не стандаризовано
G40-G44Компенсация размера различных частей инструмента (длина, диаметр)
G53-G59Переключение систем координат
G80-G84Циклы сверления, нарезания резьбы
G90-G92Переключение систем координат (абсолютная, относительная)

Таблица основных команд

КодОписаниеПример
G00Ускоренное перемещение инструмента (холостой ход)G0 X0 Y0 Z100;
G01Линейная интерполяцияG01 X0 Y0 Z100 F200;
G02Круговая интерполяция по часовой стрелкиG02 X15 Y15 R5 F200;
G03Круговая интерполяция против часовой стрелкиG03 X15 Y15 R5 F200;
G04Задержка на P миллисекундG04 P500;
G10Задать новые координаты для начала координатG10 X10 Y10 Z10;
G11Отмена G10G11;
G15Отмена G16G15 G90;
G16Переключение в полярную систему координатG16 G91 X100 Y90;
G20Режим работы в дюймовой системеG90 G20;
G21Режим работы в метрической системеG90 G21;
G22Активировать установленый предел перемещений (Станок не выйдет за их предел).G22 G01 X15 Y25;
G23Отмена G22G23 G90 G54;
G28Вернуться на референтную точкуG28 G91 Z0 Y0;
G30Поднятие по оси Z на точку смены инструментаG30 G91 Z0;
G40Отмена компенсации размера инструментаG1 G40 X0 Y0 F200;
G41Компенсировать радиус инструмента слеваG41 X15 Y15 D1 F100;
G42Компенсировать радиус инструмента справаG42 X15 Y15 D1 F100;
G43Компенсировать высоту инструмента положительноG43 X15 Y15 Z100 H1 S1000 M3;
G44Компенсировать высоту инструмента отрицательноG44 X15 Y15 Z4 H1 S1000 M3;
G53Переключиться на систему координат станкаG53 G0 X0 Y0 Z0;
G54-G59Переключиться на заданную оператором систему координатG54 G0 X0 Y0 Z100;
G68Поворот координат на нужный уголG68 X0 Y0 R45;
G69Отмена G68G69;
G80Отмена циклов сверления (G81-G84)G80 Z100;
G81Цикл сверленияG81 X0 Y0 Z-10 R3 F100;
G82Цикл сверления с задержкойG82 X0 Y0 Z-10 R3 P100 F100;
G83Цикл сверления с отходомG83 X0 Y0 Z-10 R3 Q8 F100;
G84Цикл нарезание резьбыG95 G84 X0 Y0 Z-10 R3 F1.411;
G90Абсолютная система координатG90 G21;
G91Относительная система координатG91 G1 X4 Y5 F100;
G94F (подача)- в формате мм/мин.G94 G80 Z100;
G95F (подача)- в формате мм/об.G95 G84 X0 Y0 Z-10 R3 F1.411;
G98Отмена G99G98 G15 G90;
G99После каждого цикла не отходить на «подходную точку»G99 G91 X10 K4;

Технологические команды языка начинаются с буквы М. Включают такие действия, как:

Вспомогательные (технологические) команды

КодОписаниеПример
M00Приостановить работу станка до нажатия кнопки «старт» на пульте управления, так называемый «технологический останов»G0 X0 Y0 Z100 M0;
M01Приостановить работу станка до нажатия кнопки «старт», если включен режим подтверждения остановаG0 X0 Y0 Z100 M1;
M02Конец программыM02;
M03Начать вращение шпинделя по часовой стрелкеM3 S2000;
M04Начать вращение шпинделя против часовой стрелкиM4 S2000;
M05Остановить вращение шпинделяM5;
M06Сменить инструментM6 T15;
M07Включить дополнительное охлаждениеM3 S2000 M7;
M08Включить основное охлаждениеM3 S2000 M8;
M09Выключить охлаждениеG0 X0 Y0 Z100 M5 M9;
M30Конец информацииM30;
M98Вызов подпрограммыM98 P101;
M99Конец подпрограммы, возврат к основной программеM99;

Параметры команд задаются буквами латинского алфавита

Что такое G-CODE? Как читать команды G-кода?

Если ваша работа или хобби связана со станками с ЧПУ или 3D-принтерами, то понимание того, что такое G-CODE и как он работает, имеет важное значение. Итак, в этом руководстве мы изучим основы языка G-кода, рассмотрим, как читать команды G-кода.

В статье про команды GRBL v1.1 я уже рассказывал об основных командах G-code. Сегодня рассмотрим подробнее структуру команд и как их читать.

Что такое G-CODE?

G-code – это язык программирования для станков с числовым программным управлением (ЧПУ). G-код означает «геометрический код». Мы используем этот язык, чтобы сказать машине, что делать или как это делать. Команды G-кода указывают машине, куда двигаться, с какой скоростью двигаться, и по какому пути.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g codeВ станках, таких как токарный или фрезерный, режущий инструмент приводится в действие этими командами, чтобы задать определенную траекторию перемещения инструменту, срезая материал. В результате получая желаемую форму заготовки.

Точно так же, в случае аддитивного производства или 3D-принтеров команды G-кода инструктируют машину наносить материал слой за слоем, формируя точную геометрическую форму.

Как читать команды G-кода?

На первый взгляд, когда вы видите файл G-кода, он может показаться довольно сложным, но на самом деле, его не так уж и сложно понять.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Если внимательно посмотрим на код, мы можем заметить, что большинство строк имеют одинаковую структуру. «Сложная» часть G-кода являются просто координатами.

Давайте взглянем на одну строчку и объясним, как она работает.

G01 X25 Y50 Z-1 F100

Строка имеет следующую структуру:

Проверить полученный код можно в программе NC Viewer, которая позволяет редактировать G-Code и симулировать программу для ЧПУ станка.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g codeПонравился статья Что такое G-CODE? Как читать команды G-кода? Не забудь поделиться с друзьями в соц. сетях.

А также подписаться на наш канал на YouTube, вступить в группу Вконтакте, в группу на Facebook.

Спасибо за внимание!

Технологии начинаются с простого!

Команды g code

G-код — условное именование языка программирования устройств с ЧПУ (Числовое программное управление). Был создан компанией Electronic Industries Alliance в начале 1960-х. Финальная доработка была одобрена в феврале 1980 года как стандарт RS274D. Комитет ИСО утвердил G-код, как стандарт ISO 6983-1:1982, Госкомитет по стандартам СССР — как ГОСТ 20999-83. В советской технической литературе G-код обозначается, как код ИСО 7-бит (ISO 7-bit).

Производители систем управления используют G-код в качестве базового подмножества языка программирования, расширяя его по своему усмотрению.

Содержание

Структура программы

Программа, написанная с использованием G-кода, имеет жесткую структуру. Все команды управления объединяются в кадры — группы, состоящие из одной или более команд. Кадр завершается символом перевода строки (ПС/LF) и имеет номер, за исключением первого кадра программы и комментариев. Первый кадр содержит только один символ «%». Завершается программа командой M02 или M30. Комментарии к программе размещаются в круглых скобках, занимая отдельный кадр.

Порядок команд в кадре строго не оговаривается, но традиционно предполагается, что первыми указываются подготовительные команды, (например, выбор рабочей плоскости), затем команды перемещения, затем выбора режимов обработки и технологические команды.

Подпрограммы должны быть описаны после команды M02, но до M30. Начинается подпрограмма с кадра вида Lxx, где xx — номер подпрограммы, заканчивается командой M17.

Сводная таблица кодов

Основные (называемые в стандарте подготовительными) команды языка начинаются с буквы G:

Таблица основных команд

КодОписаниеПример
G00Ускоренное перемещение инструмента (холостой ход)G0 X0 Y0 Z100
G01Линейная интерполяцияG01 X0 Y0 Z100 F200
G02Круговая интерполяция по часовой стрелкеG02 X15 Y15 R5 F200
G03Круговая интерполяция против часовой стрелкиG03 X15 Y15 R5 F200
G04Задержка на E миллисекундG04 E500
G40Отмена компенсации размера инструментаG1 G40 X0 Y0 F200
G41Компенсировать радиус инструмента слева от траекторииG41 X15 Y15 D1 F100
G42Компенсировать радиус инструмента справа от траекторииG42 X15 Y15 D1 F100
G43Компенсировать длину инструмента положительноG43 X15 Y15 Z100 H1 S1000 M3
G44Компенсировать длину инструмента отрицательноG44 X15 Y15 Z4 H1 S1000 M3
G53Отключить смещение начала системы координат станкаG53 G0 X0 Y0 Z0
G54-G59Переключиться на заданную оператором систему координатG54 G0 X0 Y0 Z100
G80Отмена циклов сверления (G81-G84)G80
G81Цикл сверленияG81 X0 Y0 Z-10 R3 F100
G82Цикл сверления с задержкойG82 X0 Y0 Z-10 R3 P100 F100
G83Цикл сверления с отходомG83 X0 Y0 Z-10 R3 Q8 F100
G84Цикл нарезания резьбыG95 G84 X0 Y0 Z-10 R3 F1.411
G90Задание абсолютных координат опорных точек траекторииG90 G1 X0.5 Y0.5 F10
G91Задание координат относительно последней введённой опорной точкиG91 G1 X4 Y5 F100
G94F (подача) — в формате мм/мин.G94 G80 Z100
G95F (подача) — в формате мм/об.G95 G84 X0 Y0 Z-10 R3 F1.411

Таблица технологических кодов

Технологические команды языка начинаются с буквы М. Включают такие действия, как:

Параметры команд

Параметры команд задаются буквами латинского алфавита

Пример

Обработка буквы W (вписанной в прямоугольник 34х27 мм, см рис.) на условном вертикально-фрезерном станке с ЧПУ, фрезой диаметром 4 мм, в заготовке из органического стекла:

G-code

G-код — условное именование языка программирования устройств с числовым программным управлением (ЧПУ). Был создан компанией Electronic Industries Alliance в начале 1960-х. Финальная доработка была одобрена в феврале 1980 года как стандарт RS274D. Комитет ISO утвердил G-код, как стандарт ISO 6983-1:1982, Госкомитет по стандартам СССР — как ГОСТ 20999-83. В советской технической литературе G-код обозначается, как код ИСО 7-бит (ISO 7-bit), так как G-код для представления на перфоленте её кодировали на 8-ми дорожечную перфоленту в коде ISO 7-bit(разработан для представления информации УЧПУ в виде машинного кода также как и коды AEG и PC8C),восьмая дорожка использовалась для контроля чётности.

Производители систем УЧПУ(CNC)как правило используют софт управления станком,для которого написанная(оператором) программа обработки в качестве осмысленных команд управления используется G-код в качестве базового подмножества языка программирования, расширяя его по своему усмотрению. [1]

Содержание

Структура программы

Программа, написанная с использованием G-кода, имеет жесткую структуру. Все команды управления объединяются в кадры — группы, состоящие из одной или более команд. Кадр завершается символом перевода строки (CR/LF) и имеет номер, за исключением первого кадра программы и комментариев. Первый (а в некоторых случаях ещё и последний) кадр содержит только один символ «%». Завершается программа командой M02 или M30. Комментарии к программе размещаются в круглых скобках, как после программных кодов, так и в отдельном кадре.

Порядок команд в кадре строго не оговаривается, но традиционно предполагается, что первыми указываются подготовительные команды, (например, выбор рабочей плоскости), затем команды перемещения, затем выбора режимов обработки и технологические команды.

Подпрограммы могут быть описаны после команды M02, но до M30. Начинается подпрограмма с кадра вида Lxx, где xx — номер подпрограммы, заканчивается командой M17.

Сводная таблица кодов

Основные (называемые в стандарте подготовительными) команды языка начинаются с буквы G:

Таблица основных команд

КомандаОписаниеПример
G00Ускоренное перемещение инструмента (холостой ход)G0 X0 Y0 Z100
G01Линейная интерполяцияG01 X0 Y0 Z100 F200
G02Круговая интерполяция по часовой стрелкеG02 X15 Y15 R5 F200
G03Круговая интерполяция против часовой стрелкиG03 X15 Y15 R5 F200
G04Задержка выполнения программы, способ задания величины задержки зависит от реализации системы управленияG04
G15Отмена полярной системы координатG15 X15 Y22.5; G15;
G16Полярная система координат (X радиус Y угол)G16 X15 Y22.5
G17Выбор рабочей плоскости X-Y
G18Выбор рабочей плоскости Z-X
G19Выбор рабочей плоскости Y-Z
G40Отмена компенсации радиуса инструментаG1 G40 X0 Y0 F200
G41Компенсировать радиус инструмента слева от траекторииG41 X15 Y15 D1 F100
G42Компенсировать радиус инструмента справа от траекторииG42 X15 Y15 D1 F100
G43Компенсировать длину инструмента положительноG43 X15 Y15 Z100 H1 S1000 M3
G44Компенсировать длину инструмента отрицательноG44 X15 Y15 Z4 H1 S1000 M3
G49Отмена компенсации длины инструментаG49 Z100
G53Отключить смещение начала системы координат станкаG53 G0 X0 Y0 Z0
G54-G59Переключиться на заданную оператором систему координатG54 G0 X0 Y0 Z100
G70Программировать в дюймахG70
G71Программировать в ммG71
G80Отмена циклов сверления, растачивания, нарезания резьбы метчиком и т. д.G80
G81Цикл сверленияG81 X0 Y0 Z-10 R3 F100
G82Цикл сверления с задержкойG82 X0 Y0 Z-10 R3 P100 F100
G83Цикл прерывистого сверления (с полным выводом сверла)G83 X0 Y0 Z-10 R3 Q8 F100
G84Цикл нарезания резьбыG95 G84 M29 X0 Y0 Z-10 R3 F1.411
G90Задание абсолютных координат опорных точек траекторииG90 G1 X0.5 Y0.5 F10
G91Задание координат инкрементально последней введённой опорной точкиG91 G1 X4 Y5 F100
G94F (подача) — в формате мм/мин.G94 G80 Z100
G95F (подача) — в формате мм/об.G95 G84 X0 Y0 Z-10 R3 F1.411

максимум 4 команды в кадре

Таблица технологических кодов

Технологические команды языка начинаются с буквы М. Включают такие действия, как:

не больше одного кода в кадре

Параметры команд

Параметры команд задаются буквами латинского алфавита

КодОписаниеПример
XКоордината точки траектории по оси XG0 X100 Y0 Z0
YКоордината точки траектории по оси YG0 X0 Y100 Z0
ZКоордината точки траектории по оси ZG0 X0 Y0 Z100
PПараметр командыG04 P101
FСкорость рабочей подачиG1 G91 X10 F100
SСкорость вращения шпинделяS3000 M3
RПараметр стандартного цикла или радиус дуги (расширение стандарта)G81 R1 0 R2 −10 F50 или G1 G91 X12.5 R12.5
HПараметр коррекции выбранного инструментаG1 G41 D1 X10. F150.
PЧисло вызовов подпрограммыL82 P10
I,J,KПараметры дуги при круговой интерполяцииG03 X10 Y10 I0 J0 F10
LВызов подпрограммы с данной меткойL12

См. также

Пример

Обработка буквы W (вписанной в прямоугольник 34х27 мм, см рис.) на условном вертикально-фрезерном станке с ЧПУ, фрезой диаметром 4 мм, в заготовке из органического стекла:

Красным цветом выделен результат обработки.

cnc-club.ru

Статьи, обзоры, цены на станки и комплектующие.

FAQ по Gcode, примеры

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

FAQ по Gcode, примеры

Сообщение Nick » 01 ноя 2010, 15:43

G61 и G64

Пример Gcode

Use the Console, Luke.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Re: FAQ по Gcode, примеры

Сообщение Nick » 08 фев 2011, 10:52

G53, G54-59, G92

Вне зависимости от любых установленных отступов по осям, добавление G53 к блоку кода говорит EMC2 использовать реальные координаты станка для этого кода. Например, g53 g0 x0 y0 z0 переместит станок в нули по всем трем осям. Эта команда может использоваться, для смены инструмента и других операций происходящих в определенном месте станка. Или например, если вам нужно убрать режущий инструмент в сторону для удобной смены детали.

G53 это не модальная команда. Вы должны ставить G53 в каждую строку, где необходимо перемещение в абсолютных координатах станка.

G54-G59.3

Рабочие или фиксированные отступы используются для установки начальной точки детали, которая отличается от реальных абсолютных координат. Эти отступы часто используются для создания нескольких копий одной детали.
Значения офсетов хранятся в файле VAR который запрашивается в INI файле при запуске ЕМС2. Например для G55 значения отступа по осям хранятся в переменных
5241 0.000000
5242 0.000000
5243 0.000000
5244 0.000000
5245 0.000000
5246 0.000000
Первая переменная для отступа по оси Х, вторая по Y и так далее. Такие же наборы переменных есть для всех других заданных офсетов.
В каждом графическом интерфейсе есть способ задать эти отступы. Также для этого может быть использован код G10.

Как только заданы значения отступа, вызов любой из систем координат сместит нули осей на указанные значения. В отличие от G53, G54-G59.3 это модальные коды. Они влияют на все код, который находится под ними.

Обычно система G54 оставляется без изменений, т.е. с нулевым отступом. Вы можете спросить: «зачем, ведь есть G53 для перемещения в абсолютных координатах». Это делается потому, что G53 не модальный код, а G54 модальный и такой переход G54 G0 X0 Y0 Z0 переведет станок в абсолютный ноль по всем координатам и установит абсолютную систему координат.

G92 временный отступ

Этот отступ применяется поверх всех остальных заданных отступов.

Набор команд G92:

G92 X- Y- Z- A- B- C- U- V- W-

Эта команда восстанавливает приостановленное действие G92.

Вы должны понимать, что команда G92 устанавливает не значения отступов, а значения для текущего положения. Т.е. Если вы хотите установить точку (0,0,0) в положение (10,5,2), выполните следующее:
G0 X10 Y5 Z2
G92 X0 Y0 Z0

G- и M-коды для станков с ЧПУ – просто о сложном

Станочные комплексы с CNC используют для работы множество ПО. Однако руководить оборудованием можно с помощью одного и того же управляющего кода. Это буквенно-цифровой язык ISO 7-bit. Основывается на международных стандартах ISO и EIA.

Что такое G- и M-функции для CNC?

Большинство изготовителей систем ЧПУ описывают основные параметры с помощью стандартов ISO, но часто в своем оборудовании отступают от правил, чтобы расширить возможности систем.

Японские компании в своих системах ЧПУ FANUC широко раскрывают потенциал использования G- и М-кодов. Их оборудование одним из первых заработало на языке ISO 7-bit. Сейчас это самые распространенные пульты в мире.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

G-коды настраивают СЧПУ на определенное действие. М-коды – вспомогательные, управляют режимами работы оборудования. Чтобы инструмент двигался по прямой траектории, вносится команда G01. А если необходимо заменить рабочий орган, используется код М06.

G- и M-коды для программирования станков с ЧПУ – что это?

Настройки оборудования с CNC пишутся на различных языках, но набора основных G- и М-команд достаточно, чтобы создать УП.

G-code (NC-код)

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

G-функция – язык программирования, осуществляет подготовительные функции для работы станка по управлению осевым перемещением инструмента.

«ИСО 7-бит» создан компанией EIA в 60-х гг. прошлого столетия, а доработан спустя 20 лет. G-код утвержден как стандарт ISO 6983-1:2009, в СССР – как ГОСТ 20999-83. Код записывает информацию на восьмидорожечной перфоленте и кодирует 128 символов.

Справка: многие производители дорабатывают код по-своему, и отличия от базового можно посмотреть в инструкции к конкретной системе управления.

В программе, написанной на языке ISO 7-bit, все команды формируют кадры – совокупности из одной или нескольких команд. Первый кадр состоит из единственного знака – «%». Иногда такой символ стоит и в последнем кадре. Так программа отделяет кадры друг от друга. Остальным присваиваются номера, а оканчиваются они знаком CR/LF – перевод строки. Чтобы завершить программу, вводится команда M02 или M30.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Комментарии пишутся в круглых скобках и несут конкретную информацию:

Примечание: СЧПУ не считывает текст в круглых скобках.

Чаще всего список кодов в кадре начинается с подготовительных. Затем вписываются команды перемещения, выбирается режим работы и технологические коды.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Модальные и немодальные G-коды.

Независимые части основного ПО описываются в промежутке обозначений M02–M30. Сначала идет номер, в конце прописывается M17.

М-code

М-функции — дополнительные коды, на разных станках CNC могут немного отличаться. Эти команды управляют рабочими органами и режимами оборудования с ЧПУ.

Вспомогательные команды используются одиночно или вместе с другими кодами. Когда кадр устанавливает рабочий орган в шпиндель, это выглядит так:

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Здесь команда M6 на пульте подразумевает некоторый набор действий, чтобы заменить рабочий орган:

Если М- код включает какое-либо устройство, то обязательно существует его пара, которая выключает:

M8 – M9 – включить/выключить систему охлаждения;

M3 – M5 – включить/выключить обороты шпинделя.

В кадре разрешается использовать несколько М-функций. Для станков с внушительным набором сменных устройств задействуется больше М-кодов в управлении.

Примечание: М-код может вписываться самостоятельно или в кадре с G-кодами.

Вспомогательные команды делятся:

Важно: на разных станках одни и те же команды могут настраиваться на управление другими устройствами.

Таблица G-кодов ЧПУ с расшифровкой

Таблица представляет неполный перечень команд для управления станком, только важные:

Таблица M-кодов ЧПУ с расшифровкой

Вспомогательные команды программного кода маркируются буквой М и выполняют такие действия:

G-функции для станков ЧПУ

КодОписание кода
Осевое движение
G00Ускоренный или холостой ход – перемещение на очень высокой скорости в указанную точку. Не используется для выполнения обработки.
G01Линейная интерполяция – смещение по прямой траектории с заданной скоростью подачи. Рабочий ход
G02Круговая интерполяция – перемещение по дуге вправо с запрограммированной скоростью подачи
G03Круговая интерполяция – смещение по кривой влево с заданной скоростью подачи
Наладка
G20Ввод дюймовых показателей
G21Ввод метрической информации
G90Абсолютное позиционирование – отсчет всех координат от постоянной нулевой точки
G91Относительное позиционирование – все координаты рассчитываются от предыдущей позиции
Работа с отверстиями
G81Фаза сверления
G82Цикл сверления с задержкой на дне отверстия
G83Прерывистый период сверления
G85Режим растачивания отверстия

До 4 кодов в кадре.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

G-code окружности с координатами центра.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

G-code для сверления отверстий.

Дополнительные обозначения при программировании станков CNC

Координаты точек движения инструмента в декартовых плоскостях– X, Y, Z.

Смещение вокруг осей X, Y, Z – А, В, С.

Круговая интерполяция параллельно осям координат X, Y, Z – I, J, К.

R – радиус, в повторяющихся периодах – положение плоскости отвода, в команде вращения – угол поворота системы координат.

D – параметр коррекции на радиус рабочего органа.

Н – показатель компенсации длины инструмента.

F – настройка подачи.

S – параметр основного перемещения.

Т – показатель номера инструмента, который требуется поставить на замену поворотом патрона.

N – номерное значение кадров управляющей программы.

/ – пропуск кадра, который не нужно выполнять, ставиться перед кадром.

(…) – комментарии в УП.

Семиразрядный код ISO 7-bit – основной для современных отечественных станков CNC. Правила кодирования для станка с конкретным устройством ЧПУ определяются используемым общим кодом, инструкцией по эксплуатации оборудования и руководством по программированию систем ЧПУ.

Программирование обработки на станках с ЧПУ

Программирование обработки на станках с ЧПУ осуществляется на языке, который обычно называют языком ISO 7 бит или языком G и M кодов. Язык G и М кодов основывается на положениях Международной организации по стандартизации (ISO) и Ассоциации электронной промышленности (EIA).

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Производители систем ЧПУ придерживаются этих стандартов для описания основных функций, но допускают вольности и отступления от правил, когда речь заходит о специальных возможностях своих систем.

Японские системы ЧПУ FANUC (FANUC CORPORATION) были одними из первых, адаптированных под работу с G и М кодами и использующими этот стандарт наиболее полно. В настоящее время стойки FANUC являются наиболее распространенными как за рубежом, так и в России.

Системы ЧПУ других известных производителей, например SINUMERIK (SIEMENS AG) и HEIDENHAIN, также имеют возможности по работе с G и М кодами, однако некоторые специфические коды могут отличаться. О разнице в программировании специфических функций можно узнать из документации к конкретной системе ЧПУ.

Существует три метода программирования обработки для станков с ЧПУ:

Все операторы станков с ЧПУ, технологи-программисты должны иметь хорошее представление о технике ручного программирования. Это как начальные классы в школе, обучение в которых дает базу для последующего образования.

Когда программы создаются и вводятся прямо на стойке ЧПУ, используя клавиатуру и дисплей. Например, оператор станка может произвести верификацию УП или выбрать требуемый постоянный цикл при помощи специальных пиктограмм и вставить его в код управляющей программы.

Программирование при помощи CAD/САМ системы позволяет «поднять» процесс написания программ обработки на более высокий уровень. Работая с CAD/CAM системой, технолог-программист избавляет себя от трудоемких математических расчетов и получает инструменты, значительно повышающие скорость написания управляющих программ.

Cовокупность команд на языке программирования, соответствующая алгоритму функционирования станка по обработке конкретной заготовки называется управляющая программа (УП).

Управляющая программа состоит из последовательности кадров и обычно начинается с символа начало программы (%) и заканчивается М02 или М30.

Каждый кадр программы представляет собой один шаг обработки и (в зависимости от УЧПУ) может начинаться с номера кадра (N1. N10 и т.д.), а заканчиваться символом конец кадра (;).

Кадр управляющей программы состоит из операторов в форме слов (G91, M30, X10. и т.д.). Слово состоит из символа (адреса) и цифры, представляющее арифметическое значение.

Адреса X, Y, Z, U, V, W, P, Q, R, A, B, C, D, E являются размерными перемещениям, используют для обозначения координатных осей, вдоль которых осуществляются перемещения.

Слова, описывающие перемещения, могут иметь знак (+) или (-). При отсутствии знака перемещение считается положительным.

Адреса I, J, K означают параметры интерполяции.

Символы могут принимать другие значения в зависимости от конкретного УЧПУ.

G коды для ЧПУ

Функция G00 используется для выполнения ускоренного перемещения режущего инструмента к позиции обработки или к безопасной позиции. Ускоренное перемещение никогда не используется для выполнения обработки, так как скорость движения исполнительного органа станка очень высока. Код G00 отменяется кодами: G01, G02, G03.

Функция G01 используется для выполнения прямолинейных перемещений с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z). Код G01 отменяется кодами: G00, G02, G03.

Функция G02 предназначена для выполнения перемещения инструмента по дуге (окружности) в направлении часовой стрелки с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z).

Параметры интерполяции I, J, K, которые определяют координаты центра дуги окружности в выбранной плоскости, программируются в приращениях от начальной точки к центру окружности, в направлениях, параллельных осям X, Y, Z соответственно.

Код G02 отменяется кодами: G00, G01, G03.

Функция G03 предназначена для выполнения перемещения инструмента по дуге (окружности) в направлении против часовой стрелки с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z).

Параметры интерполяции I, J, K, которые определяют координаты центра дуги окружности в выбранной плоскости, программируются в приращениях от начальной точки к центру окружности, в направлениях, параллельных осям X, Y, Z соответственно.

Код G03 отменяется кодами: G00, G01, G02.

Код G17 предназначен для выбора плоскости XY в качестве рабочей. Плоскость XY становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.

Код G18 предназначен для выбора плоскости XZ в качестве рабочей. Плоскость XZ становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.

Код G19 предназначен для выбора плоскости YZ в качестве рабочей. Плоскость YZ становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.

Функция G40 отменяет действие автоматической коррекции на радиус инструмента G41 и G42.

Функция G41 применяется для включения автоматической коррекции на радиус инструмента находящегося слева от обрабатываемой поверхности (если смотреть от инструмента в направлении его движения относительно заготовки). Программируется вместе с функцией инструмента (D).

Функция G42 применяется для включения автоматической коррекции на радиус инструмента находящегося справа от обрабатываемой поверхности (если смотреть от инструмента в направлении его движения относительно заготовки). Программируется вместе с функцией инструмента (D).

Функция G43 применяется для компенсации длинны инструмента. Программируется вместе с функцией инструмента (H).

Смещение рабочей системы координат детали относительно системы координат станка.

Функция G70 активизирует режим работы с дюймовыми данными.

Функция G71 активизирует режим работы с метрическими данными.

Функция, которая отменяет любой постоянный цикл.

Цикл G81 предназначен для зацентровки и сверления отверстий. Движение в процессе обработки происходит на рабочей подаче. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G82 предназначен для сверления и зенкования отверстий. Движение в процессе обработки происходит на рабочей подаче с паузой в конце. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G83 предназначен для глубокого сверления отверстий. Движение в процессе обработки происходит на рабочей подаче с периодическим выводом инструмента в плоскость отвода. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G84 предназначен для нарезания резьбы метчиком. Движение в процессе обработки происходит на рабочей подаче, шпиндель вращается в заданном направлении. Движение в исходное положение после обработки идет на рабочей подаче с обратным вращением шпинделя.

Цикл G85 предназначен для развертывания и растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. Движение в исходное положение после обработки идет на рабочей подаче.

Цикл G86 предназначен для растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. В конце обработки происходит остановка шпинделя. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G87 предназначен для растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. В конце обработки происходит остановка шпинделя. Движение в исходное положение после обработки идет вручную.

В режиме абсолютного позиционирования G90 перемещения исполнительных органов производятся относительно нулевой точки рабочей системы координат G54-G59 (программируется, куда должен двигаться инструмент). Код G90 отменяется при помощи кода относительного позиционирования G91.

В режиме относительного (инкрементального) позиционирования G91 за нулевое положение каждый раз принимается положение исполнительного органа, которое он занимал перед началом перемещения к следующей опорной точке (программируется, на сколько должен переместиться инструмент). Код G91 отменяется при помощи кода абсолютного позиционирования G90.

При помощи функции G94 указанная скорость подачи устанавливается в дюймах или в миллиметрах за 1 минуту. Программируется вместе с функцией подачи (F). Код G94 отменяется кодом G95.

При помощи функции G95 указанная скорость подачи устанавливается в дюймах или в миллиметрах на 1 оборот шпинделя. Т.е. скорость подачи F синхронизируется со скоростью вращения шпинделя S. Код G95 отменяется кодом G94.

M коды для ЧПУ

Когда СЧПУ исполняет команду М00, то происходит останов. Все осевые перемещения останавливаются, при этом шпиндель (у большинства станков) продолжает вращаться. Работа по программе возобновляется со следующего кадра после нажатия кнопки «Старт».

Код М01 действует аналогично М00, но выполняется только после подтверждения с пульта управления станка. Если клавиша подтверждения нажата, то при чтении кадра с М01 происходит останов. Если же клавиша не нажата, то кадр М01 пропускается и выполнение УП не прерывается.

Код М02 указывает на завершение программы и приводит к останову шпинделя, подачи и выключению охлаждения.

При помощи кода М0З включается прямое вращение шпинделя с запрограммированным числом оборотов (S). Код М0З действует до тех пор, пока он не будет отменен с помощью М04 или М05.

При помощи кода М04 включается обратное вращение шпинделя с запрограммированным числом оборотов (S). Код М04 действует до тех пор, пока он не будет отменен с помощью М03 или М05.

Код М05 останавливает вращение шпинделя, но не останавливает осевые перемещения.

При помощи кода М06 инструмент, закрепленный в шпинделе, меняется на инструмент, находящийся в положении готовности в магазине инструментов.

Код М07 включает подачу СОЖ в зону обработки в распыленном виде, если станок обладает такой возможностью.

Код М08 включает подачу СОЖ в зону обработки в виде струи.

Код М09 выключает подачу СОЖ и отменяет команды М07 и М08.

Код М10 относиться к работе с зажимным приспособлением подвижных органов станка.

Код М11 относиться к работе с зажимным приспособлением подвижных органов станка.

Код МЗ0 информирует СЧПУ о завершении программы, приводит к останову шпинделя, подачи и выключению охлаждения.

Дополнительные функции и символы при программировании станков с ЧПУ

R

При круговой интерполяции G02 или G03, R определяет радиус, который соединяет начальную и конечную точки дуги. В постоянных циклах R определяет положение плоскости отвода. При работе с командой вращения R определяет угол поворота координатной системы.

Применение ПЛК в системах позиционирования. G-коды

Важнейшим достижением научно-технического прогресса является комплексная автоматизация промышленного производства. В своей высшей форме — гибком автоматизированном производстве — автоматизация предполагает функционирование многочисленных взаимосвязанных технических средств на основе программного управления и групповой автоматизации производства. В связи с созданием и использованием гибких производственных комплексов механической обработки резанием особое значение приобретают станки с числовым программным управлением (ЧПУ). Числовое программное управление (ЧПУ) означает компьютеризованную систему управления, считывающую инструкции специализированного языка программирования (например, G-код) и управляющую приводами металло-, дерево- и пластмасообрабатывающих станков и станочной оснасткой.

Современные системы ЧПУ, называемые CNC (англ. Computer Numerical Control), основаны на системе управления построенной на микроконтроллере (обычно самодельные блоки управления), промышленном компьютере или программируемом логическом контроллере (ПЛК).Любой станок с ЧПУ имеет два или более направления для движения, которые называемых осями. Причем движение по этим осям осуществляется точно и автоматически. На универсальном станке движение детали или инструмента порождается путем ручных операций, выполняемых станочником (например, вращением рукояток). Вместо этого станки с ЧПУ оснащены сервомоторами, которые приводятся в действие системой с ЧПУ, а та в свою очередь в точности исполняет команды управляющей программы. Обобщая, можно сказать, что тип движения (ускоренный, линейный или круговой), оси перемещений, величина и скорость перемещения программируются во всех типах систем с ЧПУ. На рисунке схема управления линейным перемещением на станке с ЧПУ.

Применение именно ПЛК для создания полноценной системы ЧПУ в локальных условиях набирает особую популярность. Стоимость готовых станков ЧПУ на базе промышленных компьютеров очень велика, и оправдывает себя в крупном производстве. Разработка системы основанной на ПЛК, позволяет создать решение не уступающее по характеристикам в быстродействие и, что самое главное, в гибкости более мощным станкам. ПЛК разработанные для управления приводами имеют специальную структуру предназначенную для считывания и вырабатывания команд управления. В структуру входят: мощный обрабатывающий процессор, быстродействующие входы/выходы, специальная среда программирования, способная сама обрабатывать программы специальных языков программирования, используемых в промышленных станках ЧПУ.

Самой распространенным из таких языков является стандарт RS274D или как его условно называют G-код. Данный язык был создан компанией Electronic Industries Alliance в начале 1960-х. Финальная доработка была одобрена в феврале 1980. Комитет ISO утвердил G-код, как стандарт ISO 6983-1:1982, Госкомитет по стандартам СССР – как ГОСТ 20999-83. В советской технической литературе G-код обозначается, как код ИСО 7-бит (ISO 7-bit).Программа, написанная с использованием G-кода, имеет жесткую структуру. Все команды управления объединяются в кадры-группы, состоящие из одной или более команд. Завершается программа командой M02 или M30. Порядок команд в кадре строго не оговаривается, но традиционно предполагается, что первыми указываются подготовительные команды, (например, выбор рабочей плоскости), затем команды перемещения, затем выбора режимов обработки и технологические команды.

Основные (называемые в стандарте подготовительными) команды языка начинаются с буквы G:

Технологические команды языка начинаются с буквы М. Включают такие действия, как:

Современные программы позволяют получить управляющую программу содержащую G-код из чертежей формата dxf, dwg (AutoCAD, Компас 3D) методом конвертирования в программах NCPlot (платная), ACE converter (бесплатная) так и самому создавать управляющую программу и эмулировать ее: ArtCAM, SolidCAM (платные), inkscape (бесплатная). Остается только правильно реализовать G-коды средствами ПЛК. Фирма Delta Electronics разработала специализированную серию программируемых логических контроллеров DVP-PM для создания локальных систем ЧПУ. Данный ПЛК может осуществлять, в зависимости от модели, 2-х или 3-осевую интерполяцию. Контроллер имеет высокоскоростные выходы для вырабатывания сигналов управления сервоприводом. Так как выходы обладают очень большой частотой срабатывания, до 500 кГц, то благодаря этому, в комплекте с сервоприводами, можно обеспечить высокое быстродействие всей системы а не ее отдельных компонентов. Мощный процессор обеспечивает как высокое быстродействие, так и вычисление большого объема информации.

Управление сервоприводами можно осуществлять специальными командами позиционирования, но основной отличительной особенностью является способность контроллера самому анализировать записанные в него G-коды. Конечно такие команды как смена инструмента, переключение рабочих поверхностей, циклы сверления или нарезание резьб, контроллер не осуществляет, так как это не его прямое назначение. ПЛК поддерживает инструкции G0—G4 (позиционирование инструмента) и G90—G92 (переключение системы координат), т. е. команды, отвечающие именно за перемещение инструмента. Происходит это следующим образом. Средой программирования контроллеров DVP-PM служит бесплатная программа PMSoft. Языки программирования это LD или IL, стандарта IEC61131-3. Добавление в листинг готовой программы управления основанной на G-кодах происходит путем экспортирования файла содержащего текст данной программы. Формат файла не имеет значения, т. к. PMSoft сам его распознает, но обычно используется стандартный *.txt.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g codeРисунок 3 — Результат преобразования программы ПЛК с интегрированным G-кодом управления инструментом по осям

Используя встроенный помощник, можно легко задать начальные параметры программы, такие как максимальные скорости движения, тип выходного импульсного сигнала, начальную позицию, систему счета и т. п. Очень важно задать систему единиц, чтобы ПЛК знал какими единицами оперировать. Таких единиц три:

1. Машинные: система оперирует импульсами. Выражается это так, конечное положение через 10 000 импульсов, скорость перемещения 10 кГц. Следовательно, мы должны точно настроить сервопривод и знать, что 10 000 импульсов это, к примеру, 50 см, а скорость 10 кГц соответствует 0,1 м/сек.

2. Механические: длинна, скорость, угол перемещения задаются в единицах системы СИ. Предварительно необходимо в соответствующих регистрах задать единицы для перевода.

3. Комбинированные: при задании координат используют механические единицы, а скорости — машинные.

В результате, инструкции и G-коды масштабируются в соответствии с выбранными нами единицами. При использовании G-кодов необходимо учитывать:

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Контроллеры программируемые DVP-PM имеют модификацию как для двух, так и для трех осей. Если используем двухкоординатный PM, то рассмотрим ситуацию с моделированием перемещения по оси Z. В нашем случае это функции: поднять/опустить инструмент, функции захвата и т. п. Когда G-коды содержат координаты перемещения по оси Z, среда создает специальную подпрограмму (называется P255), которая вызывается в ходе программы и осуществляет перемещение по оси Z. В качестве сигнала управления для оси Z можно использовать: собственные дискретные выходы (если перемещения инструмента выполняет к примеру), либо другой ПЛК (например программируемый логический контроллер DVP-SS2) или модуль расширения с сервоприводом (если необходимо позиционирование).

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g codeРисунок 5 — Технические средства для построения системы

Разберем реальный пример:

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

1. Начертим контур обработки в CAD программе, к примеру в Компас-3D.

2. Получим из чертежа G-код с помощью CAM программы NCPlot v2.21

3. Сохраним полученный файл. Сохраняется в формате *.NC (можно открыть блокнотом и внести коррективы) и следующим шагом запишем его в PM.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Чтобы не прописывать вручную, зададим с помощью помощника следующие параметры перемещения по осям:

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

G-код сразу записывается в подпрограмму OX, так как в главной программе инструкции позиционирования применять нельзя. Удобнее G-код вызывать из подпрограмм с заголовком P, а в OX записывать параметры перемещения для обрабатываемого контура (скорость холостого хода, и т. п.) Так и поступим.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Загрузим программу в ПЛК и с помощью встроенного в PMSoft монитора XYChart (перемещение по осям) посмотрим на перемещение инструмента по координатам XY. Жирным выделено рабочие перемещения а тонким, перемещение холостого хода.

cnc-club.ru

Статьи, обзоры, цены на станки и комплектующие.

G-коды

G-коды

Сообщение spike » 27 авг 2008, 15:48

Re: G-коды

Сообщение spike » 27 авг 2008, 16:09

Re: G-коды

Сообщение spike » 27 авг 2008, 22:48

Продолжим:
Все слова языка RS274/NGC начинаются с зарезервированных букв:

Re: G-коды

Сообщение VShaclein » 28 авг 2008, 02:31

Re: G-коды

Сообщение VShaclein » 28 авг 2008, 02:50

G-коды. Модальные группы

Сообщение spike » 29 авг 2008, 14:08

Да, здесь наверное более стандартный код.

Команды бывают модальными и немодальными, т.е. модальная команда, будучи один раз вызвана, действует до вызова команды из ее же группы:

Сообщение spike » 04 сен 2008, 08:47

Команда G00 перемещает инструмент в указанную позицию в системе координат детали с абсолютными или относительными координатами с быстрой подачей.
При программировании абсолютных координат, указывается конечная точка.
В относительных координатах указывается расстояние перемещения инструмента.

Формат
G00IP_;
IP_- для абсолютных координат указывается конечная точка. Для относительных координат расстояние перемещения инструмента.

Сообщение spike » 07 сен 2008, 15:24

Перемещение инструмента по прямой.

Формат
G00IP_F_;
IP_ Для абсолютных координат указывается конечная точка. Для относительных координат расстояние перемещения инструмента.
F_ Скорость подачи инструмента.

Круговая интерполяция

Сообщение spike » 16 сен 2008, 09:47

Перемещение инструмента по дуге.

Расстояние перемещения по дуге
Конечная позиция дуги указывается адресами X, Y, Z и выражается в абсолютных или относительных значениях в соответствии с G90 или G91. Для относительных значений указывается расстояние до конечной точки от начальной точки.

Расстояние от начальной точки до центра дуги
Центр дуги определяется адресами I, J, K для осей X, Y, Z. Числовые значения I, J, K представляют собой вектор из начальной точки до центра дуги и всегда указываются в относительных координатах независимо от G90 и G91.
При задании значений I, J, K необходимо учитывать направление.

Программирование полной окружности
Если пропущено X, Y и Z (конечная точка является начальной точкой) и центр указанный в I, J, K, дуга составляет 360 градусов (окружность).

Радиус дуги
Расстояние между дугой и центром дуги состоит из дуги и может быть указан используя радиус R окружности вместо I, J, K. В этом случае дуга с углом сектора 180 или больше градусов не может быть указана.

3D Printing G-Code Tutorial

Did you know that 3D printers have their own language? Today, many desktop 3D printers use a numerically controlled programming language made up of a series of commands called G-Code. Most of these commands start with a G (hence the name), but there are also some common machine-specific codes that start with an M. These commands tell your 3D printer exactly what actions to perform – where to move, what speed to use, what temperatures to set, and much more. For any maker, it is beneficial to have a basic knowledge of G-Code to understand how your 3D printer works, debug or perform maintenance on your machine, and verify your print files.  This guide will explain the 10 most commonly used commands, what they do, and how to edit them in Simplify3D.

The 10 Most Common G-Code Commands for 3D Printing

For each command, we will provide a description of what the command does, specify what arguments may be needed, and even provide a few sample commands so that you can see how it is commonly used.

G-код. Структура управляющей программы для станка с ЧПУ

Управляющая программа для ЧПУ станка состоит из последовательности кадров и обычно начинается с символа начало программы (%) и заканчивается М02 или М30.

Каждый кадр программы представляет собой один шаг обработки и (в зависимости от ЧПУ) может начинаться с номера кадра (N1. N10 и т.д.), а заканчиваться символом конец кадра (;).

Кадр управляющей программы состоит из операторов в форме слов (G91, M30, X10. и т.д.). Слово состоит из символа (адреса) и цифры, представляющее арифметическое значение.

Адреса X, Y, Z, U, V, W, P, Q, R, A, B, C, D, E являются размерными перемещениям, используют для обозначения координатных осей, вдоль которых осуществляются перемещения.

Слова, описывающие перемещения, могут иметь знак (+) или (-). При отсутствии знака перемещение считается положительным.

Адреса I, J, K означают параметры интерполяции.

Символы могут принимать другие значения в зависимости от конкретного УЧПУ.

Подготовительные функции (G коды)

Функция G00 используется для выполнения ускоренного перемещения режущего инструмента к позиции обработки или к безопасной позиции. Ускоренное перемещение никогда не используется для выполнения обработки, так как скорость движения исполнительного органа станка очень высока. Код G00 отменяется кодами: G01, G02, G03.

Функция G01 используется для выполнения прямолинейных перемещений с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z). Код G01 отменяется кодами: G00, G02, G03.

Функция GO2 предназначена для выполнения перемещения инструмента по дуге (окружности) в направлении часовой стрелки с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z).

Параметры интерполяции I, J, K, которые определяют координаты центра дуги окружности в выбранной плоскости, программируются в приращениях от начальной точки к центру окружности, в направлениях, параллельных осям X, Y, Z соответственно.

Код G02 отменяется кодами: G00, G01, G03.

Функция GO3 предназначена для выполнения перемещения инструмента по дуге (окружности) в направлении против часовой стрелки с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z).

Параметры интерполяции I, J, K, которые определяют координаты центра дуги окружности в выбранной плоскости, программируются в приращениях от начальной точки к центру окружности, в направлениях, параллельных осям X, Y, Z соответственно.

Код G03 отменяется кодами: G00, G01, G02.

Код G17 предназначен для выбора плоскости XY в качестве рабочей. Плоскость XY становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.

Код G18 предназначен для выбора плоскости XZ в качестве рабочей. Плоскость XZ становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.

Код G19 предназначен для выбора плоскости YZ в качестве рабочей. Плоскость YZ становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.

Функция G20 активизирует режим работы с дюймовыми данными.

Функция G21 активизирует режим работы с метрическими данными.

Функция G40 отменяет действие автоматической коррекции на радиус инструмента G41 и G42.

Функция G41 применяется для включения автоматической коррекции на радиус инструмента находящегося слева от обрабатываемой поверхности (если смотреть от инструмента в направлении его движения относительно заготовки). Программируется вместе с функцией инструмента (D).

Функция G42 применяется для включения автоматической коррекции на радиус инструмента находящегося справа от обрабатываемой поверхности (если смотреть от инструмента в направлении его движения относительно заготовки). Программируется вместе с функцией инструмента (D).

Функция G43 применяется для компенсации длинны инструмента. Программируется вместе с функцией инструмента (H).

СЧПУ позволяет устанавливать кроме стандартных рабочих систем координат (G54-G59) еще и локальные. Когда СЧПУ станка выполняет команду G52, то начало действующей рабочей системы координат смещается на значение указанное при помощи слов данных X, Y и Z. Код G52 автоматически отменяется с помощью команды G52 ХО YO Z0.

Смещение рабочей системы координат детали относительно системы координат станка.

Код G69 отменяет режим вращения координат G68.

Цикл G73 предназначен для сверления отверстий. Движение в процессе обработки происходит на рабочей подаче с периодическим выводом инструмента. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G74 предназначен для нарезания левой резьбы метчиком. Движение в процессе обработки происходит на рабочей подаче, шпиндель вращается в заданном направлении. Движение в исходное положение после обработки идет на рабочей подаче с обратным вращением шпинделя.

Функция, которая отменяет любой постоянный цикл.

Цикл G81 предназначен для зацентровки и сверления отверстий. Движение в процессе обработки происходит на рабочей подаче. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G82 предназначен для сверления и зенкования отверстий. Движение в процессе обработки происходит на рабочей подаче с паузой в конце. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G83 предназначен для глубокого сверления отверстий. Движение в процессе обработки происходит на рабочей подаче с периодическим выводом инструмента в плоскость отвода. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G84 предназначен для нарезания резьбы метчиком. Движение в процессе обработки происходит на рабочей подаче, шпиндель вращается в заданном направлении. Движение в исходное положение после обработки идет на рабочей подаче с обратным вращением шпинделя.

Цикл G85 предназначен для развертывания и растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. Движение в исходное положение после обработки идет на рабочей подаче.

Цикл G86 предназначен для растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. В конце обработки происходит остановка шпинделя. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G87 предназначен для растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. В конце обработки происходит остановка шпинделя. Движение в исходное положение после обработки идет вручную.

В режиме абсолютного позиционирования G90 перемещения исполнительных органов производятся относительно нулевой точки рабочей системы координат G54-G59 (программируется, куда должен двигаться инструмент). Код G90 отменяется при помощи кода относительного позиционирования G91.

В режиме относительного (инкрементального) позиционирования G91 за нулевое положение каждый раз принимается положение исполнительного органа, которое он занимал перед началом перемещения к следующей опорной точке (программируется, на сколько должен переместиться инструмент). Код G91 отменяется при помощи кода абсолютного позиционирования G90.

При помощи функции G94 указанная скорость подачи устанавливается в дюймах за 1 минуту (если действует функция G20) или в миллиметрах за 1 минуту (если действует функция G21). Программируется вместе с функцией подачи (F). Код G94 отменяется кодом G95.

При помощи функции G95 указанная скорость подачи устанавливается в дюймах на 1 оборот шпинделя (если действует функция G20) или в миллиметрах на 1 оборот шпинделя (если действует функция G21). Т.е. скорость подачи F синхронизируется со скоростью вращения шпинделя S. Код G95 отменяется кодом G94.

Если постоянный цикл станка работает совместно с функцией G98, то инструмент возвращается к исходной плоскости в конце каждого цикла и между всеми обрабатываемыми отверстиями. Функция G98 отменяется при помощи G99.

Если постоянный цикл станка работает совместно с функцией G99, то инструмент возвращается к плоскости отвода между всеми обрабатываемыми отверстиями. Функция G99 отменяется при помощи G98.

G-код (УП) можно создать вручную или автоматизировано в таких программах, например, как ArtCam.

Краткое описание G- M- и O кодов

CodeПараметрыОписаниеПримеры использованияСсылки
ПеремещенияX Y Z A B C U V WПосле имени оси пишется координата, куда ей двигаться, пример: G0 X123 Y321.

Имена осей, обычно у простого 3х осевого фрезерного это XYZ, у простого токарного XZ, поворотная ось обычно А.

Обычно эта пауза осуществляется через соответствующею настройку опций ЧПУ,но если такой настройки нет или вы не знаете как её сделать
то можете добавить в УП после команды запуска шпинделя код G4,указав после параметра P нужное время в секундах.
Но более правильно не добавлять эту команду в УП вручную,а сразу указать её в постпроцессор CAMэ’а вашего станка

Makes a rapid move to the position specified by axes including any offsets, then will make a rapid move to the absolute position of the values in parameters 5161-5166(G28) or 5181-5186(G30) for axes specified. Any axis not specified will not move.

Makes a rapid move to the position specified by axes including any offsets, then will make a rapid move to the absolute position of the values in parameters 5161-5166(G28) or 5181-5186(G30) for axes specified. Any axis not specified will not move.

o123 return [#2 *5]
.
o123 endsub [3 * 4]

Описание G-кодов

[править] ОПИСАНИЕ G-КОДОВ

G-код — наименование языка программирования систем с числовым программным управлением (ЧПУ).

Управляющая программа представляет собой обычный текстовый файл и состоит из последовательности кадров и обычно начинается с символа начало программы (%) и заканчивается М02 или М30.

Каждый кадр программы представляет собой один шаг обработки и (в зависимости от УЧПУ) может начинаться с номера кадра (N1. N10 и т.д.), а заканчиваться символом конец кадра (;).

Кадр управляющей программы состоит из операторов в форме слов (G91, M30, X10. и т.д.). Слово состоит из символа (адреса) и цифры, представляющее арифметическое значение.

Адреса X, Y, Z, U, V, W, P, Q, R, A, B, C, D, E являются размерными перемещениям, используют для обозначения координатных осей, вдоль которых осуществляются перемещения.

Слова, описывающие перемещения, могут иметь знак (+) или (-). При отсутствии знака перемещение считается положительным.

Адреса I, J, K означают параметры интерполяции.

Символы могут принимать другие значения в зависимости от конкретного УЧПУ.

[править] ПОДГОТОВИТЕЛЬНЫЕ ФУНКЦИИ (G КОДЫ)

Функция G00 используется для выполнения ускоренного перемещения режущего инструмента к позиции обработки или к безопасной позиции. Ускоренное перемещение никогда не используется для выполнения обработки, так как скорость движения исполнительного органа станка очень высока. Код G00 отменяется кодами: G01, G02, G03.

Функция G01 используется для выполнения прямолинейных перемещений с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z). Код G01 отменяется кодами: G00, G02, G03.

Функция GO2 предназначена для выполнения перемещения инструмента по дуге (окружности) в направлении часовой стрелки с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z).

Параметры интерполяции I, J, K, которые определяют координаты центра дуги окружности в выбранной плоскости, программируются в приращениях от начальной точки к центру окружности, в направлениях, параллельных осям X, Y, Z соответственно.

Код G02 отменяется кодами: G00, G01, G03.

Функция GO3 предназначена для выполнения перемещения инструмента по дуге (окружности) в направлении против часовой стрелки с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z).

Параметры интерполяции I, J, K, которые определяют координаты центра дуги окружности в выбранной плоскости, программируются в приращениях от начальной точки к центру окружности, в направлениях, параллельных осям X, Y, Z соответственно.

Код G03 отменяется кодами: G00, G01, G02.

Код G17 предназначен для выбора плоскости XY в качестве рабочей. Плоскость XY становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.

Код G18 предназначен для выбора плоскости XZ в качестве рабочей. Плоскость XZ становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.

Код G19 предназначен для выбора плоскости YZ в качестве рабочей. Плоскость YZ становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.

Функция G20 активизирует режим работы с дюймовыми данными.

Функция G21 активизирует режим работы с метрическими данными.

Функция G40 отменяет действие автоматической коррекции на радиус инструмента G41 и G42.

Функция G41 применяется для включения автоматической коррекции на радиус инструмента находящегося слева от обрабатываемой поверхности (если смотреть от инструмента в направлении его движения относительно заготовки). Программируется вместе с функцией инструмента (D).

Функция G42 применяется для включения автоматической коррекции на радиус инструмента находящегося справа от обрабатываемой поверхности (если смотреть от инструмента в направлении его движения относительно заготовки). Программируется вместе с функцией инструмента (D).

Функция G43 применяется для компенсации длинны инструмента. Программируется вместе с функцией инструмента (H).

СЧПУ позволяет устанавливать кроме стандартных рабочих систем координат (G54-G59) еще и локальные. Когда СЧПУ станка выполняет команду G52, то начало действующей рабочей системы координат смещается на значение указанное при помощи слов данных X, Y и Z. Код G52 автоматически отменяется с помощью команды G52 ХО YO Z0.

Смещение рабочей системы координат детали относительно системы координат станка.

Код G69 отменяет режим вращения координат G68.

Цикл G73 предназначен для сверления отверстий. Движение в процессе обработки происходит на рабочей подаче с периодическим выводом инструмента. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G74 предназначен для нарезания левой резьбы метчиком. Движение в процессе обработки происходит на рабочей подаче, шпиндель вращается в заданном направлении. Движение в исходное положение после обработки идет на рабочей подаче с обратным вращением шпинделя.

Функция, которая отменяет любой постоянный цикл.

Цикл G81 предназначен для зацентровки и сверления отверстий. Движение в процессе обработки происходит на рабочей подаче. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G82 предназначен для сверления и зенкования отверстий. Движение в процессе обработки происходит на рабочей подаче с паузой в конце. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G83 предназначен для глубокого сверления отверстий. Движение в процессе обработки происходит на рабочей подаче с периодическим выводом инструмента в плоскость отвода. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G84 предназначен для нарезания резьбы метчиком. Движение в процессе обработки происходит на рабочей подаче, шпиндель вращается в заданном направлении. Движение в исходное положение после обработки идет на рабочей подаче с обратным вращением шпинделя.

Цикл G85 предназначен для развертывания и растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. Движение в исходное положение после обработки идет на рабочей подаче.

Цикл G86 предназначен для растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. В конце обработки происходит остановка шпинделя. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G87 предназначен для растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. В конце обработки происходит остановка шпинделя. Движение в исходное положение после обработки идет вручную.

В режиме абсолютного позиционирования G90 перемещения исполнительных органов производятся относительно нулевой точки рабочей системы координат G54-G59 (программируется, куда должен двигаться инструмент). Код G90 отменяется при помощи кода относительного позиционирования G91.

В режиме относительного (инкрементального) позиционирования G91 за нулевое положение каждый раз принимается положение исполнительного органа, которое он занимал перед началом перемещения к следующей опорной точке (программируется, на сколько должен переместиться инструмент). Код G91 отменяется при помощи кода абсолютного позиционирования G90.

При помощи функции G94 указанная скорость подачи устанавливается в дюймах за 1 минуту (если действует функция G20) или в миллиметрах за 1 минуту (если действует функция G21). Программируется вместе с функцией подачи (F). Код G94 отменяется кодом G95.

При помощи функции G95 указанная скорость подачи устанавливается в дюймах на 1 оборот шпинделя (если действует функция G20) или в миллиметрах на 1 оборот шпинделя (если действует функция G21). Т.е. скорость подачи F синхронизируется со скоростью вращения шпинделя S. Код G95 отменяется кодом G94.

Если постоянный цикл станка работает совместно с функцией G98, то инструмент возвращается к исходной плоскости в конце каждого цикла и между всеми обрабатываемыми отверстиями. Функция G98 отменяется при помощи G99.

Если постоянный цикл станка работает совместно с функцией G99, то инструмент возвращается к плоскости отвода между всеми обрабатываемыми отверстиями. Функция G99 отменяется при помощи G98.

G-code

G-код — условное именование языка программирования устройств с числовым программным управлением (ЧПУ). Был создан компанией Electronic Industries Alliance в начале 1960-х. Окончательная доработка была одобрена в феврале 1980 года как стандарт RS274D. Комитет ISO утвердил G-код как стандарт ISO 6983-1:2009, Госкомитет по стандартам СССР — как ГОСТ 20999-83. В советской технической литературе G-код обозначается как код ИСО 7-бит (ISO 7-bit). G-код кодировали на 8-дорожечную перфоленту в коде ISO 7-bit (разработан для представления информации УЧПУ в виде машинного кода так же, как и коды AEG и PC8C), восьмая дорожка использовалась для контроля чётности.

Производители систем УЧПУ (CNC), как правило, используют ПО управления станком, для которого написана (оператором) программа обработки в качестве осмысленных команд управления, используется G-код в качестве базового подмножества языка программирования, расширяя его по своему усмотрению. [1]

Содержание

Структура программы

Основные требования к структуре

Программа, написанная с использованием G-кода, имеет жёсткую структуру. Все команды управления объединяются в кадры — группы, состоящие из одной или более команд. Кадр завершается символом перевода строки (CR/LF) и может иметь явно указанный номер, начинающийся с буквы N, за исключением первого кадра программы и комментариев. Первый (а в некоторых случаях ещё и последний) кадр содержит только один необязательный знак «%». Завершается программа командами M02 или M30.

Комментарии к программе размещаются в круглых скобках. Комментарий может располагаться как в отдельной строке, так и после программных кодов. Недопустимо оформлять в качестве комментария несколько строк, охваченных парой круглых скобок.

Команды в каждом кадре выполняются одновременно, поэтому порядок команд в кадре строго не оговаривается, но традиционно предполагается, что первыми указываются подготовительные команды (например, выбор рабочей плоскости, скоростей перемещений по осям и др.), затем задание координат перемещения, затем выбора режимов обработки и технологические команды.

Максимальное число элементарных команд и заданий координат в одном кадре зависит от конкретного интерпретатора языка управления станками, но для большинства популярных интерпретаторов (стоек управления) не превышает 6.

Координаты задаются указанием оси с последующим числовым значением координаты. Целая и дробная части числа координаты разделяются десятичной точкой. Допустимо опускание незначащих нулей, либо их добавление. Также в подавляющем количестве интерпретаторов допустимо не добавлять десятичную точку к целым числам. Например: Y0.5 и Y.5, Y77, Y77. и Y077.0.

Существуют так называемые модальные и немодальные команды. Модальные команды изменяют некоторый параметр/настройку и эта настройка действует на все последующие кадры программы до их смены очередной модальной командой. К модальным командам, например, относятся скорости перемещения инструмента, управления скоростью шпинделя, подачи СОЖ и др. Немодальные команды действуют только внутри их содержащего кадра.

Интерпретатор кода (стойка управления) станком запоминает значение введённых параметров и настроек до их смены очередной модальной командой или отмены ранее введенной модальной команды, поэтому необязательно указание в каждом кадре, например, скорости перемещения инструмента.

Описание и вызов подпрограмм

Язык допускает многократное исполнение однократно записанной последовательности команд и перемещений инструмента, вызываемую из разных частей программы, например, вырезания в листовой заготовке многих отверстий с одинаковым сложным контуром, расположенных в разных местах будущей детали. При этом в теле подпрограммы описывается траектория движения инструмента для вырезания одного отверстия, а в программе производится многократный вызов подпрограммы. В теле подпрограммы перемещения инструмента задаются в относительных координатах — координатах связанных с формой отверстия, переход к относительной системе координат (иногда такую систему координат называют «инкрементной») производится командой G91 в начале тела подпрограммы, а возврат к абсолютной системе координат командой G90 — в конце тела подпрограммы.

Тело подпрограммы обязательно должно быть описано до команды конца программы — М30, но допустимо расположение подпрограммы после команды М02 — конца программы и иметь имя, начинающееся с буквы О с цифрами номера подпрограммы, например, О112. В конце тела подпрограммы помещается команда возврата в основную программу — М99.

В программе вызов подпрограммы производится командой М98 с указанием обязательного параметра имени подпрограммы P. Недопустимо совпадение имён подпрограмм в пределах одной программы. Пример вызова подпрограммы O112: M98 P112. Допустимо при вызове подпрограммы указание числа вызовов подпрограммы добавлением необязательного параметра L, например, двукратный вызов подпрограммы 112: M98 P112 L2, что, например, может быть полезно при описании выполнения второго прохода чистовой обработки после первого прохода черновой обработки. При опущенном параметре L подпрограмма вызывается однократно.

Управляющее математическое обеспечение некоторых станков или некоторые интерпретаторы G-кода допускают вызов подпрограмм по номеру строки в программе, для этого используется команда M97 с параметром P, указывающем на номер строки, например, M97 P321 L4 — четырёхкратный вызов подпрограммы начинающейся со строки 321. Оформленная таким образом подпрограмма как обычно должна заканчиваться командой M99 — возвратом в вызвавшую программу.

Допустимо вложение подпрограмм, то есть из подпрограммы возможен вызов другой подпрограммы. Максимально допустимое число уровней вложения зависит от реализации конкретного интерпретатора G-кода.

Пример программы вырезания 2 прямоугольных отверстий 10×20 мм с координатами левого нижнего угла отверстий x=57, y=62 и x=104, y=76 в листовой заготовке толщиной 5 мм с вызовом подпрограммы описывающей вырезание 1 отверстия

Сводная таблица кодов

Основные (называемые в стандарте подготовительными) команды языка начинаются с буквы G:

Таблица основных команд

КомандаОписаниеПример
G00Ускоренное перемещение инструмента (холостой ход)G0 X0 Y0 Z100.
G01Линейная интерполяцияG01 X0. Y0. Z100. F200.
G02Круговая интерполяция по часовой стрелкеG02 X15. Y15. R5. F200.
G03Круговая интерполяция против часовой стрелкиG03 X15. Y15. R5. F200.
G04Задержка выполнения программы, способ задания величины задержки зависит от реализации системы управленияG04 P500;
G10Задать новые координаты для начала координатG10 X10. Y10. Z10.
G15Полярная система координат (X радиус Y угол)G15 X15. Y22.5
G16Отмена полярной системы координатG16 X15. Y22.5
G17Выбор рабочей плоскости X-YG17
G18Выбор рабочей плоскости Z-XG18
G19Выбор рабочей плоскости Y-ZG19
G20Режим работы в дюймовой системеG90 G20
G21Режим работы в метрической системеG90 G21
G22Активировать установленный предел перемещений (Станок не выйдет за их предел)G22 G01 X15. Y25.
G28Вернуться на референтную точкуG28 G91 Z0 Y0
G30Поднятие по оси Z на точку смены инструментаG30 G91 Z0
G40Отмена компенсации радиуса инструментаG1 G40 X0. Y0. F200.
G41Компенсировать радиус инструмента слева от траекторииG41 X15. Y15. D1 F100.
G42Компенсировать радиус инструмента справа от траекторииG42 X15. Y15. D1 F100.
G43Компенсировать длину инструмента положительноG43 X15. Y15. Z100. H1 S1000 M3
G44Компенсировать длину инструмента отрицательноG44 X15. Y15. Z4. H1 S1000 M3
G49Отмена компенсации длины инструментаG49 Z100.
G53Отключить смещение начала системы координат станкаG53 G0 X0. Y0. Z0.
G54—G59Переключиться на заданную оператором систему координатG54 G0 X0. Y0. Z100.
G61—G64Переключение режимов Точный Стоп/Постоянная скорость
G68Поворот координат на нужный уголG68 X0 Y0 R45.
G70Цикл продольного чистового точенияG70 P10 Q15.
G71Цикл многопроходного продольного чернового точенияG71 P10 Q15. D0.5 UO.2 W0.5
G80Отмена циклов сверления, растачивания, нарезания резьбы метчиком и т. д.G80
G81Цикл сверленияG81 X0 Y0. Z-10. R3. F100.
G82Цикл сверления с задержкойG82 X0. Y0. Z-10. R3. P100 F100.
G83Цикл прерывистого сверления (с полным выводом сверла)G83 X0. Y0. Z-10. R3. Q8. F100.
G84Цикл нарезания резьбыG95 G84 M29 X0. Y0. Z-10. R3 F1.411
G90Задание абсолютных координат опорных точек траекторииG90 G1 X0.5. Y0.5. F10.
G91Задание координат инкрементально последней введённой опорной точкиG91 G1 X4. Y5. F100.
G94F (подача) — в формате мм/мин.G94 G80 Z100. F75.
G95F (подача) — в формате мм/об.G95 G84 X0. Y0. Z-10. R3 F1.411
G99После каждого цикла не отходить на «проходную точку»G99 G91 X10. K4.

максимум 4 команды в кадре

Таблица технологических кодов

Технологические команды языка начинаются с буквы М. Включают такие действия, как:

Параметры команд

Параметры команд задаются буквами латинского алфавита

КодОписаниеПример
XКоордината точки траектории по оси XG0 X100 Y0 Z0
YКоордината точки траектории по оси YG0 X0 Y100 Z0
ZКоордината точки траектории по оси ZG0 X0 Y0 Z100
PПараметр командыG04 P101
FСкорость рабочей подачи.

Для фрезерных станков это дюймы в минуту (IPM) или миллиметры в минуту (mm/min),

Для токарных станков это дюймы за оборот (IPR) или миллиметры за оборот (mm/rev).

G1 G91 X10 F100
SЧастота вращения шпинделяS3000 M3
RПараметр стандартного цикла или радиус дуги (расширение стандарта)G81 R1 0 R2 −10 F50 или G2 G91 X12.5 R12.5
DПараметр коррекции выбранного инструментаG1 G41 D1 X10. F150.
LЧисло вызовов подпрограммыM98 L82 P10 или G65 L82 P10 X_Y_R_
IПараметр дуги при круговой интерполяции. Инкрементальное расстояние от начальной точки до центра дуги по оси X.G03 X10 Y10 I0 J0 F10
JПараметр дуги при круговой интерполяции. Инкрементальное расстояние от начальной точки до центра дуги по оси Y.G03 X10 Y10 I0 J0 F10
KПараметр дуги при круговой интерполяции. Инкрементальное расстояние дуги по оси Z.G03 X10 Y10 I0 K0 F10

Пример

Обработка буквы W (вписанной в прямоугольник 34х27 мм, см. рис.) на условном вертикально-фрезерном станке с ЧПУ, фрезой диаметром 4 мм, в заготовке из органического стекла [2] :

Красным цветом выделен результат обработки.

Как создать G-код для ЧПУ

Как создать G-код для ЧПУ

Вы знаете, что такое G-код

В сегодняшнем индустриально развитом обществе Фрезерный станок с ЧПУ широко используется во многих областях. С увеличением объема и частоты использования станок с ЧПУ постепенно разработал универсальный компьютерный язык: это код G.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Почему нам нужно изучать G-код

Поскольку G-код должен быть запрограммирован G-кодом для управления станком для выполнения различных функций. Теперь есть два основных способа завершить программирование ЧПУ. Напишите код G непосредственно для программирования. 1. Используйте программное обеспечение CAD / CAM для завершения программирования ЧПУ. Но у этих двух методов есть определенные недостатки. Таким образом, большинство людей сейчас используют программное обеспечение CAD / CAM для создания начальной программы ЧПУ, а затем используют программирование G-кода для редактирования g-кода из программного обеспечения CAD / CAM. Это не только повышает эффективность работы фрезерного станка с ЧПУ, но и повышает стабильность фрезерного станка с ЧПУ.

По сравнению с программным обеспечением CAD / CAM, программирование кода G имеет более мощные функции. Некоторые задачи не могут быть выполнены с помощью CAD / CAM, но вы можете быстро выполнить их с помощью кода G. Как правило, программирование кода G очень подходит для решения следующих задач:

1. Использование программирования с помощью кода G может упростить процесс производства простых деталей и повысить эффективность работы: например, если вы хотите выгравировать небольшой узор, если вы используете программное обеспечение CAM для создания файлов кода G, в общем, такое программное обеспечение сгенерированный Код будет сложнее, чем писать напрямую с помощью G-кода.

2. Используйте программирование кода G для выполнения задач, которые не могут быть выполнены с помощью программ CAD / CAM: С развитием машин и кода G возникли некоторые профессиональные задачи, которые программное обеспечение CAM не может выполнить, и некоторые последующие задачи при импорте машин. Эти задачи не могут быть выполнены с помощью программного обеспечения, они могут быть выполнены только с помощью кода G.

3. Использование программирования с помощью G-кода может изменить ошибки программного обеспечения CAM / CAD во время процесса программирования: Даже самое продвинутое программное обеспечение CAM не может избежать ошибок, поэтому при обнаружении ошибки вы можете напрямую изменить G-код, экспортированный программным обеспечением CAM, через G-код.

Duet3D

Site Navigation

Your Account

Choose Language

Gcode dictionary

This page describes the RepRapFirmware supported G-codes, originally based on the information from the RepRap wiki G-code page.

G-Codes are a widely used machine control language. They are human readable and editable. This page describes the RepRapFirmware supported G-codes. RepRapFirmware follows the philosophy of «G-code everywhere», in essence the users or external program’s interaction with the firmware should be through G-codes. There are G-codes for all supported control and configuration inputs along with status and debugging information.

RepRapFirmware G-codes were originally based on the information from the RepRap wiki G-code page. There are some G-Codes listed on that page that are not implemented in RepRapFirmware. More details can be found on the G-Codes not implemented page.

Introduction

A typical piece of G-code sent to a machine running RepRapFirmware might look like this (The meaning of these codes (and more) is explained below on this page.)

G-Code Everywhere

A design philosophy of RepRapFirmware is «G-code everywhere» what this means is explained in this sub section

The G-code can originate from a number of sources:

In all cases the G-Code could

A key difference from other 3d printer firmwares is not employing a separate command set (other than G-codes) to configure the printer. To that end RepRapFirmware has a large collection of configuration g-codes that allow the behaviour of the machine to be controlled. For some examples of when these G-Codes are employed have a look at these wiki pages:

The advantage of «G-code everywhere» is the same commands can be send from any of the G-Code sources, and originate from the user, a UI, macro or file and it will generate the same response from the firmware. This greatly improves the ease and power of firmware configuration and operation.

G-Code Structure

This section explains the elements that make up a G-Code command.

Command Order

The general rule on command order in config.g is: don’t try to change the parameters of anything that you haven’t already created and doesn’t exist by default.

Comments

G-Code comments begin at a semicolon, and end at the end of the line:

Alternatively, comments can be enclosed in brackets, but they must start and end on the same line:

Comments and white space will be ignored by RepRapFirmware when executing the G-Code

Fields

A RepRap G-Code is a list of fields that are separated by white spaces or line breaks. A field can be interpreted as a command, parameter, or for any other special purpose. It consists of one letter directly followed by a number, or can be only a stand-alone letter (Flag). The letter gives information about the meaning of the field (see the list below in this section). Numbers can be integers (128) or fractional numbers (12.42), depending on context. For example, an X coordinate can take integers (X175) or fractionals (X17.62), but selecting extruder number 2.76 would make no sense. In this description, the numbers in the fields are represented by nnn as a placeholder.

In RepRapFirmware 3.01 and later, instead of a number you may use an expression enclosed in braces, for example <2+2>. See GCode Meta Commands for details of the supported expression types.

In RepRapFirmware, some parameters can be followed by more than one number, with colon used to separate them. Typically this is used to specify extruder parameters, with one value provided per extruder. If only one value is provided where a value is needed for each extruder, then that value is applied to all extruders.

Case sensitivity

The original NIST GCode standard requires gcode interpreters to be case-insensitive, except for characters in comments. However, not all 3D printer firmwares conform to this and some recognise uppercase command letters and parameters only.

RepRapFirmware version 1.19 and later is case-insensitive, except for characters within quoted strings. RepRapFirmware version 1.18 and earlier accept only uppercase letters for command and parameter letters.

Quoted strings

In RepRapFirmware, quoted strings are permitted anywhere a string parameter is expected. This allows file names, WiFi passwords etc. to contain spaces, semicolons and other characters that would otherwise not be permitted. Double-quote characters are used to delimit the string, and any double-quote character within the string must be repeated.

Unfortunately, many gcode sender programs convert all characters to uppercase and don’t provide any means to disable this feature. Therefore, within a quoted-string, the single-quote character is used as a flag to force the following character to lowercase. If you want to include a single quote character in the string, use two single quote characters to represent one single quote character.

Example: to add SSID MYROUTER with password ABCxyz;» 123 to the WiFi network list, use command:

or if you can’t send lowercase characters:

Checking

This is an optional feature that is seldom used as g-code files are normally printed form the on-board SD card.

N: Line number

If present, the line number should be the first field in a line. For G-code stored in files on SD cards the line number is usually omitted.

If checking is supported, the firmware expects line numbers to increase by 1 each line, and if that doesn’t happen it is flagged as an error. But you can reset the count using M110 (see below).

*: Checksum

If present, the checksum should be the last field in a line, but before a comment. For G-code stored in files on SD cards the checksum is usually omitted.

If checking is supported, the RepRap firmware checks the checksum against a locally-computed value and, if they differ, requests a repeat transmission of the line of the given number.

Method

Example: N123 [. G Code in here. ] *71

The firmware checks the line number and the checksum.

The checksum «cs» for a G-Code string «cmd» (including its line number) is computed by exor-ing the bytes in the string up to and not including the * character as follows:

and the value is appended as a decimal integer to the command after the * character.

Conditional execution, loops, and other command words

In RepRapFirmware 3.01 and later, if the line begins with a recognised keyword (optionally preceded by N and a line number, and/or space or tab characters) then that whole line of GCode is interpreted as a meta-command. Recognised keywords are:

abort elif else if set var while

See GCode Meta Commands for details of these commands.

A line that does not start with one of these keywords must start with command letter G, M or T or be empty apart from white space and comments. Exception: when in CNC or Laser mode, if a line does not start with a G, M or T command but nevertheless has other fields, and the previous line that included a command was a G0, G1, G2 or G3 command, then the previous command will be repeated with values from the new fields. This is to support GCode generated for CNC machines.

Multiple commands on a single line

RepRapFirmware allows multiple G- and M-commands to be included in a single line. Each occurrence of G or M on the line that is preceded by a space or tab character and is not inside a quoted string or a meta command starts a new command. In RRF 3.2 and later, the space or tab character is not required.

Important: a command that invokes a macro file must be the last command in that line of GCode, because any following commands on the same line will not be executed.

Buffering

RepRapFirmware stores some commands in a ring buffer internally for execution. This means that there is no (appreciable) delay while a command is acknowledged and the next transmitted. In turn, this means that sequences of line segments can be plotted without a dwell between one and the next. As soon as one of these buffered commands is received it is acknowledged and stored locally. If the local buffer is full, then the acknowledgement is delayed until space for storage in the buffer is available. PC host programs rely on this for flow control when the controller electronics does not support device level flow control.

Only the G0 to G3 movement commands are buffered by RepRapFirmware. All other G, M or T commands are not buffered. When M555 P6 is used to select nanoDLP compatibility mode, no commands are buffered.

When an unbuffered command is received it is stored, but it is not acknowledged to the host until the buffer is exhausted and then the command has been executed.

Filenames and Paths

System macro gcode files are expected in «0:/sys/». See M505 for how to switch between multiple configurations

User macro gcode files are expected in «0:/macros/»

Job gcode files are expected in «0:/gcodes/» or a sub directory of that.

«0:/ is root of the on board SD card in stand alone mode, or equivalent folder in SBC mode (/opt/dsf/sd/)

Long file names (e.g. longer than 8.3 format) are supported, file names with spaces are supported.

Full paths, including all directories and subdirectories are limited to 120 characters.

counts as 30 characters

Live editing

As a general rule, any G or M command can be sent at any time. This means all settings can be changed ‘on the fly’, i.e. while printing. This does not take into account logical considerations, or individual pre-requisites for individual commands. For example, sending new values for M566 ‘jerk’, M201 ‘acceleration’, or M203 ‘max speed’ while printing is a great way to tune these values. However, while it is theoretically possible to change M563 ‘define a tool’ while printing, it’s probably not a good idea.

G-commands

G0 & G1: Move

G0: Rapid move

G1: Controlled *(linear) move

G2 & G3: Controlled Arc Move

G2: Clockwise arc move

G3: Counter-clockwise arc move

G4: Dwell

G4: Pause the machine for a period of time, in milliseconds or seconds

G10: Tool Temperature Setting

G10: (P parameter with R or S parameter) Sets active and standby tool temperatures

G10: Set workplace coordinate offset or tool offset

G10: (XYZUVWABC and L parameters) Sets tool offset or coordinate system origin (absolute or relative current position) for specific tool

G10: Retract

G10: (no parameters) Retracts filament then performs any zlift/hop according to settings of M207

G11: Unretract

G11: Unretracts/recovers filament after undoing any zlift/hop according to settings of M207

G17: Select XY plane for arc moves

G17: Sets XY as the active plane for interpreting the tool path of an arc (G2 or G3)

G18: Select XZ plane for arc moves

G18: Sets XZ as the active plane for interpreting the tool path of an arc (G2 or G3)

G19: Select YZ plane for arc moves

G19: Sets YZ as the active plane for interpreting the tool path of an arc (G2 or G3)

G20: Set Units to Inches

G20: Units from this command onwards are in inches

G21: Set Units to Millimeters

G21: Units from this command onwards are in millimeters

G28: Home

G28: Move all axes, or the specified ones, to establish a known position for them, for example by moving an axis motor until an endstop switch is triggered

G29: Mesh bed probe

G29: Uses a Z probe to measure the bed height at 4 or more points to determine its tilt and overall flatness, then enables mesh compensation so that the nozzle will remain parallel to the bed

G30: Single Z-Probe

G30: Uses a Z probe to measure bed height at a single point

G31: Set or Report Current Probe status

G31: Sets Z probe parameters or reports status

G32: Run bed.g macro

G32: Runs macro file bed.g. This macro can be used to probe the bed and then perform auto calibration of a delta printer, perform bed levelling by moving the Z leadscrews independently, or display the manual corrections needed to the bed levelling screws.

G38.2 to G38.5: Straight Probe

G38.2: Probe toward workpiece, stop on contact, signal error if failure

G38.3: Probe toward workpiece, stop on contact

G38.4: Probe away from workpiece, stop on loss of contact, signal error if failure

G38.5: Probe away from workpiece, stop on loss of contact

G53: Use machine coordinates

G53: Causes all coordinates in movement commands on the remainder of the current line of GCode to be interpreted as machine coordinates, ignoring any coordinate offset of the workplace coordinate system currently in use, and also ignoring any tool offsets

G54 to G59.3: Select coordinate system

G54: selects coordinate system 1

G55: selects coordinate system 2

G56: selects coordinate system 3

G57: selects coordinate system 4

G58: selects coordinate system 5

G59: selects coordinate system 6

G59.1: selects coordinate system 7

G59.2: selects coordinate system 8

G59.3: selects coordinate system 9

G60: Save current position to slot

G60: Saves current position to slots 0, 1 or 2

G68: Coordinate rotation

G68: Rotates the coordinate system in the current plane as selected by G17, G18 or G19.

G69: Cancel coordinate rotation

G69: Cancels any coordinate rotation that was set up by G68.

G90: Set to Absolute Positioning

G90: All coordinates from this command onwards are absolute, relative to the origin of the machine

G91: Set to Relative Positioning

G91: All coordinates from this command onwards are relative to the last position.

G92: Set Position

G92: Sets position of axes by manually specifying values for the axis positions

M-commands

M0: Stop or Unconditional stop

M0: After finishing any moves left in buffer, runs either cancel.g or stop.g, then sets motors to idle and turns heaters off (unless specified not to)

M1: Sleep or Conditional stop

M1: After finishing any moves left in buffer, runs either cancel.g or sleep.g, then turns off all motors and heaters

M3: Spindle On, Clockwise (CNC specific)/ Laser on (Laser specific)

M3: In CNC mode turns on spindle clockwise, in Laser mode turns on laser power

M4: Spindle On, Counterclockwise (CNC specific)

M4: Turns on spindle counterclockwise

M5: Spindle Off (CNC specific), laser off (Laser specific)

M5: In CNC mode turns off spindle, in Laser mode turns off laser power

M17: Enable all stepper motors

M17: Enables all stepper motors when used without parameters, or use axes parameters to enable selectively

M18: Disable all stepper motors

M18: Disables all stepper motors when used without parameters, or use axes parameters to enable selectively

M20: List SD card

M20: Lists files on the SD card. Use parameters to list files in subdirectories or on secondary SD card

M21: Initialize SD card

M21: The specified SD card is initialized. If an SD card is loaded when the machine is switched on, this will happen by default. SD card must be initialized for the other SD functions to work.

M22: Release SD card

M22: The specified SD card is released, so further (accidental) attempts to read from it are guaranteed to fail. Helpful, but not mandatory before removing the card physically.

M23: Select SD file

M23: The specified file is selected ready for printing.

M24: Start/resume SD print

M24: The machine prints from the file selected with the M23 command. If the print was previously paused with M25, printing is resumed from that point.

M25: Pause SD print

M25: The machine pauses printing at the current position within the file.

M26: Set SD position

M26: Set the file offset in bytes from the start of the SD card file selected by M23.

M27: Report SD print status

M27: Reports the number of bytes processed in the format bytes processed / bytes total in file

M28: Begin write to SD card

M28: The specified file is created (or overwritten if it exists) on the SD card and all subsequent commands sent to the machine are written to that file.

M29: Stop writing to SD card

M29: File opened by M28 command is closed, and all subsequent commands sent to the machine are executed as normal.

M30: Delete a file on the SD card

M30: The specified file is deleted.

M32: Select file and start SD print

M32: The specified file is selected from the SD card and starts printing. Does the same as M23 and M24.

M36: Return file information

M36: Returns information for the specified SD card file in JSON format.

M36.1: Return embedded thumbnail data

M36.1: Returns the data for a thumbnail image in a GCode file in JSON format.

M37: Simulation mode

M37: Enters/leaves simulation mode, or runs the specified file in simulation mode allows the electronics to compute an accurate printing time, taking into account the maximum speeds, accelerations etc. that are configured.

M38: Compute SHA1 hash of target file

M38: Used to compute a hash of a file on the SD card and returns a hexadecimal string which is the SHA1 of the file.

M39: Report SD card information

M39: Returns information about the SD card in the specified slot in the requested format.

M42: Switch I/O pin

M42: Switches a general purpose I/O pin.

M73: Set remaining print time

M73: Generated by some slicers to inform the firmware about the state of the print so that it can provide a better estimate of the remaining print time.

M80: ATX Power On

M80: Turns on the ATX power supply from standby mode to fully operational mode using the power supply control pin on the External 5V header.

M81: ATX Power Off

M81: Turns off the ATX power supply. Counterpart to M80.

M82: Set extruder to absolute mode

M82: Makes the extruder interpret extrusion as absolute positions.

M83: Set extruder to relative mode

M83: Makes the extruder interpret extrusion values as relative positions.

M84: Stop idle hold

M84: Stop the stepper motor idle hold on all axes and extruder.

M92: Set axis steps per unit

M92: Allows programming of steps per mm for motor drives.

M98: Call Macro/Subprogram

M98: Runs the macro in the specified file.

M99: Return from Macro/Subprogram

M99: Returns from an M98 call. This is not required to return from the end of a macro and the macro naturally returns at the end of file.

M101: Un-retract filament

M101: Same behaviour as G11 (unretract). Supported for compatibility with Simplify3D.

M102: Turn extruder on (ignored)

M102: Command ignored as it is unnecessary in RRF. Supported for compatibility with Simplify3D.

M103: Retract filament

M103: Same behaviour as G10 without parameters (retract). Supported for compatibility with Simplify3D.

M104: Set Extruder Temperature

M104: Sets the active and standby temperature of the current or specified tool to the temperature specified, and returns control to the host immediately (i.e. before that temperature has been reached by the extruder).

M105: Get Extruder Temperature

M105: Reports the current and target temperatures of all active heaters.

M106: Fan On

M106: Sets fan parameters and turns them on and off.

M107: Fan Off

M107: Deprecated in RepRapFirmware. Use M106 S0 instead.

M108: Cancel Heating

M108: Breaks out of an M109 or M190 wait-for-temperature loop, continuing the print job.

M109: Set Extruder Temperature and Wait

M109: Sets extruder temperature and waits until within 2.5°C of target.

M110: Set Current Line Number

M110: Sets the current line number in the running Gcode file.

M111: Set Debug Level

M111: Enables or disables debugging features, for the module number specified by the P parameter.

M112: Emergency Stop

M112: Any moves in progress are immediately terminated, then RepRap shuts down. All motors and heaters are turned off. It can be started again by pressing the reset button or power cycling the board.

M114: Get Current Position

M114: Reports the X, Y, Z and E (and U, V, W, A, B, C if configured) coordinates to the host. The coordinates reported are those at the end of the last completed move.

M115: Get Firmware Version and Capabilities

M115: Request the Firmware Version and Capabilities of the current microcontroller.

M116: Wait

M116: waits for all temperatures, or a specified tool or heater’s temperature, and other slowly-changing variables to arrive at their set values.

M117: Display Message

M117: Causes the given message to be shown in the status line on an attached LCD or if no LCD is attached, this message will be reported on the web interface.

M118: Send Message to Specific Target

M118: Used to send messages to a specific target: USB, PanelDue/UART, HTTP or Telnet

M119: Get Endstop Status

M119: Returns the current state of the configured endstops.

M120: Push

M120: Push the state of the machine onto a stack. Called automatically when a macro file is run.

M121: Pop

M121: Recover the last state pushed onto the stack.

M122: Diagnose

M122: Reports firmware diagnostic information.

M135: Set PID sample interval

M135: Deprecated. Sets the PID to measure temperatures and calculate the power to send to the heaters

M140: Set Bed Temperature (Fast) or Configure Bed Heater

M140: Configures heaters as bed heaters and sets active and standby temperatures, turns heaters on and returns control to the host immediately.

M141: Set Chamber Temperature (Fast) or Configure Chamber Heater

M141: Configures heaters as chamber heaters and sets active and standby temperatures, turns heaters on and returns control to the host immediately.

M143: Maximum heater temperature

M143: Configures heater maximum temperatures. When the temperature of the heater exceeds this value a heater error will be triggered.

M144: Bed Standby

M144: Switch the bed to its standby temperature.

M150: Set LED colours

M150: Sets RGB colours and brightness for Dotstar and NeoPixel LEDs.

M190: Wait for bed temperature to reach target temp

M190: Sets the temperature of the bed and waits for the temperature to be reached.

M191: Wait for chamber temperature to reach target temp

M191: Set the temperature of the build chamber and waits for the temperature to be reached.

M200: Set filament diameter

M200: Enables or disables volumetric extrusion per extruder, and sets the filament diameter.

M201: Set max acceleration

M201: Sets the acceleration that axes can do in mm/second^2 for print moves.

M201.1: Set reduced acceleration for special move types

M201.1: Set the acceleration that axes should use for special types of move that should be done using reduced acceleration, eg probing and stall homing.

M203: Set maximum feedrate

M203: Sets the maximum feedrates that axes can do in mm/min.

M204: Set printing and travel accelerations

M204: Sets the maximum acceleration for printing and/or travel moves as a whole.

M205: Set max instantaneous speed change in mm/sec

M205: Sets the maximum allowable speed change (sometimes called ‘jerk speed’) of each motor when changing direction, in mm/sec.

M206: Offset axes

M206: Deprecated. The specified values will be subtracted from the coordinates given in G0, G1 and related commands.

M207: Set retract length

M207: Sets the retract length used by the G10 and G11 firmware retraction and reprime commands.

M208: Set axis max travel

M208: The specified values set the software limits for axis travel in the specified direction. The axis limits are also the positions assumed when an endstop is triggered.

M220: Set speed factor override percentage

M220: Sets the speed factor override percentage.

M221: Set extrude factor override percentage

M221: Sets extrude factor override percentage for the specified extruder.

M226: Synchronous Pause

M226: Initiates a pause in the same way as if the pause button is pressed, except that execution of all prior GCode commands in the same input stream is completed first.

M260: i2c Send and/or request Data

M260: Send and/or receive data over the i2c bus.

M261: i2c Request Data

M261: Deprecated. Requests data over the i2c bus.

M280: Set servo position

M280: Set absolute servo position.

M290: Baby stepping

M290: Applies the specified additional offset to the Z coordinate for all future moves, and to apply the offset to moves that have already been queued if this can be done.

M291: Display message and optionally wait for response

M291: Provides a more flexible alternative to M117, in particular messages that time out, messages that suspend execution until the user acknowledges them, and messages that allow the user to adjust axis positions before acknowledging them.

M292: Acknowledge message

M292: Sent by the user interface when the user acknowledges a message that was displayed because of a blocking M291 command.

M300: Play beep sound

M300: Play beep sound via connected LCD, or if no LCD, via web interface.

M301: Set PID parameters

M301: Sets Proportional (P), Integral (I) and Derivative (D) values for hot end.

M302: Allow cold extrudes

M302: Disables temperature restrictions on extrusion and retraction, or sets these temperatures.

M303: Run heater tuning

M303: This command computes the process model parameters (see M307), which are in turn used to calculate the PID constants.

M304: Sets Proportional, Integral and Derivative values for bed.

M305: Set temperature sensor parameters

M305: Sets or reports the parameters for each temperature sensor. If using RRF 3, use M308 instead.

M307: Set or report heating process parameters

M307: Sets or reports the parameters for the heating process model, for each heater.

M308: Set or report sensor parameters

M308: Sets or reports the parameters for each connected sensor. If using RRF 2, use M305 instead.

M309: Set or report heater feedforward

M309: Sets or reports the feedforward PWM setting for a specified tool. Supported in RepRapFirmware v3.4 and later

M350: Set microstepping mode

M350: Sets or reports the microstepping mode for each defined axis.

M374: Save height map

M374: Saves the mesh grid parameters and height map into the specified file, or the default file heightmap.csv if no filename was specified.

M375: Load height map

M375: Loads the default grid (without parameters), or grid specified by filename. Equivalent to G29 S1.

M376: Set bed compensation taper

M376: When using bed mesh compensation, specifies the height over which bed compensation tapers. Full bed compensation is applied at Z=0, tapering down to no bed compensation by the specified height.

M400: Wait for current moves to finish

M400: Finishes all current moves and and thus clears the buffer. Same as G4 P0.

M401: Deploy z-probe

M401: Runs macro file sys/deployprobe#.g (where # is the specified probe number) if it exists, otherwise sys/deployprobe.g if it exists.

M402: Retract z-probe

M402: Runs macro file sys/retractprobe#.g (where # is the specified probe number) if it exists, otherwise sys/retractprobe.g if it exists.

M404: Filament width and nozzle diameter

M404: Sets filament width and nozzle diameter. Used for slicers that report filament volume, from which RRF calculates length for job status reporting.

M408: Report JSON-style response

M408: Reports system parameters in a JSON-style response. Different levels of reporting are available.

M409: Query object model

M409: Reports parameters from the Object Model of RepRapFirmware, which includes firmware configuration, Duet hardware information, and the state of the machine that RRF is controlling.

M450: Report Printer Mode

M450: Report mode the machine is running; FFF (ie 3D printer), Laser or CNC.

M451: Select FFF Printer Mode

M451: Switches to Fused Filament Fabrication mode for filament printing.

M452: Select Laser DeviceMode

M452: Switches to laser mode and configures laser parameters.

M453: Select CNC Device Mode

M453: Switches to CNC mode.

M470: Create Directory on SD-Card

M470: Creates a new directory on the SD-Card, using the specified (or default) path.

M471: Rename File/Directory on SD-Card

M471: Rename or move a file or directory.

M486: Object cancellation

M486: Used to identify objects on the print bed and selectively cancel them if necessary.

M500: Store parameters

M500: Saves current parameters to the sys/config-override.g on the SD card.

M501: Read stored parameters

M501: Set the active parameters to those stored in sys/config-override.g on the SD card.

M502: Revert stored parameters

M502: Sets all machine parameters to the values defined in config.g, ignoring the config-override.g file so that any changes that were saved by M500 are not applied.

M503: Print settings

M503: Reports the current print settings stored in sys/config.g.

M505: Set configuration file folder

M505: Following this command, files that would normally be fetched from /sys/ (for example, homing files and system macro files in RepRapFirmware) are fetched from the specified folder instead. This command can be used to allow multiple configurations to be maintained easily.

M540: Set MAC address

M540: Sets the MAC address of the machine, creating a unique identifier for the Duet on the network.

M550: Set Name

M550: Sets the name of the machine. Also used for mDNS local network discovery.

M551: Set Password

M551: Sets the password for network access to the machine.

M552: Set IP address, enable/disable network interface

M552: Sets the IP address of the machine and enables/disables network access.

M553: Set Netmask

M553: Sets the network mask of the machine.

M554: Set Gateway and/or DNS server

M554: Sets the Gateway IP address of the machine.

M555: Set compatibility

M555: Sets the firmware to a mode where its input and (especially) output behaves similar to other established firmware.

M556: Axis skew compensation

M556: This tells firmware the tangents of the angles between the axes of the machine. Obtained by printing then measuring a test part.

M557: Set Z probe point or define probing grid

M557: Defines the grid used by G29 to create a bed height mesh.

M558: Set Z probe type

M558: Defines the Z probe type and parameters of operation.

M559: Upload file

M559: Upload file, with parameters for file size and CRC-32 check. Was used in RRF 3.1 and earlier to upload files to /sys.

M560: Upload file

M560: Upload file, as M559, with terminating string. Was used in RRF 3.1 and earlier to upload files to /www.

M561: Set Identity Transform

M561: Cancels any bed-plane fitting as the result of probing (or anything else) and returns the machine to moving in the user’s coordinate system.

M562: Reset temperature fault

M562: If the heater has switched off and locked because it has detected a fault, this will reset the fault condition and allow you to use the heater again.

M563: Define or remove a tool

M563: Defines a tool with the specified parameters.

M564: Limit axes

M564: Allows or forbids movement of axes that have not been homed and/or limits movement to within axis boundaries.

M566: Set allowable instantaneous speed change

M566: Sets the maximum allowable speed change (sometimes called ‘jerk speed’) of each motor when changing direction.

M567: Set tool mix ratios

M567: Sets the mix ratio for a tool. When a move command contains a single E value but the current tool uses multiple extruders, each extruder will extrude the amount specified in the E parameter times the mix value for that tool.

M568: Set Tool Settings

M568: Set tool parameters to values specified. Active and standby temperatures, spindle RPM and heater state.

M569: Set motor driver direction, enable polarity, mode and step pulse timing

M569: Sets stepper driver parameters to values specified. Parameters include motor direction, enable, minimum step pulse width, interval, direction setup and hold time, and other stepper driver features.

M569.1: Stepper driver closed loop configuration

M569.1: Set the configuration parameters of a closed loop driver. Supported for drivers attached to Duet 3 Expansion 1HCL board.

M569.2: Read or write stepper driver register

M569.2: Reads the specified register and returns the value of that register, or if a value is specified, that value is written to the specified register.

M569.3: Read Motor Driver Encoder

M569.3: Report a current motors encoder position to the host in units of arc degrees (1/360’ths of turns), relative to set reference position.

M569.4: Set Motor Driver Torque Mode

M569.4: Tell one or more motor drivers to apply a specified torque regardless of position.

M569.5: Closed loop data collection

M569.5: Collect performance data from a drive whilst in closed loop mode.

M569.6: Execute closed loop tuning move

M569.6: Perform a runtime tuning manoeuvre with a closed loop drive.

M569.7: Configure motor brake port

M569.7: Specifies the output port that controls a brake.

M570: Configure heater fault detection

M570: Sets time and temperature parameters for the detection of heater anomalies.

M571: Set output on extrude

M571: Turns on the defined output pin whenever extrusion is being done, and turns it off when the extrusion is finished.

M572: Set or report extruder pressure advance

M572: Sets the pressure advance coefficient for the specified extruder.

M573: Report heater PWM

M573: Gives a running average (usually taken over about five seconds) of the PWM to the specified heater.

M574: Set endstop configuration

M574: Defines the pin name, position and type of endstop or sensor that the machine has for an axis.

M575: Set serial comms parameters

M575: Sets the communications parameters of the serial comms channel specified.

M576: Set SPI comms parameters

M576: Sets the communications parameters of the SPI channel.

M577: Wait until endstop is triggered

M577:Wait for a specified endstop switch or input to be triggered.

M578: Fire inkjet bits

M578: Fires specified inkjet head using the specified bit pattern. Not enabled in firmware by default.

M579: Scale Cartesian axes

M579: Scales the specified axes by the given amount, to get prints exactly the right size.

M580: Select Roland

M580: Enables/disables Roland mode, which changes output to Roland Machine Language (RML).

M581: Configure external trigger

M581: Defines parameters for external triggers.

M582: Check external trigger

M582: Checks state of specified trigger.

M584: Set drive mapping

M584: Assigns stepper driver numbers to axes, and defines axes as linear or rotational.

M585: Probe Tool

M585: Allows the current tool’s offset to be updated by driving it into a given endstop, on machines with at least one tool probe.

M586: Configure network protocols

M586: Enables/disables network protocols (HTTP, HTTPS, FTP, Telnet, SSH) and configures parameters.

M587: Add WiFi host network to remembered list, or list remembered networks

M587: Adds WiFi network SSID and password to the remembered networks list. Optionally sets IP address, gateway, netmask, DNS server and country code.

M588: Forget WiFi host network

M588: Removes the specified network SSID from the remembered networks list.

M589: Configure access point parameters

M589: Configures the Duet to allow WiFi devices to connect directly, as an access point. Settings for SSID, password, IP address and optionally the WiFi channel.

M591: Configure filament sensing

M591: Configures filament sensing for the specified extruder. The sensor may be a simple filament presence detector, a device that measures movement of filament, or both.

M592: Configure nonlinear extrusion

M592: Nonlinear extrusion is a feature that compensates for the increased back pressure from the hot end as extrusion speed increases.

M593: Configure Input Shaping

M593: Configures the parameters for input shaping, which is used to reduce ringing (also called ghosting).

M594: Enter/Leave Height Following mode

M594: Height following mode allows the Z position of the tool to be controlled by a PID controller using feedback from a sensor. See also M951.

M595: Set movement queue length

M595: Allows the movement queue parameters to be adjusted so that the queue can be lengthened if necessary, or kept short if a long movement queue is not needed and there are other demands on RAM.

M600: Filament change pause

M600: Behaves like M226 except that if macro file filament-change.g exists in /sys on the SD card, it is run in preference to pause.g.

M650: Set peel move parameters

M650: Sent by nanoDLP to execute a peel move after exposing a layer.

M651: Execute peel move

M651: Sent by nanoDLP to execute a peel move after exposing a layer.

M665: Set delta configuration

M665: Set the delta calibration variables, including diagonal rod length, delta radius, printing radius, homed nozzle height and tower postion correction.

M666: Set delta endstop adjustment

M666: Sets delta endstops and bed tilt adjustments.

M667: Select CoreXY or related mode

M667: Deprecated. Selects CoreXY or CoreXZ mode. Use M669.

M669: Set kinematics type and kinematics parameters

M669: Sets kinematic type (cartesian, CoreXY, CoreXZ, Delta, SCARA, Hangprinter, polar etc) and any extra kinematic parameters.

M670: Set IO port bit mapping

M670: Sets the port switching time advance for the specified pins.

M671: Define positions of Z leadscrews or bed levelling screws

M671: Sets the positions of 2 to 4 leadscrews or bed levelling screws used to raise/lower the bed or gantry. This allows the firmware to perform bed levelling by probing the bed and either automatically moving the leadscrews, or reporting the adjustment to be made. See the G32 command.

M672: Program Z probe

M672: Sends configuration data to programmable Z probes such as the Duet3D Smart Effector, for example to set the sensitivity.

M673: Align plane on rotary axis

M673: Aligns a plane that is mounted on a rotary axis. To make use of this code it is required to take two probe points via G30 P first.

M674: Set Z to center point

M674: Determines the Z center point of a stash that is mounted on a rotary axis. This code is yet to be implemented.

M675: Find center of cavity

M675: Finds the center of a cavity that can be measured using the configured axis endstop.

M701: Load filament

M701: Loads the specified material in the current active tool.

M702: Unload filament

M702: Unloads the previously loaded filament from the current tool.

M703: Configure filament

M703: After assigning a filament to a tool, this command may be used to run /filaments/ /config.g to set parameters like temperatures, extrusion factor, retract distance.

M750: Enable 3D scanner extension

M750: Used as an OEM extension to enable scanner functionality in the firmware.

M751: Register 3D scanner extension over USB

M751: Used to turn on communication between the 3D printing and a 3D scanner board, when attached to the USB port.

M752: Start 3D scan

M752: Initiates a new 3D scan and uploads it to the board’s SD card

M753: Cancel current 3D scanner action

M753: Instruct the attached 3D scanner to cancel the current operation.

M754: Calibrate 3D scanner

M754: Calibrates the attached 3D scanner.

M755: Set alignment mode for 3D scanner

M755: Sends the ALIGN ON/OFF command the attached 3D scanner.

M756: Shutdown 3D scanner

M756: Sends the SHUTDOWN command the attached 3D scanner.

M851: Set Z-Probe Offset (Marlin Compatibility)

M851: Implemented for backwards compatibility with other firmware. It sets the Z probe trigger in the same way as G31 Z-nn (note the sign reversal).

M905: Set local date and time

M905: Updates the machine’s local date and time or reports them if no parameters are specified.

M906: Set motor currents

M906: Sets the peak currents to send to the stepper motors for each axis.

M911: Configure auto save on loss of power

M911: When the supply voltage falls below the auto save threshold while a print from SD card is in progress, all heaters will be turned off, printing will be stopped immediately (probably in the middle of a move), the position saved, and the specified command string executed.

M912: Set electronics temperature monitor adjustment

M912: Adjusts the temperature reading offset of the MCU’s on-chip temperature sensor.

M913: Set motor percentage of normal current

M913: Sets motor currents to a specified percentage of their normal values.

M914: Set/Get Expansion Voltage Level Translator

M914: This command is supported in the Alligator build of RepRapFirmware only.

M915: Configure motor stall detection

M915: Sets the stall detection parameters and optionally the low-load current reduction parameters for TMC2660, TMC2130 or similar driver chips.

M916: Resume print after power failure

M916: If the last print was not completed and resume information has been saved (either because the print was paused or because of a power failure), then the heater temperatures, tool selection, head position, mix ratio, mesh bed compensation height map etc. are restored from the saved values and printing is resumed.

M917: Set motor standstill current reduction

M917: Sets the percentage of the current set by M906 that is to be used when the motor is stationary but not idle, or moving very slowly.

M918: Configure direct-connect display

M918: Configures RepRapFirmware for a directly-connected LCD such as a 12864 or compatible display.

M929: Start/stop event logging to SD card

M929: When event logging is enabled, important events such as power up, start/finish printing and (if possible) power down will be logged to the SD card.

M950: Create heater, fan, spindle or GPIO/servo pin

M950: Used to create heaters, fans, spindles and GPIO ports, and to configure parameters.

M951: Set height following mode parameters

M951: Height following mode allows the Z position of the tool to be controlled by a PID controller using feedback from a sensor. See also M594.

M952: Set CAN-FD expansion board address and/or normal data rate

M952: Expansion boards without address selection switches use a default address. This command can change the address, and the default data rate.

M953: Set CAN-FD bus fast data rate

M953: Allows the bandwidth of the CAN bus to be optimised, by increasing the data rate during transmission of CAN-FD data packets by means of the BRS (bit rate switch) feature.

M954: Configure as CAN expansion board

M954: Used to reconfigure the board it is executed on as a CAN-connected expansion board.

M955: Configure Accelerometer

M955: Configures an accelerometer with specified parameters such as pins, orientation, sample rate, resolution, SPI clock frequency.

M956: Collect accelerometer data and write to file
M957: Raise event

M957: Raises an event internally, based on the given parameters, as if the event had actually occurred, and executes any related handler macro for that event.

M997: Perform in-application firmware update

M997: Triggers a firmware update if the necessary files are present on the SD card. Can update firmware on Duet mainboards, Duet 3 CAN-connected expansion boards, WiFi modules and PanelDue.

M998: Request resend of line

M998: Request a resend of the specified line of Gcode.

M999: Restart

M999: Restarts the firmware using a software reset. Can also reboot attached SBC.

T: Select Tool

Parameters

Example

If Tn is used to select tool n but that tool is already active, the command does nothing. Otherwise, the sequence followed is:

Note: Prior to RRF 3.3, when changing tools, tool change macro files are not run unless all axes have been homed. In RRF 3.3 and later, tool change macro files are now run regardless of whether axes have been homed or not. You can use conditional GCode to choose which commands are executed if axes have been homed/not homed.

After a reset tools will not start heating until they are selected. You can either put them all at their standby temperature by selecting them in turn, or leave them off so they only come on if/when you first use them. The M0, M1 and M112 commands turn them all off. You can, of course, turn them all off with the M1 command, then turn some back on again. Don’t forget also to turn on the heated bed (if any) if you use that trick.

Tool numbering starts at 0 by default however M563 allows the user to specify tool numbers, so with them you can have tools 17, 29 and 48 if you want. Negative numbers are not allowed. The highest Tool number that can be defined from RRF3 onwards is 49

Starting from RRF 3.3beta2 both selecting as well as deselecting with a configured spindle will stop the spindle assigned to these tools. This is in accordance to NIST GCode standard that says «after a tool change is complete the spindle is stopped».

Notes

1 Selecting a non-existent tool also removes any X/Y/Z offset applied for the old tool.

2 Under special circumstances, the execution of those macro files may not be desired. RepRapFirmware 1.19 or later supports an optional P parameter to specify which macros shall be run. If it is absent then all of the macros above will be run, else you can pass a bitmap of all the macros to be executed. The bitmap of this value consists of tfree=1, tpre=2 and tpost=4.

3 You may wish to include a move to a parking position ‘within the tfreeN.g gcode macro in order to allow the new extruder to reach temperature while not in contact with the print.

4 Tool offsets are applied whenever there is a current tool. So they are applied in tfree.g (for the outgoing tool) and in tpost.g (for the incoming tool), but not in tpre.g (because no tool is current at that point).

G-Code Background Information

For more information and background, along with the master list of all RepRap G-Codes check the http://reprap.org/wiki/G-code.

For the technically minded, G-Code line endings are Unix Line Endings (\n), but will accept Windows Line Endings (\r\n), so you should not need to worry about converting between the two, but it is best practice to use Unix Line Endings where possible.

Replies from the RepRap machine to the host computer

All communication is in printable ASCII characters. Messages sent back

to the host computer are terminated by a newline and look like this:

xx [line number to resend] [T:93.2 B:22.9] [C: X:9.2 Y:125.4 Z:3.7 E:1902.5] [Some debugging or other information may be here]

xx can be one of:

ok

rs

ok means that no error has been detected.

rs means resend, and is followed by the line number to resend.

!! means that a hardware fault has been detected. The RepRap machine will

shut down immediately after it has sent this message.

The T: and B: values are the temperature of the currently-selected extruder

and the bed respectively, and are only sent in response to M105. If such temperatures don’t exist (for example for an extruder that works at room temperature and doesn’t have a sensor) then a value below absolute zero (-273 o C) is returned.

C: means that coordinates follow. Those are the X: Y: etc values. These are only

sent in response to M114 and M117.

The RepRap machine may also send lines that look like this:

// This is some debugging or other information on a line on its own. It may be sent at any time.

Such lines will always be preceded by //.

On the latest version of Pronterface and Octoprint (1.2.0+) a special comment of the form:

// action:command

is allowed to be sent from the firmware, the command can currently be pause, resume or disconnect which will execute those commands on the host.

As this is also a comment other hosts will just ignore these commands.

The most common response is simply:

ok

When the machine boots up it sends the string

start

once to the host before sending anything else. This should not be replaced or augmented

by version numbers and the like. M115 (see above) requests those.

All this means that every line sent by RepRap to the host computer except the start line has a two-character prefix (one of ok, rs, !! or //). The machine should never send a line without such a prefix.

Краткое руководство по G-Code. Круговая интерполяция G02 и G03.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Круговая интерполяция G02 и G03 — это движение по круговой дуге

Круговое движение — это режим, инициируемый через G02 и G03

Как и линейное движение (инициированное G00 и G01), круговое движение — это режим, инициированный через G02 и G03. G02 устанавливает режим для дуг окружности по часовой стрелке. G03 устанавливает режим для дуг окружности против часовой стрелки.

Определение дуги для контроллера ЧПУ

После того, как установлен режим G02 или G03, дуги определяются в G-коде путем идентификации двух конечных точек и центра, который должен быть равноудаленным от каждой конечной точки, в противном случае возникнет аварийный сигнал.

Определение центра через относительные смещения IJK

Центр чаще всего идентифицируется с помощью I, J или K для определения относительного смещения от начальной точки дуги к центру. Вот типичная дуга по часовой стрелке:

Буквы I и J указывают относительные координаты от начальной точки до центра. Другими словами, если мы добавим значение I к X начальной точки и значение J к Y начальной точки, мы получим X и Y для центра.

Определение центра через радиус с помощью «R»

Мы также можем определить центр, просто указав радиус круга. Допустим радиус нашего круга равен 2, поэтому g-код может быть простым:

Многие из вас прямо здесь и сейчас решат, что, поскольку R проще для понимания и короче для написания, вы просто собираетесь использовать R и забыть о IJK. Но мастера ЧПУ обработки советуют использовать команды IJK. Их аргумент состоит в том, что, используя IJK, вы дважды проверяете правильность дуги.

Потому что контроллер может вычислить фактический набор координат для центра через IJK. Получив координаты центра, он может проверить, что он одинаково удален от обеих конечных точек. Проверка каждого из этих двух расстояний — это двойная проверка. В случае формата «R» контроллер не имеет такой двойной проверки. Он должен выбрать центр, который гарантирует равное расстояние.

Лично я не знаю, согласен ли я с инструкторами ЧПУ в том, что это обеспечивает дополнительную проверку или нет. Я говорю, что используйте тот подход, который имеет смысл в вашей конкретной ситуации, но вы определенно должны быть знакомы с обоими. В любом случае вам нужно будет привыкнуть к относительным координатам, поскольку они чертовски удобны.

Варианты синтаксиса Arc для различных диалектов и режимов G-кода

Это еще одно из тех мест, где происходит много непонятных вещей, например, что будет делать ваш контроллер. Обычно предполагается, что если у вас есть и IJK, и R в одном блоке, R имеет приоритет, а IJK игнорируется. Но есть контроллеры, которые работают не так, поэтому убедитесь, что вы знаете, что происходит.

Есть несколько параметров, которые определяют, как работают дуги.

Давайте рассмотрим эти варианты:

Инкрементальный против абсолютного IJK : мы обсуждали IJK как представление координат относительно начальной точки для центра. Добавьте I к X, J к Y и K к Z начальной точки, и вы получите центр. Многие элементы управления также имеют возможность использовать IJK как абсолютные координаты центра.

Модальные центры IJK : когда IJK являются абсолютными координатами центра, некоторые контроллеры запоминают последний определенный центр, поэтому в этом случае IJK является модальным. При использовании такой настройки управления вы можете просто продолжать вводить команды XYZ для дуг без необходимости каждый раз определять новый центр. Однако не ясно, что вы сэкономите много — как часто вы хотите делать несколько дуг с одним и тем же центром?

Модальные центры R : Еще одна разновидность идеи модального центра состоит в том, чтобы позволить радиусу, определенному буквой «R», быть модальным. Каким бы ни был последний использованный R, контроллер запоминает и снова использует это значение, если R не задано. Это кажется более полезным, чем модальный IJK. Например, у кармана могут быть дуги для углов одинакового радиуса.

Приоритет R : как уже упоминалось, большинство контроллеров будут использовать «R», если «R» и «IJK» указаны в одном блоке. Н

Helical Interp. : Эта опция определяет, разрешает ли ваш контроллер спиральную интерполяцию.

Наиболее распространенная проблема при настройке постпроцессора CAM или симулятора ЧПУ: абсолютный и относительный IJK

У всех нас был опыт, когда мы смотрели на симуляцию проходов (или, что еще хуже, видели его в реальном движении инструмента, что довольно пугающе), и видели гигантские почти полные круги без каких-либо признаков знакомых движений деталей, которые мы ожидали увидеть. Вот типичный пример:

Если вы видите такие вещи, первое, что нужно проверить, — это абсолютный IJK в сравнении с относительным IJK для дуг. Настройка должна соответствовать между тем, что выдает CAM, и тем, чтополучает контроллер или симулятор.

Дроби круга, квадранты и регуляторы

Первое, что нужно знать о дуге, это то, что невозможно указать дугу более 360 градусов. В некоторых контроллерах для спиральной интерполяции есть некоторые исключения (см. Ниже) просто потому, что это может быть полезно для спиралей. Если требуется полный круг, установите начальную и конечную точки равными друг другу:

G02 X3.25 Y2.0 I-1.25 J0

Интересно, что вы не можете указать полный круг с помощью «R». Это связано с тем, что существует бесконечное количество кругов, которые начинаются и заканчиваются в одной и той же точке определенного радиуса, поэтому контроллер не знает, какой круг может быть правильным.

Есть еще более забавный ньюанс с «R» и более крупными дугами. Например, дуга все еще может иметь определенный радиус и по часовой стрелке (или против часовой стрелки), но центр будет разным, если вы перемещаетесь более чем на 90 градусов. Например:

Учитывая два показанных варианта, контроллер выбирает путь на основе знака радиуса. Отрицательное получает более длинную дугу, положительное — короче. Отрицательный знак заставляет контроллер искать дугу более 180 градусов.

Некоторые контроллеры еще более чувствительны и не будут программировать дугу, пересекающую линию квадранта. Следовательно, наибольший угол, по которому может следовать дуга, составляет 90 градусов, и этот угол не должен пересекать 0, 90, 180 или 270 градусов. Углы в 90 градусов, пересекающие линию квадранта, должны быть разбиты на две части, причем соединение между частями должно быть прямо на линии квадранта.

Полные круги без XYZ

Полные круги появляются, когда начальная и конечная точки идентичны, а центр указан через IJK (помните, что R ведет к бесконечному количеству кругов). Учитывая, что вы хотите, чтобы начальная и конечная точки были одинаковыми, возможно, вам не придется беспокоиться даже об указании конечной точки с помощью XYZ. Некоторым контроллерам это может потребоваться, но большинству — нет. Вот простая программа с g-кодом, которая таким образом создает 3 круга:

N45 G0 X-2. Y.75
N46 G1 Z-.5 F10.
N47 Y.5 F30. S2000
N48 G2 J-1.1
N49 G1 Y.75
N50 Z.2
N51 G0 X.75 Y-3.4
N52 G1 Z-.5 F10.
N53 X.5 F30.
N54 G2 I-1.1
N55 X.75
N56 Z.2
N57 G0 X-4.75 Y-3.4
N58 G1 Z-.5 F10.
N59 X-4.5 F30.
N60 G2 I1.1
N61 G1 X-4.75
N62 Z.2

А вот как выглядит визуализация:

Совет по упрощению программирования дуги: начните с сегментов

Когда я прокладываю траекторию инструмента, я предпочитаю оставлять дуги напоследок. Вместо каждой дуги я просто помещаю отрезок линии, конечные точки которого соответствуют конечным точкам дуги. Это позволяет быстро собрать грубый набросок траектории инструмента, и часто кажется, что легче вернуться и преобразовать линии в дуги, когда базовая структура уже установлена.

Спиральная интерполяция

Вот пример кода программы фрезерования резьбы:

Это формат «R» (радиус) для дуг, и обратите внимание, что есть координата Z, чтобы указать изменение глубины для конечной точки каждой дуги. В этом коде используется относительное движение (G91), поэтому каждый «Z0.0179» перемещает фрезу на 0,0179 дюйма глубже.

Мы вернемся к резьбофрезерованию более подробно в следующей главе, полностью посвященной этой теме. А пока мы просто хотели, чтобы вы познакомились с идеей создания спиралей, а также плоских двумерных дуг.

Создание траекторий движения инструмента понравится вашей машине

Каждый раз, когда резак меняет направление, он добавляет определенное напряжение. Резак будет врезаться в материал больше или меньше, чем был, в зависимости от того, меняется ли направление на заготовку (или неразрезанный материал) или от нее. Ваша машина будет намного счастливее, если вы запрограммируете дугу, а не резкое изменение направления по прямой. Даже дуга с очень маленьким радиусом позволит контроллеру избежать мгновенного изменения направления, что может оставить след на поверхности в лучшем случае и вызвать вибрацию или другие проблемы в худшем случае. Для небольших изменений направления это может не иметь смысла. Но чем резче изменение, тем больше вероятность, что вам следует использовать дугу для облегчения поворота.

Фомичев Георгий Игоревич

Общие сведения

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

О себе

Основатель и руководитель компании «Endurance»

Футурист, предприниматель, инноватор.

Спикер на международных конференциях в т.ч. Monage, IEEE, Maker Faire.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Как работать c G-code (+ видео)

G-code — язык программирования устройств с числовым программным управлением (ЧПУ). Наш постоянный автор Георгий Фомичёв расскажет о принципах работы G-code при лазерной резке.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Какими командами пользоваться при работе с лазером Endurance

Для того, чтобы сделать контурное изображение для гравировки или резки мы советуем заранее подготовить G-code.

Грамотно сделанный G-code позволит вам выбрать оптимальные параметры резки или гравировки.

Есть 2 плагина для подготовкеи качественного g-code из программы Inkscape:

Оба плагина и программа Inkscape есть на сайте Endurance.

Ранее мы делали видео, как подготовить изображение для лазерной гравировки и резки с помощью программы Inkscape:

Однако в этой статье я хотел бы рассказать именно о самом G-code, и какие команды бывают.

Сами команды делятся на группы:

Эти команды имеют параметры:

G — команды:

Дополнительный список команд (проверен на версии GRBL 0.9i):

Название G-code — Описание

G00 Быстрое позиционирование
G01 Линейная интерполяция
G02 Круговая интерполяция по часовой стрелке
G03 Круговая интерполяция против часовой стрелки
G04 Dwell
G10 Программируемый ввод данных
G17 Выбор плоскости XY
G18 Выбор плоскости ZX
G19 Выбор плоскости YZ
G20 Программирование в дюймах
G21 Программирование в миллиметрах (мм)
G28 Возврат к исходной позиции (ноль машины)
G30 Возврат к вторичному дому (машина ref pt)
G40 Коррекция радиуса инструмента выключена
G43 Компенсация смещения высоты инструмента отрицательная
G49 Компенсация коррекции длины инструмента
G53 Система координат машины
G54-G59 Системы координат работы (WCS)
G61 Точная остановка, модальная
G80 Отменить законченный цикл
G90 Абсолютное программирование
G90 Фиксированный цикл, для черновой обработки (акцент Z-оси)
G91 Инкрементное программирование
G92 Регистр позиции от нуля до вершины инструмента
G92 Цикл Threading, простой цикл
G94 Скорость подачи в минуту
M00 Обязательная остановка
M02 Конец программы
M03 Шпиндель включен (вращение по часовой стрелке) (лазера_)
M04 Шпиндель (вращение против часовой стрелки)
M05 Остановка шпинделя (лазера)
M08 Система охлаждения (наводнение)
M09 Охлаждение выключено
M30 Конец программы, с возвратом к верхней части программы

Пример работы gcode для гравера Endurance MakeBlock XY:

G00 // позиционирование
G04 P0 // пауза, установка задержки на 0
M05 S0 // отключение лазера
G90 G21 // определение шага в мм

G00 X5 Y5 // позиционирование по X и Y
G04 P0 // пауза, установка задержки на 0
M03 S255 // включение лазера и установка максимальной мощности
G04 P0 // пауза, установка задержки на 0

G01 X50 Y10 F1500 // перемещение головки лазера на 5 см по X и 1 см по Y, установка скорости 1500
G04 P0 // пауза, установка задержки на 0
M05 S0 // отключение лазера

G04 P0 // пауза, установка задержки на 0
M05 S0 // отключение лазера
G00 // позиционирование

M02 // Окончание программы

Полезные ссылки и материалы про G-code

Полная инструкция и подготовке изображения вG-code находится на сайте Endurance.

Подробнее о практической работе с лазерами и граверами читайте в других статьях от Георгия Фомичева или на сайте компании Endurance.

G-код. Структура управляющей программы для станка с ЧПУ

Управляющая программа для ЧПУ станка состоит из последовательности кадров и обычно начинается с символа начало программы (%) и заканчивается М02 или М30.

Каждый кадр программы представляет собой один шаг обработки и (в зависимости от ЧПУ) может начинаться с номера кадра (N1. N10 и т.д.), а заканчиваться символом конец кадра (;).

Кадр управляющей программы состоит из операторов в форме слов (G91, M30, X10. и т.д.). Слово состоит из символа (адреса) и цифры, представляющее арифметическое значение.

Адреса X, Y, Z, U, V, W, P, Q, R, A, B, C, D, E являются размерными перемещениям, используют для обозначения координатных осей, вдоль которых осуществляются перемещения.

Слова, описывающие перемещения, могут иметь знак (+) или (-). При отсутствии знака перемещение считается положительным.

Адреса I, J, K означают параметры интерполяции.

Символы могут принимать другие значения в зависимости от конкретного УЧПУ.

Подготовительные функции (G коды)

Функция G00 используется для выполнения ускоренного перемещения режущего инструмента к позиции обработки или к безопасной позиции. Ускоренное перемещение никогда не используется для выполнения обработки, так как скорость движения исполнительного органа станка очень высока. Код G00 отменяется кодами: G01, G02, G03.

Функция G01 используется для выполнения прямолинейных перемещений с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z). Код G01 отменяется кодами: G00, G02, G03.

Функция GO2 предназначена для выполнения перемещения инструмента по дуге (окружности) в направлении часовой стрелки с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z).

Параметры интерполяции I, J, K, которые определяют координаты центра дуги окружности в выбранной плоскости, программируются в приращениях от начальной точки к центру окружности, в направлениях, параллельных осям X, Y, Z соответственно.

Код G02 отменяется кодами: G00, G01, G03.

Функция GO3 предназначена для выполнения перемещения инструмента по дуге (окружности) в направлении против часовой стрелки с заданной скоростью (F). При программировании задаются координаты конечной точки в абсолютных значениях (G90) или приращениях (G91) с соответственными адресами перемещений (например X, Y, Z).

Параметры интерполяции I, J, K, которые определяют координаты центра дуги окружности в выбранной плоскости, программируются в приращениях от начальной точки к центру окружности, в направлениях, параллельных осям X, Y, Z соответственно.

Код G03 отменяется кодами: G00, G01, G02.

Код G17 предназначен для выбора плоскости XY в качестве рабочей. Плоскость XY становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.

Код G18 предназначен для выбора плоскости XZ в качестве рабочей. Плоскость XZ становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.

Код G19 предназначен для выбора плоскости YZ в качестве рабочей. Плоскость YZ становится определяющей при использовании круговой интерполяции, вращении системы координат и постоянных циклов сверления.

Функция G20 активизирует режим работы с дюймовыми данными.

Функция G21 активизирует режим работы с метрическими данными.

Функция G40 отменяет действие автоматической коррекции на радиус инструмента G41 и G42.

Функция G41 применяется для включения автоматической коррекции на радиус инструмента находящегося слева от обрабатываемой поверхности (если смотреть от инструмента в направлении его движения относительно заготовки). Программируется вместе с функцией инструмента (D).

Функция G42 применяется для включения автоматической коррекции на радиус инструмента находящегося справа от обрабатываемой поверхности (если смотреть от инструмента в направлении его движения относительно заготовки). Программируется вместе с функцией инструмента (D).

Функция G43 применяется для компенсации длинны инструмента. Программируется вместе с функцией инструмента (H).

СЧПУ позволяет устанавливать кроме стандартных рабочих систем координат (G54-G59) еще и локальные. Когда СЧПУ станка выполняет команду G52, то начало действующей рабочей системы координат смещается на значение указанное при помощи слов данных X, Y и Z. Код G52 автоматически отменяется с помощью команды G52 ХО YO Z0.

Смещение рабочей системы координат детали относительно системы координат станка.

Код G69 отменяет режим вращения координат G68.

Цикл G73 предназначен для сверления отверстий. Движение в процессе обработки происходит на рабочей подаче с периодическим выводом инструмента. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G74 предназначен для нарезания левой резьбы метчиком. Движение в процессе обработки происходит на рабочей подаче, шпиндель вращается в заданном направлении. Движение в исходное положение после обработки идет на рабочей подаче с обратным вращением шпинделя.

Функция, которая отменяет любой постоянный цикл.

Цикл G81 предназначен для зацентровки и сверления отверстий. Движение в процессе обработки происходит на рабочей подаче. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G82 предназначен для сверления и зенкования отверстий. Движение в процессе обработки происходит на рабочей подаче с паузой в конце. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G83 предназначен для глубокого сверления отверстий. Движение в процессе обработки происходит на рабочей подаче с периодическим выводом инструмента в плоскость отвода. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G84 предназначен для нарезания резьбы метчиком. Движение в процессе обработки происходит на рабочей подаче, шпиндель вращается в заданном направлении. Движение в исходное положение после обработки идет на рабочей подаче с обратным вращением шпинделя.

Цикл G85 предназначен для развертывания и растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. Движение в исходное положение после обработки идет на рабочей подаче.

Цикл G86 предназначен для растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. В конце обработки происходит остановка шпинделя. Движение в исходное положение после обработки идет на ускоренной подаче.

Цикл G87 предназначен для растачивания отверстий. Движение в процессе обработки происходит на рабочей подаче. В конце обработки происходит остановка шпинделя. Движение в исходное положение после обработки идет вручную.

В режиме абсолютного позиционирования G90 перемещения исполнительных органов производятся относительно нулевой точки рабочей системы координат G54-G59 (программируется, куда должен двигаться инструмент). Код G90 отменяется при помощи кода относительного позиционирования G91.

В режиме относительного (инкрементального) позиционирования G91 за нулевое положение каждый раз принимается положение исполнительного органа, которое он занимал перед началом перемещения к следующей опорной точке (программируется, на сколько должен переместиться инструмент). Код G91 отменяется при помощи кода абсолютного позиционирования G90.

При помощи функции G94 указанная скорость подачи устанавливается в дюймах за 1 минуту (если действует функция G20) или в миллиметрах за 1 минуту (если действует функция G21). Программируется вместе с функцией подачи (F). Код G94 отменяется кодом G95.

При помощи функции G95 указанная скорость подачи устанавливается в дюймах на 1 оборот шпинделя (если действует функция G20) или в миллиметрах на 1 оборот шпинделя (если действует функция G21). Т.е. скорость подачи F синхронизируется со скоростью вращения шпинделя S. Код G95 отменяется кодом G94.

Если постоянный цикл станка работает совместно с функцией G98, то инструмент возвращается к исходной плоскости в конце каждого цикла и между всеми обрабатываемыми отверстиями. Функция G98 отменяется при помощи G99.

Если постоянный цикл станка работает совместно с функцией G99, то инструмент возвращается к плоскости отвода между всеми обрабатываемыми отверстиями. Функция G99 отменяется при помощи G98.

G-код (УП) можно создать вручную или автоматизировано в таких программах, например, как ArtCam.

Основные циклы G-кода для токарных станков с ЧПУ

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Циклы G-кода для токарных станков используются при программировании станков с ЧПУ, чтобы минимизировать объем кода, который необходимо написать, и дать нам больше контроля над сложными формами и операциями. Система управления поймет операцию и выполнит повторяющийся цикл, следуя командам, которые дает программист, до тех пор, пока функция не будет завершена.

G70 — Завершающий цикл для токарных станков

G70 P Q;

P = начало контура

Q = конец контура

Пример:

Достоинства:

Недостатки:

Этот цикл используется после одного из циклов черновой обработки и следует контуру, запрограммированному в этом цикле черновой обработки. Значения «P» и «Q» используются для определения местоположения профиля в этом цикле и выполнения последующего чистового пропила.

G71 — Цикл черновой обработки для токарных станков

G71 UR;
G71 PQUWF;

U = глубина резания

R = значение возврата

P = порядковый номер для начала программного контура

Q = порядковый номер для конца программного контура

U = припуск на чистовую обработку в X

W = припуск на чистовую обработку по Z

F = скорость подачи

Пример:

Цикл черновой обработки G71 следует контуру, запрограммированному между номерами N. Он используется для удаления материала путем резки по оси Z, оставляя некоторое количество материала для чистовой обработки с использованием цикла G70.

G72 — Цикл черновой поперечной контурной обработки

G72 W1 R;
G72 P Q U W2 F;

W1 = глубина резания

R = значение возврата

P = порядковый номер для начала программного контура

Q = порядковый номер для конца программного контура

U = припуск на чистовую обработку в X

W2 = припуск на чистовую обработку по Z

F = скорость подачи

Пример:

Достоинства:

Недостатки:

Цикл черновой обработки G72 следует контуру, запрограммированному между номерами N. Он работает так же, как цикл G71, но используется для удаления материала путем резки по оси X.

Цикл контурной обработки G73. Циклы G-кода для токарных станков

G73 U (1) W (1) R;
G73 PQU (2) W (2) F;

U (1) = количество обрабатываемого материала по оси X

W (1) = количество обрабатываемого материала по оси Z

R = количество черновых проходов

P = порядковый номер для начала контура

Q = порядковый номер конца контура

U (2) = припуск на чистовую обработку по оси X

W (2) = припуск на чистовую обработку по оси Z

F = скорость подачи

Пример:

Достоинства:

Недостатки:

Цикл G73 — это цикл черновой обработки с повторяющимся шаблоном, используемый при расточке или токарной обработке. За ним следует цикл чистовой обработки G70.

Цикл автоматической обработки канавок G75. Циклы G-кода для токарных станков

G75 XZPQF;

X = глубина канавки (диаметр)

Z = расстояние до канавки от исходной точки

P = глубина шага

Q = величина шага по оси Z

F = скорость подачи

Пример:

Достоинства:

Недостатки:

Цикл G75 используется для вырезания канавки на площади, превышающей размер канавочного инструмента.

Цикл автоматического нарезания резьбы G76 вариант 1

G76 XZIKDAF;

X = диаметр сердцевины резьбы

Z = конечное положение резьбы

K = глубина резьбы

D = глубина первого прохода

A = угол при вершине инструмента

Пример:

Достоинства:

Недостатки:

Если параметры станка настроены правильно, можно использовать один блок для нарезания винтовой резьбы. Обратите внимание, что это может не работать на каждом токарном станке или обрабатывающем центре, поэтому был включен следующий метод.

Цикл автоматического нарезания резьбы G76 вариант 2

G76 P (1) (2) (3) QR;
G76 XZPQRF;

P — шестизначный символ, по две цифры для (1), (2) и (3)

(1) = количество чистовых проходов

(2) = величина снятия фаски

(3) = угол наклона режущей кромки инструмента

Q = Минимальная глубина резания

R = припуск на чистовую обработку

X = малый диаметр резьбы

Z = конечное положение резьбы

P = глубина резьбы

Q = Глубина первого прохода

Пример:

Более распространенный двухстрочный формат цикла нарезания винта G76 при программировании токарного станка с ЧПУ

G83 — Цикл сверления с шагом оси Z

G83 ZQRPF;

Z = глубина отверстия

Q = расстояние клевки

R = Расстояние от начальной точки

P = время выдержки на забое скважины (миллисекунды)

F = скорость подачи

Пример:

Цикл сверления с шагом сверления G83 используется с приводным инструментом для смещения сверления от осевой линии на оси Z. Аналогичный цикл есть для фрезерного станка.

G84 — Цикл нарезания резьбы по оси Z

G84 ZQRF;

Z = глубина отверстия

Q = расстояние клевки

R = Расстояние от начальной точки

F = скорость подачи

Пример:

Цикл G84 используется для нарезания резьбы по оси Z, если не нарезание резьбы по центральной линии детали.

G87 — Цикл сверления с шагом оси X

G87 XRQPF;

X = глубина отверстия

R = значение возврата

Q = расстояние клевки

P = время выдержки на забое скважины (миллисекунды)

Пример:

Цикл G87 используется для кольцевого сверления по оси X с помощью рабочего инструмента.

G88 — Цикл нарезания резьбы по оси X

G88 XRQPF;

X = глубина отверстия

R = значение возврата

Q = расстояние клевки

P = время выдержки на забое скважины (миллисекунды)

Пример:

Цикл G88 используется для нарезания резьбы по оси X с помощью рабочего инструмента.

G-code Explained | List of Most Important G-code Commands

If your work or hobby correlates with CNC machines or 3D printers, then understanding what G-code is and how it works is essential for you. So, in this tutorial we will learn the basics of the G-code language, what are the most important or common G-code commands and we will explain how they work.

What is G-code?

G-code is a programming language for CNC (Computer Numerical Control) machines. G-code stands for “Geometric Code”. We use this language to tell a machine what to do or how to do something. The G-code commands instruct the machine where to move, how fast to move and what path to follow.

In case of a machine tool such as lathe or mill, the cutting tool is driven by these commands to follow a specific toolpath, cutting away material in order to get the desired shape.

Similarly, in case of additive manufacturing or 3D printers, the G-code commands instruct the machine to deposit material, layer upon layer, forming a precise geometric shape.

How to read G-code Commands?

At first glance, when you see a G-code file, it might look a quite complicated but it is actually not that hard to be understood.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

If we take a closer look at the code, we can notice that most of the lines have the same structure. It seems that the “complicated” part of the G-code are all those numbers we see, which are just Cartesian coordinates.

Let’s take a look at a single line and explain how it works.

G01 X247.951560 Y11.817060 Z-1.000000 F400.000000

The line has the following structure:

To wrap up, the line G01 X247.951560 Y11.817060 Z-1.000000 F400 tells the CNC machine to move in a straight line from its current position to the coordinates X247.951560, Y11.817060 and Z-1.000000 with speed of 400 mm/min. The unit is mm/min because if we take a look back at the G-code example image, we can see that we have used the command G21 which sets the units to millimiters. If we want the units in inches, we use the G20 command instead.

The most Important/ Common G-code Commands

So, now as we know how to read a line of G-code, we can take a look at the most important or commonly used G-code commands. We will learn how each of them work through several examples, and by the end of this tutorial we will be able to fully understand how G-code works, how to read, how to modify and even how to write our own G-code.

G00 – Rapid Positioning

The G00 command moves the machine at maximum travel speed from a current position to a specified point or the coordinates specified by the command. The machine will move all axis at the same time so they complete the travel simultaneously. This results in a straight line movement to the new position point.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

The G00 is a non-cutting movement, and its purpose is to just quickly move the machine to the desired position to begin some kind of job, like cutting or printing.

G01 – Linear Interpolation

The G01 G-code command instructs the machine to move in a straight line at a set feed rate or speed. We specify the end position with the X, Y and Z values, and the speed with the F value. The machine controller calculates (interpolates) the intermediate points to pass through to get that straight line. Although these G-code commands are simple and quite intuitive to understand, behind them, the machine controller performs thousands of calculations per second in order to make these movements.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Unlike the G00 command which is used just for positioning, the G01 command is used when the machine is performing its main job. In case of lathe or mill, cutting material in straight line, and in case of a 3D printer, extruding material in straight line.

G02 – Circular Interpolation Clockwise

The G02 command tells the machine to move clockwise in a circular pattern. It’s the same concept as the G01 command and it’s used when performing the appropriate machining process. In addition to the end point parameters, here we also need to define the center of rotation, or the distance of the arc start point from the center point of the arc. The start point is actually the end point from the previous command or the current point.

For better understanding, we will add the G02 command after the G01 command from the previous example.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

So, in the example first we have the G01 command which moves the machine to the X5, Y12 point. Now this will be the starting point for the G02 command. With the X and Y parameters of the G02 command we set the end point. Now in order to get to this end point using a circular motion or using an arc, we need to define its center point. We do that using the I and J parameters. The values of the I and J are relative to the starting point, or the end point of the previous command. So, to get the center point to the X5 and Y7, we need to make an offset of 0 along the X axis, and offset of -5 along the Y axis.

Of course, we can set the center point anywhere else, thus we will get a different arc which ends at the same end point. Here’s an example of that:

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

So, here we still have the same end point as the previous example (X10, Y7), but the center point is now at different position (X0, Y2). With this we got wider arc compared to the previous one.

G00, G01, G02 Example – Manual G-code Programming

Let’s take a look at a simple CNC milling example using these three main G-code commands, G00, G01 and G02.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

To get the toolpath for the shape shown in the image above we need to following G-code commands:

With the first G00 command, we quickly bring the machine from its home or initial position to the point B(5,5). From here we start with “cutting” at a feed rate of 200 using the G01 command. We can note here that for getting from point B(5,5) to the point C(5,25) we use values for the X and Y relative to the starting B point. So, +20 units in Y direction will get us to point C(5,25). Actually, this depends whether we have selected the machine to interpret the coordinates as absolute or relative. We will explain this in later section.

Once we reach the point C(5,25), we have another G01 command to reach the point D(25,25). Then we use the G02 command, a circular motion, to get to point E(35,15), with a center point (25,15). We actually have the same center point (25,15) for the next G02 command, to get to point F(31,7). However, we should note that the I and J parameters are different from the previous command, because we offset the center from the last end point or the point E. We finish the toolpath with another G01 command which gets us from point F(31,7) back to point B(5,5).

So, that’s how we can manually program the G-code for making this shape. Though, we need to note that this is not a complete G-code, because we are missing few more basic commands. We will make the complete G-code in a later example as we first need to explain those G-code commands.

G03 – Circular Interpolation Counterclockwise

Just like the G02, the G03 G-code command defines the machine to move in circular pattern. The only difference here is that the motion is counterclockwise. All other features and rules are the same as the G02 command.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

So, with these three main G-code commands, G01, G02 and G03 we can generate a toolpath for, literally, any shape we want. You might be wondering now how is that possible, but that’s actually an easy task for a computer and a CAM software. Yes, it’s true we can sometimes manually make a G-code program, but most of the time we do that with appropriate software which far more easier and safer.

Nevertheless, now explain few more important and commonly used commands and at the end make a real G-code example.

G20/ G21 – Units Selection

The G20 and G21 commands define the G-code units, either inches or millimters.

We need to note that the units must be set at the beginning of the program. If we don’t specify the units the machine will consider the default set by the previous program.

G17/ G18/ G18 – G-code Plane Selection

With these G-code commands we select the working plane of the machine.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

The G17 is default for most CNC machines, but the other two can be also used for achieving specific movements.

G28 – Return Home

The G28 command tells the machine to move the tool to its reference point or home position. In order to avoid collision, we can include an intermediate point with X, Y and Z parameters. The tool will pass through that point before going to the reference point. G28 X## Y## Z##

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

G90/ G91 – Positioning G-code commands

With the G90 and G91 commands we tell the machine how to interpret the coordinates. G90 is for absolute mode and G91 is for relative mode.

In absolute mode the positioning of the tool is always from the absolute point or zero. So the command G01 X10 Y5 will take the tool to that exact point (10,5), no matter the previous position.

On the other hand, in relative mode, the positioning of the tool is relative to the last point. So if the machine is currently at point(10,10), the command G01 X10 Y5 will take the tool to point (20,15). This mode is also called “incremental mode”.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

More Commands and Rules

So, the G-code commands we explained above are the most common ones but there are many more. There are commands like cutter compensation, scaling, work coordinate systems, dwell etc.

In addition to the G-code, there also M-code commands which are used when generating a real full-fledged G-code program. Here are few common M-code commands:

In case of a 3D printer:

Some of these commands need appropriate parameters. For example, when turning on the spindle with M03, we can set the spindle speed using the S parameter. So, the line M30 S1000 will turn on the spindle at speed of 1000 RPM.

The same applies for the feed rate parameter F. We don’t have to include it in every line unless we want to change its value.

In some G-code file you can also see “N##” in front of the commands. The N word is simple to number the line or block of code. That can be helpful for identifying a specific line in case of an error in a huge program.

Simple G-code Program Example

Nevertheless, after reading all of this, now we are able to manually make a real, actual code. Here’s an example:

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Description of the G-code program:

Here’s how this code looks ready to be sent to our CNC machine through the Universal G-code Sender software:

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

So, using these main G-code commands explained above, we managed to write our own fully-fledged G-code. Of course, this example is quite simple and for more complex shapes we definitely need to use a CAM software. Here’s an example of a complex G-code of a Horse shape:

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

For comparison, this code has around 700 lines, but all of it generated automatically. The G-code was made using Inkscape as an example for my DIY Arduino CNC Foam Cutting Machine. Here’s how the shape came out:

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

You can check my particular tutorial for more details about this machine.

Conclusion

So, we covered the basics of G-code, explained the most important and common G-code commands and manually made our own actual G-code. After all, I think understanding G-code is not that hard. Of course, there are so many other commands and features used in CNC machining or 3D printing that we should be aware of, but more on that in some other tutorials.

If you found this article useful, share it other CNC and 3D printing enthusiasts. Also feel free to ask any question in the comments section below.

Что такое G-код для станков с ЧПУ

Для станков с программным числовым управлением существует специальный язык. Этот язык называют ISO 7 bit. Система G кодов для ЧПУ представляет собой специальные команды для работы фрезерных и токарных станков с ПУ, в командах задаются специальные параметры. Обучение ЧПУ программированию производится в технических колледжах или на курсах дополнительного образования.

Что такое G-код

Кодовая система для токарно – фрезерных станков с ЧПУ представляет собой особую группу команд, которые распознаются станками с функциями программного управления. Кодовая система была разработана компанией Electronic Industries Allience в 1960 году и доработана в 1980 году. С 1982 года она начала действовать в России. Кодовый язык входит в структуру основ программирования, он непрерывно совершенствуется и изменяется.

Какие бывают G-коды

Программы с G-кодом пишутся в виде текстового формата, каждую строчку называют кадром. Кадр состоит из буквенного символа – это адрес и цифра, в которой выражено числовое значение. Коды бывают основными и вспомогательными. На основе такой программы работает токарный и фрезерный станок с ЧПУ.

Команды группы G называют подготовительными. Они задают движение рабочих элементов на станке с определенной скоростью. Скорость может быть круговой или линейной. Также G-код используется для обработки отверстий и резьбы. Еще одной функцией является управление параметрами и координатными системами аппаратуры.

Основные команды программы направлены на выполнение следующих функций:

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Символы бывают разными: М выполняет вспомогательные функции, такая команда необходима для смены инструмента, вызова подпрограммы и ее завершения, S – это функция основного движения, F – подача, Т, D, Н являются выражением функций инструмента.

Значение символа зависит от вида станка с ЧПУ. Программирование осуществляется на основе этих кодов.

Подготовительные функции

Подготовительные функции в кодовой системе выражены символом G. Каждому коду соответствует особенное значение. Все подготовительные команды, к примеру, выбор рабочей плоскости или выбор скорости перемещения, задаются первыми в программе. В коде зашифрована определенная функция. Числовыми значениями задаются параметры.

Расшифровка основных G кодов для ЧПУ

Перейдем к рассмотрению того, как расшифровываются основные G коды для станков с ПУ.

Задает скоростное позиционирование. Ее используют, когда нужно быстро переместить режущий инструмент в готовое состояние для начала работы или поместить его в безопасную позицию. Ускоренный вариант не применяют в процессе обработки деталей, поскольку скорость, которая развивается в данном случае, очень высока. Данную команду можно отменить с помощью команды G01, G02, G03.

Представляет собой линейную интерполяцию. Такая команда необходима для движения инструмента по прямой, скорость задается символом F. Отмена функции осуществляется кодами G00, G02, G03. Пример записи команды: G01 X20 Y150 F60.

Задает движение по часовой стрелке, режущий инструмент начинает двигаться по дугообразной траектории, скорость задается символом F. Также задаются параметры в координатной плоскости. Символы I, J, K – определяющие координаты дуги в плоскости. Отмена осуществляется кодами G00, G01, G03.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Это движение против часовой стрелки по дуге с заданной скоростью.

Задают перерыв в работе. продолжительность паузы задается Х или Р символом. Обычно пауза длится около одной секунды.

Задает плоскость. С помощью кода G17 выбирают координаты XY. Такая функция необходима для вращающихся движений и процесса сверления.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Задает плоскость в координатах XZ, эта плоскость становится рабочей в процессе круговой интерполяции, вращательных движениях и процессе сверления.

Позволяет выбрать рабочую площадь в координатах YZ. Такая функция необходима для движения инструмента в круговой интерполяции и постоянном цикле сверления.

Позволяет вводить данные в дюймовых измерениях. Функция предназначена для работы с дюймовыми показателями.

Позволяет работать с метрическими показателями. Он необходим при работе с данными, выраженными в метрах.

Отменяет функцию автоматической коррекции на заданный радиус инструмента, задаваемого G41 и G42.

Включает автокоррекцию на радиус инструмента, который располагается слева от обрабатываемой детали относительно хода его движения. В программу также входит функция D.

Аналогичен коду G41, он предназначен для автокоррекции на радиус, расположенный справа от обрабатываемой детали. Программу также задают с функцией D.

Необходим для компенсации длины инструмента, корректирует его положение и задается вместе с функцией инструмента Н.

Задает локальные координатные параметры помимо стандартных параметров.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Позволяет переключаться на координатную систему рабочего станка.

G54 – G59

Осуществляют заданное смещение рабочего элемента относительно координатных параметров станка. Используя коды G54, G55, G56, G57, G58, G59 можно определить, в какой именно системе координат будет совершаться работа. Меняя коды, программист получает возможность обрабатывать разнообразные детали.

Если кодами G54 – G59 была задана какая-либо координатная система, то она будет действовать до тех пор, пока не будет отменена, и введутся другие параметры.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Представляет собой режим резки, при этом автоматически отменяются другие функции.

Задается вращение координат, команда позволяет смещать координатную систему под определенным углом. Плоскость вращения, центр и угол поворота задается командами G17, G18, G19, R. Команда G69 отменяет эту функцию.

Позволяет делать отверстия в изделиях.

Это функция высокоскоростного сверления отверстий.

Используется для нарезания левой резьбы.

G81, G82, G83

Используются для цикла сверления: стандартного, с выдержкой и прерывистого.

G85 G87

Позволяют осуществлять разные циклы растачивания.

Позволяет установить абсолютные накопители положения.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Задает параметры оборотов, производимых за одну минуту.

Все коды взаимодействуют между собой и образовывают отдельную группу. В системе программы одна функция сменяется другой. Пример кодовой программы можно найти в интернете. Кодовая таблица должна быть в поле зрения во время программирования.

Требования к написанию программы

Программы, которые пишут для станка с ЧПУ на основе использования джи кодов, имеют определенную совершенно четкую структуру, которая состоит из нескольких команд. Все команды для работы со станком объединяются по группам – кадрам. Завершение одного кадра отмечается символом CR/LF, программу заканчивает вспомогательный код М02 или М30.

Если к программе необходимо сделать комментарий, то его размещают в круглых скобках. К примеру, (перемещение к точке начала фрезерования). Комментарий может находиться сразу после кода, но можно также и вынести его в отдельную строку.

Одна и та же команда может повторяться неоднократно, заданное количество раз в определенной последовательности. Программа пишется с помощью основных и вспомогательных функций. Ее считывают токарные и фрезерные станки.

Генерированием кодов для работы за станком на производстве занимаются специальные программы. На каждом предприятии такая система действует отлажено и ее контролирует оператор. При необходимости любую программу можно сгенерировать самостоятельно с помощью специального программного обеспечения, которое можно скачать в интернете.

Никаких специальных знаний для этого не потребуется, достаточно иметь представление о декартовой системе координат, знать физические величины и определения из курса геометрии. В качестве примера можно воспользоваться уже готовой программой. Для работы потребуются таблицы с расшифровкой кодов.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Для создания кода необходимо иметь следующие знания:

На практике такие действия произвести несложно. Для того чтобы понять как устроена система, можно посмотреть пример записи команд, потребуется также вспомогательная таблица с кодами.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

Существуют специальные сервисы, позволяющие создавать программы для станков онлайн, их можно генерировать на готовом примере. Никакое дополнительное программное обеспечение устанавливать на компьютер не потребуется. Все, что нужно, это выход в интернет. При программировании требуется особая внимательность, если ошибиться в ведении числового показания, можно повредить деталь или сломать станки. Программы, созданные таким образом, можно использовать на токарных, фрезерных, плазменных станках и обрабатывать самые разные материалы.

Свяжитесь с нами

Результаты поиска

Web Pages

Images

What are G-Codes

Что такое G-коды?

Что такое G-коды?

Разъяснения по G-кодам

Описание G-кодов

С помощью G-кодов станку задаются команды для выполнения конкретных действий, например: простых действий станка или функций сверления. Они также подают команды для выполнения более сложных функций, включая опцию использования приводного инструмента или ось C.

Каждому G-коду присвоен номер группы. Каждая группа кодов содержит команды определенного назначения. К примеру, G-коды группы 01 задают перемещение осей станка, а G-коды группы 07 отведены функции коррекции на режущий инструмент.

В каждой группе есть основной G-код, так называемый G-код по умолчанию. Это код, который используется станком в том случае, если не указан другой код данной группы. Например, при программировании перемещения X, Z следующим образом: X-2. Z-4. позиционирование станка будет выполнено с помощью кода G00.

Примечание. Для соблюдения стандартной практики программирования необходимо указывать G-код перед всеми перемещениями.

Команды G-кодов являются модальными или немодальными. Модальный G-код продолжает действовать до конца программы или пока не подается команда другого G-кода той же группы. Немодальный G-код влияет только на строку, в которой он находится, он не влияет на следующую строку программы. Немодальными являются коды группы 00; остальные группы кодов являются модальными.

Примечание. Система интуитивного программирования Haas (СИП) – это режим программирования станка, который позволяет скрыть G-коды или полностью обойтись без использования G-кодов.

Структура управляющих программ (УП) G-code

Описание G-code

«G- code » — условное именование языка программирования устройств с числовым программным управлением (ЧПУ). Был создан компанией Electronic Industries Alliance в начале 1960-х. Финальная доработка была одобрена в феврале 1980 года как стандарт RS274D. Комитет ISO утвердил G-код, как стандарт ISO 6983-1:1982, Госкомитет по стандартам СССР — как ГОСТ 20999-83. В советской технической литературе G-код обозначается, как код ИСО 7-бит (ISO 7-bit).
Производители систем управления используют G-код в качестве базового подмножества языка программирования, расширяя его по своему усмотрению.

Структура программы

Программа, написанная с использованием G-кода, имеет жесткую структуру. Все команды управления объединяются в кадры — группы, состоящие из одной или более команд. Кадр завершается символом перевода строки (ПС/LF) и имеет номер, за исключением первого кадра программы и комментариев. Первый кадр содержит только один символ «%». Завершается программа командой M02 или M30. Комментарии к программе размещаются в круглых скобках, занимая отдельный кадр.

Порядок команд в кадре строго не оговаривается, но традиционно предполагается, что первыми указываются подготовительные команды, (например, выбор рабочей плоскости), затем команды перемещения, затем выбора режимов обработки и технологические команды.

Подпрограммы должны быть описаны после команды M02, но до M30. Начинается подпрограмма с кадра вида Lxx, где xx — номер подпрограммы, заканчивается командой M17.

Сводная таблица кодов

Основные (называемые в стандарте подготовительными) команды языка начинаются с буквы G:

Таблица основных команд

КодОписаниеПример
G00Ускоренное перемещение инструмента (холостой ход)G0 X0 Y0 Z100
G01Линейная интерполяцияG01 X0 Y0 Z100 F200
G02Круговая интерполяция по часовой стрелкеG02 X15 Y15 R5 F200
G03Круговая интерполяция против часовой стрелкиG03 X15 Y15 R5 F200
G04Задержка выполнения программы, способ задания величины задержки зависит от реализации системы управленияG04
G15Отмена полярной системы координатG16 X15 Y22.5; G15;
G16Полярная система координат (X радиус Y угол)G16 X15 Y22.5
G40Отмена компенсации размера инструментаG1 G40 X0 Y0 F200
G41Компенсировать радиус инструмента слева от траекторииG41 X15 Y15 D1 F100
G42Компенсировать радиус инструмента справа от траекторииG42 X15 Y15 D1 F100
G43Компенсировать длину инструмента положительноG43 X15 Y15 Z100 H1 S1000 M3
G44Компенсировать длину инструмента отрицательноG44 X15 Y15 Z4 H1 S1000 M3
G49Отмена компенсации длины инструментаG49 Z100
G53Отключить смещение начала системы координат станкаG53 G0 X0 Y0 Z0
G54-G59Переключиться на заданную оператором систему координатG54 G0 X0 Y0 Z100
G80Отмена циклов сверления (G81-G84)G80
G81Цикл сверленияG81 X0 Y0 Z-10 R3 F100
G82Цикл сверления с задержкойG82 X0 Y0 Z-10 R3 P100 F100
G83Цикл сверления с отходомG83 X0 Y0 Z-10 R3 Q8 F100
G84Цикл нарезания резьбыG95 G84 M29 X0 Y0 Z-10 R3 F1.411
G90Задание абсолютных координат опорных точек траекторииG90 G1 X0.5 Y0.5 F10
G91Задание координат относительно последней введённой опорной точкиG91 G1 X4 Y5 F100
G94F (подача) — в формате мм/мин.G94 G80 Z100
G95F (подача) — в формате мм/об.G95 G84 X0 Y0 Z-10 R3 F1.411

Таблица технологических кодов

Технологические команды языка начинаются с буквы М. Включают такие действия, как:

Вспомогательные (технологические) команды

КодОписаниеПримерM00Приостановить работу станка до нажатия кнопки «старт» на пульте управления, так называемый «технологический останов»G0 X0 Y0 Z100 M0M01Приостановить работу станка до нажатия кнопки «старт», если включён режим подтверждения остановаG0 X0 Y0 Z100 M1M02Конец программыM02M03Начать вращение шпинделя по часовой стрелкеM3 S2000M04Начать вращение шпинделя против часовой стрелкиM4 S2000M05Остановить вращение шпинделяM5M06Сменить инструментM6 T15M07Включить дополнительное охлаждениеM3 S2000 M7M08Включить основное охлаждениеM3 S2000 M8M09Выключить охлаждениеG0 X0 Y0 Z100 M5 M9M17Конец подпрограммыM17M99Конец подпрограммыM99M30Конец информацииM30

Параметры команд

Параметры команд задаются буквами латинского алфавита

КодОписаниеПример
XКоордината точки траектории по оси XG0 X100 Y0 Z0
YКоордината точки траектории по оси YG0 X0 Y100 Z0
ZКоордината точки траектории по оси ZG0 X0 Y0 Z100
PПараметр командыG04 P101
FСкорость рабочей подачиG1 G91 X10 F100
SСкорость вращения шпинделяS3000 M3
RПараметр стандартного цикла или радиус дуги (расширение стандарта)G81 R1 0 R2 −10 F50 или G1 G91 X12.5 R12.5
DПараметр коррекции выбранного инструментаM06 T1 D1
PЧисло вызовов подпрограммыL82 P10
I,J,KПараметры дуги при круговой интерполяцииG03 X10 Y10 I0 J0 F10
LВызов подпрограммы с данной меткойL12

Пример

Обработка буквы W (см рис.) на условном вертикально-фрезерном станке с ЧПУ, фрезой диаметром 4 мм, в заготовке из фанеры:

Красным цветом выделен результат обработки.

Команды g code. Смотреть фото Команды g code. Смотреть картинку Команды g code. Картинка про Команды g code. Фото Команды g code

КадрСодержаниеКомментарий
N1G90 G40 G17Система координат абсолютная, компенсация на инструмент выключена, плоскость интерполяции XY
N2G00 X 0 Y 30 Z10Переход в точку начала обработки
N3S 15 000 F10 00 M3Выбрать режимы резания и включить привод главного движения
N4G01 Z-1.0 F5 0 0Врезание в заготовку
N5G01 X 10 Y0Первый штрих буквы W
N6G01 X 20 Y30Второй штрих буквы W
N7G01 X 30 Y 0Третий штрих буквы W
N8G01 X 40 Y30Четвертый штрих буквы W
N9G00 Z10Отвод инструмента от заготовки
N10M5Выключить привод главного движения
N11M30Конец программы

G-code

G-код — условное именование языка программирования устройств с числовым программным управлением (ЧПУ). Был создан компанией Electronic Industries Alliance в начале 1960-х. Финальная доработка была одобрена в феврале 1980 года как стандарт RS274D. Комитет ISO утвердил G-код, как стандарт ISO 6983-1:1982, Госкомитет по стандартам СССР — как ГОСТ 20999-83. В советской технической литературе G-код обозначается, как код ИСО 7-бит (ISO 7-bit).

Производители систем управления используют G-код в качестве базового подмножества языка программирования, расширяя его по своему усмотрению. [1]

Содержание

Структура программы

Программа, написанная с использованием G-кода, имеет жесткую структуру. Все команды управления объединяются в кадры — группы, состоящие из одной или более команд. Кадр завершается символом перевода строки (ПС/LF) и имеет номер, за исключением первого кадра программы и комментариев. Первый кадр содержит только один символ «%». Завершается программа командой M02 или M30. Комментарии к программе размещаются в круглых скобках, занимая отдельный кадр.

Порядок команд в кадре строго не оговаривается, но традиционно предполагается, что первыми указываются подготовительные команды, (например, выбор рабочей плоскости), затем команды перемещения, затем выбора режимов обработки и технологические команды.

Подпрограммы должны быть описаны после команды M02, но до M30. Начинается подпрограмма с кадра вида Lxx, где xx — номер подпрограммы, заканчивается командой M17.

Сводная таблица кодов

Основные (называемые в стандарте подготовительными) команды языка начинаются с буквы G:

Таблица основных команд

КодОписаниеПример
G00Ускоренное перемещение инструмента (холостой ход)G0 X0 Y0 Z100
G01Линейная интерполяцияG01 X0 Y0 Z100 F200
G02Круговая интерполяция по часовой стрелкеG02 X15 Y15 R5 F200
G03Круговая интерполяция против часовой стрелкиG03 X15 Y15 R5 F200
G04Задержка выполнения программы, способ задания величины задержки зависит от реализации системы управленияG04
G15Отмена полярной системы координатG16 X15 Y22.5; G15;
G16Полярная система координат (X радиус Y угол)G16 X15 Y22.5
G40Отмена компенсации размера инструментаG1 G40 X0 Y0 F200
G41Компенсировать радиус инструмента слева от траекторииG41 X15 Y15 D1 F100
G42Компенсировать радиус инструмента справа от траекторииG42 X15 Y15 D1 F100
G43Компенсировать длину инструмента положительноG43 X15 Y15 Z100 H1 S1000 M3
G44Компенсировать длину инструмента отрицательноG44 X15 Y15 Z4 H1 S1000 M3
G49Отмена компенсации длины инструментаG49 Z100
G53Отключить смещение начала системы координат станкаG53 G0 X0 Y0 Z0
G54-G59Переключиться на заданную оператором систему координатG54 G0 X0 Y0 Z100
G80Отмена циклов сверления (G81-G84)G80
G81Цикл сверленияG81 X0 Y0 Z-10 R3 F100
G82Цикл сверления с задержкойG82 X0 Y0 Z-10 R3 P100 F100
G83Цикл сверления с отходомG83 X0 Y0 Z-10 R3 Q8 F100
G84Цикл нарезания резьбыG95 G84 M29 X0 Y0 Z-10 R3 F1.411
G90Задание абсолютных координат опорных точек траекторииG90 G1 X0.5 Y0.5 F10
G91Задание координат относительно последней введённой опорной точкиG91 G1 X4 Y5 F100
G94F (подача) — в формате мм/мин.G94 G80 Z100
G95F (подача) — в формате мм/об.G95 G84 X0 Y0 Z-10 R3 F1.411

Таблица технологических кодов

Технологические команды языка начинаются с буквы М. Включают такие действия, как:

Параметры команд

Параметры команд задаются буквами латинского алфавита

КодОписаниеПример
XКоордината точки траектории по оси XG0 X100 Y0 Z0
YКоордината точки траектории по оси YG0 X0 Y100 Z0
ZКоордината точки траектории по оси ZG0 X0 Y0 Z100
PПараметр командыG04 P101
FСкорость рабочей подачиG1 G91 X10 F100
SСкорость вращения шпинделяS3000 M3
RПараметр стандартного цикла или радиус дуги (расширение стандарта)G81 R1 0 R2 −10 F50 или G1 G91 X12.5 R12.5
DПараметр коррекции выбранного инструментаM06 T1 D1
PЧисло вызовов подпрограммыL82 P10
I,J,KПараметры дуги при круговой интерполяцииG03 X10 Y10 I0 J0 F10
LВызов подпрограммы с данной меткойL12

См. также

Пример

Обработка буквы W (вписанной в прямоугольник 34х27 мм, см рис.) на условном вертикально-фрезерном станке с ЧПУ, фрезой диаметром 4 мм, в заготовке из органического стекла:

Красным цветом выделен результат обработки.

Источники:

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *