背景
在機(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)采集操作的課程。
(一)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)線兩根
5.正運(yùn)動(dòng)自品牌相機(jī)一臺(tái)
6.電線若干
(三)相機(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ī)類型是否為VPLC516E機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)支持的相機(jī)類型。 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ī)的接線是否松動(dòng),相機(jī)網(wǎng)口燈是否正常。
02課程主要使用的指令

03軟件實(shí)現(xiàn)
1. 打開(kāi) ZDevelop軟件:新建名稱為“使用相機(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ī)類型
GLOBAL cam_num '定義相機(jī)數(shù)量變量
GLOBAL gv_readimgmod '定義讀取的圖片模式
GLOBAL gv_index '定義圖片索引變量
GLOBAL File_Name(30) '定義圖片所在的路徑名稱
GLOBAL grab_switch '定義采集開(kāi)關(guān)
GLOBAL CONST gc_grabtask_id=9 '定義采集線程任務(wù)號(hào)
cam_num=0
gv_readimgmod=0
gv_index=0
grab_switch=0
end
''''''''界面初始化函數(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ī)
next
END 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中
next
END 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)
wend
ENDSUB
'''''停止任務(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)置0
END SUB
本次,正運(yùn)動(dòng)技術(shù)【機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)小課堂】三分鐘實(shí)現(xiàn)相機(jī)的相關(guān)采集操作,就分享到這里。
審核編輯:湯梓紅
發(fā)布評(píng)論請(qǐng)先 登錄
機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)在電感器骨架涂膠上的應(yīng)用# 正運(yùn)動(dòng)技術(shù)# 機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)# 運(yùn)動(dòng)控制器#
正運(yùn)動(dòng)磁驅(qū)多動(dòng)子柔性產(chǎn)線解決方案
工業(yè)一體機(jī)針對(duì)工業(yè)機(jī)器視覺(jué)需求開(kāi)發(fā)的一種集成化系統(tǒng)被廣泛應(yīng)用
工控一體機(jī)在儲(chǔ)能電站BMS控制中的應(yīng)用
金葉智能水肥一體機(jī),集成灌溉與施肥功能,智能傳感器實(shí)時(shí)監(jiān)測(cè)土壤濕度、EC值,精準(zhǔn)控制水肥比例 #水肥一體機(jī)
工業(yè)一體機(jī)不同的安裝系統(tǒng)對(duì)應(yīng)其應(yīng)用功能有何差異?
什么是工控一體機(jī)?工控一體機(jī)的常見(jiàn)用途以及應(yīng)用特點(diǎn)分析
工業(yè)電腦一體機(jī)廠家聚徽解碼——支持手套 / 濕手操作的原理
工業(yè)一體機(jī)應(yīng)用在機(jī)器視覺(jué)領(lǐng)域上都有哪些常見(jiàn)性能優(yōu)勢(shì)?
機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)在視覺(jué)柔性供料場(chǎng)景的應(yīng)用#正運(yùn)動(dòng)技術(shù) #機(jī)器視覺(jué)運(yùn)動(dòng)控制 #運(yùn)動(dòng)控制器 #運(yùn)動(dòng)控制
機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)在視覺(jué)點(diǎn)膠滴藥機(jī)上的應(yīng)用
機(jī)器視覺(jué)運(yùn)動(dòng)控制一體機(jī)實(shí)現(xiàn)相機(jī)的相關(guān)采集操作
評(píng)論