Software Engineering and Applications
Vol.05 No.04(2016), Article ID:18362,9 pages
10.12677/SEA.2016.54026

The Software Designment for the Fault Diagnosing and Memorizing System of Diesel Engine

Xiaoyan Shen, Lingling Zhao, Siyang Gong, Sujuan Yao, Wei Yang, Chunfang Cao

China North Engine Research Institute, Tianjin

Received: Aug. 1st, 2016; accepted: Aug. 19th, 2016; published: Aug. 22nd, 2016

Copyright © 2016 by authors and Hans Publishers Inc.

This work is licensed under the Creative Commons Attribution International License (CC BY).

http://creativecommons.org/licenses/by/4.0/

ABSTRACT

In order to acquire the fault information of diesel engine, the paper designed the fault diagnosing and memorizing system of diesel engine based on SCM C8051F040 and memorizing chip AT45DB161. The design thought and the flow of the system software were expatiated. Through the emulational experimentation, it was proved that the software could be used to diagnose and memorize the fault. It could provide the data base in order to analyze the fault reason of diesel engine.

Keywords:Signal Collection, Fault Diagnosing, Fault Memorizing, Fault Reading

柴油机故障诊断与记录系统软件设计

申晓彦,赵玲玲,龚思扬,姚素娟,杨薇,曹春芳

中国北方发动机研究所,天津

收稿日期:2016年8月1日;录用日期:2016年8月19日;发布日期:2016年8月22日

摘 要

为获取柴油机的故障信息,本文设计了基于单片机C8051F040、记录芯片AT45DB161的柴油机故障诊断与故障记录系统软件,详细阐述了系统软件各模块的设计思路及流程。通过仿真试验表明,设计的软件能够实现柴油机故障信息的诊断与记录,为分析柴油机的故障原因提供数据基础。

关键词 :信号采集,故障诊断,故障记录,读取故障

1. 引言

柴油机在运行过程中会出现各种各样的故障情况,如果能将出现故障时的相关信息记录下来,将会有利于事后对柴油机的故障进行分析,为柴油机的改进设计提供参考数据。因此,本文针对柴油机故障设计了故障诊断与记录系统软件,主要用于采集各类传感器信号;对采集信号进行分析以判断柴油机当前状况;当出现故障时,记录当前的各项参数;并通过读取故障数据,为分析柴油机的运行状态提供帮助。

2. 系统总体结构

故障诊断与记录系统以单片机C8051F040为核心完成控制任务,该单片机内部有12位转换精度的ADC,通过串行外设接口SPI可实现灵活的全双工串行通讯 [1] - [3] 。柴油机上安装有各种传感器,传感器将信号传递至单片机,单片机对采集信号进行转换处理,判断采集信号的异常状态,将故障状态下的数据信息记录在AT45DB161芯片中存储,并通过上位机通讯软件读取故障数据 [4] 。系统总体框图如图1所示。

3. 系统软件设计

柴油机故障诊断与记录系统采用C语言进行程序开发,系统软件采用模块化设计 [5] ,实现了信号采集、故障诊断、故障分区表上电检测、故障分区表记录、故障数据记录和读取故障数据的功能(图1)。系统软件流程图如图2所示。软件开始运行时,先进行系统时钟初始化、定时器初始化、中断初始化、SPI总线初始化、以及部分参数初始化,如:定时器标志、故障标志、故障分区表记录状态、故障数据记录状态、故障分区表冷启动检测标志等。其余模块的功能如下所述。

3.1. 信号采集模块设计

各模拟信号的采集使用查询定时标志的方式进行,信号采样周期为100 ms。当定时标志置位时,依次对7个通道的模拟信号进行AD转换(水温、进气温度、机油压力、增压压力、大气压力、油门踏板、转速),AD值经过公示计算或查询MAP图的处理方式,得到采集信号的输出值。信号采集模块流程图如图3所示。

3.2. 故障诊断模块设计

通过将信号采集输出值分别与各信号的上限值、下限值进行比较,以此判断传感器信号的当前状态,当信号超限、发生故障时,故障错误次数累加,故障错误次数超过限定值时,使相应的故障标志置位 [6] 。如果信号恢复正常,则故障错误次数清零,相应的故障标志清零。故障诊断模块流程图如图4所示。

