在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

VPLC系列機器視覺運動控制一體機快速入門(三)

正運動技術 ? 2021-09-23 11:35 ? 次閱讀

視頻教程:《視頻教程:VPLC系列機器視覺運動控制一體機快速入門(三)》

今天,正運動技術為大家分享一下VPLC系列機器視覺運動控制一體機快速入門(三)——基于形狀匹配的視覺定位。

運動控制

上期課程,我們講述了機器視覺方案實施的基礎即相機的基本使用內容,我們通過上期課程已經能實現使用ZDevelop軟件獲取圖像進行處理。

本期課程我們和大家一起分享機器視覺方案中常用的基于形狀匹配的視覺定位功能。

運動控制

視覺定位是指在視覺檢測中通過學習特定的模板或某些固定的特征,在檢測區域內搜索滿足條件的特征,并返回特征在圖像坐標中的位置信息,如坐標位置X、坐標位置Y、角度。

運動控制

形狀匹配是基于邊緣方向梯度的匹配,它是提取ROI中的邊緣特征結合灰度信息創建模板,然后在檢測區域ROI范圍內搜索與模板的輪廓特征滿足一定相似程度的產品特征,并返回對應位置信息。

運動控制

形狀匹配特點

1.適應性強:可適應光照和圖像的灰度變化。

2.兼容性強:可以支持搜索缺失局部邊緣、有噪聲干擾、有輕微變形和失焦的目標。

3.多目標搜索:支持同時搜索同一模板下的多個匹配目標。

4.支持旋轉和縮放:在目標圖像存在旋轉或縮放的情況下仍然能匹配到目標,但是需要在設定的旋轉和縮放比例范圍內。

模板選擇

使用形狀匹配功能的前提是檢測目標要有唯一且固定的特征。

1.在選擇模板時,需要確保特征是檢測目標唯一存在的特征,否則無法與其他檢測目標區分。

2.盡量選擇圖像清晰形狀完整的標準產品作為模板,避免摻入噪點等干擾因素。

3.盡量避免選擇對稱的特征作為模板。

運動控制

如圖,閃電是目標1唯一的特征,可以將目標1和目標2進行區分。

運動控制

1 目標定位

運動控制

在目標輪廓特征清晰且定位精度要求不高時,可直接使用形狀匹配輸出的位置結果做定位項目。

2 產品計數

運動控制

對具有相同形狀特征的產品進行計數統計。

3 位置跟隨

運動控制

當需要檢測的目標位置不固定時,一些檢測功能的ROI位置無法確定如檢測直線、檢測圓形等,我們可以利用檢測目標周邊有固定距離的特征進行位置跟隨。

運動控制

運動控制

形狀匹配流程圖

實例演示

1

新建項目→新建HMI文件→新建main.bas文件,用于編寫界面響應函數→新建global_variable.bas文件用于存放全局變量并開啟HMI自動運行任務→新建InitLocator.bas文件用于初始化測量參數→新建camera.bas文件用于實現相機采集功能→新建draw.bas文件用于更新繪制圖形刷新界面→文件添加到項目。

運動控制

2

設計主界面。

運動控制

3

在global_variable.bas文件中定義全局變量。

'''''全局變量大部分使用數組結構'''''

''注:basic編程中很多函數會以TABLE(系統的數據結構)做為參數

''在這里table均是做為中間變量

''table 0-20 作為匹配時使用到的中間變量

''table 50-70 作為roi繪制時的中間變量使用

''table 21-22,表示鼠標按鍵控件坐標系

''table 31-35,表示控件坐標轉換后對應的圖像坐標

''table 111-114,表示定位器區域roi參數,屬于控件坐標系

''table 121-124,表示橡皮擦區域roi參數,屬于控件坐標系

'***********定義程序任務相關變量**********************

'主任務狀態

'0 - 未初始化

'1 - 停止

'2 - 運行中

'3 - 正在停止

GLOBAL DIM main_task_state

main_task_state = 1

'運行任務開關

GLOBAL DIM run_switch

run_switch = 0

'采集任務開關

'0 - 停止采集

'1 - 請求采集

GLOBAL DIM grab_switch

