基于物聯(lián)網(wǎng)的鐵路貨車軸溫監(jiān)測系統(tǒng)
2.2 STM32網(wǎng)關軟件設計
本文引用地址:http://www.ex-cimer.com/article/201703/345028.htm2.2.1 網(wǎng)關軟件總體設計
嵌入式操作系統(tǒng)μC/OS-III是一種廣泛應用于嵌入式系統(tǒng)微內核的實時操作系統(tǒng),支持任務時間片輪轉調度、任務間通信以及基本的內存管理機制等。將其移植到STM32F103上,主要對OS_CPU.H 頭文件、OS_CPU_C.C源代碼文件、OS_CPU_A.S 匯編代碼文件的編寫與修改。針對用戶交互和數(shù)據(jù)存儲方面的考慮,系統(tǒng)接著移植了STemWin圖形用戶界面系統(tǒng)和FATFS嵌入式文件系統(tǒng)。系統(tǒng)上電后,進入一系列硬件初始化工作,如串口、定時器、觸摸屏、SD卡等;然后初始化μC/OS-III操作系統(tǒng)和STemWin圖形界面系統(tǒng)。初始化完成后開始創(chuàng)建任務,主要為每個任務設置優(yōu)先級、堆棧大小和任務函數(shù),創(chuàng)建完成后調用OSStart()函數(shù)開啟多任務調度。網(wǎng)關軟件總體設計流程如圖8所示。
圖8 網(wǎng)關軟件總體設計流程圖
2.2.2 GPRS初始化任務
GPRS初始化任務主要是設置一系列A T指令完成SIM900A的初始化工作,設置TCP最大嘗試連接的次數(shù)為5,GPRS初始化任務結束后掛起任務,并在LCD顯示屏上顯示地面監(jiān)控中心主機的IP地址、端口號和GPRS連接狀態(tài)。
2.2.3 串口接收任務
串口接收任務負責對ZigBee匯聚節(jié)點發(fā)來的數(shù)據(jù)包進行接收并解析,由于串口接收數(shù)據(jù)量較大,為區(qū)分不同節(jié)點的數(shù)據(jù)包,定義串口連續(xù)接收2個字符之間的時間差不大于10ms來決定是不是一次連續(xù)的數(shù)據(jù)。串口接收到一幀有效數(shù)據(jù)后對其進行解包,解包后的數(shù)據(jù)保存在結構體ZigMsg_Packet對應的成員變量中,如下所示:
typedef struct {
uchar Carnumber[5]; //車廂編號
uchar Et_temp[5]; //環(huán)境溫度
uchar Bear1temp[5]; //軸承1溫度
uchar Bear2temp[5]; //軸承2溫度
uchar Bear3temp[5]; //軸承3溫度
uchar Bear4temp[5]; //軸承4溫度
uchar Bear5temp[5]; //軸承5溫度
uchar Bear6temp[5]; //軸承6溫度
uchar Bear7temp[5]; //軸承7溫度
uchar Bear8temp[5]; //軸承8溫度
uchar Bearstatus[8]; //軸承狀態(tài)(8個字節(jié))
uchar Bearnumber[8]; //軸承號(8個字節(jié))
uchar Carstatus ; //車廂狀態(tài)
}ZigMsg_Packet;
2.2.4 GUI顯示任務
GUI界面顯示任務主要完成了以下工作:1、確定界面布局,顯示界面基本信息;2、顯示LISTVIEW控件,并通過LISTVIEW顯示采集的數(shù)據(jù)和報警信息;3、制作字模,建立字母和漢字庫,并在屏幕上顯示;4、顯示當前時間和GPRS信息。界面顯示如圖9所示,圖中顯示的是2016年5月22日21點18分10秒接收的數(shù)據(jù),LISTVIEW控件中顯示了對應節(jié)點的車廂號、環(huán)境溫度和8個軸承溫度,由于采集節(jié)點中設置溫度報警的閾值是26.5℃,可以看到軸承對應單元格的背景顏色均為綠色,說明當前軸承狀態(tài)都是正常的。
圖9 GUI界面顯示
2.2.5 FATFS存儲任務
FATFS存儲任務負責將串口接收到的有效數(shù)據(jù)實時保存到本地SD卡中,以便貨車維護人員查看數(shù)據(jù)。在保存數(shù)據(jù)時需要確認SD卡是否掛載成功,接著調用f_open()函數(shù)實現(xiàn)文件的建立和打開工作,如果文件已經建立則直接調用f_write()函數(shù)寫入數(shù)據(jù),待寫入完成后調用f_close()函數(shù)關閉文件即可。圖10為SD卡中保存的數(shù)據(jù)。
圖10 FATFS保存數(shù)據(jù)
2.2.6 系統(tǒng)監(jiān)視任務
由于系統(tǒng)的數(shù)據(jù)傳輸容量較大易發(fā)生網(wǎng)路擁塞,尤其是貨車在過隧道或山洞時很容易造成斷網(wǎng)現(xiàn)象,系統(tǒng)加入了監(jiān)視任務每隔15秒查詢一次GPRS狀態(tài),主要通過發(fā)送“AT+CSQ”查詢信號質量、發(fā)送“AT+CPIN?”確定SIM卡是否在位,若沒有定期返回“OK”則關閉移動場景、重新發(fā)起TCP連接指令,將連接狀態(tài)在GUI上實時顯示出來。
3 上位機的設計與實現(xiàn)
上位機的設計主要是以VC++ 2010為平臺開發(fā)完成的。上位機作為C/S模式的服務器,運行程序時自動獲取顯示本機IP地址,手動配置一個端口號,開啟監(jiān)聽之后,此時GPRS客戶端需將目的地址很端口號設置成服務器端的地址和端口號,連接成功后,監(jiān)控界面上連接狀態(tài)會顯示綠色,當有數(shù)據(jù)通過Socket發(fā)送時,系統(tǒng)根據(jù)編組號分別實時顯示變化,若出現(xiàn)某一車廂編號工作狀態(tài)為紅色,表示本節(jié)車廂軸承出現(xiàn)故障,點擊后面“查看”按鈕,即可查詢哪個軸承出現(xiàn)故障了。如圖11所示,車廂編號為95271工作狀態(tài)為紅色,可知本節(jié)車廂的軸承有故障,點擊控件“查看”后自動打開一個新的名為“軸承詳細信息”的對話框,如圖12所示。
圖11 上位機監(jiān)控主界面
圖12 軸承詳細信息
從圖12可以清楚地發(fā)現(xiàn)3、5、6和8號軸承都出現(xiàn)故障。這也驗證了系統(tǒng)所設計的報警功能的準確性。
從TCP/IP發(fā)送過來的數(shù)據(jù),一方面實時顯示,另一方面還需要自動存儲到數(shù)據(jù)庫,以便專家分析歷史數(shù)據(jù)。本文采用的是Access 2010設計數(shù)據(jù)庫表,當有數(shù)據(jù)接收時,表里面的內容就立即更新,圖13是存入數(shù)據(jù)庫表中數(shù)據(jù)的一部分。
圖13 數(shù)據(jù)存放表
4 結論
本文將物聯(lián)網(wǎng)技術應用到鐵路貨車軸溫監(jiān)測系統(tǒng)中,通過研究與試驗工作,系統(tǒng)達到了軸承狀態(tài)動態(tài)監(jiān)控和數(shù)據(jù)可靠傳輸?shù)男Ч?,彌補了現(xiàn)有的軸溫檢測裝置的不足,能夠提高軸溫監(jiān)測的實時性、可靠性和方便性,在鐵路貨車行車安全監(jiān)測領域具有較好的應用前景。
作者:陳啟武 張高明 吳新春西南交通大學信息科學與技術學院(四川 成都 610031)
評論