环球电气之家-午夜精彩视频-中国专业电气电子产品行业服务网站!

產(chǎn)品分類

當(dāng)前位置: 首頁 > 工業(yè)控制產(chǎn)品 > 自動化控制 > PLC可編程控制器

類型分類:
科普知識
數(shù)據(jù)分類:
PLC可編程控制器

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

發(fā)布日期:2022-04-25 點擊率:32

  • 關(guān)鍵詞:正運動技術(shù),機(jī)器視覺,運動控制器


  • 摘要:此前,我們依次講解了軟硬件介紹及計數(shù)實例、相機(jī)的基本使用、基于形狀匹配的視覺定位、BLOB有無檢測、測量尺寸、機(jī)器視覺方案中使用到的標(biāo)定功能、ZDevelop軟件實現(xiàn)識別條形碼和二維碼,以及測量點/直線/圓的功能。


此前,我們依次講解了軟硬件介紹及計數(shù)實例、相機(jī)的基本使用、基于形狀匹配的視覺定位、BLOB有無檢測、測量尺寸、機(jī)器視覺方案中使用到的標(biāo)定功能、ZDevelop軟件實現(xiàn)識別條形碼和二維碼,以及測量點/直線/圓的功能。

本期課程我們和大家一起分享機(jī)器視覺中使用到的簡單的外觀檢測功能---檢測劃痕。


image.png


一、原理


外觀檢測是機(jī)器視覺技術(shù)中一個重要的檢測功能,它可以檢測產(chǎn)品表面的臟污、瑕疵、缺陷、毛邊、劃痕等不良因素。在包裝行業(yè)和生產(chǎn)制造業(yè)被廣泛應(yīng)用。


image.png


1.劃痕檢測的原理是什么?


由于劃痕是隨機(jī)出現(xiàn)且不具有固定形態(tài)的特征,因此無法使用匹配等定位功能檢測判斷劃痕。這時就需要用到形態(tài)學(xué)處理提取劃痕特征,再配合BOLB檢測判斷劃痕有無。


劃痕檢測是使用形態(tài)學(xué)方法(如頂帽算法)將灰度圖像轉(zhuǎn)換成二值化圖像后,提取劃痕的圖像特征,再使用BLOB檢測對劃痕的特征進(jìn)行有無檢測。


image.png


2.什么是頂帽算法?


頂帽算法是將原始的圖像(逐像素)減去開運算的圖像,得到開運算中消除的小面積的局部亮像素區(qū)域的一種形態(tài)學(xué)處理方法。


開運算是先進(jìn)行腐蝕,再進(jìn)行膨脹的一種形態(tài)學(xué)處理方法。開運算可以去除一些孤立的、細(xì)小的亮區(qū)域,平滑有毛刺的邊緣線,同時原區(qū)域的面積不會發(fā)生明顯變化。對于灰度值高于產(chǎn)品灰度值的(亮)劃痕可用頂帽算法檢測出來。


image.png


3.什么是黑帽算法?


黑帽算法是將閉運算圖像(逐像素)減去原始的圖像,得到閉運算中消除的小面積的局部暗像素區(qū)域的一種形態(tài)學(xué)處理方法。


閉運算是先進(jìn)行膨脹,再進(jìn)行腐蝕的一種形態(tài)學(xué)處理方法。閉運算可以去除一些孤立的、細(xì)小的暗區(qū)域,同時原區(qū)域的面積不會發(fā)生明顯變化。閉運算還可以填充小面積的亮區(qū)域的空洞,使分離的亮邊緣相連接。對于灰度值低于產(chǎn)品灰度值的(暗)劃痕可用黑帽算法檢測出來。


image.png


二、劃痕檢測特點


1.依賴形態(tài)學(xué)處理


需要將檢測圖像轉(zhuǎn)換成二值化圖像,并使用形態(tài)學(xué)處理圖像突出檢測特征。


2.無固定形狀特征


劃痕都是隨機(jī)出現(xiàn)的無特定形狀的特征,因此無法通過匹配進(jìn)行檢測。


3.基于BLOB檢測


提取出劃痕特征后需要使用BLOB檢測出連通的劃痕區(qū)域。


4.需要一定對比度


