王秀麗,蘇文哲 ,薛漭潮,盧慧超 ,史恒瑞,王泓靜
(山西大學, 山西 太原 030013)
?
基于Visual Studio的公共自行車系統軟件設計
王秀麗,蘇文哲 ,薛漭潮,盧慧超 ,史恒瑞,王泓靜
(山西大學, 山西 太原 030013)
摘要:公共自行車系統,簡稱PBS,在城市交通當中發揮著重要的作用。文中以此為研究內容提出一種通信設計方案,其上位機程序在Visual Studio2013軟件中編寫,采用Modbus-RTU 標準協議,并運用Microsofr.Net Framework中的Serial Port類,實現了PBS中上位監控機與公共自行車各站點下位機的通信功能。通過搭建實際系統并調試后,達到預期目的,驗證了該方案是簡單可行的。
關鍵詞:Visual Studio;通信;公共自行車;租賃系統;軟件設計
公共自行車是環保出行的一種交通工具,它方便快捷、綠色低碳,越來越受到人們的關注。人們可以通過各站點的下位機查詢到一些相關信息,同時本站點的各種信息(如空余車位、故障車輛等)可由主控的上位機予以監控。本文以此為基礎,提出一種上位機與下位機之間新的軟件設計,即基于Microsofr.Net Framework中的Serial Port類實現的一種通信方式。
本系統的上位機用C#編寫,使用Visual Studio 2013軟件編程,采用Microsoft.NET Framework平臺中的串口控件Serial Port和定時器(Timer)定時對站點內的儲存自行車狀態的寄存器進行詢問,最后由可視化控件(例如TextBox)進行狀態的顯示。
整體來說,軟件除了具有車站自行車狀態顯示的基本功能外(車站狀態選項卡),另外加入了通用的Modbus調試功能(Modbus調試選項卡),提高了軟件的通用性,也可以應用于其他使用Modbus協議進行通信的場合。軟件在系統出現問題時可提供幫助。為了使用戶得到滿意的通訊效果,軟件加入了一些文本提示(說明選項卡)。
啟動程序后,首先在Modbus中設置好串口通信的參數,與單片機建立通信后的程序流程圖如圖1所示。

圖1 程序流程圖
“車站狀態選項卡”實現了站點的實時顯示,即對站點的車位容量(車位總數)、已經被租賃自行車的數量(外借車數)、被查詢站點車位空余的數目(車站空位)等數據進行實時掃描并以文本顯示出來。為了方便地顯示出通信狀態,成功通信時狀態指示燈會從灰色變成綠色,同時為了方便地進行站點調試,也針對站點提供了聯級數、設備地址等編輯功能。設計好的界面如圖2所示。

圖2 車站狀態選項卡
“Modbus調試選項卡”中基本包含了軟件中所有的設置、調試功能。進入軟件后首先要遍歷串口以供用戶確定并選擇哪些串口是設備串口進而與單片機建立通信,然后需先后設置串口通信參數(例如串口波特率、數據位、校驗位、停止位等)和Modbus通信參數(例如設備地址、讀寄存器地址、讀寄存器數量等),設置完串口通信參數后就可以單擊“打開串口”按鈕來實現打開串口的操作和相關通信參數的應用了。在打開串口后可以進行一些簡單的Modbus調試來檢測硬件是否正常使用(例如發送、接收數據等),同時使用車站狀態選項卡中的“激活”按鈕,就可以激活軟件與相關站點單片機的通信。設計好的界面如圖3所示。

圖3 Modbus調試選項卡
“說明選項卡”中聲明了調試中的一些方法技巧和軟件的功能限制。
本文采用串行通信方式,通訊協議采用Modbus-RTU標準協議,波特率為9600,1個起始位,8個數據位,低位先發送,采用CRC16校驗。
在RTU模式中,新的信息總是以至少3.5個字符的靜默時間開始,緊接著傳送第一個域:設備地址。整幀的信息必須以一個連續的數據流進行傳輸,如果信息結束前存在超過1.5個字符以上的間隔時間,則出錯。
一幀信息的標準結構如表1。
地址域:從機(目標地址)的有效地址范圍為0~247,0為廣播地址。
功能域:有效編碼為1~255。
數據域:高字節在前,低字節在后;數據域由多組這樣的數據構成——兩個十六進制數為一組,范圍在00~FF之間。
CRC校驗:CRC生成后,高字節在前,低字節在后。

