- 運動控制系統
- 班華 李長友主編
- 3272字
- 2018-12-28 21:58:29
2.4 運動控制器的軟件
2.4.1 運動控制器軟件體系
運動控制系統總體來說是一個復雜的控制系統,兼有控制實時性、功能多樣性、性能層次性和界面個性的要求。如何構建功能模塊,實現功能模塊的有機組合,達到實時性和非實時性的有機統一,是采用所謂引擎機制實現具體運動控制器產品的決定性技術。其實質是采用特定的方法完成軟件的二次組裝并實現可靠高效的信息交互。軟件可以采用的支撐技術有參數定制技術、軟件組裝技術、進程通信技術和腳本技術等。運動控制器軟件系統可以簡單地劃分為界面、運動控制和伺服驅動三大部分。無論現代運動控制系統屬于哪種結構類型,其特征無非是PC、NC、智能伺服驅動三者之間任務的分配關系與表現形式不同。界面部分的用戶差異體現最明顯,要求界面美觀,個性突出,可任意定制,對實時性的要求并不迫切。運動控制子系統是實現高性能運動控制功能的主要模塊,是系統中最核心、最復雜和最難實現的部分,對系統的運算量要求較大,實時性要求較高。伺服驅動部分通常由硬件完成,但其軟件接口需要有相關的驅動程序支持。從前面的軟件支撐技術可以看出,單一的技術手段并不足以滿足運動控制系統的需要,應當綜合不同的需求,兼顧系統的穩定性、實時性,分層次地采用不同的技術來實現。
由圖2-56可以看出,整個機床控制軟件系統由三大部分構成。第一部分是人機交互界面,涵蓋有系統管理、程序交互、手控交互、遠程交互和加工仿真;第二部分是運動控制,運動控制子系統通常包括兩個通道:主通道和輔助通道。主通道主要應用于自動加工狀態下的運動指令;輔助通道主要起到配合人機接口子系統,響應用戶手動操作的作用。顯然,主通道的性能從本質上反映了一個數控系統的技術水平,是系統的重點與核心,所有的運動控制系統在這一層次上得到基本統一。主通道一般由指令解釋、刀具補償、加減速規律、前瞻處理、位置控制、SMT處理等構成。第三部分是驅動接口通常指數控系統中與數控設備直接關聯的硬件部分及與之配合的驅動程序和數據交互接口軟件,用于將運動控制所產生的運動指令以合適的電參數具體地傳遞給機床執行元件,驅動其完成運動目的。

圖2-56 數控機床的軟件模塊框圖
1.開放性需求分析
開放層次是開放式數控系統需要考慮的基本問題。面向不同層次的用戶對象進行分級開放的觀點已達成共識,但分級的具體層次尚沒有明確的界定標準。主流的觀點認為,可分為下列三個由淺入深的級別。
1)一級開放
所謂一級開放是指參數與人機界面的簡易定制。這個級別面向終端用戶開放,用戶無須關心系統內部的具體實現方法,主要依據修改各種配置參數得以實現。根據現場的實際應用環境和人機接口風格的喜好,在基礎系統上通過參數設置來實現系統與執行機構的集成。這一層次上的用戶僅需要閱讀操作手冊即可完成集成。
2)二級開放
所謂二級開放是指人機界面的用戶化定制這個級別主要面向銷售商開放。在產品銷售的過程中,客戶可能會對產品提出具體的界面要求,如修改界面風格以適應操作工的知識背景、特殊顯示某些系統變量、增加對刀指引等,此時需要徹底地改變原系統的界面風格,可能牽涉到與系統內核的交互。這一層次的開放需要按照開放規則編輯少量的代碼,并與系統完成基礎通信,不會直接影響系統的運行效果。可通過這種開放實現比專有系統更好的人機交互能力,并且具有更好的上層應用系統集成能力。
3)三級開放
所謂三級開放是指功能定制。這個級別主要面向具有運動控制理論基礎的用戶開放,他們可能需要實現原系統中所沒有的指令功能,如增加特殊曲線插補功能、實現特殊的加減速等。這個層次的開放需要與系統內核進行深層次的交互(通信交互、事件交互、實時響應等),甚至影響到系統的運動效果。通過這個層次的開放,可以將用戶的使用經驗與研究成果很好地集成到系統中,實現在特殊場合的應用。
事實上,還需要有四級的開放。四級開放是面向具體的產品編程人員,實現源代碼級的開放。隨著系統功能的不斷增強,不斷完善,系統代碼量越來越大,不可能在人人都掌握源代碼的各個具體細節的基礎上進行再開發,這樣也會形成千奇百怪的系統,帶來新的小錯誤而影響系統的穩定性。采用軟件工程的管理模式,實現面向對象設計和面向方面設計等新設計思想,界定必要的數據接口和數據結構是實現這個層次開放的必由之路。
2.軟件功能模塊
圖2-57所示的是運動控制系統的軟件結構圖。

