技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國(guó)傳動(dòng)網(wǎng) > 技術(shù)頻道 > 應(yīng)用方案 > 【正運(yùn)動(dòng)】機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)應(yīng)用例程(六)液位檢測(cè)

【正運(yùn)動(dòng)】機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)應(yīng)用例程(六)液位檢測(cè)

時(shí)間:2021-07-06 17:07:31來(lái)源:深圳市正運(yùn)動(dòng)技術(shù)有限公司

導(dǎo)語(yǔ):?在傳統(tǒng)的瓶裝液體灌裝工序中,其灌裝后的液位高度檢測(cè)通常采用的是人眼去目測(cè)液位高度,生產(chǎn)效率低下,且會(huì)產(chǎn)生較大誤差。隨著生產(chǎn)的規(guī)模的不斷擴(kuò)大,因此對(duì)瓶裝液體的液位高度全自動(dòng)檢測(cè)的需求越來(lái)越大。

正運(yùn)動(dòng)

  順應(yīng)現(xiàn)代生活的不斷發(fā)展,瓶裝液體成為人們?nèi)粘I钪胁豢苫蛉钡南M(fèi)品。它的包裝中產(chǎn)品凈含量是否達(dá)標(biāo)是檢測(cè)產(chǎn)品質(zhì)量的一個(gè)重要指標(biāo),對(duì)于同一規(guī)格的包裝瓶中,其液位高度直接反映了瓶中液體的凈含量。

  在傳統(tǒng)的瓶裝液體灌裝工序中,其灌裝后的液位高度檢測(cè)通常采用的是人眼去目測(cè)液位高度,生產(chǎn)效率低下,且會(huì)產(chǎn)生較大誤差。隨著生產(chǎn)的規(guī)模的不斷擴(kuò)大,因此對(duì)瓶裝液體的液位高度全自動(dòng)檢測(cè)的需求越來(lái)越大。

  目前市面上已有光電傳感器檢測(cè)、超聲波檢測(cè)和機(jī)器視覺(jué)液位檢測(cè)等液位檢測(cè)方法,其中機(jī)器視覺(jué)液位檢測(cè)是一種非接觸式、無(wú)損的檢測(cè)方法。因此它具有效率高、檢測(cè)精度高、設(shè)備維護(hù)簡(jiǎn)單等優(yōu)點(diǎn),被廣泛應(yīng)用于液位檢測(cè)項(xiàng)目中。

  本次課程我們將與大家一起分享機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)實(shí)現(xiàn)液位檢測(cè)的功能。

正運(yùn)動(dòng)

教學(xué)視頻

  一檢測(cè)原理梯形圖介紹

  液位檢測(cè):在機(jī)器視覺(jué)解決方案中,通常使用背向打光的方式將瓶?jī)?nèi)有液體的部分和沒(méi)有液體的部分加以區(qū)分,再計(jì)算出液體最高位與瓶底的距離即液位。檢測(cè)有顏色的液體通常使用普通背光源即可,如需檢測(cè)透明液體或瓶子上有字符或顏色干擾可使用穿透性較強(qiáng)的紅外背光。

  視覺(jué)算法:使用兩個(gè)直線測(cè)量器獲得瓶底和液位的數(shù)據(jù),再計(jì)算瓶底和液位的距離。使用形狀匹配結(jié)果作為直線測(cè)量器的補(bǔ)正源,使直線測(cè)量器跟隨產(chǎn)品移動(dòng)。

正運(yùn)動(dòng)

正運(yùn)動(dòng)