表1 一幀信息的標準結構
(n是由功能碼確定的)
本設計中的具體一幀數據(讀保持寄存器(0x03))如表2、表3。

表2 一幀數據的請求

說明:設備地址分別對應四個分站單片機的設備地址,在硬件編程時采用一個常量表示;功能碼是0x03,在Modbus協議中表示讀保持寄存器;起始地址是指單片機內寄存器的起始地址,在硬件編程中,使用數組模擬物理上的寄存器,并由本設計的硬件決定了寄存器的數量應當不少于8;讀寄存器數量可以根據實際級聯情況進行改變;CRC校驗生成后,高字節在前,低字節在后。
說明:字節數是指目標讀取的寄存器的總字節數;N是指請求中指定的讀寄存器數量。
(1)Modbus數據發送幀的計算程序
Modbus數據發送幀的計算程序如下:
{
case 0:
if (EnableFlag[0])
{
SiteBuffer[0] = (byte)Convert.ToInt16(textBox_SiteAddress1.Text);//
修改設備地址
SiteBuffer[5] = (byte)Convert.ToInt16(comboBox_Count1.Text);//
修改聯級數量,進而確定讀寄存器的數量
SiteCRC16 = crc16(SiteBuffer);//計算CRC校驗的高低字節
SiteBuffer[6] = SiteCRC16[0];
SiteBuffer[7] = SiteCRC16[1];
SendFrames(SiteBuffer);
}
break;
default:
SiteIndex = 0;
break;
}
}
(2)Modbus調試
設置好Modbus參數后,可以選擇發送一幀命令,也可以持續發送命令達到實時監測的效果。
發送一幀命令效果如圖4所示。

圖4 發送一幀命令顯示圖
(3)車站狀態的巡檢
單擊車站狀態選項卡,單擊“激活”按鈕,車站巡檢開始,效果如圖5所示,即車站總數為16,目前車站空位有13個,可外借的剩余車數為3。

圖5 車站狀態的巡檢顯示圖
實際情況如圖6所示,與實際相符。

圖6 實際車站狀態圖
經設計后的公共自行車軟件通信系統,在調試后可驗證出該設計方案有效可行,符合預計的設計要求。下一步將會把該通信方式做到無線通信,即用戶可利用手機與相應的短信平臺互發信息后實現用戶方便查詢各站點自行車的相關信息,如是否有空余車位、離用戶最近站點在哪里等。
參考文獻:
[1]易曉林.掃描開關檢測方法探討[J].宇航計測技術,2006,26(4):68-72.
[2]陳柏金.通過串行口訪問Modbus現場控制網絡[J].微計算機信息,2003,19(1):52-54.
[3]吳桂林,鄭建勇.RS485上下位機多機通信網絡系統設計[J].微計算機信息,2008,24(36):112-126.

設計應用
Design of PBS(Public Bicycle System) Software Based on Visual Studio
WANG Xiu-li ,SU Wen-ze,XUE Mang-chao,LU Hui-chao,SHI Heng-rui, WANG Hong-jing
(Shanxi University,Taiyuan 030013,China)
Abstract:Public bicycle system, referred to as PBS, who plays an important role in urban traffic. This paper put forward a design scheme of communication as the research content, among of them, the host computer program was written in Visual Studio2013 software, so as to realize the communication function of PBS in PC and lower machine of public bicycle each site, the standard Modbus-RTU protocol was used, and was implemented by Serial Port class of Microsofr.Net Framework. After building a real system and debugging,we had achieved the desired objectives, and resulted show that the scheme was simple and feasible.
Key words:Visual Studio; communication; public bicycle; rental system; software design
中圖分類號:TP393
文獻標識碼:A
文章編號:1009-3664(2015)02-0071-03
作者簡介:王秀麗(1978-),女,山西長治人,講師,碩士,主要從事電氣控制研究。
收稿日期:2015-01-20