|
此前,我們依次講解了軟硬件介紹及計數實例、相機的基本使用、基於形狀匹配的視覺定位以及BLOB有無檢測等。
今天,正運動技術為大家分享一下VPLC係列機器視覺運動控製一體機快速入門(五),和大家一起分享機器視覺常用的檢測功能---測量尺寸。
機器視覺常用的檢測功能“測量尺寸”視頻教程:《 視頻教程:VPLC係列機器視覺運動控製一體機快速入門(五)》

測量尺寸:在機器視覺中常用的測量尺寸的原理就是使用兩個直線測量器,分別檢測出產品兩條尺寸邊緣的點擬合成直線後取兩條直線的距離。
尺(chi)寸(cun)測(ce)量(liang)本(ben)質(zhi)是(shi)基(ji)於(yu)邊(bian)緣(yuan)檢(jian)測(ce)的(de)測(ce)量(liang),它(ta)需(xu)要(yao)先(xian)檢(jian)測(ce)出(chu)亮(liang)暗(an)過(guo)渡(du)滿(man)足(zu)一(yi)定(ding)閾(yu)值(zhi)的(de)邊(bian)緣(yuan)點(dian),然(ran)後(hou)再(zai)提(ti)取(qu)邊(bian)緣(yuan)點(dian)數(shu)據(ju)進(jin)行(xing)處(chu)理(li)計(ji)算(suan)後(hou)輸(shu)出(chu)最(zui)終(zhong)的(de)結(jie)果(guo)。
測量尺寸特點
1.準確度高
選擇合適的硬件選型方案可以達到很高的檢測精度。常用遠心鏡頭減少畸變,增大景深,減小測量誤差。
2.圖像幹擾少
單純的測量尺寸項目常用背光的打光方式,突出產品邊緣尺寸,過濾表麵幹擾因素。
3.實現簡單
測量尺寸的算法是基於邊緣檢測的算法,易於實現。
4.需要位置跟隨
celiangchicundeceliangqibenshenbujuyoudingweigongneng,ruguojiancechanpinweizhibugudingjiangwufaquedingceliangqiduiyingdeweizhi,cishixuyaoyilaipipeidengdingweigongnengzuoweizhigensui。
標定
標定是指將機器視覺處理的像素結果(單位:像素)轉換成現實中使用到的實際結果(單位:毫米),或者是將機器視覺中使用的圖像坐標轉換成世界坐標。
womenzaishijiceliangchicunshi,shiyongdechicundanweiyibanshiguojibiaozhundanweirumi,limi,haomideng。yincijiqishijiaoceliangchicunxiangmuzhongxuyaojianghuoqudaodexiangsuchicunzhuanhuanchengshijichicun(毫米)輸出到用戶端,供用戶直接使用。
測量尺寸標定方法
1.測量標定
使用已知尺寸的標準模塊如圓、小方塊、或刻度尺等,在圖像中檢測到像素尺寸後將已知實際尺寸值除以像素值即可得出像素比例值(單位:mm/pixel)。測量尺寸項目中常用測量標定方法。

2.坐標標定
輸入幾組圖像坐標(至少9組),然(ran)後(hou)再(zai)輸(shu)入(ru)圖(tu)像(xiang)坐(zuo)標(biao)對(dui)應(ying)的(de)世(shi)界(jie)坐(zuo)標(biao),經(jing)過(guo)公(gong)式(shi)計(ji)算(suan)得(de)出(chu)矩(ju)陣(zhen)變(bian)換(huan)係(xi)數(shu),即(ji)可(ke)實(shi)現(xian)將(jiang)圖(tu)像(xiang)坐(zuo)標(biao)轉(zhuan)換(huan)到(dao)實(shi)際(ji)坐(zuo)標(biao)。在(zai)測(ce)量(liang)精(jing)度(du)要(yao)求(qiu)比(bi)較(jiao)高(gao)的(de)測(ce)量(liang)尺(chi)寸(cun)項(xiang)目(mu)可(ke)以(yi)考(kao)慮(lv)使(shi)用(yong)坐(zuo)標(biao)標(biao)定(ding),具(ju)體(ti)實(shi)現(xian)內(nei)容(rong)我(wo)們(men)在(zai)下(xia)一(yi)期(qi)課(ke)程(cheng)再(zai)做(zuo)詳(xiang)細(xi)說(shuo)明(ming)。

