女人自慰AV免费观看内涵网,日韩国产剧情在线观看网址,神马电影网特片网,最新一级电影欧美,在线观看亚洲欧美日韩,黄色视频在线播放免费观看,ABO涨奶期羡澄,第一导航fulione,美女主播操b

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

庫卡機器人編程之干涉區間

機器人及PLC自動化應用 ? 來源:機器人及PLC自動化應用 ? 2020-08-07 16:39 ? 次閱讀

一.干涉的定義

機器人在作業過程中,或者在運行過程中,兩個或兩個以上的機器人同時占有同一區間位置而發生沖突叫干涉。因為干涉可能引起的后果有:

機器人的部件損壞 任何因干涉而造成的不良后果,都將為客戶帶來不
可估計的損失!
機器人程序混亂
加工中的工件損壞
周邊其他設備設施的損壞

二.干涉區間

同一工位的機器人,在工作過程中,需要進入到同一個區域,但在進入的先后次序無嚴格的限定,一臺機器人(Master)具有絕對優先的權利,即該機器人首先進入干涉區,作業完成之后另一臺機器人(Slave)才可以進入該干涉區工作。任意一臺機器人先進入(Master),在工藝上都允許(除了影響運行時間外),允許使用干涉區信號對控制機器人運行,防止機器人之間碰撞。對于有嚴格的工藝時序的干涉,采用互鎖信號來控制。這種干涉區信號設置方法如圖所示。 ⑴如圖中,Rob2機器人為Master,Rob1機器人為Slave. Rob1和Rob2機器人在進入干涉區之前首先分別對彼此進行初始化(開啟干涉區監控并釋放干涉區)。 ⑵機器人進入干涉區三種情形:

1 Rob1機器人進入干涉區前,發送從機欲進入干涉區的請求信號,并檢測Rob2作為主機是否發送欲進入干涉區的請求信號。如果主機Rob2進入干涉區的請求信號被激活,無論此時Rob2進入或則即將進入干涉區,此時Rob1都將停止運動并等待Rob2完成運動退出干涉區。
2 如果Rob1和Rob2同時發出欲進入干涉區的請求信號,Rob2機器人優先進入,此時Rob1都將停止運動并等待Rob2完成運動退出干涉區。
3 如果Rob1作為從機已進入干涉區時,Rob2若想進入干涉區,Rob2必須停止運動并等待Rob1完成運動退出干涉區。

⑶待進入干涉區的機器人必須等待已進入干涉區的機器人完成運動退出干涉區后方可進入。

三.干涉區間互鎖編程思路:

創建名為Interlock的程序主要適用于存在有關聯的機器人組之間互鎖,該程序包含源代碼SRC文件和數據文件DAT兩個文件:

1.Interlock.dat數據文件說明:

①枚舉類型互鎖指令E_LOCKTYPE:

GLOBAL ENUM E_LOCKTYPE ENTER_LOCK_M,ENTER_LOCK_S,LEAVE_LOCK,CYC_CONTROL,RESET_LOCK

互鎖命令 說明
ENTER_LOCK_M 作為主機器人進入干涉區
ENTER_LOCK_S 作為從機器人進入干涉區
LEAVE_LOCK 機器人退出干涉區
CYC_CONTROL 激活干涉區監控中斷
RESET_LOCK 初始化并釋放干涉區

②結構體型互鎖信號S_LOCKSIG:

GLOBAL STRUC S_LOCKSIG INTROB_IN,INTROB_OUT

互鎖信號 說明
ROB_IN 其他機器人許可當前機器人進入干涉區的輸入信號:TRUE表示許可
ROB_OUT 當前機器人進入干涉區請求的輸出信號:FALSE表示請求

③用于診斷的當前機器人激活干涉區號zLockNumber:

GLOBAL INT zLockNumber=3

④干涉區監控的中斷及循環旗幟的定義:

GLOBALCONSTINTczCollInterrupt=1;定義干涉區監控的中斷等級GLOBALCONSTINTczCycCollision=1 ;定義干涉區監控的循環旗幟號

⑤信號安全檢測時間,與SPS掃描周期:

GLOBALCONSTREALcrDeadtime=0.200000003 ;信號安全檢測時間,與SPS掃描周期

⑥干涉區互鎖信號:

SIGNAL giRobotInterlock $IN[89] TO $IN[104] ;許可當前機器人進入干涉區的輸入信號組SIGNALgoRobotInterlock$OUT[89]TO$OUT[104] ;當前機器人進入干涉區請求的輸出信號組DECLS_LOCKSIGTABLE_LOCK[16];定義機器人干涉區的互鎖表TABLE_LOCK[1]={ROB_IN89,ROB_OUT89};機器人干涉區的互鎖1TABLE_LOCK[2]={ROB_IN 90,ROB_OUT 90} ;機器人干涉區的互鎖2TABLE_LOCK[3]={ROB_IN 91,ROB_OUT 91} ;機器人干涉區的互鎖3TABLE_LOCK[4]={ROB_IN 92,ROB_OUT 92} ;機器人干涉區的互鎖4TABLE_LOCK[5]={ROB_IN93,ROB_OUT93};機器人干涉區的互鎖5TABLE_LOCK[6]={ROB_IN94,ROB_OUT94};機器人干涉區的互鎖6TABLE_LOCK[7]={ROB_IN95,ROB_OUT95};機器人干涉區的互鎖7TABLE_LOCK[8]={ROB_IN 96,ROB_OUT 96} ;機器人干涉區的互鎖8TABLE_LOCK[9]={ROB_IN 97,ROB_OUT 97} ;機器人干涉區的互鎖9TABLE_LOCK[10]={ROB_IN 98,ROB_OUT 98} ;機器人干涉區的互鎖10TABLE_LOCK[11]={ROB_IN 99,ROB_OUT 99} ;機器人干涉區的互鎖11TABLE_LOCK[12]={ROB_IN 100,ROB_OUT 100} ;機器人干涉區的互鎖12TABLE_LOCK[13]={ROB_IN 101,ROB_OUT 101} ;機器人干涉區的互鎖13TABLE_LOCK[14]={ROB_IN 102,ROB_OUT 102} ;機器人干涉區的互鎖14TABLE_LOCK[15]={ROB_IN103,ROB_OUT103};機器人干涉區的互鎖15TABLE_LOCK[16]={ROB_IN 104,ROB_OUT 104} ;機器人干涉區的互鎖16

2.Interlock.src源程序文件說明:

①Interlock源程序包含以下子程序:

子程序名 說明
ANTI_COLLISION 互鎖程序
STOP_ROB 互鎖程序中的中斷程序
Msg_Anticoll 互鎖激活的信息提示程序
SetMsg 設置信息提示的程序

②互鎖程序ANTI_COLLISION(eiLockType:IN,ziLockNum:IN):

傳遞參數 類型 取值 說明
eiLockType E_LOCKTYPE #ENTER_LOCK_M 作為主機請求進入干涉區
#ENTER_LOCK_S 作為從機請求進入干涉區
#LEAVE_LOCK 離開干涉區
#CYC_CONTROL 干涉區初始化:激活互鎖中斷
#RESET_LOCK 干涉區初始化:重置輸出信號
ziLockNum INT 1…16 互鎖序號:與TABLE_LOCK相對

●#ENTER_LOCK_M程序邏輯:

1 禁用干涉區監控中斷;
2 判斷從站機器人是否已在該干涉區:
1.若該值為真,表示與之對應的機器人不在該干涉區,此時輸出進入干涉區請求信號假值;
2.若該值為假,則表示與之對應的機器人在該干涉區,此時中間變量nbOK置為假,并提示信息-主機該干涉區被其他從機器人激活,并等待從站機器人在該干涉區的信號為真,輸出從站機器人在該干涉區激活多久的信息;在循環中等待從站機器人在該干涉區的信號為真,此時輸出進入干涉區請求信號;
3 激活干涉區監控中斷;

