Abstract:
A method of upgrading control software on a first locomotive. The first locomotive includes a first locomotive interface. A first computer is coupled to the first locomotive interface, and a first communicator is coupled to the first computer. The first computer is programmed for operation on the first locomotive. The method includes loading a first version of control software onto the first computer, loading a second version of control software onto the first computer, and using data included in a link message to determine whether the first version or the second version of the control software is used.

Description:
CROSS REFERENCE TO RELATED APPLICATION 
     This application claims the benefit of U.S. Provisional Application No. 60/258,666, filed Dec. 29, 2000. 
    
    
     BACKGROUND OF THE INVENTION 
     This invention relates generally to operating railroad locomotives, and more specifically, to controlling locomotives in locomotive consists distributed throughout a train. 
     Modem trains may include many train cars and have a length that is over a mile long. Such trains typically contain more than one locomotive to provide the necessary driving and stopping power. To facilitate handling of the train, the additional locomotives often appear at locations in the train that are remote from the lead locomotive. For example, it may be difficult to traverse a curve if all the locomotives are at the front of the train due to high wheel-rail friction and resulting high in-train forces. However, dispersal of locomotives throughout a train requires synchronizing their actions, such as accelerating and braking the locomotives in concert. 
     To solve this problem, radio control equipment was introduced thirty years ago so that acceleration and deceleration controls applied to the lead locomotive are transmitted to all others in the remote locomotive consists at substantially the same time. Before the train gets underway the operator links the various radio control units so that they act in concert to send control data to each locomotive consist in the train and return status/alarm information. 
     Radio control systems, such as Locotrol®, provide railroads the ability to control locomotives dispersed in a train consist in either a synchronous, or an independent, mode from a control locomotive, which is in the lead position. The system provides control of the remote locomotive consist(s) by command signals sensed at the lead locomotive and transmitted over a data radio link to the remote unit(s). Such control systems allow railroads to optimize the distribution of motive power and braking control over the length of a train. Radio control systems provide faster and smoother starting and stopping of trains, facilitating safer handling and more efficient operations. In addition, they also facilitate increasing rail system throughput and reducing operating costs from the increased hauling capacity, better rail adhesion, and improved fuel efficiency. 
     Radio controls now play a crucial role in operating large trains safely, which poses a problem in upgrading the software used in the radio control systems. At present units with different versions of radio control software cannot be operated in the same train, this forcing users to operate such locomotives separately. This requirement also imposes a heavy logistical burden on users while the software on the locomotive fleet is being upgraded and increases pressure on software vendors to upgrade the software in all locomotives as quickly as possible to minimize this problem. Safety considerations, however, preclude an automatic radio download of the upgraded software, which necessitates the vendor physically installing and testing the software on each locomotive in a short time. 
     BRIEF DESCRIPTION OF THE INVENTION 
     In one aspect, a method is provided of upgrading control software on a first locomotive. The first locomotive includes a first locomotive interface. A first computer is coupled to the first locomotive interface, and a first communicator is coupled to the first computer. The first computer is programmed for operation on the first locomotive. The method includes loading a first version of control software onto the first computer, loading a second version of control software onto the first computer, and using data included in a link message to determine whether the first version or the second version of the control software is used. 
     In another aspect, a system is provided for controlling a first locomotive. The system includes a first locomotive interface, a first computer that is coupled to the locomotive interface, and a first communicator that is coupled to the first computer. The first computer is programmed to control the first locomotive. The first computer is further programmed to use at least one of a first version of control software and a second version of control software. 
     In a further aspect, a fleet of locomotives is provided that include at least one locomotive equipped with a system for controlling the at least one locomotive. The system includes a first locomotive interface, a first computer coupled to the first locomotive interface, and a first communicator coupled to the first computer. The first computer is programmed to control the at least one locomotive and to use a first version of control software and a second version of control software. 
     In yet another aspect, a method is provided for upgrading control software on a first locomotive. The first locomotive includes a first locomotive interface, a first computer coupled to the first locomotive interface, and a first communicator coupled to the first computer. The first computer is programmed for operation on the first locomotive. The method includes providing the control software with functionality to operate with a plurality of locomotive control system configurations, and using data included in link messages to determine which version of the control software is used. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 shows a block diagram of a locomotive control system. 
     FIG. 2 is a flowchart illustrating an exemplary overall linking process between the locomotive consists in a train. 
     FIG. 3 is a block diagram illustrating an exemplary software memory module/software partition. 
     FIG. 4 is a flowchart depicting in detail the linking process between an non-upgraded lead unit and both an upgraded and non-upgraded remote unit. 
     FIG. 5 is a flowchart depicting in detail an exemplary embodiment of the linking process between an upgraded lead unit and both an upgraded and non-upgraded remote unit. 
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
     As used herein, the term “locomotive consist” means one or more locomotives physically connected together, with one locomotive designated as the controlling locomotive and the others as trailing locomotives. A “train” consist means a combination of cars (freight, passenger, bulk) and at least one locomotive consist. Typically, a train is built in a terminal/yard and the locomotive consist is at the head-end of the train. Occasionally, trains require additional locomotive consists within the train consist or attached to the last car in the train consist. Additional locomotive consists sometimes are required to improve train handling and/or to improve train performance due to the terrain (mountains, track curvature) in which the train will be traveling. A locomotive consist at the head-end of a train may or may not control locomotive consists within the train. 
     FIG. 1 shows a block diagram  10  of an on-board control system for a locomotive. System  10  includes a locomotive interface  12  that operatively connects the controls of the locomotive to a computer  14 . Computer  14  is also operatively connected to a communicator  16 . Signals received by communicator  16  are relayed to computer  14 , which controls the motion of the locomotive through locomotive traction, dynamic brake and air brake interfaces  12 . In one embodiment communicator  16  is a satellite communicator, but other types of communicators suitable for this application will be readily apparent to those skilled in the relevant art. 
     FIG. 2 is a flowchart  20  illustrating an exemplary general process that is followed when a train is assembled to link locomotives equipped with the on-board control system shown in FIG.  1 . From the onset of operation of the train, locomotives exchange link messages that include a link command from the lead locomotive to a remote locomotive, and a link reply in response to the link command. A link command relating to the versions of control software is sent from the communicator on a lead locomotive to the communicator on a remote locomotive in the train. If all checks are successful, the second locomotive responds with a link reply that contains a specification of the version of control software matching the lead unit version. The computer on the lead locomotive then uses the specification of the version of control software on the remote locomotive&#39;s computer to select a mutually compatible version of control software and, if necessary, command previously-linked remote units to the same software version. 
     A first communicator that is operatively coupled to a first computer on a lead locomotive sends  22  a link command to a second communicator that is operatively coupled to a second computer on a remote locomotive which has previously been enabled. The first computer includes two versions of control software loaded onto it, referred to here as the primary version and the secondary version. These two versions would typically correspond to new and previous versions of control software, but as will be readily appreciated, how the versions differ is not critical, and versions differing in other respects would work equally well in the inventive method and system. The second communicator responds  24  to the first communicator with a link reply that contains a specification of the version of control software in use on the second computer. The first computer then selects  26  a version of control software to use based upon the specification received from the second communicator, and displays  28  to the railroad crew the version it selected, as well as the significant operational aspects. 
     If the two versions of control software correspond to the primary and the secondary version, system  10  selects the primary version only if all locomotives in the train can utilize the primary version. If any locomotive in the train has not yet been upgraded, and all locomotives support the secondary version, system  10  selects the secondary version so that all locomotives can still operate properly. The selection of software version is transparent to the railroad crew. Once a link has been achieved, system  10  displays on a console a message advising the crew of the implications of the version of software that has been selected. 
     FIG. 3 is a block diagram  30  illustrating a software memory module/software partition  32 . Each computer  14  includes a central processing unit (CPU)  34  and the functionality  36  for the latest version (primary) of software for lead unit operation, the functionality  38  for the latest version (primary) of software for remote unit operation, the functionality  40  for a previous version (secondary) of software for lead unit operation, and the functionality  42  for a previous version (secondary) of software for remote unit operation. In one embodiment, each computer  14  also includes diagnostics and link functions  44 . A numeric code is associated with each software version. For example, an un-upgraded unit might have  45  and  49  respectively for the secondary and primary codes, and an upgraded unit might have  49  and  50  respectively from the secondary and primary codes. 
     The primary and secondary control functions  36 ,  38 ,  40 , and  42  are isolated to minimize software code generation and testing when an upgrade is performed. The primary link command from the lead unit includes two software version codes. The primary code indicates the latest software version installed. The secondary code indicates the previous software version installed. If the addressed remote unit includes the software corresponding to the link command primary code, the addressed remote unit responds in the link reply with the link command primary code. If the remote unit does not include the software corresponding to the link command primary code, but does include the software corresponding to the secondary code, the remote unit responds in the link reply with the secondary code. If any remote unit is linked with the lead unit secondary version code, the lead unit re-links all remote units using only the secondary code. 
     FIG. 4 is a flowchart  50  showing in detail how system  10  works with an non-upgraded lead locomotive  52 , that is a lead locomotive with on-board control system software that has not been upgraded with new software. Non-upgraded lead locomotive  52 , in response to selection of a LINK key by the railroad crew, transmits  54  to other locomotives in the train a link command that includes two lead version codes. An upgraded remote locomotive  56  that receives the link command compares the primary lead version code and finds that it matches  58  its secondary version code. Locomotive  56  then responds  60  to locomotive  52  with a secondary version code, and is then linked  62  to locomotive  52  as a “current” remote locomotive. 
     A non-upgraded remote locomotive  64  that receives the link command compares the primary lead version code and finds that it matches  66  the primary version code present on locomotive  64 . Locomotive  64  then responds  68  to locomotive  52  with its primary version code, and is then linked  69  to locomotive  52  as a “current” remote locomotive. Thus non-upgraded lead locomotive can function with both upgraded and non-upgraded remote locomotives, with the former making the necessary accommodation to link to the non-upgraded lead locomotive. 
     FIG. 5 is an exemplary flowchart  70  illustrating how system  10  functions with an upgraded lead locomotive  72 , or more specifically, how system  10  functions with a lead locomotive including an on-board control system that has been upgraded with new software. Upgraded lead locomotive  72 , in response to selection of a LINK key by the railroad crew, transmits  74  to other locomotives in the train a link command that includes two lead version codes corresponding to a primary software version and a secondary software version. An upgraded remote locomotive  76  that receives the link command compares the primary lead version code to determine if it matches  78  a primary version code. If it matches  78 , locomotive  76  then responds  80  to locomotive  72  with a primary version code, and is then linked  82  to locomotive  72  as a “new” remote locomotive. 
     A non-upgraded remote locomotive  84  that receives the link command compares the secondary lead version code to determine if it matches  86  a primary version code. If it matches  86 , locomotive  84  then responds  88  to locomotive  72  with its primary remote version code, and is then linked  90  to locomotive  72  as a “current” remote locomotive. 
     If any locomotive is linked as a lead secondary remote locomotive, upgraded lead locomotive  72  then links  92  all remote locomotives in the train as “current” remote locomotives, including those previously linked as “new” locomotives. 
     Although the invention has been described and illustrated in detail, it is to be clearly understood that the same is intended by way of illustration and example only and is not to be taken by way of limitation. Accordingly the spirit and scope of the invention are to be limited only by the terms of the appended claims and their equivalents.