The disclosed subject matter is now described with reference to the drawings, wherein like reference numerals are used to refer to like elements throughout. In the following description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the disclosed subject matter. It may be evident, however, that such matter can be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to facilitate describing the invention.
As used in this application, the terms “component” and “system” are intended to refer to a computer-related entity, either hardware, a combination of hardware and software, software, or software in execution. For example, a component may be, but is not limited to a process running on a processor, a processor, an object, an executable, a thread of execution, a program, and a computer. By way of illustration, both an application running on a server and the server can be a component. One or more components may reside within a process and/or thread of execution and a component may be localized on one computer and/or distributed between two or more computers.
Furthermore, aspects of the disclosed subject matter may be implemented as a method, apparatus, or article of manufacture using standard programming and/or engineering techniques to produce software, firmware, hardware, or any combination thereof to control a computer to implement various aspects of the subject invention. The term “article of manufacture” as used herein is intended to encompass a computer program accessible from any computer-readable device, carrier, or media. For example, computer readable media can include but are not limited to magnetic storage devices (e.g., hard disk, floppy disk, magnetic strips, etc.), optical disks (e.g., compact disk (CD), digital versatile disk (DVD), etc.), smart cards, and flash memory devices (e.g., card, stick, key drive, etc.). Additionally it should be appreciated that a carrier wave can be employed to carry computer-readable electronic data such as those used in transmitting and receiving electronic mail or in accessing a network such as the Internet or a local area network (LAN). Of course, those skilled in the art will recognize many modifications may be made to this configuration without departing from the scope or spirit of what is described herein.
Now referring to the drawings,
The alarm generator component 102 can be associated with a buffering component 104 that can cause an alarm to be cached within a data repository 106 that is internal to the field device 100 and/or communicatively coupled to the field device 100. Therefore, for instance, if a server associated with multiple industrial field devices goes offline, individual field devices can buffer alarms and/or events associated therewith to enable later retrieval of such alarms and/or events. Caching of alarms and/or events can additionally facilitate rollback of field devices and/or industrial processes to a known good state. Pursuant to an example, each alarm and/or event generated by the alarm generator component 102 can be cached within the data repository through utilization of the buffering component 104. For instance, the alarm generator component 102 can create an alarm, and the buffering component 104 can place the alarm in the data repository 106. Additionally, an attempt can be made to transmit the alarm to an intended recipient. If the transmission fails (e.g., the intended recipient is offline), the alarm remains in the data repository 106 and later attempts can be made to transmit the alarm. After a threshold amount of time passes and/or capacity of the data repository 106 is below a threshold, the alarm can be deleted from the data repository 106.
In another example, the buffering component 104 can detect connectivity of the field device 100 and/or an intended recipient of the field device prior to determining whether the alarm should be cached within the data repository 106. For example, if a server is charged with maintaining alarms associated with several field devices, the buffering component 104 can ping the server to ensure that it is online. If the server is not online, the buffering component 104 can deliver a generated alarm to the data repository for caching 104. Thereafter, the buffering component 104 can monitor the server and when such server comes back online can cause the alarms within the data repository 106 to be pushed to such server. Additionally or alternatively, the server can pull alarms from the field device 100.
Still further, the buffering component 104 can provide an indication of urgency with respect to the alarm when placing the alarm within the data repository 106. For example, if the alarm relates to shutting down a production line for a significant amount of time, such alarm can be of significant urgency. In contrast, if the alarm relates to change of an operator, for instance, then the alarm may not be associated with high urgency. Alarms can be arranged by urgency within the data repository 106, and thereafter pushed to an intended recipient device when such device comes online.
The buffering component 104 can additionally buffer changes in alarm states. For example, if severity of an alarm changes over time, such state changes can be generated by the alarm generator component 102 and placed within the data repository 104 by the buffering component 104. Alarm states can thereafter be analyzed to determine source of an alarm, trends within data, and/or the like.
Turning now to
The field device 200 also includes the alarm generator component 102, which can create an alarm upon determining that data produced and/or consumed by the field device 200 lies outside a desired range and/or a particular user action is detected. Upon generation of an alarm, a timestamp generator 206 can create a timestamp and such timestamp can be associated with the alarm. Pursuant to an example, the alarm generator component 102 can package a timestamp created by the timestamp generator component 206 with the alarm. The buffering component 104 can then cause the alarm and the associated timestamp to be cached within the data repository 106.
Timestamping and caching alarms enables a series of alarms to be chronologically recreated if an industrial system has network problems and/or one or more servers go offline. For example, a server that manages alarms with respect to a plurality of field devices can go offline. Each of the field devices can create a plurality of alarms and/or an alarm created by one or more field devices can change states several times. If alarm data is not cached, then such alarm data will be lost. Additionally, as the clock 204 is synchronized with clocks of other field devices, timestamps generated by such field devices will be associated with timestamps created by the timestamp generator component 206 (and accord to a system-wide time). Alarms with associated timestamps can be buffered within the field devices at least until the aforementioned server comes online, and thereafter alarms and associated timestamps can be pushed to the server and/or pulled from the field devices by the server. The server can then chronologically arrange the alarms for analysis and/or rollback.
Turning now to
The buffer component 104 can additionally include an ordering component 304 that can organize alarms within a cache. For example, the ordering component 304 can analyze an urgency level of alarms that are cached and can selectively place a newly created alarm within the cache as a function of the urgency level. More particularly, an alarm associated with high urgency would be placed in a cache in a position where it will be provided to a server or retrieved by the server prior to an alarm associated with low urgency. Additionally, the ordering component 304 can utilize a first in first out (FIFO) technique when ordering alarms, such that alarms are ordered within the cache by time. In yet another example, the ordering component 304 can order alarms according to a number of state changes associated with such alarms. Thus, an alarm with several state changes would be associated with higher priority than an alarm with no state changes, and the ordering component 304 can organize the alarms in a cache accordingly.
With reference now to
Pursuant to an example, the field device 400 can be a controller and can receive temperature data from a sensor that lies outside of an expected range. The receiver component 102 can receive data relating to when a product is to be delivered as well as other ERP-related data, and the context-analyzer component 404 can provide the alarm generator component 102 with data relating to when the product is to be delivered. The alarm generator component 102 can request such data from the context analyzer component 404 and/or such data can be pushed to the alarm generator component 102 by the context analyzer component 404. The alarm generator component 102 can create an alarm pertaining to the temperature data and associate the ERP data with such alarm. Thus, ERP data (and other contextual data) can be packaged with alarm data and provided to a server (or other suitable device) for analysis.
The alarm generator component 102 is associated with the buffering component 104, which can selectively cache alarms. For instance, a server that manages and analyzes alarms may be offline; thus, the buffering component 104 can cache alarms created by the alarm generator component 102 within the data repository 106. When the server is back online, the alarms within the data repository 106 can be provided to the server for chronological recreation of alarms and/or analysis.
Now referring to
The system 500 additionally includes the alarm generator component 102, which can generate alarms if process variables are not within an expected range and/or if an operator undertakes certain action(s). The buffering component 104 can be utilized to cache one or more alarms created by the alarm generator component 102 within the data repository 106. In an example, the data repository 106 can be searched over to locate a particular alarm that has been cached. As described above, the buffering component 104 can cache each alarm created by the alarm generator component 102 and/or can cache alarms only when the field device 502 cannot establish a line of communication with a server that manages alarms.
The field devices 502 and 506 are associated with a data repository 508 that retains alarms generated from within such field devices 502 and 506. Additionally, as alarms created by the alarm generator component 102 are associated with a timestamp that accords to a synchronized time, such alarms can be placed within a correct chronological order. Events (such as an operator applying a digital signature, an operator signing off on a particular process, etc.) can also be associated with timestamps and placed within the data repository, and can be indexed according to time of creation (through analysis of timestamps), device, geographic location, process, or other suitable parameter.
The system 500 can additionally include a rollback component 510 that can rollback a process (e.g., one or more field devices working collaboratively to complete a task) to a known good state upon the process being associated with a failure. Pursuant to an example, several field devices can operate in conjunction to complete a task, and an alarm can initiate from one of such devices (e.g., an operator can depress an emergency stop button, initiating an alarm with respect to the field device 502). The alarm can cause a process variable to alter, giving rise to another alarm with respect to a different device, which can in turn cause a third alarm with respect to a third device. Since the alarms are associated with timestamps (that accord to a system-wide time) and are provided to the data repository 508, the rollback component 510 can determine a correct chronological order of the alarm (and dependencies of alarms). The rollback component 510 can then rollback the process to a known good state (e.g., to a state that existed prior to the operator depressing the emergency stop). Thus, rather than an operator manually reviewing several alarms to determine sequence and associations between alarms to determine where to rollback a process, the rollback component 510 can undertake such rollback automatically.
With reference to
The field device 602 additionally includes the alarm generator component 102. As described above, the alarm generator component 102 can create an alarm and associate such alarm with a timestamp upon a process variable being outside a desired range, a particular user action, etc. The alarm generator component 102 is associated with the buffering component 104, which can cache alarms created by the alarm generator component 102 for a predetermined amount of time, until a confirmation is received from a device or individual that is to see the alarm, or other suitable parameter. A confirmation component 606 can be employed to confirm that an intended recipient 608 has received an alarm created by the alarm generator component 102. Pursuant to an example, the recipient 608 can be a server that informs the confirmation component 606 that an alarm has been received. If no confirmation is received within a particular amount of time after generation of an alarm, then the confirmation component 606 can inform the buffering component 104 that such alarm should be cached. In another example, an alarm may be desirably provided to a particular human being for review. The alarm can be cached by the buffering component 104 until the confirmation component 606 receives a confirmation that the human being has reviewed the alarm. Once the confirmation is received, a deletion component 610 can remove the alarm from the data repository 106 that is local to the field device 602. Thus, space is available for alarms where confirmation of receipt has not been received.
Turning now to
A trend analyzer component 706 can analyze contents of the data repository 704 to discern patterns therein. Such patterns can be utilized to locate origin of a problem, determine efficiencies associated with certain operators, processes, or devices, aid in determining workarounds, altering workflows, and/or the like. The trend analyzer component 706 can utilize machine-learning techniques to discern patterns associated with alarms/events retained within the data repository 704, such as Bayesian Networks, Artificial Neural Networks, a k-nearest neighbor approach, Support Vector Machines, any suitable classifier, etc. Additionally, the trend analyzer component 706 can recognize beginning of trends and can cause corrective action to be undertaken prior to a problem coming to fruition.
Turning to
Referring specifically to
At decision block 808 a determination is made regarding whether the relevant device is connected to the device generating the alarm. If the device is not connected, then at 810 the alarm can be cached. For instance, the device generating the alarm can include a local data repository, and the alarm can be cached within such repository. Once the alarm is cached, connectivity of the relevant device can be periodically checked. If the relevant device is connected, then at 812 the alarm can be provided to such device. The methodology 800 then completes at 814.
With reference now to
Turning now to
At 1008, an alarm is customized according to the analysis. Moreover, a single event can cause generation of an alarm that is intended for several parties, wherein the alarm can be customized for each of the several parties. In an example, it may be desirable to provide an alarm to a line operator in the United States who will receive the alarm on a human-machine interface (HMI) as well as to an executive in Japan who will receive the alarm on a cellular telephone. Thus, the alarm can be provided to the operator in English while maximizing screen real-estate and resolution capabilities with content that is associated with the operator, while the executive can be provided the alarm in Japanese in a manner suitable for viewing on a mobile telephone. At 1010, the alarm is cached within the device generating the alarm. The methodology 1000 then completes at 1012.
With reference to
The system bus 1118 can be any of several types of bus structure(s) including the memory bus or memory controller, a peripheral bus or external bus, and/or a local bus using any variety of available bus architectures including, but not limited to, 8-bit bus, Industrial Standard Architecture (ISA), Micro-Channel Architecture (MSA), Extended ISA (EISA), Intelligent Drive Electronics (IDE), VESA Local Bus (VLB), Peripheral Component Interconnect (PCI), Universal Serial Bus (USB), Advanced Graphics Port (AGP), Personal Computer Memory Card International Association bus (PCMCIA), and Small Computer Systems Interface (SCSI).
The system memory 1116 includes volatile memory 1120 and nonvolatile memory 1122. The basic input/output system (BIOS), containing the basic routines to transfer information between elements within the computer 1112, such as during start-up, is stored in nonvolatile memory 1122. By way of illustration, and not limitation, nonvolatile memory 1122 can include read only memory (ROM), programmable ROM (PROM), electrically programmable ROM (EPROM), electrically erasable PROM (EEPROM), or flash memory. Volatile memory 1120 includes random access memory (RAM), which acts as external cache memory. By way of illustration and not limitation, RAM is available in many forms such as synchronous RAM (SRAM), dynamic RAM (DRAM), synchronous DRAM (SDRAM), double data rate SDRAM (DDR SDRAM), enhanced SDRAM (ESDRAM), Synchlink DRAM (SLDRAM), and direct Rambus RAM (DRRAM).
Computer 1112 also includes removable/non-removable, volatile/non-volatile computer storage media.
It is to be appreciated that
A user enters commands or information into the computer 1112 through input device(s) 1136. Input devices 1136 include, but are not limited to, a pointing device such as a mouse, trackball, stylus, touch pad, keyboard, microphone, joystick, game pad, satellite dish, scanner, TV tuner card, digital camera, digital video camera, web camera, and the like. These and other input devices connect to the processing unit 1114 through the system bus 1118 via interface port(s) 1138. Interface port(s) 1138 include, for example, a serial port, a parallel port, a game port, and a universal serial bus (USB). Output device(s) 1140 use some of the same type of ports as input device(s) 1136. Thus, for example, a USB port may be used to provide input to computer 1112, and to output information from computer 1112 to an output device 1140. Output adapter 1142 is provided to illustrate that there are some output devices 1140 like monitors, speakers, and printers, among other output devices 1140, which require special adapters. The output adapters 1142 include, by way of illustration and not limitation, video and sound cards that provide a means of connection between the output device 1140 and the system bus 1118. It should be noted that other devices and/or systems of devices provide both input and output capabilities such as remote computer(s) 1144.
Computer 1112 can operate in a networked environment using logical connections to one or more remote computers, such as remote computer(s) 1144. The remote computer(s) 1144 can be a personal computer, a server, a router, a network PC, a workstation, a microprocessor based appliance, a peer device or other common network node and the like, and typically includes many or all of the elements described relative to computer 1112. For purposes of brevity, only a memory storage device 1146 is illustrated with remote computer(s) 1144. Remote computer(s) 1144 is logically connected to computer 1112 through a network interface 1148 and then physically connected via communication connection 1150. Network interface 1148 encompasses communication networks such as local-area networks (LAN) and wide-area networks (WAN). LAN technologies include Fiber Distributed Data Interface (FDDI), Copper Distributed Data Interface (CDDI), Ethemet/IEEE 802.3, Token Ring/IEEE 802.5 and the like. WAN technologies include, but are not limited to, point-to-point links, circuit switching networks like Integrated Services Digital Networks (ISDN) and variations thereon, packet switching networks, and Digital Subscriber Lines (DSL).
Communication connection(s) 1150 refers to the hardware/software employed to connect the network interface 1148 to the bus 1118. While communication connection 1150 is shown for illustrative clarity inside computer 1112, it can also be external to computer 1112. The hardware/software necessary for connection to the network interface 1148 includes, for exemplary purposes only, internal and external technologies such as, modems including regular telephone grade modems, cable modems and DSL modems, ISDN adapters, and Ethernet cards.
What has been described above includes examples of the claimed subject matter. It is, of course, not possible to describe every conceivable combination of components or methodologies for purposes of describing the claimed subject matter, but one of ordinary skill in the art may recognize that many further combinations and permutations are possible. Accordingly, the claimed subject matter is intended to embrace all such alterations, modifications and variations that fall within the spirit and scope of the appended claims. Furthermore, to the extent that the term “includes” is used in either the detailed description or the claims, such term is intended to be inclusive in a manner similar to the term “comprising” as “comprising” is interpreted when employed as a transitional word in a claim.