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

產(chǎn)品分類

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

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

會(huì)PLC也能玩轉(zhuǎn)機(jī)器視覺(二)

發(fā)布日期:2022-04-25 點(diǎn)擊率:86

  • 關(guān)鍵詞:正運(yùn)動(dòng)技術(shù),PLC,機(jī)器視覺


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


image.png


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


本期課程我們將通過使用ZPLC語言實(shí)現(xiàn)識(shí)別條形碼的視覺功能的程序示例,進(jìn)一步帶領(lǐng)大家去了解PLC玩轉(zhuǎn)機(jī)器視覺的實(shí)現(xiàn)方法。


一檢測(cè)原理


(一)識(shí)別條形碼


條形碼是由不同的寬度、不同的反射率的條(黑色)和空(白色)組成的,根據(jù)特定的編碼規(guī)則編制,用于表達(dá)一組數(shù)字、字母信息的圖形標(biāo)識(shí)符。機(jī)器視覺在進(jìn)行條形碼識(shí)別的過程中,將采集到的條形碼信息二值化為黑白條,并根據(jù)條形碼的編碼規(guī)則輸出對(duì)應(yīng)的存儲(chǔ)內(nèi)容。


(二)PLC玩轉(zhuǎn)視覺


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


二軟件演示


(一)檢測(cè)要求


使用ZDevelop軟件的ZBASIC編程語言編寫程序,用于識(shí)別軟件所在目錄的flash文件夾下命名為“code”文件夾下的條形碼內(nèi)容。再使用ZPLC編程語言調(diào)用BASIC程序的主任務(wù),進(jìn)行循環(huán)檢測(cè)識(shí)別。


(二)實(shí)例演示


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


image.png


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


image.png


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


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

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

''table         說明            table    說明

''1~7  矩形roi控件坐標(biāo)數(shù)據(jù)    24    數(shù)據(jù)碼類型

''11~12  鼠標(biāo)操作時(shí)獲取的坐標(biāo)    26    數(shù)據(jù)碼結(jié)果


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

'0 - 未初始化

'1 - 停止

'2 - 運(yùn)行中

'3 - 正在停止

GLOBAL DIM main_task_state

main_task_state = 1


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

GLOBAL DIM main_task_id

main_task_id = 10


'定義圖像變量

GLOBAL ZVOBJECT grabImg


'識(shí)別消耗時(shí)間

GLOBAL DIM d_identfy_time

d_identfy_time = 0


'識(shí)別結(jié)果,結(jié)果存儲(chǔ)方式為:類型:識(shí)別內(nèi)容,如EAN-13:123456789

GLOBAL DIM d_identfy_rst(256)


'定義本地圖片索引

GLOBAL DIM d_index

d_index=0


'定義讀取圖片的路徑

GLOBAL DIM File_Name(100)   


'全局變量定義完成后再運(yùn)行HMI文件

RUN "Hmi.hmi",1

4.關(guān)聯(lián)HMI界面控件變量。


image.png


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


end


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

GLOBAL SUB hmi_init()

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

    

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

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

      d_identfy_rst=""

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

END SUB


image.png


6.在main.bas文件中添加HMI界面按下單次執(zhí)行按鈕響應(yīng)的函數(shù),并關(guān)聯(lián)動(dòng)作函數(shù)名。


'HMI界面按下單次執(zhí)行按鈕時(shí)響應(yīng)的函數(shù)

GLOBAL SUB btn_identfy_test()

    

      '開始識(shí)別

      TICKS = 0'開始計(jì)時(shí)

      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)                   '定義中間變量參數(shù)

      

      ZVOBJECT codeList, codeRst

      

      ZV_CLEAR(codeList)                      '清空結(jié)果列表

      d_identfy_rst=""

      '根據(jù)編碼類型(自動(dòng))和掃描步長(zhǎng)(1)讀取采集圖像中的對(duì)應(yīng)數(shù)據(jù)碼內(nèi)容,將結(jié)果存放到codeList中             

      ZV_CODEREAD(grabImg,codeList,0,1)

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

      

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

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

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

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

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

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

      else 

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

      endif

      

      ZV_LATCH(grabImg, 0) 

      d_index=d_index+1

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

END SUB

7.在main.bas文件中添加HMI界面按下連續(xù)運(yùn)行按鈕響應(yīng)的函數(shù),并關(guān)聯(lián)動(dòng)作函數(shù)名。


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

GLOBAL SUB btn_run()


    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è)置為正在運(yùn)行狀態(tài)

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

        endif

    endif

  

END SUB


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

'main_task:

  '  while(1)

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

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

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

    '    endif

  '    

  '    '否則重復(fù)執(zhí)行以下操作

  '    btn_identfy_test()   '識(shí)別條形碼

  '    

  '  wend

'END

8.在main.bas文件中添加HMI界面按下停止運(yùn)行按鈕響應(yīng)的函數(shù),并關(guān)聯(lián)動(dòng)作函數(shù)名。


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

GLOBAL SUB btn_stop()

     if (2 = main_task_state) then  '如果主任務(wù)狀態(tài)處于2即正在連續(xù)執(zhí)行任務(wù)時(shí)

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

     endif

END SUB


image.png


9.在main.bas文件中注釋連續(xù)運(yùn)行執(zhí)行的主任務(wù)的函數(shù)部分,在Plc1.plc文件中添加ZPLC調(diào)用主任務(wù)執(zhí)行函數(shù)子程序的代碼。


