公務(wù)員期刊網(wǎng) 論文中心 正文

工業(yè)機器人程序管理動態(tài)加載系統(tǒng)開發(fā)

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了工業(yè)機器人程序管理動態(tài)加載系統(tǒng)開發(fā)范文,希望能給你帶來靈感和參考,敬請閱讀。

工業(yè)機器人程序管理動態(tài)加載系統(tǒng)開發(fā)

摘要:為解決機器人控制器的程序容量有限,難以滿足日益復(fù)雜的生產(chǎn)工序的問題,開發(fā)一套基于以太網(wǎng)的EthernetKRL通訊的庫卡機器人動態(tài)加載程序,實現(xiàn)了大容量、多種類程序的管理系統(tǒng)。該系統(tǒng)主要解決了機器人存儲容量不足的問題,提高了機器人應(yīng)用的靈活性和復(fù)用率,適用于不同零件設(shè)計的小批量生產(chǎn)。系統(tǒng)可動態(tài)導(dǎo)入工業(yè)設(shè)計軟件生成的離線編程程序,將路徑點和機器人例程直接應(yīng)用于機器人控制器,以離線自動生成代替手動編程路徑。

關(guān)鍵詞:工業(yè)機器人;程序管理;動態(tài)加載;以太網(wǎng)通訊

隨著智能智造及工業(yè)機器人應(yīng)用的普及,機器人技術(shù)的不斷發(fā)展與穩(wěn)定,其相關(guān)技術(shù)也隨之不斷創(chuàng)新。在工業(yè)機器人與實際生產(chǎn)相配合過程中提出高需求、高生產(chǎn)效率、更高的零件復(fù)雜度,生產(chǎn)的工序隨設(shè)計變化要求快速、靈活和全自動化。其中一臺機器人不止需要完成一道工序,還要根據(jù)用戶需求同時進行搬運、涂膠、焊接、切割、打磨等復(fù)雜工序的組合工作,這些程序需要非常大的數(shù)據(jù)量,導(dǎo)致機器人控制器內(nèi)部需要存儲的程序數(shù)量不斷增加。然而機器人控制器的程序容量是有限的,不能存放足夠多的程序,已經(jīng)無法滿足用戶日益增長的需求?,F(xiàn)有的工業(yè)機器人編程通常采用兩種不同的方法:在線/自動生成軌跡和離線/手動示教編程。在線編程主要用于工業(yè)應(yīng)用,如碼垛和焊接,通過機器人控制面板或虛擬機器人環(huán)境示教位置點[1]。工業(yè)機器人開始具有一定的感知功能和自適應(yīng)能力的離線編程,可以根據(jù)作業(yè)對象的狀況改變作業(yè)內(nèi)容??墒窃谠O(shè)計之初,機器人只設(shè)計為針對一些重復(fù)性高及無需聯(lián)網(wǎng)的單一工作站,因此雖然機器人硬件芯片、軟件系統(tǒng)得到快速發(fā)展,但是底層的程序加載器由于能滿足基礎(chǔ)使用需求,所以未能有實質(zhì)性的更新迭代。用戶只能面臨兩種選擇:一是在機器人運行前,所有運行的程序的數(shù)據(jù)依次由操作員手動復(fù)制到機器人內(nèi),以供機器人循環(huán)執(zhí)行;二是增加機器人,讓每臺機器人只執(zhí)行一部分程序,例如:一臺用于搬運,一臺用于涂膠,一臺用于打磨。這樣在生產(chǎn)時不僅降低了企業(yè)工廠的生產(chǎn)效率,同時也增加了操作員的操作負(fù)擔(dān),加大了因為人員誤操作而引入的風(fēng)險。傳統(tǒng)工業(yè)機器人運動控制和編程軟件通常是為工廠大規(guī)模生產(chǎn)部件而開發(fā)的,機器人路徑規(guī)劃和編程是為特定的生產(chǎn)過程設(shè)計的,在生產(chǎn)制造中機器人按照既定工作流程,不會為靈活多變的設(shè)計/制造活動提供太多空間[2]。所以現(xiàn)在急需一種可行的處理方案來自動管理機器人的程序,實現(xiàn)程序動態(tài)按需加載進入機器人控制器。本文通過開發(fā)一套基于以太網(wǎng)通訊的上位機控制程序與基于EthernetKRL通訊的庫卡機器人動態(tài)加載程序,實現(xiàn)了大容量、多種類示教程序管理及動態(tài)加載。該系統(tǒng)主要解決機器人控制器程序容量有限的問題,在機器人控制系統(tǒng)中實現(xiàn)傳輸?shù)某绦虼a的重建,并在機器人系統(tǒng)文件目錄中組接成完整的程序文件,使離線編程程序的動態(tài)加載成為可能,提高了機器人應(yīng)用的靈活性和復(fù)用率。在生產(chǎn)時提高企業(yè)工廠的生產(chǎn)效率,降低擴充內(nèi)存或增加機器人的成本,適用于不同設(shè)計零件的小批量生產(chǎn),且配置更靈活。

