Patent Description:
At various production sites, there is a demand to detect abnormalities occurring in machines, devices, or the like early and to improve the capacity utilization rate. In a typical abnormality monitoring method, data is collected from machines or devices, and it is determined whether some kind of abnormality has occurred on the basis of the collected data.

Such an abnormality monitoring process can also be realized by an upper-level device collecting data from a control device such as a programmable controller (PLC), but the implementation of the abnormality monitoring process in the control device makes it possible to realize faster abnormality determination.

More specifically, in a control device, as disclosed in <CIT>, an input and output program and a control program are repeatedly executed, and thus processing required for control of a control target is realized. When the abnormality monitoring process is executed by the control device, commands required for the abnormality monitoring process are included in the input and output program and the control program.

<CIT>proposes a control device having miniaturization, higher performance, and informatization. The fourth core of a PLC has allocated thereto only applications which do not need to be executed repeatedly at execution intervals that are less than or equal to a prescribed time interval with regard to a control subject.

In a case where a plurality of control programs like that disclosed in <CIT> is executed in parallel, it is also possible to use a plurality of cores within a single processor, or to use a plurality of processors.

However, even in a case where a plurality of cores or a plurality of processors can be used as computing resources, there are some processes in which the computing resources cannot be used efficiently.

One objective of the present invention is to realize efficient processing in a case where a plurality of arithmetic units can be used as computing resources. The present invention is provided by the appended claims. The following disclosure serves a better understanding of the present invention. In the following description, any embodiments referred to and not falling within the scope of the appended claims are merely examples useful for the understanding of the invention.

According to an embodiment of the present invention, there is provided a control system including: a control device that executes a control arithmetic for controlling a control target; and a support device that sets content of the control arithmetic which is executed by the control device. The control device includes a first arithmetic unit for cyclically executing a first task to which one or a plurality of processes is allocated in a first control cycle and a second arithmetic unit for cyclically executing a second task to which one or a plurality of processes is allocated in a second control cycle that is longer than the first control cycle. The control arithmetic includes a data collection process of collecting input data that is capable of being referred to by the control device and a data processing process of processing the collected input data to generate new data. A first data collection process with first input data as a target and a corresponding first data processing process are allocated to the first task. A second data collection process with second input data as a target and a corresponding second data processing process are allocated to either of the first task and the second task in accordance with a setting via the support device.

According to the present embodiment, the second data collection process with the second input data as a target and the corresponding second data processing process can be allocated to either of the first task and the second task in accordance with processing performance required for input data, the attribute of the input data, or the like, and thus it is possible to realize efficient processing.

The control device may further include a third arithmetic unit for executing a third task to which one or a plurality of processes is allocated depending on a situation. According to this configuration, it is possible to provide an execution environment in which efficient processing can be executed depending on the situation in addition to the first task and the second task which are cyclically executed.

A process of storing data which is generated through the first data processing process and the second data processing process may be allocated to the third task. According to this configuration, the data which is generated through the first data processing process and the second data processing process can be stored at an appropriate timing, and thus it is possible to make a series of processes until input data is processed and stored efficient.

A process of calculating a predetermined index from data which is generated through the first data processing process and the second data processing process may be allocated to the third task. According to this configuration, even in a case where the abnormality detection process or the like is implemented, it is possible to make the process efficient.

The data processing process may include a process of calculating a feature amount from a plurality of pieces of input data collected through the data collection process. According to this configuration, even in a case where the abnormality detection process or the like is implemented, it is possible to make the process efficient.

The data processing process may include a process of converting the input data collected through the data collection process into a corresponding physical quantity. According to this configuration, preprocessing or the like is not required in various analysis processes or the like, and thus it is possible to realize efficient data utilization.

The data processing process may include a process of forming one or a plurality of pieces of input data collected through the data collection process into a predetermined format. According to this configuration, even in a case where data is required to be transferred to the outside, or the like, it is possible to realize efficient processing.

In a case where the second data collection process and the second data processing process are capable of being allocated to both the first task and the second task, the support device may accept a setting of which task these processes are allocated to. According to this configuration, it is possible to help a user allocate the data collection process and the data processing process which are targets to an appropriate task out of the first task and the second task.

The support device may accept a change in an allocation destination task of the second data collection process and the second data processing process. According to this configuration, even in a case where it is determined afterward that a task to which the data collection process and the data processing process have been previously allocated is not appropriate, it is possible to make an easy change in allocation to a more appropriate task.

According to another embodiment of the present invention, there is provided a control device that executes a control arithmetic for controlling a control target. The control device includes: a first arithmetic unit for cyclically executing a first task to which one or a plurality of processes is allocated in a first control cycle; and a second arithmetic unit for cyclically executing a second task to which one or a plurality of processes is allocated in a second control cycle that is longer than the first control cycle. The control arithmetic includes a data collection process of collecting input data that is capable of being referred to by the control device and a data processing process of processing the collected input data to generate new data. A first data collection process with first input data as a target and a corresponding first data processing process are allocated to the first task. A second data collection process with second input data as a target and a corresponding second data processing process are allocated to either of the first task and the second task in accordance with an external setting.

According to the present invention, it is possible to realize efficient processing in a case where a plurality of arithmetic units can be used as computing resources.

