一、簡介
World Zones的作用是在機器人位于用戶專門定義的區域內時,停止該機器人或設置一個輸出信號。
有如下特性:
1、當TCP或者關節值 進入某個區間或離開某個區間的時候,Set一個輸入輸出信號;
2、當機器人到達某個區間的邊界時,停止機器人;
3、可以定義 長方體、圓柱體、球體以及關節值區域;
4、可以通過啟動自動激活,也可以使用程序進行激活與禁用;
5、手動、自動都有效;
6、如果是多機器人系統,每個機器人都有自己獨立的World Zone。
二、典型應用
1、當兩臺機器人的工作區域部分重疊時。可通過World Zones監控來安全地消除這兩臺機器人相撞的可能性;
2、當該機器人的工作區域內有某種永久性障礙或某些臨時外部設備時。可創建一個禁區來防止機器人與此類設備相撞;
3、指明相關機器人正處在一個“允許用可編程邏輯控制器(PLC)來開始執行程序”的位置;
4、出于安全考慮,不可使用此功能進行人員安全的保護。
三、數據類型
數據類型
描述
wztemporary
wztemporary的作用是識別臨時全局區域,并可用在RAPID程序中的任何位置。
可通過RAPID指令來禁用、重新啟用或擦除臨時全局區域。當載入一段新程序時,或當從MAIN例程的起點處開始執行程序時,系統便會自動擦除臨時全局區域。
wzstationary
wzstationary的作用是識別固定全局區域,并僅能用在與事件“通電”相關聯的一則事件例程中。定義事件例程方面的信息請參見操作員手冊 - 帶 FlexPendant 的 IRC5。
固定全局區域會始終處于激活狀態,而重啟(先關閉電源然后再打開電源,或更改系統參數)則會再次激活此類區域。無法通過RAPID指令來禁用、啟用或擦除固定全局區域。
如果涉及到安全問題,則應使用固定全局區域。
shapedata
shapedata的作用是描述一個全局區域的幾何形狀。
可將全局區域定義為4種不同的幾何形狀:
?一個方盒,所有側面都與全局坐標系平行
?一個圓柱體,與全局坐標系的z軸平行
?一個球體
?針對機器人軸和/或外軸的一個關節角區
VAR shapedata volume;
四、指令
1、WZBoxDef - 定義一個箱形全局區域
WZBoxDef(World Zone Box Definition)用于定義擁有直線箱形狀,且各側均與世
界坐標系各軸平行的全局區域。
如:
VAR shapedata volume;
CONST pos corner1:=[200,100,100];
CONST pos corner2:=[600,400,400];
WZBoxDef Inside, volume, corner1, corner2;
定義坐標與世界坐標系各軸平行,且由對角corner1和corner2所定義的直線箱。
用機器人定義,需要使用WobJ0.
變元 WZBoxDef [Inside] | [Outside] Shape LowPoint HighPoint
2、WZCylDef (全局區域圓柱體定義)為,用于定義外形為圓柱形,且圓柱軸與世界坐標
系z軸平行的全局區域。
VAR shapedata volume;
CONST pos C2:=[300,200,200];
CONST num R2:=100;
CONST num H2:=200;
WZCylDef Inside, volume, C2, R2, H2;
定義底圓中心C2、半徑R2且高度H2的圓柱體。
變元 WZCylDef [Inside] | [Outside] Shape CentrePoint Radius Height
3、WZSphDef - 定義球形全局區域
VAR shapedata volume;
CONST pos C1:=[300,300,200];
CONST num R1:=200;
WZSphDef Inside, volume, C1, R1;
根據其中心C1及其半徑R1,定義命名為volume的球體。
變元 WZSphDef [Inside] | [Outside] Shape CentrePoint Radius
4、WZHomeJointDef - 定義內部接頭的全局區域
WZHomeJointDef(World Zone Home Joint Definition)用于定義接頭坐標系中的
全局區域,以便將機械臂和外軸作為HOME或SERVICE位置。
VAR wzstationary home;
PROC power_on()
VAR shapedata joint_space;
CONST jointtarget home_pos := [ [ 0, 0, 0, 0, 0, -45], [ 0, 9E9,9E9, 9E9, 9E9, 9E9] ];
CONST jointtarget delta_pos := [ [ 2, 2, 2, 2, 2, 2], [ 5, 9E9,9E9, 9E9, 9E9, 9E9] ];
WZHomeJointDef Inside, joint_space, home_pos, delta_pos;
WZDOSet Stat, home Inside, joint_space, do_home, 1;
ENDPROC
變元 WZHomeJointDef [Inside] | [Outside] Shape MiddleJointVal DeltaJointVal
有關某些軸的值9E9意味著不應該監控該軸。編程期間,
無效外軸亦得出9E9。
5、WZLimJointDef - 定義有關接頭內限制的全局區域
WZLimJointDef(World Zone Limit Joint Definition)用于定義接頭坐標系中的全
局區域,以便將機械臂和外軸用于工作區域的限制。
VAR wzstationary work_limit;
PROC power_on()
VAR shapedata joint_space;
CONST jointtarget low_pos:= [ [ -90, 9E9, 9E9, 9E9, 9E9, 9E9],[ -1000, 9E9, 9E9, 9E9, 9E9, 9E9]];
CONST jointtarget high_pos := [ [ 90, 9E9, 9E9, 9E9,9E9, 9E9],[ 9E9, 9E9, 9E9, 9E9, 9E9, 9E9] ];
WZLimJointDef Outside, joint_space, low_pos, high_pos;
WZLimSup Stat, work_limit, joint_space;
ENDPROC
程序執行和點動期間,固定式全局區域work_limit的定義和啟用,將機械臂軸1的工
作區域限制在-90到+90度,并將外軸extax.eax_a限制在-1000 mm。
變元 WZLimJointDef [Inside] | [Outside] Shape LowJointVal HighJointVal
五、啟用及停用
1、WZEnable - 啟用臨時全局區域監控
WZEnable(World Zone Enable)用于重新啟用對臨時全局區域的監控,其預先定
義,以便停止移動或設置輸出。
VAR wztemporary wzone
PROC ...
WZLimSup Temp, wzone, volume;
MoveL p_pick, v500, z40, tool1;
WZDisable wzone;
MoveL p_place, v200, z30, tool1;
WZEnable wzone;
MoveL p_home, v200, z30, tool1;
ENDPROC
當向p_pick移動時,檢查機械臂TCP的位置,以便其不會進入指定體積wzone。當轉
到p_place時,不實施該監控,但是在轉到p_home前,重新啟用該監控。
2、WZDisable - 停用臨時全局區域監控
WZDisable(World Zone Disable)用于停用對臨時全局區域的監控,其預先定義以
便停止移動或設置輸出。
VAR wztemporary wzone;
PROC...
WZLimSup Temp, wzone, volume;
MoveL p_pick, v500, z40, tool1;
WZDisable wzone;
MoveL p_place, v200, z30, tool1;
ENDPROC
當向p_pick移動時,檢查機械臂TCP的位置,以便其不會進入指定體積wzone。當轉
到p_place時,不實施該監控。
3、WZFree - 擦除臨時全局區域監控
WZFree(World Zone Free)用于擦除臨時全局區域的定義,其預先定義,以便停止
移動或設置輸出。
VAR wztemporary wzone;
PROC ...
WZLimSup Temp, wzone, volume;
MoveL p_pick, v500, z40, tool1;
WZDisable wzone;
MoveL p_place, v200, z30, tool1;
WZEnable wzone;
MoveL p_home, v200, z30, tool1;
WZFree wzone;
ENDPROC
當向p_pick移動時,檢查機械臂TCP的位置,以便其不會進入指定體積wzone。當轉
到p_place時,不實施該監控,但是在轉到p_home前,重新啟用該監控。當達到該
位置時,擦除全局區域定義。
4、WZDOSet - 啟用全局區域,設置數字信號輸出
WZDOSet(World Zone Digital Output Set)用于定義行動,并啟用全局區域,以監控機械臂移動。在執行該指令后,當機械臂TCP或機械臂/外軸(接頭中的區域)位于指定全局區域內,或正在接近全局區域時,將數字信號輸出信號設置為指定值。
VAR wztemporary service;
PROC zone_output()
VAR shapedata volume;
CONST pos p_service:=[500,500,700];
WZSphDef Inside, volume, p_service, 50;
WZDOSet Temp, service Inside, volume, do_service, 1;
ENDPROC
機械臂TCP在程序執行期間位于指定球體內時,或出現點動時,有關在設置信號
do_service的應用程序中的臨時全局區域service的定義。
變元 WZDOSet [Temp] | [Stat] WorldZone [Inside] | [Before] Shape Signal SetValue
啟用規定的全局區域。從此刻起,監控機械臂TCP位置(或機械臂/外接頭位置),且
當機械臂TCP位置(或機械臂/外接頭位置)位于體積(Inside)內或接近體積
(Before)邊界時,將設置輸出。
如果使用WZHomeJointDef或WZLimJointDef連同WZDOSet,則僅當所有有效軸以
及接頭空間監控位于接頭空間前或內部時,方才設置數字信號輸出信號。
5、WZLimSup - 啟用全局區域限制監控
WZLimSup(World Zone Limit Supervision)用于定義行動,并啟用全局區域,以監控機械臂或外軸的工作區域。
執行該指令后,在程序執行和點動期間,當機械臂TCP達到規定全局區域,或當機械
臂/外軸達到接頭中的規定全局區域時,移動得以停止。
VAR wzstationary max_workarea;
PROC POWER_ON()
VAR shapedata volume;
WZBoxDef Outside, volume, corner1, corner2;
WZLimSup Stat, max_workarea, volume;
ENDPROC
包含箱外區域(臨時儲存在volume中)以及行動工作區域監控的固定式全局區域
max_workarea的定義和啟用。在進入箱外區域之前,機械臂在出現錯誤消息時停止。
-
數據
+關注
關注
8文章
7006瀏覽量
88945 -
編程
+關注
關注
88文章
3614瀏覽量
93686 -
ABB機器人
+關注
關注
15文章
88瀏覽量
13506
原文標題:ABB機器人之高級編程:安全域World Zone 的使用
文章出處:【微信號:gongkongworld,微信公眾號:工控資料窩】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論