劃痕和待檢測產(chǎn)品需要滿足一定的對比度,才能使用形態(tài)學(xué)處理方法提取對應(yīng)特征。


image.png


檢測劃痕流程圖


1.打開ZDevelop軟件:新建項目→新建HMI文件→新建main.bas文件,用于編寫界面響應(yīng)函數(shù)→新建global_variable.bas文件用于存放全局變量并開啟HMI自動運行任務(wù)→新建InitParam.bas文件用于初始化測量參數(shù)→新建camera.bas文件用于實現(xiàn)相機(jī)采集功能→新建draw.bas文件用于更新繪制圖形刷新界面→文件添加到項目。


image.png


2.設(shè)計HMI界面。


image.png

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


'''''全局變量大部分使用數(shù)組結(jié)構(gòu)'''''

''注:basic編程中很多函數(shù)會以TABLE(系統(tǒng)的數(shù)據(jù)結(jié)構(gòu))做為參數(shù)

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


''table 21-22,鼠標(biāo)按鍵,控件坐標(biāo)系

''table 31-35,旋轉(zhuǎn)矩ROI參數(shù),cx、cy、width、height、angle,控件坐標(biāo)系

''table 41-45,旋轉(zhuǎn)矩形控件坐標(biāo)轉(zhuǎn)換后對應(yīng)的圖像坐標(biāo),圖像坐標(biāo)系


''table 51-56,圓環(huán)ROI參數(shù),cx、cy、圓環(huán)中線半徑r、圓環(huán)半寬ann_R、起始角度stAngle、角度范圍entAngle,控件坐標(biāo)系

''table 61-66,圓環(huán)控件坐標(biāo)轉(zhuǎn)換后對應(yīng)的圖像坐標(biāo),圖像坐標(biāo)系


'主任務(wù)狀態(tài)

'0 - 未初始化

'1 - 停止

'2 - 運行中

'3 - 正在停止

GLOBAL DIM main_task_state

main_task_state = 1


'采集開關(guān)

'0 - 停止采集

'1 - 請求采集

GLOBAL DIM grab_switch

grab_switch = 0


'相機(jī)個數(shù)

GLOBAL cam_num

cam_num = 0


'相機(jī)種類,"zmotion;mvision;basler;mindvision;huaray"

GLOBAL DIM CAMERA_TYPE(16)

CAMERA_TYPE = "mvision"


' 定義主任務(wù)id - 10

GLOBAL DIM main_task_id

main_task_id = 10


'定義連續(xù)采集任務(wù)id - 9

GLOBAL DIM grab_task_id

grab_task_id = 9



'定義全局圖像變量

GLOBAL ZVOBJECT grabImg '采集圖像

GLOBAL ZVOBJECT binImg '二值化圖像

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_def_num       '定義劃痕數(shù)量結(jié)果

GLOBAL DIM d_def_state     '定義狀態(tài)結(jié)果


'定義劃痕數(shù)據(jù)結(jié)果存儲數(shù)組變量

GLOBAL DIM  value(10000),id


'旋轉(zhuǎn)矩形ROI參數(shù):cx、cy、width、height、angle

GLOBAL DIM d_roi_rect2(5) 



'檢測參數(shù):劃痕類型、檢測方向、檢測尺寸、對比度、最小面積、最大面積

GLOBAL DIM d_detect_param(6) 



'***********定義讀取本地文件功能相關(guān)變量**************

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

'定義是否使用本地圖片標(biāo)志

GLOBAL DIM d_use_imgfile

d_use_imgfile=1


'定義本地圖片索引

GLOBAL DIM d_index

d_index=0


'定義讀取圖片的路徑

GLOBAL DIM File_Name(100)   


'***********結(jié)束定義讀取本地文件功能相關(guān)變量**********


'運行HMI文件

RUN "Hmi.hmi",1

4.在InitParam.bas文件中初始化測量參數(shù)。


