WO2020085077A1 - 制御装置および制御プログラム - Google Patents

制御装置および制御プログラム Download PDF

Info

Publication number
WO2020085077A1
WO2020085077A1 PCT/JP2019/039603 JP2019039603W WO2020085077A1 WO 2020085077 A1 WO2020085077 A1 WO 2020085077A1 JP 2019039603 W JP2019039603 W JP 2019039603W WO 2020085077 A1 WO2020085077 A1 WO 2020085077A1
Authority
WO
WIPO (PCT)
Prior art keywords
value
feature amount
unit
internal state
state value
Prior art date
Application number
PCT/JP2019/039603
Other languages
English (en)
French (fr)
Inventor
隆宏 徳
久則 五十嵐
Original Assignee
オムロン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オムロン株式会社 filed Critical オムロン株式会社
Priority to US17/279,080 priority Critical patent/US11829130B2/en
Priority to EP19875494.7A priority patent/EP3872593A4/en
Priority to CN201980058302.5A priority patent/CN112673326A/zh
Publication of WO2020085077A1 publication Critical patent/WO2020085077A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0259Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the response to fault detection
    • G05B23/0283Predictive maintenance, e.g. involving the monitoring of a system and, based on the monitoring results, taking decisions on the maintenance schedule of the monitored system; Estimating remaining useful life [RUL]
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0218Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterised by the fault detection method dealing with either existing or incipient faults
    • G05B23/0221Preprocessing measurements, e.g. data collection rate adjustment; Standardization of measurements; Time series or signal analysis, e.g. frequency analysis or wavelets; Trustworthiness of measurements; Indexes therefor; Measurements using easily measured parameters to estimate parameters difficult to measure; Virtual sensor creation; De-noising; Sensor fusion; Unconventional preprocessing inherently present in specific fault detection methods like PCA-based methods
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B23/00Testing or monitoring of control systems or parts thereof
    • G05B23/02Electric testing or monitoring
    • G05B23/0205Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults
    • G05B23/0259Electric testing or monitoring by means of a monitoring system capable of detecting and responding to faults characterized by the response to fault detection
    • G05B23/0264Control of logging system, e.g. decision on which data to store; time-stamping measurements

