汽车安全检测系统的设计与实现
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
汽车安全检测系统的设计与实现
1 引言汽车在为人类带来便利的同时,也带来了大气污染、环境噪声及交通安全等一系列问题。因此,如何把汽车废气和噪音污染限制在一定的范围内,同时又能做到安全性能相对较高,是汽车制造应重点考虑的主要因素。汽车本身是一个较为复杂的系统,出厂时都要求符合一定的标准,但随着行驶里程的增加和使用时间的延续,其性能和安全状况将会不断降低,那么汽车运行一段时间后是否还能满足标准的要求?这就要定期对其进行安全检测。汽车安全性能检测就是对汽车的安全性能状况进行测试和检验的一门技术,它已成为交通行业管理部门对车辆安全性能检测和汽车生产维修行业以及汽车进出厂检验及故障诊断的主要技术手段。
2 系统构成与硬件设计汽车检测分为汽车性能检测和汽车安全检测两类,本文主要针对汽车安全检测介绍全检车过程的自动控制原理与实现。图1给出了汽车安全检测计算机控制系统的各组成部分结构框图。该系统主要由登录机、上位机和下位机(各工位检测设备及仪表)三个部分组成[1]。
3 系统核心软件设计本系统软件主要涉及各检测设备、登录机与上位机三个部分。各检测设备程序一般均由厂家提供,系统通过其接口程序调用使用设备。登录机功能较为单一,其软件设计也不复杂。此处着重以上位机监控与管理软件来分析说明系统核心功能模块的软件设计与实现过程。3.1 数据库与数据报表设计与实现按照“汽车检测站计算机控制系统技术规范(JT/T478-2002)”[2]对数据库设计的规定,要求在车辆上线检测时,控制系统应实时记录检测数据,并在完成一辆车辆的所有检测项目后,控制系统应立即将该车辆完备的检测数据和判定结果存入数据库。为此,本系统选用了SQL Server 2000作数据库管理系统。整个系统建立一个数据库AutosDetDB,其中主要数据表有:车辆基本信息表BaseInfoT,车辆档案信息表AutosT,检测项目信息表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]。考虑到系统的灵活性及检测线中检测设备通信故障检修的方便性,系统可为各设备动态分配通信端口。为统一操作和管理,系统定义了一个过程MultiComInit,负责所有串口的初始化操作;此外,还定义了一个过程MultiComCls,负责
所有串口的关闭操作。以下以端口8为例,给出相应串口的初始化程序代码[4]。'MSComCH 串口控件负责与侧滑仪通信mPort=8 '端口号,可在1~10间设置MSComCH.Settings="2400,n,8,1" '波特率,校验位,数据位,停止位MSComCH.InputMode=comInputModeBinary '二进制数据传输方式MSComCH.InBufferSize=512 '接收缓冲区大小MSComCH.OutBufferSize=512 '发送缓冲区大小MSComCH.RThreshold=12 '接收12字节产生oncomm事件MSComCH.SThreshold=0 '禁止发送字节产生oncomm事件MSComCH.PortOpen=True '打开串口3.3 待检项目车辆就位程序设计与实现车检时车辆就位极为关键。安检线上只有地沟属线内目视检查项目,对车辆定位没有严格要求;此外其他项目检测均需车辆精确定位,否则,检测就无法进行或是检测结果不准确。本检测线上各项目检测点均安装了光电开关或遥控开关,这些开关直接与上位机PCI-1762数字I/O卡各DI端口相连,系统通过实时判断相应DI端口的电平变化情况即可判定受检车是否就位。下面以汽车轴重检测为例,对本系统车辆就位功能模块的设计过程加以说明。汽车轴重仪传感器部分由一对电子称组成,可用于实现同轴左右轮的称重。轴重检测时需要前后两对光电开光(靠近车头的为前光电开关)实现被检轴定位。假定连接这两对光电开关的I/O卡两DI端口的电平变化情况存放在DI(0)和DI(1)数组元素中。数组元素值为1,表示光电信号被车轮遮挡;反之,则表示光电信号未被车轮遮挡。图2描述了轴重检测时被检车辆当前车轴的就位判定过程,图中TmrDW 定时间隔表示车轴就位时间,该时间可视实际情况自由设定。
3.4 检测程序设计与实现车辆安全检测涉及的检测项目较多,这里仅以核心检测项目之一——制动检测为例,对其检测程序的设计过程进行描述。制动检测主要实现对车辆各轴左右轮制动力的检测,本系统采用HYZD-10型制动仪来完成这一检测过程。在检测各轴制动力时,上位机启动设备检测后,制动仪不断采样制动力并上传采样数据,同时,上位机利用串口事件触发方式接收采样数据并实时绘制制动力变化曲线,找出制动期间左右轮的最大制动力以及两轮制动力最大差值点时刻左右轮制动力。以上信息都是制动检测项目合格与否的重要衡量指标。下面给出的是连续制动5秒钟期间系统绘制的同轴左右两轮制动力变化曲线(见图3)及绘制制动力曲线的部分主要程序代码,其中,数组LX、RX分别用于存放左、右轮制动力线段的X轴坐标;数组LY、RY分别用于存放左、右轮制动力线段的Y轴坐标。OnComCnt=OnComCnt+1 '串口事件触发计数If OnComCnt=1LX(1)=OnComCnt:LY(1)=TmpL '计算左轮制动力终点坐标RX(1)=OnComCnt:RY(1)=TmpR '计算右轮制动力终点坐标ElseLX(0)=LX(1):LY(0)=LY(1) '计算左轮制动力起点坐标LX(1)=OnComCnt:LY(1)=TmpL '计算左轮制动力终点坐标RX(0)=RX(1):RY(0)=RY(1) '计算右轮制动力起点坐标RX(1)=OnComCnt:RY(1)=TmpR '计算右轮制动力终点坐标End IfPict.DrawStyle=0 '定义线型及颜色, 画线Pict.Line (LX(0),LY(0))-(LX(1),LY(1)),vbRedPict.Line (RX(0),RY(0))-(RX(1),RY(1)),vbBlue4 结束语该系统已用于本市机动车检测中心的汽车安全检测线,日检车达320辆,高峰时系统允许5辆车同时在线检测。除地沟检查和尾气检测的插取样管作业外,其余项目检测无需人工参与,基本实现了无人化自动检车。与其它检测线相比,本系统总体协调性好,能较好地均衡各工位的工作负荷,检车效率提高了0.7倍左右。系统软件可操作性强,人机界面友好。主控程序采用了前一工位封锁后一工位的级联式集中控制策略,从而可确保检测次序和防止数据错乱,提高了系统稳定性和检测结果准确可靠性。此外,上位主控机可动态设置各检测设备的通信串口号,便于系统维护和设备通信故障调试。但上、下位机间采用主从式串口通信,使得它们之间的数据交互传输距离成了本系统的一个瓶颈,因此,这一不足还有待于今后努力探索和解决。