0
点赞
收藏
分享

微信扫一扫

VisualDMIS 6.5更换价MCR20 高级编程

荷一居茶生活 2022-06-07 阅读 43

$$DMISLAYER/'MCR20Calibration.dms'
DECL/REAL,PORTX,PORTY,PORTZ,IT,JT,I,J,K,SNLENG,FPORTX,FPORTY
DECL/INTGR,10,L,PORTDIR
DECL/CHAR,10,CalibFile,HomeDir
TEXT/OPER,'Latch all port lids in their open position.'
UNITS/MM,ANGDEC
$$ENDLAYER
WKPLAN/XYPLAN
MODE/MAN
RECALL/D(MCS)
$$S(DEFAULT)=SNSDEF/PROBE,INDEX,POL,0.0000,0.0000,$
0.000000,0.000000,-1.000000,126.9744,1.9797
SNLENG=OBTAIN/SA(DEFAULT),9
SNSLCT/S(DEFAULT)
PRCOMP/OFF
CALL/EXTERN,DME, 'V3DHOME',HomeDir
CalibFile = CONCAT(HomeDir,'\Users\Sensor\Mcr20calib.data')
DID(PORTDATA)=DEVICE/STOR,CalibFile
OPEN/DID(PORTDATA),DIRECT,OUTPUT,OVERWR
F(RACKLN)=FEAT/LINE,UNBND,CART, 150.000000, 300.000000, 250.000000, 1.000000, $
0.000000, 0.000000, 0.000000, -1.000000, 0.000000
MEAS/LINE,F(RACKLN),2
PTMEAS/CART,50.000000,300.000000,250.000000,0.000000,-1.000000,0.000000
PTMEAS/CART,350.000000,300.000000,250.000000,0.000000,-1.000000,0.000000
ENDMES
I = OBTAIN/FA(RACKLN),7
J = OBTAIN/FA(RACKLN),8
K = OBTAIN/FA(RACKLN),9
WRITE/DID(PORTDATA),I,',',J,',',K
IT=ABS(I)
JT=ABS(J)
IF/IT > JT
PORTDIR=1
ELSE
IF/J > 0
PORTDIR=2
ELSE
PORTDIR=3
ENDIF
ENDIF
M(MEASPL)=MACRO/
F(RACKPL)=FEAT/PLANE,CART, 81.740688, 27.852796, 328.708000, 0.000391, 0.222763, $
0.974873
MEAS/PLANE,F(RACKPL),3
PTMEAS/CART,7.077813,27.538671,328.809700,0.000391,0.222763,0.974873
PTMEAS/CART,66.590113,27.955871,328.690500,0.000391,0.222763,0.974873
PTMEAS/CART,126.648213,27.955271,328.666000,0.000391,0.222763,0.974873
ENDMES
PORTZ = OBTAIN/FA(RACKPL),5
$$PORTZ = PORTZ+SNLENG-42.25
$$PORTZ = PORTZ-42.25
ENDMAC
M(MEASPT)=MACRO/
F(LEFTPT)=FEAT/POINT,CART, 245.841504, 178.573487, 76.230209, 0.999889, $
0.006672, 0.013345
MEAS/POINT,F(LEFTPT),1
PTMEAS/CART,245.841504,178.573487,76.230209,0.999889,0.006672,0.013345
ENDMES
F(RIGHTPT)=FEAT/POINT,CART, 257.767601, 178.603847, 76.309317, -0.999932, $
0.005586, -0.010241
MEAS/POINT,F(RIGHTPT),1
PTMEAS/CART,257.767601,178.603847,76.309317,-0.999932,0.005586,-0.010241
ENDMES
F(MIDDLEPT)=FEAT/POINT,CART, 251.804552, 178.588667, 76.269763, 0.000000, $
0.000000, 1.000000
CONST/POINT,F(MIDDLEPT),MIDPT,FA(RIGHTPT),FA(LEFTPT)
ENDMAC
M(LPWRT)=MACRO/
DO/L,0,5,1
IF/(PORTDIR.EQ.1)
PORTX=FPORTX+(30*L)
ENDIF
IF/(PORTDIR.EQ.2)
PORTY=FPORTY+(30*L)
ENDIF
IF/(PORTDIR.EQ.3)
PORTY=FPORTY-(30*L)
ENDIF
WRITE/DID(PORTDATA),PORTX,',',PORTY,',',PORTZ
ENDDO
ENDMAC
IF/(PORTDIR.EQ.1)
PORTY = OBTAIN/FA(RACKLN),5
PORTY = PORTY+9.25
CALL/M(MEASPL)
CALL/M(MEASPT)
FPORTX = OBTAIN/FA(MIDDLEPT),3
CALL/M(LPWRT)
ENDIF
IF/(PORTDIR.EQ.2)
PORTX = OBTAIN/FA(RACKLN),4
PORTX = PORTX-9.25
CALL/M(MEASPL)
CALL/M(MEASPT)
FPORTY = OBTAIN/FA(MIDDLEPT),4
CALL/M(LPWRT)
ENDIF
IF/(PORTDIR.EQ.3)
PORTX = OBTAIN/FA(RACKLN),4
PORTX = PORTX+9.25
CALL/M(MEASPL)
CALL/M(MEASPT)
FPORTY = OBTAIN/FA(MIDDLEPT),4
CALL/M(LPWRT)
ENDIF
WRITE/DID(PORTDATA),SNLENG,',','0',',','42.25'
CLOSE/DID(PORTDATA),KEEP
dmesw/COMAND,'configmcr:CalibFile'
PRCOMP/ON
MODE/PROG,MAN
TEXT/OPER,'Calibration completed!'
ENDFIL


举报

相关推荐

0 条评论