簡介:1、 ABB機(jī)器人Pdisp 軌跡偏移使用 1) 如果有下圖兩個(gè)產(chǎn)品,已經(jīng)完成了右邊產(chǎn)品軌跡,左邊產(chǎn)品估計(jì)一樣,如何快速生成左邊軌跡(左邊產(chǎn)品可能有平移和旋轉(zhuǎn)) 2)完成右邊軌跡示教Path_30,如上圖。起點(diǎn)為Target_20。 3) 完成左邊起點(diǎn)的示教,為Target_ref_s……
1) 如果有下圖兩個(gè)產(chǎn)品,已經(jīng)完成了右邊產(chǎn)品軌跡,左邊產(chǎn)品估計(jì)一樣,如何快速生成左邊軌跡(左邊產(chǎn)品可能有平移和旋轉(zhuǎn))
2)完成右邊軌跡示教Path_30,如上圖。起點(diǎn)為Target_20。
3) 完成左邊起點(diǎn)的示教,為Target_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;//回到
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)系
2、單工位多次預(yù)約程序
1)機(jī)器人有程序如下:
3)工藝過程如下:
機(jī)器人在home等待。有人按過di信號(hào),機(jī)器人開始執(zhí)行。人工可以一次性多次預(yù)約,即如果人工一次性按過3次,機(jī)器人執(zhí)行三次
4)我們通過中斷來實(shí)現(xiàn)。
5)中斷的意義為,機(jī)器人后臺(tái)在不斷掃描(類似PLC),和機(jī)器人前臺(tái)運(yùn)動(dòng)不沖突。后臺(tái)實(shí)時(shí)掃描到信號(hào)就會(huì)去執(zhí)行設(shè)定的中斷程序,中斷程序里沒有運(yùn)動(dòng)指令,前臺(tái)機(jī)器人不停,不影響運(yùn)動(dòng)
6)新建一個(gè)例行程序,取名tr_1,注意:類型選中斷(trap)
7)進(jìn)入中斷程序,插入指令如下,即當(dāng)機(jī)器人執(zhí)行中斷程序時(shí),給reg1記錄次數(shù)加
8)進(jìn)入主程序,設(shè)置中斷及對(duì)應(yīng)的io信號(hào)
37行的意思是,任何時(shí)候di_1信號(hào)0變1,就會(huì)觸發(fā)執(zhí)行tr_1中斷程序,即置flag1為
35-37行程序只要運(yùn)行過一遍即可,類似于設(shè)置開關(guān),不需要反復(fù)運(yùn)行
9)主要程序如下。即如果reg1=0,機(jī)器人在home等待
3、在robotstudio創(chuàng)建兩臺(tái)機(jī)器人的socket連接
1)什么是socket通訊?
就是TCP/IP通訊,無協(xié)議,在微軟環(huán)境下稱為
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端。
a、新建一個(gè)機(jī)器人系統(tǒng),注意建立系統(tǒng)時(shí)加入pc-interface選項(xiàng)
免之前的連接沒有關(guān)閉,先插入socketclose指令,后面的socket1為自己新建的socketdev類型的變量
入創(chuàng)建連接
d、插入建立連接SocketConnect,后面需要制定Server的ip和端口,如果是在電腦和另一臺(tái)虛擬控制器連接,ip設(shè)為“127.0.0.1”,端口自定義,建議不要用默認(rèn)的
這一步作用為機(jī)器人會(huì)和server建立連接,如果沒有建立成功會(huì)一直等待,如果成功則往下執(zhí)行。
測(cè)試,在建立成功后,插入TPWrite指令,可以在示教器看到
f、接下去可以收發(fā)數(shù)據(jù),此處示例為client先發(fā)送數(shù)據(jù)給server,再接受server發(fā)送回來的數(shù)據(jù)
g、SocketSend后面可以發(fā)送string或者byte數(shù)組,具體可以選擇不同可選變量
h、發(fā)送完畢后,client接受到server發(fā)回的數(shù)據(jù)并寫屏
6)以下為server端示例
a、重新創(chuàng)建一個(gè)工作站,創(chuàng)建時(shí)不要忘記添加pcinterface選項(xiàng)
b、作為server,機(jī)器人需要?jiǎng)?chuàng)建2個(gè)socketdev變量
c、為了避免之前的連接沒有關(guān)閉,同樣建議先
d、建socketCreatetemp_socket 服務(wù)器端
f、SocketBind為綁定socket要監(jiān)控的ip和端口,如果是虛擬仿真,ip為127.0.0.1,端口自定義(和client端設(shè)置一致)
g、SocketListen為機(jī)器人server監(jiān)聽是否有client連接
h、socketAccept為接受client的連接
i、建立連接后,機(jī)器人就可以執(zhí)行死循環(huán),即一直處于收發(fā)狀態(tài)
j、 之前client程序?yàn)閏lient先發(fā)后收,故這里server先收后發(fā)
7)client和server都寫完后,可以運(yùn)行,注意先運(yùn)行server端,即server機(jī)器人處于監(jiān)聽狀態(tài),如果連上,兩臺(tái)相互通訊,效果如下
8)server機(jī)器人收到的訊息如下:
9) client機(jī)器人收到的訊息如下:
文章來源,
工業(yè)機(jī)器人維修官網(wǎng):etongyue.com