grab_switch = 0

'定位檢測主任務id - 10

GLOBAL DIM main_task_id

main_task_id = 10

'相機連續采集線程id - 7

GLOBAL DIM grab_task_id

grab_task_id = 7

'***********結束定義程序任務相關變量******************

'***********定義相機采集相關變量**********************

'相機種類,"",此處使用海康相機-"mvision"

GLOBAL DIM CAMERA_TYPE(100)

'CAMERA_TYPE = "mindvision;basler;mvision;huaray;basler;zmotion"

CAMERA_TYPE = "mvision"

'相機個數

GLOBAL cam_num

cam_num = 0

'相機模式,-1 連續采集,0-觸發采集

GLOBAL cam_mode

cam_mode = 0

'***********結束定義相機采集相關變量******************

'定義返回主界面標志,1-已返回,0-未返回

GLOBAL DIM d_is_rtn_loc

d_is_rtn_loc = 1

'***********定義模板相關變量*************************

'定義創建模板標志位,1-已創建模板,0-未創建模板

GLOBAL DIM d_is_creModel

d_is_creModel = 0

'學習模板參數,starAngle、endAngle、minScale、maxScale、thresh、numlevel、reduce、angleStep、scaleStep

GLOBAL DIM d_mod_param(9)

'***********結束定義模板相關變量**********************

'***********定義編輯模板相關變量*********************

'定義編輯模板標志,0-表示不編輯模板,1-表示編輯模板

GLOBAL DIM d_edit_m

d_edit_m = 0

'定義使用橡皮擦功能標志,0-表示恢復擦除的區域,1-表示擦除區域

GLOBAL DIM d_isMask_m

d_isMask_m = 1

'定義橡皮擦的roi參數,依次是矩形左上角和右下角圖像坐標x、y、x、y

GLOBAL DIM d_locator_roi(4),d_eraser_roi(4)

'定義正方形橡皮擦尺寸寬度

GLOBAL DIM d_eraser_size

d_eraser_size = 5

'定義界面控件上橡皮擦的矩形區域

GLOBAL DIM c_rect(4)

'定義鼠標狀態標志,0-表示鼠標處于松開狀態,1-表示鼠標處于按下狀態

GLOBAL DIM d_mouse_s

d_mouse_s = 0

'***********結束定義編輯模板相關變量******************

'***********定義匹配檢測相關變量*********************

'匹配檢測參數,minScore、matchNum、minDist、thresh、accuracy、speed、polor

GLOBAL DIM d_match_param(7)

'定義學習模板的roi參數和橡皮擦的roi參數,依次是矩形左上角和右下角圖像坐標x、y、x、y

GLOBAL DIM d_locator_roi(4),d_eraser_roi(4)

'匹配結果,score、x、y、angle、scale, 目前對于多目標匹配也只存第一個目標

GLOBAL DIM d_match_rst(5)

GLOBAL DIM d_match_time '定義匹配定位消耗的時間變量

d_match_time = 0

'***********結束定義匹配檢測相關變量******************

'定義程序執行過程中緩存中間圖片和結果圖片的變量

GLOBAL ZVOBJECT grabImg

GLOBAL ZVOBJECT subImg,copy_subImg,colorSubImg, s_mod

GLOBAL ZVOBJECT modRe

RUN"Hmi1.hmi",1

4

在InitLocator.bas文件中初始化測量參數。

end

GLOBAL SUB init_meas_param() '初始化測量參數

'初始化定位器roi參數

d_locator_roi(0) = 240 '左上角x

d_locator_roi(1) = 180 '左上角y

d_locator_roi(2) = 400 '右下角x

d_locator_roi(3) = 300 '右下角y

'初始化模板參數

d_mod_param(0) = -180 '起始角度

d_mod_param(1) = 180 '終止角度

d_mod_param(2) = 1 '最小縮放

d_mod_param(3) = 1 '最大縮放

d_mod_param(4) = 80 '閾值

d_mod_param(5) = 0 '默認金字塔層數

d_mod_param(6) = 0 '默認約簡特征點

d_mod_param(7) = 0 '默認角度步長

