999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

CORBA技術(shù)在現(xiàn)場設(shè)備通信中的應(yīng)用

2007-12-31 00:00:00蔣云良
計算機應(yīng)用研究 2007年7期

摘要:首先簡要介紹CORBA體系結(jié)構(gòu),闡述了利用CORBA的代理機制,通過代理屏蔽不同通信協(xié)議差異,以實現(xiàn)設(shè)備之間通信的集成策略。該機制能夠方便地實現(xiàn)不同協(xié)議設(shè)備之間的通信集成,而且便于系統(tǒng)擴展,并兼容多種操作系統(tǒng)平臺。最后結(jié)合具體實例給出現(xiàn)場設(shè)備的集成方案。

關(guān)鍵詞:現(xiàn)場設(shè)備;通信協(xié)議;通用對象請求代理體系結(jié)構(gòu);系統(tǒng)集成

中圖分類號:TP393文獻標志碼:A

文章編號:1001-3695(2007)07-0261-03

現(xiàn)場設(shè)備指的是工業(yè)現(xiàn)場底層的控制、執(zhí)行和計算設(shè)備,包括傳感器、變送器、控制器和智能閥門等各種類型的儀表產(chǎn)品。伴隨電子、通信、自動化技術(shù)的發(fā)展,許多廠家開發(fā)了大量的現(xiàn)場數(shù)字設(shè)備,有力地促進了工業(yè)控制系統(tǒng)的發(fā)展。但是由于各生產(chǎn)廠家商業(yè)利益的關(guān)系,各自生產(chǎn)的現(xiàn)場設(shè)備通信協(xié)議各成體系,相互之間難以通信,這嚴重阻礙了現(xiàn)場設(shè)備的集成。為解決現(xiàn)場設(shè)備集成,出現(xiàn)了現(xiàn)場總線技術(shù)。現(xiàn)場總線是一種基于智能化儀表和執(zhí)行機構(gòu)的、全數(shù)字化的實時通信傳輸系統(tǒng)。它應(yīng)用于與工業(yè)現(xiàn)場或其他生產(chǎn)作業(yè)現(xiàn)場的現(xiàn)場數(shù)字設(shè)備和控制系統(tǒng)的通信。它也被稱為開放式、數(shù)字化、多點通信的底層控制網(wǎng)絡(luò)。現(xiàn)場總線的出現(xiàn),對現(xiàn)場設(shè)備通信集成起到了極大的推動作用。但現(xiàn)場總線這類專用實時通信網(wǎng)絡(luò)具有成本高、速度低和支持應(yīng)用有限等缺陷,再加上總線通信協(xié)議的多樣性,使得不同總線產(chǎn)品不能互連、互用和互操作等,使現(xiàn)場總線工業(yè)網(wǎng)絡(luò)的進一步發(fā)展受到了極大的限制[1]。

另一種解決方法是利用通用組態(tài)軟件來實現(xiàn)現(xiàn)場設(shè)備集成。組態(tài)軟件是指數(shù)據(jù)采集與過程控制的專用軟件。它是在自動控制系統(tǒng)監(jiān)控層一級的軟件平臺和開發(fā)環(huán)境;使用靈活的組態(tài)方式,為用戶提供快速構(gòu)建工業(yè)自動控制系統(tǒng)監(jiān)控功能的、通用層次的軟件工具。組態(tài)軟件能支持各種現(xiàn)場設(shè)備和常見的通信協(xié)議;通常通過OPC或DDE技術(shù)實現(xiàn)現(xiàn)場設(shè)備通信的集成。組態(tài)軟件在實際使用過程中除了隨著現(xiàn)場設(shè)備(監(jiān)控點數(shù))增多而價格較為昂貴外,在兼容多種操作系統(tǒng)平臺、實現(xiàn)用戶對系統(tǒng)的任意配置、集成的現(xiàn)場設(shè)備種類有限等方面也難以滿足用戶日益增長的需要。為此,本文采用CORBA的代理機制。當企業(yè)需要擴展現(xiàn)場設(shè)備時,只要添加相應(yīng)的代理,在具體的實現(xiàn)中根據(jù)不同設(shè)備通信協(xié)議編寫相應(yīng)的驅(qū)動就能夠方便地將新的設(shè)備加入系統(tǒng),極大地提高了系統(tǒng)集成的靈活性和效率。

