喷油泵试验台测试系统上位机软件设计毕业论文
2020-02-18 11:54:24
摘 要
喷油泵是汽车柴油机上的一个重要组成部分。作为柴油机燃油喷射系统中燃油的控制、供给单元,其性能直接影响着柴油机的加速性能、油耗、尾气排放等,其被视为柴油发动机的“心脏”部件。它一旦出现问题会使整个柴油发动机工作失常,故而维护和测试喷油泵就显得十分重要。
本文针对国内喷油泵试验台测试系统上位机可迁移性较低、操作繁琐等缺点,开发了新型上位机系统。上位机基于.NET Framework与C#语言,制定了一套完整的双向通讯协议,UI部分使用WPF(Windows Presentation Foundation)框架,并且使用SQLite数据库来存储喷油泵标准测试规范数据和历史测试记录数据。程序最终实现了一键测试、测试数据自动迁移导入与导出为XML文件和历史测试记录数据自动导出为Excel表格文件等功能,省去了不同设备重复输入数据的繁琐操作并且简化了测试操作,提高了测试效率。
关键字:喷油泵;上位机;WPF;SQLite数据库
Abstract
Fuel injection pump is the important part of the automobile diesel engine. It plays the part of a unit which control and provide the fuel oil of the diesel fuel injection system, its performance influence the performance of the diesel engine directly, such as accelerating ability, fuel consumption, exhaust gas emission, etc. It is regarded as the “heart” part of the diesel engine, if it has some problem, the diesel engine will work disorder entirely, so it is very important to test and maintain the fuel injection pump.
In this paper, a new type of upper computer system has been developed for the shortcomings of low mobility and cumbersome operation of the domestic fuel injection pump test bench. Based on the .NET Framework and the C# language, the upper computer has developed a complete two-way communication protocol, its UI part uses the WPF(Windows Presentation Foundation) framework and it uses the SQLite database to store the fuel pump standard test specification data and historical test record data. Finally, the program realizes the functions of one-key test, test data import and export to XML file automatically and automatic export of historical test record data into Excel table file. It eliminates the tedious operation of repeated input data from different devices, simplifies the test operation and improves the test efficiency.
Key Words:Fuel injection pump; upper computer; WPF; SQLite database;
目 录
第1章 绪论 1
1.1 研究意义及内容 1
1.2 喷油泵测试台测控系统国内外发展状况 1
1.3 监测系统存在的问题 1
第2章 系统总体设计方案分析 3
2.1 功能需求分析 3
2.2 数据库表设计 3
2.2.1 数据库的选择 3
2.2.2 标准规范测试数据表 4
2.2.3 历史记录表设计 6
2.3.4 测试台上位机数据库表功能分析 7
2.3 通讯方式 7
2.4 UI及程序框架选择 8
2.5 本章小结 8
第3章 数据库访问程序设计 9
3.1 方案选取 9
3.2 SQL语句 9
3.3 历史数据表数据导出 11
3.4 喷油泵器件规范数据导入与导出 11
3.5 本章小结 12
第4章 通讯过程设计 13
4.1 通讯协议格式 13
4.2 测试数据发送与接收流程 13
4.3 命令类型 15
4.4 喷油泵规范数据以及历史数据传输处理 16
4.5 多线程处理 17
4.6 通讯抽象接口设计 18
4.7 本章小结 19
第5章 人机界面设计 20
5.1 功能需求分析 20
5.2 简短器件信息控件 21
5.3 历史记录信息控件 24
5.4 底部功能信息栏控件 26
5.5 本章小结 26
第6章 总结与展望 27
6.1 总结 27
6.2 展望 27
参考文献 29
致 谢 30
第1章 绪论
1.1 研究意义及内容
随着经济的快速发展和居民收入不断增长,汽车市场一直保持着持续稳定的增长态势[1],而喷油泵作为发动机的核心部件,其需求自然也日益增大,故而研究一套更加完善、自动化程度更高的喷油泵性能测试系统有着十分重要的意义。
本文在以往试验台测试系统的基础上增加了嵌入式数据库系统(SQLite)来存储不同型号厂家喷油泵的测试数据,并且实现了标准化测试数据的实时录入、便捷可迁移化(可以转化为XML文件在不同的设备上很方便的迁移),简化测试步骤,降低了对于操作人员的技术要求,使测试过程更加自动化,数据更加准确。制作数据导入引导窗口,一步一步地引导用户将数据手册上的数据规范输入到系统中,并且将会自动提醒例如输入负数之类的低级错误。历史测量记录也可以直接导出为Excel表格,避免了人工导出数据时可能发生的失误。
1.2 喷油泵测试台测控系统国内外发展状况
喷油泵试验台是对柴油机的喷油泵进行检测、调整和维修的专门设备[2]。国外喷油泵试验台研究起步较早,其技术领先于国内,市场上的主要型号有意大利Rabotic公司开发的BD850系列、美国的Bacharach公司开发的PDFM808系列、德国Moehwald公司开发的EPB2000型与RPB2000型系列[3]。
目前国内的喷油泵试验台生产厂家有山东泰安,河南南阳,及江苏无锡等地的厂家生产,但相较于国外的测试系统而言,其生产的都是较为低档的试验台。
喷油泵调试的参数主要是各缸油量,由于国内还是主要采用的是玻璃量筒计量为主,但这就导致了测量过程势必无法快速进行,尤其不适用于喷油咀生产厂家的大批量专业化生产,而在国外,则利用了计算机测量技术及设计的传感器能够快速的对于喷油量进行测量。这是国内外喷油泵测试台差距的最大来源,也是目前急需解决的问题,但本文针对的是监测系统方面的不足,从软件方面角度来说,国内测试台测控系统功能单一、对测试人员的技术也有一定的要求,自动化程度较低,操作繁杂,并且喷油泵种类丰富型号众多,检测数据不统一,很多测试系统只适用于其对应厂商生产的器件,对于其他厂商的器件支持度较低。在软件行业技术快速更新的今时今日,也有很多厂商的软件依旧使用的是很多年前的技术来开发,这便带来了技术维护上面的难度和潜在的安全隐患,程序所运行的系统环境过于“老化”,有些系统其开发商已经不再对其进行更新与维护。
1.3 监测系统存在的问题
由于喷油泵种类众多,各大厂商所采用的技术规格也不尽相同,导致其并没有一个普适的规范化测试标准和依据,并且监测调试数据也来源不一,每一个厂商生产的喷油泵都使用其对应的专属监测系统来测试,这就导致了相互之间数据传输、迁移困难,并且多数监测系统自动化程度不高,操作不够简便,这也导致了监测效率并不高。
第2章 系统总体设计方案分析
2.1 功能需求分析
一个完整的测试台系统上位机首先应当有一个与用户产生交互作用的人机交互界面模块,而界面则需要一个内在的逻辑处理模块来支撑起功能,实现其逻辑。测试时需要读取标准测试数据,测试之后需要保存测试历史数据,故而需要一个喷油泵数据库管理模块。当测试的时候,需要和下位机(测试台)进行数据交流,故而需要一个数据通讯管理模块。4大模块之间的关系如图2.1所示,主体逻辑管理模块其角色相当于一个“适配器”,作为核心连接其他三大模块并且与他们密切结合起来,人机交互界面作为对于用户的接口,数据通讯管理模块作为对于测试台的接口,数据库管理模块则负责一切数据读取、修改等操作。
人机交互界面模块
主体逻辑管理模块
数据库管理模块
历史测试记录表
标准器件测试规范数据
数据通讯管理模块
测试台
图2.1 系统设计框图
2.2 数据库表设计
2.2.1 数据库的选择
目前主流数据库有甲骨文公司推出的关系数据库管理系统Oracle,由MySQL AB公司开发的MySQL关系型数据库管理系统,美国微软公司推出的关系型数据库管理系统SQL Server等。但这些数据库大多需要预先在本地机器上安装其服务端或是租赁、购买远程服务器作为数据库服务器,其体量较大,操作繁杂,并且大部分需要收取一定费用来使用,并不适用于喷油泵试验台环境,而且很多功能本系统根本无需用到。
SQLite,是一款轻型的开源数据库,是遵守ACID的关系型数据库管理系统,具有强大、快速、简单的接口以及占用空间小等特殊优势[4],它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。由于其设计目的是嵌入式的,在使用它的时候只需要引用对应语言的三方库即可,没有过多的依赖条件,配合C#与.NET框架可以做到在不同操作系统上的快速迁移并且降低了对于PC机器的要求,这将省去大量人工重复开发和机器购置成本。
但是其也有缺点,就是其对于数据的保护能力较低,并且用户权限管理也十分简单,对于并发读写(多进程或多线程)的处理与支持也不尽如人意。本系统作为上位机系统,数据库存在于本地的文件系统中,不存在多进程访问的情况,因为一台PC只需要安装一个上位机即可。至于多线程在系统中完全没有必要,因为数据量较小,写入读出操作极快,完全可以单线程操作,数据读写无需异步。而其中保存的数据并不是十分重要的数据,对于数据库的操作也全权由上位机操作,无需担心多用户权限等问题,有且只有上位机会去操作数据库。权衡利弊,本系统最终选择了SQLite数据库。
2.2.2 标准规范测试数据表
数据库设计和程序设计是分离的,数据库是一种存储数据并对数据进行操作的工具[5],故而在此,抛开程序所使用的语言和环境,专注于数据库的功能。
喷油泵分为两大类,即机械式喷油泵和共轨喷油泵,在检测方法和原理上,这两者相差极大。即使是同一种部件,不同型号之间的特性及检测数据也有所不同。
机械式喷油泵常规调试工况有启动工况、怠速工况、怠速断油、校正起作用、校正工况、校正结束、标定工况、调速工况、高速断油等,不同种类不同型号的机械油泵调试工况不同,工况参数也不同。以北京天纬油泵油嘴股份有限公司PB型喷油泵CPE6PB110D721LS3118为例[3]:
- 启动工况
设置转速为100rpm,供油次数400,标准供油量为不小于13ml。
- 怠速工况
设置转速为350rpm,供油次数400,标准供油量为5.6±0.6ml,不均匀1.2ml,齿杆行程7.0~8.0mm。
- 怠速断油
设置转速为500rpm,供油次数400,标准供油量不大于1ml,齿杆行程4.0~5.0mm。
- 校正起作用
转速为700rpm。
- 校正工况
设置转速为800rpm,供油次数400,标准供油量为37.2±0.6ml,不均匀1.6ml,齿杆行程10.9~11.0mm。
- 校正结束
转速为800rpm。
- 标定工况
设置转速为1250rpm,供油次数400,标准供油量为38.8±0.6ml,不均匀1.8ml,齿杆行程11~11.1mm。
- 调速工况
设置转速为1300~1320rpm,标准齿杆行程10.8~10.9mm。
- 高速断油
设置转速为1500rpm,供油次数400,标准供油量不大于1ml,齿杆行程不大于4.5mm。
共轨喷油泵的检测步骤则分别为清洗、预热、可视化检查、大喷油测试、溢出测试、零压传送测试、效率测试和开启测试。但由于本系统主要针对机械式喷油泵的检测来开发,故而在此不做过多介绍。
由上文分析可知,机械式喷油泵常规调试工况有9个,每个工况的参数规范最多可以有5个,包括转速、供油次数、标准供油量、不均匀、齿杆行程[6],其中,转速、供油次数为整数,不均匀则为浮点数,而标准供油量和齿杆行程则为一个范围值。转速设置是所有工况必须要拥有的,其他四个参数为可选的,可以随意组合。而整个测试过程9个工况则有一个共同的规范值,测试燃油温度,其也为一个范围值。每个器件也有一个喷油泵编码和喷油泵类型。
表2.1 标准器件要求描述数据库表
键名 | 类型 | 注释 |
Id | int | 主键 |
StartWork | text | 启动工况要求描述 |
IdlingWork | text | 怠速工况要求描述 |
IdlingBreak | text | 怠速断油要求描述 |
ReviseBegin | text | 校正起作用要求描述 |
ReviseWork | text | 校正工况要求描述 |
ReviseEnd | text | 校正结束要求描述 |
DemWork | text | 标定工况要求描述 |
AdjWork | text | 调速工况要求描述 |
HighBreak | text | 高速断油要求描述 |
Tem | text | 测试燃油温度要求描述 |
EquCode | text | 喷油泵编号 |
EquType | text | 喷油泵型号 |
由表2.1可知,标准器件要求描述数据库表(表是数据库的核心和基础,存放数据库所有的数据。一个数据库可以有很多数据表[7])中所有的工况都被设置为text字符类型,因为不同器件,每个工况所要求的参数规范是不一样的,其需求的参数个数不同,故而其无法使用固定的存储空间类型来保存,需要使用text字符类型来存储,将工况的所有要求描述转化为一串字符串,以分隔符和键值对来保存其数据。范围数据也转化为字符串来保存。而浮点值数据将会被保留两位小数来存储。
将一个工况的所有信息存储在一列里面,而不是将所有信息拆分开来,以具体类型来存储,一是出于查询速度的考虑,列越少,查询速度就会相对上升[8],二是出于存储空间考虑,如果将信息拆分开来,那么就会存在为空的列但却占据存储空间。
以上文所提到的CPE6PB110D721LS3118喷油泵怠速工况为例:
IdlingWork: SRS50/SIT@0/RIQ%(5-6.2)/RRT%(7-8)/RA%1.2/
SRS为设定值转速(S_RotateSpeed)的缩写,SIT为设定值喷油次数(S_InjectionTime)的缩写,RIQ为接收值喷油量(R_InjectionQuantity)的缩写,RRT为接收值齿杆行程(R_RackTravel)的缩写,RA为接收值不均匀度(R_Asymmetry)的缩写。以符号“/”来分割不同的键值对,以符号“%”作为键和值得分割符,浮点数据和整数直接连接在键后面,范围数据以符号“()”来包含保存。
故而上述字符串表达的是怠速工况要求描述:设定转速350rpm,设定喷油次数为400次,接收到的喷油量数据需在5-6.2ml之间,接收到的齿杆行程数据需在7-8mm之间,不均匀度需为1.2ml。
2.2.3 历史记录表设计
由表2.2可知,历史记录表格与标准器件描述表相差不大,也同样包含9个工况,一个燃油温度,喷油泵型号和编码(通过编码和型号与标准测试数据表联系起来),最后比前者多了记录日期、记录时间、测试结果是否合格三个键名。
以上是毕业论文大纲或资料介绍,该课题完整毕业论文、开题报告、任务书、程序设计、图纸设计等资料请添加微信获取,微信号:bysjorg。
相关图片展示: