;_N_L9811_SPF
;$PATH=/_N_SPF_DIR
;PROC L9811 SAVE DISPLOF
EXTERN L9710(REAL,REAL,REAL,REAL)
EXTERN L9726(REAL,REAL,REAL,REAL,REAL,REAL,REAL)
EXTERN L9730(REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL,REAL)
EXTERN L9732(REAL,REAL,REAL,REAL,REAL,REAL)
; REN XYZ MEASURE
IF($P_SEARCH)OR($P_SIM)OR($P_DRYRUN) GOTOF LN25
L9724
IF R19==9999 GOTOF LN1
IF R20==9999 GOTOF LN1
RENC[15]=330
L9700; ST INPUT MIXED
LN1:
IF R19==9999 GOTOF LN2
IF R11==9999 GOTOF LN2
RENC[15]=320
L9700; SH INPUT MIXED
LN2:
IF R20==9999 GOTOF LN3
IF R13==9999 GOTOF LN3
RENC[15]=340
L9700; TM INPUT MIXED
LN3:
L9725; CLEAR OUTPUTS
R10=$AA_IW[AXV[1]]; X START
R12=$AA_IW[AXV[2]]; Y START
R16=$AA_IW[AXV[3]]; Z START
L9710(R10-(RENP[2]*RENC[29]/RENC[7]),R12-(RENP[3]*RENC[29]/RENC[7]),9999,RENC[19]); PROTECT MOVE
IF RENC[49]<>2 GOTOF LN22
R30=-1; DIR FLAG
IF R24<>9999 GOTOF LN5
IF R25<>9999 GOTOF LN7
; Z MOVE
IF R26==9999 GOTOF LN225
IF $AA_IW[AXV[3]]<R26 GOTOF LN4
R30=1
LN4:
L9726(9999,9999,9999,9999,R26,R17,0)
IF RENC[49]<>0 GOTOF LN21
RENC[35]=R10
RENC[36]=R12
RENC[37]=RENC[26]; Z POS
RENC[38]=RENC[37]
IF R8==9999 GOTOF LN45
RENC[38]=RENC[38]+(RENE[R8]*RENC[29]/RENC[7]); SIZE
LN45:
RENC[42]=RENC[37]-R26; Z ERROR
RENC[43]=RENC[38]-R26; SIZE ERROR
RENC[45]=ABS(RENC[42]); T P ERR
RENC[46]=RENC[43]*R30; METAL CON
GOTOF LN9
LN5:; X MOVE
IF R25<>9999 GOTOF LN225
IF R26<>9999 GOTOF LN225
R6=RENP[0]*RENC[29]/RENC[7]
IF $AA_IW[AXV[1]]<R24 GOTOF LN6
R6=-RENP[0]*RENC[29]/RENC[7]
R30=1
LN6:
L9726(9999,9999,R24,9999,9999,R17,RENP[0]*RENC[29]/RENC[7])
IF RENC[49]<>0 GOTOF LN21
RENC[35]=RENC[24]+R6+(RENP[2]*RENC[29]/RENC[7]); COR SKIP POS
RENC[36]=R12
RENC[37]=R16
RENC[38]=RENC[35]
IF R8==9999 GOTOF LN65
RENC[38]=RENC[38]+(RENE[R8]*RENC[29]/RENC[7]); ACT SIZE
LN65:
RENC[40]=RENC[35]-R24; X ERROR
RENC[43]=RENC[38]-R24; SIZE ERROR
RENC[45]=ABS(RENC[40]); T P ERROR
RENC[46]=RENC[43]*R30; METAL CON
GOTOF LN9
LN7:; Y MOVE
IF R26<>9999 GOTOF LN225
R6=RENP[1]*RENC[29]/RENC[7]
IF $AA_IW[AXV[2]]<R25 GOTOF LN8
R6=-RENP[1]*RENC[29]/RENC[7]
R30=1
LN8:
L9726(9999,9999,9999,R25,9999,R17,RENP[1]*RENC[29]/RENC[7])
IF RENC[49]<>0 GOTOF LN21
RENC[35]=R10
RENC[36]=RENC[25]+R6+(RENP[3]*RENC[29]/RENC[7]); Y SKIP POS
RENC[37]=R16
RENC[38]=RENC[36]
IF R8==9999 GOTOF LN85
RENC[38]=RENC[38]+(RENE[R8]*RENC[29]/RENC[7]); ACT SIZE
LN85:
RENC[41]=RENC[36]-R25; ERROR
RENC[43]=RENC[38]-R25; SIZE ERROR
RENC[45]=ABS(RENC[41]); TP ERROR
RENC[46]=RENC[43]*R30; METAL CON
LN9:
RENC[47]=R30
IF R23==9999 GOTOF LN10
L9730(9999,9999,9999,R11,9999,9999,R13,9999,9999,R19,R20,R23,R24,R25,R26)
LN10:
IF R21==9999 GOTOF LN11; U UPPER TOL
IF ABS(RENC[43])>=R21 GOTOF LN23
IF RENC[45]>=R21 GOTOF LN23
LN11:
IF R11==9999 GOTOF LN13
IF ABS(RENC[43])<R11 GOTOF LN12
RENC[48]=1
LN12:
IF RENC[20]==4 GOTOF LN13
IF ABS(RENC[43])<R11 GOTOF LN13
G0 AX[AXV[1]]=R10 AX[AXV[2]]=R12
RENC[15]=500
L9700; OUT OF TOL
LN13:
IF R13==9999 GOTOF LN15
IF ABS(RENC[45])<R13/2 GOTOF LN14
RENC[48]=2
LN14:
IF RENC[20]==4 GOTOF LN15
IF ABS(RENC[45])<R13/2 GOTOF LN15
G0 AX[AXV[1]]=R10 AX[AXV[2]]=R12
RENC[15]=510
L9700; OUT OF POSITION
LN15:
IF R20==9999 GOTOF LN19
IF R22==9999 GOTOF LN155
IF ABS(RENC[46])<R22 GOTOF LN19; NULL BAND
LN155:
IF R9<>9999 GOTOF LN16
R9=1
LN16:
L9732(R20,R32,RENC[46]*R9,R26,9999,9999)
LN19:
IF R19==9999 GOTOF LN24
L9732(9999,9999,9999,R26,R19,1)
GOTOF LN24
LN21:
IF RENC[49]<>2 GOTOF LN22
G0 AX[AXV[1]]=R10 AX[AXV[2]]=R12
RENC[15]=380
L9700; PROBE FAIL
LN22:
G0 AX[AXV[1]]=R10 AX[AXV[2]]=R12
RENC[15]=370
L9700; PROBE OPEN
LN225:
G0 AX[AXV[1]]=R10 AX[AXV[2]]=R12
RENC[15]=210
L9700; XYZ INPUT MISSING
LN23:
RENC[48]=3
IF RENC[20]==4 GOTOF LN24
G0 AX[AXV[1]]=R10 AX[AXV[2]]=R12
RENC[15]=540
L9700; UPPER TOL EXCEEDED
LN24:
G0 AX[AXV[1]]=R10 AX[AXV[2]]=R12
LN25:
RENC[39]=11
L9800; CLEAR INPUTS
STOPRE
RET
问答社区 发起问答 报警查询 技术文章 维修服务 资料下载 加交流群 申请 VIP
本文转载来自【公众号:数控e家】,仅供大家学习交流,如侵权请联系站长删文。