1. ABB機(jī)器人Pdisp 軌跡偏移使用
1)如果有下圖兩個(gè)產(chǎn)品,已經(jīng)完成了右邊產(chǎn)品軌跡,左邊產(chǎn)品估計(jì)一樣,如何快速生成左邊軌跡(左邊產(chǎn)品可能有平移和旋轉(zhuǎn))

2)完成右邊軌跡示教Path_30,如上圖。起點(diǎn)為T(mén)arget_20。
3)完成左邊起點(diǎn)的示教,為T(mén)arget_ref_start,如下圖。
注:如果左邊產(chǎn)品軌跡有旋轉(zhuǎn),示教的Target_ref_start相對(duì)于左邊產(chǎn)品的姿態(tài)要和Target_20相對(duì)于右邊產(chǎn)品的姿態(tài)一致(此處左邊產(chǎn)品旋轉(zhuǎn)了30°,示教的角度z方向也旋轉(zhuǎn)了30°)
4)插入指令如下

MoveJ pHome,v1000,z100,tWeldGunWObj:=wobj0;//移動(dòng)到Home位置
Path_30;//運(yùn)行右邊產(chǎn)品軌跡
MoveJpHome,v1000,z100,tWeldGunWObj:=wobj0;//回到Home
MoveJTarget_ref_start,v1000,fine,tWeldGunWObj:=wobj0;//走到左邊產(chǎn)品起點(diǎn)
ConfJOff;//因?yàn)槭褂闷?,關(guān)閉軸配置監(jiān)控,否則有可能使用原配置參數(shù)導(dǎo)致位置走不到而報(bào)錯(cuò)ConfLOff;//因?yàn)槭褂闷?,關(guān)閉軸配置監(jiān)控,否則有可能使用原配置參數(shù)導(dǎo)致位置走不到而報(bào)錯(cuò)
PDispOnRot,Target_20,tWeldGun;//設(shè)定當(dāng)前位置和Target_20的偏差關(guān)系(包括平移和旋轉(zhuǎn)),因?yàn)榇藭r(shí)機(jī)器人停在Target_ref_start起點(diǎn),即設(shè)定左邊軌跡和右邊軌跡的整體偏移關(guān)系。使用 ot表示平移和旋轉(zhuǎn)均計(jì)算。如果不使用 ot,則只使用平移,旋轉(zhuǎn)不計(jì)算
Path_30;//運(yùn)行原有軌跡,此時(shí)軌跡參考坐標(biāo)移動(dòng)關(guān)系,機(jī)器人實(shí)際走左邊產(chǎn)品軌跡
PDispOff;//軌跡完成,關(guān)閉平移關(guān)系
MoveJ pHome,v1000,z100,tWeldGunWObj:=wobj0;
2. 單工位多次預(yù)約程序
1)機(jī)器人有程序如下。
2)
3)工藝過(guò)程如下:
機(jī)器人在home等待。有人按過(guò)di信號(hào),機(jī)器人開(kāi)始執(zhí)行。人工可以一次性多次預(yù)約,即如果人工一次性按過(guò)3次,機(jī)器人執(zhí)行三次
4)我們通過(guò)中斷來(lái)實(shí)現(xiàn)。
5)中斷的意義為,機(jī)器人后臺(tái)在不斷掃描(類(lèi)似PLC),和機(jī)器人前臺(tái)運(yùn)動(dòng)不沖突。后臺(tái)實(shí)時(shí)掃描到信號(hào)就會(huì)去執(zhí)行設(shè)定的中斷程序,中斷程序里沒(méi)有運(yùn)動(dòng)指令,前臺(tái)機(jī)器人不停,不影響運(yùn)動(dòng)
6)新建一個(gè)例行程序,取名tr_1,注意:類(lèi)型選中斷(trap)

7)進(jìn)入中斷程序,插入指令如下,即當(dāng)機(jī)器人執(zhí)行中斷程序時(shí),給reg1記錄次數(shù)加1

8)進(jìn)入主程序,設(shè)置中斷及對(duì)應(yīng)的io信號(hào)

37行的意思是,任何時(shí)候di_1信號(hào)0變1,就會(huì)觸發(fā)執(zhí)行tr_1中斷程序,即置flag1為true
35-37行程序只要運(yùn)行過(guò)一遍即可,類(lèi)似于設(shè)置開(kāi)關(guān),不需要反復(fù)運(yùn)行
9)主要程序如下。即如果reg1=0,機(jī)器人在home等待

更多視頻講解,也可登錄 www.gkbpx.com
3. 在robotstudio創(chuàng)建兩臺(tái)機(jī)器人的socket連接
1)什么是socket通訊?
就是TCP/IP通訊,無(wú)協(xié)議,在微軟環(huán)境下稱(chēng)為socket
2)socket通訊能干什么?
可以收發(fā)制定的數(shù)據(jù),包括sting字符串,byte數(shù)組等
3)創(chuàng)建socket機(jī)器人需要什么選項(xiàng)?
機(jī)器人需要616-1 PC-INTERFACE選項(xiàng)

4)socket通訊網(wǎng)線插哪個(gè)網(wǎng)口?
Service口(IP固定:192.168.125.1)或者Wan口都可以,(可以自己設(shè)置)
5)創(chuàng)建client端的實(shí)例
通常機(jī)器人和相機(jī)通訊,機(jī)器人作為client端。
1)新建一個(gè)機(jī)器人系統(tǒng),注意建立系統(tǒng)時(shí)加入pc-interface選項(xiàng)
2)為了避免之前的連接沒(méi)有關(guān)閉,先插入socketclose指令,后面的socket1為自己新建的socketdev類(lèi)型的變量