Figure 1. Systemic graph

图1. 系统总体框图

Figure 2. Flow chart of systemic software

图2. 系统软件流程图

Figure 3. Flow chart of signal collection

图3. 信号采集模块流程图

Figure 4. Flow chart of the fault diagnosis

图4. 故障诊断模块流程图

3.3. 故障分区表记录模块设计

故障分区表信息以查询方式记录,用于在下次记录时进行故障状态判断,和起始记录地址的计算。当出现故障时,先将当前故障信息与前次故障信息进行比较,如果故障相同,则不进行重复记录;如果故障不同(部分故障解除或出现新的故障),则记录当前故障信息,记录内容包括当前故障状态(如:水温传感器故障、转速传感器故障)、故障信息记录组数、累加校验和等。

故障分区表信息记录在AT45DB161芯片中,该芯片是串行接口的闪存芯片,可应用于数据语音、图像、程序代码数据的存储。芯片支持RapidS串行接口,与SPI相兼容,速度可达到66 MHz。芯片包含17,301,504个位,被组织为4096个页,每个页512或528个字节 [7] 。除了主存储器,芯片还包括两个SRAM数据缓冲区,每个缓冲区512/528个字节。在主存储器正在编程时,缓冲区是允许接收数据的,并且支持数据流式写入。芯片可以采用2.5 V~3.6 V或2.7 V~3.6 V单电源供电,进行编程与读取操作,并通过三线接口(SI、SO、SCK)进行数据通信。

为保证故障分区表信息记录的可靠性,对其采用冗余设计方法,分别在记录芯片AT45DB161的三处区域进行独立记录。因此,故障分区表信息记录时,应根据写入位置计算写入地址,然后将故障信息写入缓冲区,再由缓冲区写入Flash页固化。故障分区表记录模块流程图如图5所示。

3.4. 故障分区表上电检测模块设计

上电时对故障分区表三处记录内容进行符合性比较检验,得到最完整的分区表信息,以获取上次记录的故障状态、记录组数等信息,便于本次记录条件的判断,下次记录地址的计算。校验方式如下:

1) 分别判断三处故障分区表数据的累加和是否正确。

2) 如果三处累加和都错误,则应采用默认值;如果只有一处累加和正确,则以该处的信息为最完整信息;如果有两处以上累加和正确,则需进一步比较记录组数。

3) 如果记录组数不相同,则以记录组数最大的一处为最完整信息;如果记录组数都相同,则三处数据相同,都为最完整信息。

4) 用最完整信息或默认值,更新错误信息,保持三处故障信息正确且一致。

故障分区表上电检测模块流程图如图6所示。

3.5. 故障数据记录模块设计

故障分区表记录完成后,根据其记录组数计算故障数据的写入地址,记录当前的发动机运行参数,记录内容一般包括:水温、进气温度、机油压力、增压压力、大气压力、油门踏板、转速、当前故障状态、发动机状态、喷射脉宽、喷射正时、累加校验和等。为后期的发动机故障分析提供参考数据。

故障数据记录时,以数组的形式记录,每页可写入多组故障数据。AT45DB161记录芯片的缓冲区支持数组写入模式,而Flash页不支持数组写入模式,因此,应先将故障数据组写入缓冲区,再由缓冲区整体写入Flash页。如果写入地址不是当前页的第一组时,则应先将当前Flash页数据写入缓冲区,然后将要记录的故障数据组顺序写入缓冲区的相应位置,再由缓冲区整体写入Flash页固化。故障数据记录模块流程图如图7所示。

3.6. 读取故障数据模块设计

分析发动机运行过程中出现的故障时,需要先读取故障数据。上位机通过RS232串口发送读取指令,当系统接收到上位机的指令后,按照串口协议解析指令内容,判断是否为读取故障分区表指令(或读取故障数据指令)。如果接收到的是正确的读取指令,则单片机从AT45DB161记芯片中读取指定地址的故障

Figure 5. Flow chart of the fault partition table memorizing

图5. 故障分区表记录模块流程图

Figure 6. Flow chart of the fault partition table detecting

图6. 故障分区表上电检测模块流程图

Figure 7. Flow chart of the fault data memorizing

图7. 故障数据记录模块流程图

分区表信息或故障数据,再将数据按照串口协议的格式发送给上位机,完成读取操作。读取故障数据模块流程图如图8所示。

