Patent Description:
At various production sites, there is a need to improve an equipment utilization rate by predictive maintenance of machines and apparatuses. The predictive maintenance means a maintenance mode in which maintenance works such as repair, replacement, and the like are performed before an equipment comes into a state unless the equipment is stopped due to a fact that any abnormality in machines and devices is detected.

In order to realize the predictive maintenance, a construction is necessary in which state values of machines and apparatuses are collected and whether any abnormality has occurred in the machines and apparatuses is judged based on the collected state values.

In order to realize this predictive maintenance, it is necessary to process a plurality of pieces of time series data obtained from the machines and apparatuses. With respect to the conventional general configuration, for example, as shown in <CIT> (Patent literature <NUM>), in the conventional configuration, a plurality of pieces of time series data are aggregated in a host data logger or the like and are integrated based on time information and the like.

This data logger system has a relatively long data collection cycle, and it takes a relatively long time from the actual collection of data to the aggregation of data for the data logger system. If abnormality monitoring is performed using this configuration, delay time until any abnormality generated in machines and apparatuses to be monitored is detected cannot be shortened. Patent literature <CIT> relates an abnormality detection device including a normal model storage unit that stores normal models, an operation mode determination unit that determines an operation mode of an object from a communication log; a normal model selection unit that selects a normal model corresponding to the operation mode determined by the operation mode determination unit from the normal models stored in the normal model storage unit; a feature quantity extracting unit for extracting a feature quantity from the communication log according to the selected normal model; and an abnormality degree calculating unit for calculating and outputting a degree of abnormality in communication in the communication network from the normal model selected by the normal model selecting unit and the feature quantity extracted by the feature quantity extracting unit. Patent literature <CIT> relates to an abnormality detecting device comprising a sequence characteristic quantity extracting means that, when input with sequence data, extracts a sequence characteristic quantity that is a characteristic quantity of a signal included in the sequence data; a sequence probability distribution calculating means that calculates a sequence probability distribution, which is a probability distribution on which the sequence characteristic quantity is based; a reference probability distribution storage means that stores a reference probability distribution, which is a probability distribution that serves as a reference for the sequence characteristic quantity in the sequence data; a state characteristic quantity calculating means that calculates a state characteristic quantity that expresses a fluctuation condition of the sequence probability distribution with respect to the reference probability distribution; and an abnormality detection means that detects a sequence data abnormality on the basis of a plurality of state characteristic quantities calculated from the sequence data.

Optional features of the invention are provided by the dependent claims.

Thus, there is a possibility that the delay time for detecting an abnormality can be shortened in a manner of realizing abnormality detection processing by a control apparatus that controls a machine, an apparatus, and the like to be controlled. However, in order to realize the abnormality detection, it is necessary to use data over a plurality of control cycles, a processing delay in the control apparatus and the like also occur.

Therefore, a mechanism for consistent processing from the collection of state values from a subject to be controlled to the abnormality detection processing in a control apparatus is required. One objective of the present invention is to satisfy this requirement.

A control apparatus according to the invention is disclosed in claim <NUM>.

According to this configuration, because the value of the first internal state value for identifying the unit section of the second internal state value which is a subject is associated with both the feature quantity calculated by the feature quantity extraction unit and the detection result generated by the abnormality detection engine, the consistency can be ensured from the input of the internal state value, the calculation of the feature quantity to the output of the detection result.

The value of the first internal state value output by the feature quantity extraction unit may be input to the abnormality detection engine. According to this configuration, the consistency of processing can be surely ensured by ensuring the continuity between the output of the feature quantity extraction unit and the input of the abnormality detection engine.

The feature quantity extraction unit may receive a designation of an arbitrary internal state value as the first internal state value. According to this configuration, a user can arbitrarily set the optimum unit section by using the first internal state value corresponding to the subject to be monitored included in the subject to be controlled.

The feature quantity extraction unit may determine a section in which the first internal state value shows the same value as a unit section. According to this configuration, a section in which the first internal state value does not change can be easily set as a unit section.

The feature quantity extraction unit may, for each unit section, calculate the feature quantity from the change of the second internal state value in a partial section in which a predetermined third internal state value shows a predetermined value in the unit section. According to this configuration, the feature quantity can be calculated from a partial section of the unit section determined according to the value of the first internal state value, and the abnormality detection processing can be executed.

The abnormality detection engine may refer to learning data prepared in advance and calculate, from the feature quantity, a value indicating a possibility that any abnormality has occurred in the subject to be monitored. According to this configuration, a possibility that an abnormality has occurred in the subject to be monitored can be quantitatively evaluated.

The abnormality detection engine may generate a detection result indicating whether an abnormality has occurred in the subject to be monitored based on whether a value indicating the possibility that any abnormality has occurred in the subject to be monitored is within a predetermined threshold range. According to this configuration, whether there is an abnormality in the subject to be monitored can be quantitatively determined.

The learning data may include a group of feature quantities obtained in a normal case, and the abnormality detection engine may calculate the value indicating the possibility that any abnormality has occurred in the subject to be monitored based on a degree of deviation of the feature quantity with respect to the group of feature quantities included in the learning data. According to this configuration, a possibility that an abnormality has occurred in the subject to be monitored can be quantitatively evaluated according to the degree of deviation from a normal state.

The control apparatus may further include a storage unit that stores at least one of time series data of the feature quantity corresponding to the value of the first internal state value and time series data of the detection result corresponding to the value of the first internal state value. According to this configuration, the storage of various information calculated inside the control apparatus, and the output of the various information calculated inside the control apparatus to an external apparatus or the like can be facilitated.

The management unit may further internally hold calculation results of the feature quantity extraction unit and the abnormality detection engine as internal state values that can be referred to by a program executed by the control apparatus. According to this configuration, the processing related to the abnormality detection can be appropriately executed by referring to the calculation results of the feature quantity extraction unit and the abnormality detection engine in the program executed by the control apparatus.

A control program according to the invention is disclosed in claim <NUM>.

According to this configuration, because the value of the first internal state value for identifying the unit section of the second internal state value to be a subject is associated with both the calculated feature quantity and the generated detection result, the consistency can be ensured from the input of the internal state value, the calculation of the feature quantity to the output of the detection result.

According to the present invention, consistent processing from the acquisition of state values from the subject to be controlled to the abnormality detection processing can be performed.

An embodiment of the present invention is described in detail with reference to the drawings. Moreover, the same or corresponding parts in the drawings are designated by the same reference signs, and description thereof is not repeated.

First, an example of a case in which the present invention is applied is described.

A function configuration example of a control system capable of executing abnormality detection processing according to the embodiment is described. In the following description, because the description mainly focuses on the abnormality detection processing performed by the control system, the overall control system is also referred to as an "abnormality detection system".

