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

組態(tài)軟件在火電機組中的DCS(集散控制系統(tǒng))應(yīng)用

2008-12-31 00:00:00周亞勇
電腦知識與技術(shù) 2008年33期

摘要:近年來,用電需求量的不斷增加,火電單元機組不斷向大容量、高參數(shù)方向發(fā)展。為保證機組運行的安全性、經(jīng)濟性和穩(wěn)定性,機組運行的難度也相應(yīng)地增加,以往用常規(guī)儀表進行過程監(jiān)控的辦法已經(jīng)不能適應(yīng)大機組安全經(jīng)濟運行,代之而起的是以4C技術(shù)(計算機Computer、通訊Communication、控制Control、顯示終端CRT)為基礎(chǔ)發(fā)展起來的集散控制系統(tǒng)。因而新建機組及一些老機組的改造都無一例外地采用了DCS(集散控制系統(tǒng))。重點介紹了如何有效的實現(xiàn)利用組件對象模型技術(shù)(COM技術(shù))、面向?qū)ο蠹夹g(shù)和可視化軟件的實現(xiàn)方法開發(fā)研制了組態(tài)軟件,在火電機組中的一個DCS的實例應(yīng)用。

關(guān)鍵詞:組態(tài)軟件;火電機組;DCS;實例設(shè)計

中圖分類號:TP311文獻標(biāo)識碼:A 文章編號:1009-3044(2008)33-1522-03

為了滿足國民經(jīng)濟迅速增長帶來的用電需求量的不斷增加,提高電力工業(yè)生產(chǎn)的經(jīng)濟效益,火電單元機組不斷向大容量、高參數(shù)方向發(fā)展。隨著機組容量的增大,為了保證機組運行的安全性、經(jīng)濟性和穩(wěn)定性,機組運行的難度也相應(yīng)地增加,運行過程中需要監(jiān)督控制的參數(shù)越來越多,以往用常規(guī)儀表進行過程監(jiān)控的辦法已經(jīng)不能適應(yīng)大機組安全經(jīng)濟運行,代之而起的是以4C技術(shù)為基礎(chǔ)發(fā)展起來的集散控制系統(tǒng)。因而新建機組及一些老機組的改造都無一例外地采用了DCS(集散控制系統(tǒng))。

1 集散控制系統(tǒng)及其組態(tài)軟件設(shè)計思想

集散控制系統(tǒng)的實質(zhì)是利用計算機技術(shù)對生產(chǎn)過程進行集中監(jiān)視、操作、管理和分散控制,實現(xiàn)危險分散。集散控制系統(tǒng)概括起來由集中管理部分、分散控制監(jiān)測部分和通訊部分組成。集散控制系統(tǒng)軟件部分是由實時多任務(wù)操作系統(tǒng)、數(shù)據(jù)庫管理系統(tǒng)、組態(tài)軟件和各種應(yīng)用軟件所組成,其中組態(tài)軟件的概念是設(shè)計的重點。

集散控制系統(tǒng)的軟件一般是較為成熟的模塊化結(jié)構(gòu),系統(tǒng)的圖形顯示功能、數(shù)據(jù)庫管理功能、控制運算功能和歷史存儲功能等全有成熟的軟件模塊。但通常不同的應(yīng)用對象,對這些內(nèi)容要求有較大的區(qū)別。所以一般的DCS提供一個(或一組)功能很強的軟件工具包,即組態(tài)軟件。該組態(tài)軟件提供友好的用戶界面,使用戶在不需要編寫什么程序代碼的情況下,便可生成自己需要的應(yīng)用軟件。

隨著分布式計算機控制系統(tǒng)的發(fā)展,人們越來越注重系統(tǒng)的軟件組態(tài)和配置功能,即系統(tǒng)中配有一套功能十分齊全的組態(tài)生成工具軟件。組態(tài)軟件應(yīng)當(dāng)具有很強的通用性,能夠適用于一大類應(yīng)用對象,而且系統(tǒng)的執(zhí)行程序代碼部分一般是固定不變的,為使用不同的應(yīng)用對象只需由組態(tài)軟件生成不同的數(shù)據(jù)實體(包括圖形文件、報表文件、數(shù)據(jù)庫文件、腳本文件等)即可。這樣,既大大提高了系統(tǒng)的成套速度,又保證了系統(tǒng)軟件的成熟性和可靠性。