1.打開ZDevelop軟件:打開項目“基於形狀匹配的視覺定位”→在global_variable.bas文件中定義測量尺寸需要用到的全局變量。
'----------------------------分割線-----------------------------------------
'直線1測量參數數組,依次為中心cx、cy、w、h、angle、interp、sub_num、sub_width、filter_size、thresh、polor、select,都是圖像坐標
GLOBAL DIM d_meas_param1(12) 'd開頭表示數據結構
'直線2測量參數數組,依次為中心cx、cy、w、h、angle、interp、sub_num、sub_width、filter_size、thresh、polor、select,都是圖像坐標
GLOBAL DIM d_meas_param2(12) 'd開頭表示數據結構
'定義常用顏色變量,用於繪製圖形
GLOBAL C_RED, C_GREEN, C_BLUE, C_YELLOW
C_RED = RGB(255, 0, 0)
C_GREEN = RGB( 0,255, 0)
C_BLUE = RGB( 0, 0,255)
C_YELLOW= RGB(255,255, 0)
'創建模板時保存的直線1基準區域位置向量1,x、y、angle
GLOBAL DIM d_meas_base_v1(3)
d_meas_base_v1(0) = 0
d_meas_base_v1(1) = 0
d_meas_base_v1(2) = 0
''創建模板時保存的直線2基準區域位置向量2,x、y、angle
GLOBAL DIM d_meas_base_v2(3)
d_meas_base_v2(0) = 0
d_meas_base_v2(1) = 0
d_meas_base_v2(2) = 0
'直線1測量結果,依次為結果點stx、sty、endx、endy
GLOBAL DIM d_meas_rst1(4)
'直線2測量結果,依次為結果點stx、sty、endx、endy
GLOBAL DIM d_meas_rst2(4)
'定義顯示在界麵上的長度變量
GLOBAL DIM d_show_rst
''創建模板時保存的模板基準點,score、x、y、angle、scale
GLOBAL DIM d_match_base_rst(5)
global dim d_meas_param(12)
'定義測量標定時使用到的變量
GLOBAL PixLength,WorldLength,CalibParam
2.補充設計主界麵。

3.新建主界麵按下【測量設置】按鈕時彈出的測量參數設置窗口“Set_Select”,並設計界麵布局。

4.在main.bas文件中添加主界麵按下【測量設置】按鈕時響應的函數並關聯動作函數名。
'主界麵按下測量設置按鈕時響應的函數
GLOBAL SUB Goto_Meas()
HMI_SHOWWINDOW(13)
END SUB
↓

5.在InitLocator.bas文件中初始化測量參數。
'---------------------分割線------------------
'初始化測量參數1
d_meas_param1(0) = 320.0 'roi中心x
d_meas_param1(1) = 240.0 'roi中心y
d_meas_param1(2) = 160 'roi寬
d_meas_param1(3) = 120.0 'roi高
d_meas_param1(4) = 0.0 'roi角度
d_meas_param1(5) = 1 '插值方式
d_meas_param1(6) = 20 '子區域的個數
d_meas_param1(7) = 5 '子區域的尺寸
d_meas_param1(8) = 3 '濾波尺寸
d_meas_param1(9) = 50 '閾值
d_meas_param1(10) = 0 '極性
d_meas_param1(11) = 0 '選擇邊緣位置
'初始化測量參數2
d_meas_param2(0) = 320.0 'roi中心x
d_meas_param2(1) = 240.0 'roi中心y
d_meas_param2(2) = 160 'roi寬
d_meas_param2(3) = 120.0 'roi高
d_meas_param2(4) = 0.0 'roi角度
d_meas_param2(5) = 1 '插值方式
d_meas_param2(6) = 20 '子區域的個數
d_meas_param2(7) = 5 '子區域的尺寸
d_meas_param2(8) = 3 '濾波尺寸
d_meas_param2(9) = 50 '閾值
d_meas_param2(10) = 0 '極性
d_meas_param2(11) = 0 '選擇邊緣位置
'初始化界麵上顯示的結果值
d_meas_rst1(0) = 0
d_meas_rst1(1) = 0
d_meas_rst1(2) = 0
d_meas_rst1(3) = 0
d_meas_rst2(0) = 0
d_meas_rst2(1) = 0
d_meas_rst2(2) = 0
d_meas_rst2(3) = 0
d_show_rst = 0
'初始化標定參數和像素比例
CalibParam = 0
WorldLength = 0
PixLength = 0
6.新建在“Set_Select”窗口界麵按下【選擇測量器區域1】按鈕時彈出的“Set_Roi1”窗口,用於創建第一條尺寸邊緣的直線測量器並設置檢測直線的參數。