end


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

   

  d_def_num = 0               '劃痕結(jié)果初始化為0

  d_def_state = 0             '狀態(tài)結(jié)果初始化為0

  TABLE(1)=1

  '初始化roi參數(shù)

  d_roi_rect2(0) = 160.0      'roi中心x

  d_roi_rect2(1) = 120.0      'roi中心y

  d_roi_rect2(2) = 80.0       'roi寬

  d_roi_rect2(3) = 60.0       'roi高

  d_roi_rect2(4) = 0.0        'roi角度

  TABLE(31) = d_roi_rect2(0) '將roi變量賦值給起始地址為31的table數(shù)組

  TABLE(32) = d_roi_rect2(1)

  TABLE(33) = d_roi_rect2(2)

  TABLE(34) = d_roi_rect2(3)

  TABLE(35) = d_roi_rect2(4)  

  

  '初始化檢測參數(shù):劃痕類型、檢測方向、檢測尺寸、對比度、最小面積、最大面積

  d_detect_param(0) = 0      '初始化劃痕類型為暗

  d_detect_param(1) = 2      '初始化檢測方向為X軸和Y軸

  d_detect_param(2) = 4      '初始化檢測尺寸為4

  d_detect_param(3) = 20     '初始化對比度為20

  d_detect_param(4) = 2000    '初始化最小面積為2000個像素

  d_detect_param(5) = 7000   '初始化最大面積為7000個像素

  

  '將劃痕結(jié)果變量賦值為0

  for i=0 to 100

    value(i)=0

  next

  

END SUB

5.關(guān)聯(lián)HMI界面值顯示控件變量。


image.png


6.在main.bas文件中添加HMI界面初始化函數(shù)并在Hmi系統(tǒng)設(shè)置中關(guān)聯(lián)初始化函數(shù)。


'HMI界面初始化函數(shù)

GLOBAL SUB hmi_init()


  grab_switch = 0            '初始化采集開關(guān)為停止采集

  main_task_state = 1        '初始化主任務(wù)狀態(tài)為停止?fàn)顟B(tài)

  

  '初始化時依據(jù)圖像分辨率設(shè)置區(qū)域的裁剪尺寸,此處圖像分辨率為1280x960

  ZV_RESETCLIPSIZE(1280, 960)

  '設(shè)置鎖存通道0的大小,以適應(yīng)圖片元件控件大小

  ZV_LATCHSETSIZE(0, HMI_ConTROLSIZEX(10, 7), HMI_ConTROLSIZEY(10, 7))

  

  ZV_SETSYSINT("LineWidth",5)               '設(shè)置繪制畫筆寬度為5個像素

 

  init_detect_param() '初始化測量參數(shù)

  

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

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

END SUB

image.png


7.在camera.bas文件中添加HMI界面中采集相關(guān)按鈕響應(yīng)的函數(shù)并關(guān)聯(lián)動作函數(shù)。


image.png


end


'主界面按下掃描相機(jī)按鈕時響應(yīng)的函數(shù)

GLOBAL SUB cam_scan_all()


    if(d_use_imgfile=1)then 

      ?"請先按下使用本地圖片按鈕關(guān)閉該功能"

    return 

  endif 

  

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

  ZV_SETSYSSTR("DataDir","")

    

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

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

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

    ? "未找到相機(jī)"    

    return                       '退出子函數(shù),不往下執(zhí)行

  endif

  ?"cam_num = " cam_num            '如果掃描到相機(jī),打印相機(jī)數(shù)量

  

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

  CAM_SETEXPOSURE(5000)           '設(shè)置相機(jī)曝光時間為5000us      

  CAM_SETMODE(0)            '設(shè)置軟件觸發(fā)模式

  CAM_START(0)                     '開啟相機(jī)  

  

END SUB


'主界面按下單次采集按鈕執(zhí)行的函數(shù)

GLOBAL SUB btn_grab()


    '如果d_use_imgfile=1時使用讀取本地圖片功能,使用控制器時請將此部分代碼注釋掉

    if (d_use_imgfile=1) then 

      if(d_index=3) then 

       d_index=0

    endif

    File_Name="9"+TOSTR(d_index,1,0)+".bmp"   '.../flash/9/目錄下的圖片所在的路徑名稱

    ZV_IMGREAD(grabImg,File_Name,1)

    ZV_LATCH(grabImg, 0) 

    d_index=d_index+1

  return   

  endif

    ''讀取本地圖片功能結(jié)束

  

  '如果相機(jī)數(shù)量為0,提示先掃描相機(jī),并退出子函數(shù)不往下執(zhí)行

    if cam_num = 0   then 

       ?"請先掃描相機(jī)!"

     return 

    endif

  

  CAM_SETPARAM("TriggerSoftware", 0)  '發(fā)送觸發(fā)指令

  CAM_GET(grabImg, 0)                 '獲取一幀圖像存放到grabImg變量中

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

  

