2020-12-24

本文详细介绍了3C行业高精度贴标签流程,涉及Epson爱普生工业机器人、MES系统、CCD拍照检测及多组飞达的协同工作,确保贴标精度达0.01mm。程序逻辑涵盖产品扫码、获取产品信息、机械手取标与贴附,以及异常处理等环节。
摘要由CSDN通过智能技术生成

Epson 爱普生工业机器人 机械手贴标机
项目背景: 3C行业贴标签 精度0.01 需要通讯客户端MES 在线切换型号 (4个吸标头,8组飞达) ---------------------------------------------------------走少有人走的路--------------------------------------------------------作者:meteor 转载请注明出处

  1. 程序大概流程理解:等待产品到位 》》 扫码枪扫码 》》 上位机上传条码到MES系统 》》 MES反馈产品信息 》》 获取产品机种》》获取标签数量、获取标签种类 》》机械手取标 》》CCD拍照 标签 标签OK/》》取标NG重新吸取》》 等待产品到位》》CCD拍照 产品 》》机械手接受上位机发送过来的相对偏移量》》机械手执行贴附动作》》动作结束
  2. 程序流程: main程序 主函数
  3.                      CDshell  主流程    整体逻辑框架
                         
                         GetLabelOne  取标子程序 
                         GetLabelOne  取标子程序
                        GetLabelOne  取标子程序
                        GetLabelOne  取标子程序
                        Initialize      复位子程序
                        NetWorldconnect  上位机通讯robot子程序
                        PLCnetTcp  PLC通讯robot子程序
                        speed_High  速度子程序
                        speed_Low  速度子程序
                        speed_Reset  速度子程序
    

Function CDShell
BAG:
L0 = False
L1 = False
L2 = False

			photo1 = False    ''拍照标签 OK NG 标志 
			photo2 = False   ''拍照标签标志
			photo3 = False   ''拍照标签标志
			photo4 = False   ''拍照标签标志
			
			flag = False  ''产品NG OK 标志
			
			If mark = False Then   ''如果不拍照  强制赋值robot坐标 防止撞机
				
				P303 = P203  ''右1贴标位
				P302 = P202  ''右2贴标位
				P301 = P201  ''右3贴标位
				P300 = P200  ''右4贴标位
				
			EndIf
					
											
											
											
	GetLabel(1) = 0   '' 随机标头 取随机飞达
	GetLabel(2) = 0
	GetLabel(3) = 0
	GetLabel(4) = 0
	
	
	
	If huiliutf = True Then    ''使用 回流复检
		
		               ''CZ(P999) = SafetyHeight
           CZ(P999) = CZ(P4)
           Move P999
           Move P4

			
	    Wait Sw(3) = On       ''等待产品到位
           If mark = True Then   ''回流复检判断
            P999 = RealPos           ''提升安全高度
       ''回到回流复检点
           Rs232Sign = 1
           ML$ = "C7"
           Wait Rs232Sign = 0
        EndIf


   If L0 = True Then                ''无标签,正常贴
   	       P999 = RealPos           ''提升安全高度
           ''CZ(P999) = SafetyHeight
           CZ(P999) = CZ(P2)
           Move P999
           Move P2             ''回到取料过度点
		If mark = True Then   ''上位机发送型号  切换对于型号的 拍照位置 贴标位置   上位机发送信息 获取 标头对应得飞达
           Rs232Sign = 1
           ML$ = "C6"
           Wait Rs232Sign = 0
        EndIf
	ElseIf L1 = True Then           ''标签正确,过站
	       P999 = RealPos           ''提升安全高度
           ''CZ(P999) = SafetyHeight
           CZ(P999) = CZ(P2)
           Move P999
           Move P2             ''回到取料过度点
	       On 5  ''完成本件
           Wait 0.2
           Off 5  ''完成本件
           GoTo BAG
	
	ElseIf L2 = True Then           ''标签错误,报警过站
	       P999 = RealPos           ''提升安全高度
           ''CZ(P999) = SafetyHeight
           CZ(P999) = CZ(P2)
           Move P999
           Move P2             ''回到取料过度点
	       On 5  ''完成本件
	       On 4  ''报警
           Wait 0.2
           Off 5  ''完成本件
           Wait 0.2
           Off 4  ''报警
           GoTo BAG
	
	EndIf
	
	
