簡介:ABB機器人雙工位預約程序 1)有如下雙工位生產 2)工藝過程如下: 人工完成1#工位上料后按按鈕di_1(按鈕不帶保持,即人手松開信號為0))機器人焊接1#工位。 此過程中人工對2#工位上下料,完成后按di_2完成預約(即不需要等機器人完成1#工作)。 機器人完成……
1)有如下雙工位生產
2)工藝過程如下:
人工完成1#工位上料后按按鈕di_1(按鈕不帶保持,即人手松開信號為0))機器人焊接1#工位。
此過程中人工對2#工位上下料,完成后按di_2完成預約(即不需要等機器人完成1#工作)。
機器人完成1#工作后,由于收到過di_2預約信號,機器人自動去完成2#工位
3)我們通過中斷來實現。
4)中斷的意義為,機器人后臺在不斷掃描(類似PLC),和機器人前臺運動不沖突。后臺實時掃描到信號就會去執行設定的中斷程序,中斷程序里沒有運動指令,前臺機器人不停,不影響運動
5)新建一個例行程序,取名tr_1,注意:類型選中斷(trap)

6)進入中斷程序,插入指令如下,即當機器人執行中斷程序時,給bool量置true同理設置第二個中斷程序

7)進入主程序,設置中斷及對應的io信號
37行的意思是,任何時候di_1信號0變1,就會觸發執行tr_1中斷程序,即置flag1為
35-40行程序只要運行過一遍即可,類似于設置開關,不需要反復運行
8)主要程序如下。即如果沒有人給di信號,機器人就在home位等待。
9)
5、與相機通訊的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)
5)先假設x的第一位是1,給Startbit1賦值為
6)插入函數strfind,查找第一個“,”在第幾位,得到EndBit1值
7)
8)EndBit1減去StartBit1就是x的數據長度
9)同理得到y和theta的信息
10)通過StrPart函數,提取從StartBit1開始到LenBit1結束的字符串,即x的值的字符串
11)
12) 同理得到y和z的字符串
13)通過StrToVal函數,把s1轉為num型,付給delta_x, StrToVal函數的反饋值為bool量,即轉換成功為true不成功為
14)同理得到delta_y和
15) 成功后可以寫屏測試,如下圖

文章來源,
工業機器人維修官網:www.qhdjznet.com