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

基于Visual C++6.0的船舶電站實時監控系統研究

2008-04-24 05:06:44關紅兵,黃溫赟,史延興
中國艦船研究 2008年4期
關鍵詞:單片機系統

1 引 言

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

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

圖1 Visual C++ 6.0應用程序創建過程

Visual C++ 6.0作為一種通用程序開發系統,以其強大的數據采集、數據處理、數據分析功能在現代測控領域中得到了廣泛的應用。在對硬件的支持方面,Visual C++ 6.0集成了與RS-232/485、PLC和插入式數字采集設備等進行數據通信的全部功能,利用Windows技術的優點,在Visual C++ 6.0開發平臺下,設計了船舶電站實時監控系統。

2 系統構成

船舶電站[2]實時監控系統由PC機、單片機和RS-485總線組成兩級控制模式,軟件協議采用支持RS-485網絡的Modbus ASCII[3]協議,數據存儲用ACCESS 2003[4]數據庫(圖2)。

圖2 船舶電站柴油發電機組監控系統結構框圖

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

3 實時監控系統的實現

3.1 系統模塊的劃分

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

圖3 軟件系統模塊結構示意圖

3.2 系統模塊軟件實現關系

系統模塊軟件實現關系如圖4所示,其中寬箭頭表示數據流向。

圖4 系統模塊實現關系

3.3 串口類通信

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

使用函數關鍵代碼如下:

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

2) 啟動串口通信監測線程函數StartMonitoring()來啟動串口;

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

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

5) 停止監測線程函數StopMonitoring();

6) 關閉串口函數C1osePort ( )。

相應的串口消息處理函數,要手動添加消息處理函數,步驟如下:

( 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 數據庫模塊

ADO(ActiveX Data Object)ActiveX數據對象,是基于OLE DB的訪問接口,它是面向對象的OLE DB技術。ADO對ACCESS數據庫開發的基本流程及它的基本步驟如下:

1) 初始化COM庫

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

2) 用Connection對象連接數據庫;

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

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

聯機調試的數據庫顯示實現效果如圖5所示。

圖5 歷史記錄顯示

3.5 報警模塊

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

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

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

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

聯機調試的實現效果如圖6所示。

圖6 在線預警、報警效果顯示圖

3.6 打印報表

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

由于記錄數據表數據項比較多,所以要進行橫向預覽。聯機調試的運行效果如圖7所示。

圖7 歷史數據打印預覽

4 結 語

基于VC++ 6.0的船舶電站實時監控系統在船舶電站實驗室進行了實機調試,成功地實現了對2套船用柴油發電機組的現場監控和數據的相關處理,系統運行穩定、可靠,監控功能完善,界面友好,可視性強。

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

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

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

1996.

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

[5] 杜鴻震. 基于VC 6.0的相繼增壓柴油機試驗臺監控系統軟件設計[D].哈爾濱:哈爾濱工程大學,2006.

猜你喜歡
單片機系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于PowerPC+FPGA顯示系統
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
半沸制皂系統(下)
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
主站蜘蛛池模板: 国产午夜无码片在线观看网站| a亚洲天堂| 91成人精品视频| 国产超碰在线观看| 五月激情综合网| 亚洲精品在线91| 国产欧美视频综合二区| 亚洲色图欧美在线| 久久久久久久久18禁秘| 另类欧美日韩| 中文字幕乱码中文乱码51精品| 久久99国产乱子伦精品免| 亚洲色图在线观看| A级毛片无码久久精品免费| 在线观看无码av五月花| 亚洲无码视频图片| 久久免费精品琪琪| 欧美性久久久久| 国产欧美成人不卡视频| 国产大片喷水在线在线视频| 色综合激情网| 国产精品露脸视频| 黄色福利在线| 亚洲九九视频| 久久semm亚洲国产| 久久精品丝袜高跟鞋| 激情视频综合网| 看国产毛片| 久久综合伊人77777| 日韩av电影一区二区三区四区| 国产成人无码播放| 日本成人福利视频| 亚州AV秘 一区二区三区| 日韩欧美高清视频| 亚洲欧美自拍视频| 2021国产v亚洲v天堂无码| 无码福利视频| 天天躁日日躁狠狠躁中文字幕| 2020国产精品视频| 免费人成在线观看视频色| 四虎精品国产AV二区| 国产手机在线观看| 美女裸体18禁网站| 亚洲欧美不卡| 亚洲精品无码在线播放网站| 高清精品美女在线播放| 91精品视频在线播放| 91人人妻人人做人人爽男同| 国产精品香蕉在线观看不卡| 国产在线视频自拍| 国产二级毛片| 国产在线无码一区二区三区| 亚洲国产高清精品线久久| 99热精品久久| 国产97区一区二区三区无码| 无码视频国产精品一区二区| 亚洲色无码专线精品观看| 亚洲男人在线天堂| 亚洲 欧美 日韩综合一区| 久久久久久午夜精品| 国产精品第页| 网友自拍视频精品区| 国产亚洲高清视频| 99久久99这里只有免费的精品| 真实国产乱子伦视频| 婷婷六月综合| 国产精品永久久久久| 国产区福利小视频在线观看尤物| 亚洲成年人网| 毛片基地视频| 久草视频福利在线观看| 精品福利网| 亚洲视频免费播放| 国产精品人莉莉成在线播放| 免费国产小视频在线观看| 免费一看一级毛片| 久久99国产综合精品女同| 熟女成人国产精品视频| 国产精品私拍99pans大尺度| 亚洲va欧美va国产综合下载| 成色7777精品在线| 亚洲成综合人影院在院播放|