李志丞
摘 要:PMAC運(yùn)動(dòng)控制卡是一款開放式可編程多軸運(yùn)動(dòng)控制器,利用PMAC運(yùn)動(dòng)控制卡的可編程多軸控制及開放的特性,對(duì)機(jī)器人實(shí)現(xiàn)控制系統(tǒng)軟件的開發(fā),可以在機(jī)器人的操作和控制上更為簡(jiǎn)便,功能模塊化的設(shè)計(jì)方便用戶對(duì)系統(tǒng)進(jìn)一步開發(fā)和維護(hù)。
關(guān)鍵詞:機(jī)器人;PMAC;軟件開發(fā)
隨著社會(huì)的發(fā)展,機(jī)器人的在各方面的運(yùn)用更為普遍[1],機(jī)器人的控制功能更多,操作起來(lái)更容易。在控制方面,如何更高準(zhǔn)確完成對(duì)機(jī)器人的控制,更簡(jiǎn)單易懂的人機(jī)操作界面[2],達(dá)成更高效的機(jī)器人控制要求,這是在機(jī)器人開發(fā)的過(guò)程中急需解決的問(wèn)題。
1.PMAC簡(jiǎn)介
PMAC是由美國(guó)生產(chǎn)的一種開放式多軸運(yùn)動(dòng)控制器,其包含了運(yùn)動(dòng)控制、內(nèi)部運(yùn)算以及離散控制等基本功能,通過(guò)這些基本功能與上位機(jī)形成信息通訊,實(shí)現(xiàn)PMAC與PC的交互。PMAC控制器的操作系統(tǒng)具有完全的開放性,內(nèi)置了由Motorola公司提供的數(shù)字處理器DSP 56003。它在處理信息方面的伺服更新率能達(dá)到普通控制器的5倍以上。PMAC內(nèi)部自帶程序緩沖區(qū)和旋轉(zhuǎn)緩沖區(qū),適用于大程序的加工,并具有電子齒輪,隨動(dòng)功能及位置捕捉等功能。
2.運(yùn)動(dòng)控制系統(tǒng)研究的意義
基于Windows平臺(tái)開發(fā)控制軟件可使用VC++作為開發(fā)工具。VC++編程軟件擁有強(qiáng)大的功能,在使用時(shí)靈活性強(qiáng),具有很高的開發(fā)效率。利用Visual C++6.0軟件來(lái)進(jìn)行控制軟件的開發(fā),在開發(fā)時(shí)可以靈活定制,不受硬件的干擾,不需要對(duì)硬件進(jìn)行更改,只需改變軟件的模塊,從新定義它們的映射關(guān)系就可以軟件功能實(shí)現(xiàn)更新替換。采取這樣的開發(fā)模式,不僅可以更高效快捷的完成功能的擴(kuò)展,還可以利用到上位機(jī)更廣泛的資源,循環(huán)利用,節(jié)省人力資源。使用戶開發(fā)出的產(chǎn)品擁有獨(dú)特的功能特點(diǎn),增加了自身的競(jìng)爭(zhēng)力,從而達(dá)到控制器的潛力發(fā)揮最大化[3]。
3.運(yùn)動(dòng)控制系統(tǒng)的硬件結(jié)構(gòu)
控制系統(tǒng)的硬件結(jié)構(gòu)由操作模塊、運(yùn)動(dòng)控制模塊以及機(jī)器人本體這三個(gè)部分組成。從系統(tǒng)開發(fā)的時(shí)間周期和成本上考慮,可以采用模塊化控制的方法可以每一個(gè)控制模塊都能獨(dú)立出來(lái),而每一模塊都有自己固定的功能,這樣的設(shè)計(jì)方案能得到更好的運(yùn)行效率和可靠性。在操作模塊中的主體是PC機(jī),PC機(jī)裝載著人機(jī)交互界面,從這里可以完成機(jī)器人第一級(jí)命令輸送,比如系統(tǒng)的初始化、設(shè)置變量的輸出、實(shí)時(shí)狀態(tài)位置的反饋信息等[4]。運(yùn)動(dòng)控制模塊是指PMAC運(yùn)動(dòng)控制卡,它主要是對(duì)各軸運(yùn)動(dòng)進(jìn)行實(shí)時(shí)運(yùn)算,并收集動(dòng)態(tài)參數(shù),伺服的驅(qū)動(dòng)、程序的解析和高速數(shù)據(jù)的收集等各軸運(yùn)動(dòng)的實(shí)時(shí)性任務(wù)。模塊化機(jī)器人的本體模塊主要負(fù)責(zé)系統(tǒng)完全和實(shí)現(xiàn)抓舉的的任務(wù),它主要步進(jìn)電機(jī)、驅(qū)動(dòng)器、手爪、行程開關(guān)以及編碼器這五個(gè)部分構(gòu)成。
4.軟件控制系統(tǒng)設(shè)計(jì)
4.1軟件控制系統(tǒng)設(shè)計(jì)基本原則
在軟件的系統(tǒng)結(jié)構(gòu)設(shè)計(jì)原理:根據(jù)整體到部分的原則,對(duì)功能進(jìn)行總體歸類。首先,從它們的屬性動(dòng)作類型和難易程度來(lái)劃分,對(duì)于每一模塊的功能分類好,然后把簡(jiǎn)單的功能塊給添加到大的模塊功能框里。這樣的歸類可以使模塊進(jìn)行簡(jiǎn)單話,而這種層次分明結(jié)構(gòu)緊密聯(lián)系的方式,在需要對(duì)模塊功能需要進(jìn)行添加或修改時(shí)更方便。這樣處理起來(lái)更安全可靠。
4.2系統(tǒng)的軟件平臺(tái)
4.2.1 Microsoft Visual C++ 6.0
Visual C++是上個(gè)世紀(jì)末由美國(guó)微軟開發(fā)出的在基于Windows平臺(tái)下可以編寫應(yīng)用程序的開發(fā)環(huán)境,隨著其版本的不斷更新,開發(fā)功能也更為強(qiáng)大,是程序員首選的應(yīng)用程序軟件開發(fā)的首選工具。VB和VF也可以用來(lái)進(jìn)行應(yīng)用程序的開發(fā),不同之處在于它們使用的開發(fā)語(yǔ)言。Visual Studio使用得最為普遍,Microsoft Visual C++ 6.0版本具有很好的穩(wěn)定性。
Microsoft Visual C++ 6.0包含了MFC、ATL、COM等類庫(kù),其中MFC是該軟件的核心部分。MFC主要是把程序以框架的形式進(jìn)行封裝起來(lái),生成Win32API的應(yīng)用程序。所以使用MFC來(lái)開發(fā)程序比較簡(jiǎn)單,只需了解其的各類結(jié)構(gòu),如文檔視圖類、窗口類的基本原理,以及各消息之間的流向關(guān)系。在編程的時(shí)候,只需要把函數(shù)寫進(jìn)相應(yīng)的程序框架里,然后再對(duì)各程序設(shè)置消息的映射先后順序,使用MFC進(jìn)行應(yīng)用程序開發(fā)可以省去大量寫代碼的時(shí)間,大大提高了程序開發(fā)的工作效率。
4.2.2 PMAC動(dòng)態(tài)鏈接庫(kù)Pcomm32PRO
PMAC運(yùn)動(dòng)控制卡與Windows上層應(yīng)用系統(tǒng)相互間的通訊是由Pcomm32Pro的通訊驅(qū)動(dòng)程序來(lái)進(jìn)行完成的,它由美國(guó)泰道公司所開發(fā)。利用Pcomm32Pro的通訊便捷性,在基于VC++開發(fā)平臺(tái)來(lái)進(jìn)行運(yùn)動(dòng)控制系統(tǒng)的軟件開發(fā),在人機(jī)交互界面的實(shí)用性更強(qiáng),系統(tǒng)控制性能上處理得更好。在進(jìn)行人機(jī)界面開發(fā)的過(guò)程中,主要是通過(guò)人機(jī)界面發(fā)送運(yùn)動(dòng)命令,使得PMAC與上層Windows之間產(chǎn)生通訊,從而調(diào)用動(dòng)態(tài)函數(shù)鏈接庫(kù)中的函數(shù)來(lái)完成電機(jī)的驅(qū)動(dòng)。
5.結(jié)束語(yǔ)
本文詳述了一種機(jī)器人控制系統(tǒng),經(jīng)過(guò)實(shí)驗(yàn)證明這種基于PMAC運(yùn)動(dòng)控制卡的機(jī)器人控制系統(tǒng)可以滿足機(jī)器人運(yùn)行的功能要求,大大提高了系統(tǒng)的工作效率,應(yīng)用模塊化設(shè)計(jì)思想使其軟件系統(tǒng)具有很強(qiáng)的可移植性、拓展性和開放性。
參考文獻(xiàn)
[1]王東浩.機(jī)器人倫理問(wèn)題研究[D].天津:南開大學(xué),2014.
[2]昝杰.多自主移動(dòng)機(jī)器人協(xié)作的關(guān)鍵技術(shù)研究[D].西安:長(zhǎng)安大學(xué),2014.
[3]吳偉.企業(yè)產(chǎn)品開發(fā)過(guò)程中的用戶參與研究[D].遼寧?。簴|北大學(xué),2009.
[4]黃遜彬.開放式微細(xì)切屑數(shù)控系統(tǒng)研究[D].南京:南京航空航天大學(xué),2012.