Definitions

  • the present invention relates to a control device capable of detecting any abnormality that may occur in a monitoring target and a control program for realizing the control device.
  • Predictive maintenance refers to a maintenance mode in which any abnormality that occurs in a machine or device is detected and maintenance work such as maintenance and replacement is performed before the equipment is put into a state unless it is stopped.
  • Patent Document 1 Japanese Patent Application Laid-Open No. 2012-243192
  • a plurality of time series data are collected in a higher-order data logger or the like. Then, they will be integrated based on time information.
  • the data collection cycle is relatively long, and it takes a relatively long time from the actual data collection to the aggregation. If abnormality monitoring is performed using such a configuration, it is not possible to shorten the delay time until detecting any abnormality that occurs in the monitored machine or device.
  • the delay time for detecting an anomaly can be shortened by implementing the anomaly detection process in the control device that controls the controlled object such as the machine or the device. It is necessary to use data over the control cycle of 1), and a processing delay in the control device occurs.
  • One object of the present invention is to meet such needs.
  • a control device includes a management unit that acquires a state value that occurs in a control target every predetermined control cycle and updates an internal state value that is internally held, and a predetermined first internal state. For each unit section determined according to the value of the value, a characteristic quantity extraction unit for calculating a characteristic quantity from a change in a predetermined second internal state value generated in the unit section is included. The feature amount extraction unit outputs the calculated feature amount in association with the value of the first internal state value that determines the corresponding unit section.
  • the control device further includes an abnormality detection unit that generates a detection result indicating whether or not some abnormality has occurred in the monitoring target included in the control target, based on the characteristic amount calculated by the characteristic amount extraction unit. The abnormality detection unit outputs the generated detection result in association with the value of the first internal state value associated with the feature amount used to generate the detection result.
  • the unit section of the target second internal state value is specified for both the feature amount calculated by the feature amount extraction unit and the detection result generated by the abnormality detection unit. Since the value of the first internal state value for doing so is associated, it is possible to ensure consistency between the input of the internal state value, the calculation of the feature amount, and the output of the detection result.
  • the value of the first internal state value output by the feature amount extraction unit may be input to the abnormality detection unit. According to this configuration, by ensuring continuity between the output of the feature amount extraction unit and the input of the abnormality detection unit, it is possible to reliably ensure the consistency of processing.
  • the feature quantity extraction unit may accept designation of an arbitrary internal state value as the first internal state value. According to this configuration, the user can arbitrarily set the optimum unit section by using the first internal state value according to the monitoring target included in the control target.
  • 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 calculates, for each unit section, the feature quantity from a change in the second internal state value in the partial section in which the predetermined third internal state value in the unit section shows a predetermined value. You may do it.
  • the feature amount 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 unit may refer to the learning data prepared in advance and calculate a value indicating the possibility that some abnormality has occurred in the monitoring target from the feature amount. According to this configuration, it is possible to quantitatively evaluate the possibility that an abnormality has occurred in the monitoring target.
  • the abnormality detection unit detects whether or not an abnormality has occurred in the monitoring target based on whether or not the value indicating the possibility that some abnormality has occurred in the monitoring target is within a predetermined threshold range. May be generated. With this configuration, it is possible to quantitatively determine whether or not an abnormality has occurred in the monitoring target.
  • the learning data includes a group of feature quantities obtained when the learning data is normal, and the abnormality detection unit determines whether any abnormality occurs in the monitoring target based on the degree of deviation of the feature quantity from the feature quantity group included in the learning data. A value indicating the possibility of being present may be calculated. According to this configuration, it is possible to quantitatively evaluate the possibility that an abnormality has occurred in the monitoring target according to the degree of deviation from the normal state.
  • the control device stores at least one of time-series data of a feature amount associated with the value of the first internal state value and time-series data of a detection result associated with the value of the first internal state value. You may make it further include a part. According to this configuration, it is possible to easily store various information calculated inside the control device and output it to an external device or the like.
  • the management unit may further internally hold the calculation results of the feature amount extraction unit and the abnormality detection unit as an internal state value that can be referred to by a program executed by the control device. According to this configuration, by referring to the calculation results of the feature amount extraction unit and the abnormality detection unit in the program executed by the control device, it is possible to appropriately execute the processing related to the abnormality detection.
  • a control program executed by a control device causes the control device to acquire the state value generated in the controlled object at each predetermined control cycle and update the internal state value internally held, and the value of the predetermined first internal state value.
  • a step of calculating a characteristic amount from a change in a predetermined second internal state value occurring in the unit section, and a unit section corresponding to the calculated characteristic amount Generate a detection result indicating whether or not any abnormality has occurred in the monitoring target included in the control target based on the step of outputting the determined first internal state value in association with each other and the calculated feature amount.
  • a step of outputting the generated detection result in association with the value of the first internal state value that was associated with the feature amount used to generate the detection result.
  • the first internal state value for specifying the target unit section of the second internal state value for both the calculated feature amount and the generated detection result Since the values are associated with each other, consistency can be ensured between the input of the internal state value, the calculation of the feature amount, and the output of the detection result.
  • FIG. 7 is a schematic diagram showing execution timing of control processing in the control device of the abnormality detection system according to the present embodiment.
  • FIG. 7 is a schematic diagram showing a relationship of variables used in an abnormality detection process in the abnormality detection system according to the present embodiment.
  • 7 is a time chart for explaining a process related to frame management in the control device of the abnormality detection system according to the present embodiment.
  • 9 is a time chart for explaining the subframes shown in FIG. 8. It is a figure for demonstrating an example of the data structure stored in internal DB of the control apparatus of the abnormality detection system according to this Embodiment. It is a figure which shows an example of the time series data which combined each time series data shown in FIG. 7 is a flowchart showing a processing procedure in the abnormality detection system according to the present embodiment.
  • a functional configuration example of a control system capable of executing the abnormality detection processing according to this embodiment will be described.
  • the abnormality detection process included in the control system will be mainly described, and thus the entire control system is also referred to as an “abnormality detection system”.
  • FIG. 1 is a schematic diagram showing an overall configuration example of an abnormality detection system 1 according to the present embodiment.
  • abnormality detection system 1 includes, as main components, control device 100 that controls a control target, and support device 200 that can be connected to control device 100.
  • the abnormality detection system 1 may further include a host server 500 and a display device 400 as an optional configuration.
  • the control device 100 generates a detection result indicating whether or not any abnormality has occurred in the monitoring target included in the control target.
  • the control device 100 may be embodied as a kind of computer such as a PLC (programmable controller).
  • control device 100 is connected to the field device group 10 via the first field bus 2 and is connected to one or a plurality of display devices 400 via the second field bus 4. Further, the control device 100 is connected to the upper server 500 via the local network 6. The control device 100 exchanges data with the connected device via each network.
  • the control device 100 has a control operation execution engine that executes various operations for controlling facilities and machines.
  • the control device 100 has an acquisition function of acquiring data (hereinafter, also referred to as “input value”) acquired by the field device group 10 and transferred to the control device 100. There is. Further, the control device 100 also has a monitoring function for determining whether or not an abnormality has occurred in the control target based on the acquired input value and the like. By mounting these functions in the control device 100, it is possible to monitor an abnormality occurring in the control target in a shorter cycle.
  • an abnormality detection engine 140 installed in the control device 100 provides a monitoring function, and an internal database (hereinafter, also referred to as “internal DB”) 130 installed in the control device 100. Provides a storage function for various data. Details of the internal DB 130 and the abnormality detection engine 140 will be described later.
  • the “state value” is a term that includes a value that can be observed by any control target (including: monitoring target), and for example, a physical value that can be measured by any sensor, a relay, a switch, or the like. It may include an ON / OFF state, command values such as position, speed, and torque given to the servo driver by the PLC, and variable values used by the PLC for calculation.
  • the first field bus 2 and the second field bus 4 it is preferable to adopt a network that performs fixed-cycle communication in which the arrival time of data is guaranteed.
  • EtherCAT registered trademark
  • networks that perform such fixed-cycle communication are known as networks that perform such fixed-cycle communication.
  • the field device group 10 includes devices that collect, as an input value, state values of a control target or a manufacturing device or a production line related to control or the like (hereinafter, also collectively referred to as “field”).
  • An input relay, various sensors, etc. are assumed as a device which acquires such a state value.
  • the field device group 10 further includes a device that exerts some action on the field based on a command value (hereinafter, also referred to as “output value”) generated by the control device 100.
  • An output relay, a contactor, a servo driver, a servo motor, or any other actuator is assumed as a device that gives some action to such a field.
  • These field device groups 10 exchange data including an input value and an output value with the control device 100 via the first field bus 2.
  • the field device group 10 includes a remote I / O (Input / Output) device 12, a relay group 14, an image sensor 18, a camera 20, a servo driver 22 and a servo motor 24. Including.
  • the remote I / O device 12 communicates with the communication unit via the first fieldbus 2, and an input / output unit for acquiring an input value and outputting an output value (hereinafter, also referred to as “I / O unit”). .) And. Through such an I / O unit, input values and output values are exchanged between the control device 100 and the field.
  • FIG. 1 shows an example in which a digital signal is exchanged as an input value and an output value via the relay group 14.
  • the I / O unit may be directly connected to the fieldbus.
  • FIG. 1 shows an example in which the I / O unit 16 is directly connected to the first field bus 2.
  • the image sensor 18 performs image measurement processing such as pattern matching on the image data captured by the camera 20, and transmits the processing result to the control device 100.
  • the servo driver 22 drives the servo motor 24 according to the output value (for example, position command) from the control device 100.
  • the support device 200 is a device that supports the preparation necessary for the control device 100 to control the control target.
  • the support device 200 includes a development environment (a program creation / editing tool, a parser, a compiler, etc.) for a program executed by the control device 100, parameters of the control device 100 and various devices connected to the control device 100 (configuration). Environment, a function of transmitting the generated user program to the control device 100, a function of modifying / changing a user program executed on the control device 100 online, and the like.
  • the support device 200 also provides a function of setting a parameter 256 defining the abnormality detection processing by the abnormality detection engine 140 mounted on the control device 100 and learning data 252 (details will be described later).
  • the display device 400 is connected to the control device 100 via the second field bus 4, receives a user's operation, transmits a command or the like according to the user's operation to the control device 100, and causes the control device 100 to operate.
  • the processing result of is displayed graphically.
  • the upper server 500 is connected to the control device 100 via the local network 6 and exchanges necessary data with the control device 100.
  • the upper server 500 has, for example, a database function, and collects data stored in the internal DB 130 of the control device 100 on a regular or event basis.
  • a general-purpose protocol such as Ethernet (registered trademark) may be mounted on the local network 6.
  • the concept of “frame” is introduced as a unit section for determining whether or not some abnormality has occurred in the monitoring target included in the control target.
  • the “frame” means a unit section for determining whether or not any abnormality has occurred in the monitoring target. That is, it is determined for each "frame” whether or not any abnormality has occurred in the monitoring target.
  • the “frame” may be determined based on the state value arbitrarily set by the user.
  • FIG. 2 is a schematic diagram showing a main part relating to abnormality detection processing in control device 100 of abnormality detection system 1 according to the present embodiment.
  • control device 100 includes a variable management unit 150 corresponding to a management unit, a feature amount extraction unit 142, and an abnormality detection engine 140 corresponding to an abnormality detection unit.
  • the variable management unit 150 acquires a state value generated in a control target such as a machine or device for each predetermined control cycle and updates the internal state value internally held.
  • control device 100 In control device 100 according to the present embodiment, a state value (input value) obtained from a control target, a command value (output value) given to the control target, and arithmetic processing in control device 100 or control device 100 is performed.
  • the form referred to in the form of "variable” is adopted for both data and values (all included in "internal state value") used for state management. Therefore, in the following description, the “internal state value” that can be used in the control device 100 may be expressed as a “variable value”.
  • a set of internal state values indicating state values generated in a control target such as a machine or a device is expressed as a "device variable”. That is, the variable management unit 150 updates the value of the device variable 154 by acquiring the state value generated in the controlled object such as the machine or the device for each predetermined control cycle.
  • the present invention is not limited to the form in which the value is referred to by using the “variable”, but can be applied to the form in which the physical address of the memory storing each value is directly specified and referred to.
  • the feature amount extraction unit 142 determines a unit section (frame) according to the value of a predetermined frame variable (any variable included in the device variable 154; corresponding to “first internal state value”). Then, the feature amount extraction unit 142, for each determined unit section (frame), a predetermined sampling variable (one of the variables included in the device variable 154) generated in the unit section; The feature amount is calculated from the change in the "state value"). The feature amount extraction unit 142 sequentially calculates a feature amount (for example, an average value, a maximum value, a minimum value over a predetermined time) from a change of a predetermined sampling variable for each frame according to a predetermined process.
  • a feature amount for example, an average value, a maximum value, a minimum value over a predetermined time
  • the feature amount extraction unit 142 for each unit section (frame) determined according to the value of the predetermined frame variable (first internal state value), sets the predetermined value generated in the unit section.
  • the feature amount is calculated from the change in the obtained sampling variable (second internal state value).
  • the abnormality detection engine 140 generates a detection result indicating whether or not any abnormality has occurred in the monitoring target included in the control target, based on the characteristic amount calculated by the characteristic amount extraction unit 142.
  • the feature amount extraction unit 142 associates the calculated feature amount with the value of the frame variable (first internal state value) that determines the corresponding unit section (frame), and outputs it to the abnormality detection engine 140. Further, the feature amount extraction unit 142 outputs the generated detection result in association with the value of the frame variable (first internal state value) associated with the feature amount used to generate the detection result. In this manner, the device variable 154 is obtained by associating the value of the frame variable (first internal state value) with the feature amount output from the feature amount extraction unit 142 and the detection result output from the abnormality detection engine 140. It is possible to maintain consistency between the value of, the feature amount calculated by the feature amount extraction unit 142, and the detection result generated by the abnormality detection engine 140.
  • FIG. 3 is a block diagram showing a hardware configuration example of control device 100 configuring abnormality detection system 1 according to the present embodiment.
  • the control device 100 includes a processor 102 such as a CPU (Central Processing Unit) and an MPU (Micro-Processing Unit), a chipset 104, a main storage device 106, a secondary storage device 108, A local network controller 110, a USB (Universal Serial Bus) controller 112, a memory card interface 114, an internal bus controller 122, fieldbus controllers 118 and 120, I / O units 124-1, 124-2, ... including.
  • a processor 102 such as a CPU (Central Processing Unit) and an MPU (Micro-Processing Unit)
  • chipset 104 such as a CPU (Central Processing Unit) and an MPU (Micro-Processing Unit)
  • main storage device 106 such as a main storage device 106, a secondary storage device 108,
  • a local network controller 110 such as a USB (Univers
  • the processor 102 reads various programs stored in the secondary storage device 108, expands the programs in the main storage device 106, and executes the programs to realize control according to a control target and various processes described below. .
  • the chip set 104 realizes processing as the entire control device 100 by controlling each component together with the processor 102.
  • the secondary storage device 108 in addition to the system program 126 (corresponding to a control program) for realizing the function provided by the control device 100, a user program executed by using the execution environment provided by the system program 126. Is stored.
  • the system program 126 also stores programs for implementing the internal DB 130 and the abnormality detection engine 140.
  • the local network controller 110 controls the exchange of data with other devices via the local network 6.
  • the USB controller 112 controls data exchange with the support device 200 via the USB connection.
  • the memory card interface 114 is configured such that the memory card 116 can be attached to and detached from the memory card 116, and data can be written in the memory card 116 and various data (user programs, trace data, etc.) can be read from the memory card 116. There is.
  • the internal bus controller 122 is an interface for exchanging data with the I / O units 124-1, 124-2, ... Mounted on the control device 100.
  • the fieldbus controller 118 controls the exchange of data with other devices via the first fieldbus 2.
  • the fieldbus controller 120 controls the exchange of data with other devices via the second fieldbus 4.
  • FIG. 3 shows a configuration example in which necessary functions are provided by the processor 102 executing a program.
  • some or all of the provided functions may be provided in a dedicated hardware circuit (for example, ASIC). It may be implemented using (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array).
  • the main part of the control device 100 may be realized by using hardware according to a general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer).
  • a virtualization technique may be used to execute a plurality of OSs (Operating Systems) having different purposes in parallel and to execute a required application on each OS.
  • OSs Operating Systems
  • the support device 200 is realized by executing a program using hardware according to a general-purpose architecture (for example, a general-purpose personal computer).
  • a general-purpose architecture for example, a general-purpose personal computer.
  • FIG. 4 is a block diagram showing a hardware configuration example of support device 200 that constitutes abnormality detection system 1 according to the present embodiment.
  • the support device 200 includes a processor 202 such as a CPU or MPU, a drive 204, a main storage device 206, a secondary storage device 208, a USB controller 212, a local network controller 214, and an input.
  • the unit 216 and the display unit 218 are included. These components are connected via a bus 220.
  • the processor 202 reads various programs stored in the secondary storage device 208, expands them in the main storage device 206, and executes them to realize various processes described later.
  • the secondary storage device 208 is composed of, for example, an HDD (Hard Disk Drive) or an SSD (Solid State Drive).
  • the secondary storage device 208 typically includes a development program (not shown) for creating a user program executed in the support device 200, debugging the created program, defining a system configuration, and setting various parameters.
  • Various programs including the data mining tool 250 and the setting tool 260 are stored.
  • the OS and other necessary programs may be stored in the secondary storage device 208.
  • the drive 204 can write data to the storage medium 205 and read various data (user program, trace data, time series data, etc.) from the storage medium 205.
  • the storage medium 205 includes, for example, a storage medium 205 (for example, an optical storage medium such as a DVD (Digital Versatile Disc)) that non-transitoryly stores a computer-readable program.
  • the program or data stored therein is read from the memory card 116 or the storage medium 205 and installed in an internal storage area such as the secondary storage device 208.
  • the various programs executed by the support apparatus 200 may be installed via the computer-readable memory card 116 or the storage medium 205, or may be installed by being downloaded from a server apparatus on the network. . Further, the function provided by support device 200 according to the present embodiment may be realized by utilizing a part of the module provided by the OS.
  • the USB controller 212 controls the exchange of data with the control device 100 via the USB connection.
  • the local network controller 214 controls the exchange of data with other devices via an arbitrary network.
  • the input unit 216 is composed of a keyboard, a mouse, etc., and receives user operations.
  • the display unit 218 includes a display and various indicators, and outputs the processing result from the processor 202.
  • a printer may be connected to the support device 200.
  • FIG. 4 shows a configuration example in which necessary functions are provided by the processor 202 executing a program, but some or all of the provided functions may be provided in a dedicated hardware circuit (for example, ASIC). Alternatively, it may be implemented by using an FPGA or the like.
  • FIG. 5 is a block diagram showing a software configuration example of abnormality detection system 1 according to the present embodiment.
  • the abnormality detection processing of the abnormality detection system 1 is realized by cooperation with the control device 100 and the support device 200.
  • the control device 100 determines whether or not there is an abnormality based on the state value acquired from the control target at each predetermined control cycle.
  • control device 100 includes an internal DB 130, an abnormality detection engine 140, a feature amount extraction unit 142, a time series database manager 144, and a variable management unit 150 as main functional configurations.
  • the abnormality detection engine 140 is a part that mainly performs abnormality detection processing, and the feature amount provided from the feature amount extraction unit 142 according to the parameter 256 set by the support device 200 (usually, a plurality of types of feature amounts are used). Also, a value (score) indicating the possibility that some abnormality has occurred in the monitoring target is calculated based on the learning data 252 set by the support device 200, and the calculated score value is predetermined. Whether or not an abnormality has occurred in the monitoring target is determined based on whether or not it is within the threshold range.
  • the threshold range may be defined based on one or more thresholds. Also, a plurality of threshold ranges (for example, caution level and damage level) may be set.
  • the abnormality detection engine 140 outputs a detection result indicating whether or not an abnormality has occurred in the monitoring target to the time-series database manager 144. Further, the processing result 152 including the detection result indicating whether or not an abnormality has occurred in the monitoring target by the abnormality detection engine 140 is output to the variable management unit 150 and periodically updated as an internal state value.
  • the parameter 256 includes setting of a target variable used in the abnormality detection process, and a frame definition that specifies a frame ID, which will be described later.
  • the feature amount extraction unit 142 uses the value indicated by the device variable (sampling variable) of the designated target according to the parameter 256 set by the support device 200, and then performs the feature amount (for example, an average over a predetermined time) according to a predetermined process. Value, maximum value, minimum value, etc.) is calculated cyclically.
  • the feature amount extraction unit 142 outputs the calculated feature amount to the abnormality detection engine 140 and the time-series database manager 144.
  • the time-series database manager 144 includes a value (raw data) of the device variable 154 updated by the variable management unit 150 for each control period, a feature amount calculated by the feature amount extraction unit 142 for each control period, and an abnormality detection engine.
  • the detection result output from 140 is written into the internal DB 130 at each control cycle.
  • the internal DB 130 corresponds to a storage unit, a raw data time series DB 132 for storing raw data in time series, a feature amount time series DB 134 for storing feature amounts in time series, and a detection result in time series. And a detection result time series DB 136 for storing.
  • “Raw data” basically means the raw state value acquired from the control target or the monitoring target (including the case where the unit conversion into physical quantity is performed).
  • the learning data 252 is a data set used by the abnormality detection engine 140 to calculate a value (score) indicating the possibility that some abnormality has occurred in the monitoring target, and is basically “normal”.
  • the feature amount calculated based on the state value of the case and / or the feature amount calculated based on the state value of “abnormal” is included.
  • the abnormality detection engine 140 refers to the learning data 252 prepared in advance, and based on the feature amount calculated by the feature amount extraction unit 142, obtains a score that is a value indicating the possibility that some abnormality has occurred in the monitoring target. calculate.
  • the learning data 252 represents a normal value group in the superspace, which corresponds to a “model” indicating the monitoring target.
  • Examples of such anomaly detection method based on the degree of deviation include a method of detecting anomalies based on the shortest distance from each point to the normal value group (k-nearest neighbor method), and evaluation of distance including a cluster including a normal value group.
  • LoF Local outlier factor
  • iForest isolation forest
  • the learning data 252 comes to include a group of feature amounts obtained when the abnormality is normal, and the abnormality detection engine 140 uses the features included in the learning data 252.
  • a score which is a value indicating the possibility that some abnormality has occurred in the monitoring target, is calculated based on the degree of deviation of the target feature amount from the amount group.
  • the variable management unit 150 updates the value of the processing result 152 from the abnormality detection engine 140 to the latest value for each control cycle, in addition to the device variable 154. That is, the variable management unit 150 executes at least a part of the processing related to the I / O refresh processing, and updates the input value acquired from the control target and the output value given to the control target for each control cycle.
  • the support device 200 provides the control device 100 with the parameter 256 and the learning data 252 for realizing the abnormality detection process in the control device 100.
  • the support device 200 includes a data mining tool 250 and a setting tool 260 as main functional configurations.
  • the data mining tool 250 acquires the raw data 254 (time-series data) stored in the internal DB 130 (mainly, the raw data time-series DB 132) of the control device 100, and device variables and characteristics suitable for abnormality detection in monitoring measures. Assist in searching for quantities. That is, the user uses the data mining tool 250 to analyze the raw data 254, which is time-series data of device variables related to the monitoring target, and thereby the device variables suitable for abnormality detection in the monitoring target and their characteristics. Determine the amount. Then, the data mining tool 250 generates the learning data 252 from the raw data 254 and determines the corresponding parameter 256 according to the determined device variable and its characteristic amount.
  • the setting tool 260 functions as an interface with the control device 100, acquires the raw data 254 from the control device 100, and sets the learning data 252 and the parameters 256 generated by the data mining tool 250 in the control device 100.
  • the presence or absence of an abnormality is determined in real time by including the abnormality detection process in the control calculation periodically executed by the control device 100.
  • the abnormality detection processing mainly includes (1) I / O refresh processing executed by the variable management unit 150, (2) characteristic amount extraction processing by the characteristic amount extraction unit 142, and (3) abnormality detection engine.
  • the process of calculating a score and determining a threshold value is performed by 140.
  • control device 100 of abnormality detection system 1 processing is executed according to the time scheduling method.
  • FIG. 6 is a schematic diagram showing execution timing of control processing in control device 100 of abnormality detection system 1 according to the present embodiment. Referring to FIG. 6, in control device 100, execution of processing is managed in units of task cycle 180 which is a predetermined control cycle.
  • the I / O refresh process 184 corresponds to the I / O refresh process executed in the variable management unit 150 (FIG. 5).
  • the control process 186 includes a process related to the system of the control device 100 and a user program (typically, a sequence program including a combination of sequence commands and a motion program including a combination of motion commands).
  • the feature amount extraction process by the feature amount extraction unit 142 is included in the control process 186.
  • the system service 188 is a general term for programs executed in each of the task cycles 180 while the I / O refresh process 184 and the control process 186 are not executed, and is a general term between the control device 100 and an external device. It includes communication processing and processing such as file access to the memory card 116. The process of score calculation and threshold value judgment by the abnormality detection engine 140 is included in the system service 188.
  • the I / O refresh process 184 and the control process 186 are registered as the primary fixed-cycle task having the highest execution priority, and are executed with the highest priority in each task cycle 180. In each of the task cycles 180, all the I / O refresh processing 184 and the control processing 186 are executed. In each of the task cycles 180, the time required to execute the I / O refresh process 184 and the control process 186 is called a task execution time 182.
  • system service 188 since the system service 188 is executed in each of the task cycles 180 in the idle time, it may not be possible to complete all the processes. Further, the system service 188 includes a process that does not need to complete execution of all processes in each task cycle 180.
  • the process included in the system service 188 (including the score calculation and the threshold value determination process by the abnormality detection engine 140) is executed in a certain task cycle 180, the start of the next task cycle 180 arrives. Then, the process is temporarily suspended. Then, if there is a free time in any of the task cycles 180, it is executed. As described above, the execution of the system service 188 depends on the free time in the task cycle 180.
  • (1) the I / O refresh process executed by the variable management unit 150 and (2) the feature amount extraction process by the feature amount extraction unit 142 are cyclically executed at every task cycle 180. It However, the execution timings of the I / O refresh process and the feature amount extraction process are different.
  • identification information for maintaining data consistency is introduced.
  • this identification information is also referred to as “frame ID”.
  • the frame ID is identification information for identifying the data unit used in the abnormality detection process.
  • the frame ID which is such identification information
  • any variable that can be referenced by the user program executed by the control device 100 can be used. It is assumed that the variable used as the frame ID is not set by the control device 100 side but set arbitrarily by the user side. That is, the abnormality detection engine 140 of the control device 100 receives designation of an arbitrary device variable 154 (internal state value) as a frame variable (first internal state value).
  • variable used as the frame ID is preferably one that changes each time depending on the operation of the machine or device that is the control target.
  • the following information can be used as the frame ID.
  • a mode in which data is divided and processed at predetermined time intervals is also envisioned.
  • the machines and devices included in the controlled object are not guaranteed to operate with highly accurate time division (for example, material input timing deviation or positional deviation due to friction), and abnormality detection caused by time deviation is required.
  • highly accurate time division for example, material input timing deviation or positional deviation due to friction
  • abnormality detection caused by time deviation is required.
  • even if the time lag itself is not abnormal it is not always possible to use the data of the periodic unit section of the control target for highly accurate abnormality detection.
  • FIG. 7 is a schematic diagram showing the relationship of variables used in the abnormality detection processing in abnormality detection system 1 according to the present embodiment.
  • control device 100 includes abnormality detection engine 140 and feature amount extraction unit 142.
  • the learning data 252 generated by the data mining tool 250 of the support device 200 is provided to the control device 100 via the setting tool 260.
  • the feature amount extraction unit 142 is realized by executing the command specified by the feature amount extraction execution unit 1420 that is executed as a primary periodic task.
  • the feature amount extraction user variable 1422 and the system definition variable 1424 are input to the feature amount extraction execution unit 1420.
  • the feature quantity extraction executing unit 1420 one or a plurality of features are set for the sampling variable (device variable) included in the feature quantity extraction user variable 1422 according to the calculation method defined by the feature quantity extraction setting 2562 included in the parameter 256. The amount is calculated.
  • the feature amount extraction user variable 1422 includes one or a plurality of sampling variables used for calculating the feature amount. Each of the sampling variables is associated with a subframe variable for specifying a partial section used for calculating the feature amount. That is, the feature amount extraction user variable 1422 includes one or a plurality of sets of subframe variables and sampling variables. The processing method using subframe variables will be described later.
  • the feature quantity extraction user variable 1422 further includes a frame variable used as a frame ID.
  • the value indicated by the frame variable is used as information for identifying the data unit (specific section of time-series data) input to the feature amount extraction execution unit 1420.
  • the value stored in the system-defined variable 1424 is used as a trigger or condition for the feature amount extraction executing unit 1420 to start processing.
  • the calculation result in the characteristic amount extraction executing unit 1420 is output as the characteristic amount extraction user variable 1426 and the system definition variable 1428.
  • the same value as the frame variable (value indicated as the frame ID) for specifying the data unit used for the feature amount calculation processing in the feature amount extraction execution unit 1420 is set as the output frame variable. Is stored.
  • the value stored in the output frame variable is referred to in the processing in the abnormality detection engine 140 described later.
  • the system-defined variable 1428 stores the feature amount that is the calculation result of the feature amount extraction executing unit 1420.
  • an array or structure is used as the system-defined variable 1428, and when a plurality of feature quantities are calculated, each feature quantity is stored in the form of a multidimensional data structure.
  • the calculation result (feature extraction user variable 1426 system definition variable 1428) in the feature extraction unit 142 is internally held as an internal state value (variable value) managed by the variable management unit 150.
  • the feature quantity extraction user variable 1422 and the system definition variable 1424 referred to by the feature quantity extraction unit 142 are also internally stored as internal state values (variable values) managed by the variable management unit 150.
  • the internal state values (variable values) managed by the variable management unit 150 can be arbitrarily referred to by a user program executed by the control device 100.
  • the abnormality detection engine 140 is realized by executing an instruction defined by the abnormality detection engine execution unit 1400 executed as a system service.
  • the abnormality detection engine execution unit 1400 receives the abnormality detection user variable 1402, the system definition variable 1428, and the system definition variable 1404.
  • the abnormality detection user variable 1402 stores the calculation result of the feature amount extraction execution unit 1420, and the abnormality detection engine execution unit 1400 can refer to the feature amount calculated by the feature amount extraction execution unit 1420.
  • the abnormality detection user variable 1402 stores a frame variable for specifying the data unit used for calculating the feature amount used in the processing in the abnormality detection engine execution unit 1400.
  • the frame variable stored in the abnormality detection user variable 1402 has the same value as the output frame variable stored in the feature amount extraction user variable 1426. That is, the same value as the value indicated by the frame variable output from the feature amount extraction executing unit 1420 can be given as the frame variable of the abnormality detection engine executing unit 1400.
  • the value of the frame variable (first internal state value) output by the feature amount extraction unit 142 is input to the abnormality detection engine 140.
  • the value stored in the system-defined variable 1404 is used as a trigger or condition for the abnormality detection engine execution unit 1400 to start processing.
  • the calculation result in the abnormality detection engine execution unit 1400 is output as the abnormality detection user variable 1406 and the system definition variable 1408.
  • the same value as the frame variable (value indicated as the frame ID) for specifying the data unit used for the processing in the abnormality detection engine execution unit 1400 is stored as the output frame variable.
  • the system-defined variable 1408 stores a feature amount which is a calculation result in the abnormality detection engine execution unit 1400.
  • An array or structure is typically used as the system-defined variable 1408.
  • the system definition variable 1408 includes a score calculated based on the learning data 252 and the feature amount in the abnormality detection engine execution unit 1400, and a comparison between the calculated score and the threshold setting 2564 included in the parameter 256. The detection result indicating the presence or absence of the determined abnormality is stored.
  • the calculation result (the abnormality detection user variable 1406 and the system definition variable 1408) in the abnormality detection engine 140 is internally held as an internal state value (variable value) managed by the variable management unit 150.
  • the abnormality detection user variable 1402, the system definition variable 1428, and the system definition variable 1404 referred to by the abnormality detection engine 140 are internally held as internal state values (variable values) managed by the variable management unit 150.
  • the internal state values (variable values) managed by the variable management unit 150 can be arbitrarily referred to by a user program executed by the control device 100.
  • FIG. 8 is a time chart for explaining a process related to frame management in control device 100 of abnormality detection system 1 according to the present embodiment.
  • a frame is often defined as spanning multiple control cycles. That is, a frame can also be defined as a unit for collectively managing a plurality of control cycles.
  • the frame 300 can be set using a frame variable 302 arbitrarily set by the user.
  • a frame variable 302 arbitrarily set by the user.
  • the variable Var_A is set as the frame variable 302.
  • the variable Var_A used as the frame variable 302 indicates the lot number of the work to be processed.
  • the feature amount extraction unit 142 of the control device 100 determines a section in which the frame variable (first internal state value) shows the same value as a frame (unit section).
  • one or a plurality of feature quantities are extracted from one or a plurality of time-series data (that is, a temporal change of a value designated as a sampling variable) for each frame 300 set by the frame variable 302. It is calculated.
  • the feature amount 308 (feature amount A) is sequentially calculated from the time-series data 306 (time-series data A) of the unit section corresponding to each frame, and the time of the unit section corresponding to each frame is calculated.
  • An example is shown in which the feature amount 312 (feature amount B) is sequentially calculated from the sequence data 310 (time-series data B).
  • An output frame variable 304 is associated with the calculated feature amounts 308 and 312, respectively.
  • the variable Var_B is set as the output frame variable 304, and the value of the variable Var_A which is the frame variable 302 is set to the variable Var_B.
  • the sequentially calculated feature amount has the same “frame ID” (output as the “frame ID” (variable Var_A that is the frame variable 302) that is assigned to the time-series data used for calculating the feature amount.
  • a variable Var_B) which is the frame variable 304 is added. That is, the calculation of the characteristic amount is delayed by at least one frame, but even if such a time delay exists, the data consistency can be maintained by using the “frame ID”.
  • the output frame variable 304 output by the processing in the feature amount extraction unit 142 is used as it is as the frame variable 320 (variable Var_B in this example).
  • the abnormality detection process is executed on the feature amount set 326 (including the feature amount A and the feature amount B in this example) to which the same value as the value indicated by the frame variable 320 is added, and the calculation result 324 such as the score is obtained. Is calculated.
  • An output frame variable 322 is associated with each of the calculation results 324.
  • the variable Var_C is set as the output frame variable 322, and the value of the variable Var_B which is the frame variable 320 is set to the variable Var_C.
  • a delay may occur for a predetermined abnormality detection determination time from the input of the feature amount set 326 to the calculation of the calculation result 324 such as the score. Even if there is a delay in the abnormality detection determination time, the data consistency can be maintained by using the frame ID.
  • a variable arbitrarily set by the user (basically any of the variables that can be referenced by the user program executed by the control device 100) is used as a key, and a plurality of control cycles are set. Consistency (in other words, traceability of data) can be maintained for data that is generated or calculated over a period of time and at different timings of generation or calculation.
  • the feature amount is calculated from the time-series data of each frame, but there are cases where it is desired to calculate the feature amount from only the time-series data of the specific section in each frame.
  • processing may be executed in multiple steps for each work. In such a case, it is often desired to calculate the feature amount based on the change in the state value that appears in a specific process.
  • a subframe can be set for each frame, and the feature amount can be calculated based on time series data in the set subframe section.
  • the subframe may be set for each feature amount.
  • FIG. 9 is a time chart for explaining the subframes shown in FIG. Referring to FIG. 9, it is assumed that a variable indicating a lot number or the like is set as frame 330. It is assumed that the calculation result of each frame 330 is output at the timing of the end of each frame 330. In the example shown in FIG. 8, each frame 330 includes three steps, and it is possible to refer to the status 332 indicating which step the step is in.
  • the status 332 can be set as a subframe for specifying the target for which the feature amount is calculated.
  • time series data 306 and 310 time series data A and B are assumed as the target of calculation of the feature amount.
  • the feature amount is calculated from the partial section of the second step (the value of the status 332 is “2”), and for the time-series data 310, the third step (the value of the status 332 is It is assumed that the feature amount is calculated from the subsection “3”).
  • the subframe 336 of the time series data A (subframe of the time series data A)
  • a partial section in which the value of the status 332 indicates “2” is set
  • the subframe 340 of the time series data B (time series data) is set.
  • a partial section in which the value of the status 332 indicates “3” may be set.
  • the feature amount extraction unit 142 of the control device 100 indicates, for each frame variable (unit section), a predetermined subframe variable (third internal state value) in the frame.
  • the feature amount is calculated from the change of the sampling variable (second internal state value) in the partial section.
  • FIG. 10 is a diagram for explaining an example of a data structure stored in internal DB 130 of control device 100 of abnormality detection system 1 according to the present embodiment.
  • 10A shows an example of time series data stored in the raw data time series DB 132 of the internal DB 130
  • FIG. 10B shows a time series stored in the feature amount time series DB 134 of the internal DB 130.
  • An example of the data is shown
  • FIG. 10C shows an example of the time series data stored in the detection result time series DB 136 of the internal DB 130.
  • the time-series data shown in FIG. 10 has the maximum value of the variable Var_1 to be monitored as the feature amount.
  • the internal DB 130 does not have to store all the time series data shown in FIGS. 10A to 10C, 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 132 shown in FIG. 10A includes time information 1320, a variable value 1322, and a frame ID 1324.
  • Each record of the time series data stored in the feature time series DB 134 shown in FIG. 10A includes time information 1340, a frame ID 1342, and a feature amount 1344.
  • Each record of the time series data stored in the detection result time series DB 136 illustrated in FIG. 10C includes time information 1360, a frame ID 1362, and a score 1364.
  • the internal DB 130 of the control device 100 stores the time-series data of the feature quantity associated with the value of the frame variable (first internal state value) and the value of the frame variable (first internal state value). At least one of the time series data of the associated detection result is stored.
  • using a common frame ID makes it possible to maintain consistency between data generated or calculated at different times.
  • the frame ID in this manner, it is possible to easily realize consistency of processing and data executed by the control device 100, and association between records included in the data stored in the internal DB 130.
  • a value that changes according to a predetermined regularity such as monotonically increasing or monotonically decreasing (incrementing or decrementing)
  • omission (dropout) of the abnormality detection processing can be detected.
  • FIG. 11 is a diagram showing an example of time series data obtained by combining the time series data shown in FIG.
  • each record of the combined time series data includes a frame ID 1324 (1342, 1362), time information 1320 (1340, 1360), a variable value 1322, a feature amount 1344, and a score 1364. including.
  • FIG. 12 is a flowchart showing a processing procedure in abnormality detection system 1 according to the present embodiment.
  • FIG. 12 shows a processing procedure executed by the variable management unit 150, the feature amount extraction unit 142, and the abnormality detection engine 140.
  • Each step shown in FIG. 12 is typically realized by the processor 102 of the control device 100 executing a system program 126 (see FIG. 3) corresponding to a control program.
  • step S100 the control device 100 determines whether or not a control cycle has arrived. If the control cycle has not come (NO in step S100), the process of step S100 is repeated.
  • step S100 If the control cycle has arrived (YES in step S100), the control device 100 acquires the state value from the control target (step S102) and updates the value of the device variable 154 with the acquired state value (step S104). ). Then, the processing from step S100 onward is repeated.
  • variable management unit 150 executes the process of acquiring the state value generated in the controlled object at each predetermined control cycle and updating the internally held device variable 154 (internal state value).
  • step S200 the control device 100 determines whether or not the value of the designated frame variable has changed. If the value of the frame variable has not changed (NO in step S200), the process of step S200 is repeated.
  • control device 100 temporarily collects the value of the designated sampling variable (step S202).
  • control device 100 determines whether the values of the frame variables are maintained at the same value (step S204). If the frame variable values are maintained at the same value (YES in step S204). The processing from step S202 is repeated.
  • step S204 the control device 100 calculates the feature amount based on the series of sampling variable values collected in step S202 (step S206). . Then, the control device 100 outputs the calculated feature amount in association with the value of the frame variable (value before change) (step S208). Then, the processing from step S200 onward is repeated.
  • the feature quantity extraction unit 142 for each frame (unit section) determined according to the value of the predetermined frame variable (first internal state value), the predetermined value generated in the frame is determined. The process of calculating the feature amount from the change of the obtained sampling variable (second internal state value) is executed. Then, the feature amount extraction unit 142 also performs a process of outputting the calculated feature amount in association with the value of the frame variable that determines the corresponding frame (unit section).
  • step S300 determines whether or not a new feature amount has been calculated by the feature amount extraction unit 142 (step S300). If a new feature amount has not been calculated (NO in step S300), the process of step S300 is repeated.
  • control device 100 If a new feature amount has been calculated (YES in step S300), the control device 100 generates a detection result including the score for the feature amount calculated with reference to the learning data 252 (step S302).
  • the value of the frame variable is associated with the new feature amount output from the feature amount extraction unit 142.
  • control device 100 outputs the generated detection result in association with the value of the frame variable (step S304). Then, the processing from step S300 onward is repeated.
  • the abnormality detection engine 140 generates a detection result indicating whether or not any abnormality has occurred in the monitoring target included in the control target, based on the characteristic amount calculated by the characteristic amount extraction unit 142.
  • the processing and the processing of outputting the generated detection result in association with the value of the frame variable (first internal state value) that was associated with the feature amount used to generate the detection result are executed. .
  • a management unit (150) that acquires a state value that occurs in the controlled object at each predetermined control cycle and updates the internal state value (154) that is internally held; For each unit section (300) determined according to the value of the predetermined first internal state value (302), the predetermined second internal state value (306, 310) generated in the unit section. ), A feature quantity extraction unit (142) for calculating a feature quantity (308, 312) from the change of the first feature, the feature quantity extraction unit determining a unit section corresponding to the calculated feature quantity.
  • An abnormality detection unit (140) that generates a detection result (324) indicating whether or not any abnormality has occurred in the monitoring target included in the control target based on the characteristic amount calculated by the characteristic amount extraction unit.
  • the control device comprising: the abnormality detection unit that outputs the generated detection result in association with the value of the first internal state value that is associated with the feature amount used to generate the detection result.
  • [Configuration 2] The control device according to configuration 1, wherein a value of the first internal state value output by the feature amount extraction unit is input to the abnormality detection unit.
  • [Configuration 3] The control device according to configuration 1 or 2, wherein the feature amount extraction unit receives designation of an arbitrary internal state value as the first internal state value.
  • the control device determines a section in which the first internal state value shows the same value as the unit section.
  • the feature amount extraction unit determines, for each unit section, a change in the second internal state value in a partial section in which a predetermined third internal state value (332) in the unit section indicates a predetermined value. 5.
  • the control device according to any one of configurations 1 to 4, which calculates the characteristic amount.
  • the abnormality detection unit calculates a value (1364) indicating the possibility that some abnormality has occurred in the monitoring target from the characteristic amount with reference to the learning data (252) prepared in advance. 5.
  • the control device according to any one of 5 above.
  • the learning data includes a group of feature values obtained when normal, 7.
  • the configuration 6 is configured such that the abnormality detection unit calculates a value indicating a possibility that some abnormality has occurred in the monitoring target based on a deviation degree of the characteristic amount with respect to a characteristic amount group included in the learning data.
  • the abnormality detection unit determines whether or not an abnormality has occurred in the monitoring target based on whether or not a value indicating the possibility that some abnormality has occurred in the monitoring target is within a predetermined threshold range. 8. The control device according to configuration 6 or 7, which generates the detection result shown.
  • a storage unit that stores at least one of time-series data of a feature amount associated with the value of the first internal state value and time-series data of a detection result associated with the value of the first internal state value ( 130.
  • the control device according to any one of configurations 1 to 8, further comprising: 130).
  • the control device according to item.
  • the state value is acquired from the control target, the characteristic amount is calculated based on the temporal change of the acquired state value, and the calculated characteristic amount is up to the process of determining whether or not there is an abnormality. Data can be processed consistently between.
  • a frame that is a unit section defined by the value of the predetermined state value is defined, and the presence or absence of an abnormality that may occur in the monitoring target is determined using this frame. Management of sections to be monitored becomes easy.
  • an arbitrary subframe can be defined for a frame that is a unit section.
  • the feature amount can be calculated, and the abnormality detection process can be executed based on the calculated feature amount. Therefore, it is possible to realize more accurate abnormality detection.
  • 1 abnormality detection system 2 first fieldbus, 4 second fieldbus, 6 local network, 10 field device group, 12 remote I / O device, 14 relay group, 16,124 I / O unit, 18 image sensor, 20 Camera, 22 servo driver, 24 servo motor, 100 control device, 102, 202 processor, 104 chip set, 106, 206 main storage device, 108, 208 secondary storage device, 110, 214 local network controller, 112, 212 USB controller , 114 memory card interface, 116 memory card, 118, 120 fieldbus controller, 122 internal bus controller, 126 system program, 130 internal DB, 132 Raw data time series DB, 134 feature quantity time series DB, 136 detection result time series DB, 140 abnormality detection engine, 142 feature quantity extraction unit, 144 time series database manager, 150 variable management unit, 152 processing result, 154 device variable, 180 task cycle, 182 task execution time, 184 I / O refresh process, 186 control process, 188 system service, 200 support device, 204 drive, 205 storage medium, 216

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Testing And Monitoring For Control Systems (AREA)