An embodiment of the present disclosure will be described in detail with reference to the accompanying drawings. Meanwhile, the same or equivalent portions in the drawings are denoted by the same reference numerals and signs, and thus description thereof will not be repeated.

As a typical example, processing when the present embodiment is applied to an abnormality monitoring process of determining whether some kind of abnormality has occurred in any monitoring target will be described, but the present embodiment is not limited thereto, and can be applied to any processing.

<FIG> is a diagram illustrating a main process of a control system <NUM> according to the present embodiment. Referring to <FIG>, a control device <NUM> constituting the control system <NUM> executes one or a plurality of processes in units of "tasks" as a control arithmetic for controlling a control target.

In the present specification, a "task" is the execution unit of a control arithmetic, and is allocated one or a plurality of processes. <FIG> shows a primary fixed cycle task <NUM> which is cyclically executed in a primary cycle <NUM> (a first control cycle) and a fixed cycle task <NUM> which is cyclically executed in a fixed cycle <NUM> (a second control cycle).

The control device <NUM> includes a processor having a plurality of cores as will be described later, and is configured such that the primary fixed cycle task <NUM> is cyclically executed by one core (a first arithmetic unit) of the processor and the fixed cycle task <NUM> is cyclically executed by another core (a second arithmetic unit) of the processor. One or a plurality of processes is allocated to the primary fixed cycle task <NUM> and the fixed cycle task <NUM>.

As an example, the primary fixed cycle task <NUM> includes an I/O refresh process <NUM>, a user program execution process <NUM>, and a motion control process <NUM>. Similarly, the fixed cycle task <NUM> includes an I/O refresh process <NUM>, a user program execution process <NUM>, and a motion control process <NUM>. The process contents of the I/O refresh process <NUM>, the user program execution process <NUM>, and the motion control process <NUM> are the same as the process contents of the I/O refresh process <NUM>, the user program execution process <NUM>, and the motion control process <NUM>, except that their execution cycles are different from each other.

A control arithmetic which is executed by the control device <NUM> includes a data collection process <NUM> of collecting input data that is capable of being referred to by the control device <NUM> and a data processing process of processing the collected input data to generate new data.

In the present specification, "input data" is a term including any status value, an internal status value, a system status value, and the like capable of being referred to in a control arithmetic which is executed by the control device <NUM>, in addition to data acquired from a control target which is acquired by a field device group <NUM> to be described later and transferred to the control device <NUM>.

As an example of the data processing process, in the following description, a feature extraction process <NUM> of calculating a feature amount from a plurality of pieces of input data collected through the data collection process <NUM> will be illustrated. The feature amount which is calculated through the feature extraction process <NUM> is used for an abnormality monitoring process to be described later. Another example of the data processing process will be described later in the section <I. Modification example>.

Typically, the data collection process <NUM> and the feature extraction process <NUM> (the data processing process) for input data in which data processing in a short cycle is required are allocated to the primary fixed cycle task <NUM>.

On the other hand, the data collection process <NUM> and the feature extraction process <NUM> (the data processing process) for input data in which data processing in a relatively long cycle is required can be allocated to the primary fixed cycle task <NUM>, or can be allocated to the fixed cycle task <NUM>.

From the viewpoint of efficiently using computing resources, the data collection process <NUM> and the feature extraction process <NUM> (the data processing process) are allocated to any of the primary fixed cycle task <NUM> and the fixed cycle task <NUM> in accordance with the setting via a support device to be described later.

By making it possible to change an allocation destination task in accordance with such a setting, it is possible to realize efficient use of computing resources.

Next, a configuration example of the control system <NUM> according to the present embodiment will be described.

<FIG> is a schematic diagram illustrating an overall configuration example of the control system <NUM> according to the present embodiment. Referring to <FIG>, the control system <NUM> includes, as main components, the control device <NUM> that executes a control arithmetic for controlling a control target and a support device <NUM> that sets the content of a control arithmetic which is executed by the control device <NUM>. The control system <NUM> may further include an upper-level server <NUM> and a display device (human machine interface; hereinafter also referred to as an "HMI") <NUM> as optional components.

The control device <NUM> may be embodied as a kind of computer such as a programmable controller (PLC), and executes a control arithmetic for controlling a control target. The control device <NUM> has an abnormality monitoring function of determining whether some kind of abnormality has occurred in a monitoring target included in a control target.

The control device <NUM> is connected to the field device group <NUM> through a first field bus <NUM>, and is connected to one or a plurality of HMIs <NUM> through a second field bus <NUM>. Further, the control device <NUM> is connected to the upper-level server <NUM> through a local network <NUM>. The control device <NUM> exchanges data with the connected devices through each network.

The control device <NUM> has a collection function of collecting data (input data) which is acquired by the field device group <NUM> and transferred to the control device <NUM>.

As the first field bus <NUM> and the second field bus <NUM>, it is preferable to adopt a network that performs fixed cycle communication in which time taken until arrival of data is guaranteed. As a network that performs such fixed cycle communication, EtherCAT (registered trademark) or the like is known.

The field device group <NUM> includes a device that collects the status value of a control target, a manufacturing device or a production line relevant to control, or the like (hereinafter also collectively referred to as a "field") as input data. An input relay, various sensors, or the like is assumed as a device that collects such a status value. The field device group <NUM> further includes a device that gives some kind of action to a field on the basis of a command value (hereinafter also referred to as "output data") which is generated by the control device <NUM>. An output relay, a contactor, a servo driver, a servo motor, and any other actuators are assumed as a device that gives some kind of action to such a field. The field device group <NUM> exchanges data including input data and output data with the control device <NUM> through the first field bus <NUM>.

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

