發布日期:2022-04-25 點擊率:63
關鍵詞:正運動技術,機器視覺,運動控制
摘要:在機器視覺項目中,我們經常采用停拍的拍照方式即檢測樣品運動到指定拍照位置時樣品停止運動,此時觸發相機拍照,對樣品圖像進行處理后輸出檢測結果,接著執行下一步動作。
在機器視覺項目中,我們經常采用停拍的拍照方式即檢測樣品運動到指定拍照位置時樣品停止運動,此時觸發相機拍照,對樣品圖像進行處理后輸出檢測結果,接著執行下一步動作。
這種拍照模式的實現方式和運動控制比較簡單,但是生產效率較低,無法滿足高速度的檢測項目要求。因此需要使用視覺飛拍的功能,即檢測樣品運動到拍照位置不停止運行,此時相機完成瞬時拍照后樣品繼續沿著設定的軌跡運行。
本次課程我們將與大家一起分享機器視覺運動控制一體機實現飛拍定位的功能。
一檢測原理
(一)原理
飛拍就是使用硬件比較輸出或精準輸出端口在極短時間內觸發相機拍照,而被測物品在拍照過程中仍處于運動狀態,與此同時被測物品通過圖像處理軟件計算出其位置的偏移量,執行機構獲取視覺輸出的偏移量后再做出相應的動作指令。
視覺飛拍功能不僅需要有硬件比較輸出或精準輸出功能做高速精準觸發控制,而且要求相機的拍照響應時間快、曝光時間短、幀率高,軟件處理時間要短。
(二)機器視覺飛拍與停拍對比
1.視覺停拍:傳統的視覺定位采取停拍的方式,即工件按照既定的軌跡運動,當運行到拍照點時,運動軸速度減為0停下來進行拍照、圖像采集、運算處理、糾偏,待視覺系統處理完成后,繼續完成接下來的軌跡運動,v-t圖如下。
2.視覺飛拍:針對傳統的視覺停拍,而造成生產效率不夠高的問題。在某些生產效率高的應用場合,使用到視覺飛拍功能的很多。即機構按照既定的軌跡運動,當運行到拍照位時,運動軸不停止運動,瞬間完成高速抓拍的功能。
整個過程中移動機構不停止,從而節省機構運行時間,滿足效率,并且能保證運行精度。
a.在精度保證的同時,可以不減速,v-t圖如下。
b.在精度不足的情況下,可以略微降速,分段運行,但速度不降為0,v-t圖如下。
★正運動技術VPLC機器視覺運動控制一體機是基于FPGA的硬件比較輸出,從而實現驅動器到達拍照位置,直到相機完成觸發,整個精度可以控制在:脈沖輸出方式的最小誤差1個脈沖,總線控制方式的最小誤差1us以內。
當電機帶編碼器或者光柵尺反饋時,硬件比較輸出功能自動使用反饋位置MPOS來進行觸發,當不帶反饋時,此功能自動使用發送位置DPOS的比較觸發;根據不同的驅動器差異性效果,也可以使用MOVEOP_DELAY指令來調整IO輸出的準確時間。
多種實現和調整方式,極大確保了VPLC機器視覺運動控制一體機在高速運動狀態下實現機器視覺飛拍時的精度。
二軟件實現
(一)準備
(二)實例演示
1.打開ZDevelop軟件:點擊“文件”→“打開項目”→選擇“基于形狀匹配的視覺定位”項目。
2.修改設計HMI界面。
3.在global_variable.bas文件中增加定義飛拍位置使用到的全局變量。
global dim Fly_Pos '飛拍位置
4.在InitLocator.bas文件中初始化飛拍運動的軸參數。
'初始化軸參數
base(0) '選擇軸0
UNITS=100 '脈沖當量設置為100
DPOS=0 '軸位置
SPEED=20 '運動速度
ACCEL=1000 '加速度
DECEL=1000 '減速度
5.關聯界面元件變量。
6.在camera.bas修改【單次采集】按鈕按下時響應的函數,并修改動作函數名的格式文本。
GLOBAL SUB btn_grab()
'如果d_use_imgfile=1時使用讀取本地圖片功能,使用控制器時請將此部分代碼注釋掉
'if (d_use_imgfile=1) then
'if(d_index=3) then
'd_index=0
'endif
'File_Name="3"+TOSTR(d_index,1,0)+".bmp" '...flash3目錄下的圖片所在的路徑名稱
'ZV_IMGREAD(grabImg,File_Name,0)
'ZV_LATCH(grabImg, 0)
'd_index=d_index+1
'return
'endif
''讀取本地圖片功能結束
'如果相機數量為0,提示先掃描相機,并退出子函數不往下執行
if cam_num = 0 then
?"請先掃描相機!"
return
endif
if cam_mode=0 then '如果選擇軟件觸發模式
CAM_STOP()
CAM_START(0)
CAM_SETMODE(cam_mode) '設置軟件觸發模式
CAM_SETPARAM("TriggerSoftware", 0) '軟件發送觸發指令
elseif cam_mode=1 THEN '如果選擇飛拍模式
CAM_STOP()
CAM_START(0)
CAM_SETMODE(cam_mode) '設置硬觸發模式
MOVE_OP2 (0,ON,1) '將輸出口0輸出為on狀態,1ms后再將狀態翻轉
endif
CAM_GET(grabImg, 0) '獲取一幀圖像存放到grabImg變量中
ZV_LATCH(grabImg, 0) '將圖像顯示到鎖存通道0中
END SUB
7.在main.bas添加【飛拍測試】按鈕按下時響應的函數,并關聯動作函數名。
'主界面按下飛拍測試按鈕時響應的函數
GLOBAL SUB Test()
if cam_mode=0 then '如果當前選擇軟觸發模式
CAM_STOP()
CAM_START(0)
CAM_SETMODE(1) '設置硬觸發模式
endif
dpos(0)=0 '位置清零
MOVE(Fly_Pos) '運動飛拍距離
MOVE_OP2(0,ON,1) '將輸出口0輸出為on狀態,1ms后再將狀態翻轉
MOVE(100) '直線運動
CAM_GET(grabImg, 0) '獲取一幀圖像存放到grabImg變量中
ZV_LATCH(grabImg, 0) '將圖像顯示到鎖存通道0中
btn_loc_test() '執行測試按鈕響應函數進行匹配定位檢測
END SUB
8.查看運行效果:將控制器接入電源,使用網線將控制器與PC連接,將相機的觸發線接入控制器輸出口out0→相機通電并接入控制器→連接控制器,并將項目下載到控制器→運行程序,測試程序效果。
(三)效果演示
本次,正運動技術機器視覺運動控制一體機應用例程(五)-飛拍定位,就分享到這里。
更多精彩內容請關注“正運動小助手”公眾號,需要相關開發環境與例程代碼,請咨詢正運動技術銷售工程師:400-089-8936。
本文由正運動技術原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。
下一篇: PLC、DCS、FCS三大控
上一篇: 離線仿真調試,加快項