1CORBA技術(shù)簡介

CORBA(CommonObjectRequestBrokerArchitecture)是OMG(ObjectManagementGroup)制定的對象互操作規(guī)范。其目的在于解決分布異構(gòu)環(huán)境下軟件的互操作、可重用、可移植問題[3]。它是當今主流的中間件技術(shù),為分布異構(gòu)環(huán)境中軟件的編程和使用提供了強大的功能[2~4]。

ORB(Object Request Broker):CORBA規(guī)范的核心部分。ORB的原理是在對象使用方引入一個異地對象代理,由它將對象使用者(客戶端)的請求傳遞給異地的對象實現(xiàn),并將異地對象的服務(wù)結(jié)果返回給使用者。

OA(Object Adapter):在對象的實現(xiàn)方,CORBA引入了一個對象適配器,由它截獲異地發(fā)來的請求并激活被請求的對象完成指定任務(wù),將結(jié)果返回給使用方。使用方看到的接口完全獨立于對象位置、對象實現(xiàn)所用語言以及其他在接口中沒有反映的性質(zhì)。

IDL存根程序和構(gòu)架程序:IDL存根程序和構(gòu)架程序分別起著連接客戶與ORB、對象實現(xiàn)與ORB的作用。存根程序提供了一個靜態(tài)調(diào)用接口,它將應(yīng)用的參數(shù)編碼成IIOP的數(shù)據(jù)表示;構(gòu)架程序?qū)?shù)據(jù)表示解碼為應(yīng)用的類型參數(shù)。使用方可以使用IDL存根程序來完成調(diào)用,并可以與ORB交互使用某些功能。對象實現(xiàn)方則從靜態(tài)IDL構(gòu)架程序以上調(diào)方式接受請求。對象實現(xiàn)在處理請求時或其他時候也可以調(diào)用對象適配器和ORB的其他功能。

IIOP(Internet Inter-ORB Protocol):定義了用于Internet之上的一種ORB之間標準互操作協(xié)議。它利用的運輸層協(xié)議是Internet所采用的TCP。

在實現(xiàn)與編程語言無關(guān)性方面,OMG在CORBA 2.0中,制定了獨立于特定編程語言的接口定義語言(Interface Definition Language,IDL)。其目的是為客戶端在訪問對象實現(xiàn)方對象時無須顧及該對象的編程語言。同時OMG還制定了將IDL定義的接口映射為具體的程序設(shè)計語言(如C++、Java等)的標準形式。目的是為了使客戶端應(yīng)用能夠以標準的形式與對象代理交互,以及對象適配器和動態(tài)構(gòu)架接口以標準的形式調(diào)用對象實現(xiàn),以便客戶端應(yīng)用和對象實現(xiàn)在各種標準的CORBA平臺上移植及重用。

CORBA技術(shù)具有如下技術(shù)特點:

(1)引入了代理(Broker)的概念。一個代理具有三個方面的作用:①完成對客戶方提出的抽象服務(wù)請求的映射;②自動發(fā)現(xiàn)和尋找服務(wù)器;③自動設(shè)定路由,實現(xiàn)到服務(wù)器方的執(zhí)行。這樣,用戶在編制客戶方程序時就可以避免了解過多的細節(jié),而只要完整地定義和說明客戶需要完成的任務(wù)和目標即可。用代理來處理客戶/服務(wù)器模式環(huán)境下應(yīng)用或應(yīng)用系統(tǒng)之間交互的信息,稱為請求(Request)和響應(yīng)(Response)。代理根據(jù)客戶方的請求,選擇一個或若干個服務(wù)器進行處理,使客戶方無須考慮服務(wù)器方的處理細節(jié),只需要最后把服務(wù)器處理的結(jié)果作為客戶請求的響應(yīng)通知客戶。客戶方和服務(wù)器方相互獨立,使得軟件易于修改、移植和維護。

