?取消在本中斷程序的優先級之下的中斷程序和子程序。
可能導致機器人的運動被終止
RESUME 指令只能在中斷程序中執行
當 RESUME 生效時,advancerun 指針不能在產生中斷的行,而是至少低一行。
機器人運動期間,接近開關發現到兩個目標并且記錄了它們的位置,所以隨后機器人可以再移動到該位置。
即使機器人已經知道了兩個目標,機器人也會沿著全部的搜索軌跡移動。為節約時間,一旦發現了零件的多數時應立即結束移動。
KRC.。.中機器人運動的取消是可能的,使用語句:
RESUME
RESUME可以取消當前中斷被聲明的級別和以下級別的所有運行的中斷程序和子程序。
同BRAKE語句,RESUME僅允許在中斷程序中使用。
當激活RESUME語句時,提前運行指針千萬不要在中斷被聲明的級別,至少應低一個級別。
因為RESUME會取消搜索軌跡,所以在子程序中一定要編程搜索軌跡。在下面的例子中,
使用MOVEP()完成該操作;調用的中斷子程序是IR_PROG()。
在子程序的最后一行前使用RESUME語句停止提前運行是重要的。只有這樣才可能確保當RESUME語句被激活時,提前運行指針不在中斷被聲明的級別。在MOVEP()中,使用$ADVANCE=0分配提前運行指針。
在中斷程序中,一旦輸入1的傳感器發現4個零件,使用BRAKE語句停止搜索軌跡,然后通過RESUME語句取消搜索(因為MOVEP()也和IR_PROG()一起被結束)。不使用BRAKE 語句,在提前運行中仍然執行搜索運動。
RESUME語句后,主程序在子程序調用的指令后重新開始。也就是說$ADVANCE=3(復位提前運行)。
DEF SEARCH()
;---------聲明部分---------
EXT BAS(BAS_COMMAND:IN,REAL:IN)
DECL AXIS HOME
;----------初始化----------
INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM()
INTERRUPT ON3 ;標準缺省服務函數
BAS(#INITMOV,0) ;初始化速度;
;加速度,$BASE,$TOOL,等
HOME={AXIS:A1 0,A2 -90,A3 90,A4 0,A5 30,A6 0}
INTERRUPT DECL 11 WHEN $IN[1] DO IR_PROG()
I[1]=0 ;設置預定的計數器為0;
------------主程序部分 ----------
PTP HOME ;BCO運行
INTERRUPT ON1 1
MOVEP() ;沿著搜索軌跡運動
$ADVANCE=3 ;復位提前運行
INTERRUPT OFF 11
GRIP()
PTP HOME
END;
--------子程序-----------
DEF MOVEP() ;搜索軌跡運動的子程序
PTP{X 1232,Y -263,Z 1000,A 0,B 67,C -90}
LIN{X 1232,Y 608,Z 1000,A 0,B 67,C -90}
$ADVANCE=0 ;停止提前運行
END ;
;------中斷程序--------
DEF IR_PROG() ;存儲零件的位置
;INTERRUPT OFF 11
I[1]=I[1]+1
POSITION[I[1]]=$POS_INT ;位置被存儲
IFI [1]==4 THEN ;4個零件被認出
BRAKE ;運動被停止
RESUME ;IR_PROG&MOVE被取消
ENDIF
;INTERRUPT ON 11
END;
--------子程序------------
DEF GRIP() ;捉住被發現的零件
INTPOS_NO ;計數器變量
FOR POS_NR=I[1] TO 1 STEP-1 POSITION[POS_NR].Z=POSITION[POS_NR] .Z+200
LIN POSITION[POS_NR];移動到零件以上200mm處
LIN_REL{Z-200} ;移動到零件的垂直位置;拾起零件
LIN POSITION[POS_NR];移動返回
LIN{X 634,Y 1085,Z 1147,A 49,B 67,C -90}
;設置零件向下
ENDFOR
END
如果由于傳感器的原因(“觸電跳動”),會產生一個中斷被不正確地觸發兩次的危險,您可以通過在中斷程序的第一行關閉中斷的方法避免發生該危險。但是這樣做,在中斷執行期間發生的真正的中斷現在也不能被識別了。如果要保持中斷有效,必須在返回主程序前重新開啟中斷。
如果使用RESUME語句取消了一個運動,就像上面的例子一樣,那么后面的運動不要是CIRC運動,因為起點每次都會不同(產生不同的圓)。
在例8.2編程的搜索動作中,插補循環速率(當前為12ms)輸入被削了頂,最大誤差約為軌跡速度的12ms倍數。
“快速測量”
如果要消除該誤差,您千萬不要在用戶輸入上連接接近開關;而是應該使用外圍設備插頭X11中的4個專門的輸入。這些輸入可以通過系統變量
$MEAS_PULSE[1]。..MEAS_PULSE[4]來尋址(響應時間為125Us)。 當中斷被打開時,千萬不要使用測量脈沖,否則會產生相應的錯誤信息。
審核編輯 :李倩
-
機器人
+關注
關注
211文章
28380瀏覽量
206918 -
KUKA
+關注
關注
3文章
217瀏覽量
16516
原文標題:KUKA機器人 RESUME 取消中斷事務 V4.25
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論