打光效果圖

  二軟件實(shí)現(xiàn)梯形圖介紹

  (一)軟件實(shí)現(xiàn)

  1.打開(kāi)ZDevelop軟件:打開(kāi)項(xiàng)目“基于形狀匹配的視覺(jué)定位”→在“global_variable.bas”文件中定義測(cè)量尺寸需要用到的全局變量。

  '----------------------------分割線-----------------------------------------

  '直線1測(cè)量參數(shù)數(shù)組,依次為中心cx、cy、w、h、angle、interp、sub_num、sub_width、filter_size、thresh、polor、select,都是圖像坐標(biāo)GLOBAL DIM d_meas_param1(12) 'd開(kāi)頭表示數(shù)據(jù)結(jié)構(gòu)

  '直線2測(cè)量參數(shù)數(shù)組,依次為中心cx、cy、w、h、angle、interp、sub_num、sub_width、filter_size、thresh、polor、select,都是圖像坐標(biāo)GLOBAL DIM d_meas_param2(12) 'd開(kāi)頭表示數(shù)據(jù)結(jié)構(gòu)

  '定義常用顏色變量,用于繪制圖形GLOBAL C_RED, C_GREEN, C_BLUE, C_YELLOWC_RED = RGB(255, 0, 0)C_GREEN = RGB( 0,255, 0)C_BLUE = RGB( 0, 0,255)C_YELLOW= RGB(255,255, 0)

  '創(chuàng)建模板時(shí)保存的直線1基準(zhǔn)區(qū)域位置向量1,x、y、angleGLOBAL DIM d_meas_base_v1(3)d_meas_base_v1(0) = 0d_meas_base_v1(1) = 0d_meas_base_v1(2) = 0

  '創(chuàng)建模板時(shí)保存的直線2基準(zhǔn)區(qū)域位置向量2,x、y、angleGLOBAL DIM d_meas_base_v2(3)d_meas_base_v2(0) = 0d_meas_base_v2(1) = 0d_meas_base_v2(2) = 0

  '直線1測(cè)量結(jié)果,依次為結(jié)果點(diǎn)stx、sty、endx、endyGLOBAL DIM d_meas_rst1(4)

  '直線2測(cè)量結(jié)果,依次為結(jié)果點(diǎn)stx、sty、endx、endyGLOBAL DIM d_meas_rst2(4)

  ''創(chuàng)建模板時(shí)保存的模板基準(zhǔn)點(diǎn),score、x、y、angle、scaleGLOBAL DIM d_match_base_rst(5)global dim d_meas_param(12)

  '定義ROI標(biāo)志變量,0-液位ROI,1-瓶底R(shí)OIGLOBAL DIM roi_flagroi_flag=0

  '定義形狀匹配模板ZVOBJECT shape_model

  '定義保存配模板標(biāo)志,1-已保存,0未保存GLOBAL DIM is_saveMod

  2.修改設(shè)計(jì)HMI界面。

正運(yùn)動(dòng)

  3.新建主界面按下【液位設(shè)置】按鈕時(shí)彈出的液位參數(shù)設(shè)置窗口“Set_Select”,并設(shè)計(jì)界面布局。

正運(yùn)動(dòng)

  4.關(guān)聯(lián)液位參數(shù)設(shè)置窗口“Set_Select”界面上的變量。

