This disclosure relates generally to a control system and, more particularly, to a machine control system having automatic component version management.
Machines such as autonomous construction equipment, passenger vehicles, vocational trucks, and other machines known in the art are often equipped with one or more components having software or hardware that require periodic service upgrades for operation of the components. The components work in concert with each other and are sometimes calibrated to function with specific versions of software and/or hardware in neighboring components within the same system. Software and hardware version mismatch between two or more components can cause the system to function in an unexpected way, or in some circumstances, may cause one or more components to stop functioning.
Currently, the software version for each individual component is recorded at a corresponding electronic control module onboard the machine, and has to be retrieved manually by a technician with module reading equipment. Maintaining a history of software and/or hardware versions for each component includes checking the software version of each component at the electronic control module, manually recording the software version, and subsequently tracking a software version history over time via an external tool such as a spreadsheet. A software and hardware version list is then generated and manually compared against a record of expected software and hardware versions to identify any mismatches. When a mismatch is spotted, appropriate action is then taken. The action can include alerting the machine operator of the mismatch, and/or scheduling a maintenance visit for a software upgrade to the mismatched components. Identifying software and/or hardware version mismatch between individual components using current methods can be cumbersome and increase the possibility of error.
One exemplary method used to identify an incorrect or mismatched component is described in U.S. Patent Application Publication No. US 2011/0220560 (the '560 publication) filed by Verdegan on Mar. 9, 2011. The '560 publication describes a system in which a component, such as an engine filter, is identified as genuine or not genuine. A surface acoustical wave sensor is mounted on the filter, which transmits a signal to an interface module operatively connected to an electronic control module (ECM) of a host machine, the signal indicating whether or not the component is appropriate. The system described in the '560 publication updates a maintenance history log located at the electronic control module (ECM), and warns an operator of possible used, defective, non-genuine or counterfeit components. When a serviceable component is determined to not be genuine after detection, appropriate action is taken to warn operators and document such findings.
Although the '560 publication describes a system for detecting the presence of a suitable component, it does not provide for system level management of software versioning for each component. Pertinent information, such as the history of appropriate component installations, presumably must still be retrieved manually from each ECM. Furthermore, the '560 publication appears to track only matches and mismatches of physical hardware, and is silent as to other important factors.
The system of the present disclosure is directed towards overcoming one or more of the problems as set forth above.
One aspect of the present disclosure is directed to a component version management system for a machine. The component version management system may include a software driven component located on the machine, a data system located offboard the machine, and a data system controller in communication with the software driven component and the data system. The data system controller may be configured to automatically collect at least one of software version and hardware version of the software driven component, analyze the information for at least one of software and hardware mismatch, and generate a notification in the machine when a software or hardware mismatch is detected.
Another aspect of the present disclosure is directed to a computer-implemented method of managing a software version of a machine component. The method may include collecting information from the machine component, analyzing, by one or more processors, the information for at least one of software and hardware version mismatch, and generating, by the one or more processors, a notification when a software or hardware version mismatch is detected.
Machine 10 may have one or more software driven components 18 that facilitate its operation at the worksite. For the purposes of this disclosure, a software driven component 18 may be considered any component that utilizes software and/or hardware in its operation. Examples of software driven components 18 may include various auxiliary equipment such as a sensing device module 18a. Auxiliary equipment may be onboard the machine 10 to perform various tasks during machine 10 operation that aid in the application of the machine 10 on the worksite. For example, sensing device module 18 may be used to sense the physical surroundings of the machine 10 using lidar, radar and/or the like. Software drive components 18 may further include a locating device 18b, used to geographically locate the machine 10, and a communications module 18c, used to facilitate communication between the machine 10 and another device or system remotely located from the machine 10. Additional examples include a chassis control module 18d, used to control operational aspects of a machine chassis, a brake control module 18e used to control operational aspects of a braking system, a steering control module 18f, a transmission control module 18g, a tire control module 18h, and an auxiliary equipment module (not shown). Other types of devices not named herein may be included on the machine 10, which may communicate with one another and/or communicate with other software driven components. While other devices are not explicitly named, it is to be understood that such devices may cooperate with one another, and may benefit from software and/or hardware compatibility matching between components.
As shown in
Data system controller 16 may coordinate the function of various machine controllers 25 and/or software driven components 18. For example, software driven components 18 may report to machine controllers 25, and each of machine controllers 25 may report to data system controller 16. Data system controller 25 may be responsible for collecting information regarding the software driven components 18 and for processing the information.
Data system controller 16 may include any means for monitoring, recording, storing, indexing, processing, and/or communicating the operational aspects of machine 10 described above. These means may include components such as, for example, a memory, one or more data storage devices, a central processing unit, or any other components that may be used to run an application. Furthermore, although aspects of the present disclosure may be described generally as being stored in memory, one skilled in the art will appreciate that these aspects can be stored on or read from different types of computer program products or computer-readable media such as computer chips and secondary storage devices, including hard disks, optical media, CD-ROM, or other forms of non-transitory computer readable media.
Data system controller 16 may also include a means for communicating with an offboard data system 20. For example, data system controller 16 may include hardware and/or software that enables sending and receiving of data messages through a direct data link (not shown) or a wireless communication link (not shown). The wireless communications may include satellite 12, cellular, infrared, and any other type of wireless communications that enable data system controller 16 to exchange information with offboard data system 20. It is contemplated that a separate module may be included within data system controller 16 to facilitate the communication of data between data system controller 16 and offboard data system 20, if desired.
Offboard data system 20 may represent one or more computing systems of a business entity associated with machine 10, such as a worksite operator, manufacturer, dealer, retailer, owner, service provider, or any other entity that generates, maintains, sends, and/or receives information associated with machine 10. The one or more computing systems may include, for example, a laptop, a work station, a mobile computing device, a mainframe, and other computing systems known in the art.
The disclosed method and system may provide an accurate and reliable way for managing software and hardware versions in onboard software driven components. Specifically, because the disclosed system and method provide for automatic version management, the amount of manual effort expended to identify version mismatch and record a version history of components of a machine may be low, and the likelihood of error may be reduced. The operation of control system having automatic version management 24 will now be described with respect to
As illustrated in the flowchart of
In the event that the process has been triggered, data system controller 16 may initiate automatic collection of software and hardware information (step 110). The collected software and hardware information may include component information such as, for example, an identifying serial number or other identification, a model number, a hardware version number, a software version number, a software and/or hardware release date, a software and/or hardware expiration date, a software and/or hardware group description, a fabrication or testing date or facility, an operating system version, a firmware version, and/or other related component information. The collected information may also include user information, such as, information identifying the particular machine 10 into which software driven component 18 is installed, information associated with the selling or servicing dealership associated with the machine 10 and/or any component and/or systems installed on the machine 10, customer information (i.e., name, billing address, intended work location, contact information, and/or the like), and other user-related information known in the art. The component information may be automatically collected via electronic communication with a memory of the newly installed software driven component 18 and/or other components and systems of machine 10. The information may be collected via optical, infrared or magnetic scanning of external or internal indices placed on or programmed into machine 10 during fabrication or installation. The component information may be automatically collected to determine a hardware or electronic configuration of software driven component 18 by communication with data system controller 16, and/or communication with offboard data system 20, or in any other appropriate manner.
Collecting software and hardware information (step 110) may be accomplished by control system 24. Control system 24 may query each system and subsystem of machine 10 to determine if there are additional unique software driven components 18 from which information should be collected. Control system 24 may accomplish the data collection by means of data system controller 16 and/or any other combination of system components such as, for example, one or more of machine controllers 25.
Following receipt of the automatically-collected information, the information may be analyzed by control system 24 (step 120) to identify any software and hardware version mismatch. The analysis may be processed by data system controller 16, or other processing means within control system 24. Analyzing the collected information (step 120) may further include identifying one or more elements of the information that has changed since a previous analysis, and comparing the one or more elements of information against a master list of compatible component software and hardware matches. Data system controller 16 may be further configured to automatically update the master list with information related to at least one of software and hardware version, and automatically send the information to the data system 20 located offboard the machine 10.
A software and hardware version mismatch of software driven component 18 may occur as a result of altering machine 10 in some way. For example, software and hardware version mismatch may occur when the software of one component 18 is upgraded, and the upgraded software version is not compatible with one or more other components or systems of machine 10. Other forms of mismatch may occur when the version of component software on a component 18 of machine 10 is incompatible with one or more versions of hardware or software of software driven component 18. Version mismatch may also be created when a software and/or hardware version is incompatible with machine 10 on which the component installation is made. Other types of software and hardware version mismatch may be detected by the presently disclosed control system 24.
If a software and hardware mismatch is detected (step 130), a notification may be generated on a display operatively connected to machine 10 indicating the mismatch (step 140). The notification may be a visual display, an audio notification, etc. According to yet another embodiment, a notification is generated by control system 24 and transmitted to the offboard data system 20 (step 140).
According to one embodiment, the version information of software driven component 18 may be processed by control system 24 in such a way as to make the information displayable on a graphic user interface located onboard machine. The displayed information may include a readily identifiable notification on the screen showing one or more mismatches in such a way as to bring attention to the mismatch information. Displaying mismatch information in such a fashion may provide an efficient way for a technician, operator or other individual to be made immediately aware of a software and hardware mismatch on machine 10, so that appropriate action can be taken. When information is readily viewable on the screen, the need for tedious comparison between an appropriate software version list and the software currently installed on software driven components 18 may be avoided. Furthermore, the potential for human error in comparing a master version list to the currently installed software driven components 18 may also be reduced or avoided.
Analyzing the collected information may further include recording the version history for each software driven component 18 on the memory of data system controller 16. Analyzing the collected information may be done at any time after collecting the information. The version history information may include, but is not limited to any one or more of: component identification information that uniquely identifies the component 18, the date that component 18 was installed, a name of component 18, a description of component 18, machine 10 identification, a hardware version, a hardware serial number, a firmware version, an operating system version, a software name, a software version, a release date of software and/or hardware, a software expiration date, and/or a group description.
The flow chart depicted in