Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
syntec.doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
741.38 Кб
Скачать

Workpiece coordinate system compensation values (workpiece zero point offset values)

There are only 16 workpiece coordinate system in this version

#20001~#20006

External workpiece zero point offset value

R/W

#20021~#20026

Workpiece 1 zero point offset value,G54

R/W

#20041~#20046

Workpiece 2 zero point offset value,G55

R/W

R/W

#25981~#25986

Workpiece 299 zero point offset value

R/W

Reference point position

The reference point 1 is always at home position

There are only 4 reference points in this version

#26001~#26006

Reference point 1 position

R/W

#26021~#26026

Reference point 2 position

R/W

#26041~#26046

Reference point 3 position

R/W

R/W

#31981~31986

Reference point 300 position

R/W

八、扩充插值G码(Extended Interpolation g Code)宏程序说明:

#1000是目前的插值模式,当宏程序希望在离开后保留此宏插值模式,请在宏程序离开前将#1000设为自己宏的号码。

此后只要有轴向位移指令的单节就会自动呼叫此宏程序,其实际行为将由此宏程序定义之。

此宏插值模式在遇到G00/G01 /G02/G03/G31/G33,或其它扩充插值宏等差值指令时自动解除。

例:

开发一个有模式循环的宏指令G21,其主程序语法如下:

.

.

G21 X_ Z_ R_; // G21模式

X_; // G21模式

X_; // G21模式

X_; // G21模式

G00 Z_; // G00模式

.

.

宏程序架构

% @MACRO

. // 宏主程序

.

.

#1000 := 21; // 设定G21为目前的插值模式

M99;

九、macro 撰写需注意事项:

  1. 程序内容第一行需为%@MACRO。

  2. 每一行结束需加”;”。

  3. 程序最后需加”M99;”才能返回到主程序。

  4. 指定变量需使用”:=”符号,不可仅用”=”符号。

例如: #30:=100; //将变量#30指定为整数100

  1. 档名储存需依照下列原则。

例如: 撰写G100之MACRO,需将该MACRO程序存在C:\CNC\MACRO

目录底下,且文件名需为G0100,不需扩展名。

撰写G100.1之MACRO,需将该MACRO程序存在C:\CNC\MACRO

目录底下,且文件名需为G100001,不需扩展名。

  1. 系统在执行加工时对于MACRO程序会事先预解,因此MACRO执行速度会超前G、M code指令,因此变量指定或资料读取须与G、M code指令发出时间排程相同时,请于变量指定或数据读取前加WAIT()指令,否则该变量指定或该笔数据读取将无法与G、M code同步。

  2. 请尽量在程序内容中多加入批注,养成良好习惯,增加程序可读性可帮助后续维护及问题排除。

十、macro范例:

       取材自车床G21车床车牙模式循环宏,其规格请参考车床程序使用手册

 

% @MACRO

// WHEN NO X(U) Z(W) ARGUMENTS,THEN LOAD MODAL INFORMATION

// ELSE DO THREAD CUTTING

// #8(E)    LEAD COUNT PER INCH

// #18(R)  TAPER AMOUNT

// #2070   RECORDED TAPER AMOUNT

// #2071   RECORDED Z AXIS AMOUNT

 

// PROCESS NO ARGUMENT CASE WHICH MAY CAUSE FROM MODAL RESTORE