圖2-57 軟件結構圖
由圖2-57可以清楚地看出運動控制系統軟件架構體系,其四大部分為主監視進程、人機交互進程、運動控制進程和運動驅動進程。
2.4.2 運動控制器的開發應用軟件簡介
基本硬件平臺不同,所使用的開發工具會有很大差異。總體來看,控制器核心芯片技術都需要相應的開發平臺。對于利用MCU這類芯片的運動控制單元,通常借助C語言作為基本開發語言。很多有實力的制造商也會提供各自的應用開發工具。利用MCU也能開發出與各種數據總線配合使用的實際板卡,然后由開發商提供相應的開發工具。本節主要介紹一下μC/OS-II和LabVIEW。
1.μC/OS-II
1)μC/OS-II簡介
μC/OS-II是一個完整的、可移植、可固化、可裁剪的占先式實時多任務內核。μC/OS-II絕大部分的代碼是用ANSI的C語言編寫的,包含一小部分匯編代碼,使之可供不同架構的微處理器使用。至今,從8位到64位,μC/OS-II已在超過40種不同架構的微處理器上運行。μC/OS-II已經在世界范圍內得到廣泛應用,包括很多領域,如手機、路由器、集線器、不間斷電源、飛行器、醫療設備及工業控制上。實際上,μC/OS-II已經通過了非常嚴格的測試,并且得到了美國航空管理局的認證,可以用在飛行器上。除此以外,μC/OS-II另一個鮮明的特點就是源碼公開,便于移植和維護。
2)μC/OS-II內核結構
多任務系統中,內核負責管理各個任務,或者說為每個任務分配CPU時間,并且負責任務之間的通信。內核提供的基本服務是任務切換。μC/OS-II可以管理多達64個任務。由于其開發者占用和保留了8個任務,所以留給用戶應用程序的最多可有56個任務。賦予各個任務的優先級必須是不相同的。這意味著μC/OS-II不支持時間片輪轉調度法。μC/OS-II為每個任務設置獨立的堆棧空間,可以快速實現任務切換。μC/OS-II近似地每時每刻讓優先級最高的就緒任務處于運行狀態,為了保證這一點,它在調用系統API函數、中斷結束、定時中斷結束時總是執行調度算法。μC/OS-II通過事先計算好數據簡化了運算量,通過精心設計就緒表結構使延時可以預知。
如果需要利用MCU開發,可提前參閱相關書籍,全面了解μC/OS-II。
3)軟件系統開發流程
軟件系統開發的流程主要包含以下五個主要步驟,如圖2-58所示。

圖2-58 軟件開發主要流程圖
2.NI-Motion v7.0
1)NI-Motion v7.0運動控制模塊介紹
該軟件模塊是用于與NI運動控制器通信的高級軟件命令集。本軟件包括各種LabVIEW VI和實例,可以快速創建運動控制應用程序。NI Motion Assistant可生成NI-Motion驅動程序代碼,作為應用開發的基礎。NI-Motion與LabVIEW實時兼容,其NI Measurement & Automation Explorer用于運動系統的配置和調試。圖2-59所示就是LabVIEW VI運動模塊。

圖2-59 LabVIEW VI運動模塊
功能強大的LabVIEW VI具有:
(1)可控制每個National Instruments運動控制器;
(2)實例程序涵蓋了簡單和復雜的運動;
(3)用于LabWindows/CVI、Visual Basic和C/C++的編程實例。
2)Motion Assistant NI運動助手
圖2-60所示的是NI-Motion Assistant軟件界面。這個軟件的主要目的是提供一種易于使用的交互式環境。使用NI-Motion Assistant可加速運動應用的開發和測試。任何通過NI-Motion Assistant編程的應用程序都可轉換為適于最終機器部署的C代碼或NI LabVIEW VI,無須另外編程。新發布的NI-Motion Assistant 2.0版添加了導入在CAD創建的運動文檔或廣泛接受的DXF文件格式的打包草稿功能。該新特性加上NI公司正在申請專利的智能造型算法,可以讓用戶輕松完成精確的切割或劃線運動。

圖2-60 NI-Motion Assistant軟件界面
3)NI-SoftMotion開發模塊
通過用于LabVIEW的NI-SoftMotion開發模塊,機器生產商和OEM生產商可創建具有更出色機器性能的自定義運動控制器,而研究人員可實現用于運動控制的高級控制設計算法。本模塊的功能包括在LabVIEW實時和/或LabVIEW FPGA中實現軌道生成、樣條插值、位置/速度PID控制和編碼器實施等。用戶可根據其性價比,利用NI-SoftMotion,通過插入式數據采集模塊等來創建自定義的運動控制器。圖2-61就是NI-SoftMotion模塊的一個開發界面圖,具有如下基本功能:
(1)通過軟件,開發步進或伺服的自定義運動控制器;
(2)包括軌跡發生器、樣條插值和位置與速度控制方法;
(3)用于CompactRIO,M和R系列數據采集模塊;
● 與LabVIEW 8.0、LabVIEW 8.2和更新的版本配合使用。

圖2-61 NI-SoftMotion開發工具