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