First, an overall configuration example of an abnormality detection system <NUM> according to the embodiment is described.

<FIG> is a schematic diagram showing the overall configuration example of the abnormality detection system <NUM> according to the embodiment. With reference to <FIG>, the abnormality detection system <NUM> includes, as main components, a control apparatus <NUM> that controls a subject to be controlled and a support apparatus <NUM> that can be connected to the control apparatus <NUM>. The abnormality detection system <NUM> may further include a host server <NUM> and a display apparatus <NUM> as an optional configuration.

The control apparatus <NUM> generates a detection result indicating whether any abnormality has occurred in a subject to be monitored included in the subject to be controlled. The control apparatus <NUM> may be embodied as a kind of computer such as a programmable controller (PLC).

More specifically, the control apparatus <NUM> is connected to a field apparatus group <NUM> via a first field bus <NUM> and is connected to one or more display apparatuses <NUM> via a second field bus <NUM>. Furthermore, the control apparatus <NUM> is connected to the host server <NUM> via a local network <NUM>. The control apparatus <NUM> exchanges data with the connected apparatuses via respective networks.

The control apparatus <NUM> has a control calculation execution engine that executes various calculations for controlling equipment and machines. In addition to the control calculation execution engine, the control apparatus <NUM> has an acquisition function for acquiring data acquired by the field apparatus group <NUM> and transferred to the control apparatus <NUM> (hereinafter, also referred to as "input value"). Furthermore, the control apparatus <NUM> also has a monitoring function for judging whether an abnormality has occurred in the subject to be controlled based on the acquired input value or the like. By implementing these functions in the control apparatus <NUM>, the abnormality generated in the subject to be controlled can be monitored in a shorter period.

For this abnormality detection function, an abnormality detection engine <NUM> mounted on the control apparatus <NUM> provides a monitoring function, and an internal database <NUM> (hereinafter, also referred to as "internal DB") mounted inside the control apparatus <NUM> provides a storage function for various data. Details of the internal DB <NUM> and the abnormality detection engine <NUM> are described later.

In the specification, the "state value" is a term containing a value that can be observed by an arbitrary subject to be controlled (including: a subject to be monitored). The "state value" can include, for example, a physical value that can be measured by an arbitrary sensor; a ON/OFF state such as a relay, a switch, or the like; instruction values such as a position, a speed, a torque, and the like given to a servo driver by the PLC; variable values used by the PLC for the calculation; and the like.

As the first field bus <NUM> and the second field bus <NUM>, preferably, a network is employed that performs a fixed-period communication in which an arrival time of data is guaranteed. EtherCAT (registered trademark) or the like is known as the network that performs this fixed-period communication.

The field apparatus group <NUM> includes an apparatus that collects, as an input value, the state value of the subject to be controlled or a manufacturing apparatus, a production line, and the like related to the control (hereinafter, also collectively referred to as a "field"). An input relay, various sensors, and the like are assumed as apparatuses for acquiring this state value. The field apparatus group <NUM> further includes an apparatus that exerts some action on the field based on an instruction value generated by the control apparatus <NUM> (hereinafter, also referred to as an "output value"). An output relay, a contactor, a servo driver and a servo motor, and any other actuator are assumed as this apparatus that exerts some action on the field. These field apparatus groups <NUM> exchange data including the input value and the output value with the control apparatus <NUM> via the first field bus <NUM>.

In the configuration example shown in <FIG>, the field apparatus group <NUM> includes a remote input/output (I/O) apparatus <NUM>, a relay group <NUM>, an image sensor <NUM>, a camera <NUM>, a servo driver <NUM>, and a servo motor <NUM>.

The remote I/O apparatus <NUM> includes a communication unit that communicates via the first field bus <NUM>, and an input/output unit (hereinafter, also referred to as an "I/O unit") for acquiring the input value and outputting the output value. The input value and the output value are exchanged between the control apparatus <NUM> and the field via this I/O unit. <FIG> shows an example in which digital signals are exchanged as the input value and the output value via the relay group <NUM>.

The I/O unit may be directly connected to the field bus. <FIG> shows an example in which an I/O unit <NUM> is directly connected to the first field bus <NUM>.

The image sensor <NUM> performs image measurement processing such as pattern matching and the like on image data captured by the camera <NUM>, and transmits a processing result to the control apparatus <NUM>.

The servo driver <NUM> drives the servo motor <NUM> according to the output value (for example, a position instruction or the like) from the control apparatus <NUM>.

As described above, the data is exchanged between the control apparatus <NUM> and the field apparatus group <NUM> via the first field bus <NUM>, and these exchanged data are updated in an extremely short period of several hundreds of µsec orders to several tens of msec orders. Moreover, this update processing of the exchanged data may also be referred to as "I/O refresh processing".

The support apparatus <NUM> is an apparatus that supports preparations necessary for the control apparatus <NUM> to control the subject to be controlled. Specifically, the support apparatus <NUM> provides a development environment for a program executed by the control apparatus <NUM> (a program creation/editing tool, a parser, a compiler, or the like); a setting environment for setting parameters (configuration) of the control apparatus <NUM> and various devices connected to the control apparatus <NUM>; a function of transmitting a generated user program to the control apparatus <NUM>; a function of modifying/changing the user program or the like executed on the control apparatus <NUM> online; and the like.

Furthermore, the support apparatus <NUM> also provides a function of setting a parameter <NUM> and learning data <NUM> (details are described later) that define the abnormality detection processing performed by the abnormality detection engine <NUM> mounted on the control apparatus <NUM>.

The display apparatus <NUM> is connected to the control apparatus <NUM> via the second field bus <NUM>, receives an operation from a user, sends a command and the like corresponding to the user operation to the control apparatus <NUM>, and graphically displays processing results and the like of the control apparatus <NUM>.

The host server <NUM> is connected to the control apparatus <NUM> via the local network <NUM>, and exchanges necessary data with the control apparatus <NUM>. The host server <NUM> has, for example, a database function, and periodically or eventually collects data stored in the internal DB <NUM> of the control apparatus <NUM>. A general-purpose protocol such as Ethernet (registered trademark) or the like may be implemented in the local network <NUM>.

Next, a concept of "frame" is introduced as a unit section for judging whether any abnormality has occurred in the subject to be monitored included in the subject to be controlled in the abnormality detection processing according to the embodiment. In this way, in the specification, the "frame" means a unit section for judging whether any abnormality has occurred in the subject to be monitored. That is, whether any abnormality has occurred in the subject to be monitored is judged for each "frame". In the embodiment, the "frame" may be determined based on a state value arbitrarily set by the user.

