张新英
(承德广播电视大学 计算机系,河北 承德 067000)
组件在动态电子轨道衡中的应用
张新英
(承德广播电视大学 计算机系,河北 承德 067000)
本文讲述了电子轨道衡软件的计量逻辑,分析了轨道衡软件的各层次结构,在此基础上讲述组件如何在轨道衡软件上实现,组件化的作用以及好处。
电子轨道衡;组件;组件化;软件分析
电子轨道衡是一种对行进中的四轴铁路货车进行自动称重的设备,即在货车连挂、不停车的条件下,实现对列车逐节自动称重。它主要由机械称量台面、传感器、称重转换器、计算机软件系统四大部分构成。随着科技的进步及使用企业管理理念及技术要求的提高,传统轨道衡在基本称重功能之外,又增加了其它一些附属功能。如基于RFID的车号自动识别系统、基于视频监控的自动来车录像系统,以及融入企业的ERP系统等功能。
国内生产轨道衡的知名厂家大约有8家左右,这些厂家的轨道衡称量软件系统基本采用的是VB6.0、C语言来完成硬件控制、计量逻辑及管理功能,从设计思想上基本沿用了面向过程的编程思想。使用面向过程的编程所设计的软件系统界面与计量逻辑、界面与硬件控制以及计量逻辑与硬件控制的耦合度相当高,往往企业用户对软件系统提出的小要求,轨道衡厂家就需要对大部分源码进行更改。这样就造成了轨道衡厂家技术人员在不断的维护源码。既增加了生产厂家的管理成本、技术成本,也造成了不必要的用户满意度下降。
随着软件技术的几次大变革,基于组件化的软件技术已相当成熟。在国内外大型的公司软件系统中得到了大量的应用。在此前提下重构轨道衡系统软件势必能解决传统轨道衡软件系统存在的诸多问题。
电子轨道衡软件系统主要由硬件数据采集及控制、计量逻辑与数据库管理三大部分组成。国内轨道衡厂家的计量管理软件计量逻辑与硬件数据采集及控制、数据管理没有明显的界限,它们的源码交错在一起,虽然软件可以正常的工作,但对于后期维护和软件升级改版却带来了相当大的麻烦。
基于组件的电子轨道衡软件设计采用组件化的思想,对于电子轨道衡软件中的各部分进行明确的定义,使软件的结构层次更清晰,源码结构更规范。各部分之间的数据交互定义了统一的接口。
硬件数据采集及控制部分
硬件数据采集及控制部分主要用于从硬件采集传感器信息及轨道衡系统其它一些附属性设备信息,它采集到的数据主要用于计量逻辑判断车重使用,控制部分用于对下端的设备进行控制操作,如打开或关闭设备,让设备执行某些动作等功能。系统包含的硬件主要有CAN总线控制卡、开关量控制卡、称重转换器、车号识别器、视频服务器等设备。它们与上位计算机的主要接口形式有PCI接口、CAN接口、RS232 接口(串行接口)、RJ45(网络接口)、并行接口几大类。从源码级别操作这几类接口时,操作方式没有相近之处。按传统的操作方式编程,基本是软件中对各接口的操作都有自已对应的形式。不便于软件对设备统一管理及调度。但基于组件化的编程思想设计时,就不会存在操作不统一的情况。软件会对所有接口的操作定义统一的操作方式,上层软件在调用下层硬件设备通信时看到的只有一种形式,而不用去管操作的是并口还是网口,或是其它的接口形式。
计量逻辑部分
计量逻辑部分是轨道衡计量管理软件系统中的核心模块。它主要由滤波算法、重量修正算法、速度计算算法、跳变判断算法、重量计算算法及波形存储等部分组成。计量逻辑部分主要用于计算过衡的每节车的节重、速度、前架重量、后架重量。计量逻辑中90%功能是通用性的,在任何实际现场都是通用的,还有10%功能是针对不同车型及机械台面的长短而特殊设计的,现有铁路运行的货车车辆主要有C62、C64、P64、C70、G70 等车型,但当轨道衡应用于冶金企业称量铁水车时所面对的车型尺寸、称台长度是截然不同的,因而软件的判车算法及重量计算等算法是截然不同的。基于组件化的软件设计时,首先提出通用算法统一建库。再将变化的部分交于工厂组件对不同车型及不同秤台长度的计量逻辑算法进行统一管理。上层软件在使用时只需要提供给工厂组件必要的参数,工厂组件会根据现场的实际情况为上层软件创建一个对应的算法实现。基于此种设计思想的轨道衡软件系统在任何现场只需要改变10%变化部分,软件90%的通用部分是不用修改、不用重新编译的。
数据管理部分
数据管理部分在轨道衡称重管理软件中主要负责过衡数据的后期管理。如数据的输入、数据查询统计、用户权限管理以及数据的输出打印功能。传统的轨道衡管理软件与计量软件的结构基本相同,主要是针对市面上某一种数据库而写的代码。数据库访问层、管理逻辑层及数据展现层并无界限,在实际使用过程序中如果用户的后台数据库发生变化,数据管理软件的代码60%以上需要针对特定的数据库进行重写。基于组件模型的管理软件采用了三层架构,最底层为通用数据库访问层,在其上一层为逻辑关系处理层,最上层为数据展现层。
数据采集部分主要由两个顶层库和若干个仪表类型库组成。两件顶层库为
WY.WeightBridge.Hardware.Meter.DLL
WY.WeightBridge.Hardware.Factory.DLL
这两个库主要提供访问设备的一致性接口和不同仪表类型解码器、命令器的自动挂接。用户在使用时看到的只有上端两个库所提供的函数及命令,针对市场上不同仪表的操作是隐藏在下端的。基于此种组件结构的软件系统用户不用关心系统采用的仪表类型。下端的具体仪表分厂家分类型各自都有独立的库。库中实现了解码器和命令器,即可以将解码仪表发送到计算机的数据,同时也可以将计算机发送到仪表的数据进行命令编码以便仪表能识别。计量逻辑部分主要完成动态称量货车的算法工作,由于轨道衡在结构上分单台面转向架称量式、双台面整车称量式及三台面组合称量式等多种形式,具体的称量算法也是不尽相同的。基于组件化的轨道衡计量软件使用了两个顶层接口函数库对不同称量算法进行了统一。所有称量算法函数具有相同的格式。客户端软件只调用WY.WEIGHTBRIDGE.WEIGHING.DLL库中的过程及函数,针对不同类型衡器的计量算法有不同的实现库,最终由WY.WEIGHTBRIDGE.WEIGHING.FACTORY.DLL库进行自动挂接到软件中。如果在使用中出现新的车型或秤体结构,软件人员只需要修改下层具体实现部分便可以满足新的需要。
●数据管理部分
数据管理部分共分三层,物理上使用了三个动态链接库实现。分别是数据库访问层、数据关系逻辑层及数据展现层三个库。最低层的数据库访问层是管理部分的核心层,它可以访问现有所有关系型数据库,如MS SQL SERVER、ORACLE、MySQL、ACCESS、FIREBIRD 等等。逻辑关系处理层可以根据特定行业用户进行重构,以满足不同行业用户对数据管理功能的要求,在最终的产品发布时软件中集成了不同行业的管理功能,用户使用软件时选择本行业功能便可。数据展现层主要展现给用户一些窗体,它同样也是根据不同行业用户构建的集成库。
基于组件的轨道衡计量管理软件在实际现场应用中得到了很好的推广。使用此种结构的软件系统节省了现场调试人员50%的工作时间,同时现场费用也降低了20%。此种结构的软件系统已被国内大型冶金、电力、煤炭等企业使用。如唐山钢铁公司、鞍钢集团、湖北新冶钢、国电滦河发电厂、首钢股份曹妃甸项目等国内大型企业。随着科学技术的进步、软件技术的革新,相信基于组件化的软件系统无论是在企业成本节约上,还是在企业管理水平提升上都会得到广泛的应用。
O64
A
1005-1554(2011)02-0016-03
2010-12-06
张新英(1982-),女,河北承德人,承德广播电视大学计算机系助教。