賀春峰,郭蘭英,惠 飛,王 浩
(長安大學 信息工程學院,陜西 西安 710064)
隨著當今社會的發展和人們物質生活水平的提高,機動車已經進入了千家萬戶,車輛的過多給公路管理起來造成一定的困難,特別是貨車的管理,盡管公路局已經在公路的每一段才設置了稱重收費站,但貨車司機還是采用站外卸貨,繞行,或者液壓裝置等一些高科技的手段,逃避檢測,同時貨車排隊等候檢測,也會造成公路的堵塞。
在貨車行駛的過程中稱重可以很好的解決公路交通問題,但是貨車的車載終端系統的配置不適合對大量數據進行分析和存儲,因此在貨車行駛中將檢測到的載重數據傳輸到管理系統,是解決問題的一個關鍵步驟。
本系統是由Visual C++6.0結合SQL Server 2000開發而成,使用ODBC操作數據庫,VC為數據庫開發提高了良好的開發環境,ODBC能以統一的方式處理所以的數據庫。
在數據傳輸方面,本系統采用GPRS和TCP兩種傳輸方式,實現了對數據庫管理系統的操作。與以往的車載系統采用GSM傳輸相比較,有一下優點:①GPRS采用分組交換技術,發送數據長度不受限制,而GSM每次發送最多只能有140個字節。②GPRS是雙向的,可以確切知道信息發送成敗,而GSM是單向的。③GPRS費用為0.01元/k,即1分錢可以傳輸數據1024個字節。而GSM發送140個字節需要0.1元④GPRS的延時時間很短。GPRS發送60字節延時5s左右,而GSM要延時10s以上。
系統有6個模塊,用戶管理模塊、貨車信息模塊、貨車載重模塊、貨車超載模塊、載重查詢模塊、超載處理模塊。各個模塊直接的關系示意圖如圖1所示。

圖1 系統模塊示意圖Fig.1 System block diagram
1)用戶管理模塊 此模塊用來管理用戶的信息,用戶分為管理權限和使用權限,用戶以管理的權限進入管理系統后,可以添加、刪除和查看用戶信息,還可以修改用戶的密碼。
2)貨車信息模塊 此模塊用來管理貨車的基本信息,用戶可以查看貨車的信息,可以根據貨車的車牌號、車主或者注冊時間查詢貨車信息,當用戶以管理權限進入時,可以添加、刪除貨車信息。
3)貨車載重模塊 此模塊用來顯示貨車最后一次檢測時的載重值,包括查詢貨車載重時的時間,用戶可以根據車牌號查詢這輛車的載重時間和載重值。信息不可以被修改,只能通過查詢覆蓋。
4)貨車超載模塊 此模塊顯示貨車的超載信息,包括所有的歷史超載信息,因為要保護超載數據,信息不能被添加、修改和刪除,任何權限的用戶只能查詢這些信息,可通過車牌號來查詢貨車的的超載信息。
5)載重查詢模塊 此模塊能夠讓用戶查詢到貨車當前的載重,并將查詢到的信息記錄到貨車載重數據庫中,如果查詢到的信息超載,同時會查詢得到的數據記錄到貨車超載數據庫中去。
6)超載處理模塊 此模塊能夠自動處理從車載終端得到的超載信息,并且處理信息,將信息內容記錄到貨車超載表中。此過程在后臺進行,不需要用戶對其進行操作,用戶只能夠看到超載信息。
數據庫是儲存和處理數據的倉庫,是一個系統的重要部分,數據庫不僅能夠存儲個管理數據,而且能夠提供用戶所需的數據管理方式。
本系統的數據庫使用SQL Server 2000設計,主要包括4方面的數據:1)用戶管理表(TABUSER):用戶名(主鍵)、密碼、權限;2)貨車信息表(TABMESSAGE):車牌號(主鍵)、車主姓名、注冊時間、歸屬地、貨車品牌、貨車類型、貨車載重、超載次數、關聯字符;3)貨車載重表(TABLOAD):編號(主鍵)、車牌號、日期、時間、載重、是否超載;4)貨車超載表(TABOVERLOAD):編號(主鍵)、車牌號、超載日期、超載時間、載重;5)貨車車牌號管理模塊(TABTRUCKNUMBER):車牌標志(主鍵)、歸屬省、歸屬地。
系統主界面采用MFC下的對話框模式,主界面由用戶登陸管理和貨車信息管理組成,包括貨車基本信息、載重信息和超載信息等,通過Tab控件,對貨車信息的顯示進行控制。界面圖形如圖2所示。
本系統中,對貨車車載終端的數據通信有兩個部分,一是系統服務器主動查詢車載終端的載重信息,終端得到命令后,將載重信息返回給系統服務器。二是車載終端自動檢測載重信息,并將超載信息自動發送到系統服務器。
當車載終端的數量很多時,系統要接受的信息量就比較大,而主動查詢信息時,從命令發出到數據到終端信息返回需要一定的時間,所以只用一種通信方式會給信息接受產生混亂,這里主動查詢用GPRS通信,自動接受用TCP通信。如圖3所示。

