中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

產品分類

當前位置: 首頁 > 工業電氣產品 > 端子與連接器 > 線路板連接器 > FFC連接器

類型分類:
科普知識
數據分類:
FFC連接器

機器視覺運動控制一體機應用例程(七)齒輪缺齒檢測

發布日期:2022-04-25 點擊率:66

  • 關鍵詞:正運動技術,機器視覺,運動控制一體機


  • 摘要:齒輪缺齒是其生產制造過程中的一個重大缺陷,需通過檢測技術進行規避。如果使用人工進行檢測,不僅會增加人工成本,且檢測時容易漏檢或者由于注意力不集中而導致誤判,因此我們引入了機器視覺檢測技術進行齒輪缺齒檢測。


image.png


齒輪缺齒是其生產制造過程中的一個重大缺陷,需通過檢測技術進行規避。如果使用人工進行檢測,不僅會增加人工成本,且檢測時容易漏檢或者由于注意力不集中而導致誤判,因此我們引入了機器視覺檢測技術進行齒輪缺齒檢測。


機器視覺齒輪檢測為非接觸式的無損檢測方法,與傳統人工檢測相比,具有不可取代的優越性。

 

機器視覺齒輪檢測系統在追求高速度、高效率、高重復性和精確度的工業生產制造過程中也更為可靠,把機器視覺檢測方法用于制造系統是工業發展的方向和必然趨勢,也是提高生產效率的有效途徑。


上期課程,我們講述了機器視覺方案中液位檢測的應用例程,本期課程我們和大家一起分享機器視覺齒輪缺輪檢測的應用例程。


一檢測原理


(一)檢測要求


檢測齒輪狀產品外邊緣上的輪齒是否完整,如有缺失返回“NG”狀態,并顯示位置信息。若齒輪完整,則返回“OK”狀態。


image.png


(二)軟件算法


image.png


二軟件實現


(一)軟件實現


1.打開ZDevelop軟件:新建項目→新建“HMI”文件→新建“main.bas”文件,用于編寫界面響應函數→新建“global_variable.bas”文件用于存放全局變量并開啟HMI自動運行任務→新建“detectParam.bas”文件用于初始化測量參數→新建“camera.bas”文件用于實現相機采集功能→文件添加到項目。


image.png


2.設計HMI界面。


image.png


3.在“global_variable.bas”文件中定義全局變量,定義完成后運行“Hmi.hmi”文件。


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

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

''table        說明                 table            說明

''0  '    自動二值化閾值            11~12   鼠標操作時獲取的坐標

''2       亮區域的面積            20~24   圖像信息

''4       暗區域的面積            6       齒輪的數量   

''40~42  齒輪的面積和位置X,Y數據          


'主任務狀態

'0 - 未初始化

'1 - 停止

'2 - 運行中

'3 - 正在停止

GLOBAL DIM main_task_state

main_task_state = 1


'采集開關

'0 - 停止采集

'1 - 請求采集

GLOBAL DIM grab_switch

grab_switch = 0


'相機個數

GLOBAL cam_num

cam_num = 0


'相機種類,"zmotion;mvision;basler;mindvision;huaray"

GLOBAL DIM CAMERA_TYPE(16)

CAMERA_TYPE = "mvision"


' 定義主任務id - 10

GLOBAL DIM main_task_id

main_task_id = 10


'定義連續采集任務id - 9

GLOBAL DIM grab_task_id

grab_task_id = 9


'定義全局圖像變量

GLOBAL ZVOBJECT grabImg '采集圖像

GLOBAL ZVOBJECT disImg '顯示圖像


'定義常用顏色變量

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)


'檢測參數:閾值模式(自動閾值或手動閾值)、低閾值、高閾值、最小面積、最大面積

GLOBAL DIM d_detect_param(5) 'd開頭表示數據結構


'檢測消耗時間

GLOBal DIM d_detect_time


'顯示打印的字符

GLOBAL ShowString(64)

GLOBAL ShowString1(64)


'***********定義讀取本地文件功能相關變量**************

''注意,該功能只在使用仿真器時有效

'定義是否使用本地圖片標志