d_mod_param(8) = 0 '默認縮放步長

'初始化匹配測量參數

d_match_param(0) = 50 '最小分數

d_match_param(1) = 1 '匹配個數

d_match_param(2) = 0 '默認最小間距

d_match_param(3) = 40 '最小閾值

d_match_param(4) = 0 '精度

d_match_param(5) = 9 '速度

d_match_param(6) = 0 '極性

'初始化匹配定位結果

d_match_rst(0) = 0 '分數

d_match_rst(1) = 0 '位置X

d_match_rst(2) = 0 '位置Y

d_match_rst(3) = 0 '角度

d_match_rst(4) = 0 '比例

'初始化匹配定位消耗時間

d_match_time = 0

END SUB

5

關聯主界面值顯示控件變量。

運動控制

6

在main.bas文件中添加主界面初始化函數。

'HMI界面初始化函數,上電執行一次

GLOBAL SUB hmi_init()

grab_switch = 0 '初始化采集任務開關,不開啟采集任務

main_task_state = 1 '初始化定位檢測主任務狀態為停止狀態1

ZV_LATCHSETSIZE(0, HMI_CONTROLSIZEX(10, 2), HMI_CONTROLSIZEY(10, 2)) '設置鎖存的大小

init_meas_param() '初始化測量參數

ZV_IMGGENCONST(subImg,40,30,1,0,0) '初始化模板子圖像

'初始化一些全局參數

ZVOBJECT contlist1, tsContlist1, mat_rigid1

ZVOBJECT contlist2, tsContlist2, mat_rigid2

ZV_READIMAGE(grabImg,"1.bmp",1) '讀取.../flash目錄下的show.bmp的灰度圖像,存放到grabImg變量中

ZV_LATCH(grabImg,0) '顯示到鎖存通道0中,作為顯示區域背景圖片

END SUB

7

在camera.bas文件中添加主界面中采集相關按鈕響應的函數并關聯動作函數。

運動控制

end

'主界面按下掃描相機按鈕時響應的函數

GLOBAL SUB cam_scan_all()

ZV_SETSYSINT("LogLevel", 7) '設置控制器信息

ZV_SETSYSSTR("DataDir","")

CAM_SCAN(CAMERA_TYPE) '掃描相機,CAMERA_TYPE="mvision"

cam_num = CAM_COUNT() '獲取掃描到的相機數量

if (0 = cam_num) then '如果相機數量=0,打印提示信息

? "未找到相機"

return '退出子函數,不往下執行

endif

?"cam_num = " cam_num '如果掃描到相機,打印相機數量

cam_mode = 0 '設置軟觸發采集

CAM_SEL(0) '選擇掃描到的第一個相機進行操作

CAM_SETEXPOSURE(100000) '設置相機曝光時間為100000us

CAM_SETMODE(cam_mode) '設置軟件觸發模式

CAM_START(0) '開啟相機

END SUB

'主界面按下單次采集按鈕執行的函數

GLOBAL SUB btn_grab()

if cam_num = 0 then

?"請先掃描相機!"

return

endif

CAM_SETPARAM("TriggerSoftware", 0)

CAM_GET(grabImg, 0)

ZV_LATCH(grabImg, 0)

ZV_IMGINFO(grabImg,3000) '獲取grabImg變量緩存的圖片的基本信息,并存放到起始地址為3000的table數組中

end sub

'主界面按下連續采集按鈕響應的函數

GLOBAL SUB btn_cgrab()

if grab_switch =1 then

?"正在連續運行中,請勿重復操作!"

return

endif

if cam_num = 0 then

?"請先掃描相機!"

return

endif

grab_switch = 1

if (1 = grab_switch) then

if (0 = PROC_STATUS(grab_task_id)) then

RUNTASK grab_task_id, grab_task

endif

endif

end sub

'采集任務實現函數

grab_task:

while(1)

if (0 = grab_switch) then

exit while

endif

CAM_START(0) '開啟相機

CAM_SETPARAM("TriggerSoftware", 0)

CAM_GET(grabImg, 0)

ZV_LATCH(grabImg, 0)

wend

END

'主界面按下停止采集按鈕響應的函數