<FIG> is a schematic diagram showing a main part related to the abnormality detection processing in the control apparatus <NUM> of the abnormality detection system <NUM> according to the embodiment. With reference to <FIG>, the control apparatus <NUM> includes a management unit <NUM> corresponding to a management unit, a feature quantity extraction unit <NUM>, and the abnormality detection engine <NUM> corresponding to an abnormality detection engine.

The management unit <NUM> acquires state values generated in the subject to be controlled such as a machine, an apparatus, or the like for each predetermined control period, and updates internal state values held internally.

In the control apparatus <NUM> according to the embodiment, for any of the state value (the input value) acquired from the subject to be controlled, the instruction value (the output value) given to the subject to be controlled, and data or values (all contained in "internal state values") used for calculation processing in the control apparatus <NUM> or the state management of the control apparatus <NUM>, a form of referencing using the "variable" is employed. Therefore, in the following description, the "internal state value" that can be used in the control apparatus <NUM> may be expressed as a "variable value". Besides, a set of internal state values indicating the state values generated in the subject to be controlled such as a machine, an apparatus, or the like is expressed as a "device variable". That is, the management unit <NUM> acquires the state values generated in the subject to be controlled such as a machine, an apparatus, or the like for each predetermined control period, and updates the values of a device variable <NUM>.

Moreover, the present invention is not limited to the form of referencing the value by using the "variable", but can also be applied to a form of directly designating and referencing a physical address or the like of a memory that stores each value, or other forms.

The feature quantity extraction unit <NUM> determines a unit section (frame) according to the value of a predetermined frame variable (any variable included in the device variable <NUM>; corresponding to the "first internal state value"). Then, for each determined unit section (frame), the feature quantity extraction unit <NUM> calculates a feature quantity from a change of a predetermined sampling variable (any variable included in the device variable <NUM>; corresponding to the "second internal state value") generated in the unit section. The feature quantity extraction unit <NUM> sequentially calculates the feature quantity (for example, an average value, a maximum value, a minimum value, or the like over a predetermined time) according to predetermined processing from the change of the predetermined sampling variable for each frame.

In this way, for each unit section (frame) determined according to the value of the predetermined frame variable (first internal state value), the feature quantity extraction unit <NUM> calculates the feature quantity from the change of the predetermined sampling variable (the second internal state value) generated in the unit section.

The abnormality detection engine <NUM> generates a detection result indicating whether any abnormality has occurred in the subject to be monitored included in the subject to be controlled, on the basis of the feature quantity calculated by the feature quantity extraction unit <NUM>.

By employing the above configuration, any abnormality that may occur can be detected in an arbitrary subject to be monitored included in the subject to be controlled.

The feature quantity extraction unit <NUM> outputs the value of the frame variable (first internal state value) used to determine the unit section (frame) to the abnormality detection engine <NUM>, in correspondence with the calculated feature quantity. In addition, the feature quantity extraction unit <NUM> outputs the value of the frame variable (first internal state value) associated with the feature quantity used for generating a detection result, in correspondence with this generated detection result. In this way, by associating the value of the frame variable (first internal state value) with the feature quantity output from the feature quantity extraction unit <NUM> and the detection result output from the abnormality detection engine <NUM>, the consistency between the value of the device variable <NUM>, the feature quantity calculated by the feature quantity extraction unit <NUM>, and the detection result generated by the abnormality detection engine <NUM> can be maintained.

Next, a hardware configuration example of main apparatuses configuring the abnormality detection system <NUM> according to the embodiment is described.

<FIG> is a block diagram showing a hardware configuration example of the control apparatus <NUM> configuring the abnormality detection system <NUM> according to the embodiment. With reference to <FIG>, the control apparatus <NUM> includes: a processor <NUM> such as a central processing unit (CPU), a micro-processing unit (MPU), or the like; a chipset <NUM>; a main storage apparatus <NUM>; a secondary storage apparatus <NUM>; a local network controller <NUM>; a universal serial bus (USB) controller <NUM>; a memory card interface <NUM>; an internal bus controller <NUM>; field bus controllers <NUM> and <NUM>; and I/O units <NUM>-<NUM>, <NUM>-<NUM>.

The processor <NUM> realizes a control corresponding to the subject to be controlled, and various processes as described later by reading various programs stored in the secondary storage apparatus <NUM>, expanding the read programs in the main storage apparatus <NUM>, and executing the expanded programs. The chipset <NUM>, together with the processor <NUM>, controls each component to realize processing of the overall control apparatus <NUM>.

In the secondary storage apparatus <NUM>, in addition to a system program <NUM> (corresponding to a control program) for realizing functions provided by the control apparatus <NUM>, a user program executed using an execution environment provided by the system program <NUM> is stored. The system program <NUM> also stores a program for realizing the internal DB <NUM> and the abnormality detection engine <NUM>.

The local network controller <NUM> controls the exchange of data with other apparatuses via the local network <NUM>. The USB controller <NUM> controls the exchange of data with the support apparatus <NUM> via a USB connection.

The memory card interface <NUM> is configured in a manner that a memory card <NUM> can be attached and detached. The memory card interface <NUM> can write data into the memory card <NUM>, and read various data (a user program, trace data, and the like) from the memory card <NUM>.

The internal bus controller <NUM> is an interface for exchanging data with the I/O units <NUM>-<NUM>, <NUM>-<NUM>. mounted on the control apparatus <NUM>.

The field bus controller <NUM> controls the exchange of data with other apparatuses via the first field bus <NUM>. Similarly, the field bus controller <NUM> controls the exchange of data with other apparatuses via the second field bus <NUM>.

<FIG> shows a configuration example in which the processor <NUM> executes a program to provide necessary functions, and some or all of these provided functions may be implemented using a dedicated hardware circuit (for example, an application specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or the like). Alternatively, the main part of the control apparatus <NUM> may be realized using hardware (for example, an industrial personal computer based on a general-purpose personal computer) that follows a general-purpose architecture. In this case, a virtualization technology may be used to execute a plurality of operating systems (OS) having different uses in parallel, and to execute necessary applications on each OS.

Next, as an example, the support apparatus <NUM> according to the embodiment is realized by executing a program by using hardware (for example, a general-purpose personal computer) that follows a general-purpose architecture.

<FIG> is a block diagram showing a hardware configuration example of the support apparatus <NUM> configuring the abnormality detection system <NUM> according to the embodiment. With reference to <FIG>, the support apparatus <NUM> includes: a processor <NUM> such as a CPU, a MPU, or the like; a drive <NUM>; a main storage apparatus <NUM>; a secondary storage apparatus <NUM>; a USB controller <NUM>; a local network controller <NUM>; an input unit <NUM>, and a display unit <NUM>. These components are connected via a bus <NUM>.

