愛伊米

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

ABB機器人Pdisp 軌跡偏移使用、單工位多次預約程式、在robotstudio建立兩臺機器人的socket連線、雙工位預約程式、與相機通訊的Socket收發資料處理與提取、如何建立陣列等程式設計技巧,感興趣的小夥伴儘快收藏!

1

PART

ABB機器人Pdisp 軌跡偏移使用

1。如果有下圖兩個產品,已經完成了右邊產品軌跡,左邊產品估計一樣,如何快速生成左邊軌跡(左邊產品可能有平移和旋轉)。

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

2。完成右邊軌跡示教Path_30,如上圖。起點為Target_20。

3。 完成左邊起點的示教,為Target_ref_start,如下圖。

注:如果左邊產品軌跡有旋轉,示教的Target_ref_start相對於左邊產品的姿態要和Target_20相對於右邊產品的姿態一致(此處左邊產品旋轉了30°,示教的角度z方向也旋轉了30°)

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

4) 插入指令如下

MoveJ pHome,v1000,z100,tWeldGunWObj:=wobj0;//移動到Home位置

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

Path_30;//執行右邊產品軌跡

MoveJpHome,v1000,z100,tWeldGunWObj:=wobj0;//回到Home

MoveJTarget_ref_start,v1000,fine,tWeldGunWObj:=wobj0;//走到左邊產品起點

ConfJOff;//因為使用偏移,關閉軸配置監控,否則有可能使用原配置引數導致位置走不到而報錯 ConfLOff; //因為使用偏移,關閉軸配置監控,否則有可能使用原配置引數導致位置走不到而報錯

PDispOnRot,Target_20,tWeldGun;//設定當前位置和Target_20的偏差關係(包括平移和旋轉),因為此時機器人停在Target_ref_start起點,即設定左邊軌跡和右邊軌跡的整體偏移關係。使用 ot表示平移和旋轉均計算。如果不使用 ot,則只使用平移,旋轉不計算

Path_30;//執行原有軌跡,此時軌跡參考座標移動關係,機器人實際走左邊產品軌跡

PDispOff;//軌跡完成,關閉平移關係

MoveJ pHome,v1000,z100,tWeldGunWObj:=wobj0;

2

PART

ABB機器人單工位多次預約程式

1。機器人有程式如下:

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

2。工藝過程如下:

機器人在home等待。有人按過di訊號,機器人開始執行。人工可以一次性多次預約,即如果人工一次性按過3次,機器人執行三次。

3。我們透過中斷來實現。

4。中斷的意義為,機器人後臺在不斷掃描(類似PLC),和機器人前臺運動不衝突。後臺實時掃描到訊號就會去執行設定的中斷程式,中斷程式裡沒有運動指令,前臺機器人不停,不影響運動

5。新建一個例行程式,取名tr_1,注意:型別選中斷(trap)

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

6。進入中斷程式,插入指令如下,即當機器人執行中斷程式時,給reg1記錄次數加1

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

7。進入主程式,設定中斷及對應的io訊號

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

37行的意思是,任何時候di_1訊號0變1,就會觸發執行tr_1中斷程式,即置flag1為true

35-37行程式只要執行過一遍即可,類似於設定開關,不需要反覆執行

8。 主要程式如下。即如果reg1=0,機器人在home等待

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

3

PART

在robotstudio建立兩臺機器人的socket連線

1。什麼是socket通訊?

就是TCP/IP通訊,無協議,在微軟環境下稱為socket。

2。socket通訊能幹什麼?

可以收發制定的資料,包括sting字串,byte陣列等。

3。建立socket機器人需要什麼選項?

機器人需要616-1 PC-INTERFACE選項。

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

4。socket通訊網線插哪個網口?

Service口(IP固定:192。168。125。1)或者Wan口都可以(可以自己設定)。

5。建立client端的例項

通常機器人和相機通訊,機器人作為client端。

a、新建一個機器人系統,注意建立系統時加入pc-interface選項。

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

b、為了避免之前的連線沒有關閉,先插入socketclose指令,後面的socket1為自己新建的socketdev型別的變數。

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

c、之後插入建立連線socketCreate。

d、插入建立連線SocketConnect,後面需要制定Server的ip和埠,如果是在電腦和另一臺虛擬控制器連線,ip設為“127。0。0。1”,埠自定義,建議不要用預設的1025。

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

這一步作用為機器人會和server建立連線,如果沒有建立成功會一直等待,如果成功則往下執行。

e、此處做測試,在建立成功後,插入TPWrite指令,可以在示教器看到socketclinent connect successful。

f、接下去可以收發資料,此處示例為client先發送資料給server,再接受server傳送回來的資料。

