亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Visual C++6.0的船舶電站實時監(jiān)控系統(tǒng)研究

        2008-04-24 05:06:44關(guān)紅兵,黃溫赟,史延興
        中國艦船研究 2008年4期
        關(guān)鍵詞:發(fā)電機(jī)組串口文檔

        1 引 言

        Visual C++6.0[1]是Microsoft公司Visual Studio系列的一個重要產(chǎn)品,是一個功能強(qiáng)大的信息可視化開發(fā)工具。它的開發(fā)環(huán)境包含文本編輯器(Text Editor)、資源編輯器(Resource Editor)、源代碼瀏覽器(SourceCode Browser)、C/C++編譯器(C/C++ Compiler)、調(diào)試器(Debugger)、連接器(Linker)及MSDN在線幫助系統(tǒng)等。

        為了幫助編程者處理通常復(fù)雜而又繁瑣的有關(guān)Windows的工作,Visual C++ 6.0設(shè)計了一套類庫(MFC ) , 把軟件開發(fā)平臺SDK (SoftwareDevelopment Kit)中的大多數(shù)內(nèi)容封裝成為各種類。有了MFC,編程人員可以充分發(fā)揮C++的優(yōu)勢,專注于程序的特殊部分,不需重復(fù)處理Windows必須處理的復(fù)雜工作,提高了編程效率和代碼效率。MFC應(yīng)用程序向?qū)?AppWizard)和MFC類向?qū)?ClassWizard)是Visual C++ 6.0最重要的兩大開發(fā)工具。Visual C++ 6.0應(yīng)用程序的創(chuàng)建過程如圖1所示。

        圖1 Visual C++ 6.0應(yīng)用程序創(chuàng)建過程

        Visual C++ 6.0作為一種通用程序開發(fā)系統(tǒng),以其強(qiáng)大的數(shù)據(jù)采集、數(shù)據(jù)處理、數(shù)據(jù)分析功能在現(xiàn)代測控領(lǐng)域中得到了廣泛的應(yīng)用。在對硬件的支持方面,Visual C++ 6.0集成了與RS-232/485、PLC和插入式數(shù)字采集設(shè)備等進(jìn)行數(shù)據(jù)通信的全部功能,利用Windows技術(shù)的優(yōu)點(diǎn),在Visual C++ 6.0開發(fā)平臺下,設(shè)計了船舶電站實時監(jiān)控系統(tǒng)。

        2 系統(tǒng)構(gòu)成

        船舶電站[2]實時監(jiān)控系統(tǒng)由PC機(jī)、單片機(jī)和RS-485總線組成兩級控制模式,軟件協(xié)議采用支持RS-485網(wǎng)絡(luò)的Modbus ASCII[3]協(xié)議,數(shù)據(jù)存儲用ACCESS 2003[4]數(shù)據(jù)庫(圖2)。

        圖2 船舶電站柴油發(fā)電機(jī)組監(jiān)控系統(tǒng)結(jié)構(gòu)框圖

        由于工控機(jī)(安裝在集控室)具有實時性好、可靠性高、輸入/輸出能力和網(wǎng)絡(luò)支持能力強(qiáng)等普通計算機(jī)不可比擬的優(yōu)點(diǎn),故選用工控機(jī)作為上級監(jiān)督計算機(jī)控制系統(tǒng)SCC(Supervisory Computer Control),完成對柴油發(fā)電機(jī)組運(yùn)行狀態(tài)實時監(jiān)控和運(yùn)行參數(shù)的在線設(shè)置,遙控柴油發(fā)電機(jī)組啟動/停止。選用“凌陽”16位單片機(jī)u′nSPTM(安裝在主配電板內(nèi))作為底層控制級,與柴油發(fā)電機(jī)組這一控制對象一起組成直接數(shù)字控制系統(tǒng)DDC( Direct Digital Control),完成對柴油發(fā)電機(jī)組的啟動、停機(jī)、怠速運(yùn)行、故障報警、參數(shù)檢測等多種控制。利用RS-485通信網(wǎng)絡(luò)可支持多達(dá)256個接收器或發(fā)送器的特點(diǎn),使用1臺PC機(jī)運(yùn)用Visual C++ 6.0軟件即可監(jiān)控多套柴油發(fā)電機(jī)組的運(yùn)行。單片機(jī)具有價格便宜、編程容易、接口簡單等優(yōu)點(diǎn),但單片機(jī)不具備人機(jī)接口界面。為了易于操作并實現(xiàn)遠(yuǎn)距離監(jiān)控船舶電站的運(yùn)行狀態(tài),本系統(tǒng)在Visual C++ 6.0集成環(huán)境下開發(fā)界面友好的監(jiān)控軟件[5],通過單片機(jī)的硬件接口,以實時通信的方式,實現(xiàn)工控機(jī)與單片機(jī)之間的通信,完成對船舶電站的實時監(jiān)控和相關(guān)操作。

        3 實時監(jiān)控系統(tǒng)的實現(xiàn)

        3.1 系統(tǒng)模塊的劃分

        軟件程序主要完成數(shù)據(jù)采集、分析、顯示、存儲、管理以及打印等功能,所以模塊劃分為串口通信模塊、預(yù)報警模塊、數(shù)據(jù)打印模塊、數(shù)據(jù)庫模塊等。各模塊關(guān)系如圖3所示,其中箭頭表示數(shù)據(jù)流向。

        圖3 軟件系統(tǒng)模塊結(jié)構(gòu)示意圖

        3.2 系統(tǒng)模塊軟件實現(xiàn)關(guān)系

        系統(tǒng)模塊軟件實現(xiàn)關(guān)系如圖4所示,其中寬箭頭表示數(shù)據(jù)流向。

        圖4 系統(tǒng)模塊實現(xiàn)關(guān)系

        3.3 串口類通信

        串口通信使用編寫的類CSerialPort,將SerialPort.h SerialPort.cpp兩個類文件復(fù)制到工程文件夾中,用Project-Add to Project-Files命令將上述兩個文件加入工程,并在MinitorSystem.h中將頭文件SerialPort.h說明:#include“SerialPort.h”。CSerialPort類在串口數(shù)據(jù)到達(dá)時,將數(shù)據(jù)發(fā)送到程序主窗口。

        使用函數(shù)關(guān)鍵代碼如下:

        1) 串口初始化函數(shù)InitPort ( );

        2) 啟動串口通信監(jiān)測線程函數(shù)StartMonitoring()來啟動串口;

        3) 接收字符函數(shù)ReceiveChar(),被CommThread()線程調(diào)用發(fā)送消息等待主線程來處理接收字符;

        4) 通過串口發(fā)送字符/寫串口函數(shù)WriteToPort( ),調(diào)用WriteChar()完成發(fā)送任務(wù),和ReceiveChar()處理過程基本一致;

        5) 停止監(jiān)測線程函數(shù)StopMonitoring();

        6) 關(guān)閉串口函數(shù)C1osePort ( )。

        相應(yīng)的串口消息處理函數(shù),要手動添加消息處理函數(shù),步驟如下:

        ( 1) .h文件中添加:

        // Generated message map functions

        //{{AFX_MSG(MinitorSystemDlg)

        afx_msg LONG OnComm(WPARAM ch, LPARAM port);

        //}}AFX_MSG

        DECLARE_MESSAGE_MAP()

        ( 2) cpp文件中添加:

        BEGIN_ MESSAGE_ MAP(MinitorSystemDlg, CDialog)

        //{{AFX_MSG_MAP (MinitorSystemDlg)

        ON_ MESSAGE(WM_COMM_RXCHAR, OnComm)

        //}}AFX_MSG_MAP

        END_ MESSAGE_ MAP()

        (3) LONG MinitorSystemDlg::OnComm

        (WPARAM ch, LPARAM port)

        {

        / /接收字符

        }

        3.4 數(shù)據(jù)庫模塊

        ADO(ActiveX Data Object)ActiveX數(shù)據(jù)對象,是基于OLE DB的訪問接口,它是面向?qū)ο蟮腛LE DB技術(shù)。ADO對ACCESS數(shù)據(jù)庫開發(fā)的基本流程及它的基本步驟如下:

        1) 初始化COM庫

        CoInitialize(NULL)初始化OLE/COM庫環(huán)境;引入ADO庫定義文件:#import "c:program filescommon filessystemadomsado15.dll" o_namespace ename ("EOF", "adoEOF");#import包含后就可以用3個智能指針:_ConnectionPtr、_RecordsetPtr和_CommandPtr了;

        2) 用Connection對象連接數(shù)據(jù)庫;

        3) 利用建立好的連接,利用Recordset對象執(zhí)行SQL命令,取得結(jié)果記錄集進(jìn)行查詢、處理;

        4) 使用完畢后關(guān)閉連接釋放對象。

        聯(lián)機(jī)調(diào)試的數(shù)據(jù)庫顯示實現(xiàn)效果如圖5所示。

        圖5 歷史記錄顯示

        3.5 報警模塊

        程序采用聲光報警,使用多媒體實現(xiàn)聲音報警。當(dāng)滿足報警所需要的條件時,界面上小燈由綠變紅,并且發(fā)出報警聲,完成報警功能。

        在用VC++ 6. 0開發(fā)多媒體應(yīng)用時,必須在所有要用到多媒體函數(shù)的源程序中,包含MMSYSTEM.H頭文件,并且該文件位置應(yīng)在Windows.H頭文件的后面。另外,在連接程序時要用到WINMM.LIB引入庫,在Project→Settings對話框的Link頁的Object/library modusles欄中加入WINMM.LIB,或者在源程序中加入:# pragma comment (lib, “winmm.lib”)。

        本文采用把聲音文件加入到資源中,然后從資源中播放聲音的方式。VC++ 6.0支持WAVE型資源,并把聲音文件導(dǎo)入到WAVE資源中,設(shè)置聲音資源的ID為IDR_ WARN。滿足報警條件時,下面的調(diào)用會輸出報警聲音:

        P1aySound((LPCTSTR)IDR_WARN,AfxGetlnstanceHandle(),SND_RESOURC|SND_ASYNC)

        聯(lián)機(jī)調(diào)試的實現(xiàn)效果如圖6所示。

        圖6 在線預(yù)警、報警效果顯示圖

        3.6 打印報表

        在程序中操作Word文檔,需要先在程序中啟動Word應(yīng)用程序,然后獲得Word文檔管理對象(Documents),通過文檔管理對象添加文檔對象(_document),由文檔對象獲得選區(qū)(Range),再通過選區(qū)向文檔中添加表格(Tables),最后通過(Selection)移動光標(biāo)位置并向表格中插入數(shù)據(jù)。

        由于記錄數(shù)據(jù)表數(shù)據(jù)項比較多,所以要進(jìn)行橫向預(yù)覽。聯(lián)機(jī)調(diào)試的運(yùn)行效果如圖7所示。

        圖7 歷史數(shù)據(jù)打印預(yù)覽

        4 結(jié) 語

        基于VC++ 6.0的船舶電站實時監(jiān)控系統(tǒng)在船舶電站實驗室進(jìn)行了實機(jī)調(diào)試,成功地實現(xiàn)了對2套船用柴油發(fā)電機(jī)組的現(xiàn)場監(jiān)控和數(shù)據(jù)的相關(guān)處理,系統(tǒng)運(yùn)行穩(wěn)定、可靠,監(jiān)控功能完善,界面友好,可視性強(qiáng)。

        [1] 明日科技.Visual C++程序開發(fā)范例寶典[M].北京:人民郵電出版社,2007.

        [2] 王煥文.艦船電力系統(tǒng)及自動裝置[M].北京:科學(xué)出版社,2004.

        [3] ODICON M.Inc.Modbus Protocol Reference Guide [M].

        1996.

        [4] 向中凡.Access2000實用操作與技巧[M].西安:西安電子科技大學(xué)出版社,2000.

        [5] 杜鴻震. 基于VC 6.0的相繼增壓柴油機(jī)試驗臺監(jiān)控系統(tǒng)軟件設(shè)計[D].哈爾濱:哈爾濱工程大學(xué),2006.

        猜你喜歡
        發(fā)電機(jī)組串口文檔
        煤氣發(fā)電機(jī)組DEH控制系統(tǒng)的優(yōu)化
        山東冶金(2022年4期)2022-09-14 08:59:30
        有人一聲不吭向你扔了個文檔
        淺談AB PLC串口跟RFID傳感器的通訊應(yīng)用
        基于RI碼計算的Word復(fù)制文檔鑒別
        基于PLC控制柴油發(fā)電機(jī)組3D 模型
        USB接口的多串口數(shù)據(jù)并行接收方法探索
        Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
        基于藍(lán)牙串口適配器的GPS接收機(jī)與AutoCAD的實時無線通信
        地礦測繪(2015年3期)2015-12-22 06:27:26
        八鋼歐冶爐TRT發(fā)電機(jī)組成功并網(wǎng)發(fā)電
        新疆鋼鐵(2015年3期)2015-02-20 14:13:56
        基于并行控制的FPGA多串口拓展實現(xiàn)
        中国人在线观看免费的视频播放| 亚洲 欧美 激情 小说 另类| 亚洲AV日韩Av无码久久| 精品久久精品久久精品| 区一区一日本高清视频在线观看| 亚洲一区二区三区熟妇| 国产精品久免费的黄网站| 亚洲成av人片在线观看无码| 91久久福利国产成人精品| 亚洲一区域二区域三区域四| 18禁止进入1000部高潮网站| 情侣黄网站免费看| 成全视频高清免费| 欧洲乱码伦视频免费| 久久精品一区二区熟女| 精品久久人妻av中文字幕| 精品欧美一区二区在线观看| 午夜日韩视频在线观看| 少妇被按摩出高潮了一区二区| 国产精品久久久久aaaa| 国产三级欧美| 久久本道久久综合一人| 国产高清一区二区三区三州| 中国老太婆bb无套内射| 免费av片在线观看网站| 国产青青草视频在线播放| 丝袜美腿高清在线观看| 天美传媒一区二区| 日韩精品欧美激情亚洲综合| 亚洲天堂中文字幕君一二三四| 自由成熟女性性毛茸茸应用特色 | 国产精品久久1024| 亚洲av熟女天堂久久天堂| 国产在线无码不卡影视影院| 亚洲另类精品无码专区| 免费国人成人自拍视频| 开心五月婷婷激情综合网| 精品国产人妻一区二区三区| 九一成人AV无码一区二区三区| 国产激情综合五月久久| 亚洲国产精品久久人人爱|