The processor <NUM> realizes various processes as described later by reading various programs stored in the secondary storage apparatus <NUM>, expanding the read programs in the main storage apparatus <NUM>, and executing the expanded programs.

The secondary storage apparatus <NUM> is configured by, for example, a hard disk drive (HDD), a solid state drive (SSD), or the like. The secondary storage apparatus <NUM> typically stores various programs including: a development program (not shown) for creating a user program executed by the support apparatus <NUM>, debugging the created program, defining a system configuration, setting various parameters, and the like; a data mining tool <NUM>; and a setting tool <NUM>. The secondary storage apparatus <NUM> may store the OS and other necessary programs.

The drive <NUM> can write data into a storage medium <NUM> and read various data (a user program, trace data, time series data, and the like) from the storage medium <NUM>. The storage medium <NUM> includes, for example, a storage medium (for example, an optical storage medium such as a digital versatile disc (DVD) or the like) that non-transiently stores a computer-readable program. From the memory card <NUM> or the storage medium <NUM>, the program or data stored therein is read and then installed in an internal storage area such as the secondary storage apparatus <NUM> or the like.

The various programs executed by the support apparatus <NUM> may be installed via the computer-readable memory card <NUM> or the storage medium <NUM>, or may be installed in a form of being downloaded from a server apparatus or the like on a network. In addition, the function provided by the support apparatus <NUM> according to the embodiment may also be realized in a form of using a part of modules provided by the OS.

The USB controller <NUM> controls the exchange of data with the control apparatus <NUM> via a USB connection. The local network controller <NUM> controls the exchange of data with other apparatuses via an arbitrary network.

The input unit <NUM> is configured by a keyboard, a mouse, and the like, and receives user operations. The display unit <NUM> is configured by a display, various indicators, and the like, and outputs processing results and the like from the processor <NUM>. A printer may be connected to the support apparatus <NUM>.

<FIG> shows a configuration example in which the processor <NUM> executes a program to provide necessary functions, and some or all of these provided functions may be implemented using a dedicated hardware circuit (for example, an ASIC, a FPGA, or the like).

Next, a software configuration example and a function configuration example of main apparatuses configuring the abnormality detection system <NUM> according to the embodiment are described.

<FIG> is a block diagram showing the software configuration example of the abnormality detection system <NUM> according to the embodiment.

With reference to <FIG>, the abnormality detection processing of the abnormality detection system <NUM> is realized in cooperation with the control apparatus <NUM> and the support apparatus <NUM>. The control apparatus <NUM> judges whether there is an abnormality on the basis of state values acquired from the subject to be controlled for each predetermined control period.

More specifically, the control apparatus <NUM> includes, as main function configurations, the internal DB <NUM>, the abnormality detection engine <NUM>, the feature quantity extraction unit <NUM>, a time series database manager <NUM>, and the management unit <NUM>.

The abnormality detection engine <NUM> is a part that mainly executes the abnormality detection processing. According to the parameter <NUM> set by the support apparatus <NUM>, the abnormality detection engine <NUM> calculates a value (score) indicating a possibility that any abnormality has occurred in the subject to be monitored based on a feature quantity (usually, a plurality of types of feature quantities are used) given by the feature quantity extraction unit <NUM> and the learning data <NUM> set by the support apparatus <NUM>, and the abnormality detection engine <NUM> judges whether an abnormality has occurred in the subject to be monitored based on whether the calculated score value is within a predetermined threshold range. The threshold range may be defined based on one or more threshold values. In addition, a plurality of threshold ranges (for example, a caution level and a damage level) may be set. The abnormality detection engine <NUM> outputs, to the time series database manager <NUM>, a detection result indicating whether an abnormality has occurred in the subject to be monitored. In addition, a processing result <NUM> that includes the detection result, which is output by the abnormality detection engine <NUM> and indicates whether an abnormality has occurred in the subject to be monitored, is output to the management unit <NUM> and is periodically updated as an internal state value. The parameter <NUM> includes the setting of a subject variable used for the abnormality detection processing, and a frame definition for identifying a frame ID and the like described later.

According to the parameter <NUM> set by the support apparatus <NUM>, the feature quantity extraction unit <NUM> cyclically calculates a feature quantity (for example, an average value, a maximum value, a minimum value, or the like over a predetermined time) according to predetermined processing from a value indicated by a device variable (sampling variable) of a designated subject. The feature quantity extraction unit <NUM> outputs the calculated feature quantity to the abnormality detection engine <NUM> and the time series database manager <NUM>.

The time series database manager <NUM> writes the value (raw data) of the device variable <NUM> updated by the management unit <NUM> for each control period, the feature quantity calculated by the feature quantity extraction unit <NUM> for each control period, and the detection result output from the abnormality detection engine <NUM>, into the internal DB <NUM> for each control period.

The internal DB <NUM> corresponds to a storage unit and includes a raw data time series DB <NUM> for storing the raw data in time series, a feature quantity time series DB <NUM> for storing the feature quantities in time series, and a detection result time series DB <NUM> for storing the detection results in time series.

The "raw data" basically means a state value acquired from the subject to be controlled or the subject to be monitored (moreover, including a case in which a unit conversion to a physical quantity or the like is performed).

The learning data <NUM> is a data set used by the abnormality detection engine <NUM> to calculate the value (the score) indicating the possibility that any abnormality has occurred in the subject to be monitored, and basically includes a feature quantity calculated based on a state value in a "normal" case and/or a feature quantity calculated based on a state value in an "abnormal" case. The abnormality detection engine <NUM> refers to the learning data <NUM> prepared in advance and calculates the score, which is the value indicating the possibility that any abnormality has occurred in the subject to be monitored, from the feature quantity calculated by the feature quantity extraction unit <NUM>.

As an example, a method of calculating the score corresponding to an input value based on the degree of deviation of the input value with respect to a normal value group in a hyperspace is employed as an algorithm of abnormality detection in the abnormality detection engine <NUM>. In this case, the learning data <NUM> represents the normal value group in the hyperspace, which corresponds to a "model" indicating a subject to be monitored.

As this method of abnormality detection based on the degree of deviation, known are a method of detecting an abnormality based on the shortest distance from each point to a normal value group (k-nearest neighbor method), a local outlier factor (LoF) method of evaluating distance including a cluster containing the normal value group, an isolation forest (iForest) method of using a score calculated from a path length, and the like.

When the method of abnormality detection based on the degree of deviation is employed, the learning data <NUM> includes a group of feature quantities obtained in the normal case, and the abnormality detection engine <NUM> calculates the score which is the value indicating the possibility that any abnormality has occurred in the subject to be monitored based on the degree of deviation of the feature quantity of a subject with respect to the group of feature quantities included in the learning data <NUM>.

