REMOTE VERIFICATION OF SOFTWARE CONFIGURATION INFORMATION

Abstract: A method and apparatus for determining whether a vehicle is configured with the correct versions of software that controls the various operational systems aboard the vehicle. The version numbers for software on board the vehicle are periodically determined by an on-board monitoring system. This information is later transmitted to a remote site, where the actual software version numbers are compared to the correct software versions. If there is a mismatch, personnel at the remote site are alerted to resolve the mismatch.

Description: REMOTE VERIFICATION OF SOFTWARE CONFIGURATION INFORMATION BACKGROUND OF THE INVENTION The present invention is directed in general to monitoring operational parameters and fault-related information of a mobile asset in a fleet of mobile assets, such as a railroad locomotive in a fleet of railroad locomotives, and more specifically, to a method and apparatus for remotely identifying incorrect versions of software resident on the mobile asset, either at the mobile asset or at the remote site. Establishing, maintaining and managing a communications link between a mobile asset (e.g., an on-road, off-road or rail-based vehicle) can provide opportunities for cost-saving operation through efficient vehicle dispatching and the remote acquisition of vehicle performance information. As applied to railroad operations, cost-efficiency requires minimization of locomotive down time and especially the avoidance of line-of-road locomotive failures. Cost efficient railroad operation requires minimization of locomotive down time, and especially the avoidance of line-of-road locomotive failures. Failure of a major locomotive system can cause serious damage, require costly repairs, and introduce significant operational delays. A line-of-road failure is an especially costly event as it requires dispatching a replacement locomotive to pull the train, possibly rendering a track segment unusable until the disabled train is moved. Therefore, the health of the locomotive engine and its constituent sub-assemblies is of significant concern to the railroad. Today's modern mobile assets include multiple microprocessors, each controlled by one or more software programs. Because there are literally dozens of such software programs on the mobile asset, especially on a locomotive, it is critical for operational and maintenance purposes to ascertain the version number of the software programs and ensure that this version number is correct. In some cases, certain software versions may be incompatible with other software running on the mobile asset or a particular software version may not match the hardware configuration. Additionally, incorrect software versions can cause operational problems and delays in detecting the root cause of fault conditions. In fact, the root cause of a problem may simply be an incorrect software version. It is therefore critical to periodically determine whether the software version number is correct. One apparatus for minimizing mobile asset down time measures performance and fault-related operational parameters of the mobile asset during operation. Analysis of this information can provide timely indications of expected and immediate component failures. With timely and nearly continuous access to mobile asset performance data, it is possible for repair experts to predict and/or prevent untimely failures. An on-board monitor collects, aggregates, and communicates locomotive performance and fault related data from an operating locomotive to a remote monitoring and diagnostic center. The data is collected periodically or as required by various triggering events that occur on the locomotive during operation. Generally, anomalous or fault data is brought to the attention of the locomotive operator directly by these control systems, but the locomotive itself lacks the necessary hardware and software elements to diagnose the fault. It is therefore advantageous to utilize an onboard monitor to collect and aggregate the information and at the appropriate time send it to a remote monitoring and diagnostic service center. Upon receipt of the performance data at the remote site, data analysis tools operate on the data to identify the root cause of potential or actual faults. Experts in locomotive operation and maintenance also analyze the received data to develop repair recommendations for preventative maintenance or to correct faults. Historical anomalous data patterns can be important clues to an accurate diagnosis and repair recommendation. The lessons learned from failure modes in a single locomotive can also be applied to similar locomotives in the fleet so that the necessary preventive maintenance can be performed before a line-of-service break down occurs. When the data analysis process identifies incipient problems, certain performance aspects of the locomotive can be derated to avoid further system degradation and further limit violations of operational thresholds until the locomotive can undergo repair at a repair facility. BRIEF SUMMARY OF THE INVENTION The on-board monitor aboard the mobile asset or locomotive monitors and collects data indicative of the vehicle operation from several disparate vehicle control systems. In addition to the operational parameters, the on-board monitor retrieves the identification number for various software programs on board the vehicle. The software identification information is sent to a remote site, in one embodiment a remote monitoring and diagnostic center, where it is checked against the expected software identification or configuration information. Mismatches are noted for resolution by experts in mobile asset operation and maintenance resident at the remote site. BRIEF DESCRIPTION OF THE DRAWINGS The present invention can be more easily understood and the further advantages and uses thereof more readily apparent, when considered in view of the description of the preferred embodiments and the following figures, in which: Figure 1 is a block diagram of the essential elements of an on-board monitor that collects the software version number according to the teachings of the present invention; and Figure 2 is a flow chart illustrating operation of the software version comparison technique associated with the present invention. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Figure 1 illustrates the environment in which the present invention operates as applied to a locomotive. Those skilled in the art will recognize that the teachings hereof are applicable to other mobile assets and vehicles and is particularly applicable to vehicles operating in fleets. The on-board monitor 10 is coupled to a plurality of locomotive control systems, depicted generally by reference character 12. These locomotive control systems can include: a locomotive controller, an excitation controller, an auxiliary equipment controller, and a propulsion system controller. The specific nature and function of the controllers are not germane to the present invention, except to the extent that the on-board monitor 10 monitors various parameters associated with these control systems. The data collected by the on-board monitor 10 provides important locomotive performance and status information, which is analyzed at a remote monitoring and diagnostic center 14 to identify active faults, predict incipient failures, and provide timely information about existing operating conditions. The on-board monitor 10 serves the functions of a data acquisition, signal conditioning, data processing, and logging instrument that provides status information to the remote monitoring and diagnostic center 14 via a bi-directional communication path 15. Certain parametric and fault-related information gathered by the on-board monitor 10 is collected and stored as data in raw data files. Other data collected generates operational statistics and is stored as statistical parameters. Both the raw data files and the statistical data files are downloaded to the remote monitoring and diagnostic center 14 on a periodic basis. Likewise, operational and reconfiguration commands are uploaded to the on-board monitor 10 from the remote monitoring and diagnostic center 14. The on-board monitor 10 comprises an interface device 20, a processor 22, and a transceiver 24. The interface device 20 communicates bi-directionally with the various locomotive control systems 12 and the processor 22. The interface device 20 performs typical signal acquisition and conditioning processes, as is well known to those skilled in the art. In one embodiment, the processor 22 includes a hard drive, input devices such as a keyboard or a mouse, magnetic storage media (e.g., tape cartridges or disks), optical storage media (e.g., CD-ROM's) and output devices such as a display and a printer. The processor 22 controls operation of the on-board monitor 10 including especially the control over the nature and frequency at which data is collected from the locomotive control systems 12. The modem 24, under control of the processor 22, communicates with a transmitter/receiver device in the remote monitoring and diagnostic center 14 via an antenna 29. As is known to those skilled in the art, there are a number of appropriate communication schemes for implementing this link, including: cellular telephone, satellite phone, or point-to-point microwave. Since the locomotive spends considerable time in transit hauling either freight or passengers, sometimes in remote regions, it has been observed that a satellite-based link provides the most reliable communications medium between the locomotive and the remote monitoring and diagnostic center 14. As taught by the present invention, Figure 2 illustrates the process of comparing the software configuration version on board the mobile asset with those versions identified in the mobile asset configuration file at the remote site in particular, the remote monitoring and diagnostic center 14. This process is executed by the processor 22. At a step 30, parametric data is downloaded from the on-board monitor 10 to the remote monitoring and diagnostic center 14. This downloaded information includes not only the version number for locomotive software, but also locomotive operational data for analysis at the remote monitoring and diagnostic center 14. Exemplary software programs for which the version numbers are checked include the inverter controller software, the propulsion system controller software, and the auxiliary system controller software. The nature and function of these software programs are well known to those skilled in the art. At a step 32, the received files are untarred, unzipped, decoded and stored at the remote monitoring and diagnostic center 14. At a step 34, the on-board monitor start-up files, where the software version configuration information is stored, are retrieved from the received files. The program then opens the start-up file for the first selected on-board monitor and reads the values that identify the railroad customer, the locomotive road number, and other identification parameters. At a step 36, the program retrieves the software version numbers for the customer and locomotive identified at the step 34, from a configuration file at the remote monitoring and diagnostic center 14. Also at the step 36, the expected software configuration version numbers (as stored at the remote monitoring and diagnostic center 14) are compared with the actual software configuration version numbers (as downloaded). At a decision step 38, a determination is made as to whether these version numbers match. If the version numbers match, processing moves to a decision step 40. Here, the system determines whether there are any other files in the on-board monitor start-up file still awaiting comparison. If all the files have not yet been compared, then processing moves from the decision step 40 back to the step 34, where another software version number is retrieved. If there are no further files to compare, then processing moves to the end step 41. Returning to the decision step 38, if the actual value of the software version does not match the expected value, then processing moves to a step 42 where a case is created at the remote monitoring and diagnostic center 14. This case is added to a work queue where it will eventually be analyzed for the process of formulating a recommendation. In most situations, this recommendation will simply involve upgrading the software version at the locomotive. After the creation of a case at the step 42, processing returns to the decision step 40. In one embodiment, while there are several software configuration version numbers stored in the on-board monitor start-up file, only one case will be created for each start-up file, regardless of the number of version mismatches within that file. Once all values in the first file have been retrieved and compared, the program then opens the next on-board monitor startup file, containing software version information from another on-board monitor 10 aboard a different locomotive. This process of opening files and reviewing the software version numbers continues until all the files in the directory have been processed. Also, if the program is unable to process all the values within a file, then a descriptive error message is created, for later analysis by a locomotive expert at the remote monitoring and diagnostic service center 14.