Abstract

制御装置での制御対象からの状態値の収集から異常検知処理まで一貫して処理するための機構が提供される。制御装置は、制御対象に生じる状態値で制御周期毎に内部状態値を更新する管理部と、第1の内部状態値の値に応じて決定される単位区間毎に、第2の内部状態値の変化から特徴量を算出する特徴量抽出部と、特徴量に基づいて制御対象に含まれる監視対象に何らかの異常が発生しているか否かを示す検知結果を生成する異常検知部を含む。特徴量抽出部および異常検知部は、対応する単位区間を決定した第1の内部状態値の値を対応付けて出力する。

Description

制御装置および制御プログラム
 本発明は、監視対象に発生し得る何らかの異常を検知可能な制御装置およびその制御装置を実現するための制御プログラムに関する。
 様々な生産現場において、機械や装置に対する予知保全により設備稼働率を向上させたいというニーズが存在する。予知保全とは、機械や装置に生じる何らかの異常を検知して、設備を停止しなければ状態になる前に、整備や交換などの保守作業を行うような保全形態を意味する。
 予知保全を実現するために、機械や装置の状態値を収集するとともに、収集された状態値に基づいて、当該機械や装置に何らかの異常が生じているか否かを判断するような仕組みが必要となる。
 このような予知保全を実現するためには、機械や装置から得られる複数の時系列データを処理する必要がある。従来の一般的な構成においては、例えば、特開2012-243192号公報(特許文献1)に示されるように、従来の構成においては、複数の時系列データは、上位のデータロガーなどに集約されて、時刻情報などに基づいて統合されることになる。
 このようなデータロガーシステムは、データ収集サイクルが比較的長く、かつ、実際にデータを収集してから集約されるまでに比較的長い時間を要する。このような構成を用いて異常監視を行うとすると、監視対象の機械や装置で生じる何らかの異常を検知するまでの遅延時間を短縮できない。