1系統(tǒng)架構(gòu)

在傳統(tǒng)工控機-機器人控制器控制結(jié)構(gòu)中,一般工控機運行非實時操作系統(tǒng)(MicrosoftWindows或Linux),對于機器人實時交互任務(wù),系統(tǒng)存在不確定性,難以保證運行任務(wù)穩(wěn)定性和正確性。例如,當(dāng)機器人工具命令(焊槍控制、抓手動作控制)需要與移動的機械手同步的任務(wù),或在傳送帶上通過傳感器掃描獲取工件位姿需要動態(tài)抓取工件的任務(wù)。對于需要實時實現(xiàn)或快速響應(yīng)的任務(wù),通過PLC作為業(yè)務(wù)中繼站負(fù)責(zé)業(yè)務(wù)邏輯控制、數(shù)據(jù)傳輸、命令傳輸、I/O接口。因為工控機操作系統(tǒng)非實時運行,需要PLC作為業(yè)務(wù)流程控制提高系統(tǒng)穩(wěn)定性和上位機非實時運行產(chǎn)生的時間不同步問題。采用PLC還可以實現(xiàn)多種外圍設(shè)備信號的讀取,完成多臺機器人控制[3]。本文采用工業(yè)以太網(wǎng)作為通訊連接方式,將機器人與PLC通過工業(yè)以太網(wǎng)進行組網(wǎng),用交換機連接所有鏈路節(jié)點,以PLCI/O口作為控制系統(tǒng)與外圍設(shè)備之間的通訊,集成控制系統(tǒng)總體框架如圖1所示。其中,工控機與機器人控制器程序文件傳輸基于EthernetKRL軟件包TCP/IP通訊;西門子PLC與庫卡機器人通訊通過Profinet通訊總線[4];工控機與西門子PLC采用ModbusTCP方式通訊,最終將PLC所有的數(shù)據(jù)信息集成到工控機上。因此本系統(tǒng)可管理大量機器人離線程序,具備直接傳輸運行程序到機器人控制器功能。并可在機器人外部運行模式中,對PLC內(nèi)部數(shù)據(jù)的讀寫實現(xiàn)對機器人運行情況監(jiān)控和對機器人運行狀態(tài)控制(運行啟動、運行程序選擇、運行中斷、緊急停止)。如圖2所示,機器人程序管理與程序動態(tài)加載系統(tǒng)上位機為工控機,上位機運行基于C#編程創(chuàng)建的機器人程序管理系統(tǒng),操作者可通過人機交互界面導(dǎo)入或通過虛擬仿真程序?qū)脒\動任務(wù)。工業(yè)機器人的運動任務(wù)程序通常包括一系列機器人運動和工具命令,這些命令構(gòu)成了機器人應(yīng)用的整個過程。將導(dǎo)入的大量運動任務(wù)程序建立機器人源程序庫,存儲已經(jīng)示教好或生成的大量程序。工控機和控制器之間通過套接字(Socket)通訊傳輸所需離線程序。根據(jù)生產(chǎn)需要,程序管理系統(tǒng)自動從源程序庫中將機器人要執(zhí)行的程序移動到機器人控制器中,清除機器人控制器中不需要執(zhí)行的程序。從而規(guī)避了機器人控制器程序容量有限的問題。在KUKA機器人控制器端,基于EthernetKRL軟件包TCP/IP通訊接收數(shù)據(jù),并重建上位機傳輸?shù)某绦蚨?,使其在機器人系統(tǒng)文件目錄中組接成完整的程序文件。管理系統(tǒng)支持在自動運行模式下,根據(jù)可編程邏輯控制器(PLC)輸入信號自動加載程序。機器人控制器可通過總線方式或I/O控制方式選擇機器人應(yīng)用層運行的程序號。在機器人控制器中,應(yīng)用層控制程序事件的整個過程,即單個動作與工具動作的結(jié)合,以及與外部系統(tǒng)的交互。機器人末端執(zhí)行器的工具動作通常通過設(shè)置數(shù)字或模擬量輸出的值以及從數(shù)字或模擬輸入讀取值來控制。這些輸入和輸出通常連接到現(xiàn)場總線上,現(xiàn)場總線將機器人連接到其他控制設(shè)備,如抓手控制、焊槍控制或可編程邏輯控制器(PLC)。

2機器人控制器管理程序

