時(shÃ)間:2024-10-16 15:57:22來(lái)æºï¼šæ·±åœ³å¸‚æ£é‹(yùn)å‹•(dòng)技術(shù)有é™å…¬å¸
  應(yÄ«ng)ç”¨èƒŒæ™¯éš¨è‘—å¸‚å ´(chÇŽng)å°(duì)篩é¸éœ€æ±‚的增長(zhÇŽng),“圓盤(pán)ç¯©é¸æ©Ÿ(jÄ«)â€é€™ä¸€å€‹(gè)詞更多地出ç¾(xià n)在了工控行æ¥(yè)ã€é›»å行æ¥(yè)ç‰é ˜(lÇng)域。目å‰å¸‚é¢ä¸Šå¤§å¤šæ•¸(shù)的圓盤(pán)ç¯©é¸æ©Ÿ(jÄ«)是一個(gè)工站的應(yÄ«ng)用,å³ä¸€å€‹(gè)大圓盤(pán)完æˆä¸€å·¥ä½çš„篩é¸å·¥ä½œã€‚
  å°(duì)于相機(jÄ«)å°‘ã€åˆ†é¡žå°‘的應(yÄ«ng)用,空間的應(yÄ«ng)用顯得ä¸å¤ åˆç†ï¼Œæ˜¯å¦å¯ä»¥å°‡æ©Ÿ(jÄ«)臺(tái)空間更åˆç†åœ°åˆ©ç”¨?å¦å¤–æµæ°´ç·šå¼çš„相機(jÄ«)少的機(jÄ«)æ§‹(gòu)能å¦ä¸€æŽ§å¤šå‘¢?
  æ£é‹(yùn)å‹•(dòng)技術(shù)解決方案:
  æ£é‹(yùn)å‹•(dòng)é‡å°(duì)ç¾(xià n)æœ‰å¸‚å ´(chÇŽng)éœ€æ±‚ï¼Œç‚ºæ¤æŽ¨å»£éƒ¨ç½²è‡´åŠ›äºŽæ©Ÿ(jÄ«)臺(tái)空間的åˆç†åˆ©ç”¨ï¼Œå°‡XPCIE1028控制å¡å°(duì)ç¯©é¸æ‡‰(yÄ«ng)用進(jìn)行了å‡ç´š(jÃ)延伸,實(shÃ)ç¾(xià n)一å¡é›™å·¥ä½çš„æŽ§åˆ¶(å³é›™ç›¤(pán)篩é¸),兩個(gè)å·¥ä½ä¹‹é–“完全ç¨(dú)立,測(cè)試的篩é¸å·¥ä½œæ•ˆçއé”(dá)到1.2W+。
  01ã€XPCIE1028控制å¡ä»‹ç´¹