GLOBAL DIM d_use_imgfile


'定義本地圖片索引

GLOBAL DIM d_index


'定義讀取圖片的路徑

GLOBAL DIM File_Name(100)   


'***********結束定義讀取本地文件功能相關變量**********


'運行HMI文件

RUN "Hmi.hmi",1

4.在“detectParam.bas”文件中初始化測量參數。


end


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

    

    '初始化檢測參數:閾值模式(自動閾值 = 1 或 手動閾值 = 0)、低閾值、高閾值、極性(黑或白)、最大、最小、反向(即結果取反,成功變成失敗、失敗變成成功)

    d_detect_param(0) = 0         '手動閾值

    d_detect_param(1) = 140       '低閾值

    d_detect_param(2) = 255       '高閾值

    d_detect_param(3) = 160000    '最小面積即像素個數

    d_detect_param(4) = 180000    '最大面積

  

    d_use_imgfile = 1             '默認使用本地圖片

    d_index      = 0

    

    TABLE(6)=0                    '將齒輪數量初始化為0


END SUB

5.關聯HMI界面控件變量。


image.png


6.在“main.bas”文件中添加HMI界面初始化函數并在Hmi系統設置中關聯初始化函數。


'HMI界面初始化函數

GLOBAL SUB hmi_init()

    grab_switch = 0              '停止采集

    main_task_state = 1          '主任務停止運行

    ZV_RESETCLIPSIZE(1280, 960)  '依據圖像分辨率設置區域的裁剪尺寸,此處圖像分辨率為1280x960

    ZV_LATCHSETSIZE(0, HMI_ConTROLSIZEX(10, 7), HMI_ConTROLSIZEY(10, 7)) '設置鎖存的大小

    init_detect_param()          '初始化測量參數

    ZV_SETSYSDBL("CamGetTimeout", 1000) '設置采集超時

    ZV_SETSYSINT("LineWidth",6)

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

  

END SUB

image.png


7.在“camera.bas”文件中添加HMI界面中采集相關按鈕響應的函數并關聯動作函數。(說明:具體實現函數前兩篇課程內容已經有操作演示,此處不做贅述。)

image.png


8.在“main.bas”文件中添加HMI界面按下【測試】按鈕時響應的函數并關聯動作函數名。


'HMI界面按下測試按鈕時響應的函數