正運(yùn)動(dòng)

  5.在“draw.bas”文件中添加“液位Roi”和“瓶底R(shí)oi”根據(jù)鼠標(biāo)操作更新ROI位置的函數(shù)以及實(shí)時(shí)繪制Roi的函數(shù),并在自定義元件中關(guān)聯(lián)刷新函數(shù)和繪制函數(shù)。

  '-----------------分割線-------------------------'測(cè)量器繪制 ''''''''''''''''''''''''''''''''''''根據(jù)鼠標(biāo)操作更新Roi的位置GLOBAL SUB update_roi() if roi_flag=0 then '如果選擇設(shè)置液位ROI SET_REDRAW'全區(qū)域繪制 if (mouse_scan(21) = 1 )then '如果掃描到鼠標(biāo)按下操作 '根據(jù)鼠標(biāo)所在Roi的不同位置返回調(diào)整標(biāo)志 hit_pos = ZV_HMIADJRECT2(table(21), table(22), 11, -1) is_redraw = 1'繪圖標(biāo)志置1 endif

  if mouse_scan(21) = -1 then '如果掃描到鼠標(biāo)松開(kāi)操作 '如果鼠標(biāo)指在Roi1區(qū)域之外 if TABLE(21)<(TABLE(11)-TABLE(13)/2) or TABLE(21)>(TABLE(11)+TABLE(13)/2) or TABLE(22)<(TABLE(12)-TABLE(14)/2)or TABLE(22)>(TABLE(12)+TABLE(14)/2) then hit_pos=-1'調(diào)整標(biāo)志=-1 endif ZV_HMIADJRECT2(table(21), table(22), 11, hit_pos)'調(diào)整Roi1位置 is_redraw = 1 endif if (MOUSE_state(21)) then'如果鼠標(biāo)按下時(shí) ZV_HMIADJRECT2(table(21), table(22), 11, hit_pos)'調(diào)整Roi1位置 is_redraw = 1'繪圖標(biāo)志置1 endif if (1 = is_redraw ) then'如果繪圖標(biāo)志為1時(shí) is_redraw = 0'繪圖標(biāo)志置0 '將控件坐標(biāo)轉(zhuǎn)換到圖像坐標(biāo),并賦值給相應(yīng)變量 ZV_POSTOIMG(0, 1, 11, 31) d_meas_param1(0) = TABLE(31) d_meas_param1(1) = TABLE(32) d_meas_param1(2) = ZV_LENTOIMG(0, TABLE(13)) d_meas_param1(3) = ZV_LENTOIMG(0, TABLE(14)) d_meas_param1(4) = TABLE(15) set_base_roi()'設(shè)置基準(zhǔn)Roi數(shù)據(jù) SET_REDRAW'全區(qū)域繪制 endif else '否則選擇設(shè)置瓶底R(shí)OI SET_REDRAW'全區(qū)域繪制 if (mouse_scan(21) = 1 )then '如果掃描到鼠標(biāo)按下操作 '根據(jù)鼠標(biāo)所在Roi的不同位置返回調(diào)整標(biāo)志 hit_pos = ZV_HMIADJRECT2(table(21), table(22), 41, -1) is_redraw = 1'繪圖標(biāo)志置1 endif

  if mouse_scan(21) = -1 then '如果掃描到鼠標(biāo)松開(kāi)操作 '如果鼠標(biāo)指在Roi2區(qū)域之外 if TABLE(21)<(TABLE(41)-TABLE(43)/2) or TABLE(21)>(TABLE(41)+TABLE(43)/2) or TABLE(22)<(TABLE(42)-TABLE(44)/2)or TABLE(22)>(TABLE(12)+TABLE(14)/2) then hit_pos=-1'調(diào)整標(biāo)志=-1 endif ZV_HMIADJRECT2(table(21), table(22), 41, hit_pos)'調(diào)整Roi2位置 is_redraw = 1 endif if (MOUSE_state(21)) then'如果鼠標(biāo)按下時(shí) ZV_HMIADJRECT2(table(21), table(22), 41, hit_pos)'調(diào)整Roi2位置 is_redraw = 1'繪圖標(biāo)志置1 endif if (1 = is_redraw ) then'如果繪圖標(biāo)志為1時(shí) is_redraw = 0'繪圖標(biāo)志置0 '將控件坐標(biāo)轉(zhuǎn)換到圖像坐標(biāo),并賦值給相應(yīng)變量 ZV_POSTOIMG(0, 1, 41, 91) d_meas_param2(0) = TABLE(91) d_meas_param2(1) = TABLE(92) d_meas_param2(2) = ZV_LENTOIMG(0, TABLE(43)) d_meas_param2(3) = ZV_LENTOIMG(0, TABLE(44)) d_meas_param2(4) = TABLE(45) set_base_roi()'設(shè)置基準(zhǔn)Roi數(shù)據(jù) SET_REDRAW'全區(qū)域繪制 endif endif END SUB