(2)實現(xiàn)了客戶方程序與服務(wù)器方程序完全分離。這與以面向過程調(diào)用機制為基礎(chǔ)的客戶/服務(wù)器模式存在著很大的不同。客戶將不再與服務(wù)器發(fā)生直接的聯(lián)系,而僅僅需要與代理交互;客戶與服務(wù)器之間可以有更加靈活的關(guān)系存在。在調(diào)用方式保持不變的前提下,服務(wù)器可以自由地修改或升級;客戶方程序也可以自由地按照要求進行更改,而無須通知對方。

(3)將分布計算與面向?qū)ο蟮母拍钕嗷ソY(jié)合。這樣,可以提高軟件重用率、控制冗余等,由此帶來了諸多好處。

(4)提供了軟件總線的機制。所謂軟件總線是指CORBA系統(tǒng)定義了一組接口規(guī)范,任何應(yīng)用程序、軟件系統(tǒng)或工具只要具有與該接口規(guī)范相符合的接口定義,就能方便地集成到CORBA系統(tǒng)中。這個接口規(guī)范獨立于任何實現(xiàn)語言和環(huán)境,即CORBA規(guī)范支持服務(wù)對象的位置透明性、實現(xiàn)透明性、執(zhí)行狀態(tài)透明性和通信機制透明性。只要按照OMG IDL接口描述語言對服務(wù)對象所提供的服務(wù)進行描述,客戶應(yīng)用與服務(wù)對象之間就可以透明地交互運行。應(yīng)用軟件或構(gòu)件能夠在軟件總線之上實現(xiàn)即插即用。

(5)分層的設(shè)計原則和實現(xiàn)方式。CORBA規(guī)范僅定義了ORB中需要用到的基本對象,封裝了相應(yīng)的屬性和方法。面向應(yīng)用的對象定義則可以在OMA(Object Management Architecture)的應(yīng)用對象、領(lǐng)域?qū)ο蠡驊?yīng)用開發(fā)環(huán)境中逐步分層定義和實現(xiàn),使CORBA系統(tǒng)核心始終是一個精練的實體,而各種復(fù)雜功能和應(yīng)用可以由核心擴展和延伸。

2CORBA在現(xiàn)場設(shè)備通信中的應(yīng)用

工業(yè)現(xiàn)場越來越多地采用具有數(shù)據(jù)通信功能的數(shù)字現(xiàn)場設(shè)備,各種現(xiàn)場設(shè)備不斷涌現(xiàn),種類也日益繁多。在實際應(yīng)用中,單獨一個現(xiàn)場設(shè)備廠家越來越無法提供一個系統(tǒng)全部的現(xiàn)場設(shè)備,因此用戶經(jīng)常不得不采用不同廠家生產(chǎn)的設(shè)備,并將這些設(shè)備互相連接組成所需的系統(tǒng)。但是,由于目前各種現(xiàn)場設(shè)備沒有統(tǒng)一的通信協(xié)議,不同現(xiàn)場設(shè)備的通信方式也存在著較大的差異。許多生產(chǎn)廠家為了使自己生產(chǎn)的現(xiàn)場設(shè)備能夠?qū)崿F(xiàn)現(xiàn)場通信,為自己的產(chǎn)品制定了專門的通信協(xié)議,有的還專門開發(fā)了設(shè)備通信所需的通信卡、通信控制器或通信服務(wù)器等設(shè)備。還有不少廠家只提供通信端口,而將通信任務(wù)留給用戶去完成。當用戶采用不同廠家生產(chǎn)的現(xiàn)場設(shè)備時,就需要綜合考慮如何將各種現(xiàn)場設(shè)備連接到網(wǎng)絡(luò)中,以及實現(xiàn)與各種現(xiàn)場設(shè)備通信等問題,并為此花費了大量的時間和精力。許多企業(yè)包括國際性的大公司為了解決來自不同廠家的產(chǎn)品兼容性,也投入了巨大的資金和人力、物力。