image.png

仿真演示效果1


image.png

仿真演示效果2


image.png

仿真演示效果3


image.png

仿真演示效果4


本次,正運(yùn)動(dòng)技術(shù)會(huì)PLC也能玩轉(zhuǎn)機(jī)器視覺(二),就分享到這里。


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


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


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

上一篇: 機(jī)器視覺運(yùn)動(dòng)控制一體

推薦產(chǎn)品

更多
主站蜘蛛池模板: 奇酷教育-Python培训|UI培训|WEB大前端培训|Unity3D培训|HTML5培训|人工智能培训|JAVA开发的教育品牌 | 厂厂乐-汇聚海量采购信息的B2B微营销平台-厂厂乐官网 | 恒温槽_恒温水槽_恒温水浴槽-上海方瑞仪器有限公司 | 上海租奔驰_上海租商务车_上海租车网-矢昂汽车服务公司 | 猎头招聘_深圳猎头公司_知名猎头公司| 雨燕360体育免费直播_雨燕360免费NBA直播_NBA篮球高清直播无插件-雨燕360体育直播 | 深圳活动策划公司|庆典策划|专业公关活动策划|深圳艺典文化传媒 重庆中专|职高|技校招生-重庆中专招生网 | 专业甜品培训学校_广东糖水培训_奶茶培训_特色小吃培训_广州烘趣甜品培训机构 | 卫生纸复卷机|抽纸机|卫生纸加工设备|做卫生纸机器|小型卫生纸加工需要什么设备|卫生纸机器设备多少钱一台|许昌恒源纸品机械有限公司 | 创绿家招商加盟网-除甲醛加盟-甲醛治理加盟-室内除甲醛加盟-创绿家招商官网 | 郑州水质检测中心_井水检测_河南废气检测_河南中环嘉创检测 | 带式过滤机厂家_价格_型号规格参数-江西核威环保科技有限公司 | 济南侦探调查-济南调查取证-山东私家侦探-山东白豹调查咨询公司 密集架|电动密集架|移动密集架|黑龙江档案密集架-大量现货厂家销售 | 河南不锈钢水箱_地埋水箱_镀锌板水箱_消防水箱厂家-河南联固供水设备有限公司 | 珠海白蚁防治_珠海灭鼠_珠海杀虫灭鼠_珠海灭蟑螂_珠海酒店消杀_珠海工厂杀虫灭鼠_立净虫控防治服务有限公司 | 电子厂招聘_工厂招聘_普工招聘_小时工招聘信息平台-众立方招工网 | 石家庄网站建设|石家庄网站制作|石家庄小程序开发|石家庄微信开发|网站建设公司|网站制作公司|微信小程序开发|手机APP开发|软件开发 | 大通天成企业资质代办_承装修试电力设施许可证_增值电信业务经营许可证_无人机运营合格证_广播电视节目制作许可证 | 定量包装秤,吨袋包装称,伸缩溜管,全自动包装秤,码垛机器人,无锡市邦尧机械工程有限公司 | pbootcms网站模板|织梦模板|网站源码|jquery建站特效-html5模板网 | 黑龙江京科脑康医院-哈尔滨精神病医院哪家好_哈尔滨精神科医院排名_黑龙江精神心理病专科医院 | 合肥仿石砖_合肥pc砖厂家_合肥PC仿石砖_安徽旭坤建材有限公司 | 温控器生产厂家-提供温度开关/热保护器定制与批发-惠州市华恺威电子科技有限公司 | 深圳高新投三江工业消防解决方案提供厂家_服务商_园区智慧消防_储能消防解决方案服务商_高新投三江 | 北京网站建设公司_北京网站制作公司_北京网站设计公司-北京爱品特网站建站公司 | 海尔生物医疗四川代理商,海尔低温冰箱四川销售-成都壹科医疗器械有限公司 | 肉嫩度仪-凝胶测试仪-国产质构仪-气味分析仪-上海保圣实业发展有限公司|总部 | 宝鸡市人民医院| PC构件-PC预制构件-构件设计-建筑预制构件-PC构件厂-锦萧新材料科技(浙江)股份有限公司 | 北京开业庆典策划-年会活动策划公司-舞龙舞狮团大鼓表演-北京盛乾龙狮鼓乐礼仪庆典策划公司 | 数年网路-免费在线工具您的在线工具箱-shuyear.com | 琉璃瓦-琉璃瓦厂家-安徽盛阳新型建材科技有限公司 | 厂房出租_厂房出售_产业园区招商_工业地产 - 中工招商网 | hdpe土工膜-防渗膜-复合土工膜-长丝土工布价格-厂家直销「恒阳新材料」-山东恒阳新材料有限公司 ETFE膜结构_PTFE膜结构_空间钢结构_膜结构_张拉膜_浙江萬豪空间结构集团有限公司 | pos机办理,智能/扫码/二维码/微信支付宝pos机-北京万汇通宝商贸有限公司 | 北京开业庆典策划-年会活动策划公司-舞龙舞狮团大鼓表演-北京盛乾龙狮鼓乐礼仪庆典策划公司 | 成都热收缩包装机_袖口式膜包机_高速塑封机价格_全自动封切机器_大型套膜机厂家 | 西门子代理商_西门子变频器总代理-翰粤百科 | 顺辉瓷砖-大国品牌-中国顺辉 | 百方网-百方电气网,电工电气行业专业的B2B电子商务平台 | 电脑知识|软件|系统|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网 |