END SUB


'主界面按下連續(xù)采集按鈕響應(yīng)的函數(shù)

GLOBAL SUB btn_cgrab()

    if grab_switch =1 then                 '如果已經(jīng)處于連續(xù)執(zhí)行狀態(tài),打印提示信息并退出函數(shù)

       ?"正在連續(xù)運行中,請勿重復(fù)操作!"

     return 

  endif

  

  if( d_use_imgfile =0) then '如果使用相機(jī)采集功能         

  

    if cam_num = 0   then    '判斷如果相機(jī)數(shù)量=0,打印提示信息并退出函數(shù)        

       ?"請先掃描相機(jī)!"

     return 

      endif

  endif

  

  grab_switch = 1            '采集任務(wù)開關(guān)置1

  if (1 = grab_switch) then

    if (0 = PROC_STATUS(grab_task_id)) then

      RUNTASK  grab_task_id, grab_task  '開啟連續(xù)采集任務(wù)

    endif

  endif

  

END SUB


'采集任務(wù)實現(xiàn)函數(shù)

grab_task:

  while(1)

    if (0 = grab_switch) then  '如果采集任務(wù)開關(guān)=0即停止采集按鈕按下時

      exit while             '退出循環(huán)

    endif

      

    'grab_switch=1時重復(fù)執(zhí)行以下操作

     btn_grab()'單次采集按鈕響應(yīng)的函數(shù)

  wend

END


'主界面按下停止采集按鈕響應(yīng)的函數(shù)

GLOBAL SUB btn_stopCgrab()

    if grab_switch =0 then  '如果已經(jīng)處于停止采集狀態(tài),打印提示信息并退出函數(shù)

       ?"未開啟連續(xù)采集!"

     return 

  endif

  

  grab_switch = 0          '將采集任務(wù)開關(guān)置0

END SUB


8.在draw.bas文件中添加檢測ROI更新繪制函數(shù),并在自定義元件屬性窗口中關(guān)聯(lián)刷新函數(shù)和繪制函數(shù)。

end


'和繪制(即選擇ROI)有關(guān)的界面的刷新繪制函數(shù)放在這個bas文件里


  DIM is_redraw  '繪圖標(biāo)志,0表示未進(jìn)行繪制,1表示正在進(jìn)行繪制

  is_redraw = 0

  

  DIM hit_pos    '定義調(diào)整操作標(biāo)志


'根據(jù)鼠標(biāo)操作更新ROI位置區(qū)域函數(shù)

GLOBAL SUB update_roi()

  

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

        '只有按下時可以改變擊中位置,獲取鼠標(biāo)點擊位置對應(yīng)的擊中區(qū)域編號

      hit_pos = ZV_HMIADJRECT2(table(21), table(22), 31, -1) 

      is_redraw = 1            '繪圖標(biāo)志置1

    endif


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

        '根據(jù)區(qū)域編號調(diào)整roi區(qū)域位置

      ZV_HMIADJRECT2(table(21), table(22), 31, hit_pos)

      is_redraw = 1              '繪圖標(biāo)志置1

    endif

  

    if (MOUSE_state(21)) then    '鼠標(biāo)按下時

        '根據(jù)區(qū)域編號調(diào)整roi區(qū)域位置

      ZV_HMIADJRECT2(table(21), table(22), 31, hit_pos)

      is_redraw = 1              '繪圖標(biāo)志置1

    endif

  

    if (1 = is_redraw) then       '如果繪制標(biāo)志=1

    

      is_redraw = 0              '繪圖標(biāo)志置0

      '控件roi坐標(biāo)轉(zhuǎn)圖像roi坐標(biāo),控件坐標(biāo)存放在起始地址為111的數(shù)組,圖像坐標(biāo)存放在起始地址為50的數(shù)組

      ZV_POSTOIMG(0, 1, 31, 41)

      d_roi_rect2(0) = TABLE(41)'將圖像坐標(biāo)的數(shù)據(jù)賦值給ROI變量

      d_roi_rect2(1) = TABLE(42)

      d_roi_rect2(2) = ZV_LENTOIMG(0, TABLE(33))

      d_roi_rect2(3) = ZV_LENTOIMG(0, TABLE(34))

      d_roi_rect2(4) = TABLE(35)

      SET_REDRAW  '重新繪制全部區(qū)域

    endif

  