XPCIE1028是æ£é‹(yùn)å‹•(dòng)技術(shù)新推出的一款采用新型XPCIE總線接å£çš„高速視覺(jué)篩é¸å°ˆç”¨çš„é‹(yùn)å‹•(dòng)控制å¡ï¼Œå¯æŽ§åˆ¶å¤šå€‹(gè)æ¥é€²(jìn)電機(jÄ«)或數(shù)å—å¼ä¼ºæœé›»æ©Ÿ(jÄ«)。
  XPCIE1028é‹(yùn)å‹•(dòng)控制å¡é©åˆäºŽå¤šè»¸é»ž(diÇŽn)ä½é‹(yùn)å‹•(dòng)ã€æ’補(bÇ”)é‹(yùn)å‹•(dòng)ã€è»Œè·¡è¦(guÄ«)åŠƒã€æ‰‹è¼ªæŽ§åˆ¶ã€ç·¨ç¢¼å™¨ä½ç½®æª¢æ¸¬(cè)ã€I/O控制ã€ä½ç½®éŽ–å˜ç‰åŠŸèƒ½çš„æ‡‰(yÄ«ng)用。
  XPCIE1028é‹(yùn)å‹•(dòng)控制å¡è‡ªå¸¶8路高速輸入和多é”(dá)16路高速硬件ä½ç½®æ¯”è¼ƒè¼¸å‡ºï¼Œèƒ½å¤ è¼•æ¾å¯¦(shÃ)ç¾(xià n)視覺(jué)飛æ‹å’Œé«˜é€Ÿã€ç²¾æº–(zhÇ”n)觸發(fÄ)控制ç‰è¦–覺(jué)ç¯©é¸æ©Ÿ(jÄ«)所需的多種實(shÃ)時(shÃ)性é‹(yùn)å‹•(dòng)控制,以åŠé«˜ç©©(wÄ›n)定性。
  02ã€C++語(yÇ”)言MFC進(jìn)行篩é¸é …(xià ng)目的開(kÄi)發(fÄ)
  1ã€æ–°å»ºMFCé …(xià ng)目,在工具欄èœå–®â€œæ–‡ä»¶â€â†’“新建â€â†’â€œé …(xià ng)ç›®â€ï¼Œå•Ÿå‹•(dòng)創(chuà ng)å»ºé …(xià ng)ç›®å‘?qÅ«)Ð?/p>
  2ã€é»ž(diÇŽn)擊下一æ¥ï¼Œä¿®æ”¹é …(xià ng)ç›®å稱åŠé …(xià ng)ç›®ä¿å˜è·¯å¾‘。
  3ã€é»ž(diÇŽn)擊創(chuà ng)å»ºï¼Œé¸æ“‡é¡žåž‹ç‚ºâ€œåŸºäºŽå°(duì)話框â€ï¼Œç¹¼çºŒ(xù)點(diÇŽn)擊“下一æ¥â€ï¼Œç›´è‡³å®Œæˆï¼Œé …(xià ng)目創(chuà ng)建æˆåŠŸã€‚
  4ã€æ ¹æ“š(jù)å» å•†æä¾›çš„庫(kù)文件,將å°(duì)應(yÄ«ng)使•¸(shù)çš„zauxdll2.hã€zauxdll.libã€zauxdll.dllã€zmotion.dllã€zmotion.libã€zmotion.hã€zmc_xp.hã€zmc_xp.lib以åŠzmc_xp.dllæ·»åŠ åˆ°é …(xià ng)目文件夾內(nèi)ï¼Œå¹¶åœ¨é …(xià ng)ç›®ä¸åŒ…å«ã€‚
  5ã€åœ¨é …(xià ng)ç›®æ·»åŠ ç¯©é¸é‹(yùn)å‹•(dòng)庫(kù)åŠç›¸é—œ(guÄn)é æ–‡ä»¶ã€‚
  6ã€åœ¨å½ˆå‡ºä¾†(lái)的窗å£ä¸ä¾æ¬¡æ·»åŠ ç¯©é¸é‹(yùn)å‹•(dòng)庫(kù)和相關(guÄn)é æ–‡ä»¶ã€‚
  7ã€åœ¨ä¸æ·»åŠ é æ–‡ä»¶å¼•用#include“zmotion.hâ€ã€#include “zauxdll2.hâ€å’Œ#include“zmc_xp.hâ€ã€‚
  8ã€ä¸Šè¿°æ¥é©Ÿå®Œæˆä¸”æ£ç¢ºè¼¸å…¥é 文件的相關(guÄn)指令接å£ï¼Œç·¨è¯é€šéŽ(guò),就å¯ä»¥é€²(jìn)行篩é¸ç¨‹åºçš„é–‹(kÄi)發(fÄ)應(yÄ«ng)用。
  03ã€ç¯©é¸æŽ’æ–™æµç¨‹ä»¥åŠç›¸é—œ(guÄn)函數(shù)介紹
  1ã€æ“作說(shuÅ)明
  通éŽ(guò)ä¸Šä½æ©Ÿ(jÄ«)編寫(xiÄ›)篩é¸ç¨‹åºæ™‚(shÃ),首先用ZAux_FastOpen指令連接控制å¡ï¼Œå†ç”¨PC_INT_CARDæŒ‡ä»¤åŠ è¼‰ç¯©é¸ç¨‹åºï¼Œç„¶åŽé…置軸ã€ç›¸æ©Ÿ(jÄ«)ã€æŽ’æ–™ç‰åƒæ•¸(shù)ï¼Œåƒæ•¸(shù)è¨(shè)置完æˆåŽï¼Œé¸æ“‡ç›¸æ©Ÿ(jÄ«)çµ(jié)果下發(fÄ)模å¼å’Œé€šä¿¡æ¨¡å¼ï¼Œç„¶åŽé–‹(kÄi)始篩é¸ç¨‹åºçš„é‹(yùn)行,當(dÄng)進(jìn)料傳感器感應(yÄ«ng)到進(jìn)æ–™åŽï¼Œæ¨¡æ“¬ç›¸æ©Ÿ(jÄ«)處ç†çš„çµ(jié)果,將相機(jÄ«)處ç†çš„çµ(jié)果下發(fÄ)給控制å¡ï¼Œç•¶(dÄng)é‹(yùn)å‹•(dòng)到å°(duì)應(yÄ«ng)的排料å£çš„ä½ç½®åŽï¼Œå°‡æœƒ(huì)觸發(fÄ)å°(duì)應(yÄ«ng)çš„OUTå£é€²(jìn)行排料。
  2ã€æŒ‡ä»¤èªª(shuÅ)明
  04ä¸Šä½æ©Ÿ(jÄ«)調(dià o)用指令方å¼ä¸‹å¯¦(shÃ)ç¾(xià n)主盤(pán)排料例程