OMG組織制定的CORBA規(guī)范,為不同通信協(xié)議的現(xiàn)場設(shè)備之間相互通信提供了一個新的思路。可以利用CORBA規(guī)范的IDL來描述現(xiàn)場設(shè)備的接口。IDL描述的接口是各設(shè)備之間互操作的功能、參數(shù)以及返回值類型;描述的結(jié)果以IDL文件的形式保存。只要從相同的IDL文件映射出來,無論該現(xiàn)場設(shè)備通信協(xié)議有何不同,均可以被相同類型的接口調(diào)用。IDL是一種說明性語言,不能編寫實際的應(yīng)用程序。要真正實現(xiàn)該接口定義的功能,必須通過該接口對象實現(xiàn)方的伺服程序來完成。在伺服程序中,CORBA規(guī)范允許應(yīng)以不同的編程語言來實現(xiàn)。在具體實現(xiàn)中用戶可以對現(xiàn)場設(shè)備的操作根據(jù)不同設(shè)備通信協(xié)議進行編程,而且當某種現(xiàn)場設(shè)備改變時,只要改寫相應(yīng)對象實現(xiàn)就能夠?qū)⑿碌默F(xiàn)場設(shè)備集成到原有的系統(tǒng)中[5~7]。

當有其他設(shè)備要與該設(shè)備進行通信時,應(yīng)用程序首先通過該設(shè)備IDL接口文件生成的存根程序,利用ORB、IIOP和OA將調(diào)用請求傳遞給該設(shè)備的構(gòu)架程序;然后由構(gòu)架程序激活相應(yīng)的對象實現(xiàn)完成相應(yīng)通信功能,并將調(diào)用的結(jié)果沿原路徑返回給調(diào)用者。其應(yīng)用示意圖如圖2所示。

CORBA規(guī)范采用了代理機制(ORB),客戶端程序只與由IDL經(jīng)IDL編譯器編譯所生成的IDL樁打交道。至于其對象的具體實現(xiàn)位置完全是透明的。對象的具體實現(xiàn)由對象實現(xiàn)方的伺服程序?qū)崿F(xiàn)。這樣用戶就可以針對不同的現(xiàn)場設(shè)備用IDL定義其現(xiàn)場設(shè)備接口,然后在對象實現(xiàn)方的伺服程序中按照不同的現(xiàn)場設(shè)備通信協(xié)議開發(fā)其驅(qū)動程序。當用戶需要操作不同的現(xiàn)場設(shè)備時,就可以向代理發(fā)送命令激活相應(yīng)的程序,由伺服程序完成響應(yīng)功能。利用CORBA的這種代理機制,用戶可以在工業(yè)現(xiàn)場任意選用不同廠家的現(xiàn)場設(shè)備。這些現(xiàn)場設(shè)備通過CORBA的軟總線ORB很方便地集成在一起。而且,CORBA本身是由OMG組織提出的,它一直支持多種操作系統(tǒng)平臺。目前基本上所有操作平臺上都有CORBA的實現(xiàn),可以實現(xiàn)跨平臺異構(gòu)集成。利用這種CORBA方案,實現(xiàn)了對工業(yè)現(xiàn)場中不同廠家現(xiàn)場設(shè)備之間的自由集成,極大地提高了用戶在選擇現(xiàn)場設(shè)備時的自由度。

3應(yīng)用實例

為了簡便起見,采用一個簡易模型。其結(jié)構(gòu)如圖3所示。

客戶端通過ORB代理獲取服務(wù)器端由AI模塊獲得的外界的輸入電壓值;然后,客戶端根據(jù)其大小來決定PLC的動作。

模型硬件環(huán)境:客戶機通過RS-232外接一臺松下FP0系列PLC,而服務(wù)器端通過RS-232~RS-485轉(zhuǎn)換器外接一個牛頓7012模擬輸入模塊(它其實也就是一個工業(yè)上RS-485網(wǎng)絡(luò),只是只僅一個設(shè)備),由模擬輸入模塊獲取外界輸入的電壓值。

這兩種現(xiàn)場設(shè)備均有各自的通信協(xié)議(松下PLC的通信協(xié)議為MEWTOCOL,而7012模塊也有對應(yīng)的通信協(xié)議)。其通信方式也有所差異。其中牛頓—7012采用RS-485通信接口,而松下FP0可編程控制器采用RS-232通信接口。

開發(fā)過程中采用Inprise公司的CORBA 產(chǎn)品VisiBroker,在C++Builder 5.0開發(fā)環(huán)境下實現(xiàn)。其開發(fā)步驟如下:

(1)用CORBA接口定義語言定義接口。IDL并不是一種編程語言,它只是用來對接口進行描述的規(guī)格說明性語言。在實現(xiàn)模型中也即定義服務(wù)端AI模塊的接口。在接口中,只定義要與客戶端交互的操作。其接口的定義IDL文件如下:

modulemymodule {

interface ND7012{

longget_volt( );

};

}

接口定義后采用IDL編譯器編譯此IDL文件,生成此接口的存根類File1_c.cpp和構(gòu)架類File1_s.cpp。

(2)服務(wù)器端程序。服務(wù)器程序包括CORBA對象(ND7012)的具體實現(xiàn)、與模擬輸入模塊通信程序部分。在服務(wù)器程序中還須包括IDL編譯后所產(chǎn)生的存根類和構(gòu)架類。把它們編譯鏈接后即可生成服務(wù)器端程序。

(3)客戶端程序。它是用戶用來實現(xiàn)操作的程序,主要包括用戶界面和客戶對服務(wù)器程序的調(diào)用;同時它還包括客戶機與PLC通信的程序。用戶界面包括控制信息的顯示和用戶實現(xiàn)控制的部分。在客戶程序中,首先通過調(diào)用服務(wù)器端程序來獲得遠程模擬輸入模塊所采集的電壓值;然后根據(jù)電壓值的大小來決定 PLC 的動作。客戶端程序要與IDL編譯后所生成的存根類一起編譯鏈接,才能生成完整的客戶程序。

4結(jié)束語

模型解決了工業(yè)現(xiàn)場中不同通信協(xié)議的現(xiàn)場設(shè)備之間的集成問題。使用這種結(jié)構(gòu),服務(wù)器端程序與客戶端程序之間可以相互獨立:一方程序的改動并不影響另一方,提高了軟件的重用性。而且利用這種結(jié)構(gòu),增加了用戶選擇產(chǎn)品的自由度。用戶可以在使用中任何時候任意選用其他廠家具有相同功能的設(shè)備,如其他廠家的模擬輸入模塊、PLC 等設(shè)備。雖然通信協(xié)議發(fā)生了變化,但只要在程序中作極小的改動(只需按照該設(shè)備的通信協(xié)議向串口緩沖區(qū)中發(fā)送不同格式的命令),就可以方便地把該設(shè)備集成到系統(tǒng)中。另外值得一提的是,客戶端程序與服務(wù)器端程序的編程語言可以不同(如可以在服務(wù)器端使用Java編程語言,客戶端使用C++)。這為解決對原有系統(tǒng)的集成,或所謂的遺產(chǎn)問題,提供了很好的解決辦法。只要把原有系統(tǒng)的應(yīng)用程序按面向?qū)ο蟪绦蛟O(shè)計方法進行封裝,定義IDL接口,就能很方便地集成到新系統(tǒng)中去,而不需要重新改寫原有程序。這將會在實際中產(chǎn)生巨大的經(jīng)濟效益。可以說,利用CORBA技術(shù)能很好地解決工業(yè)現(xiàn)場設(shè)備通信所存在的許多問題。

CORBA規(guī)范并不是專門為工業(yè)控制領(lǐng)域制定的。它在工業(yè)控制中的應(yīng)用也有不足之處,如其實時性能不好,缺少異步調(diào)用模式、服務(wù)質(zhì)量支持等。但隨著CORBA技術(shù)在應(yīng)用中的深入,其性能也在不斷改進。OMG已經(jīng)在發(fā)布的CORBA 3.0中對此提出相應(yīng)的解決辦法[8],并且目前已經(jīng)開發(fā)出滿足工業(yè)實時性要求的CORBA產(chǎn)品[9]。相信隨著CORBA技術(shù)的不斷完善發(fā)展,其將在工業(yè)控制的現(xiàn)場設(shè)備集成中發(fā)揮更強大的優(yōu)勢。

參考文獻:

[1]王榮莉,雷斌.工業(yè)以太網(wǎng)技術(shù)的現(xiàn)狀與發(fā)展[J].自動化博覽,2004,21(4):63-65.