IF( #21 = #0 AND #23 = #0 AND #24 = #0 AND #26 = #0 ) THEN

        M99;

END_IF;

 

// PROCESS TAPER

IF (#1000 <> 21 ) THEN

        // WHEN FIRST ENTRY, CLEAR TAPER MODAL STATE

        #2070 := 0;

        #2071 := 0;

        #2072 := #0;

END_IF;

 

IF( #18 <> #0 ) THEN

        // THERE ARE TAPER ADDRESS, RECORD IT INTO MODAL VARIABLE

    #2070 := #18;

ELSE

        // NO TAPER ADDRESS APPEAR, INHERIT MODAL STATE

        #18 := #2070;

END_IF;

 

IF( #9 <> #0 ) THEN

        // THERE ARE LEAD ADDRESS, RECORD IT INTO MODAL VARIABLE

    #2072 := #9;

ELSE

        // NO LEAD ADDRESS APPEAR, INHERIT MODAL STATE

        #9 := #2072;

END_IF;

 

IF( #23 <> #0 OR #26 <> #0 ) THEN

        // WHEN THERE ARE W OR Z ADDRESS APPEAR, THEN

        // CHECK WHICH KIND OF COMMAND BEEN ADDRESS, AND

        // SAVE IT INTO MODAL VARIABLE

        IF( #26 <> #0 ) THEN

                // Z ADDRESS

                #2071 := #26 - #1303;

        ELSE

                // W ADDRESS

                #2071 := #23;

        END_IF;

ELSE

        // WHEN THERE ARE NO Z/W ADDRESS, THEN INHERIT IT FROM

        // MODAL VARIABLE

        #26 := #2071 + #1303;

END_IF;

 

// PROCESS E ADDRESS

IF( #8 <> #0 AND #9 = #0 ) THEN

        IF( #1008 = 94 ) THEN

                // FEED PER MINUTE, CALCULATE MM/MIN = LEAD * SPINDLE SPEED

                #9 := (25.4 * #1034) / #8;

                #2072 := #9;

        ELSE

                // FEED PER REVOLUTION, CALCULATE MM/REV = LEAD

                #9 := 25.4 / #8;

                #2072 := #9;

        END_IF;

END_IF;

 

// STANDARDIZE ARGUMENT

#9 := STD(#9,#1600);

#21 := STD(#21,#1600);

#23 := STD(#23,#1600);

#24 := STD(#24,#1600);

#26 := STD(#26,#1600);

#18 := STD(#18,#1600);

 

// working variable

// #31               chamfer start point relative to block end X

// #32               chamfer block X-direction displacement

// #33               chamfer amount

// #36               thread head number iterative count

// #37               thread start angle

 

// READ CHAMFER AMOUNT

#33 := (#4043 * #9) / 10.0;

 

// COPY X,Z INFORMATION INTO U,W

 

// PROCESS X ADDRESS

IF( #24 <> #0 ) THEN

        #21 := #24 - #1301;

END_IF;

 

// PROCESS Z ADDRESS

IF( #26 <> #0 ) THEN

        #23 := #26 - #1303;

END_IF;

 

// process H addesss, the head number

IF( #11 <> #0 ) THEN

        #11 := ROUND(#11);

ELSE

        // set default head number

        #11 := 1;

END_IF;

 

// CALCULATE CHAMFER START POINT RELATIVE TO BLOCK END POINT IN X

#31 := (SIGN(#23) * #33 * 2 * #18)/#23;

 

// CALCULATE CHAMFER BLOCK X-DIRECTION DISPLACEMENT

#32 := -SIGN(#21)*#33*2;

 

FOR #36:=1 TO #11 DO

 

        // calculate thread start angle

        #37 := (360.0 / #11) * (#36 - 1);

 

        G00 U( #21 + #18*2 );

        G33 U-(#18*2-#31) W(#23-SIGN(#23)*#33) Q#37 F(#9*#11);

        G33 U#32 W(SIGN(#23)*#33) Q#37;

        G00 U-#21-#32-#31;

        G00 W-#23;

 

END_FOR;

 

// SET INTERPOLATION MODE TO 21

#1000 := 21;

 

// RETURN

M99;

第三章 附件

基本G码指令一览表

项 目

功 能 名 称

G00

直线快速定位

G01

直线补间、切削进给

G02

圆弧补间(顺时钟)

G03

圆弧补间(逆时钟)

G04

暂停指定时间

G10

可程序资料输入

G15

取消极坐标命令

G16

极坐标命令

G17

设定XY工作平面

G18

设定ZX工作平面

G19

设定YZ工作平面

G28

原点回归

G29

从参考点复归

G30

任意参考点回归

G31

跳跃功能

G33

螺牙切削

G40

刀具半径补偿消除

G41

刀具半径左补偿

G42

刀具半径右补偿

G43

刀具长度正补偿

G44

刀具长度负补偿

G49

刀具长度补偿取消

G50

取消放大缩小

G51

放大缩小

G52

设定区域坐标(子工件坐标)

G53

机械坐标定位

G54

设定工件坐标系统

G55

设定第二工件坐标系统

G56

设定第三工件坐标系统

G57

设定第四工件坐标系统

G58

设定第五工件坐标系统

G59

设定第六工件坐标系统

G65

单一宏程序呼叫

G66

模式宏程序呼叫

G67

模式宏程序呼叫取消

G67

取消坐标旋转

G68

坐标旋转

G70

英制单位加工

G71

公制单位加工

G90

绝对位置输入方式

G91

相对位置输入方式

G92

加工位置坐标系统设定

G94

每分钟进给量(mm/min.)

G95

每转进给量(mm/rev.)

G96

等表面切削速度

G97

等表面切削速度取消

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]