特開2012-243192号公報
 そこで、機械や装置などの制御対象を制御する制御装置で異常検知処理を実現することで異常を検知するための遅延時間を短縮できる可能性があるが、異常検知を実現するためには、複数の制御サイクルに亘るデータを用いる必要があるとともに、制御装置での処理遅延なども発生する。
 そのため、制御装置での制御対象からの状態値の収集から異常検知処理まで一貫して処理するための機構が必要となる。本発明の一つの目的は、このような要求を満たすことである。
 本発明の一例に従う制御装置は、制御対象に生じる状態値を予め定められた制御周期毎に取得して内部保持される内部状態値を更新する管理部と、予め定められた第1の内部状態値の値に応じて決定される単位区間毎に、当該単位区間内に生じた予め定められた第2の内部状態値の変化から特徴量を算出する特徴量抽出部とを含む。特徴量抽出部は、算出した特徴量に、対応する単位区間を決定した第1の内部状態値の値を対応付けて出力する。制御装置は、さらに特徴量抽出部により算出される特徴量に基づいて、制御対象に含まれる監視対象に何らかの異常が発生しているか否かを示す検知結果を生成する異常検知部を含む。異常検知部は、生成した検知結果に、当該検知結果の生成に用いた特徴量に対応付けられていた第1の内部状態値の値を対応付けて出力する。
 本構成によれば、特徴量抽出部により算出される特徴量、および、異常検知部により生成される検知結果のいずれに対しても、対象となった第2の内部状態値の単位区間を特定するための第1の内部状態値の値が対応付けられるので、内部状態値の入力、特徴量の算出、および検知結果の出力までの間で一貫性を確保できる。
 異常検知部には、特徴量抽出部が出力する第1の内部状態値の値が入力されるようにしてもよい。本構成によれば、特徴量抽出部の出力と異常検知部の入力との連続性を確保することで、処理の一貫性を確実に確保できる。
 特徴量抽出部は、第1の内部状態値として任意の内部状態値の指定を受け付けるようにしてもよい。本構成によれば、ユーザが制御対象に含まれる監視対象に応じた第1の内部状態値を用いて、最適な単位区間を任意に設定できる。
 特徴量抽出部は、第1の内部状態値が同一の値を示す区間を単位区間として決定するようにしてもよい。本構成によれば、第1の内部状態値が変化しない区間を単位区間として容易に設定できる。
 特徴量抽出部は、単位区間毎に、当該単位区間において予め定められた第3の内部状態値が予め定められた値を示す部分区間における第2の内部状態値の変化から特徴量を算出するようにしてもよい。本構成によれば、第1の内部状態値の値に応じて決定される単位区間のうち、部分的な区間から特徴量を算出して、異常検知処理を実行できる。
 異常検知部は、予め用意された学習データを参照して、特徴量から監視対象に何らかの異常が発生している可能性を示す値を算出するようにしてもよい。本構成によれば、監視対象に異常が発生している可能性を定量的に評価できる。
 異常検知部は、監視対象に何らかの異常が発生している可能性を示す値が予め定められたしきい範囲内であるか否かに基づいて、監視対象での異常発生の有無を示す検知結果を生成するようにしてもよい。本構成によれば、監視対象での異常発生の有無を定量的に判定できる。
 学習データは、正常である場合に得られる特徴量の群を含み、異常検知部は、学習データに含まれる特徴量群に対する特徴量の外れ度合いに基づいて、監視対象に何らかの異常が発生している可能性を示す値を算出するようにしてもよい。本構成によれば、正常の状態からの乖離度合いに応じて、監視対象に異常が発生している可能性を定量的に評価できる。
 制御装置は、第1の内部状態値の値を対応付けた特徴量の時系列データ、および、第1の内部状態値の値を対応付けた検知結果の時系列データの少なくとも一方を格納する格納部をさらに含むようにしてもよい。本構成によれば、制御装置の内部で算出される各種情報の保存、および、外部装置などへの出力を容易化できる。
 管理部は、特徴量抽出部および異常検知部での演算結果を、制御装置で実行されるプログラムで参照可能な内部状態値としてさらに内部保持するようにしてもよい。本構成によれば、制御装置で実行されるプログラムで特徴量抽出部および異常検知部での演算結果を参照することで、異常検知に関連する処理を適切に実行できる。
 本発明の別の一例に従えば、制御装置で実行される制御プログラムが提供される。制御プログラムは制御装置に、制御対象に生じる状態値を予め定められた制御周期毎に取得して内部保持される内部状態値を更新するステップと、予め定められた第1の内部状態値の値に応じて決定される単位区間毎に、当該単位区間内に生じた予め定められた第2の内部状態値の変化から特徴量を算出するステップと、算出した特徴量に、対応する単位区間を決定した第1の内部状態値の値を対応付けて出力するステップと、算出した特徴量に基づいて、制御対象に含まれる監視対象に何らかの異常が発生しているか否かを示す検知結果を生成するステップと、生成した検知結果に、当該検知結果の生成に用いた特徴量に対応付けられていた第1の内部状態値の値を対応付けて出力するステップとを実行させる。
 本構成によれば、算出される特徴量、および、生成される検知結果のいずれに対しても、対象となった第2の内部状態値の単位区間を特定するための第1の内部状態値の値が対応付けられるので、内部状態値の入力、特徴量の算出、および検知結果の出力までの間で一貫性を確保できる。
 本発明によれば、制御対象からの状態値の取得から異常検知処理まで一貫して処理できる。
