ng d ng l p trình choc robot trong h th ng
MiniCIM
Trong ph n này s nêu ra hai ch ng trình l p trình m t ng d ng cho robot, ươ
m t ch ng trình cho robot làm vi c v i máy ti n CNC m t ch ng trình cho robot ươ ươ
làm vi c v i máy khoan/phay CNC trong h th ng MiniCIM.
Ch ng trình robot th c hi n các ch c năng c p phôi lên các Pallet, c p phôi choươ
máy ti n và ch gia công xong đ đ a chi ti t đã gia công xong ra kh i máy ti n. ư ế
Gi i thích tóm t t nhi m v c a robot trong ch ng trình: ươ
Đây ch ng trình cho robot th c hi n trong h th ng MiniCIM, robot s th cươ
hi n m t s ch c năng trong dây chuy n ch t o l p ráp h p gi m t c d ng ế
ph ng. H th ng đ c đi u khi n b ng máy tính trung tâm v i ph m m m CimSoft. ượ
Các tín hi u t ph n m m CimSoft t máy ti n CNC các tín hi u đ u vào quy t ế
đ nh th i đi m trình t th c hi n các công vi c c a robot. Đ u tiên, khi t i tr m th
nh t pallet d ng l i, robot s l n l t c p phôi cho hai pallet (phôi c a n p h p ượ
gi m t c c a thân h p gi m t c). Ti p đ n khi pallet th c hai d ng l i t i tr m 2 ế ế
robot s g p phôi (phôi thân h p) t pallet c p cho máy ti n đ ng th i báo tín hi u cho
máy ti n CNC ho t đ ng. Trong lúc đó robot s quay l i tr m 1 đ c p ti p các bánh ế
răng cho pallet th c nh t khi này đã đ c k p t i tr m 1. Sau cùng, khi máy ti n CNC ượ
ti n xong thân h p gi m t c báo ra tín hi u hoàn thành robot s quay l i tr m 2 đ g p
chi ti t ra cho lên pallet đ di chuy n chi ti t đ n v trí ti p theo trong dây chuy n. ế ế ế ế
Ch ng trình: ươ
//M ng “KHO_CHUA_NAP” ch a v trí các đi m cho load n p
// M ng “KHO_CHUA_THAN” ch a v trí các đi m cho load thân
// M ng “KHO_CHUA_BR1” ch a v trí các đi m cho load n p BR1
// M ng “KHO_CHUA_BR2” ch a v trí các đi m cho load n p BR2
//M ng “LATHE_THAN” ch a v trí các đi m t i tr m ti n
// Danh sách vào ra
// OUTPUTS INPUTS
// 01. RESET ASRS POSITIONER 01. ASRS PALLET READY
// 02. RESET LATHE POSITIONER 02. LATHE PALLET READY
// 03 LATHE DONE 03. LATHE START
// 04. OPEN CHUCK
// MAIN PROGRAM
CimData$ = "INIT" //INITIALIZE ETHERNET DATA VARIABLE
DataWaiting = 0 //INITIALIZE ETHERNET DATA WAITING FLAG
ProgComplete = 0 //INITIALIZE ETHERNET PALLET DONE FLAG1
ProgComplete2 = 0 //INITIALIZE ETHERNET PALLET DONE FLAG2
MANG_NAP = 1
MANG_THAN = 1
MANG_BR1 = 1
MANG_BR2 = 1
LOADED = 0 //SET LATHE LOADED FLAG TO 0 (NOT LOADED)
//Khai báo các m ng đi m
POINT KHO_CHUA_NAP[10]
POINT KHO_CHUA_THAN[10]
POINT KHO_CHUA_BR1[10]
POINT KHO_CHUA_BR2[10]
POINT LATHE_THAN[20]
XONGBR = 0
J=1 //Bi n ch n Pallet đ load ch ng trình cho đúng th t ế ươ
//N u J=1 thì load n p h p cho Pallet 01ế
//N u J=2 thì load thân h p cho Pallet 02ế
//N u J=3 thì load các bánh răng cho Pallet 01ế
PRINTLN "SET OUTPUTS TO ZERO"
FOR K = 1 to 16
WRITEO K,0
NEXT
SPEED 200 //INITIAL ROBOT CONDITIONS
ACCEL 50
RELEASE
PMOVE KHO_CHUA_THAN[5] // Ch tr c tr m 1 ướ
//ETHERNET DECISION LOOP FOR WHICH ROUTINE TO EXECUTE
ETHERLOOP:
IF DataWaiting = 1 then
IF CimData$ = "NOPART,1" AND MANG_NAP<4 AND J=1 THEN
PRINTLN "MESSAGE = ",CimData$
DataWaiting = 0 // RESET ETHERNET DATA FLAG
CALL LOAD_NAP //G i ch ng trình con load n p ươ
PRINTLN "MESSAGE = ",CimData$
GOTO ETHERLOOP
ELSE IF CimData$ = "NOPART,1" AND MANG_THAN<4 AND J=2 THEN
PRINTLN "MESSAGE = ",CimData$
DataWaiting = 0 // RESET ETHERNET DATA FLAG
CALL LOAD_THAN // G i ch ng trình load thân ươ
GOTO ETHERLOOP
ELSE IF CimData$ = "NOPART,1" AND MANG_BR1<4 AND J=3 THEN
PRINTLN "MESSAGE = ",CimData$
DataWaiting = 0 // RESET ETHERNET DATA FLAG
CALL LOAD_BR // G i ch ng trình load các bánh răng ươ
GOTO ETHERLOOP
ELSE IF CimData$ = "NOPART,1" AND J=4 THEN
PRINTLN "MESSAGE = ",CimData$
DataWaiting = 0 // RESET ETHERNET DATA FLAG
CALL DIQUA // G i ch ng trình con DIQUA ươ
GOTO ETHERLOOP
ELSE IF CimData$ = "11-003,2" THEN
PRINTLN "MESSAGE = ",CimData$
DataWaiting = 0 // RESET ETHERNET DATA FLAG
CALL THAN_ILATHE // G i ch ng trình con c p phôi ươ
GOTO ETHERLOOP
ELSE
PRINTLN "MESSAGE FAILED =",CimData$
DataWaiting = 0 // RESET ETHERNET DATA FLAG
GOTO ETHERLOOP
ENDIF
ELSE IF INP(3) = 1 AND LOADED=1 AND XONGBR>0 THEN
// RECEIVED LATHE DONE SIGNAL
CALL THAN_OLATHE // G i ch ng trình con ươ THAN_OLATHE
ENDIF
GOTO ETHERLOOP
END
SUB LOAD_NAP
PRINTLN "LOADING NAP HOP GIAM TOC"
SPEED 200
PMOVE KHO_CHUA_NAP[5]
RETRY:
PMOVE KHO_CHUA_NAP[2]
SPEED 80
GRWIDTH 820
PMOVE KHO_CHUA_NAP[1]
GRASP
ZMOVE 300
ZTLMOVE -1000
SPEED 150
DIST=MEASURE()
PRINTLN "PART MEASURES = ",DIST
IF DIST < 600 THEN
RELEASE
MANG_NAP=MANG_NAP+1
IF MANG_NAP=5 THEN
PMOVE <HOME>
MANG_NAP=1
ENDIF
BRANCH RETRY:
ENDIF
//PMOVE KHO_CHUA_NAP[5]
SPEED 200
PMOVE KHO_CHUA_NAP[6]
PMOVE KHO_CHUA_NAP[8]
SPEED 50
PMOVE KHO_CHUA_NAP[7]
RELEASE
SPEED 200
PMOVE KHO_CHUA_NAP[8]
ProgComplete = 1 // TURN ON ETHERNET PALLET DONE FLAG
PMOVE KHO_CHUA_NAP[6]
PMOVE KHO_CHUA_NAP[5]
J=2 //Pallet ti p theo là load thânế
MANG_NAP=MANG_NAP+1
DELAY 100
RETURN
SUB LOAD_THAN
PRINTLN "LOADING THAN HOP GIAM TOC"
SPEED 200
PMOVE KHO_CHUA_THAN[5]
RETRY1:
PMOVE KHO_CHUA_THAN[2]
SPEED 80
GRWIDTH 820
PMOVE KHO_CHUA_THAN[1]
GRASP
ZMOVE 300
ZTLMOVE -1000
SPEED 150
DIST=MEASURE()
PRINTLN "PART MEASURES = ",DIST
IF DIST < 600 THEN
RELEASE
MANG_THAN=MANG_THAN+1
IF MANG_THAN=5 THEN
PMOVE <HOME>
MANG_THAN=1
ENDIF
BRANCH RETRY1:
ENDIF
//PMOVE KHO_CHUA_THAN[5]
SPEED 200
PMOVE KHO_CHUA_THAN[6]
PMOVE KHO_CHUA_THAN[8]
SPEED 50
PMOVE KHO_CHUA_THAN[7]
RELEASE
SPEED 200
PMOVE KHO_CHUA_THAN[8]
ProgComplete = 1 // TURN ON ETHERNET PALLET DONE FLAG
//PMOVE KHO_CHUA_THAN[6] // Wait at Conveyor
PMOVE LATHE_THAN[1]
J=3 //Pallet ti p theo là g p bánh răng ế
MANG_THAN=MANG_THAN+1
DELAY 100
RETURN
SUB LOAD_BR
PRINTLN "LOADING CAC BANHRANG CHO HOP GIAM TOC"
//C p bánh răng th hai lên pallet
SPEED 200
PMOVE LATHE_THAN[1]
PMOVE KHO_CHUA_BR2[5]
RETRY2:
PMOVE KHO_CHUA_BR2[2]
SPEED 80
GRWIDTH 150
PMOVE KHO_CHUA_BR2[1]
GRASP
ZMOVE 300
ZTLMOVE -1000
SPEED 150
DIST=MEASURE()
PRINTLN "PART MEASURES = ",DIST
IF DIST < 10 THEN
RELEASE
MANG_BR2=MANG_BR2+1
IF MANG_BR2=5 THEN
PMOVE <HOME>
MANG_BR2=1
ENDIF
BRANCH RETRY2:
ENDIF
SPEED 150
PMOVE KHO_CHUA_BR2[5]
SPEED 200
PMOVE KHO_CHUA_BR2[6]
PMOVE KHO_CHUA_BR2[8]
SPEED 60
PMOVE KHO_CHUA_BR2[9]
SPEED 20
PMOVE KHO_CHUA_BR2[7]
RELEASE
SPEED 200
PMOVE KHO_CHUA_BR2[8]
PMOVE KHO_CHUA_BR2[6]
// C p bánh răng th nh t lên Pallet
PMOVE KHO_CHUA_BR1[5]
RETRY3:
PMOVE KHO_CHUA_BR1[2]
SPEED 80