This invention relates generally to network interface systems and more particularly, to systems and methods for providing network communications between work machines.
An important feature in modern work machines (e.g., fixed and mobile commercial machines, such as construction machines, fixed engine systems, marine-based machines, etc.) is the on-board communications, monitoring, and control network. An on-board network includes many different modules connected to different types of communication links. These links may be proprietary and non-proprietary, such as manufacturer-based data links and communication paths based on known industry standards (e.g., J1939, RS-232, RP 1210, RS-422, RS-485, MODBUS, CAN, etc.). Other features implemented with work machines are off-board systems and networks, such as wireless networks (e.g., cellular), satellite networks (e.g., GPS), and TCP/IP-based networks.
On-board modules may communicate with other on-board or off-board modules to perform various functions related to the operation of the work machine. For example, display modules may receive sensor data from an engine control module via a J1939 data link, while another control module connected to a proprietary data link may provide data to another module connected to the same link. Also, an on-board module may send data to an off-board system using a different communication path extending from the work machine to the off-board system.
Problems arise, however, when modules connected to different types of data links need to communicate. To address these problems, conventional systems may incorporate various interface devices to facilitate communications between different types of data links. Although this solution may be functionally acceptable in some instances, their implementations are restricted due to the hardware and service capabilities associated with the types of data links used in a work machine. Further, the additional hardware may take up valuable space needed for other components used by the machine.
One of these components is the machine's on-board computer system. Today, work machines must not only include various interface devices for facilitating communications in multi-protocol environments, but they require the processing capabilities to service this traffic. Further, the complexity and applications of work machines require these machines to provide other types of data management services. However, work machines have limitations when accessing off-board resources to provide these services. For example, conventional machines may require information from a remote site to perform on-site operations. To obtain this information, these systems may have limited options, such as the operator contacting the remote site via wireless networks (e.g., user cellphone) and taking the machine to a site where the information may be downloaded to the machine (e.g., a diagnostic or data download center).
In addition to the shortcomings associated with resource accessibility, problems may arise when work machines need to communicate with each other while traveling within or between work environments. U.S. Pat. No. 5,850,592 to Ramanathan implements a system that allows mobile stations to organize themselves into a hierarchical network in which some of the stations operate as message gateways for a cluster of stations. Each station is capable of transmitting messages on either a high power level or a low power level. Although the system disclosed by Ramanathan allows mobile stations to communicate with each other, it does so through cluster gateway stations that are configured to exchange messages between each other at the high power level. Because only cluster gateways are used to pass messages to affiliated non-cluster gateway stations, the system is restricted in its ability to pass information freely between the mobile stations. Further, when two cluster gateways are within a predetermined proximity of each other, the system requires one of them to stand down as a cluster gateway to eliminate redundancy.
Methods, systems, and articles of manufacture consistent with certain embodiments of the present invention are directed to solving one or more of the problems set forth above.
A method is provided for dynamically establishing an ad-hoc network including a plurality of work machines, one or more of which may move within a work environment, and each of which includes a gateway. The method may be performed by a respective gateway included within a respective one of the work machines and includes determining a first set of work machines that are within direct communication range of the respective work machine based on the respective work machine's current location within the work environment. Further, the method includes determining a second set of work machines that are in direct communication range of one or more of the work machines in the first set. The method may also include forwarding a packet received from a first work machine included in the first set to a second work machine included in the first set based on a determination that the second work machine is either directly or indirectly within communication range of a third work machine included in the second set. In addition, the method includes updating the work machines included in at least one of the first and second set of work machines based on at least one of (i) the respective work machine changing locations within the work environment and (ii) any of the work machines included in the first or second sets changing locations within the work environment.
In another embodiment, a system is provided for dynamically establishing communications between work machines that may move within a work environment. The system includes a first work machine positioned in a first location within the work environment and a first gateway included in the first work machine that interconnects an on-board data link with an off-board data link. The gateway includes a network table that identifies work machines that are either directly or indirectly within communication range of the first work machine, wherein the network table identifies a first set of work machines that are within communication range of the first work machine and identifies a second set of work machines that are within communication range of any of the work machines in the first set. Further, the first gateway is configured to update the network table based on at least one of (i) the first work machine changing locations within the work environment and (ii) any of the work machines included in the first or second sets changing locations within the work environment. Also, the gateway may receive a packet over the off-board data link from a second work machine included in the first set, wherein the packet identifies a destination work machine, and forwards the received packet to a third work machine included in the first set based on a determination that the destination work machine is associated with the third work machine in the network table. Moreover, the gateway may forward the received packet to the on-board data link based on a determination that the first work machine is the destination work machine.
The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate several aspects of the invention and together with the description, serve to explain the principles of the invention. In the drawings:
Reference will now be made in detail to the exemplary aspects of the invention, examples of which are illustrated in the accompanying drawings. Wherever possible, the same reference numbers will be used throughout the drawings to refer to the same or like parts.
Overview
A work machine, as the term is used herein, refers to a fixed or mobile machine that performs some type of operation associated with a particular industry, such as mining, construction, farming, etc. and operates between or within work environments (e.g., construction site, mine site, power plant, etc.). A non-limiting example of a fixed machine includes an engine system operating in a plant, off-shore environment (e.g., off-shore drilling platform). Non-limiting examples of mobile machines include commercial machines, such as trucks, cranes, earth moving vehicles, mining vehicles, backhoes, material handling equipment, farming equipment, marine vessels, aircraft, and any type of movable machine that operates in a work environment.
An on-board module, as the term is used herein, may represent any type of component operating in work machine 105 that controls or is controlled by other components or sub-components. For example, an on-board module may be an operator display device, an Engine Control Module (ECM), a power system control module, a Global Positioning System (GPS) interface device, an attachment interface that connects one or more sub-components, and any other type of device work machine 105 may use to facilitate operations of the machine during run time or non-run time conditions (i.e., machine engine running or not running, respectively).
An off-board system, as the term is used herein, may represent a system that is located remote from a work machine, such as remote from machine 105. An off-board system may be a system that connects to on-board system 110 through wireline or wireless data links. Further, an off-board system may be a computer system including known computing components, such as one or more processors, software, display, and interface devices that operate collectively to perform one or more processes. Alternatively, or additionally, an off-board system may include one or more communications devices that facilitates the transmission of data to and from on-board system 110.
Gateway 120 represents one or more interface devices configured to perform functions consistent with various embodiments of the present invention. Gateway 120 may be configured with various types of hardware and software depending on its application within a work machine. Thus, in accordance with embodiments of the invention, gateway 120 provide interface capability that facilitates the transmission of data to and from on-board system 110, performs various data processing functions, and maintains data for use by one or more on-board modules or off-board systems. For example, gateway 120 may be configured to perform protocol conversions (e.g., tunneling and translations), intelligent routing, and server-based operations, such as data provisioning, application provisioning, Web server operations, electronic mail server operations, data traffic management, and any other type of server-based operations that enable on-board system 110 to retrieve, generate, and/or provide data with on-board and/or off-board systems.
For clarity of explanation,
On-board module 125 represents one or more on-board modules connected to one or more proprietary data links 128 included in on-board system 110. On-board module 127 may be one or more on-board modules connected to a non-proprietary data link 129, such as Society of Automotive Engineers (SAE) standard data links including Controller Area Network (CAN), J1939, etc. standard data links.
As shown in
Computer system 130 represents one or more computing systems each executing one or more software applications. For example, computer system 130 may be a workstation, personal digital assistant, laptop, mainframe, etc. Computer system 130 may include Web browser software that requests and receives data from a server when executed by a processor and displays content to a user operating the system. In one embodiment of the invention, computer system 130 is connected to on-board system 110 through one or more wireline based data links, such as a Local Area Network (LAN), an Extranet, and the Internet using an Ethernet connection based on TCP/IP.
Computer system 140 also represents one or more computing systems each executing one or more software applications. Computer system 140 may be a workstation, personal digital assistant, laptop, mainframe, etc. Also, computer system 140 may include Web browser software that requests and receives data from a server when executed by a processor and displays content to a user operating the system. In one embodiment of the invention, computer system 140 is connected to on-board system 110 through one or more wireless based data links, such as cellular, satellite, and radio-based communication data links.
Computer systems 130 and 140 may each be associated with a user (e.g., customer), multiple users, a business entity (dealer, manufacturer, vendor, etc.), a department of a business entity (e.g., service center, operations support center, logistics center, etc.), and any other type of entity that sends and/or receives information to/from on-board system 110. Further, computer system 130 and 140 may each execute off-board software applications that download or upload information to/from on-board system 110 via gateway 120.
In certain embodiments, computer systems 130 and 140 may include one or more controllers, such as Programmable Logic Controllers (PLCs) that may be used in plants and/or factories.
Service system 150 represent one or more portable, or fixed, service systems that perform diagnostics and/or service operations that include receiving and sending messages to on-board system 110 via gateway 120. For example, service port system 150 may be a electronic testing device that connects to on-board system 120 through an RS-232 serial data link. Using service port system 150, a user or an application executed by a processor may perform diagnostics and service operations on any of on-board system modules 125, 127 through gateway 120.
In one embodiment, gateway 120 may include various computing components used to perform server based services (e.g., communications services, file services, database services, etc.) for on-board system 110.
Digital core 202 includes the logic and processing components used by gateway 120 to perform its interface, communications, and server functionalities. In one embodiment, digital core 202 includes one or more processors 205 and internal memories 210 and 215. Processor 205 may represent one or more microprocessors that execute software to perform the gateway features of the present invention. Memory 210 may represent one or more memory devices that temporarily store data, instructions, and executable code, or any combination thereof, used by processor 205. Memory 215 may represent one or more memory devices that store data temporarily during operation of gateway 120, such as a cache memory, register devices, buffers, queuing memory devices, and any type of memory device that maintains information. Memories 210 and 215 may be any type of memory device, such as flash memory, Static Random Access Memory (SRAM), and battery backed non-volatile memory devices.
On-board data link ports 220-1 to 220-N represent one or more interface devices that interconnect one or more on-board data links with digital core 202. For example, on-board data link ports 220-1 to 220-N may connect to proprietary and non-proprietary data links 128, 129, respectively. In one embodiment, on-board data link ports 220-1 to 220-N interfaces with one or more proprietary data links, one or more CAN data links (e.g., J1939, galvanized isolated CAN data links, etc.), one or more RS-232 serial based data links (e.g., MODBUS, PPP, NMEA183, etc.), and one or more RS-242 data links. On-board data link ports 220-1 to 220-N may also include virtual (i.e., software) ports that allow a single connection to act as if there were multiple connections.
Off-board data link ports 225-1 to 225-Y represent one or more interface devices that interconnect one or more off-board data links with digital core 202. For example, off-board data link ports 225-1 to 225-Y may connect gateway 120 to one or more RS-232 data links, RS-485 data links, Ethernet data links, MODBUS data links, radio data links, infra-red data links, and/or satellite data links, etc. It is appreciated that gateway 120 may be configured to interface with any type of data link used in an on-board or off-board system network.
The gateway 120 shown in
In operation, digital core 202 executes program code to facilitate communications between on-board modules and/or off-board systems. In one embodiment of the present invention, memory 210 includes application and server-based software programs that allow information received through either data link ports 220 and 225 to be processed and/or transferred to the proper destination module/system in the proper format.
Exemplary model 300 may include hardware interface software, such as boot executable software and driver software layer 310, that drive the on-board and off-board data link ports 220 and 225 connecting the multiple types of data links to gateway 120 (e.g., Ethernet, RS-232, CAN, proprietary data links, etc.). A core hardware access layer 315 interfaces boot executable layer 310 and core software layer 330, which includes software associated with run time operations of gateway 120. Layer 320 includes operating system software executed by processor 205, and layer 325 is a network stack level including one or more protocol stacks used to perform communication services, such as formatting data messages for specific protocols, etc. In one embodiment, model 300 may also include a Web server layer 335 that includes server software used by gateway 120 to perform Web server operations, such as HTML processing, content generation, Web page request processing, etc. Further, model 300 may also include one or more layers 340-360 representing application programs executable by gateway 120. For example, layers 340, 345 may represent server applications executed by gateway 120 to perform certain services, such as data provisioning, application management, traffic management, etc. Layers 360-1 to 360-X may represent application programs that perform operations associated with functions typically performed by certain types of on-board modules connected to an on-board network, such as a Customer Communication Module (CCM), a communication adapter, a GPS Interface Module (GPSIM), a third party interface software, an Engine Vision Interface Module (EVIM), and a product link module.
Model 300 may also include an inter-data link gateway layer 350 that includes one or more gateway applications 350-1 to 350-T, that perform protocol conversion operations for converting information associated with one type of data link to another. The conversion operations may include protocol translation and tunneling features. Processor 205 may execute a selected one of application programs 350-1 to 350-T based on the type of format required by an outgoing data link. For example, application layer 350-1 may represent a protocol conversion program that allows data messages received in a proprietary data link to be converted to a J1939 format for transmission across a J1939 data link. Other types of conversion applications may be configured in model 300 including application layers that combine one or more protocol conversion capabilities.
Communication Server Applications
Methods and systems consistent with embodiments of the present invention may include one or more work machines that each include one or more gateways 120 that operate as an embedded communications server. In these embodiments, gateway 120 includes hardware and software that enable it to operate in a communications server-like fashion, receiving requests for information and servicing those requests. When embedded in a mobile work machine, gateway 120 may operate as a communications server by dynamically servicing requests from off-board systems and other work machines.
As shown in
Work machine 420 may include a gateway 425 that may be configured, and operates, similar to gateway 120. Work machine 420 may be a mobile or fixed work machine connected to work machine 410 through a wireline or wireless data link. WASWN 430 may be a satellite radio network that includes infrastructure allowing communications between one or more satellite devices and a remote system, such as computer system 140 described in connection with
Although
Gateway 120 includes one or more communications applications that are leveraged by sister applications to control communication processes between data links. In one embodiment, gateway 120 may perform protocol translation processes to facilitate communications between different types of data links, whether on-board or off-board. As used herein, the term “translation” refers to converting messages from one data link protocol into comparable messages of another protocol. For example, data messages including Parameter IDentifier (PID) information may be translated from an off-board data link protocol (e.g., Ethernet) into data values compatible with an on-board data link protocol (e.g., J1939). The PIDs may be associated with one or more operational parameters of work machine 105, such as engine speed, injection rates, component and/or area temperatures, pressures, etc. corresponding to systems, modules, and components located on work machine 105. Further, the parameters may be associated with engine diagnostic and performance parameters associated with an ECM. A data message may include one or more commands to adjust a PID data value based on a requested action directed to work machine 105. For example, a data message may include a request to increase the engine speed of work machine 105 by adjusting the data values associated with the PID corresponding to engine RPM.
Consistent with principles of the present invention, a communication application may perform translating processes for any number of protocols. Packets of messages from multiple and different data links may be discretely or simultaneously translated and sent out on a single data link. Message packets may also be received from a single data link and discretely or simultaneously translated and sent out over multiple and different data links. Non-limiting examples of translations include: (1) CDL and J1939 to MODBUS; (2) CDL to ISOI1783; (3) CDL to J1939; (4) ATA to J1939; and vice versa.
Consistent with principles of the present invention, gateway 120 may maintain a translation data structure, such as a translation table, that maps parameters between data links for facilitating protocol translations. Gateway 120 may access the translation table in order to convert information (e.g., PID data values) from one protocol compatible data value to another. In certain embodiments, the translation table may be stored in a memory device within gateway 120, such as memory 210, and accessed by processor 202. Further, the translation table may include a plurality of parameter identifiers (PIDs) representing system parameters associated with various data link protocols. For example, a first PID may represent an engine speed (RPM) parameter associated with certain protocols and a second PID may represent a temperature parameter. The translation table may include any number of different PIDs.
Also, the translation table may also include one or more scaling factors, each representing a data link “view” Each view may correspond to a particular protocol interfaced by gateway 120, such as a proprietary data link view, an Ethernet data link (i.e., Web) view, a J1939 view; and a RS-422 view. The translation table may include any number of views corresponding to data links interfaced by gateway 120. Each “view” may enable its associated data link to interpret parameter data stored in a universal storage location. This location represents a memory location or locations that store one or more values corresponding to a particular parameter (i.e., parameter data). Parameter data may be received from one or more data links interfaced by gateway 120.
Moreover, each data link view may include a scale factor corresponding to translation logic used by gateway 120 to translate parameter data stored in the universal storage to an appropriate format for the particular data link protocol. In certain embodiments, all views represented by a translation table may support a given parameter. For example, an RPM parameter may exist in all of the protocols mapped by the translation table. In some cases, however, certain parameters may be supported by less than all of the views mapped by the translation table. For example, a temperature parameter may be supported by CDL, Ethernet, and J1939 but not by RS-422. The scale factor for such non-supporting views may be null or set to zero.
In addition, each view in the translation table may include a specific read/write privilege to the universal storage location. That is, certain data links may be assigned write privileges to this location, while other data links have only read access.
Consistent with embodiments of the present invention, the translation table may be pre-configured with a plurality of parameter identifiers and scale factors corresponding to a plurality of data links interfaced by gateway 120. In operation, gateway 120 may receive a message, including a PID and corresponding parameter data, from a particular data link. In response to such a message, gateway 120 may extract the PID and store the parameter data in the universal storage location. In addition, gateway 120 may use the PID to scale the parameter data according to the scale factors included in the translation table, thereby creating multiple “views” of the parameter data. In one example, gateway 120 may receive a request for parameter data from a particular data link. The request may include a PID corresponding to the requested data. In response to such a request, gateway 120 may extract the PID from the request and scale the requested parameter data (previously stored in the universal storage location) using a scale factor corresponding to the extracted PID and requesting data link protocol.
Firewall Server Applications
In another embodiment, gateway 120 may include a security application that operates as a firewall for controlling access to information and resources located in work machine 105. For example, by executing the security application, gateway 120 allows authorized off-board systems to collect information, modify parameters, and control a work machine through gateway 120, while unauthorized systems are prevented from doing the same. This feature allows gateway 120 to protect proprietary data associated with work machine 105 that should be shielded from unauthorized systems and/or users, while allowing authorized systems, processes, and/or users access to the same data.
The proprietary data protected by the gateway firewall may include, for example, the PID information specific to the operational parameters of work machine 105, such as engine speed, injection rates, component and/or area temperatures, pressures, etc. Based on the relationship between the proprietary data and work machine 105, gateway 120 may be configured to protect this information using the PID information itself as a security mechanism. For example, gateway 120 may perform a firewall application process consistent with certain embodiments related to the present invention.
For instance, an off-board system (e.g., off-board system 130, 140, 150) may generate a request directed to work machine 105. The request may be any type of request capable of being processed by gateway 120 and/or any on-board modules included in on-board system 110. In one embodiment, the request may be a server request, a Web server request, or a request for modifying an operating characteristic of work machine 105. The latter request may be a feature that is useful in remote control operations of work machine 105. For example, off-board computing system 140 may generate a request message including a command for changing a parameter data value for a particular parameter. In this case, the command may include a PID that identifies the particular parameter targeted for adjustment and a corresponding adjustment value. The command may include a request directing work machine 105 to increase its engine speed from 100 RPMs to 200 RPMs.
The off-board system may then send the request to gateway 120 over an appropriate off-board data link where it is received through a corresponding off-board data link port 225-1 to 225-Y. In response to the request, gateway 120, either through a communication application or other form of logic, software, hardware, etc., invokes the firewall application.
Based on the configuration of the firewall application, a first level of security is checked. In one embodiment, the first level of security may include checking the profile of the source of the request, which in the above example is off-board system 140. A profile is a map of access permissions for different types of users and/or systems providing requests to gateway 120. For example, various levels of access may be defined for different types of users operating off-board system 140. The profiles may be associated with different types of users, such as a customer, super customer, dealer, engineering, technician, and administrative. A customer profile may be associated with an access level provided to customers of a manufacturer of work machine 105. Users with a customer profile may have limited access to certain information maintained in work machine 105, such as read-only access to PID information. A super customer profile may be associated with customers with a higher level of access to a larger set of work machine information and/or control, such as adjusting parameter data values. A dealer profile may be associated with users that have limited access to work machine statistic information, such as position, hours operated, etc. An engineering profile is associated with users with another level of access to additional work machine information that allow the user to adjust the design of new versions of work machines based on the operating characteristics of work machine 105. A technician profile may be associated with users that have access to many or all of work machine 105's operational data, such as gauge data values, temperature, load information, etc. And, the administrative profile may be associated with a user having the highest level of access to work machine information, such as the ability to redefine, delete, and add PIDs. It will be appreciated that the afore-mentioned profiles are exemplary and that any number of different profiles may be supported by gateway 120.
The firewall application may also determine whether the source device (e.g., off-board system 140) and/or the user operating the device is authorized to communicate to gateway 120. If the request is not authorized, the firewall application may deny access to the requested information and/or service provided by gateway 120, and the application may provide a response message indicating the failure of the request and the security process may terminate.
On the other hand, if the source device and/or user is authorized to communicate with gateway 120, the firewall application may determine whether the request is a PID request, such as an instruction to adjust, add, delete, etc. a PID or parameter data value. If the request is not a request is not a PID request, the firewall application may then determine the type of request provided by the source device/user, described further below.
If, however, the request is a PID request, the firewall application may determine whether the request includes an authorized PID. In one embodiment, the firewall application may access a translation table to determine whether the PID included in the request matches any of the PIDs included in the translation table. If so, the request is authorized. If not, the request is not authorized and the request is denied.
If the PID is an authorized identifier (i.e., included in translation table), the firewall application may then determine the type of request provided by the source device/user. Based on the type of request, the firewall application process may forward the request to the appropriate application (e.g., server application, Web server application, communication application, etc.) for processing in accordance with any of the processes described above. In one embodiment, the type of request may include a command to modify a parameter identifier data value in the translation table. Further, the request may include a command to add or delete a parameter identifier in the translation table. Moreover, the request may include a command to access information stored in an on-board module located on one or more on-board data links (e.g., data links 128, 129).
It will be appreciated that the request may include commands or instructions for a number of different tasks, including, but not limited to, downloading information from work machine 105, pushing information to work machine 105, modifying information in work machine 105, controlling components or on-board modules of work machine 105, etc.
By executing a firewall application in a manner consistent with the embodiments described above, gateway 120 may protect proprietary information from unauthorized access and manipulation. In another embodiment, gateway 120 may store a data structure (e.g., separate table) that includes a list of authorized PIDs that may be accessed and/or controlled by authorized off-board systems or users.
In another embodiment of the present invention, if a request is bundled with multiple commands, (e.g., 5 commands with 5 PIDs), gateway 120 may determine whether any or all of the PIDs in the request have corresponding identifiers in a translation table. As a result, gateway 120 may allow a subset of the 5 commands (e.g., 3 out of the 5 command) to be processed based on the number of valid PIDs in the bundled message.
Ad-Hoc Networking with Gateway Embedded Work Machines
As an embedded communications server, gateway 415 may receive and service requests from any of the off-board elements shown in
In accordance with embodiments of the present invention, one or more work machines 510-550 travel during their operations. As the machines travel, they may establish one or more sub-ad-hoc networks with other work machines based on their location and communication capabilities. Collectively, these sub-networks may form an ad-hoc network that allows work machines to communicate packets through intermediate nodes. For example, environment 500 may be an ad-hoc network that includes two sub-ad-hoc networks 501 and 502 that are temporarily established based on the locations of work machines 510-550. Network 501 includes work machines 510-530 and network 502 includes work machines 530-550.
In one embodiment of the invention, each gateway 515-555 may include a network table that includes routing information associated with other work machines when an ad-hoc network is established. The network table may updated periodically based on information associated with changes in the ad hoc network topology. For example, as work machine 510 moves into a location that is within communication range of work machine 520, gateway 515 may collect information from gateway 525 to form a the network table. The network table formed by gateway 515 may include information associated with work machine 520, such as the machine's ID information and any adjacent nodes (e.g., work machines) that are within the communication range of work machine 520. Therefore, work machine 510 now may collect information that allows gateway 515 to perform various intelligent routing and communication operations consistent with embodiments of the present invention.
Although methods and systems consistent with embodiments of the present invention allow work machines to maintain current location information for any work machines within its communication range, the gateway embedded work machines may also establish an ad-hoc network with a fixed node, such as a central site office.
Further, work machines 710-730 each include an antenna 717, 727, and 737, respectively, for sending and receiving packets of information from remote nodes (e.g., other work machines, fixed node 750, etc.). Antennae 717-737 may interface with gateways 715-735, respectively, to provide respective off-board data links consistent with embodiments of the present invention. For example, work machine 710 may communicate with work machines 720 and 730 over wireless data links 721 and 732, respectively. Also, work machine 710 may communicate with fixed node 750 over wireless data link 711. Work machine 720 may communicate with work machines 710 and 730 over wireless data links 721 and 731, respectively. Work machine 730 may communicate with work machines 710 and 730 over wireless data links 732 and 731, respectively.
Network 702 may be established based on the movement of work machines 710-730. That is, machines 710-730 are in communication range of one another, thus forming network 702. Network 701 may be established when work machine 710 moves into communication range of fixed node 750.
Gateways 715-735 may each discover and/or modify their respective network tables with identification information associated with other nodes (e.g., work machines, fixed nodes, etc.).
Accordingly, a work machine operating in environment 700 may dynamically enter or leave an ad-hoc network based on the machine's current position. Moreover, because work machine 710 may communicate with central office 750, the machine may operate as a temporary access point between work machines 720, 730 and fixed node 750.
As explained, methods and systems consistent with embodiments of the present invention enable work machines to establish temporary ad-hoc networks while traveling within or between work environments. The manner by which these machines maintain and operate such networks may be associated with the upkeep of their respective network table(s).
As work machine 510 travels, gateway 515 may be configured to execute a communications application that generates a network admission packet message (Step 910) periodically or at other points in time. This packet may include a request for information from any nodes in the broadcast communications range of antenna 517. Further, the admission packet may include identifier information associated with work machine 510 and any information collected from the machine's network table (e.g., node identifier and adjacent node identifier information). Once generated, work machine 510 may broadcast the admission packet using any data links available to machine 510 in its current location (Step 920). For example, work machine 510 may broadcast the admission packet over a radio data link that may include data links 532 and 521.
Following the transmission of the admission packet, the communications application executed by gateway 515 may monitor any incoming response message packets (Step 930). If there is no response within a certain period of time (Step 930, NO), the communications application may determine whether there are any entries in work machine 510's network table (Step 934). If not (step 934, NO), the communications application may determine whether work machine 510 has moved locations (Step 950). In one embodiment, gateway 515 may retrieve and store GPS location information from a satellite GPS data link. The communications application may check the current GPS location information with the stored value to determine whether work machine 510 has moved beyond a certain distance. If machine 510 has moved beyond that distance (Step 950, YES), the network admission process may continue at Step 910. On the other hand, if machine 510 has not moved beyond the predetermined distance (Step 950, NO), gateway 515 may re-broadcast its admission packet (Step 920).
On the other hand, if the communications application determines that there are entries in the network table (Step 934, YES), gateway 515 may remove any appropriate node identifier entries from the table to reflect that work machine 515 is no longer in communication with any such nodes (e.g., work machines, fixed nodes, etc.) and thus, not part of any ad-hoc work machine network (Step 936). The network admissions process may then continue to Step 950, as explained above.
Referring back to Step 930, if gateway 515 has received a response to its admission packet request (Step 930, YES), gateway 515 may update its network table based on the information received from a responding node (Step 940). This process may include extracting node identifier and adjacent node identifier information from the response and adding this information to work machine 510's network table (e.g., table 605 in
Following, or concurrently with, updating the network table, gateway 515 may determine whether work machine 510 has moved locations (Step 950), and if so, generates another admission packet (Step 910). If machine 510 has not moved locations (Step 950, NO), gateway 515 may re-broadcast its admission packet (Step 920). In another embodiment, instead of determining that work machine 510 has moved locations, gateway 515 may periodically generate admission packets regardless of the machine's location.
In addition to performing processes that request entry into an ad-hoc work machine network, each work machine's gateway may perform communications process that services received message packet from other nodes.
During operations, gateway 535 may execute a communications application that detects when a message packet is received from another node (Step 1010). This application may be the same or different from the communications application that performs the network admissions process described above with reference to
Returning to Step 1020, if the received packet is not an admission packet (Step 1020, NO), gateway 535 may determine whether the received packet was destined for machine 530 (Step 1040). In one embodiment, gateway 535 may analyze a destination node ID included in the received packet to determine the node that is to process the packet. If the node is to process the packet (Step 1040, YES), gateway 535 processes the packet and its information in a manner consistent with embodiments of the present invention (e.g., translate and send a message to an on-board module, execute another application on gateway 535, etc.) (Step 1045). On the other hand, if the packet is not destined for work machine 530 (Step 1040, NO), gateway 535 may access its network table to determine whether the destination node identified in the received packet is included in the node identifier or adjacent node identifier column of the table (Step 1050). Gateway 535 may search the network table to determine whether the destination node is directly accessible by work machine 530 (i.e., node within range) (Step 1060). If the destination node is within communication range of work machine 530 (Step 1060, YES), gateway 535 may forward the received packet to the proper destination node for subsequent processing (Step 1070).
On the other hand, if the destination node is out of communication range of work machine 530 (Step 1060, NO), gateway 535 may determine which work machine that is in communication range of machine 530 may communicate with the destination node (Step 1080). Gateway 535 then forwards the packet to the determined intermediate node for subsequent packet routing (Step 1090).
To explain the communication process described in connection with
In one embodiment of the invention, if gateway 555 determines that there are two or more work machines that may act as an intermediate node, gateway 555 may execute an arbitration process to determine the node that is best suited for receiving the packet. For example, gateway 555 may determine the best suited intermediate node based on data link availability, quality of service, bandwidth, amount of data to be transmitted, priority of message, positions of the candidate intermediate nodes, velocity and direction of work machine 530 or any of the candidate intermediate nodes, such as work machine 540, and any other type of characteristic that may allow gateway 555 to determine which intermediate node is best suited to pass the packet to the destination node.
Ad-hoc network environment 500 described in connection with
Environment 1100 includes work machines 1110-1160. Each machine includes an antenna 1117-1167 and a gateway 1115-1165, respectively. Gateways 1115-1165 may be configured, and operate, similar to gateways 515-555 described above in connection with
To handle communications within multi-level ad-hoc network environment 1100, gateways 1115-1165 may be configured to generate and maintain multiple levels of network tables that include identifiers associated with all nodes included in network environment 1100.
Second level network table may be updated by gateway 1155 when a remote work machine responds to an admission packet. In this instance, the remote work machine may provide node identifier information for first and second level nodes in a manner consistent with the admission packet process described above in connection with
To better describe the use of multi-layer network tables,
Initially, whether work machine 1150 receives or generates a message packet, gateway 1155 may access its first level network table (e.g., table 1210) to determine whether the destination node ID (e.g., work machine 1160) is located therein (Step 1310). If the destination node is listed in first level table 1220 (Step 1320, YES), gateway 1155 may forward the packet to the appropriate work machine in a manner consistent with the process described in connection with
However, if the destination node is listed in the second level table 1220 (Step 1340, YES), gateway 1155 may trace the destination node to the appropriate intermediate first level adjacent node (Step 1350). For example, referring to
Therefore, using the first and/or second level network tables, work machines 1110-1160 may identify the appropriate intermediate work machines that are in communication with either other intermediate work machines or the destination node, to properly and efficiently forward message packets to the destination node. In the above example, the routing path would start at work machine 1150 and follow the path including work machines 1130, 1120, and 1160.
Remote Operation of Work Machines
In addition to dynamically forming ad-hoc networks to intelligently route message packets between work machines moving within and/or between work environments, methods and systems consistent with embodiments of the present invention also allow for remote operation of work machines using the gateways embedded in these machines.
Environment 1400 may include, for example, one or more work machines 1410, 1420, and 1430 of similar or different types. For instance, work machine 1410 may be a work machine of a first type (e.g., dump truck), work machine 1420 may be a work machine of a second type that may be the same or different than the first type, and work machine 1430 may be a work machine of a third type that is different from the first and/or second type (e.g., bulldozer). Each of work machines may include one or more antennae 1417, 1427, and 1437, respectively, that allow for wireless communications between work machines 1110-1130 and other off-board systems. Further, work machines 1410-1430 may also include a gateway 1415-1435, respectively, that are each configured, and operate, similar to gateways 515-555 or 1115-1165.
Environment 1400 may also include an off-board system 1440 that may be a computer system connected to an antenna (not shown) capable of sending and receiving message packets to and from work machines 1410-1430. System 1440 may be a computer system operated by a user 1450 that provides one or more commands that are destined for one or more of work machines 1410-1430. Computer system 1440 may be a portable computer system, such as a lap top, personal digital assistant, web-enabled cell-phone, etc. that includes, or is connected to, components that facilitate the wireless communications described above. Alternatively, system 1440 may be a desktop computer system that is located in a work environment site office positioned within one of the work environments that work machines 1410-1430 may travel within or between. Also, system 1440 may be a computer system located in a central office site positioned remote from any of the work environments work machines 1410-1430 may operate within, such as an office located many miles away. In this situation, computer system 1440 may use Ethernet data links to communicate with work machines 1410-1430 via a wireless transmission access point located in one of the work environments the machines operate within. In one embodiment, system 1440 may be mounted on one of the work machines in the ad hoc work machine network.
Computer system 1440 may be configured to determine whether the command is targeted for a single work machine (Step 1520). If so (Step 1520, YES), system 1440 may add the command in a command packet and send the packet to the appropriate work machine (Step 1530) using the wireless data link communicating with that machine. For example, work machine 1410 may receive the command message from system 1440 over a radio data link and translate the received message in accordance with the translating features associated with certain embodiments of the present invention. Once translated, gateway 1415 may provide the command to the appropriate on-board module connected to an on-board data link (e.g., data links 128, 129). The destination on-board module may perform an operation in accordance with the command and perhaps provide feedback information to gateway 1415 for delivery to system 1440.
Referring back to Step 1520, if computer system 1520 determines that the command is directed to more than one work machine (Step 1520, NO), system 1440 may include the command in a command packet and broadcasts the packet to the appropriate work machines, which may be all machines 1410-1430 or any combination thereof (Step 1540). The command message is received at the work machines (Step 1550) where the machine's gateways (i.e., gateways 1415-1435) may translate the command packet to the appropriate format for transfer to a target on-board module or process (Step 1560). Once each work machine translates (if required) the command message, the machine may perform its respective operation based on the instructions included in the command (Step 1570).
Accordingly, a user may control one or more work machines using a single command or multiple commands transmitted from a single location (e.g., computer system 1440). Because the gateways embedded within each machine 1410-1430 are configured in a manner consistent with embodiments of the present invention, the command may be sent in a format that is different from that compatible with on-board modules operating within each work machine. The embedded gateways may translate the command message to ensure the instructions included within the command message are in the proper format for subsequent processing.
Industrial Applicability
Methods and systems consistent with embodiments of the present invention allow work machines to dynamically establish one or more ad-hoc work machine networks as the machines travel within or between work environments. Such systems and methods facilitate the transmission and routing of message packets between moving work machines without the need for any fixed access point facilities. In some embodiments, a moving working machine may act as a temporary access point that delivers message packets to a fixed node within a particular network.
The embodiments of the present invention may be applied to various applications to allow work machines to share information without the constraint of fixed network boundaries. For example, work machines in a mining work environment may receive and share status information regarding the overall performance of the environment, the performance of individual machines within the environment. Also, a central site office may issue a software update message to update the software of an on-board module of particular types of work machines operating within a work environment. In such an example, the central office may send the update information in a packet that is received by one or more work machines that are in communication range of the office. The work machines may process the information (i.e., update its software if the machine matches the type of machine identified in the message) and forward the packet to other work machines that are included in an ad-hoc network containing the machine that initially received the update message. Other types of messages, data, and information may be relayed between work machines as well.
In another embodiment, the remote operation process may be performed in conjunction with the ad-hoc communications processes described above. That is, any work machine in ad-hoc network environment 500 or 1100 may receive an off-board command message from computer system 1440, and forward the command to the appropriate machine using the intelligent ad-hoc routing processes described in connection with
Further, in another embodiment, during the remote operation process described in connection with
Also, in other embodiment, gateways 515-555 or 1115-1165 may also perform the firewall application processes described above to ensure any message packets that are received from a source node (e.g., a work machine or fixed node) are authorized to communicate and/or send packets in any of the established ad-hoc networks. This may be applicable in situations where a work environment includes multiple types of work machines operating within communication range of each other and the machines are transmitting wireless messages within the environment. In some instances, only a portion of the machines operating in the environment may be associated with each other (e.g., built by the same manufacturer, are a similar or same type of work machine, have the same authorization levels, etc.). Accordingly, by exploiting the firewall application processes executed by the gateways in a manner consistent with embodiments of the present invention, a work environment may enable limited numbers of work machines to establish ad-hoc networks while preventing third party machines from intercepting and/or inadvertently processing message packets transmitted between the ad-hoc work machines.
In yet another embodiment, a user may remotely control a work machine to perform one type of operation, while simultaneously monitoring or instructing another machine (of the same or different type) to perform a different operation. In this embodiment, the user (or computer system 1440) may batch commands with associated destination node identifiers in a single command message. Computer system 1440 may broadcast the message to multiple work machines that determine from the corresponding destination identifiers whether a certain command included in the batch commands is destined for a specific machine. Further, in an ad-hoc network environment, a intermediate work machine may extract a command from a batch command message destined for that machine, while forwarding the command message to other work machines within communication range of its antenna.
In another embodiment, each work machine included in an ad-hoc network environment may include communications applications executed by a gateway that dynamically determine a type of data link to use for forwarding or sending a message packet. For example, each work machine may include multiple wireless antennae that communicates with off-board systems using different types of data links (e.g., IEEE 802.11 standard data link, wireless cellular network, etc.) During operations, the work machine may select which data link to use for transmitting a message packet based on one or more characteristics. These characteristics may be associated with the availability of the data links, the cost of communicating over one data link compared to another, the quality of service associated with the data links, the priority of the message packet (e.g., an alarm message versus a status request), transmission time associated with the data links, and any other type of characteristic associated with the data links and/or the type of message packet being sent by the work machine. Accordingly, a gateway operating within each work machine may dynamically format a message packet being sent to a destination node based on the above described conditions and the type of data link selected.
Further, each node (e.g., work machine) may pass positional information to neighboring nodes in an ad-hoc work machine network. Using the positional information, each work machine's gateway may determine or assist in determining one or more routing paths to follow in the network based on ranges between machines.
The ad hoc protocol described herein may be considered proactive (i.e. each work machine maintains respective network tables). In another embodiment, methods and systems consistent with the present invention may implement reactive protocols (e.g., DSR, AODV, etc. ) that allow each node to discover routes within the work machine network as the are needed. For example, instead of passing admission packets between each other, work machines 1110-11160 in
The above exemplary reactive protocol may also be applied in multiple level ad-hoc networks where a destination machine is many nodes removed from a source work machine. In such a case, adjacent nodes receiving an information request from a source node may pass the request to adjacent nodes to help identify a node that is adjacent to the destination work machine. Once one or more such nodes are identified, this information may be passed back to the source machine for determining the appropriate routing path for sending the message packet.
The embodiments, features, aspects and principles of the present invention may be implemented in various environments and are not limited to work site environments. For example, a work machine with an embedded gateway may perform the functions described herein in other environments, such as mobile environments between job sites, geographical locations and settings. Further, the processes disclosed herein are not inherently related to any particular system, and may be implemented by a suitable combination of electrical-based components. For example, the wireless communications between work machines may be accomplished by other technologies different from radio transmission and reception using antennae, such as by transmissions and receiving devices for communication by light pulses. Other embodiments of the invention will be apparent to those skilled in the art from consideration of the specification and practice of the invention disclosed herein. It is intended that the specification and examples be considered as exemplary only, with a true scope of the invention being indicated by the following claims.
This application claims the benefit of U.S. Provisional Application Ser. No. 60/483,915 entitled “SYSTEMS AND METHODS FOR INTERFACING OFF-BOARD AND ON-BOARD NETWORKS IN A WORK MACHINE,” filed Jul. 2, 2003, owned by the assignee of this application and expressly incorporated herein by reference in its entirety. This application is related to U.S. application Ser. No. ______, entitled “SYSTEMS AND METHODS FOR PROVIDING SERVER OPERATIONS IN A WORK MACHINE,” filed Aug. 25, 2003, U.S. application Ser. No. ______, entitled “SYSTEMS AND METHODS FOR PERFORMING PROTOCOL CONVERSIONS IN A WORK MACHINE,” filed Aug. 25, 2003, U.S. application Ser. No. ______, entitled “SYSTEMS AND METHODS FOR PROVIDING SECURITY OPERATIONS IN A WORK MACHINE,” filed Aug. 25, 2003, and U.S. application Ser. No. ______, entitled “METHODS AND SYSTEMS FOR PROVIDING PROXY CONTROL FUNCTIONS IN A WORK MACHINE,” filed Aug. 25, 2003, each owned by the assignee of this application and expressly incorporated herein by reference in its entirety.
Number | Date | Country | |
---|---|---|---|
60483915 | Jul 2003 | US |