摘 要:軟件復用技術,可以高效、低成本地構筑嵌入式數控系統,滿足當前的制造業需求。通過分析嵌入式數控系統特點,提出了嵌入式數控系統構件模型,并進行了詳細描述。
關鍵字:嵌入式數控系統; 構件; 軟件復用
現代數控系統高速化、智能化、網絡化、集成化、開放化的特征使得基于單片機開發的數控系統已經不適應于現代數控的發展和需求。而基于PC的數控系統,因其在結構和性能上的通用性,其在現代數控系統的應用優越性并不明顯。另一方面,隨著微電子技術的發展,作為嵌入式系統硬件載體的微處理器的可靠性和應用水平越來越高,其所集成的部件越來越多,功能也越來越強大,不僅功耗越來越低而且和模擬電路結合越來越多。嵌入式微處理器與PC系統之間的距離越來越小,在一些場合的應用優勢越來越大。同時,嵌入式微處理器和嵌入式系統所具備的結構緊湊性,功能上的高可靠性、集成性、實時性,對惡劣的工作環境高適應性,以及統一的編程界面,強大的網絡通信能力,這些都很好的滿足了現代數控的需求。
嵌入式軟件是嵌入式系統的靈魂,負責嵌入式系統全部資源的分配、調度和控制。嵌入式系統的發展重在嵌入式軟件的發展。但是長期以來基于生命周期的軟件開發技術本身的缺陷長期困擾著嵌入式軟件開發人員,比如:整體開發周期長,模塊化程度低,可復用性差,可移植性差,維護成本高等。因此,縮短軟件開發周期、降低開發和維護成本、提高軟件質量是嵌入式軟件開發人員的迫切要求,也是嵌入式軟件適應今天嵌入式技術飛速發展、應用領域急速擴大的要求。
軟件復用正是提高軟件質量和開發效率的有效方法,是當前軟件開發研究的熱點之一。軟件復用主要是基于構件的開發(Component-Based Development,簡稱CBD)或基于構件的軟件工程(Component-Based Software Engineering,簡稱CBSE)。它是一種軟件開發新范型,是在一定構件模型的支持下,復用構件庫中的一個或多個軟件構件,通過組合手段高效率、高質量地構造應用軟件系統的過程。本文通過研究嵌入式數控系統的特點,提出了一種適應其特點的構件模型。
1. 構件的基本概念
OO技術是在“數據+算法”的基礎上提升了對事物的認識方法。對象的概念符合人們認識世界的習慣, 而構件的思想則更多地將重點從建模本身發展到對軟件生產的考慮, 即構件可以在應用領域的軟件生產中作為零件納入新的體系中被重用。 因此,構件是OO思想的沿襲和擴展,認識事物的角度從對象個體本身上升到個體在群體中的作用。
構件有如下幾個基本屬性:
1) 構件是可獨立配置的單元,因此構件必須自包容。
2) 構件強調與環境和其他構件的分離,因此構件的實現是嚴格封裝的,外界沒有機會或者沒有必要知道構件內部的實現細節。
3) 構件可以在適當的環境中被復合使用,因此構件需要提供清楚地接口規范,可以與環境交互。
4) 構件不應當是持續的,即構件沒有個體特有的屬性,理解為構件不應當與自身副本區別,在任何環境中,最多僅有特定構件的一份副本。
理論上,一直沒有停止對構件模型的爭論,有代表性的理論模型包括:
(1)3C模型
3C模型是學術界普遍認同的一個具有指導性作用的構件模型。該模型從概念(concept)、內容(content)和語境(context)三個不同方面來描述構件。
u 概念 關于“構件做什么”的抽象描述,可以通過概念去理解構件的功能。概念包括接口規約和語義描述兩個部分;
u 內容 概念的具體實現,描述構件如何完成概念所刻劃的功能;
u 語境 構件和外圍環境在概念級和內容級的關系。語境刻畫構件的應用環境,為構件的選用和適應性修改提供指導。
(2)REBOOT模型(刻面模型)
REBOOT模型是基于已有軟構件的一種刻面分類和檢索模型,從各個角度,即刻面(Facet)刻畫軟構件屬性。
(3)青鳥模型
北京大學青鳥工程以三個視角(形態、層次和表示)和九個方面定義構件模型。
(1) 概念 :對構件功能的抽象描述。
(2) 操作規約:用來指稱構件對外提供的、可被請求的服務。
(3) 接口:給出了構件的對外行為描述。
(4) 類型:用于定義“什么值可用作為操作參數”。
(5) 實現體:這是構件的具體實現部分,是實際完成被請求服務的系統。
(6) 構件復合:構件通過復合組成系統。
(7) 構件性質:指明構件的形態、層次和表示。
(8) 構件注釋:描述和構件庫相關的其他性質。
(9) 構件語景:描述構件的軟、硬件使用環境和實現依賴。
青鳥構件模型更多地關心構件的易理解性、封裝性及間關系,通過給構件提供明確的對外接口實現服務提供者和其服務請求者的分離,更多地關心構件及其使用者間的交互,特別是對構件使用者有意義的部分。
目前比較成熟的應用在通用計算機系統環境中的構件模 型 實 現 技 術 有 Microsoft 公 司 提 出 的 構 件 對 象 模 型COM(Component Object Model)、對象管理組織 OMG 提出的通用對象請求代理體系結構 CORBA(Common Object Request Broker Architecture)以及 SUN 公司提出的 EJB(Enterprise JavaBeans)構件技術。每種技術都具有不同的優勢,分別適用于通用計算機系統環境下不同規模和類型的應用。
2. 嵌入式數控系統分析
數控系統作為一個面向控制應用的有機整體,其控制功能的實現是由眾多的硬件和軟件按照一定的規則,如拓撲關系、同步關系、通訊協議等關系所組成。嵌入式數控系統雖然有著硬件平臺選擇多樣性與操作系統硬實時性的要求,但與傳統數控系統一樣有如下功能:
人機界面輸入:輸入數控系統的加工程序段、刀具偏置、刀具半徑、控制參數、零點坐標、補償數據等。
譯碼:對輸入程序段含有零件的輪廓信息(起點、終點、直線、圓弧或者曲線要求的加工速度),以及M、S、T輔助信息(換刀、換檔、冷卻液開關等),計算機通過譯碼程序來將加工程序翻譯成計算機內部能識別的語言,并對輸入的程序段進行語法檢測,對不符合加工精度范圍的進給坐標進行圓整。
刀補預處理:刀補預處理一般包括刀具半徑補償,刀具偏置的坐標換算,從而得到刀具中心運行軌跡,并對加工速度進行加減速處理。使得機床運行比較平穩,減少運行沖擊。
插補:即根據給定的曲線類型(如直線、圓弧或者高次曲線)起點、終點以及速度,在起點和終點之間進行數據點的密化處理。
運動控制:將計算機送出的位置進給脈沖或者進給速度指令,經變換和放大后轉化為伺服電機的轉動,并根據光電碼盤或光柵等信號進行速度和位置控制。
信息處理:對于數控機床上的如刀具應力、振蕩、測量、油溫等傳感器信號進行采集,并分析機床可能引起的誤差,以及故障等及其相關模式識別。
開關量I/O:負責對于開關量方面的I/O響應。
管理調度:負責對于各功能模塊的協同。
輔助功能:現場總線接口、以太網接口等。如圖1所示。
[align=center]

圖1 嵌入式數控系統結構[/align]
3.嵌入式數控系統構件模型
數控系統構件是可預制和可重用的軟件部件, 是實現領域應用的功能封裝體. 依據對數控領域知識的抽象程度和構造邏輯的劃分需要, 可生成不同粒度級的構件元素。
構件通過接口定義了同外界信息傳遞和承擔的系統功能,是實現構件服務的明確規約。構件接口代表了構件同環境的全部交互內容,也是唯一的交互途徑。除此之外,環境不應對構件做任何其他與接口無關的假設。
數控系統本身是信息加工系統,信息流動的過程也就是數控加工的過程,上個構件產生的信息成為下個構件觸發引擎,通過CAD/CAM自動生成或者手動輸入的加工信息流通過一定的方式發送給數控裝置,數控裝置內部通過對于信息流的解碼、轉換形成各個有機構成部分信息處理內容,在內部進行處理后,輸出相應的位置信號給伺服系統,經過電動機和滾珠絲杠副驅動工作臺或刀具按照設定要求移動,同時結合輔助功能和現場開關量的信息處理,并對數控系統的運行狀況進行監測和保護。數控系統的連續控制一方面包括了構件間的信息流,同時又包含了大量的離散行為,如對手動模式、緊急情況及故障情況的響應,對不同的加工模式如快速移動、粗加工、精加工的處理,不同控制模式如位置控制、速度控制的切換等。因而在數控程序運行的不同時期,它們將會有不同的狀態。因此必須在構件模型中反映出狀態的轉化。
另外考慮到嵌入式數控系統是在實時方式下工作,而且資源受限,這就要求嵌入式構件不僅要提供足夠的功能,還必須滿足系統的時限以及內存限制等要求。同時,和傳統的軟件開發相比,嵌入式系統軟構件和硬件聯系緊密,軟件的失誤可能會導致物理系統的破壞。因此嵌入式構件必須具備高的可靠性——讓用戶做版本測試代價太昂貴。我們把這些體現嵌入式構件性能的指標稱作嵌入式構件的服務質量(QoS)屬性。QoS屬性是用戶選擇合適的嵌入式構件的一個重要依據。這也是嵌入式構件區別通用構件的一個重要特色。
綜上所述,構件模型設計如圖2。
[align=center]