本実施の形態に従う異常検知システムの全体構成例を示す模式図である。 本実施の形態に従う異常検知システムの制御装置における異常検知処理に係る主要部を示す模式図である。 本実施の形態に従う異常検知システムを構成する制御装置のハードウェア構成例を示すブロック図である。 本実施の形態に従う異常検知システムを構成するサポート装置のハードウェア構成例を示すブロック図である。 本実施の形態に従う異常検知システムのソフトウェア構成例を示すブロック図である。 本実施の形態に従う異常検知システムの制御装置における制御処理の実行タイミングを示す模式図である。 本実施の形態に従う異常検知システムにおける異常検知処理に用いられる変数の関係を示す模式図である。 本実施の形態に従う異常検知システムの制御装置におけるフレーム管理に係る処理を説明するためのタイムチャートである。 図8に示されるサブフレームを説明するためのタイムチャートである。 本実施の形態に従う異常検知システムの制御装置の内部DBに格納されるデータ構造の一例を説明するための図である。 図10に示されるそれぞれの時系列データを結合した時系列データの一例を示す図である。 本実施の形態に従う異常検知システムにおける処理手順を示すフローチャートである。
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
 <A.適用例>
 まず、本発明が適用される場面の一例について説明する。
 本実施の形態に従う異常検知処理を実行可能な制御システムの機能的な構成例について説明する。以下の説明においては、主として、制御システムが有している異常検知処理に注目して説明するので、制御システム全体を「異常検知システム」とも称する。
 まず、本実施の形態に従う異常検知システム1の全体構成例について説明する。
 図1は、本実施の形態に従う異常検知システム1の全体構成例を示す模式図である。図1を参照して、異常検知システム1は、主たる構成要素として、制御対象を制御する制御装置100と、制御装置100に接続され得るサポート装置200とを含む。異常検知システム1は、オプショナルな構成として、上位サーバ500および表示装置400をさらに含んでいてもよい。
 制御装置100は、制御対象に含まれる監視対象に何らかの異常が発生しているか否かを示す検知結果を生成する。制御装置100は、PLC(プログラマブルコントローラ)などの、一種のコンピュータとして具現化されてもよい。
 より具体的には、制御装置100は、第1フィールドバス2を介してフィールド装置群10と接続されるとともに、第2フィールドバス4を介して1または複数の表示装置400と接続される。さらに、制御装置100は、ローカルネットワーク6を介して上位サーバ500に接続される。制御装置100は、それぞれのネットワークを介して、接続された装置との間でデータを遣り取りする。
 制御装置100は、設備や機械を制御するための各種演算を実行する制御演算実行エンジンを有している。制御演算実行エンジンに加えて、制御装置100は、フィールド装置群10にて取得され、制御装置100へ転送されるデータ(以下、「入力値」とも称す。)を取得する取得機能を有している。さらに、制御装置100は、取得した入力値などに基づいて、制御対象における異常発生の有無を判断する監視機能も有している。これらの機能が制御装置100に実装されることで、制御対象で生じる異常をより短い周期で監視できる。
 このような異常検知の機能に関して、制御装置100に実装される異常検知エンジン140が監視機能を提供し、制御装置100内に実装される内部データベース(以下、「内部DB」とも記す。)130が各種データの格納機能を提供する。内部DB130および異常検知エンジン140の詳細については後述する。
 本明細書において、「状態値」は、任意の制御対象(含む:監視対象)にて観測できる値を包含する用語であり、例えば、任意のセンサにより測定できる物理値や、リレーやスイッチなどのON/OFF状態、PLCがサーボドライバに与える位置、速度、トルクなどの指令値、PLCが演算に用いる変数値などを含み得る。
 第1フィールドバス2および第2フィールドバス4としては、データの到達時間が保証される、定周期通信を行うネットワークを採用することが好ましい。このような定周期通信を行うネットワークとしては、EtherCAT(登録商標)などが知られている。
 フィールド装置群10は、制御対象または制御に関連する製造装置や生産ラインなど(以下、「フィールド」とも総称する。)の状態値を入力値として収集する装置を含む。このような状態値を取得する装置としては、入力リレーや各種センサなどが想定される。フィールド装置群10は、さらに、制御装置100にて生成される指令値(以下、「出力値」とも称す。)に基づいて、フィールドに対して何らかの作用を与える装置を含む。このようなフィールドに対して何らかの作用を与える装置としては、出力リレー、コンタクタ、サーボドライバおよびサーボモータ、その他任意のアクチュエータが想定される。これらのフィールド装置群10は、第1フィールドバス2を介して、制御装置100との間で、入力値および出力値を含むデータを遣り取りする。
 図1に示す構成例においては、フィールド装置群10は、リモートI/O(Input/Output)装置12と、リレー群14と、画像センサ18およびカメラ20と、サーボドライバ22およびサーボモータ24とを含む。
 リモートI/O装置12は、第1フィールドバス2を介して通信を行う通信部と、入力値の取得および出力値の出力を行うための入出力部(以下、「I/Oユニット」とも称す。)とを含む。このようなI/Oユニットを介して、制御装置100とフィールドとの間で入力値および出力値が遣り取りされる。図1には、リレー群14を介して、入力値および出力値として、デジタル信号が遣り取りされる例が示されている。
 I/Oユニットは、フィールドバスに直接接続されるようにしてもよい。図1には、第1フィールドバス2にI/Oユニット16が直接接続されている例を示す。
 画像センサ18は、カメラ20によって撮像された画像データに対して、パターンマッチングなどの画像計測処理を行って、その処理結果を制御装置100へ送信する。
 サーボドライバ22は、制御装置100からの出力値(例えば、位置指令など)に従って、サーボモータ24を駆動する。
 上述のように、第1フィールドバス2を介して、制御装置100とフィールド装置群10との間でデータが遣り取りされることになるが、これらの遣り取りされるデータは、数百μsecオーダ~数十msecオーダのごく短い周期で更新されることになる。なお、このような遣り取りされるデータの更新処理を、「I/Oリフレッシュ処理」と称することもある。
 サポート装置200は、制御装置100が制御対象を制御するために必要な準備を支援する装置である。具体的には、サポート装置200は、制御装置100で実行されるプログラムの開発環境(プログラム作成編集ツール、パーサ、コンパイラなど)、制御装置100および制御装置100に接続される各種デバイスのパラメータ(コンフィギュレーション)を設定するための設定環境、生成したユーザプログラムを制御装置100へ送信する機能、制御装置100上で実行されるユーザプログラムなどをオンラインで修正・変更する機能、などを提供する。
 さらに、サポート装置200は、制御装置100に実装される異常検知エンジン140による異常検知処理を定義するパラメータ256および学習データ252(詳細は後述する)を設定する機能なども提供する。
 表示装置400は、第2フィールドバス4を介して制御装置100と接続され、ユーザからの操作を受けて、制御装置100に対してユーザ操作に応じたコマンドなどを送信するとともに、制御装置100での処理結果などをグラフィカルに表示する。
 上位サーバ500は、制御装置100とローカルネットワーク6を介して接続され、制御装置100との間で必要なデータを遣り取りする。上位サーバ500は、例えば、データベース機能を有しており、制御装置100の内部DB130に格納されるデータを定期的またはイベント的に収集する。ローカルネットワーク6には、イーサネット(登録商標)などの汎用プロトコルが実装されてもよい。
 次に、実施の形態に従う異常検知処理においては、制御対象に含まれる監視対象に何らかの異常が発生しているかを判断する単位区間として「フレーム」という概念を導入する。このように、本明細書において、「フレーム」は、監視対象に何らかの異常が発生しているか否かを判断する単位区間を意味する。すなわち、監視対象に何らかの異常が発生しているか否かを判断は、「フレーム」毎に行われることになる。本実施の形態においては、「フレーム」は、ユーザが任意に設定する状態値に基づいて決定されるようにしてもよい。
 図2は、本実施の形態に従う異常検知システム1の制御装置100における異常検知処理に係る主要部を示す模式図である。図2を参照して、制御装置100は、制御装置100は、管理部に相当する変数管理部150と、特徴量抽出部142と、異常検知部に相当する異常検知エンジン140とを含む。
 変数管理部150は、機械や装置などの制御対象に生じる状態値を予め定められた制御周期毎に取得して内部保持される内部状態値を更新する。
 本実施の形態に従う制御装置100においては、制御対象から取得される状態値(入力値)、制御対象へ与えられる指令値(出力値)、ならびに、制御装置100での演算処理または制御装置100の状態管理に用いられるデータあるいは値(「内部状態値」にすべて包含される)のいずれについても、「変数」の形で参照する形態を採用する。そのため、以下の説明においては、制御装置100において利用可能な「内部状態値」を「変数値」と表現することもある。そして、機械や装置などの制御対象に生じる状態値を示す内部状態値の集合を「デバイス変数」と表現する。すなわち、変数管理部150は、機械や装置などの制御対象に生じる状態値を予め定められた制御周期毎に取得してデバイス変数154の値を更新する。
 なお、本発明は「変数」を用いて値を参照する形態に限られることなく、各値を格納するメモリの物理アドレスなどを直接指定して参照するような形態などにも適用可能である。
 特徴量抽出部142は、予め定められたフレーム変数(デバイス変数154に含まれるいずれかの変数;「第1の内部状態値」に相当)の値に応じて単位区間(フレーム)を決定する。そして、特徴量抽出部142は、決定される単位区間(フレーム)毎に、当該単位区間内に生じた予め定められたサンプリング変数(デバイス変数154に含まれるいずれかの変数;「第2の内部状態値」に相当)の変化から特徴量を算出する。特徴量抽出部142は、予め定められたサンプリング変数のフレーム毎の変化から、予め定められた処理に従って特徴量(例えば、所定時間に亘る平均値、最大値、最小値など)を順次算出する。
 このように、特徴量抽出部142は、予め定められたフレーム変数(第1の内部状態値)の値に応じて決定される単位区間(フレーム)毎に、当該単位区間内に生じた予め定められたサンプリング変数(第2の内部状態値)の変化から特徴量を算出する。
 異常検知エンジン140は、特徴量抽出部142により算出される特徴量に基づいて、制御対象に含まれる監視対象に何らかの異常が発生しているか否かを示す検知結果を生成する。
 以上のような構成を採用することで、制御対象に含まれる任意の監視対象において、発生し得る何らかの異常を検知可能できる。
 特徴量抽出部142は、算出した特徴量に、対応する単位区間(フレーム)を決定したフレーム変数(第1の内部状態値)の値を対応付けて、異常検知エンジン140へ出力する。また、特徴量抽出部142は、生成した検知結果に、当該検知結果の生成に用いた特徴量に対応付けられていたフレーム変数(第1の内部状態値)の値を対応付けて出力する。このように、フレーム変数(第1の内部状態値)の値を、特徴量抽出部142から出力される特徴量、および、異常検知エンジン140から出力される検知結果に対応付けることで、デバイス変数154の値、特徴量抽出部142により算出される特徴量、ならびに、異常検知エンジン140により生成される検知結果の間の一貫性を維持できる。
 <B.各装置のハードウェア構成例>
 次に、本実施の形態に従う異常検知システム1を構成する主要な装置のハードウェア構成例について説明する。
 (b1:制御装置100のハードウェア構成例)
 図3は、本実施の形態に従う異常検知システム1を構成する制御装置100のハードウェア構成例を示すブロック図である。図3を参照して、制御装置100は、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などのプロセッサ102と、チップセット104と、主記憶装置106と、二次記憶装置108と、ローカルネットワークコントローラ110と、USB(Universal Serial Bus)コントローラ112と、メモリカードインターフェイス114と、内部バスコントローラ122と、フィールドバスコントローラ118,120と、I/Oユニット124-1,124-2,…とを含む。
 プロセッサ102は、二次記憶装置108に格納された各種プログラムを読み出して、主記憶装置106に展開して実行することで、制御対象に応じた制御、および、後述するような各種処理を実現する。チップセット104は、プロセッサ102とともに、各コンポーネントを制御することで、制御装置100全体としての処理を実現する。
 二次記憶装置108には、制御装置100が提供する機能を実現するためのシステムプログラム126(制御プログラムに相当)に加えて、システムプログラム126が提供する実行環境を利用して実行されるユーザプログラムが格納される。システムプログラム126は、内部DB130および異常検知エンジン140を実現するためのプログラムも格納される。
 ローカルネットワークコントローラ110は、ローカルネットワーク6を介した他の装置との間のデータの遣り取りを制御する。USBコントローラ112は、USB接続を介してサポート装置200との間のデータの遣り取りを制御する。
 メモリカードインターフェイス114は、メモリカード116を着脱可能に構成されており、メモリカード116に対してデータを書き込み、メモリカード116から各種データ(ユーザプログラムやトレースデータなど)を読み出すことが可能になっている。
 内部バスコントローラ122は、制御装置100に搭載されるI/Oユニット124-1,124-2,…との間でデータを遣り取りするインターフェイスである。
 フィールドバスコントローラ118は、第1フィールドバス2を介した他の装置との間のデータの遣り取りを制御する。同様に、フィールドバスコントローラ120は、第2フィールドバス4を介した他の装置との間のデータの遣り取りを制御する。
 図3には、プロセッサ102がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。あるいは、制御装置100の主要部を、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコンをベースとした産業用パソコン)を用いて実現してもよい。この場合には、仮想化技術を用いて、用途の異なる複数のOS(Operating System)を並列的に実行させるとともに、各OS上で必要なアプリケーションを実行させるようにしてもよい。
 (b2:サポート装置200のハードウェア構成例)
 次に、本実施の形態に従うサポート装置200は、一例として、汎用的なアーキテクチャに従うハードウェア(例えば、汎用パソコン)を用いてプログラムを実行することで実現される。
 図4は、本実施の形態に従う異常検知システム1を構成するサポート装置200のハードウェア構成例を示すブロック図である。図4を参照して、サポート装置200は、CPUやMPUなどのプロセッサ202と、ドライブ204と、主記憶装置206と、二次記憶装置208と、USBコントローラ212と、ローカルネットワークコントローラ214と、入力部216と、表示部218とを含む。これらのコンポーネントはバス220を介して接続される。
 プロセッサ202は、二次記憶装置208に格納された各種プログラムを読み出して、主記憶装置206に展開して実行することで、後述するような各種処理を実現する。
 二次記憶装置208は、例えば、HDD(Hard Disk Drive)やSSD(Solid State Drive)などで構成される。二次記憶装置208には、典型的には、サポート装置200において実行されるユーザプログラムの作成、作成したプログラムのデバッグ、システム構成の定義、各種パラメータの設定などを行うための図示しない開発プログラムと、データマイニングツール250と、設定ツール260とを含む各種プログラムが格納される。二次記憶装置208には、OSおよび他の必要なプログラムが格納されてもよい。
 ドライブ204は、記憶媒体205に対してデータを書き込み、記憶媒体205から各種データ(ユーザプログラム、トレースデータまたは時系列データなど)を読み出すことが可能になっている。記憶媒体205は、例えばコンピュータ読取可能なプログラムを非一過的に格納する記憶媒体205(例えば、DVD(Digital Versatile Disc)などの光学記憶媒体)を含む。メモリカード116または記憶媒体205から、その中に格納されたプログラムまたはデータが読み取られて二次記憶装置208などの内部の記憶領域にインストールされる。
 サポート装置200で実行される各種プログラムは、コンピュータ読取可能なメモリカード116または記憶媒体205を介してインストールされてもよいが、ネットワーク上のサーバ装置などからダウンロードする形でインストールするようにしてもよい。また、本実施の形態に従うサポート装置200が提供する機能は、OSが提供するモジュールの一部を利用する形で実現される場合もある。
 USBコントローラ212は、USB接続を介して制御装置100との間のデータの遣り取りを制御する。ローカルネットワークコントローラ214は、任意ネットワークを介した他の装置との間のデータの遣り取りを制御する。
 入力部216は、キーボードやマウスなどで構成され、ユーザ操作を受け付ける。表示部218は、ディスプレイ、各種インジケータなどで構成され、プロセッサ202からの処理結果などを出力する。サポート装置200には、プリンタが接続されてもよい。
 図4には、プロセッサ202がプログラムを実行することで必要な機能が提供される構成例を示したが、これらの提供される機能の一部または全部を、専用のハードウェア回路(例えば、ASICまたはFPGAなど)を用いて実装してもよい。
 <C.ソフトウェア構成例/機能構成例>
 次に、本実施の形態に従う異常検知システム1を構成する主要な装置のソフトウェア構成例および機能構成例について説明する。
 図5は、本実施の形態に従う異常検知システム1のソフトウェア構成例を示すブロック図である。
 図5を参照して、異常検知システム1の異常検知処理は、制御装置100およびサポート装置200との連携によって実現される。制御装置100は、予め定められた制御周期毎に制御対象から取得される状態値に基づいて、異常の有無を判断する。
 より具体的には、制御装置100は、主要な機能構成として、内部DB130と、異常検知エンジン140と、特徴量抽出部142と、時系列データベースマネジャ144と、変数管理部150とを含む。
 異常検知エンジン140は、主として異常検知処理を実行する部分であり、サポート装置200により設定されるパラメータ256に従って、特徴量抽出部142から与えられる特徴量(通常は複数種類の特徴量が用いられる)およびサポート装置200により設定される学習データ252に基づいて、監視対象に何らかの異常が発生している可能性を示す値(スコア)を算出するとともに、算出されたスコアの値が予め定められたしきい範囲内であるか否かに基づいて、監視対象での異常発生の有無を判断する。しきい範囲は、1または複数のしきい値に基づいて定義されてもよい。また、複数のしきい範囲(例えば、cautionレベルおよびdamageレベル)を設定してもよい。異常検知エンジン140は、監視対象での異常発生の有無を示す検知結果を時系列データベースマネジャ144へ出力する。また、異常検知エンジン140による監視対象での異常発生の有無を示す検知結果を含む処理結果152は、変数管理部150へ出力されて、内部状態値として周期的に更新される。パラメータ256は、異常検知処理に用いる対象変数の設定、および、後述するフレームIDなどを特定するフレーム定義を含む。
 特徴量抽出部142は、サポート装置200により設定されるパラメータ256に従って、指定された対象のデバイス変数(サンプリング変数)が示す値から、予め定められた処理に従って特徴量(例えば、所定時間に亘る平均値、最大値、最小値など)をサイクリックに算出する。特徴量抽出部142は、算出される特徴量を異常検知エンジン140および時系列データベースマネジャ144へ出力する。
 時系列データベースマネジャ144は、変数管理部150により制御周期毎に更新されるデバイス変数154の値(生データ)、特徴量抽出部142により制御周期毎に算出される特徴量、ならびに、異常検知エンジン140から出力される検知結果を、内部DB130へ制御周期毎に書き込む。
 内部DB130は、格納部に相当し、生データを時系列に格納するための生データ時系列DB132と、特徴量を時系列に格納するための特徴量時系列DB134と、検知結果を時系列に格納するための検知結果時系列DB136とを含む。
 「生データ」は、基本的には、制御対象あるいは監視対象から取得されたそのままの状態値(なお、物理量への単位変換などが行われている場合も含む)を意味するものである。
 学習データ252は、異常検知エンジン140が監視対象に何らかの異常が発生している可能性を示す値(スコア)を算出するために用いられるデータセットであり、基本的には、「正常」である場合の状態値に基づいて算出された特徴量、および/または、「異常」である場合の状態値に基づいて算出された特徴量を含む。異常検知エンジン140は、予め用意された学習データ252を参照して、特徴量抽出部142により算出される特徴量から、監視対象に何らかの異常が発生している可能性を示す値であるスコアを算出する。
 一例として、異常検知エンジン140での異常検知のアルゴリズムとして、超空間上における正常値群に対する入力値の外れ度合いに基づいて、当該入力値に対応するスコアを算出する方法を採用する。この場合には、学習データ252は、超空間上における正常値群を示すものとなり、これは監視対象を示す「モデル」に相当する。
 このような外れ度合いに基づく異常検知の手法としては、各点から正常値群までの最短距離に基づいて異常を検知する手法(k近傍法)、正常値群を含むクラスタを含めて距離を評価する局所外れ値因子(LoF:local outlier factor)法、パス長さから算出されるスコアを用いるiForest(isolation forest)法などが知られている。
 外れ度合いに基づく異常検知の手法を採用した場合には、学習データ252は、正常である場合に得られる特徴量の群を含むようになり、異常検知エンジン140は、学習データ252に含まれる特徴量群に対する対象の特徴量の外れ度合いに基づいて、監視対象に何らかの異常が発生している可能性を示す値であるスコアを算出する。
 変数管理部150は、デバイス変数154に加えて、異常検知エンジン140からの処理結果152の値を制御周期毎に最新の値に更新する。すなわち、変数管理部150は、I/Oリフレッシュ処理に係る少なくとも一部の処理を実行し、制御周期毎に、制御対象から取得される入力値および制御対象へ与えられる出力値を更新する。
 一方、サポート装置200は、制御装置100における異常検知処理を実現するためのパラメータ256および学習データ252を制御装置100に提供する。
 より具体的には、サポート装置200は、主要な機能構成として、データマイニングツール250および設定ツール260を含む。
 データマイニングツール250は、制御装置100の内部DB130(主として、生データ時系列DB132)に格納される生データ254(時系列データ)を取得し、監視対処での異常検知に適したデバイス変数および特徴量などの探索を支援する。すなわち、ユーザは、データマイニングツール250を用いて、監視対象に関連するデバイス変数の時系列データである生データ254を解析することで、当該監視対象での異常検知に適したデバイス変数およびその特徴量を決定する。そして、データマイニングツール250は、決定されたデバイス変数およびその特徴量に応じて、生データ254から学習データ252を生成するとともに、対応するパラメータ256を決定する。
 設定ツール260は、制御装置100とのインターフェイスとして機能し、制御装置100から生データ254を取得するとともに、データマイニングツール250により生成された学習データ252およびパラメータ256を制御装置100へ設定する。
 <D.制御装置100でのリアルタイム処理>
 本実施の形態に従う異常検知システム1においては、制御装置100が周期的に実行する制御演算に異常検知処理を含めることで、リアルタイムで異常発生の有無を判断する。
 本実施の形態に従う異常検知処理は、主として、(1)変数管理部150において実行されるI/Oリフレッシュ処理と、(2)特徴量抽出部142による特徴量抽出処理、(3)異常検知エンジン140によるスコア算出およびしきい値判断の処理とからなる。
 一方、制御装置100においては、(1)~(3)の処理はいずれも異なる制御タイミングで実行されるため、それぞれの処理において処理されるデータの一貫性を維持する必要がある。
 本実施の形態に従う異常検知システム1の制御装置100においては、タイムスケジューリング方式に従って処理が実行される。
 図6は、本実施の形態に従う異常検知システム1の制御装置100における制御処理の実行タイミングを示す模式図である。図6を参照して、制御装置100においては、予め定められた制御周期であるタスク周期180の単位で処理の実行が管理される。
 タスク周期180の各々においては、主として、I/Oリフレッシュ処理184と、制御処理186と、システムサービス188とが実行される。
 I/Oリフレッシュ処理184は、変数管理部150(図5)において実行されるI/Oリフレッシュ処理に相当する。
 制御処理186は、制御装置100のシステムに係る処理およびユーザプログラム(典型的には、シーケンス命令の組み合わせからなるシーケンスプログラムや、モーション命令の組み合わせからなるモーションプログラムなど)を含む。特徴量抽出部142による特徴量抽出処理は、制御処理186に含まれることになる。
 システムサービス188は、タスク周期180の各々において、I/Oリフレッシュ処理184および制御処理186が実行されていない期間に実行されるプログラムを総称するものであり、制御装置100と外部装置との間の通信処理や、メモリカード116へのファイルアクセスなどの処理を含む。異常検知エンジン140によるスコア算出およびしきい値判断の処理は、システムサービス188に含まれることになる。
 I/Oリフレッシュ処理184および制御処理186は、実行の優先度が最も高いプライマリ定周期タスクとして登録されており、タスク周期180の各々において最優先で実行される。タスク周期180の各々において、I/Oリフレッシュ処理184および制御処理186のすべての処理は実行される。タスク周期180の各々において、I/Oリフレッシュ処理184および制御処理186の実行に要する時間をタスク実行時間182と称す。
 一方、システムサービス188は、タスク周期180の各々において空き時間で実行されるため、すべての処理を完了できない場合もある。また、システムサービス188には、タスク周期180の各々においてすべての処理の実行を完了させる必要性が低い処理が含まれることになる。
 そのため、システムサービス188に含まれる処理(異常検知エンジン140によるスコア算出およびしきい値判断の処理を含む)は、あるタスク周期180において実行されているときに、次のタスク周期180の始期が到来すると、一旦処理が中断される。そして、いずれかのタスク周期180において空き時間があれば実行される。このように、システムサービス188の実行は、タスク周期180における空き時間に依存したものとなる。
 図6に示すように、(1)変数管理部150において実行されるI/Oリフレッシュ処理、および、(2)特徴量抽出部142による特徴量抽出処理は、タスク周期180毎にサイクリック実行される。但し、I/Oリフレッシュ処理および特徴量抽出処理の実行タイミングは異なっている。
 また、(3)異常検知エンジン140によるスコア算出およびしきい値判断の処理は、複数のタスク周期180に亘って実行されることになる。そのため、(1)~(3)の処理の間でデータを同期する仕組みが必要となる。
 また、制御処理において複数のタスク周期180に亘って値が変化するデータが存在し得る。複数のタスク周期180に亘ってデータを確実に収集するとともに、値を加工して格納する必要がある。特に、異常検知エンジン140によるスコア算出およびしきい値判断の処理は、複数のタスク周期180に亘って実行されるので、処理間を同期させることができない。
 制御装置100において異常検知処理をリアルタイムで実行する場合には、上述したようなデータの整合性あるいはデータの一貫性に配慮する必要がある。
 <E.データの一貫性の維持>
 次に、本実施の形態に従う異常検知システム1においては、データの一貫性を維持するための識別情報を導入する。この識別情報を以下では「フレームID」とも称す。フレームIDは、異常検知処理に用いられるデータ単位を特定するための識別情報である。
 このような識別情報であるフレームIDを導入することで、異常検知処理が対象とする単位区間を特定できるとともに、何らかの理由で異常検知処理の抜け(脱落)などを検知できる。
 フレームIDとしては、制御装置100で実行されるユーザプログラムが参照可能な任意の変数を用いることができる。フレームIDとして用いる変数は、制御装置100側で設定するのではなく、ユーザ側が任意に設定することが想定される。すなわち、制御装置100の異常検知エンジン140は、フレーム変数(第1の内部状態値)として任意のデバイス変数154(内部状態値)の指定を受け付ける。
 フレームIDとして用いられる変数としては、制御対象である機械や装置の動作に応じて都度変化するようなものが好ましい。フレームIDとしては、以下のような情報を用いることができる。
 (1)制御対象が処理するワークのシリアル番号
 (2)制御対象の機械や装置の電源が投入された後に処理したワークの総数
 (3)制御対象に含まれる動作機構の動作サイクル累積数あるいは動作サイクル番号(例えば、ローラが100回転毎に1カウントするような装置でそのカウント数)
 このようなフレームIDを用いることで、データの同期処理および排他処理、ならびに、ファイル管理の処理時間などを低減して、処理を高速化できる。
 なお、本実施の形態に従う異常検知システム1において用いられるフレームIDを用いるのではなく、所定時間毎(例えば、1秒毎)にデータを分割して処理するような形態も想定される。しかしながら、制御対象に含まれる機械や装置では、高精度に時刻分割して動作する保証はなく(例えば、材料の投入タイミングずれや摩擦による位置ずれ)、時間ずれによって生じる異常検知が必要であり、あるいは、時間ずれ自体は異常ではないとしても、制御対象の周期的な単位区間のデータを高精度な異常検知に用いることは必ずしもできなかった。
 図7は、本実施の形態に従う異常検知システム1における異常検知処理に用いられる変数の関係を示す模式図である。図7を参照して、制御装置100には、異常検知エンジン140および特徴量抽出部142が実装される。制御装置100には、サポート装置200のデータマイニングツール250により生成された学習データ252が設定ツール260を介して提供される。
 特徴量抽出部142は、プライマリ定周期タスクとして実行される特徴量抽出実行部1420に規定される命令が実行されることで実現される。特徴量抽出実行部1420には、特徴量抽出ユーザ変数1422およびシステム定義変数1424が入力される。特徴量抽出実行部1420では、特徴量抽出ユーザ変数1422に含まれるサンプリング変数(デバイス変数)に対して、パラメータ256に含まれる特徴量抽出設定2562により定義される算出方法によって、1または複数の特徴量が算出される。
 特徴量抽出ユーザ変数1422は、特徴量を算出されるために用いられる1または複数のサンプリング変数を含む。サンプリング変数の各々には、特徴量の算出に用いられる部分区間を特定するためのサブフレーム変数がそれぞれ対応付けられる。すなわち、特徴量抽出ユーザ変数1422は、サブフレーム変数とサンプリング変数との組を1または複数含む。なお、サブフレーム変数を用いた処理方法などについては後述する。
 特徴量抽出ユーザ変数1422は、さらに、フレームIDとして用いられるフレーム変数を含む。フレーム変数が示す値は、特徴量抽出実行部1420に入力されるデータ単位(時系列データの特定区間)を識別するための情報として用いられる。
 システム定義変数1424に格納される値は、特徴量抽出実行部1420が処理を開始するためのトリガあるいは条件として用いられる。
 特徴量抽出実行部1420での演算結果は、特徴量抽出ユーザ変数1426およびシステム定義変数1428として出力される。
 特徴量抽出ユーザ変数1426は、特徴量抽出実行部1420での特徴量の算出処理に用いられたデータ単位を特定するためのフレーム変数(フレームIDとして示される値)と同じ値が出力フレーム変数として格納される。出力フレーム変数に格納される値は、後述の異常検知エンジン140における処理において参照される。
 システム定義変数1428には、特徴量抽出実行部1420での演算結果である特徴量が格納される。典型的には、システム定義変数1428としては配列または構造体が用いられ、複数の特徴量が算出された場合には、各特徴量が多次元のデータ構造の形で格納される。
 図7に示すように、特徴量抽出部142での演算結果(特徴量抽出ユーザ変数1426システム定義変数1428)は、変数管理部150が管理する内部状態値(変数値)として内部保持されることになる。なお、特徴量抽出部142が参照する特徴量抽出ユーザ変数1422およびシステム定義変数1424についても、変数管理部150が管理する内部状態値(変数値)として内部保持されることになる。これらの変数管理部150が管理する内部状態値(変数値)は、制御装置100で実行されるユーザプログラムなどから任意に参照可能になっている。
 異常検知エンジン140は、システムサービスとして実行される異常検知エンジン実行部1400に規定される命令が実行されることで実現される。異常検知エンジン実行部1400には、異常検知ユーザ変数1402、システム定義変数1428、およびシステム定義変数1404が入力される。
 異常検知ユーザ変数1402には、特徴量抽出実行部1420での演算結果が格納されており、異常検知エンジン実行部1400は、特徴量抽出実行部1420により算出された特徴量を参照できる。
 異常検知ユーザ変数1402には、異常検知エンジン実行部1400での処理に用いられる特徴量の算出に用いたデータ単位を特定するためのフレーム変数が格納されている。異常検知ユーザ変数1402に格納されるフレーム変数は、特徴量抽出ユーザ変数1426に格納される出力フレーム変数と同値である。すなわち、特徴量抽出実行部1420から出力されるフレーム変数が示す値と同じ値を、異常検知エンジン実行部1400のフレーム変数として与えることができる。このように、異常検知エンジン140には、特徴量抽出部142が出力するフレーム変数(第1の内部状態値)の値が入力される。
 システム定義変数1404に格納される値は、異常検知エンジン実行部1400が処理を開始するためのトリガあるいは条件として用いられる。
 異常検知エンジン実行部1400での演算結果は、異常検知ユーザ変数1406およびシステム定義変数1408として出力される。
 異常検知ユーザ変数1406は、異常検知エンジン実行部1400での処理に用いられたデータ単位を特定するためのフレーム変数(フレームIDとして示される値)と同じ値が出力フレーム変数として格納される。
 システム定義変数1408には、異常検知エンジン実行部1400での演算結果である特徴量が格納される。典型的には、システム定義変数1408としては配列または構造体が用いられる。システム定義変数1408には、異常検知エンジン実行部1400において学習データ252および特徴量に基づいて算出されるスコア、ならびに、当該算出されたスコアとパラメータ256に含まれるしきい値設定2564との比較によって決定される異常の有無を示す検知結果が格納される。
 図7に示すように、異常検知エンジン140での演算結果(異常検知ユーザ変数1406およびシステム定義変数1408)は、変数管理部150が管理する内部状態値(変数値)として内部保持されることになる。なお、異常検知エンジン140が参照する異常検知ユーザ変数1402、システム定義変数1428、およびシステム定義変数1404についても、変数管理部150が管理する内部状態値(変数値)として内部保持されることになる。これらの変数管理部150が管理する内部状態値(変数値)は、制御装置100で実行されるユーザプログラムなどから任意に参照可能になっている。
 以上のように、特徴量抽出部142と異常検知エンジン140との間で、同一のフレームID(フレーム変数)を共有することで、データの一貫性を維持できる。
 <F.フレームおよびサブフレーム>
 次に、本実施の形態に従う異常検知システム1におけるフレームおよびサブフレーム、ならびに、フレーム変数を用いたデータの一貫性を維持するための処理について説明する。
 図8は、本実施の形態に従う異常検知システム1の制御装置100におけるフレーム管理に係る処理を説明するためのタイムチャートである。
 図8を参照して、異常検知処理はフレームの単位で実行される。フレームは、複数の制御周期に亘るものとして定義されることが多い。すなわち、フレームは、複数の制御周期をまとめて管理する単位とも定義できる。
 より具体的には、フレーム300は、ユーザが任意に設定するフレーム変数302を用いて設定できる。図8に示す例では、フレーム変数302として変数Var_Aが設定されているとする。例えば、フレーム変数302として用いられる変数Var_Aは、処理対象のワークのロット番号などを示すものとする。
 制御装置100の特徴量抽出部142は、フレーム変数(第1の内部状態値)が同一の値を示す区間をフレーム(単位区間)として決定する。
 特徴量抽出部142における処理として、フレーム変数302により設定されるフレーム300毎に1または複数の時系列データ(すなわち、サンプリング変数として指定される値の時間的変化)から1または複数の特徴量が算出される。図8に示す例では、各フレームに対応する単位区間の時系列データ306(時系列データA)から特徴量308(特徴量A)が順次算出されるとともに、各フレームに対応する単位区間の時系列データ310(時系列データB)から特徴量312(特徴量B)が順次算出される例を示す。
 それぞれ算出される特徴量308および312に対しては、出力フレーム変数304が対応付けられる。図8に示す例では、出力フレーム変数304として変数Var_Bが設定されており、変数Var_Bにはフレーム変数302である変数Var_Aの値が設定されることになる。
 このように、順次算出される特徴量には、当該特徴量の算出に用いた時系列データに付与されていた「フレームID」(フレーム変数302である変数Var_A)と同じ「フレームID」(出力フレーム変数304である変数Var_B)が付与されることになる。すなわち、特徴量の算出は、少なくとも1フレーム分遅延することになるが、このような時間遅延が存在する場合であっても、「フレームID」を用いることで、データの一貫性を維持できる。
 さらに、異常検知エンジン140においては、特徴量抽出部142での処理により出力される出力フレーム変数304をそのままフレーム変数320として用いる(この例では、変数Var_B)。
 フレーム変数320が示す値と同じ値が付与された特徴量セット326(この例では、特徴量Aおよび特徴量Bを含む)に対して、異常検知処理が実行されて、スコアなどの演算結果324が算出される。演算結果324の各々に対しては、出力フレーム変数322が対応付けられる。図8に示す例では、出力フレーム変数322として変数Var_Cが設定されており、変数Var_Cにはフレーム変数320である変数Var_Bの値が設定されることになる。
 なお、特徴量セット326が入力されてからスコアなどの演算結果324が算出されるまでには、所定の異常検知判定時間だけ遅延が生じ得る。異常検知判定時間の遅延が存在しても、フレームIDを用いることでデータの一貫性を維持できる。
 以上のように、フレームIDとして、ユーザが任意に設定した変数(基本的には、制御装置100で実行されるユーザプログラムが参照可能な変数のいずれか)をキーにして、複数の制御周期に亘って生成または算出されるとともに、生成または算出されるタイミングも異なるデータについて、その一貫性(いわば、データのトレーサビリティ)を維持できる。
 次に、フレーム内に設定可能なサブフレームについて説明する。上述したように、各フレームの時系列データから特徴量が算出されることになるが、各フレーム内の特定区間の時系列データのみから特徴量を算出したい場合もある。
 例えば、対象のワークのロット番号を示す変数をフレーム変数として設定した場合において、各ワークに対して複数の工程で処理が実行されるようなときもある。このような場合において、特定の工程において現れる状態値の変化に基づいて、特徴量を算出したいことも多い。
 そこで、本実施の形態においては、各フレームに対してサブフレームを設定することができ、設定されたサブフレームの区間における時系列データに基づいて特徴量を算出することができる。サブフレームは、特徴量毎に設定できるようにしてもよい。
 図9は、図8に示されるサブフレームを説明するためのタイムチャートである。図9を参照して、ロット番号などを示す変数をフレーム330として設定する場合を想定する。各フレーム330の終わりのタイミングで、各フレーム330での演算結果が出力されるとする。図8に示す例では、各フレーム330は、3つの工程を含むとし、いずれの工程にあるのかを示すステータス332を参照可能であるとする。
 ステータス332は、特徴量を算出する対象を特定するためのサブフレームとして設定可能である。例えば、特徴量の算出対象として時系列データ306および310(時系列データAおよびB)を想定する。時系列データ306については、第2番目の工程(ステータス332の値が「2」)の部分区間から特徴量を算出し、時系列データ310については、第3番目の工程(ステータス332の値が「3」)の部分区間から特徴量を算出するとする。
 この場合、時系列データAのサブフレーム336(時系列データAのサブフレーム)としては、ステータス332の値が「2」を示す部分区間を設定し、時系列データBのサブフレーム340(時系列データBのサブフレーム)としては、ステータス332の値が「3」を示す部分区間を設定すればよい。
 このように、制御装置100の特徴量抽出部142は、フレーム変数(単位区間)毎に、当該フレームにおいて予め定められたサブフレーム変数(第3の内部状態値)が予め定められた値を示す部分区間におけるサンプリング変数(第2の内部状態値)の変化から特徴量を算出する。
 図8に示すように、特徴量を算出する対象の区間をフレーム内の一部の区間に限定することで、より精度の高い異常検知処理を実現できる。
 <G.データ構造>
 次に、上述したようなフレームIDを含んで出力されるデータ構造について説明する。
 図10は、本実施の形態に従う異常検知システム1の制御装置100の内部DB130に格納されるデータ構造の一例を説明するための図である。図10(a)には、内部DB130の生データ時系列DB132に格納される時系列データの一例を示し、図10(b)には、内部DB130の特徴量時系列DB134に格納される時系列データの一例を示し、図10(c)には、内部DB130の検知結果時系列DB136に格納される時系列データの一例を示す。図10に示す時系列データは、一例として、監視対象である変数Var_1の最大値を特徴量としている。
 なお、内部DB130には、図10(a)~図10(c)に示すすべての時系列データを格納しなくてもよく、その一部の時系列データのみを格納するようにしてもよい。
 図10(a)に示す生データ時系列DB132に格納される時系列データの各レコードは、時刻情報1320と、変数値1322と、フレームID1324とを含む。図10(a)に示す特徴量時系列DB134に格納される時系列データの各レコードは、時刻情報1340と、フレームID1342と、特徴量1344とを含む。図10(c)に示す検知結果時系列DB136に格納される時系列データの各レコードは、時刻情報1360と、フレームID1362と、スコア1364とを含む。
 このように、制御装置100の内部DB130は、フレーム変数(第1の内部状態値)の値を対応付けた特徴量の時系列データ、および、フレーム変数(第1の内部状態値)の値を対応付けた検知結果の時系列データ、の少なくとも一方を格納する。
 図10(a)~図10(c)に示すように、共通のフレームIDを用いることで、異なる時刻に生成または算出されるデータの間で一貫性を維持できる。このようにフレームIDを用いることで、制御装置100で実行される処理およびデータの一貫性、ならびに、内部DB130に格納されるデータに含まれるレコード間の対応付けも容易に実現できる。また、フレームIDとして単調増加または単調減少(インクリメントまたはデクリメント)するといった予め定められた規則性に従って変化する値を用いることで、異常検知処理の抜け(脱落)などを検知できる。
 図11は、図10に示されるそれぞれの時系列データを結合した時系列データの一例を示す図である。図11を参照して、結合された時系列データの各レコードは、フレームID1324(1342,1362)と、時刻情報1320(1340,1360)と、変数値1322と、特徴量1344と、スコア1364とを含む。
 図11に示すように、フレームIDをキーにして、3種類の時系列データを結合させることで、監視対象から取得される生データ、生データから算出される特徴量、特徴量から算出されるスコアなどを時系列に確認あるいは解析できる。
 <H.処理手順>
 次に、本実施の形態に従う異常検知システム1における処理手順について説明する。
 図12は、本実施の形態に従う異常検知システム1における処理手順を示すフローチャートである。図12には、変数管理部150、特徴量抽出部142、および異常検知エンジン140で実行される処理手順を示す。図12に示す各ステップは、典型的には、制御装置100のプロセッサ102が制御プログラムに相当するシステムプログラム126(図3参照)を実行することで実現される。
 まず、変数管理部150で実行される処理として、制御装置100は、制御周期が到来したか否かを判断する(ステップS100)。制御周期が到来していなければ(ステップS100においてNO)、ステップS100の処理が繰り返される。
 制御周期が到来していれば(ステップS100においてYES)、制御装置100は、制御対象から状態値を取得し(ステップS102)、当該取得した状態値でデバイス変数154の値を更新する(ステップS104)。そして、ステップS100以下の処理が繰り返される。
 このように、変数管理部150においては、制御対象に生じる状態値を予め定められた制御周期毎に取得して内部保持されるデバイス変数154(内部状態値)を更新する処理が実行される。
 次に、特徴量抽出部142で実行される処理として、制御装置100は、指定されたフレーム変数の値が変化したか否かを判断する(ステップS200)。フレーム変数の値が変化していなければ(ステップS200においてNO)、ステップS200の処理が繰り返される。
 フレーム変数の値が変化していれば(ステップS200においてYES)、制御装置100は、指定されたサンプリング変数の値を一時的に収集する(ステップS202)。
 そして、制御装置100は、フレーム変数の値が同一の値に維持されているか否かを判断する(ステップS204)。フレーム変数の値が同一の値に維持されていれば(ステップS204においてYES)。ステップS202以下の処理が繰り返される。
 フレーム変数の値が同一の値に維持されていなければ(ステップS204においてNO)、制御装置100は、ステップS202において収集された一連のサンプリング変数の値に基づいて特徴量を算出する(ステップS206)。そして、制御装置100は、算出した特徴量をフレーム変数の値(変化する前の値)に対応付けて出力する(ステップS208)。そして、ステップS200以下の処理が繰り返される。
 このように、特徴量抽出部142においては、予め定められたフレーム変数(第1の内部状態値)の値に応じて決定されるフレーム(単位区間)毎に、当該フレーム内に生じた予め定められたサンプリング変数(第2の内部状態値)の変化から特徴量を算出する処理が実行される。そして、特徴量抽出部142においては、算出した特徴量に、対応するフレーム(単位区間)を決定したフレーム変数の値を対応付けて出力する処理も実行される。
 次に、異常検知エンジン140で実行される処理として、制御装置100は、特徴量抽出部142により新たな特徴量が算出されたか否かを判断する(ステップS300)。新たな特徴量が算出されていなければ(ステップS300においてNO)、ステップS300の処理が繰り返される。
 新たな特徴量が算出されていれば(ステップS300においてYES)、制御装置100は、学習データ252を参照して算出された特徴量についてのスコアを含む検知結果を生成する(ステップS302)。なお、特徴量抽出部142から出力される新たな特徴量には、フレーム変数の値が対応付けられている。
 そして、制御装置100は、生成した検知結果をフレーム変数の値に対応付けて出力する(ステップS304)。そして、ステップS300以下の処理が繰り返される。
 このように、異常検知エンジン140においては、特徴量抽出部142により算出される特徴量に基づいて、制御対象に含まれる監視対象に何らかの異常が発生しているか否かを示す検知結果を生成する処理と、当該生成した検知結果に、当該検知結果の生成に用いた特徴量に対応付けられていたフレーム変数(第1の内部状態値)の値を対応付けて出力する処理とが実行される。
 <I.付記>
 上述したような本実施の形態は、以下のような技術思想を含む。
