基于HALCON的激光打標機讀碼_第1頁
基于HALCON的激光打標機讀碼_第2頁
基于HALCON的激光打標機讀碼_第3頁
基于HALCON的激光打標機讀碼_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、基于HALCON的激光打標機讀碼    摘要:激光加工在世界范圍內(nèi)得到了廣泛的應用, 印刷電路板(PCB)行業(yè)亦如此,很多產(chǎn)品每一快PCB板上打上唯一的序列號以進行標記以便于在后續(xù)工序中對產(chǎn)品進行辨識,這種序列號往往為二維碼或者條碼。在激光加工具有高精度高效率的同時采用機器視覺對PCB板進行定位以及其打標內(nèi)容的讀取,使得這種方式具有極高的效率。 關鍵詞:機器視覺 PCB 讀碼 激光 中圖分類號:TP391 文獻標識碼:A 文章編號:1007-9416(2013)03-0085-02 隨著整個社會電子化程度的不斷加深,越來越高的需求也帶來了PCB行業(yè)的飛速

2、發(fā)展,對其生產(chǎn)率的要求也是越來越高,最具代表性的就是以表面貼片技術(SMT)為主導的PCB制造業(yè)1。如今整條SMT工藝生產(chǎn)線已經(jīng)完全實現(xiàn)了自動化,在實現(xiàn)這種自動化的過程當中,需要對每一塊PCB板進行一個唯一的標識,具有快速高效等優(yōu)勢的激光打標機能很好地滿足這種需求以適應SMT行業(yè)的自動化。 1 典型激光打標機的基本結構 激光打標機結構如圖1所示:7 整個設備軟件基于Windows XP平臺,采用Visual Studio2005作為開發(fā)工具,機器視覺使用HALCON9.0所提供的 C+庫所提供的算子完成。硬件部分使用運動控制卡以及數(shù)字IO對電機以及氣動元件進行控制,機器視覺部分的硬件主要是工業(yè)

3、相機、圖像采集卡、光源以及光源控制器等構成。工作流程簡化為PCB板由傳送帶上料之后被固定住,再由XY工作臺根據(jù)所輸入的坐標將PCB板送到相應的點,由激光器打標,之后再由工業(yè)相機讀取所打內(nèi)容。 2 HALCON以及其與Visual C+(VC+)的混合開發(fā)環(huán)境 2.1 HALCON簡介以及其特點 HALCON是德國MVtec公司開發(fā)的一套完善的標準的機器視覺算法包它靈活的架構便于機器視覺、醫(yī)學圖像和圖像分析應用的快速開發(fā)。在歐洲以及日本的工業(yè)界已經(jīng)是公認具有最佳效能的Machine Vision軟件。HALCON有一千多個各自獨立的函數(shù),以及底層的數(shù)據(jù)管理核心構成。其中包括了各類濾波、色彩以及幾

4、何、數(shù)學轉換、形態(tài)學計算分析、校正、分類辨識、形狀搜尋等等基本的幾何以及影像計算功能。應用涵蓋醫(yī)學、遙感探測、監(jiān)控到工業(yè)上的各類自動化檢測。HALCON支持Windows,Linux和Mac OS X操作系統(tǒng)。整個函數(shù)庫可以用C,C+,C#,Visual Basic和Delphi等多種普通編程語言訪問。具有很好的硬件兼容性。 2.2 HALCON與VC+混合開發(fā)軟件的基本流程 HALCON和Visual C+的混合編程是將Visual Studio作為整個視覺系統(tǒng)應用程序開發(fā)環(huán)境,通過函數(shù)調(diào)用使用HALCON圖像處理函數(shù)庫實現(xiàn)視覺系統(tǒng)核心處理功能,從而完成讀碼工作。程序設計流程為: (1)利用

5、HDevelop環(huán)境檢查分析圖像,建立視覺讀碼計算模型,開發(fā)視覺讀碼核心算法代碼,對程序功能進行驗證; (2)由HDevelop導出視覺測量程序代碼,生成C+代碼; (3)配置HALCON和VC+混合編程開發(fā)環(huán)境; (4)在VC+環(huán)境中通過程序語言的功能來開發(fā)整個讀碼程序以及界面的構建,完成程序功能的驗證。 (5)編譯、鏈接生成應用程序。 要在VC+中調(diào)用HALCON函數(shù)空,首先要在VC+中配置相應的交互編程環(huán)境:在project->settings的Link屬性頁中添加halconcpp.lib;在project->settings的C/C+屬性頁Preprocessor中添加目