GLOBAL SUB btn_stopCgrab()

if grab_switch =0 then

?"未開啟連續采集!"

return

endif

grab_switch = 0

end sub

運動控制

8

點擊[元件]→[新建窗口],新建學習模板窗口,設計窗口布局。

運動控制

注意:需要設置窗口壟斷屬性。

9

在draw.bas文件中添加主界面【學習模板】按鈕響應的函數并關聯動作函數。

運動控制

'主界面按下學習模板按鈕時響應的函數

GLOBAL SUB btn_sel_loc()

ZV_LATCHSETSIZE(0, HMI_CONTROLSIZEX(11, 60), HMI_CONTROLSIZEY(11, 60)) '設置創建模板窗口鎖存通道0的鎖存大小

SET_COLOR(RGB(0,255,0)) '指定draw指令使用的顏色

ZV_LATCHCLEAR(0) '將鎖存通道0清空

ZV_LATCH(grabImg, 0) '顯示采集圖像顯示到鎖存通道0中

ZV_LATCH(colorSubImg, 1) '顯示模板圖像顯示到鎖存通道1中

'圖像roi坐標轉控件roi

is_redraw = 0

d_is_rtn_loc = 0

TABLE(111, d_locator_roi(0), d_locator_roi(1),d_locator_roi(2),d_locator_roi(3))

ZV_POSFROMIMG(0, 2, 111, 111) '圖像坐標轉換到HMI控件坐標

HMI_SHOWWINDOW(11)

END SUB

運動控制

10

在draw.bas文件中添加模板區域更新繪制函數。

'根據鼠標操作更新定位器的區域即學習模板的有效區域

GLOBAL SUB update_locator()

if mouse_scan(21) = 1 then '掃描鼠標按下操作

is_set_roi_m_down = 1

sr_mpos_x = table(21)

sr_mpos_y = table(22)

hit_pos = ZV_HMIADJRECT(sr_mpos_x, sr_mpos_y, 111, -1) '只有按下時可以改變擊中位置

is_redraw = 1

endif

if mouse_scan(21) = -1 then '掃描鼠標松開操作

is_set_roi_m_down = 0

sr_mpos_x = table(21)

sr_mpos_y = table(22)

ZV_HMIADJRECT(sr_mpos_x, sr_mpos_y, 111, hit_pos)

is_redraw = 1

endif

if (is_set_roi_m_down and MOUSE_state(21)) then

sr_mpos_x = table(21)

sr_mpos_y = table(22)

ZV_HMIADJRECT(sr_mpos_x, sr_mpos_y, 111, hit_pos)

is_redraw = 1

endif

if (1 = is_redraw) then

'控件roi坐標轉圖像roi坐標

is_redraw = 0

ZV_POSTOIMG(0, 2, 111, 50) 'TABLE(50)作為中間變量臨時使用

d_locator_roi(0) = TABLE(50)

d_locator_roi(1) = TABLE(51)

d_locator_roi(2) = TABLE(52)

d_locator_roi(3) = TABLE(53)

SET_REDRAW

endif

END SUB

'根據更新的鼠標位置坐標繪制定位器roi

GLOBAL SUB draw_locator()

DRAWRECT(TABLE(111), TABLE(112), TABLE(113), TABLE(114))

local cx,cy

cx = (TABLE(111) + TABLE(113)) / 2

cy = (TABLE(112) + TABLE(114)) / 2

DRAWLINE(cx-5, cy, cx+5, cy) '中心十字線

DRAWLINE(cx, cy-5, cx, cy+5)

END SUB

11

在main.bas文件中添加【截取模板】按鈕響應的函數并關聯動作函數。

運動控制

'創建模板界面按下截取模板按鈕后響應的函數

global sub btn_getSubImg()

LOCAL mod_w,mod_h

ZV_IMGGETSUB(grabImg, subImg, d_locator_roi(0), d_locator_roi(1), d_locator_roi(2)-d_locator_roi(0)+1, d_locator_roi(3)-d_locator_roi(1)+1)

ZV_IMGINFO(subImg,0)

mod_w = TABLE(0)

mod_h = TABLE(1)