In addition to the value of the device variable <NUM>, the management unit <NUM> updates the value of the processing result <NUM> obtained from the abnormality detection engine <NUM> into a latest value for each control period. That is, the management unit <NUM> executes at least a part of processes related to the I/O refresh processing, and updates the input value acquired from the subject to be controlled and the output value given to the subject to be controlled for each control period.

On the other hand, the support apparatus <NUM> provides the control apparatus <NUM> with the parameter <NUM> and the learning data <NUM> for realizing the abnormality detection processing in the control apparatus <NUM>.

More specifically, the support apparatus <NUM> includes the data mining tool <NUM> and the setting tool <NUM> as main function configurations.

The data mining tool <NUM> acquires raw data <NUM> (time series data) stored in the internal DB <NUM> (mainly the raw data time series DB <NUM>) of the control apparatus <NUM>, and supports an exploration of the device variables, the feature quantities, and the like suitable for the abnormality detection in the subject to be monitored. That is, the user uses the data mining tool <NUM> to analyze the raw data <NUM> which is the time series data of the device variable related to the subject to be monitored, and thereby the user determines the device variable suitable for abnormality detection in the subject to be monitored and the feature quantity of the device variable. Then, the data mining tool <NUM> generates the learning data <NUM> from the raw data <NUM> and determines the corresponding parameter <NUM> according to the determined device variable and the feature quantity thereof.

The setting tool <NUM> functions as an interface with the control apparatus <NUM>, acquires the raw data <NUM> from the control apparatus <NUM>, and sets the learning data <NUM> and the parameter <NUM> generated by the data mining tool <NUM> to the control apparatus <NUM>.

In the abnormality detection system <NUM> according to the embodiment, whether there is an abnormality in real time is judged in a manner that the abnormality detection processing is included in the control calculation periodically executed by the control apparatus <NUM>.

The abnormality detection processing according to the embodiment mainly includes: (<NUM>) the I/O refresh processing executed in the management unit <NUM>; (<NUM>) the feature quantity extraction processing executed by the feature quantity extraction unit <NUM>; and (<NUM>) the processing of score calculation and threshold value judgment executed by the abnormality detection engine <NUM>.

On the other hand, in the control apparatus <NUM>, because the processes (<NUM>) to (<NUM>) are executed at different control timings, it is necessary to maintain the consistency of the data processed in each processing.

In the control apparatus <NUM> of the abnormality detection system <NUM> according to the embodiment, the processing is executed according to a time scheduling method.

<FIG> is a schematic diagram showing an execution timing of the control processing in the control apparatus <NUM> of the abnormality detection system <NUM> according to the embodiment. With reference to <FIG>, in the control apparatus <NUM>, the execution of processing is managed in a unit of a task period <NUM> which is a predetermined control period.

In each task period <NUM>, I/O refresh processing <NUM>, control processing <NUM>, and a system service <NUM> are mainly executed.

The I/O refresh processing <NUM> corresponds to the I/O refresh processing executed in the management unit <NUM> (<FIG>).

The control processing <NUM> includes processing related to a system of the control apparatus <NUM> and a user program (typically, a sequence program including a combination of sequence commands, a motion program including a combination of motion commands, or the like). The feature quantity extraction processing executed by the feature quantity extraction unit <NUM> is included in the control processing <NUM>.

The system service <NUM> is a general term for programs executed in a duration in which the I/O refresh processing <NUM> and the control processing <NUM> are not executed in each task period <NUM>, and the system service <NUM> includes communication processing between the control apparatus <NUM> and an external apparatus, and processing such as file access to the memory card <NUM> and the like. The processing of score calculation and threshold value judgment by the abnormality detection engine <NUM> is included in the system service <NUM>.

The I/O refresh processing <NUM> and the control processing <NUM> are registered as primary fixed-period tasks having the highest execution priority, and are executed with the highest priority in each task period <NUM>. In each task period <NUM>, all processes of the I/O refresh processing <NUM> and the control processing <NUM> are executed. The time required to execute the I/O refresh processing <NUM> and the control processing <NUM> in each task period <NUM> is referred to as a task execution time <NUM>.

On the other hand, because the system service <NUM> is executed in free time in each task period <NUM>, there is also a case that not all processes can be completed. In addition, the system service <NUM> includes processing that is less necessary to complete the execution of all the processes in each task period <NUM>.

Therefore, when the processing included in the system service <NUM> (including the processing of score calculation and threshold value judgment by the abnormality detection engine <NUM>) is executed in a certain task period <NUM>, if the start of a next task period <NUM> arrives, the processing is temporarily interrupted. Besides, the processing is executed if there is free time in any task period <NUM>. Accordingly, the execution of the system service <NUM> depends on the free time in the task period <NUM>.

As shown in <FIG>, (<NUM>) the I/O refresh processing executed in the management unit <NUM> and (<NUM>) the feature quantity extraction processing executed by the feature quantity extraction unit <NUM> are cyclically executed for each task period <NUM>. However, the execution timings of the I/O refresh processing and the feature quantity extraction processing are different.

In addition, (<NUM>) the processing of score calculation and threshold value judgment by the abnormality detection engine <NUM> is executed over a plurality of task periods <NUM>. Therefore, a construction for synchronizing data between the processes (<NUM>) to (<NUM>) is required.

In addition, there may be data in which values change over the plurality of task periods <NUM> in the control processing. It is necessary to reliably collect the data over the plurality of task periods <NUM>, and process and store the values. Particularly, because the processing of score calculation and threshold value judgment by the abnormality detection engine <NUM> is executed over the plurality of task periods <NUM>, the processing cannot be synchronized.

When the abnormality detection processing is executed in real time in the control apparatus <NUM>, it is necessary to consider the integrity of data or the consistency of data as described above.

Next, in the abnormality detection system <NUM> according to the embodiment, identification information for maintaining the consistency of data is introduced. This identification information is also referred to as "frame ID" below. The frame ID is identification information for identifying a data unit used for the abnormality detection processing.

By introducing this frame ID which is the identification information, the unit section to be a subject can be identified by the abnormality detection processing, and omission (dropout) and the like of the abnormality detection processing can be detected for some reason.

As the frame ID, any variable that can be referred to by the user program executed by the control apparatus <NUM> can be used. It is assumed that the variable used as the frame ID is not set on the control apparatus <NUM> side but arbitrarily set on the user side. That is, the abnormality detection engine <NUM> of the control apparatus <NUM> receives the designation of an arbitrary device variable <NUM> (internal state value) as the frame variable (first internal state value).

The variable used as the frame ID is preferably a variable that changes each time according to the operation of a machine or an apparatus which is the subject to be controlled. The following information can be used as the frame ID.

