時間:2008-10-28 11:08:00來源:ronggang
圖2 FipServer運行界面[/align]
FipServer的COM接口類為CFipServer,內(nèi)部封裝了WorldFIP應(yīng)用層和用戶層協(xié)議,采用ATL技術(shù)實現(xiàn)。當(dāng)主機應(yīng)用程序調(diào)用CFipServer的函數(shù)時,CFipServer的函數(shù)就會調(diào)用相應(yīng)協(xié)議的接口函數(shù),下面介紹幾個主要接口函數(shù)的主要功能。
?。?) SetPhTag(…)函數(shù)功能是設(shè)置網(wǎng)段唯一的設(shè)備標(biāo)識號和設(shè)置網(wǎng)段唯一的功能塊標(biāo)識號。
(2) EstablishBA(…)是建立并啟動主站的一個新的BA(總線仲裁)表。主站初始狀態(tài)會有一個BA表,主要包含非周期報文和變量通信窗口,用于基本設(shè)備的組態(tài)信息下載上傳、設(shè)備存在、設(shè)備標(biāo)識等服務(wù)。組態(tài)客戶端生成或修改控制策略與調(diào)度時間時,相應(yīng)的BA表也需更新,這時組態(tài)軟件就會調(diào)用該函數(shù)來刷新主站的BA表。
?。?) GetDeviceList(…)接口獲得在線活動設(shè)備的列表。當(dāng)FipServer進程啟動以后,就會周期地從主站設(shè)備讀取在線設(shè)備的報告信息,并記錄下在線設(shè)備的信息,具體信息包括物理地址和標(biāo)識號(8字節(jié))。當(dāng)組態(tài)客戶端調(diào)用該接口函數(shù)時就可以獲得總線上的活動設(shè)備列表。
(4) ReadObject(...)接口是FipServer提供的最重要的接口之一,它的功能主要是讀取現(xiàn)場設(shè)備的各種信息,當(dāng)主機應(yīng)用程序需要獲取設(shè)備對象字典中的數(shù)據(jù)時,可以調(diào)用該接口函數(shù),函數(shù)根據(jù)傳進來設(shè)備信息、對象字典索引就可以讀取現(xiàn)場設(shè)備對象字典中的相應(yīng)信息。函數(shù)主要是對設(shè)備訪問代理協(xié)議中的Read服務(wù)進行了封裝,函數(shù)根據(jù)傳進來對象字典的索引和子索引的不同而調(diào)用不同的讀服務(wù)。
?。?) WriteObject (...)接口也是FipServer提供的最重要的接口之一,它的功能主要是向現(xiàn)場設(shè)備寫入各種信息。組態(tài)軟件需要對設(shè)備對象字典中更新數(shù)據(jù)時,可以調(diào)用該接口函數(shù),函數(shù)根據(jù)傳進來設(shè)備標(biāo)識和對象字典索引就可以向現(xiàn)場設(shè)備對象字典中的相應(yīng)的位置寫入信息,該函數(shù)主要是封裝了設(shè)備訪問代理的Write服務(wù),根據(jù)傳進來的對象字典的索引和子索引的不同而調(diào)用不同的寫服務(wù)。
3 組態(tài)軟件客戶端軟件的設(shè)計與實現(xiàn)
組態(tài)軟件客戶端是組態(tài)軟件與工程人員交互的組態(tài)圖形系統(tǒng),是總線工程系統(tǒng)的調(diào)度和控制中心,它在組態(tài)軟件系統(tǒng)中起著極其重要的作用。本文首先采用了面向?qū)ο蟮慕<夹g(shù),借助UML建模語言實現(xiàn)了系統(tǒng)建模,然后采用面向?qū)ο蟮木幊谭椒?,基于Windows的MFC技術(shù),以C++為編程語言,以Visual C++6.0為工具,依據(jù)所建立的圖形系統(tǒng)模型,實現(xiàn)了整個組態(tài)圖形系統(tǒng)。組態(tài)軟件的整體結(jié)構(gòu)采用的單文檔多視圖的結(jié)構(gòu)。即所有的數(shù)據(jù)結(jié)構(gòu)由文檔類CFipXConDoc來管理,所有模塊從該文檔中取得所需的數(shù)據(jù),進行處理以后再保存到該文檔中。在Windows操作系統(tǒng)中,組態(tài)軟件的整體圖形界面如圖3所示。
[align=center]
圖3 組態(tài)軟件的主窗口[/align]
圖中左邊視圖是項目管理模塊,用于對整個控制系統(tǒng)的組態(tài)項目進行整體的管理,網(wǎng)段、主站、基本設(shè)備和功能塊的增刪改查都在這里進行。右邊工作區(qū)多視圖是各種組態(tài)模塊的視圖,圖中所示的視圖分別是功能塊參數(shù)組態(tài)模塊和功能塊應(yīng)用進程組態(tài)模塊。
3.1 數(shù)據(jù)結(jié)構(gòu)的設(shè)計
根據(jù)現(xiàn)場總線結(jié)構(gòu)的分布式和層次結(jié)構(gòu)的特點,軟件中采用以設(shè)備為對象的數(shù)據(jù)結(jié)構(gòu)設(shè)計,關(guān)于設(shè)備信息的數(shù)據(jù)結(jié)構(gòu)保持在文檔類中。設(shè)備信息分別保存在設(shè)備基類(CFipBasDevice)、派生類網(wǎng)關(guān)設(shè)備類(CFipBridge)和派生類從設(shè)備類(CFipSlaDevice)中。設(shè)備基類從CObject派生,并重載了Serialize(CArchive& ar)函數(shù)。這些設(shè)備類主要記錄設(shè)備的基本信息,如設(shè)備的DeviceID、設(shè)備的物理地址、設(shè)備標(biāo)識、設(shè)備中的功能塊列表,功能塊數(shù)量等信息,以及對設(shè)備類的操作方法。設(shè)備以設(shè)備列表的形式組織,具體結(jié)構(gòu)采用MFC指針數(shù)組模板類CtypedPtrArray實例化的CFipDevArray。
每個設(shè)備包含有多個功能塊,功能塊類保存了功能塊的各種信息。本文為功能塊類設(shè)計了一個基類CFunBlkBase,其他具體功能塊的類都從它派生,如CAIBlk、CPIDBlk、CAOBlk等?;悘腃Object類派生,并且重載了Serialize(CArchive& ar)函數(shù)。同樣,設(shè)備類也定義一個動態(tài)數(shù)組CFunBlkArray保存它的功能塊。
3.2 功能塊應(yīng)用進程圖形化組態(tài)的設(shè)計與實現(xiàn)
功能塊應(yīng)用進程的編輯采用圖形化方法來組態(tài),功能塊應(yīng)用進程編輯的界面如圖2所示。用矩形框圖代表功能塊,引腳代表功能塊的輸入和輸出,引腳間的連線代表功能塊參數(shù)間的關(guān)聯(lián)。編輯功能塊應(yīng)用進程時,用鼠標(biāo)選取組成功能塊應(yīng)用進程所需的功能塊并創(chuàng)建功能塊框圖,并用鼠標(biāo)在引腳間畫線來建立功能塊之間的連接關(guān)系。
本組態(tài)界面系統(tǒng)主要由圖元類庫和圖形操作工具類庫構(gòu)成。在圖元類庫中,類CDrawObj是抽象基類,定義了所有圖元類具有的共同屬性和操作接口,是其它圖元類的父類。CDrawFunBlock是功能塊框圖類,由它派生出具體功能塊繪圖類,如CAIDrawBlk等。CDrawLinkPLine是連接線類,CTextObj是文本類。圖形操作工具類是將用戶在界面上的操作翻譯成對工程畫面上圖元的操作的輔助類,主要功能表現(xiàn)在對圖元的操作控制功能,如圖元的生成編輯撤銷、移動和選擇等。根據(jù)所操作的圖元對象的種類,視圖類選擇相應(yīng)的工具類來編輯圖元對象。在工具類庫中,類CDrawTool是其他工具類的基類。類CSelectTool定義了對圖元的選中操作,類CDrawPLineTool定義了對連接線類的連接操作,類CFunBlkTool定義了對功能塊類的創(chuàng)建和移動,圖4描述了這個界面系統(tǒng)的靜態(tài)類和相互之間的關(guān)系[3]。
[align=center]
圖4 功能塊應(yīng)用進程圖形組態(tài)的UML靜態(tài)類圖[/align]
當(dāng)用戶進行功能塊連接組態(tài)時,每完成一次功能塊之間的連接,根據(jù)連線對象的輸入和輸出所指的功能塊之間的關(guān)聯(lián)關(guān)系,創(chuàng)建相應(yīng)的鏈接對象(CLinkObj)并給予賦值。鏈接對象內(nèi)容主要包括服務(wù)類型、設(shè)備地址、周期變量編號、本地索引、遠方索引等內(nèi)容。為了讓功能塊之間的連接都與鏈接對象相對應(yīng),程序定義了連接類(CLink),連接類主要記錄了這對輸入和輸出參數(shù)的鏈接對象。在功能塊應(yīng)用進程編輯視圖中,每進行一次功能塊之間的連接編輯,就生成一個功能塊之間的連接,也就生成了兩個鏈接對象。下載鏈接對象時,程序遍歷CDrawLinkPLine對象,通過調(diào)用COM接口程序FipServer的寫服務(wù)將鏈接對象下載到指定設(shè)備中[4]。
4 結(jié)束語
本文搭建了一個簡單的實際的總線控制系統(tǒng)來測試組態(tài)軟件,本系統(tǒng)由一個溫度變送器、一個總線-電流變送器(FI)、一個網(wǎng)關(guān)(主站)、一個加熱爐和一臺PC機構(gòu)成。策略組態(tài)配置了溫變運行AI功能塊、FI的PID功能塊和一個AO功能塊,形成一個閉環(huán)回路將加熱爐內(nèi)的溫度控制為一個給定值。整個測試按照5個用例依次進行,結(jié)果表明:組態(tài)軟件通過主站成功讀取了現(xiàn)場設(shè)備信息,并獲取視圖數(shù)據(jù)和功能塊信息,組態(tài)軟件成功將組態(tài)信息下載到現(xiàn)場設(shè)備并對其組態(tài)?,F(xiàn)場設(shè)備運行正常,并實現(xiàn)基本控制功能。
本文的創(chuàng)新點在于:在充分分析了WorldFIP協(xié)議和總線系統(tǒng)特點之后,率先設(shè)計開發(fā)出了一套方便實用的面向功能塊的WorldFIP現(xiàn)場總線控制系統(tǒng)組態(tài)軟件。這套軟件是在中文Windows2000環(huán)境下以VC++6.0為平臺實現(xiàn)的。這套軟件采用了三層C/S模式的軟件結(jié)構(gòu),具有很好的開放性和擴展性。軟件具有友好的人機界面,可為用戶提供直觀方便的對本FCS系統(tǒng)的組態(tài)配置。
參考文獻
[1]史學(xué)玲.WorldFIP現(xiàn)場總線技術(shù)[J].工業(yè)控制計算機,2001,14(2):29-30
[2]張劍清,張齊.基于COM的組態(tài)軟件I/O設(shè)備驅(qū)動程序設(shè)計[J].微計算機信息,2007,2-1:293-295
[3]王亞民,陳青,劉暢生,王水平.組態(tài)軟件的設(shè)計與開發(fā)[M].西安電子科技大學(xué)出版社,2003
[4]張建華,戰(zhàn)明,于海斌.FF現(xiàn)場總線儀表及組態(tài)技術(shù)[J].微計算機信息,2006,6-1:175-176
標(biāo)簽:
上一篇:新型電站分布式綜合自動化控...
傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為傳動網(wǎng)(www.surachana.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負版權(quán)法律責(zé)任。
相關(guān)資訊
產(chǎn)品新聞
更多>2025-10-31
2025-10-22
2025-10-17
2025-10-11
2025-10-09
2025-09-23