[2]OMG Object Management Group.The common object request broker architecture and specification[M].北京:電子工業(yè)出版社,1998.

[3]汪蕓.CORBA技術(shù)及其應(yīng)用[M].南京:東南大學出版社,1999.

[4 ]HENNING M,VINOSKI S.基于C++ CORBA高級編程[M].徐金梧,徐科,等譯.北京:清華大學出版社,2000.

[5]ZHU Yongli, HUANG Min,SONG Shaoqun,et al.A CORBA-TAO based real-time communication for tele-monitoring and control of power systems[C]//2005 IEEE/PES Transmission and Distribution Confe-rence Exhibition:Asia and Pacific.Dalian:[s.n.],2005:1-6.

[6]OZANSOY C R,ZAYEGH A,KALAM A.Interoperable CORBA middleware design for substation[C]//The 8th IEE International Conference on Developments in Power System Protection[S.l.]:[s.n.],2004:705-708.

[7]SANZ R,ALONSO M.CORBA for control system[J].Annual Reviews in Control,2001,25:169-181.

[8]Object Management Group.Common object request broker architecture and specification[EB/OL].revision3.0.[1999].http://www.omg.org.

[9]FAY-WOLFE V,DIPIPPO L C,COOPER G,et al.Real-time CORBA[J].IEEE Transaction on Parallel and Distributed System,2000,11(10):1073-1089.

注:“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”

主站蜘蛛池模板: 亚洲欧美在线精品一区二区| 在线中文字幕网| 亚洲综合狠狠| 在线va视频| 国产69精品久久| 国产欧美精品午夜在线播放| 久久精品波多野结衣| 久久9966精品国产免费| 91久久偷偷做嫩草影院精品| 国产jizzjizz视频| 精品亚洲麻豆1区2区3区 | 成人精品视频一区二区在线| 青草视频在线观看国产| 国产黄色视频综合| 手机在线看片不卡中文字幕| 国产麻豆福利av在线播放| 2020极品精品国产 | 久久国产精品电影| 日韩无码真实干出血视频| 欧洲亚洲欧美国产日本高清| 91亚洲精品第一| 国产福利小视频在线播放观看| 88av在线| 2021亚洲精品不卡a| 国产精品成人AⅤ在线一二三四| 日韩无码黄色| 国产成人亚洲欧美激情| 午夜日本永久乱码免费播放片| 国产精品美女在线| 久久semm亚洲国产| 亚洲国产成人综合精品2020 | 日韩精品成人在线| 四虎国产精品永久在线网址| 这里只有精品国产| 亚洲精品波多野结衣| 91青草视频| 欧美一级大片在线观看| 亚洲不卡无码av中文字幕| 亚洲无码视频一区二区三区| 国产毛片片精品天天看视频| 欧美精品综合视频一区二区| 精品丝袜美腿国产一区| 伦伦影院精品一区| 色综合婷婷| 波多野结衣中文字幕一区二区| 亚洲天堂日韩在线| 日本一区二区不卡视频| 亚洲欧美日韩精品专区| 日本一区二区不卡视频| 国产一级在线播放| 精品乱码久久久久久久| 日韩无码真实干出血视频| 国产制服丝袜无码视频| 国产综合精品日本亚洲777| 国产黄色爱视频| 在线观看无码av免费不卡网站 | 国产最新无码专区在线| 婷婷综合在线观看丁香| 亚洲色欲色欲www在线观看| 国产日韩AV高潮在线| 欧洲免费精品视频在线| 天堂成人在线视频| 免费一级毛片在线播放傲雪网| 亚洲欧美不卡中文字幕| 8090成人午夜精品| 亚洲色图欧美在线| 国产青青草视频| 欧美一级在线| 久久视精品| 国产丝袜啪啪| 国产女同自拍视频| 无码人妻热线精品视频| 日韩免费成人| 成人国产免费| 国产成人盗摄精品| 国产又爽又黄无遮挡免费观看| 亚洲中文精品久久久久久不卡| 国产精品极品美女自在线网站| 国产不卡一级毛片视频| 在线国产毛片手机小视频| 久久免费视频播放| 国产精品刺激对白在线|