END SUB


'ROI區(qū)域更新后實時繪制ROI區(qū)域

GLOBAL SUB draw_roi()

  

    SET_COLOR(C_BLUE)    '設(shè)置畫筆顏色為藍(lán)色

    ZV_HMIRECT2(31, 300) '將旋轉(zhuǎn)矩形roi分解為HMI支持的繪圖圖元并添加控制參數(shù),便于HMI繪圖顯示

    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))

    

END SUB

image.png


9.在main.bas文件中添加HMI界面按下【上一頁】按鈕時響應(yīng)的函數(shù)并關(guān)聯(lián)動作函數(shù)名。


image.png


'HMI界面按下上一頁按鈕時響應(yīng)的函數(shù)

GLOBAL SUB last_()


  id=id-1        'id變量自減1

  if id<0 then '如果id變量<0

    id =0      'id=0

  endif

  

END SUB

image.png


10.在main.bas文件中添加HMI界面按下【下一頁】按鈕時響應(yīng)的函數(shù)并關(guān)聯(lián)動作函數(shù)名。


image.png


'HMI界面按下下一頁按鈕時響應(yīng)的函數(shù)

GLOBAL SUB   next_()

  

  id=id+1 'id變量自加1

  

END SUB

image.png


11.在main.bas文件中添加HMI界面按下【測試】按鈕時響應(yīng)的函數(shù)并關(guān)聯(lián)動作函數(shù)名。


image.png



'HMI界面按下測試按鈕時響應(yīng)的函數(shù)

GLOBAL SUB btn_test()

    

  for i=0 to 100 '檢測前先將結(jié)果數(shù)據(jù)清零

    value(i)=0

  next

  '定義二值化白色區(qū)域、二值化區(qū)域、二值化黑色區(qū)域、連通區(qū)域、檢測結(jié)果、劃痕輸出圖像、輸出結(jié)果矩陣、結(jié)果列表

  GLOBAL ZVOBJECT regionWhite, regionMask, regionBlack,re_connecte,rst,outImg,mat,relist

  

  '根據(jù)ROI數(shù)據(jù)生成檢測區(qū)域ROI

  ZV_REGENRECT2(regionMask, d_roi_rect2(0), d_roi_rect2(1), d_roi_rect2(2), d_roi_rect2(3), d_roi_rect2(4))

  '表面外觀缺陷檢測算子,傳參分別是:輸入圖像、檢測區(qū)域、輸出檢測結(jié)果、檢測劃痕類型、檢測軸、檢測尺寸、對比度閾值、最小面積、最大面積

  ZV_DEFDETECTSUR_(grabImg,regionMask,rst,d_detect_param(0),d_detect_param(1),d_detect_param(2),d_detect_param(3),d_detect_param(4),d_detect_param(5))

  '獲取缺陷結(jié)果算子,傳參分別是:檢測結(jié)果、輸出缺陷圖像、數(shù)據(jù)結(jié)果矩陣、結(jié)果列表、輸出圖像類型、輸出結(jié)果排序類型

  ZV_DEFGETSURRST_(rst,outImg,mat,relist,2,0)'獲取缺陷結(jié)果

  ZV_LATCH(outImg,1)'將缺陷結(jié)果圖像顯示到鎖存通道1中

  ZV_MATINFO(mat,50)'獲取結(jié)果矩陣的信息并存放到起始地址為50的變量中

  d_def_num=table(50)'將矩陣行數(shù)即劃痕數(shù)量賦值給結(jié)果變量

  

  if (TABLE(50)=0) then '如果檢測到的劃痕數(shù)量=0,則結(jié)果狀態(tài)=1

      d_def_state=1

  else d_def_state=0

  endif

  

  ?TABLE(50),TABLE(51)'打印提示矩陣的行數(shù)和列數(shù)信息

  for i = 0 to TABLE(50)-1 '循環(huán)給數(shù)據(jù)結(jié)果變量賦值

      

    '獲取第i行矩陣數(shù)據(jù)結(jié)果,包括面積 周長,坐標(biāo)x,坐標(biāo)y

    ZV_MATGETROW(mat, i, 4, 100+i*4)

    value(i*4+0)=TABLE(100+i*4+0)'將table數(shù)據(jù)賦值給對應(yīng)變量

    value(i*4+1)=TABLE(100+i*4+1)

    value(i*4+2)=TABLE(100+i*4+2)

    value(i*4+3)=TABLE(100+i*4+3)

    

  next  

  

