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

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

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

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

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

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

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

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

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

2機(jī)器人控制器管理程序

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

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

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

4結(jié)束語

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

參考文獻(xiàn)

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

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

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