EndIf


	
	If huiliutf = False Then   ''不使用 回流复检
	
	
	
	Jump P98  ''取料过度点
	
		
       ''回到取料过度点
		If mark = True Then   ''上位机发送型号  切换对于型号的 拍照位置 贴标位置   上位机发送信息 获取 标头对应得飞达
           Rs232Sign = 1
           ML$ = "C6"
           Wait Rs232Sign = 0
        EndIf
        
        
	EndIf
			
					
	GetLabel(1) = Val(GetLabel$) ''强制取标头 取飞达 选择number
	GetLabel(2) = 4              ''强制取标选 取飞达 择number
	GetLabel(3) = 5              ''强制取标选 取飞达 择number
	
	GetLabel(4) = 1              ''请勿改动  取打印机 没得选择取打印机 没得选择取打印机 没得选择
	If Val(Getxuanze1$) = 1 Then
	   xuanze1 = True
	 Else
	   xuanze1 = False
	EndIf
	If Val(Getxuanze2$) = 1 Then
	   xuanze2 = True
	 Else
	   xuanze2 = False
	EndIf
	If Val(Getxuanze3$) = 1 Then
	   xuanze3 = True
	 Else
	   xuanze3 = False
	EndIf
	If Val(Getxuanze4$) = 1 Then
	   xuanze4 = True
	 Else
	   xuanze4 = False
	EndIf


SafetyHeight = -80


	If xuanze1 = True Then
      Call GetLabelOne           ''右4取料位判断
      PICKNG1 = 0
    EndIf
    
    If xuanze2 = True Then
      Call GetLabelTwo         ''右3取料位判断
      PICKNG2 = 0
    EndIf
    
    If xuanze3 = True Then
      Call GetLabelThree       ''右2取料位判断
      PICKNG3 = 0
    EndIf
    