●#ENTER_LOCK_S程序邏輯:

1 禁用干涉區監控中斷
2 中間變量nbOK置為假,并提示信息-該干涉區被主機器人激活,進入循環判斷,判斷主機器人是否已激活 該干涉區:
若該值為真,輸出進入干涉區請求信號假值;等待一個時間在判斷判斷主機器人激活該干涉區:如果該值為真,則將中間變量置真,并退出循環;若該值為假,則將輸出進入干涉區請求信號真值,讓主機器進入干涉區,該從機器人繼續等待主機器人激活該干涉區值為真;
3 輸出進入干涉區請求信號假值;
4 激活干涉區監控中斷;

●#LEAVE_LOCK程序邏輯:

1 如果機器人不在路徑上,則等待機器人在路徑上;
2 輸出進入干涉區請求信號真值;

●#RESET_LOCK程序邏輯:

1 等待機器人在路徑上;
2 輸出進入干涉區請求信號真值;

●#CYC_CONTROL程序邏輯:

1 定義因互鎖引起的停機中斷;
2 關閉中斷;
3 定義中斷中的循環旗幟;
4 開啟中斷;
5 激活中斷;

代碼:

DEF Interlock( )END;-------------Interlock Active----------------------GLOBAL DEF ANTI_COLLISION(eiLockType:IN, ziLockNum:IN)DECL E_LOCKTYPE eiLockTypeDECL INT ziLockNumDECL BOOL nbOKCONTINUEIF VARSTATE("ziLockNum")<>#INITIALIZED THEN MsgQuit("Lock area not initialized") HALT ELSE IF ziLockNum>16 OR ziLockNum<1 THEN MsgQuit("Lock area msut be 1 to 16!") HALT ENDIFENDIFSWITCH eiLockType ; --- Enter Collision Zone as Master --- CASE #ENTER_LOCK_M WAIT SEC 0 INTERRUPT DISABLE czCollInterrupt ; Disable Monitoring IF ($IN[TABLE_LOCK[ziLockNum].ROB_IN]) THEN $OUT[TABLE_LOCK[ziLockNum].ROB_OUT]=FALSE ELSE nbOK=FALSE MSG_ANTICOLL(ziLockNum) REPEAT IF ($IN[TABLE_LOCK[ziLockNum].ROB_IN]) THEN nbOK=TRUE ELSE nbOK=FALSE ENDIF WAIT SEC 0.01 ; Sampling 100 ms UNTIL (INSTRUCTION_OK==TRUE) $OUT[TABLE_LOCK[ziLockNum].ROB_OUT]=FALSE ENDIF INTERRUPT ENABLE czCollInterrupt ; Enable Monitoring ; --- Enter Collsion Zone as Slave --- CASE #ENTER_LOCK_S WAIT SEC 0 INTERRUPT DISABLE czCollInterrupt ; Disable Monitoring nbOK=FALSE MSG_ANTICOLL(ziLockNum) REPEAT IF ($IN[TABLE_LOCK[ziLockNum].ROB_IN]) THEN $OUT[TABLE_LOCK[ziLockNum].ROB_OUT]=FALSE WAIT SEC crDeadtime IF ($IN[TABLE_LOCK[ziLockNum].ROB_IN]) THEN nbOK=TRUE ELSE nbOK=FALSE $OUT[TABLE_LOCK[ziLockNum].ROB_OUT]=TRUE ENDIF ENDIF WAIT SEC 0.01 ; Sampling 100 ms UNTIL (nbOK==TRUE) $OUT[TABLE_LOCK[ziLockNum].ROB_OUT]=FALSE INTERRUPT ENABLE czCollInterrupt ; Enable Monitoring ; --- Leave Collision Zone --- CASE #LEAVE_LOCK CONTINUE IF NOT $ON_PATH THEN WAIT FOR $ON_PATH ENDIF TRIGGER WHEN DISTANCE=1 DELAY=0 DO $OUT[TABLE_LOCK[ziLockNum].ROB_OUT]=TRUE; --- Initialize Collision Zone --- CASE #RESET_LOCK WAIT SEC 0 WAIT FOR $ON_PATH $OUT[TABLE_LOCK[ziLockNum].ROB_OUT]=TRUE ; --- Prepare for permanent Monitoring--- CASE #CYC_CONTROL GLOBAL INTERRUPT DECL czCollInterrupt WHEN NOT $CYCFLAG[czCycCollision] DO STOP_ROB( ) INTERRUPT OFF czCollInterrupt $CYCFLAG[czCycCollision]=TRUE $CYCFLAG[czCycCollision]=(((goRobotInterlock B_EXOR 'B1111111111111111') B_AND giRobotInterlock) == (goRobotInterlock B_EXOR 'B1111111111111111')) INTERRUPT ON czCollInterrupt INTERRUPT ENABLE czCollInterrupt; --- WARNING: Program Failure Interlocks --- DEFAULT HALT MsgNotify("Unknown Collision Setting!Please Switch Ti Mode!") WAIT FOR $T1ENDSWITCHENDGLOBAL DEF STOP_ROB ( ); *** Stop Movement by Interlock Monitoring*** BRAKE setmsg (99,3,0) WAIT FOR $CYCFLAG[czCycCollision]ENDGLOBAL DEF Msg_Anticoll(ziLockNum :IN)DECL INT ziLockNumDECL REAL nrTimernrTimer=0.0zLockNumber=ziLockNum;Message Outputsetmsg (ziLockNum,1,nzTimer) $TIMER_STOP[20]=TRUE$TIMER[20]=0$TIMER_STOP[20]=FALSEREPEAT WAIT sec .01UNTIL ($IN[TABLE_LOCK[ziLockNum].ROB_IN])==TRUE$TIMER_STOP[20]=TRUEnrTimer=$TIMER[20]nrTimer=nrTimer/1000.0setmsg (ziLockNum,2,nrTimer) ENDGLOBAL DEF SetMsg(ziLockNum:IN,ziMsg:IN,riPar:IN )DECL KrlMsg_T MsgDECL KrlMsgPar_T Par[3]DECL KrlMsgOpt_T OptDECL INT nzHandleDECL INT ziLockNum, ziMsgDECL REAL riPar;Select Msssage Text---------------------SWITCH ziMsg CASE 1 ;Interlock is Active Msg = {Modul[] "Interlock", Nr 007, Msg_txt[] "Interlock Area %1 is Active!"} CASE 2 ;Interlock was active Msg = {Modul[] "Interlock", Nr 008, Msg_txt[] "Interlock Area %1 was active %2[s] ago!"} CASE 3 ;Interlock Cycflag has triggered Msg = {Modul[] "Interlock", Nr 009, Msg_txt[] "Collision Monitoring has Triggered!"}ENDSWITCH;Configuration of message parameter --------Par[1] = {PAR_TYPE #VALUE, PAR_INT 0}Par[1].PAR_INT = ziLockAreaPar[2] = {PAR_TYPE #VALUE, PAR_REAL 00.0}Par[2].PAR_REAL = riPar;Message Options ------------------------------------Opt = {Vl_STOP FALSE, CLEAR_P_RESET TRUE, CLEAR_P_SAW FALSE, LOG_TO_DB TRUE};Message generation---------------------------nzHandle = SET_KRLMSG (#NOTIFY, Msg, Par[], Opt)END

