Skip to main content

4.6. 센서를 이용한 변형량 측정 및 툴 자동 보정 수행

4.6. 센서를 이용한 변형량 측정 및 툴 자동 보정 수행

 

'-- Measurement 2D without signal reflection

'-- Initial parameter setting

     CALL 1020_INIT_SET

    

     '-- Calculate Circle Pose

     CALL 1021_CALC_C1

    

     '-- Reset pending error

     IF gxError=1 THEN

     gyReset=1

     WAIT gxError=0

     gyReset=0

     ENDIF

    

     '-- Set Program Number 1 --

     gyPrgNrBit1=1

     gyPrgNrBit2=0

     gyPrgNrBit3=0

     gyPrgNrBit4=0

     gyPrgNrBit5=0

    

     '-- WAIT ready --

     WAIT gxReadyForMes

    

     '-- Reset tool data --

     Tool[giToolNrCorr]=Tool[giToolNrOrig]

     '-- Double-circle with Tool[giToolNrCorr]    

S1   MOVE L,gpCirPose1,S=50%,A=0,T=giToolNrCorr        '-- Move to starting point      --

S2   MOVE C,gpCirPose2,S=50mm/s,A=3,T=giToolNrCorr  '-- 1st quarter circle movement --

S3   MOVE C,gpCirPose3,S=50mm/s,A=3,T=giToolNrCorr  '-- 2nd quarter circle movement --

S4   MOVE C,gpCirPose4,S=50mm/s,A=3,T=giToolNrCorr  '-- 3rd quarter circle movement --

S5   MOVE C,gpCirPose1,S=50mm/s,A=3,T=giToolNrCorr  '-- 4th quarter circle movement --

S6   MOVE C,gpCirPose2,S=50mm/s,A=3,T=giToolNrCorr  '-- 1st quarter circle movement --

S7   MOVE C,gpCirPose3,S=50mm/s,A=3,T=giToolNrCorr  '-- 2nd quarter circle movement --

S8   MOVE C,gpCirPose4,S=50mm/s,A=3,T=giToolNrCorr  '-- 3rd quarter circle movement --

S9   MOVE C,gpCirPose1,S=50mm/s,A=3,T=giToolNrCorr  '-- 4th quarter circle movement --

    

     '-- Execute "Get measured values and Correction"

     '-- Get measurement result and Correction --

     '-------------------------------------------

     V100%=19 'sensor node number

     '-- Set measurement movement to finished --

     gyMeMovFinish=1

    

     '-- Wait until measurement result is calculated or error --

     WAIT gxMesResCalc=1 OR gxError=1

    

     '-- Read measured values only if gxMesResCalc == 1 --

     IF gxMesResCalc=1 THEN

     gdCorrX =(gxXOffsetBit - 30000)  / 100.0 '-- X-Offset --

     gdCorrY =(gxYOffsetBit - 30000)  / 100.0 '-- Y-Offset --

     gdCorrZ =(gxZOffsetBit - 30000)  / 100.0 '-- Z-Offset --

     gdCorrRX=(gxXOriOffset - 30000) / 100.0 '-- Rotation around X --

     gdCorrRY=(gxYOriOffset - 30000) / 100.0 '-- Rotation around Y --

     gdCorrRZ=(gxZOriOffset - 30000) / 100.0 '-- Rotation around Y --

     ENDIF

    

     '-- If error gxError set correction to zero

     IF gxError=1 THEN

     gdCorrX =0

     gdCorrY =0

     gdCorrZ =0

     gdCorrRX=0

     gdCorrRY=0

     gdCorrRZ=0

     ENDIF

    

     '-- Reset Measurement movement to finished

     gyMeMovFinish=0

    

     '-- WAIT until calculated measurement result is reset

     WAIT gxMesResCalc=0

     '-- Apply correction to tool data

     LP1=P*

     LR1=(0,0,0,0,0,0)T

     LR1.X=gdCorrX

     LR1.Y=gdCorrY

     LR1.Z=gdCorrZ

     LR1.RX=gdCorrRX

     LR1.RY=gdCorrRY

     LR1.RZ=gdCorrRZ

    

S1   MOVE P,P*-LR1,S=10%,A=0,T=giToolNrCorr

     LP2=P*

     ATDC T=giToolNrCorr,OrgP=LP1,NewP=LP2

     DELAY 0.1

     END    

     '-- Acknowledge error during measurement --

     '-- Identify and rectify error cause --

     IF gxError=1 THEN

     '-- Reset tool data --

     Tool[giToolNrCorr]=Tool[giToolNrOrig]

     gyReset=1

     WAIT gxError=0

     gyReset=0

     ENDIF

    

     '-- Reset Program Number 1 --

     gyPrgNrBit1=0

     gyPrgNrBit2=0

     gyPrgNrBit3=0

     gyPrgNrBit4=0

     gyPrgNrBit5=0

     END

 

그림 4.5 툴 변형량 측정 및 자동 보정 수행