庫卡機器人程序控制系統(tǒng)主要功能如下:根據(jù)用戶需求自動將機器人程序移動到庫卡機器人默認(rèn)的程序目錄下,由此達到擴增機器人默認(rèn)的程序內(nèi)存大小的效果。機器人程序控制系統(tǒng)具有兩種控制模式:①手動:用戶可自由選擇想要從源程序庫加載的機器人程序,并在復(fù)制前先刪除機器人控制器內(nèi)不需要執(zhí)行的程序;②自動:自動根據(jù)現(xiàn)場PLC的傳輸過來的信號,從源程序庫中自動加載機器人程序,根據(jù)用戶需求自動將機器人默認(rèn)目錄下的程序進行刪除、備份、增加,操作員可以迅速上手,無需額外的硬件。支持兩種運行模式下加載程序使系統(tǒng)軟件開發(fā)自由度更高,可為PLC提供更多程序選擇接口,實現(xiàn)CAD/CAM軟件離線編程程序的動態(tài)加載。本文所開發(fā)的系統(tǒng)用戶不需要具備任何編程知識,因此所有的目標(biāo)點坐標(biāo)的文件格式轉(zhuǎn)換都是由所設(shè)計的上位機程序完成的。使用轉(zhuǎn)換后的坐標(biāo)生成文件后,自動生成的文件有兩種:一種是帶有過程參數(shù)的XML文件格式,另一種是存儲路徑點的KUKA格式的dat文件。XML文件具有特定的結(jié)構(gòu),用于保存所有必要的幾何和路徑數(shù)據(jù);dat文件具有KUKA語言特有的結(jié)構(gòu)。需傳輸?shù)臄?shù)據(jù)被轉(zhuǎn)換為XML配置文件定義的XML結(jié)構(gòu),并將該XML轉(zhuǎn)換為字節(jié)并發(fā)送給機器人控制器。當(dāng)工控機從機器人接收數(shù)據(jù)時,通過KUKA“DirectoryLoader”軟件包自動加載到機器人存儲區(qū)中[5]。該軟件包可以基于EthernetKRL通訊發(fā)送的命令從機器人控制器的可定義目錄加載模塊。機器人控制器端采用庫卡專有編程語言(KRL),其中為實現(xiàn)“DirectoryLoader”軟件包文件加載,需設(shè)置以太網(wǎng)配置文件、循環(huán)更新程序編號提交解釋器文件sps.sub、控制器變量的配置文件ConfigMon.ini、系統(tǒng)全局變量配置文件$config.dat。

3數(shù)據(jù)傳輸模型的構(gòu)建

基于C#的上位機程序與機器人控制器之間采用“DirectoryLoader”軟件包重構(gòu)程序文件。上位機和機器人控制器通過EthernetKRL軟件包進行雙向通信的功能。上位機和機器人控制器之間的通信基于Socket通訊,以上位機作為服務(wù)器,機器人作為客戶端進行通信,通信延遲在2ms以下。以太網(wǎng)連接是采用XML文件配置,在機器人控制器中創(chuàng)建一個包含所需變量的XML文件,如下所示,文件內(nèi)定義了過程變量。機器人控制器初始化連接時會讀入配置,服務(wù)器發(fā)送XML結(jié)構(gòu)由參數(shù)、變量和命令組成,作為響應(yīng),機器人根據(jù)這些變量的值進行動作。以太網(wǎng)配置文件XML結(jié)構(gòu)如下所示:1)將自動加載和重建算法程序的SRC文件復(fù)制到機器人控制器的目錄C:\KRC\ROBOTER\Program中。2)將網(wǎng)絡(luò)配置的XML文件復(fù)制到控制器的目錄C:\KRC\ROBOTER\Config\User\Common\EthernetKRL中。3)在外部系統(tǒng)上啟動服務(wù)器程序,切換到庫卡示教器頁面。“DirectoryLoader”軟件包的函數(shù)在自動外部模式下通過觸發(fā)器的上升緣進行初始化,例如將觸發(fā)器$in[x]或$FLAG[x]設(shè)置為TRUE,然后機器人就可以連接到后臺的機器人程序控制系統(tǒng)。4)與待測機器人控制器建立穩(wěn)定連接,服務(wù)器程序具有以下功能:發(fā)送和接收數(shù)據(jù)(自動或手動);顯示接收到的數(shù)據(jù);顯示發(fā)送的數(shù)據(jù)。

4結(jié)束語

為了將大容量的離線生成的程序放到機器人中,或者通過內(nèi)存交換來繞過KRC4的小內(nèi)存容量,本文開發(fā)一套機器人動態(tài)加載程序,主要解決機器人存儲容量不足的問題,提高了機器人應(yīng)用的靈活性和復(fù)用率。系統(tǒng)通過工業(yè)以太網(wǎng)組網(wǎng)方式連接機器人、PLC與機器人控制器,可直接傳輸離線程序到機器人控制器,并可在機器人運行過程中,通過對PLC數(shù)據(jù)的讀寫實現(xiàn)對機器人運行監(jiān)控和對機器人運行狀態(tài)控制。

參考文獻

[3]郝任義.工業(yè)自動化生產(chǎn)線中機器人及PLC的集成控制研究[D].秦皇島:燕山大學(xué),2018

[4]郭磊,王培光,宗曉萍.基于KUKA機器人的PROFINET協(xié)議通訊分析[J].電子世界,2017(6):113-117

作者:陳挺木 單位:福建省特種設(shè)備檢驗研究院泉州分院