基于CORBA的軟件化開放式數(shù)控系統(tǒng)體系結(jié)構(gòu)
點擊:1240
A+ A-
所屬頻道:新聞中心
0 前言
由于信息技術(shù)領(lǐng)域的迅速發(fā)展,制造技術(shù)正在經(jīng)歷第三次革命。商業(yè)信息系統(tǒng)在過去20年的發(fā)展指明了車間制造自動化系統(tǒng)的發(fā)展方向。融合了Infranet(Infrastructure net)、Intranet、Intemet的信息系統(tǒng)獲取信息更加靈活。開放式控制器就是在這種背景下發(fā)展起來的。開放式控制系統(tǒng)(OACS)領(lǐng)域的大多數(shù)研究計劃主要集中在歐洲、美國和日本,包括以下方面。
ESPRIT 1II的0SACA(Open system arehRecturefor controls within automation system)計劃。它制定了包括網(wǎng)絡(luò)、應(yīng)用軟件和硬件在內(nèi)的所有標(biāo)準(zhǔn)。
EMC(Enhaneed machine controller)是美國國家標(biāo)準(zhǔn)局為開放式控制器開發(fā)制定的一套接口標(biāo)準(zhǔn)。
通用汽車公司開發(fā)了OMAC(Open modular”.chitecture controller)應(yīng)用于汽車制造領(lǐng)域。日本的六家公司組成了名為OSE(Open systemenvironment for controller)的工作組,它定義了制造系統(tǒng)的開放式結(jié)構(gòu)和接口標(biāo)準(zhǔn)。
但學(xué)術(shù)界對開放式控制系統(tǒng)還沒有一個統(tǒng)一的定義,這樣系統(tǒng)制造商就很難將他們的系統(tǒng)稱為開放式控制系統(tǒng)。目前,人們對開放系統(tǒng)的不同層次的開放性提出了幾種解決方案。
(1)“PC嵌入NC”結(jié)構(gòu)。這只不過在傳統(tǒng)數(shù)控系統(tǒng)中加入了PC機(jī),如FANUC Seriali50/160/180/210。其需要雙操作系統(tǒng),如MS windows和專用的數(shù)控操作系統(tǒng),PC機(jī)只不過用來提高可操作性。
(2)“NC嵌入PC”結(jié)構(gòu)。它由開放式運動控制板+PC機(jī)構(gòu)成。這種運動控制板通常選用高速DSP作為CPU來完成實時件的NC內(nèi)核任務(wù)而由P作為CPU來完成實時性的NC內(nèi)核任務(wù)而由PC機(jī)來完成非實時性的任務(wù)。兩個CPU之間通過PC總線和雙端RAM來通信。它開放的函數(shù)庫供用戶在Windows平臺下自行開發(fā)構(gòu)造所需的控制系統(tǒng)。
(3)“基于現(xiàn)場總線的PC.NC”結(jié)構(gòu)。它是將現(xiàn)場總線卡,如SERCOS和PROFlBUS,插入到PC機(jī)的插槽中?;诖朔N標(biāo)準(zhǔn)的產(chǎn)品有北京機(jī)電研究院的JT2100、Indramat System 2000和Simulink802D。
(4)軟件型開放式數(shù)控系統(tǒng)。它提供給用戶最大的選擇和靈活性,它的軟件全部存在于PC機(jī)中,而硬件僅為PC機(jī)與伺服驅(qū)動和外部I/O之間的標(biāo)準(zhǔn)化通用接口。其典型產(chǎn)品有德國Power Automation公司的PA8000NT等。
1 開放式數(shù)控系統(tǒng)體系結(jié)構(gòu)
在對典型NC和PLC控制器分析的基礎(chǔ)上,按分布式控制的原則,采用系統(tǒng)、子系統(tǒng)和模塊分級式的控制結(jié)構(gòu),而按功能分層結(jié)構(gòu)劃分模塊,各模塊組成了CNC功能庫。系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1開放式數(shù)控系統(tǒng)體系結(jié)構(gòu)
(1)運動控制(MC)生成用于機(jī)床運動的命令位置坐標(biāo)。命令坐標(biāo)的生成可劃分成幾個子功能模塊:程序解釋、補(bǔ)償計算、轉(zhuǎn)換和插補(bǔ)。這只是從功能的角度對其進(jìn)行的劃分,不必在一個模塊中實現(xiàn)。
(2)軸控制(AC)的任務(wù)是根據(jù)從系統(tǒng)其他單元接收的命令值以及它的配置,為運動軸提供控制信號。
(3)主軸控制(SC)管理一個或多個主軸。它的工作獨立于運動控制(MC)通道。主軸控制具有插補(bǔ)功能并能為AC提供插補(bǔ)數(shù)據(jù)。
(4)邏輯控制(LC)通常是OEM寫機(jī)床LC程序的平臺。此程序是機(jī)床傳感器(微動開關(guān)、按鈕等)和機(jī)床執(zhí)行部件(繼電器和照明燈等)問的接口。
(5)人機(jī)控制(HMC)I拘任務(wù)是執(zhí)行沒有實時要求的任何軟件對所連接的系統(tǒng)進(jìn)行操作。其功能包括:各控制模塊的人機(jī)界面部分;網(wǎng)絡(luò)通信功能;故障診斷與處理系統(tǒng);參數(shù)管理功能;配置系統(tǒng)。
(6)過程控制(PC),是機(jī)床控制系統(tǒng)的輔助系統(tǒng),如刀庫,機(jī)械手等,它們也需要進(jìn)行數(shù)據(jù)管理和處理系統(tǒng)功能。
2 通信對象管理系統(tǒng)
2.1 通信對象管理的功能機(jī)理
通信對象管理系統(tǒng)(COM.Communication object management system)的主要功能是協(xié)調(diào)各功能模塊,實現(xiàn)各模塊的資源分配、實時調(diào)度等。由于傳統(tǒng)的CORBA缺少標(biāo)準(zhǔn)的QoS策略和機(jī)制,缺少實時特征,缺少必要的性能優(yōu)化,因此它只適合傳輸速度較低的應(yīng)用場合;為了滿足高性能及確定性和統(tǒng)計性實時的要求,通信對象管理系統(tǒng)主要由實時公用對象請求調(diào)度程序體系結(jié)構(gòu)RTCORBA fReal time cornlllon object request broker architecture)來實現(xiàn)㈤。其結(jié)構(gòu)如圖2所示。選用的實時CORBA的中間件是TAO(The ACE ORB)。
圖2通信對象管理機(jī)制
客戶機(jī)提出請求時,有兩種方式,一種使用由對象接口定義,用c++編譯的靜態(tài)存根(Static stubs),另一種使用動態(tài)調(diào)用接口DII(Dynamic invocation interface),不論哪種方式,客戶機(jī)都直接將請求傳送給與這個進(jìn)程鏈接的ORB核心;客戶機(jī)ORB核心通過網(wǎng)絡(luò)傳送給與服務(wù)器應(yīng)用程序相鏈接的服務(wù)器ORB核心:服務(wù)器ORB核心將這些請求分配給對象適配器(Object adapter),由它產(chǎn)生目標(biāo)對象;對象適配器進(jìn)一步將請求分配給實現(xiàn)目標(biāo)對象的伺服程序,與客戶機(jī)一樣,服務(wù)器可以選擇靜態(tài)或動態(tài)調(diào)度機(jī)制用于它的伺服程序,這取決于是由對象接口定義,用c++語言編譯的靜態(tài)框架(Static skeleton),還是其伺服程序可使用動態(tài)框架接口DSI(Dynamic skeleton interface);伺服程序執(zhí)行請求后,它返回結(jié)果給客戶應(yīng)用程序。
TAO的I/O子系統(tǒng)負(fù)責(zé)仲裁ORB和應(yīng)用程序?qū)Φ讓泳W(wǎng)絡(luò)和操作系統(tǒng)資源的訪問。在TAO的I/O子系統(tǒng)的底層是一個高速網(wǎng)絡(luò)接口,它由APIC(ATM port interconnect eontroller)芯片組成菊花鏈網(wǎng)絡(luò),其雙向傳輸速度達(dá)2.4 Gb/s。當(dāng)然,I/O子系統(tǒng)也支持VME和Compact PCI接口及共享內(nèi)存環(huán)境。實時I/O子系統(tǒng)避免了線程優(yōu)先級倒置并且隱藏了協(xié)議處理過程中的調(diào)度:為了避免優(yōu)先級倒置,為協(xié)議處理預(yù)先分配一個內(nèi)核線程庫,這些內(nèi)核線程與應(yīng)用線程庫一起調(diào)度。為了保證可預(yù)測性,內(nèi)核線程屬于一個實時I/O調(diào)度類。這個調(diào)度類采用RMS(rate monotonic scheduling)算法。當(dāng)操作系統(tǒng)內(nèi)核允許一個實時I/O線程運行時,實時I/O子系統(tǒng)計算這個線程相對調(diào)度類中其他線程的優(yōu)先級,并周期性地調(diào)度此線程。
由實時操作系統(tǒng)定義的調(diào)度抽象層相對來說是比較低層的,這對面向?qū)ο蟮膽?yīng)用與開發(fā)不直觀。為了使應(yīng)用程序以一種比較直觀的方式指定其調(diào)度需求,TAO提供了一種實時調(diào)度服務(wù),這個服務(wù)是一個CORBA對象,負(fù)責(zé)分配系統(tǒng)資源以滿足應(yīng)用程序的QoS需求。
調(diào)度服務(wù)為每一個請求分配一個優(yōu)先級。運行時,運行調(diào)度器使用這些優(yōu)先級參數(shù)。運行調(diào)度器將客戶請求映射為本地操作系統(tǒng)線程派發(fā)器所能識別的優(yōu)先級。然后,派發(fā)器將這些優(yōu)先級授權(quán)給實時I/O線程以執(zhí)行調(diào)度。
CORBA被設(shè)計為可以運行于多種傳輸協(xié)議之上。標(biāo)準(zhǔn)的ORB互操作協(xié)議是GIOP(General interORB protocol)。
在CORBA中,對象適配器作為伺服程序和ORB之間的紐帶。一個對象適配器是一個對象,它將一個對象接口配置給調(diào)用程序所需要的不同接口。也就是說,一個對象適配器是一個插入式對象,它用來作為代理,允許調(diào)用程序在不知道對象實際接口的情況下調(diào)用一個對象的請求。
2.2 數(shù)控系統(tǒng)功能模塊的IDL接口定義
OMG IDL是CORBA的基本抽象機(jī)理,它從實現(xiàn)中分離出對象接口。OMG IDL在客戶機(jī)和服務(wù)器之間建立起一個契約,用它來描述在應(yīng)用程序中需要用到的類型和對象接口。這些描述與實現(xiàn)的語言無關(guān),所以不用考慮客戶程序的編程語言是否與服務(wù)器程序的編程語言一致。
對于各功能模塊,它即可能是客戶,也可能是服務(wù)器。程序解釋模塊相對于軌跡規(guī)劃模塊來說就是服務(wù)器,而軌跡規(guī)劃就是客戶,當(dāng)軌跡規(guī)劃模塊需要調(diào)用程序段時,可以通過同步機(jī)制啟動程序解釋模塊;當(dāng)軌跡規(guī)劃完畢生成基本運動指令,此時,軌跡規(guī)劃模塊是服務(wù)器而插補(bǔ)控制模塊就是客戶。下面是基于OMG IDL的模塊接口定義。
程序解釋模塊:
3 結(jié)論
在分析傳統(tǒng)數(shù)控功能的基礎(chǔ)上,根據(jù)CORBA的通訊機(jī)制建立了開放式數(shù)控系統(tǒng)的體系結(jié)構(gòu),并根據(jù)RTCORBA的QoS策略框架定義了功能模塊的IDL接口。
(審核編輯: 智匯胡妮)
分享