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