久久ER99热精品一区二区-久久精品99国产精品日本-久久精品免费一区二区三区-久久综合九色综合欧美狠狠

新聞中心

EEPW首頁 > 嵌入式系統 > 專題 > 基于物聯網的鐵路貨車軸溫監測系統

基于物聯網的鐵路貨車軸溫監測系統

作者: 時間:2017-03-09 來源:電子產品世界 收藏

  2.2 STM32網關軟件設計

本文引用地址:http://cqxgywz.com/article/201703/345028.htm

  2.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 串口接收任務

  串口接收任務負責對匯聚節點發來的數據包進行接收并解析,由于串口接收數據量較大,為區分不同節點的數據包,定義串口連續接收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)


上一頁 1 2 下一頁

關鍵詞: 物聯網 ZigBee

評論


相關推薦

技術專區

關閉