Control device, control method, and program
The control device uses a causal model to adjust variables in the target process based on preceding and subsequent process values, addressing unstable product quality by stabilizing deviations in the production line.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- OMRON CORP
- Filing Date
- 2022-04-01
- Publication Date
- 2026-05-19
AI Technical Summary
Existing control systems for production lines do not account for abnormalities in processes before or after the target process, leading to unstable product quality.
A control device with an acquisition unit, generation unit, selection unit, and adjustment unit that utilizes a causal model to adjust variables in the target process based on the values of variables from preceding and subsequent processes to stabilize product quality.
The solution effectively stabilizes product quality by adjusting variables in the target process to counteract deviations from the control range in preceding or subsequent processes, ensuring consistent output.
Smart Images

Figure 0007861464000001 
Figure 0007861464000002 
Figure 0007861464000003
Abstract
Description
Technical Field
[0001] The present disclosure relates to a control device, a control method, and a program.
Background Art
[0002] In a production line including a plurality of processes, a control device such as a PLC (Programmable Logic Controller) is installed for each process. The control device controls the devices included in the corresponding process. The state of processes such as processing and assembly affects the quality of the product. Therefore, Japanese Patent Application Laid-Open No. 2020-154849 (Patent Document 1) discloses a controller that extracts candidates for extreme values from time-series numerical values indicating the state of a target process measured by a sensor, and extracts the time from a reference point until a candidate for an extreme value occurs as a feature amount.
Prior Art Documents
Patent Documents
[0003]
Patent Document 1
Summary of the Invention
Problems to be Solved by the Invention
[0004] According to the technique disclosed in Patent Document 1, the state of the target process is accurately determined. However, even if the state of the target process is within the normal range, abnormalities may be found in the process before or after the target process due to some cause. Patent Document 1 does not consider the process before or after the target process. Therefore, according to the technique disclosed in Patent Document 1, even if a change occurs in the process before or after the target process, the control device that controls the target process does not take any measures. As a result, the quality of the product may become unstable.
[0005] The present disclosure has been made in view of the above problems, and an object thereof is to provide a control device, a control method, and a program capable of stabilizing the quality of a product. [Means for solving the problem]
[0006] According to an example of this disclosure, a control device for controlling a target process among multiple processes constituting a production line comprises an acquisition unit, a generation unit, a selection unit, an adjustment unit, and a control unit. The acquisition unit acquires, for each product, the value of one or more first variables indicating the state of a controlled object included in the target process, and the value of one or more second variables collected by another control device that controls a process before or after the target process among the multiple processes. The generation unit generates a causal model showing the causal relationship between one or more first variables and one or more second variables selected from the two variables. The selection unit uses the causal model to select an adjustment target variable from one or more first variables in response to the value of a managed variable included in one or more second variables falling outside the control range. The adjustment unit adjusts the target value of the adjustment target variable so as to return the value of the managed variable to the control range when the managed variable is collected from a process after the target process, and adjusts the target value of the adjustment target variable so as to cancel out the amount of change in the managed variable when the managed variable is collected from a process before the target process. The control unit controls the controlled object so that the value of the adjustment target variable approaches the adjusted target value.
[0007] According to this disclosure, when the value of a managed variable obtained from a later process falls outside the control range, the target value of the variable to be adjusted in the target process is adjusted to bring the value of the managed variable back within the control range. Furthermore, when the value of a managed variable obtained from a previous process falls outside the control range, the target value of the variable to be adjusted in the target process is adjusted to cancel out the fluctuation in the managed variable. As a result, the quality of the products produced by the production line is stabilized.
[0008] In the disclosure described above, the causal model connects two variables that have a causal relationship. The selection unit extracts one or more candidate adjustment variables from one or more first variables that are connected to the variable under management in the causal model, either directly or through other variables, and that can be directly adjusted. Based on the causal model, the selection unit determines the priority of the one or more candidate adjustment variables and selects the candidate adjustment variable with the highest priority among the one or more candidate adjustment variables as the variable to be adjusted.
[0009] According to the above disclosure, among one or more directly adjustable candidate variables, the variable with the highest priority, determined using a causal model, is selected as the variable to be adjusted. As a result, product quality can be stabilized more quickly.
[0010] In the disclosure described above, the causal model connects two variables that have a causal relationship. The selection unit extracts one or more candidate adjustment variables from one or more first variables that are connected to the target variable in the causal model directly or through other variables and can be directly adjusted. Based on the causal model, the selection unit determines the priority of the one or more candidate adjustment variables, accepts input on whether they can be adjusted in order of priority, and selects the candidate adjustment variable that has received input indicating it can be adjusted as the variable to be adjusted.
[0011] According to the above disclosure, inputs indicating whether adjustment is possible are accepted for one or more directly adjustable candidate variables, in order of priority determined using a causal model. Therefore, users only need to decide whether adjustment is possible in order of priority.
[0012] In the above disclosure, if the variables to be managed are collected from a later process, the selection unit determines whether there is a third variable among the one or more first variables that has a causal relationship with the variables to be managed and cannot be directly adjusted. Depending on the existence of the third variable, the selection unit determines whether the third variable is fluctuating beyond a specified amount. Depending on whether the third variable is fluctuating beyond a specified amount, the selection unit gives a higher priority to the adjustment candidate variable among the one or more adjustment candidate variables that has a causal relationship with the third variable than to the remaining adjustment candidate variables.
[0013] Generally, directly adjustable variables are set to a certain target value in order to obtain stable product quality. If the value of a variable managed in a later process falls outside the control range, even though the directly adjustable variable is set to that target value, there is a possibility that an abnormality has occurred in the value of a variable that cannot be directly adjusted in that process. According to the above disclosure, if a third variable that has a causal relationship with the managed variable and cannot be directly adjusted fluctuates beyond a specified amount, the priority of the candidate variable for adjustment that has a causal relationship with the third variable becomes higher than that of the remaining candidate variables for adjustment. As a result, the candidate variable for adjustment that has a causal relationship with the third variable is more likely to be selected as the variable to be adjusted. By selecting the candidate variable for adjustment that has a causal relationship with the third variable as the variable to be adjusted, it becomes easier to stabilize the quality of the product.
[0014] In the disclosure described above, the selection unit prioritizes each of the one or more adjustment candidate variables based on whether the third variable does not exist or whether the third variable does not fluctuate beyond a specified amount, with the higher the correlation strength between each variable and the managed variable.
[0015] According to the above disclosure, candidate adjustment variables with a high correlation strength with the managed variable receive higher priority. As a result, candidate adjustment variables with a high correlation strength with the managed variable are more likely to be selected as adjustment targets.
[0016] In the above disclosure, if the variable to be managed is collected from a previous process, the selection unit determines whether there is a fourth variable among the one or more candidate variables to be adjusted that has a causal relationship with the variable to be managed, and if a fourth variable exists, it raises the priority of the fourth variable to a higher level than the remaining candidate variables to be adjusted.
[0017] According to the above disclosure, a fourth variable that has a causal relationship with the managed variable is more likely to be selected as the variable to be adjusted.
[0018] In the above disclosure, the selection unit determines whether there is a fifth variable among the one or more first variables that has a causal relationship with the managed variable and cannot be directly adjusted. Depending on the existence of the fifth variable, the selection unit determines whether there is a sixth variable among the one or more adjustment candidate variables (excluding the fourth variable) that has a causal relationship with the fifth variable. Depending on the existence of the sixth variable, the selection unit gives the priority of the sixth variable higher than the remaining adjustment candidate variables.
[0019] According to the above disclosure, among the one or more candidate variables for adjustment excluding the fourth variable, the sixth variable, which has a causal relationship with the fifth variable, is more likely to be selected as the variable to be adjusted. By adjusting the target value of the sixth variable, the value of the fifth variable, which has a causal relationship with the managed variable and cannot be directly adjusted, can be changed in a way that cancels out the amount of change in the managed variable.
[0020] In the above disclosure, the selection unit determines whether there is a seventh variable among the one or more second variables that has a causal relationship with the managed variable and that was collected from a later process. Depending on whether the seventh variable exists, the selection unit determines whether there is an eighth variable among the one or more adjustment candidate variables, excluding the fourth and sixth variables, that has a causal relationship with the seventh variable. Depending on whether the eighth variable exists, the selection unit gives the eighth variable a higher priority than the remaining adjustment candidate variables.
[0021] According to the above disclosure, among one or more adjustment candidate variables excluding the fourth variable and the sixth variable, an eighth variable having a causal relationship with a seventh variable collected from a subsequent process is likely to be selected as an adjustment target variable. By adjusting the target value of the eighth variable, the value of the seventh variable having a causal relationship with the controlled variable can be varied so as to cancel out the amount of variation of the controlled variable.
[0022] According to another example of the present disclosure, a control method for a control device that controls a target process among a plurality of processes constituting a production line includes the first to fifth steps. The first step is a step of obtaining, for each product, the value of one or more first variables indicating the state of a controlled object included in the target process and the value of one or more second variables collected by another control device that controls a process before or after the target process among the plurality of processes. The second step is a step of generating a causal model indicating the causal relationship between two variables among the one or more first variables and the one or more second variables. The third step is a step of selecting an adjustment target variable from among the one or more first variables using the causal model in response to the value of the controlled variable included in the one or more second variables deviating from the control range. The fourth step is a step of adjusting the target value of the adjustment target variable so as to return the value of the controlled variable to the control range when the controlled variable is collected from a process after the target process, and adjusting the target value of the adjustment target variable so as to cancel out the amount of variation of the controlled variable when the controlled variable is collected from a process before the target process. The fifth step is a step of controlling the controlled object so that the value of the adjustment target variable approaches the adjusted target value.
[0023] According to yet another example of the present disclosure, a program causes a computer to execute the above control method.
[0024] Also according to these disclosures, the quality of the product can be stabilized.
Advantages of the Invention
[0025] According to the present disclosure, the quality of the product can be stabilized.
Brief Description of the Drawings
[0026] [Figure 1] It is a schematic diagram showing the system according to the embodiment. [Figure 2] It is a diagram showing a specific example of the production line. [Figure 3] It is a block diagram showing an example of the hardware configuration of the PLC according to the embodiment. [Figure 4] It is a block diagram showing an example of the hardware configuration of the MES server. [Figure 5] It is a block diagram showing an example of the functional configuration of the PLC and the MES server. [Figure 6] It is a diagram showing an example of the table managed by the data management unit. [Figure 7] It is a diagram showing another example of the table managed by the data management unit. [Figure 8] It is a diagram showing yet another example of the table managed by the data management unit. [Figure 9] It is a diagram showing an example of the integrated table. [Figure 10] It is a diagram showing an example of the adjustment permission table. [Figure 11] It is a flowchart showing the process flow of the MES server. [Figure 12] It is a flowchart showing the process flow of generating the causal model. [Figure 13] It is a flowchart showing the process flow of adjusting the value of the variable in the target process. [Figure 14] It is a flowchart showing the process flow of the subroutine of step S22 shown in FIG. 13. [Figure 15] It is a diagram showing an example of the causal model. [Figure 16] It is a flowchart showing the specific process flow of step S22 using the causal model shown in FIG. 15 and the adjustment permission table shown in FIG. 10. [Figure 17] It is a flowchart showing the process flow of the subroutine of step S25 shown in FIG. 13. [Figure 18] This figure shows another example of a causal model. [Figure 19] This flowchart shows the specific processing flow of step S25 using the causal model shown in Figure 18 and the adjustment feasibility table shown in Figure 10. [Modes for carrying out the invention]
[0027] Embodiments of the present invention will be described in detail with reference to the drawings. Note that identical or corresponding parts in the drawings are denoted by the same reference numerals, and their descriptions will not be repeated.
[0028] §1 Examples of Application Referring to Figure 1, an example of a scenario in which the present invention is applied will be described. Figure 1 is a schematic diagram showing a system according to an embodiment. The system 1 shown in Figure 1 comprises a plurality of processes that constitute a production line 2. The plurality of processes include a target process 2b, a process preceding the target process 2b (preceding process 2a), and a process following the target process 2b (sequential process 2c).
[0029] Each of the multiple processes is equipped with a PLC as a control device for controlling the controlled object included in that process. In the example shown in Figure 1, PLCs 100, 200, and 300 are installed in the target process 2b, the preceding process 2a, and the subsequent process 2c, respectively.
[0030] The controlled objects for each process include, for example, various types of equipment (robots, processing machines, inspection equipment, conveying equipment, etc.). Furthermore, each type of equipment includes various sensors for measuring its status.
[0031] Furthermore, System 1 includes a Manufacturing Execution System (MES) server (hereinafter referred to as "MES server 400") that manages multiple processes constituting Production Line 2. The MES server 400 outputs manufacturing instructions for each process, manages the values of variables output from each process, and provides instructions and support to workers.
[0032] PLC100 acquires, for each product, the value of one or more variables that indicate the state of the controlled object included in the target process 2b, and the value of one or more variables collected by PLC200, which controls the preceding process 2a, and PLC300, which controls the following process 2c (step (1)). Step (1) is performed periodically. Step (1) is performed in both the learning phase, which generates the causal model described later, and the operation phase, which adjusts the variable values described later.
[0033] In the example shown in Figure 1, PLC100 acquires the values of "Variable A", "Variable B", and "Variable C" as values of one or more variables that indicate the state of the controlled object included in the target process 2b. Furthermore, PLC100 acquires the value of "Variable D" as a value of a variable collected by PLC200, which controls the preceding process 2a. PLC100 acquires the value of "Variable E" as a value of a variable collected by PLC300, which controls the subsequent process 2c. PLC100 acquires the values of "Variable D" and "Variable E" via, for example, MES server 400.
[0034] In the learning phase, PLC100 generates a causal model 3 for the multiple variables obtained in step (1) (step (2)). Causal model 3 shows the causal relationship between two of the multiple variables whose values were obtained in step (1).
[0035] As shown in Figure 1, causal model 3 connects two variables with a causal relationship using a line. The thickness of the line represents the strength of the correlation between the two variables. Specifically, the thicker the arrow line, the stronger the correlation.
[0036] Lines connecting two variables can be either arrows (directed lines) or undirected lines. Causal Model 3 connects two variables with a specified direction of causality using arrows (directed lines). The direction of the arrow represents the direction of the causal relationship. Causal Model 3 connects two variables with an undirected line if the direction of causality is not specified.
[0037] In the operational phase, PLC100 uses the causal model 3 to select a variable to be adjusted from one or more variables collected from the target process 2b, in response to the value of "Variable D" obtained from the preceding process 2a or "Variable E" obtained from the following process 2c falling outside the control range (step (3)).
[0038] For example, in response to the value of "Variable E" falling outside the control range, PLC100 selects at least one of "Variable B," "Variable C," and "Variable E" that are connected to "Variable E" by one or more lines in the causal model as a variable to adjust.
[0039] For example, if the value of "Variable D" falls outside the control range, PLC100 selects at least one of "Variable B" and "Variable C," which are connected to "Variable D" by one or more lines, as a variable to be adjusted in the causal model.
[0040] The PLC100 adjusts the value of the selected variable to be adjusted (step (4)). Specifically, if the value of "variable E" obtained from the downstream process 2c falls outside the control range, the PLC100 adjusts the target value of the variable to be adjusted so that the value of "variable E" returns to the control range. Alternatively, if the value of "variable D" obtained from the upstream process 2a falls outside the control range, the PLC100 adjusts the target value of the variable to be adjusted so that the amount of change in "variable D" is canceled out.
[0041] The PLC100 controls the control objects included in the target process 2b so that the value of the variable to be adjusted approaches the adjusted target value (step (5)).
[0042] In this way, when the value of "variable E" obtained from the subsequent process 2c falls outside the control range, the target value of the variable to be adjusted in the target process 2b is adjusted to bring the value of "variable E" back within the control range. Also, when the value of "variable D" obtained from the preceding process 2a falls outside the control range, the target value of the variable to be adjusted in the target process 2b is adjusted to cancel out the fluctuation of "variable D". As a result, the quality of the products produced by production line 2 is stabilized.
[0043] §2 Specific Examples <Specific examples of production lines> Figure 2 shows a specific example of a production line. Production line 2 shown in Figure 2 produces semiconductor wafers. The front-end process 2a of production line 2 is equipped with inspection equipment 600. The inspection equipment 600 inspects the thickness of the semiconductor wafer (hereinafter referred to as "thickness before polishing"). The target process 2b of production line 2 is equipped with polishing equipment 500. The polishing equipment 500 polishes the semiconductor wafer whose thickness before polishing has been inspected in the front-end process 2a. The back-end process 2c of production line 2 is equipped with inspection equipment 700. The inspection equipment 700 inspects the thickness of the semiconductor wafer polished in the target process 2b (hereinafter referred to as "thickness after polishing").
[0044] The inspection equipment 600 and 700 and the polishing equipment 500 are typically manufactured by different equipment manufacturers. Therefore, the polishing equipment 500, inspection equipment 600, and inspection equipment 700 are controlled by different PLCs 200, 100, and 300, respectively.
[0045] Each of the inspection equipment 600 and 700 has a sensor for measuring the thickness of the semiconductor wafer. Therefore, the PLCs 200 and 300 collect the values of the variables "thickness before polishing" and "thickness after polishing," respectively, which indicate the measurement results of the semiconductor wafer thickness, from the inspection equipment 600 and 700.
[0046] The polishing equipment 500 includes a polishing head for holding a semiconductor wafer, a rotating mechanism for rotating the polishing head, a platen to which a polishing cloth is attached, a lifting mechanism for moving the platen up and down, and a supply mechanism for supplying cooling water to the contact area between the semiconductor wafer and the polishing cloth. The lifting mechanism moves the platen, causing the semiconductor wafer to come into contact with the polishing cloth. Furthermore, the rotating mechanism rotates the polishing head, causing the semiconductor wafer to be polished by the polishing cloth. The supply mechanism supplies cooling water to suppress the temperature rise caused by frictional heat between the semiconductor wafer and the polishing cloth.
[0047] The polishing equipment 500 has sensors for measuring the flow rate of cooling water, the temperature of the semiconductor wafer (processing temperature), the time of polishing (processing time), the rotation speed of the polishing head, the current flowing through the motor for rotating the polishing head (motor current), the height of the surface plate (plate height), and so on. Therefore, the PLC 100 collects values of variables such as "cooling water flow rate", "processing temperature", "processing time", "rotation speed", "motor current", "plate height", etc. from the polishing equipment 500.
[0048] <Hardware Configuration of PLC> Figure 3 is a block diagram showing an example of the hardware configuration of the PLC according to the embodiment. As shown in Figure 3, the PLC 100 includes a processor 101 such as a CPU (Central Processing Unit) or an MPU (Micro-Processing Unit), a chip set 102, a main memory 103, a storage 104, a control network controller 105, an information network controller 106, a USB controller 107, and a memory card interface 108.
[0049] The processor 101 reads out various programs stored in the storage 104, expands them in the main memory 103, and executes them to realize control operations for controlling the control target. The chip set 102 controls data transmission between the processor 101 and each component.
[0050] The storage 104 stores a system program 110 for realizing basic processing, a user program 111 for realizing control operations, and a set of setting data 112 used for executing the user program 111.
[0051] [[ID=]]The control network controller 105 controls the data exchange with the control target via the control network.
[0052] The information network controller 106 controls data exchange with external devices (including the MES server 400 and HMI (Human Machine Interface)) via the information network. The information network controller 106 acquires processing instructions from the MES server 400 and the values of variables collected by the PLCs 200 and 300. Also, the information network controller 106 receives user input from the HMI.
[0053] The USB controller 107 controls data exchange with an external device (e.g., a support device) via a USB connection.
[0054] The memory card interface 108 is configured to be detachable from the memory card 120, and is capable of writing data to the memory card 120 and reading various data (such as user programs) from the memory card 120.
[0055] Fig. 3 shows a configuration example in which the necessary processing is provided by the processor 101 executing a program. However, some or all of these provided processes may be implemented using a dedicated hardware circuit (e.g., an ASIC or FPGA, etc.). Alternatively, the main part of the PLC 100 may be realized using hardware (e.g., an industrial personal computer based on a general-purpose personal computer) that follows a general-purpose architecture. In this case, virtualization technology may be used to execute a plurality of different-purpose operating systems in parallel and to execute the necessary applications on each operating system. [[ID=,14]]
[0056] The PLCs 200 and 300 also have the same hardware configuration as the PLC 100. Therefore, the description of the hardware configuration of the PLCs 200 and 300 is omitted.
[0057] <Hardware Configuration of MES Server> Figure 4 is a block diagram showing an example of the hardware configuration of an MES server. The MES server 400 typically has a structure that follows a general-purpose computer architecture. As shown in Figure 4, the MES server 400 includes a processor 401 such as a CPU or MPU, memory 402, storage 403, and a communication interface 404. Each of these components is connected to the others via a bus so that they can communicate data.
[0058] The processor 401 performs various processes according to this embodiment by loading various programs stored in the storage 403 into the memory 402 and executing them.
[0059] Memory 402 is typically a volatile storage device such as DRAM (Dynamic Random Access Memory) that stores programs and other data read from storage 403.
[0060] The communication interface 404 mediates data transmission between the processor 401 and external devices (including PLCs 100, 200, and 300). The communication interface 404 typically includes Ethernet® or USB (Universal Serial Bus).
[0061] Storage 403 is typically a non-volatile magnetic storage device, such as a hard disk drive. Storage 403 stores a management program 410 that runs on processor 401.
[0062] <Functional Configuration> Figure 5 is a block diagram showing an example of the functional configuration of a PLC and an MES server. As shown in Figure 5, the PLC 100 includes a data collection unit 11, a control calculation unit 12, an acquisition unit 13, a generation unit 14, a selection unit 15, and an adjustment unit 16. The PLC 200 includes a data collection unit 21 and a control calculation unit 22. The PLC 300 includes a data collection unit 31 and a control calculation unit 32. The MES server 400 includes a processing instruction unit 41 and a data management unit 42.
[0063] The data collection unit 11, control calculation unit 12, acquisition unit 13, generation unit 14, selection unit 15, and adjustment unit 16 are realized by the processor 101 (see Figure 3) executing the user program 111. The data collection unit 21 and control calculation unit 22 are realized by the processor of the PLC 200 executing the user program. The data collection unit 31 and control calculation unit 32 are realized by the processor of the PLC 300 executing the user program. The processing instruction unit 41 and data management unit 42 are realized by the processor 401 (see Figure 4) executing the management program 410.
[0064] The data collection unit 11 of the PLC 100 collects the values of one or more variables that indicate the state of the controlled object included in the target process 2b. In the case of the production line 2 shown in Figure 2, the data collection unit 11 collects values such as the variables "cooling water flow rate", "processing temperature", "processing time", "rotation speed", "motor current", and "panel height".
[0065] Similarly, the data collection unit 21 of PLC200 collects the values of one or more variables that indicate the state of the controlled object included in the preceding process 2a. The data collection unit 31 of PLC300 collects the values of one or more variables that indicate the state of the controlled object included in the subsequent process 2c. In the case of the production line 2 shown in Figure 2, the data collection units 21 and 31 collect the values of the variables "thickness before polishing" and "thickness after polishing," respectively.
[0066] The collection units 11, 21, and 31 output the values of pre-specified variables from the collected variable values to the MES server 400.
[0067] The control calculation unit 12 of the PLC 100 performs calculations to control the control target included in the target process 2b and outputs the calculation results to the control target. For each variable that can be directly adjusted among the variables collected from the target process 2b, the control calculation unit 12 performs control calculations so that the value of the variable approaches the target value, and outputs the data obtained by the control calculations to the control target. In this way, the control target is controlled so that the values of the directly adjustable variables approach the target value.
[0068] Similarly, the control calculation unit 22 of PLC200 and the control calculation unit 32 of PLC300 perform calculations to control the controlled objects included in the preceding process 2a and the subsequent process 2c, respectively, and output the calculation results to the controlled objects.
[0069] The processing command unit 41 of the MES server 400 outputs processing commands for each product to each process according to a pre-set production plan. The control calculation units 12, 22, and 32 execute control calculations according to the processing commands and control the controlled object.
[0070] The data management unit 42 of the MES server 400 manages a table for each product that associates the product ID that identifies the product with the value of a variable output from the PLC that controls the controlled object according to the processing command for that product.
[0071] Figure 6 shows an example of a table managed by the data management department. Figure 7 shows another example of a table managed by the data management department. Figure 8 shows yet another example of a table managed by the data management department.
[0072] Figure 6 shows a table corresponding to the target process 2b. Specifically, the table in Figure 6 associates the product ID with the values of variables collected in the target process 2b, such as "cooling water flow rate," "processing temperature," and "processing time." Figure 7 shows a table corresponding to the preceding process 2a. Specifically, the table in Figure 7 associates the product ID with the value of the variable "thickness before polishing" collected in the preceding process 2a. Figure 8 shows a table corresponding to the subsequent process 2c. Specifically, the table in Figure 8 associates the product ID with the value of the variable "thickness after polishing" collected in the subsequent process 2c.
[0073] The data management unit 42 links the values of variables collected in multiple processes to each product by combining tables corresponding to each process. In other words, the data management unit 42 generates an integrated table for each product that associates the product ID with the values of variables collected in multiple processes.
[0074] Figure 9 shows an example of an integrated table. Figure 9 shows the integrated table generated by combining the tables in Figures 6 to 8. As shown in Figure 9, for each product, the values of the variables "thickness before polishing", "cooling water flow rate", "processing temperature", "processing time", ..., "thickness after polishing" are associated with each other.
[0075] Returning to Figure 5, the acquisition unit 13 of the PLC100 acquires the integrated table (see Figure 9) managed by the MES server 400. As described above, the integrated table associates the values of the variables "thickness before polishing", "cooling water flow rate", "processing temperature", "processing time", ..., "thickness after polishing" with each other for each product. Therefore, the acquisition unit 13 acquires, for each product, the value of one or more variables that indicate the state of the controlled object included in the target process 2b, the value of one or more variables collected by the PLC200 that controls the preceding process 2a, and the value of one or more variables collected by the PLC300 that controls the subsequent process 2c.
[0076] The generation unit 14 generates a causal model of multiple variables based on the values of multiple variables for each product, which are obtained by the acquisition unit 13.
[0077] The generation unit 14 generates a causal model using known methods such as graphical modeling, the SGS (Sprites, Glymour, and Scheines) algorithm, and the WL (Wermuth and Lauritzen) algorithm. When generating the causal model, the generation unit 14 uses data indicating the order in which a product passes through multiple processes. This data is pre-set as part of the setting data group 112 (see Figure 3) and is used to determine the direction of the causal relationship. For example, in the causal model 3 shown in Figure 1, the direction of the arrow connecting "variable B" in the target process 2b and "variable E" in the subsequent process 2c is determined to be from "variable B" to "variable E," in accordance with the order in which the product passes through multiple processes.
[0078] The selection unit 15, in response to the value of a managed variable obtained from the preceding process 2a or the succeeding process 2c falling outside the control range, uses a causal model to select a variable to be adjusted from one or more variables in the target process 2b. In this embodiment, both the variable "pre-polishing variable" from the preceding process 2a and the variable "post-polishing variable" from the succeeding process 2c are pre-set as managed variables.
[0079] The one or more variables in the target process 2b include variables that can be directly adjusted and variables that cannot be directly adjusted. Therefore, the selection unit 15 selects the directly adjustable variables as the variables to be adjusted. Variables that can be directly adjusted are variables for which a target value is set, and the controlled object is controlled so that its value approaches that target value.
[0080] Whether the PLC100 can directly adjust the values of variables depends on the control method used to control the object being controlled by the PLC100. Therefore, the user pre-configures the PLC100 to determine whether each variable can be directly adjusted, according to the control method used to control the object. The PLC100 generates an adjustment feasibility table, indicating whether each variable can be directly adjusted, as part of the configuration data group 112 (see Figure 3), according to the user's settings.
[0081] Figure 10 shows an example of an adjustable / unadjustable table. As shown in Figure 10, the variables "processing temperature" and "motor current" are set as variables that cannot be directly adjusted, while the variables "cooling water flow rate," "processing time," "rotation speed," and "machine height" are set as variables that can be directly adjusted.
[0082] The adjustment unit 16 adjusts the target value of the variable to be adjusted. As a result, the control calculation unit 12 performs a control calculation so that the value of the variable to be adjusted approaches the adjusted target value, and outputs the data obtained from the control calculation to the controlled object. Consequently, the controlled object is controlled so that the values of the variables that can be directly adjusted approach the target values.
[0083] When the value of the variable obtained from the post-process 2c is out of the management range, the adjustment unit 16 adjusts the target value of the adjustment target variable so as to return the value of the variable to the management range. When the value of the variable obtained from the pre-process 2a is out of the management range, the adjustment unit 16 adjusts the target value of the adjustment target variable so as to cancel the amount of change of the variable.
[0084] The adjustment unit 16 determines the adjustment direction of the target value of the adjustment target variable based on the adjustment direction data. The adjustment direction data indicates the relationship between the variation direction of the values of the variables obtained from the pre-process 2a and the post-process 2c and the adjustment direction of each variable in the target process 2b.
[0085] For example, when it is necessary to vary a certain variable in the target process 2b to the plus side in order to return the value of the variable obtained from the post-process 2c from less than the lower limit value of the management range to the management range, the adjustment direction data associates the variation direction "minus" of the variable obtained from the post-process 2c with the adjustment direction "plus" of the certain variable.
[0086] Also, when the value of the variable obtained from the pre-process 2a varies to the minus side and at least a part of the amount of change of the variable obtained from the pre-process 2a is canceled by varying a certain variable in the target process 2b to the plus side, the adjustment direction data associates the variation direction "minus" of the variable obtained from the pre-process 2a with the adjustment direction "plus" of the certain variable.
[0087] The adjustment direction data is created according to user input as a part of the setting data group 112 (see FIG. 3).
[0088] <Flow of MES Server Processing> FIG. 11 is a flowchart showing the flow of processing of the MES server. The flowchart shown in FIG. 11 is periodically executed in both the learning phase of generating a causal model and the operation phase of adjusting the values of the variables in the target process.
[0089] First, the processor 401 outputs processing instructions for the product to each PLC (step S1).
[0090] The processor 401 obtains the values of variables collected by each PLC that controls the controlled object according to the processing instruction (step S2).
[0091] The processor 401 generates an integrated table that associates the product ID, which identifies the product, with the variable values obtained from each PLC (step S3).
[0092] The processor 401 outputs an integrated table to the PLC 100 in response to a request from the PLC 100 (step S4).
[0093] <Causal Model Generation Process Flow> Figure 12 is a flowchart showing the flow of the causal model generation process. The flowchart shown in Figure 12 is executed during the learning phase in which the causal model is generated.
[0094] First, the processor 101 determines whether or not there is a causal relationship based on the correlation strength calculated using a known method for each of two variables selected from multiple variables of the target process 2b, the preceding process 2a, and the following process 2c (step S11).
[0095] The processor 101 generates a causal model in which two variables determined to be causally related are connected by undirected lines (step S12). The thickness of the undirected lines corresponds to the strength of the correlation.
[0096] Next, the processor 101 determines the direction of the causal relationship between two variables that satisfy the following first condition in the causal model, in a direction that aligns with the order of processes in which the product flows (step S13). Condition 1: They are connected by undirected lines and correspond to different processes. As a result, in the causal model, the line connecting the two variables that satisfy the first condition is changed to an arrow (directed line) that follows the sequence of processes in which the product flows.
[0097] Next, the processor 101 determines the direction of the causal relationship between two variables that satisfy the following second condition in the causal model, and directs it toward the variable that cannot be directly adjusted (step S14). Second condition: The variables are connected by an undirected line, and one of them cannot be directly adjusted. As a result, in the causal model, the lines connecting two variables that satisfy the second condition are changed to arrows (directed lines) pointing towards the variable that cannot be directly adjusted. After step S14, the causal model generation process is completed. Note that undirected lines that were not changed to arrows (directed lines) may be deleted from the causal model.
[0098] <Flowchart for adjusting target values of variables> Figure 13 is a flowchart showing the flow of the adjustment process for the target values of the variables in the target process. The flowchart shown in Figure 13 is executed during the operational phase in which the target values of the variables in the target process are adjusted.
[0099] First, the processor 101 determines whether the value of the variable obtained from the next process 2c is outside the control range (step S21). The control range is predetermined for each variable.
[0100] If the value of the variable obtained from the subsequent process 2c falls outside the control range (YES in step S21), the processor 101 selects a variable to be adjusted (step S22).
[0101] After step S22, the processor 101 adjusts the target value of the variable to be adjusted so that the value of the variable obtained from the subsequent process 2c returns to the control range (step S23). The adjustment direction of the variable to be adjusted is determined based on the adjustment direction data. The adjustment amount is predetermined for each variable. After step S23, the process ends.
[0102] If the variable value obtained from the subsequent process 2c is not outside the control range (NO in step S21), the processor 101 determines whether the variable value obtained from the preceding process 2a is outside the control range (step S24). The control range is set in advance.
[0103] If the value of the variable obtained from the previous step 2a is not outside the control range (NO in step S24), the process returns to step S21.
[0104] If the value of the variable obtained from the previous step 2a is outside the control range (YES in step S24), the processor 101 selects a variable to be adjusted (step S25).
[0105] After step S25, the processor 101 adjusts the target value of the variable to be adjusted so as to cancel out the amount of change in the variable value obtained from the previous step 2a (step S26). The adjustment direction of the variable to be adjusted is determined based on the adjustment direction data. The amount of adjustment is predetermined for each variable. After step S26, the process ends.
[0106] <Processing flow of the subroutine in step S22> Figure 14 is a flowchart showing the processing flow of the subroutine in step S22 shown in Figure 13.
[0107] First, the processor 101 extracts one or more candidate adjustment variables that satisfy the following conditions a and b from among the one or more variables collected from the target process 2b (step S31). Condition a: The variable under management is linked to the causal model directly or through other variables. Condition b: Can be adjusted directly. Processor 101 extracts variables that satisfy condition a using a causal model. That is, processor 101 determines that the managed variable and the linked variable satisfy condition a based on one or more lines. Processor 101 then extracts variables that satisfy condition b using the adjustment feasibility table (see Figure 10).
[0108] Next, the processor 101 determines whether there is one or more variables among those collected from the target process 2b that satisfy both of the following conditions c and d (step S32). Condition c: There is a causal relationship with the managed variable. Condition d: Cannot be adjusted directly. The processor 101 can determine whether a variable satisfying condition c exists using a causal model, and whether a variable satisfying condition d exists using an adjustment feasibility table (see Figure 10).
[0109] If there is a variable that satisfies both conditions c and d (YES in step S32), the processor 101 determines whether the amount of variation of the variable that satisfies both conditions c and d exceeds a specified amount (step S33). The amount of variation of the variable that satisfies both conditions c and d is expressed as the difference between a predetermined reference value and the value of the variable. The reference value is, for example, the median of a predetermined control range for the variable.
[0110] If the amount of variation of a variable that satisfies both conditions c and d exceeds a specified amount (YES in step S33), the processor 101 sets a higher priority for the adjustment candidate variable that has a causal relationship with the variable that satisfies both conditions c and d than for the remaining adjustment candidate variables (step S34).
[0111] If no variable satisfies both conditions c and d (NO in step S32), and after step S34, the process proceeds to step S35. In step S35, the processor 101 sets a higher priority for the candidate variable to be adjusted, depending on the correlation strength with the managed variable.
[0112] Furthermore, when the process in step S34 is being performed, the processor 101 adjusts the priorities while maintaining a state in which the priority of adjustment candidate variables that have a causal relationship with variables that satisfy both conditions c and d is higher than that of the remaining adjustment candidate variables. That is, the processor 101 divides the adjustment candidate variables into a first group of variables that have a causal relationship with variables that satisfy both conditions c and d, and a second group of the remaining adjustment candidate variables. The processor 101 sets the priority of the adjustment candidate variables belonging to the first group higher than the priority of the adjustment candidates belonging to the second group, and within each group, sets the priority of the adjustment candidate variable higher the stronger the correlation with the managed variable.
[0113] Next, the processor 101 accepts input on whether or not to adjust the one or more adjustment candidate variables extracted in step S31, in order of priority (step S36). Specifically, the processor 101 provides the HMI with a screen via the information network controller 106 prompting the user to input whether or not to adjust the adjustment candidate variables in order of priority. The processor 101 determines whether or not to adjust the adjustment candidate variables in order of priority, based on the input to the HMI.
[0114] Next, the processor 101 selects the first variable that received an adjustable input as the variable to be adjusted (step S37).
[0115] <Specific example of the process in step S22> Figure 15 shows an example of a causal model. In the causal model shown in Figure 15, the variable "thickness before polishing" and the variable "thickness after polishing" are connected by a directed line 4a pointing towards the variable "thickness after polishing". The variable "processing temperature" and the variable "thickness after polishing" are connected by a directed line 4b pointing towards the variable "thickness after polishing". The variable "processing time" and the variable "thickness after polishing" are connected by a directed line 4c pointing towards the variable "thickness after polishing". The variable "cooling water flow rate" and the variable "processing temperature" are connected by a directed line 4d pointing towards the variable "processing temperature".
[0116] Figure 16 is a flowchart showing the specific processing flow of step S22 using the causal model shown in Figure 15 and the adjustment feasibility table shown in Figure 10. Figure 16 shows the processing flow when the value of the variable "thickness after polishing" in the subsequent process 2c falls below the lower limit of the control range.
[0117] In the causal model, the variables that are directly or through other variables connected to the variable "thickness after polishing" and are associated with being adjustable in the adjustment feasibility table are the variables "cooling water flow rate" and "processing time". Therefore, in step S31a, the processor 101 extracts the variables "cooling water flow rate" and "processing time" as one or more adjustment candidate variables that satisfy both conditions a and b.
[0118] In the adjustment feasibility table, among the variables associated with non-adjustable, the variable that has a causal relationship with the managed variable "thickness after polishing" is the variable "processing temperature". Therefore, in step S32a, the processor 101 confirms that the variable "processing temperature" satisfies both conditions c and d.
[0119] In step S33a, the processor 101 determines whether the amount of change in the variable "processing temperature" exceeds a specified amount. The adjustment direction data, which is part of the setting data group 112, associates the change direction "minus" of the managed variable "thickness after polishing" with the change direction "minus" of the variable obtained from the subsequent process 2c and the adjustment direction "plus" of the variable "processing temperature". In other words, in order to bring the value of the managed variable "thickness after polishing" back from below the lower limit of the control range to the control range, it is necessary to change the value of the variable "processing temperature" to the positive side. Therefore, if the cause of the change in the managed variable "thickness after polishing" is the variable "processing temperature", the variable "processing temperature" will also change to the negative side. Therefore, in step S33a, the processor 101 determines whether the amount of decrease in the variable "processing temperature" exceeds a specified amount.
[0120] If the decrease in the variable "processing temperature" exceeds a specified amount (YES in step S33a), the processor 101 determines in step S34a that the priority of the variable "cooling water flow rate," which has a causal relationship with the variable "processing temperature," is set to "1," and the priority of the variable "processing time" is set to "2." Note that a smaller priority number indicates a higher priority.
[0121] After step S34a, the processor 101 accepts input on whether the variables "cooling water flow rate" and "processing time" can be adjusted, in order of priority. At this time, the processor 101 may prompt for input on whether the adjustment is possible after clearly indicating the adjustment direction of the candidate adjustment variables based on the adjustment direction data. Specifically, in step S36a, the processor 101 provides a screen prompting for input on whether the variable "cooling water flow rate," which has a priority of "1," can be reduced, and determines whether the variable "cooling water flow rate" can be reduced based on the input.
[0122] If the answer in step S36a is YES, the processor 101 selects the variable "cooling water flow rate" as the variable to be adjusted in step S37a.
[0123] If the answer in step S36a is NO, in step S36b, the processor 101 provides a screen prompting the user whether or not it is permissible to increase the variable "processing time" which has a priority of "2", and determines whether or not it is permissible to increase the variable "processing time" based on the input.
[0124] If the answer in step S36b is YES, the processor 101 selects the variable "processing time" as the variable to be adjusted in step S37b.
[0125] If the answer in step S36b is NO, the processor 101 notifies the HMI of the alarm in step S37e.
[0126] If the amount of variation of the variable "processing temperature" does not exceed a specified amount (NO in step S33a), the processor 101 determines the priority of the variables "cooling water flow rate" and "processing time" based on the correlation strength. The correlation strength between the managed variable "thickness after polishing" and the variable "cooling water flow rate" is expressed as the product of the correlation strength between the managed variable "thickness after polishing" and the variable "processing temperature" and the correlation strength between the variable "processing temperature" and the variable "cooling water flow rate". The correlation strength takes a value greater than 0 and less than or equal to 1. The correlation strength between the managed variable "thickness after polishing" and the variable "processing temperature" is smaller than the correlation strength between the managed variable "thickness after polishing" and the variable "processing time". Therefore, in step S35a, the processor 101 determines the priority of the variable "processing time" to be "1" and the priority of the variable "cooling water flow rate" to be "2".
[0127] After step S35a, the processor 101 accepts input regarding whether the variables "cooling water flow rate" and "processing time" can be adjusted in order of priority. Specifically, in step S36c, the processor 101 provides a screen prompting the user to input whether or not it is permissible to increase the variable "processing time," which has a priority of "1," and determines whether or not it is permissible to increase the variable "processing time" based on the input.
[0128] If the answer in step S36c is YES, the processor 101 selects the variable "processing time" as the variable to be adjusted in step S37c.
[0129] If the answer in step S36c is NO, in step S36d, the processor 101 provides a screen prompting the user whether or not it is permissible to decrease the variable "cooling water flow rate" which has a priority of "2", and determines whether or not it is permissible to decrease the variable "cooling water flow rate" based on the input.
[0130] If the answer in step S36d is YES, the processor 101 selects the variable "cooling water flow rate" as the variable to be adjusted in step S37d.
[0131] If the answer in step S36d is NO, the processor 101 notifies the HMI of the alarm in step S37e.
[0132] Thus, if the managed variable in the subsequent process 2c falls outside the scope of control, it is determined whether the amount of change of the variables in the target process 2b that have a causal relationship with the managed variable and cannot be directly adjusted (variables that satisfy both conditions c and d) exceeds a specified amount. If the amount of change of the variable that satisfies both conditions c and d exceeds a specified amount, the priority of the candidate variable for adjustment that has a causal relationship with the variable that satisfies both conditions c and d is set higher than that of the remaining candidate variables for adjustment.
[0133] Generally, variables that can be directly adjusted are set to a certain target value in order to obtain stable product quality. If the value of a variable managed in the subsequent process 2c falls outside the control range, even though the directly adjustable variable is set to that target value, there is a possibility that an abnormality has occurred in the value of a variable that cannot be directly adjusted in the target process 2b. Therefore, it is determined whether the amount of variation of the variable that satisfies both conditions c and d exceeds the specified amount.
[0134] If the fluctuation amount of a variable that satisfies both conditions c and d exceeds a specified amount, adjusting the value of a variable that has a causal relationship with the variable that satisfies both conditions c and d will stabilize the value of the variable that satisfies both conditions c and d. As a result, the quality of the product can be stabilized.
[0135] <Processing flow of the subroutine in step S25> Figure 17 is a flowchart showing the processing flow of the subroutine in step S25 shown in Figure 13.
[0136] First, the processor 101 extracts one or more candidate adjustment variables that satisfy both conditions a and b from among the one or more variables collected from the target process 2b (step S41). Step S41 is the same as step S31 shown in Figure 14.
[0137] Next, the processor 101 determines whether there is a variable among the one or more candidate variables extracted in step S41 that satisfies condition c. Then, depending on whether a variable that satisfies condition c exists, the processor 101 sets the priority of the variable that satisfies condition c higher than the remaining candidate variables (step S42).
[0138] Next, the processor 101 determines whether there are any variables among the candidate variables to be adjusted that satisfy the following condition e, excluding the variables that satisfy condition c. Then, depending on whether there are any variables that satisfy condition e, the processor 101 sets the priority of the variables that satisfy condition e higher than the remaining candidate variables to be adjusted (step S43). Condition e: There is a causal relationship between the variables in the target process 2b and the variables that satisfy both conditions c and d.
[0139] Next, the processor 101 determines whether there are any variables among those collected from the downstream process 2c that satisfy condition c. If there are variables collected from the downstream process 2c that satisfy condition c, the processor 101 determines whether there are any variables among the candidate adjustment variables, excluding those that satisfy conditions c and e, that satisfy the following condition f. Then, if there are variables that satisfy condition f, the processor 101 sets the priority of the variables that satisfy condition f higher than the remaining candidate adjustment variables (step S44). Condition f: Satisfies condition c and has a causal relationship with the variables from the subsequent process 2c.
[0140] Next, the processor 101 sets a higher priority for the candidate variable to be adjusted, depending on the strength of the correlation between it and the managed variable (step S45).
[0141] Furthermore, the processor 101 adjusts the priorities while maintaining the priority relationships set in steps S42 to S44. That is, the processor 101 divides the one or more candidate variables for adjustment extracted in step S41 into a third group that satisfies condition c, a fourth group that satisfies condition e, a fifth group that satisfies condition f, and the remaining sixth group. The processor 101 sets the priority of the candidate variables for adjustment belonging to the nth group (n=3 to 5) higher than the priority of the candidate variables for adjustment belonging to the (n+1)th group, and within each group, sets the priority of the candidate variables for adjustment higher the stronger the correlation between them and the managed variable.
[0142] Next, the processor 101 accepts input on whether or not to adjust the one or more adjustment candidate variables extracted in step S41, in order of priority (step S46). Specifically, the processor 101 provides the HMI with a screen via the information network controller 106 prompting the user to input whether or not to adjust the adjustment candidate variables in order of priority. The processor 101 determines whether or not to adjust the adjustment candidate variables in order of priority, based on the input to the HMI.
[0143] Next, the processor 101 selects the first variable that received an adjustable input as the variable to be adjusted (step S47).
[0144] <Specific example of the process in step S25> Figure 18 shows another example of a causal model. The causal model shown in Figure 18 differs from the causal model shown in Figure 15 in the following ways. The variables "thickness before polishing" and "motor current" are connected by a directed line 4e pointing towards the variable "motor current". The variables "panel height" and "motor current" are connected by a directed line 4f pointing towards the variable "motor current". The variable "motor current" and the variable "processing temperature" are connected by a directed line 4g pointing towards the variable "processing temperature".
[0145] Figure 19 is a flowchart showing the specific processing flow of step S25 using the causal model shown in Figure 18 and the adjustment feasibility table shown in Figure 10. Figure 19 shows the processing flow when the value of the variable "thickness before polishing" in the previous step 2a falls below the lower limit of the control range.
[0146] In the causal model, the variables that are directly or through other variables connected to the variable "thickness before polishing" and are associated with being adjustable in the adjustment feasibility table are the variables "cooling water flow rate", "processing time", and "plate height". Therefore, in step S41a, the processor 101 extracts the variables "cooling water flow rate", "processing time", and "plate height" as one or more adjustment candidate variables that satisfy both conditions a and b.
[0147] The variables "cooling water flow rate," "processing time," and "plate height" are not directly connected to the managed variable "thickness before polishing" in the causal model. Therefore, in step S42a, the processor 101 confirms that there are no candidate variables for adjustment that satisfy condition c.
[0148] The variable "panel height" has a causal relationship with the variable "motor current" which satisfies conditions c and d. Therefore, in step S43a, the processor 101 determines the priority of the variable "panel height" to be "1".
[0149] The variable "thickness after polishing" in the subsequent process 2c is directly connected to the managed variable "thickness before polishing". In other words, the variable "thickness after polishing" in the subsequent process 2c has a causal relationship with the managed variable "thickness before polishing". The variable "processing time" has a causal relationship with the variable "thickness after polishing" in the subsequent process 2c. Therefore, in step S44a, the processor 101 determines that the variable "processing time" satisfies condition f and sets the priority of the variable "processing time" to "2".
[0150] In step S45a, the processor 101 determines that the priority of the remaining adjustment candidate variable, the variable "cooling water flow rate", is set to "3".
[0151] After step S45a, the processor 101 accepts input on whether the variables "cooling water flow rate", "machining time", and "panel height" can be adjusted, in order of priority. At this time, the processor 101 may prompt for input on whether the adjustment is possible after clearly indicating the adjustment direction of the candidate variable based on the adjustment direction data. Specifically, in step S46a, the processor 101 provides a screen prompting for input on whether the variable "panel height", which has a priority of "1", can be increased, and determines whether the variable "panel height" can be increased based on the input.
[0152] If the answer in step S46a is YES, the processor 101 selects the variable "board height" as the variable to be adjusted in step S47a.
[0153] If the answer in step S46a is NO, in step S46b, the processor 101 provides a screen prompting the user whether or not it is permissible to increase the variable "processing time" which has a priority of "2", and determines whether or not it is permissible to increase the variable "processing time" based on the input.
[0154] If the answer in step S46b is YES, the processor 101 selects the variable "processing time" as the variable to be adjusted in step S47b.
[0155] If the answer in step S46b is NO, in step S47c, the processor 101 provides a screen prompting the user whether or not it is permissible to decrease the variable "cooling water flow rate" which has a priority of "3", and determines whether or not it is permissible to decrease the variable "cooling water flow rate" based on the input.
[0156] If the answer in step S46c is YES, the processor 101 selects the variable "cooling water flow rate" as the variable to be adjusted in step S47c. An alarm is then sent to the HMI.
[0157] If the answer in step S46c is NO, the processor 101 notifies the HMI of an alarm in step S47d.
[0158] <Example 1> In the above description, PLC100 obtains the integrated table from MES server 400. However, PLC100 may also obtain variable values from PLC200 and 300 and generate the integrated table from those sources.
[0159] Each of the PLCs 100, 200, and 300 receives a processing command from the MES server 400, which is assigned a product ID to identify the product to be processed. Upon receiving a processing command, each of the PLCs 100, 200, and 300 stores management information for a certain period of time, which associates the product ID assigned to the processing command with the values of variables collected in the control of the controlled object corresponding to that processing command.
[0160] The acquisition unit 13 of PLC100 periodically acquires management information from PLC200 and 300 and generates an integrated table by linking variable values using the product ID. As a result, the acquisition unit 13 can acquire, for each product, the value of one or more variables indicating the state of the controlled object included in the target process 2b, the value of one or more variables collected by PLC200 which controls the preceding process 2a, and the value of one or more variables collected by PLC300 which controls the subsequent process 2c.
[0161] <Modification 2> In the above description, the processor 101, acting as the selection unit 15, determines whether the adjustment candidate variables can be adjusted in order of priority, and selects the adjustment candidate variable that first receives an input indicating it can be adjusted as the adjustment target variable. However, the processor 101, acting as the selection unit 15, may also select the adjustment candidate variable with the highest priority as the adjustment target variable.
[0162] §3 Addendum As described above, this embodiment includes the following disclosures.
[0163] (Composition 1) A control device (100) that controls a target process (2b) among multiple processes that constitute a production line (2), For each product, an acquisition unit (13, 101) acquires the value of one or more first variables that indicate the state of the controlled object included in the target process (2b), and the value of one or more second variables collected by another control device (200, 300) that controls the process (2a, 2c) before or after the target process among the plurality of processes. A generation unit (14,101) generates a causal model (3) that shows the causal relationship between two of the one or more first variables and the one or more second variables, A selection unit (15,101) selects a variable to be adjusted from among the one or more first variables using the causal model in response to the value of a managed variable included in the one or more second variables falling outside the management range, Adjustment unit (16,101) adjusts the target value of the adjustment target variable so as to return the value of the managed variable to the control range when the managed variable is collected from a process after the target process, and adjusts the target value of the adjustment target variable so as to cancel out the amount of change in the managed variable when the managed variable is collected from a process before the target process, A control device (100) comprising: a control unit (12, 101) that controls the control target so that the value of the variable to be adjusted approaches the adjusted target value.
[0164] (Configuration 2) The aforementioned causal model (3) connects two variables that have a causal relationship, The aforementioned selection unit (15, 101) is From the one or more first variables mentioned above, one or more candidate adjustment variables are extracted that are directly or otherwise linked to the managed variable in the causal model and can be directly adjusted. Based on the causal model, the priority of the one or more candidate adjustment variables is determined. The control device (100) according to configuration 1, which selects the adjustment candidate variable with the highest priority from among the one or more adjustment candidate variables as the adjustment target variable.
[0165] (Composition 3) The aforementioned causal model connects two variables that have a causal relationship, The aforementioned selection unit (15, 101) is From the one or more first variables mentioned above, one or more candidate adjustment variables are extracted that are directly or otherwise linked to the managed variable in the causal model and can be directly adjusted. Based on the causal model, the priority of the one or more candidate adjustment variables is determined. For the one or more candidate variables for adjustment mentioned above, input is accepted regarding whether adjustment is possible or not, in order of the highest priority. The control device (100) according to configuration 1, which selects the adjustment candidate variable that has received an input indicating it is adjustable from among the one or more adjustment candidate variables as the adjustment target variable.
[0166] (Composition 4) If the variables to be managed are collected from the subsequent process (2c), the selection unit (15, 101) Determine whether there is a third variable among the one or more first variables that has a causal relationship with the managed variable and cannot be directly adjusted. Depending on the existence of the third variable, it is determined whether the third variable is fluctuating beyond a specified amount. A control device (100) according to configuration 2 or 3, which, in response to the third variable fluctuating beyond a predetermined amount, gives a higher priority to one or more adjustment candidate variables that have a causal relationship with the third variable than to the remaining adjustment candidate variables.
[0167] (Composition 5) The aforementioned selection unit (15, 101) is A control device (100) according to configuration 4, which, depending on whether the third variable does not exist or whether the third variable does not fluctuate beyond the specified amount, assigns a higher priority to each of the one or more adjustment candidate variables the higher the correlation strength between them and the managed variable.
[0168] (Composition 6) If the variables to be managed are collected from the previous step (2a), the selection unit (15, 101) Determine whether or not a fourth variable exists among the one or more candidate variables for adjustment that has a causal relationship with the variable under management. A control device (100) according to configuration 2 or 3, which, depending on the presence of the fourth variable, gives a higher priority to the fourth variable than to the remaining candidate variables for adjustment.
[0169] (Composition 7) The aforementioned selection unit (15, 101) is Determine whether there is a fifth variable among the one or more first variables that has a causal relationship with the managed variable and cannot be directly adjusted. Depending on the existence of the fifth variable, it is determined whether there is a sixth variable among the one or more adjustment candidate variables excluding the fourth variable that has a causal relationship with the fifth variable. The control device (100) according to configuration 6, which, depending on the existence of the sixth variable, gives the priority of the sixth variable a higher priority than the remaining candidate variables for adjustment.
[0170] (Composition 8) The aforementioned selection unit (15, 101) is It is determined whether there is a seventh variable among the one or more second variables mentioned above that has a causal relationship with the managed variable, among the variables collected from the subsequent process. Depending on the existence of the seventh variable, it is determined whether there is an eighth variable among the one or more adjustment candidate variables, excluding the fourth and sixth variables, that has a causal relationship with the seventh variable. A control device (100) according to configuration 7, which, depending on the existence of the eighth variable, gives the priority of the eighth variable higher than the remaining candidate variables for adjustment.
[0171] (Composition 9) A control method for a control device (100) that controls a target process (2b) among multiple processes that constitute a production line (2), For each product, the steps include obtaining the value of one or more first variables that indicate the state of the controlled object included in the target process, and the value of one or more second variables collected by another control device (200, 300) that controls the process (2a, 2c) before or after the target process (2b) among the plurality of processes, The steps include generating a causal model (3) that shows the causal relationship between two of the one or more first variables and the one or more second variables, The steps include: selecting a variable to be adjusted from among the one or more first variables using the causal model in response to the value of a managed variable included in the one or more second variables falling outside the control range; The steps include: adjusting the target value of the variable to be adjusted so that the value of the managed variable returns to the control range when the managed variable is collected from a process after the target process; and adjusting the target value of the variable to be adjusted so that the amount of variation of the managed variable is canceled out when the managed variable is collected from a process before the target process; A control method comprising the step of controlling the controlled object so that the value of the variable to be adjusted approaches the adjusted target value.
[0172] (Composition 10) A computer in a control device (100) that controls the target process (2b) among the multiple processes that make up the production line (2) has the following information: For each product, the steps include obtaining the value of one or more first variables that indicate the state of the controlled object included in the target process, and the value of one or more second variables collected by another control device (200, 300) that controls the process (2a, 2c) before or after the target process (2b) among the plurality of processes, The steps include generating a causal model that shows the causal relationship between two of the one or more first variables and the one or more second variables, The steps include: selecting a variable to be adjusted from among the one or more first variables using the causal model in response to the value of a managed variable included in the one or more second variables falling outside the control range; The steps include: adjusting the target value of the variable to be adjusted so that the value of the managed variable returns to the control range when the managed variable is collected from a process after the target process; and adjusting the target value of the variable to be adjusted so that the amount of variation of the managed variable is canceled out when the managed variable is collected from a process before the target process; A program (111) that causes the program to perform the steps of controlling the controlled object so that the value of the variable to be adjusted approaches the adjusted target value.
[0173] While embodiments of the present invention have been described, the embodiments disclosed herein should be considered in all respects to be illustrative and not restrictive. The scope of the present invention is defined by the claims, and all modifications within the meaning and scope equivalent to the claims are intended to be included. [Explanation of symbols]
[0174] 1 System, 2 Production Line, 2a Front-end Process, 2b Target Process, 2c Back-end Process, 3 Causal Model, 4a-4g Directed Line, 11,21,31 Data Acquisition Unit, 12,22,32 Control Calculation Unit, 13 Acquisition Unit, 14 Generation Unit, 15 Selection Unit, 16 Adjustment Unit, 41 Processing Instruction Unit, 42 Data Management Unit, 100,200,300 PLC, 101,401 Processor, 102 Chipset, 103 Main Memory, 104,403 Storage, 105 Control System Network Controller, 106 Information System Network Controller, 107 USB Controller, 108 Memory Card Interface, 110 System Program, 111 User Program, 112 Setting Data Group, 120 Memory Card, 400 MES Server, 402 Memory, 404 Communication Interface, 410 Management Program, 500 Polishing equipment, 600, 700 inspection equipment.
Claims
1. A control device that controls a target process among multiple processes that constitute a production line, An acquisition unit that acquires, for each product, the value of one or more first variables indicating the state of the controlled object included in the target process, and the value of one or more second variables collected by another control device that controls a process before or after the target process among the plurality of processes, A generation unit that generates a causal model showing the causal relationship between two of the one or more first variables and the one or more second variables, A selection unit that, in response to the value of a managed variable included in the one or more second variables falling outside the control range, uses the causal model to select a variable to be adjusted for the processing in the target process from among the one or more first variables, An adjustment unit adjusts the target value of the variable to be adjusted so that the value of the managed variable returns to the control range when the managed variable is collected from a process after the target process, and adjusts the target value of the variable to be adjusted so that the amount of variation of the managed variable cancels out when the managed variable is collected from a process before the target process. A control device comprising: a control unit that controls the controlled object so that the value of the variable to be adjusted approaches the adjusted target value.
2. The aforementioned causal model connects two variables that have a causal relationship, The aforementioned selection unit is From among the one or more first variables, one or more candidate adjustment variables are extracted that are directly linked to the managed variable in the causal model, or via other variables, and that can be directly adjusted. Based on the causal model, the priority of the one or more candidate variables to be adjusted is determined. The control device according to claim 1, wherein the control device selects the adjustment candidate variable with the highest priority among the one or more adjustment candidate variables as the adjustment target variable.
3. The aforementioned causal model connects two variables that have a causal relationship, The aforementioned selection unit is From among the one or more first variables, one or more candidate adjustment variables are extracted that are directly linked to the managed variable in the causal model, or via other variables, and that can be directly adjusted. Based on the causal model, the priority of the one or more candidate variables to be adjusted is determined. For the one or more candidate variables for adjustment mentioned above, input is accepted regarding whether adjustment is possible or not, in order of the highest priority. The control device according to claim 1, wherein the control device selects, from among the one or more candidate variables for adjustment, the candidate variable for adjustment that has received an input indicating it is adjustable as the variable to be adjusted.
4. If the aforementioned managed variables are collected from the subsequent process, the selection unit shall Determine whether there is a third variable among the one or more first variables that has a causal relationship with the managed variable and cannot be directly adjusted. Depending on the existence of the third variable, it is determined whether the third variable is fluctuating beyond a specified amount. The control device according to claim 2 or 3, wherein, in response to the third variable fluctuating beyond a predetermined amount, the priority of one or more adjustment candidate variables that have a causal relationship with the third variable is increased compared to the remaining adjustment candidate variables.
5. The aforementioned selection unit is The control device according to claim 4, wherein, depending on whether the third variable does not exist or whether the third variable does not fluctuate beyond the specified amount, the priority of each of the one or more adjustment candidate variables is increased in proportion to the correlation strength between them and the managed variable.
6. If the variables to be managed are collected from the previous step, the selection unit will It is determined whether or not a fourth variable exists among the one or more candidate variables for adjustment that has a causal relationship with the variable under management. The control device according to claim 2 or 3, wherein, depending on the existence of the fourth variable, the priority of the fourth variable is set higher than that of the remaining candidate variables for adjustment.
7. The aforementioned selection unit is Determine whether there is a fifth variable among the one or more first variables that has a causal relationship with the managed variable and cannot be directly adjusted. Depending on the existence of the fifth variable, it is determined whether there is a sixth variable among the one or more candidate adjustment variables excluding the fourth variable that has a causal relationship with the fifth variable. The control device according to claim 6, wherein, depending on the existence of the sixth variable, the priority of the sixth variable is set higher than that of the remaining candidate variables for adjustment.
8. The aforementioned selection unit is It is determined whether there is a seventh variable among the one or more second variables mentioned above that has a causal relationship with the managed variable, among the variables collected from the subsequent process. Depending on the existence of the seventh variable, it is determined whether there is an eighth variable among the one or more adjustment candidate variables, excluding the fourth and sixth variables, that has a causal relationship with the seventh variable. The control device according to claim 7, wherein, depending on the existence of the eighth variable, the priority of the eighth variable is set higher than that of the remaining candidate variables for adjustment.
9. A control method for a control device that controls a target process among multiple processes that constitute a production line, For each product, the steps include obtaining the value of one or more first variables that indicate the state of the controlled object included in the target process, and the value of one or more second variables collected by another control device that controls a process before or after the target process among the plurality of processes, The steps include generating a causal model that shows the causal relationship between two of the one or more first variables and the one or more second variables, In response to the value of a managed variable included in the one or more second variables falling outside the control range, the causal model is used to select a variable to be adjusted for the processing in the target process from among the one or more first variables. The steps include: adjusting the target value of the variable to be adjusted so that the value of the managed variable returns to the control range when the managed variable is collected from a process after the target process; and adjusting the target value of the variable to be adjusted so that the amount of variation of the managed variable is canceled out when the managed variable is collected from a process before the target process; A control method comprising the step of controlling the controlled object so that the value of the variable to be adjusted approaches the adjusted target value.
10. A computer in a control device that controls a specific process among multiple processes that make up a production line, For each product, the steps include obtaining the value of one or more first variables that indicate the state of the controlled object included in the target process, and the value of one or more second variables collected by another control device that controls a process before or after the target process among the plurality of processes, The steps include generating a causal model that shows the causal relationship between two of the one or more first variables and the one or more second variables, In response to the value of a managed variable included in the one or more second variables falling outside the control range, the causal model is used to select a variable to be adjusted for the processing in the target process from among the one or more first variables. The steps include: adjusting the target value of the variable to be adjusted so that the value of the managed variable returns to the control range when the managed variable is collected from a process after the target process; and adjusting the target value of the variable to be adjusted so that the amount of variation of the managed variable is canceled out when the managed variable is collected from a process before the target process; A program that performs the steps of controlling the controlled object so that the value of the variable to be adjusted approaches the adjusted target value.