By using this frame ID, the processing time of data synchronization processing and data exclusive processing, a file management, and the like can be reduced, and the processing can be sped up.

Moreover, instead of using the frame ID used in the abnormality detection system <NUM> according to the embodiment, a form of processing by dividing the data for each predetermined time (for example, every <NUM> second) is also assumed. However, there is no guarantee for operating by dividing the time with high precision in the machine or the apparatus included in the subject to be controlled (for example, a timing shift of material input and a position shift due to friction), and it is necessary to detect an abnormality caused by the time shift. Alternatively, even if the time shift itself is not abnormal, the data of periodic unit sections of the subject to be controlled is not always possible to be used for highly precise abnormality detection.

<FIG> is a schematic diagram showing the relationship of the variables used in the abnormality detection processing in the abnormality detection system <NUM> according to the embodiment. With reference to <FIG>, the abnormality detection engine <NUM> and the feature quantity extraction unit <NUM> are mounted on the control apparatus <NUM>. The learning data <NUM> generated by the data mining tool <NUM> of the support apparatus <NUM> is provided to the control apparatus <NUM> via the setting tool <NUM>.

The feature quantity extraction unit <NUM> is realized by executing commands specified in a feature quantity extraction execution unit <NUM> executed as a primary fixed-period task. A feature quantity extraction user variable <NUM> and a system definition variable <NUM> are input to the feature quantity extraction execution unit <NUM>. In the feature quantity extraction execution unit <NUM>, one or more feature quantities are calculated by a calculation method which is defined by a feature quantity extraction setting <NUM> included in the parameter <NUM>, with respect to sampling variables (device variables) contained in the feature quantity extraction user variable <NUM>.

The feature quantity extraction user variable <NUM> includes one or more sampling variables used to calculate the feature quantity. Subframe variables for identifying a partial section used to calculate the feature quantity are respectively associated with each of the sampling variables. That is, the feature quantity extraction user variable <NUM> includes one or more pairs of the subframe variables and the sampling variables. Moreover, a processing method using the subframe variables is described later.

The feature quantity extraction user variable <NUM> further includes a frame variable used as a frame ID. A value indicated by the frame variable is used as information for identifying a data unit (a specific section of time series data) input to the feature quantity extraction execution unit <NUM>.

A value stored in the system definition variable <NUM> is used as a trigger or a condition for the feature quantity extraction execution unit <NUM> to start the processing.

A calculation result of the feature quantity extraction execution unit <NUM> is output as a feature quantity extraction user variable <NUM> and a system definition variable <NUM>.

In the feature quantity extraction user variable <NUM>, a value the same as the frame variable (a value indicated as the frame ID) for identifying the data unit used for the calculation processing of the feature quantity in the feature quantity extraction execution unit <NUM> is stored as an output frame variable. The value stored as the output frame variable is referred to in the processing in the abnormality detection engine <NUM> described later.

The system definition variable <NUM> stores the feature quantity that is the calculation result of the feature quantity extraction execution unit <NUM>. Typically, an array or structure body is used as the system definition variable <NUM>, and when a plurality of feature quantities are calculated, each feature quantity is stored in the form of a multidimensional data structure.

As shown in <FIG>, the calculation results (the feature quantity extraction user variable <NUM> and the system definition variable <NUM>) of the feature quantity extraction unit <NUM> are internally held as internal state values (variable values) managed by the management unit <NUM>. Moreover, the feature quantity extraction user variable <NUM> and the system definition variable <NUM> referred to by the feature quantity extraction unit <NUM> are also internally held as internal state values (variable values) managed by the management unit <NUM>. These internal state values (variable values) managed by the management unit <NUM> can be arbitrarily referred to from the user program and the like executed by the control apparatus <NUM>.

The abnormality detection engine <NUM> is realized by executing commands specified in an abnormality detection engine execution unit <NUM> executed as a system service. An abnormality detection user variable <NUM>, the system definition variable <NUM>, and a system definition variable <NUM> are input to the abnormality detection engine execution unit <NUM>.

The abnormality detection user variable <NUM> stores the calculation result of the feature quantity extraction execution unit <NUM>, and the abnormality detection engine execution unit <NUM> can refer to the feature quantity calculated by the feature quantity extraction execution unit <NUM>.

The abnormality detection user variable <NUM> stores a frame variable for identifying the data unit used to calculate the feature quantity used in the processing performed by the abnormality detection engine execution unit <NUM>. The frame variable stored in the abnormality detection user variable <NUM> has the same value as the output frame variable stored in the feature quantity extraction user variable <NUM>. That is, a value same as the value indicated by the frame variable output from the feature quantity extraction execution unit <NUM> can be given as the frame variable of the abnormality detection engine execution unit <NUM>. In this way, the value of the frame variable (the first internal state value) output by the feature quantity extraction unit <NUM> is input to the abnormality detection engine <NUM>.

A value stored in the system definition variable <NUM> is used as a trigger or condition for the abnormality detection engine execution unit <NUM> to start the processing.

A calculation result of the abnormality detection engine execution unit <NUM> is output as an abnormality detection user variable <NUM> and a system definition variable <NUM>.

In the abnormality detection user variable <NUM>, a value the same as the frame variable (a value indicated as the frame ID) for identifying the data unit used for the processing in the abnormality detection engine execution unit <NUM> is stored as an output frame variable.

The system definition variable <NUM> stores the feature quantity that is the calculation result of the abnormality detection engine execution unit <NUM>. Typically, an array or structure body is used as the system definition variable <NUM>. The system definition variable <NUM> stores a score calculated based on the learning data <NUM> and the feature quantity in the abnormality detection engine execution unit <NUM>, and a detection result which indicates whether there is an abnormality and is determined by comparing the calculated score with a threshold value setting <NUM> included in the parameter <NUM>.

As shown in <FIG>, the calculation results (the abnormality detection user variable <NUM> and the system definition variable <NUM>) of the abnormality detection engine <NUM> are internally held as internal state values (variable values) managed by the management unit <NUM>. Moreover, the abnormality detection user variable <NUM>, the system definition variable <NUM>, and the system definition variable <NUM> referred to by the abnormality detection engine <NUM> are also internally held as internal state values (variable values) managed by the management unit <NUM>. These internal state values (variable values) managed by the management unit <NUM> can be arbitrarily referred to from the user program and the like executed by the control apparatus <NUM>.

As described above, the consistency of data can be maintained by sharing the same frame ID (the frame variable) between the feature quantity extraction unit <NUM> and the abnormality detection engine <NUM>.

Next, the frames and the subframes in the abnormality detection system <NUM> according to the embodiment, and the processing for maintaining the consistency of data using the frame variables are described.

