用于管理机动车辆的故障消息的方法
技术领域
本发明涉及管理机动车辆的故障的领域。
背景技术
常规地,机动车辆包括在车辆的使用寿命期间可能逐渐产生故障的许多件设备(热力发动机或电发动机、齿轮箱等)。因此,有这样一种已知的方法,即在车辆操作期间或在车辆不动时监控所述车辆,从而达到检测故障并将故障存储在车辆的动态内存中的目的。由于故障存储在动态内存中,所以机修工可以容易并且可靠地确定故障原因从而达到维修所述车辆的目的。
常规地,机动车辆包括监控计算机,所述监控计算机包括所述动态内存并执行各种诊断功能,每个诊断功能经配置以检测预定故障(喷油嘴短路等等)。在实践中,监控计算机执行许多不同诊断功能以便确定许多预定故障。在已知的方法中,监控计算机是执行发动机控制操作的计算机。
如果诊断功能的执行表明故障的存在,那么故障消息被存储在监控计算机的动态内存中。在已知的方法中,每个故障消息具有优先级排序,从而使得有可能确定故障消息是重要(高排序)还是不重要(低排序)。
由于技术约束,动态内存具有用于存储故障消息的数目有限的内存空间。举例来说,动态内存可具有10个内存空间,以使得能够存储10个故障消息。显然,可存在不同数目个空间。
在实践中,当动态内存已满时,仅最重要的故障消息被添加到动态内存,以代替不大重要的消息。因此,有利地,当机修工查阅动态内存时,他一定会看到迫切到必须处理的最重要的故障消息。
常规地,监控计算机具有单个处理器,故所述监控计算机被称为“单核计算机”。在单个处理器的情况下,以同步方式、一个接一个地执行各种诊断功能,而没有任何中断的危险。因此,故障消息被顺序地存储在动态内存中。通过举例,参考图1,单个处理器P1相继地执行诊断功能DIAGA–DIAGD。由于诊断功能DIAGB-DIAGD表明存在故障,所以故障消息mB、mC、mD以同步方式存储在动态内存DYN中。
为了改善对机动车辆的监控,已提议执行更大数目的诊断功能以便检测到更大数目的不同故障。这是因为随着车辆的复杂度增加,潜在故障的数目也增加。此外,必须监控特定故障以遵守污染防治规定或其它法令规定。
为了使得监控计算机能够执行大量诊断功能,已提议同时使用多个处理器,在这种情况下,监控计算机被称为“多核计算机”。这是因为单核监控计算机无法执行大量诊断功能(特别是由于计算能力和热耗散的因素)。
当同时使用多个处理器来执行诊断功能时,监控计算机可同时产生数个故障消息,这样可能导致写入冲突。通过举例,参考图2,两个处理器P1、P2同时执行诊断功能DIAGA-DIAGH。在此示例中,由处理器P1、P2同时产生故障消息mD、mG,从而导致动态内存DYN中的写入冲突。
因为不可能同时写入到动态内存(由于动态内存不共享),所以已提议使用共享的队列内存,故障消息在由单个指定的处理器顺序地存储在动态内存中之前被临时存储在这个内存中。
临时内存(也称为“队列”)是FIFO类型的内存,术语FIFO对应于英文名称“先进先出”。此队列内存被用于监控计算机的许多其它应用中且无法进行修改。
在车辆监控期间,由监控计算机的各种处理器发送的各种故障消息根据其在临时内存中的到达次序而收集。随后,监控计算机的处理器中的一者以规则时间间隔清空临时内存以便以顺序的方式填充动态内存。以与“单核”监控计算机中发生的情况类似的方式,队列内存中的最重要故障消息以优于较不重要故障消息的优先级而被存储在动态内存中。通过举例,参考图3,两个处理器P1、P2同时执行诊断功能DIAGA-DIAGH。在此示例中,故障消息mD、mG由处理器P1、P2同时产生并被存储在共享的临时内存TMP中。处理器P1、P2中的一者随后将临时内存TMP中的数据顺序地写入到动态内存DYN中。
考虑到针对这种关键类型的应用而不准许动态内存分配,产生了关于限定监控计算机的临时内存的大小的问题。如果临时内存的大小太小,那么一些故障消息可能没有被临时内存收集是有可能的,且将因此没有机会存储在动态内存中。如果没有被临时内存收集的故障消息是具有较高优先级排序的重要故障消息,那么上述缺点是特别严重的。
因此,已提议,使用对应于可能的故障消息的总数(大约300个内存空间)的临时内存大小以便避免重要故障消息的任何漏失。在实践中,这个临时内存大小太大,从而导致产业方面的缺点(特别是关于成本)。
发明内容
本发明的目的因此是通过提议一种用于管理故障消息的方法来克服这些缺点,所述方法允许以可靠方式存储所有重要故障消息,同时限制不被准许动态内存分配的临时FIFO内存的大小。
为此,本发明涉及一种用于借助于机动车辆的监控计算机来管理机动车辆的故障消息的方法,所述监控计算机包括:
-至少两个处理器,其一方面适配成在所述机动车辆的设备上执行多个故障诊断功能,且另一方面适配成如果在执行故障诊断功能期间检测到故障则发送故障消息,每个故障消息具有优先级排序;
-无动态内存分配的“先进先出”(FIFO)类型的临时内存,其适配成存储故障消息,所述临时内存具有预定数目的存储空间以用于存储故障消息;
-用于存储将由机修工的诊断工具读取的故障消息的动态内存,所述动态内存具有预定数目的存储空间以用于存储故障消息,
-所述处理器中的至少一者适配成将临时存储内存的故障消息存储在动态存储内存中,
-使过滤决策与输入对相关联的预定过滤索引,所述输入对由故障消息的优先级排序和在所述故障消息到达时临时存储内存中已占用的临时空间的数目组成,其中所述过滤决策可以是存储授权或存储拒绝;
-所述过滤索引使存储授权与一个输入对相关联,在所述输入对中临时存储内存中已占用的临时空间的数目低,且在所述输入对中所述故障消息的优先级排序高;
-所述过滤索引使存储拒绝与一个输入对相关联,在所述输入对中临时存储内存中已占用的临时空间的数目高,且在所述输入对中所述故障消息的优先级排序低;
所述方法包括:
-接收由处理器中的一者发送的故障消息的步骤,
-形成输入对的步骤,所述输入对由所述故障消息的优先级排序和临时存储内存中被占用的空间的数目组成,
-过滤步骤,其中如果与所述输入对相关联的过滤决策根据所述预定过滤索引的读数而为存储授权,那么方法执行将所述故障消息存储在临时存储内存中的步骤,以及
-其中由处理器中的一者基于以下各项而将临时存储内存的故障消息存储在动态存储内存中的步骤:临时存储内存的故障消息的优先级排序、动态存储内存的故障消息的优先级排序和动态存储内存的空的空间的数目。
作为本发明的结果,在将故障消息存储在临时内存中之前执行过滤步骤,以便避免存储不适于存储在可由机修工读取的动态内存中的故障消息。
有利地,过滤是基于有待于存储的故障消息的优先级排序和临时存储内存中已占用的空间的数目,以便在临时内存填满时有利于最重要消息。这个步骤特别有用,因为不可能从FIFO类型的临时内存中撤出不重要的故障消息。
最后,可有利地限制临时内存的大小以便降低其成本,由此实现显著的优点。
优选地,过滤索引使预定存储阈值与故障消息的每个优先级排序相关联,所述方法在过滤步骤期间包括:
-确定与故障消息的所述优先级排序相关联的存储阈值的步骤,
-将所述存储阈值与临时存储内存的已占用空间的数目相比较的步骤,以及
-如果存储阈值大于临时存储内存的已占用空间的数目则递送授权的步骤。
通过在过滤索引中使用指定的存储阈值,有可能针对故障消息的每个优先级排序mr来校准为具有最重要优先级的消息而保留的内存空间的数目。换句话说,每个故障存储阈值使得有可能确保最重要的故障消息将存储在临时内存中,即使临时内存被部分地填充也是如此。
优选地,每个存储阈值P(mr)符合以下公式:
其中NDYN表示动态内存中存储空间的数目,且mr表示故障消息的优先级排序。
通过以此方式定义存储阈值,可以确保所有最重要的故障消息将存储在动态内存中,而与故障消息到达的次序无关。这个特性是特别有益的,因为其允许显著减小临时内存的大小。
因此,优选地,临时内存空间的数目NTMP符合以下公式:
其中Nmr表示故障消息的优先级排序的数目,且其中NDYN表示动态内存中存储空间的数目。临时内存的大小经优化以确保接收到所有最重要的故障消息。
优选地,与具有最低优先级的故障消息(也就是说,最不重要消息)相关联的第一存储阈值是至少等于动态内存中存储空间的数目NDYN。因此,如果仅仅检测到较不重要的故障消息(例如,关于间歇性故障的那些故障消息)(这种是最常见的情况),那么毫无疑问动态内存将被全部填充使得机修工可以获取所有消息。
优选地,对于大于1的mr来说,每个存储阈值P(mr)符合以下公式:
其中系数K(mr)是范围从0到1的加权系数,且其中NDYN表示动态内存中存储空间的数目。
有利地,使每个存储阈值加权以便限制动态内存的大小。此加权是有可能的,一方面是因为消息将以最不利次序而被接收的可能性极小,且另一方面是因为接收到具有较高排序的大量故障消息的机率是渺小的。此外,具有给定排序的故障消息的数目可能低于动态内存中空间的数目。事实上,如果仅存在4个或5个具有最高排序的不同故障消息,那么为最高优先级排序而保留10个内存空间是没有意义的。
优选地,第一存储阈值等于动态内存中存储空间的数目NDYN。由于这个特性,共享的临时内存的大小得以显著减小。根据一个优选方面,对于大于1的每个优先级排序来说,系数是相同的。
附图说明
将借助于仅通过举例参考所附图式而提供的以下描述来更加清楚地理解本发明,其中:
-图1是根据现有技术的故障管理方法的示意性表示,其中计算机具有单个处理器;
-图2是故障管理方法的示意性表示,其中计算机具有两个处理器;
-图3是故障管理方法的示意性表示,其中计算机具有两个处理器和一个共享的临时内存;
-图4是根据本发明的具有过滤索引的故障管理方法的示意性表示;
-图5是根据本发明的过滤索引的示例性实施例的示意性表示;以及
-图6是根据本发明的故障管理方法的步骤的示意图。
具体实施方式
应指出,诸图是以详述的方式来绘示本发明从而达到应用本发明的目的,所述图显然是有用的,以便在必要时更密切地限定本发明。参考图4,将针对机动车辆的监控计算机1来描述本发明,所述监控计算机1适配成诊断所述车辆的设备中的故障,例如发动机、排气系统、安全设备等等中的故障。
仍然参考图4,所述监控计算机1包括两个处理器P1、P2,所述处理器P1、P2一方面适配成在所述机动车辆的设备上执行多个故障诊断功能DIAG,且另一方面适配成如果在执行故障诊断功能DIAG期间检测到故障则发送故障消息m。在此示例中,处理器P1、P2连接到机动车辆的设备传感器以便取得由这些传感器测量的参数(温度、速度、电压等)。由于监控计算机1具有多个处理器P1、P2,所以监控计算机1是多核计算机。
如图4中所绘示,每个故障消息m对应于预定故障,且具有与故障的重要性或关键性相关联的优先级排序mr。
在此示例中,优先级排序可以取9个不同值,在此示例中出于清晰起见这些不同值被限定在1与9之间,尽管显然优先级排序可以取不同值。具有排序1的故障是那些被描述为间歇性的故障,并且是最不关键的(有缺陷的前照灯灯泡、车门没有关好等)。相反地,具有排序9的故障是关键性故障(安全气囊展开等)。
再次参考图4,监控计算机1具有无动态内存分配的“先进先出“(FIFO)类型的临时内存,其适配成存储故障消息m,所述临时内存TMP具有预定数目NTMP的存储空间以用于存储故障消息m。临时内存TMP是共享内存,其中可在接收到同时写入请求之后顺序地实施写入。在实践中,共享临时内存包含为本领域技术人员所已知的用于对同时写入请求进行顺序写入的旗语或令牌机制。临时内存TMP中存储空间要么是空的要么已占用。换句话说,临时内存TMP具有数目为NTMP-o的已占用存储空间和数目为NTMP-v的空存储空间,从而构成总数为NTMP的空间。如先前所提到,这种类型的内存是由监控计算机1的架构来预定,并且无法更改。
监控计算机1更包括用于存储故障消息m的动态内存DYN,将由机修工的诊断工具来读取所述动态内存DYN。机修工以常规方式来使读取装置可用,包括连接插座,所述连接插座可连接到监控计算机1的动态内存DYN以便读取所存储的故障消息m。机修工的读取装置适配成根据所检测到的故障来暗示车辆的最有可能的失灵。
动态内存DYN具有预定数目NDYN的存储空间以用于存储故障消息m。不同于临时内存TMP,动态内存DYN不是共享内存,并且可由单个处理器P1、P2仅以同步方式被写入,如下文所描述。以类似于临时内存TMP的方式,动态内存DYN中的存储空间要么是空的要么已占用。换句话说,动态内存DYN具有数目为NDYN-o的已占用存储空间和数目为NDYN-v的空存储空间,从而构成总数为NDYN的空间。
参考图5,此图以图形形式绘示根据本发明的优选实施例的过滤索引F,所述过滤索引F使过滤决策与输入对相关联,所述输入对是由故障消息的优先级排序mr和在所述故障消息m到达时临时存储内存TMP中已占用的临时空间的数目NTMP-O组成。所述过滤决策要么是存储授权Y要么是存储拒绝N。如图5中所绘示,存储授权Y是由白色矩形表示,而存储拒绝N是由黑色矩形表示。
总的来说,参考图5,所述过滤索引F使存储授权Y与输入对相关联,其中临时存储内存TMP中已占用的临时空间的数目NTMP-O较低且其中所述故障消息m的优先级排序mr较高。相反,所述过滤索引F使存储拒绝N与输入对相关联,其中临时存储内存TMP中已占用的临时空间的数目NTMP-O较高且其中所述故障消息m的优先级排序mr较低。
优选地,参考图5,过滤索引F使存储授权Y与间歇性故障消息m(也就是说,排序mr等于1的那些故障消息)相关联,前提条件是临时内存TMP中的给定数目P(1)个空间未占用。下文将这个空间数目P(1)称为存储阈值。在此实施例中,存储阈值P与每个优先级排序mr相关联。因此,具有1到9的值的优先级排序mr分别与存储阈值P(1)到P(9)相关联。
如果具有优先级排序mr的故障消息m经受过滤索引F,那么后者仅在临时存储内存TMP中已占用的临时空间的数目NTMP-O低于与所述优先级排序mr相关联的存储阈值P的情况下才接收到存储授权Y。
优选地,第一存储阈值P(1)等于动态内存DYN中存储空间的数目NDYN[P(1)=NDYN]。换句话说,如果由监控计算机1检测到的仅仅是间歇性故障(也就是说,较不关键及非永久性故障),那么临时内存TMP仅存储具有排序mr=1的足够数目个故障消息,以填充整个动态内存DYN。对具有排序1的消息的任何更大量的存储将是过度的,因为动态内存DYN的大小有限。
由于过滤索引F,使得临时内存TMP的大小受到限制且为最重要的故障消息而保留了空间,如下文所详述。
类似地,过滤索引F使存储授权Y与排序为mr=2的故障消息m相关联,前提条件是临时内存TMP中的给定数目P(2)个空间未占用。
根据第一方面,临时内存TMP的第二阈值P(2)等于2xNDYN,因此允许具有排序mr=2的所有消息存储在动态内存DYN中而没有漏失的危险。
事实上,最坏情况接收情形是接收到具有排序mr=1的大量故障消息,接着接收到具有排序mr=2的大量故障消息。根据这种情形,仅具有排序mr=1的P(1)个第一消息被存储在临时内存TMP中,且随后仅具有排序mr=2的P(2)-P(1)个第一消息被存储在临时内存TMP中。在用临时内存TMP中的消息以同步方式来填充动态内存DYN期间,具有排序mr=1的消息m将首先存储在动态内存DYN中,且随后将被具有排序mr=2的消息m所代替,因为这些消息优先于具有排序mr=1的消息。最终,动态内存DYN将仅仅填充有具有排序为2的消息,由此满足存储最重要的故障消息m的期望目标。
类似地,过滤索引F使存储授权Y与具有给定排序mr的故障消息m相关联,前提条件是临时内存TMP中的给定数目P(mr)个空间未占用。优选地,临时内存TMP中空间的有限数目P(mr)等于mrxNDYN,因此允许具有排序为mr的所有消息存储在动态内存DYN中而没有漏失的危险。
。
根据过滤索引F的这个定义,临时内存TMP中空间的数目NTMP等于优先级排序的数目Nmr乘以动态内存中的内存空间的数目NDYN:
。
因此,如果NDYN等于10,那么临时内存TMP中空间的所得数目NTMP是90。因此,通过与现有技术相比较,临时内存TMP的大小被显著减小,现有技术提议临时内存应具有能够存储所有可能的故障消息的大小(也就是说,大于300)。作为本发明的结果,临时内存TMP的大小被减小了至少70%。
如先前所描述,限定临时内存TMP中内存空间的数目NTMP,以便允许接收到所有最重要的故障消息m,即使当这些故障消息m是按可能的最不利接收次序而被接收时也是如此,也就是说,相继接收具有排序为1的10个故障消息、具有排序为2的10个故障消息、具有排序为3的10个故障消息,等等。
根据过滤索引F的另一实施例,对于大于1的mr来说,如下定义每个存储阈值P:
。
系数K(mr)是范围从0到1的加权系数。这个加权系数K(mr)对于具有排序mr的故障消息m来说是有利的,因为其使得临时内存TMP中内存空间的数目NTMP能够减小同时考虑到故障消息将以相继方式到达的极低机率和具有较高排序(mr>8)的故障消息m的数目较少的事实。优选地,对于故障消息m的每个排序mr来说,加权系数K(mr)的范围从0.2到1。
优选地,K1等于1,以便允许用具有排序为1的所有故障消息来填充动态内存DYN,所述故障消息对应于间歇性故障。优选地,对于大于1的mr来说,K(mr)的范围从0.2到0.5,且优选地大约是0.3。
通过举例,临时内存TMP中空间的数目NTMP等于:
。
在本示例中,对于具有9个优先级排序的故障消息m和具有10个内存空间的动态内存DYN来说,临时内存TMP中空间的数目NTMP大约是34。
。
因此,通过与现有技术相比较,临时内存TMP的大小被显著减小,在现有技术中,提议临时内存应具有能够存储所有可能的故障消息的大小(也就是说,大于300)。作为本发明的结果,临时内存TMP的大小被减小了将近90%。
由于过滤索引F,使得有可能提议具有有限的大小且成本低廉的临时内存TMP,从而允许将其装配在具有多核监控计算机1的机动车辆中。
现将参考图6来描述本发明的示例性实施例。
首先,用于管理故障消息m的方法包括接收由处理器P1、P2中的一者发送的故障消息m的步骤E1。如先前所提到,因为监控计算机1具有多个处理器P1、P2,所以故障消息m可能同时到达。
方法随后包括形成输入对的步骤E2,所述输入对是由所述故障消息的优先级排序mr和临时存储内存TMP中已占用的空间的数目NTMP-O组成。
方法包括过滤步骤E3,其中如果与所述输入对(NTMP-O;mr)相关联的过滤决策根据所述预定过滤索引F的读数而为存储授权Y,那么方法执行将所述故障消息m存储在临时存储内存TMP中的步骤E4。否则,如果与所述输入对(NTMP-O;mr)相关联的过滤决策根据所述预定过滤索引F的读数而为存储拒绝N,那么拒绝故障消息m。
在实践中,方法包括确定与故障消息m的所述优先级排序mr相关联的存储阈值P(mr)的步骤、接着是将所述存储阈值P(mr)与临时存储内存TMP中已占用的空间的数目NTMP-O相比较的步骤。如果存储阈值P(mr)更高,那么递送存储授权Y;否则,递送存储拒绝N。
通过举例,如果K(mr)=0.3(对于mr>1来说),那么过滤索引F包括以下阈值:
mr |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
P(mr) |
10 |
13 |
16 |
19 |
22 |
25 |
28 |
31 |
34 |
如果过滤索引以连续的方式接收到以下故障消息:
编号 |
mr |
NTMP-O |
编号 |
mr |
NTMP-O |
1 |
1 |
1 |
16
|
1
|
13 |
2 |
1 |
2 |
17
|
2
|
13 |
3 |
1 |
3 |
18
|
1
|
13 |
4 |
1 |
4 |
19
|
1
|
13 |
5 |
1 |
5 |
20 |
5 |
14 |
6 |
1 |
6 |
21
|
1
|
14 |
7 |
1 |
7 |
22
|
1
|
14 |
8 |
2 |
8 |
23 |
5 |
15 |
9 |
1 |
9 |
24 |
5 |
16 |
10 |
1 |
10 |
25 |
5 |
17 |
11
|
1
|
10 |
26
|
3
|
17 |
12 |
2 |
11 |
27
|
1
|
17 |
13 |
5 |
12 |
28
|
1
|
17 |
14 |
4 |
13 |
29
|
1
|
17 |
15
|
1
|
13 |
30
|
1
|
17 |
在上表中,加下划线的故障消息没有接收到存储授权。
第11号故障消息没有接收到对存储在临时内存中的授权,因为已达到第一存储阈值P(1)。不再有可能存储具有排序为mr=1的任何其它消息。另一方面,第12号故障消息接收到对存储在临时内存中的授权,因为还没有达到第二存储阈值P(2)。但是,第17号消息没有接收到对存储在临时内存中的授权,因为已达到第二存储阈值P(2)。针对其它故障消息而继续这个程序。
方法随后包括步骤E5,其中由处理器P1、P2中的一者基于以下各者而将临时存储内存TMP中的故障消息m存储(优选地,以分批的方式)在动态存储内存DYN中:临时存储内存TMP的故障消息m的优先级排序mr、动态存储内存DYN中的故障消息m的优先级排序mr和动态存储内存DYN的空的空间NDYN的数目NDYN-V。以类似于现有技术的方式,当动态内存DYN已满时,仅最重要的故障消息m被添加到动态内存,以代替最不重要的消息m。因此,有利地,当机修工查阅动态内存时,他一定会看到非迫切处理不可的最重要的故障消息。
作为本发明的结果,故障消息m得以以可靠的方式存储在具有多个核的监控计算机1的动态内存DYN中,以便检测更大数目个不同故障。由机修工实施的诊断甚至更为精确且更为可靠,这是有利的。此外,临时内存TMP的大小以最佳的方式而减小,以便降低其成本同时维持极高的可靠性。