2 實時監(jiān)控系統(tǒng)及其組態(tài)生成系統(tǒng)

從國外引進的大機組及其配套的DCS系統(tǒng)固然有其無可比擬的優(yōu)越性,但代價十分昂貴。在現(xiàn)有機組上進行技術(shù)改造,提高機組的自動化水平,減少工人的勞動強度,增加系統(tǒng)運行的安全性、經(jīng)濟性,對大多數(shù)電廠來說是一條切實可行的途徑。國內(nèi)許多根據(jù)集散控制系統(tǒng)的設(shè)計思想開發(fā)的實時監(jiān)控系統(tǒng),其功能相當(dāng)于集散控制系統(tǒng)的一個子集,能夠根據(jù)電廠生產(chǎn)的實際需要和資金狀況進行靈活配置。在這些實時監(jiān)控系統(tǒng)中,無論是計算機控制系統(tǒng),還是數(shù)據(jù)采集系統(tǒng)(DAS系統(tǒng)),直接的流程畫面顯示和實時數(shù)據(jù)庫都是必不可少的功能。利用顯示實時數(shù)據(jù)庫數(shù)據(jù)的過程監(jiān)控畫面來代替?zhèn)鹘y(tǒng)的龐大的模擬儀表屏,使得運行人員不需要時刻在排列的儀表盤上檢查各儀表的數(shù)據(jù),或巡視整個模擬屏來得到生產(chǎn)過程的運行情況,而只需輕松地坐在CRT終端前面就可以觀看整個流程的工作概況,又可以逐層細化入微,觀察每個調(diào)節(jié)回路的工作細節(jié),即利用計算機強大的信息處理能力,實現(xiàn)系統(tǒng)的集中管理和顯示。實時監(jiān)控系統(tǒng)的過程監(jiān)控畫面不但可以顯示生產(chǎn)過程的流程圖和實時數(shù)據(jù),還可以支持各種趨勢圖、棒圖的顯示、報表的顯示和打印以及報警信息和操作指導(dǎo)等。

對一幅實時監(jiān)控畫面進行分析,可以發(fā)現(xiàn)它是由許多符號組成的,如流程畫面中的各種設(shè)備表示,進一步分解發(fā)現(xiàn)它是由許多基本的幾何圖形組成的,如直線、折線、矩形、多邊形、圓、橢圓、文本等,這些基本的圖形被稱為圖形中的圖元。圖元具有一些屬性,如邊線的顏色、粗細、類型,內(nèi)部填充的顏色以及在顯示器上的顯示位置等,另外,實時監(jiān)控系統(tǒng)畫面還須有動態(tài)顯示屬性,如開關(guān)符號根據(jù)實時參數(shù)的變化呈現(xiàn)打開或閉合狀態(tài)、棒圖的動態(tài)填充、曲線的連續(xù)變化等等。編制一幅監(jiān)控畫面時需要加入上述的靜態(tài)和動態(tài)的屬性特征。

“設(shè)備”包含五個子項目:“COM1”、“COM2”、“DDE”、“板卡”和“網(wǎng)絡(luò)節(jié)點”。主要是支持與I/O設(shè)備的四種通訊方式:串行通訊方式、DDE(動態(tài)數(shù)據(jù)交換)方式、板卡方式和網(wǎng)絡(luò)節(jié)點通訊方式。

“系統(tǒng)配置”包含七個子項目:“設(shè)置開發(fā)系統(tǒng)”、“設(shè)置運行系統(tǒng)”、“報警配置”、“網(wǎng)絡(luò)配置”、“用戶配置”、“打印配置”和“歷史數(shù)據(jù)記錄”,主要是對以上七個方面設(shè)置一些配置信息。

