數(shù)據(jù)采集服務器設(shè)計_第1頁
數(shù)據(jù)采集服務器設(shè)計_第2頁
數(shù)據(jù)采集服務器設(shè)計_第3頁
數(shù)據(jù)采集服務器設(shè)計_第4頁
數(shù)據(jù)采集服務器設(shè)計_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、數(shù)據(jù)采集服務器設(shè)計計算機應用computerapplications自動化技術(shù)與應用20l0年第29卷第5期數(shù)據(jù)采集服務器設(shè)計李金波.陳慶文(黑龍江省科學院自動化研究所,黑龍江哈爾濱150090)摘要:本義利用olc技術(shù)進行數(shù)據(jù)采集服務器的沒計.評介紹數(shù)據(jù)采集服務器實現(xiàn)方法,閘述_f】otc設(shè)汁系統(tǒng)的點.簡述ri/odii的肝發(fā).小文的數(shù)據(jù)采集駑對電能表沒計的.關(guān)鍵詞:opc;服籌器;電能表中圈分類d:tp274.2文獻標碼:bl殳章編號:1003724l(2010)05003905designmentandimplementationofpowermeterdataacquisitionse

2、rverlijin-bo,chenqingwen.(heilongjiangacodemyofsciences,haerbin150090china)abstract:opcservertechnologyfordataacquisitioninthedesign,andintroducedthemethodofdatacollectionserverontheopcdesignwiththeadvantageofthesystem,outlinesthei0dlldevelopment.inthispaper,thedataacquisitionserverforenergymeterdes

3、ign.keywords:opc;servers;energymeter1引言數(shù)據(jù)采集系統(tǒng)軟件通過i/o驅(qū)動程序從現(xiàn)場i/o設(shè)備獲得實時數(shù)據(jù),對數(shù)據(jù)進行必要的處理后,一方面以圖形方式直觀地顯示在計算機屏幕上,另一方面按照組態(tài)要求和操作人員的指令將控制數(shù)據(jù)送給i/o設(shè)備,對執(zhí)行機構(gòu)實施控制或調(diào)整控制參數(shù).但是,數(shù)據(jù)采集系統(tǒng)軟件存在一個嚴重的制約因素,即現(xiàn)場設(shè)備與應用軟件之間難以實現(xiàn)開放的,無縫隙的連接.即針對同一個硬件設(shè)備,每個應用軟件都要根據(jù)自己的需求開發(fā)一套硬件驅(qū)動程序.這不僅加大了開發(fā)和維護費用,而且?guī)砹嗽L問沖突問題.opc技術(shù)將各個硬件設(shè)備驅(qū)動程序和通信程序封裝成獨立的opc服務器,上