<FIG> is a time chart for illustrating processing related to a frame management in the control apparatus <NUM> of the abnormality detection system <NUM> according to the embodiment.

With reference to <FIG>, the abnormality detection processing is executed in units of frames. The frame is usually defined as spanning a plurality of control periods. That is, the frame can also be defined as a unit that collectively manages the plurality of control periods.

More specifically, a frame <NUM> can be set using a frame variable <NUM> arbitrarily set by a user. In an example shown in <FIG>, a variable Var_A is set as the frame variable <NUM>. For example, the variable Var_A used as the frame variable <NUM> indicates the lot number or the like of a workpiece which is a subject to be processed.

The feature quantity extraction unit <NUM> of the control apparatus <NUM> determines a section in which the frame variable (the first internal state value) shows the same value as a frame (a unit section).

With respect to the processing in the feature quantity extraction unit <NUM>, one or more feature quantities are calculated from one or more pieces of time series data (that is, a temporal change of a value designated as a sampling variable) for each frame <NUM> set by the frame variable <NUM>. In the example shown in <FIG>, an example is shown in which a feature quantity <NUM> (a feature quantity A) is sequentially calculated from time series data <NUM> (time series data A) of the unit section corresponding to each frame, and a feature quantity <NUM> (a feature quantity B) is sequentially calculated from series data <NUM> (time series data B) of the unit section corresponding to each frame.

An output frame variable <NUM> is associated with the feature quantities <NUM> and <NUM> calculated respectively. In the example shown in <FIG>, a variable Var_B is set as the output frame variable <NUM>, and the value of the variable Var_A, which is the frame variable <NUM>, is set with respect to the variable Var_B.

In this way, the same as the "frame ID" (the variable Var_A which is the frame variable <NUM>) applied to the time series data used for calculating this feature quantity, the "frame ID" (the variable Var_B which is the output frame variable <NUM>) is applied to the feature quantity calculated sequentially. That is, the calculation of the feature quantity is delayed by at least one frame, but even if this time delay exists, the consistency of data can be maintained using the "frame ID".

Furthermore, in the abnormality detection engine <NUM>, the output frame variable <NUM> output by the processing performed by the feature quantity extraction unit <NUM> is directly used as a frame variable <NUM> (the variable Var_B in the example).

With respect to a feature quantity set <NUM> (including the feature quantity A and the feature quantity B in the example) to which a value the same as the value indicated by the frame variable <NUM> is applied, the abnormality detection processing is executed, and calculation results <NUM> such as a score and the like are calculated. An output frame variable <NUM> is associated with each of the calculation results <NUM>. In the example shown in <FIG>, a variable Var_C is set as the output frame variable <NUM>, and with respect to the variable Var_C, the value of the variable Var_B which is the frame variable <NUM> is set.

Moreover, a delay may occur by a predetermined abnormality detection determination time from the input of the feature quantity set <NUM> to the calculation of the calculation results <NUM> such as the score and the like. Even if there is a delay of the abnormality detection determination time, the consistency of data can be maintained using the frame ID.

As described above, the user uses the variable set arbitrarily (basically, any one of the variables that can be referred to by the user program executed by the control apparatus <NUM>) as a key to generate or calculate the frame ID over a plurality of control periods, and the consistency (in other words, the traceability of data) can be maintained for data generated or calculated at different timings.

Next, the subframe that can be set in the frame is described. As described above, the feature quantity is calculated from the time series data of each frame, but there is also a case that the feature quantity is desired to be calculate only from time series data of a specific section in each frame.

For example, when the variable indicating the lot number of the subject workpiece is set as a frame variable, the processing may also be executed in a plurality of processes for each workpiece. In this case, the feature quantity is usually desired to be calculate based on a change of the state value that appears in a specific process.

Thus, in the embodiment, a subframe can be set for each frame, and the feature quantity can be calculated based on the time series data in a section of the set subframe. The subframe may be set for each feature quantity.

<FIG> is a time chart for illustrating the subframe shown in <FIG>. A case is assumed that the variable indicating the lot number or the like is set as a frame <NUM> with reference to <FIG>. The calculation result in each frame <NUM> is output at the end timing of each frame <NUM>. In the example shown in <FIG>, each frame <NUM> includes three processes, and a status <NUM> indicating which process the processing is in can be referred to.

The status <NUM> can be set as a subframe for identifying a subject for which the feature quantity is calculated. For example, the time series data <NUM> and <NUM> (the time series data A and B) are assumed as subjects for which the feature quantity is calculated. For the time series data <NUM>, the feature quantity is calculated from a partial section of a second process (the value of the status <NUM> is "<NUM>"); and for the time series data <NUM>, the feature quantity is calculated from a partial section of a third process (the value of the status <NUM> is "<NUM>").

In this case, a partial section in which the value of the status <NUM> shows "<NUM>" may be set as a subframe <NUM> (a subframe of the time series data A) of the time series data A, and a partial section in which the value of the status <NUM> shows "<NUM>" may be set as a subframe <NUM> (a subframe of the time series data B) of the time series data B.

In this way, for each frame variable (unit section), the feature quantity extraction unit <NUM> of the control apparatus <NUM> calculates the feature quantity from a change of the sampling variable (the second internal state value) in a partial section in which the predetermined subframe variable (the third internal state value) shows the predetermined value in this frame.

As shown in <FIG>, by limiting the section for which the feature quantity is calculated to a part of the section in the frame, more precise abnormality detection processing can be realized.

Next, a data structure that is output including the aforementioned frame ID is described.

<FIG> is a diagram for illustrating an example of the data structure stored in the internal DB <NUM> of the control apparatus <NUM> of the abnormality detection system <NUM> according to the embodiment. (a) of <FIG> shows an example of the time series data stored in the raw data time series DB <NUM> of the internal DB <NUM>, (b) of <FIG> shows an example of the time series data stored in the feature quantity time series DB <NUM> of the internal DB <NUM>, and (c) of <FIG> shows an example of the time series data stored in the detection result time series DB <NUM> of the internal DB <NUM>. The time series data shown in <FIG> uses, for example, the maximum value of the variable Var_1 which is the subject to be monitored as a feature quantity.

Moreover, the internal DB <NUM> does not have to store all the time series data shown in (a) to (c) of <FIG>, and may store only a part of the time series data.

Each record of the time series data stored in the raw data time series DB <NUM> shown in (a) of <FIG> includes time information <NUM>, a variable value <NUM>, and a frame ID <NUM>. Each record of the time series data stored in the feature quantity time series DB <NUM> shown in (a) of <FIG> includes time information <NUM>, a frame ID <NUM>, and a feature quantity <NUM>. Each record of the time series data stored in the detection result time series DB <NUM> shown in (c) of <FIG> includes time information <NUM>, a frame ID <NUM>, and a score <NUM>.

