1、引言
在機(jī)器人技術(shù)的研究中,控制系統(tǒng)是一個(gè)研究的重點(diǎn)。隨著機(jī)器人智能控制體系的發(fā)展以及在工業(yè)上的廣泛應(yīng)用,開(kāi)放式運(yùn)動(dòng)控制系統(tǒng)應(yīng)運(yùn)而生,并很快成為了一種重要的工業(yè)標(biāo)準(zhǔn) 。目前的機(jī)器人控制系統(tǒng)一般都采用工控機(jī)IPC 與可編程多軸控制器PMAC(Programmable Multi-Axis Controller)相結(jié)合的方式。主控制器IPC和下層運(yùn)動(dòng)控制器PMAC作為六自由度噴涂機(jī)器人控制系統(tǒng)的核心部件,它們的各項(xiàng)性能指標(biāo)直接決定了整個(gè)噴涂機(jī)器人控制系統(tǒng)性能的優(yōu)劣。本文研制的六自由度噴涂機(jī)器人控制器調(diào)試系統(tǒng)包括速度及加速度參數(shù)設(shè)置,關(guān)節(jié)空間運(yùn)動(dòng)調(diào)試,直角坐標(biāo)空間運(yùn)動(dòng)調(diào)試,I/O端口調(diào)試四個(gè)方面。通過(guò)實(shí)驗(yàn)驗(yàn)證,該調(diào)試系統(tǒng)能夠使我們對(duì)噴涂機(jī)器人控制器工作的實(shí)時(shí)性,可靠性, 安全性等性能有一個(gè)總體的*估,很好的達(dá)到了調(diào)試的目的。
2、控制器調(diào)試系統(tǒng)硬件平臺(tái)
本文中,六自由度噴涂機(jī)器人控制系統(tǒng)采用PC-Based 的開(kāi)放式系統(tǒng)架構(gòu)。工控機(jī)IPC有很強(qiáng)的信息處理能力,且應(yīng)用比較靈活,PMAC 運(yùn)算速度快,實(shí)時(shí)性很強(qiáng)。在設(shè)計(jì)時(shí),將IPC 和PMAC 結(jié)合起來(lái),充分發(fā)揮二者的優(yōu)點(diǎn),提高系統(tǒng)的整體性能。如圖1 所示為六自由度噴涂機(jī)器人控制系統(tǒng)總體結(jié)構(gòu)圖。帶雙端口RAM 的 PMAC2-PC 多軸運(yùn)動(dòng)控制卡通過(guò)PCI總線與主機(jī)IPC 相連。雙端口RAM 作為Windows 和PMAC 之間的高速緩沖區(qū)。IPC 通過(guò)下載運(yùn)動(dòng)控制程序到PMAC 卡中運(yùn)行或者使用PMAC 提供的在線運(yùn)動(dòng)指令,來(lái)指定各個(gè)伺服電機(jī)的運(yùn)動(dòng)。PMAC 負(fù)責(zé)完成伺服運(yùn)動(dòng)控制的細(xì)節(jié)。為了實(shí)現(xiàn)六自由度噴涂機(jī)器人的運(yùn)動(dòng)控制功能,還需在PMAC 上擴(kuò)展相應(yīng)的I/O 板,伺服驅(qū)動(dòng)單元,伺服電機(jī),編碼器等,最終形成一個(gè)完整的運(yùn)動(dòng)控制系統(tǒng)。
圖1 六自由度噴涂機(jī)器人控制系統(tǒng)總體結(jié)構(gòu)圖
3 、控制器調(diào)試系統(tǒng)軟件設(shè)計(jì)
3.1 調(diào)試系統(tǒng)軟件開(kāi)發(fā)平臺(tái)
控制器調(diào)試系統(tǒng)建立在Windows 操作系統(tǒng)之上,具備了多任務(wù)協(xié)調(diào)處理的能力。利用了面向?qū)ο笳Z(yǔ)言Visual C#.NET,它同時(shí)具有Visual Basic 的易用性,高性能及C++的低級(jí)內(nèi)存訪問(wèn)性,提供了豐富的進(jìn)程和資源管理,并且支持標(biāo)準(zhǔn)的32 位DLL 調(diào)用。由于Delta Tau公司提供的Windows 環(huán)境下的PComm32 動(dòng)態(tài)鏈接庫(kù)函數(shù)能夠完成與運(yùn)動(dòng)控制有關(guān)的復(fù)雜細(xì)節(jié),因而,大大縮短了調(diào)試系統(tǒng)的開(kāi)發(fā)周期。
3.2 調(diào)試系統(tǒng)軟件層次結(jié)構(gòu)
調(diào)試系統(tǒng)軟件采用層次結(jié)構(gòu),上層是用戶(hù)界面及IPC 主程序,下層為PMAC 底層運(yùn)動(dòng)控制程序。用戶(hù)界面用于提供下達(dá)調(diào)試任務(wù)的接口并實(shí)時(shí)顯示當(dāng)前系統(tǒng)狀態(tài)。主程序完成系統(tǒng)管理和上層運(yùn)動(dòng)規(guī)劃,包括文件與數(shù)據(jù)管理、伺服參數(shù)調(diào)整、軌跡規(guī)劃、運(yùn)動(dòng)學(xué)正反解、運(yùn)動(dòng)控制程序的生成、狀態(tài)監(jiān)測(cè)、故障處理等,并通過(guò)PComm32 動(dòng)態(tài)鏈接庫(kù)向PMAC 發(fā)送在線指令,獲取以PMAC 為基礎(chǔ)的伺服系統(tǒng)的狀態(tài)和發(fā)送運(yùn)動(dòng)數(shù)據(jù)等。PMAC 接收IPC發(fā)出的各種運(yùn)動(dòng)控制命令,根據(jù)位置給定信號(hào)及光電編碼器的位置反饋信號(hào),分時(shí)完成每個(gè)電機(jī)轉(zhuǎn)角的誤差計(jì)算、控制算法計(jì)算及D/A 轉(zhuǎn)換,最終完成對(duì)各伺服電機(jī)的控制。這種分層次的軟件結(jié)構(gòu),保證了調(diào)試系統(tǒng)的可移值性與通用性。
4 控制器調(diào)試系統(tǒng)軟件實(shí)現(xiàn)
4.1 用戶(hù)界面及主程序類(lèi)對(duì)象的關(guān)系與實(shí)現(xiàn)
通過(guò)對(duì)系統(tǒng)結(jié)構(gòu)與功能進(jìn)行分析,我們建立了如下類(lèi):通用運(yùn)動(dòng)控制類(lèi),進(jìn)程類(lèi),傳感器類(lèi),界面類(lèi),定時(shí)器類(lèi)與輔助類(lèi),進(jìn)程類(lèi)又分為規(guī)劃器類(lèi)和控制器類(lèi)。其中,最主要的類(lèi)對(duì)象有:通用運(yùn)動(dòng)控制類(lèi)CBaseControl,控制器類(lèi)CController 和規(guī)劃器類(lèi)CPlanner。通用運(yùn)動(dòng)控制類(lèi)CBaseControl 是各種運(yùn)動(dòng)控制平臺(tái)的抽象,包含了通用運(yùn)動(dòng)控制平臺(tái)的公用數(shù)據(jù)和公共操作。從通用控制類(lèi)又可派生出電機(jī)軸類(lèi)CShaft。電機(jī)軸類(lèi)主要封裝了電機(jī)軸的屬性及行為。控制器類(lèi)CController 封裝了控制器的控制軸數(shù)據(jù)和控制器的公共功能,負(fù)責(zé)控制器的初始化并將各種指令轉(zhuǎn)化為基本的運(yùn)動(dòng)控制指令。規(guī)劃器類(lèi)CPlanner 主要用于直角坐標(biāo)空間運(yùn)動(dòng)的規(guī)劃,它抽象并實(shí)現(xiàn)了路徑規(guī)劃算法,比如直線插補(bǔ)與圓弧插補(bǔ)。為了使電機(jī)軸類(lèi)能使用規(guī)劃器類(lèi)和控制器類(lèi),通用運(yùn)動(dòng)控制類(lèi)CBaseControl里面含有一個(gè)指向控制器類(lèi)CController 的指針*p_CController 和一個(gè)指向規(guī)劃器類(lèi)*p_CPlanner。為了記錄和保存示教點(diǎn),還需定義用于描述指令的輔助類(lèi)。一個(gè)指令可以將目標(biāo)位置,運(yùn)動(dòng)方式,運(yùn)動(dòng)速度,指令類(lèi)型等封閉在一起,這樣,一個(gè)示教任務(wù)就表示為一個(gè)指令鏈表m_TeachePointList,一個(gè)示教點(diǎn)就表示為指令鏈表的一個(gè)元素。通過(guò)對(duì)指令鏈表的操作就可實(shí)現(xiàn)示教任務(wù)的各項(xiàng)功能,如示教點(diǎn)的插入,記錄,刪除和示教任務(wù)的回放。
4.2 IPC 同PMAC 之間的通信
IPC 上的Windows 與PMAC 之間通過(guò)Delta Tau 公司提供的PComm32 動(dòng)態(tài)鏈接庫(kù)進(jìn)行通信。PComm32 包括了所有與PMAC 的通信方法,在主程序中只需調(diào)用PComm32 動(dòng)態(tài)鏈接庫(kù)就能完成Windows 同PMAC 之間的數(shù)據(jù)交換。盡管PComm32 動(dòng)態(tài)鏈接庫(kù)中包含了很多函數(shù),但常用的并不多,只要掌握了以下幾個(gè)函數(shù),就可以實(shí)現(xiàn)大多數(shù)的通信功能。
OpenPmacDevice() //為應(yīng)用程序使用PMAC 打開(kāi)一個(gè)通道;
ClosePmacDevice() //當(dāng)程序運(yùn)行完畢后關(guān)閉所打開(kāi)的通道;
PmacGetResponseA() //發(fā)送一個(gè)命令字符串給PMAC,并從緩沖區(qū)得到PMAC 的反饋;
PmacConfigure() //調(diào)出配置對(duì)話框并修改PMAC 的參數(shù);
PmacDownLoadA() //將程序從IPC 下載到PMAC;
PmacSendCommandA() //發(fā)送一個(gè)命令字符串給PMAC。
4.3 調(diào)試系統(tǒng)模塊化實(shí)現(xiàn)
本文中的調(diào)試系統(tǒng)采用模塊化結(jié)構(gòu),使系統(tǒng)具有擴(kuò)展性與通用性。四個(gè)模塊分別是:系統(tǒng)參數(shù)設(shè)置模塊,關(guān)節(jié)空間運(yùn)動(dòng)調(diào)試模塊,直角坐標(biāo)空間運(yùn)動(dòng)調(diào)試模塊,I/O端口調(diào)試模塊。各模塊運(yùn)行界面如下:
(1) 參數(shù)設(shè)置模塊:如圖2(a)所示,在通用控制菜單項(xiàng)中,有6個(gè)子菜單,分別是系統(tǒng)自檢,系統(tǒng)初始化,打開(kāi)控制器,關(guān)閉控制器,伺服上電和伺服斷電。可以設(shè)置各伺服電機(jī)軸的速度和加速度參數(shù),單擊執(zhí)行,各電機(jī)軸將會(huì)按照給定參數(shù)運(yùn)動(dòng),窗體右邊實(shí)時(shí)顯示當(dāng)前各電機(jī)軸角度及經(jīng)過(guò)運(yùn)動(dòng)學(xué)正解得到的直角坐標(biāo)值。單擊復(fù)位,各電機(jī)軸回到初始位置。
(2) 關(guān)節(jié)空間運(yùn)動(dòng)調(diào)試模塊:如圖2(b)所示,六個(gè)伺服電機(jī)軸分別被定義為X,,Y,Z,A,B,C軸,選擇步長(zhǎng)和軸號(hào)以后可以讓各個(gè)軸以一定的步長(zhǎng)運(yùn)動(dòng),通過(guò)列表操作得到指令序列,再通過(guò)對(duì)指令序列的操作進(jìn)行示教重演。窗體下面實(shí)時(shí)顯示當(dāng)前各電機(jī)軸角度,直角坐標(biāo),以及伺服報(bào)警,運(yùn)動(dòng)出錯(cuò),正限位動(dòng)作,負(fù)限位動(dòng)作,軸開(kāi)啟等系統(tǒng)狀態(tài)。
圖 2 (a)參數(shù)設(shè)置模塊 (b)關(guān)節(jié)空間運(yùn)動(dòng)調(diào)試模塊
(3) 直角坐標(biāo)空間運(yùn)動(dòng)調(diào)試模塊:如圖3(a)所示,須通過(guò)運(yùn)動(dòng)學(xué)反解將直角坐標(biāo)空間的示教操作轉(zhuǎn)換到關(guān)節(jié)空間,其他功能與關(guān)節(jié)空間運(yùn)動(dòng)調(diào)試模塊類(lèi)似。
(4) I/O端口調(diào)試模塊:如圖3(b)所示,布置了16個(gè)輸入端口和16個(gè)輸出端口。每個(gè)I/O端口的狀態(tài)值均用bool值表示,調(diào)用此模塊時(shí),16個(gè)輸入端口的狀態(tài)值將會(huì)以0或1的形式顯示在界面上。將各輸出端口設(shè)置數(shù)值0或1,單擊設(shè)置,輸出端口的值將會(huì)傳遞到實(shí)際的外部設(shè)備,以控制連接到I/O端口的實(shí)際外部設(shè)備的開(kāi)關(guān)。
圖3 (a)直角坐標(biāo)空間運(yùn)動(dòng)調(diào)試模塊 (b) I/O 端口調(diào)試模塊
5 結(jié)論
本文以工控機(jī)IPC 作為六自由度噴涂機(jī)器人控制系統(tǒng)的主控制器,結(jié)合可編程多軸控制器PMAC,設(shè)計(jì)了一種基于PMAC 的開(kāi)放式六自由度噴涂機(jī)器人控制系統(tǒng)硬件平臺(tái)。在此基礎(chǔ)上,通過(guò)Visual C#.NET 和PComm32 動(dòng)態(tài)鏈接庫(kù),采用分層次的軟件結(jié)構(gòu)研制了六自由度噴涂機(jī)器人控制器調(diào)試系統(tǒng)。通過(guò)該調(diào)試系統(tǒng),可以對(duì)六自由度噴涂機(jī)器人控制器工作的實(shí)時(shí)性,可靠性和安全性等性能有一個(gè)總體的*估,及時(shí)發(fā)現(xiàn)存在的故障并加以排除,為噴涂機(jī)器人最終研制成功提供了重要的保證。
-
控制器
+關(guān)注
關(guān)注
114文章
17029瀏覽量
183379 -
機(jī)器人
+關(guān)注
關(guān)注
213文章
29573瀏覽量
212017 -
智能控制
+關(guān)注
關(guān)注
4文章
624瀏覽量
42810
發(fā)布評(píng)論請(qǐng)先 登錄
吐血推薦:詳解噴涂機(jī)器人的術(shù)語(yǔ)及關(guān)鍵參數(shù)
【機(jī)器人在線】工業(yè)噴涂機(jī)器人誤差修正方法發(fā)展趨勢(shì)
噴涂機(jī)器人噴涂核心參數(shù)揭秘【轉(zhuǎn)】
基于PC-Based PLC的控制系統(tǒng)該怎么應(yīng)用?
噴涂機(jī)器人的發(fā)展趨勢(shì)
工業(yè)噴涂機(jī)器人實(shí)訓(xùn)系統(tǒng)相關(guān)資料分享
工業(yè)噴涂機(jī)器人實(shí)訓(xùn)系統(tǒng)設(shè)計(jì)
如何去實(shí)現(xiàn)一種基于OMAPL138 + FPGA嵌入式噴涂機(jī)器人控制器的設(shè)計(jì)
基于PMAC的開(kāi)放式機(jī)器人控制系統(tǒng)
六自由度噴涂機(jī)器人插補(bǔ)算法的研究
基于PMAC的機(jī)器人控制器調(diào)試系統(tǒng)的研制
開(kāi)放式機(jī)器人控制結(jié)構(gòu)及其控制器綜述

評(píng)論