A programmable logic controller (PLC) is commonly used to control processes in an industrial plant. The PLC communicates with various sensors, e.g., temperature and pressure sensors, and sends controls signals to various actuators, e.g., valves and pumps. The PLC typically reads signals from the sensors, and stores the corresponding values in memory. The PLC generates control outputs and sends them as electrical signals to valves, motors, lights, etc. The PLC contains sets of instructions or program steps for running a particular industrial process, including, for example, on how to respond to various events and how to perform various tasks. These tasks can be initiated by an operator making a selection, typically through a Human Machine Interface (HMI) or graphical user interface that communicates directly or indirectly with the PLC. The PLC will then automate the process from there, automatically making adjustments to outputs in response to sensor inputs and further operator input.
Sensor data and events, such as alarms, can be logged or archived by factory automation programs for later analysis. Traditional systems include archiving of the sensor data and displaying these data as a historical trend chart. Historical trend charts, however, typically differ from the graphical screens or the HMI an operator is used to seeing when running the plant. In addition, historical charts tend to be difficult to read and interpret.
One proposed system has video cameras associated with an event or alarm logger. The operator can pick an event or alarm and the system will find the correct video clip to display. Upon user input, both stored audio-video factory automation content (e.g., a camera recording of a particular location in the plant) for the selected event or time segment and stored audio-video console content (e.g., a camera recording or screen capture of a user console) can be presented. The user can control playback of the audio-video data via a control bar. Drawbacks of such a system are that it requires multiple video cameras and can only play back events in the manner in which the events were recorded.
Other systems having multiple views of an industrial plant which are graphically displayed and viewed have been proposed. The views represent different domains of the industrial plant, e.g., real-time monitoring and operation, configuration, maintenance, and simulation, among others, and may display the same plant at different times (now, past, predicted future). For example, the operator may navigate through a menu tree and see multiple views of the system from the operator's current perspective. Such systems typically tie process recipes, business systems etc. together in a predetermined relationship. These systems can be expensive to implement, because the systems try to anticipate everything that could happen in the plant and determine the relationship between objects to be displayed.
A method for displaying state data of an industrial plant by a server communicating with a client over a network includes, in a first mode, receiving live state data from a data source and sending a portion of the live state data to the client for display into a graphical user interface. The method also includes, in a replay mode, reading stored state data from a data storage, the stored state data being stored at a storage rate, and sending a portion of the stored state data to the client for display into the same or a different graphical user interface at a replay rate.
The method may further include selecting any of the first mode and the replay mode in response to a request by the client. The stored state data can be read according to a selection received from the client, which may be any combination of date, time, display interval, and the replay rate. In an embodiment, the data source comprises a programmable logic controller (PLC) and the live state data and the stored state data may represent any combination of sensor data, data derived from sensor data, control output data, control input data, and program state data. Thus, embodiments of the invention can not only log and display sensor data but also process control information, including data associated with the program or process state, such as steps of a multistep process, timers, and counters.
The method may further include causing live state data to be stored to the data storage in response to a request by the client. The method may be performed to monitor any one of a production process and a cleaning process. In some embodiments, the client includes a plurality of clients, in which case the portion of the live state data is sent to one of the plurality of clients and the portion of the stored state data is sent to another of the plurality of clients.
The method may further include receiving control input data from the client and sending the control input data to the data source to control the industrial plant. For example, the control input data can be received in response to user input to the graphical user interface.
The replay rate can be different from the storage rate. For example, live state data may be stored at a periodic sampling interval of 1 second. In replay mode, a user or operator may select to replay the stored state at a replay rate that is faster or slower than the storage rate. For example, the user may choose to replay the stored state data at 10 times or 100 times the storage rate in order to quickly find a particular event that has occurred. In addition, the user may choose to replay the stored data, for example, at half the storage rate to pinpoint the exact time the event occurred and to visualize the state of the process or plant at that time. Alternatively or in addition, the user may pause the replay of stored state data at a particular time.
The graphical user interface typically includes graphical representations of elements of the industrial plant. Such graphical representations can include any combination of static graphical elements and dynamic data representations. The graphical user interface in the first mode can include a first set of graphical representations and the graphical user interface in the replay mode can include the same or a different set of graphical representations.
An apparatus for displaying state data of an industrial plant includes a processor configured to, in a first mode, receive live state data from a data source, and send a portion of the live state data to a client for display into a graphical user interface. The processor is also configured to, in a replay mode, read stored state data from a data storage, the stored state data being stored at a storage rate, and send a portion of the stored state data to a client for display into the same or a different graphical user interface at a replay rate.
The processor can further be configured to receive control data from the client and to send the control data to the data source to control the industrial plant.
A computer program product includes a non-transitory computer readable medium including computer-executable instructions embodied therewith. The instructions, when executed by a processor that communicates with a client over a network, cause the processor to, in a first mode, receive live state data of an industrial plant from a data source, and send a portion of the live state data to the client for display into a graphical user interface. The instructions also cause the processor to, in a replay mode, read stored state data of an industrial plant from a data storage, the stored state data being stored at a storage rate, and send a portion of the stored state data to the client for display into the same or a different graphical user interface at a display rate.
The instructions can further cause the processor to receive control input data from the client and send the control input data to the data source to control the industrial plant.
A method for displaying state data of an industrial plant by a client communicating with a server over a network includes, in a first mode, receiving live state data from a server and displaying the live state data into a graphical user interface. The method also includes, in a replay mode, receiving stored state data from the server, the stored state data being stored at a storage rate, and displaying the stored state data into the same or a different graphical user interface at a replay rate.
The method may further include selecting any of the first mode and the replay mode in response to a user input, and may include sending a selection to the server to cause the stored state data to be read from a data storage according to the selection. The selection can include any combination of date, time, display interval, and the display rate. The live state data and the stored state data can include data from a programmable logic controller (PLC) and the data can represent any combination of sensor data, data derived from sensor data, control output data, control input data, and program state data.
The method may further include sending a request to the server to cause the live state data to be stored to a data storage. The method may be performed to monitor any one of a production process and a cleaning process, and may further include generating a graphical representation of any of the live state data and the stored state data for display. Further yet, the method can include sending control input data to the server to control the industrial plant, and the control input data can be sent in response to user input to the graphical user interface. In replay mode, the client can display the stored state data at a replay rate that is different from the storage rate.
An apparatus for displaying state data of an industrial plant includes a processor configured to, in a first mode, receive live state data from a server and display the live state data into a graphical user interface. The processor is also configured to, in a replay mode, receive stored state data from a server, the stored state data being stored at a storage rate, and display the stored state data into the same or a different graphical user interface at a replay rate.
The processor may further be configured to send control input data to the server to control the industrial plant. The processor can display the stored state data at a replay rate that is different from the storage rate.
A computer program product includes a non-transitory computer readable medium including computer-executable instructions embodied therewith. The instructions, when executed by a processor that communicates with a server over a network, cause the processor to, in a first mode, receive live state data of an industrial plant from a server, and display the live state data into a graphical user interface. The instructions also cause the processor to, in a replay mode, receive stored state data of an industrial plant from a server, the stored state data being stored at a storage rate, and display the stored state data into the same or a different graphical user interface at a display rate.
The instructions can further cause the processor to send control input data to the server to control the industrial plant.
A method for displaying state data of an industrial plant includes receiving live state data of an industrial plant from a data source and storing the live state data to a data storage at a storage rate. Also included are, in a first mode, displaying a portion of the live state data into a graphical user interface, and, in a replay mode, reading the stored state data from the data storage and displaying a portion of the stored state data into the same or a different graphical user interface at a replay rate.
The foregoing will be apparent from the following more particular description of example embodiments of the invention, as illustrated in the accompanying drawings in which like reference characters refer to the same parts throughout the different views. The drawings are not necessarily to scale, emphasis instead being placed upon illustrating embodiments of the present invention.
The present invention relates to a system and method for using archived data from a programmable logic controller (PLC) or other data sources to drive the display of a human machine interface (HMI) or graphical screen. In particular, the data can be data from an industrial plant, such as data from temperature sensors and valve actuators in a dairy plant, and can include internal program state data of the PLC, including operator control inputs. The HMI or graphics screen displaying archived data can be the same screen that is used to run the plant. Traditional systems include archiving of sensor data and displaying the data as a historical trend chart. The present approach enables the playback of stored data into a graphical user interface to illustrate the states of various components of the plant by providing a graphical view of those states. Instant replay of archived state data may be used, for example, to monitor or trouble-shoot a cleaning process or a production process.
In one embodiment, the system includes a server connected to one or more sources of data, such as a PLC. Connected to the server are one or more local clients. The server receives live data from a data source and/or retrieves stored data and sends the live and/or stored data to one or more clients for display. A client receives the live and/or stored data and displays the data in a graphical screen. Any graphical screen that displays plant data in real time is able to display the archived data. The data can be archived in any time frame desired and can be displayed at any time frame, paused or run at accelerated rates, for example, using a control panel of the graphical user interface. The result is a screen that looks as if it is displaying real time data, but has the ability to freeze the screen and increment at different and variable rates. By redirecting where the data are coming from, e.g., from a PLC or from an archived data source, the screen display does not have to be modified. Furthermore, only the local client screen is affected when running the instant replay display feature. All other screens of the system perform their normal functions, e.g., can display real-time state data of the plant. The local client can display any screen on that local client. Any other client can display real time data or instant replay data for any other time period. Every client could be displaying a different time frame. The real time data are still being archived even when instant replay is running Different portions of the data can be archived at varying rates.
As shown in
As shown in
Driver 306 can include live data cache 314, which may be held in memory 345 to store live state data received from a data sources, such as PLC 308 and sensor 307, and to send live state data from data cache 314 to server 302. Driver 306 can also include archive data writer 312 for writing the live state data received from driver 306 to data storage 310. Archive data writer 314 stores the live state data to data storage 310 at a storage rate. In a first mode, server 302 can receive the live state data from live data cache 314 and send a portion of the live data to client 304 for display into a graphical user interface 318. Server 302 may send live data to multiple clients 304 and can include multiplexer 328 to multiplex the live data to the multiple clients. Multiplexing allows the server to send different sets of data to different clients. In a replay mode, archive data reader 316 of server 302 reads the stored state data from data storage 310 and sends a portion of the stored state data to client 304 for display into graphical user interface 318, in which the live data are displayed, or for display into a different graphical user interface (e.g., a graphical user interface having different graphical representations of elements of the plant or a graphical user interface that is located at a different client). Stored state data are displayed at a replay rate, which can be different from the storage rate.
As shown in
As described above with reference to PLC 208 of
a) Operator Selection or Input
At client 304, the operator may initiate an operator input 320, e.g., a control input to control the industrial plant. For example, the operator may initiate input 320 by making a selection on the screen in user interface 318. This triggers a write to the PLC 306. To write, the selection information passes from client 304 to server 302, where it is relayed to the driver 306. The driver 306 then passes the operator input information off to PLC 308, which writes it to PLC memory representing a change in program state 326. Once the memory in the PLC 308 has changed, the driver 306 is notified of the change and records the information to data storage 310.
b) Sensor Data
The PLC 308 reads a signal from a sensor and stores the value in its memory as sensor data 322. The driver 306 is sent notification of the change and records the information to data storage 310. Certain sensors, e.g., checkweighers, can send their data directly to a driver. Sensor 307 can communicate with driver 306 to send sensor data 321 that can then be stored to data storage 310.
c) Control Outputs
The process control program of PLC 308 generates outputs and sends them as electrical signals to valves, motors, lights, etc. The driver 306 is notified of the change in the memory representing the outputs and records the information to data storage 310.
d) Internal Program State
The PLC 308 contains sets of instructions about how to respond to various events and how to perform various tasks. These tasks can be initiated by the operator making a selection. For example, the selection may be communicated to PLC 308 as described above for operator input 320. The PLC will then automate the process from there, automatically making adjustments to outputs in response to sensor inputs and further operator input 320. The present approach can capture these internal states if they are put in the PLC memory. These internal states or values, collectively program state 326, can include intermediate calculations, process step number, timers, counters, and various other values used internally by the PLC program.
Example dialog boxes and graphical screens for use by an operator in accordance with the principles of the invention are described below.
(A) Setup
(B) State Data Display—Instant Replay
The current display time is specified by moving a slider 602, or by changing the time in a date/time control 604. A Play button 606 automatically advances the current display time at the speed specified by the speed control box 608. The time period is set with the time/date controls 610 and 612 at either end of the slider control. Using Trim buttons 614 and 616 the operator can set the end points to the current display time specified by the slider. A Refresh button 618 is enabled when the date range specified by the end points is not covered by the data currently fetched. The system fetches the data when the Refresh button 618 is pressed. If the operator switches screens while in instant replay mode, the new screen automatically opens at the same point in time as the previous screen. When the operator has finished looking at archived state data, the operator can return to live state data or real-time data display in screen 500 or any other available graphical screen.
One advantage of the invention is that the ability to display, or replay, state data that were previously stored but not displayed. In general, all of the state data available from the data source, e.g., the memory registers in the PLC, are stored or archived. In one embodiment, one file per day per PLC register file is stored to the data storage. In other words, the data are segmented to allow for quick access to the data for reading. Segmenting the data also simplifies testing and eases memory requirements. Although the operator can have the choice of what to archive, it is typically simpler to archive the whole file rather than pick individual or groups of registers. Once all the state data from the data source are stored, the data can be displayed even if the data were not on a screen, i.e. not displayed in a graphical user interface, at the time the data were archived.
The ability to play back state data previously not displayed is important for several reasons. During replay mode, the operator can select stored data for display in any screen (e.g., 700, 702 and 704,
An example is a boiler in an industrial plant that goes off line because of low water. This is an indication of high steam usage. The plant operator uses an embodiment of the present invention to find when the boiler problem occurred. The operator examines every graphical screen that shows steam valves and is able to narrow the problem down to a single large valve. In this case, a new screen is made that shows the valves after the fact and the operator easily finds the problem. For example, the problem could have plagued the plant operator for over a year and seem to be random, usually happening on third shift. However, after examining the graphical screens, the operator is able to discover that the problem is not random at all, but instead directly linked to the performance of a single valve.
As illustrated by the above example, the real power of the present approach is that it allows the plant operator to visualize the state of the plant and its elements in any particular process. Using the instant replay feature of the present approach, the operator need not be an engineer or be familiar with historical charts in order to trouble shoot a problem because the operator can typically use the same graphical screens the operator uses to run the plant to visualize the stored state data. In replay mode, the problem described above is easier to solve because the operator can quickly scroll through the boiler screen to see when the incident happened. Initially, the operator only knows that the incident has occurred the previous night. Once the operator knows the time of the incident, the operator is able to back up the display a little more and then slowly watch the events unfold. In addition, once the operator has an indication of which valve or valves are the problem, the operator is able the go further back in time, find the “random” incidents, and check the correlation between the incidents and the performance of the valve or valves. Without the ability to speed up the trouble shooting process using the instant replay feature of the present approach, finding the cause of the problem would likely take much longer. Without the ability to speed up and to pause replay of the state data, the operator probably would glaze over and miss the occurrence of the valve failure.
It should be noted that functions performed by embodiments that implement aspects of the present invention, may be implemented in whole or in part using some combination of hardware and/or software. It should be further noted that computer-executable instructions and/or computer data that implement aspects of the present invention may be stored in other computer-readable mediums, such as volatile memories, non-volatile memories, flash memories, removable disks, non-removable disks and the like. In addition, it should be noted that various electromagnetic signals, such as wireless signals, electrical signals carried over a wire, optical signals carried over optical fiber and the like, may be encoded to carry computer-executable instructions and/or computer data that implement aspects of the present invention on e.g., a data network.
While this invention has been particularly shown and described with references to example embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the scope of the invention encompassed by the appended claims.