[構成1]
 制御対象に生じる状態値を予め定められた制御周期毎に取得して内部保持される内部状態値(154)を更新する管理部(150)と、
 予め定められた第1の内部状態値(302)の値に応じて決定される単位区間(300)毎に、当該単位区間内に生じた予め定められた第2の内部状態値(306,310)の変化から特徴量(308,312)を算出する特徴量抽出部(142)とを備え、前記特徴量抽出部は、前記算出した特徴量に、対応する単位区間を決定した前記第1の内部状態値の値を対応付けて出力し、
 前記特徴量抽出部により算出される前記特徴量に基づいて、前記制御対象に含まれる監視対象に何らかの異常が発生しているか否かを示す検知結果(324)を生成する異常検知部(140)を備え、前記異常検知部は、生成した検知結果に、当該検知結果の生成に用いた特徴量に対応付けられていた前記第1の内部状態値の値を対応付けて出力する、制御装置。
[構成2]
 前記異常検知部には、前記特徴量抽出部が出力する前記第1の内部状態値の値が入力される、構成1に記載の制御装置。
[構成3]
 前記特徴量抽出部は、前記第1の内部状態値として任意の内部状態値の指定を受け付ける、構成1または2に記載の制御装置。
[構成4]
 前記特徴量抽出部は、前記第1の内部状態値が同一の値を示す区間を前記単位区間として決定する、構成1~3のいずれか1項に記載の制御装置。