四.互鎖信號程序的使用:

1.初始化干涉監控:

ANTI_COLLISION(#CYC_CONTROL,0 )

2.重置并釋放干涉區信號-依據自己需求:

ANTI_COLLISION(#RESET_LOCK,1)ANTI_COLLISION(#RESET_LOCK,2)ANTI_COLLISION(#RESET_LOCK,3)ANTI_COLLISION(#RESET_LOCK,4)ANTI_COLLISION(#RESET_LOCK,5)ANTI_COLLISION(#RESET_LOCK,6)ANTI_COLLISION(#RESET_LOCK,7)ANTI_COLLISION(#RESET_LOCK,8)

3.進入干涉區:

-作為主機器人進入:

ANTI_COLLISION(#ENTER_LOCK_M,3)ANTI_COLLISION(#ENTER_LOCK_M,4) ;三臺機器人同時進入該區域ANTI_COLLISION(#ENTER_LOCK_M,5)

-作為從機器人進入:

ANTI_COLLISION(#ENTER_LOCK_S,3)ANTI_COLLISION(#ENTER_LOCK_S,4) ;三臺機器人同時進入該區域ANTI_COLLISION(#ENTER_LOCK_S,5)

復雜的互鎖建議最好由PLC來統一處理;

4.退出干涉區:

ANTI_COLLISION(#LEAVE_LOCK,3)

五.說明:

本文主要講述絕對優先干涉區的設定,此種方法必須區分主次關系,主機器人獲得絕對的優先處理的權力,而從機器人在遇到主從機器人同時進入干涉區時,獲得的優先級低于主機器人,必須等待主機器人處理完退出干涉區之后才能進入。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 機器人
    +關注

    關注

    213

    文章

    29533

    瀏覽量

    211704
  • 源代碼
    +關注

    關注

    96

    文章

    2951

    瀏覽量

    67959

原文標題:庫卡機器人編程之干涉區間

文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    機器人遇上“語言障礙”:CCLINKIE轉Profinet的“破冰外掛”來啦\\!

    在汽車焊裝車間的技術角,工程師小陳的筆記本記滿了“跨協議難題”:當搭載Profinet的卡機器人遇上CCLINKIE總線的三菱PLC,數據交互像隔著玻璃喊話——PLC發送的坐標指令要“繞地球半圈
    發表于 06-04 14:31

    盤點#機器人開發平臺

    地瓜機器人RDK X5開發套件地瓜機器人RDK X5開發套件產品介紹 旭日5芯片10TOPs算力-電子發燒友網機器人開發套件 Kria KR260機器人開發套件 Kria KR260-
    發表于 05-13 15:02

    KUKA機器人編程說明(英文)

    電子發燒友網站提供《KUKA機器人編程說明(英文).pdf》資料免費下載
    發表于 03-07 14:05 ?0次下載

    使用 Thonny 對 XRP 機器人進行編程

    算法中用于創建機器人未知區域導航地圖的三種主要技術。在這篇博客,我們將討論一個適合初學者的實驗機器人平臺 (XRP),以及如何通過另一種方式 Thonny 來對其編程。 什么是 XRP(實驗
    的頭像 發表于 01-26 17:31 ?484次閱讀
    使用 Thonny 對 XRP <b class='flag-5'>機器人</b>進行<b class='flag-5'>編程</b>

    伊之密與卡機器人達成戰略合作

    近日,伊之密與卡機器人(廣東)有限公司(以下簡稱“卡”)在伊之密全球創新中心舉行戰略簽約合作儀式。
    的頭像 發表于 01-22 10:11 ?859次閱讀

    【「具身智能機器人系統」閱讀體驗】2.具身智能機器人大模型

    需要專業程序員進行繁瑣的編程工作,這種方式不僅效率低下,還限制了機器人的應用場景。例如,在我們大學工程實訓課程中使用的數控機床,需要人為設定起點、終點、移動方向和移動距離等參數,自動化程度非常有限。而
    發表于 12-29 23:04

    焊接機器人編程技巧與注意事項

    隨著工業自動化的快速發展,焊接機器人在現代制造業中扮演著越來越重要的角色。它們不僅提高了生產效率,還保證了焊接質量的一致性。 1. 理解焊接機器人的基本原理 在開始編程之前,了解焊接機器人
    的頭像 發表于 11-25 09:44 ?926次閱讀

    卡機器人發布JAKA MAX系列新品

    卡機器人近日震撼發布JAKA MAX系列工業協作機器人新品,標志著公司在智能制造領域邁出了重要一步。JAKA MAX系列搭載了前沿科技,其伺服驅動系統創新性地采用了新一代半導體碳化硅技術,結合EtherCAT高速實時總線,實現了性能與效率的雙重飛躍。
    的頭像 發表于 09-26 14:55 ?780次閱讀

    工業機器人編程流程及注意事項

    工業機器人在現代制造業中扮演著越來越重要的角色。它們不僅提高了生產效率,還提升了產品質量和一致性。編程是使工業機器人能夠執行特定任務的關鍵步驟。 1. 需求分析 在開始編程之前,首先需
    的頭像 發表于 09-04 09:40 ?2171次閱讀

    工業機器人常用的編程方式

    工業機器人編程是確保機器人能夠執行特定任務的關鍵步驟。編程方式多種多樣,每種方式都有其特定的應用場景和優勢。 工業機器人
    的頭像 發表于 09-04 09:26 ?2106次閱讀

    工業機器人的四種編程(示教編程、離線編程、自增強現實編程編程)剖析!

    當前機器人廣泛應用于焊接、裝配、搬運、噴漆及打磨等領域,任務的復雜程度不斷增加,而用戶對產品的質量、效率的追求越來越高。在這種形式下,機器人編程方式、編程效率和質量顯得越來越重要。降
    的頭像 發表于 08-30 12:14 ?5108次閱讀
    工業<b class='flag-5'>機器人</b>的四種<b class='flag-5'>編程</b>(示教<b class='flag-5'>編程</b>、離線<b class='flag-5'>編程</b>、自增強現實<b class='flag-5'>編程</b>主<b class='flag-5'>編程</b>)剖析!

    卡機器人獲TüV萊茵北美cTUVus及CE指令符合性證書

    北京2024年8月27日 /美通社/ -- 8月23日,在2024世界機器人大會卡展臺,國際獨立第三方檢測、檢驗和認證機構德國萊茵TüV大中華區(簡稱"TüV萊茵")為卡機器人產品
    的頭像 發表于 08-28 14:00 ?505次閱讀
    <b class='flag-5'>庫</b><b class='flag-5'>卡機器人</b>獲TüV萊茵北美cTUVus及CE指令符合性證書

    世界機器人大會這些趨勢值得關注:機器人邁入中高端應用場景,看節卡機器人如何做?

    在全球科技變革的新航海時代下,節卡機器人將以更靈活的本地化運營體系、更成熟的產品和解決方案,不斷深化創新能力,把科技成果精準輸送到各行各業中,促進全球工業和機器人行業向新向上。
    的頭像 發表于 08-21 15:32 ?880次閱讀
    世界<b class='flag-5'>機器人</b>大會這些趨勢值得關注:<b class='flag-5'>機器人</b>邁入中高端應用場景,看節<b class='flag-5'>卡機器人</b>如何做?

    工業機器人任務編程基本流程

    是其中至關重要的一環。今天跟隨創想智控焊縫跟蹤小編一起了解工業機器人任務編程基本流程。 1. 任務分析與需求確定 在開始編程之前,首先需要對任務進行詳細分析,并確定具體的需求。這一步驟包括明確任務的目標、工作環境
    的頭像 發表于 07-02 10:41 ?990次閱讀

    abb工業機器人編程語言是什么

    ABB工業機器人編程語言主要是RAPID(Robot Application Programming Interface for Development),它是一種高級編程語言,專門為工業
    的頭像 發表于 06-16 16:49 ?3775次閱讀