<rt id="m4md3"></rt>
  • <bdo id="m4md3"><meter id="m4md3"></meter></bdo>
  • <label id="m4md3"></label>
      <center id="m4md3"><optgroup id="m4md3"></optgroup></center>
      產品分類

      當前位置: 首頁 > 工業控制產品 > 自動化控制 > PLC可編程控制器

      類型分類:
      科普知識
      數據分類:
      PLC可編程控制器

      會PLC也能玩轉機器視覺(二)

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

      • 關鍵詞:正運動技術,PLC,機器視覺


      • 摘要:前幾期課程,我們講述了PLC的梯形圖語言的基本知識,并與大家分享了使用ZDevelop軟件的ZPLC語言調用ZVision視覺指令的方法。


      image.png


      前幾期課程,我們講述了PLC的梯形圖語言的基本知識,并與大家分享了使用ZDevelop軟件的ZPLC語言調用ZVision視覺指令的方法。


      本期課程我們將通過使用ZPLC語言實現識別條形碼的視覺功能的程序示例,進一步帶領大家去了解PLC玩轉機器視覺的實現方法。


      一檢測原理


      (一)識別條形碼


      條形碼是由不同的寬度、不同的反射率的條(黑色)和空(白色)組成的,根據特定的編碼規則編制,用于表達一組數字、字母信息的圖形標識符。機器視覺在進行條形碼識別的過程中,將采集到的條形碼信息二值化為黑白條,并根據條形碼的編碼規則輸出對應的存儲內容。


      (二)PLC玩轉視覺


      在《會PLC也能玩轉機器視覺(一)》的推文中,我們介紹了使用ZPLC編程語言調用ZBasic語言的方法,即EXE @BASIC指令。本期課程我們將和大家分享另一種調用方法,即使用ZPLC編程語言調用BASIC子程序。


      二軟件演示


      (一)檢測要求


      使用ZDevelop軟件的ZBASIC編程語言編寫程序,用于識別軟件所在目錄的flash文件夾下命名為“code”文件夾下的條形碼內容。再使用ZPLC編程語言調用BASIC程序的主任務,進行循環檢測識別。


      (二)實例演示


      1.打開ZDevelop軟件:新建項目→新建HMI文件→新建main.bas文件→新建global_variable.bas文件→新建Plc1.plc文件,用于編寫PLC執行程序→文件添加到項目。


      image.png


      2.設計HMI界面。


      image.png


      3.在global_variable.bas文件中添加全局變量。


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

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

      ''table         說明            table    說明

      ''1~7  矩形roi控件坐標數據    24    數據碼類型

      ''11~12  鼠標操作時獲取的坐標    26    數據碼結果


      '主任務狀態

      '0 - 未初始化

      '1 - 停止

      '2 - 運行中

      '3 - 正在停止

      GLOBAL DIM main_task_state

      main_task_state = 1


      ' 任務號劃分, 主任務id - 10

      GLOBAL DIM main_task_id

      main_task_id = 10


      '定義圖像變量

      GLOBAL ZVOBJECT grabImg


      '識別消耗時間

      GLOBAL DIM d_identfy_time

      d_identfy_time = 0


      '識別結果,結果存儲方式為:類型:識別內容,如EAN-13:123456789

      GLOBAL DIM d_identfy_rst(256)


      '定義本地圖片索引

      GLOBAL DIM d_index

      d_index=0


      '定義讀取圖片的路徑

      GLOBAL DIM File_Name(100)   


      '全局變量定義完成后再運行HMI文件

      RUN "Hmi.hmi",1

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


      image.png


      5.在main.bas文件中添加界面初始化函數,并在hmi系統設置中關聯初始化函數名。


      end


      'HMI界面初始化函數

      GLOBAL SUB hmi_init()

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

          

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

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

            d_identfy_rst=""

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

      END SUB


      image.png


      6.在main.bas文件中添加HMI界面按下單次執行按鈕響應的函數,并關聯動作函數名。


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

      GLOBAL SUB btn_identfy_test()

          

            '開始識別

            TICKS = 0'開始計時

            if(d_index=4) then 

                 d_index=0

            endif

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

            ZV_IMGREAD(grabImg,File_Name,0)

              

            DIM tmp1(64),tmp2(64)                   '定義中間變量參數

            

            ZVOBJECT codeList, codeRst

            

            ZV_CLEAR(codeList)                      '清空結果列表

            d_identfy_rst=""

            '根據編碼類型(自動)和掃描步長(1)讀取采集圖像中的對應數據碼內容,將結果存放到codeList中             

            ZV_CODEREAD(grabImg,codeList,0,1)

            if ZV_LISTCOUNT(codeList) > 0 then      '如果列表中元素的數量大于0

            

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

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

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

                 ZV_CODESTR(codeRst,64,26)        '獲取數據碼結果并將其存入起始索引為26的TABLE中

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

                 d_identfy_rst = tmp1 + ":"tmp2        '顯示識別結果為 數據碼類型:數據碼結果  

            else 

                  d_identfy_rst = "identify fail!"      '識別失敗給變量賦值"identify fail!"

            endif

            

            ZV_LATCH(grabImg, 0) 

            d_index=d_index+1

            d_identfy_time = abs(TICKS) '計算識別消耗的時間

      END SUB

      7.在main.bas文件中添加HMI界面按下連續運行按鈕響應的函數,并關聯動作函數名。


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

      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


      ''主任務執行的函數

      'main_task:

        '  while(1)

          '    if (3 = main_task_state) then'如果主任務狀態處于正在停止狀態即停止按鈕按下時

            '      main_task_state = 1'將主任務狀態設置為停止狀態

            '      exit while        '退出循環

          '    endif

        '    

        '    '否則重復執行以下操作

        '    btn_identfy_test()   '識別條形碼

        '    

        '  wend

      'END

      8.在main.bas文件中添加HMI界面按下停止運行按鈕響應的函數,并關聯動作函數名。


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

      GLOBAL SUB btn_stop()

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

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

           endif

      END SUB


      image.png


      9.在main.bas文件中注釋連續運行執行的主任務的函數部分,在Plc1.plc文件中添加ZPLC調用主任務執行函數子程序的代碼。


      image.png

      仿真演示效果1


      image.png

      仿真演示效果2


      image.png

      仿真演示效果3


      image.png

      仿真演示效果4


      本次,正運動技術會PLC也能玩轉機器視覺(二),就分享到這里。


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


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


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

      上一篇: 機器視覺運動控制一體

      推薦產品

      更多
      主站蜘蛛池模板: 色噜噜狠狠色综合中文字幕| 综合久久久久久久综合网| 色噜噜狠狠色综合欧洲selulu| 亚洲综合精品第一页| 思思91精品国产综合在线| 国产亚洲综合一区二区三区| 激情综合一区二区三区| 亚洲狠狠成人综合网| 伊人网综合在线视频| 天天躁夜夜躁狂狂躁综合| 久久综合久久鬼色| 伊人久久五月丁香综合中文亚洲| 狠狠色丁香婷婷综合| 99久久综合精品五月天| 久久久久AV综合网成人| 狠狠色噜噜狠狠狠狠色综合久 | 亚洲欧洲av综合色无码| 亚洲伊人久久大香线蕉综合图片| 99v久久综合狠狠综合久久| 色综合网站国产麻豆| 久久综合亚洲色一区二区三区| 91精品国产综合久久久久久| 狠狠色狠狠色很很综合很久久| 99久久国产综合精品2020| 五月丁香综合缴情六月小说| 91精品国产综合久久精品| HEYZO无码综合国产精品227| 色偷偷91久久综合噜噜噜噜| 色综合一区二区三区| 久久综合鬼色88久久精品综合自在自线噜噜| 一本色道久久综合亚洲精品高清| 狠狠久久综合伊人不卡| 激情综合婷婷丁香五月蜜桃| 久久本道久久综合伊人| 青青草原综合久久大伊人| 香蕉蕉亚亚洲aav综合| 色综合久久中文色婷婷| 2020久久精品亚洲热综合一本| 国产精品综合一区二区| 国产成人综合久久精品下载 | 小说区图片区综合久久88|