g、SocketSend後面可以傳送string或者byte陣列,具體可以選擇不同可選變數。

h、傳送完畢後,client接受到server發回的資料並寫屏。

6。以下為server端示例

a、重新建立一個工作站,建立時不要忘記新增pcinterface選項。

b、作為server,機器人需要建立2個socketdev變數。

c、為了避免之前的連線沒有關閉,同樣建議先socketclose。

d、

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

e、接著建立socketCreatetemp_socket 伺服器端socketdev。

f、SocketBind為繫結socket要監控的ip和埠,如果是虛擬模擬,ip為127。0。0。1,埠自定義(和client端設定一致)。

g、SocketListen為機器人server監聽是否有client連線。

h、socketAccept為接受client的連線。

i、建立連線後,機器人就可以執行死迴圈,即一直處於收發狀態。

j、 之前client程式為client先發後收,故這裡server先收後發。

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

7。client和server都寫完後,可以執行,注意先執行server端,即server機器人處於監聽狀態,如果連上,兩臺相互通訊,效果如下:

8。server機器人收到的訊息如下:

9。 client機器人收到的訊息如下:

4

PART

雙工位預約程式

1)有如下雙工位生產

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

2)工藝過程如下:

人工完成1#工位上料後按按鈕di_1(按鈕不帶保持,即人手鬆開訊號為0))機器人焊接1#工位。

此過程中人工對2#工位上下料,完成後按di_2完成預約(即不需要等機器人完成1#工作)。

機器人完成1#工作後,由於收到過di_2預約訊號,機器人自動去完成2#工位

3)我們透過中斷來實現。

4)中斷的意義為,機器人後臺在不斷掃描(類似PLC),和機器人前臺運動不衝突。後臺實時掃描到訊號就會去執行設定的中斷程式,中斷程式裡沒有運動指令,前臺機器人不停,不影響運動

5)新建一個例行程式,取名tr_1,注意:型別選中斷(trap)

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

6)進入中斷程式,插入指令如下,即當機器人執行中斷程式時,給bool量置true

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

同理設定第二個中斷程式

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

7)進入主程式,設定中斷及對應的io訊號

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

37行的意思是,任何時候di_1訊號0變1,就會觸發執行tr_1中斷程式,即置flag1為true

35-40行程式只要執行過一遍即可,類似於設定開關,不需要反覆執行

8)主要程式如下。即如果沒有人給di訊號,機器人就在home位等待。

9)

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

5

PART

與相機通訊的Socket收發資料處理與提取

1)相機通常傳送字串給機器人,比如”1。23,4。56,7。89D”,即x為1。23,y為4。56,z的角度為7。89,用D作為結束符,資料之間用“,”隔開。

2)如果機器人收到上述字串,如何把字串提取出來並付給變數deltaX,deltaY,和thetaZ?

3)建立若干num變數,用以儲存過程資料,比如StartBit1,表示x的資料從第幾位開始,Endbit1表示x的資料結束是第幾位,Lenbit1表示x資料的長度,s1表示提取的x的值的字串

4)

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

5)先假設x的第一位是1,給Startbit1賦值為1

6)插入函式strfind,查詢第一個“,”在第幾位,得到EndBit1值

7)

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

8)EndBit1減去StartBit1就是x的資料長度

9)同理得到y和theta的資訊

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

10)透過StrPart函式,提取從StartBit1開始到LenBit1結束的字串,即x的值的字串

11)

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

12) 同理得到y和z的字串

13)透過StrToVal函式,把s1轉為num型,付給delta_x, StrToVal函式的反饋值為bool量,即轉換成功為true不成功為false

14)同理得到delta_y和delta_theta

15) 成功後可以寫屏測試,如下圖

6

PART

ABB機器人如何建立陣列

1)什麼是陣列?

將相同資料型別的元素按一定順序排列的集合

2)有什麼用?

比如建立一個robtarget型別的陣列p_array,p_array裡有10個點位,走完10個位置就可以用如下程式碼,方便簡潔

FOR i FROM 1 TO 10 DO

MoveL p_array,v500,z1,tool0;

ENDFOR

3)哪些資料型別能建立陣列

所有資料型別都可以建立陣列

4)陣列最大幾維?

ABB機器人“>ABB機器人陣列最大三維!

5)陣列起始序號是0還是1?

是1

6)如何建立

a、程式資料

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

b、選中型別,比如Robtarget

c、新建,設定名稱,維數(這裡舉例1維),每個維度的元素數量(舉例為10)

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

d、建立完,就有了一個10個數據的p_array,

擁有這些程式設計技巧,輕鬆玩轉ABB機器人

文章來源:網路