A programmable logic controller (PLC) or programmable controller, which is typically a digital computer, is often used for automation of industrial processes, e.g., control of machinery on factory assembly lines, control of chemical processes, control of amusement rides, and control of lighting fixtures. PLCs are used in many different industries and machines such as packaging and semiconductor machines. Unlike general-purpose computers, a PLC is designed for multiple inputs and output arrangements, extended temperature ranges, immunity to electrical noise, and resistance to vibration and impact. Programs to control machine operation are typically stored in battery-backed or non-volatile memory. A PLC is an example of a real time system because output results are produced in response to input conditions within a bounded time; otherwise, unintended operation may result.
The main difference from other computers is that PLCs are typically armored for severe conditions (dust, moisture, heat, cold, and other environmental factors) and have the capability for extensive input/output (I/O) arrangements. In an industrial automation system, a PLC typically connects to sensors and actuators in order to read limit switches, analog process variables (e.g., temperature and pressure), and the positions of positioning systems, where the sensors and actuator devices may be simple peripheral (“dumb”) devices that have few operating states (e.g., on/off), and are unconditionally controlled by the PLC.
Traditional industrial automation systems typically control the simple peripheral devices (e.g., push-buttons, pilot lights, relays) indirectly by the PLC through an intermediary device. Consequently, the PLC does not directly communicate with the peripheral device. Rather, the intermediary device communicates with the PLC and passes the action required by the PLC to the peripheral device. Eliminating the need for the intermediary device, while effectively communicating and controlling peripheral devices, may be advantageous in an industrial automation system.
In a traditional automation system, the PLC typically controls and masters all functions and operations performed within the automation system. A pilot-light may be turned on or off as determined by the input of a push-button, but there is no direct connection between the pilot-light and the push-button. The PLC reads the input of the push-button. Based on the state of that input, the PLC subsequently writes to the pilot-light to place the pilot-light into the desired state (in this case either on or off) through an intermediary device. Any association of simple peripheral devices and the intermediary devices is done by the PLC. There is no direct wiring between the simple peripheral devices. The simple peripheral devices are connected to the intermediary device, which in turn, is connected to the PLC. The PLC sends a message to the intermediary device to control all of that intermediary device's simple peripheral devices. The message may contain a word destined for a specific memory location in the intermediary device's memory. The word is typically broken down into bits with each bit corresponding to a state for each of the simple peripheral devices connected to the intermediary device. Consequently, there are often situations in a traditional automation system in which the desired operation between the PLC and the simple peripheral devices may be corrupted or for the operator to make a mistake.
An aspect of the invention provides apparatuses, computer-readable media, and methods for supporting direct communication between a low-level device and a programmable controller over an automation bus in an industrial automation system for controlling and monitoring an industrial process.
With another aspect of the invention, a leaf node device includes a low-level device. The leaf node device communicates directly with the programmable controller at the network layer, e.g., Internet Protocol (IP).
With another aspect of the invention, a leaf node device directly receives a data packet over the automation bus from the programmable controller. The leaf node device extracts control information from the data packet in order to control a low-level device.
With another aspect of the invention, a leaf node device obtains status information from a low-level device, inserts the status information into a data packet, and directly transmits the data packet to the programmable controller.
With another aspect of the invention, an industrial automation system supports a plurality of leaf node devices, which may be associated with different automation buses having different communication media.
With another aspect of the invention, a signal over an automation bus is designated for different leaf node devices based on an IP address that is contained in the signal. Signals may be directed without a switching element, where each leaf node device recognizes its assigned IP address. With another aspect of the invention, signals are directed by a switching element, e.g., an IP switching element or an Ethernet switching element.
With another aspect of the invention, an industrial automation system includes a bridge node that is electrically connected between a programmable controller and a leaf node device. The bridge transforms a signal between the programmable controller and leaf node device at a physical layer. Consequently, direct communication between the programmable controller and the leaf node device is maintained at a network layer.
A more complete understanding of the present invention and the advantages thereof may be acquired by referring to the following description in consideration of the accompanying drawings, in which like reference numbers indicate like features and wherein:
In the following description of the various embodiments, reference is made to the accompanying drawings which form a part hereof, and in which is shown by way of illustration various embodiments in which the invention may be practiced. It is to be understood that other embodiments may be utilized and structural and functional modifications may be made without departing from the scope of the present invention.
Automation network 100 includes programmable logic controller (PLC) 101 that performs as the controlling entity with an automation device (e.g., automation input/output (I/O) controller 105). Automation I/O controller 105 is connected to PLC 101 and to low-level devices (e.g., low-level device 103) via automation field bus 104. Input/output controller 105 is situated between PLC 101 and low-level device 103, in which communication from PLC 101 and low-level device 103 is through automation I/O controller 105. Automation I/O controller 105 typically contains command and control information for low-level device 103. If low-level device 103 has communications capabilities, then input/output controller 105 translates the information between PLC 101 and low-level device 103 because low-level device 103 typically does not use the same communication protocol as PLC 101.
Automation I/O controller (intermediary device) 105 communicates with PLC 101 and passes the action required by PLC 101 to low-level device 103. Intermediary device 105 may perform protocol translation in order to affect or detect a change in the state of the low-level device. Intermediary device 105 may be hardwired to low-level devices.
In an aspect of the invention, communication and control of low-level devices 204a-e by PLC 201 may be performed without an intermediary device. One or more low-level devices 204a-e may be located on leaf node device 203 as further discussed with
Programmable controller 201 may directly control low-level devices 204a-e using Internet Protocol (IP). Signals (e.g., data packets) between programmable controller 201 and leaf node device 203 over automation bus 205 may use the same protocol that is native to programmable controller 201. In some embodiments of the invention, communication over automation bus 205 may be in accordance with Internet Protocol (IP), where IP is used throughout automation network 200. Leaf node device 203 may include IP capabilities so that programmable controller 201 may directly communicate with and control low-level devices 204a-e.
In an aspect of the invention, the architecture of industrial automation system 200 supports direct control of low-level devices 204a-e by programmable controller 201. With some embodiments, signals may comprise IP data packets that comply with Transmission Control Protocol (TCP) and/or User Datagram Protocol (UDP).
Communication between programmable controller 201 and leaf node device 203 may be modeled in accordance with the Open Systems Interconnection Reference Model (OSI Reference Model or OSI Model). The OSI Reference Model is an abstract description for layered communications and computer network protocol design. The OSI Reference Model divides network architecture into seven layers which, from top to bottom, are the application layer (corresponding to layers 307 and 314), presentation layer (corresponding to layers 306 and 313), session layer (corresponding to layers 305 and 312), transport layer (corresponding to layers 304 and 311), network layer (corresponding to layers 303 and 310), data link layer (corresponding to layers 302 and 309), and physical layer (corresponding to layers 301 and 308).
Embodiments of the invention support different protocols including Internet Protocol (corresponding to network layers 303 and 310), Transmission Control Protocol (TCP) and User Datagram Protocol (UDP) corresponds to transport layer 304 and 311.
Processor 401 may process an IP packet and extracts control information from an IP data field when the IP packet from programmable controller 201 (as shown in
In addition, leaf node device 203 may send an IP packet to programmable controller 201 in order to provide status information about low-level device 403, where status information is included in the IP data field. For example, processor 401 may determine the state of low-level device 403 and indicate the current state in the status information.
Because the Internet Protocol is used throughout automation system 500, translation from one language (not based on the Internet Protocol) to another language (based on the Internet Protocol) is circumvented.
With some embodiments, an Ethernet switch may be used rather than IP switching element 511, where Ethernet provides a communication medium (physical layer) for transporting IP packets between programmable controller 501 and leaf node devices 503, 507, and 509. Standard Ethernet switching and routing devices may be seamlessly introduced into automation network 500 to provide structure and traffic control. Low-level devices may be connected to the switching and routing devices with the proper cabling.
The Ethernet switch may deliver packets based on an Ethernet address (Media Access Control (MAC) address and corresponding to layer 2 of the OSI Reference Model). The Ethernet address may be obtained from the IP address using the Address Resolution Protocol (ARP) for Internet Protocol Version 4 (IPv4) or the Neighbor Discovery Protocol (NDP) for IPv6. The Ethernet switch may perform as a “proxy ARP” and respond to the network ARP when the Ethernet switch needs to know the IP addresses of the low-level devices. The Ethernet switch may extend the range of system 500 to allow for a larger number of devices to be controlled within the system. The communication from programmable controller 501 to leaf node devices 503, 507, and 509 may be seamless (transparent) to programmable controller 501 and leaf node devices 503, 507, and 509.
The desired operation from the programmable controller is performed by the low-level device in step 905. There is no confusion about the operation to be performed (read, write, change state, etc.) or about the low-level device to which the operation was targeted. The user's programming of the low-level device is typically simplified by removing memory location and bit confusion issues by the use of the IP address. The proper operation of the system is thus ascertained.
The leaf node device may confirm the message reception and/or that the desired operation was performed if the system is configured to do so by performing action 904 in order to complete a feedback loop. There is no confusion regarding which low-level device or which I/O function was completed. This approach provides a deterministic method of control confirmation.
Corruption of the data is reduced by the inherent error checking and correction built into the Internet Protocol. A single bit error or even several errors in the Internet Protocol packet typically does not affect the message sent to the low-level device as the bit error can be corrected by the features of the Internet Protocol. As the operation to be performed by the low-level device is part of the payload of the Internet Protocol packet and not a single bit in a series of bits that make up a word that controls several low-level devices, a mistake in the bit sequence may be avoided. Consequently, according to aspects of the invention as described above, corruption of any low-level device is avoided and operator mistakes are reduced in an industrial automation system.
As can be appreciated by one skilled in the art, a computer system with an associated computer-readable medium containing instructions for controlling the computer system may be utilized to implement the exemplary embodiments that are disclosed herein. The computer system may include at least one computer such as a microprocessor, digital signal processor, and associated peripheral electronic circuitry.
While the invention has been described with respect to specific examples including presently preferred modes of carrying out the invention, those skilled in the art will appreciate that there are numerous variations and permutations of the above described systems and techniques that fall within the spirit and scope of the invention as set forth in the appended claims.