3)之后插入創(chuàng)建連接socketCreate
4)插入建立連接SocketConnect,后面需要制定Server的ip和端口,如果是在電腦和另一臺(tái)虛擬控制器連接,ip設(shè)為“127.0.0.1”,端口自定義,建議不要用默認(rèn)的1025.
這一步作用為機(jī)器人會(huì)和server建立連接,如果沒(méi)有建立成功會(huì)一直等待,如果成功則往下執(zhí)行
5)此處做測(cè)試,在建立成功后,插入TPWrite指令,可以在示教器看到socketclinent connect successful
6)接下去可以收發(fā)數(shù)據(jù),此處示例為client先發(fā)送數(shù)據(jù)給server,再接受server發(fā)送回來(lái)的數(shù)據(jù)
7)SocketSend后面可以發(fā)送string或者byte數(shù)組,具體可以選擇不同可選變量
8)發(fā)送完畢后,client接受到server發(fā)回的數(shù)據(jù)并寫(xiě)屏
6)以下為server端示例
1)重新創(chuàng)建一個(gè)工作站,創(chuàng)建時(shí)不要忘記添加pcinterface選項(xiàng)
2)作為server,機(jī)器人需要?jiǎng)?chuàng)建2個(gè)socketdev變量
3)為了避免之前的連接沒(méi)有關(guān)閉,同樣建議先socketclose
4)

5)接著創(chuàng)建socketCreatetemp_socket服務(wù)器端socketdev
6)SocketBind為綁定socket要監(jiān)控的ip和端口,如果是虛擬仿真,ip為127.0.0.1,端口自定義(和client端設(shè)置一致)
7)SocketListen為機(jī)器人server監(jiān)聽(tīng)是否有client連接
8)socketAccept為接受client的連接
9)建立連接后,機(jī)器人就可以執(zhí)行死循環(huán),即一直處于收發(fā)狀態(tài)
10)之前client程序?yàn)閏lient先發(fā)后收,故這里server先收后發(fā)

7)client和server都寫(xiě)完后,可以運(yùn)行,注意先運(yùn)行server端,即server機(jī)器人處于監(jiān)聽(tīng)狀態(tài),如果連上,兩臺(tái)相互通訊,效果如下
8)server機(jī)器人收到的訊息如下:

9) client機(jī)器人收到的訊息如下:

4. ABB機(jī)器人雙工位預(yù)約程序
1)有如下雙工位生產(chǎn)

2)工藝過(guò)程如下:
人工完成1#工位上料后按按鈕di_1(按鈕不帶保持,即人手松開(kāi)信號(hào)為0))機(jī)器人焊接1#工位。
此過(guò)程中人工對(duì)2#工位上下料,完成后按di_2完成預(yù)約(即不需要等機(jī)器人完成1#工作)。
機(jī)器人完成1#工作后,由于收到過(guò)di_2預(yù)約信號(hào),機(jī)器人自動(dòng)去完成2#工位
3)我們通過(guò)中斷來(lái)實(shí)現(xiàn)。
4)中斷的意義為,機(jī)器人后臺(tái)在不斷掃描(類(lèi)似PLC),和機(jī)器人前臺(tái)運(yùn)動(dòng)不沖突。后臺(tái)實(shí)時(shí)掃描到信號(hào)就會(huì)去執(zhí)行設(shè)定的中斷程序,中斷程序里沒(méi)有運(yùn)動(dòng)指令,前臺(tái)機(jī)器人不停,不影響運(yùn)動(dòng)
5)新建一個(gè)例行程序,取名tr_1,注意:類(lèi)型選中斷(trap)

6)進(jìn)入中斷程序,插入指令如下,即當(dāng)機(jī)器人執(zhí)行中斷程序時(shí),給bool量置true

同理設(shè)置第二個(gè)中斷程序

7)進(jìn)入主程序,設(shè)置中斷及對(duì)應(yīng)的io信號(hào)

37行的意思是,任何時(shí)候di_1信號(hào)0變1,就會(huì)觸發(fā)執(zhí)行tr_1中斷程序,即置flag1為true
35-40行程序只要運(yùn)行過(guò)一遍即可,類(lèi)似于設(shè)置開(kāi)關(guān),不需要反復(fù)運(yùn)行
8)主要程序如下。即如果沒(méi)有人給di信號(hào),機(jī)器人就在home位等待。
9)

5. 與相機(jī)通訊的Socket收發(fā)數(shù)據(jù)處理與提取
1)相機(jī)通常發(fā)送字符串給機(jī)器人,比如”1.23,4.56,7.89 洛扎县| 搜索| 谷城县| 东乌| 颍上县| 金平| 巴南区| 太谷县| 邵东县| 桃园市| 武山县| 阿尔山市| 伽师县| 汝南县| 古田县| 台北县| 上犹县| 永德县| 绍兴市| 淳安县| 斗六市| 安徽省| 乌拉特中旗| 白银市| 筠连县| 宝清县| 黄浦区| 田林县| 化隆| 汉川市| 喜德县| 青阳县| 河津市| 黄陵县| 寿阳县| 体育| 延长县| 抚远县| 宁化县| 鄯善县| 石狮市|
ABB機(jī)器人編程的詳細(xì)解析