GLOBAL SUB btn_test()

    TABLE(6)=0   '檢測前先將結果數據清0

    d_detect_time=0

    TICKS=0

    '定義變量,依次為白色像素連通區域,掩模區域,黑色像素連通區域,齒輪連通區域結果列表,單個齒輪連通區域,圓環區域,齒輪齒牙連通區域

    ZVOBJECT regionWhite, regionMask, regionBlack,re_connecte,circle_connect,region,re_connecte1

    

     '生成全圖像區域

    ZV_REGENFULLIMG(grabImg,regionMask)

  

    '二值化處理

    if d_detect_param(0) = 0 then    '如果選擇手動閾值模式

            '根據低閾值和高閾值參數生成白色像素圖像regionWhite

          ZV_RETHRESH(grabImg, regionMask, regionWhite, d_detect_param(1), d_detect_param(2))

          '對白色像素區域進行一次1*1的開運算

          ZV_REOPENING(regionWhite,regionWhite,3,3)

          '對白色像素區域進行一次1*1的閉運算

          ZV_RECLOSING(regionWhite,regionWhite,3,3)

    

    else                             '如果選擇自動閾值模式

    

          Dim autoThresh               '定義自動閾值模式下的二值化閾值

          '在grabImg圖像中的指定區域內對圖像進行自動二值化處理,輸出二值化區域regionWhite 

          ZV_REAUTOTHRESH(grabImg, regionMask, regionWhite, 0)

          '對白色像素區域進行一次1*1的開運算

          ZV_REOPENING(regionWhite,regionWhite,1,1)

          '對白色像素區域進行一次1*1的閉運算

          ZV_RECLOSING(regionWhite,regionWhite,1,1)

          autoThresh = TABLE(0)

          ? "autoThresh = " autoThresh  '打印提示信息,當前二值化閾值

        

    endif

    

    ZV_REDIFF (regionMask, regionWhite, regionBlack)   '差集運算,結果為regionBlack(黑色像素區域)

    ZV_REAREA(regionBlack, 500)                         '計算黑色像素區域的面積(即像素數量)存放到table(500)中

    if(TABLE(500)>0) then '如果獲取到的黑色像素數量大于0                 

         ZV_REConNECT(regionBlack,re_connecte)     '計算區域的連通區域,存放到re_connecte列表中

         zv_refilter(re_connecte,0,d_detect_param(3),d_detect_param(4),0)'對區域列表中的區域進行過濾,保留面積在 d_detect_param(3) 到 d_detect_param(4) 的區域,面積不在此范圍的區域將被過濾掉

         zv_refilter(re_connecte,20,0.9,1.2,0)'對區域列表中的區域進行過濾,保留最小外接矩形高寬比在0.9 到 1.2 的區域,面積不在此范圍的區域將被過濾掉

         ZV_LISTCOUNT(re_connecte,6)     '獲取列表中的連通區域的數量,存放到table(6)中 

    endif

    

    '繪制效果圖

    Dim width, height

    ZV_IMGINFO (grabImg, 20)'獲取grabImg的圖像信息

    width = TABLE(20)

    height = TABLE(21)

    ZV_GRAYTORGB(grabImg,disImg)'將灰度圖轉換到RGB圖像,用于繪制檢測結果圖像

    

  

    ZV_REGION(disImg, regionMask, 0, ZV_COLOR(0,0,0))      '繪制黑色的regionMask區域

    ZV_REGION(disImg, regionWhite, 0, ZV_COLOR(255,255,255))'繪制白色的regionWhite區域

    

    for i=0 to TABLE(6)-1     '循環獲取齒輪的位置XY信息生成圓環區域,檢測是否缺齒

          ZV_LISTGET(re_connecte,circle_connect,i)   '獲取列表中序號為i的元素,即依次獲取列表中齒輪連通區域

          ZV_REAREACENTER(circle_connect,40)  '計算每個齒輪的面積與中心位置,將數據放入TABLE(40)中

            ZV_REGENANNULAR(region,TABLE(41),TABLE(42),220,260)'生成圓環區域

            '根據低閾值和高閾值參數生成白色像素圖像regionWhite

          ZV_RETHRESH(grabImg, region, regionWhite, d_detect_param(1), d_detect_param(2))

          ZV_REDIFF (region, regionWhite, regionBlack)'進行差集運算,結果為regionBlack(黑色像素區域)

          ZV_REConNECT(regionBlack,re_connecte1)     '計算圓環區域內的黑色連通區域,存放到re_connecte列表中

          zv_refilter(re_connecte1,0,1000,3000,0)    '對區域列表中的連通區域進行面積過濾

          

          ZV_LISTCOUNT(re_connecte1,8)     '獲取單個齒輪齒牙的數量,存放到table(8)中 

          

          if TABLE(8)=25 then  

              ZV_TEXT(disImg,"OK",TABLE(41),TABLE(42),70,ZV_COLOR(0,255,0)) '顯示結果文本

          else   

              ShowString=TOSTR(TABLE(41),1,2)

              ShowString1=TOSTR(TABLE(42),1,2)

              ZV_TEXT(disImg,"NG,"ShowString","ShowString1,TABLE(41),TABLE(42),55,ZV_COLOR(255,0,0)) '顯示結果文本

          endif

          ZV_MARKER(disImg,TABLE(41),TABLE(42),0,50,zv_color(0,255,0))   '在圖像img中繪制十字

          next

          ZV_LATCH(disImg, 0)     '在鎖存通道0中顯示結果圖像

          d_detect_time=ABS(TICKS)'計算檢測消耗時間


END SUB

image.png


9.在“main.bas”文件中添加【運行】按鈕響應的函數并關聯動作函數。


'HMI界面按下運行按鈕時響應的函數