[構成5]
 前記特徴量抽出部は、単位区間毎に、当該単位区間において予め定められた第3の内部状態値(332)が予め定められた値を示す部分区間における前記第2の内部状態値の変化から前記特徴量を算出する、構成1~4のいずれか1項に記載の制御装置。
[構成6]
 前記異常検知部は、予め用意された学習データ(252)を参照して、前記特徴量から前記監視対象に何らかの異常が発生している可能性を示す値(1364)を算出する、構成1~5のいずれか1項に記載の制御装置。
[構成7]
 前記学習データは、正常である場合に得られる特徴量の群を含み、
 前記異常検知部は、前記学習データに含まれる特徴量群に対する前記特徴量の外れ度合いに基づいて、前記監視対象に何らかの異常が発生している可能性を示す値を算出する、構成6に記載の制御装置。
[構成8]
 前記異常検知部は、前記監視対象に何らかの異常が発生している可能性を示す値が予め定められたしきい範囲内であるか否かに基づいて、前記監視対象での異常発生の有無を示す検知結果を生成する、構成6または7に記載の制御装置。
[構成9]
 前記第1の内部状態値の値を対応付けた特徴量の時系列データ、および、前記第1の内部状態値の値を対応付けた検知結果の時系列データの少なくとも一方を格納する格納部(130)をさらに備える、構成1~8のいずれか1項に記載の制御装置。
