Abstract:
An Ethernet interface device, and associated system and method, for reporting the status information data of Ethernet devices through common industrial protocols. The Ethernet interface device provides operational connections between one or more Ethernet devices and one or more independent networks. The Ethernet interface device also monitors an Ethernet connection path, and produces status data indicative of the operational status of the connection path and the devices connected along the path. This status data is received by the Ethernet interface device, where it is manipulated into a format recognizable by common industrial protocols.

Description:
BACKGROUND OF THE INVENTION  
         [0001]    1. Technical Field  
           [0002]    The invention relates generally to a network interface device for Ethernet communications networks, and more particularly to an Ethernet interface device which is able to provide status information related to a connected network and associated devices connected to the network in a format recognizable by common industrial protocols.  
           [0003]    2. Related Art  
           [0004]    Local Ethernet devices are commonly connected to an Ethernet network using a device known as an Ethernet hub or Ethernet switch. Ethernet switches typically make the required connections with no regard to segregation or restriction of network traffic. There are significant limitations to the usefulness of using these types of devices to make connections to independent networks. These limitations include, inter alia, the fact that data containing information related to the operational status of devices connected along the Ethernet network typically cannot be delivered directly to those control devices which can effectively use the information. Rather, the data must be first translated or otherwise manipulated into a common industrial protocol (i.e., a non-Ethernet protocol) which the control device can recognize and utilize.  
           [0005]    Accordingly, there exists a need for a simplified Ethernet interface device, which is capable of solving the above-mentioned limitations related to Ethernet switches for providing status information related to the connected network and associated network devices, where status information is in a format that is recognizable by common industrial protocols.  
         SUMMARY OF THE INVENTION  
         [0006]    It is therefore a feature of the present invention to overcome the above shortcomings related to the transmission of operational status information by providing a method and apparatus for an Ethernet interface device, embodied in an Ethernet switch, which is able to interface Ethernet networks and Ethernet devices with common industrial protocols.  
           [0007]    The invention disclosed herein is an Ethernet switch which is easily configured by a user possessing limited technical knowledge. The simplicity of this invention enhances reliability (through its simplicity), reduces installation time and skill level required, makes it practical to swap these devices when repairs are necessary, and makes it possible to view or control the flow of Ethernet traffic through commercially available industrial controllers and software.  
           [0008]    The invention is built upon the observation that it is desirable for one or more Ethernet devices to communicate to each of two or more independent networks through “uplink” ports, and that status information, related to the connected network and the associated devices connected to the network, would be most useful if the status information could be recognizable by common industrial protocols used in known communications network equipment.  
           [0009]    In a first general aspect, the present invention provides a network switch for use in a communications network, wherein said network switch comprises: at least one network port for communicating information with one or more network devices; at least one device port; at least one Ethernet switch operatively coupled to said network port and to said device port, wherein said Ethernet switch couples said network port to said device port; an apparatus for communication between said Ethernet switch and at least one local Ethernet device via said at least one device port; and a central processing unit, wherein said central processing unit includes: polling apparatus for testing the operational status of communication between said Ethernet switch and said at least one local Ethernet device, wherein said polling apparatus produces a status result determined by the testing; and recording apparatus for recording the status result.  
           [0010]    In a second general aspect, the present invention provides a method of providing status information in a communications network, said method comprising: providing a network switch comprising: at least one network port for communicating information with one or more network devices; at least one device port; providing at least one Ethernet switch operatively coupled to said network port and to said device port, wherein said Ethernet switch couples said network port to said device port; providing an apparatus for communication between said Ethernet switch and at least one local Ethernet device via said at least one device port; and providing a central processing unit, wherein said central processing unit includes: polling apparatus for testing the operational status of communication between said Ethernet switch and said at least one local Ethernet device, wherein said polling apparatus produces a status result determined by the testing; and recording apparatus for recording the status result.  
           [0011]    In a third general aspect, the present invention provides a computer program product, comprising: a computer usable medium having a computer readable program code stored therein for causing an Ethernet communication path failure to be detected, the computer readable program code in said computer program product comprising: computer readable program code means for causing a computer to detect failures in at least one Ethernet communication path; computer readable program code means for causing a computer to effect changes in contents of a register containing status information pertinent to the status of said Ethernet communication path; and computer readable program code means for causing said contents of a register to be readable by a standard industrial protocol, wherein said standard industrial protocol is an industrial protocol.  
           [0012]    The foregoing and other features and advantages of the invention will be apparent from the following more particular description of embodiments of the invention. It is to be understood that both the foregoing general description and the following detailed description are exemplary, but are not restrictive, of the invention.  
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0013]    The features and inventive aspects of the present invention will become more apparent upon reading the following detailed description, claims and drawings, of which the following is a brief description.  
         [0014]    [0014]FIG. 1 is a schematic view of a communication network including an Ethernet device switch in accordance with an embodiment of the present invention.  
         [0015]    [0015]FIG. 2 is a flowchart representing the status reporting method in accordance with an embodiment of the present invention.  
         [0016]    [0016]FIG. 3 is a schematic view of a central processing unit of a network switch in accordance with an embodiment of the present invention.  
         [0017]    [0017]FIG. 4 is a schematic view of a computer system in accordance with an embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION OF THE EMBODIMENTS  
       [0018]    The following is a detailed explanation of a structure and method for an Ethernet switch which is able to interface between a variety of Ethernet devices connected to the Ethernet, and control or supervisory devices which operate with common industrial protocols. The term “protocol” as used herein, is defined as a set of formal rules which describe how to transmit data, especially across a network. It should be noted that the same reference numbers are assigned to components having approximately the same functions and structural features in the following explanation and the attached drawings to preclude the necessity for repeated explanation thereof.  
         [0019]    According to a general illustrative embodiment of the present invention, shown schematically in FIG. 1, the illustrative system  100  described herein includes an Ethernet switch  140  which will function as one element in a larger network (not shown), for example, an Ethernet network. An Ethernet network, as discussed herein, is a local area network wherein data is broken into packets and transmitted within a network which network contains switch apparatus capable of rerouting the transmitted data. Each packet is transmitted, and arrives at its destination without colliding with any other packet. The first contention slot after a transmission is reserved for an acknowledge packet. A node is either transmitting or receiving at any instant. Moreover, the Ethernet networks discussed herein are characterized by certain unique Ethernet characteristics known to those skilled in the art, namely the use of an Ethernet frame structure; an unreliable and connectionless service to a network layer; baseband transmission with Manchester encoding; and use of a Carrier Sense Multiple Access with Collision Detection (CSMA/CD) multiple access algorithm. An Ethernet network will be discussed as relating to the illustrative embodiment for convenience sake, but this discussion is not meant to be limited to Ethernet networks only, nor to any particular type of network.  
         [0020]    The Ethernet switches disclosed and claimed herein are as used in Ethernet systems by persons of ordinary skill in the art. The known Ethernet switches include, inter alia, two characteristics which are particularly relevant. First, MAC-based ports with I/O data frame buffers effectively isolate the port from data traffic being sent at the same time to or from other ports on the Ethernet switch. Second, multiple internal data paths allow data frames to be transferred between different ports at the same time. Because each port provides access to a high-speed network bridge (i.e., the switch), the collision domain in the network is reduced to a series of small domains in which the number of participants is reduced to two, namely the switch port and the connected Network Interface Card (NIC).  
         [0021]    The first illustrative system  100  utilizes a feature which may be found in network switches, especially Ethernet switches. This feature is referred to as a Virtual Local Area Network (VLAN). Utilizing the VLAN feature permits restriction of communications traffic to only selected communication ports, so that the communications traffic can be restricted, for example, to authorized groups of users or to specific devices.  
         [0022]    Referring to FIG. 1, a network switch  110  is shown which includes an Ethernet switch  140 . Ethernet switch  140  may be an integral part of network switch  110 , or may be located outside network switch  110  while remaining operatively connected to network switch  110 . Network switch  110  may further include a central processing unit (CPU)  125  which itself includes microprocessor  170 . CPU  125  may be either an integral part of network switch  110 , or may be located outside network switch  110  while remaining operatively connected to network switch  110 . For the purposes of this discussion, CPU  125  and microprocessor  170  will be considered to be an integral part of network switch  110 , so that microprocessor  170  may be considered an embedded microprocessor.  
         [0023]    The network switch  110  represents an apparatus for communication between the Ethernet switch and at least one local Ethernet device  135 , via device port  111  and, for example, circuit paths  115 ,  17 , and  16 , or directly via circuit path  20 .  
         [0024]    The embedded microprocessor  170  within this network switch  110  may further be a dedicated microprocessor, or it may be part of the core circuitry found in an existing module, such as, for example, a SIXNET EtherTRAK I/O module (i.e., part number ET-16DI2-H). The core circuitry of this SIXNET module includes an embedded microprocessor (such as, inter alia, an Atmel Mega103 microprocessor). Network switch  110  may also include one or more device ports  111  for connection to an external local device(s)  135 , via circuit path  16 ; one or more network ports  112 ,  113  (such as, inter alia, an Ethernet port) respectively connected to device port  111  through circuit paths  17  and  18 , as well as other components (e.g., a power supply) needed to make the embedded microprocessor  170  function properly. Program software and data are stored in memory coupled to the embedded microprocessor  170 . Henceforth, this embedded microprocessor  170  and its related peripheral circuitry will be referred to as the Central Processing Unit (CPU)  125 . Hence, the network switch  110  comprises the CPU  125 , and the CPU  125  comprises the embedded microprocessor  170 . The embedded microprocessor  170  communicates with network ports  112  and  113  via circuit paths  10  and  11 , respectively.  
         [0025]    The embedded microprocessor  170  is programmed for this application, and is operatively connected through circuit paths  10  and  11  to the first and second network (i.e., uplink) ports  112 ,  113 , respectively, of the network switch  110 . Embedded microprocessor  170  is also operatively connected internally to the first, second and third device ports (i.e., local ports)  141 ,  142 ,  143 , respectively, of the Ethernet switch  140  via an internal port  114  through circuit path  12 . The internal port  114  is operatively connected to the first, second and third device ports  141 ,  142 ,  143  through circuit paths  13 ,  14  and  15 , respectively. Local devices  135  connected through circuit path  16  to the device port(s)  111 , include, inter alia, input and/or output devices, switches, transducers, etc., represented in FIG. 1 by device  135 . A controller  130  is connected to Ethernet switch  140  via third device port  143  and circuit path  19 . Controller  130  may be an external computer, an operator display device, or the like, and for the purposes of this discussion, controller  130  operates with software characterized by an industrial protocol, that is a nonEthernet protocol.  
         [0026]    The embedded microprocessor  170  is assigned an Internet Protocol (IP) address so that the embedded microprocessor  170  can be addressed from means external to the network switch  110 . Network configuration information, such as, inter alia, a configuration table, is loaded into the embedded microprocessor  170  with the appropriate connection rules, the rules including the primary and an optional secondary or alternate connection for each communication path  115 ,  120  between Ethernet switch ports  141 ,  142  and network ports  112 ,  113 , as well as the IP or Media Access Control (MAC) addresses of devices  135  that are to be monitored. The use of both the IP and the MAC addresses allows both IP (e.g., TCP/IP (Transmission Control Protocol over Internet Protocol) or UDP/IP (User Datagram Protocol)) and other Ethernet protocols to be implemented.  
         [0027]    A configuration table of Ethernet connections, for the Ethernet switch  140  to test, is loaded into the CPU  125  from an external program (i.e., a configuration program) used to configure the Ethernet switch  140 . This configuration program may be an adaptation of an existing configuration tool, such as, inter alia, the SIXNET I/O Tool Kit software, which is a commercially available software package used for this purpose. The configuration table of Ethernet connections may be configurable by a user, and may include the IP address of the Ethernet device  135  which is to be periodically polled; the location of the Ethernet device 135  on either a device port  111  or a specified network port  112 ,  113 ; and the I/O register number in the CPU  125  of the status register which is to contain the results of the test to be performed. Additionally, the configuration table may include a number representing how many “retries” or test repetitions should be performed, and the timing of the tests (i.e., how frequently a test should be performed.  
         [0028]    The status register contains information related to the status of components of the Ethernet system. Status, as used herein, is defined as an indication that a device is operating as expected, that the device is operating, but in an unexpected manner, or that the device has failed. The device may be an Ethernet device, an Ethernet node which is a component of the Ethernet device, or a portion of the Ethernet that connects two or more Ethernet devices. Ths status of a device may be represented in binary form, that is, failed or not failed. Alternatively, the status of a device may be represented by an arbitrary graded sequence, such as from zero to ten, with zero representing a failed device, and ten representing a normally functioning device.  
         [0029]    Referring again to FIG. 1, a test message (such as, inter alia, a Packet InterNet Groper (PING)) is periodically sent to each device  135  listed on a configuration table. The configuration table includes identification characteristics for various devices or elements connected to the Ethernet. If any device (i.e., a local device  135  connected to the Ethernet) fails to respond, a status bit is set accordingly in the embedded microprocessor  170 .  
         [0030]    A function included in the Ethernet switch  140  is to report the status of the Ethernet switch  140 , and optionally, to allow the Ethernet switch  140  to have its configuration altered (i.e., assigned a new IP or MAC address), using standard internet protocols, such as, inter alia, Modbus or SIXNET Universal protocol, or other protocol similar to the Institute of Electrical and Electronics Engineers, Inc. standard IEEE 802.3 which defines the hardware and transport layers of variants of the Ethernet.  
         [0031]    For example, a first Ethernet switch  140  can respond to polling (i.e., request-response interactions) commands which send a test message (i.e., a “ping” as discussed infra) issued by the CPU  125  of a second Ethernet switch in order to check the status of an input line, sensor, or memory location to see if a particular external event has been registered. The result received by the CPU  125  from the test message is placed in a status register in the CPU  125 . The contents of the status register can then be read from commercially available control and monitoring equipment, such as, inter alia, programmable logic controllers (PLC), Supervisory Control And Data Acquisition (SCADA) software (i.e., operator interface software), or other common devices known in industry.  
         [0032]    The CPU  125  in this network switch  110  may be configured (i.e., assigned a new IP or MAC address) from an external computer or other operator interface including an Ethernet configuration tool, through an Ethernet connection from any network port  112 ,  113  on the network switch  110 . Initialization of the CPU  125  itself, including the establishment of an IP address for the CPU  125 , is accomplished in the manner usually employed to talk to an Ethernet module, such as, inter alia, an EtherTRAK I/O module, which is a commercially available device, well documented in its user manual. When the operational status (i.e., whether the device or connection is operating or has failed) of specific network connections is determined, through the means described infra, the resulting status flags will be stored in discrete input or output (I/O) registers in the CPU  125 . These I/O registers may replace the I/O registers that were ordinarily assigned to discrete physical input connections found on a typical I/O module, for example, inputs from discrete input or output devices (e.g., switches, valves, etc.). From the viewpoint of communicating with the I/O module from an external source, these I/O registers appear to be the standard discrete inputs on the I/O module. Moreover, three noteworthy differences exist between the known use of I/O registers to store status information related to discrete (non-Ethernet) input or out devices, and using the same I/O registers to store information related to operational status of Ethernet connections and Ethernet devices. The first is that this “I/O register” will be reporting the status of pre-defined network connections, instead of the state of an input signal which represents a physical embodiment, such as a closed switch or an open valve. Second, the common limitation of reporting 16 status bits, due to the typical number (i.e., 16) of input connections on a standard I/O module, does not exist in this case. This number of status bits that may be reported, for the purposes of an illustrative embodiment herein, will remain at 16, since this is an abundant number of status bits to report connection status on eight ports (i.e., port is good or port is failed). However, this number of status bits can be changed to any desired number, internal memory permitting, in a commercial embodiment. The third difference is that additional programming need be added to the CPU  125  to accomplish the functionality described below.  
         [0033]    The CPU  125  will periodically send a TCP/IP Internet Control Message Protocol (ICMP) Echo messages (i.e., a “ping”) to a specified list of devices (i.e., other network switches, ethernet switches, or local devices) and set the corresponding status flag, in an I/O register in the CPU  125 , to, for example, TRUE if the operational status of the connection is functional (i.e., a reply is received) and FALSE if it is not. The CPU  125  includes instructions which characterize the polling information, including the type of test message to be used for testing the status of devices and circuit paths on said Ethernet; a retry number corresponding to the number of times a test message shall be sent before a failure is confirmed; and a timing number corresponding to the number of times a test message is sent within a specific time period.  
         [0034]    Other protocols, such as IEEE 802.2 LLC (Logical Link Control), could also be used, so long as they provide a way to send a test message to elicit a response to determine the status. The Ethernet MAC and/or other appropriate address would be specified instead of the IP address when such a protocol is used.  
         [0035]    Referring to FIG. 3, the CPU  125  can include polling apparatus  310  which can monitor or poll communication between the Ethernet switch  140  and Ethernet device  135 . The polling apparatus may be any known apparatus capable of sending a test message or polling a network, and receiving a response to the test message. The results of the polling conducted by polling apparatus  310  are stored in I/O registers in data storage location  325  by recording apparatus  320  (e.g., register writing apparatus) in CPU  125 . The data storage location  325 , for the purposes of this discussion, is an I/O register  326 . However, the data storage location  325  may also be a memory or other storage media. Data storage location  325  may itself be read by an external device, such as external display device  330 , using software compatible with known industrial communication protocols. The external device may be, inter alia, a monitor, a computer, or the like. Similarly, external operator interface  340  may be, inter alia, a monitor, a computer, or the like.  
         [0036]    The CPU  125  can itself be polled by an external polling device  350 . The external polling device may be another CPU (not shown) on a second network switch (not shown). Alternatively, the external polling device may be some other Ethernet device which has polling capabilities, and which is connected to the same Ethernet as CPU  125 . The CPU  125  may report the status of these registers using, for example, either or both of a SIXNET Universal protocol and/or a Modbus protocol. Both of these protocols are commercially available and are standard industrial protocols in common usage. This polling function is a standard function of the ET-16DI2 I/O module on which the CPU  125  of this network switch  110  is based.  
         [0037]    The status of network switch  110  may be monitored by external polling device  350  which polls CPU  125  itself through any port (i.e., the network ports  112 ,  113 , the Ethernet ports  141 ,  142 ,  143 , and possibly other ports such as serial ports) on the network switch  110  to determine the status of each of the test connections by reading the I/O registers in the CPU  125 .  
         [0038]    The status reporting method  200  is illustrated by the flowchart of FIG. 2. The status reporting method  200  begins with a preliminary step  201  in which a configuration table of Ethernet connections is provided from an external source. In the next step  202 , the Ethernet configuration table is loaded into CPU  125  to configure the Ethernet switch  140  in accordance with the connections in the configuration table. Next, in step  203 , a polling signal (i.e., a ping) is sent from the CPU  125  to the particular Ethernet devices which is to be polled. The polling results are received back in the CPU  125  in step  204 . The polling results are evaluated in step  205  by CPU  125  to determine whether or not a fault has been has been detected. If a reply has been successfully received, step  205  determines that no fault exists, and process flow continues to step  207  where an I/O register bit in the CPU 125  is set to, for example, a logical 0. On the other hand, if a reply is not successfully received, step  205  determines that a fault does exist, and process flow continues to step  206  where a status I/ 0  register bit in the CPU 125  is set to a logical 1. Following either of steps  206  or step  207 , step  208  is performed wherein two actions may occur. First, another pass of steps  203  to  208  is started. Also, the contents of the status I/O register in the CPU  125  can be read by the controller  130 , thereby allowing the passing of the status information to other control systems operating with other protocols.  
         [0039]    [0039]FIG. 4 illustrates a computer system  490  for reporting status information between an Ethernet switch and a device operating to an industrial protocol, in accordance with embodiments of the present invention. The computer system  490  comprises a processor  491 , an input device  492  coupled to the processor  491 , an output device  493  coupled to the processor  491 , and memory devices  494  and  495  each coupled to the processor  491 . The input device  492  may be, inter alia, a keyboard, a mouse, etc. The output device  493  may be, inter alia, a printer, a plotter, a computer screen, a magnetic tape, a removable hard disk, a floppy disk, etc. The memory devices  494  and  495  may be, inter alia, a hard disk, a dynamic random access memory (DRAM), a read-only memory (ROM), etc. The memory device  495  includes a computer code  497 . The computer code  497  includes an algorithm for recording the status of devices connected to the Ethernet switch  140  (FIG. 1). The processor  491  executes the computer code  497 . The memory device  494  includes input data  496 . The input data  496  includes input required by the computer code  497 . The output device  493  displays output from the computer code  497 . Either or both memory devices  494  and  495  (or one or more additional memory devices not shown in FIG. 4) may be used as a computer usable medium having a computer readable program code embodied therein, wherein the computer readable program code comprises the computer code  497 .  
         [0040]    While FIG. 4 shows the computer system  490  as a particular configuration of hardware and software, any configuration of hardware and software, as would be known to a person of ordinary skill in the art, may be utilized for the purposes stated supra in conjunction with the particular computer system  490  of FIG. 4. For example, the memory devices  494  and  495  may be portions of a single memory device rather than separate memory devices.  
         [0041]    Thus, the data in the I/O registers, while representing the status of Ethernet devices, can be read by controllers or devices which incorporate other commercially available programmable logic controllers (PLC) software, Supervisory Control And Data Acquisition (SCADA) software (i.e., operator interface software), or other common software languages found in industry. This represents an advance over known standard practice which is to report the status from Ethernet switches or network switches using means such as Simple Network Management Protocol (SNMP) protocol, which is foreign to most industrial automation systems presently installed.  
         [0042]    Embodiments of the present invention have been disclosed. A person of ordinary skill in the art would realize, however, that certain modifications would come within the teachings of this invention. Therefore, the following claims should be studied to determine the true scope and content of the invention.