1 引言
DNC(Distributed Numerical Control)稱為分布式數控,是實現CAD/CAM和計算機輔助生產管理系統集成的紐帶,是機械加工自動化的又壹種形式。
目前,DNC系統的研究尚存在以下有待解決的技術問題:①DNC系統體系結構的開放性不強。國內大部分DNC系統局限於單壹供應商的制造設備,平臺之間可移植性差,不同應用程序互操作能力有待提高,不利於系統集成;②DNC系統通信結構多為點對點式,或采用局域網加點對點式,不能很好地解決通信競爭問題;③DND系統與NCP和CAD的接口功能還很弱;④DNC系統控制軟件可重用性不強,需要進行面向對象設計和實現。本文提出了基於CORBA(通用對象請求代理結構)的車間層控制系統中DNC系統,給上述問題以很好的解答,並實現了軟件的編制及聯機調式。
2 控制系統體系的結構
DNC系統是基於CORBA車間層控制系統的壹個功能單元,現在的企業面對的是壹個多變的需求環境,因而車間層控制系統面對的加工任務也是多變的。這種變化包括生產零件的品種、類型、規格、產量和交貨期等多個因素的變化以及加工工藝路線隨生產任務的不同而變化等。這就需要壹個在時間和空間上都開放的車間層控制系統體系結構,以運行於不同硬件環境的異構計算機系統中,同時又能適應新技術的發展,容納新設備的增加。
在基於CORBA的車間層控制系統中,構造車間信息集成和***享的公***平臺是核心問題之壹,我們采用基於客戶/服務器結構的分布式控制平臺(如Orbix),既可以將傳統的遞階控制結構變換成更適合信息集成的分布或控制結構,又可適應不同產品制造過程(離散制造或連續制造)中統壹的生產管理和組織要求。
車間層控制系統總體結構分為三層:底層為系統支持層,由分布式計算環境和異構網絡集成系統兩個子層構成,提供底層的計算機系統、網絡系統和數據系統等系統級功能;中間層為開放式分布處理層,提供統壹的集成通信服務,由開放式分布處理平臺和應用程序接口組成,最上層為信息集成層,支持多客戶/服務器的分布式多數據庫集成系統,將現有的應用和數據信息集成到系統中。為實現控制結構的分布、數據庫的分布以及系統功能的分布,提出的車間層控制系統軟件采用基於CORBA規範的分布式對象體系結構。
CORBA規範主要特點是實現軟件總線結構。所謂軟件總線的功能,就是起到類似於計算機系統硬件總線的作用,只要將應用模塊按總線規範作成軟插件,插入總線即可實現集成運行。實現軟件總線的核心系統稱為ORB(對象請求代理器),它不僅支持標準的OMG對象模型,還具有分布進程管理和通信管理功能。此外,CORBA定義了IDL(Interface Definition Language)語言,以描述軟件總線上的插銷。IDL提供了對成員系統的封裝和成員系統之間隔離,任何成員系統作為壹個對象,通過IDL對其接口參數進行定義和說明,就可接到ORB上,為其它系統提供服務或向其它系統提出請求,達到即插即用效果。
車間層控制系統劃分為許多獨立的功能單元,每個功能單元對應於壹個包含功能接口定義和實體的抽象對象,每類對象的接口由屬性和操作組成,由IDL定義的其它功能單元可以透明訪問的服務以調用該對象的私有數據,具體功能的實現被封裝在實體裏。我們將每類對象按照功能劃分成若幹個子對象,將其設計成為可以直接插在CORBA軟件總線上的對象插件。這些對象插件按照各層客戶/服務器結構組成整個平臺系統。這種結構可以帶來長遠的利益,既能迅速增加對新的DBMS的應用、增加新的用戶界面,又能升級支持各種新功能。
3 DNC系統的地位及功能
DNC系統作為車間層控制系統的壹個功能單元。
DNC系統功能包括①NC程序及數據的傳遞,以某種通信協議(如Philip532等)實現通信功能;②機床狀態采集和上報;③根據工序計劃,自動分配NC程序及數據到相應機床;④刀具數據的分配與傳遞。
DNC系統軟件的功能模型,其中NC數據管理的主要功能是對數控數據進行管理,主要有數控數據的顯示、插入、修改、刪除、更新、鎖定(不允許更改)和打印等操作;NC數據執行的主要功能有:數控數據在計算機和機床之間的傳送、刪除機床上的數控數據、啟動機床上的數控程序、隨時從機床設備獲得工作狀態信息並存入數據庫,作為運行數據采集模塊評價加工過程的根據;DNC通訊接口通過DNC協議和數據鏈路協議建立單元控制系統和CNC的連接。
4 DNC系統軟件體系結構
基於CORBA的DNC系統軟件的實現平臺建立在車間層控制系統平臺的基礎上。我們將DNC系統體系結構劃分為三層的客戶/服務器結構,以將表示邏輯、業務邏輯和數據處理邏輯明確劃分開來。為此,表示層用來表示信息和收集數據,此處為由VB實現的可移植的DNC人機接口;業務層響應用戶(或其它的業務服務)發來的請求,執行某種業務任務,此處為由VC++來實現DNC應有程序及NC數據管理應用程序;數據層包括數據的定義、維修、訪問和更新以及管理,並響應業務服務的數據請求,此處為經IDL功能接口定義封裝的NC局部數據庫(Access)服務器。這些層並不壹定與網絡上的具體物理位置相對應,它們只是概念上的層,借助這些概念可以開發出健壯的、基於組件的應用程序。
使用圖3所示模型,可以把應用程序的需求分解成明確定義的服務。在定義了服務之後,需要進壹步創建具體的物理組件來實現它們。根據性能和維護的需求、工作量、網絡帶寬以及其它因素,可以在網絡上靈活地部署這些組件。
5 DNC系統軟件的數據模型
DNC系統軟件中涉及到數據實體包含四類:①與制造設備硬件相關的數據實體(如機床等);②與人機通訊相關的數據實體(如通訊協議實體和串口通訊實體);③數控數據實體(如NC程序號、刀具號、工序號);④輸入操作指令或派工單實體。采用面向對象方法將上述實體抽象成為類,可分為能力單元類、NC機床類、NC控制器類、通訊協議類、終端服務器類、串口通訊類、NC程序類等。
DNC應用程序中的對象從這些類中繼承下來,每個對象的方法即該對象的成員函數根據相應的功能需求來定義。下面以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();
};
6 DNC系統的物理配置基本結構
基於CORBA的車間層控制系統需要兩種層次的互連。第壹層是利用計算機局域網技術和協議軟件把由異構計算機組成的車間層控制器、設備控制器等互連起來,第二層是在這壹互連的基礎上,實現各節點、各被控的異構制造設備(如加工中心、機器人、PLC等)之間的信息交互,這種交互通過制造信息規範(MMS)實現。作為車間層控制系統的壹個重要組成部分,本文DNC系統的物理配置基本結構如下圖所示,主計算機通過網絡介質(具有獨立IP地址的終端服務器)分別連接多臺CNC系統實現NC程序的裝卸、刀具數據的傳遞、操作命令的下達和狀態信息的反饋。這是壹種通過局域網連接起來的通信結構,它具有包括物理層、數據鏈路層、傳輸層及應用層等的四層結構,其中數據鏈路層采用LSV2通訊協議,傳輸層采用DNC協議(如SINUMERIK或PHILIPS協議)。