安全移动
G65 P9810 Xx Yy Zz [Ff Mm]
- X、Y、Z 为必须输入
- F、M 为可选输入
参数 | 含义 | |
---|---|---|
#9 | 移动速度 F | |
#117 | 移动速度 F | |
#148 | #148=0 无测头触发 #148=7 测头触发 | |
#24 | X 移动 终点绝对坐标 | |
#25 | Y 移动 终点绝对坐标 | |
#26 | Z 移动 终点绝对坐标 | |
#123 | 机床移动到终点的绝对坐标 与 终点的理论值 的 差 (是否到达理论位置) | |
#5041 | 当前绝对坐标 X 值 | |
#5042 | 当前绝对坐标 Y 值 | |
#5043 | 当前绝对坐标 Z 值 | |
#116 | 刀具长度 | |
#13 | 设定测头触发标志,主程序如果传过来M=1,就正常运行(有误差也不会报警) |
%
O9810(PROTECTED POSN)
//调用子程序9724
G65P9724
//判断#9是否为空
IF[#9NE#0]GOTO3
//判断#117是否为空,如果#9和#117都为空,就报警3088,原因是主程序未定义速度F值
IF[#117NE#0]GOTO2
#3000=88(NO FEED RATE)
N2
#9=#117
N3
#117=#9
//未触发测头
#148=0
N4
//快速移动到指定坐标
G31X#24Y#25Z#26F#9
G53
//判断#24是否为空(在X方向是否有位移)
IF[#24EQ#0]GOTO5
//在X方向移动的误差
//当前绝对坐标 - 理论值
IF[ABS[#5041-[#24]]GT#123]GOTO8
N5
//判断#25是否为空(在Y方向是否有位移)
IF[#25EQ#0]GOTO6
//在Y方向移动的误差
//当前绝对坐标 - 理论值
IF[ABS[#5042-[#25]]GT#123]GOTO8
N6
//判断#26是否为空(在Z方向是否有位移)
IF[#26EQ#0]GOTO7
//在Y方向移动的误差
//当前绝对坐标 - 刀长 - 理论值
IF[ABS[[#5043-#116]-[#26]]GT#123]GOTO8
N7
GOTO9
N8
//触发测头
#148=7.
//如果M为1
IF[#13EQ1.]GOTO9
G91G28Z0.
G91G28Y0.
M120
#3000=86(PATH OBSTRUCTED)
N9
M99
%