DE102011121620B4 - Verfahren und Systeme zum Diagnostizieren von Hardware- und Softwarefehlern unter Verwendung von mit Zeitstempeln versehenen Ereignissen - Google Patents

Verfahren und Systeme zum Diagnostizieren von Hardware- und Softwarefehlern unter Verwendung von mit Zeitstempeln versehenen Ereignissen Download PDF

Info

Publication number
DE102011121620B4
DE102011121620B4 DE102011121620.4A DE102011121620A DE102011121620B4 DE 102011121620 B4 DE102011121620 B4 DE 102011121620B4 DE 102011121620 A DE102011121620 A DE 102011121620A DE 102011121620 B4 DE102011121620 B4 DE 102011121620B4
Authority
DE
Germany
Prior art keywords
function
processor
cycle
error
functions
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
DE102011121620.4A
Other languages
English (en)
Other versions
DE102011121620A1 (de
Inventor
Purnendu Sinha
Dipankar Das
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
GM Global Technology Operations LLC
Original Assignee
GM Global Technology Operations LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by GM Global Technology Operations LLC filed Critical GM Global Technology Operations LLC
Publication of DE102011121620A1 publication Critical patent/DE102011121620A1/de
Application granted granted Critical
Publication of DE102011121620B4 publication Critical patent/DE102011121620B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/079Root cause analysis, i.e. error or fault diagnosis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0715Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a system implementing multitasking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • H04L41/064Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis involving time analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Verfahren, das von einem Computerprozessor einer Beobachtungsvorrichtung zum Klassifizieren von Fehlern in einem elektronischen Netzwerk unter Verwendung eines zeitgesteuerten Kommunikationssystems und einer Komponente mit hoher zeitlicher Auflösung ausgeführt wird, wobei das Verfahren umfasst, dass:(i) der Prozessor einen ersten Fehlercode empfängt, der bei einer ersten Funktion des elektronischen Systems in Ansprechen auf einen ersten Fehler bei der ersten Funktion erzeugt wurde, wobei der erste Fehlercode bestimmt:einen ersten Kommunikationszyklus des elektronischen Systems, der dem ersten Fehler zugeordnet ist; undein der ersten Funktion entsprechendes erstes Zeitfenster einer ersten Meldung, in welcher der erste Fehlercode an den Prozessor übertragen wird;(ii) der Prozessor einen zweiten Fehlercode empfängt, der bei einer zweiten fehlschlagenden Funktion des elektronischen Systems in Ansprechen auf einen zweiten Fehler erzeugt wurde, wobei der zweite Fehlercode bestimmt:einen zweiten Kommunikationszyklus des elektronischen Systems, der dem zweiten Fehler zugeordnet ist; undein der zweiten Funktion entsprechendes zweites Zeitfenster einer zweiten Meldung, in welcher der zweite Fehlercode an den Prozessor übertragen wird, wobei auf der Grundlage einer Zeit, die mit Bezug auf die Komponente mit hoher zeitlicher Auflösung synchronisiert ist, das erste Zeitfenster und das zweite Zeitfenster mit dem ersten Fehlercode bzw. dem zweiten Fehlercode gefüllt werden;(iii) der Prozessor einen Ausführungszyklusversatz, der der ersten Funktion und der zweiten Funktion zugeordnet ist, unter Verwendung eines Ausführungsplans bestimmt;(iv) der Prozessor prüft, ob der erste Zyklus des ersten Fehlercodes vom zweiten Zyklus des zweiten Fehlercodes durch den durch den Plan bestimmten Ausführungszyklusversatz getrennt ist;(v) wenn der Prozessor feststellt, dass der erste Zyklus vom zweiten Zyklus nicht durch den Ausführungszyklusversatz getrennt ist, der Prozessor ferner feststellt, dass der erste Fehler den zweiten Fehler nicht verursacht hat;(vi) wenn der Prozessor feststellt, dass der erste Zyklus vom zweiten Zyklus durch den Ausführungszyklusversatz getrennt ist, der Prozessor auf der Grundlage von Funktionsabhängigkeitsdaten prüft, ob die Arbeitsweise irgendeiner der Funktionen von der Arbeitsweise irgendeiner anderen der Funktionen abhängt;(vii) wenn der Prozessor feststellt, dass die Arbeitsweise keiner der Funktionen von der Arbeitsweise einer anderen der Funktionen abhängt, der Prozessor ferner feststellt, dass der erste Fehler und der zweite Fehler zufällig sind;(viii) wenn der Prozessor feststellt, dass die Arbeitsweise mindestens einer der Funktionen von der Arbeitsweise mindestens einer anderen der Funktionen abhängt, der Prozessor prüft, ob die Arbeitsweise der zweiten Funktion von der Arbeitsweise der ersten Funktion abhängt;(ix) wenn der Prozessor feststellt, dass die Arbeitsweise der zweiten Funktion von der Arbeitsweise der ersten Funktion abhängt, der Prozessor ferner feststellt, dass das Fehlschlagen der ersten Funktion das Fehlschlagen bei der zweiten Funktion verursacht hat; und(x) wenn der Prozessor feststellt, dass die Arbeitsweise der zweiten Funktion nicht von der Arbeitsweise der zweiten Funktion abhängt, der Prozessor ferner feststellt, dass der erste Fehler den zweiten Fehler nicht verursacht hat;wobei:der Ausführungszyklusversatz ein anfänglicher Zyklusversatz ist;das Verfahren ferner umfasst, dass:Schritt (iii) erneut durchgeführt wird, um einen anderen Zyklusversatz zu bestimmen; unddie Schritte (iv)-(x) unter Verwendung des anderen Zyklusversatzes anstelle des anfänglichen Zyklusversatzes erneut durchgeführt werden.

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Offenbarung betrifft allgemein Verfahren und Systeme zum Diagnostizieren von Hardware- und Softwarefehlern, und insbesondere Verfahren und Systeme zum Diagnostizieren von Hardware- und Softwarefehlern durch mit Zeitstempeln versehene Ereignisse.
  • HINTERGRUND
  • Fehler treten oft bei einer oder mehreren Funktionen bzw. Tasks eines elektronischen Multitask-Systems auf. Ein Beispiel für derartige Multitask-Systeme ist das elektronische System von modernen Kraftfahrzeugen. Funktionen umfassen Software, etwa Berechnungsmodule eines Bordcomputers, und Hardware, etwa Sensoren oder andere elektronische Eingaben an den Computer, oder eine Kombination aus den vorstehend erwähnten, etwa im Fall intelligenter bzw. smarter Sensoren.
  • In vielen Fällen wird ein Fehler bei einer Funktion zu einem Fehler bei einer oder mehreren anderen Funktionen des Systems führen. Wenn mehrere Funktionen fehlschlagen, kann es schwierig sein, zu bestimmen, ob irgendwelche der Fehler in Beziehung standen, etwa indem ein Fehler einen anderen der Fehler verursacht hat. Und wenn sie in Beziehung standen, kann es schwierig sein, genau festzustellen, welcher bzw. welche Fehler, wenn überhaupt, mit welchem bzw. welchen anderen Fehlern korrelieren. Diese Herausforderung wird durch die Tatsache verkompliziert, dass Fehlermeldungen, die von einer früher fehlschlagenden Funktion ausgelöst wurden, später als das Senden und/oder der Empfang einer Fehlermeldung von einer später fehlschlagenden Funktion gesendet und/oder empfangen werden können, was es folglich unmöglich macht, eine Korrelation zwischen den Fehlern nur auf der Grundlage des Zeitpunkts der resultierenden Fehlermeldungen genau zu bestimmen.
  • Die Druckschrift US 5 748 098 A offenbart ein Verfahren zur automatischen Verarbeitung von Alarmsignalen in einem Netzwerk-Verwaltungssystem, bei dem gleichzeitig auftretende Ereignisse mit historischen Ereignissen verglichen werden, um festzustellen, ob zwischen den Ereignissen eine Beziehung besteht. Zur Analyse werden die Ereignisse mit Zeitstempeln versehen und in Zeitfenster eingeteilt.
  • In der Druckschrift US 6 118 936 A ist ein Netzwerk-Verwaltungssystem offenbart, das eine Korrelation von Ereignissen unter Berücksichtigung von Informationen zur Netzwerktopologie und von Wartungsplänen erstellt.
  • Die Druckschrift US 2006 / 0 041 659 A1 offenbart eine Datenstruktur, in der für jede Entität/Ressource eines Netzwerks Ereignisse, die aus der Entität stammen, sowie Ereignisse, die aus Abhängigkeitsverhältnissen mit dieser Entität stammen, gespeichert werden.
  • In der Druckschrift US 5 661 668 A sind Vorrichtungen und Verfahren zur Analyse und Korrelation von Ereignissen in einem System unter Verwendung einer Kausalitätsmatrix offenbart, in der einem Ereignis eine Liste von möglichen Ursachen zugeordnet wird, welch für das Ereignis verantwortlich sein können.
  • Die Druckschrift US 7 788 005 B2 offenbart ein elektronisches Steuerungssystem und Verfahren zur Fahrzeugdiagnose, bei denen ein Diagnoseprozess ausgeführt wird, um anhand von Signalen von Fahrzeuggeräten festzustellen, ob Abweichungen vorhanden sind. Wenn ja, wird das Diagnoseergebnis gespeichert, sofern das Speichern freigegeben ist.
  • ZUSAMMENFASSUNG
  • Die vorliegende Offenbarung betrifft ein Transportfahrzeug, das eine Komponente mit hoher zeitlicher Auflösung, ein elektronisches Netzwerk, das eine erste Funktion und eine zweite Funktion umfasst, wobei das elektronische Netzwerk ausgestaltet ist, um ein zeitgesteuertes Kommunikationssystem auf der Grundlage der Komponente mit hoher zeitlicher Auflösung zu verwenden, und einen Bordcomputer umfasst. Der Bordcomputer enthält einen Prozessor und ein konkretes, nicht flüchtiges computerlesbares Medium, das Anweisungen enthält, die, wenn sie vom Prozessor ausgeführt werden, bewirken, dass der Prozessor Schritte ausführt, um Fehler im elektronischen Netzwerk zu klassifizieren. Die Schritte umfassen, dass (i) ein erster Fehlercode empfangen wird, der bei einer ersten Funktion des elektronischen Systems in Ansprechen auf einen ersten Fehler bei der ersten Funktion erzeugt wurde, wobei der erste Fehlercode (a) einen ersten Kommunikationszyklus des elektronischen Systems, der dem ersten Fehler zugeordnet ist, und (b) ein erstes Zeitfenster, welches der ersten Funktion entspricht, einer ersten Meldung, in welcher der erste Fehlercode an den Prozessor übertragen wird, bestimmt. Die Schritte umfassen auch, dass (ii) ein zweiter Fehlercode empfangen wird, der bei einer zweiten fehlschlagenden Funktion des elektronischen Systems in Ansprechen auf einen zweiten Fehler erzeugt wurde, wobei der zweite Fehlercode (1) einen zweiten Kommunikationszyklus des elektronischen
  • Systems, der dem zweiten Fehler zugeordnet ist, und (2) ein zweites Zeitfenster, welches der zweiten Funktion entspricht, einer zweiten Meldung, in welcher der zweite Fehlercode an den Prozessor übertragen wird, bestimmt. Das erste Zeitfenster und das zweite Zeitfenster werden auf der Grundlage einer Zeit, die mit Bezug auf die Komponente mit hoher zeitlicher Auflösung synchronisiert ist, mit dem ersten Fehlercode bzw. dem zweiten Fehlercode gefüllt. Die Schritte umfassen auch, dass (iii) unter Verwendung eines Ausführungsplans ein Ausführungszyklusversatz bestimmt wird, welcher der ersten Funktion und der zweiten Funktion zugeordnet ist, und dass (iv) geprüft wird, ob der erste Zyklus des ersten Fehlercodes von dem zweiten Zyklus des zweiten Fehlercodes durch den durch den Plan bestimmten Ausführungszyklusversatz getrennt ist. Die Schritte umfassen ferner, dass (v), wenn der erste Zyklus vom zweiten Zyklus nicht durch den Ausführungszyklusversatz getrennt ist, festgestellt wird, dass der erste Fehler den zweiten Fehler nicht verursacht hat, (vi) wenn der erste Zyklus vom zweiten Zyklus durch den Ausführungszyklusversatz getrennt ist, auf der Grundlage von Funktionsabhängigkeitsdaten geprüft wird, ob die Arbeitsweise irgendwelcher der Funktionen von der Arbeitsweise beliebiger anderer der Funktionen abhängt, (vii) wenn die Arbeitsweise keiner der Funktionen von der Arbeitsweise einer anderen der Funktionen abhängt, festgestellt wird, dass der erste Fehler und der zweite Fehler zufällig sind, und (viii), wenn die Arbeitsweise mindestens einer der Funktionen von der Arbeitsweise mindestens einer anderen der Funktionen abhängt, geprüft wird, ob die Arbeitsweise der zweiten Funktion von der Arbeitsweise der ersten Funktion abhängt. Die Schritte umfassen auch, dass (ix), wenn die Arbeitsweise der zweiten Funktion von der Arbeitsweise der ersten Funktion abhängt, festgestellt wird, dass das Fehlschlagen der ersten Funktion das Fehlschlagen bei der zweiten Funktion verursacht hat, und (x) wenn die Arbeitsweise der zweiten Funktion nicht von der Arbeitsweise der zweiten Funktion abhängt, festgestellt wird, dass der erste Fehler den zweiten Fehler nicht verursacht hat. Dabei ist der Ausführungszyklusversatz ein anfänglicher Zyklusversatz und die Schritte umfassen ferner, dass Schritt (iii) erneut durchgeführt wird, um einen anderen Zyklusversatz zu bestimmen; und die Schritte (iv)-(x) unter Verwendung des anderen Zyklusversatzes anstelle des anfänglichen Zyklusversatzes erneut durchgeführt werden.
  • Die vorliegende Offenbarung betrifft auch ein Verfahren, das von einem Computerprozessor einer Beobachtungsvorrichtung ausgeführt wird, um Fehler in einem elektronischen Netzwerk unter Verwendung eines zeitgesteuerten Kommunikationssystems und einer Komponente mit hoher zeitlicher Auflösung zu klassifizieren. Das Verfahren umfasst, dass (i) der Prozessor einen ersten Fehlercode empfängt, der bei einer ersten Funktion des elektronischen Systems in Ansprechen auf einen ersten Fehler bei der ersten Funktion erzeugt wurde, wobei der erste Fehlercode bestimmt: (a) einen ersten Kommunikationszyklus des elektronischen Systems, der dem ersten Fehler zugeordnet ist, und (b) ein erstes Zeitfenster, das der ersten Funktion entspricht, einer ersten Meldung, in welcher der erste Fehlercode an den Prozessor übertragen wird. Das Verfahren umfasst auch, dass (ii) der Prozessor einen zweiten Fehlercode empfängt, der bei einer zweiten fehlschlagenden Funktion des elektronischen Systems in Ansprechen auf einen zweiten Fehler erzeugt wurde. Der zweite Fehlercode bestimmt (1) einen zweiten Kommunikationszyklus des elektronischen Systems, der dem zweiten Fehler zugeordnet ist, und (2) ein zweites Zeitfenster, das der zweiten Funktion entspricht, einer zweiten Meldung, in welcher der zweite Fehlercode an den Prozessor übertragen wird. Auf der Grundlage einer Zeit, die mit Bezug auf die Komponente mit hoher zeitlicher Auflösung synchronisiert ist, werden das erste Zeitfenster und das zweite Zeitfenster mit dem ersten Fehlercode bzw. dem zweiten Fehlercode gefüllt. Das Verfahren umfasst ferner, dass (iii) der Prozessor einen Ausführungszyklusversatz, der der ersten Funktion und der zweiten Funktion zugeordnet ist, unter Verwendung eines Ausführungsplans bestimmt, und (iv), dass der Prozessor prüft, ob der erste Zyklus des ersten Fehlercodes vom zweiten Zyklus des zweiten Fehlercodes durch den Ausführungszyklusversatz, der durch den Plan bestimmt wurde, getrennt ist. Das Verfahren umfasst auch, dass (v), wenn der Prozessor feststellt, dass der erste Zyklus nicht durch den Ausführungszyklusversatz vom zweiten Zyklus getrennt ist, der Prozessor ferner feststellt, dass der erste Fehler den zweiten Fehler nicht verursacht hat, und dass (vi), wenn der Prozessor feststellt, dass der erste Zyklus vom zweiten Zyklus durch den Ausführungszyklusversatz getrennt ist, der Prozessor auf der Grundlage von Funktionsabhängigkeitsdaten prüft, ob die Arbeitsweise irgendeiner der Funktionen von der Arbeitsweise irgendeiner anderen der Funktionen abhängt. Das Verfahren umfasst außerdem ferner, dass (vii), wenn der Prozessor feststellt, dass die Arbeitsweise keiner der Funktionen von der Arbeitsweise einer anderen der Funktionen abhängt, der Prozessor ferner feststellt, dass der erste Fehler und der zweite Fehler zufällig sind, und (viii), wenn der Prozessor feststellt, dass die Arbeitsweise mindestens einer der Funktionen von der Arbeitsweise mindestens einer anderen der Funktionen abhängt, der Prozessor prüft, ob die Arbeitsweise der zweiten Funktion von der Arbeitsweise der ersten Funktion abhängt. Das Verfahren umfasst auch, dass (ix), wenn der Prozessor feststellt, dass die Arbeitsweise der zweiten Funktion von der Arbeitsweise der ersten Funktion abhängt, der Prozessor ferner feststellt, dass das Fehlschlagen der ersten Funktion das Fehlschlagen bei der zweiten Funktion verursacht hat, und (x), wenn der Prozessor feststellt, dass die Arbeitsweise der zweiten Funktion nicht von der Arbeitsweise der zweiten Funktion abhängt, der Prozessor ferner feststellt, dass der erste Fehler den zweiten Fehler nicht verursacht hat. Dabei ist der Ausführungszyklusversatz ein anfänglicher Zyklusversatz und das Verfahren umfasst ferner, dass Schritt (iii) erneut durchgeführt wird, um einen anderen Zyklusversatz zu bestimmen; und die Schritte (iv)-(x) unter Verwendung des anderen Zyklusversatzes anstelle des anfänglichen Zyklusversatzes erneut durchgeführt werden.
  • Die vorliegende Offenbarung betrifft ferner ein konkretes, nicht flüchtiges computerlesbares Medium einer Beobachtungsvorrichtung, das Anweisungen enthält, die, wenn sie von einem Prozessor ausgeführt werden, bewirken, dass der Prozessor Schritte zum Klassifizieren von Fehlern in einem elektronischen Netzwerk unter Verwendung eines zeitgesteuerten Kommunikationssystems und einer Komponente mit hoher zeitlicher Auflösung durchführt. Die Schritte umfassen, dass (i) ein erster Fehlercode empfangen wird, der bei einer ersten Funktion des elektronischen Systems in Ansprechen auf einen ersten Fehler bei der ersten Funktion erzeugt wurde, wobei der erste Fehlercode (a) einen ersten Kommunikationszyklus des elektronischen Systems, der dem ersten Fehler zugeordnet ist, und (b) ein erstes Zeitfenster, das der ersten Funktion entspricht, einer ersten Meldung, in welcher der erste Fehlercode an den Prozessor übertragen wird, bestimmt. Die Schritte umfassen auch, dass (ii) ein zweiter Fehlercode empfangen wird, der bei einer zweiten fehlschlagenden Funktion des elektronischen Systems in Ansprechen auf einen zweiten Fehler erzeugt wurde, wobei der zweite Fehlercode (1) einen zweiten Kommunikationszyklus des elektronischen Systems, der dem zweiten Fehler zugeordnet ist, und (2) ein zweites Zeitfenster, das der zweiten Funktion entspricht, einer zweiten Meldung, in welcher der zweite Fehlercode an den Prozessor übertragen wird, bestimmt. Auf der Grundlage einer Zeit, die mit Bezug auf die Komponente mit hoher zeitlicher Auflösung synchronisiert ist, werden das erste Zeitfenster und das zweite Zeitfenster mit dem ersten Fehlercode bzw. dem zweiten Fehlercode gefüllt. Die Schritte umfassen auch, dass (iii) ein Ausführungszyklusversatz, der der ersten Funktion und der zweiten Funktion zugeordnet ist, unter Verwendung eines Ausführungsplans bestimmt wird, und (iv) geprüft wird, ob der erste Zyklus des ersten Fehlercodes durch den Ausführungszyklusversatz, der durch den Plan bestimmt wurde, vom zweiten Zyklus des zweiten Fehlercodes getrennt ist. Die Schritte umfassen ferner, dass (v), wenn der erste Zyklus nicht durch den Ausführungszyklusversatz vom zweiten Zyklus getrennt ist, festgestellt wird, dass der erste Fehler den zweiten Fehler nicht verursacht hat, (vi) wenn der erste Zyklus durch den Ausführungszyklusversatz vom zweiten Zyklus getrennt ist, auf der Grundlage von Funktionsabhängigkeitsdaten geprüft wird, ob die Arbeitsweise irgendeiner der Funktionen von der Arbeitsweise irgendeiner anderen der Funktionen abhängt, (vii) wenn die Arbeitsweise keiner der Funktionen von der Arbeitsweise einer anderen der Funktionen abhängt, festgestellt wird, dass der erste Fehler und der zweite Fehler zufällig sind, und (viii), wenn die Arbeitsweise mindestens einer der Funktionen von der Arbeitsweise mindestens einer anderen der Funktionen abhängt, geprüft wird, ob die Arbeitsweise der zweiten Funktion von der Arbeitsweise der ersten Funktion abhängt. Die Schritte umfassen auch, dass (ix) wenn die Arbeitsweise der zweiten Funktion von der Arbeitsweise der ersten Funktion abhängt, festgestellt wird, dass der Fehler der ersten Funktion den Fehler bei der zweiten Funktion verursacht hat, und (x), wenn die Arbeitsweise der zweiten Funktion nicht von der Arbeitsweise der zweiten Funktion abhängt, festgestellt wird, dass der erste Fehler den zweiten Fehler nicht verursacht hat. Dabei ist der Ausführungszyklusversatz ein anfänglicher Zyklusversatz und die Schritte umfassen ferner, dass Schritt (iii) erneut durchgeführt wird, um einen anderen Zyklusversatz zu bestimmen; und die Schritte (iv)-(x) unter Verwendung des anderen Zyklusversatzes anstelle des anfänglichen Zyklusversatzes erneut durchgeführt werden.
  • Weitere Aspekte der vorliegenden Erfindung werden teilweise offensichtlich sein und teilweise nachstehend hier dargelegt werden.
  • Figurenliste
    • 1 veranschaulicht zyklische Pläne von zwei elektronischen Steuereinheiten (ECUs) und einen Diagnoseproblemcode, der aus einer der Funktionen des Plans jeder ECU hervorgeht, gemäß einer Ausführungsform der vorliegenden Offenbarung.
    • 2 veranschaulicht ein beispielhaftes Diagnoseverfahren zur Bestimmung, ob die in 1 gezeigten Fehler zufällig, korreliert oder unkorreliert sind, gemäß einer Ausführungsform der vorliegenden Offenbarung.
  • GENAUE BESCHREIBUNG
  • Wie es gefordert ist, werden hier detaillierte Ausführungsformen der vorliegenden Offenbarung aufgezeigt. Die aufgezeigten Ausführungsformen sind nur Beispiele, die in verschiedenen und alternativen Formen und Kombinationen daraus ausgeführt werden können. Bei der Verwendung hierin beziehen sich z.B. „beispielhaft“ und ähnliche Begriffe umfassend auf Ausführungsformen, die als eine Veranschaulichung, ein Muster, ein Modell oder eine Vorlage dienen. Die Figuren sind nicht unbedingt maßstabsgetreu und einige Merkmale können vergrößert oder minimiert sein, um Details spezieller Komponenten zu zeigen. In einigen Fällen wurden gut bekannte Komponenten, Systeme, Materialien oder Verfahren nicht im Detail beschrieben, um ein Verschleiern der vorliegenden Offenbarung zu vermeiden. Daher sollen spezielle strukturelle und funktionale Details, die hier offenbart sind, nicht als Beschränkung interpretiert werden, sondern nur als eine Basis für die Ansprüche und eine repräsentative Basis zur Unterrichtung des Fachmanns, um die vorliegende Offenbarung auf verschiedene Weise einzusetzen.
  • Obwohl die Beschreibung einen allgemeinen Kontext von comupterausführbaren Anweisungen umfasst, kann die vorliegende Offenbarung auch in Kombination mit anderen Programmmodulen und/oder als eine Kombination aus Hardware und Software implementiert werden. Der Begriff „Anwendung“ oder Varianten davon werden hier umfassend so verwendet, dass er Routinen, Programmmodule, Programme, Komponenten, Datenstrukturen, Algorithmen und dergleichen umfasst. Anwendungen können auf verschiedenen Systemkonfigurationen implementiert sein, welche Einprozessor- oder Mehrprozessorsysteme, auf Mikroprozessoren basierende Elektronik, Systeme mit einem oder mehreren Kernen, Kombinationen daraus und dergleichen umfassen.
  • Allgemeiner Überblick über die Offenbarung
  • Die vorliegende Offenbarung beschreibt ein Diagnosemodul und Verfahren zum Diagnostizieren von Hardware- und/oder Softwarefehlern durch Versehen der Fehlereignisse mit Zeitstempeln. Insbesondere wird eine synchronisierte Uhr mit hoher Auflösung verwendet, um Zeitfenster von einem oder mehreren Kommunikationsmeldungszyklen, in denen Fehler aufgetreten sind, zu bestimmen. Andere Eingaben an das Diagnosemodul umfassen einen Graphen von Systemfunktionen, ein Verzeichnis von Systemressourcen und einen Kommunikations/Ausführungsplan für das System. Unter Verwendung dieser Eingaben stellt das Diagnosemodul fest, ob zwei oder mehr Fehler zufällig, korreliert oder unkorreliert sind.
  • Obwohl die vorliegende Erfindung primär anhand von Beispielen mit Bezug auf Kraftfahrzeugsysteme beschrieben wird, bei denen Systemfunktionen Software- und Hardwarekomponenten eines Kraftfahrzeugs umfassen, sind die Lehren der vorliegenden Offenbarung nicht auf die Verwendung mit Kraftfahrzeugen begrenzt und können verwendet werden, um andere elektronische und Computersysteme zu diagnostizieren und zu verbessern.
  • Beispielhaftes Fehlerszenario
  • Mit Bezug nun auf die Figuren stellt 1 ein System 100 dar, das jeweilige zyklische Pläne von zwei elektronischen Steuereinheiten (ECUs) 110, 112 umfasst. Die ECUs können Teile eines Kraftfahrzeugs (nicht im Detail gezeigt) oder eines anderen rechnergestützten Systems sein. Obwohl zwei ECUs 110, 112, etwa Berechnungsknoten, als Beispiel gezeigt sind, ist festzustellen, dass die Lehren der vorliegenden Offenbarung auf ähnliche Weise verwendet werden können, um Fehler zu diagnostizieren, die in einer ECU oder drei oder mehr ECUs auftreten.
  • Jede ECU 110, 112 ist mit einer synchronisierten Uhr 114 verbunden. Die ECUs 110, 112 sind mit der gleichen synchronisierten Uhr 114 verbunden. Lokale Uhren in jeder ECU 110, 112 können mit der globalen Uhr 114 gekoppelt sein und mit der globalen Uhr 114 periodisch synchronisiert werden (z.B. jede Sekunde, oder mehr oder weniger häufig), um sicherzustellen, dass jede ECU 110, 112 (z.B. Funktionen derselben) mit der gleichen Zeitbasis arbeiten. Die Uhrsynchronisation wird bei einigen Ausführungsformen von einem oder mehreren Uhrsynchronisationsalgorithmen verwaltet, welche ein Teil eines zeitgesteuerten Kommunikationssystems sind, das die Kommunikation im System 100 steuert, wie nachstehend weiter beschrieben wird.
  • Jede ECU 110, 112 enthält außerdem mehrere Funktionen T. Die Funktionen T jeder ECU 110, 112 arbeiten innerhalb jeweiliger Zyklen oder zyklischer Pläne 116, 118 der ECUs 110, 112. Die Ausführung der Funktionen T ist zeitgesteuert mit Bezug auf die synchronisierte Zeit. Insbesondere wird beispielsweise jede Funktion T in zuvor zugewiesenen Zeitfenstern ausgeführt, ähnlich zu der Weise, wie Meldungen im System 100 in zuvor zugewiesenen Zeitfenstern im zeitgesteuerten Kommunikationssystem übermittelt werden.
  • Bei einigen Ausführungsformen werden die Funktionen T zyklisch ausgeführt. Mit Bezug auf 1 werden die Funktionen T beispielsweise wie folgt ausgeführt: T11, T1i, T1h, T1k, T1n, T1l, Tli, usw. Meldungen von den Funktionen T werden auf ähnliche Weise zyklisch ausgesendet.
  • Bei einigen Ausführungsformen ist mindestens eine der Funktionen T ein Segment eines Computercodes, welches als eine Rechenfunktion bezeichnet werden kann, ein Hardwareteil (z.B. ein Sensor oder eine andere Elektronik), welches als eine Erfassungsfunktion bezeichnet werden kann, oder eine Kombination der beiden. Die Funktionen T können beispielsweise das Ausführen von Software, eine Sensoraktion, eine Stellgliedaktion oder eine andere Hardwarevorrichtung umfassen, die eine Aufgabe ausführt, wie etwa eine anwendungsspezifische integrierte Schaltung (ASIC).
  • Obwohl die Diagnose von Fehlern in Verbindung mit Knoten T beschrieben wird, die in verschiedenen ECUs 110, 112 und mit einem zyklischen Plan 116, 118 arbeiten, können die Lehren der vorliegenden Offenbarung verwendet werden, um Fehler zu diagnostizieren, die in den gleichen ECUs, in verschiedenen ECUs, im gleichen Zyklus, in verschiedenen Zyklen oder einer Kombination daraus auftreten, wie etwa drei Fehler, die in drei Funktionen auftreten, wobei zwei aus dem gleichen Zyklus einer ECU sind und der dritte Fehler in einer Funktion eines anderen Zyklus und einer anderen ECU auftritt.
  • Der Zeitpunkt von Operationen innerhalb der zyklischen Pläne 116, 118 wird von der bzw. den synchronisierten Uhren 114 gesteuert. Ein Zeitgeber oder eine andere zeitbasierte Variable jeder Funktion T kann mit Bezug auf die synchronisierte Uhr 114 periodisch aktualisiert oder korrigiert werden. Es wird in Betracht gezogen, dass die synchronisierte Uhr 114 selbst periodisch aktualisiert werden kann, etwa mit Bezug auf eine weitere Uhr, wie etwa die Uhr des globalen Positionierungssystems (GPS), obwohl dies nicht notwendig ist.
  • Jede Funktion T ist ein Softwaremodul, etwa ein Programm oder ein Teilprogramm der ECU 110, 112, ein Hardwaremodul der ECU 110, 112, etwa ein elektronisches Gerät, oder eine Kombination aus Software und Hardware der ECU 110, 112. Ein beispielhaftes elektronisches Hardwaremodul, das eine Funktion T bildet, ist ein Fahrzeugsensor, etwa ein Geschwindigkeitssensor. Ein beispielhaftes Softwaremodul ist eine Computeranwendung, die in einem computerlesbaren Medium gespeichert ist (z.B. einem Bordcomputer eines Kraftfahrzeugs).
  • Spezielle beispielhafte Softwarefehler umfassen: (1) Speicherverfälschungsfehler, etwa ein Stapelüberlauf, ein Pufferüberlauf, Segmentierungsfehler (auch als Speicherausnahmefehler bekannt) und Seitenfehler, (2) Planungsprogrammierfehler wie etwa eine verpasste Freigabezeit, welche aus Programmierfehlern im Betriebssystem oder einem nicht geeigneten Entwurf von Unterbrechungen und/oder Ausnahmebedingungen resultieren können, und (3) Fehler, die durch böswillige Attacken auf drahtlose Sensornetzwerke ausgelöst werden. Beispielhafte Hardwarefehler umfassen (a) Entwurfprogrammierfehler/-fehler, etwa eine falsche Implementierung gestörter Pipelines, und (b) Speicher-/ Busfehler, die aus weichen Fehlern resultieren, welche wiederum zu Softwarefehlern führen.
  • Ferner sind in 1 zwei Abhängigkeiten 120, 122 zwischen Funktionen T explizit gezeigt, jeweils eine für die ECUs 110, 112. Eine Abhängigkeit zwischen Funktionen existiert, wenn die Arbeitsweise einer Funktion (z.B. der Funktion T1l in der ersten ECU 110 und der Funktion T21 in der zweiten ECU 112) auf irgendeine Weise von der Arbeitsweise einer anderen Funktion (z.B. der Funktion T1k in der ersten ECU 110 und der Funktion T2n in der zweiten ECU 112) abhängt oder auf irgendeine Weise dadurch beeinflusst wird. Beispielsweise kann die Funktion T11 der ersten ECU 110 ein Softwaremodul sein, das eine Ausgabe von der anderen Funktion T1k der ersten ECU 110 benötigt, um seine Operationen durchzuführen, wobei die andere Funktion T1k ein Softwaremodul oder ein Software / HardwareModul ist. Auf ähnliche Weise kann beispielsweise die Funktion T21 der zweiten ECU 112 ein Software- und/oder Hardwaremodul sein, das eine Ausgabe von der anderen Funktion T2n der zweiten ECU 112 benötigt, um seine Operationen durchzuführen, wobei die andere Funktion T2n ein Software- und/oder Hardwaremodul ist.
  • Obwohl als beispielhafte Abhängigkeiten gegeben sind, dass die Funktion T11 von der Funktion T1k abhängt und die Funktion T21 von der Funktion T2n abhängt, können Abhängigkeiten zwischen beliebigen verschiedenen anderen Funktionen existieren (z.B. zwischen T1k, T1n, T11, T1i, T1h, T2k, T2n, T21, T2i, T2j, die nur als beispielhafte Funktionen angeben sind und nicht darauf beschränkt sein sollen) und werden gemäß der vorliegenden Technologie auf ähnliche Weise ausgewertet.
  • Ferner kann die Arbeitsweise einer Funktion T auf irgendeine Weise von der Arbeitsweise einer oder mehrerer Funktionen T von einer oder mehr als einer ECU 110, 112 abhängen oder auf irgendeine Weise dadurch beeinflusst werden.
  • Außerdem bezieht sich die Arbeitsweise der Funktion T1 in der ersten ECU 110 und der Funktion Tn in der zweiten ECU 112 darauf, dass die Arbeitsweise der gleichen Funktion Tk in beiden ECUs vorhanden ist. Ferner ist festzustellen, dass, obwohl Ti ein Teil von beiden ECUs 110, 112 ist, der Fehler, der in der Funktion Ti auftritt, welcher nachstehend weiter beschrieben wird, in Verbindung mit einer Rolle der Funktion Ti in nur einem der Zyklen 118 auftritt.
  • Die dargestellten Abhängigkeiten sind nur als Beispiele bereitgestellt, und es können andere Abhängigkeiten (nicht im Detail bezeigt) zwischen den gezeigten Funktionen existieren, die mit den Abhängigkeiten und einer anderen Funktion, zwischen anderen Paaren, oder zwischen drei oder mehr verschiedenen Funktionen T in Beziehung stehen. Die Arbeitsweise einer beliebigen Funktion T kann von der Arbeitsweise mehrerer anderer Funktionen T abhängen und/oder mehrere Funktionen T können von der Arbeitsweise einer einzelnen anderen Funktion T abhängen. Derartige Systemabhängigkeiten können in einem Funktionsgraphen und/oder einem Ressourcenverzeichnis gespeichert sein, wie nachstehend in weiterem Detail beschrieben wird.
  • Eine genaue Diagnose der Fehler im System 100 stellt verschiedene Vorteile bereit. Die Diagnose von Fehlern umfasst die Bestimmung der Funktion oder der Funktionen, die fehlgeschlagen ist bzw. sind, und die Ursache des Fehlers, etwa eine oder mehrere andere Funktionen oder einen Prozess innerhalb der Funktion. Beispielhafte Vorteile einer genauen Diagnose von Fehlern umfassen die Fähigkeit zur Behebung oder Maskierung von Fehlern, um ein zukünftiges Auftreten zu vermeiden, zum Ermöglichen einer Arbeitsweise zum Umgehen der Fehler und zum Neuzuordnen der Systemarchitektur oder um die Systemarchitektur auf andere Weise zu verändern, um die bestimmten Fehler zu lindern. Eine effektive Diagnose umfasst das Bestimmen kausaler Beziehungen zwischen zwei oder mehr beliebigen Fehlern, wenn mehrere Fehler und derartige Beziehungen existieren. Unter der Voraussetzung, dass mehrere Fehler aufgetreten sind, gibt es bei einigen Ausführungsformen eine paarweise Analyse von Funktionen (d.h. das Vergleichen von zwei Funktionen auf einmal), um Teilabhängigkeiten (Beziehungen) zwischen den Fehlern zu bestimmen. Abgeleitete Teilabhängigkeiten werden zusammengetragen, um eine kausale Sequenz von Fehlern festzustellen.
  • Die genaue Feststellung von kausalen Beziehungen kann nicht allein von der Abhängigkeit von Arbeitsweisen abhängen, oder auch nur von der Abhängigkeit von Arbeitsweisen und dem Fehlerzeitpunkt alleine. Zum Beispiel kann auch, wenn einem Fehler in einer ersten Funktion (z.B. der Funktion T11 in der ersten ECU 110) ein Fehler in einer zweiten Funktion (z.B. der Funktion T1k in der ersten ECU 110) vorausgegangen ist, von der die erste Funktion abhängt, nur auf der Grundlage dieser Informationen nicht mit Gewissheit oder mit einem hoher Vertrauensniveau gefolgert werden, dass der Fehler in der zweiten Funktion den Fehler in der ersten Funktion verursacht hat. Beispielsweise könnte der Fehler in der ersten Funktion vollständig unabhängig vom Fehler in der zweiten Funktion gewesen sein oder aus einer Kombination von Fehlern resultieren, welche die zweite Funktion umfasst oder nicht umfasst.
  • Jeder Knoten T umfasst eine Berechnungskomponente, die ausgestaltet ist, um einen Code in Ansprechen auf einen Fehler bei der Funktion T zu erzeugen. Insbesondere erzeugt beispielsweise, wenn ein Fehler auftritt, die fehlschlagende Funktion T einen Problemcode oder Fehlercode, etwa einen Diagnoseproblemcode (DTC), der die fehlschlagende Funktion T bestimmt.
  • Die Weise, auf welche der DTC die Funktion bestimmt, kann von der verwendeten Kommunikationsarchitektur abhängen. Bei einem Kraftfahrzeug beispielsweise verwendet eine beispielhafte Kommunikationsarchitektur eine zeitgesteuerte Nachrichtenübermittlung (TT-Nachrichtenübermittlung) über ein Kommunikationsnetzwerk im Fahrzeug. Diese Architekturtypen, die häufig als zeitgesteuerte Kommunikationssysteme bezeichnet werden, steuern die Kommunikation im System 100, wie nachstehend weiter beschrieben wird. Ein beispielhaftes zeitgesteuertes Kommunikationssystem ist ein TT-Ethernetnetzwerk.
  • Im Allgemeinen nutzen in einem zeitgesteuerten Kommunikationssystem alle Knoten im System eine globale synchronisierte Zeitnotation gemeinsam. Eine Synchronisation kann beispielsweise durch periodische Uhrenkorrekturen erreicht werden. Außerdem wird die Zeit bei zeitgesteuerten Kommunikationssystemen in Zeitfenster eingeteilt, und ein Knoten kann eine Meldung (Daten) in einem vordefinierten Zeitfenster übermitteln, wobei in diesem Fall die Meldung mit einem Zeitstempel versehen wird, um das Zeitfenster anzugeben. Wenn daher eine Meldung in einem gegebenen Zeitfenster gesendet wird, kann etwa von einer Vorrichtung oder von Personal, die bzw. das das System auswertet, festgestellt werden, dass die Meldung von dem Zeitfenster, in dem sie ausgesendet wurde, mit einem Zeitstempel versehen wurde. Wenn der Knoten eine Meldung nicht in seinem zugeordneten Zeitfenster sendet, können andere Knoten nicht in dem Zeitfenster kommunizieren.
  • DTCs zeigen einen Fehlschlag an, etwa indem sie bestimmen, dass ein Fehlschlag aufgetreten ist und eine Zeitinstanz des Fehlschlags, etwa durch die Aufnahme einer Kommunikations- oder Ausführungszykluskennung.
  • Zeitgesteuerte Kommunikationssysteme erfordern die Verwendung einer globalen Zeit, etwa der Zeit, die von der synchronen Uhr 114 mitgeführt wird, und die Verwendung eines fehlertoleranten Midpoint-Algorithmus. In einigen Fällen wird ein kombiniertes zeitgesteuertes Kommunikationssystem verwendet. Ein beliebiges oder mehrere zeitgesteuerte Kommunikationssysteme können verwendet werden, etwa diejenigen, die üblicherweise bei Kraftfahrzeuganwendungen verwendet werden.
  • Wie dargestellt, wird ein derartiges synchronisiertes System oder Netzwerk verwendet, um Echtzeitfunktionen und eine Meldungsübermittlung in dem und durch das Netzwerk zu planen. Externe Vorrichtungen können verwendet werden, um Meldungstypen zu bestimmen (z.B., ob sie DTC-Meldungen sind), und ob die Meldungen Informationen mit Bezug auf den Kommunikationszyklus enthalten, in welchem irgendwelche mit einem DTC verbundene Fehler aufgetreten sind. Eine beispielhafte externe Vorrichtung ist ein CANoe-Analyzer. Die genaue Bestimmung und Interpretation von Meldungen kann durch das beabsichtigte Einbringen oder ein anderes Verursachen von Fehlern und die Analyse resultierender Operationen getestet werden.
  • Meldungen können herkömmliche Komponenten umfassen, etwa einen Header, eine Nutzlast und einen Trailer. Bei einigen Ausführungsformen bestimmt die Meldung einen Kommunikationszyklus, der der Meldung entspricht, etwa im Header und/oder Trailer der Meldung. Ferner ist jeder Meldung ein Zeitcode oder Zeitstempel zugeordnet, welcher das Zeitfenster angibt, in welchem die Meldung (z.B. ein DTC-Code) über den Kommunikationsbus übertragen wurde.
  • Bei einer bevorzugten Ausführungsform weist die synchronisierte Uhr 114 eine sehr hohe Auflösung auf, die ein extrem genaues Zeitstempeln ermöglicht. Während aktuelle Uhren mit extrem genauer Auflösung eine Auflösung bis hinunter auf etwa 50 µs aufweisen, werden Uhren mit einer höheren Auflösung in Betracht gezogen und können in die Technologien der vorliegenden Offenbarung implementiert werden.
  • Bei einer beispielhaften Ausführungsform umfassen zeitgesteuerte Meldungen ein statisches Segment und ein dynamisches Segment, und jeder Funktion T ist ein Zeitfenster im statischen Segment (ST) zugeordnet. Im Allgemeinen übermitteln Funktionen T mit Zeitstempeln versehene DTCs in ihren jeweiligen zugeordneten Zeitfenstern für statische Meldungen. Durch Kenntnis des Zeitfensters für statische Meldungen, das jeder Funktion zugeordnet ist, stellt der zentrale Prozessor (z.B. der Bordcomputer) die Funktion T, von der der DTC stammt, durch das Zeitfenster, in dem der DTC übertragen wird, fest.
  • Bei einigen Ausführungsformen sind die statischen Segmente (ST) allgemein für eine Verwendung in Verbindung mit zeitgesteuerten Meldungen reserviert und die dynamischen Segmente (DYN) sind allgemein für ereignisgesteuerte Meldungen reserviert. Bei bestimmten Szenarien, etwa wenn in einer Meldung eine begrenzte Bandbreite vorhanden ist, kann einer Nutzlast von der Berechnungsfunktion T kein statisches Zeitfenster zugeordnet werden. In einigen Fällen kann die Funktion T den mit einem Zeitstempel versehenden DTC in einem dynamischen Segment der Meldung übermitteln. Der DTC kann auch in einem dynamischen Segment gesendet werden, wenn der DTC von einer speziellen Funktion T zum Ende eines statischen Segments des Kommunikationszyklus hin bereitgestellt wird, nachdem die Zeit zum Füllen des zugeordneten statischen Segments für die spezielle Funktion T abgelaufen ist.
  • Weiter mit 1 sind beispielhafte Fehler 124, 126 schematisch gezeigt, die bei den Funktionen T1h und T2i der ersten bzw. zweiten ECU 110, 112 auftreten. In Ansprechen auf die Fehler 124, 126 erzeugen die Funktionen T1h und T2i jeweilige DTCs 128, 130. Jeder DTC enthält eine Angabe der Funktion, die den Fehler erfährt, einen Kommunikationszyklus, in dem der Fehler aufgetreten ist oder gemeldet worden ist, und einen Zeitstempel, der einen Zeitpunkt angibt, an dem der Fehler aufgetreten ist oder an dem der DTC erzeugt worden ist.
  • Der DTC-Code kann beispielsweise ein Teil einer Software/Elektronik-Fehlerbenachrichtigung (Software/Elektronik-DTC) sein, die in Fällen, in denen der DTC ein Fehlschlagen von Elektronik meldet, auch die ECU/den Sensor/das Stellglied/usw. (die Funktion) bestimmt, die fehlgeschlagen ist, oder in Fällen, in denen der DTC ein Fehlschlagen von Software angibt, die Softwarekomponente (die Funktion) bestimmt, die fehlgeschlagen ist. Der DTC-Code gibt den Fehlertyp an, etwa einen Softwarespeicherfehler, einen Zeitablauffehler, einen Ausfall der ECU, einen Ausfall des Speichers oder andere.
  • Die DTCs werden an ein Diagnosemodul oder eine Beobachtungsvorrichtung 132 gesendet, etwa den Prozessor eines Bordcomputers eines betreffenden Fahrzeugs. Die Beobachtungsvorrichtung 132 analysiert die DTCs, um die zugeordneten Fehler gemäß dem Diagnosealgorithmus der vorliegenden Erfindung zu diagnostizieren, der nachstehend in weiterem Detail beschrieben wird.
  • Wenn Fehler zeitlich relativ nahe beieinander auftreten, etwa im gleichen Kommunikationszyklus oder innerhalb eines oder weniger Zyklen voneinander auftreten, umfasst eine effektive Diagnose die Feststellung, ob die Fehler korreliert, unkorreliert oder zufällig waren. Wie vorstehend angegeben wurde, kann es jedoch schwierig sein, festzustellen, welche dieser Beziehungen angebracht ist. Diese Herausforderung wird durch die Tatsache verkompliziert, dass Fehlermeldungen, die durch eine früher fehlschlagende Funktion ausgelöst wurden, später als eine Fehlermeldung einer später fehlschlagenden Funktion gesendet werden können, was es folglich unmöglich macht, eine Korrelation zwischen den Fehlern nur auf der Grundlage des zeitlichen Ablaufs der resultierenden Fehlermeldungen zu bestimmen.
  • Diagnosealgorithmus
  • 2 veranschaulicht ein Verfahren 200 gemäß einer Ausführungsform der vorliegenden Offenbarung, das einem beispielhaften Diagnosealgorithmus zum Klassifizieren von Fehlern entspricht, etwa den in 1 gezeigten Fehlern 124, 126.
  • Es versteht sich, dass die Schritte des Verfahrens 200 nicht unbedingt in irgendeiner speziellen Reihenfolge dargestellt sind und dass das Ausführen einiger oder aller Schritte in einer alternativen Reihenfolge möglich ist und in Betracht gezogen wird. Die Schritte wurden in der gezeigten Reihenfolge zur Erleichterung der Beschreibung und Veranschaulichung dargestellt. Schritte können hinzugefügt, weggelassen und/oder gleichzeitig ausgeführt werden, ohne den Umfang der beigefügten Ansprüche zu verlassen. Es versteht sich außerdem, dass das veranschaulichte Verfahren 200 jederzeit beendet werden kann.
  • Bei bestimmten Ausführungsformen werden einige oder alle Schritte dieses Prozesses und/oder im Wesentlichen äquivalente Schritte durch die Ausführung von computerlesbaren Anweisungen durchgeführt, die beispielsweise in einem computerlesbaren Medium gespeichert oder enthalten sind. Zum Beispiel beziehen sich Bezugnahmen auf einen Prozessor, der Aufgaben der vorliegenden Offenbarung ausführt, auf eine oder mehrere beliebige Netzwerkberechnungskomponenten, die Anweisungen ausführen, etwa in der Form eines Algorithmus, die in einem computerlesbaren Medium bereitgestellt sind, etwa einem Speicher, der der Beobachtungsvorrichtung 132 zugeordnet ist.
  • Ein Ziel des Verfahrens 200 besteht darin, eine geeignete Klassifizierung 202 zu bestimmen, die eine Beziehung oder eine Nicht-Beziehung zwischen dem Auftreten von zwei oder mehr Fehlern 124, 126 im System 100 beschreibt. Insbesondere ermöglicht der Algorithmus des Verfahrens 200 eine genaue Bestimmung, ob die Fehler als unkorreliert 204, korreliert 206 oder zufällig 208 klassifiziert werden sollen, wie nachstehend in weiterem Detail bereitgestellt wird.
  • Bei Schritt 210 empfängt ein Prozessor DTCs von den fehlschlagenden Funktionen T1h und T2i. Zu Erläuterungszwecken können die DTCs von diesen Funktionen T1h und T2i als d1: T1h; Zeitfenster_g; CC_p bzw. d2: T2i; Zeitfenster_v; CC_m bezeichnet werden, wobei p einen Kommunikationszyklus der ersten ECU 110, in dem der Fehler 124 der einen Funktion T1h aufgetreten ist, und/oder den Zyklus, in dem der Fehler 126 gemeldet wurde, bestimmt, und m einen Kommunikationszyklus der zweiten ECU 112, in dem der Fehler 126 der anderen Funktion T2i aufgetreten ist und/oder den Zyklus, in dem der Fehler 126 gemeldet wurde, bestimmt. Der Bezugsbuchstabe g bezeichnet ein Zeitfenster des Übertragens der Meldung, in der der DTC d1 bereitgestellt wird, welches das zugeordnete Zeitfenster für die entsprechende Funktion T1h ist, und v bezeichnet ein Zeitfenster des Übertragens der Meldung, in der der andere DTC d2 bereitgestellt wird, welches das zugeordnete Zeitfenster für die entsprechende Funktion T2i ist.
  • Bei Schritt 212 bestimmt oder beschafft der Prozessor einen Ausführungszyklusversatz O. Bei einigen Ausführungsformen bestimmt der Prozessor den Versatz O auf der Grundlage von Eingaben 214, die einen Kommunikations/Ausführungsplan umfassen. Der Plan kann eine zeitgesteuerte Tabelle umfassen, die Freigabezeiten für das Ausführen von Funktionen und das Übermitteln von Meldungen aufweist.
  • Wie erwähnt wurde, können die Funktionen T in Übereinstimmung mit der globalen synchronisierten Zeit auf zyklische Weise arbeiten. Diese zyklische Ausführung von Funktionen T kann als der Ausführungszyklus bezeichnet werden. Der Ausführungszyklusversatz O stellt eine Anzahl von Zyklen dar, welche zwei in Beziehung stehende Funktionen T trennen (z.B. hängt die Arbeitsweise eines der zwei Knoten von Informationen vom anderen Knoten ab). Wenn beispielsweise Daten, die von einer ersten Funktion T in einem ersten Zyklus (Zyklus 1) erzeugt wurden, von einer zweiten Funktion T in einem dritten Zyklus (Zyklus 3) verbraucht oder verwendet werden, ist die Datenabhängigkeit nicht innerhalb eines Zyklus und insbesondere ist der Versatz O zwischen diesen Funktionen gleich Zwei (2).
  • Wenn bei einem anderen Beispiel ein Plan gleich T2, T1, - T2, T1, usw. ist, wobei T2 vor T1 ausgeführt wird und die Ausgabe von T1 im vorherigen Zyklus verbraucht, wäre der Zyklusversatz O gleich Eins (1).
  • Bei Schritt 216 stellt der Prozessor fest, ob der Zyklus des einen DTC d1: T1h; Zeitfenster_g; CC_p vom anderen DTC d2: T2i; Zeitfenster_v; CC_m durch den Ausführungszyklusversatz O getrennt ist, der von Schritt 212 empfangen 217 wurde, oder: CC _ p = CC _ m + O ?
    Figure DE102011121620B4_0001
  • Wenn der Prozessor bei Schritt 216 feststellt, dass der Zyklus des einen DTC d1: T1h; Zeitfenster_g; CC_p nicht vom anderen DTC d2: T2i; Zeitfenster_v; CC_m durch den Ausführungszyklusversatz O getrennt ist oder: CC _ p CC _ m + O ,
    Figure DE102011121620B4_0002
    dann stellt der Prozessor fest, dass das Fehlschlagen der Funktion Th das Fehlschlagen der anderen Funktion Ti nicht verursacht hat. Es wird festgestellt, dass die Fehler unkorreliert sind, weil sie in verschiedenen Verarbeitungsschritten aufgetreten sind. Wenn ein Fehler mit dem anderen korreliert wäre, wäre der zweite im gleichen Verarbeitungsschritt aufgetreten - z.B. in einem Zyklus, der zum ersten Zyklus um den festgestellten Versatzwert O versetzt ist.
  • Das Verfahren 200 kann mit Bezug auf andere Versätze O und aus anderen Perspektiven ausgeführt (z.B. erneut ausgeführt) werden. In einigen Fällen behält mindestens eine Funktion (z.B. Ti) einen Puffer aus einem oder mehreren neuen Werten (z.B. 5 neuen Werten), die von mindestens einer anderen Funktion (z.B. Th) erzeugt wurden. Die eine Funktion (z.B. Ti) könnte daher den einen oder die mehreren neuen Werte (z.B. 5 neue Werte) verwenden, die von der mindestens einen anderen Funktion (z.B. Th) erzeugt wurden. Folglich könnte das Verfahren 200 aus der Perspektive der einen Funktion mit Bezug auf jeden Wert durchgeführt werden, der von der anderen Funktion empfangen wird. Wenn beispielsweise fünf (5) neue Werte von fünf unmittelbar vorausgehenden und aufeinander folgenden Zyklen verwendet werden, dann könnte das Verfahren 200 für jeden Versatz O von 1 bis 5 einmal ausgeführt werden. Bei einer Ausführungsform wird das Verfahren 200 aus der Perspektive erneut ausgeführt, dass die Funktion Th von der zweiten Funktion Ti abhängt, wie nachfolgend weiter beschrieben wird, um festzustellen, ob die Funktionen auf eine andere Weise korreliert sind. Bei zumindest einigen dieser Szenarien besteht das Ziel darin, viele, die meisten oder alle relevanten Kombinationen von Funktionen und außerdem mehrere Versätze O für diese Kombinationen zu analysieren.
  • Wenn der Prozessor bei Schritt 216 feststellt, dass der Zyklus des einen DTC d1: Ti; Zeitfenster_g; CC_p von dem anderen DTC d2: Th; Zeitfenster_v; CC_m durch den Ausführungszyklusversatz O getrennt ist, oder: CC _ p = CC _ m + O ,
    Figure DE102011121620B4_0003
    dann geht der Ablauf zu Schritt 218 weiter, bei dem der Prozessor prüft, ob die zweite Funktion Ti von der ersten Funktion Th abhängt, oder: T i T h ?
    Figure DE102011121620B4_0004
  • Für die Prüfung von Schritt 218 verwendet der Prozessor Funktionsabhängigkeitsdaten 219, die bei Schritt 212 vorbereitet wurden. Die Funktionsabhängigkeitsdaten 219 werden auf der Grundlage von Eingaben 214 vorbereitet, welche mindestens einen Funktionsgraphen und mindestens ein Ressourcenverzeichnis umfassen. Der Funktionsgraph kann Funktionen oder Berechnungsfunktionen, die im System gerade laufen, und Beziehungen (z.B. Abhängigkeiten oder Einflüsse) zwischen den Funktionen bestimmen. Die Graphen können ferner eine Funktionsreihenfolge und eine Kommunikation zwischen den Funktionen bestimmen.
  • Das Ressourcenverzeichnis bestimmt Ressourcen, die für Funktionen oder die Arbeitsweise von Berechnungsfunktionen benötigt werden. Beispielhafte benötigte Ressourcen können beispielsweise eine Softwarefunktion, ein Stellglied, einen Sensor, einen Kommunikationsbus usw. umfassen. Das Ressourcenverzeichnis kann außerdem Funktionen auf ECUs und Meldungen auf Kommunikationsnetzwerke und Systemhardware (z.B. Sensoren/Stellglieder) auf ECUs/Kommunikationsnetzwerke abbilden.
  • Die Abhängigkeiten oder Einflüsse zwischen Berechnungsfunktionen T, die im Funktionsgraphen und dem Ressourcenverzeichnis bestimmt sind, können beliebige einer Vielzahl von Typen sein. Zum Beispiel kann der Funktionsgraph eine Ausführungsabhängigkeit zwischen zwei Funktionen enthalten, wobei eine Ausgabe einer ersten der Funktionen zur Ausführung einer zweiten der zwei Funktionen benötigt wird. Bei diesem Beispiel wird, wenn die erste Funktion fehlschlägt und dadurch blockiert (z.B. die Arbeitsweise angehalten wird), dann beispielsweise die zweite Funktion am Empfang der benötigten Daten gehindert.
  • Das Ressourcenverzeichnis kann Beziehungen zwischen zwei Funktionen etwa dort, wo die Funktionen eine gemeinsame Ressource aufweisen, bestimmen. Die gemeinsame Ressource kann beispielsweise eine Eingabe von einer Komponente eines betreffenden Fahrzeugs (z.B. einem Sensor) oder von einer dritten Funktion sein, deren Arbeitsweise die Arbeitsweise jeder der ersten zwei Funktionen beeinflusst.
  • Wenn der Prozessor bei Schritt 218 feststellt, dass keine der Funktionen Ti, Th von der anderen Funktion Th, Ti abhängt oder:
    Figure DE102011121620B4_0005
    dann stellt der Prozessor fest, dass die Fehlschläge zufällig 208 sind. Zu dieser Schlussfolgerung gelangt man, weil, wenn die Arbeitsweise der Funktionen Th, Ti nicht durch den Funktionsgraphen und/oder das Ressourcenverzeichnis in irgendeiner Weise miteinander gekoppelt ist, es dann nicht möglich ist, dass der Fehler der einen den Fehler in der anderen verursacht oder relevant damit gekoppelt ist. Folglich werden die zwei auftretenden Fehlschläge als zufällig 208 betrachtet.
  • Wenn der Prozessor bei Schritt 218 feststellt, dass mindestens eine der Funktionen Ti, Th von der anderen Funktion Th, Ti abhängt oder von dieser beeinflusst wird, oder: T h T i  und/oder T i T h ,
    Figure DE102011121620B4_0006
    dann geht der Ablauf zu Schritt 220 weiter, bei dem der Prozessor feststellt, ob die Arbeitsweise von Ti von der Arbeitsweise von Th abhängt oder: T h T i ?
    Figure DE102011121620B4_0007
  • Die Feststellung von Schritt 218 wird auf der Grundlage der Funktionsabhängigkeitsdaten 219, die bei Schritt 212 vorbereitet wurden, analysiert. Wie dargestellt, beruhen die Funktionsabhängigkeitsdaten 219 auf dem Funktionsgraph und/oder dem Ressourcenverzeichnis.
  • Wenn der Prozessor bei Schritt 220 feststellt, dass die Arbeitsweise der ersten Funktion Ti mit der Arbeitsweise der anderen Funktion Th in Beziehung steht oder: T h T i ,
    Figure DE102011121620B4_0008
    dann stellt der Prozessor fest, dass der Fehlschlag der einen Funktion Th den Fehlschlag bei der anderen Funktion Ti verursacht hat. Diese Feststellung steht in Beziehung mit einer Kausalitätswahrscheinlichkeit, bei der es eine sehr geringe Wahrscheinlichkeit gibt, dass zwei Funktionen, die abhängig sind und in einem speziellen Muster fehlschlagen (z.B. eine Inlinezyklus-Beziehung) nicht in Beziehung stehen. Folglich stellt das vorliegende Verfahren einen starken Hinweis etwa für eine Auswertungsvorrichtung oder eine Person darauf bereit, was im System 100 falsch gelaufen ist.
  • Wenn der Prozessor bei Schritt 220 feststellt, dass die Arbeitsweise der ersten Funktion Ti mit der Arbeitsweise der anderen Funktion Th nicht in Beziehung steht oder:
    Th ↛ Ti,
    dann stellt der Prozessor fest, dass das Fehlschlagen jeder Funktion Th das Fehlschlagen der anderen Funktion Ti nicht verursacht hat. Das heißt, der Prozessor stellt fest, dass die Fehlschläge bei Th und Ti aus der Perspektive, dass die Funktion Ti von der Funktion Th abhängt, unkorreliert 204 sind. Wie erwähnt wurde, kann das Verfahren 200 mit Bezug auf andere Versätze O aus anderen Perspektiven ausgeführt (z.B. erneut ausgeführt) werden, etwa aus der Perspektive, dass die Funktion Th bei der Betrachtung von Schritt 220 von der zweiten Funktion Ti abhängig ist, um festzustellen, ob die Funktionen in einer anderen Weise korreliert sind.
  • Bei Szenarien, die mehr als zwei fehlschlagende Funktionen beinhalten, z.B. T1, T2, T3, können Iterationen des Verfahrens 200 Kausalitätsbeziehungen oder ein Fehlen derselben zwischen Fehlern der verschiedenen Funktionen bestimmen. Zum Beispiel kann je nach Fall festgestellt werden, dass ein Fehler in der Funktion T1 den Fehler in der Funktion T2 verursacht hat, und ein Fehler in der Funktion T3 durch den Fehler von T2 verursacht wurde und/oder durch den Fehler in T1 verursacht wurde.
  • Das Verfahren 200 kann enden oder wiederholt werden, etwa hinsichtlich anderer Kombinationen von Funktionen T und/oder Werten des Versatzes O, wie vorstehend erwähnt wurde.
  • Anwendungsfälle für die vorliegende Technologie
  • Die vorliegende Technologie kann verwendet werden, um Fehler bei einer Vielfalt von Umständen zu diagnostizieren. Vier beispielhafte Umstände sind: (i) Anfrage-Antwort-Sicherheitssysteme; (ii) Funktionsausfallsequenzen; (iii) Zeitablauffehler und (iv) Busfehler.
  • Bei (i) einem Anfrage-Antwort-Sicherheitssystemszenario wird die Technologie der vorliegenden Offenbarung verwendet, um eine zyklische Abhängigkeit zu durchbrechen. Bei diesem Szenario (in den Figuren nicht gezeigt) stellt eine erste beispielhafte Funktion A eine Anfrage an eine zweite Funktion B. In Ansprechen darauf antwortet die Funktion B an A mit einer Antwort auf die Anfrage. Auf der Grundlage der Antwort von B stellt die Funktion A eine weitere Anfrage an die Funktion B. Unter Verwendung der vorliegenden Technologie kann die Quelle von Fehlern in der Funktion A und B diagnostiziert werden, wenn der Ausführungs/Kommunikationszyklus, in dem die Fehler auftreten, bekannt ist. Wenn die Fehler im gleichen Zyklus aufgetreten sind, ist die Ursache der Fehler in B sehr wahrscheinlich die Funktion A. Wenn die Fehler in aufeinander folgenden Zyklen aufgetreten sind, ist der Fehler in der Funktion B sehr wahrscheinlich die Ursache des Fehlers in der Funktion A. Wenn die Fehler in verschiedenen Zyklen aufgetreten sind, dann sind die Fehler sehr wahrscheinlich unkorreliert.
  • Bei (ii) dem Funktionsausfallsequenzszenario ist dann, wenn ein Fehlschlagen einer Funktion aufgrund einer speziellen Reihenfolge des Ausfalls von Sensoren, von denen sie Daten über einen Bus erhält, auftritt und unter Berücksichtung, dass Funktionen ausgestaltet sein können, um sich selbst jedes Mal, wenn ein Sensor ausfällt, anzupassen, die Bestimmung der Reihenfolge von Sensorausfällen wichtig oder sogar entscheidend für die Analyse der Grundursache. Eine Bestimmung der Reihenfolge von Sensorausfällen wird durch die vorliegende Technologie bei der Bestimmung und dem Vergleich von Kommunikationszyklen und Zeitfenstern, in denen Fehler auftreten, ermöglicht, und sie werden in DTC-Meldungen berichtet.
  • Funktionen weisen oft Wege zum Schätzen von Werten von Sensoren auf oder sind auf andere Weise damit verbunden (z.B. basierend auf analytischer Redundanz), etwa aus einer Nachschlagetabelle, einem mathematischen Modell, oder einer Zustandsmaschine oder anderen. Wenn ein Sensorausfall detektiert wird, kann die Funktion Werte vom fehlerhaften Sensor ignorieren und stattdessen Werte vom analytischen Modell verwenden.
  • Bei (iii) dem beispielhaften Zeitablauffehlerszenario verpasst eine Funktion A mit hoher Priorität einen Freigabezeitpunkt, aber keine Endfrist, und eine andere Funktion B verpasst einen Freigabezeitpunkt und eine Endfrist. Für das Verpassen des Freigabezeitpunkts der Funktionen A und B und für das Verpassen der Endfrist von Funktion B werden DTCs erzeugt. Das Bestimmen, dass alle diese Aktionen in einem Ausführungszyklus stattgefunden haben, ist wichtig oder sogar entscheidend für die Feststellung, ob die Verzögerung von A die verpasste Endfrist von Funktion B verursacht hat. Bei diesem Beispiel ist der Versatz O auf Null (0) gesetzt und das Verfahren 200 wird für die Funktionen A und B durchgeführt. Die Planungsabhängigkeit zwischen diesen wird im Funktionsgraphen festgehalten. Mit den vorstehend erwähnten Eingaben vom Konstrukteur kann das vorgeschlagene Verfahren 200 detektieren, dass diese Fehler korreliert sind. Bei (iv) dem beispielhaften Busfehlerszenario wird eine Datenverfälschung auf einem Bus verursacht, etwa in Verbindung mit einer elektromagnetischen Störung (EMI) oder einer anderen Störung. Die vorliegende Technologie ermöglicht die Feststellung, ob eine Verfälschung, die in einem zeitbasierten Augenblick auftritt (z.B. einem Abschnitt des Kommunikationszyklus oder in einem Zeitfenster), einen Fehler bei einer Funktion verursachte, die gerade an einem anderen Teil des Busses liest. Die Bestimmung relevanter Pläne und Zyklen, in denen die Fehler aufgetreten sind, ist wichtig oder sogar entscheidend für die Analyse der Grundursache. Ein Knoten am Netzwerk, etwa ein zentraler Busmonitor, kann Zeitfenster bestimmen, die durch Rauschen verfälscht worden sind, und entsprechende Daten in einem DTC registrieren/senden. Jedes Zeitfenster ist mit einer Meldung verbunden, die von einer Funktion zu einer anderen Funktion gesandt wird. Wenn daher beispielsweise eine Zielfunktion Td einen Softwareausfall aufweist und einen DTC aufzeichnet/ sendet und der DTC vom Busmonitor aufgezeichnet/empfangen wird, dann kann das vorliegende Verfahren 200 bestimmen, dass die Datenverfälschung auf dem Bus verursachte, dass die Funktion Td fehlgeschlagen ist.
  • Implementierung genauer Diagnosen
  • Die genaue Feststellung, ob Beziehungen zwischen mehreren Fehlern im System 100 existieren, ermöglicht dem System 100 oder einem Benutzer des Systems, verschiedene Maßnahmen zur Verbesserung der Arbeitsweise des Systems zu ergreifen. Einige Maßnahmen, etwa das automatische Neuzuordnen von Komponenten im System 100 kann im Wesentlichen in Echtzeit erledigt werden, und einige Maßnahmen können nach einer weiteren Analyse durchgeführt werden.
  • Die genaue Feststellung von Beziehungen zwischen fehlschlagenden Funktionen oder Funktionen und Ressourcen verbessert die Qualität der Diagnose und ermöglicht eine Ursache-Wirkungs-Analyse von Fehlschlägen, die aus der Bekanntmachung von abhängigen Elektronik/ Softwarefehlern resultieren. Bei einigen Ausführungsformen ist die Diagnose ein Wegbereiter für die Neukonfiguration von Funktionen und Ressourcen zur Laufzeit. Die Diagnose kann auch einen Einblick in die Systemkonstruktion oder Implementierung bei der Simulation, dem Test und der Validierung des Systems bereitstellen, etwa durch Analyse des Systemverhaltens im Anschluss an die absichtliche Einleitung/Injektion von Fehlern/Störungen, um entworfene Linderungsmechanismen zu prüfen. Die verbesserte Diagnose erhöht außerdem das Vertrauen in eine fehlertolerante Unterstützung, die bei hochsensiblen Anwendungen besonders wichtig ist, etwa sicherheitskritischen Anwendungen, und kann darin ein Wegbereiter für die Neukonfiguration zur Laufzeit sein.
  • Die Diagnose und/oder die Maßnahmen nach der Diagnose können lokal für die Fehler durchgeführt werden, etwa online in einem Bordcomputer eines Fahrzeugs, in dem die Fehler aufgetreten sind, und/oder offline, etwa entfernt vom Ort der Fehler, wie etwa nicht an Bord des Fahrzeugs. Für die Diagnose nicht an Bord oder Maßnahmen nach der Diagnose können die benötigten Daten (z.B. DTC-, Funktionsgraph- und Ressourcenverzeichnisdaten) an ein entferntes System in einer Vielfalt von Weisen übermittelt werden, etwa durch eine drahtgebundene Verbindung (z.B. in einer Kraftfahrzeugwerkstatt), drahtlos, oder durch Übertragen einer Speichereinheit, etwa eines Speicherchips oder einer Karte, welche bestimmte Informationen mit Bezug auf die Arbeitsweise des Fahrzeugs speichern. Einige der für die Diagnose benötigten Daten können bereits am entfernten Computer bereitgestellt sein, etwa der Funktionsgraph und/oder das Ressourcenverzeichnis. Daten aus dem Betrieb des Fahrzeugs einschließlich der DTCs können auch für einen Bediener des Systems (z.B. einen Bediener eines Fahrzeugs) oder für Personal, welches das System 100 auswertet (z.B. einen Techniker), bereitgestellt werden.
  • Maßnahmen nach der Diagnose können das Bestimmen einer fehlschlagenden Funktion, das Entfernen einer Funktion oder Ressource oder der Verbindung mit einer oder mehreren Funktionen oder Ressourcen aus dem Betrieb, das Ersetzen einer Funktion oder Ressource, das erneute Ausführen eines Zyklus oder einer Aufgabe, um die Existenz oder die andauernde Existenz des bzw. der Fehler zu bestätigen, oder zu bestätigen, dass der Fehler transient ist, das Durchführen einer Wartung an einer Funktion oder Ressource, das Ermöglichen des Betriebs um einen oder mehrere Fehler herum, das Maskieren eines Fehlers und das Neuzuordnen, oder das anderweitige Verändern oder dynamische Neukonfigurieren des Systems 100 umfassen, um die negativen Auswirkungen der bestimmten Fehler zu überwinden.
  • Ein Beispiel zum Maskieren eines Fehlers besteht für eine erste Funktion darin, einen geschätzten Wert als effektive Ausgabe einer fehlschlagenden Funktion anstelle eines tatsächlichen Werts von der fehlschlagenden Funktion, auf welche sich die erste Funktion für Daten stützt, zu verwenden, wie vorstehend hinsichtlich der analytischen Redundanz beschrieben ist.
  • Bei einem Beispiel mit Neuzuordnung hängen zwei Funktionen von einer ersten Ressource ab, etwa einer ersten Beschleunigungsinformationsquelle in einem Fahrzeug, aber keine von ihnen hängt von der anderen ab. Diese Abhängigkeit kann beispielsweise in einem Ressourcenverzeichnis aufgezeichnet sein. Wenn beide Funktionen einen Fehler erfahren, würde die Technologie der vorliegenden Offenbarung feststellen, dass die Fehler nicht zufällig waren, sondern unkorreliert sind.
  • Bei diesem Beispiel kann das System 100 so programmiert sein, dass es auf der Grundlage der Diagnose, dass die Fehler unkorreliert sind, eine Korrekturmaßnahme für die Situation automatisch bestimmt. Beispielsweise kann der Prozessor das System 100 neu zuordnen, so dass die zwei Funktionen Fahrzeugbeschleunigungsdaten von einer zweiten Fahrzeugquelle empfangen. Die erste Fahrzeugbeschleunigungsquelle kann beispielsweise ein Beschleunigungsmesser sein und die andere kann ein Berechnungsmodul sein, das die Beschleunigung auf der Grundlage von Veränderungen bei Fahrzeuggeschwindigkeitsdaten berechnet, welche von Radsensoren empfangen werden. Die erste Ressource kann aus irgendwelchen Gründen bevorzugt sein, aber das Zuordnen der Funktionen zu der zweiten Quelle ermöglicht einen fortgesetzten Betrieb, zumindest im Augenblick.
  • Bei einem Beispiel des Ermöglichens der Arbeitsweise um einen Fehler herum, umfassen Aufgaben einer betreffenden Funktion das Beschaffen eines ersten Teils von benötigten Daten von einer ersten Funktion, eines zweiten Teils optionaler Daten von einer dritten Funktion und einen dritten Teil benötigter Daten von einer vierten Funktion. Wenn ein Fehler in der betreffenden Funktion und der dritten Funktion auftritt, kann der Prozessor genau feststellen, dass die Fehler korreliert sind, und auf der Grundlage dieser Diagnose die Aufgaben der betreffenden Funktion beispielsweise so neu konfigurieren, dass sie das Beschaffen des zweiten Teils der Daten nicht enthalten, zumindest bis die zweite Funktion repariert oder ersetzt ist.
  • Hier wurden verschiedene Ausführungsformen der vorliegenden Offenbarung offengelegt. Die offengelegten Ausführungsformen sind nur Beispiele, die in verschiedenen und alternativen Formen und Kombinationen daraus ausgeführt werden können. Bei der Verwendung hierin beziehen sich z.B. „beispielhaft“ und ähnliche Begriffe umfassend auf Ausführungsformen, die als eine Veranschaulichung, ein Muster, ein Modell oder eine Vorlage dienen. Die Figuren sind nicht unbedingt maßstabsgetreu und einige Merkmale können vergrößert oder minimiert sein, um Details von speziellen Komponenten zu zeigen. In einigen Fällen wurden gut bekannte Komponenten, Systeme, Materialien oder Verfahren nicht im Detail beschrieben, um ein Verschleiern der vorliegenden Offenbarung zu vermeiden. Daher dürfen spezielle strukturelle und funktionale Details, die hier offenbart sind, nicht als Beschränkung interpretiert werden, sondern nur als eine Basis für die Ansprüche und als eine repräsentative Basis zum Unterrichten des Fachmanns.
  • Das Gesetz erfordert nicht und es ist wirtschaftlich nicht realisierbar, jede mögliche Ausführungsform der vorliegenden Ansprüche darzustellen und zu lehren. Folglich sind die vorstehend beschriebenen Ausführungsformen nur beispielhafte Darstellungen von Implementierungen, die für ein klares Verständnis der Prinzipien der Offenbarung offengelegt sind. Variationen, Modifikationen und Kombinationen können an den vorstehend beschriebenen Ausführungsformen durchgeführt werden, ohne den Umfang der Ansprüche zu verlassen. Alle derartigen Variationen, Modifikationen und Kombinationen sind hier durch den Umfang dieser Offenbarung und die folgenden Ansprüche enthalten. Die Verwendung von erster, zweiter usw. in den Ansprüchen kennzeichnet keine Reihenfolge des Auftretens, der Wichtigkeit oder dergleichen, sofern nicht eine derartige Reihenfolge explizit bereitgestellt wird. Die Bezugnahme auf ein einzelnes Element kann mehrere Instanzen des gleichen Elements umfassen.

Claims (9)

  1. Verfahren, das von einem Computerprozessor einer Beobachtungsvorrichtung zum Klassifizieren von Fehlern in einem elektronischen Netzwerk unter Verwendung eines zeitgesteuerten Kommunikationssystems und einer Komponente mit hoher zeitlicher Auflösung ausgeführt wird, wobei das Verfahren umfasst, dass: (i) der Prozessor einen ersten Fehlercode empfängt, der bei einer ersten Funktion des elektronischen Systems in Ansprechen auf einen ersten Fehler bei der ersten Funktion erzeugt wurde, wobei der erste Fehlercode bestimmt: einen ersten Kommunikationszyklus des elektronischen Systems, der dem ersten Fehler zugeordnet ist; und ein der ersten Funktion entsprechendes erstes Zeitfenster einer ersten Meldung, in welcher der erste Fehlercode an den Prozessor übertragen wird; (ii) der Prozessor einen zweiten Fehlercode empfängt, der bei einer zweiten fehlschlagenden Funktion des elektronischen Systems in Ansprechen auf einen zweiten Fehler erzeugt wurde, wobei der zweite Fehlercode bestimmt: einen zweiten Kommunikationszyklus des elektronischen Systems, der dem zweiten Fehler zugeordnet ist; und ein der zweiten Funktion entsprechendes zweites Zeitfenster einer zweiten Meldung, in welcher der zweite Fehlercode an den Prozessor übertragen wird, wobei auf der Grundlage einer Zeit, die mit Bezug auf die Komponente mit hoher zeitlicher Auflösung synchronisiert ist, das erste Zeitfenster und das zweite Zeitfenster mit dem ersten Fehlercode bzw. dem zweiten Fehlercode gefüllt werden; (iii) der Prozessor einen Ausführungszyklusversatz, der der ersten Funktion und der zweiten Funktion zugeordnet ist, unter Verwendung eines Ausführungsplans bestimmt; (iv) der Prozessor prüft, ob der erste Zyklus des ersten Fehlercodes vom zweiten Zyklus des zweiten Fehlercodes durch den durch den Plan bestimmten Ausführungszyklusversatz getrennt ist; (v) wenn der Prozessor feststellt, dass der erste Zyklus vom zweiten Zyklus nicht durch den Ausführungszyklusversatz getrennt ist, der Prozessor ferner feststellt, dass der erste Fehler den zweiten Fehler nicht verursacht hat; (vi) wenn der Prozessor feststellt, dass der erste Zyklus vom zweiten Zyklus durch den Ausführungszyklusversatz getrennt ist, der Prozessor auf der Grundlage von Funktionsabhängigkeitsdaten prüft, ob die Arbeitsweise irgendeiner der Funktionen von der Arbeitsweise irgendeiner anderen der Funktionen abhängt; (vii) wenn der Prozessor feststellt, dass die Arbeitsweise keiner der Funktionen von der Arbeitsweise einer anderen der Funktionen abhängt, der Prozessor ferner feststellt, dass der erste Fehler und der zweite Fehler zufällig sind; (viii) wenn der Prozessor feststellt, dass die Arbeitsweise mindestens einer der Funktionen von der Arbeitsweise mindestens einer anderen der Funktionen abhängt, der Prozessor prüft, ob die Arbeitsweise der zweiten Funktion von der Arbeitsweise der ersten Funktion abhängt; (ix) wenn der Prozessor feststellt, dass die Arbeitsweise der zweiten Funktion von der Arbeitsweise der ersten Funktion abhängt, der Prozessor ferner feststellt, dass das Fehlschlagen der ersten Funktion das Fehlschlagen bei der zweiten Funktion verursacht hat; und (x) wenn der Prozessor feststellt, dass die Arbeitsweise der zweiten Funktion nicht von der Arbeitsweise der zweiten Funktion abhängt, der Prozessor ferner feststellt, dass der erste Fehler den zweiten Fehler nicht verursacht hat; wobei: der Ausführungszyklusversatz ein anfänglicher Zyklusversatz ist; das Verfahren ferner umfasst, dass: Schritt (iii) erneut durchgeführt wird, um einen anderen Zyklusversatz zu bestimmen; und die Schritte (iv)-(x) unter Verwendung des anderen Zyklusversatzes anstelle des anfänglichen Zyklusversatzes erneut durchgeführt werden.
  2. Verfahren nach Anspruch 1, das ferner umfasst, dass: (xi) der Prozessor prüft, ob die Arbeitsweise der ersten Funktion von der Arbeitsweise der zweiten Funktion abhängt; (xii) wenn der Prozessor feststellt, dass die Arbeitsweise der ersten Funktion von der Arbeitsweise der zweiten Funktion abhängt, der Prozessor ferner feststellt, dass das Fehlschlagen der zweiten Funktion das Fehlschlagen bei der ersten Funktion verursacht hat; und (xiii) wenn der Prozessor feststellt, dass die Arbeitsweise der ersten Funktion nicht von der Arbeitsweise der ersten Funktion abhängt, der Prozessor ferner feststellt, dass der zweite Fehler den ersten Fehler nicht verursacht hat.
  3. Verfahren nach Anspruch 1, wobei: die erste Funktion in einem ersten zyklischen Plan arbeitet, dessen Zeitverhalten durch die Komponente mit hoher zeitlicher Auflösung vorgegeben wird; und die zweite Funktion in einem zweiten zyklischen Plan arbeitet, dessen Zeitverhalten durch die Komponente mit hoher zeitlicher Auflösung vorgegeben wird.
  4. Verfahren nach Anspruch 1, das ferner umfasst, dass: der Prozessor die Funktionsabhängigkeitsdaten auf der Grundlage von Eingaben vorbereitet, die mindestens einen Datensatz umfassen, der aus einer Gruppe von Datensätzen gewählt wird, welche besteht aus: einem Funktionsgraphen und einem Ressourcenverzeichnis.
  5. Verfahren nach Anspruch 1, das ferner umfasst, dass auf der Grundlage einer Klassifikation der Fehler eine Maßnahme durchgeführt wird, um die Funktion des Netzwerks zu verbessern.
  6. Verfahren nach Anspruch 5, wobei die Maßnahme umfasst, dass: auf der Grundlage der Klassifizierung eine Funktion aus der ersten Funktion und der zweiten Funktion zur Maskierung bestimmt wird; und die gewählte Funktion maskiert wird.
  7. Verfahren nach Anspruch 1, das ferner umfasst, dass eine paarweise Analyse durchgeführt wird, die umfasst, dass zusätzlich zum Durchführen der Schritte (i) bis (x) mit Bezug auf eine Kombination aus der ersten Funktion und der zweiten Funktion die Schritte (i) bis (x) wiederholt werden, mit der Ausnahme, dass die Kombination aus der ersten Funktion und der zweiten Funktion durch eine Kombination von Funktionen ersetzt wird, die aus einer Gruppe von Funktionskombinationen gewählt wird, die besteht aus: der zweiten und der ersten Funktion; einer dritten Funktion und der zweiten Funktion; der ersten Funktion und einer dritten Funktion; und der dritten Funktion und einer vierten Funktion.
  8. Konkretes, nicht flüchtiges computerlesbares Medium einer Beobachtungsvorrichtung, das Anweisungen enthält, die, wenn sie von einem Prozessor ausgeführt werden, den Prozessor veranlassen, Schritte zum Klassifizieren von Fehlern in einem elektronischen Netzwerk unter Verwendung eines zeitgesteuerten Kommunikationssystems und einer Komponente mit hoher zeitlicher Auflösung durchzuführen, wobei die Schritte umfassen, dass: (i) ein erster Fehlercode empfangen wird, der bei einer ersten Funktion des elektronischen Systems in Ansprechen auf einen ersten Fehler bei der ersten Funktion erzeugt wird, wobei der erste Fehlercode bestimmt: einen ersten Kommunikationszyklus des elektronischen Systems, der dem ersten Fehler zugeordnet ist; und ein der ersten Funktion entsprechendes erstes Zeitfenster einer ersten Meldung, in welcher der erste Fehlercode an den Prozessor übertragen wird; (ii) ein zweiter Fehlercode empfangen wird, der bei einer zweiten fehlschlagenden Funktion des elektronischen Systems in Ansprechen auf einen zweiten Fehler erzeugt wird, wobei der zweite Fehlercode bestimmt: einen zweiten Kommunikationszyklus des elektronischen Systems, der dem zweiten Fehler zugeordnet ist; und ein der zweiten Funktion entsprechendes zweites Zeitfenster einer zweiten Meldung, in welcher der zweite Fehlercode an den Prozessor übertragen wird, wobei auf der Grundlage einer Zeit, die mit Bezug auf die Komponente mit hoher zeitlicher Auflösung synchronisiert ist, das erste Zeitfenster und das zweite Zeitfenster mit dem ersten Fehlercode bzw. dem zweiten Fehlercode gefüllt werden; (iii) unter Verwendung eines Ausführungsplans ein Ausführungszyklusversatz bestimmt wird, der der ersten Funktion und der zweiten Funktion zugeordnet ist; (iv) geprüft wird, ob der erste Zyklus des ersten Fehlercodes vom zweiten Zyklus des zweiten Fehlercodes durch den durch den Plan bestimmten Ausführungszyklusversatz getrennt ist; (v) wenn der erste Zyklus vom zweiten Zyklus nicht durch den Ausführungszyklusversatz getrennt ist, feststellt wird, dass der erste Fehler den zweiten Fehler nicht verursacht hat; (vi) wenn der erste Zyklus vom zweiten Zyklus durch den Ausführungszyklusversatz getrennt ist, auf der Grundlage von Funktionsabhängigkeitsdaten geprüft wird, ob die Arbeitsweise irgendeiner der Funktionen von der Arbeitsweise irgendeiner anderen der Funktionen abhängt; (vii) wenn die Arbeitsweise keiner der Funktionen von der Arbeitsweise einer anderen der Funktionen abhängt, festgestellt wird, dass der erste Fehler und der zweite Fehler zufällig sind; (viii) wenn die Arbeitsweise mindestens einer der Funktionen von der Arbeitsweise mindestens einer anderen der Funktionen abhängt, geprüft wird, ob die Arbeitsweise der zweiten Funktion von der Arbeitsweise der ersten Funktion abhängt; (ix) wenn die Arbeitsweise der zweiten Funktion von der Arbeitsweise der ersten Funktion abhängt, festgestellt wird, dass das Fehlschlagen der ersten Funktion das Fehlschlagen in der zweiten Funktion verursacht hat; und (x) wenn die Arbeitsweise der zweiten Funktion nicht von der Arbeitsweise der zweiten Funktion abhängt, festgestellt wird, dass der erste Fehler den zweiten Fehler nicht verursacht hat; wobei: der Ausführungszyklusversatz ein anfänglicher Zyklusversatz ist; die Schritte ferner umfassen, dass: Schritt (iii) erneut durchgeführt wird, um einen anderen Zyklusversatz zu bestimmen; und die Schritte (iv)-(x) unter Verwendung des anderen Zyklusversatzes anstelle des anfänglichen Zyklusversatzes erneut durchgeführt werden.
  9. Transportfahrzeug, das umfasst: eine Komponente mit hoher zeitlicher Auflösung; ein elektronisches Netzwerk, das eine erste Funktion und eine zweite Funktion umfasst, wobei das elektronische Netzwerk ausgestaltet ist, um ein zeitgesteuertes Kommunikationssystem auf der Grundlage der Komponente mit hoher zeitlicher Auflösung zu verwenden; und einen Bordcomputer, der umfasst: einen Prozessor; und ein konkretes, nicht flüchtiges computerlesbares Medium, das Anweisungen enthält, die, wenn sie von dem Prozessor ausgeführt werden, bewirken, dass der Prozessor Schritte zum Klassifizieren von Fehlern im elektronischen Netzwerk ausführt, die umfassen, dass: (i) ein erster Fehlercode empfangen wird, der bei einer ersten Funktion des elektronischen Systems in Ansprechen auf einen ersten Fehler bei der ersten Funktion erzeugt wird, wobei der erste Fehlercode bestimmt: einen ersten Kommunikationszyklus des elektronischen Systems, der dem ersten Fehler zugeordnet ist; und ein der ersten Funktion entsprechendes erstes Zeitfenster einer ersten Meldung, in welcher der erste Fehlercode an den Prozessor übertragen wird; (ii) ein zweiter Fehlercode empfangen wird, der bei einer zweiten fehlschlagenden Funktion des elektronischen Systems in Ansprechen auf einen zweiten Fehler erzeugt wird, wobei der zweite Fehlercode bestimmt: einen zweiten Kommunikationszyklus des elektronischen Systems, der dem zweiten Fehler zugeordnet ist; und ein der zweiten Funktion entsprechendes zweites Zeitfenster einer zweiten Meldung, in welcher der zweite Fehlercode an den Prozessor übertragen wird, wobei auf der Grundlage einer Zeit, die mit Bezug auf die Komponente mit hoher zeitlicher Auflösung synchronisiert ist, das erste Zeitfenster und das zweite Zeitfenster mit dem ersten Fehlercode bzw. dem zweiten Fehlercode gefüllt werden; (iii) unter Verwendung eines Ausführungsplans ein Ausführungszyklusversatz bestimmt wird, welcher der ersten Funktion und der zweiten Funktion zugeordnet ist; (iv) geprüft wird, ob der erste Zyklus des ersten Fehlercodes vom zweiten Zyklus des zweiten Fehlercodes durch den durch den Plan bestimmten Ausführungszyklusversatz getrennt ist; (v) wenn der erste Zyklus vom zweiten Zyklus nicht durch den Ausführungszyklusversatz getrennt ist, feststellt wird, dass der erste Fehler den zweiten Fehler nicht verursacht hat; (vi) wenn der erste Zyklus vom zweiten Zyklus durch den Ausführungszyklusversatz getrennt ist, auf der Grundlage von Funktionsabhängigkeitsdaten geprüft wird, ob die Arbeitsweise irgendeiner der Funktionen von der Arbeitsweise irgendeiner anderen der Funktionen abhängt; (vii) wenn die Arbeitsweise keiner der Funktionen von der Arbeitsweise einer anderen der Funktionen abhängt, festgestellt wird, dass der erste Fehler und der zweite Fehler zufällig sind; (viii) wenn die Arbeitsweise mindestens einer der Funktionen von der Arbeitsweise mindestens einer anderen der Funktionen abhängt, geprüft wird, ob die Arbeitsweise der zweiten Funktion von der Arbeitsweise der ersten Funktion abhängt; (ix) wenn die Arbeitsweise der zweiten Funktion von der Arbeitsweise der ersten Funktion abhängt, festgestellt wird, dass das Fehlschlagen der ersten Funktion das Fehlschlagen bei der zweiten Funktion verursacht hat; und (x) wenn die Arbeitsweise der zweiten Funktion nicht von der Arbeitsweise der zweiten Funktion abhängt, festgestellt wird, dass der erste Fehler den zweiten Fehler nicht verursacht hat; wobei: der Ausführungszyklusversatz ein anfänglicher Zyklusversatz ist; die Schritte ferner umfassen, dass: Schritt (iii) erneut durchgeführt wird, um einen anderen Zyklusversatz zu bestimmen; und die Schritte (iv)-(x) unter Verwendung des anderen Zyklusversatzes anstelle des anfänglichen Zyklusversatzes erneut durchgeführt werden.
DE102011121620.4A 2010-12-23 2011-12-19 Verfahren und Systeme zum Diagnostizieren von Hardware- und Softwarefehlern unter Verwendung von mit Zeitstempeln versehenen Ereignissen Active DE102011121620B4 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US12/977,405 2010-12-23
US12/977,405 US8464102B2 (en) 2010-12-23 2010-12-23 Methods and systems for diagnosing hardware and software faults using time-stamped events

Publications (2)

Publication Number Publication Date
DE102011121620A1 DE102011121620A1 (de) 2012-06-28
DE102011121620B4 true DE102011121620B4 (de) 2021-04-15

Family

ID=46318522

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102011121620.4A Active DE102011121620B4 (de) 2010-12-23 2011-12-19 Verfahren und Systeme zum Diagnostizieren von Hardware- und Softwarefehlern unter Verwendung von mit Zeitstempeln versehenen Ereignissen

Country Status (3)

Country Link
US (1) US8464102B2 (de)
CN (1) CN102609342B (de)
DE (1) DE102011121620B4 (de)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8510596B1 (en) 2006-02-09 2013-08-13 Virsec Systems, Inc. System and methods for run time detection and correction of memory corruption
US8954714B2 (en) * 2010-02-01 2015-02-10 Altera Corporation Processor with cycle offsets and delay lines to allow scheduling of instructions through time
JP5488634B2 (ja) * 2012-03-29 2014-05-14 日本電気株式会社 情報処理装置、管理コントローラ、システム時刻同期方法、及びプログラム
DE102012216012A1 (de) * 2012-09-10 2014-03-13 Continental Automotive Gmbh Datenaufzeichenvorrichtung für ein Fahrzeugnetzwerk
DE102013201831A1 (de) * 2013-02-05 2014-08-07 Siemens Aktiengesellschaft Verfahren und Vorrichtung zum Analysieren von Ereignissen in einem System
EP2974156B1 (de) * 2013-03-14 2017-05-03 FTS Computertechnik GmbH Vorrichtung und verfahren zur autonomen steuerung von kraftfahrzeugen
WO2015038944A1 (en) 2013-09-12 2015-03-19 Virsec Systems, Inc. Automated runtime detection of malware
CN104615513A (zh) * 2013-11-05 2015-05-13 张永军 多级代码标准化故障分析方法
CA2953793C (en) 2014-06-24 2021-10-19 Virsec Systems, Inc. System and methods for automated detection of input and output validation and resource management vulnerability
AU2015279920B2 (en) 2014-06-24 2018-03-29 Virsec Systems, Inc. Automated root cause analysis of single or N-TIERED applications
KR102251991B1 (ko) * 2015-05-14 2021-05-17 한국전자통신연구원 결함 주입 및 결함 감내 분석을 위한 방법 및 장치
US10031815B2 (en) * 2015-06-29 2018-07-24 Ca, Inc. Tracking health status in software components
CN105116880A (zh) * 2015-08-28 2015-12-02 芜湖科创生产力促进中心有限责任公司 立体车库远程故障处理系统
US10083073B2 (en) * 2015-09-14 2018-09-25 Dynatrace Llc Method and system for real-time causality and root cause determination of transaction and infrastructure related events provided by multiple, heterogeneous agents
US10225272B2 (en) * 2016-05-31 2019-03-05 Ca, Inc. Ordered correction of application based on dependency topology
EP3472746B1 (de) 2016-06-16 2020-05-13 Virsec Systems, Inc. Systeme und verfahren zur behebung von speicherkorruption in einer computeranwendung
AT519164A3 (de) * 2016-08-16 2018-10-15 Fts Computertechnik Gmbh Fehlertolerantes Verfahren und Vorrichtung zur Steuerung einer autonomen technischen Anlage auf der Basis eines konsolidierten Umweltmodells
US10279816B2 (en) * 2017-03-07 2019-05-07 GM Global Technology Operations LLC Method and apparatus for monitoring an on-vehicle controller
US10496469B2 (en) * 2017-07-25 2019-12-03 Aurora Labs Ltd. Orchestrator reporting of probability of downtime from machine learning process
US10505955B2 (en) * 2017-08-22 2019-12-10 General Electric Company Using virtual sensors to accommodate industrial asset control systems during cyber attacks
CN110659763A (zh) * 2018-06-30 2020-01-07 天津宝钢钢材配送有限公司 汽车主机厂冲压自动排程方法
DE102018120344A1 (de) * 2018-08-21 2020-02-27 Pilz Gmbh & Co. Kg Automatisierungssystem zur Überwachung eines sicherheitskritischen Prozesses
US20210084056A1 (en) * 2019-09-18 2021-03-18 General Electric Company Replacing virtual sensors with physical data after cyber-attack neutralization
US11305602B2 (en) 2019-11-04 2022-04-19 GM Global Technology Operations LLC Vehicle detection and isolation system for detecting spring and stabilizing bar associated degradation and failures
US11880293B1 (en) * 2019-11-26 2024-01-23 Zoox, Inc. Continuous tracing and metric collection system
CN113344150B (zh) * 2020-02-18 2024-03-01 北京京东乾石科技有限公司 识别污损码点的方法、装置、介质及电子设备
US11343138B2 (en) * 2020-04-23 2022-05-24 GM Global Technology Operations LLC Method and apparatus for fault tolerant ethernet time synchronization
CN112379977A (zh) * 2020-07-10 2021-02-19 中国航空工业集团公司西安飞行自动控制研究所 一种基于时间触发的任务级故障处理方法
US11851073B2 (en) 2021-12-21 2023-12-26 GM Global Technology Operations LLC Fault isolation and mitigation upon lane marking misdetection on roadways

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5661668A (en) * 1994-05-25 1997-08-26 System Management Arts, Inc. Apparatus and method for analyzing and correlating events in a system using a causality matrix
US5748098A (en) * 1993-02-23 1998-05-05 British Telecommunications Public Limited Company Event correlation
US6118936A (en) * 1996-04-18 2000-09-12 Mci Communications Corporation Signaling network management system for converting network events into standard form and then correlating the standard form events with topology and maintenance information
US20020170002A1 (en) * 2001-03-22 2002-11-14 Steinberg Louis A. Method and system for reducing false alarms in network fault management systems
US20020194393A1 (en) * 1997-09-24 2002-12-19 Curtis Hrischuk Method of determining causal connections between events recorded during process execution
US20060041659A1 (en) * 2004-08-23 2006-02-23 Hasan Masum Z Method and apparatus for correlating events in a network
US20070220344A1 (en) * 2004-06-15 2007-09-20 Kimberly-Clark Worldwide, Inc. Generating a reliability analysis by identifying causal relationships between events in an event-based manufacturing system
US7788005B2 (en) * 2007-08-03 2010-08-31 Denso Corporation Electronic control system and method for vehicle diagnosis

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1252556B1 (de) * 2000-01-29 2003-06-04 ABB Research Ltd. Verfahren zum automatisierten generieren einer fehlerbaumstruktur
JP2002062384A (ja) * 2000-08-16 2002-02-28 Sony Corp 車載時計装置、車載ネットワークシステム、および時間情報処理方法
US7379846B1 (en) * 2004-06-29 2008-05-27 Sun Microsystems, Inc. System and method for automated problem diagnosis
US7613949B1 (en) * 2006-06-30 2009-11-03 Boone Lewis A Fault isolation system and method
US7895146B2 (en) * 2007-12-03 2011-02-22 Microsoft Corporation Time modulated generative probabilistic models for automated causal discovery that monitors times of packets
US8166351B2 (en) * 2008-10-21 2012-04-24 At&T Intellectual Property I, L.P. Filtering redundant events based on a statistical correlation between events
US7992040B2 (en) * 2009-02-20 2011-08-02 International Business Machines Corporation Root cause analysis by correlating symptoms with asynchronous changes
US8375255B2 (en) * 2009-12-23 2013-02-12 At&T Intellectual Property I, Lp Device and method for detecting and diagnosing correlated network anomalies
CN101788932B (zh) * 2010-01-15 2012-02-08 清华大学 一种用于提高可靠性的软硬件协同容错系统
US8060782B2 (en) * 2010-03-01 2011-11-15 Microsoft Corporation Root cause problem identification through event correlation
US8411577B2 (en) * 2010-03-19 2013-04-02 At&T Intellectual Property I, L.P. Methods, apparatus and articles of manufacture to perform root cause analysis for network events
US8667334B2 (en) * 2010-08-27 2014-03-04 Hewlett-Packard Development Company, L.P. Problem isolation in a virtual environment
US8245079B2 (en) * 2010-09-21 2012-08-14 Verizon Patent And Licensing, Inc. Correlation of network alarm messages based on alarm time

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5748098A (en) * 1993-02-23 1998-05-05 British Telecommunications Public Limited Company Event correlation
US5661668A (en) * 1994-05-25 1997-08-26 System Management Arts, Inc. Apparatus and method for analyzing and correlating events in a system using a causality matrix
US6118936A (en) * 1996-04-18 2000-09-12 Mci Communications Corporation Signaling network management system for converting network events into standard form and then correlating the standard form events with topology and maintenance information
US20020194393A1 (en) * 1997-09-24 2002-12-19 Curtis Hrischuk Method of determining causal connections between events recorded during process execution
US20020170002A1 (en) * 2001-03-22 2002-11-14 Steinberg Louis A. Method and system for reducing false alarms in network fault management systems
US20070220344A1 (en) * 2004-06-15 2007-09-20 Kimberly-Clark Worldwide, Inc. Generating a reliability analysis by identifying causal relationships between events in an event-based manufacturing system
US20060041659A1 (en) * 2004-08-23 2006-02-23 Hasan Masum Z Method and apparatus for correlating events in a network
US7788005B2 (en) * 2007-08-03 2010-08-31 Denso Corporation Electronic control system and method for vehicle diagnosis

Also Published As

Publication number Publication date
CN102609342A (zh) 2012-07-25
US8464102B2 (en) 2013-06-11
CN102609342B (zh) 2016-06-22
DE102011121620A1 (de) 2012-06-28
US20120166878A1 (en) 2012-06-28

Similar Documents

Publication Publication Date Title
DE102011121620B4 (de) Verfahren und Systeme zum Diagnostizieren von Hardware- und Softwarefehlern unter Verwendung von mit Zeitstempeln versehenen Ereignissen
EP1703350B1 (de) Diagnose eines Automatisierungssystems
EP1866714B1 (de) Verfahren und vorrichtung zur überwachung einer prozessausführung
DE102015204598A1 (de) System zum Bereitstellen von Informationen, die mit einem Fahrzeugfehler verknüpft sind, einem Benutzer
DE102009030774A1 (de) Verfahren zur rechnergestützten Erfassung von Fehlern beim Ablauf von einem oder mehreren softwarebasierten Programmen in einem System aus Komponenten
DE112013006588T5 (de) Verwaltungssystem zum Verwalten eines Computersystems und Verwaltungsverfahren hierfür
DE102022201663A1 (de) Erzeugen synthetischer Prüffälle zur Fuzz-Prüfung
DE102015202326A1 (de) Verfahren zum Betreiben einer Datenverarbeitungseinheit eines Fahrerassistenzsystems und Datenverarbeitungseinheit
DE102021126726A1 (de) Verteiltes system und datenübertragungsverfahren
DE112011100168T5 (de) Erfassen von Diagnosedaten in einer Datenverarbeitungsumgebung
EP2932634B1 (de) Zuweisen von zeitstempeln zu empfangenen datenpaketen
DE102019131211A1 (de) Echtzeituhrvorrichtung und Verfahren für deren Betrieb
DE102016202772A1 (de) Verfahren zum Überwachen und Planen einer Produktionszelle und Netzwerkmanagementsystem für eine Produktionszelle
EP1717651B1 (de) Verfahren und Vorrichtung zum Auswerten von Ereignissen aus dem Betrieb eines Fahrzeuges
DE102020207065B3 (de) Fahrzeug, Verfahren, Computerprogramm und Vorrichtung zum Zusammenführen von Objektinformationen über ein oder mehrere Objekte in einem Umfeld eines Fahrzeugs
EP2021922B1 (de) Verfahren und vorrichtung für ein fehlertoleranzmanagement einer softwarekomponente
DE102016216728A1 (de) Fehlerdiagnose in einem Bordnetz
DE102017219195B4 (de) Verfahren zum gewährleisten eines betriebs eines rechners
DE102017200280B4 (de) Verfahren und Vorrichtung zum Qualifizieren eines Fehlers eines Sensors mittels einer Statusinformation
DE10315344B4 (de) Verfahren und Vorrichtung zur Erkennung fehlerhafter Komponenten in Fahrzeugen
DE102019102299A1 (de) Verfahren und Vorrichtung zum automatisierten Erfassen von Fehlern in Computersystemen
DE102008030162A1 (de) Verfahren zum Prüfen der Funktionsfähigkeit einer eingebetteten Komponente in einem eingebetteten System
DE10038094B4 (de) Vorrichtung und Verfahren zum Generieren und Erweitern der Wissensbasis eines Expertensystems
EP3669278A1 (de) Verfahren und vorrichtung zum rückwirkungsfreien und integritätsgeschützten synchronisieren von log-daten
DE102022121211B4 (de) Verfahren zum Betreiben einer Sensor-Anordnung und Sensor-Anordnung sowie Einrichtung zur Datenverarbeitung und Vorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R082 Change of representative

Representative=s name: MANITZ, FINSTERWALD & PARTNER GBR, DE

Representative=s name: MANITZ FINSTERWALD PATENTANWAELTE PARTMBB, DE

R016 Response to examination communication
R018 Grant decision by examination section/examining division
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: H04L0012260000

Ipc: H04L0043000000

R020 Patent grant now final