基于Visual Studio的公共自行车系统软件设计

2015-12-12 05:23王秀丽苏文哲薛漭潮卢慧超史恒瑞王泓静
通信电源技术 2015年2期
关键词:软件设计通信

王秀丽,苏文哲 ,薛漭潮,卢慧超 ,史恒瑞,王泓静

(山西大学, 山西 太原 030013)



基于Visual Studio的公共自行车系统软件设计

王秀丽,苏文哲 ,薛漭潮,卢慧超 ,史恒瑞,王泓静

(山西大学, 山西 太原 030013)

摘要:公共自行车系统,简称PBS,在城市交通当中发挥着重要的作用。文中以此为研究内容提出一种通信设计方案,其上位机程序在Visual Studio2013软件中编写,采用Modbus-RTU 标准协议,并运用Microsofr.Net Framework中的Serial Port类,实现了PBS中上位监控机与公共自行车各站点下位机的通信功能。通过搭建实际系统并调试后,达到预期目的,验证了该方案是简单可行的。

关键词:Visual Studio;通信;公共自行车;租赁系统;软件设计

0 引 言

公共自行车是环保出行的一种交通工具,它方便快捷、绿色低碳,越来越受到人们的关注。人们可以通过各站点的下位机查询到一些相关信息,同时本站点的各种信息(如空余车位、故障车辆等)可由主控的上位机予以监控。本文以此为基础,提出一种上位机与下位机之间新的软件设计,即基于Microsofr.Net Framework中的Serial Port类实现的一种通信方式。

1 设计简介

本系统的上位机用C#编写,使用Visual Studio 2013软件编程,采用Microsoft.NET Framework平台中的串口控件Serial Port和定时器(Timer)定时对站点内的储存自行车状态的寄存器进行询问,最后由可视化控件(例如TextBox)进行状态的显示。

1.1 软件界面设计

整体来说,软件除了具有车站自行车状态显示的基本功能外(车站状态选项卡),另外加入了通用的Modbus调试功能(Modbus调试选项卡),提高了软件的通用性,也可以应用于其他使用Modbus协议进行通信的场合。软件在系统出现问题时可提供帮助。为了使用户得到满意的通讯效果,软件加入了一些文本提示(说明选项卡)。

启动程序后,首先在Modbus中设置好串口通信的参数,与单片机建立通信后的程序流程图如图1所示。

图1 程序流程图

“车站状态选项卡”实现了站点的实时显示,即对站点的车位容量(车位总数)、已经被租赁自行车的数量(外借车数)、被查询站点车位空余的数目(车站空位)等数据进行实时扫描并以文本显示出来。为了方便地显示出通信状态,成功通信时状态指示灯会从灰色变成绿色,同时为了方便地进行站点调试,也针对站点提供了联级数、设备地址等编辑功能。设计好的界面如图2所示。

图2 车站状态选项卡

“Modbus调试选项卡”中基本包含了软件中所有的设置、调试功能。进入软件后首先要遍历串口以供用户确定并选择哪些串口是设备串口进而与单片机建立通信,然后需先后设置串口通信参数(例如串口波特率、数据位、校验位、停止位等)和Modbus通信参数(例如设备地址、读寄存器地址、读寄存器数量等),设置完串口通信参数后就可以单击“打开串口”按钮来实现打开串口的操作和相关通信参数的应用了。在打开串口后可以进行一些简单的Modbus调试来检测硬件是否正常使用(例如发送、接收数据等),同时使用车站状态选项卡中的“激活”按钮,就可以激活软件与相关站点单片机的通信。设计好的界面如图3所示。

图3 Modbus调试选项卡

“说明选项卡”中声明了调试中的一些方法技巧和软件的功能限制。

1.2 通信协议

本文采用串行通信方式,通讯协议采用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是指请求中指定的读寄存器数量。

2 通信调试

(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 实际车站状态图

3 结 论

经设计后的公共自行车软件通信系统,在调试后可验证出该设计方案有效可行,符合预计的设计要求。下一步将会把该通信方式做到无线通信,即用户可利用手机与相应的短信平台互发信息后实现用户方便查询各站点自行车的相关信息,如是否有空余车位、离用户最近站点在哪里等。

参考文献:

[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

猜你喜欢
软件设计通信
基于STM8S903K3的序列打螺丝夹具的软件设计
简述计算机通信网络安全与防护策略
Android环境下主UI线程与子线程通信机制研究
无线自组网在野战防空通信系统中的应用
对数字微波通信技术的研究
一种VHDL语言代码重用的方法