使用自带的命令,自动对刀有点问题。就自己改了一个,实机试过,还可以
%@MACRO
//新代自动对刀;
//工件比对刀仪比高传入的Z值为正;
WAIT();
IF(#1820=1)THEN
M99;
END_IF;
WAIT();
G90 G53 Z0;
@101:=#1004;//记录G90/G91状态;
@109:=#20003+#[20003+20*#1040];//坐标系内总和补尝;
G49;//消除刀长;
G52 Z-@109;//消除坐标系影响以机械值移动;
G91G30P4X0Y0;//来到对刀仪正上方;
G90G31Z-300F6000;
G90G31Z-400F3000;
G90G31Z-460F1000;//460为限制距离;
W5;
G90G31W-5F500;
W3;
G90G31W-3F50;
WAIT();
IF ( #1608 <> 1 ) THEN
ALARM( 10002 );
END_IF;
#[@403+11000]=#1323+#26-@109;//写入当前机械坐标到刀长;
G91G30P2Z0;
WAIT();
G52 Z0;
G@101;
M99;
%@MACRO
//新代断刀检测;
//工件比对刀仪低传入的Z值为正;
@101:=#1004;
@102:=#6001;
@109:=#20003+#[20003+20*#1040];//坐标系总和;
WAIT();
IF(#1820=1)THEN
M99;
END_IF;
M05;
M09;
G90 G53 Z0;
G49;//消除刀长;
#110 := #[@403+11000];//对应刀号刀长;
#111 := #110+#26+1;//检测点;
WAIT();
G91 G30 P4 X0 Y0;
G90 G31 Z(#111+20) F5000;
G90 G31 Z#111 F1000 ;
G91 G31 Z-1.5 F200 ;//检测最终深度;
WAIT();
IF ( #1608 <> 1 ) THEN
ALARM( 10002 );
END_IF;
G90 G53 Z0;
IF (@102=1) THEN
M08;
END_IF;
WAIT();
G52 Z0;
G@101;
M99;
%@MACRO
//新代自动对刀;
//工件比对刀仪比高传入的Z值为正;
WAIT();
IF(#1820=1)THEN
M99;
END_IF;
WAIT();
G90 G53 Z0;
@101:=#1004;//记录G90/G91状态;
@109:=#20003+#[20003+20*#1040];//坐标系内总和补尝;
G49;//消除刀长;
G52 Z-@109;//消除坐标系影响以机械值移动;
G91G30P4X0Y0;//来到对刀仪正上方;
G90G31Z-300F6000;
G90G31Z-400F3000;
G90G31Z-460F1000;//460为限制距离;
W5;
G90G31W-5F500;
W3;
G90G31W-3F50;
WAIT();
IF ( #1608 <> 1 ) THEN
ALARM( 10002 );
END_IF;
#[@403+11000]=#1323+#26-@109;//写入当前机械坐标到刀长;
G91G30P2Z0;
WAIT();
G52 Z0;
G@101;
M99;
%@MACRO
//新代断刀检测;
//工件比对刀仪低传入的Z值为正;
@101:=#1004;
@102:=#6001;
@109:=#20003+#[20003+20*#1040];//坐标系总和;
WAIT();
IF(#1820=1)THEN
M99;
END_IF;
M05;
M09;
G90 G53 Z0;
G49;//消除刀长;
#110 := #[@403+11000];//对应刀号刀长;
#111 := #110+#26+1;//检测点;
WAIT();
G91 G30 P4 X0 Y0;
G90 G31 Z(#111+20) F5000;
G90 G31 Z#111 F1000 ;
G91 G31 Z-1.5 F200 ;//检测最终深度;
WAIT();
IF ( #1608 <> 1 ) THEN
ALARM( 10002 );
END_IF;
G90 G53 Z0;
IF (@102=1) THEN
M08;
END_IF;
WAIT();
G52 Z0;
G@101;
M99;