3 控制系統(tǒng)(Make)實例

功能方面對本圖形組態(tài)軟件進行了劃分,它從功能上可以分為四大模塊:工程管理器、畫面開發(fā)系統(tǒng)、畫面運行系統(tǒng)和實時數(shù)據(jù)庫。其中子系統(tǒng)畫面開發(fā)系統(tǒng)主要由菜單、固定工具條、繪圖工具箱和畫面編輯窗口組成,如圖2所示。

3.1 菜單

菜單分為“文件”、“編輯”、“查看”、“排列”、“工具”、“顏色”、“幫助”和“畫面”8個主菜單。“畫面”菜單列表顯示已經(jīng)打開所有的畫面(顯示內(nèi)容為畫面名稱),并可方便地在各畫面之間進行切換。

4 組態(tài)軟件的技術(shù)實現(xiàn)

下面將從MFC提供的基本應(yīng)用程序框架入手,詳細介紹工程瀏覽器和畫面開發(fā)系統(tǒng)的圖元類庫、文檔類、視圖類和實時數(shù)據(jù)庫的實現(xiàn)技術(shù)。

程序框架及框架類:本組態(tài)軟件系統(tǒng)具體實現(xiàn),是在Visual C++ 6.0平臺上利用系統(tǒng)工具生成的比較重要的程序框架基礎(chǔ)類。

利用Visual C++ 6.0工作平臺的AppWizard為本系統(tǒng)建立一個名為Make的項目(Project),并生成具有以下特征的應(yīng)用框架:

圖1 工業(yè)控制計算機系統(tǒng)組態(tài)軟件功能

1) 多文檔界面(MDI:Multiple Documents Interface),支持文檔視圖結(jié)構(gòu);

2) 既是OLE容器又是OLE服務(wù)器,支持ActiveX文檔和ActiveX控件;

3) 在程序主框架中初始化工具條和狀態(tài)條;

4) 在視圖中支持打印和打印預(yù)覽;生成源文件中加入注釋;

5) 生成的是MFC標(biāo)準(zhǔn)類型的項目;使用動態(tài)連接的MFC類庫。

AppWizard為本系統(tǒng)生成出九個類,其中應(yīng)用類、主框架窗口類、子框架窗口類、視圖類和文檔類構(gòu)成了一個多文檔應(yīng)用程序的主要部分。這五個主要的類通過調(diào)用相互的公共成員函數(shù)以及傳遞消息,進行相互間的通訊和數(shù)據(jù)交換。表4.1簡述了本系統(tǒng)中四種主要類的特征。

在程序框架中,上述五個主要的類除繼承其父類全部可繼承的功能以外,還重載了一些虛擬函數(shù)和添加了一些其他函數(shù)。下面對這部分成員函數(shù)進行說明:

4.1 CMakeApp

CMakeApp由CWinApp派生,是應(yīng)用程序類。完成應(yīng)用程序?qū)嵗某跏蓟⒌怯浳臋n模板、生成主窗口及系統(tǒng)的退出結(jié)束處理等。其重載函數(shù)包括:

1) 構(gòu)造函數(shù)CMakeApp():構(gòu)造應(yīng)用程序?qū)嵗龑ο螅?/p>

2) 虛函數(shù)InitInstance():初始化應(yīng)用程序?qū)嵗俅诵枰怯泴⑹褂玫奈臋n模板。文檔模板提供了MFC用來將文檔、視圖和框架窗口結(jié)合在一起的框架結(jié)構(gòu),實際上是文檔模板為應(yīng)用程序創(chuàng)建新文檔和新視圖。文檔模板常以兩種形式出現(xiàn):用于單文檔(SDI)程序的CSingleDocTemplate和用于多文檔(MDI)程序的CMultiDocTemplate。本組態(tài)軟件使用的是多文檔模板,主框架窗口也是以此模板為基礎(chǔ)生成。其實現(xiàn)代碼如下:

pDocTemplate = new CMultiDocTemplate(

IDR_MAKETYPE,

RUNTIME_CLASS(CDrawDoc),

RUNTIME_CLASS(CChildFrame), // custom MDI child frame

RUNTIME_CLASS(CDrawView));

AddDocTemplate(pDocTemplate);

m_pDrawTemplate=pDocTemplate;

m_pDrawTemplate是應(yīng)用程序?qū)ο蟮墓谐蓡T變量,其他類的對象可以通過應(yīng)用程序?qū)ο髞砣〉迷撐臋n模板,從而可以新建、打開文件等。

由于工程瀏覽器需要通過COM接口訪問實時數(shù)據(jù)庫對象來訪問存放數(shù)據(jù)點信息的Access數(shù)據(jù)庫,所以在初始化函數(shù)中需要對COM庫進行初始化:

CoInitialize(NULL); //初始化COM庫

工程瀏覽器與畫面開發(fā)系統(tǒng)是不同的兩個框架窗口,主窗口是畫面開發(fā)系統(tǒng),因而在初始化過程中還需要創(chuàng)建工程瀏覽器的框架窗口,工程瀏覽器框架窗口類是通過ClassWizard工具從CFrameWnd繼承,關(guān)于工程瀏覽器窗口類將后面介紹。在此新建CProjectFrame的一個對象(即窗口)并顯示,代碼如下:

圖2 畫面開發(fā)系統(tǒng)用戶界面

CProjectFrame * pProjectFrame=new CProjectFrame;

if(!pProjectFrame->LoadFrame(IDR_PROJECTFRAME))

return FALSE;

m_pProjectFrame=pProjectFrame;

pProjectFrame->ShowWindow(SW_SHOWMAXIMIZED);

pProjectFrame->UpdateWindow();

其中m_pProjectFrame是應(yīng)用程序?qū)ο蟮墓谐蓡T變量,其他類的對象可以通過應(yīng)用程序?qū)ο髞砣〉迷摽蚣軐ο蟆?/p>

程序開始運行時并不需要打開新的文檔,而自動生成的程序框架在程序啟動時會新建一個文檔,在InitInstance()中加入以下代碼:

if(CCommandLineInfo::FileNew==cmdInfo.m_nShellCommand)

cmdInfo.m_nShellCommand=cmdInfo.FileNothing; //啟動時不打開文檔

3) 虛函數(shù)ExitInstance():程序退出時進行一些清理工作。由于在InitInstance()中對COM庫進行了初始化,因而在程序退出時需釋放COM庫所占的資源,代碼為:

CoUninitialize();//釋放COM庫使用的資源

CMakeApp只有一個且只能有一個對象實例,即整個應(yīng)用程序,定義為:

CMakeApp theApp;

4.2 CMainFrame

CMainFrame是由CMDIFrameWnd類派生的主框架窗口類,管理畫面開發(fā)系統(tǒng)的程序窗口,顯示有一個標(biāo)題欄、菜單欄、窗口最大化、最小化和關(guān)閉按鈕、邊框、固定工具條、浮動工具條和狀態(tài)欄,其客戶區(qū)顯示子窗口。其初始成員函數(shù)包括:

構(gòu)造函數(shù)CMainFrame();析構(gòu)函數(shù)~CMainFrame();

消息映射函數(shù)OnCreate():響應(yīng)系統(tǒng)消息WM_CREATE,該消息在Windows系統(tǒng)創(chuàng)建主窗口時傳送,在該函數(shù)中,先調(diào)用基類(CMDIFrameWnd)的OnCreate(),然后再創(chuàng)建工具條和狀態(tài)條。

4.3 CChildFrame

CChildFrame是由CMDIChildWnd類派生的子框架類,其客戶區(qū)即為觀察窗口。

構(gòu)造函數(shù)CChildFrame();析構(gòu)函數(shù)~CChildFrame();

虛函數(shù)PreCreateWindow():用于在創(chuàng)建窗口前改變窗口的樣式。