圖2 嵌入式數控系統構件模型[/align]
在圖中,左上方是構件的接口部分,一個構件可以支持多個不同的接口,這些接口刻畫了構件對外提供的服務以及要求的環境服務,體現了該構件同環境的交互。上方中間用帶輸出的有限狀態機刻畫構件的行為,構件接收到外部事件消息后,根據當前所處的具體狀態,在構件內部進行狀態變遷,實現對數控系統事件的實時響應。右上方是構件的屬性部分,包括構件實現的功能屬性以及描述屬性、約束屬性、配置屬性和服務質量(QoS)屬性等非功能屬性。
此模型不僅可以描述一般的原子構件和復合構件,其還可以描述基于活動對象的構件系統,所謂基于活動對象的構件系統就是具有某種功能和任務關聯的構件和子構件系統的集合,從而把密切關聯、經常一同復用以實現某個常用數控功能的構件組織成為一個構件系統,它是可以作為構件庫存儲的又一基本單位。其不同于一般意義上的原子構件和復合構件,基于活動對象的構件系統是一種粗粒度的構件,即每個活動對象構件在物理上不小于數控系統上的調度任務(線程),其將功能相關或者周期相關的構件集成為一個活動對象任務,每個任務完成一定的功能,任務可以嵌套,即可在一個任務中包含一個或幾個下級任務,一系列相關的任務對象構件組成某種類型的數控系統。
基于活動對象構件系統在活動對象構件的構成上可以支持細粒度的構件集成,從而容易實現更高層次的數控開放性和更多的選擇。另一方面基于活動對象的構件系統集成數控系統,有利于提高復用的粒度和相關構件的復用,從而減少系統的復雜性和系統集成的難度。
4. 總結
在嵌入式數控系統軟件開發中利用軟件復用技術,特別是構件復用,既可以滿足嵌入式數控系統模塊化、可擴展、可集成等要求,又縮短了數控系統的開發周期,同時也提高了數控系統的可靠性。
本文通過研究嵌入式數控系統領域下的構件特征,提出了嵌入式數控系統構件模型,已初步建立起嵌入式數控系統的理論構架。但在理論和實踐方面尚有許多工作要做,仍有待于進一步研究。
參考文獻
1. 張明亮 解旭輝 李圣怡, 開放式數控體系結構的初步研究[J], 中國機械工程, 2001,12(11):
2. Shige Wang, Kang G. Shin, Constructing Reconfigurable Software for Machine Control Systems, IEEE Transactions on Robotics and Automation, Vol. 18, No. 4, 2002, pp475-486
3. 李霞 王永章 鄭佳昕 梁宏斌, 開放式軟數控系統的關鍵技術研究及實現[J], 組合機床與自動化加工技術, 2003,10:6-8
4. 萬麟瑞 胡 宏 孫紅星. 面向構件的軟件開發方法學研究[J], 小型微型計算機系統, 2003, 24(3):365-370
5. 董愛民 一種基于CAN總線的嵌入式Linux數控系統[J], 微計算機信息 2007,7-2:26-28