Aspects of the invention generally relate to methods and systems for setting or determining Internet Protocol (IP) parameter information for a device.
Different devices on a network are assigned a unique Internet Protocol (IP) address so that they can be properly identified. When a device is first connected to a network, the device may obtain its IP address in a variety of ways. For instance, the device may include switches located on the device that instruct the device how to initially obtain its IP address. In one example, a network server may be used to serve an IP address to the device. Different servers may be needed for devices that use different types of networking protocols (e.g., Bootstrap Protocol (BOOTP), Dynamic Host Configuration Protocol (DHCP), etc.). These protocols may be described in various requests for comments (RFCs) published by the Internet Engineering Task Force (IETF) (e.g., RFC 826, 951, 1531, 1532, 1541, 1542, 2131, 5227, etc.).
Thus, multiple servers may be needed to serve IP addresses to all the devices within a given network. Once a device has obtained its IP address, the network configuration of the device may be modified by accessing the device through the assigned IP address, such as via a webpage.
In addition, devices that have already been allocated IP addresses during a previous session may exist in a system or network. However, these IP addresses may not be known when the devices are ready for use. Thus, for these devices, an IP address initialization procedure, such as the one described above, must be repeated.
Thus, configuring a new IP address or determining a pre-allocated IP address for a device can be a time-consuming and inefficient process that involves multiple network elements. These problems are only exacerbated when dealing with embedded devices (such as those that typically exist in automation control systems) that generally do not have user interfaces, such as monitors or keypads, for easy access to the device. Therefore, there is a need for new strategies for configuring/managing device IP parameter information.
In light of the foregoing background, the following presents a simplified summary of the present disclosure in order to provide a basic understanding of some aspects of the invention. This summary is not an extensive overview of the invention. It is not intended to identify key or critical elements of the invention or to delineate the scope of the invention. The following summary merely presents some concepts of the invention in a simplified form as a prelude to the more detailed description provided below.
Aspects of the disclosure address one or more of the issues mentioned above by disclosing methods, non-transitory computer readable media, and apparatuses for configuring and/or determining IP parameter information within a device prior to connecting the device to a network. An enhanced Internet Protocol (IP) parameter device may be used to set IP parameters within a device and/or determine the IP parameters that have already been set on the device.
Other aspects of the disclosure relate to an enhanced IP parameter device that may use various protocols, such as Bootstrap Protocol (BOOTP) and Dynamic Host Configuration Protocol (DHCP), to set and/or obtain a device's IP parameters. In yet other aspects, the enhanced IP parameter device may determine static IP parameters that have been stored in the device.
Aspects of the disclosure may be provided in a computer-readable medium having computer-executable instructions that, when executed, cause a computer or other apparatus to perform one or more of the process steps described herein.
The example embodiments are illustrated by way of example in the accompanying figures in which:
As described above, configuring and/or managing Internet Protocol (IP) parameter information within devices can be a time-consuming and/or inefficient process. Therefore, the example embodiments of this disclosure provide novel methodologies to configure or determine the IP address of a device prior to connecting the device to a network, regardless of the communication protocols used by the device.
The disclosure is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the disclosed embodiments include, but are not limited to, personal computers (PCs), server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
With reference to
Computing device 101 typically includes a variety of computer readable media. Computer readable media may be any available media that may be accessed by computing device 101 and include both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer-readable media may comprise a combination of computer storage media and communication media.
Computer storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. Computer storage media include, but is not limited to, random access memory (RAM), read only memory (ROM), electronically erasable programmable read only memory (EEPROM), flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium that can be used to store the desired information and that can be accessed by computing device 101.
Communication media typically embodies computer readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. Modulated data signal includes a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a direct-wired connection (e.g., Ethernet, etc.), and wireless media such as acoustic, RF, infrared and other wireless media.
Although not shown, RAM 105 may include one or more applications representing the application data stored in RAM 105 while the computing device 101 is on and corresponding software applications (e.g., software tasks) are running on the computing device 101.
Communications module 109 may include a microphone, keypad, touch screen, and/or stylus through which a user of computing device 101 may provide input, and may also include one or more of a speaker for providing audio output and a video display device for providing textual, audiovisual and/or graphical output. Module 109 may also support a direct-wired and/or wireless connection for communicating with another device.
Software may be stored within memory 115 and/or storage to provide instructions to processor 103 for enabling computing device 101 to perform various functions. For example, memory 115 may store software used by the computing device 101, such as an operating system 117, application programs 119, and an associated database 121. Also, some or all of the computer executable instructions for computing device 101 may be embodied in hardware or firmware.
Computing device 101 may support a point-to-point connection to a computing device 151 (e.g., an I/O device within an automation control network, a programmable logic controller (PLC), etc.). The computing device 151 may be a computing device that includes many or all of the elements described above relative to the computing device 101.
Additionally, one or more application programs 119 used by the computing device 101, according to an illustrative embodiment, may include computer executable instructions for invoking user functionality related to communication including voice input and speech recognition applications (e.g., for transmitting/receiving IP parameter information, etc.). In addition, the application programs 119 may include computer executable instructions for invoking functionality related to handling multiple communication protocols for configuring IP parameters in an embedded device prior to connecting the device to a network.
Embodiments of the disclosure may include forms of computer-readable media. Computer-readable media include any available media that can be accessed by computing device 101. Computer-readable media may comprise storage media and communication media and in some examples may be non-transitory. Storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, object code, data structures, program modules, or other data. Communication media include any information delivery media and typically embody data in a modulated data signal such as a carrier wave or other transport mechanism.
Although not required, various aspects described herein may be embodied as a method, a data processing system, or as a computer-readable medium storing computer-executable instructions. For example, a computer-readable medium storing instructions to cause a processor to perform steps of a method in accordance with aspects of the disclosed embodiments is contemplated. For example, aspects of the method steps disclosed herein may be executed on a processor 103 on enhanced IP parameter device 101. Such a processor may execute computer-executable instructions stored on a computer-readable medium.
The steps that follow in the Figures may be implemented by one or more of the components in
In accordance with various aspects of the disclosure, methods, computer-readable media, and apparatuses are disclosed for configuring and/or determining IP parameter information associated with a device.
To implement this solution, an enhanced IP parameter device 101 may be configured to run computer-executable program instructions related to each step of an IP parameter configuration and management process. Device 101 may interface with different types of devices (e.g., devices 151), including embedded devices with no user interface, such as those typically found in automation control systems. In addition, IP parameter device 101 may use a variety of communication protocols and procedures for determining and/or configuring IP parameter information within a device prior to connecting the device to a network. For example, enhanced IP parameter device 101 may support BOOTP and/or DHCP, among other types of communication protocols. In addition, device 101 may retrieve static IP parameters stored within another device (e.g., using protocols such as PING, Reverse Address Resolution Protocol (RARP), and/or Inverse Address Resolution Protocol (IARP)).
In one embodiment, the enhanced IP parameter device 101 may be a handheld instrument that may be easily moved from one location to another. In other embodiments, device 101 may be a laptop and/or a desktop that runs computer-executable program instructions for IP parameter configuration and management.
Once enhanced IP parameter device 101 has been connected to another device 151, enhanced IP parameter device 101 may be used to determine or configure IP parameters of device 151. In some aspects, device 151 may be an industrial device that supports the EtherNet Industrial Protocol (EtherNet/IP) or Modbus® protocol. Device 101 may retrieve the IP parameters (e.g., IP address, subnet mask, default gateway, device or domain name server (DNS) name, method of IP acquisition, etc.) of device 151 and display this information. Examples of various methods of IP acquisition include BOOTP, DHCP, PING, IARP, RARP, and Modbus requests, among other methods. In this regard, device 101 may include both a BOOTP and DHCP server.
After device 101 retrieves the necessary IP parameters of device 151, new parameter values may be set. Once the new values have been stored in a memory (e.g., flash, etc.) of the device 151, device 151 may be placed into operation.
Enhanced IP parameter device 101 may communicate with a device 151 regardless of whether device 151 is a “factory-fresh” device or a device that is already “on the shelf.” In the case that device 151 is a “factory-fresh” device, device 101 may be used to configure the IP parameters of device 151 before placing the device 151 into service.
When device 151 already exists within a system/network (e.g., on the shelf), the IP parameters of device 151 may have been forgotten or misplaced. Enhanced IP parameter device 101 may be used to determine the IP parameters of device 151. Once the IP parameters of device 151 are known, device 101 may be used to reconfigure the IP parameters to match any new intended installation requirements of device 151. Once the IP parameters of device 151 have been properly configured by enhanced IP parameter device 101, additional parameters of device 151 may be configured using other tools specific for that device (e.g., via a webpage).
To serve IP parameters to devices 151, enhanced IP parameter device 101 may store a default set of parameters, such as its IP address, subnet mask, default gateway, DHCP and BOOTP served address ranges and link parameters (e.g., link speed (auto, 10 MB, 100 MB, 1000 MB, etc.), duplex mode (auto, full, half), etc.). These parameters may be altered by a user and saved in a memory (e.g., nonvolatile, etc.) of device 101.
In operation, device 101 may detect/configure IP parameters associated with a device 151 in one of several ways, according to various aspects of the disclosure. If device 151 uses DHCP, enhanced IP parameter device 101 may detect a DHCP request from device 151. After receiving a DHCP request from device 151, device 101 may complete a DHCP handshaking procedure to provide IP parameters to device 151. Any DHCP options that device 151 transmits to enhanced IP parameter device 101 in the DHCP request may be displayed to a user on the display screen 205 of enhanced IP parameter device 101. In addition, the IP parameters that may be served to device 151 may be displayed on screen 205. The display of these IP parameters may help a user connect to device 151 with other hardware/software tools (e.g., web browsers, etc.) at a later time.
If device 151 uses BOOTP, enhanced IP parameter device 101 may detect a BOOTP request from device 151. After receiving a BOOTP request from device 151, device 101 may complete a BOOTP handshaking procedure to provide IP parameters to device 151. Because enhanced IP parameter device 101 may be used for configuring device 151, the BOOTP address assigned to device 151 may not be based on an address translation table; rather, the IP address assigned to device 151 may be randomly assigned from a pool of addresses (e.g., an address within a certain range to be able to communicate with device 151). As with the DHCP procedure discussed above, the served IP parameters may be displayed on screen 205 of enhanced IP parameter device 101 so that a user may use this information to connect to device 151 with other hardware/software tools.
If device 151 includes static IP parameters stored in memory, device 151 may transmit a message to check for duplicate IP addresses (e.g., a gratuitous Address Resolution Protocol (ARP) message, etc.). Enhanced IP parameter device 101 may detect this message to determine the IP address of device 151. Device 101 may then use the detected IP address to communicate with device 151. As part of this process, enhanced IP parameter device 101 may need to change its own IP address so that its IP address is within the same subnet as device 151.
If device 151 does not transmit a message to check for duplicate IP addresses and does not transmit a request for a network address, enhanced IP parameter device 101 may search for device 151 over a range of IP addresses using various types of protocols, including PING, EtherNet/IP, Modbus, etc. If known, device 101 may also use the media access control (MAC) address of device 151. In this scenario, enhanced IP parameter device 101 may use protocols such as the Reverse Address Resolution Protocol (RARP) or Inverse Address Resolution Protocol (IARP) to obtain the IP address of device 151 from the MAC address. Once device 101 determines the IP address of device 151, device 101 may obtain the remaining IP parameters from device 151 (e.g., via a Transmission Control Protocol (TCP) object in EtherNet/IP, Modbus requests, etc.) Once enhanced IP parameter device 101 has determined the IP parameters associated with device 151, these parameters may be made available to a user (such as via display 205, etc.) so that the user may use these parameters to connect device 151 with other software/hardware tools and/or web browsers.
Once device 151 has a known IP address, enhanced IP parameter device 101 and/or existing hardware/software tools may be used to further configure device 151. For instance, if the device 151 is a programmable logic controller (PLC), a personal computer may be used to transmit a PLC program to device 151 using the known IP address. In other embodiments, device 151 may be any number of other devices, including an input/output (I/O) device and a drive for a motor, among other things.
If enhanced IP parameter device 101 is used to further configure device 151, keypad 207 may be used to program new IP parameters into device 151. For instance, a user may use a “set” operation for a TCP/IP object in EtherNet/IP or a Modbus “write” operation to configure IP parameters of device 151.
If the device 151 is outputting a request for a network address, the process may move to step 305 where a DHCP or BOOTP handshaking procedure may be completed between the device 151 and the enhanced IP parameter device 101 based on the type of request that the device 151 outputs. As part of the DHCP or BOOTP handshaking procedure, enhanced IP parameter device 101 may transmit IP parameters to the device 151.
If the device 151 is not outputting a request for a network address in step 303, the process may move to step 307 where the enhanced IP parameter device 101 may decide if the device 151 is outputting an ARP message. If the device 151 is outputting an ARP message, enhanced IP parameter device 101 may determine the IP address of the device 151 by reading the ARP message in step 309. If the device 151 is not outputting an ARP message, enhanced IP parameter device 101 may determine the IP address of the device 151 by searching for the device 151 over a range of IP addresses in step 311. If the MAC address of the device 151 is known, enhanced IP parameter device 101 may also use communication protocols such as the Reverse Address Resolution Protocol (RARP) and/or Inverse Address Resolution Protocol (IARP) to obtain the IP address of device 151 from the MAC address.
After step 309 or step 311, the process may move to step 313 where the enhanced IP parameter device 101 may determine other IP parameters (e.g., subnet mask, default gateway, device or domain name server (DNS) name, method of IP acquisition, etc.) of the device 151 using other techniques (e.g., EtherNet/IP TCP objects, Modbus requests, etc.). Finally, after step 305 or step 313, the process may move to step 315 where the enhanced IP parameter device 101 may display IP parameters of the device 151 on a display (e.g., display 205) associated with device 101 so that a user may connect with device 151 using the displayed IP parameters with other hardware/software tools.
Aspects of the disclosure have been described in terms of illustrative embodiments thereof. Numerous other embodiments, modifications and variations within the scope and spirit of the appended claims will occur to persons of ordinary skill in the art from a review of this disclosure. For example, one of ordinary skill in the art will appreciate that the steps illustrated in the illustrative figures may be performed in other than the recited order, and that one or more steps illustrated may be optional in accordance with aspects of the invention.