Claims: WHAT IS CLAIMED IS: 1. For use with a vehicle comprising a plurality of operational systems (12) monitored by an on-board monitor (10) for collecting operational information, wherein the on-board monitor is in selectable communication with a remote site (14) during which vehicle software version information is transferred thereto, a method for determining whether the software version is correct, said method comprising: (a) transmitting a software version identifier representing the actual software version on board the vehicle and a unique vehicle identifier; (30) (b) receiving at the remote site the software version identifier and the unique vehicle identifier; (32) (c) at the remote site, determining the correct software version for the identified vehicle; (34) (d) comparing the correct software version with the actual software version; and (36) (e) generating an error signal if the result of step (d) indicates the actual software version is not correct. (42) 2. The method of claim 1 further comprising: (f) reviewing the mismatch between the actual software version and the correct software version for the purpose of creating a recommendation to resolve the mismatch. (42) 3. The method of claim 1 wherein the vehicle is a railroad locomotive. 4. For use with a vehicle comprising a plurality of operational systems (12) monitored by an on-board monitor (10) for collecting operational information, wherein the on-board monitor is in selectable communication with a remote site (14) during which vehicle operational information is transferred thereto including identification of the version of selected software programs resident on the vehicle, a computer program for determining whether the software version is correct, said computer program comprising: (a) transmitting a software version identifier, representing the actual software version on board the vehicle, and a unique vehicle identifier; (30) (b) receiving at the remote site the software version identifier and the unique vehicle identifier; (32) (c) at the remote site, determining the correct software version for the identified locomotive; (34) (d) comparing the correct software version with the actual software version; and (36) (e) generating an error signal if the result of step (d) indicates the actual software version is not correct. (42) 5. An apparatus for use with a vehicle comprising a plurality of operational systems (12) monitored by an on-board monitor (10) for collecting operational information, wherein the on-board monitor (10) is in selectable communication with a remote site (14) during which vehicle operational information is transferred thereto, including identification of the version of selected software programs resident on the vehicle, wherein said apparatus comprises: (a) a transmitter for transmitting a software version identifier representing, the actual software version on board the vehicle, and a unique vehicle identifier; (24) (b) a receiver for receiving at the remote site the software version identifier and the vehicle identifier; (14) (c) at the remote site, an identifier having a data base for determining the correct software version for the identified vehicle; (36) (d) a comparator for comparing the correct software version with the actual software version; and (38) (e) a signal generator for generating an error signal if the result of step (d) indicates the actual software version is not correct. (42) 6. For use with a vehicle comprising a plurality of operational systems (12) wherein the vehicle is in selective communication with a remote site (14) during which vehicle software version information is transferred there between, a method for determining whether the software version is correct, said method comprising: (a) transmitting from the remote site a software version identifier, representing the correct software version for the vehicle, and a unique vehicle identifier; (30) (b) receiving at the vehicle the software version identifier and the vehicle identifier; (32) (c) at the vehicle, determining the actual software version, in use on the identified vehicle; (34) (d) comparing the correct software version with the actual software version; and (36) (e) generating an error signal if the result of step (d) indicates the actual software version is not correct. (42) 7. A system for use with a vehicle comprising a plurality of operational systems (12) monitored by an on-board monitor (10) for collecting operational information, wherein the on-board monitor (10) is in selective communication with a remote site (14) during which vehicle operational information is transferred thereto including identification of the version of selected software programs resident on the vehicle, wherein said system comprises: a transmitter at the remote site for transmitting a software version identifier, representing the correct software version for the vehicle, and for transmitting a unique vehicle identifier; (24) a receiver at the vehicle for receiving the software version identifier and the unique vehicle identifier; (14) at the vehicle, an identifier for determining the actual software version for the identified vehicle; (20) a comparator for comparing the correct software version with the actual software version; and a signal generator for generating an error signal if the result of step (d) indicates the actual software version is not correct. 8. An article of manufacture comprising: a computer program product comprising a computer-usable medium having a computer-readable code therein for use with a vehicle comprising a plurality of operational systems (12) monitored by an on-board monitor (10) for collecting operational information, wherein the on-board monitor (10) is in selective communication with a remote site during which the vehicle software version information is transferred thereto, said computer-readable code in the article of manufacture comprising: a computer-readable program code module for transmitting a software version identifier, representing the actual software version on board the vehicle, and for transmitting a unique vehicle identifier; (30) a computer-readable program code module for receiving at the remote site the software version identifier and the unique vehicle identifier; (32) a computer-readable program code module at the remote site, for determining the correct software version for the identified vehicle; (34) a computer-readable code module for comparing the correct software version with the actual software version; and (36) a computer-readable code module for generating an error signal if the result of the comparing step indicates the actual software version is not correct. (42)

Inventors: FERA GREGORY J, HENDRICKSON BRADLEY CHARLES, LOVELACE JOHN H II, FERA, GREGORY, J., HENDRICKSON, BRADLEY, CHARLES, LOVELACE, JOHN, H., II
Applicants: GEN ELECTRIC, GENERAL ELECTRIC COMPANY
Application year: 2000
Main classification: B61L3
IPC codes: B61L3, B61L27