圖3程序執(zhí)行步驟

4.4 CDrawView

CDrawView是由滾動視圖CScrollView派生而來,其初始成員函數(shù)包括:

構(gòu)造、析構(gòu)函數(shù);

GetDocument():一個視圖只能與一個文檔相聯(lián)系,該函數(shù)返回與該視圖相聯(lián)系的文檔類對象指針,返回類型為CDrawDoc *,即CDrawDoc類對象的指針;

虛函數(shù)OnInitialUpdate():是視圖的初始化函數(shù);

虛函數(shù)OnDraw():用于更新視圖窗口;

以上簡單介紹了AppWizard為本組態(tài)軟件生成的主要類的基本功能,并對本軟件應(yīng)用類作了較為詳細的介紹。其中,對文檔類的派生類CDrawDoc的成員和功能擴充后,就可實現(xiàn)畫面開發(fā)系統(tǒng)的文檔管理器功能;對視類CDrawView、主框架類CMainFrame、子框架類CChildFrame進行擴展,并與一些另外定義圖元類、圖元工具類相結(jié)合即可實現(xiàn)畫面開發(fā)系統(tǒng)的編輯環(huán)境;工程瀏覽器則是由自定義的框架類和視圖類來實現(xiàn)。

從應(yīng)用框架的角度來講,本組態(tài)軟件的執(zhí)行步驟如圖3所示:

1) 調(diào)用CWinApp類構(gòu)造函數(shù);

2) 程序入口函數(shù)WinMain()接收控制,調(diào)用InitInstance()函數(shù)進行初始化,創(chuàng)建工程瀏覽器和畫面開發(fā)系統(tǒng)框架;

3) WinMain()進入處理消息的循環(huán);

4) 用戶可以通過菜單命令啟動畫面運行系統(tǒng);

5) WinMain()退出,程序終止執(zhí)行;

6) 如果啟動了畫面運行系統(tǒng)View,可終止View。

其中,程序入口函數(shù)WinMain()是在MFC內(nèi)定義的。

5 結(jié)束語

在本組態(tài)軟件的設(shè)計過程中,充分體現(xiàn)了面向組件對象的設(shè)計思想,將畫面的開發(fā)、運行和實時數(shù)據(jù)庫可分成不同的模塊,通過COM接口實現(xiàn)相互訪問,在軟件擴充時只需加入不同功能的模塊并實現(xiàn)相應(yīng)的接口,使本組態(tài)軟件有較好的可擴充性;本軟件采用了面向COM和面向?qū)ο蟮脑O(shè)計方法,在COM庫和MFC類庫的強大功能支持下開發(fā)完成,將各個模塊的方法和數(shù)據(jù)封裝在一起,并大量繼承了MFC類庫中經(jīng)過很多測試的類,大大提高了系統(tǒng)的穩(wěn)定和可靠性;由于COM支持聚合和包容,MFC中的各個類支持類的繼承,每個圖元有自己的方法和屬性,所以本系統(tǒng)也具有較好的可擴充性。

本組態(tài)軟件除了用于火電廠監(jiān)控系統(tǒng),同樣可用作其它監(jiān)控系統(tǒng)的組態(tài);除了用于專用系統(tǒng)的圖形組態(tài)外,本軟件也可以作為通用的繪圖工具軟件來使用。因此具有較廣泛的實用價值。本次開發(fā)只是建立了一個組態(tài)軟件的框架,實現(xiàn)了組態(tài)軟件的一些基本功能,還需要在實際應(yīng)用中通過擴充手段不斷豐富和加強。

參考文獻:

[1] David J.Kruglinski,Scot Wingo,George Shepherd,著Visual C++ 6.0 技術(shù)內(nèi)幕(第5版)[M].希望圖書創(chuàng)作室,譯.北京:希望電子出版社,1999.

[2] 程文斌,王一行,等.C庫函數(shù)和MFC庫類詳解[M].北京:航空航天大學(xué)出版社,1995.

[3] 王葉,葉愛亮,祁立學(xué).Visual C++ 6.0 編程實例與技巧[M].北京:機械工業(yè)出版社,1999.

[4] Chuck Wood著.Visual C++ 6.0數(shù)據(jù)庫編程大全[M].梁普選,梁津,劉玉芬,等譯.北京:電子工業(yè)出版社,2000.

[5] Steve Oualline著.實用C++編程大全[M].辛運幃,吳拉朵,譯.北京:電子工業(yè)出版社,1997.

[6] John E.Swanke著.Visual C++ MFC擴展編程實例[M].前導(dǎo)譯.北京:機械工業(yè)出版社,2000.

[7] Kate Gregory著.Visual C++ 6 開發(fā)使用手冊[M].前導(dǎo)譯.北京:機械工業(yè)出版社,1998.

[8] James L.Conger著.Microsoft Windows API大全[M].沈民,張燕,譯.北京科海培訓(xùn)中心,1997.

[9] 木林森,等.Visual C++ 6.0使用與開發(fā)[M].北京:清華大學(xué)出版社,1998.

[10] Richard C.Leinecker,Jamie Nye著.Visual C++開發(fā)工具使用指南[M].廖安隸,等譯.北京:機械工業(yè)出版社,1997.

[11] 顧良士,朱學(xué)武,張衛(wèi),等.InTouch人機接口應(yīng)用生成程序[M].北京:學(xué)苑出版社,1993.

主站蜘蛛池模板: 国产一级一级毛片永久| 国产91成人| 99热这里只有精品国产99| 亚洲黄网在线| 欧美一区二区啪啪| 欧美日韩在线亚洲国产人| 欧美日本中文| 国产99精品久久| 国内精品久久九九国产精品| 亚洲制服中文字幕一区二区| 欧美三级自拍| 男人天堂伊人网| 日本免费a视频| 91毛片网| 伊人久久久久久久| 国产精品成人啪精品视频| www.日韩三级| 亚洲欧洲日韩综合色天使| www.日韩三级| 91 九色视频丝袜| 精品一区二区久久久久网站| 老司机精品久久| 亚洲乱伦视频| 第一页亚洲| 激情无码字幕综合| 青青草91视频| 亚洲欧美综合精品久久成人网| 久久精品aⅴ无码中文字幕 | 久久久久无码精品| 久久永久视频| 亚洲精品va| yjizz视频最新网站在线| 日本成人不卡视频| 中国黄色一级视频| 无码AV高清毛片中国一级毛片 | 久久国产香蕉| 亚洲精品图区| 一本色道久久88亚洲综合| 日韩区欧美区| 久久久久久久久18禁秘| 嫩草国产在线| 欧美色亚洲| 2020久久国产综合精品swag| 国产麻豆另类AV| 亚洲精品视频免费看| 亚洲综合香蕉| 97超碰精品成人国产| 国产亚洲精品在天天在线麻豆 | 免费毛片网站在线观看| 亚洲天堂久久久| 毛片一区二区在线看| 成人噜噜噜视频在线观看| 国产情侣一区| 国产第一色| 色窝窝免费一区二区三区| 国产精品片在线观看手机版| 亚洲天堂2014| 精品国产亚洲人成在线| 亚洲午夜天堂| 亚洲午夜国产精品无卡| 国产专区综合另类日韩一区| 久久久久无码精品国产免费| 播五月综合| 小蝌蚪亚洲精品国产| 在线亚洲小视频| 欧美全免费aaaaaa特黄在线| 青青草国产精品久久久久| 亚洲va视频| 午夜精品区| 亚洲精品色AV无码看| 国产人在线成免费视频| 亚洲一级毛片| 国产玖玖玖精品视频| 久久国产精品波多野结衣| jijzzizz老师出水喷水喷出| 色婷婷在线影院| 午夜毛片福利| 成年人视频一区二区| 国产91丝袜在线播放动漫| 日韩中文精品亚洲第三区| 日本91视频| 亚洲国内精品自在自线官|