7.在draw.bas文件中添加在“Set_Select”窗口界麵按下【選擇測量器區域1】按鈕時響應的函數並關聯動作函數名。
'-----------------分割線-------------------------
'測量器繪製
DIM is_redraw
is_redraw = 0
DIM set_roi_open_init
set_roi_open_init = 0
DIM sr_mpos_x, sr_mpos_y, hit_pos
'''''''''''''''''''''''''''''''''''
'按下選擇測量器區域1按鈕時響應的函數
GLOBAL SUB btn_sel_roi1()
ZV_LATCHCLEAR(1) '清除鎖存
ZV_LATCHSETSIZE(1, HMI_CONTROLSIZEX(14, 1), HMI_CONTROLSIZEY(14,1)) '設置鎖存的大小
ZV_LATCH(grabImg, 1) '顯示圖像在鎖存上
SET_COLOR(RGB(0,255,0))
'圖像roi轉控件roi
is_redraw = 0
TABLE(11, d_meas_param1(0), d_meas_param1(1))
ZV_POSFROMIMG(1, 1, 11, 11) '圖像坐標轉換到HMI控件坐標
TABLE(13) = ZV_LENFROMIMG(1, d_meas_param1(2))
TABLE(14) = ZV_LENFROMIMG(1, d_meas_param1(3))
TABLE(15) = d_meas_param1(4)
HMI_SHOWWINDOW(14)
END SUB
↓

8.在draw.bas文件中添加Roi1根據鼠標操作更新ROI位置的函數以及實時繪製Roi1的函數。
'根據鼠標操作更新Roi1的位置
GLOBAL SUB update_roi1()
if mouse_scan(21) = 1 then '
掃描按下操作
hit_pos = ZV_HMIADJRECT2(table(21), table(22), 11, -1) '隻有按下時可以改變擊中位置
?TABLE(21),TABLE(22)
is_redraw = 1
endif
if mouse_scan(21) = -1 then '
掃描鬆開操作
if TABLE(21)<(table(11)-table(13) or="">(TABLE(11)+TABLE(13)/2) or TABLE(22)<(table(12)-table(14) or="">(TABLE(12)+TABLE(14)/2) then
hit_pos=-1
endif
ZV_HMIADJRECT2(table(21), table(22), 11, hit_pos)
?*TABLE(11,4)
is_redraw = 1
endif
if (MOUSE_state(21)) then
ZV_HMIADJRECT2(table(21), table(22), 11, hit_pos)
is_redraw = 1
endif
if (1 = is_redraw) then
is_redraw = 0
ZV_POSTOIMG(1, 1, 11, 31)
d_meas_param1(0) = TABLE(31)
d_meas_param1(1) = TABLE(32)
d_meas_param1(2) = ZV_LENTOIMG(1, TABLE(13))
d_meas_param1(3) = ZV_LENTOIMG(1, TABLE(14))
d_meas_param1(4) = TABLE(15)
'如果選擇了補正源,就保存roi基準
if(TABLE(110) = 1) then
set_base_roi()
endif
SET_REDRAW
endif
END SUB
'設置測量區域的基準roi
GLoBAL SUB set_base_roi()
d_meas_base_v1(0) = d_meas_param1(0)
d_meas_base_v1(1) = d_meas_param1(1)
d_meas_base_v1(2) = d_meas_param1(4)
d_meas_base_v2(0) = d_meas_param2(0)
d_meas_base_v2(1) = d_meas_param2(1)
d_meas_base_v2(2) = d_meas_param2(4)
END SUB
'更新Roi1位置後實時繪製圖形
GLOBAL SUB draw_roi1()
SET_COLOR(C_BLUE)
TABLE(16, d_meas_param1(6), d_meas_param1(7)) '設置子區域個數和寬度兩個參數
ZV_HMIRECT2(11, 300)
DRAWLINE(TABLE(300), TABLE(301), TABLE(302), TABLE(303)) '外矩形
DRAWLINE(TABLE(302), TABLE(303), TABLE(304), TABLE(305))
DRAWLINE(TABLE(304), TABLE(305), TABLE(306), TABLE(307))
DRAWLINE(TABLE(306), TABLE(307), TABLE(300), TABLE(301))
DRAWLINE(TABLE(308), TABLE(309), TABLE(310), TABLE(311)) '方向箭頭
DRAWLINE(TABLE(312), TABLE(313), TABLE(310), TABLE(311))
DRAWLINE(TABLE(314), TABLE(315), TABLE(310), TABLE(311))
if (0 = TABLE(316)) then return
SET_COLOR(C_GREEN)
DIM idx
for idx = 0 to TABLE(316)-1
DRAWLINE(TABLE(317+idx*4), TABLE(318+idx*4), TABLE(319+idx*4), TABLE(320+idx*4))
next
END SUB
9.在draw.bas文件中添加在“Set_Roi1”窗口界麵按下【確定】按鈕時響應的函數並關聯動作函數名。
'設置Roi1窗口按下確定按鈕時響應的函數
GLOBAL SUB btn_meas_confirm1()
HMI_CLOSEWINDOW(14)
END SUB
↓

10.新建在“Set_Select”窗口界麵按下【選擇測量器區域2】按鈕時彈出的“Set_Roi2”窗口,用於創建第二條尺寸邊緣的直線測量器並設置檢測直線的參數。

11.在draw.bas文件中添加在“Set_Select”窗口界麵按下【選擇測量器區域2】按鈕時響應的函數並關聯動作函數名。
'按下選擇測量器區域2按鈕時響應的函數
GLOBAL SUB btn_sel_roi2()
ZV_LATCHCLEAR(1) '清除鎖存
ZV_LATCHSETSIZE(1, HMI_CONTROLSIZEX(15, 1), HMI_CONTROLSIZEY(15,1)) '設置鎖存的大小
ZV_LATCH(grabImg, 1) '顯示圖像在鎖存上
SET_COLOR(RGB(0,255,0))
'圖像roi坐標轉控件roi
is_redraw = 0
TABLE(11, d_meas_param2(0), d_meas_param2(1))
ZV_POSFROMIMG(1, 1, 11, 11) '圖像坐標轉換到HMI控件坐標
TABLE(13) = ZV_LENFROMIMG(1, d_meas_param2(2))
TABLE(14) = ZV_LENFROMIMG(1, d_meas_param2(3))
TABLE(15) = d_meas_param2(4)
HMI_SHOWWINDOW(15)
END SUB
↓

12.在draw.bas文件中添加Roi2根據鼠標操作更新ROI位置的函數以及實時繪製Roi1的函數。
'根據鼠標操作更新Roi2的位置
GLOBAL SUB update_roi2()
if mouse_scan(21) = 1 then '掃描按下操作
hit_pos = ZV_HMIADJRECT2(table(21), table(22), 11, -1) '隻有按下時可以改變擊中位置
is_redraw = 1
endif
if mouse_scan(21) = -1 then '掃描鬆開操作
ZV_HMIADJRECT2(table(21), table(22), 11, hit_pos)
is_redraw = 1
endif
if (MOUSE_state(21)) then
ZV_HMIADJRECT2(table(21), table(22), 11, hit_pos)
is_redraw = 1
endif
if (1 = is_redraw) then
is_redraw = 0
ZV_POSTOIMG(1, 1, 11, 31)
d_meas_param2(0) = TABLE(31)
d_meas_param2(1) = TABLE(32)
d_meas_param2(2) = ZV_LENTOIMG(1, TABLE(13))
d_meas_param2(3) = ZV_LENTOIMG(1, TABLE(14))
d_meas_param2(4) = TABLE(15)
'如果選擇補正源,就保存roi基準位置
if(TABLE(110) = 1) then
set_base_roi()
endif
SET_REDRAW
endif
END SUB
'更新Roi2位置後實時繪製圖形
GLOBAL SUB draw_roi2()
SET_COLOR(C_BLUE)
TABLE(16, d_meas_param2(6), d_meas_param2(7)) '設置子區域個數和寬度兩個參數
ZV_HMIRECT2(11, 300) '計算控件的矩形roi相應的頂點和箭頭錨點
DRAWLINE(TABLE(300), TABLE(301), TABLE(302), TABLE(303)) '外矩形
DRAWLINE(TABLE(302), TABLE(303), TABLE(304), TABLE(305))
DRAWLINE(TABLE(304), TABLE(305), TABLE(306), TABLE(307))
DRAWLINE(TABLE(306), TABLE(307), TABLE(300), TABLE(301))
DRAWLINE(TABLE(308), TABLE(309), TABLE(310), TABLE(311)) '方向箭頭
DRAWLINE(TABLE(312), TABLE(313), TABLE(310), TABLE(311))
DRAWLINE(TABLE(314), TABLE(315), TABLE(310), TABLE(311))
if (0 = TABLE(316)) then return
SET_COLOR(C_GREEN)
DIM idx
for idx = 0 to TABLE(316)-1
DRAWLINE(TABLE(317+idx*4), TABLE(318+idx*4), TABLE(319+idx*4), TABLE(320+idx*4))
next
END SUB
13.在draw.bas文件中添加在“Set_Roi2”窗口界麵按下【確定】按鈕時響應的函數並關聯動作函數名。
'設置Roi2窗口按下確定按鈕時響應的函數
GLOBAL SUB btn_meas_confirm2()
HMI_CLOSEWINDOW(15)
END SUB
↓

14.新建meas.bas文件用於存放計算兩條直線的距離函數和標定函數等測量相關函數,並在文件中添加實現函數。
'計算兩條直線的距離寬度
global sub length1()
LOCAL dist,dist1,dist2
local dis_tmp,dst_tmp1
'計算直線2的起始點到直線1之間的距離
dist = ZV_DISTPL(d_meas_rst2(0),d_meas_rst2(1),d_meas_rst1(0),d_meas_rst1(1),d_meas_rst1(2),d_meas_rst1(3))
'計算直線2的終點到直線1之間的距離
dist1 = ZV_DISTPL(d_meas_rst2(2),d_meas_rst2(3),d_meas_rst1(0),d_meas_rst1(1),d_meas_rst1(2),d_meas_rst1(3))
'計算直線2的中點位置坐標
dis_tmp=(d_meas_rst2(0)+d_meas_rst2(2))/2
dst_tmp1=(d_meas_rst2(1)+d_meas_rst2(3))/2
'計算直線2的中點到直線1之間的距離
dist2 = ZV_DISTPL(dis_tmp,dst_tmp1,d_meas_rst1(0),d_meas_rst1(1),d_meas_rst1(2),d_meas_rst1(3))
TABLE(500)=(dist+dist1+dist2)/3 '兩直線之間的距離
PixLength=TABLE(500)
?TABLE(500)
end sub
'計算實際尺寸值
global sub length2()
'實際尺寸=像素尺寸*像素比例
TABLE(501)=TABLE(500)*CalibParam
end sub
'計算像素比例,即實際值/像素值
global sub calculation()
CalibParam=WorldLength/TABLE(500)
end sub
15.在main.bas文件中添加“Set_Select”窗口界麵按下【測試】按鈕時響應的函數並關聯動作函數名。
'測量設置界麵按下測試按鈕時響應的函數
GLOBAL SUB btn_mea_test()
'選擇補正源時先執行定位檢測
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
'測量區域roi補正
if(TABLE(110) = 1 AND d_is_creModel = 1) then '如果使用補正源已經開啟且模板已經創建
'計算剛性變換矩陣
ZV_GETRIGIDVECTOR(mat_rigid, 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對輸入Roi1基準向量進行補正,補正後的向量存入開始索引為0的TABLE中
ZV_VECTORCORRECT(mat_rigid, d_meas_base_v1(0), d_meas_base_v1(1),d_meas_base_v1(2), 0)
d_meas_param1(0) = TABLE(0)
d_meas_param1(1) = TABLE(1)
d_meas_param1(4) = TABLE(2)
'使用變換矩陣mat_rigid對輸入Roi2基準向量進行補正,補正後的向量存入開始索引為0的TABLE中
ZV_VECTORCORRECT(mat_rigid, d_meas_base_v2(0), d_meas_base_v2(1),d_meas_base_v2(2), 0)
d_meas_param2(0) = TABLE(0)
d_meas_param2(1) = TABLE(1)
d_meas_param2(4) = TABLE(2)
endif
'測量區域1
'生成直線1測量的旋轉區域
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))
'設置直線1的檢測參數,包括濾波器尺寸,閾值,邊緣極性,邊緣位置
ZV_MRSETADV(mr1, d_meas_param1(8), d_meas_param1(9), d_meas_param1(10), d_meas_param1(11))
'測量區域2
'生成直線2測量的旋轉區域
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))
'設置直線2的檢測參數,包括濾波器尺寸,閾值,邊緣極性,邊緣位置
ZV_MRSETADV(mr2, d_meas_param2(8), d_meas_param2(9), d_meas_param2(10), d_meas_param2(11))
'將矩形測量區域測量到的目標直線1端點存儲到起始索引為61的TABLE
ZV_MRLINE(mr1, grabImg, rst1, 61)
d_meas_rst1(0) = TABLE(61)
d_meas_rst1(1) = TABLE(62)
d_meas_rst1(2) = TABLE(63)
d_meas_rst1(3) = TABLE(64)
'將矩形測量區域測量到的目標直線2端點存儲到起始索引為71的TABLE
ZV_MRLINE(mr2, grabImg, rst2, 71)
ZV_MATINFO(rst2, 0) 'table(0)作為臨時變量
d_meas_rst2(0) = TABLE(71)
d_meas_rst2(1) = TABLE(72)
d_meas_rst2(2) = TABLE(73)
d_meas_rst2(3) = TABLE(74)
'計算兩條直線的距離寬度
length1()
d_show_rst=TABLE(500)
if(CalibParam>0) then
'計算實際長度
length2()
d_show_rst=TABLE(501)
endif
'繪製結果線
ZV_GRAYTORGB(grabImg, colorImg)
ZV_LINE(colorImg, TABLE(61), TABLE(62), TABLE(63), TABLE(64), C_GREEN)
ZV_LINE(colorImg, TABLE(65), TABLE(66), TABLE(67), TABLE(68), C_GREEN)
ZV_LINE(colorImg, TABLE(71), TABLE(72), TABLE(73), TABLE(74), C_GREEN)
ZV_LINE(colorImg, TABLE(75), TABLE(76), TABLE(77), TABLE(78), C_GREEN)
ZV_LATCH(colorImg,0)
END SUB
↓

在main.bas文件中添加“Set_Select”窗口界麵按下【測試】按鈕時仿真的效果圖。

測試按鈕效果圖
16.設置“Set_Select”窗口界麵【計算】按鈕關聯動作函數名。

在“Set_Select”窗口界麵按下【計算】按鈕時仿真的效果圖。

計算按鈕效果圖
17.在“Set_Select”窗口界麵中關聯界麵控件變量。

18.在main.bas文件中添加“Set_Select”窗口界麵按下【返回主界麵】按鈕時響應的函數並關聯動作函數名。
'按下返回主界麵按鈕時響應的函數
GLOBAL SUB Goto_Main()
HMI_CLOSEWINDOW(13)
END SUB
↓

19.在main.bas文件中修改主界麵按下【單次執行】按鈕時響應的函數並關聯動作函數名。
'主界麵按下單次執行按鈕時響應的函數
GLOBAL SUB btn_test()
'采集一幀圖像
btn_grab
'執行測量測試部分代碼
btn_mea_test()
END SUB
↓

在主界麵按下【單次執行】按鈕時仿真的效果圖。

20.在main.bas文件中修改主界麵按下【連續執行】按鈕時響應的函數中執行的任務函數內容。
main_task:
while(1)
if (0 = run_switch) then
exit while
endif
'以下執行相關定位操作
btn_grab()
btn_mea_test()
wend
END
在主界麵按下【連續執行】按鈕時仿真仿真執行的效果圖。

連續運行效果圖1

連續運行效果圖2
在不同位置以不同角度放置時,均能檢測到對應尺寸。
本次,正運動技術VPLC係列機器視覺運動控製一體機快速入門(五)——尺寸測量就分享到這裏,更多精彩內容請關注“ 正運動小助手”公眾號。
本文由 正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能製造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。
正運動技術專注於運動控製技術研究和通用運動控製軟硬件產品的研發,是國家級高新技術企業。正運動技術彙集了來自華為、zhongxingdenggongsideyouxiurencai,zaijianchizizhuchuangxindetongshi,jijilianhegedagaoxiaoxietongyundongkongzhijichujishudeyanjiu,shiguoneigongkonglingyufazhanzuikuaideqiyezhiyi,yeshiguoneishaoyou、完整掌握運動控製核心技術和實時工控軟件平台技術的企業。主要業務有:運動控製卡_運動控製器_EtherCAT運動控製卡_EtherCAT控製器_運動控製係統_視覺控製器__運動控製PLC_運動控製_機器人控製器_視覺定位_XPCIe/XPCI係列運動控製卡等等。
|