回 春,蔡 博
(1.中汽研汽車檢驗(yàn)中心(武漢)有限公司,湖北 武漢 430056;2.中國(guó)汽車技術(shù)研究中心有限公司,天津 300300)
隨著智能制造的快速推進(jìn),工業(yè)機(jī)器人已廣泛應(yīng)用于各行各業(yè)中,極大地推動(dòng)了智能制造的發(fā)展進(jìn)程[1]。工業(yè)機(jī)器人除了驅(qū)動(dòng)裝置及其本體,最重要的組成部分就是其自身的控制系統(tǒng),其主要負(fù)責(zé)對(duì)機(jī)器人進(jìn)行運(yùn)動(dòng)學(xué)的計(jì)算、運(yùn)動(dòng)規(guī)劃與插補(bǔ)等,是機(jī)器人系統(tǒng)中的核心與難點(diǎn)。當(dāng)前工業(yè)機(jī)器人的控制策略主要是:通過(guò)PLC與機(jī)器人通信,再由上位機(jī)與PLC進(jìn)行OPC通訊以獲得對(duì)機(jī)器人的控制權(quán)。隨著智能制造的發(fā)展、工業(yè)機(jī)器人的控制方式也有了進(jìn)一步的改變,現(xiàn)場(chǎng)總線技術(shù)的使用使機(jī)器人與上位機(jī)的通訊只通過(guò)一根總線電纜就可以進(jìn)行,即集成了遵循某種通信協(xié)議通信接口的現(xiàn)場(chǎng)設(shè)備都可以連接在通信電纜上,而不僅僅是簡(jiǎn)單的I/O啟停控制,這使得控制結(jié)構(gòu)變得更加簡(jiǎn)單,極大地減少了安裝和維護(hù)費(fèi)用[2,3],解決了工業(yè)機(jī)器人控制過(guò)程中普通I/O通訊普遍存在的接線繁多、需要通過(guò)繼電器進(jìn)行信號(hào)轉(zhuǎn)換及數(shù)據(jù)通訊越多越復(fù)雜的問(wèn)題。
基于此,本文針對(duì)工控機(jī)上位機(jī)系統(tǒng)與機(jī)器人之間的實(shí)時(shí)通訊等問(wèn)題,搭建一套基于Profibus通訊、采用Labview編寫(xiě)上位機(jī)程序、與ABB機(jī)器人進(jìn)行通訊的交互系統(tǒng),實(shí)現(xiàn)ABB機(jī)器人系統(tǒng)的多任務(wù)并行控制,該系統(tǒng)可實(shí)時(shí)讀取ABB機(jī)器人的位置坐標(biāo),同時(shí)實(shí)現(xiàn)位置、速度在線可調(diào)控制等功能。
基于Profibus通訊的上位機(jī)與機(jī)器人交互系統(tǒng)結(jié)構(gòu)如圖1所示。本系統(tǒng)主要包括ABB機(jī)器人、控制柜、工控機(jī)系統(tǒng)、NI公司的PCI-DP PROFI II通訊板卡以及通訊線纜等。以工控機(jī)作為上位機(jī),采用Labview編寫(xiě)上位機(jī)程序,通過(guò)Profibus通訊板卡與ABB機(jī)器人進(jìn)行通訊,獲得機(jī)器人的控制權(quán)。
如圖1所示,工控機(jī)通過(guò)Profibus通訊板卡與ABB機(jī)器人上自帶的Profibus端口連接,在上位機(jī)Labview軟件中進(jìn)行程序編寫(xiě),通過(guò)讀取ABB機(jī)器人的坐標(biāo)值、輸入輸出信號(hào)等參數(shù),控制機(jī)器人的伺服上電、程序啟動(dòng)/停止、位置移動(dòng)、速度改變等動(dòng)作。
圖1 基于Profibus通訊的上位機(jī)與機(jī)器人交互系統(tǒng)結(jié)構(gòu)
Profibus網(wǎng)絡(luò)技術(shù)可以支持多種不同的通信協(xié)議,包括DP通信協(xié)議、FDL通信協(xié)議、S7通信協(xié)議、PA通信協(xié)議以及FMS通信協(xié)議。每種通信協(xié)議功能不同,使用范圍與特點(diǎn)也不同。其通信技術(shù)主要有兩種,即DP通信和FDL通信。DP通信協(xié)議在現(xiàn)場(chǎng)總線通信中使用的范圍最廣,相同條件下,DP通信協(xié)議的功能最強(qiáng)大[4]。Profibus-DP采用RS-485傳輸技術(shù),全部設(shè)備均與總線連接,每個(gè)分段上最多可接32個(gè)站(主站或從站),傳輸速率為9.6 kb/s~12 Mb/s,是一種優(yōu)化的、數(shù)據(jù)傳輸速度快的、價(jià)格低的通信總線,是為自動(dòng)控制系統(tǒng)與分散I/O設(shè)備級(jí)之間通信而設(shè)計(jì)的,總線周期一般小于10 ms[5]。
本設(shè)計(jì)以工控機(jī)為上位機(jī)Profibus通訊主站,ABB機(jī)器人為從站,主要實(shí)現(xiàn)功能:上位機(jī)可實(shí)時(shí)獲取機(jī)器人坐標(biāo)值及當(dāng)前狀態(tài),并可通過(guò)程序控制機(jī)器人上電、啟動(dòng)、暫停等動(dòng)作。在配置通訊地址時(shí)可將控制信號(hào)分成兩類處理,如表1所示。
表1 通訊控制信號(hào)分類
在硬件配置過(guò)程中非常關(guān)鍵的一步就是需要Profibus-DP總線所掛接設(shè)備的GSD文件,上位機(jī)采用通訊板卡時(shí)需要首先打開(kāi)GSD配置文件[6,7]進(jìn)行網(wǎng)絡(luò)組態(tài)配置,然后下載至Profibus板卡中,在網(wǎng)絡(luò)組態(tài)中根據(jù)需求的字節(jié)數(shù)配置從站的通訊輸入地址和輸出地址??紤]擴(kuò)展和備用需求,盡量多配置通訊地址,參數(shù)設(shè)置應(yīng)結(jié)合實(shí)際的項(xiàng)目需求進(jìn)行。上位機(jī)通訊配置如圖2所示。
圖2 上位機(jī)通訊配置
在Profibus-DP現(xiàn)場(chǎng)總線網(wǎng)絡(luò)中,主站可以與多個(gè)從站進(jìn)行通信,通過(guò)設(shè)置從站地址,主站就可以自動(dòng)訪問(wèn)從站,在Profibus-DP網(wǎng)絡(luò)中每個(gè)從站都要設(shè)定唯一的地址號(hào)[8]。在上位機(jī)端配置好通訊地址后,相對(duì)應(yīng)地在機(jī)器人端按照主站分配的地址進(jìn)行通訊設(shè)置,將從站連接到主站。
在有些使用場(chǎng)合下,DI/DO是為了滿足特殊應(yīng)用,如Motor ON、Start、E-Stop等機(jī)器人本身系統(tǒng)自帶的功能。首先在機(jī)器人控制面板—配置—I/O System-Signal中為每個(gè)DI/DO編輯易于記憶的名稱、映射的地址等參數(shù),然后在映射地址后的【控制面板—配置—System Input—添加】中將這些信號(hào)與機(jī)器人系統(tǒng)變量進(jìn)行關(guān)聯(lián),這樣就完成了機(jī)器人各系統(tǒng)變量、信號(hào)、名稱、地址之間的一一對(duì)應(yīng)。
GI/GO組信號(hào)一般是對(duì)應(yīng)編程所需要的數(shù)據(jù),不需要在相關(guān)參數(shù)設(shè)置中與系統(tǒng)變量關(guān)聯(lián),在后續(xù)的程序編輯中會(huì)進(jìn)行處理。配置好的信號(hào)如圖3所示。
圖3 機(jī)器人通訊配置
在完成通訊信號(hào)地址分配、添加、映射、綁定系統(tǒng)變量以及硬件配置連接后,即需要分別對(duì)上位機(jī)與機(jī)器人進(jìn)行程序編寫(xiě),為系統(tǒng)增加可執(zhí)行性。
在軟件系統(tǒng)中,最重要的就是上位機(jī)Labview與機(jī)器人之間通信程序的編寫(xiě)。上位機(jī)采用Labview軟件進(jìn)行程序編寫(xiě),通訊時(shí)利用DP-Master Express.vi進(jìn)行信號(hào)傳輸設(shè)置。SetOutPutData端口為上位機(jī)控制機(jī)器人端口信號(hào)指令,信號(hào)類型為U8數(shù)組,可將控制信號(hào)集成為數(shù)組后再轉(zhuǎn)換為U8類型數(shù)字,并與速度、最大運(yùn)動(dòng)距離一起創(chuàng)建數(shù)組后接入此端口。InPutData端口為從機(jī)器人端得到的反饋數(shù)據(jù),信號(hào)類型同樣為U8數(shù)組,將獲取到的數(shù)據(jù)按照高低位字節(jié)換算后得到X、Y、Z坐標(biāo)值,同樣的控制反饋信號(hào)從數(shù)組中索引出來(lái)后先從U8類型數(shù)字轉(zhuǎn)換為布爾數(shù)組,再?gòu)牟紶枖?shù)組中即可索引到所需要的控制反饋信號(hào)。
設(shè)計(jì)的動(dòng)作主要有以下操作:機(jī)器人上電、下電,程序運(yùn)行、停止,手動(dòng)操作、自動(dòng)操作,機(jī)器人手動(dòng)前進(jìn)、后退,確定原點(diǎn),自動(dòng)前進(jìn)、后退等。上位機(jī)程序編寫(xiě)如圖4所示。
圖4 上位機(jī)通訊程序編寫(xiě)
在很多現(xiàn)場(chǎng)情況下,機(jī)器人需要實(shí)時(shí)監(jiān)聽(tīng)上位機(jī)發(fā)出的通訊命令,以方便及時(shí)響應(yīng)對(duì)應(yīng)的操作。為了達(dá)到實(shí)時(shí)通訊的目的,機(jī)器人實(shí)行多任務(wù)運(yùn)行的控制策略[9,10],通過(guò)后臺(tái)來(lái)實(shí)現(xiàn)此程序與正常執(zhí)行程序的并行操作,同時(shí)不同程序的優(yōu)先級(jí)可以自主設(shè)置。
在本次機(jī)器人程序編寫(xiě)中,采用多任務(wù)運(yùn)行的控制策略,主程序T_ROB1執(zhí)行機(jī)器人自身運(yùn)行的動(dòng)作指令,后臺(tái)程序Task2執(zhí)行坐標(biāo)數(shù)據(jù)轉(zhuǎn)換,并將值賦給相應(yīng)的通訊地址,使得機(jī)器人能夠?qū)崟r(shí)響應(yīng)相應(yīng)的指令,ABB機(jī)器人通訊程序如圖5所示。
圖5 ABB機(jī)器人通訊程序
完成機(jī)器人通訊系統(tǒng)硬件搭建與控制程序編寫(xiě)后,按照要求進(jìn)行硬件連接與軟件調(diào)試,硬件部分包括NI的Profibus通訊板卡(型號(hào)為PCI-DP PROFI II)、上位機(jī)(工控機(jī))、電控柜、控制線纜等。手動(dòng)界面如圖6所示,該界面上的“向前”和“向后”表示機(jī)器人沿當(dāng)前姿態(tài)的六軸法蘭方向前進(jìn)和后退,規(guī)定了前進(jìn)、后退的速度與最大距離,并讀取機(jī)器人當(dāng)前的X、Y、Z坐標(biāo)。
圖6 手動(dòng)界面
機(jī)器人坐標(biāo)數(shù)據(jù)賦值給上位機(jī)顯示,并與機(jī)器人示教器坐標(biāo)數(shù)據(jù)進(jìn)行對(duì)比,如表2所示。
表2 機(jī)器人坐標(biāo)位置 mm
從表2中可知,試驗(yàn)數(shù)據(jù)與機(jī)器人示教坐標(biāo)數(shù)據(jù)基本一致,X、Y、Z三個(gè)方向上的誤差都非常小,都在5 mm以內(nèi),空間上機(jī)器人的位置坐標(biāo)誤差僅為4.18 mm。以上試驗(yàn)數(shù)據(jù)說(shuō)明,基于Profibus-DP通訊的上位機(jī)與ABB機(jī)器人交互系統(tǒng)控制效果良好,極大簡(jiǎn)化了對(duì)機(jī)器人的通訊控制以及現(xiàn)場(chǎng)電控布線等操作。
通過(guò)Profibus通訊的方式實(shí)現(xiàn)了上位機(jī)與單臺(tái)機(jī)器人的信息交互系統(tǒng),可以正常讀取機(jī)器人坐標(biāo)位置信息,控制機(jī)器人前進(jìn)、后退、啟動(dòng)、停止等操作,可以省掉中間的PLC二次通訊控制或I/O通訊的接線、繼電器轉(zhuǎn)換信號(hào)等操作。本文研究為我們以后更簡(jiǎn)單化地控制機(jī)器人提供了一個(gè)方法,也為擴(kuò)展控制多臺(tái)機(jī)器人的策略提供了一個(gè)思路。