正運(yùn)動(dòng)

  6.在“main.bas”文件中添加“Set_Select”窗口界面按下【測(cè)試】按鈕時(shí)響應(yīng)的函數(shù)并關(guān)聯(lián)動(dòng)作函數(shù)名。

  '液位設(shè)置界面按下測(cè)試按鈕時(shí)響應(yīng)的函數(shù)GLOBAL SUB btn_mea_test() '選擇補(bǔ)正源時(shí)先執(zhí)行定位檢測(cè) if(TABLE(110) = 1) then btn_loc_test() endif ZVOBJECT mr1,mr2,mr3,mr4,rst1,rst2,rst3,rst4,colorImg ZVOBJECT contlist, tsContlist, mat_rigid LOCAL show_rst '測(cè)量區(qū)域roi補(bǔ)正 if(TABLE(110) = 1 AND d_is_creModel = 1) then '如果使用補(bǔ)正源已經(jīng)開(kāi)啟且模板已經(jīng)創(chuàng)建 '計(jì)算剛性變換矩陣 ZV_GETRIGIDVECTOR(mat_rigid1,d_match_base_rst(1),d_match_base_rst(2),d_match_base_rst(3), d_match_rst(1), d_match_rst(2), d_match_rst(3)) '使用變換矩陣mat_rigid對(duì)輸入Roi1基準(zhǔn)向量進(jìn)行補(bǔ)正,補(bǔ)正后的向量存入開(kāi)始索引為0的TABLE中 ZV_VECTORCORRECT(mat_rigid1, d_meas_base_v1(0), d_meas_base_v1(1),d_meas_base_v1(2), 0) '將補(bǔ)正后的坐標(biāo)數(shù)據(jù)賦值給測(cè)量器區(qū)域變量 d_meas_param1(0) = TABLE(0) d_meas_param1(1) = TABLE(1) d_meas_param1(4) = TABLE(2) '使用變換矩陣mat_rigid對(duì)輸入Roi2基準(zhǔn)向量進(jìn)行補(bǔ)正,補(bǔ)正后的向量存入開(kāi)始索引為0的TABLE中 ZV_VECTORCORRECT(mat_rigid1, d_meas_base_v2(0), d_meas_base_v2(1),d_meas_base_v2(2), 0) '將補(bǔ)正后的坐標(biāo)數(shù)據(jù)賦值給測(cè)量器區(qū)域變量 d_meas_param2(0) = TABLE(0) d_meas_param2(1) = TABLE(1) d_meas_param2(4) = TABLE(2) endif '生成直線1測(cè)量的旋轉(zhuǎn)區(qū)域 ZV_MRGENLINE(mr1, d_meas_param1(0), d_meas_param1(1), d_meas_param1(2), d_meas_param1(3), d_meas_param1(4), 1, d_meas_param1(6), d_meas_param1(7)) '設(shè)置直線1的檢測(cè)參數(shù),包括濾波器尺寸,閾值,邊緣極性,邊緣位置 ZV_MRSETADV(mr1, d_meas_param1(8), d_meas_param1(9), d_meas_param1(10), d_meas_param1(11)) '生成直線2測(cè)量的旋轉(zhuǎn)區(qū)域 ZV_MRGENLINE(mr2, d_meas_param2(0), d_meas_param2(1), d_meas_param2(2), d_meas_param2(3), d_meas_param2(4), 1, d_meas_param2(6), d_meas_param2(7)) '設(shè)置直線2的檢測(cè)參數(shù),包括濾波器尺寸,閾值,邊緣極性,邊緣位置 ZV_MRSETADV(mr2, d_meas_param2(8), d_meas_param2(9), d_meas_param2(10), d_meas_param2(11)) '將矩形測(cè)量區(qū)域測(cè)量到的目標(biāo)直線1端點(diǎn)存儲(chǔ)到起始索引為61的TABLE ZV_MRLINE(mr1, grabImg, rst1, 61) '將直線1結(jié)果賦值給直線1結(jié)果變量 d_meas_rst1(0) = TABLE(61) d_meas_rst1(1) = TABLE(62) d_meas_rst1(2) = TABLE(63) d_meas_rst1(3) = TABLE(64) '將矩形測(cè)量區(qū)域測(cè)量到的目標(biāo)直線2端點(diǎn)存儲(chǔ)到起始索引為71的TABLE ZV_MRLINE(mr2, grabImg, rst2, 71) '將直線1結(jié)果賦值給直線2結(jié)果變量 d_meas_rst2(0) = TABLE(71) d_meas_rst2(1) = TABLE(72) d_meas_rst2(2) = TABLE(73) d_meas_rst2(3) = TABLE(74) '計(jì)算兩條直線的距離寬度 length1() '將灰度圖轉(zhuǎn)換成RGB圖像,用于繪制檢測(cè)結(jié)果圖像 ZV_GRAYTORGB(grabImg, colorImg) '繪制液位檢測(cè)和瓶底檢測(cè)的測(cè)量器 ZV_MEASURER(colorImg,mr1,ZV_COLOR(0,0,255),ZV_COLOR (0,255,0)) ZV_MEASURER(colorImg,mr2,ZV_COLOR(0,0,255),ZV_COLOR (0,255,0)) '繪制直線結(jié)果 ZV_LINE(colorImg, TABLE(61), TABLE(62), TABLE(63), TABLE(64), C_BLUE) ZV_LINE(colorImg, TABLE(71), TABLE(72), TABLE(73), TABLE(74), C_BLUE) if(TABLE(110) = 1) then'如果使用補(bǔ)正源 ZV_MARKER(colorImg,TABLE(4),TABLE(5),0,10,C_GREEN)'繪制匹配中心標(biāo)志點(diǎn) endif ZV_LATCH(colorImg,0)'顯示結(jié)果圖像 END SUB