[構成10]
 前記管理部は、前記特徴量抽出部および前記異常検知部での演算結果を、前記制御装置で実行されるプログラムで参照可能な内部状態値としてさらに内部保持する、構成1~9のいずれか1項に記載の制御装置。
[構成11]
 制御装置で実行される制御プログラム(126)であって、前記制御プログラムは前記制御装置(100)に、
 制御対象に生じる状態値を予め定められた制御周期毎に取得して内部保持される内部状態値を更新するステップ(S100,S102,S104)と、
 予め定められた第1の内部状態値(302)の値に応じて決定される単位区間(300)毎に、当該単位区間内に生じた予め定められた第2の内部状態値(306,310)の変化から特徴量(308,312)を算出するステップ(S200,S202,S204,S206)と、
 前記算出した特徴量に、対応する単位区間を決定した前記第1の内部状態値の値を対応付けて出力するステップ(S208)と、
 前記特徴量抽出部により算出される前記特徴量に基づいて、前記制御対象に含まれる監視対象に何らかの異常が発生しているか否かを示す検知結果(324)を生成するステップ(S302)と、
 前記生成した検知結果に、当該検知結果の生成に用いた特徴量に対応付けられていた前記第1の内部状態値の値を対応付けて出力するステップ(S304)とを実行させる、制御プログラム。
 <J.利点>
 本実施の形態に従う異常検知システムにおいては、制御対象から状態値を取得し、取得した状態値の時間的変化に基づいて特徴量を算出し、算出した特徴量が異常の有無を判断する処理までの間で、データを一貫して処理できる。
 本実施の形態に従う異常検知システムにおいては、予め定められた状態値の値によって規定される単位区間であるフレームを定義し、このフレームを用いて監視対象に生じ得る異常の有無を判断するので、監視対象の区間などの管理が容易化する。
 本実施の形態に従う異常検知システムにおいては、単位区間であるフレームに対して、任意のサブフレームを規定することができる。この規定されたサブフレームにおいて、特徴量を算出し、算出した特徴量に基づいて異常検知処理を実行できるので、より精度の高い異常検知を実現できる。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1 異常検知システム、2 第1フィールドバス、4 第2フィールドバス、6 ローカルネットワーク、10 フィールド装置群、12 リモートI/O装置、14 リレー群、16,124 I/Oユニット、18 画像センサ、20 カメラ、22 サーボドライバ、24 サーボモータ、100 制御装置、102,202 プロセッサ、104 チップセット、106,206 主記憶装置、108,208 二次記憶装置、110,214 ローカルネットワークコントローラ、112,212 USBコントローラ、114 メモリカードインターフェイス、116 メモリカード、118,120 フィールドバスコントローラ、122 内部バスコントローラ、126 システムプログラム、130 内部DB、132 生データ時系列DB、134 特徴量時系列DB、136 検知結果時系列DB、140 異常検知エンジン、142 特徴量抽出部、144 時系列データベースマネジャ、150 変数管理部、152 処理結果、154 デバイス変数、180 タスク周期、182 タスク実行時間、184 I/Oリフレッシュ処理、186 制御処理、188 システムサービス、200 サポート装置、204 ドライブ、205 記憶媒体、216 入力部、218 表示部、220 バス、250 データマイニングツール、252 学習データ、254 生データ、256 パラメータ、260 設定ツール、300,330 フレーム、302,320 フレーム変数、304,322 出力フレーム変数、306,310,A,B 時系列データ、308,312,1344 特徴量、324 演算結果、326 特徴量セット、332 ステータス、336,340 サブフレーム、400 表示装置、500 上位サーバ、1320,1340,1360 時刻情報、1322 変数値、1324,1342,1362 フレームID、1364 スコア、1400 異常検知エンジン実行部、1402,1406 異常検知ユーザ変数、1404,1408,1424,1428 システム定義変数、1420 特徴量抽出実行部、1422,1426 特徴量抽出ユーザ変数、2562 特徴量抽出設定、2564 しきい値設定。

Claims (11)

  1.  制御対象に生じる状態値を予め定められた制御周期毎に取得して内部保持される内部状態値を更新する管理部と、
     予め定められた第1の内部状態値の値に応じて決定される単位区間毎に、当該単位区間内に生じた予め定められた第2の内部状態値の変化から特徴量を算出する特徴量抽出部とを備え、前記特徴量抽出部は、前記算出した特徴量に、対応する単位区間を決定した前記第1の内部状態値の値を対応付けて出力し、
     前記特徴量抽出部により算出される前記特徴量に基づいて、前記制御対象に含まれる監視対象に何らかの異常が発生しているか否かを示す検知結果を生成する異常検知部を備え、前記異常検知部は、生成した検知結果に、当該検知結果の生成に用いた特徴量に対応付けられていた前記第1の内部状態値の値を対応付けて出力する、制御装置。
  2.  前記異常検知部には、前記特徴量抽出部が出力する前記第1の内部状態値の値が入力される、請求項1に記載の制御装置。
  3.  前記特徴量抽出部は、前記第1の内部状態値として任意の内部状態値の指定を受け付ける、請求項1または2に記載の制御装置。
  4.  前記特徴量抽出部は、前記第1の内部状態値が同一の値を示す区間を前記単位区間として決定する、請求項1~3のいずれか1項に記載の制御装置。
  5.  前記特徴量抽出部は、単位区間毎に、当該単位区間において予め定められた第3の内部状態値が予め定められた値を示す部分区間における前記第2の内部状態値の変化から前記特徴量を算出する、請求項1~4のいずれか1項に記載の制御装置。
  6.  前記異常検知部は、予め用意された学習データを参照して、前記特徴量から前記監視対象に何らかの異常が発生している可能性を示す値を算出する、請求項1~5のいずれか1項に記載の制御装置。
  7.  前記学習データは、正常である場合に得られる特徴量の群を含み、
     前記異常検知部は、前記学習データに含まれる特徴量群に対する前記特徴量の外れ度合いに基づいて、前記監視対象に何らかの異常が発生している可能性を示す値を算出する、請求項6に記載の制御装置。
  8.  前記異常検知部は、前記監視対象に何らかの異常が発生している可能性を示す値が予め定められたしきい範囲内であるか否かに基づいて、前記監視対象での異常発生の有無を示す検知結果を生成する、請求項6または7に記載の制御装置。
  9.  前記第1の内部状態値の値を対応付けた特徴量の時系列データ、および、前記第1の内部状態値の値を対応付けた検知結果の時系列データの少なくとも一方を格納する格納部をさらに備える、請求項1~8のいずれか1項に記載の制御装置。
  10.  前記管理部は、前記特徴量抽出部および前記異常検知部での演算結果を、前記制御装置で実行されるプログラムで参照可能な内部状態値としてさらに内部保持する、請求項1~9のいずれか1項に記載の制御装置。
  11.  制御装置で実行される制御プログラムであって、前記制御プログラムは前記制御装置に、
     制御対象に生じる状態値を予め定められた制御周期毎に取得して内部保持される内部状態値を更新するステップと、
     予め定められた第1の内部状態値の値に応じて決定される単位区間毎に、当該単位区間内に生じた予め定められた第2の内部状態値の変化から特徴量を算出するステップと、
     前記算出した特徴量に、対応する単位区間を決定した前記第1の内部状態値の値を対応付けて出力するステップと、
     前記算出した特徴量に基づいて、前記制御対象に含まれる監視対象に何らかの異常が発生しているか否かを示す検知結果を生成するステップと、
     前記生成した検知結果に、当該検知結果の生成に用いた特徴量に対応付けられていた前記第1の内部状態値の値を対応付けて出力するステップとを実行させる、制御プログラム。
PCT/JP2019/039603 2018-10-24 2019-10-08 制御装置および制御プログラム WO2020085077A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US17/279,080 US11829130B2 (en) 2018-10-24 2019-10-08 Control apparatus and non-transitory computer readable medium for detecting abnormality occurring in subject to be monitored
EP19875494.7A EP3872593A4 (en) 2018-10-24 2019-10-08 CONTROL DEVICE AND CONTROL PROGRAM
CN201980058302.5A CN112673326A (zh) 2018-10-24 2019-10-08 控制装置及控制程序

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2018199664A JP7063229B2 (ja) 2018-10-24 2018-10-24 制御装置および制御プログラム
JP2018-199664 2018-10-24

Publications (1)

Publication Number Publication Date
WO2020085077A1 true WO2020085077A1 (ja) 2020-04-30

Family

ID=70331030

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2019/039603 WO2020085077A1 (ja) 2018-10-24 2019-10-08 制御装置および制御プログラム

Country Status (5)

Country Link
US (1) US11829130B2 (ja)
EP (1) EP3872593A4 (ja)
JP (1) JP7063229B2 (ja)
CN (1) CN112673326A (ja)
WO (1) WO2020085077A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7294895B2 (ja) * 2019-06-05 2023-06-20 ファナック株式会社 制御装置
JP7114008B2 (ja) * 2020-07-03 2022-08-05 三菱電機株式会社 データ処理装置
JP2023051402A (ja) * 2021-09-30 2023-04-11 オムロン株式会社 制御システム、情報処理方法および情報処理装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008072047A (ja) * 2006-09-15 2008-03-27 Omron Corp モデル作成装置並びにプロセス異常分析装置およびそれらの方法並びにプログラム
JP2012243192A (ja) 2011-05-23 2012-12-10 Mitsubishi Electric Engineering Co Ltd データロガーシステムおよびデータロギング方法
JP2018133037A (ja) * 2017-02-17 2018-08-23 オムロン株式会社 制御装置
JP2018151918A (ja) * 2017-03-14 2018-09-27 オムロン株式会社 制御装置、データ構造、情報処理方法

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6199018B1 (en) * 1998-03-04 2001-03-06 Emerson Electric Co. Distributed diagnostic system
US7234168B2 (en) * 2001-06-13 2007-06-19 Mcafee, Inc. Hierarchy-based method and apparatus for detecting attacks on a computer system
US20070088550A1 (en) * 2005-10-13 2007-04-19 Dimitar Filev Method for predictive maintenance of a machine
JP5954338B2 (ja) * 2014-01-14 2016-07-20 横河電機株式会社 計装システム及びその保守方法
US9638762B2 (en) * 2014-02-24 2017-05-02 Infineon Technologies Ag Highly efficient diagnostic methods for monolithic sensor systems
WO2015140841A1 (ja) * 2014-03-20 2015-09-24 日本電気株式会社 異常を検知する情報処理装置及び異常検知方法
US9912733B2 (en) * 2014-07-31 2018-03-06 General Electric Company System and method for maintaining the health of a control system
JP6542713B2 (ja) * 2016-06-09 2019-07-10 ファナック株式会社 異常負荷検出の閾値を学習する機械学習器,数値制御装置および機械学習方法
US10739764B2 (en) * 2016-07-15 2020-08-11 Ricoh Company, Ltd. Diagnostic apparatus, diagnostic system, diagnostic method, and recording medium
US11397792B2 (en) * 2016-09-08 2022-07-26 Nec Corporation Anomaly detecting device, anomaly detecting method, and recording medium
JP6919186B2 (ja) * 2016-12-14 2021-08-18 オムロン株式会社 制御システム、制御プログラムおよび制御方法
JP6468313B2 (ja) * 2017-06-08 2019-02-13 オムロン株式会社 制御装置、制御プログラムおよび制御方法
JP6834446B2 (ja) * 2016-12-14 2021-02-24 オムロン株式会社 制御システム、制御プログラムおよび制御方法
JP2018151917A (ja) * 2017-03-14 2018-09-27 オムロン株式会社 制御装置
JP2018160078A (ja) * 2017-03-22 2018-10-11 パナソニックIpマネジメント株式会社 異常検知装置及び異常検知方法
JP6903976B2 (ja) * 2017-03-22 2021-07-14 オムロン株式会社 制御システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008072047A (ja) * 2006-09-15 2008-03-27 Omron Corp モデル作成装置並びにプロセス異常分析装置およびそれらの方法並びにプログラム
JP2012243192A (ja) 2011-05-23 2012-12-10 Mitsubishi Electric Engineering Co Ltd データロガーシステムおよびデータロギング方法
JP2018133037A (ja) * 2017-02-17 2018-08-23 オムロン株式会社 制御装置
JP2018151918A (ja) * 2017-03-14 2018-09-27 オムロン株式会社 制御装置、データ構造、情報処理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP3872593A4

Also Published As

Publication number Publication date
US11829130B2 (en) 2023-11-28
JP2020067786A (ja) 2020-04-30
CN112673326A (zh) 2021-04-16
EP3872593A1 (en) 2021-09-01
US20220050448A1 (en) 2022-02-17
EP3872593A4 (en) 2022-07-13
JP7063229B2 (ja) 2022-05-09

Similar Documents

Publication Publication Date Title
US10990084B2 (en) Control apparatus, data structure, and information processing method
US10591886B2 (en) Control system, control program, and control method for device switching responsive to abnormality detection
US11782431B2 (en) Control device and non-transitory computer-readable recording medium recording program
JP6903976B2 (ja) 制御システム
JP6965798B2 (ja) 制御システムおよび制御方法
WO2020085077A1 (ja) 制御装置および制御プログラム
JP6724847B2 (ja) 制御装置、制御プログラム、制御システム、および制御方法
JP2018173865A (ja) 制御装置
JP7102801B2 (ja) 制御システム、制御装置および表示装置
US20230359487A1 (en) Control device, non-transitory computer-readable medium, and control method
US20230221715A1 (en) Method for the predictive maintenance of an automatic machine for manufacturing or packing consumer articles
US11520302B2 (en) Control system and control device
WO2022181007A1 (ja) 情報処理装置、情報処理プログラムおよび情報処理方法
JP2023151936A (ja) データ収集装置およびプログラム
JP2023006304A (ja) 制御システム、モデル生成方法およびモデル生成プログラム
JP2023002962A (ja) 情報処理装置、モデル生成プログラムおよびモデル生成方法
JP2022138398A (ja) 制御装置、制御システム、方法およびプログラム

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 19875494

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

ENP Entry into the national phase

Ref document number: 2019875494

Country of ref document: EP

Effective date: 20210525