The remote I/O device <NUM> includes a communication unit that performs communication through the first field bus <NUM> and an input and output unit (hereinafter also referred to as an "I/O unit") that acquires input data and outputs output data. The input data and the output data are exchanged between the control device <NUM> and a field through such an I/O unit. <FIG> shows an example in which digital signals are exchanged as the input data and the output data through the relay group <NUM>.

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

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

The servo driver <NUM> drives the servo motor <NUM> in accordance with output data (such as, for example, a position command) from the control device <NUM>.

As described above, data is exchanged between the control device <NUM> and the field device group <NUM> through the first field bus <NUM>, while the exchanged data is updated in a very short cycle several hundred µsec order to several tens of msec order. Meanwhile, such a process of updating the exchanged data is also referred to as an I/O refresh process.

The support device <NUM> is a device that supports preparation required for the control device <NUM> to control a control target. Specifically, the support device <NUM> provides the development environment (such as a program creation and editing tool, a parser, or a compiler) of a program executed by the control device <NUM>, a setting environment for setting parameters (configurations) of the control device <NUM> and various devices connected to the control device <NUM>, a function of transmitting a generated user program to the control device <NUM>, a function of correcting and changing online a user program or the like executed on the control device <NUM>, and the like. Further, the support device <NUM> also provides a function of setting learning data and parameters for defining an abnormality monitoring process executed by the control device <NUM>, or the like.

The upper-level server <NUM> is connected to the control device <NUM> through the local network <NUM>, and exchanges necessary data with the control device <NUM>. The upper-level server <NUM> has, for example, a database function, and collects data stored in the control device <NUM> periodically or on an event basis. A general-purpose protocol such as Ethernet (registered trademark) may be implemented in the local network <NUM>.

The HMI <NUM> is connected to the control device <NUM> through the second field bus <NUM>, accepts an operation from a user, transmits a command or the like according to the user's operation to the control device <NUM>, and graphically displays processing results or the like in the control device <NUM>.

Next, a hardware configuration example of a main device constituting the control system <NUM> according to the present embodiment will be described.

<FIG> is a block diagram illustrating a hardware configuration example of the control device <NUM> constituting the control system <NUM> according to the present embodiment. Referring to <FIG>, the control device <NUM> includes a processor <NUM> such as a central processing unit (CPU) or a micro-processing unit (MPU), a chipset <NUM>, a main storage device <NUM>, a secondary storage device <NUM>, a local network controller <NUM>, a universal serial bus (USB) controller <NUM>, a memory card interface <NUM>, an internal bus controller <NUM>, and field bus controllers <NUM> and <NUM>.

The processor <NUM> reads out various programs stored in the secondary storage device <NUM>, and develops and executes the programs on the main storage device <NUM> to thereby realize control according to a control target and various processes to be described later. The processor <NUM> includes a plurality of cores <NUM>, <NUM>, <NUM>, and <NUM>. Each of the cores <NUM>, <NUM>, <NUM>, and <NUM> is equivalent to an arithmetic unit. Meanwhile, although only two cores are illustrated in <FIG>, the processor <NUM> having more cores may be adopted without being limited thereto.

The chipset <NUM> realizes processing as the entire control device <NUM> by controlling each component together with the processor <NUM>.

The secondary storage device <NUM> stores a user program executed using an execution environment provided by a system program <NUM> (equivalent to a control program) in addition to the system program <NUM> for realizing a function provided by the control device <NUM>.

The local network controller <NUM> controls exchange of data with another device with the local network <NUM>. The USB controller <NUM> controls exchange of data with the support device <NUM> through USB connection.

The memory card interface <NUM> is configured to be capable of attaching and detaching a memory card <NUM>, and can write data to the memory card <NUM> and read out various types of data (such as a user program or trace data) from the memory card <NUM>.

The internal bus controller <NUM> is an interface that exchanges data with I/O units <NUM>-<NUM>, <NUM>-<NUM>, ··· which are connected to the control device <NUM>.

The field bus controller <NUM> controls exchange of data with another device through the first field bus <NUM>. Similarly, the field bus controller <NUM> controls exchange of data with another device through the second field bus <NUM>.

<FIG> shows an example in which a single processor <NUM> has four cores <NUM>, <NUM>, <NUM>, and <NUM>, but the number of cores mounted in the processor <NUM> may be equal to or less than four, or may be more than four. Alternatively, a plurality of processors <NUM> having a single core may be provided. In this case, each of the processors <NUM> is equivalent to an arithmetic unit. Further, a plurality of processors having a plurality of cores may be provided.

In addition, <FIG> shows a configuration example in which necessary functions are provided by the processor <NUM> executing a program, but some of these provided functions may be implemented using a dedicated hardware circuit (such as, for example, an application specific integrated circuit (ASIC) or a field-programmable gate array (FPGA)).

Further, a main part of the control device <NUM> may be realized using hardware according to general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer). In this case, a virtualization technique may be used to execute a plurality of operating systems (OS) having different uses in parallel and to execute a necessary application on each OS.

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

<FIG> is a block diagram illustrating a hardware configuration example of the support device <NUM> constituting the control system <NUM> according to the present embodiment. Referring to <FIG>, the support device <NUM> includes a processor <NUM> such as a CPU or an MPU, a drive <NUM>, a main storage device <NUM>, a secondary storage device <NUM>, a USB controller <NUM>, a local network controller <NUM>, an input unit <NUM>, and a display unit <NUM>. These components are connected to each other through a bus <NUM>.

The processor <NUM> reads out various programs stored in the secondary storage device <NUM>, and develops and executes the programs on the main storage device <NUM> to thereby realize various processes to be described later.

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

The drive <NUM> can write data to a storage medium <NUM> and read out various types of data (such as a user program, trace data, or time-series data) from the storage medium <NUM>. The storage medium <NUM> includes, for example, the storage medium <NUM> (an optical storage medium such as, for example, a digital versatile disc (DVD)) that non-transiently stores a computer readable program. The program or data stored in the storage medium <NUM> is read by the drive <NUM>, and is installed in an internal storage area such as the secondary storage device <NUM>.

Various programs which are executed by the support device <NUM> may be installed through the computer readable storage medium <NUM>, or may be installed in the form of downloading the programs from a server device or the like on a network. In addition, functions which are provided by the support device <NUM> according to the present embodiment may be realized in the form of using some of modules which are provided by an OS.

The USB controller <NUM> controls exchange of data with the control device <NUM> through USB connection. The local network controller <NUM> controls exchange of data with another device through any network.

The input unit <NUM> is constituted by a keyboard, a mouse, or the like, and accepts a user's operation. The display unit <NUM> is constituted by a display, various indicators, or the like, and outputs processing results or the like from the processor <NUM>. A printer may be connected to the support device <NUM>.

<FIG> shows a configuration example in which necessary functions are provided by the processor <NUM> executing a program, but some or all of these provided functions may be implemented using a dedicated hardware circuit (such as, for example, an ASIC or an FPGA).

As an example, the upper-level server <NUM> according to the present embodiment is realized by executing a program using hardware according to general-purpose architecture (for example, a general-purpose server). The hardware configuration is the same as the hardware configuration of the support device <NUM> shown in <FIG>, and thus detailed description thereof will not be repeated.

As an example, the HMI <NUM> according to the present embodiment is realized by executing a program using hardware according to general-purpose architecture (for example, an industrial personal computer based on a general-purpose personal computer). The hardware configuration is the same as the hardware configuration of the support device <NUM> shown in <FIG>, and thus detailed description thereof will not be repeated.

Next, an abnormality monitoring process which is provided by the control system <NUM> according to the present embodiment will be described.

<FIG> is a functional block diagram for realizing an abnormality monitoring process in the control system <NUM> according to the present embodiment. Referring to <FIG>, the control device <NUM> collects one or a plurality of pieces of input data (input data <NUM>, input data <NUM>, ···, input data n) from a monitoring target and extracts a feature amount to thereby output a monitoring result including a determination result indicating the presence or absence of the occurrence of an abnormality.

In the present embodiment, the concept of a "frame" is introduced as a unit interval for determining whether some kind of abnormality has occurred in a monitoring target included in a control target. The frame means a unit interval for determining whether some kind of abnormality has occurred in a monitoring target. Therefore, the determination of whether some kind of abnormality has occurred in a monitoring target is performed for each frame.

More specifically, the control device <NUM> includes a data set generation unit <NUM>, a feature extraction unit <NUM>, a score calculation unit <NUM>, and a determination unit <NUM> as main functional components relating to the abnormality monitoring process.

The data set generation unit <NUM> generates a data set composed of one or a plurality of pieces of input data (input data <NUM>, input data <NUM>, ···, input data n) for each frame from a monitoring target in accordance with frame information.

The feature extraction unit <NUM> extracts one or a plurality of feature amounts (a feature amount <NUM>, a feature amount <NUM>, ···, a feature amount m) in accordance with processing determined in advance on the basis of the data set which is generated by the data set generation unit <NUM>. Examples of the feature amount capable of being used include an average value, a maximum value, an intermediate value, a minimum value, standard deviation, and the like within a frame.

The score calculation unit <NUM> refers to learning data <NUM> prepared in advance, and calculates a value indicating the degree of deviation (hereinafter also referred to as a "score") with respect to the learning data <NUM> of one or a plurality of feature amounts extracted by the feature extraction unit <NUM>. Here, the learning data <NUM> is composed of feature amounts labeled with a specific class (for example, normality or abnormality). Typically, the learning data <NUM> is composed of feature amounts during a normal state, and in this case, the score means a value indicating the possibility of some kind of abnormality having occurred in a monitoring target.

As an example of an abnormality monitoring algorithm in the control device <NUM>, a method of calculating a score corresponding to a feature amount on the basis of the degree of deviation of the feature amount with respect to a value group in a hyperspace is adopted. In this case, the learning data <NUM> indicates a value group in a hyperspace, which is equivalent to a "model" indicating a monitoring target.

Examples of such a known abnormality monitoring method based on the degree of deviation include a method of detecting an abnormality on the basis of a shortest distance from each point to a value group (k-nearest neighbors algorithm), a local outlier factor (LoF) method of evaluating a distance inclusive of a cluster including a value group, an isolation forest (iForest) method using a score calculated from a path length, and the like.