4、層應用軟件可以不關(guān)心硬件的性能特點,而通過標準的opc接口訪問opc服務器.這樣不僅解決了上述問題,而且實現(xiàn)了軟件的”即插即用”.opc相當于一塊軟件”主板”,它能夠直接與現(xiàn)場收稿日期:20100329的plc,工業(yè)網(wǎng)絡,數(shù)據(jù)采集和windowsce設(shè)備連接,快速有效地獲取現(xiàn)場實時數(shù)據(jù).pc機內(nèi)的各種監(jiān)視,控制和管理等應用軟件則像是插在opc主板上的軟件”芯片”,”芯片”可通過opc獲得現(xiàn)場實時數(shù)據(jù),“芯片”之間也可按照opc協(xié)議進行通信,從而實現(xiàn)軟件的”即插即用”.本文以針對一種電能表的數(shù)據(jù)采集服務器為編程實例,詳細介紹數(shù)據(jù)采集服務器的基本結(jié)構(gòu)以及如何實現(xiàn)opc服務器.電能表采用了(多功能電

5、能表通信規(guī)約)(dl/t6451997).多功能電能表通信規(guī)約適用于本地系統(tǒng)中的電能表費率裝置與手持單元(也稱抄表器,用于現(xiàn)場抄表或編程)或其他數(shù)據(jù)終端設(shè)備進行點對點的或一主多從的數(shù)據(jù)交換方式;標準中規(guī)定了它們之間的物理連接(物理層),通信鏈路(數(shù)據(jù)鏈路層)及應用技術(shù)(應用層)規(guī)范.數(shù)據(jù)終端設(shè)備經(jīng)數(shù)據(jù)信道(如無線電臺,市話網(wǎng)絡等)與遠方主站的數(shù)據(jù)通信協(xié)議不屬于dl/t645自動化技術(shù)與應用20l0年第29卷第5期i-l-n機應用computerapplicationsl997的范疇.dl/t6451997中的主站指手持單元或其他數(shù)據(jù)終端設(shè)備.它具有選擇費率裝置(與電能表連接或與電能表組裝在一起

6、的數(shù)據(jù)采集與處理單元)并與它進行信息交換的功能.2傳統(tǒng)數(shù)據(jù)采集系統(tǒng)的劣勢傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)為使每一個應用程序與設(shè)備交換信息,必須為每個設(shè)備提供相應的驅(qū)動程序,在數(shù)據(jù)源與客戶程序之間分別建立一對一的驅(qū)動連接,如圖1以電能表為例.圖1傳統(tǒng)的應用軟件與數(shù)據(jù)源接口方式由于設(shè)備多樣性和驅(qū)動程序不兼容性,這種方式存在以下缺陷:(1)應用程序開發(fā)者必須花費大量精力開發(fā)各種設(shè)備的驅(qū)動接口,計算機硬件廠家要為不同的應用軟件編寫不同的驅(qū)動程序,這種程序可復用程度低,不符合軟件工程的發(fā)展趨勢,典型的高級語言軟件開發(fā)過程約有2530%的時間用于編寫這類接口,使開發(fā)時間和費用大大增加;(2)設(shè)備不具有互操作性,使用中硬

7、件的升級,變更和增加都可能造成驅(qū)動程序的變化,從而在維護過程中引起二次投資;(3)由于每一驅(qū)動軟件有各自的驅(qū)動程序,當多個應用軟件讀取同一數(shù)據(jù)源時,經(jīng)常發(fā)生沖突;(4)設(shè)備廠商雖然可能提供驅(qū)動程序,但與用戶開發(fā)應用軟件往往不一致,限制了用戶對軟件和設(shè)備的自由選擇.可見,在現(xiàn)場設(shè)備與應用軟件之間提供標準的接口,實現(xiàn)開放的,無縫隙的連接,是順利推進企業(yè)管控一體化的關(guān)鍵.為此,在微軟的倡導下,世界范圍內(nèi)處于主導地位的硬件和軟件開發(fā)商組成了opc基金會組織(opcfondation),制定硬件和應用軟件之間的接口標準一opc規(guī)范.3采用opc規(guī)范設(shè)計服務器的益處1)采用標準的windows體系接口,硬

8、件制造商為其設(shè)備提供的接口程序的數(shù)量減少到一個,軟件制造商也僅需要開發(fā)一套通訊接口程序.即有利于軟硬件開發(fā)商,更有利于最終用戶.2)opc規(guī)范以ole/dcom為技術(shù)基礎(chǔ)2,而ole/dcom支持tcp/ip等網(wǎng)絡協(xié)議,因此可以將各個子系統(tǒng)從物理上分開,分布于網(wǎng)絡的不同節(jié)點上.3)opc按照面向?qū)ο蟮脑瓌t,將一個應用程序(opc服務器)作為一個對象封裝起來,只將接口方法暴露在外面,客戶以統(tǒng)一的方式去調(diào)用這個方法,從而保證軟件對客戶的透明性,使得用戶完全從底層的開發(fā)中脫離出來.4)opc實現(xiàn)了遠程調(diào)用,使得應用程序的分布與系統(tǒng)硬件的分布無關(guān),便于系統(tǒng)硬件配置,使得系統(tǒng)的應用范圍更廣.5)采用op

