牛序楓 錢永剛
0.引言
DNC(Distributed Numerical Control)稱為分布式數(shù)控,是實現(xiàn)CAD/CAM和計算機輔助生產(chǎn)管理系統(tǒng)集成的紐帶,是機械加工自動化的又一種形式。目前,DNC系統(tǒng)的研究尚存在以下有待解決的技術(shù)問題:①DNC系統(tǒng)體系結(jié)構(gòu)的開放性不強。國內(nèi)大部分DNC系統(tǒng)局限于單一供應(yīng)商的制造設(shè)備,平臺之間可移植性差,不同應(yīng)用程序互操作能力有待提高,不利于系統(tǒng)集成;②DNC系統(tǒng)通信結(jié)構(gòu)多為點對點式,或采用局域網(wǎng)加點對點式,不能很好地解決通信競爭問題;③DND系統(tǒng)與NCP和CAD的接口功能還很弱;④DNC系統(tǒng)控制軟件可重用性不強,需要進行面向?qū)ο笤O(shè)計和實現(xiàn)。本文提出了基于CORBA(通用對象請求代理結(jié)構(gòu))的車間層控制系統(tǒng)中DNC系統(tǒng),給上述問題以很好的解答,并實現(xiàn)了軟件的編制及聯(lián)機調(diào)式。
1.控制系統(tǒng)體系的結(jié)構(gòu)
DNC系統(tǒng)是基于CORBA車間層控制系統(tǒng)的一個功能單元,現(xiàn)在的企業(yè)面對的是一個多變的需求環(huán)境,因而車間層控制系統(tǒng)面對的加工任務(wù)也是多變的。在基于CORBA的車間層控制系統(tǒng)中,構(gòu)造車間信息集成和共享的公共平臺是核心問題之一,采用基于客戶/服務(wù)器結(jié)構(gòu)的分布式控制平臺(如Orbix),既可以將傳統(tǒng)的遞階控制結(jié)構(gòu)變換成更適合信息集成的分布或控制結(jié)構(gòu),又可適應(yīng)不同產(chǎn)品制造過程(離散制造或連續(xù)制造)中統(tǒng)一的生產(chǎn)管理和組織要求。
車間層控制系統(tǒng)總體結(jié)構(gòu)分為三層:底層為系統(tǒng)支持層,由分布式計算環(huán)境和異構(gòu)網(wǎng)絡(luò)集成系統(tǒng)兩個子層構(gòu)成,提供底層的計算機系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)和數(shù)據(jù)系統(tǒng)等系統(tǒng)級功能;中間層為開放式分布處理層,提供統(tǒng)一的集成通信服務(wù),由開放式分布處理平臺和應(yīng)用程序接口組成,最上層為信息集成層,支持多客戶/服務(wù)器的分布式多數(shù)據(jù)庫集成系統(tǒng),將現(xiàn)有的應(yīng)用和數(shù)據(jù)信息集成到系統(tǒng)中。為實現(xiàn)控制結(jié)構(gòu)的分布、數(shù)據(jù)庫的分布以及系統(tǒng)功能的分布,提出的車間層控制系統(tǒng)軟件采用基于CORBA規(guī)范的分布式對象體系結(jié)構(gòu)。
CORBA規(guī)范主要特點是實現(xiàn)軟件總線結(jié)構(gòu)。所謂軟件總線的功能,就是起到類似于計算機系統(tǒng)硬件總線的作用,只要將應(yīng)用模塊按總線規(guī)范作成軟插件,插入總線即可實現(xiàn)集成運行。實現(xiàn)軟件總線的核心系統(tǒng)稱為ORB(對象請求代理器),它不僅支持標(biāo)準(zhǔn)的OMG對象模型,還具有分布進程管理和通信管理功能。此外,CORBA定義了IDL(Interface Definition Language)語言,以描述軟件總線上的插銷。IDL提供了對成員系統(tǒng)的封裝和成員系統(tǒng)之間隔離,任何成員系統(tǒng)作為一個對象,通過IDL對其接口參數(shù)進行定義和說明,就可接到ORB上,為其它系統(tǒng)提供服務(wù)或向其它系統(tǒng)提出請求,達到即插即用效果。
車間層控制系統(tǒng)劃分為許多獨立的功能單元,每個功能單元對應(yīng)于一個包含功能接口定義和實體的抽象對象,每類對象的接口由屬性和操作組成,由IDL定義的其它功能單元可以透明訪問的服務(wù)以調(diào)用該對象的私有數(shù)據(jù),具體功能的實現(xiàn)被封裝在實體里。我們將每類對象按照功能劃分成若干個子對象,將其設(shè)計成為可以直接插在CORBA軟件總線上的對象插件。
2.DNC系統(tǒng)的地位及功能
DNC系統(tǒng)作為車間層控制系統(tǒng)的一個功能單元。
DNC系統(tǒng)功能包括①NC程序及數(shù)據(jù)的傳遞,以某種通信協(xié)議(如RS232C等)實現(xiàn)通信功能;②機床狀態(tài)采集和上報;③根據(jù)工序計劃,自動分配NC程序及數(shù)據(jù)到相應(yīng)機床;④刀具數(shù)據(jù)的分配與傳遞。
3.DNC系統(tǒng)軟件體系結(jié)構(gòu)
基于CORBA的DNC系統(tǒng)軟件的實現(xiàn)平臺建立在車間層控制系統(tǒng)平臺的基礎(chǔ)上。我們將DNC系統(tǒng)體系結(jié)構(gòu)劃分為三層的客戶/服務(wù)器結(jié)構(gòu),以將表示邏輯、業(yè)務(wù)邏輯和數(shù)據(jù)處理邏輯明確劃分開來。為此,表示層用來表示信息和收集數(shù)據(jù),此處為由VB實現(xiàn)的可移植的DNC人機接口;業(yè)務(wù)層響應(yīng)用戶(或其它的業(yè)務(wù)服務(wù))發(fā)來的請求,執(zhí)行某種業(yè)務(wù)任務(wù),此處為由VC++來實現(xiàn)DNC應(yīng)有程序及NC數(shù)據(jù)管理應(yīng)用程序;數(shù)據(jù)層包括數(shù)據(jù)的定義、維修、訪問和更新以及管理,并響應(yīng)業(yè)務(wù)服務(wù)的數(shù)據(jù)請求,此處為經(jīng)IDL功能接口定義封裝的NC局部數(shù)據(jù)庫(Access)服務(wù)器。這些層并不一定與網(wǎng)絡(luò)上的具體物理位置相對應(yīng),它們只是概念上的層,借助這些概念可以開發(fā)出健壯的、基于組件的應(yīng)用程序。
4.DNC系統(tǒng)軟件的數(shù)據(jù)模型
DNC系統(tǒng)軟件中涉及到數(shù)據(jù)實體包含四類:①與制造設(shè)備硬件相關(guān)的數(shù)據(jù)實體(如機床等);②與人機通訊相關(guān)的數(shù)據(jù)實體(如通訊協(xié)議實體和串口通訊實體);③數(shù)控數(shù)據(jù)實體(如NC程序號、刀具號、工序號);④輸入操作指令或派工單實體。采用面向?qū)ο蠓椒▽⑸鲜鰧嶓w抽象成為類,可分為能力單元類、NC機床類、NC控制器類、通訊協(xié)議類、終端服務(wù)器類、串口通訊類、NC程序類等。
DNC應(yīng)用程序中的對象從這些類中繼承下來,每個對象的方法即該對象的成員函數(shù)根據(jù)相應(yīng)的功能需求來定義。下面以NC機床類的定義為例:
∥ncmach.h -NC Machine Class definations
∥NC Machines are part processors.For this class,a part is loaded,
∥a NC file is downloaded to the device,and the machine is started.
class MACHINE-TOOL{
char* CurrentNCFile; ∥currently loaded NC file
int FixtureStatus; ∥fixture status
public:
MACHINE-TOOL();
char* getCurrentNCFile();
void setCurrentNCFile(char F);
Int getFixtureStatus();
void setFixtureStatus(int S);
virtual int processPart(char PartName);
virtual int downloadNCFile(char File);
virtual int stopMachine();
virtual in graspPart();
virtual int releasePart();
}。
【參考文獻】
[1]Alfred Storr und Joachim Uhl.Objektorientierte Leittechnik.CIM Management,1995,11(1).
[2]張旭梅.集成DNC系統(tǒng)及其運行模式探討.計算機集成制造系統(tǒng),1998(2).
[3]Firm DL.Broad scope DNC.Manufacturing Engineering,1987,99(2):49~51.