In a case where the abnormality monitoring method based on the degree of deviation is adopted, the learning data <NUM> includes a group of feature amounts obtained during a normal state, and the control device <NUM> calculates a score which is a value indicating the possibility of some kind of abnormality having occurred in a monitoring target on the basis of the degree of deviation of a target feature amount with respect to a feature amount group included in the learning data <NUM>.

The determination unit <NUM> compares a score calculated by the score calculation unit <NUM> with a threshold determined in advance, and determines whether some kind of abnormality has occurred in a monitoring target. The determination unit <NUM> outputs a determination result indicating whether some kind of abnormality has occurred.

With the above-described functional configuration, the abnormality monitoring process according to the present embodiment is realized.

In the functional block diagram shown in <FIG>, the processes in the data set generation unit <NUM> and the feature extraction unit <NUM> are for input data which is a status value collected from a field or an internal status value calculated or updated by the execution of a control arithmetic, and are collectively referred to as "input data processing <NUM>" below. On the other hand, the processes in the score calculation unit <NUM> and the determination unit <NUM> are for using results calculated through the input data processing <NUM>, and are collectively referred to as a "data use process <NUM>" below.

Next, cyclic execution of a program in the control device <NUM> according to the present embodiment will be described.

<FIG> is a schematic diagram illustrating an example of cyclic execution of a program in the control device <NUM> constituting the control system <NUM> according to the present embodiment. In the control device <NUM>, one or a plurality of processes is executed in units of tasks.

<FIG> shows an example in which three types of tasks, that is, the primary fixed cycle task <NUM>, the fixed cycle task <NUM>, and a system service task <NUM>, are executed. Each of the tasks is assumed to be executed by a separate core.

The primary fixed cycle task <NUM> which is executed by a core <NUM> includes a process to be executed with the highest priority in the control device <NUM>, and is cyclically executed for primary cycle <NUM> equivalent to a control cycle.

More specifically, the primary fixed cycle task <NUM> includes the I/O refresh process <NUM>, the user program execution process <NUM>, and the motion control process <NUM>. The I/O refresh process <NUM> is a process of updating input data and output data to and from a field. Meanwhile, in the control device <NUM>, since values referred to in a program are managed in the form of variables, the I/O refresh process <NUM> means a process of cyclically updating a value of a corresponding variable. The user program execution process <NUM> is a process of executing a process in accordance with a command described in a user program <NUM>. The user program <NUM> is arbitrarily created in accordance with a control target, and includes a sequence program or the like described using the language specified in IEC61131-<NUM>.

The motion control process <NUM> includes a process according to a motion command included in the user program <NUM> (typically, a process relating to position control or speed control of a motor).

In the primary fixed cycle task <NUM>, the I/O refresh process <NUM>, the user program execution process <NUM>, and the motion control process <NUM> are all executed for each primary cycle <NUM>.

The fixed cycle task <NUM> which is executed by a core <NUM> includes a process having a lower priority than the primary fixed cycle task <NUM>, and is cyclically executed for each fixed cycle <NUM> equivalent to an integer multiple of a control cycle. The fixed cycle <NUM> is equivalent to the length of an integer multiple (two or more) of the primary fixed cycle task <NUM>.

More specifically, similarly to the primary fixed cycle task <NUM>, the fixed cycle task <NUM> includes the I/O refresh process <NUM>, the user program execution process <NUM>, and the motion control process <NUM>. The process contents of the I/O refresh process <NUM>, the user program execution process <NUM>, and the motion control process <NUM> are the same as the process contents of the I/O refresh process <NUM>, the user program execution process <NUM>, and the motion control process <NUM>, except that their execution cycles are different from each other.

The system service task <NUM> which is executed in a core <NUM> is executed depending on the situation. Typically, the system service task <NUM> is allocated a process to be executed every time an event occurs. More specifically, the system service task <NUM> includes a data storage process <NUM>, a score calculation and determination process <NUM>, a file transfer process <NUM>, and the like.

The data storage process <NUM> includes a process of storing one or a plurality of pieces of input data referred to by the data set generation unit <NUM> and one or a plurality of feature amounts generated by the feature extraction unit <NUM> in a storage area such as the main storage device <NUM> or the secondary storage device <NUM>. That is, the system service task <NUM> is allocated a process of storing data which is generated through the feature extraction process <NUM> allocated to the primary fixed cycle task <NUM> and the feature extraction process <NUM> allocated to the fixed cycle task <NUM>.

The score calculation and determination process <NUM> is equivalent to a process in the score calculation unit <NUM> and the determination unit <NUM>. That is, the system service task <NUM> is allocated a process of calculating a predetermined index from data which is generated through the feature extraction process <NUM> allocated to the primary fixed cycle task <NUM> and the feature extraction process <NUM> allocated to the fixed cycle task <NUM>.

The file transfer process <NUM> includes a process of transmitting the data stored in a storage area such as the main storage device <NUM> or the secondary storage device <NUM> to the upper-level server <NUM> or the like.

Next, an implementation example in which the abnormality monitoring process is realized using the cyclic execution of a program shown in <FIG> will be described.

<FIG> is a schematic diagram illustrating an implementation example relating to the abnormality monitoring process in the control device <NUM> constituting the control system <NUM> according to the present embodiment. Referring to <FIG>, the processing in the data set generation unit <NUM> and the feature extraction unit <NUM> (the input data processing <NUM>) are basically cyclically executed as the primary fixed cycle task <NUM>.

More specifically, at least a portion of the data collection process <NUM> regarding one or a plurality of pieces of input data (sensing data obtained from a monitoring target) which is performed the data set generation unit <NUM> is included in the I/O refresh process <NUM>. In addition, at least a portion of the feature extraction process <NUM> which is performed by the feature extraction unit <NUM> is included in the user program execution process <NUM>. A feature amount extracted through the feature extraction process <NUM> is stored in the storage area of the control device <NUM> together with identification information for specifying the frame of a target (data storage).

As shown in <FIG>, the processes relating to the collection of input data and the extraction of a feature amount are executed for each primary cycle <NUM>. Meanwhile, since the feature amount is extracted on the basis of data set composed of data of each frame, it is not necessarily extracted for each primary cycle <NUM>.

The feature amount which is used in the abnormality monitoring process is arbitrarily selected in accordance with a monitoring target. That is, in the abnormality monitoring process, any type of feature amount is extracted from any input data. For any input data, not only a status value collected directly from a field but also the result of execution of predetermined preprocessing or the like may be used. Such preprocessing can be included in the primary fixed cycle task <NUM>, or may be included in the fixed cycle task <NUM>.

<FIG> is a schematic diagram illustrating another implementation example relating to the abnormality monitoring process in the control device <NUM> constituting the control system <NUM> according to the present embodiment. Referring to <FIG>, in the feature extraction process <NUM> which is performed by the feature extraction unit <NUM>, a feature amount is extracted using input data which is cyclically updated through the data collection process <NUM> of the fixed cycle task <NUM> in addition to input data which is cyclically updated through the data collection process <NUM> of the primary fixed cycle task <NUM>.

In the example shown in <FIG>, the feature extraction process <NUM> included in the primary fixed cycle task <NUM> is cyclically executed for each primary cycle <NUM>, whereas the update cycle of input data in the data collection process <NUM> of the fixed cycle task <NUM> is set to the fixed cycle <NUM>. As a result, a process of extracting a feature amount from input data through the data collection process <NUM> of the fixed cycle task <NUM> is executed in duplicate. This means that a process of extracting an unnecessary feature amount is executed.

In the control device <NUM>, it is necessary to repeatedly execute each task for each specified cycle using finite computing resources, and there is a potential demand to eliminate inefficient processing as shown in <FIG> as much as possible. That is, there is a demand to reduce an influence on control performance which is provided by the control device <NUM>.

In response to such a demand, as will be described, the control device <NUM> according to the present embodiment provides a data processing structure that makes it possible to optimize the update of input data and the extraction of a feature amount for each of a plurality of tasks executed in parallel.

<FIG> is a schematic diagram illustrating still another implementation example relating to the abnormality monitoring process in the control device <NUM> constituting the control system <NUM> according to the present embodiment. In the implementation example shown in <FIG>, the feature extraction process <NUM> which is performed by the feature extraction unit <NUM> is also included in the user program execution process <NUM> of the fixed cycle task <NUM>. The feature extraction process <NUM> of the user program execution process <NUM> extracts a feature amount from input data which is cyclically updated through the data collection process <NUM> of the fixed cycle task <NUM>.

That is, in the implementation example shown in <FIG>, the input data processing <NUM> using input data which is updated for each primary cycle <NUM> in the primary fixed cycle task <NUM> is executed as the same primary fixed cycle task <NUM>, and the input data processing <NUM> using input data which is updated for each fixed cycle <NUM> in the fixed cycle task <NUM> is executed as the same fixed cycle task <NUM>.

By adopting the structure as shown in <FIG>, it is possible to realize a process of efficiently extracting a feature amount. By efficiently using computing resources, the possibility of the cycle of each task being exceeded or the like can be reduced.

Next, an example of data processing for realizing a process of extracting a feature amount for each task as shown in <FIG> will be described.

<FIG> is a schematic diagram illustrating data processing corresponding to the implementation example of the abnormality monitoring process shown in <FIG>. Referring to <FIG>, as an example, it is assumed that the I/O unit <NUM> cyclically acquires three pieces of input data (IN_01, IN_02, and IN_03) from a field.

Here, it is assumed that the input data IN_01 is referred to in the primary fixed cycle task <NUM>, the input data IN_02 is referred to in the fixed cycle task <NUM>, and the input data IN_03 is referred to in the primary fixed cycle task <NUM> and the fixed cycle task <NUM>.

The input data acquired by the I/O unit <NUM> is cyclically transferred to the I/O memory of the internal bus controller <NUM>. That is, the content of the I/O memory of the internal bus controller <NUM> is cyclically updated. Here, the input data IN_01, IN_02, and IN_03 are updated for each primary cycle <NUM>.

In the primary fixed cycle task <NUM>, the input data IN_02 required only for feature amount extraction is also transferred to a buffer in addition to the input data IN_01 and IN_03 required for feature amount extraction and a control arithmetic. The transfer thereof to the buffer is repeatedly executed for each primary cycle <NUM>. A feature amount_01, a feature amount_02, and a feature amount_03 are extracted from the input data IN_01, IN_02, and IN_03 transferred to the buffer, and are further written to a buffer within the main storage device <NUM> that is capable of being referred to by the system service task <NUM>. In the system service task <NUM>, the data storage process <NUM> is executed by referring to the buffer within the main storage device <NUM>.