9、c規(guī)范,便于系統(tǒng)的組態(tài),將系統(tǒng)復雜性大大簡化,可以大大縮短軟件開發(fā)周期,提高軟件運行的可靠性和穩(wěn)定性,便于系統(tǒng)的升級與維護.圖2基于opc應用軟件與數(shù)據(jù)源接口方式6)opc規(guī)范了接口函數(shù),不管現(xiàn)場設(shè)備以何種形式存在,客戶都以統(tǒng)一的方式去訪問,從而實現(xiàn)系統(tǒng)的開放性,易于實現(xiàn)與其它系統(tǒng)的接口.圖2為基于0pc技術(shù)的應用軟件與智能電能表進行數(shù)據(jù)交換的處理過程,它比傳統(tǒng)的數(shù)據(jù)采集系統(tǒng)有明顯的優(yōu)勢.4數(shù)據(jù)采集服務器設(shè)計的整體結(jié)構(gòu)數(shù)據(jù)采集服務器的設(shè)計以opcserver為核心【引,它介于各種硬件設(shè)備與上位過程控制系統(tǒng)之間,將采用不同的通訊規(guī)約和通訊方式的各種監(jiān)控設(shè)備信息轉(zhuǎn)換成自動化技術(shù)與應用2010年第2

10、9卷第5期符合opc接口規(guī)范的信息,提供給客戶端(監(jiān)控軟件);同時客戶端下發(fā)的各種控制命令等信息通過數(shù)據(jù)采集服務器提供給相應設(shè)備.opc服務器由server對象,group對象,item對象和針對不同現(xiàn)場設(shè)備的編寫的i/0dll組成.server,對象,group對象都是標準的com對象,opc客戶端通過它們提供的接口來訪問現(xiàn)場設(shè)備的數(shù)據(jù),使opc客戶端與0pc服務器實現(xiàn)無縫連接成為可能.server對象是0pc客戶端與0pc服務器端交互的首要對象,opc客戶端通過server對象來組織管理group對象,group對象是用來組織管理item對象的.item對象描述了服務器與現(xiàn)場設(shè)備的連接,是

11、對應的現(xiàn)場設(shè)備的屬性在服務器中的代表,它包含有數(shù)據(jù)項的值,值的質(zhì)量標志和時間標簽(讀取數(shù)據(jù)的時間).i/odll實現(xiàn)從具體的現(xiàn)場設(shè)備中讀取數(shù)據(jù)的功能,因為不同廠商設(shè)備的數(shù)據(jù)采集方式和現(xiàn)場通信網(wǎng)絡的通信協(xié)議不同,需要為不同硬件設(shè)備和通信協(xié)議編寫不同的i/odll.數(shù)據(jù)采集服務器的整體結(jié)構(gòu)如圖3所示.圖3數(shù)據(jù)采集服務器的整體結(jié)構(gòu)5數(shù)據(jù)采集服務器的設(shè)計與實現(xiàn)數(shù)據(jù)采集服務器中0pcserver的開發(fā)主要應用com技術(shù)4】,但直接采用com技術(shù)開發(fā)的難度比較大,且周期長.為了減少了開發(fā)的難度,本軟件0pc服務器部分應用第三方拓林的開發(fā)包開發(fā),通過加載kosrdk.dll動態(tài)連接庫實現(xiàn)不同設(shè)備到opc的轉(zhuǎn)

12、換.opcserver是透過一組一組的接口提供服務的.在實際的架構(gòu)上,opcserver共分為三層:如圖4,分別是opcserver,opcgroup,opcitem.其中每一個opcltem對應到一個實際的硬件裝置上的某一個channel或port;每一個opcgroup則包含了許多的opcitem,同時并定義這些opcltem更新的時間,方式,以及提供讀取opcltem值的接口;而每一個opcserver則包含若干個opcgroup,同時提供操作這些opcgroup的接口.圖4opcserver/opcgroup/opcltem間的關(guān)系圖本文以拓林的開發(fā)包開發(fā)工具為例總結(jié)出以下開發(fā)步驟:(

13、1)安裝opcproxy動態(tài)鏈接庫文件.進行opcserver編程開發(fā)首先需要從opc基金會官方網(wǎng)站下載并安裝opcproxy/stub動態(tài)鏈接庫文件,包括opcproxy.dll,opccomn_ps.dll,opcae_ps.dll,opchdaps.dll四個文件.獲得這些文件后,將它們拷貝到系統(tǒng)目錄(system32)下,然后在命令行格式下按照以下方法對這些文件進行注冊:regsvr32opcproxy.dll,regsvr32opccomnps.di1regsvr32opcaeps.dll,regsvr32opchda_ps.dll此外,還要檢查系統(tǒng)中是否存在actxprxy.dil

14、l文件,如果沒有,則需要從microsoft官方網(wǎng)站下載aprxdist.zip文件進行安裝.(2)編程環(huán)境設(shè)置.用opc數(shù)據(jù)服務器快速開發(fā)工具進行opc數(shù)據(jù)服務器的開發(fā)主要利用開發(fā)工具所提供的動態(tài)鏈接庫進行opc數(shù)據(jù)服務器的編程開發(fā)工作,在visualc+編程環(huán)境中將用到wtopcsvr.dll,wtopcsvr.1ib,wtopcsvrapi.h三個文件.對于動態(tài)鏈接庫文wtopcsvr.dll,需要將其拷貝到要開發(fā)的opcserver程序所在目錄;對于輸出定義文件wtopcsvr.dll,需要在編程環(huán)境的連接設(shè)置中加人此文件:對于頭文件wtopcsvrapi.h,則需要用到開發(fā)工具api

15、函數(shù)的源程序都應包含此文件.(3)獲得clsid.自動化技術(shù)與應用2010年第29卷第5期計算機應用computerapplications每個opc服務器均有一個全球唯一的guid類型的標識,如下:staticconstguidclsidsvr=0x73f90f71,0x9154,ox43d9,0x86,0x45oxf9,0x49,0x61,0x6,0x7c,0x80;(4)系統(tǒng)設(shè)置和初始化.服務器名稱和描述設(shè)置opc服務器的名稱和描述,用于系統(tǒng)的注冊和標識.mstrsvrname=“test.opc.serverver1.01”./nameofopcserverm_strsvrdesc=“

16、test.opc.server”./descriptionofopcserver服務器初始化調(diào)用kosinit()對服務器進行初始化.kos_init(clsid_svr,100);/knightopcserverinitialization函數(shù)第一個參數(shù)為服務器的classid,第二個參數(shù)數(shù)據(jù)掃描頻率.設(shè)置回調(diào)函數(shù)1.客戶端寫函數(shù)kossetclientwriteproc(&clientwriteproc,;/settingwritecallbackprocedure2.客戶端關(guān)閉kossetclientshutd0wnproc(&clientshutdownproc);/s

17、ettingclientshutdowncallbackprocedure注冊與反注冊注冊:bret=k0sregister(clsidsvr,mstrsvrname,mstrsvrdesc,strfile);反注冊:bret=kosunregiste(clsidsvr,mstrsvrname);(5)添加opc點.服務器的初始化工作完成后,需要添加opc點到opcserverdll中,opc客戶端才能夠檢索和使用opc點.(6)更新opc點.在上一步中,opc點已經(jīng)被添加到opcservedll中,這樣,opc客戶端程序就可以瀏覽到opc點;同時,也可以讀取到opc點的值(包括數(shù)據(jù)類型,數(shù)據(jù)

18、值,質(zhì)量,時間戳等).程序?qū)脑O(shè)備采集上來的數(shù)據(jù)不斷更新到opcserverdll中,使得客戶端程序可同步更新.(7)關(guān)閉opc服務器.關(guān)閉opc服務器之前,需要完成如下工作:如果有客戶端連接,發(fā)出斷開連接請求;釋放用new等操作符申請的內(nèi)存;調(diào)用kosremoveltem0從opc服務器中刪除已添加的opc點.調(diào)用kosunit()完成opc服務器的退出.6電能表i0dll開發(fā)圖5接收功能實現(xiàn)流程圖計算機應用computerapplications自動化技術(shù)與應用2010年第29卷第5期.旰婚|l度瓤l聾崩掠跚皿|r菇電.哂技礁s1.ii結(jié)覃持l圖6正常應答幀開始1|綻翻l本帆地址(a0-a5工艘鯽c1h=控制碼【表示異常鷹菩幀)i傲撼螭長度0lhl錯誤侍息宇職rl檀齄碼csl幀緒柬牟魯l砸圖7異常應答幀由于不同廠商的設(shè)備的數(shù)據(jù)采集方式和現(xiàn)場通信網(wǎng)絡采用的協(xié)議不同,廠商提供的用于數(shù)據(jù)采集的api函數(shù)也不同,因此在opc服務中,通過編寫不同的i/odll,使得服務器能從連接

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論