IP Library Granted Patent US 8,977,907
Granted Patent B2
US 8,977,907 · App. 13/751,362 · Granted Mar 10, 2015

Control system to identify faulty code modules

Inventor: Behrouz Ghazanfari (Plainfield, IL)
Assignee: Electro-Motive Diesel, Inc.
G06F11/3668G06F11/3636
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,977,907
App. No.
13/751,362
Granted
Mar 10, 2015
Kind
B2
Abstract

The present disclosure is directed to a control system for a machine. The control system has an electronic module containing at least one programmable controller. The at least one programmable controller stores a plurality of code modules, and be configured to identify from the plurality of code modules a module that contains a code fault. The at least one programmable controller identifies the code fault by executing, with the at least one programmable controller, the code module, writing a code execution status to a designated memory location on the electronic module, and identifying, based on the code module execution status, the code module that contains the code fault.

Claims (42)

1. A control system, comprising:

an electronic module, the electronic module comprising at least one programmable controller storing a plurality of code modules, and a non-volatile memory in communication with the at least one programmable controller, wherein

the non-volatile memory comprises a plurality of designated memory locations, each location designated to receive a code module execution status for a corresponding one of the plurality of code modules executed prior to execution of the code module containing the code fault; and

the at least one programmable controller is configured to identify from the plurality of code modules a code module that contains a code fault, by:

executing the plurality of code modules;

writing a first code module execution status to a designated memory location on the electronic module when the code module has started executing;

writing a second code module execution status to the designated memory location when the code module has completed executing; and

identifying, based on the code module execution status, the code module that contains the code fault.

2. The control system of claim 1 , wherein the second code module execution status overwrites the first code module execution status.

3. The control system of claim 2 , wherein the at least one programmable controller identifies the code module containing the code fault in response to the at least one programmable controller has been reset due the code fault.

4. The control system of claim 3 , wherein the at least one programmable controller creates a human-readable list of code module execution statuses based on the plurality of designated memory locations, wherein the human-readable list contains the code module execution statuses for each code module executed prior to the execution of the code module that contains the code fault.

5. The control system of claim 1 , wherein the code module execution status includes a code module identifier.

6. The control system of claim 4 , wherein the at least one programmable controller creates a plurality of human-readable lists.

7. The control system of claim 1 , wherein identifying the code module that contains the code fault includes:

writing, with the at least one programmable controller, data that identifies the code module that contains the code fault to a non-volatile memory location when the at least one programmable controller has been reset due to the code fault.

8. The control system of claim 7 , wherein identifying the code module that contains the code fault includes identifying two or more code faults.

9. A method for identifying a code fault in an electronic module, comprising:

storing a plurality of code modules on the electronic module, wherein the electronic module comprises a non-volatile memory having a plurality of designated memory locations, each location designated to receive a code module execution status for a corresponding one of the plurality of code modules executed prior to execution of the code module containing the code fault;

executing, with at least one programmable controller, plurality of code modules, whereby, for each control module:

writing a first code module execution status to a designated memory location on the electronic module when the code module has started executing;

writing a second code module execution status to the designated memory location when the code module has completed executing; and

identifying, based on the code module execution status, the code module that contains the code fault.

10. The method of claim 9 , wherein each one of the plurality of designated memory locations includes an execution status for a unique execution of one of the plurality of code modules.

11. The method of claim 10 , wherein the second code module execution status overwrites the first code module execution status.

12. The method of claim 11 , further including:

resetting the at least one programmable controller; and

identifying the code module containing the code fault from the plurality of code modules executed prior to the execution of the code module that contains the code fault if the at least one programmable controller has been reset due to the code fault.

13. The method of claim 12 , further including:

creating a human-readable list of code module execution statuses based on the plurality of designated memory locations containing the code module execution status for each code module executed prior to the execution of the code module that contains the code fault.

14. The method of claim 9 , wherein the code module execution status includes a code module identifier.

15. The method of claim 13 , further including:

creating a plurality human-readable lists with the at least one programmable controller, wherein each list of the plurality of human-readable lists includes information that identifies the code module containing the code fault from the plurality of code modules executed prior to the execution of the code module that contains the code fault.

16. The method of claim 9 , wherein identifying the code module that contains the code fault includes:

writing, with the at least one programmable controller, data that identifies the code module that contains the code fault to a non-volatile memory location when the at least one programmable controller has been reset due to the code fault.

17. The method of claim 16 , wherein identifying the code module that contains the code fault includes identifying two or more code faults.

18. A control system for a machine, comprising:

an electronic module comprising at least one programmable controller, wherein the at least one programmable controller comprises a plurality of code modules; and

a memory including a plurality of designated non-volatile memory locations in communication with the at least one programmable controller, wherein each of the plurality of designated non-volatile memory locations is configured to receive a code module execution status for each of the plurality of code modules executed prior to execution of a code module containing a code fault, wherein the at least one programmable controller is configured to identify the code fault, by:

executing the code module;

writing a first code module execution status to a designated non-volatile memory location from the plurality of designated non-volatile memory locations when the code module has started executing;

writing a second code module execution status to the designated non-volatile memory location when the code module has completed executing; wherein the second code module execution status overwrites the first code module execution status; and

identifying, based on the code module execution status, the code module that contains the code fault.

Assignments (3)
CHANGE OF NAME Recorded Apr 5, 2018
From: ELECTRO-MOTIVE DIESEL, INC.
To: PROGRESS RAIL LOCOMOTIVE INC.
Reel/Frame 045849/0072 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 12, 2014
From: CATERPILLAR INC.
To: ELECTRO-MOTIVE DIESEL, INC.
Reel/Frame 034485/0435 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 28, 2013
From: GHAZANFARI, BEHROUZ
To: CATERPILLAR INC.
Reel/Frame 029702/0945 →
Continuity (1)
Related Publication 20140215275A1 · Jul 31, 2014