基于GPRS与TCP的车载动态称重数据管理系统设计
扫描二维码
随时随地手机看文章
摘要:在Visual C++的开发平台下,通过GPRS和TCP 2神通信方式,对正在行驶中货车的栽货重量等数据进行检测和管理,同时将处理后的数据作为历史数据,保存到SQL server 2000的数据库中,以供用户的提取和查询,以及对数据的管理。
关键词:GPRS;TCP;数据管理;VC++
随着当今社会的发展和人们物质生活水平的提高,机动车已经进入了千家万户,车辆的过多给公路管理起来造成一定的困难,特别是货车的管理。尽管公路局已经在公路的每一段才设置了称重收费站,但货车司机还是采用站外卸货,绕行,或者液压装置等一些高科技的手段,逃避检测,同时货车排队等候检测,也会造成公路的堵塞。
在货车行驶的过程中称重可以很好的解决公路交通问题,但是货车的车载终端系统的配置不适合对大量数据进行分析和存储,因此在货车行驶中将检测到的载重数据传输到管理系统,是解决问题的一个关键步骤。
1 系统的开发环境
本系统是由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以上。
2 系统的结构设计
2.1 系统模块设计
系统有6个模块,用户管理模块、货车信息模块、货车载重模块、货车超载模块、载重查询模块、超载处理模块。各个模块直接的关系示意图如图1所示。
2.2 系统模块功能
1)用户管理模块 此模块用来管理用户的信息,用户分为管理权限和使用权限,用户以管理的权限进入管理系统后,可以添加、删除和查看用户信息,还可以修改用户的密码。
2)货车信息模块 此模块用来管理货车的基本信息,用户可以查看货车的信息,可以根据货车的车牌号、车主或者注册时间查询货车信息,当用户以管理权限进入时,可以添加、删除货车信息。
3)货车载重模块 此模块用来显示货车最后一次检测时的载重值,包括查询货车载重时的时间,用户可以根据车牌号查询这辆车的载重时间和载重值。信息不可以被修改,只能通过查询覆盖。
4)货车超载模块此模块显示货车的超载信息,包括所有的历史超载信息,因为要保护超载数据,信息不能被添加、修改和删除,任何权限的用户只能查询这些信息,可通过车牌号来查询货车的的超载信息。
5)栽重查询模块此模块能够让用户查询到货车当前的载重,并将查询到的信息记录到货车载重数据库中,如果查询到的信息超载,同时会查询得到的数据记录到货车超载数据库中去。
6)超载处理模块此模块能够自动处理从车载终端得到的超载信息,并且处理信息,将信息内容记录到货车超载表中。此过程在后台进行,不需要用户对其进行操作,用户只能够看到超载信息。
3 系统数据库设计
数据库是储存和处理数据的仓库,是一个系统的重要部分,数据库不仅能够存储个管理数据,而且能够提供用户所需的数据管理方式。
本系统的数据库使用SQL Server 2000设计,主要包括4方面的数据:1)用户管理表(TABUSER):用户名(主键)、密码、权限;2)货车信息表(TABMESSAGE):车牌号(主键)、车主姓名、注册时间、归属地、货车品牌、货车类型、货车载重、超载次数、关联字符;3)货车载重表(TABLOAD):编号(主键)、车牌号、日期、时间、载重、是否超载;4)货车超载表(TABOVERLOAD):编号(主键)、车牌号、超载日期、超载时间、载重;5)货车车牌号管理模块(TABTRUCKNUMBER):车牌标志(主键)、归属省、归属地。
4 系统界面设计
系统主界面采用MFC下的对话框模式,主界面由用户登陆管理和货车信息管理组成,包括货车基本信息、载重信息和超载信息等,通过Tab控件,对货车信息的显示进行控制。界面图形如图2所示。
5 数据无线传输设计
本系统中,对货车车载终端的数据通信有两个部分,一是系统服务器主动查询车载终端的载重信息,终端得到命令后,将载重信息返回给系统服务器。二是车载终端自动检测载重信息,并将超载信息自动发送到系统服务器。
当车载终端的数量很多时,系统要接受的信息量就比较大,而主动查询信息时,从命令发出到数据到终端信息返回需要一定的时间,所以只用一种通信方式会给信息接受产生混乱,这里主动查询用GPRS通信,自动接受用TCP通信。如图3所示。
5.1 GPRS通信
本系统中,使用的GPRS模块的产品型号是AL-GPRS-S100,通过串口和终端连接。AL-GPRS-5100是南京沃龙电子科技有限公司设计的一款GPRS透明传输终端(GPRSDTU),内置工业级GPRS模块,支持DDP、DNS、VIPS多种通讯模式。具有RS232接口的工业设备无需更改任何软件即可通过GPRS无线联网。
VC连接串口要插入MSComm串口控件,作为一个串行通讯控件为程序员串口通讯编程节省了很多时间,当控件载入对话框中时,会自动创建控件CMSComm的类。
5.2 TCP通信
系统和车载终端不是一个局域网,所以首先要穿透局域网,这里采用“TCP打孔”,“TCP打孔”与其他的方法相比较,具有较易实现、效率高等优点,基本原理是:处于局域网的用户先与公网上的一个连接服务器建立辅助连接,在呼叫发生时,通过连接服务器的协助在呼叫双方间建立TCP直连。
VC进行网络通信要插入CSocket类,CSocket支持同步操作,可以单独使用,通常情况下与CSocketFile、CArchive类一起实现数据的发送和接收。
TCP接收数据程序:
在本系统中,TCP只需要接受数据,不需要发送数据。
6 数据传输设计
6.1 数据发送设计
在载重查询模块中,用户通过车牌号对货车载重查询时,发送数据。具体过程是:当输入查询的车牌号时,通过在货车信息表(TABMESS AGE)查询车牌号,将对应的关联字符作为查询命令,发送出去。
数据发送过程如图4所示。
6.2 数据接收设计
在载重查询模块和超载处理模块中,系统接收数据,具体过程是:系统接受的每一个数据是由两部分组成,关联字符+货车载重,先将数据分开,通过关联字符在货车信息表(TABMESSAGE)查询出对应的车牌号,再根据车牌号在货车载重表(TABLOAD)中查找,将货车载重的数据修改或者新建。同时通过关联字符在货车信息表(TABMESSAGE)查询出对应的载重,比较数据表中的载重值和接收到的载重值大小,决定是否将得到时间保存到货车超载表(TABOVERLOAD)中。数据接受过程如图5所示。
6.3 对话框界面设计
界面主要包括串口连接部分、发送数据部分和接受数据部分。串口部分的参数选择由组合框提供,要发送的数据有编辑框输入发送,接收的数据和接受数据的时间保存在列表框中,对话框的界面如图6所示。
例:在货车信息表中,车牌号为“陕A00000”,对应的关联字符为“SHAN0000”,载重为“20”。当查询此货车载重时,在文本框中输入“陕A00000”,通过货车信息表查到关联字符“SHAN0000”。将关联字符发送出去。当接受到字符“SHAN000025.000”时,先将字符分开成“SHAN0000”与“25.000”,在货车信息表中查找关联字符,得到车牌号和载重,比较载重和字符“25.000”大小,得到超载,然后将车牌号和超载字符“25.000”保存到货车超载表中。
7 结束语
文中阐述了使用Visual C++6.0和SQL server 2000设计一个管理系统的实现思想和管理方法,以及详细介绍了对外界进行数据通信,达到了系统对车载终端的检测,以及对货车信息的管理,满足了高可靠、高稳定的要求。