ã€€ã€€åœ¨ä¸Šä½æ©Ÿ(jÄ«)調(dià o)用指令的方å¼ä¸‹é€²(jìn)行觸發(fÄ)æŽ’æ–™ï¼Œèƒ½å¤ ?qÅ«)å´¿F(xià n)在相機(jÄ«)較多的情æ³ä¸‹ï¼Œå¯¦(shÃ)ç¾(xià n)快速的觸發(fÄ)排料的IOå‹•(dòng)作,但有個(gè)注æ„的地方,如果排料指令(PC_MODBUS_SET)下發(fÄ)的速度較晚,料已經(jÄ«ng)éŽ(guò)了è¨(shè)定的排料ä½ç½®ï¼Œå°±æœƒ(huì)è·³éŽ(guò)本次排料,導(dÇŽo)致åŽé¢çš„æ–™ä¸èƒ½æ£å¸¸çš„觸發(fÄ)å°(duì)應(yÄ«ng)çš„IOå£é€²(jìn)行排料。
  1ã€é€£æŽ¥æŽ§åˆ¶å¡åŠåŠ è¼‰ç¯©é¸ç¨‹åº
  ·
  iret= ZAux_FastOpen(5, "LOCAL1", 1000, &c_value::g_handle);MessageBox("控制å¡é€£æŽ¥æˆåŠŸ!");int ret = PC_INT_CARD(c_value::g_handle); //åˆå§‹åŒ–篩é¸åŠŸèƒ½while (ret != 0){ ret = PC_INT_CARD(c_value::g_handle); //åˆå§‹åŒ–篩é¸åŠŸèƒ½}
  2ã€è¨(shè)置相機(jÄ«)ã€æŽ’æ–™ç‰åƒæ•¸(shù)åŠé‹(yùn)行程åº
  ·
  int ret = 0;// 定義一個(gè)數(shù)組,來(lái)å˜æ”¾è»¸çš„åƒæ•¸(shù)è¨(shè)ç½®(便¬¡ç‚ºè»¸é¡žåž‹->脈沖當(dÄng)é‡->旋轉(zhuÇŽn)行程(360°)->速度->åŠ é€Ÿåº¦->減速度->æ–¹å‘->編碼器方å‘(0ç‚ºæ£æ–¹å‘,1ç‚ºè² (fù)æ–¹å‘))float axis_param[10]{1,1000,360,50,1000,1000,0,0};//è¨(shè)置主盤(pán)çš„è»¸åƒæ•¸(shù)ret=PC_SAVE_PARAM(c_value::g_handle, axis_param,0);//è¨(shè)置主盤(pán)的兩路相機(jÄ«)ret = PC_SET_CAM_NUM(c_value::g_handle,2,0);//è¨(shè)置主盤(pán)çš„3路排料ret = PC_SET_OP_NUM(c_value::g_handle,3,0);//è¨(shè)置主盤(pán)çš„2路相機(jÄ«)觸發(fÄ)çš„åƒæ•¸(shù)ret = PC_SAVE_POS(c_value::g_handle, 0, 100.2, 3, 1500, -1,0);ret = PC_SAVE_POS(c_value::g_handle, 1, 150.5, 4, 1500, -1,0);//è¨(shè)置主盤(pán)çš„3路排料觸發(fÄ)çš„åƒæ•¸(shù)ret = PC_SAVE_POSNG(c_value::g_handle,0,255.5,6,1500,1,0,0);ret = PC_SAVE_POSNG(c_value::g_handle, 1, 305.5, 7, 1500, 1, 0,0);ret = PC_SAVE_POSNG(c_value::g_handle, 2, 345.5, 8, 1500, 1, 0,0);//è¨(shè)置主盤(pán)的網(wÇŽng)å£çš„é€šè¨Šåƒæ•¸(shù)為0號(hà o)寄å˜å™¨ï¼Œèµ·å§‹å€¼ç‚º0(0代表第一個(gè)排料å£(NG),1代表第二個(gè)排料å£(OK),2代表第三個(gè)排料å£(RETEST))ret = PC_TCP_MODE(c_value::g_handle,0,0,0);//è¨(shè)置主盤(pán)的視覺(jué)處ç†çµ(jié)果通訊方å¼ç‚ºmodbus_tcpret = PC_SET_MODE(c_value::g_handle, 2,0);//é‹(yùn)行篩é¸ä¸»ç›¤(pán)程åºret=PC_CAM_RUN_TASK(c_value::g_handle,0);while (ret != 0){ ret = PC_CAM_RUN_TASK(c_value::g_handle,0);}MessageBox("é–‹(kÄi)å§‹é‹(yùn)行!");Check1_Shake.SetCheck(TRUE);c_value::G_run_test = 1;//é–‹(kÄi)啟排料線程進(jìn)行排料下發(fÄ)指令CWinThread* blowTest = AfxBeginThread(blow_test,this);
  3ã€æŽ’æ–™ç·šç¨‹
  ·
  //排料線程UINT CMFCApplication1Dlg::blow_test(LPVOID p){ int cam_num = 0; //ä¸é–“å€¼ï¼Œå˜æ”¾ä¸Šä¸€æ¬¡çš„相機(jÄ«)觸發(fÄ)計(jì)數(shù)來(lái)與本次的作比較 int cam_tempnum = 0; while (c_value::G_run_test != 0) { //è®€å–æŒ‡å®šç·¨è™Ÿ(hà o)的相機(jÄ«)執(zhÃ)行次數(shù) PC_READ_CURCAM_RUN(c_value::g_handle, 1, cam_num); if (cam_num > cam_tempnum) { //模擬相機(jÄ«)處ç†çš„çµ(jié)果為ok,指定ok料倉(cÄng)進(jìn)行排料 PC_MODBUS_SET(c_value::g_handle,1,0); cam_tempnum++; } } return 0;}
  如果需è¦ä½¿ç”¨å‰¯ç›¤(pán),在調(dià o)ç”¨ä¸Šä½æ©Ÿ(jÄ«)接å£ä¸çš„æœ€åŽé¢åƒæ•¸(shù)(å³ï¼švice)寫(xiÄ›)“1â€ï¼Œå°±å¯è¨(shè)置副盤(pán)的相關(guÄn)åƒæ•¸(shù)ã€é–‹(kÄi)å•Ÿåœæ¢å‰¯ç›¤(pán)篩é¸çš„程åº;副盤(pán)的排料與示例的主盤(pán)排料æ¥é©Ÿä¸€æ¨£ã€‚
  05ã€ç¯©é¸èª¿(dià o)試工具的使用