圖2 系統主界面圖Fig.2 Main system interface diagram

圖3 數據無線傳輸Fig.3 Wireless transmission of data
本系統中,使用的GPRS模塊的產品型號是AL-GPRSS100,通過串口和終端連接。AL-GPRS-S100是南京沃龍電子科技有限公司設計的一款GPRS透明傳輸終端(GPRS DTU),內置工業級 GPRS 模塊,支持 DDP、DNS、VIPS 多種通訊模式。具有RS232接口的工業設備無需更改任何軟件即可通過GPRS無線聯網。

表1 AL-GPRS-S100的規格參數表Tab.1 Specification of AL-GPRS-S100
VC連接串口要插入MSComm串口控件,作為一個串行通訊控件為程序員串口通訊編程節省了很多時間,當控件載入對話框中時,會自動創建控件CMSComm的類。
1)串口連接程序

2)串口發送數據程序

3)串口接收數據程序

系統和車載終端不是一個局域網,所以首先要穿透局域網,這里采用“TCP打孔”,“TCP打孔”與其他的方法相比較,具有較易實現、效率高等優點,基本原理是:處于局域網的用戶先與公網上的一個連接服務器建立輔助連接,在呼叫發生時,通過連接服務器的協助在呼叫雙方間建立TCP直連。
VC進行網絡通信要插入CSocket類,CSocket支持同步操作,可以單獨使用,通常情況下與CSocketFile、CArchive類一起實現數據的發送和接收。

在本系統中,TCP只需要接受數據,不需要發送數據。
在載重查詢模塊中,用戶通過車牌號對貨車載重查詢時,發送數據。具體過程是:當輸入查詢的車牌號時,通過在貨車信息表(TABMESSAGE)查詢車牌號,將對應的關聯字符作為查詢命令,發送出去。
數據發送過程如圖4所示。

圖4 數據發送設計流程圖Fig.4 Flow chart of send data design
在載重查詢模塊和超載處理模塊中,系統接收數據,具體過程是:系統接受的每一個數據是由兩部分組成,關聯字符+貨車載重,先將數據分開,通過關聯字符在貨車信息表(TABMESSAGE)查詢出對應的車牌號,再根據車牌號在貨車載重表(TABLOAD)中查找,將貨車載重的數據修改或者新建。同時通過關聯字符在貨車信息表(TABMESSAGE)查詢出對應的載重,比較數據表中的載重值和接收到的載重值大小,決定是否將得到時間保存到貨車超載表 (TABOVERLOAD)中。數據接受過程如圖5所示。

圖5 數據接收設計流程圖Fig.5 Flow chart of receiver data design
界面主要包括串口連接部分、發送數據部分和接受數據部分。串口部分的參數選擇由組合框提供,要發送的數據有編輯框輸入發送,接收的數據和接受數據的時間保存在列表框中,對話框的界面如圖6所示。

圖6 數據傳輸界面Fig.6 Interface of data transfer
例:在貨車信息表中,車牌號為“陜 A00000”,對應的關聯字符為“SHAN0000”,載重為“20”。當查詢此貨車載重時,在文本框中輸入“陜A00000”,通過貨車信息表查到關聯字符 “SHAN0000”,將關聯字符發送出去。當接受到字符“SHAN000025.000” 時, 先將字符分開成 “SHAN0000”與“25.000”,在貨車信息表中查找關聯字符,得到車牌號和載重,比較載重和字符“25.000”大小,得到超載,然后將車牌號和超載字符“25.000”保存到貨車超載表中。
文中闡述了使用Visual C++6.0和SQL server 2000設計一個管理系統的實現思想和管理方法,以及詳細介紹了對外界進行數據通信,達到了系統對車載終端的檢測,以及對貨車信息的管理,滿足了高可靠、高穩定的要求。
[1]劉瑞寧,梁水,宋坤.Visual C++全能速查寶典[M].北京:人民郵電出版社,2009.
[2]李世軍,賈兆航,何樂生,等.GSM&GPRS在無線抄表系統中的應用與比較[J].電子設計工程,2011,19(1):73-76.
LI Shi-jun,JIA Zhao-hang,HE Le-sheng,et al.Application and comparison of GSM&GPRS in wireless meter reading system[J].Electronic Design Engineering,2011,19(1):73-76.
[3]王晶.SQL Server 2000管理與應用開發教程[M].北京:人民郵電出版社,2009.
[4]代勇,李偉,楊宏帥.Visual C++網絡通信編程技術詳解[M].北京:機械工業出版社,2011
[5]吳新龍.端到端通信中TCP穿越NAT的解決方案 [J].電力系統通信,2006,27(159):10-12.
WU Xin-long.Solution for NAT traversal of TCP in P2P communications[J].Telecommunication for Electric Power System,2006,27(159):10-12.
[6]王坤,高贇.基于VC++實現串口通信的方法[J].信息化研究,2010,36(10):52-54.
WANG Kun,GAO Yun.Implementation of serial communication program based on VC++[J].Informatization Research,2010,36(10):52-54.