當(dāng)前位置:首頁 > 工業(yè)控制 > 電子設(shè)計自動化
[導(dǎo)讀]摘 要:機(jī)車數(shù)據(jù)監(jiān)控系統(tǒng)運(yùn)用VC++實(shí)現(xiàn)了對一內(nèi)燃機(jī)車運(yùn)行數(shù)據(jù)的實(shí)時監(jiān)控。通過計算機(jī)的串口傳輸內(nèi)燃機(jī)車數(shù)據(jù)儀中采集到的各種數(shù)據(jù),如機(jī)車型號、機(jī)車類型、累計運(yùn)行時間等等,監(jiān)控機(jī)車的運(yùn)行狀態(tài)以實(shí)現(xiàn)對機(jī)車的控制。

摘 要:機(jī)車數(shù)據(jù)監(jiān)控系統(tǒng)運(yùn)用VC++實(shí)現(xiàn)了對一內(nèi)燃機(jī)車運(yùn)行數(shù)據(jù)的實(shí)時監(jiān)控。通過計算機(jī)的串口傳輸內(nèi)燃機(jī)車數(shù)據(jù)儀中采集到的各種數(shù)據(jù),如機(jī)車型號、機(jī)車類型、累計運(yùn)行時間等等,監(jiān)控機(jī)車的運(yùn)行狀態(tài)以實(shí)現(xiàn)對機(jī)車的控制。設(shè)計的重點(diǎn)在于系統(tǒng)管理的軟件方面,具體來說是系統(tǒng)上位機(jī)的設(shè)計。以MFC (Microsoft Foundation Class Library)思路用類來實(shí)現(xiàn)串行通信和多線程編程, 并輔助以開放式數(shù)據(jù)接口(ODBC)在應(yīng)用程序中實(shí)現(xiàn)數(shù)據(jù)庫功能。

1 引言

隨著鐵路信息化數(shù)字化的發(fā)展,提出了機(jī)車的在線實(shí)時監(jiān)控,要求對車載設(shè)備的相關(guān)數(shù)據(jù)進(jìn)行實(shí)時采集和存儲。這對為技術(shù)人員提供及時準(zhǔn)確的機(jī)車信息,保證列車運(yùn)行的安全有著重要的意義。

本文介紹一種基于VC++的機(jī)車實(shí)時監(jiān)控系統(tǒng),是由后臺控制監(jiān)控系統(tǒng)和前臺采集系統(tǒng)所組成的一個分布式集成網(wǎng)絡(luò)。當(dāng)控制監(jiān)控系統(tǒng)與內(nèi)燃機(jī)車進(jìn)行通訊,則后臺控制監(jiān)控系統(tǒng)顯示計算機(jī)顯示的就是機(jī)車數(shù)據(jù)記錄儀采集到的各種機(jī)車數(shù)據(jù)。

2 功能分析

2.1 上位機(jī)的軟件功能主要有以下幾點(diǎn):

1)與下位機(jī)(機(jī)車數(shù)據(jù)儀)進(jìn)行通信,完成對下位機(jī)的讀寫;

2)能夠?qū)?shù)據(jù)進(jìn)行有效的識別,提取數(shù)據(jù)中的有用信息(如機(jī)車型號,機(jī)車編號,機(jī)車標(biāo)稱功率等);

3)對有效數(shù)據(jù)進(jìn)行處理,能夠以曲線或圖表形式顯示車輛運(yùn)行狀況;

4)為數(shù)據(jù)的查找與定位提供方便的手段,便于局部數(shù)據(jù)分析;

5)具有存檔、打印功能。

2.2 上位機(jī)主控程序功能劃分:


3 軟件實(shí)現(xiàn)

3.1 通訊協(xié)議

所謂通訊協(xié)議就是通訊雙方為了達(dá)到正確傳送和接收數(shù)據(jù)而達(dá)成的一組通訊規(guī)定。它包括發(fā)送/接收數(shù)據(jù)的格式、數(shù)據(jù)編寫與解讀方法以及通訊參數(shù)的設(shè)定。在通訊協(xié)議中,通訊參數(shù)的設(shè)定是通訊的前提,包括串口的選取,波特率設(shè)定,有無奇偶校驗(yàn),數(shù)據(jù)位的位數(shù),以及停止位的位數(shù)。下面介紹一下數(shù)據(jù)的格式和數(shù)據(jù)傳送。

數(shù)據(jù)格式: 定位數(shù)據(jù)從0開始。第0-第3字節(jié)=0x57, 0x77, 0x44, 0x4C為當(dāng)量里程記錄儀轉(zhuǎn)儲數(shù)據(jù)文件類型標(biāo)識頭;累計數(shù)據(jù)共176字節(jié),占數(shù)據(jù)文件中的第24字節(jié)到第199字節(jié);瞬時數(shù)據(jù)從第256字節(jié)開始,一直到結(jié)束,數(shù)據(jù)長度=瞬時數(shù)據(jù)的數(shù)據(jù)幀數(shù)×數(shù)據(jù)幀長;瞬時數(shù)據(jù)幀長包含幀校驗(yàn)碼。文件尾占3字節(jié)=0x45, 0x4e, 0x44。

數(shù)據(jù)傳送:累積數(shù)據(jù)每176個字節(jié)數(shù)據(jù)為一個數(shù)據(jù)塊;瞬時數(shù)據(jù)的數(shù)據(jù)長度=瞬時數(shù)據(jù)的數(shù)據(jù)幀數(shù)×數(shù)據(jù)幀長;瞬時數(shù)據(jù)幀長包含幀校驗(yàn)碼。

下位機(jī)每發(fā)送一個數(shù)據(jù)塊,隨即就發(fā)該數(shù)據(jù)塊的校驗(yàn)和,如果檢驗(yàn)和有誤,就重發(fā)該數(shù)據(jù)塊;如果數(shù)據(jù)未讀完,重復(fù)本操作,直到數(shù)據(jù)讀完。 命令中的校驗(yàn)占一個字節(jié),[校驗(yàn)]=([命令]+[目標(biāo)代碼]+[數(shù)據(jù)].字節(jié)1+…+[數(shù)據(jù)].字節(jié)n)mod 0x100。執(zhí)行結(jié)果返回值中的校驗(yàn)也占一個字節(jié),[校驗(yàn)]=([執(zhí)行結(jié)果代碼]+[數(shù)據(jù)].字節(jié)1+…+[數(shù)據(jù)].字節(jié)n)mod 0x100。

3.2 通訊流程

監(jiān)控系統(tǒng)與下位機(jī)(機(jī)車數(shù)據(jù)記錄儀)的通訊只需用到以下幾條命令:查詢下位機(jī)硬件工作狀態(tài)、查詢下位機(jī)數(shù)據(jù)紀(jì)錄狀態(tài)、讀累計數(shù)據(jù)、讀瞬時數(shù)據(jù)、寫數(shù)據(jù)。在上位機(jī)發(fā)出命令之前,下位機(jī)處于等待狀態(tài);當(dāng)命令發(fā)出之后,下位機(jī)探測所發(fā)出的命令并判斷該命令是否對自己操作。如果是,則按命令要求返回所要求的數(shù)據(jù);如果不是,則不回應(yīng);下位機(jī)收到采集系統(tǒng)送過來的數(shù)據(jù)以后,對它進(jìn)行分析和數(shù)據(jù)轉(zhuǎn)換,然后進(jìn)行顯示和保存。

將上位機(jī)的各種命令獨(dú)立地建立一個類MasterCommand,就用來處理上位機(jī)向下位機(jī)發(fā)送的命令。以下是對這個類的定義。

//命令碼,命令碼長度,命令顯示字串,獲取的數(shù)據(jù)長度/最大長度,數(shù)據(jù)放置起始位置,數(shù)據(jù)標(biāo)識定義位置

MasterCommand(char *comCode, const int &comCodeLen, CString comDispStr, const int &getDataLen, const int &dataPos, const int &dataSignPos)

init(comCode, comCodeLen, comDispStr, getDataLen, dataPos, dataSignPos);

3.2.1 查詢

A. 查詢下位機(jī)硬件工作狀態(tài)

用戶通過串口發(fā)送命令,如果命令正確執(zhí)行,則返回硬件的工作狀態(tài),根據(jù)數(shù)據(jù)交換

命令集可以判斷硬件工作得是否正常。程序?qū)⒂布ぷ鳡顟B(tài)顯示在用戶界面上,讓用戶可以很方便地了解硬件的工作狀態(tài),如果發(fā)現(xiàn)硬件有工作不正常的狀態(tài),就可以對硬件進(jìn)行相應(yīng)的處理。

B. 查詢下位機(jī)數(shù)據(jù)紀(jì)錄狀態(tài)

用戶通過串口發(fā)送命令,如果命令正確執(zhí)行,則返回下位機(jī)數(shù)

