1 引言
汽车在为人类带来便利的同时,也带来了大气污染、环境噪声及交通安全等一系列问题。因此,如何把汽车废气和噪音污染限制在一定的范围内,同时又能做到安全性能相对较高,是汽车制造应重点考虑的主要因素。汽车本身是一个较为复杂的系统,出厂时都要求符合一定的标准,但随着行驶里程的增加和使用时间的延续,其性能和安全状况将会不断降低,那么汽车运行一段时间后是否还能满足标准的要求?这就要定期对其进行安全检测。汽车安全性能检测就是对汽车的安全性能状况进行测试和检验的一门技术,它已成为交通行业管理部门对车辆安全性能检测和汽车生产维修行业以及汽车进出厂检验及故障诊断的主要技术手段。
2 系统构成与硬件设计
汽车检测分为汽车性能检测和汽车安全检测两类,本文主要针对汽车安全检测介绍全检车过程的自动控制原理与实现。图1给出了汽车安全检测计算机控制系统的各组成部分结构框图。该系统主要由登录机、上位机和下位机(各工位检测设备及仪表)三个部分组成[1]。
3 系统核心软件设计
本系统软件主要涉及各检测设备、登录机与上位机三个部分。各检测设备程序一般均由厂家提供,系统通过其接口程序调用使用设备。登录机功能较为单一,其软件设计也不复杂。此处着重以上位机监控与管理软件来分析说明系统核心功能模块的软件设计与实现过程。
3.1 数据库与数据报表设计与实现
按照“汽车检测站计算机控制系统技术规范(JT/T478-2002)”[2]对数据库设计的规定,要求在车辆上线检测时,控制系统应实时记录检测数据CONTROL ENGINEERING China版权所有,并在完成一辆车辆的所有检测项目后,控制系统应立即将该车辆完备的检测数据和判定结果存入数据库。为此,本系统选用了SQL Server 2000作数据库管理系统。整个系统建立一个数据库AutosDetDB,其中主要数据表有:车辆基本信息表BaseInfoT,车辆档案信息表AutosTCONTROL ENGINEERING China版权所有,检测项目信息表DetItmT控制工程网版权所有,检测数据信息表DetDataT,检测项目判定表AssT,项目合格标准表DetStdT等;前5个数据表通过车辆标识码VIN字段实现关联。系统设有数据源Autos,统一采用ODBC数据接口访问数据库,实现相关数据的插入、删除、修改及查询操作。
数据报表是车辆安全检测站在车辆安检完毕后向车主报告或反馈车辆安全性能状况的重要技术手段。根据“机动车安全检验项目和方法(GA 468-2004)”[2]对报表设计的规范,要求报表必须涵盖如下信息:检测站名称,上线流水号,车辆基本信息,车辆七项线内检测(尾气、车速、灯光、喇叭、侧滑、轴重、制动)的检测结果及合格判定,线内地沟检查结果及合格判定,外观检查与路试等线外检验结果及合格判定。考虑到该数据报表涉及的数据类型及数据格式较多、布局错综复杂这一情况,报表设计未在VB的数据环境中使用数据报表设计器DataReport对象来进行。而是先将系统数据报表在Word 2000中制成A4页面大小的表格模板,以Doc格式文档存盘;然后在上位机软件报表窗体中引入OLE容器控件,在该容器控件中插入事先创建好的Doc格式报表模板文件并在已加载报表模板的相应位置均添加Label标签,各标签与检测数据信息表DetDataT中的相应字段绑定。每当车辆检测完后,报表模板中所有标签的Caption属性均被自动更新为当前车辆的各项目检测值,通过调用OLE控件所在窗体对象的PrintForm事件即可实现报表的实时打印输出。
3.2 通信串口程序设计与实现
本系统上位机与检测线上的所有检测设备和仪表均采用基于串口的主从通信方式。上位机自带2个串口另加一块PCI总线8串口卡,共可提供10个通信串口。由图1可知,这10个串口分别负责与工位电子显示屏以及分布在3个工位的9台设备和仪表进行数据通信,同时在系统程序中加载10个串口通信控件。根据各检测设备通信协议的要求,设置相应串口通信控件的关键属性[3]。考虑到系统的灵活性及检测线中检测设备通信故障检修的方便性CONTROL ENGINEERING China版权所有,系统可为各设备动态分配通信端口。为统一操作和管理,系统定义了一个过程MultiComInit,负责所有串口的初始化操作;此外,还定义了一个过程MultiComCls控制工程网版权所有,负责所有串口的关闭操作。以下以端口8为例,给出相应串口的初始化程序代码[4]。
'MSComCH串口控件负责与侧滑仪通信
MSComCH.CommPort=8 '端口号,可在1~10间设置
MSComCH.Settings="2400,n,8,1" '波特率,校验位,数据位,停止位
MSComCH.InputMode=comInputModeBinary '二进制数据传输方式
MSComCH.InBufferSize=512 '接收缓冲区大小