基于JAVA的汽车衡称重管理系统关键技术

2011-06-11 03:34邱占芝于晓龙
大连交通大学学报 2011年4期
关键词:类库汽车衡网络化

邱占芝,于晓龙

(大连交通大学 软件学院,辽宁 大连 116208)

0 引言

汽车衡称重系统广泛应用于煤炭、冶金、石油、化工、港口、仓储等行业领域,完成物料的计量与统计功能,为相应行业的企业生产、调度、指挥提供可靠的决策依据.随着科学技术的高速发展和计算机与电子设备性能价格比的不断提高,汽车衡称重系统也从人工记数、人工统计与汇总,发展到今天的自动称重、自动存储、自动统计与汇总.在当今的网络时代,更要求汽车衡称重系统不仅能够实现自动称重、存储、统计与汇总,而且要实现网络化管理和数据共享,实现称重数据的数据库存储.企业管理者需要在任意时间、任意地点、进行物料称重数据的查询、汇总和统计分析,以便及时调度和决策.同时,还需要杜绝称重系统的认为作弊现象的发生,保证称重数据的客观性和准确性.目前,传统的汽车衡称重管理系统大多采用 VB、Delphi、C/C++等语言,而采用 JAVA语言实现衡器自动称重的方法还不多见.JAVA语言是一种面向对象、分布式、解释型、健壮安全、结构中立、可移植、性能优异、多线程的动态语言,其无比的健壮性、可靠性和平台无关性,使得采用JAVA语言的应用系统开发与维护成本低、多平台信息传递信息块,并且其丰富的类库使其广泛应用于网络化系统的开发与实现中.

本文针对汽车衡称重系统的网络化需求,研究基于JAVA的网络化汽车衡称重管理系统的方案设计和关键技术实现问题,讨论汽车衡自动称重数据的采集与自动存储JAVA方法,并通过某大型企业的汽车衡称重系统的研发实例,验证其方案的可行性和有效性.

1 系统方案

1.1 系统体系结构

网络化汽车衡称重管理系统,总体结构如图1所示.

图1 系统总体结构图

统体系结构分为3层:称重现场、数据中心、网络节点终端(企业管理各部门、计划调度等).根据系统功能与技术实现的需求,系统采用C/S与B/S结合的运行方案.称重现场,即汽车衡称重数据的采集与自动存储采用C/S模式.利用Intranet技术,组成本地局域网,计算机采集汽车衡称重数据并自动存储本地服务器,同时通过网络,同步存储于数据中心服务器,以便于进行远程数据浏览、查询和统计.数据采集端采用C/S模式,可保证响应速度快、处理复杂事物逻辑能力强、数据存取准确、可靠等要求.称重数现场外的其余部分,采用B/S 模式.采用基于 J2EE[1]平台的 Struts[2]架构,设计网络化称重管理系统,实现网络远程访问和数据查询与统计.B/S模式的称重管理系统,可实现分布式数据查询与管理,具有可移植性强、重用性好、易于维护、可伸缩性强等诸多优势.

汽车衡称重现场系统结构如图2所示.

图2 汽车衡称重现场系统结构

1.2 软件功能设计

系统软件分为C/S端软件和B/S端软件两个部分.

C/S端软件的主要功能是日常称重数据处理,包括:称重数据的采集;显示与存储;参数设置(串口参数配置、计量单位配置、仪表选型等)等.

B/S端软件的主要功能是称重数据的管理,包括:用户权限控制与管理;基础数据(用户数据、车辆信息、称重计划等)维护;数据传输(本地服务器与数据中心服务器数据同步);数据查询;统计分析;报表打印等.

网络化汽车衡称重管理系统功能结构如图3所示.

图3 汽车衡称重管理系统功能框图

2 数据采集技术与实现

2.1 关键技术

称重数据采集是称重现场端的关键技术.计算机必须准确监控和接收汽车衡称重数据,同时同步存储于本地服务器和数据中心服务器.数据采集端程序的开发可以采用VB、Delphi、C/C++等任一种高级语言.JAVA由于具有开放性、平台无关性和面向对象等特性,使其成为一个理想的网络化系统软件开发工具.利用JAVA串口通信API开发了一个用于串口通信的JAVA程序,大大简化了对串口进行操作的过程[3-6].

