摘? 要: 根據(jù)工業(yè)機器人的應(yīng)用現(xiàn)狀,利用現(xiàn)有的控制技術(shù),結(jié)合控制局域網(wǎng)(CAN)技術(shù)和通信技術(shù),通過對現(xiàn)有的機器人控制器進行硬件改進和軟件開發(fā),并相應(yīng)開發(fā)出上位機監(jiān)控系統(tǒng),實現(xiàn)了多臺機器人的網(wǎng)絡(luò)互聯(lián),最終實現(xiàn)基于CAN網(wǎng)絡(luò)的機器人生產(chǎn)線集成系統(tǒng)。
關(guān)鍵詞: 機器人控制器? 現(xiàn)場總線? CAN總線? 通信協(xié)議
?
制造車間底層設(shè)備自動化,近幾年仍是我國開展新技術(shù)研究和新技術(shù)應(yīng)用工程及產(chǎn)品開發(fā)的主要領(lǐng)域,其市場需求不斷增大且越發(fā)活躍,競爭也日益激烈。伴隨著工業(yè)機器人的產(chǎn)業(yè)化,目前機器人系統(tǒng)的應(yīng)用大多要求采用機器人生產(chǎn)線方式,這就要求多臺機器人能通過網(wǎng)絡(luò)進行互聯(lián)。隨之而來的,在實際生產(chǎn)過程中, 這種聯(lián)網(wǎng)的多機器人系統(tǒng)的調(diào)度、維護工作也變得尤為重要。
在計算機數(shù)據(jù)傳輸領(lǐng)域中,長期以來使用RS-232和CCITT V.24通信標準,盡管它們被廣泛地使用,但卻是一種低數(shù)據(jù)速率和點對點的數(shù)據(jù)傳輸標準,無能力支持更高層次的計算機之間的功能操作。因此需要在底層設(shè)計出一種造價低廉而又能適應(yīng)工業(yè)現(xiàn)場環(huán)境的通信系統(tǒng),現(xiàn)場總線就是在這種背景下產(chǎn)生的。與一般總線相比,CAN總線的數(shù)據(jù)通信具有突出的可靠性、實時性和靈活性,是適用于生產(chǎn)制造過程和驅(qū)動系統(tǒng)的總線協(xié)議。
1 系統(tǒng)總體結(jié)構(gòu)
制造車間底層電器裝置聯(lián)網(wǎng)是近幾年內(nèi)技術(shù)發(fā)展的重點。其電器裝置包括有:運動控制器(調(diào)速、定位、隨動等)、基于微處理器的傳感器、專用設(shè)備控制器(如點焊機、弧焊機)等底層設(shè)備、在這些裝置所構(gòu)成的網(wǎng)絡(luò)上另有車間級管理機、監(jiān)控機或生產(chǎn)單元控制器等非底層裝置。
結(jié)合實際情況和要求,將機器人控制器視為運動控制器(理解為底層設(shè)備),具體工作將基于圖1所示的模型。
?
?
本系統(tǒng)監(jiān)控機采用Advantech公司的PCL-841雙端口CAN接口卡。它將占用4KB的地址空間,而且基地址可由用戶從C800H~EF00H任意選擇。中斷也可從3~15(8、13、14)任意選擇??刂破髦胁捎眉蒔C-104的CAN接口卡。
2 系統(tǒng)實現(xiàn)
2.1 監(jiān)控機軟件部分
監(jiān)控機系統(tǒng)軟件層次如圖2所示。
?
2.1.1數(shù)據(jù)庫部分
由于上位機系統(tǒng)需要管理的數(shù)據(jù)量很大,而且數(shù)據(jù)必須長久地被保留;一旦系統(tǒng)發(fā)生軟硬件故障,數(shù)據(jù)還要可恢復(fù);而且若干個用戶應(yīng)當(dāng)能夠按照一定的、有序的方式存取數(shù)據(jù),避免同步存取可能造成的錯誤,因此上位機軟件要采用一般應(yīng)用程序與數(shù)據(jù)庫相結(jié)合的編程技術(shù)。
DAO(數(shù)據(jù)庫訪問對象)提供了一種通過程序代碼創(chuàng)建和操作數(shù)據(jù)庫的機制。而MFC DAO是微軟推出的用于在Visual C++中訪問Microsoft Jet數(shù)據(jù)庫文件的強有力的數(shù)據(jù)庫開發(fā)工具,它通過對DAO對象的封裝,向程序員提供了豐富的數(shù)據(jù)庫訪問和數(shù)據(jù)庫操作手段。
本系統(tǒng)中,將創(chuàng)建諸如生產(chǎn)線上機器人的工作總表、弧焊參數(shù)表、點焊參數(shù)表等若干個管理數(shù)據(jù)庫表。通過這些表格,監(jiān)控人員將能夠通過離線的計算機完成對生產(chǎn)線上各臺機器人運行狀況的的記錄、統(tǒng)計、管理、運行報表打印等功能,以實現(xiàn)宏觀的管理。
而對于諸如系統(tǒng)I/O量、碼盤值等實時信息則存放于一般內(nèi)存中,這樣就避免了煩瑣的數(shù)據(jù)庫操作,提高了實時性。
2.1.2 通訊協(xié)議部分
為了實現(xiàn)管理計算機與機器人控制器的實時通訊,兩者必須建立適合CAN總線特點的、合理的通訊協(xié)議,最終采用的是“命令+參數(shù)”的協(xié)議形式和“多主競爭的總線仲裁”方式。比如以第一字節(jié)01代表接收數(shù)據(jù),第二字節(jié)01代表接收文件;第一字節(jié)02代表發(fā)送數(shù)據(jù)等,具體的操作協(xié)議在此不再詳述。
“多主競爭的總線仲裁”的通信方式是CAN總線的一大優(yōu)點。也就是說,CAN網(wǎng)絡(luò)中的任意節(jié)點均可作為主節(jié)點與其他節(jié)點交換數(shù)據(jù)。而且CAN協(xié)議規(guī)定,標識符可定義為屏蔽的或非屏蔽的,這樣就使監(jiān)控機或控制器的CAN卡可以接收多個標識符(例如來自生產(chǎn)線上不同的機器人控制器)的數(shù)據(jù)。利用此特點,在監(jiān)控機和控制器的軟件設(shè)計中,使用了標識符的低三位來識別接收數(shù)據(jù)的類型。比如低三位(D2,D1,D0)為000,則表示此包數(shù)據(jù)是命令,001表示此包數(shù)據(jù)是應(yīng)答……而通過CAN協(xié)議的非破壞網(wǎng)絡(luò)仲裁,000為最高優(yōu)先級將首先被處理為發(fā)送節(jié)點,接下來是001,依此類推。
2.1.3 把CAN卡功能封裝為ActiveX控件
ActiveX控件作為標準的控件技術(shù)可供JavaScritp、VBScript、Java、VB、VC等應(yīng)用程序所使用,對軟件的集成開發(fā)具有重要的意義。
由此原因,并根據(jù)工業(yè)機器人控制器系統(tǒng)的特點,將CAN卡所提供的API函數(shù)及由其函數(shù)進一步實現(xiàn)的用于機器人系統(tǒng)的功能和屬性封裝為控件,使應(yīng)用軟件更加結(jié)構(gòu)化,而且更適合工業(yè)機器人產(chǎn)品的應(yīng)用和需要。
2.2 控制器實時操作系統(tǒng)部分
控制器系統(tǒng)軟件采用的是實時多任務(wù)操作系統(tǒng)。而根據(jù)多任務(wù)操作系統(tǒng)的任務(wù)劃分方法和本系統(tǒng)自身的特點,最終決定與上位監(jiān)控計算機的CAN網(wǎng)絡(luò)通訊采用一個獨立的且優(yōu)先級較高的任務(wù)來完成,即如圖3中所示的通訊任務(wù),此任務(wù)完成利用串口的通訊和CAN網(wǎng)絡(luò)的通訊。
?
?
這樣,生產(chǎn)線上的每臺機器人控制器就可以作為車間底層設(shè)備加入到網(wǎng)絡(luò)中,從而構(gòu)成具有監(jiān)控功能的分布式機器人生產(chǎn)線系統(tǒng)。
2.3 具體功能和運行方式
這項工作的完成將為機器人控制器產(chǎn)品增加聯(lián)網(wǎng)功能,并將投入到實際的應(yīng)用工程中。完成了下述一些功能:
(1)實現(xiàn)生產(chǎn)線上各臺機器人運行狀況的記錄、統(tǒng)計、管理,運行報表的打印等功能。比如在一天的弧焊作業(yè)中,被監(jiān)測機器人參與工作的數(shù)目、每臺機器人出現(xiàn)故障的次數(shù)、停機的次數(shù)、每次焊接的參數(shù)等;
(2)實現(xiàn)機器人控制器的實時狀態(tài)監(jiān)視(包括各碼盤值、I/O量、系統(tǒng)狀態(tài)等)、調(diào)試(包括離線編程和示教)、報警(如焊鉗的粘連)、維護(如系統(tǒng)從異常狀態(tài)的恢復(fù))等功能;
(3)作業(yè)任務(wù)的分配和調(diào)度,以及作業(yè)任務(wù)的上傳與下載;
(4)軟件PLC的實現(xiàn)。為了簡化硬件的開銷,將初步在控制器中利用軟件PLC,也就是說將PLC功能作為控制器操作系統(tǒng)的一個獨立的任務(wù)來實現(xiàn),而具體的PLC程序則由上位PC機離線編程實現(xiàn),并通過CAN總線下裝到控制器中。
把CAN總線技術(shù)充分應(yīng)用于現(xiàn)有的控制器當(dāng)中,將可開發(fā)出高性能的多機器人生產(chǎn)線系統(tǒng)。圖4舉例說明某控制器將文件上傳給監(jiān)控機軟件的工作流程圖。
?
?
????利用現(xiàn)有的控制技術(shù),結(jié)合控制局域網(wǎng)(CAN)技術(shù)和通信技術(shù),通過對現(xiàn)有的機器人控制器進行硬件改進和軟件開發(fā),并相應(yīng)地開發(fā)出上位機監(jiān)控軟件,從而實現(xiàn)多臺機器人的網(wǎng)絡(luò)互聯(lián)。最終實現(xiàn)基于CAN網(wǎng)絡(luò)的機器人生產(chǎn)線集成系統(tǒng)。這樣做的好處很多,比如:
(1)實現(xiàn)單根電纜串接全部設(shè)備,節(jié)省安裝維護開銷;
(2)提高實時性,信息可共享;提高多控制器系統(tǒng)的監(jiān)測、診斷和控制性能;
(3)通過離線的任務(wù)調(diào)度,作業(yè)的下載以及錯誤監(jiān)控等技術(shù),把一部分人從機器人工作的現(xiàn)場徹底脫離出來。
?
參考文獻
1 鄔寬明.CAN總線原理和應(yīng)用系統(tǒng)設(shè)計.北京:北京航空航天大學(xué)出版社,1996
2 陽憲惠,林強.淺談現(xiàn)場總線開放系統(tǒng)的系統(tǒng)集成與應(yīng)用集成.工業(yè)控制計算機,1999;12(5)
3 陽憲惠.現(xiàn)場總線技術(shù)及其應(yīng)用.北京:清華大學(xué)出版社,1999
4 李博軒.Visual C++6.0數(shù)據(jù)庫開發(fā)指南.北京:清華大學(xué)出版社,2000
5 陳建春.Visual C++高級編程技術(shù).北京:電子工業(yè)出版社,1999