時間:2021-02-01 14:52:05來源:正運動技術(shù)
此前,我們依次講解了軟硬件介紹及計數(shù)實例、相機的基本使用、基于形狀匹配的視覺定位以及BLOB有無檢測等。
今天,正運動技術(shù)為大家分享一下VPLC系列機器視覺運動控制一體機快速入門(五),和大家一起分享機器視覺常用的檢測功能---測量尺寸。
機器視覺常用的檢測功能“測量尺寸”視頻教程:《 視頻教程: VPLC系列機器視覺運動控制一體機快速入門(五)》
測量尺寸:在機器視覺中常用的測量尺寸的原理就是使用兩個直線測量器,分別檢測出產(chǎn)品兩條尺寸邊緣的點擬合成直線后取兩條直線的距離。
尺寸測量本質(zhì)是基于邊緣檢測的測量,它需要先檢測出亮暗過渡滿足一定閾值的邊緣點,然后再提取邊緣點數(shù)據(jù)進行處理計算后輸出最終的結(jié)果。
測量尺寸特點
1.準(zhǔn)確度高
選擇合適的硬件選型方案可以達到很高的檢測精度。常用遠(yuǎn)心鏡頭減少畸變,增大景深,減小測量誤差。
2.圖像干擾少
單純的測量尺寸項目常用背光的打光方式,突出產(chǎn)品邊緣尺寸,過濾表面干擾因素。
3.實現(xiàn)簡單
測量尺寸的算法是基于邊緣檢測的算法,易于實現(xiàn)。
4.需要位置跟隨
測量尺寸的測量器本身不具有定位功能,如果檢測產(chǎn)品位置不固定將無法確定測量器對應(yīng)的位置,此時需要依賴匹配等定位功能做位置跟隨。
標(biāo)定
標(biāo)定是指將機器視覺處理的像素結(jié)果(單位:像素)轉(zhuǎn)換成現(xiàn)實中使用到的實際結(jié)果(單位:毫米),或者是將機器視覺中使用的圖像坐標(biāo)轉(zhuǎn)換成世界坐標(biāo)。
我們在實際測量尺寸時,使用的尺寸單位一般是國際標(biāo)準(zhǔn)單位如米,厘米,毫米等。因此機器視覺測量尺寸項目中需要將獲取到的像素尺寸轉(zhuǎn)換成實際尺寸(毫米)輸出到用戶端,供用戶直接使用。
測量尺寸標(biāo)定方法
1.測量標(biāo)定
使用已知尺寸的標(biāo)準(zhǔn)模塊如圓、小方塊、或刻度尺等,在圖像中檢測到像素尺寸后將已知實際尺寸值除以像素值即可得出像素比例值(單位:mm/pixel)。測量尺寸項目中常用測量標(biāo)定方法。
2.坐標(biāo)標(biāo)定
輸入幾組圖像坐標(biāo)(至少9組),然后再輸入圖像坐標(biāo)對應(yīng)的世界坐標(biāo),經(jīng)過公式計算得出矩陣變換系數(shù),即可實現(xiàn)將圖像坐標(biāo)轉(zhuǎn)換到實際坐標(biāo)。在測量精度要求比較高的測量尺寸項目可以考慮使用坐標(biāo)標(biāo)定,具體實現(xiàn)內(nèi)容我們在下一期課程再做詳細(xì)說明。
1.打開ZDevelop軟件:打開項目“基于形狀匹配的視覺定位”→在global_variable.bas文件中定義測量尺寸需要用到的全局變量。
'----------------------------分割線-----------------------------------------
'直線1測量參數(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開頭表示數(shù)據(jù)結(jié)構(gòu)
'直線2測量參數(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開頭表示數(shù)據(jù)結(jié)構(gòu)
'定義常用顏色變量,用于繪制圖形
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)
'創(chuàng)建模板時保存的直線1基準(zhǔn)區(qū)域位置向量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
''創(chuàng)建模板時保存的直線2基準(zhǔn)區(qū)域位置向量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測量結(jié)果,依次為結(jié)果點stx、sty、endx、endy
GLOBAL DIM d_meas_rst1(4)
'直線2測量結(jié)果,依次為結(jié)果點stx、sty、endx、endy
GLOBAL DIM d_meas_rst2(4)
'定義顯示在界面上的長度變量
GLOBAL DIM d_show_rst
''創(chuàng)建模板時保存的模板基準(zhǔn)點,score、x、y、angle、scale
GLOBAL DIM d_match_base_rst(5)
global dim d_meas_param(12)
'定義測量標(biāo)定時使用到的變量
GLOBAL PixLength,WorldLength,CalibParam
2.補充設(shè)計主界面。
3.新建主界面按下【測量設(shè)置】按鈕時彈出的測量參數(shù)設(shè)置窗口“Set_Select”,并設(shè)計界面布局。
4.在main.bas文件中添加主界面按下【測量設(shè)置】按鈕時響應(yīng)的函數(shù)并關(guān)聯(lián)動作函數(shù)名。
'主界面按下測量設(shè)置按鈕時響應(yīng)的函數(shù)
GLOBAL SUB Goto_Meas()
HMI_SHOWWINDOW(13)
END SUB
↓
5.在InitLocator.bas文件中初始化測量參數(shù)。
'---------------------分割線------------------
'初始化測量參數(shù)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 '子區(qū)域的個數(shù)
d_meas_param1(7) = 5 '子區(qū)域的尺寸
d_meas_param1(8) = 3 '濾波尺寸
d_meas_param1(9) = 50 '閾值
d_meas_param1(10) = 0 '極性
d_meas_param1(11) = 0 '選擇邊緣位置
'初始化測量參數(shù)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 '子區(qū)域的個數(shù)
d_meas_param2(7) = 5 '子區(qū)域的尺寸
d_meas_param2(8) = 3 '濾波尺寸
d_meas_param2(9) = 50 '閾值
d_meas_param2(10) = 0 '極性
d_meas_param2(11) = 0 '選擇邊緣位置
'初始化界面上顯示的結(jié)果值
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
'初始化標(biāo)定參數(shù)和像素比例
CalibParam = 0
WorldLength = 0
PixLength = 0
6.新建在“Set_Select”窗口界面按下【選擇測量器區(qū)域1】按鈕時彈出的“Set_Roi1”窗口,用于創(chuàng)建第一條尺寸邊緣的直線測量器并設(shè)置檢測直線的參數(shù)。
7.在draw.bas文件中添加在“Set_Select”窗口界面按下【選擇測量器區(qū)域1】按鈕時響應(yīng)的函數(shù)并關(guān)聯(lián)動作函數(shù)名。
'-----------------分割線-------------------------
'測量器繪制
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
'''''''''''''''''''''''''''''''''''
'按下選擇測量器區(qū)域1按鈕時響應(yīng)的函數(shù)
GLOBAL SUB btn_sel_roi1()
ZV_LATCHCLEAR(1) '清除鎖存
ZV_LATCHSETSIZE(1, HMI_CONTROLSIZEX(14, 1), HMI_CONTROLSIZEY(14,1)) '設(shè)置鎖存的大小
ZV_LATCH(grabImg, 1) '顯示圖像在鎖存上
SET_COLOR(RGB(0,255,0))
'圖像roi轉(zhuǎn)控件roi
is_redraw = 0
TABLE(11, d_meas_param1(0), d_meas_param1(1))
ZV_POSFROMIMG(1, 1, 11, 11) '圖像坐標(biāo)轉(zhuǎn)換到HMI控件坐標(biāo)
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根據(jù)鼠標(biāo)操作更新ROI位置的函數(shù)以及實時繪制Roi1的函數(shù)。
'根據(jù)鼠標(biāo)操作更新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基準(zhǔn)
if(TABLE(110) = 1) then
set_base_roi()
endif
SET_REDRAW
endif
END SUB
'設(shè)置測量區(qū)域的基準(zhǔn)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)) '設(shè)置子區(qū)域個數(shù)和寬度兩個參數(shù)
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”窗口界面按下【確定】按鈕時響應(yīng)的函數(shù)并關(guān)聯(lián)動作函數(shù)名。
'設(shè)置Roi1窗口按下確定按鈕時響應(yīng)的函數(shù)
GLOBAL SUB btn_meas_confirm1()
HMI_CLOSEWINDOW(14)
END SUB
↓
10.新建在“Set_Select”窗口界面按下【選擇測量器區(qū)域2】按鈕時彈出的“Set_Roi2”窗口,用于創(chuàng)建第二條尺寸邊緣的直線測量器并設(shè)置檢測直線的參數(shù)。
11.在draw.bas文件中添加在“Set_Select”窗口界面按下【選擇測量器區(qū)域2】按鈕時響應(yīng)的函數(shù)并關(guān)聯(lián)動作函數(shù)名。
'按下選擇測量器區(qū)域2按鈕時響應(yīng)的函數(shù)
GLOBAL SUB btn_sel_roi2()
ZV_LATCHCLEAR(1) '清除鎖存
ZV_LATCHSETSIZE(1, HMI_CONTROLSIZEX(15, 1), HMI_CONTROLSIZEY(15,1)) '設(shè)置鎖存的大小
ZV_LATCH(grabImg, 1) '顯示圖像在鎖存上
SET_COLOR(RGB(0,255,0))
'圖像roi坐標(biāo)轉(zhuǎn)控件roi
is_redraw = 0
TABLE(11, d_meas_param2(0), d_meas_param2(1))
ZV_POSFROMIMG(1, 1, 11, 11) '圖像坐標(biāo)轉(zhuǎn)換到HMI控件坐標(biāo)
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根據(jù)鼠標(biāo)操作更新ROI位置的函數(shù)以及實時繪制Roi1的函數(shù)。
'根據(jù)鼠標(biāo)操作更新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基準(zhǔn)位置
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)) '設(shè)置子區(qū)域個數(shù)和寬度兩個參數(shù)
ZV_HMIRECT2(11, 300) '計算控件的矩形roi相應(yīng)的頂點和箭頭錨點
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”窗口界面按下【確定】按鈕時響應(yīng)的函數(shù)并關(guān)聯(lián)動作函數(shù)名。
'設(shè)置Roi2窗口按下確定按鈕時響應(yīng)的函數(shù)
GLOBAL SUB btn_meas_confirm2()
HMI_CLOSEWINDOW(15)
END SUB
↓
14.新建meas.bas文件用于存放計算兩條直線的距離函數(shù)和標(biāo)定函數(shù)等測量相關(guān)函數(shù),并在文件中添加實現(xiàn)函數(shù)。
'計算兩條直線的距離寬度
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的中點位置坐標(biāo)
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”窗口界面按下【測試】按鈕時響應(yīng)的函數(shù)并關(guān)聯(lián)動作函數(shù)名。
'測量設(shè)置界面按下測試按鈕時響應(yīng)的函數(shù)
GLOBAL SUB btn_mea_test()
'選擇補正源時先執(zhí)行定位檢測
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
'測量區(qū)域roi補正
if(TABLE(110) = 1 AND d_is_creModel = 1) then '如果使用補正源已經(jīng)開啟且模板已經(jīng)創(chuàng)建
'計算剛性變換矩陣
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基準(zhǔn)向量進行補正,補正后的向量存入開始索引為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基準(zhǔn)向量進行補正,補正后的向量存入開始索引為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
'測量區(qū)域1
'生成直線1測量的旋轉(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的檢測參數(shù),包括濾波器尺寸,閾值,邊緣極性,邊緣位置
ZV_MRSETADV(mr1, d_meas_param1(8), d_meas_param1(9), d_meas_param1(10), d_meas_param1(11))
'測量區(qū)域2
'生成直線2測量的旋轉(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的檢測參數(shù),包括濾波器尺寸,閾值,邊緣極性,邊緣位置
ZV_MRSETADV(mr2, d_meas_param2(8), d_meas_param2(9), d_meas_param2(10), d_meas_param2(11))
'將矩形測量區(qū)域測量到的目標(biāo)直線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)
'將矩形測量區(qū)域測量到的目標(biāo)直線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
'繪制結(jié)果線
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.設(shè)置“Set_Select”窗口界面【計算】按鈕關(guān)聯(lián)動作函數(shù)名。
在“Set_Select”窗口界面按下【計算】按鈕時仿真的效果圖。
計算按鈕效果圖
17.在“Set_Select”窗口界面中關(guān)聯(lián)界面控件變量。
18.在main.bas文件中添加“Set_Select”窗口界面按下【返回主界面】按鈕時響應(yīng)的函數(shù)并關(guān)聯(lián)動作函數(shù)名。
'按下返回主界面按鈕時響應(yīng)的函數(shù)
GLOBAL SUB Goto_Main()
HMI_CLOSEWINDOW(13)
END SUB
↓
19.在main.bas文件中修改主界面按下【單次執(zhí)行】按鈕時響應(yīng)的函數(shù)并關(guān)聯(lián)動作函數(shù)名。
'主界面按下單次執(zhí)行按鈕時響應(yīng)的函數(shù)
GLOBAL SUB btn_test()
'采集一幀圖像
btn_grab
'執(zhí)行測量測試部分代碼
btn_mea_test()
END SUB
↓
在主界面按下【單次執(zhí)行】按鈕時仿真的效果圖。
20.在main.bas文件中修改主界面按下【連續(xù)執(zhí)行】按鈕時響應(yīng)的函數(shù)中執(zhí)行的任務(wù)函數(shù)內(nèi)容。
main_task:
while(1)
if (0 = run_switch) then
exit while
endif
'以下執(zhí)行相關(guān)定位操作
btn_grab()
btn_mea_test()
wend
END
在主界面按下【連續(xù)執(zhí)行】按鈕時仿真仿真執(zhí)行的效果圖。
連續(xù)運行效果圖1
連續(xù)運行效果圖2
在不同位置以不同角度放置時,均能檢測到對應(yīng)尺寸。
本次,正運動技術(shù)VPLC系列機器視覺運動控制一體機快速入門(五)——尺寸測量就分享到這里,更多精彩內(nèi)容請關(guān)注“ 正運動小助手 ”公眾號。
本文由 正運動技術(shù) 原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國智能制造水平。文章版權(quán)歸正運動技術(shù)所有,如有轉(zhuǎn)載請注明文章來源。
標(biāo)簽:
中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(www.hysjfh.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
產(chǎn)品新聞
更多>2025-04-30
性能躍升20%!維宏NK300CX Plus數(shù)控系統(tǒng)...
2025-04-11
rpi-image-gen:樹莓派軟件鏡像構(gòu)建的終...
2025-04-08
【產(chǎn)品解讀】全面提升精密制造檢測節(jié)拍...
2025-03-31
激光閃耀 智慧引領(lǐng) | WISE MASER 黑武士...
2025-03-20