6、錄$(HALCONROOT)include,$(HALCONROOT)includecpp;在project->settings的Link屬性頁input下拉菜單中添加路徑$(HALCONROOT)lib$halconarch。 3 軟件開發(fā) HALCON/C+接口提供了兩種不同方式在C+中調(diào)用HALCON函數(shù)庫:子程序調(diào)用法和面向?qū)ο笳{(diào)用法。子程序調(diào)用法就是在VC+環(huán)境下直接調(diào)用HALCON算子。面向?qū)ο笳{(diào)用法則是通過一系列類來調(diào)用HALCON算子。C+作為一種面向?qū)ο蟮恼Z言,在使用是通常傾向于使用面向?qū)ο蟮姆绞絹碚{(diào)用,因此必須對HALCON庫中的算子進行封裝。 在該讀碼系統(tǒng)中,圖像采

7、集與現(xiàn)實主要在工業(yè)攝像機提供的二次開發(fā)函數(shù)庫的基礎上,采用VC+進行測量圖像采集與顯示功能的開發(fā),實現(xiàn)工業(yè)相機參數(shù)控制、測量圖像采集與顯示等功能。而讀碼主要是通過采集到的圖像進行讀取,主要包括感興趣區(qū)域ROI(Region of Interest)和讀碼函數(shù)兩個功能模塊2。 3.1 HALCON C+庫所提供的讀碼相關算子 利用讀取二維碼的算子所寫程序如下: create_data_code_2d_model(QR Code,DataCodeHandle); set_data_code_2d_param(DataCodeHandle,default_parameters,enhanced_re

8、cognition); find_data_code_2d(Image,SymbolXLDs,DataCodeHandle,ResultHandles,DecodedDataStrings); 所用到的在HALCON中為類型HObject的圖像文件即通過相機所提供的API函數(shù)所提供。 在該激光打標機中,由激光機打完條碼就立刻用工業(yè)相機讀取所打的二維碼值,PCB板由打標機上的夾具固定之后送到所要求的特定點進行打標,而每次打標點在相機視野中的像素坐標是固定的,因而在去讀二維碼時不用在整個相機視野中對二維碼進行查找,只需在打標點在相機視野附近的一個區(qū)域內(nèi)進行讀碼,這樣做可以在很大程度上提升讀碼速度并

9、且防止誤讀。因而在讀碼前應在傳入的HObject類型的圖像數(shù)據(jù)截取以打標點在相機視野中像素點為中心,適當大于所打條碼所占范圍區(qū)域讀碼,即獲取所需要的ROI,利用算子gen_rectang2、reduce_domain可實現(xiàn)該功能。即在所傳入的HObject類型圖像文件中截取所需要的區(qū)域34。 3.2 面向?qū)ο蟮拈_發(fā)方式 首先要將HALCON的C+庫中所提供的算子封裝成類,創(chuàng)建一個名為CUserHalcon的類, class CUserHalcon public: CUserHalcon(); CUserHalcon(); BOOL Read2DCode_(const HObject Image

10、,char* DecodeDataString); private: inline BOOL CheckHalconValue(int errcode) return errcode=H_MSG_TRUE; /通過HALCON算子的返回值判斷視覺系統(tǒng)運行是否正常 int m_halcon_errcode; ; BOOL CUserHalcon:Read2DCode(const HObject Image,char* DecodeDataString) HLong DataCodeHandle,ResultHandle;HObject SymbolXLDs,Rectangle,ImageRedu

11、ced; HTuple row,column,phi,length1,length2; m_halcon_errcode=gen_rectangle2(&Rectangle,row,column,phi,length1,length2); /生成所要讀碼的舉行區(qū)域 m_halcon_errcode=reduce_domain(Image,Rectangle,&ImageReduced); /將相機傳入圖片對象對應的舉行區(qū)域截出用以讀碼 m_halcon_errcode=create_data_code_2d_model(QRCode,DataCodeHandle); m_hal

12、con_errcode=set_data_code_2d_param(DataCodeHandle,default_parameters,enhanced_recognition); m_halcon_errcode=find_data_code_2d(ImageReduced,SymbolXLDs,DataCodeHandle,ResultHandles,DecodedDataStrings); return CheckHalconValue(m_halcon_errcode); 開發(fā)基于MFC的應用的時候,只需添加一個CUserHalcon類的全局對象halcon即可調(diào)用其成員函數(shù),實現(xiàn)讀

13、碼功能。如果需要用到HALCON C+庫中其他算子的功能,如讀一維碼,則可把相應的算子封裝在在CUserHalcon類中,以public成員函數(shù)的形式提供出來。與直接調(diào)用HALCON算子相比,減少了大量繁瑣的參輸入,提高了代碼的復用率,通過不斷將其他功能的算子封裝進該類,也能方便地用在其他程序上,這能極大地提高軟件開發(fā)的效率,體現(xiàn)出了C+作為面向?qū)ο笳Z言的優(yōu)勢5。 讀取條碼只是該設備的功能之一,最終完成的界面讀碼狀態(tài)以及顯示部分如圖2所示,讀碼的在讀碼的同事用GDI函數(shù)對讀碼位置以及范圍在軟件運行時進行了動態(tài)的標示,能更加直觀地查看設備的讀碼狀態(tài)。 4 結語 采用機器是覺得方法,設計開發(fā)的讀碼系統(tǒng)由硬件和軟件兩部分組成,激光打標機在對PCB板打標之前需利用工業(yè)相機捕捉PCB板上的MARK點以進行定位以及校準,實現(xiàn)該功能即可將學習MARK點模板,尋找MARK點模板的相關函數(shù)封裝進CUserHalcon類中,便于使用。采用這種方案通過機器視覺來定位以及讀取條碼,盡可能大的發(fā)揮了相機的作用。將打標和讀碼無縫結合起來。 參考文獻 1周德儉.SMT組裝質(zhì)量檢測中的AOI技術與系統(tǒng)J.電子工業(yè)專用設備,2002(6):87-91. 2宿鳴明.電路板元器件的檢測與識別D.大連:大連理工大學,2005. 3MVTec Software GmbH. H

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論