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

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

7)進入主程序,設置中斷及對應的io信號
37行的意思是,任何時候di_1信號0變1,就會觸發(fā)執(zhí)行tr_1中斷程序,即置flag1為
35-40行程序只要運行過一遍即可,類似于設置開關,不需要反復運行
8)主要程序如下。即如果沒有人給di信號,機器人就在home位等待。
9)
5、與相機通訊的Socket收發(fā)數(shù)據(jù)處理與提取
1)相機通常發(fā)送字符串給機器人,比如”1.23,4.56,7.89D”,即x為1.23,y為4.56,z的角度為7.89,用D作為結束符,數(shù)據(jù)之間用“,”隔開。
2)如果機器人收到上述字符串,如何把字符串提取出來并付給變量deltaX,deltaY,和thetaZ?
3)建立若干num變量,用以存儲過程數(shù)據(jù),比如StartBit1,表示x的數(shù)據(jù)從第幾位開始,Endbit1表示x的數(shù)據(jù)結束是第幾位,Lenbit1表示x數(shù)據(jù)的長度,s1表示提取的x的值的字符串
4)
5)先假設x的第一位是1,給Startbit1賦值為
6)插入函數(shù)strfind,查找第一個“,”在第幾位,得到EndBit1值
7)
8)EndBit1減去StartBit1就是x的數(shù)據(jù)長度
9)同理得到y(tǒng)和theta的信息
10)通過StrPart函數(shù),提取從StartBit1開始到LenBit1結束的字符串,即x的值的字符串
11)
12) 同理得到y(tǒng)和z的字符串
13)通過StrToVal函數(shù),把s1轉為num型,付給delta_x, StrToVal函數(shù)的反饋值為bool量,即轉換成功為true不成功為
14)同理得到delta_y和
15) 成功后可以寫屏測試,如下圖

文章來源,
工業(yè)機器人維修官網(wǎng):www.sxjktj.cn