SafetyHeight = -50             ''取 打印机 高度抬起来            
            
    If xuanze4 = True Then
      Call GetLabelFour        ''右1取料位判断
      PICKNG4 = 0
    EndIf
    


    
    
    ''''''''''''''''''''''''''''''''下相机取料拍照4次 4个标头  
    ''''''''''''''''''''''''''''''''下相机取料拍照4次 4个标头                    
    '''''''''''''''''''''''''''''''''
    ''                                                             如果标签拍照NG  吐料  重新吸取   

  NGqubiao4: ''右1
            P999 = RealPos
            CZ(P999) = SafetyHeight
            Move P999
                                                        
      If xuanze4 = True Then
               P999 = P10
               CZ(P999) = SafetyHeight
               Arc P150, P999
               Move P10
        If mark = True Then
                 Rs232Sign = 1
                 ML$ = "C1"
                 Wait Rs232Sign = 0
                 Print "down mark 1 end"
        
           If photo1 = False Then
       
       	         Jump P1
       	         Off 13 ''打开标头4真空
       	         Wait 0.4
                 On 9 ''打开标头4气缸
                 Wait 0.4
                 Off 9


       	      ''Call GetLabelFour    ''吸打印机标签NG 后 取消重吸动作  直接吐标  把产品 流下去
       	      ''GoTo NGqubiao4
       	      
       	      Off 10     ''真空1
        Off 11     ''真空2
        Off 12     ''真空3
        Off 13     ''真空4 
        
                              On 6      ''气缸1动作
        On 7      ''气缸2动作
        On 8      ''气缸3动作
        On 9      ''气缸4动作
        
        Wait 0.4
                    Off 6      ''气缸1动作
        Off 7      ''气缸2动作
        Off 8      ''气缸3动作
        Off 9      ''气缸4动作
        
        ''等待产品到位   流下去
        Print "打印机标签拍照NG等待产品到位流下去"
            Wait Sw(3) = On   ''等待产品到位              
            
            
       	      GoTo hhhhhhh
           EndIf
        EndIf
      EndIf
    
        
  NGqubiao3: ''右2
        
    If xuanze3 = True Then
             Move P11 ''下相机拍照2   标头2  右2
        If mark = True Then
               Rs232Sign = 1
               ML$ = "C2"
               Wait Rs232Sign = 0
               Print "down mark 2 end"
            If photo2 = False Then
                  Jump P1
       	          Off 12 ''打开标头3真空
       	          Wait 0.4
                  On 8 ''打开标头3气缸
                  Wait 0.4
                  Off 8
                  

       	       Call GetLabelThree
       	       GoTo NGqubiao3
            EndIf
               	               
         EndIf

    EndIf
        
    
NGqubiao2: ''右3

  If xuanze2 = True Then
           Move P12  ''下相机拍照3  标头3 右3
       If mark = True Then
            Rs232Sign = 1
            ML$ = "C3"
            Wait Rs232Sign = 0
            Print "down mark 3 end"
       	 If photo3 = False Then
       
       	       Jump P1
       	       Off 11 ''打开标头2真空
       	       Wait 0.4
               On 7 ''打开标头2气缸
               Wait 0.4
               Off 7
               

              Call GetLabelTwo
              GoTo NGqubiao2
         EndIf
       EndIf
   EndIf
        	        
 
 NGqubiao1: ''右4
        
       If xuanze1 = True Then
             Move P13        ''下相机拍照4  标头4  右4
          If mark = True Then
              Rs232Sign = 1
              ML$ = "C4"
              Wait Rs232Sign = 0
    	    If photo4 = False Then
                Jump P1
                Off 10 ''打开标头1真空
                Wait 0.4
                On 6 ''打开标头1气缸
                Wait 0.4
                Off 6
             


                Call GetLabelOne
                GoTo NGqubiao1
             EndIf
           EndIf
              Print "down mark 4 end"
        EndIf

           Jump P5
    
   chanpinNG:
           
            Print "等待产品到位"
            Wait Sw(3) = On   ''等待产品到位              
            Print "PLC通知产品已到位"
            Wait 0.3
            Print "up mark 1 end"       ''拍 产品NG 
            
       If mark = True Then
           Rs232Sign = 1
           ML$ = "CP22"
           Wait Rs232Sign = 0
       EndIf
        
        
       If flag = False Then
       	
        	On 5  ''完成本件
            Wait Sw(3) = Off   ''等待产品到位
            Wait 0.3
            Off 5  ''完成本件
            Wait 0.3
          
            P999 = RealPos
            CZ(P999) = SafetyHeight
            Move P999
           
       	    GoTo chanpinNG
       	 
       EndIf
        
        
   



   If xuanze4 = True Then


        Print "贴附 右1 start"

           
           Jump P303
           On 1
           'Wait 0.5
           On 9 ''气缸
           Call speed_mid
           Wait 0.6

           Go P303
         
           Move P303 -Y(60)
           Call speed_high123
           Off 13 ''关真空
           Wait 0.6
           Off 1 ''气缸
           Off 9 ''气缸
           Print "贴附 右1 end"
           
     EndIf
           
           

           
       If xuanze3 = True Then
           	
           
           Print "贴附 右2 start"
                       ''P999 = RealPos           ''提升安全高度
           CZ(P999) = SafetyHeight
           Move P999
           P999 = P302              ''运动取料点上方安全高度
          CZ(P999) = SafetyHeight
           Move P999
           On 8 ''气缸
           
           Jump P302 LimZ -40
           
           Wait 0.6

           
           Off 12 ''关真空
           Wait 0.6
           Off 8 ''气缸
           Print "贴附 右2 end"
           
       EndIf

      If xuanze2 = True Then


           Print "贴附 右3 start"

           On 7 ''气缸
           
           Jump P301 LimZ -40
           
           
           Wait 0.6
           
           Off 11 ''关真空
           Wait 0.6
           Off 7 ''气缸
           Print "贴附 右3 end"
           
      EndIf


      If xuanze1 = True Then
            Print "贴附 右4 start"

           On 6 ''气缸
           
           Jump P300 LimZ -40
           
           Wait 0.6
           
           Off 10 ''关真空
           Wait 0.6
           Off 6 ''气缸
           Print "贴附 右4 end"
           
        EndIf
        
 hhhhhhh:
        On 5  ''完成本件
        
        Call speed_high
        
         P999 = RealPos           ''提升安全高度
           ''CZ(P999) = SafetyHeight
           CZ(P999) = CZ(P2)
           Move P999
           
           
        Move P2 ''回到取料过度点



 Wait Sw(3) = Off   ''等待产品到位

 Off 5  ''完成本件


 Fend
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值