正運(yùn)動(dòng)

  7.在“main.bas”文件中添加“Set_Select”窗口界面按下【返回主界面】按鈕時(shí)響應(yīng)的函數(shù)并關(guān)聯(lián)動(dòng)作函數(shù)名。

  '按下返回主界面按鈕時(shí)響應(yīng)的函數(shù)GLOBAL SUB Goto_Main()

  '設(shè)置鎖存通道0的大小,以適應(yīng)圖片元件大小 ZV_LATCHSETSIZE(0, HMI_CONTROLSIZEX(10,2), HMI_CONTROLSIZEY(10,2)) ZV_LATCHCLEAR(0)'清空鎖存通道0 ZV_LATCH(grabImg,0)'將圖片顯示到鎖存通道0中 HMI_CLOSEWINDOW(13)'關(guān)閉測(cè)量參數(shù)設(shè)置窗口 END SUB

正運(yùn)動(dòng)

  8.在“main.bas”文件中修改主界面按下【單次執(zhí)行】按鈕時(shí)響應(yīng)的函數(shù)并關(guān)聯(lián)動(dòng)作函數(shù)名。

  '主界面按下單次執(zhí)行按鈕時(shí)響應(yīng)的函數(shù)GLOBAL SUB btn_test()

  '采集一幀圖像 btn_grab '執(zhí)行測(cè)量測(cè)試部分代碼 btn_mea_test()

  END SUB

  三檢測(cè)原理梯形圖介紹

  (一)操作步驟

  查看運(yùn)行效果:將項(xiàng)目下載到仿真器中→運(yùn)行程序,測(cè)試程序運(yùn)行效果。→使用本地圖片→單次采集→學(xué)習(xí)模板→液位設(shè)置→使用補(bǔ)正源→單次執(zhí)行→結(jié)束

  (二)效果演示

正運(yùn)動(dòng)

  本文由正運(yùn)動(dòng)技術(shù)原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國(guó)智能制造水平。文章版權(quán)歸正運(yùn)動(dòng)技術(shù)所有,如有轉(zhuǎn)載請(qǐng)注明文章來(lái)源。


標(biāo)簽: 機(jī)器視覺(jué)

點(diǎn)贊

分享到:

上一篇:【英威騰】英威騰DA200伺服驅(qū)...

下一篇:【正運(yùn)動(dòng)】離線仿真調(diào)試,加...

中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.treenowplaneincome.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡(jiǎn)介|會(huì)員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見(jiàn)反饋|sitemap

中國(guó)傳動(dòng)網(wǎng)-工業(yè)自動(dòng)化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺(tái)

網(wǎng)站客服服務(wù)咨詢采購(gòu)咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 版權(quán)所有 粵ICP備 14004826號(hào) | 營(yíng)業(yè)執(zhí)照證書(shū) | 不良信息舉報(bào)中心 | 粵公網(wǎng)安備 44030402000946號(hào)