Commessa 2056-22 ======= station 26 Rivetting – RR2 – Precommissioning reminder scope: testing & implementation rivetting & camera application robot Fanuc ArcMate 120iD PL25kg – E185185 Settings Comunication Profinet (Bollhoff) Hw: PN board ]084 – Single channel ==== controller side Sw: 1A05B-2600-S523 ! PROFINET PHOENIX-CONTACT Comunication Ethernet (Keyence) Hw: Controller motherboard JD38B Port #2 Sw: 1A05B-2600-R648 ! User Socket Msg DCS: Cartesian position check No_5 Active Conveyor No_7 Not Active RR1 interference No_9 Active Work area User model/tool: To be done Tool 1 – Rivetnut Restricted Restricted Tool 7 camera – not used Payload data mass - kg center X – cm center Y – cm center Z – cm inertia X – kgfcms^2 inertia Y – kgfcms^2 inertia Z – kgfcms^2 Robot mapping DI/DO/GI/GO # range 1_DI 001-832 2_DI 833-2048 1_DO 001-256 2_DO 257-2048 ---10_GI 11_GI 12_GI 13_GI 14_GI 15_GI 16_GI 17_GI User alarm [4] [5] [6] [7] 24.6 12 -0.1 -0.2 2.32 3.00 1.37 rack 99 0 99 0 slot 1 0 1 0 st 1 0 1 0 num 0 99 99 0 99 99 99 99 0 1 1 0 1 1 1 1 0 97 113 0 223 248 257 273 0 16 16 0 16 16 16 16 Stroke/mm H1 Stroke/mm H2 Force/Nm H1 -- W1 Force/Nm H1 -- W2 Force/Nm H2 -- W1 Force/Nm H2 -- W2 label reference 91/97 ---Outside value - CAM Outside value - J1 Outside value- skip - Touch control skip Phoenix ==== Plc Next Enginering Files loaded on robot for PN comunication performed with PLCnext engineer v2023.0 TIC.zip DEV_CONFIG.dt slot[1].name = pn-pn-coupler-1 slot[1].station_id = 1 slot[1].di_byte = 104 slot[1].do_byte = 32 slot[1].alias = pn-pn-coupler-1 Bollhoff – rivetting machine IP RR2 IP Bollhoff 199.201.6.57 199.201.6.58 – pnpn coupler === Map IO === input 104 bytes / Output 32 bytes Coupler ---- 6ES7 158-3AD10-0XA0 === Fw ver 4.0 --- Gsdml ver 2.32 Coupler sheet Keyence – guided robot Sw: CV-X serie Termonal v5.8 Object detection with ShapeTrax3 tool Eth - IP robot Eth - IP Keyence 199.202.6.202 199.202.6.222 Files.pc loaded on robot controller for Eth comunication (Keyence) 1 Keyencesetup 9 Key_p2j 2 Key_add_ufrm 10 Key_recv_val 3 Key_checkpos 11 Key_selconf 4 Key_close 12 Key_send_cmd 5 Key_connrct 13 Key_set_ext 6 Key_get_conf 14 Key_set_ip 7 Key_get_path 15 Key_set_var 8 Key_get_var 16 Key_wait_cmd alarms srvo xxx OVC alarm Host 151 msg buffer UTRECVSTRF – LINE 932 Receive value error 1 0essed $FBP2_DIAG.$FW_VERSION === v2.7.2 Programming – MAIN - PNS0001 /MN 1: ! ***** SIMPRO SPA ***** ; 2: ! **** release 4_0 ***** ; 3: ! *** Rivetting test *** ; 5: LBL[1] ; start label 7: PAYLOAD[1:Rivetnut] ; initialization 8: //CALL RESET_OUT ; reset out 9: DO[17:OFF:2RqLoad]=OFF ; reset out 10: DO[19:OFF:H2Home]=OFF ; reset out 11: CALL RIVET_INIT ; initialization 12: ; 13: IF DO[50:OFF:Hom]=OFF,CALL BACKHOME ; 14: ; 15: IF R[121:EN_Riv_1]=1,CALL AATEST_CAM1 ; routine 16: IF R[122:EN_Riv_2]=1,CALL AATEST_CAM2 ; routine 17: IF R[123:EN_Riv_3]=1,CALL AATEST_CAM3 ; routine 18: ; 19:J PR[1:Home] 75% FINE ; 20: //DO[1:ON :EM_OF]=OFF ; safety active 21: //DO[2:ON :Air]=OFF ; general air 22: DO[17:OFF:2RqLoad]=OFF ; request of loading 23: DO[19:OFF:H2Home]=OFF ; position free 4 to be loaded 24: JMP LBL[1] ; loop 25: ; /POS /END Programming – Rivet 123456 example 3: ! *** Rivetting test *** ; 4: ; 5: LBL[1] ; 6: PAYLOAD[1:Rivetnut] ; set paylod 7: DO[17:OFF:2RqLoad]=OFF ; reset output 8: DO[19:OFF:H2Home]=OFF ; reset output 9: //CALL RESET_OUT ; reset output 10: //CALL RIVET_INIT ; initialization 11: ; 12: IF DO[50:OFF:Hom]=OFF,CALL BACKHOME ; 13: ; 14: LBL[2] ; 15: OVERRIDE=75% ; 16: UTOOL_NUM=1 ; 17: ! Avvicinamento ; 18:J PR[20:Appr] 75% CNT100 ; common ergister 19: ; 20: CALL B2_LOADING ; macro load rivet head 2 21: ; 22: LBL[10] ; 23:L P[2] 1250mm/sec CNT75 ; 24: COL DETECT ON ; 25: COL GUARD ADJUST 125 ; 26: DO[19:OFF:H2Home]=OFF ; OFF Ho,e head 2 27: ; 28: LBL[12] ; 29: WAIT DI[19:OFF:H2 LOCKED]=OFF ; Check signal 30: ; 31: ! *** Cam Pos 1 *** Z 20 ; 32: PR[51,3:pCam1]=R[93:CamZ] ; adj height --- 20 33:L PR[51:pCam1] 200mm/sec FINE ; pos cam 1 34: WAIT .20(sec) ; 35: ; 36: ! * * * Start * * * ; 37: CALL KEY_CONNECT ; CAMERA CONNECTION 38: ! * * * PG 012 * * * ; 39: CALL KEY_SEND_CMD('PW',1,12) ; PROGRAM LOADED 12 40: WAIT .05(sec) ; 41: CALL KEY_WAIT_CMD('PW',18) ; QUEUE R18 42: ; 43: CALL KEY_SEND_CMD('T1') ; trigger co0mmand 44: WAIT .05(sec) ; 45: CALL KEY_WAIT_CMD('T1',19) ; trigger result on R19 46: ; 50: CALL KEY_RECV_VAL(20) ; \ Data correction frm R20 51: ; 52: CALL KEY_CLOSE ; Close connection 53: //PAUSE ; 54: ! * * * End * * * ; 55: ; 56: ! * * * Cam Limits * * * ; 57: R[78:@LBLCam]=12 ; Check cam value +-1 58: //IF (R[20:X]<913.75 OR R[20:X]>915.75),JMP LBL[95] ; 59: //IF (R[21:Y]<129.25 OR R[21:Y]>121.25),JMP LBL[95] ; 60: ; 61: PR[41,1:pRiv1K]=R[20:X] ; correction 62: PR[41,2:pRiv1K]=R[21:Y] ; correction 63: PR[41,3:pRiv1K]=(-140) ; initial z 64: PR[41,4:pRiv1K]=PR[21,4:Riv1] ; orientation 65: PR[41,5:pRiv1K]=PR[21,5:Riv1] ; orientation 66: PR[41,6:pRiv1K]=PR[21,6:Riv1] ; orientation 68:L PR[41:pRiv1K] 500mm/sec FINE ; corrwcted pnt 69: ! Master pos ; 70: //PR[21,3:Riv1]=(-140) ; master pos 71: //L PR[21:Riv1] 75mm/sec FINE ; 4 setting only 72: WAIT R[131] ; 73: WAIT DI[19:OFF:H2 LOCKED]=OFF ; 74: PAUSE ; 75: ; 76: IF (R[53:DRYCYC]=1) THEN ; dry cycle 77: WAIT 2.60(sec) ; 78: ENDIF ; 79: IF R[53:DRYCYC]=1,JMP LBL[14] ; dry cycle 80: ; 81: ! *** UnLock *** ; 82: PR[41,3:pRiv1K]=(-158) ; rivet inside hole 83:L PR[41:pRiv1K] 75mm/sec FINE ; 84: ! *** Check compensation *** ; 85: ! *** Force push less 2mm *** ; 86: ! *** Check compensation *** ; 87: IF (!DI[16:OFF:H2 COMP OK]),JMP LBL[95] ; check input 88: ; 89: DO[21:OFF:2Unlock cmp]=ON ; head 2 locked command 90: WAIT DI[19:OFF:H2 LOCKED]=ON ; head 2 locked input 92: ! *** SKIP *** ; 93: SKIP CONDITION R[73:Trq*3]>3 ; torque &/or comp skip 94: ; 95: PR[41,3:pRiv1K]=(-173.75) height linear sensor final target 96:L PR[41:pRiv1K] 45mm/sec FINE Skip,LBL[14],PR[91:Skp1]=LPOS ; 97: ; 98: R[77:@LBLTrq]=11 ; 99: WAIT R[131] ; 100: JMP LBL[97] ; torque error 101: ; 102: LBL[14] ; 103: WAIT 2.00(sec) ; 104: CALL B2_SETTING ; routine for setting 105: WAIT .20(sec) ; 106: ; 107: ! Uscita tool Z -30 ; 108:L PR[41:pRiv1K] 75mm/sec FINE Tool_Offset,PR[60:T*0 ] ; 109: WAIT .05(sec) ; 110: DO[21:OFF:2Unlock cmp]=OFF ; reset compliance 111: ; 112: LBL[14] ; 113:L PR[41:pRiv1K] 500mm/sec CNT75 Tool_Offset,PR[63:TOfs*3] ; 114: ; 115: ! Uscita tool Z 00 ; 116:L P[3] 750mm/sec CNT75 ; 117: COL DETECT OFF ; 118: ; 119: LBL[20] ; 120:L P[4] 1250mm/sec CNT100 ; 121: CALL B2_LOADING ; advance loading 122: //DO[19:OFF:H2Home]=OFF ; 123: ; 124: LBL[36] ; 125: ; 126: LBL[70] ; 127: WAIT .25(sec) ; 128: //J PR[1:Home] 75% FINE ; 129: ; 130: FOR R[30:*Reserv]=51 TO 69 ; reset out 131: DO[R[30]]=OFF ; 132: ENDFOR ; 133: WAIT R[131] ; 134: //JMP LBL[2] ; loop 135: JMP LBL[99] ; exit 136: !END ;b no frame used §§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§§ Control System Design Ph. +39 0119179 311 | Google Chat filip po.defilip pi@simp ronet.co m Simpro S.p.A. | via Torino 454, 10032 Brandizzo (TO), Italy www.simpro.it | map on Google1 1