<style id="7i3y3"></style>

      <sub id="7i3y3"><i id="7i3y3"></i></sub>

        午夜精品一区二区三区成人,中文字幕av一区二区,亚洲AVAV天堂AV在线网阿V,肥臀浪妇太爽了快点再快点,国产网友愉拍精品视频手机,国产精品无码a∨麻豆,久久中文字幕一区二区,a级国产乱理伦片在线观看al
        首頁 新聞 工控搜 論壇 廠商論壇 產(chǎn)品 方案 廠商 人才 文摘 下載 展覽
        中華工控網(wǎng)首頁
          P L C | 變頻器與傳動 | 傳感器 | 現(xiàn)場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
          D C S | 工業(yè)以太網(wǎng) | 現(xiàn)場總線 | 顯示調(diào)節(jié)儀表 | 數(shù)據(jù)采集 | 數(shù)傳測控 | 工業(yè)安全
          電 源 | 嵌入式系統(tǒng) | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
        VPLC系列機器視覺運動控制一體機快速入門(七)識別功能
        深圳市正運動技術(shù)有限公司
        收藏本文     查看收藏

          此前,我們依次講解了軟硬件介紹及計數(shù)實例、相機的基本使用、基于形狀匹配的視覺定位、BLOB有無檢測、測量尺寸、機器視覺方案中使用到的標定功能以及使用ZDevelop軟件實現(xiàn)坐標標定的方法。

          本期課程我們繼續(xù)和大家一起分享使用ZDevelop軟件實現(xiàn)一維碼和二維碼的識別功能。

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

          2.png

          條形碼是由不同的寬度、不同的反射率的條(黑色)和空(白色)組成的,根據(jù)特定的編碼規(guī)則編制,用于表達一組數(shù)字、字母信息的圖形標識符。

          3.png

          條形碼可以標出商品的生產(chǎn)國、制造廠家、商品名稱、生產(chǎn)日期、圖書分類號、類別、日期等信息,因而在商品流通、圖書管理、銀行系統(tǒng)、生產(chǎn)制造等許多領(lǐng)域都得到了廣泛的應(yīng)用。

          4.png

          二維碼是用某種特定的幾何圖形按一定規(guī)律在平面(二維方向上)分布的、黑白相間的、記錄數(shù)據(jù)符號信息的圖形。在代碼編制上巧妙地利用構(gòu)成計算機內(nèi)部邏輯基礎(chǔ)的“0”、“1”比特流的概念,使用若干個與二進制相對應(yīng)的幾何形體來表示文字數(shù)值信息,通過圖像輸入設(shè)備或光電掃描設(shè)備自動識讀以實現(xiàn)信息自動處理。

          5.png

          二維碼技術(shù)是在計算機技術(shù)與信息技術(shù)基礎(chǔ)上發(fā)展起來的一門集編碼、印刷、識別、數(shù)據(jù)采集和處理于一身的新興技術(shù),它解決了條形碼表達信息有限的問題。

          一維條形碼只能在一個方向上(一般是水平方向)存儲表達信息,只能存儲數(shù)字和字母;二維碼在水平和垂直兩個方向上均能存儲表達信息,它可以存儲更多的信息包括數(shù)字、字母、漢字、圖片、音頻、視頻等。

          6.png

          條形碼需要按照一定規(guī)則的編碼方式將條和空進行不同的排列用于表示不同的信息;二維碼需要按照一定的編碼規(guī)律使用黑白塊在水平方向和垂直方向進行排列,用于表達不同的信息。它們都依賴于特定的編碼規(guī)則---編碼碼制,才能準確實現(xiàn)信息的存儲和表達。

          7.png

          正是由于條形碼和二維碼在日常生活和工業(yè)生產(chǎn)等多種領(lǐng)域中被廣泛應(yīng)用到,因此在自動化生產(chǎn)制造業(yè)中需要自動檢測識別條形碼和二維碼的內(nèi)容,對識別的內(nèi)容進行判斷,比如根據(jù)判斷條形碼和檢測的字符是否一致來最終判斷產(chǎn)品包裝的信息的準確性;比如,通過識別二維碼的內(nèi)容,導(dǎo)入對應(yīng)產(chǎn)品的信息。

          機器視覺是常用于自動化生產(chǎn)制造行業(yè)的一門自動檢測技術(shù),它根據(jù)條形碼和二維碼的編碼原理也相應(yīng)生成了對應(yīng)的識別算法,可應(yīng)用于自動檢測識別條形碼和二維碼。

        8.png

          識別流程圖

          9.png

          演示實例說明:本課程實例將演示使用ZDevelop軟件識別常用條形碼和二維碼的類型。

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

          10.png

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

          11.png

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

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

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

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

          ''table 0-10 作為中間變量使用

          ''table 11-15,區(qū)域ROI參數(shù),參數(shù)位置與dd_identfy_param對應(yīng),控件坐標系

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

          ''table 31-35,控件坐標轉(zhuǎn)換后對應(yīng)的圖像坐標,圖像坐標系
         

          '主任務(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
         

          '相機個數(shù)

          GLOBAL cam_num

          cam_num = 0
         

          '相機種類,""

          GLOBAL DIM CAMERA_TYPE(100)

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

          CAMERA_TYPE = "mvision"
         

          ' 任務(wù)號劃分, 主任務(wù)id - 10

          GLOBAL DIM main_task_id

          main_task_id = 10
         

          '連續(xù)采集線程id - 9

          GLOBAL DIM grab_task_id

          grab_task_id = 9
         

          '目前不能作為函數(shù)參數(shù),故使用全局變量表示

          GLOBAL ZVOBJECT grabImg
         

          '常用顏色變量

          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)
         

          '數(shù)據(jù)碼識別參數(shù)數(shù)組,依次為中心cx、cy、w、h、angle、data_code_type、step

          GLOBAL DIM d_identfy_param(7) 'd開頭表示數(shù)據(jù)結(jié)構(gòu)
         

          '識別消耗時間

          GLOBAL DIM d_identfy_time

          d_identfy_time = 0
         

          '是否使用roi,0-不使用,不使用時就用全圖進行識別數(shù)據(jù)碼,1-使用時就用roi區(qū)域截取圖像用來識別數(shù)據(jù)碼

          GLOBAL DIM d_useRoi

          d_useRoi = 0
         

          '條碼類型

          GLOBAL DIM code_type

          code_type = 0
         

          '識別結(jié)果,結(jié)果存儲方式為:類型:結(jié)果,如EAN-13:123456789

          GLOBAL DIM d_identfy_rst(256)
         

          RUN "Hmi.hmi",1
         

          4.在HMI界面的元件中關(guān)聯(lián)變量。

          

          12.png

          

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

          end
         

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

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

             d_identfy_param(0) = 320.0     'roi中心x

             d_identfy_param(1) = 240.0     'roi中心y

             d_identfy_param(2) = 160         'roi寬

             d_identfy_param(3) = 120.0     'roi高

             d_identfy_param(4) = 0.0         'roi角度

             d_identfy_param(5) = 0            '條碼類型為自動

             d_identfy_param(6) = 4           '掃描步長
         

          END SUB
         

          6.在main.bas文件中添加初始化函數(shù)并在HMI編輯設(shè)置中關(guān)聯(lián)函數(shù)名。
         

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

          GLOBAL SUB hmi_init()
         

             grab_switch = 0

             main_task_state = 1

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

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

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

             ZV_LATCHCLEAR(0)
         

             '將檢測測量器ROI的圖像坐標數(shù)據(jù)轉(zhuǎn)到控件坐標數(shù)據(jù)

             TABLE(11, d_identfy_param(0), d_identfy_param(1))

             ZV_POSFROMIMG(0, 1, 11, 11) '圖像坐標轉(zhuǎn)換到HMI控件坐標

             TABLE(13) = ZV_LENFROMIMG(0, d_identfy_param(2))

             TABLE(14) = ZV_LENFROMIMG(0, d_identfy_param(3))

             TABLE(15) = d_identfy_param(4)
         

          END SUB

          

          13.png

          

          7.在camera.bas文件中添加采集操作相關(guān)函數(shù),并關(guān)聯(lián)動作函數(shù)名。
         

          end
         

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

          GLOBAL SUB cam_scan_all()

             ZV_SETSYSINT("LogLevel", 7)

             ZV_SETSYSSTR("DataDir","")
         

             '掃描相機

             CAM_SCAN(CAMERA_TYPE)

             cam_num = CAM_COUNT()

             ?"cam_num = " cam_num

             if (0 = cam_num) then

                 ?"未找到相機"

                     ' ZV_READIMAGE(grabImg, "QR.png", 1)

                 return

             endif
         

             '掃描到有相機就對一些相機參數(shù)進行設(shè)置

             if cam_num > 0 then

                 CAM_SEL(0)

                 CAM_SETEXPOSURE(5000)

                 CAM_SETPARAM("GevSCPD", "3000")

                 CAM_SETPARAM("GevHeartbeatTimeout", "3000")

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

                 CAM_START(0)'開始采集

             endif
         

          END SUB
         

          'HMI界面按下單次采集按鈕時響應(yīng)的函數(shù)

          GLOBAL SUB btn_grab()
         

             if cam_num=0 then

                 ?"請先掃描相機!"

             return
         

             endif
         

             CAM_SETPARAM("TriggerSoftware", 0)

             CAM_GET(grabImg, 0)

             ZV_LATCH(grabImg, 0) '將帶顯示的圖像轉(zhuǎn)換到鎖存通道指定的鎖存區(qū)域
         

          END SUB
         

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

          GLOBAL SUB btn_mea_cgrab()
         

             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
         

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

          GLOBAL SUB btn_mea_stopCgrab()

              grab_switch = 0

          END SUB
         

          '連續(xù)采集任務(wù)

          grab_task:

             while(1)

                 if (0 = grab_switch) then

                     exit while

                 endif

                 btn_grab()

             wend

          END
         

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

          end
         

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

             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
         

          '根據(jù)鼠標操作更新檢測區(qū)域ROI的坐標位置和形狀大小

          GLOBAL SUB update_identfy()
         

          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

             '控件roi坐標轉(zhuǎn)圖像roi坐標

             is_redraw = 0

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

             d_identfy_param(0) = TABLE(0)

             d_identfy_param(1) = TABLE(1)

             d_identfy_param(2) = ZV_LENTOIMG(0, TABLE(2))

             d_identfy_param(3) = ZV_LENTOIMG(0, TABLE(3))

             d_identfy_param(4) = TABLE(4)

             SET_REDRAW

             endif

             SET_REDRAW

          END SUB
         

          '更新ROI位置和大小后實時繪制ROI區(qū)域

          GLOBAL SUB draw_identfy()
         

             if d_useRoi =1 then

                 SET_COLOR(C_BLUE)

                 TABLE(16, 0, 0) '對子區(qū)域?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))
         

             endif
         

          END SUB
         

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

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

          GLOBAL SUB btn_identfy_test()
         

             '開始識別

             TICKS = 0

             DIM tmp1(64),tmp2(64)
         

             ZVOBJECT grayImg, codeList, codeRst

             if ZV_IMGCNS(grabImg) > 1 then '獲取圖像通道數(shù),單通道表示灰度圖

                 ZV_RGBTOGRAY(grabImg,grayImg)

             else

                 ZV_COPY(grabImg,grayImg) '復(fù)制grabImg圖像到grayImg圖像中

             endif
         

             code_type = d_identfy_param(5)

             if code_type = 7 then '如果在界面中選擇QR碼類型

                 code_type = 20

             elseif code_type = 8 then '如果在界面中選擇DM碼類型

                 code_type = 21

             endif
         

             ZV_CLEAR(codeList)

             ZV_CODEREAD(grayImg,codeList,code_type,d_identfy_param(6))

             if ZV_LISTCOUNT(codeList) > 0 then '獲取列表中元素的數(shù)量
         

                 ZV_LISTGET(codeList,codeRst,0) '取出第一個條碼結(jié)果作為顯示

                 ZV_CODETYPESTR(codeRst,64,100) '獲取數(shù)據(jù)碼類型并將其存入起始索引為100的TABLE中

                 DMCPY tmp1(0),TABLE(100),64 '將TABLE中的數(shù)組拷貝至tmp1中

                 ZV_CODESTR(codeRst,64,100) '獲取數(shù)據(jù)碼結(jié)果并將其存入起始索引為100的TABLE中

                 DMCPY tmp2(0), TABLE(100), 64 '將TABLE中的數(shù)組拷貝至tmp2中

                 d_identfy_rst = tmp1 + ":"tmp2 '顯示識別結(jié)果為 數(shù)據(jù)碼類型:數(shù)據(jù)碼結(jié)果

             else

                 d_identfy_rst = "identify fail!"

             endif
         

             d_identfy_time = abs(TICKS) '識別時間
         

          END SUB

          

          14.png

          

          10.添加在HMI界面按下【運行】按鈕時響應(yīng)的函數(shù),并關(guān)聯(lián)動作函數(shù)名。
         

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

          GLOBAL SUB btn_run()
         

             if (1 = main_task_state) then

                 if (0 = PROC_STATUS(main_task_id)) then

                     main_task_state = 2

                     RUNTASK main_task_id, main_task

                 endif

             endif
         

          END SUB
         

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

          main_task:

             while(1)

                 if (3 = main_task_state) then

                     main_task_state = 1

                     exit while

                     endif

                 if cam_num = 0 then

                     btn_stop()

                     return

                 endif

                 '持續(xù)采集圖像,對圖像進行操作

                     btn_grab()

                     btn_identfy_test()

             wend

          END

          

          15.png

          

          11.添加在HMI界面按下【停止】按鈕時響應(yīng)的函數(shù),并關(guān)聯(lián)動作函數(shù)名。
         

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

          GLOBAL SUB btn_stop()

             if (2 = main_task_state) then

                                     main_task_state = 3

                                     endif

          END SUB

          

          16.png

          17.png

          EAN-13碼

          

          18.png

          19.png

          本次,正運動技術(shù)VPLC系列機器視覺運動控制一體機快速入門(七)——使用ZDevelop軟件實現(xiàn)一維碼和二維碼的識別功能就分享到這里,更多精彩內(nèi)容請關(guān)注“正運動小助手”公眾號。

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


         

        狀 態(tài): 離線

        公司簡介
        產(chǎn)品目錄

        公司名稱: 深圳市正運動技術(shù)有限公司
        聯(lián) 系 人: 戴德弟
        電  話: 0755-32976042
        傳  真: 0755-2606 6955
        地  址: 深圳市寶安區(qū)西鄉(xiāng)洲石路陽光工業(yè)園A1棟5樓
        郵  編: 518100
        主  頁:
         
        該廠商相關(guān)技術(shù)文摘:
        強實時運動控制內(nèi)核MotionRT750(十):運動控制中的微調(diào)軌跡動態(tài)補償
        機器視覺運動控制一體機在大功率共模電感多面AI外觀缺陷檢測應(yīng)用
        MotionRT750 SoftMotion:XPCIE1032H超高速運動控制卡在AOI檢測設(shè)備上的應(yīng)用
        強實時運動控制內(nèi)核MotionRT750(九):內(nèi)置C語言的自定義機械手模型實現(xiàn)
        NEPCON ASIA 2025:解鎖行業(yè)新機遇,我們在深圳等您
        開放式激光振鏡運動控制器在旋轉(zhuǎn)飛行打標中的應(yīng)用
        強實時運動控制內(nèi)核MotionRT750(八):us級高速交互之LabVIEW,為智能裝備提速
        液態(tài)點膠密封解決方案,柔性升級,密封更可靠!
        柔性機械手視覺供料解決方案,提升無序分揀效率!
        【2025上海工博會】正運動展位智造未來(二)
        【2025上海工博會】正運動展位智造未來(一)
        【2025上海工博會】機器視覺運動控制一體機應(yīng)用預(yù)覽(三)
        更多文摘...
        立即發(fā)送詢問信息在線聯(lián)系該技術(shù)文摘廠商:
        用戶名: 密碼: 免費注冊為中華工控網(wǎng)會員
        請留下您的有效聯(lián)系方式,以方便我們及時與您聯(lián)絡(luò)

        關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 本站動態(tài) | 友情鏈接 | 法律聲明 | 不良信息舉報
        工控網(wǎng)客服熱線:0755-86369299
        版權(quán)所有 中華工控網(wǎng) Copyright©2022 Gkong.com, All Rights Reserved

        主站蜘蛛池模板: 国产老熟女国语免费视频| 亚洲高清 一区二区三区| 久久精品国产91精品亚洲| 激情综合色综合啪啪开心| 亚洲性日韩精品一区二区三区| 成人精品视频一区二区三区尤物| 久久综合精品国产一区二区三区无| 最新亚洲人成网站在线观看| 日日摸日日踫夜夜爽无码| 综合色亚洲| 日本三级香港三级人妇99| 欧美熟妇xxxxx欧美老妇不卡| 国产成人精品一区二区不卡| 99久久er热在这里只有精品99| 任你躁国产自任一区二区三区| 在线观看成人永久免费网站 | av永久免费网站在线观看| 精品女同一区二区三区在线| 人妻少妇无码精品专区| 亚洲国产精品人人做人人爱| 免费无遮挡毛片中文字幕| 丰满人妻被猛烈进入无码| 国产免费网站看v片元遮挡| 日韩深夜福利视频在线观看| 国产成人免费手机在线观看视频| 性欧美精品xxxx| 国内自拍小视频在线看| 国产一区二区不卡自拍| 亚洲成av人片色午夜乱码| 成人看的污污超级黄网站免费 | 国产AV大陆精品一区二区三区| 亚洲av理论在线电影网| 97一期涩涩97片久久久久久久| 在线日韩日本国产亚洲| 亚洲午夜理论片在线观看| 22sihu国产精品视频影视资讯| 日韩伦理片| 国产影片AV级毛片特别刺激| 成人又黄又爽又色的视频| 在线免费观看| 中文字幕人成人乱码亚洲|