據(jù)記錄狀態(tài),根據(jù)數(shù)據(jù)交換命令集可以判斷數(shù)據(jù)記錄是否正常。如果數(shù)據(jù)記錄不正常,用戶也可以在界面上看到是哪方面出了問題,可以進(jìn)行相應(yīng)的處理。

3.2.2 讀數(shù)據(jù)

A. 讀累計數(shù)據(jù)

用戶在上位機(jī)發(fā)送讀累計數(shù)據(jù)的命令,下位機(jī)收到命令后向上位機(jī)返回執(zhí)行結(jié)果。執(zhí)行結(jié)果返回值:[執(zhí)行結(jié)果代碼] [數(shù)據(jù)] [校驗(yàn)]。

其中: [執(zhí)行結(jié)果代碼] 和 [校驗(yàn)] 均占一個字節(jié)。當(dāng)命令校驗(yàn)失敗或執(zhí)行失敗時,下位機(jī)只返回 [執(zhí)行結(jié)果代碼] 和 [校驗(yàn)] 碼。累計數(shù)據(jù)一共占176個字節(jié),在當(dāng)量儀數(shù)據(jù)存儲格式中對每一個字節(jié)都有詳細(xì)的定義。在程序中按照格式將數(shù)據(jù)取出來,并在用戶界面顯示出來。在所有數(shù)據(jù)正確接收后用戶可以選擇保存數(shù)據(jù),以供以后進(jìn)一步地查看,對數(shù)據(jù)進(jìn)行分析。

B. 讀瞬時數(shù)據(jù)

瞬時數(shù)據(jù)從第256字節(jié)開始,數(shù)據(jù)長度=瞬時數(shù)據(jù)的數(shù)據(jù)幀數(shù)×數(shù)據(jù)幀長;瞬時數(shù)據(jù)幀長包含幀校驗(yàn)碼。

3.2.3 寫數(shù)據(jù)

主機(jī)下送數(shù)據(jù)到從機(jī),寫當(dāng)量記錄儀中的所有累計數(shù)據(jù)。執(zhí)行正確時返回上位機(jī)要求寫入的數(shù)據(jù)(二進(jìn)制表示)。便于上位機(jī)校驗(yàn)。

4. 界面設(shè)計

控制系統(tǒng)的界面共有四個,它們是主界面、累計數(shù)據(jù)顯示界面、選擇寫入下位機(jī)數(shù)據(jù)界面。

⑴ 主界面

主界面是系統(tǒng)運(yùn)行的主要界面,它的作用向下位機(jī)是發(fā)送各種命令和對串口通訊的參數(shù)進(jìn)行設(shè)置,通過各種命令才會實(shí)現(xiàn)系統(tǒng)采集實(shí)時數(shù)據(jù)和進(jìn)行監(jiān)控的功能。也只有在發(fā)送各種命令時才會調(diào)用和顯示其他功能界面(如累計數(shù)據(jù)顯示界面等),也就是說主界面是其他功能界面的聯(lián)系紐帶。

在主界面的設(shè)計中采用了組合框、樹形視圖、列表框等控件,在界面下方的列表框中可以顯示運(yùn)行的程序、出錯報告及系統(tǒng)的狀態(tài)等。

(2)累計數(shù)據(jù)顯示界面

此界面的作用是當(dāng)上位機(jī)完成了采集下位機(jī)的累計數(shù)據(jù)時,可以由用戶選擇是否顯示采集的累計數(shù)據(jù)。用戶檢查了機(jī)車的累計數(shù)據(jù)后,可以在界面對累計數(shù)據(jù)進(jìn)行更改,然后就將數(shù)據(jù)進(jìn)行保存,以便將來對數(shù)據(jù)進(jìn)行管理。

(3) 選擇寫入下位機(jī)數(shù)據(jù)界面

上位機(jī)采集到的數(shù)據(jù)都可以保存,若下位機(jī)此時的數(shù)據(jù)有必要進(jìn)行更改,可以從以前采集到的數(shù)據(jù)中選擇一份寫入下位機(jī),也就實(shí)現(xiàn)了系統(tǒng)的控制功能。

5. 小結(jié)

本系統(tǒng)在實(shí)際應(yīng)用中運(yùn)行良好,數(shù)據(jù)的完整性、實(shí)時性和程序的可靠性高。它操作簡便,具有很強(qiáng)的易用性。



來源:過往煙云0次

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