END SUB

image.png


12.在main.bas文件中添加【運行】按鈕響應(yīng)的函數(shù)并關(guān)聯(lián)動作函數(shù)。


image.png


HMI界面按下運行按鈕時響應(yīng)的函數(shù)

GLOBAL SUB btn_run()


    if(2 = main_task_state) then  '如果主任務(wù)處于運行中狀態(tài)

     ?"已經(jīng)開啟連續(xù)運行任務(wù),請勿重復(fù)操作!" '打印提示

     return 

  endif

  

  if (1 = main_task_state) then  '如果主任務(wù)處于停止?fàn)顟B(tài)

    if (0 = PROC_STATUS(main_task_id)) then'如果程序中任務(wù)未開啟

      main_task_state = 2  '將主任務(wù)狀態(tài)設(shè)置為運行中狀態(tài)

      RUNTASK  main_task_id, main_task'開啟主任務(wù)

    endif

  endif

  

END SUB


'主任務(wù)執(zhí)行的函數(shù)

main_task:

  while(1)

        '如果主任務(wù)狀態(tài)處于正在停止?fàn)顟B(tài)即停止按鈕按下時

    if (3 = main_task_state) then

      main_task_state = 1'將主任務(wù)狀態(tài)設(shè)置為停止?fàn)顟B(tài)

      exit while        '退出循環(huán)

    endif

    

    '否則循環(huán)執(zhí)行采集和檢測函數(shù)

    btn_grab()

    btn_test()

    

  wend

END

image.png


13.在main.bas文件中添加【停止】按鈕響應(yīng)的函數(shù)并關(guān)聯(lián)動作函數(shù)。


image.png


HMI界面按下停止按鈕時響應(yīng)的函數(shù)

GLOBAL SUB btn_stop()


  if (2 = main_task_state) then '如果主任務(wù)狀態(tài)處于2即任務(wù)運行中時

     main_task_state = 3         '將主任務(wù)狀態(tài)置為3,退出循環(huán)

  endif

  

END SUB

image.png



image.png

仿真效果_檢測OK


image.png

image.png

image.png


本次,正運動技術(shù)VPLC系列機(jī)器視覺運動控制一體機(jī)快速入門(九)——外觀檢測功能---檢測劃痕,就分享到這里。


更多精彩內(nèi)容請關(guān)注“正運動小助手”公眾號,需要ZDevelop開發(fā)環(huán)境與例程代碼,請咨詢正運動技術(shù)銷售工程師:400 089 8936。


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


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

上一篇: 運動控制器之追剪應(yīng)用

推薦產(chǎn)品

