RESUME 將中斷在聲明當前中斷的層面以下的所有運行中的中斷程序和所有運行中的子程序。
RESUME 只允許出現在中斷程序中。(但是不在由聲明為 GLOBAL 的中斷調用的中斷程序中)。在出現 RESUME 指令時,預進指針不允許在聲明中斷的層面里,而必須至少在下一級層面里。
在中斷程序中更改變量 $BASE 只在那里有效。計算機預進,即變量
$ADVANCE,不允許在中斷程序中改變。
為了 RESUME 之后的機器人控制系統特性,必須注意以下幾點:
SLIN, SPTP, LIN, PTP:
在 RESUME 之后按編程執行這些運動。(無行為變化。)
SCIRC、樣條組 :
如果 RESUME 后的第一個運動指令是一個 SCIRC 或一個樣條組,則情況與原規劃不同。
原因:在 RESUME 后機器人不位于原先的運動起點。
CIRC:
如果 RESUME 后的第一個運動指令是一個 CIRC,則它作為 LIN 運行。
原因:在該情況下,機器人控制系統在內部改變運動方式。
建議:在一個 RESUME 后只使用運動 SLIN、SPTP、LIN 或 PTP。
如果在 RESUME 后仍將 CIRC 編程設定為第一個運動,則機器人必須可以無危險地以 LIN 形式從其在 RESUME 時可能存在的所有位置上接近目標點。
如果在 RESUME 后仍將 SCIRC 或樣條組編程設定為第 一個運動,則機器人必須可無危險地從其在 RESUME 時可能存在的所有位置上和以已更改的路線接近目標點。如果沒有考慮這一點,則可能會造成死亡、身體受傷或財產損失。
句法 RESUME
示例:
機器人在一個軌跡上搜索零件。通過傳感器在輸入端 15 上識別零件。在找到該零件之后,機器人不繼續移至軌跡的終點,而是返回到中斷位置并抓取零件。然后應繼續主程序。
主程序 PROG():
DEF PROG()
INI
...
INTERRUPT DECL 21 WHEN $IN[15] DO FOUND()
PTP HOME
...
SEARCH()
...
END
原則上,要用 BRAKE 和 RESUME 中斷的運動必須位于一個子程序中。因此,不直接在主程序中而是在子程序 SEARCH() 中編程設定搜索段。
帶搜索段的子程序 SEARCH():
DEF SEARCH()
INTERRUPT ON 21
SPLINE
SPL START_SEARCH
SPL IN_BETWEEN
SPL END_SEARCH
ENDSPLINE
...
END
在 RESUME 指令時,預進指示器不允許在對當前中斷聲明的層面中。為了防止該情況,在通過 WAIT FOR TRUE 觸發預進停止。
中斷程序 FOUND():
DEF FOUND()
INTERRUPT OFF 21
BRAKE
LIN $POS_INT
... ;機器人抓取找到的零件。
RESUME
END
由于制動過程,機器人略微遠離觸發了中斷的位置。LIN $POS_INT 將導致機器人返回到觸發了中斷的位置上。
在此使用了運動方式 LIN,因為中斷程序不允許含有樣條運動。
在 LIN $POS_INT 之后,機器人抓取該零件。(在此在示例中不編程設定。)
RESUME 將導致在抓取零件之后繼續主程序。在不 帶 RESUME 時,在 END 之后繼續子程序 SEARCH()。
-
機器人
+關注
關注
211文章
28380瀏覽量
206918 -
指令
+關注
關注
1文章
607瀏覽量
35694 -
編程
+關注
關注
88文章
3614瀏覽量
93686 -
中斷程序
+關注
關注
0文章
34瀏覽量
8686 -
KUKA
+關注
關注
3文章
217瀏覽量
16516
原文標題:KUKA機器人 RESUME:中止中斷程序
文章出處:【微信號:gh_a8b121171b08,微信公眾號:機器人及PLC自動化應用】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論