GLOBAL SUB btn_run()

    if(2 = main_task_state) then           '如果主任務處于運行狀態,打印提示信息并退出函數

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

         return 

    endif

     

    if (1 = main_task_state) then          '如果主任務處于停止狀態

        if (0 = PROC_STATUS(main_task_id)) then '如果任務未開啟

            main_task_state = 2            '主任務狀態設置為2,表示正在執行連續任務

            RUNTASK  main_task_id, main_task  '開啟主任務

        endif

    endif

END SUB

image.png


10.在“main.bas”文件中添加【停止】按鈕響應的函數并關聯動作函數。


'HMI界面按下停止按鈕時響應的函數

GLOBAL SUB btn_stop()


    if (2 = main_task_state) then   '如果主任務狀態處于3即正在連續執行任務時

        main_task_state = 3           '將主任務狀態置為3,退出循環

    endif

  

END SUB

image.png


三操作演示


(一)操作步驟


查看運行效果:將控制器接入電源,使用網線將控制器與PC連接,將相機通電并接入控制器→將相機、光源安裝在打光測試架上,鏡頭連接到相機上→連接控制器,并將項目下載到控制器→運行程序,調整打光圖像效果,測試程序運行效果。


完整代碼獲取地址

image.png

本次,正運動技術機器視覺運動控制一體機應用例程(七)齒輪缺齒檢測,就分享到這里。


更多精彩內容請關注“正運動小助手”公眾號,需要相關開發環境與例程代碼,請咨詢正運動技術銷售工程師:400-089-8936。


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


下一篇: PLC、DCS、FCS三大控

上一篇: VPLC系列機器視覺運動

推薦產品

