數(shù)控技術(shù)無(wú)疑是現(xiàn)代先進(jìn)制造技術(shù)中最重要的技術(shù)基礎(chǔ),從某種意義上說(shuō),數(shù)控技術(shù)的水平已成為衡量一個(gè)國(guó)家制造業(yè)水平的重要標(biāo)志之一。出于技術(shù)壟斷及獨(dú)占市場(chǎng)等原因,各個(gè)廠(chǎng)家生產(chǎn)的數(shù)控系統(tǒng)在體系結(jié)構(gòu)上大多是封閉的,不能進(jìn)行高可*性的軟件擴(kuò)展。近年來(lái),國(guó)內(nèi)外眾多的數(shù)控軟件開(kāi)發(fā)者都在重復(fù)研究、開(kāi)發(fā)相同或相似的數(shù)控系統(tǒng),反復(fù)設(shè)計(jì)若干基本模塊,造成了人力、物力和財(cái)力的巨大浪費(fèi),而且由于缺乏統(tǒng)一的標(biāo)準(zhǔn),不同的數(shù)控軟件開(kāi)發(fā)者開(kāi)發(fā)的軟件不能互相替換,缺乏兼容性,阻礙了數(shù)控軟件的升級(jí)換代,同時(shí)也阻礙了數(shù)控機(jī)床生產(chǎn)者對(duì)市場(chǎng)和用戶(hù)的快速響應(yīng)能力。 通過(guò)對(duì)數(shù)控系統(tǒng)軟件體系結(jié)構(gòu)的分析,我們?cè)O(shè)想如果把數(shù)控系統(tǒng)軟件中相同或類(lèi)似的部分做成類(lèi)似于硬件電子芯片的軟件芯片(Software IC,SIC)[1,2],每一個(gè)軟件芯片具有高度的功能獨(dú)立性、易移植性、易組裝性及易擴(kuò)充性。這樣,當(dāng)我們建立新的數(shù)控系統(tǒng)時(shí),只需從芯片庫(kù)中取出所需的芯片進(jìn)行組合即可,必要時(shí)加以擴(kuò)充,使數(shù)控系統(tǒng)能夠重用,而不必從頭開(kāi)發(fā)整個(gè)軟件系統(tǒng)。這樣就能改變目前數(shù)控系統(tǒng)的封閉型設(shè)計(jì),為適應(yīng)未來(lái)車(chē)間面向任務(wù)和訂單的生產(chǎn)組織模式奠定良好的基礎(chǔ),使底層生產(chǎn)控制系統(tǒng)的集成更為簡(jiǎn)便和有效,從而大大提高數(shù)控軟件的生產(chǎn)力和可*性,減少生產(chǎn)成本及開(kāi)發(fā)周期。這是增強(qiáng)數(shù)控系統(tǒng)對(duì)市場(chǎng)的快速響應(yīng)能力,促進(jìn)數(shù)控產(chǎn)業(yè)快速、高效發(fā)展的必然之路。
1 數(shù)控系統(tǒng)軟件芯片的劃分
合理的芯片劃分,是開(kāi)發(fā)軟件芯片的首要步驟。數(shù)控系統(tǒng)軟件芯片庫(kù)中的各芯片以界面的方式開(kāi)放,通過(guò)接口參數(shù)和界面信息的提示,用戶(hù)可掌握芯片的啟動(dòng)、結(jié)束和運(yùn)作。不同芯片的內(nèi)部為黑箱封裝,外部接口開(kāi)放,并在此基礎(chǔ)上實(shí)現(xiàn)新系統(tǒng)的構(gòu)建。因此,如何定義出合理的數(shù)控系統(tǒng)軟件芯片,使芯片的外部接口易于標(biāo)準(zhǔn)化、規(guī)范化,內(nèi)部易于進(jìn)行黑箱封裝,是我們開(kāi)發(fā)數(shù)控系統(tǒng)軟件芯片庫(kù)的關(guān)鍵步驟。
目前,盡管數(shù)控系統(tǒng)從系統(tǒng)的設(shè)計(jì)方法到系統(tǒng)的實(shí)現(xiàn)方式千差萬(wàn)別,但是其基本原理和軟件的組成都是類(lèi)似的。在對(duì)現(xiàn)有的數(shù)控系統(tǒng)[3]和用戶(hù)需求進(jìn)行仔細(xì)而全面分析的基礎(chǔ)上,同時(shí),在總結(jié)現(xiàn)有系統(tǒng)控制結(jié)構(gòu)的共有特征,并對(duì)其進(jìn)行適當(dāng)?shù)臍w類(lèi)和抽象的基礎(chǔ)上,將數(shù)控系統(tǒng)劃分為以下幾個(gè)基本的功能模塊。
(1)人機(jī)交互界面模塊 此模塊主要完成在系統(tǒng)運(yùn)行前和運(yùn)行中系統(tǒng)參數(shù)的修改和設(shè)定,如設(shè)定系統(tǒng)工作模式(自動(dòng)、手動(dòng)、點(diǎn)動(dòng)等),圖形顯示模式,系統(tǒng)初始化設(shè)定,坐標(biāo)偏置設(shè)定,G代碼程序的編輯等。 (2)零件代碼解釋模塊 負(fù)責(zé)根據(jù)用戶(hù)的系統(tǒng)配置,以及零件程序的語(yǔ)法規(guī)則對(duì)用戶(hù)編寫(xiě)的零件程序進(jìn)行語(yǔ)法檢查,并進(jìn)行解釋譯碼,將源代碼指令中給出的各種信息進(jìn)行分離提取,變成各種狀態(tài)和數(shù)據(jù),為預(yù)處理芯片提供語(yǔ)法上正確的零件程序的中間代碼。 (3)刀補(bǔ)預(yù)處理模塊 負(fù)責(zé)對(duì)解釋后的數(shù)據(jù)進(jìn)行預(yù)處理及插補(bǔ)前的準(zhǔn)備工作。 (4)軌跡插補(bǔ)模塊 負(fù)責(zé)加減速的控制、插補(bǔ)、終點(diǎn)判別等工作,向位置控制器輸出通過(guò)軌跡運(yùn)算后的進(jìn)給量。 (5)軸伺服控制模塊 在從I/O及插補(bǔ)運(yùn)算得到的信息的幫助下,通過(guò)精插補(bǔ)控制機(jī)床執(zhí)行機(jī)構(gòu)按NC指令指定的路徑和速度運(yùn)動(dòng)。 (6)I/O模塊 負(fù)責(zé)控制器的輸入和輸出(包括機(jī)床檢測(cè)信號(hào)及位置和相關(guān)反饋信息的輸入、控制指令的輸出等)。 以上這幾個(gè)模塊間具有互操作性、可移植性和可擴(kuò)展性,因而可作為數(shù)控軟件芯片庫(kù)的基本芯片的劃分。
2 數(shù)控系統(tǒng)軟件芯片的構(gòu)建及工作原理 軟件芯片概念的提出是軟件重用發(fā)展過(guò)程中的里程碑。開(kāi)發(fā)軟件芯片就是采用面向?qū)ο蠹夹g(shù)把特定類(lèi)中的一些通用模塊做成獨(dú)立的可重用的對(duì)象類(lèi)。由于面向?qū)ο缶哂蟹庋b、分類(lèi)、消息響應(yīng)和繼承等很有價(jià)值的特點(diǎn),使得軟件芯片和系統(tǒng)其它部分的耦合度得到盡可能的降低,這為軟件芯片的開(kāi)發(fā)和使用提供了可*保證。同時(shí),由于芯片都是對(duì)較成熟的技術(shù)進(jìn)行封裝而實(shí)現(xiàn)的,在實(shí)踐上是經(jīng)過(guò)了驗(yàn)證的,也就是說(shuō)一個(gè)成熟的芯片已經(jīng)將錯(cuò)誤率降到了最低點(diǎn),所以可以利用數(shù)控軟件芯片來(lái)構(gòu)造新的數(shù)控系統(tǒng)能最大程度地保證系統(tǒng)的可*性。 軟件芯片的構(gòu)建就是將功能模塊的本體部分進(jìn)行黑箱封裝,使之輸入接口和輸出接口盡量簡(jiǎn)單、規(guī)范。由于C++語(yǔ)言的面向?qū)ο筇匦院头庋b性較好[4],所以在本系統(tǒng)中將VC作為編程環(huán)境來(lái) |