In this way, the internal DB <NUM> of the control apparatus <NUM> stores at least one of the time series data of the feature quantity associated with the value of the frame variable (the first internal state value) and the time series data of the detection result associated with the value of the frame variable (the first internal state value).

As shown in (a) to (c) of <FIG>, by using the common frame ID, the consistency can be maintained between the data generated or calculated at different timings. By using the frame ID in this way, the consistency of the processing executed by the control apparatus <NUM> and the data, and the correspondence between the records included in the data stored in the internal DB <NUM> can be easily realized. In addition, by using, as the frame ID, a value that changes according to a predetermined regularity such as monotonically increasing or monotonically decreasing (increment or decrement), omission (dropout) and the like of the abnormality detection processing can be detected.

<FIG> is a diagram showing an example of time series data which is obtained by combining each time series data shown in <FIG>. With reference to <FIG>, each record of the combined time series data includes the frame ID <NUM> (<NUM>, <NUM>), the time information <NUM> (<NUM>, <NUM>), the variable value <NUM>, the feature quantity <NUM>, and the score <NUM>.

As shown in <FIG>, by combining the three types of time series data using the frame ID as a key, the raw data acquired from the subject to be monitored, the feature quantities calculated from the raw data, the scores calculated from the feature quantities, and the like can be confirmed or analyzed in the time series.

Next, a processing procedure in the abnormality detection system <NUM> according to the embodiment is described.

<FIG> is a flowchart showing the processing procedure in the abnormality detection system <NUM> according to the embodiment. In <FIG>, processing procedures executed by the management unit <NUM>, the feature quantity extraction unit <NUM>, and the abnormality detection engine <NUM> are shown. Each step shown in <FIG> is typically realized in a manner that the processor <NUM> of the control apparatus <NUM> executes the system program <NUM> (see <FIG>) which corresponds to the control program.

First, with respect to the processing executed by the management unit <NUM>, the control apparatus <NUM> judges whether a control period has arrived (step S100). If the control period has not arrived (NO in step S100), the processing of step S100 is repeated.

If the control period has arrived (YES in step S100), the control apparatus <NUM> acquires a state value from the subject to be controlled (step S102) and updates the value of the device variable <NUM> with the acquired state value (step S <NUM>). Then, the processing of step S <NUM> and after this is repeated.

In this way, in the management unit <NUM>, the processing of acquiring the state value generated in the subject to be controlled for each predetermined control period and updating the device variable <NUM> (the internal state value) held internally is executed.

Next, as the processing executed by the feature quantity extraction unit <NUM>, the control apparatus <NUM> judges whether the value of a designated frame variable has changed (step S200). If the value of the frame variable has not changed (NO in step S200), the processing of step S200 is repeated.

If the value of the frame variable has changed (YES in step S200), the control apparatus <NUM> temporarily collects the value of the designated sampling variable (step S202).

Then, the control apparatus <NUM> judges whether the value of the frame variable is maintained at a same value (step S204). If the value of the frame variable is maintained at the same value (YES in step S204), the processing of step S202 and after this is repeated.

If the value of the frame variable is not maintained at the same value (NO in step S204), the control apparatus <NUM> calculates the feature quantity based on the values of a set of sampling variables collected in step S202 (step S206). Then, the control apparatus <NUM> outputs the calculated feature quantity in correspondence with the value of the frame variable (a value before the change) (step S208). Then, the processing of step S200 after this is repeated.

In this way, in the feature quantity extraction unit <NUM>, for each frame (unit section) determined according to the value of the predetermined frame variable (the first internal state value), the processing of calculating the feature quantity from the change of the predetermined sampling variable (the second internal state value) generated in the frame is executed. Then, in the feature quantity extraction unit <NUM>, the processing of outputting the value of the frame variable used to determine the corresponding frame (unit section) is also executed in correspondence with the calculated feature quantity.

Next, as the processing executed by the abnormality detection engine <NUM>, the control apparatus <NUM> judges whether a new feature quantity has been calculated by the feature quantity extraction unit <NUM> (step S300). If the new feature quantity has not been calculated (NO in step S300), the processing of step S300 is repeated.

If the new feature quantity has been calculated (YES in step S300), the control apparatus <NUM> generates the detection result including the score for the feature quantity calculated by referring to the learning data <NUM> (step S302). Moreover, the value of the frame variable is associated with the new feature quantity output from the feature quantity extraction unit <NUM>.

Then, the control apparatus <NUM> outputs the generated detection result in correspondence with the value of the frame variable (step S304). Then, the processing of step S300 and after this is repeated.

Claim 1:
A control apparatus (<NUM>), characterized in comprising:
a management unit (<NUM>) configured to acquire a state value generated in a subject to be controlled for each predetermined control period, and update a device variable (<NUM>) held internally;
a feature quantity extraction unit (<NUM>), configured to:
determine a unit section (<NUM>) according to a value of a predetermined frame variable (<NUM>) which is any variable included in the device variable (<NUM>), wherein the feature quantity extraction unit (<NUM>) is configured to determine the unit section (<NUM>) to be a section of time series data in which the value of the predetermined frame variable (<NUM>) is same as an identification information of the section of time series data, and the unit section (<NUM>) is a frame, and
for each unit section (<NUM>) determined according to the value of the predetermined frame variable (<NUM>), calculate a feature quantity (<NUM>, <NUM>) which represents at least one of an average value, a maximum value or a minimum value over time from a change of a predetermined sampling variable (<NUM>, <NUM>) in the unit section (<NUM>), wherein the predetermined sampling variable (<NUM>, <NUM>) is any variable included in the device variable (<NUM>) and is generated in the unit section (<NUM>), wherein the feature quantity extraction unit (<NUM>) is configured to output the value of the predetermined frame variable (<NUM>) used to determine the unit section (<NUM>) in correspondence with the calculated feature quantity (<NUM>, <NUM>);
an abnormality detection engine (<NUM>) configured to:
refer to learning data (<NUM>) prepared in advance and calculate, from the feature quantity (<NUM>, <NUM>) calculated by the feature quantity extraction unit (<NUM>), a value (<NUM>) indicating a possibility that any abnormality has occurred in a subject to be monitored comprised in the subject to be controlled,
generate a detection result (<NUM>) indicating whether any abnormality has occurred in the subject to be monitored comprised in the subject to be controlled, based on whether the value (<NUM>) indicating the possibility that any abnormality has occurred in the subject to be monitored is within a predetermined threshold range, and
output the value of the predetermined frame variable (<NUM>) associated with the feature quantity (<NUM>, <NUM>) used for generating the detection result (<NUM>), in correspondence with the generated detection result (<NUM>).