On the other hand, in the fixed cycle task <NUM>, the input data IN_02 and IN_03 required for a control arithmetic are transferred to the buffer. The control arithmetic is executed on the basis of the input data IN_02 and IN_03 transferred to the buffer.

In the data processing shown in <FIG>, the input data IN_02 is transferred from the I/O memory of the internal bus controller <NUM> to the buffer only for feature amount extraction in the primary fixed cycle task <NUM>, which leads to inefficient use of computing resources.

<FIG> is a schematic diagram illustrating data processing corresponding to the implementation example of the abnormality monitoring process shown in <FIG>. In contrast to the data processing shown in <FIG>, in the data processing shown in <FIG>, the input data IN_02 is referred to only in the fixed cycle task <NUM>. Therefore, the input data IN_02 is not transferred to the buffer in the primary fixed cycle task <NUM>. That is, the input data IN_02 is not transferred to the buffer only in the fixed cycle task <NUM>. As a result, the cycle of transfer of the input data IN_02 to the buffer is not the primary cycle <NUM>, but the fixed cycle <NUM>.

In the fixed cycle task <NUM>, the feature amount_02 is extracted from the input data IN_02 transferred to the buffer, and is further written to the buffer within the main storage device <NUM> that is capable of being referred to by the system service task <NUM>.

In this manner, regarding the input data IN_02 which is not referred to in a control arithmetic in the primary fixed cycle task <NUM>, processing such as the transfer thereof to the buffer in the primary cycle <NUM> or the extraction of a feature amount in the primary fixed cycle task <NUM> is not performed, and the feature amount is extracted in the same fixed cycle <NUM> as the cycle of transfer to the buffer. Thereby, it is possible to avoid an inefficient feature amount extraction process or the like, and to realize efficient use of computing resources.

Next, an example of a user interface for realizing the abnormality monitoring process shown in <FIG> will be described.

As shown in <FIG>, in a case where the input data processing <NUM> is allocated to each of tasks which are cyclically executed in different cycles, it is necessary to register the data collection process <NUM> and the feature extraction process <NUM> corresponding to each piece of input data in the same task. For example, for the same input data, it is necessary to avoid a setting in which the data collection process <NUM> is included in the primary fixed cycle task <NUM> and the feature extraction process <NUM> is included in the fixed cycle task <NUM>.

That is, in a case where the input data processing <NUM> such as the extraction of each feature amount is attempted to be executed in a plurality of different cycles, it is preferable to provide a user with a structure that can easily set in which cycle the extraction of each feature amount becomes efficient.

Consequently, the control system <NUM> according to the present embodiment provides a user interface capable of optimizing the allocation of the input data processing <NUM> in accordance with input data to be referred to. In the control system <NUM> according to the present embodiment, a user interface for performing various settings is typically provided by the support device <NUM>.

<FIG> is a diagram illustrating an example of a user interface screen which is provided by the support device <NUM> constituting the control system <NUM> according to the present embodiment. A user interface screen <NUM> shown in <FIG> accepts various settings. When a setting registration button <NUM> is selected, the user interface screen <NUM> enters a setting acceptance state of input data (registration variable) used for the input data processing <NUM>.

A user sets input data (variable) used for the extraction of a feature amount in a registration variable name setting field <NUM>. In this case, the user sets the data type of the set input data in a data type setting field <NUM>. Meanwhile, the data type of the data type setting field <NUM> may be automatically reflected corresponding to the set input data by referring to setting information or the like.

Meanwhile, it is assumed that INPUT1, INPUT2, and INPUT3 shown in <FIG> correspond to the input data IN_01, IN_02, and IN_03 shown in <FIG> and <FIG>, respectively.

The user interface screen <NUM> has a cycle setting button <NUM>, and when the cycle setting button <NUM> is selected, it is possible to set which cycle (task) is allocated input data that can be allocated to any of a plurality of different cycles (tasks).

<FIG> is a diagram illustrating an example of a user interface screen <NUM> in a case where the cycle setting button <NUM> of the user interface screen <NUM> of <FIG> is selected. The user interface screen <NUM> shown in <FIG> displays input data (variables) that can be allocated to tasks which are executed in a plurality of different cycles, and accepts selection of which task the input data is allocated to.

More specifically, the user interface screen <NUM> includes a target variable display <NUM> that displays input data which is a target and a task selection field <NUM>. In the task selection field <NUM>, as an example, (<NUM>) default setting and (<NUM>) control resource securing setting can be selected. When (<NUM>) default setting is selected, the input data processing <NUM> of input data which is a target is allocated to the primary fixed cycle task <NUM>. On the other hand, when (<NUM>) control resource securing setting is selected, it is allocated to the fixed cycle task <NUM>. When any of them is selected and then an OK button <NUM> is selected, the setting for the input data which is a target is updated, and then the user interface screen returns to the user interface screen <NUM> shown in <FIG>.

In this manner, the input data (variables) allocated to any of tasks which are executed in a plurality of different cycles can be arbitrarily set by a user in accordance with a monitoring target or the like. That is, in a case where the data collection process <NUM> (a second data collection process) and the corresponding feature extraction process <NUM> (a second data processing process) can be allocated to both the primary fixed cycle task <NUM> and the fixed cycle task <NUM>, the support device <NUM> accepts a setting of which task these processes are allocated to.