更多
主站蜘蛛池模板: 海尔生物医疗四川代理商,海尔低温冰箱四川销售-成都壹科医疗器械有限公司 | 纯水电导率测定仪-万用气体检测仪-低钠测定仪-米沃奇科技(北京)有限公司www.milwaukeeinst.cn 锂辉石检测仪器,水泥成分快速分析仪-湘潭宇科分析仪器有限公司 手术室净化装修-手术室净化工程公司-华锐手术室净化厂家 | 仓储笼_仓储货架_南京货架_仓储货架厂家_南京货架价格低-南京一品仓储设备制造公司 | BESWICK球阀,BESWICK接头,BURKERT膜片阀,美国SEL继电器-东莞市广联自动化科技有限公司 | 光谱仪_积分球_分布光度计_灯具检测生产厂家_杭州松朗光电【官网】 | 细沙回收机-尾矿干排脱水筛设备-泥石分离机-建筑垃圾分拣机厂家-青州冠诚重工机械有限公司 | 量子管通环-自清洗过滤器-全自动反冲洗过滤器-北京罗伦过滤技术集团有限公司 | 安徽合肥格力空调专卖店_格力中央空调_格力空调总经销公司代理-皖格制冷设备 | ptc_浴霸_大巴_干衣机_呼吸机_毛巾架_电动车加热器-上海帕克 | 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 南方珠江-南方一线电缆-南方珠江科技电缆-南方珠江科技有限公司 南汇8424西瓜_南汇玉菇甜瓜-南汇水蜜桃价格 | 旋振筛|圆形摇摆筛|直线振动筛|滚筒筛|压榨机|河南天众机械设备有限公司 | 深圳宣传片制作_产品视频制作_深圳3D动画制作公司_深圳短视频拍摄-深圳市西典映画传媒有限公司 | 工装定制/做厂家/公司_工装订做/制价格/费用-北京圣达信工装 | 工业废水处理|污水处理厂|废水治理设备工程技术公司-苏州瑞美迪 今日娱乐圈——影视剧集_八卦娱乐_明星八卦_最新娱乐八卦新闻 | YAGEO国巨电容|贴片电阻|电容价格|三星代理商-深圳市巨优电子有限公司 | 专注氟塑料泵_衬氟泵_磁力泵_卧龙泵阀_化工泵专业品牌 - 梭川泵阀 | pbt头梳丝_牙刷丝_尼龙毛刷丝_PP塑料纤维合成毛丝定制厂_广州明旺 | 餐饮加盟网_特色餐饮加盟店_餐饮连锁店加盟| 【德信自动化】点胶机_全自动点胶机_自动点胶机厂家_塑料热压机_自动螺丝机-深圳市德信自动化设备有限公司 | 北京网站建设公司_北京网站制作公司_北京网站设计公司-北京爱品特网站建站公司 | 底部填充胶_电子封装胶_芯片封装胶_芯片底部填充胶厂家-东莞汉思新材料 | 不锈钢复合板|钛复合板|金属复合板|南钢集团安徽金元素复合材料有限公司-官网 | 化妆品加工厂-化妆品加工-化妆品代加工-面膜加工-广东欧泉生化科技有限公司 | NBA直播_NBA直播免费观看直播在线_NBA直播免费高清无插件在线观看-24直播网 | 水轮机密封网 | 水轮机密封产品研发生产厂家 | 【星耀裂变】_企微SCRM_任务宝_视频号分销裂变_企业微信裂变增长_私域流量_裂变营销 | 南京办公用品网-办公文具用品批发-打印机耗材采购 | bng防爆挠性连接管-定做金属防爆挠性管-依客思防爆科技 | 保定市泰宏机械制造厂-河北铸件厂-铸造厂-铸件加工-河北大件加工 | 视觉检测设备_自动化检测设备_CCD视觉检测机_外观缺陷检测-瑞智光电 | 低温柔性试验仪-土工布淤堵-沥青车辙试验仪-莱博特(天津)试验机有限公司 | 私人别墅家庭影院系统_家庭影院音响_家庭影院装修设计公司-邦牛影音 | 自动化生产线-自动化装配线-直流电机自动化生产线-东莞市慧百自动化有限公司 | 沈阳缠绕膜价格_沈阳拉伸膜厂家_沈阳缠绕膜厂家直销 | 焊管生产线_焊管机组_轧辊模具_焊管设备_焊管设备厂家_石家庄翔昱机械 | 气动隔膜泵-电动隔膜泵-循环热水泵-液下排污/螺杆/管道/化工泵「厂家」浙江绿邦 | 中高频感应加热设备|高频淬火设备|超音频感应加热电源|不锈钢管光亮退火机|真空管烤消设备 - 郑州蓝硕工业炉设备有限公司 | 大鼠骨髓内皮祖细胞-小鼠神经元-无锡欣润生物科技有限公司 | 广州展览制作工厂—[优简]直营展台制作工厂_展会搭建资质齐全 | 佛山商标注册_商标注册代理|专利注册申请_商标注册公司_鸿邦知识产权 |