4. 试验验证

为了验证故障诊断与记录系统软件功能的正确性和可靠性,将调试后的软件下载至电控系统程序存储器中,通过试验进行软件功能验证。搭建发动机仿真运行平台 [8] ,按照各信号的输入类型及输入范围,利用仿真设备模拟输入水温信号、进气温度信号、机油压力信号、增压压力信号、大气压力信号、油门踏板信号、转速信号。在试验过程中,通过设定正常信号、故障信号,并由上位机读取故障数据,来验证故障诊断与记录功能。

故障状态变量定义为16位整型数据,其各位所表示的含义如表1所示。每位的值为1表示出现相应的故障,值为0表示没有故障。

故障限值的参数设定如表2所示。

试验中依次设置水温信号低下限故障、进气温度信号高上限故障、机油压力信号高上限故障、增压压力信号低下限故障、大气压力高上限故障、油门踏板低下限故障、超速故障。通过上位机读取记录的故障数据,如表3所示。

分析上表可知,第一组故障数据为:水温值低于下限值,故障状态D0位为1 (十进制数为1);第二组故障数据为:进气温度值高于上限值,故障状态D3位为1 (十进制数为8);第三组故障数据为:机油

Figure 8. Flow chart of the fault data reading

图8. 读取故障数据模块流程图

Table 1. Definition of the fault state variable

表1. 故障状态变量各位的含义

Table 2. The restrictive value of all stimulant signals

表2. 各模拟信号故障限值

Table 3. Fata data memorizing

表3. 故障数据记录

压力值高于上限值,故障状态D5位为1 (十进制数为32);第四组故障数据为:增压压力值低于下限值,故障状态D6位为1 (十进制数为64);第五组故障数据为:大气压力值高于上限值,故障状态D9位为1 (十进制数为512);第六组故障数据为:油门踏板值低于下限值,故障状态D10位为1 (十进制数为1024);第七组故障数据为:转速值高于上限值,故障状态D12位为1 (十进制数为4096)。与试验中设置故障的顺序、故障类型一致,且符合故障记录的要求(出现不同的故障时,记录当前故障信息)。由此表明,故障诊断与记录系统的软件功能正常。

5. 结论

采用单片机C8051F040、记录芯片AT45DB161,通过软件的模块化设计,实现了柴油机的故障诊断与故障数据记录的功能。各软件模块的接口明晰,具有较强的可移植性、可复用性。通过对柴油机故障的诊断、记录与读取,有助于分析柴油机的故障原因,为柴油机设计的改进与提升提供基本依据。

文章引用

申晓彦,赵玲玲,龚思扬,姚素娟,杨 薇,曹春芳. 柴油机故障诊断与记录系统软件设计
The Software Designment for the Fault Diagnosing and Memorizing System of Diesel Engine[J]. 软件工程与应用, 2016, 05(04): 228-236. http://dx.doi.org/10.12677/SEA.2016.54026

参考文献 (References)

  1. 1. 于丽娜, 秦丽. C8051F单片机信号采集系统[J]. 仪表技术与传感器, 2011(7): 53-55.

  2. 2. 童长飞. C8051F系列单片机开发与C语言编程[M]. 北京: 北京航空航天大学出版社, 2005.

  3. 3. Cygnal Integrated Products, Inc. C8051F单片机应用解析[M]. 潘琢金, 孙德龙, 夏秀峰, 译. 北京: 北京航空航天大学出版社, 2002.

  4. 4. 张旭等. 汽车远程诊断系统车帆模块的研究和开发[J]. 车用发动机, 2011(1): 14-17.

  5. 5. 胡敦利, 张春晓. 基于C8051F040和CAN总线的液位控制器设计[J]. 仪表技术与传感器, 2009(7): 63-65.

  6. 6. 杨薇等. 基于CAN总线的柴油机数据采集系统设计[J]. 车用发动机, 2012(1): 68-72.

  7. 7. 陈颖. 存储器AT45DB161及其在安全监控记录装置中的应用[J]. 机车电传动, 2009(2): 51-54.

  8. 8. 常城, 周雅夫, 王志强. 发动机电子控制半实物仿真试验平台的开发[J]. 汽车科技, 2008(6): 34-37.

期刊菜单