ZV_REGENRECT(modRe,0,0,mod_w, mod_h)

ZV_LATCHCLEAR(1)

ZV_LATCH(subImg, 1)

end sub

運動控制

12

點擊[元件]→[新建窗口],新建編輯模板窗口,設計窗口布局。

運動控制

注意:需要設置窗口壟斷屬性。

13

在draw.bas文件中添加創建模板界面【橡皮擦】按鈕響應的函數并關聯動作函數。

運動控制

'創建模板界面按下橡皮擦按鈕時響應的函數

GLOBAL SUB btn_sel_erase()

ZV_LATCHSETSIZE(1, HMI_CONTROLSIZEX(12, 1), HMI_CONTROLSIZEY(12, 1)) '設置鎖存的大小

SET_COLOR(RGB(0,255,0)) '設置繪制時畫筆使用的顏色

ZV_LATCHCLEAR(1) '清空鎖存

ZV_IMGCOPY(subImg, copy_subImg) '復制模板子圖像到copy_subImg圖像變量中

ZV_REGION(copy_subImg, modRe, 1, 0) '在模板圖像上繪制modRe圖像的非有效區域,繪制顏色為黑色,用于掩模

ZV_LATCH(copy_subImg, 1) '顯示復制的模板圖

HMI_SHOWWINDOW(12) '打開編輯模板窗口

end sub

運動控制

14

在draw.bas文件中添加橡皮擦更新繪制函數。

'根據鼠標操作更新橡皮擦擦除/恢復區域的位置

GLOBAL SUB update_eraser()

DIM c_size_eraser '橡皮擦在控件上對應的尺寸

DIM eraser_pos_x,eraser_pos_y

d_mouse_s = MOUSE_STATE(21) '鼠標處于按下狀態時

eraser_pos_x = TABLE(21)

eraser_pos_y = TABLE(22)

c_size_eraser = ZV_LENFROMIMG(0, d_eraser_size) '將橡皮擦的圖像尺寸轉換成控件尺寸

c_rect(0, eraser_pos_x - c_size_eraser, eraser_pos_y - c_size_eraser, eraser_pos_x + c_size_eraser, eraser_pos_y + c_size_eraser)

'繪制以(eraser_pos_x,eraser_pos_y)為中心,2*c_size_eraser為邊長的正方形橡皮擦區域

DIM hmi_w,hmi_h

if (eraser_pos_x >= c_size_eraser) and (eraser_pos_y >= c_size_eraser) and (eraser_pos_x <= HMI_CONTROLSIZEX(12, 1) - c_size_eraser)and (eraser_pos_y <= HMI_CONTROLSIZEy(12, 1) - c_size_eraser) THEN

SET_REDRAW(0,0, HMI_CONTROLSIZEX(12, 1), HMI_CONTROLSIZEY(12, 1))'重新繪制編輯模板窗口上的鎖存通道0區域

endif

if d_mouse_s = 1 and d_edit_m = 1 then '如果鼠標處于按下狀態且編輯模板標志=1時

btn_pro_eraser() '執行處理橡皮擦函數

endif

END SUB

'處理橡皮擦函數

global sub btn_pro_eraser()

ZVOBJECT tmp_re

TABLE(121, c_rect(0), c_rect(1))

ZV_POSTOIMG(1, 1, 121, 121)

ZV_REGENRECT(tmp_re, TABLE(121), TABLE(122), 2 * d_eraser_size + 1, 2 * d_eraser_size + 1)

if (d_isMask_m = 1) then '屏蔽

ZV_REDIFF(modRe, tmp_re, modRe) '計算modRe和tmp_re的差集并存放到modRe中

else '恢復

ZV_REUNION(modRe, tmp_re, modRe) '計算modRe和tmp_re的并集并存放到modRe中

endif

ZV_IMGCOPY(subImg, copy_subImg) '復制模板子圖像到copy_subImg圖像變量中

ZV_REGION(copy_subImg, modRe, 1, 0) '在模板圖像上繪制modRe圖像的非有效區域,繪制顏色為黑色,用于掩模

ZV_LATCH(copy_subImg, 1) '顯示復制的模板圖

end sub

'更新繪制橡皮擦區域

GLOBAL SUB draw_eraser()

if d_edit_m = 0 then '如果編輯模板標志

return '返回子函數,不繼續往下執行

endif

DRAWRECT(c_rect(0), c_rect(1), c_rect(2), c_rect(3))'繪制橡皮擦區域

END SUB

15

在main.bas文件中添加編輯模板界面【創建模板】按鈕響應的函數并關聯動作函數。

運動控制

'編輯模板界面按下創建模板按鈕時響應的函數

GLOBAL SUB btn_loc_creModel()

d_is_creModel = 1

ZV_SHAPECREATERE(subImg, modRe,s_mod, d_mod_param(0), d_mod_param(1), d_mod_param(2), d_mod_param(3), d_mod_param(4), d_mod_param(5), d_mod_param(6), d_mod_param(7), d_mod_param(8))

'創建模板

ZV_SHAPECONTOURS(s_mod, contlist1, 0) '獲取第0層金字塔上的模板輪廓

ZV_GRAYTORGB(subImg, colorSubImg) '灰度圖轉換成RGB圖

ZV_IMGINFO(colorSubImg, 0) '獲取colorSubImg圖像信息,并存放到table0中

ZV_GETRIGIDVECTOR(mat_rigid1, 0, 0, 0, TABLE(0)/2, TABLE(1)/2, 0)'計算剛性變換矩陣

ZV_CONTAFFINE(contlist1, mat_rigid1, tsContlist1)'對輪廓或輪廓序列進行仿射變換

ZV_CONTLIST(colorSubImg, tsContlist1, ZV_COLOR(0, 255, 0), 0)'在colorSubImg圖像上繪制綠色的輪廓序列

ZV_LATCHCLEAR(2)

ZV_LATCH(colorSubImg, 2)

end sub

運動控制

16

在draw.bas文件中添加編輯模板界面【確定】按鈕響應的函數并關聯動作函數。

運動控制

'編輯模板界面按下確定按鈕時執行的函數

GLOBAL SUB btn_erase_cfm()

ZV_LATCHCLEAR(0)

ZV_LATCH(grabImg, 0) '顯示圖像在鎖存上

HMI_CLOSEWINDOW(12) '關閉編輯模板窗口

END SUB

運動控制

17

在main.bas文件中添加創建模板界面【測試】按鈕響應的函數并關聯動作函數。

運動控制

'創建模板界面按下測試按鈕時響應的函數

GLOBAL SUB btn_loc_test()

if (d_is_creModel = 0) then

?"未創建模板!"

return

endif

'開始匹配

TICKS = 0

ZVOBJECT match_rst, sImg, colorImg

ZV_GAUSSBLUR(grabImg, sImg, 3)

ZV_SHAPEFIND(s_mod, sImg, match_rst, d_match_param(0), d_match_param(1), d_match_param(2), d_match_param(3), d_match_param(4), d_match_param(5), d_match_param(6))

ZV_MATINFO(match_rst, 0)

ZV_GRAYTORGB(sImg, colorImg)

if TABLE(0) > 0 then

local rowr

for rowr = 0 to TABLE(0)-1

ZV_MATGETROW(match_rst, rowr, 5, 3) '獲取match_rst矩陣中第rowr行的數據到table中,table最大長度5

if(rowr = 0) then

d_match_rst(0) = TABLE(3)

d_match_rst(1) = TABLE(4)

d_match_rst(2) = TABLE(5)

d_match_rst(3) = TABLE(6)

d_match_rst(4) = TABLE(7)

ZV_GETRIGIDVECTOR(mat_rigid1, 0, 0, 0, TABLE(4), TABLE(5), TABLE(6))'計算剛性變換矩陣

ZV_CONTAFFINE(contlist1, mat_rigid1, tsContlist1)'對輪廓或輪廓序列進行仿射變換

ZV_CONTLIST(colorImg, tsContlist1, ZV_COLOR(0, 255, 0), 0)'在colorSubImg圖像上繪制綠色的輪廓序列

endif

next

else

d_match_rst(0) = -1

d_match_rst(1) = -1

d_match_rst(2) = -1

