Буквенные адресные коды:
Код: |
Функция: |
A |
Вращательное движение 4-ой оси |
B |
Вращательное движение 5-ой оси |
C |
Дополнительная внешняя вращающая ось |
D |
Выбор диаметра инструмента |
F |
Cкорость подачи / Selection of federate |
G |
Подготовительные функции (G-коды) / Selection of fixed cycle |
H |
Выбор компенсации длины инструмента |
I |
Круговая интерполяция или данные фиксированного цикла |
J |
Круговая интерполяция или данные фиксированного цикла |
K |
Круговая интерполяция или данные фиксированного цикла / Повтор / Specify fixed cycle times 0~999 |
L |
Счётчик для повторяющихся циклов |
M |
M-коды (различные функции) |
N |
Номер блока |
O |
Имя/номер программы |
P |
Задержка или вызов подпрограммы G98/ Dwell time when hole is in the bottom |
Q |
Аргумент в постоянных циклах / Cutting value in G73、G83, or specified movement value
(increment) in G76, G87 |
R |
Указание уровня безопасности / Selection of R position(absolute or increment) |
S |
Команда скорости шпинделя |
T |
Код выбора инструмента |
X |
Перемещение по линейной оси x / Linear X / Selection position of drilling point(increment or absolute) |
Y |
Перемещение по линейной оси y / Linear X / Selection position of drilling point(increment or absolute)
|
Z |
Перемещение по линейной оси z / Linear X / Selection position of hole bottom(increment or absolute) |
Таблица подготовительных кодов. Фрезерные станки. Пример - Syntec 900ME
G-код: |
Модаль-
ность: |
Функция: |
G00 |
+ |
Позиционирование |
G01 |
|
Линейная интерполяция |
G02 |
|
Круговая интерполяция по часовой стрелке |
G03 |
|
Круговая интерполяция против часовой стрелки |
G04 |
|
Программируемая задержка |
G05 |
|
Высокоскоростная обработка |
G09 |
|
Строгая остановка, немодальная |
G10 |
|
Программный ввод данных |
G15 |
|
Полярный ввод данных - отмена |
G16 |
|
Полярный ввод данных - активирование |
G17 |
+ |
X-Y plane выбор |
G18 |
|
Z-X plane выбор |
G19 |
|
Y-Z plane выбор |
G28 |
|
Переход в референтную точку |
G29 |
|
Возврат из референтной точки |
G30 |
|
Возврат во вторую референтную точку (ноль инструмента) |
G31 |
|
Сигнал прекращения подачи (SKIP SIGNAL) |
G33 |
|
Нарезание резьбы |
G40 |
+ |
Отмена коррекции инструмента G41/G42 |
G41 |
|
коррекция на диаметр, инструмент слева |
G42 |
|
коррекция на диаметр, инструмент справа |
G43 |
|
Коррекция на длину инструмента + |
G44 |
|
Коррекция на длину инструмента – |
G49 |
+ |
Отмена компенсации на длину инструмента G43/G44 |
G50 |
+ |
Масштабирование |
G51 |
|
Отмена масштабирования G50 |
G50.1 |
|
Отмена режима программного зеркального отображения (mirror) G51.1 |
G51.1 |
|
Режим программного зеркального отображения (mirror) |
G52 |
|
Установить рабочую систему координат G52 |
G53 |
|
Позиционирование относительно нуля станка |
G54 |
+ |
Рабочая координатная система №1 |
G55 |
|
Рабочая координатная система №2 |
G56 |
|
Рабочая координатная система №3 |
G57 |
|
Рабочая координатная система №4 |
G58 |
|
Рабочая координатная система №5 |
G59 |
|
Рабочая координатная система №6 |
G61 |
+ |
Строгая остановка, модальная |
G64 |
+ |
Режим резания |
G65 |
+ |
Вызов макро подпрограммы |
G66 |
|
Модальный макро вызов подпрограммы |
G67 |
|
Отмена модального макро вызова подпрограммы |
G68 |
|
Вращение координат осей |
G69 |
+ |
Отмена вращения координат осей |
G70 |
+ |
Проверка позиционирования в дюймах (INCH) |
G71 |
|
Проверка позиционирования в миллиметрах (METRIC) |
G73 |
|
Фиксированный цикл высокоскоростного глубокого
сверления |
G74 |
|
Фиксированный цикл нарезания левой резьбы метчиком |
G76 |
|
Фиксированный цикл тонкого растачивания |
G80 |
|
Отмена фиксированного цикла |
G81 |
|
Фиксированный цикл сверления |
G82 |
|
Фиксированный цикл точечного сверления с задержкой на дне |
G83 |
|
Фиксированный цикл глубокого сверления |
G84 |
|
Фиксированный цикл нарезания правой резьбы метчиком |
G85 |
|
Фиксированный цикл растачивание/растачивание |
G86 |
|
Фиксированный цикл растачивание/остановка/ускоренное |
G87 |
|
Фиксированный цикл растачивание/ручной подъём |
G88 |
|
Фиксированный цикл растачивание/пауза/полуавтоматический режим |
G89 |
|
Фиксированный цикл с задержкой на дне |
G90 |
+ |
Абсолютное позиционирование |
G91 |
|
Относительное позиционирование |
G92 |
|
Установка текущих рабочих координат |
G94 |
+ |
Работа в мм(дюймах) в минуту (подача F) |
G98 |
+ |
Возврат в стартовую точку в фиксированных циклах |
G99 |
|
Возврат в плоскость R в фиксированных циклах |
G134 |
|
Цикл Circumference |
G135 |
|
Угловой цикл для сверления отверстий |
Системой устанавливаются следующие G коды по умолчанию при включении станка:
G00 Ускоренное перемещение
G17 Круговая интерполяция в плоскости XY
G40 Нет компенсации на диаметр инструмента
G49 Нет компенсации на длину инструмента
G54 Выбрана рабочая нулевая точка №1
G70 Позиционирование в милиметрах (METRIC)
G80 Нет фиксированных циклов
G90 Абсолютное позиционирование
G94 Скорость в мм (дюймах) в минуту
G98 Возврат к начальной точке в фиксированных циклах
Таблица вспомогательных кодов (общие):
M-код: |
Функция: |
M00 |
Остановка программы / Program dwell |
M01 |
Опциональная остановка программы / Selectivity program dwell
|
M02 |
Конец программы / End program |
M03 |
Включение шпинделя по часовой стрелке (S) / Spindle rotate(CW) |
M04 |
Включение шпинделя против часовой стрелке (S) / Spindle rotate(CCW)
|
M05 |
Остановка шпинделя / Spindle stop |
M06 |
Смена инструмента (Т) / Tool exchange |
M08 |
Включение охлаждения / Coolant liquid ON
|
M09 |
Выключение охлаждения / Coolant liquid OFF
|
M19 |
Ориентация шпинделя (P, R) / Spindle positioning, let spindle stop at a specified position |
M30 |
Конец программы и возврат в начало / Program end, return to starting point |
М98 |
Вызов подпрограммы (P, L) / Call the sub-program |
М99 |
Возврат из подпрограммы или цикл / From sub-program return to main program |
Open CNC Macro 发展工具 使用手册
OpenCNC Structure Motion language
Формат ввода кадра УП:
/ N G X Y Z A B C I J K F S T D M
/ Block Delete функция, активируется по выбору оператора.
N - если вы используете порядковый номер, то он должен быть первым в блоке.
G - подготовительная функция (функции) G должны следовать после N.
X - The linear dimension words -(указание координаты по оси X). Ось X указывается в первую очередь.
Y - The linear dimension words -(указание координаты по оси Y). Ось Y указывается во вторую очередь.
Z - The linear dimension words -(указание координаты по оси Z). Ось Z указывается в третью очередь.
А - The rotary dimension words -(указание координаты по оси A). Ось A указывается в третью очередь.
B - The rotary dimension words -(указание координаты по оси B). Ось B указывается в третью очередь.
С - The rotary dimension words -(указание координаты по оси C). Ось C указывается в третью очередь.
I - аргумент интерполяции следует за координатами осей. Аргумент I указывается в первую очередь.
J - аргумент интерполяции следует за координатами осей. Аргумент J указывается во вторую очередь.
K - аргумент интерполяции следует за координатами осей. Аргумент K указывается в третью очередь.
D - коррекция инструмента на диаметр должна следовать за К.
F - если вы указываете скорость подачи, которая относится к более чем одной оси, то требуемая F должна следовать последней функцией, к которой она относится.
S - скорость вращения шпинделя; Функция должна следовать непосредственно за "Feed Function" или за "Dimension".
T - выбор функции инструмента следует за кодом S.
M - вспомогательная функция, которые мы задаём, должна оперелятся в конце блока УП.
End of Block - Конец блока
Структура файла-макро:
% @MACRO
IF @1 = 1 THEN
G00 X100.;
ELSE
G00 Y100.;
END_IF;
M99;
Аналог ISO:
%
G00 X100.;
G00 Y100.;
G00 X0;
G00 Y0;
M99;
Expressions - Условия
Operators - Операторы условия
Operator |
Symbol |
Precedence |
Parenthesis |
( ) [ ] |
1 |
Function Evaluation |
Identifier(argument list) |
2 |
Negative |
- |
3 |
Complement |
NOT |
3 |
Multiply |
* |
4 |
Divide |
/ |
4 |
Modulus |
MOD |
4 |
Add |
+ |
5 |
Subtract |
- |
5 |
Comparison |
<,>,<=,>= |
6 |
Equality |
= |
7 |
Inequality |
<> |
8 |
Boolean/Bitwise AND |
&,AND |
9 |
Boolean/Bitwise Exclusive OR |
XOR |
10 |
Boolean/Bitwise OR |
OR |
11 |
Statements
Assignment - Присваивание
Variable: = expression;
@1 := 123;
#1 := #3;
GOTO - Оператор условного и безусловного перехода.
Синтаксис ввода:
GOTO n;
GOTO #3;
Пример УП с использованием Макро:
% @MACRO // PRIMER MACRO
IF( #1 = 2 ) THEN GOTO 100;
G01 X10. Y10.;
…
N100 G01 X30. Y30.;
…
M02;
EXIT - оператор выхода из цикла WHILE.
CASE - оператор цикла выбора.
Синтаксис ввода УП с Макро.
CASE INT expression OF
INT:
Statement list
INT,INT,INT:
Statement list
INT,…INT:
Statement list
ELSE
Statement list
END_CASE;
Пример УП с использованием Макро:
% @MACRO //MACRO
#1 := 8;
G01 G91 G92 X20. Y15. F200000;
CASE #1 OF
1:
X(1.0*1);
Y(1.0*1);
2:
X(1.0*2);
Y(1.0*2);
3,4,5:
X(1.0*#1);
Y(1.0*#1);
ELSE
X(1.0*6);
Y(1.0*6);
END_CASE;
X(1.0) Y(1.0);
M30;
REPEAT - оператор повтора.
Синтаксис ввода УП с Макро.
REPEAT
Statement list
UNTIL Condition END_REPEAT
Пример УП с использованием Макро:
% @MACRO // MACRO
#10 := 30.;
#11 := 22.5.;
#12 := #10/2;
#13 := #11/2;
#14 := 2.0;
#15 := 1.5;
G01 G92 X#12 Y#13 F200.0;
REPEAT
G00 X(#12+#14) Y(#13+#15);
G01 X(#12+#14) Y(#13-#15);
X(#12-#14) Y(#13-#15);
X(#12-#14) Y(#13+#15);
X(#12+#14) Y(#13+#15);
#14 := #14 + 2.0;
#15 := #15 + 1.5;
UNTIL (#14 > #12) OR (#15 > #13) END_REPEAT;
X(1.0) Y(1.0);
M30;
WHILE - Оператор замкнутого цикла с блоками (LOOPS)
Синтаксис ввода УП с Макро.
WHILE Condition DO
Statement list
END_WHILE;
Пример УП с использованием Макро:
% @MACRO // MACRO
#10 := 20.;
#11 := 15.;
#12 := #10/2;
#13 := #11/2;
#14 := 2.0;
#15 := 1.5;
G01 G92 X#12 Y#13 F200.0;
WHILE (#14 <= #12) AND (#15 <= #13) DO
G00 X(#12+#14) Y(#13+#15);
G01 X(#12+#14) Y(#13-#15);
X(#12-#14) Y(#13-#15);
IF #14 > 6.0 THEN
EXIT;
END_IF;
X(#12-#14) Y(#13+#15);
X(#12+#14) Y(#13+#15);
#14 := #14 + 2.0;
#15 := #15 + 1.5;
END_WHILE;
X(-5.0) Y(5.0);
M02;
FOR - Цикл повторений FOR.
Синтаксис ввода УП с Макро.
FOR INT variable1 := expression1 TO expression2 [ BY expression3] DO Statement list
END_FOR;
Внимание! В УП значения expression1, expression2, expression3, Statement list, окантовываются в знаки <,>.
Пример УП с использованием Макро:
% @MACRO // MACRO
#1 := 2.0; (*INITIAL RADIUS*)
#2 := 8.0; (*FINIAL RADIUS*)
#3 := 9; (* SIDES*)
#4 := 360.0 / #3; (*THETA*)
#5 := (180.0 + #4)/2; (*START ANGLE*)
G91 G92 X0. Y0. F300000;
G01 X(#1);
FOR #6:=#1 TO #2 BY 2.0 DO
#7 := 2.0 * #6 * COS(180.0-#5);
#8 := (#7/2.0) / COS(180.0/6);
#9 := #5;
G01 X(1.0);
FOR #10:= 1 TO #3 DO
G03 X(#7*COS(#9))
Y(#7*SIN(#9))
I(#8*COS(#9-180.0/6))
J(#8*SIN(#9-180.0/6));
#9 := #9 + #4;
END_FOR;
END_FOR;
IF - оператор для создания условий.
Синтаксис ввода УП с Макро.
IF Condition THEN
Statement list
ELSEIF Condition THEN
Statement list
ELSE
Statement list
END_IF;
Пример УП с использованием Макро:
% @MACRO //MACRO
#1 := 3.0;
G01 G91 G92 X20. Y15. F200000;
IF #1 = 1 THEN
X(1.0*1);
Y(1.0*1);
ELSEIF #1 = 2 THEN
X(1.0*2);
Y(1.0*2);
ELSEIF #1 = 3 THEN
X(1.0*3);
Y(1.0*3);
ELSE
X(1.0*4);
Y(1.0*4);
END_IF;
X(1.0) Y(1.0);
M30;
Описание функций
Функция |
Описание основных функций |
ABS |
Calculates the absolute value of a number
Ex:
#1 := ABS(-2.3); // #1 will be 2.3 |
ACOS |
Calculates the arc cosine of a number
Ex:
#1 := ACOS(#10);
|
ASIN |
Calculates the arc sine of a number
Ex:
#1 := ASIN(#10);
|
ATAN |
Calculates the arc tangent of a number
Ex:
#1 := ATAN(#10);
|
COS |
Calculates the cosine of a number
Ex:
#1 := COS(#10);
|
MAX |
Determines the maximum of two inputs
Ex1:
#1 := MAX(10,20); // #1 will be 20
Ex2:
#1 := MAX(#2,#3);
|
MIN |
Determines the minimum of two inputs
Ex1:
#1 := MIN(10.0,20.0); // #1 will be 10.0
Ex2:
#1 := MIN(#10,#11);
|
SIN |
Calculates the arc sine of a number
Ex:
#1 := ASIN(#10);
|
ASIN |
Calculate the sine of a number.
Ex:
#1 := SIN(#10);
|
SQRT |
Calculates the square root of a number.
Ex1:
#2 := SQRT(3); // #2 will be 1.732..
Ex2:
#2 := SQRT(#10);
|
TAN |
Calculates the tangent of a number.
Ex:
#1 := TAN(#10);
|
SIGN |
Return sign of a number, –1 for negative number, 1 for positive number, 0 for zero number.
Ex:
IF( SIGN(#10) > 0 ) THEN
….
END_IF;
|
CEIL |
Return the smallest integer that is greater than or equal to a number.
Ex1:
#2 := CEIL(2.3); // #2 will be 3
Ex2:
#2 := CEIL(#10);
|
ROUND |
Return the value of the argument rounded to the nearest long value
Ex1:
#2 := ROUND(2.3); // #2 will be 2
Ex2:
#2 := ROUND(#10);
|
Переменные - Variables
Vacant #0,@0 is always VACANT
Local #1 ~ #50
System #1000 ~
Global @1~
Типы переменных (VARIABLES)
Номера переменных |
Тип переменных |
Функции |
@1~@400 |
Пользовательские переменные |
R/W |
@401~@655 |
PLC R1 ~ R255
@401=R1
@655=R255 |
※ |
@656~@999 |
Пользовательские переменные |
R/W |
@10000~@14095 |
PLC R0 ~ R4095 |
※ |
※ - запись системой ЧПУ.
Распределение R-битов:
R0~R39
R40~R49
R50~R80
R81~R100
R101~R102
R103~R255
R256~R511
R512~R639
R640~R1023
R1023~R4095
Макро-вызовы:
M98 P_ H_ L_ --- Subprogram call, P_ H_ L_
Пример:
M98 P10 L2;
G65 P_ L_ addresses --- Macro call P_ L_
Пример:
G65 P10 X10.0 Y10.0;
G66 P_ L_ addresses --- Modal macro call,P_ L_
Пример:
G66 P10 X10.0 Y10.0;
Возвраты из макро-программ/подпрограмм:
М99 - Возврат
М99 - Возврат на конкретную строку
М99 Q - Возврат на конкретный номер линии
G67 - Отмена модального макро-вызова.
Argument Word |
Local Variable |
#1 |
A |
#2 |
B |
#3 |
C |
#7 |
D |
#8 |
E |
#9 |
F |
#11 |
H |
#4 |
I |
#5 |
J |
#6 |
K |
#13 |
M |
#17 |
Q |
#18 |
R |
#19 |
S |
#20 |
T |
#21 |
U |
#22 |
V |
#23 |
W |
#24 |
X |
#25 |
Y |
#26 |
Z |
Системные переменные
#0 - Вакантная переменная
#1~#50 - Локальные переменные для макро-программ
Модальная информация:
#1000
Interpolation mode, 00/01/02/03/33/34/35 - R/W
#1002
Contouring plane selection mode, 17/18/19 - R
#1004
Absolute/Incremental command mode, 90/91 - R
#1006
Stored stroke check mode, 22/23 - R
#1008
Cutting feed mode, 94/95 - R
#1010
Inch/Metric mode, 20/21 - R
#1012
Cutter compensation mode, 40/41/42 - R
#1014
Tool length compensation mode, 43/44/49 - R
#1016
Scaling mode, 50/51 - R
#1018
Spindle speed mode, 96/97 - R
#1020
Cutting feedrate control mode, 61/62/63/64 - R
#1022
Rotation mode, 68/69 - R
#1024
Spindle speed fluctuation detection mode, 25/26 - R
#1026
Polar coordinate interpolation mode, 12/13 - R
#1028
Polar coordinate command mode, 15/16 - R
#1030
Cutter radius offset selection number, D Code - R
#1032
Tool length offset selection number, H Code - R
#1034
Cutting condition selection number, S Code - R
#1036
Tool selection number, T Code - R
#1038
Miscellaneous function number, M Code - R
#1040
Current workpiece coordinate number - R
#1042
Program sequence number, N Code - R
#1044
Last block interpolation mode, could be 4(dwell) or vacant(M_ S_ T_ F_) for G66.1 modal macro call - R
#1046
Feedrate command, F Code - R
#1048
Caller’s current line number - R
#1050
Program start sequence number - R
#1052
Program start line number - R
#1054
Spindle operation state(M03/M04/M05) - R
#1056
Program sequence number after corner processing, N Code - R
Операции контроля и статуса:
#1500
Quiet mode, 1(Quiet mode), 0(Normal mode) - R/W
#1502
Single block control word - R/W
#1504
Feed control word - R/W
#1506
Simulation mode, 1(in simulation mode),0(in normal mode) - R
#1508
my session ID inside mode group - R
#1600
Distance least input increment - R
#1602
Time/Rotation angle least input increment - R
#1604
Use U/V/W addresses as X/Y/Z axis incremental command mode, 1(Use as X/Y/Z incremental command), 0(As normal axis command) - R
#1606
The count of element in macro stack. - R
#1608
Flag for skip function position latched, 1 for latched, 0 for not latched. - R
#1610
Spindle orientation stop angle - R/W
#1612
Default workpiece number - R/W
#1614
Default spindle speed - R/W
#1616
Break point sequence number - R
#1618
Break point line number - R
#1620
Current sequence number - R
#1622
Current point line number - R
#1624
Current active spindle ID - R
Текущие позиции:
#1301~#1316
Block end position in workpiece position - R
#1321~#1336
Current position in machine coordinate, this value can’t be read during movement. - R
#1341~#1356
current position in workpiece coordinate - R
#1361~#1376
Skip signal position in workpiece coordinate, the tool position where the skip signal is turned on in a G31 ( skip function ) block is held in these variables, - R
#1381~#1396
Tool length compensation vector - R
#1401~#1403
Last arc block center vector,(I,J,K) - R
#1411~#1413
Block end position in workpiece position, index by 1441(X);1442(Y);1443(Z) - R
#1421~#1436
Current encoder position of in workpiece coordinate machine - R
Runtime state variable:
#1800
Rigid tapping tracking error in revolution - R
#1801
Rigid tapping z-direction tracking error in BLU - R
#1802
Rigid tapping tracking error, maximum magnitude - R
#1810
Guidance remain distance, in LIU - R
#1811
Guidance x-direction remain distance, in LIU - R
#1812
Guidance y-direction remain distance, in LIU - R
#1815
Indicator for is in guidance function, 0: No; 1: Yes - R
#1816
Guidance Feedrate, in IU/min - R/W
#1820
Mute state, discard all command during mute state ON. 0: OFF, 1: ON, this state variable also available from G10 L1100 command - R/W
#1821
Accumulated cutting length, in IU - R/W
#1822
Cutting Feedrate Command, in mm/min -R/W
#1823
Spindle Speed Command, in RPM - R/W
#1824
Active Feed Control Mode, G61/G62/G63/G64 - R
#1825
Active interpolation G code mode - R
#1827
Active workpiece coordinate number - R
#1901~1916
Workpiece coordinate system shifting amount. - R/W
Модальные переменные:
Модальные переменные будут автоматически очищены (станут вакантными) при перезагрузке системы.
#2001~#2100
Modal variable for internal use - R/W
#3001~#3100
Modal variable for manufacturer - R/W
Custom parameter
#4001~#4100
Custom parameter for internal use - R
#5001~#5100
Custom parameter for manufacturer - R
Interface signals
#6001~#6032
Bit value interface of MLC (C101~C132/ S101~S132) ,example:
@1 := #6001; // assign C101 value into @1 - R/W
#6001 := @2; // assign @2 value into S101 - R/W
Mode Group Variables
#7001~#7050
Modal variable for internal use - R/W
#7101
The number of axis group in mode group - R
Для авторов и правообладателей материалов!
Если вы являетесь правообладателем какого-либо из материалов размещенных на нашем сайте, и при этом не хотите чтобы данная информация была доступна для пользователей без вашего на то согласия - напишите нам на info@cnc.uno, и мы удалим соответствующий материал.