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