Aspects of the disclosure generally relate to methods and systems for the delivery of output data to input/output (I/O) devices immediately after the data has been generated by a processor associated with a programmable logic controller (PLC) in a control network.
Typically, programmable logic controllers (PLCs) include a central processing unit (CPU) that serves as a master for processing input data (e.g., sensor data from various input/output (I/O) devices, etc.) and for delivering output data (e.g., I/O commands generated via a PLC scan service, etc.) to a communications module (the COM module). The COM module may include an I/O scanner service for reading input data from the I/O devices (e.g., sensors, switches, etc.) so that the data can be forwarded to the CPU and for conveying the output data from the CPU to the appropriate I/O devices.
In traditional control systems, the CPU and COM module run asynchronously. For instance, the COM module may be configured to send output data to various I/O devices at a predetermined frequency (e.g., every second, etc.), irrespective of when new output data are delivered from the CPU to the COM module. Meanwhile, the PLC may process input data (e.g., data received through the COM module) from I/O devices and generate output data in real-time. Thus, there may be a delay between the time at which a PLC transmits output data to the COM module and the time at which the COM module relays the output data to the appropriate I/O devices.
Thus, conventional control system methodologies may result in delayed or outdated information being propagated to I/O devices. As such, new systems and methods are required to avoid this delay.
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 disclosure. This summary is not an extensive overview of the disclosure. It is not intended to identify key or critical elements of the disclosure or to delineate the scope of the disclosure. The following summary merely presents some concepts of the disclosure 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 synchronizing output data generated by a programmable logic controller (PLC) with the delivery of that output data to input/output (I/O) devices within a control system.
Other aspects of the disclosure relate to associating an application trigger implemented through Common Industrial Protocol (CIP) with the generation of output data to allow a communications module (COM module) to immediately deliver output data to I/O devices.
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, conventional control systems use asynchronous timing schemes that may result in delayed or outdated data being communicated to input/output (I/O) devices. To overcome this and other problems, the example embodiments of this disclosure provide novel methodologies to synchronize the delivery of output data to I/O devices immediately after the central processing unit (CPU) within a programmable logic controller (PLC) has generated responsive output data.
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
Device 201 typically includes a variety of computer readable media. Computer readable media may be any available media that may be accessed by communication device 201 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 device 201.
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 wired network or direct-wired connection (e.g., Ethernet, etc.), and wireless media such as acoustic, RF, infrared and other wireless media.
Although not shown, RAM 205 may include one or more applications representing the application data stored in RAM 205 while the device 201 is on and corresponding software applications (e.g., software tasks) are running on the device 201.
Communications unit 209 may include a microphone, keypad, touch screen, and/or stylus through which a user of device 201 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.
Software may be stored within memory 215 and/or storage to provide instructions to processor 203 for enabling device 201 to perform various functions. For example, memory 215 may store software used by the device 201, such as an operating system 217, application programs 219, and an associated database 221. Also, some or all of the computer executable instructions for device 201 may be embodied in hardware or firmware.
Device 201 may operate in a networked environment supporting connections to one or more remote computing devices, such as computing devices 241, 251, and 261. The computing devices 241, 251, and 261 may be computing devices or servers that include many or all of the elements described above relative to the enhanced synchronized communication device 201. Computing device 261 may be a mobile device communicating over wireless carrier channel 271.
The network connections depicted in
Additionally, one or more application programs 219 used by the device 201, according to an illustrative embodiment, may include computer executable instructions for invoking functionality related to associating an application trigger feature with the generation of output data by a PLC CPU and/or with the completion of an output cycle for the PLC. In addition, the application programs 219 may include computer executable instructions for invoking functionality related to detecting when the PLC output cycle has been completed.
Embodiments of the disclosure may include forms of computer-readable media. Computer-readable media include any available media that can be accessed by device 201. 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 203 on enhanced synchronized communication device 201. Such a processor may execute computer-executable instructions stored on a computer-readable medium.
Referring to
Computer network 303 may be any suitable computer network including the Internet, an intranet, a wide-area network (WAN), a local-area network (LAN), a wireless network, a digital subscriber line (DSL) network, a frame relay network, an asynchronous transfer mode (ATM) network, a virtual private network (VPN), or any combination of any of the same. Communications links 302 and 305 may be any communications links suitable for communicating between network devices 301 and enhanced synchronized communication device 201, such as network links, dial-up links, wireless links, hard-wired links, etc.
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 synchronizing the transmission of output data to I/O devices immediately after solving for the output data.
To implement this solution, a user may use an enhanced synchronized communication device 201 configured to run computer-executable program instructions related to each step of an output data synchronization process. Device 201 may interface with different types of network devices (e.g., devices 301), including embedded devices with no user interface, such as those typically found in automation control systems. In addition, enhanced synchronized communication device 201 may use a variety of networking protocols and procedures for synchronizing the transmission of output data to I/O devices. For example, device 201 may use the Common Industrial Protocol (CIP) in an Ethernet Industrial Protocol (EtherNet/IP) network, among other types of networking protocols.
In one embodiment, the enhanced synchronized communication device 201 may be a hardware module separate from but associated with the CPU of a PLC. In this embodiment, device 201 may communicate with the CPU via a backplane. The CPU may serve as a master and the enhanced synchronized communication device 201 may serve as the slave for communicating with I/O devices. In this regard, the CPU may implement various applications which process input data from one or more I/O devices to generate output data for at least one I/O device. More specifically, device 201 may probe various I/O devices (sensors, actuators, etc.) to obtain input data (e.g., read data, etc.) and may relay the input data to the CPU so that the CPU may solve for output data using the input data. Once the CPU has determined/generated the output data, the enhanced synchronized communication device 201 may be notified (e.g., by an interrupt, call back mechanism, function call, etc.). In servicing this notification, the output data may be sent to the appropriate I/O devices (e.g., write data, etc.) by using an application trigger of CIP.
For instance, an example control system may include a voltage sensor as an I/O device. In this example, assume that a motor connected to the sensor must be turned off if the voltage exceeds 10 V. Voltage data may be transmitted from the sensor to the enhanced synchronized communication device 201, which may relay this data to the CPU. The CPU may then process the data to determine if the voltage has exceeded the 10 V threshold. If it has, the CPU may relay a message (e.g., output data) to enhanced synchronized communication device 201, instructing the appropriate motor to shut off. Once device 201 receives this message, device 201 may recognize that the message includes output data for a given application and may use the associated application trigger feature of CIP to immediately forward the output data to the appropriate motor.
This process may remove possible jitter in output data delivery to I/O devices and, therefore, may make I/O scanning synchronized with a PLC scan (e.g., PLC output cycle) in control systems.
Once the output data has been generated, an enhanced synchronized communication device (e.g., device 201) may be notified (e.g., via a call back mechanism, interrupt, and/or a function call, etc.) by the PLC CPU that output data is ready for delivery in step 503. In servicing this notification, a service processor of the enhanced synchronized communication device may then associate the output with an application trigger feature of the CIP in step 505. The association of the application trigger feature with the output data may trigger the enhanced synchronized communication device to transmit the output data to the appropriate downstream I/O devices in step 507.
In this way, output data may be transmitted to I/O devices immediately after the output data has been generated by the PLC CPU (or when the output cycle for the PLC is complete) and the time at which the output data is transmitted to the I/O devices may not depend on the cycle time of a COM module. The transmission of output data to I/O devices using this process may also be independent of the type of backplane bus used to communicate between the PLC CPU and the enhanced synchronized communication device 201.
The systems and methods disclosed herein may be applied to a variety of industries that would benefit from synchronized output data, including waste water applications, mining, minerals, and materials applications, and process critical applications such as those in the food and beverage industry and the oil and gas industry.
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 disclosure.