想运用西门子直接编程变量$AA_MM[X] 时,无法实现利用该变量将当前机床座标值记录到程序中,本想利用直接编程变量$AA_MM[X]与寻边器的使用,在操作过程中寻出孔三点座标,将当前机床座标值记录到程序,再运用表达式自动计算出孔中心座标并赋值到零偏,程序如下:
%_N_ZERO_3P_MPF
;$PATH=/_N_MPF_DIR
MSG("LOOK FOR THE NO.1 POINT AND THEN PRESS BUTTON [START]")
M0
R1=$AA_MM[X]
MSG("LOOK FOR THE NO.2 POINT AND THEN PRESS BUTTON [START]")
M0
R2=$AA_MM[X]
R3=$AA_MM[Y]
MSG("LOOK FOR THE NO.3 POINT AND THEN PRESS BUTTON [START]")
M0
R4=$AA_MM[Y]
R10=(R1-R2) / 2+R2
R11=(R3-R4) /2+R4
$P_UIFR[1]=CTRANS(X,R10,Y,R11)
M30
当1点指定后,转到jog方式,移动机床到2点,然后再执行程序,西门子系统会重回到第1点位置,且,无法走到第2点,另外,程序执行完后,零偏X.Y的赋值都为0,并没有把第1点座标值运算后,赋值(原先G54:X,Y值都不是0),想请教您直接编程变量$AA_MM[X]的具体用法和注意事项。或者想实现以上想法,是否有其它办法?