Sun的J2SE中没有直接提供串行通讯协议的开发包,而是以独立的jar包形式发布在java.sun.com网站上,称之为Java(tm)Communications API,它是J2SE的标准扩展.Comm.jar提供了对RS-232串行端口通讯的支持,Java通过该类库能够极大地简化对串口的操作过程.

Javax.comm类库通过SerialPort对象来对串口事件进行控制,通过getInputStream()方法读取串口的数据,getOutputStream()方法向串口写数据;通过setSerialPortParams()方法设置串口的通信协议.

与comm.jar开发包一起的还有两个重要的文件,win32com.dll和 javax.comm.Properties.comm.jar提供了通信用的 java API,win32com.dll提供了供comm.jar调用的本地驱动接口,Javax.comm.properties是这个驱动的类配置文件.

Javax.comm类库的安装方法如下:

(1)将Sun公司提供的Javax.comm类库包java.comm.win32.zip(可从 http://java.sun.com下载)解压;

(2)将win32com.dll文件拷贝至<JDK>in目录下;

(3)将comm.jar、javax.comm.properties文件拷贝至<JDK>lib目录下;

(4)将comm.jar文件添加到classpath环境变量中.

串口读写的软件实现源码(略).

2.2 应用实例

将上述系统方案和技术应用于某大型矿业公司的网络化运销控制与管理系统,网络操作系统采用Windows 2003 Server,数据库管理系统采用SQL Server 2005,Web 服务器采用 Apache Tomcat.以型号为XK3190-A9的汽车衡为例,其输出的称重数据通过串口与计算机通信,所有数据均为ASCⅡ码,每组数据有10位组成,第1位为起始位,第10位为停止位,中间8位为数据位.通信方式分为连续方式和指令方,其连续通信方式为:

所传送数据为仪表显示的当前称量(毛重或净重).每帧数据由12组数据组成,格式如附表.

附表 通信数据格式

根据用户需求,计算机采集的称重数据显示于“称重过衡单”,结果如图4所示.

图4 地衡称重记录单

经过调试与运行表明:基于JAVA的串口通信不仅简化了程序对于串口的操作,而且由于JAVA多线程机制使程序具有并行性和高可靠性,并且可以节省系统资源.由于JAVA的平台无关性,可以使JAVA程序在不同的平台进行方便的移植.

3 结论

本文给出了基于C/S和B/S相结合模式的汽车衡称重系统的总体结构设计并给出实现数据采集部分的关键JAVA代码.系统可使管理人员有效监督称重过程,使称重过程公开、透明,杜绝人为因素的干扰,防止了舞弊情况的发生,实现实时多任务监督控制及多级管理,同时降低成本,提高效益,有利于企业对进出物资的称重计量过程进行有效监控和科学管理,具有显著的社会效益和经济效益.

[1]JAVA 2 Enterprise Edition,J2EE TM Connector Architecture Specification,V1.0C copyright 2001,Rahul Sharma,Sun Microsystems,Inc.http://JAVA.sun.com/products August 22,2001.

[2]Govind Seshadri,Understanding JavaServer Pages Model 2 architecture[EB/OL].http://www.javaworld.com/javaworld/jw-12-1999/jw-12-ssj-jspmvc.html.

[3]BERRYC A.J2EE Design Pattern Applied[M].New York:Wrox Press,2002.

[4]李良 朱善安.基于java的串口通信[J].电子器件,2007,30(2):714-720.

[5]周海涛,高兴锁,江晓峰.基于JAVA数据采集串口通讯的设计和实现[J].测控自动化,2006,22(2-1):141-142.

[6]马海平.基于嵌入式Linux的动态汽车衡的设计与实现[D].太原:太原理工大学,2007.

猜你喜欢
类库汽车衡网络化
整车式动态汽车衡在高速公路治超中的应用
用Java编写客户机/服务器端应用程序
Python在数据可视化中的应用
数据结构课程教学改革方案和应用效果
数据结构可视化类库的设计与实现
解剖治超杀手锏——平板式动态汽车衡结构分析
当代新闻学的网络化发展
浅谈动态汽车衡发展史
动态汽车衡准确度等级的现实意义
基于OPC的网络化群梯管理系统开发