更多內(nèi)容請點擊 R工控人
【庫卡機器人編程之SearchL功能】********************************
如何獲取更多經(jīng)典文章?
R工控人,定期分享實用資料與技術(shù)解答!!!
一.指令簡介:
當沿直線移動工具中心點時,( )用于搜索位置 。在移動時,機器人會監(jiān)控一個數(shù)字輸入信號或持續(xù)變量 。當信號持續(xù)變量的值變?yōu)樗?需值時,機器人立即讀取當前位置 。當由機械臂固定的工具為用于表面探測的探針時,通??墒褂迷撝噶?。使用 指令,可獲得工件的概略坐標 。
本指令僅可用于主任務,或者如果在系統(tǒng)中 , 則可用于運動任務 中 。使用搜索指令時 , 重要的是配置I/O系統(tǒng),以便為設置系統(tǒng)物理信號留以極短的時間,從而獲得關(guān)于設置的信息(使用I/O設備以及中斷控制 , 而非查詢控制) 。如何進行上 述操作,不同的現(xiàn)場總線可能會采用不同的方法 。如果使用,則ABB單元 DSQC 651(AD Combi I/O)和DSQC 652(數(shù)字I/O)將留以短暫的時間庫卡機器人故障代碼,因為他們 正在使用狀態(tài)變化型連接 。如果使用其他現(xiàn)場總線庫卡機器人故障代碼,則確保以正確的方式來配置網(wǎng)絡,從而獲得正確的條件 。
二.指令的使用:
1.語法:
2.案例說明:
例 1SearchL di1, sp, p10, v100, probe;以v100的速度 , 使probe的TCP沿直線朝位置p10 移動 。當信號di1的值改變?yōu)橛行r,將位置儲存在sp中 。例 2SearchL Stop, di2, sp, p10, v100, probe;將probe的TCP沿直線朝位置p10移動 。當信號di2的數(shù)值改變?yōu)橛行r,將位置儲存在sp中,且機械臂立即停止 。例 3PERS bool mypers:=FALSE;...SearchL mypers, sp, p10, v100, probe;probe 的 TCP 朝位置 p10 以直線方式移動 , 速度為 v100 。當持續(xù)變量 mypers 變?yōu)?TRUE 時,位置存儲到 sp 。
三.庫卡上實現(xiàn)指令:
如果要在庫卡機器人上實現(xiàn)功能的話 , 這里需要使用到中斷功能,在實現(xiàn)之前 , 可以先回顧下有關(guān)中斷的知識點 。可以參見之前的文章:庫卡機器人編程之中斷
當你完全清楚了庫卡機器人中斷相關(guān)指令及知識,接下來的程序(具體可以參照Volvo標準)就會得心應手(程序純粹摘錄,僅供提供思路,如需實際使用可以依照改寫):
代碼如下:
GLOBAL DEFFCT BOOL SEARCHL(InPno :IN,StopPosition :OUT,EndPosition :IN,VelPara :IN,ToolName :IN,PartDataName :IN,ExtendedLoad :IN )DECL INT InPnoDECL E6POS StopPositionDECL E6POS EndPositionREAL VelParaDECL ToolType ToolNameDECL LOAD ExtendedLoad;Extended LoadDECL PartDataType PartDataNameDECL LOAD ActualLoadTool, ActualLoadPartFound=FALSEChkSub ( )INTERRUPT DECL 1 WHEN $MEAS_PULSE[InPno]FALSE DO Not_Much ( )CPPara (VelPara,ACT_ACC_CP ) ; path velocity and acceleration$ADVANCE=0IF VarState("ExtendedLoad")==#Initialized ThenActualLoadTool=ExtendedLoadActualLoadPart=ExtendedLoadELSEActualLoadTool=ToolName.TLoadActualLoadPart=PartDataName.PartLoadEndIfIF ToolName.External THENSetExtTool (ToolName ) ; set the $BaseSetFlange (PartDataName,ActualLoadPart ) ; set the $Tool, $Load$IPO_MODE=#TCPELSESetTool (ToolName,ActualLoadTool )SetBase (PartDataName )$IPO_MODE=#BASEENDIFWAIT FORTRUESearch (EndPosition );搜尋過程如果提前獲得結(jié)果則觸發(fā)中斷,提前跳出;IF Found==TRUE THENStopPosition=FoundPositionENDIFRETURNFoundENDFCT-----------------------------------------------------------------DEF Search (EndPosition :IN );*************************************************;Function: SearchL.src files;*************************************************DECL E6POS EndPositionWAIT SEC SEARCHWAITINTERRUPT ON 1LINEndPosition$ADVANCE=0INTERRUPT OFF 1END-----------------------------------------------------------------DEF Not_Much ( )INTERRUPT OFF 1BRAKEFoundPosition=$POS_INTFound=TRUERESUMEEND
本文到此結(jié)束,希望對大家有所幫助 。
- 庫卡機器人如何通過電路圖快速查找故障,分析電路很重要!
- 力控組態(tài)軟件和Vb可視化編程軟件有什么區(qū)別?
- 程序員、寫過代碼的人們,你們都用過哪些編程語言?
- 如何創(chuàng)建自己的小程序?
- 創(chuàng)建簡單聊天AI機器人
- 如何理解PLC編程中變量的概念,變量的由來和意義,以及如何使用?
- UnitMesh 架構(gòu):釋放 AI 編程的全部潛力,程序員將成為代碼質(zhì)檢員?
- 【國際版】顛覆傳統(tǒng),通過機器人模擬器,實現(xiàn)機器人在線教育!
- C語言編程之二進制原碼、反碼和補碼
- C語言/C++編程,煙花表白程序
