時(shí)間:2022-02-22 14:20:29來(lái)源:深圳市正運(yùn)動(dòng)技術(shù)有限公司
背景
在機(jī)器視覺(jué)項(xiàng)目應(yīng)用中圖像采集是通過(guò)成像設(shè)備,也就是工業(yè)相機(jī)去獲取實(shí)時(shí)的圖像,這個(gè)部分就是構(gòu)成信號(hào)分布信息的一個(gè)過(guò)程。
通俗一點(diǎn)講就是將產(chǎn)品放在相機(jī)成像的視野范圍內(nèi),通過(guò)相機(jī)獲取產(chǎn)品的特征,比如產(chǎn)品的形狀大小顏色位置等信息,將獲取到的圖像信息,輸送給機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)的過(guò)程。
在上期課程中,我們講述了如何使用機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)實(shí)現(xiàn)圖像的幾何變換的課程。本期課程正運(yùn)動(dòng)小助手給大家分享一下機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)使用相機(jī)進(jìn)行相關(guān)采集操作的課程。
教學(xué)視頻
01VPLC控制器
(一)VPLC516E構(gòu)架圖
(二)課前準(zhǔn)備1.電腦一臺(tái),安裝ZDevelop3.10以上版本軟件2.VPLC516E機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)一臺(tái)3.24V直流電源一個(gè)4.網(wǎng)線(xiàn)兩根5.正運(yùn)動(dòng)自品牌相機(jī)一臺(tái)
6.電線(xiàn)若干
(三)相機(jī)連接機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)前準(zhǔn)備工作
(四)相機(jī)網(wǎng)口IP設(shè)置操作說(shuō)明
1.首先去PC上高級(jí)網(wǎng)絡(luò)設(shè)置的更改適配器選項(xiàng)修改相機(jī)與電腦網(wǎng)口對(duì)應(yīng)連接的網(wǎng)口IP,設(shè)置為192.168.1.10,之后再去添加巨型幀。
IP設(shè)置
打開(kāi)巨型幀
2.接著去對(duì)應(yīng)的相機(jī)品牌驅(qū)動(dòng)軟件上修改相機(jī)的IP地址在192.168.1.X網(wǎng)段下。
至此,相機(jī)的網(wǎng)口IP設(shè)置就完成了,設(shè)置完IP后再將相機(jī)連接到機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)上的LAN2口即可正常采集圖像。(后續(xù)在不改動(dòng)相機(jī)的IP情況下,無(wú)需重復(fù)操作)
(五)控制器掃描相機(jī)注意事項(xiàng)1.檢查相機(jī)類(lèi)型是否為VPLC516E機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)支持的相機(jī)類(lèi)型。 2.檢查相機(jī)網(wǎng)段是否和控制器處于同一網(wǎng)段(控制器和相機(jī)處于同一網(wǎng)段才能通信),并查看相機(jī)IP是否被占用,若被占用請(qǐng)先修改相機(jī)IP或機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)IP并處于同一網(wǎng)段。3.檢查相機(jī)是否已經(jīng)被其他主機(jī)連接,若被連接請(qǐng)將相機(jī)斷電重啟。檢查相機(jī)的接線(xiàn)是否松動(dòng),相機(jī)網(wǎng)口燈是否正常。
02課程主要使用的指令
03軟件實(shí)現(xiàn)
1.打開(kāi)ZDevelop軟件:新建名稱(chēng)為“使用相機(jī)進(jìn)行相關(guān)采集操作示例.zpj”項(xiàng)目→新建HMI文件→新建“Basic.bas”文件(用于編寫(xiě)界面響應(yīng)函數(shù)、并開(kāi)啟HMI自動(dòng)運(yùn)行任務(wù))→文件添加到項(xiàng)目。
2.設(shè)計(jì)HMI主界面和關(guān)聯(lián)它的控件變量。
3.編寫(xiě)相機(jī)進(jìn)行相關(guān)采集操作示例的響應(yīng)函數(shù)。
·
ZVOBJECT Image '定義圖像變量GLOBAL CAMERA_TYPE '定義相機(jī)類(lèi)型GLOBAL cam_num '定義相機(jī)數(shù)量變量GLOBAL gv_readimgmod '定義讀取的圖片模式GLOBAL gv_index '定義圖片索引變量GLOBAL File_Name(30) '定義圖片所在的路徑名稱(chēng)GLOBAL grab_switch '定義采集開(kāi)關(guān)GLOBAL CONST gc_grabtask_id=9 '定義采集線(xiàn)程任務(wù)號(hào)cam_num=0gv_readimgmod=0gv_index=0grab_switch=0end
''''''''界面初始化函數(shù)''''''''''''GLOBAL SUB hmi_init() ZV_ENVINIT() 'ZVision運(yùn)行環(huán)境初始化 ZV_SETSYSSTR("DataDir","")'設(shè)置默認(rèn)數(shù)據(jù)目錄 ZV_LATCHSETSIZE(0, HMI_CONTROLSIZEX(10, 1), HMI_CONTROLSIZEY(10, 1)) '設(shè)置鎖存的大小 ZV_LATCHCLEAR(0) '將鎖存通道 0 清零 END SUB
''''''''''''''''掃描相機(jī)''''''''''''''''''''HMI界面按下掃描相機(jī)按鈕時(shí)響應(yīng)的函數(shù)GLOBAL SUB cam_scan_all() local lv_i if CAMERA_TYPE=0 THEN CAM_SCAN("zmotion") '掃描正運(yùn)動(dòng)自品牌相機(jī) ELSEIF CAMERA_TYPE=1 THEN CAM_SCAN("basler") '掃描basler相機(jī) ELSEIF CAMERA_TYPE=2 THEN CAM_SCAN("huaray") '掃描大華相機(jī) endif 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ù)量 for lv_i=0 to cam_num-1 CAM_SEL(lv_i) '選擇掃描到的相機(jī)進(jìn)行操作 CAM_SETEXPOSURE(5000) '設(shè)置相機(jī)曝光時(shí)間為5000us CAM_SETMODE(0) '設(shè)置軟件觸發(fā)模式 CAM_START(1) '開(kāi)啟相機(jī) nextEND SUB
''''''''采集圖像'''''''HMI界面按下采集圖像按鈕時(shí)執(zhí)行的子函數(shù)GLOBAL SUB btn_read_img() local lv_i if gv_readimgmod=1 THEN '循環(huán)圖片索引 if(gv_index=11) then gv_index=0 endif File_Name="相機(jī)采集/" + TOSTR(gv_index,1,0) + ".bmp" '確定圖片所在的路徑 ZV_READIMAGE(Image,File_Name,0) '讀取本地圖片 ZV_LATCH(Image, 0) '將圖像顯示到鎖存通道編號(hào)為0的鎖存區(qū)域 gv_index=gv_index+1 RETURN endif if cam_num = 0 then ?"請(qǐng)先掃描相機(jī)!" return endif for lv_i=0 to cam_num-1 CAM_SEL(lv_i) CAM_SETPARAM("TriggerSoftware", 0) '發(fā)送觸發(fā)指令 CAM_GET(Image, 0) '獲取一幀圖像存放到grabImg變量中 ZV_LATCH(Image, lv_i) '將圖像顯示到鎖存通道0中 nextEND SUB
''''''''連續(xù)采集''''''''''''''''HMI界面按下連續(xù)采集按鈕響應(yīng)的函數(shù)GLOBAL SUB btn_cgrab() if grab_switch =1 then '如果已經(jīng)處于連續(xù)執(zhí)行狀態(tài),打印提示信息并退出函數(shù) ?"正在連續(xù)運(yùn)行中,請(qǐng)勿重復(fù)操作!" return endif if( gv_readimgmod =0) then if cam_num = 0 then '如果相機(jī)數(shù)量=0,打印提示信息并退出函數(shù) ?"請(qǐng)先掃描相機(jī)!" return endif endif grab_switch = 1 '采集任務(wù)開(kāi)關(guān)置1 if (1 = grab_switch) then if (0 = PROC_STATUS(gc_grabtask_id)) then RUNTASK gc_grabtask_id, grab_task() '開(kāi)啟連續(xù)采集任務(wù) endif endif END SUB
'''''''連續(xù)采集任務(wù)''''''''''''''
'采集任務(wù)實(shí)現(xiàn)函數(shù)GLOBAL sub grab_task() while(1) if (0 = grab_switch) then '如果采集任務(wù)開(kāi)關(guān)=0即停止采集按鈕按下時(shí) exit while '退出循環(huán) endif '重復(fù)執(zhí)行以下操作 btn_read_img() delay(20) wendENDSUB
'''''停止任務(wù)'''''''''''''''''''HMI界面按下停止采集按鈕響應(yīng)的函數(shù)GLOBAL SUB btn_stopCgrab() if grab_switch =0 then '如果已經(jīng)處于停止采集狀態(tài),打印提示信息并退出函數(shù) ?"未開(kāi)啟連續(xù)采集!" return endif grab_switch = 0 '將采集任務(wù)開(kāi)關(guān)置0END SUB
4.效果演示。
完整代碼獲取地址
▼
本次,正運(yùn)動(dòng)技術(shù)【機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)小課堂】三分鐘實(shí)現(xiàn)相機(jī)的相關(guān)采集操作,就分享到這里。
更多精彩內(nèi)容請(qǐng)關(guān)注“正運(yùn)動(dòng)小助手”公眾號(hào),需要相關(guān)開(kāi)發(fā)環(huán)境與例程代碼,請(qǐng)咨詢(xún)正運(yùn)動(dòng)技術(shù)銷(xiāo)售工程師: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)注明文章來(lái)源。
中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(m.u63ivq3.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
相關(guān)資訊
產(chǎn)品新聞
更多>新品發(fā)布:CD300系列總線(xiàn)型伺服驅(qū)動(dòng)器
2024-10-31
2024-10-31
2024-10-31
纖薄之間,化繁為簡(jiǎn)|合信全新simple系...
2024-10-29
2024-10-18
推薦專(zhuān)題
更多>