基于物聯網的鐵路貨車軸溫監測系統
2.2 STM32網關軟件設計
本文引用地址:http://cqxgywz.com/article/201703/345028.htm2.2.1 網關軟件總體設計
嵌入式操作系統μC/OS-III是一種廣泛應用于嵌入式系統微內核的實時操作系統,支持任務時間片輪轉調度、任務間通信以及基本的內存管理機制等。將其移植到STM32F103上,主要對OS_CPU.H 頭文件、OS_CPU_C.C源代碼文件、OS_CPU_A.S 匯編代碼文件的編寫與修改。針對用戶交互和數據存儲方面的考慮,系統接著移植了STemWin圖形用戶界面系統和FATFS嵌入式文件系統。系統上電后,進入一系列硬件初始化工作,如串口、定時器、觸摸屏、SD卡等;然后初始化μC/OS-III操作系統和STemWin圖形界面系統。初始化完成后開始創建任務,主要為每個任務設置優先級、堆棧大小和任務函數,創建完成后調用OSStart()函數開啟多任務調度。網關軟件總體設計流程如圖8所示。

圖8 網關軟件總體設計流程圖
2.2.2 GPRS初始化任務
GPRS初始化任務主要是設置一系列A T指令完成SIM900A的初始化工作,設置TCP最大嘗試連接的次數為5,GPRS初始化任務結束后掛起任務,并在LCD顯示屏上顯示地面監控中心主機的IP地址、端口號和GPRS連接狀態。
2.2.3 串口接收任務
串口接收任務負責對ZigBee匯聚節點發來的數據包進行接收并解析,由于串口接收數據量較大,為區分不同節點的數據包,定義串口連續接收2個字符之間的時間差不大于10ms來決定是不是一次連續的數據。串口接收到一幀有效數據后對其進行解包,解包后的數據保存在結構體ZigMsg_Packet對應的成員變量中,如下所示:
typedef struct {
uchar Carnumber[5]; //車廂編號
uchar Et_temp[5]; //環境溫度
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]; //軸承狀態(8個字節)
uchar Bearnumber[8]; //軸承號(8個字節)
uchar Carstatus ; //車廂狀態
}ZigMsg_Packet;
2.2.4 GUI顯示任務
GUI界面顯示任務主要完成了以下工作:1、確定界面布局,顯示界面基本信息;2、顯示LISTVIEW控件,并通過LISTVIEW顯示采集的數據和報警信息;3、制作字模,建立字母和漢字庫,并在屏幕上顯示;4、顯示當前時間和GPRS信息。界面顯示如圖9所示,圖中顯示的是2016年5月22日21點18分10秒接收的數據,LISTVIEW控件中顯示了對應節點的車廂號、環境溫度和8個軸承溫度,由于采集節點中設置溫度報警的閾值是26.5℃,可以看到軸承對應單元格的背景顏色均為綠色,說明當前軸承狀態都是正常的。

圖9 GUI界面顯示
2.2.5 FATFS存儲任務
FATFS存儲任務負責將串口接收到的有效數據實時保存到本地SD卡中,以便貨車維護人員查看數據。在保存數據時需要確認SD卡是否掛載成功,接著調用f_open()函數實現文件的建立和打開工作,如果文件已經建立則直接調用f_write()函數寫入數據,待寫入完成后調用f_close()函數關閉文件即可。圖10為SD卡中保存的數據。

圖10 FATFS保存數據
2.2.6 系統監視任務
由于系統的數據傳輸容量較大易發生網路擁塞,尤其是貨車在過隧道或山洞時很容易造成斷網現象,系統加入了監視任務每隔15秒查詢一次GPRS狀態,主要通過發送“AT+CSQ”查詢信號質量、發送“AT+CPIN?”確定SIM卡是否在位,若沒有定期返回“OK”則關閉移動場景、重新發起TCP連接指令,將連接狀態在GUI上實時顯示出來。
3 上位機的設計與實現
上位機的設計主要是以VC++ 2010為平臺開發完成的。上位機作為C/S模式的服務器,運行程序時自動獲取顯示本機IP地址,手動配置一個端口號,開啟監聽之后,此時GPRS客戶端需將目的地址很端口號設置成服務器端的地址和端口號,連接成功后,監控界面上連接狀態會顯示綠色,當有數據通過Socket發送時,系統根據編組號分別實時顯示變化,若出現某一車廂編號工作狀態為紅色,表示本節車廂軸承出現故障,點擊后面“查看”按鈕,即可查詢哪個軸承出現故障了。如圖11所示,車廂編號為95271工作狀態為紅色,可知本節車廂的軸承有故障,點擊控件“查看”后自動打開一個新的名為“軸承詳細信息”的對話框,如圖12所示。

圖11 上位機監控主界面

圖12 軸承詳細信息
從圖12可以清楚地發現3、5、6和8號軸承都出現故障。這也驗證了系統所設計的報警功能的準確性。
從TCP/IP發送過來的數據,一方面實時顯示,另一方面還需要自動存儲到數據庫,以便專家分析歷史數據。本文采用的是Access 2010設計數據庫表,當有數據接收時,表里面的內容就立即更新,圖13是存入數據庫表中數據的一部分。

圖13 數據存放表
4 結論
本文將物聯網技術應用到鐵路貨車軸溫監測系統中,通過研究與試驗工作,系統達到了軸承狀態動態監控和數據可靠傳輸的效果,彌補了現有的軸溫檢測裝置的不足,能夠提高軸溫監測的實時性、可靠性和方便性,在鐵路貨車行車安全監測領域具有較好的應用前景。
作者:陳啟武 張高明 吳新春西南交通大學信息科學與技術學院(四川 成都 610031)













評論