更多
中文字幕第二一区_久久久久在线视频_精品国产自在现线看久久_亚洲精品一区二区三区电影网

      国产精品a久久久久| 国产中文一区二区三区| 国产精品国产三级国产专播品爱网| 国产区二精品视| 国产婷婷色一区二区三区在线| 亚洲免费一级电影| 一本大道av伊人久久综合| 夜夜嗨av一区二区三区免费区| 国产日韩欧美中文| 韩国一区二区三区美女美女秀| 欧美日韩精品免费看| 国产精品入口夜色视频大尺度| 久久综合网色—综合色88| 欧美成人69av| 欧美日韩在线亚洲一区蜜芽| 国产精品午夜国产小视频| 一区二区三区亚洲| 亚洲四色影视在线观看| 久久精品午夜| 欧美日韩一区二区三区四区在线观看| 久久精品一区二区国产| 美女国内精品自产拍在线播放| 午夜综合激情| 欧美激情一区二区三区高清视频| 欧美呦呦网站| 欧美不卡福利| 国产精品ⅴa在线观看h| 一区二区在线免费观看| 一区二区三区国产精品| 鲁大师成人一区二区三区| 欧美视频在线观看一区二区| 激情久久久久久| 亚洲一区二区伦理| 欧美精品一区三区| 国产视频一区在线观看一区免费 | 亚洲人成人一区二区在线观看| 国产一区二区三区日韩欧美| 亚洲精品一区二区三区av| 久久福利精品| 国产美女一区二区| 一区二区三区日韩欧美精品| 欧美国产激情| 在线不卡免费欧美| 久久精品99无色码中文字幕 | 亚洲欧美制服中文字幕| 欧美二区不卡| 在线观看中文字幕不卡| 久久国产综合精品| 国产精品无码永久免费888| 日韩写真在线| 欧美精品日韩精品| 亚洲黄色在线视频| 免费观看成人网| 亚洲福利视频免费观看| 久久综合伊人77777蜜臀| 黑丝一区二区| 久久久久九九九九| 一区二区在线看| 老司机午夜精品| 在线观看国产精品网站| 免费91麻豆精品国产自产在线观看| 美女国内精品自产拍在线播放| 欧美福利影院| 99国产精品久久久久久久| 欧美韩日一区| 亚洲毛片网站| 欧美午夜片欧美片在线观看| 一区二区三区www| 欧美午夜在线一二页| 亚洲无人区一区| 国产亚洲精久久久久久| 久久久国际精品| 亚洲大片精品永久免费| 欧美精品久久久久久久免费观看 | 国产精品一区二区你懂得| 亚洲欧美日韩精品久久久| 国产欧美丝祙| 蜜桃av一区二区三区| 亚洲国产一区二区三区高清| 欧美激情综合色| 亚洲一区二区三区涩| 国产亚洲一区在线播放| 免费看av成人| 亚洲午夜激情网站| 韩国一区二区在线观看| 欧美日韩国产a| 欧美在线免费一级片| 在线欧美亚洲| 国产精品国产成人国产三级| 久久久久久欧美| 99re热这里只有精品免费视频| 久久久美女艺术照精彩视频福利播放| 欧美美女喷水视频| 亚洲永久免费观看| 在线观看日韩www视频免费| 欧美日韩国产片| 欧美一区二区三区在线视频| 亚洲毛片在线观看| 国产亚洲成精品久久| 欧美日韩精品在线| 久久免费视频观看| 在线性视频日韩欧美| 激情综合网激情| 国产精品入口| 欧美日韩精品欧美日韩精品 | 国产日韩专区| 欧美精品网站| 久久久人成影片一区二区三区观看| 国产精品一区二区你懂的| 欧美黄色影院| 久久久国产一区二区三区| 亚洲视频欧美视频| 亚洲国产精品99久久久久久久久| 久久久久久网站| 亚洲午夜精品国产| 亚洲精品自在在线观看| 国产综合色精品一区二区三区| 欧美伊人久久| 亚洲自拍偷拍福利| 亚洲精品久久7777| 亚洲国产精品久久人人爱蜜臀 | 在线综合亚洲欧美在线视频| 黑丝一区二区| 国产亚洲欧美在线| 国产欧美日韩综合一区在线观看| 亚洲欧美国内爽妇网| 一区二区三区视频在线看| 亚洲精品一区二区网址 | 亚洲人成在线观看一区二区| 在线不卡a资源高清| 在线观看日韩av电影| 国产日韩在线看| 国产欧美日韩亚洲| 国产欧美一区二区色老头| 国产伦精品一区二区三区高清| 亚洲欧美国产高清va在线播| 中日韩美女免费视频网址在线观看 | 亚洲深爱激情| 一区二区欧美国产| 中国女人久久久| 亚洲天堂成人在线观看| 一区二区三区日韩精品| 亚洲欧美国产高清va在线播| 亚洲欧美日韩爽爽影院| 欧美在线观看一区| 久久午夜精品一区二区| 欧美成人情趣视频| 欧美日韩在线不卡| 国产精品久久久久天堂| 国产亚洲福利| 亚洲福利视频专区| 99精品国产在热久久| 99在线精品视频在线观看| 亚洲视频自拍偷拍| 欧美一区二区视频网站| 美女网站在线免费欧美精品| 欧美精品在线免费| 国产欧美另类| 亚洲激情视频网站| 亚洲女爱视频在线| 久久久人人人| 欧美午夜精品久久久| 国产综合精品一区| 日韩视频在线永久播放| 午夜精品久久久久久久男人的天堂| 亚洲精品在线看| 亚洲视频在线看| 久久精品最新地址| 欧美日韩精品免费观看视一区二区| 久久在线免费观看视频| 欧美午夜精彩| 在线看日韩欧美| 亚洲一区高清| 男女精品网站| 国产午夜精品全部视频在线播放| 欧美日韩在线高清| 精品动漫3d一区二区三区免费| 欧美视频在线观看视频极品| 国内精品久久久久久久影视麻豆| 国产精品久久久久毛片大屁完整版| 欧美国产激情二区三区| 国产免费成人av| 亚洲欧洲日产国码二区| 欧美伊久线香蕉线新在线| 欧美成人在线免费观看| 国产一区二区高清不卡| 亚洲一级二级| 免费成人黄色片| 国产欧美日韩| 亚洲一级黄色| 欧美日本成人| 在线日韩电影| 久久久国产一区二区| 国产精品色在线| 日韩视频第一页| 欧美大片va欧美在线播放| 国外视频精品毛片| 欧美一区二区三区视频| 国产精品人人做人人爽人人添| 国产午夜亚洲精品羞羞网站|