ä¸€ã€æ–¹æ³•1
ã€€ã€€åœ¨ä¸Šä½æ©Ÿ(jÄ«)調(dià o)用PC_INT_CARD指令將篩é¸ç¨‹åºåŠ è¼‰é€²(jìn)控制å¡åŽï¼Œåœ¨å» 商æä¾›çš„MotionRT7的驅(qÅ«)å‹•(dòng)文件ä¸ï¼Œé›™æ“Šæ‰“é–‹(kÄi)å稱為“xplctermâ€çš„æ–‡ä»¶ï¼Œæœ€åŽé›™æ“Šæ‰“é–‹(kÄi)“xplcterm.exeâ€çš„å¯åŸ·(zhÃ)行程åºå³å¯ã€‚
ã€€ã€€äºŒã€æ–¹æ³•2
  1.ä¸Šä½æ©Ÿ(jÄ«)調(dià o)用PC_INT_CARD指令將篩é¸ç¨‹åºåŠ è¼‰é€²(jìn)控制å¡åŽï¼Œæ‰“é–‹(kÄi)RTSys軟件上,連接控制å¡ã€‚
  2.在“工具â€é‡Œï¼Œé»ž(diÇŽn)擊“æ’ä»¶â€çš„“XPlc Screenâ€ã€‚
  主盤(pán)的篩é¸åƒæ•¸(shù)è¨(shè)置與查看界é¢å¦‚下圖所示。
  3.篩é¸èª¿(dià o)試軟件開(kÄi)啟副盤(pán)的界é¢ï¼šé»ž(diÇŽn)擊“開(kÄi)啟副盤(pán)â€ï¼Œå†é»ž(diÇŽn)擊“副盤(pán)è¨(shè)ç½®â€çš„æŒ‰éˆ•å°±å¯ä»¥æ‰“é–‹(kÄi)副盤(pán)的調(dià o)試界é¢ã€‚
  副盤(pán)的篩é¸åƒæ•¸(shù)è¨(shè)置與查看界é¢å¦‚下圖所示。
  4.示例程åºé‹(yùn)行時(shÃ),主盤(pán)一段時(shÃ)間的進(jìn)æ–™ã€ç›¸æ©Ÿ(jÄ«)執(zhÃ)è¡Œã€æŽ’æ–™åŸ·(zhÃ)è¡Œç‰æ¬¡æ•¸(shù)。
  本次,æ£é‹(yùn)å‹•(dòng)技術(shù)PCIe實(shÃ)時(shÃ)é‹(yùn)å‹•(dòng)控制å¡çš„雙盤(pán)視覺(jué)ç¯©é¸æ©Ÿ(jÄ«)ä¸Šä½æ©Ÿ(jÄ«)é–‹(kÄi)發(fÄ)應(yÄ«ng)用,就分享到這里。
  更多精彩內(nèi)容請(qÇng)é—œ(guÄn)注“æ£é‹(yùn)å‹•(dòng)å°åŠ©æ‰‹â€å…¬çœ¾è™Ÿ(hà o),需è¦ç›¸é—œ(guÄn)é–‹(kÄi)發(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)æ³¨æ˜Žæ–‡ç« ä¾†(lái)æºã€‚
ä¸Šä¸€ç¯‡ï¼šå¦‚ä½•é¸æ“‡é›»å£“傳感器
ä¸‹ä¸€ç¯‡ï¼šç‚ºä»€ä¹ˆé›»æµæ„Ÿæ‡‰(yÄ«ng)å°(duì)于å”(xié)作移動(dòng)...
ä¸åœ‹(guó)傳動(dòng)ç¶²(wÇŽng)版權(quán)與å…責(zé)è²æ˜Žï¼šå‡¡æœ¬ç¶²(wÇŽng)注明[來(lái)æºï¼šä¸åœ‹(guó)傳動(dòng)ç¶²(wÇŽng)]的所有文å—ã€åœ–片ã€éŸ³è¦–å’Œè¦–é »æ–‡ä»¶ï¼Œç‰ˆæ¬Š(quán)å‡ç‚ºä¸åœ‹(guó)傳動(dòng)ç¶²(wÇŽng)(www.hysjfh.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)資訊