d_match_rst(3) = -1

d_match_rst(4) = -1

endif

d_match_time = abs(TICKS) '匹配時間

ZV_LATCH(colorImg, 0)

end sub

運動控制

18

在draw.bas文件中添加創建模板界面【確定】按鈕響應的函數并關聯動作函數。

運動控制

'創建模板界面按下確定按鈕時響應的函數

GLOBAL SUB btn_loc_cfm()

grab_switch = 0 '關閉補正源的連續采集

d_is_rtn_loc = 1

ZV_LATCHCLEAR(0)

ZV_LATCH(grabImg, 0) '顯示圖像在鎖存上

ZV_LATCH(grabImg, 1) '顯示圖像在鎖存上

HMI_CLOSEWINDOW(11)

END SUB

運動控制

19

在main.bas文件中添加主界面【單次執行】按鈕響應的函數并關聯動作函數。

運動控制

'主界面按下單次執行按鈕時響應的函數

GLOBAL SUB btn_test()

btn_grab()'單次采集圖像

btn_loc_test() '匹配測試函數

END SUB

運動控制

20

在main.bas文件中添加主界面【連續運行】按鈕響應的函數并關聯動作函數。

運動控制

'主界面點擊連續運行按鈕時響應的函數

GLOBAL SUB btn_run()

if(run_switch = 1) then

?"已開啟連續運行,請勿重復操作!"

return

endif

run_switch = 1

if (1 = run_switch) then

if (0 = PROC_STATUS(main_task_id)) then

RUNTASK main_task_id, main_task

endif

endif

END SUB

'連續運行主任務內容

main_task:

while(1)

if (0 = run_switch) then

exit while

endif

'以下執行相關定位操作

btn_grab()

btn_loc_test()

wend

END

運動控制

21

在main.bas文件中添加主界面【停止運行】按鈕響應的函數并關聯動作函數。

運動控制



'主界面點擊停止執行按鈕時響應的函數

GLOBAL SUB btn_stop()

if(run_switch = 0) then

?"未開啟連續運行!"

return

endif

run_switch = 0

END SUB

運動控制

仿真演示效果

運動控制

本次,VPLC系列機器視覺運動控制一體機快速入門(三)——基于形狀匹配的視覺定位就分享到這里,更多精彩內容請關注“正運動小助手”公眾號。

本文由正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器視覺
    +關注

    關注

    162

    文章

    4379

    瀏覽量

    120404
  • 人工智能
    +關注

    關注

    1791

    文章

    47354

    瀏覽量

    238792
  • 工業控制
    +關注

    關注

    38

    文章

    1458

    瀏覽量

    85883
  • 工廠自動化
    +關注

    關注

    1

    文章

    47

    瀏覽量

    17243
  • 正運動技術
    +關注

    關注

    0

    文章

    102

    瀏覽量

    428
