Abstract:
A method and system for diagnosing and programming industrial vehicles, especially lift trucks, is provided. The method and system utilizes a computer that is connected to an area network having at least one server, e.g. the internet. The computer is also connected through an electronic interface to a lift truck&#39;s data bus. 
     In a first step a browser application is loaded and runs in a browser program on the computer. Thereafter, program modules and/or data are downloaded from the network server by the browser application depending on the desired vehicle diagnosis to be performed, the desired customization to be programmed, and the type and model of lift truck to be interfaced to. Downloaded program modules may comprise data that can be displayed by the browser program and applications that can be run in the browser program. The vehicle diagnosis and/or customization of control processes are performed via the data bus for the lift truck by the downloaded program module or modules.

Description:
TECHNICAL FIELD 
       [0001]    The present invention generally relates to a method and system for diagnosing and programming industrial vehicles. In particular, the invention relates to a method and system for diagnosing and programming customized settings in a lift truck through a computer that interfaces with the lift truck&#39;s data bus, and that is connected to a network comprising at least one server, in particular the internet. 
       BACKGROUND OF THE INVENTION 
       [0002]    Methods for remote diagnosis of lift trucks are known, in which a web server is connected to a computer via the Internet, and wherein the computer establishes a gateway to the lift truck. In this case, the diagnosis program, which requires considerable computer resources, runs on the web server. The computer connected to it, working as a client, merely provides a graphical user interface for the diagnostic program running on the web server. The client computer receives all its data from the web server and is in turn connected to the lift truck. 
         [0003]    A disadvantage of this current technology is, that unique software must be installed for each application on the computer, must be customized for the application in question and cannot be replaced at run time in order to achieve different functionality. 
         [0004]    In line with this current technology, a dedicated software application can be installed on the client, or the graphical interface is represented in a web browser. The disadvantage here is, that a web browser does not have direct access to the computer hardware and thus cannot connect to the lift truck&#39;s data bus. 
         [0005]    DE 10 2005 048 762 A1 describes a remote diagnostic system and a method for the remote diagnosis of a lift truck that comprises a data bus for the transfer of a large number of parameters within the lift truck. A diagnostics module can be connected to the data bus, wherein the diagnostic module comprises a communications device for the transfer of parameters to an external diagnostic computer. The diagnostic module is designed in such way that it is possible to select a limited number of transfer parameters to be transferred with the communications device in real time to the diagnostic computer. 
         [0006]    In one particular embodiment, a configuration for the diagnostic module and the diagnostic computer allows the selection of the parameters to be communicated to be set by means of the diagnostic computer. In a further embodiment, a customer service center can connect over a long distance to a lift truck located for example on a customer&#39;s business premises in order e.g. to analyze exceptional errors. 
         [0007]    Therefore, in light of the problems associated with existing approaches, there is a need for an improved method and system for diagnosing and programming industrial vehicles. 
       SUMMARY OF THE INVENTION 
       [0008]    In one aspect of the present invention a computer is connected to a network, the network comprising at least one server. In particular, the network may be the Internet. The computer is further connected to an industrial vehicle&#39;s data bus through an electronic interface. The industrial vehicle may in particular be a lift truck. The computer runs a browser program, which is configured to execute a browser application. 
         [0009]    Program modules, data, or both program modules and data are selectively loaded from a server by the browser application. Program modules and data are selectively loaded based on the vehicle model to be diagnosed, the type of diagnosis to be performed, the configuration to be programmed into the vehicle, or a combination thereof. Selectively loaded program modules may be content that is displayed in the browser program, or browser applications that are executed within the browser program, or a combination thereof. The program modules have access to the electronic interface with the vehicle&#39;s data bus, and can be used to diagnose electronic modules connected to the vehicle&#39;s data bus, or program customized parameters in the vehicle&#39;s electronic modules. Customized parameters may e.g. be those that configure a lift truck&#39;s controls processes. The vehicle diagnosis, or the customization of the control processes is performed by the downloaded program modules via the vehicle&#39;s data bus. 
         [0010]    Time-critical applications may thereby run locally on the computer and only those program modules are downloaded that are required for a planned vehicle diagnosis, e.g. reading out error memory or evaluating stored operating times. Program modules can be downloaded selectively based on the type of lift truck. This allows minimizing the downloaded data volume of program modules. The downloaded program modules may run directly within the browser program, so that no further software installation is required. 
         [0011]    In another aspect of the invention, a launch module is initially loaded from a first network server into the computer&#39;s memory and executed on the computer. Then a connection is established to a second network server from which browser applications are loaded. In this process, the first and second servers can be physically and logically the same machine. 
         [0012]    While the launch module might also be preloaded on the computer, it is advantageously loaded from a network server. In particular, a launch module matching the computer&#39;s operating system and the lift truck&#39;s electronic interface can be made available via a web server in the Internet. It is not necessary for a service technician or the user to keep a large number of launch modules on hand that may no longer be up to date. Access to an up-to-date launch module is always guaranteed via the Internet. 
         [0013]    The launch module can be terminated after the browser application has been loaded and after the browser application has been allowed to run. 
         [0014]    In a further aspect of the invention the launch module may be able to access system routines of an operating system and hardware interfaces of a computer. The launch module may thereby establish hardware access for the browser application running within the browser program. In this aspect only the launch module requires the appropriate security permissions, for example in the firewall or as an executable program, and the download program modules can access the system routines of the operating system or the hardware interfaces of the computer indirectly via the launch module. 
         [0015]    In yet another aspect the browser application, the program modules, data or a combination thereof may be converted into executable programs by the launch module. This prevents the program modules from conflicting with a firewall when they are downloaded. 
         [0016]    In a further aspect a graphical representation is calculated on the computer by the browser application or an installed program module. The graphical representation may also be loaded into and generated by the browser program. This allows time-critical applications and in particular data preparation for a graphical user interface to run on the computer, allowing a considerable reduction to be achieved in the volume of data that has to be transferred from the server. Data transfer volume may be reduced by a factor 50 to 500 when compared with solutions in which vehicle diagnosis software runs predominantly on a web server and the client computer is used just for the graphical representation. 
         [0017]    The network connection between computer and server may be established through a mobile telephone network. This allows vehicle diagnosis and customization of control processes for lift trucks to be performed almost anywhere where a mobile communications network is accessible and the computer has a corresponding modem or network access via a mobile telephone connected to it. The use of a mobile telephone network or other low bandwidth network connection is enabled by the reduced data transfer volume between computer and server. This reduction is a result of the customizing the software through the selection of matching program modules. This is a particular advantage for industrial vehicles such as e.g. lift trucks, since here, in contrast to vehicles used on public roads, maintenance and repairs must be performed on site, and the locations where lift trucks are used are spread over a wide area. 
         [0018]    In another aspect the network server may store the protocols of the electronic interfaces as data for a number of different types of lift trucks. The server makes the protocols for the various electronic interfaces available either in a program module or in the form of data. This makes it possible to adapt to the protocol provided by the lift truck such as CAN, USB or RS232. 
         [0019]    In a favorable embodiment, the connection over the network between the computer and server is encrypted. Thereby it is possible to protect the data concerning the operating parameters from unauthorized access when they are being transferred to the server. 
         [0020]    The display module can run program modules independent of the operating system. 
         [0021]    Via the launch module, program modules can be independent of an operating system. 
         [0022]    In a favorable embodiment, all installed program components are removed or uninstalled, and downloaded data are deleted from the computer&#39;s memory after vehicle diagnosis and customization by the browser application are terminated. This allows a service technician to use the computer of a third party, e.g. a customer, since the computer can easily be returned to its previous state. 
         [0023]    A computer program product can be loaded into memory of the computer and, running there, can perform a method as described above. The computer program product can be stored to a storage medium. 
         [0024]    The following detailed description of the invention is merely exemplary in nature and is not intended to limit the invention or the application and uses of the invention. Furthermore, there is no intention to be bound by any theory presented in the preceding background of the invention or the following detailed description of the invention. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0025]      FIG. 1  shows schematically a prior art process of a remote diagnosis for a lift truck. 
           [0026]      FIG. 2  illustrates a computer which is connected to a lift truck and to the Internet, implementing a method for diagnosing and programming the lift truck. 
           [0027]      FIG. 3  schematically illustrates a software program structure. 
           [0028]      FIG. 4  schematically illustrates the data connections according to an aspect of the present invention. 
           [0029]      FIG. 5  schematically illustrates an alternative embodiment of a method for diagnosing and programming a lift truck. 
       
    
    
     DETAILED DESCRIPTION 
       [0030]      FIG. 1  shows schematically a known method to diagnose a lift truck. A personal computer ( 1 ) serves as a user interface and has a connection to the Internet or to an intranet and to a database ( 2 ), which can be located on a network server or on a DVD or hard disk. A server program ( 3 ) allows TCP/IP connections to other servers or clients. The server program ( 3 ) is designed in such a way that it can be executed on both the personal computer ( 1 ) or on other web servers, computers in the company&#39;s network, or in a hardware device ( 4 ) that enables communication between the data bus of the lift truck, e.g. CAN, serial, Ethernet, UMTS or GPRS, and the server program ( 3 ). A diagnostic program ( 5 ) provides communication, makes a user interface available, loads the diagnostic and protocol data, and accesses the database ( 2 ). 
         [0031]    The diagnostic program ( 5 ) contains the server program ( 3 ) as a component and runs on a web server. The user interface on personal computer ( 1 ) is connected to the diagnostic program ( 5 ) via the server program ( 3 ). The hardware device ( 4 ) is addressed by the server program ( 3 ) and can communicate with the diagnostic program ( 5 ). Only the data prepared by the diagnostic program ( 5 ) are displayed on the personal computer ( 1 ). 
         [0032]    A disadvantage is, that even for diagnostic applications that have been installed on the personal computer ( 1 ), a connection to the hardware device ( 4 ) is still not possible. Each data packet from the personal computer ( 1 ) must still be routed to the hardware device ( 4 ) via the server program ( 3 ). Also, the hardware device ( 4 ) must be a box with a permanently installed program that can establish a connection to the server program ( 3 ), or a PC program that does not change during operation. Any control operation would therefore require hardware and software that has been specially tailored. 
         [0033]      FIG. 2  shows a lift truck, more specifically a fork-lift, (6) and a computer ( 8 ) connected to the Internet ( 7 ) in an exemplary implementation of a method and system according to an aspect of the present invention. The computer ( 8 ) is connected via a mobile telephone ( 9 ), a mobile communications receiving station ( 10 ), a mobile communications network applications server ( 11 ) and the Internet ( 7 ) to a server ( 12 ) of the fork-lift truck manufacturer ( 13 ). The computer ( 8 ) is configured as a notebook that is connected to an interface ( 14 ) of the fork-lift truck ( 6 ). The interface ( 14 ) provides the computer ( 8 ) with access to the fork-lift truck&#39;s ( 6 ) data bus. The data bus may be a CAN bus, LIN bus, USB, RS232 or any other communication bus for exchanging data between electronic control modules within an industrial vehicle. The industrial vehicle may in particular be a lift truck, a forklift, or other material handling vehicle. The industrial vehicle may also be a vehicle typically used in the farm industry, such as a tractor, harvester, or other farm vehicle. It may further be a vehicle typically used in the construction industry, such as e.g. an articulated truck, construction tractor, excavator, compactor, skidder, or other heavy equipment. 
         [0034]    An on-site service technician with a computer ( 8 ) establishes a connection to the fork-lift truck ( 6 ) and, via the mobile telephone ( 9 ), to the Internet ( 7 ). A launch module can be downloaded from the server ( 12 ), which acts as initial server. Server ( 12 ) may e.g. be an ftp server being accesses through a TCP/IP connection. Launch modules may be executable software programs, which are provided by the ftp server. Server ( 12 ) may provide a plurality of launch modules to accommodate different operating systems on computer ( 8 ). Server ( 12 ) may e.g. provide a launch module as an executable program (.exe file) for x86 based operating systems, Wintel platforms, or executables for other operating systems including mobile devices. The launch module subsequently loads a browser application. This browser application is executed in a browser program, for example Internet Explorer, Mozilla Firefox, Google Chrome or any other browser program capable of executing browser applications. In addition, the launch module also sets up access to the hardware of computer ( 8 ). The launch module can then be terminated, and the browser application downloads additional program modules tailored to the type of fork-lift truck ( 6 ) and to the planned vehicle diagnosis and customization of the vehicle functionality. Conversely, data from fork-lift truck ( 6 ) can be transferred to server ( 12 ) for these to be analyzed there or for a remote diagnosis to be performed. 
         [0035]      FIG. 3  shows schematically an exemplary program structure. An interface driver ( 15 ) is provided, which can address one or more protocols, e.g. RS232, USB, CAN or Bluetooth. Interface driver ( 15 ) establishes a connection with an interface ( 14 ). A protocol converter ( 16 ) is provided, and a TCP/IP server ( 17 ) is allocated to the computer ( 8 ). In addition there is the graphical user interface (GUI) ( 18 ) for interaction with a user. 
         [0036]      FIG. 4  shows schematically the data connections in an exemplary embodiment. User interface ( 19 ) on the computer ( 8 ) communicates with database ( 21 ) on server ( 12 ) via a TCP/IP connection ( 20 ). Communications server ( 22 ) is also connected with database ( 21 ) by means of a TCP/IP connection ( 20 ). The control system ( 23 ) of the fork-lift truck ( 6 ) is operatively connected via CAN bus ( 24 ) to communications server ( 22 ). User interface ( 19 ) communicates directly with the communications server ( 22 ) via several channels ( 25 ) in real time, thus giving the user interface ( 19 ), direct access to the control system ( 23 ). The functional logic of diagnosing and programming control system ( 23 ) of fork-lift truck ( 6 ) is executed by program modules within user interface ( 19 ). Database ( 21 ) is accessed as necessary to load program modules or data into user interface ( 19 ) and enable specific diagnostic procedures to be executed. 
         [0037]    This exemplary method describes the case, where the diagnosis runs on the computer ( 8 ) to which the lift truck ( 6 ) is connected. The launch module is only required for a computer ( 8 ) to which an interface ( 14 ) is connected. The diagnosis itself runs in the browser program, with the entire code being designed to be able run in any browser program that has a TCP/IP connection to a server. 
         [0038]    Everything needed for the diagnosis is loaded into the browser program by the method according to an aspect of the invention. The browser program establishes the connections autonomously and communicates with the server program ( 3 ) that runs in memory when the connection is established and other connections, whether to remote servers or locally to a server program that accesses hardware and that is loaded by the launch module. At the same time, the software running in the browser program or the browser application update themselves autonomously. 
         [0039]      FIG. 5  shows schematically a further example of a method according to an aspect of the invention. A computer acts as an intelligent user interface ( 26 ) and uses a web browser program to load an HTML page from a server ( 27 ). The HTML page may alternatively be loaded from a data medium, e.g. a CD, DVD, or flash memory device. Subsequently, further data is loaded from server ( 27 ) or from another server. A type of graphic is displayed in the HTML page for which other, additional data, are loaded that also contain program code and that are executed in the computer&#39;s memory. This program code executes complex programs in the browser program. At the same time, the browser program can establish any number of connections to other servers and communicate with them in bi-directional mode. 
         [0040]    The browser program can connect to one or several web servers from which it can load data or program modules. At the same time the browser program of user interface ( 26 ) can connect with one or several server programs ( 28 ) and communicate with them. The programs in the browser program can autonomously generate any type of graphics using data and loaded program parts and can display these on the screen, can receive and evaluate mouse movements and keystrokes and can analyze any type of data received via these connections, compare them with data from external servers, evaluate them, generate new data from them, and then also transmit these. The user interface ( 26 ) running in the browser program is at the same time also the diagnostic program ( 29 ). No intelligent applications or data preparation/calculation on external servers are required. The entire data preparation, the diagnostic program ( 29 ) and data management, the establishment and clearing of connections as well as the graphical preparation of data and display are performed in real time in memory and displayed on the screen. Since this only occurs in memory and in the browser program window, the process represents no risk from a security point of view. 
         [0041]    The database ( 27 ) requires no intelligent program parts since it is controlled by the user interface ( 26 ) and can therefore be located on a DVD or on a storage medium to which the user interface ( 26 ) has access. Access to database ( 27 ) may be established via the Internet. A connection of the lift truck is established via a hardware device, here that of a laptop ( 30 ) that is connected via an additional box ( 31 ) with an interface for the vehicle&#39;s data bus. A launch module ( 32 ) loaded from the Internet and comprising approx. 400 KB of program code is executed on the laptop. The launch module ( 32 ) establishes a connection to a server program ( 28 ), transfers the control data and then downloads the required program parts depending on the hardware and becomes a server program in its own right. 
         [0042]    These server programs can communicate with each other on several connections, exchange data simultaneously in any direction and run in memory both in the hardware device, in the Internet/extranet as well as on the computer where the user interface ( 26 ) is executed. 
         [0043]    Each hardware device and each user interface ( 26 ) are thus directly connected with each other via server programs ( 28 ). Each user interface ( 26 ) can now control the hardware devices and e.g. the laptop ( 30 ) the user interface ( 26 ). 
         [0044]    This architecture renders it unimportant whether all program parts run on one computer or whether a computer with user interface is situated at one location and is connected with a hardware device, e.g. a laptop ( 30 ) with add-on box ( 31 ) at a second location or with a vehicle connected via a mobile link with a server in the Internet. 
         [0045]    This architecture makes it possible to receive all readings in parallel from the lift truck in one or several data streams, at the same time to transfer new protocols and commands to the hardware device and to display everything on the screen in virtually real time without having to wait for a response from a web server. It is also possible to represent several lift trucks simultaneously in the user interface ( 26 ) and also one or several lift trucks in one or several user interfaces and even on different computers or in different windows on one computer. 
         [0046]    During diagnosis, a web address is called, authentication is made and then a lift truck can be selected. The connections are set up autonomously and the user has a user interface which allows the complete diagnostic program to be run applicable for the lift truck and corresponding to the user level. A program is executed for the lift truck that autonomously adapts all the data, protocols and program parts required to whatever vehicle is connected. 
         [0047]    Both devices now search for the fastest and most efficient communications paths, autonomously load all program parts and data that they need and execute them. Only modifications and binary data without overhead are transferred in multi-directional streaming in parallel. The process on the browser program can be seen as the browser program loading several files simultaneously from several web sites and at the same time sending data to other server modules. While this happens, the software running in the browser program immediately evaluates and processes all incoming data fragments and updates all data to be transferred as well as the software running in the browser program at run time. 
         [0048]    While the present invention has been described with reference to exemplary embodiments, it will be readily apparent to those skilled in the art that the invention is not limited to the disclosed or illustrated embodiments but, on the contrary, is intended to cover numerous other modifications, substitutions, variations and broad equivalent arrangements that are included within the spirit and scope of the following claims.