Referring back to <FIG>, the user interface screen <NUM> has an apply button <NUM>, and the apply button <NUM> is selected, so that it is determined which task the input data processing <NUM> for each piece of input data is allocated to on the basis of a relationship between the input data referred to by the process allocated to each task and the input data which is set as a target of the input data processing <NUM>.

In this case, content which is set on the user interface screen <NUM> shown in <FIG> is preferentially reflected. A user is notified of the allocation result.

<FIG> is a diagram illustrating an example of a user interface screen <NUM> in a case where the apply button <NUM> of the user interface screen <NUM> of <FIG> is selected. The user interface screen <NUM> shown in <FIG> includes a primary fixed cycle task field <NUM> that displays input data allocated to the primary fixed cycle task <NUM> and a fixed cycle task field <NUM> that displays input data allocated to the fixed cycle task <NUM>.

Input data allocated to each task is visually displayed in the primary fixed cycle task field <NUM> and the fixed cycle task field <NUM>. Further, a user can change a task which is an allocation destination for each piece of input data through an easy operation. For example, it is possible to change a task which is an allocation destination for each piece of input data through a user's drag operation.

That is, the support device <NUM> accepts a change in the allocation destination task of the data collection process <NUM> (the second data collection process) and the corresponding feature extraction process <NUM> (the second data processing process).

Finally, a task which is an allocation destination for each piece of input data is determined by a user selecting an OK button <NUM>.

In the above description, the feature extraction process <NUM> used for the abnormality monitoring process has been illustrated as an example of the data processing process, but the content of the data processing process is not limited thereto.

For example, another example of the data processing process is a unit conversion process. The status value acquired from a field by the field device group <NUM> is sometimes held as a status value standardized in a predetermined range (for example, <NUM> to <NUM> digits) due to the processing characteristics of an analog/digital converter or the like. In many cases, it is preferable to convert the value standardized in such a predetermined range into the physical quantity (such as, for example, temperature, rotational speed, or flow velocity) of an actual field before processing.

Consequently, the unit conversion process may include a process of converting the status value (input data) managed by the control device <NUM> into an actual physical quantity of a field and then providing it to an internal process or an external device. In this manner, the data processing process may include a process of converting the input data collected through the data collection process <NUM> into a corresponding physical quantity.

In addition, another example of the data processing process is preprocessing of data transfer or the like. For example, assuming that the control device <NUM> is used as the gateway of the Internet of Things (IoT), it is necessary to transmit information specified in a data format adapted to the data exchange partner. In such a case, it is necessary to form the status value (input data) managed by the control device <NUM> in accordance with a predetermined format before sending out. In this manner, as an example of the data processing process, a data forming process may be included.

As a specific example of the data forming process, a process of sequentially arranging information determined in advance in an order determined in advance is assumed. In this manner, the data processing process may include a process of forming one or a plurality of pieces of input data collected through the data collection process <NUM> into a predetermined format.

The present embodiment as described above includes the following technical ideas.

According to the control system of the present embodiment, the data collection process <NUM> and the feature extraction process <NUM> (the data processing process) can be independently allocated to both the primary fixed cycle task <NUM> and the fixed cycle task <NUM> which are cyclically executed, and thus it is possible to realize efficient processing by allocating these processes to a more appropriate task in accordance with processing performance required for input data to be processed, the attribute of the input data, or the like.

In addition, according to the control system of the present embodiment, in a case where the above processes can be allocated to both the primary fixed cycle task <NUM> and the fixed cycle task <NUM>, a user interface for notifying a user to that effect is prepared, and thus it is possible to prevent the data collection process <NUM> and the corresponding feature extraction process <NUM> (the data processing process) from being erroneously allocated to a different task.

Claim 1:
A control system comprising:
a control device (<NUM>) configured to execute a control arithmetic for controlling a control target; and
a support device (<NUM>) configured to set content of the control arithmetic which is executed by the control device,
wherein the control device includes a first arithmetic unit (<NUM>) configured for cyclically executing a first task (<NUM>) to which one or a plurality of processes is allocated in a first control cycle (<NUM>) and a second arithmetic unit (<NUM>) configured for cyclically executing a second task (<NUM>) to which one or a plurality of processes is allocated in a second control cycle (<NUM>) that is N times of the first control cycle, wherein N is an integer greater than <NUM>,
the control arithmetic includes a data collection process (<NUM>) of collecting input data that is capable of being referred to by the control device and a data processing process (<NUM>) of processing the collected input data to generate new data,
a first data collection process with first input data as a target and a corresponding first data processing process are allocated to the first task, and
a second data collection process with second input data as a target and a corresponding second data processing process are allocated to either of the first task and the second task in accordance with a setting via the support device,
the control system being characterized in that
when the second data collection process and the corresponding second data processing process are allocated to the second task, the first arithmetic unit is configured for not cyclically executing the second data collection process and the corresponding second data processing process in the first control cycle, and the second arithmetic unit is configured for cyclically executing the second data collection process and the corresponding second data processing process in the second control cycle,
wherein both the first task cyclically executed by the first arithmetic unit and the second task cyclically executed by the second arithmetic unit comprise a motion control process.