收藏 人收藏

    評論

    相關推薦

    高集成機器視覺運動控制一體機VPLC712!

    緊湊型機器視覺運動控制一體機
    的頭像 發表于 12-20 09:55 ?166次閱讀
    高集成<b class='flag-5'>機器</b><b class='flag-5'>視覺</b><b class='flag-5'>運動</b><b class='flag-5'>控制</b><b class='flag-5'>一體機</b><b class='flag-5'>VPLC</b>712!

    機器視覺運動控制一體機在DELTA并聯機械手視覺上下料應用

    機器視覺運動控制一體機在DELTA并聯機械手視覺上下料的應用
    的頭像 發表于 10-24 09:02 ?406次閱讀
    <b class='flag-5'>機器</b><b class='flag-5'>視覺</b><b class='flag-5'>運動</b><b class='flag-5'>控制</b><b class='flag-5'>一體機</b>在DELTA并聯機械手<b class='flag-5'>視覺</b>上下料應用

    聚徽-工控一體機有什么創新

    工控一體機作為新代的工業控制設備,具有多項創新點,這些創新使得工控一體機能夠更好地滿足工業控制的需求,提高自動化生產的效率和質量。
    的頭像 發表于 09-14 09:34 ?317次閱讀

    藍海華騰參股公司頂控科技發布運動控制一體機系列產品

    藍海華騰參股公司深圳市頂控科技有限公司運動控制一體機系列產品上市!本次新品發布會發布系列產品
    的頭像 發表于 09-03 09:28 ?527次閱讀

    機器視覺運動控制一體機VPLC532E在汽車膠帶纏繞的開放式CNC應用

    機器視覺運動控制一體機VPLC532E在汽車膠帶纏繞的開放式CNC應用
    的頭像 發表于 08-19 10:03 ?340次閱讀
    <b class='flag-5'>機器</b><b class='flag-5'>視覺</b><b class='flag-5'>運動</b><b class='flag-5'>控制</b><b class='flag-5'>一體機</b><b class='flag-5'>VPLC</b>532E在汽車膠帶纏繞的開放式CNC應用

    VPLC系列機器視覺運動控制一體機在五軸聯動點膠上的應用

    技術針對現有市場需求,開發了種基于VPLC系列機器視覺運動
    發表于 07-29 14:29

    聚徽觸控-工控一體機和 PLC 一體機有什么不同

    在工業自動化領域,工控一體機和 PLC 一體機都扮演著重要角色。盡管它們在某種程度上有所重疊,但它們在功能、應用和設計結構等方面存在顯著的不同。工控一體機和 PLC 一體機有什么不同,
    的頭像 發表于 06-21 10:05 ?488次閱讀

    集特一體機

    顯卡一體機
    jf_67464575
    發布于 :2024年05月22日 09:05:55

    工業一體機在物聯網領域的應用

    工業一體機在物聯網領域的應用變得愈發重要,工業一體機作為種集計算、控制、通信于一體的設備,具備了在物聯網環境下應用的獨特特點.
    的頭像 發表于 05-18 16:54 ?323次閱讀

    基于VPLC711的曲面外觀檢測XYR運動控制解決方案

    中心線永遠與產品表面垂直(曲面處相機中心線始終與切線方向垂直)。 (2)相機到被檢測產品的距離保持致,任何位置L1=L2 VPLC711機器視覺
    發表于 04-16 17:58

    機器視覺運動控制一體機在喇叭跟隨點膠上的應用

    等問題。 正運動技術視覺點膠整體解決方案: 在此背景下,正運動技術的視覺點膠整體解決方案脫穎而出,方案是基于VPLC
    發表于 04-16 17:37

    機器視覺運動控制一體機在光伏匯流焊機器人系統的解決方案

    一體機結合SCARA機械手+機器視覺的電池片匯流焊解決方案。可解決不同角度來料、規格等光伏太陽能電池板的串焊需求,實現生產效率和精度等大幅提升,同時將廢品率降至僅12%,并顯著加快數據處理速度,提高了
    發表于 02-28 15:01

    人臉考勤打卡一體機

    一體機
    jf_66410442
    發布于 :2024年01月09日 11:09:22
    主站蜘蛛池模板: 欧美综合天天夜夜久久| 日日夜夜精品| 国产va在线观看| 丁香花在线视频观看免费| 国产黄色片网站| 成人5252色| 91福利免费视频| 黄色在线播放视频| 激情五月综合| 粉嫩尤物在线456| 亚洲激情四射| 国产真实乱在线更新| 午夜视频免费在线观看| 黄 色 片 在 线 看| 日本三级在线视频| 欧美无遮挡国产欧美另类| 亚洲伊人成人网| 亚洲女同一区二区| 女同性大尺度床戏视频| 性欧美高清极品xx| 在线观看中文字幕一区| 黄网站色视频大全免费观看| 国产在线观看黄色| 男女交性视频免费播放视频| 亚洲二区视频| 黄色欧美网站| 国产精品乱码高清在线观看| 亚洲不卡视频在线观看| 种子搜索在线| 国产亚洲一区二区三区啪| 亚洲人成人| 亚洲日韩图片专区第1页| 视频在线你懂的| 一及黄色| 欧美性色黄在线视| 国产 日韩 欧美 高清| 天天射天天干天天色| 91在线播放免费不卡无毒| 男女免费观看视频| 四虎884| 狠狠色丁香婷婷久久|