Analyzer, analysis method and program
The analytical device addresses the inefficiency of identifying abnormality causes in manufacturing lines by generating causal relationship information and associating it with specific data sets, allowing for rapid identification of abnormality-related variables.
Patent Information
- Application Number
- JP2023187434
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-11-01
- Publication Date
- 2025-05-15
AI Technical Summary
Existing technologies for identifying the cause of abnormalities in manufacturing lines are inefficient, particularly when control programs are complex, leading to longer search times for users.
An analytical device that generates causal relationship information between variables used in control programs, associates link information with program portions, and associates specific data sets with variables to facilitate the identification of abnormality-related variables.
The solution enables users to quickly and easily identify the causes of abnormalities by visualizing causal relationships and associating them with specific data sets, thereby reducing search time and improving efficiency.
Smart Images

Figure 2025075918000001_ABST
Abstract
Description
[Technical field]
[0001] The present disclosure relates to an analysis device, an analysis method, and a program. [Background technology]
[0002] In the manufacturing industry, technologies have been developed to find the cause of anomalies in production lines. For example, Japanese Patent Application Laid-Open No. 2020-13528 (Patent Document 1) discloses a technology for extracting mutually related modules from among multiple modules that make up a control program and displaying the extraction results (see Figures 43 and 44 of Patent Document 1). According to the technology described in Patent Document 1, a user can find the cause of an anomaly by checking the module corresponding to the device in which the anomaly occurred and the related modules. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] JP 2020-13528 A [Patent Document 2] JP 2023-92184 A Summary of the Invention [Problem to be solved by the invention]
[0004] However, with the technology described in Patent Document 1, if the control program is complicated, it takes a long time for the user to search for the cause of the abnormality.
[0005] The present disclosure has been made in consideration of the above problems, and has as its purpose to provide a technology that makes it easy for a user to search for the cause of an abnormality. [Means for solving the problem]
[0006] According to an example of the present disclosure, an analysis device includes a generating unit, a first associating unit, and a second associating unit. The generating unit generates causal relationship information indicating a causal relationship between a plurality of variables used in one or more programs for controlling a control target based on the one or more programs. The first associating unit associates, with each of the plurality of variables, link information to a program portion of the one or more programs that uses each variable. The second associating unit includes a second associating unit that associates, with each variable, a specific data set related to each variable in a target period including a timing when an abnormality occurs in the control target or an object processed by the control target.
[0007] According to this disclosure, each of the multiple variables is associated with link information to the program portion and a specific data set. The specific data set can be used to narrow down the variables related to the anomaly. In addition, the program portion can be used by a user to easily identify the code that caused the anomaly. This makes it easier for the user to search for the cause of the anomaly.
[0008] In the above disclosure, the analysis device further includes an output unit that outputs screen data showing an analysis screen. The output unit extracts a plurality of first variables associated with an anomaly from among the plurality of variables based on a specific data set. The output unit creates a graph having a plurality of nodes representing the plurality of first variables and edges representing the causal relationships of the plurality of first variables based on the causal relationship information. The analysis screen includes the above graph.
[0009] According to this disclosure, a graph is created in which multiple first variables related to anomalies are multiple nodes, making it easier for a user to search for variables that cause anomalies by checking the graph included in the analysis screen.
[0010] In the above disclosure, the output unit accepts a selection operation for a plurality of nodes, and includes one or more program parts to be displayed on the analysis screen according to the selected first node. The one or more program parts to be displayed include a program part indicated by link information associated with a variable corresponding to the first node among the plurality of first variables.
[0011] In the above disclosure, the graph includes one or more second nodes connected to the first node via edges, and the one or more display target program portions include program portions indicated by link information associated with variables among the plurality of first variables corresponding to each of the one or more second nodes.
[0012] According to these disclosures, a user can easily check the part of a program that uses a variable corresponding to a node of interest in a graph.
[0013] In the above disclosure, the specific data set includes first data indicating values of associated variables among the plurality of variables, and on the analysis screen, one or more display target program portions are displayed in a form corresponding to values indicated by the first data at the timing when the abnormality occurs.
[0014] According to this disclosure, a user can easily grasp the execution status of a program portion according to the value of a variable at the time when an abnormality occurs.
[0015] In the above disclosure, the analysis device includes one or more editing tools for editing one or more programs. The output unit receives a designation of a program portion to be edited from among one or more program portions to be displayed, and calls a target editing tool from among the one or more editing tools for editing the program portion to be edited.
[0016] According to this disclosure, a user can use a target editing tool to edit a program portion of a target edit target.
[0017] In the above disclosure, the analysis screen visually displays the difference between before and after editing of the program portion to be edited by the editing tool, allowing the user to easily check the edit content.
[0018] In the above disclosure, the one or more programs include a first program and a second program. The multiple variables include multiple second variables used in the first program and multiple third variables used in the second program. The generation unit determines a causal relationship of the multiple second variables based on the first program, and determines a causal relationship of the multiple third variables based on the second program. Furthermore, the generation unit determines a causal relationship between the first linked variable and the second linked variable based on a map that defines an input-output relationship between a first linked variable of the multiple second variables and a second linked variable of the multiple third variables.
[0019] According to this disclosure, even when the one or more programs include a plurality of programs, the generating unit can generate causal relationship information indicating the causal relationships of a plurality of variables used in the plurality of programs.
[0020] In the above disclosure, the specific data set includes a plurality of unit data corresponding to a plurality of timings within a target period. The output unit calculates, for each of the plurality of variables, an amount of change in a value indicated by a second unit data among the plurality of unit data at a timing after the occurrence of an abnormality relative to a value indicated by a first unit data among the plurality of unit data at a timing before the occurrence of an abnormality. The output unit extracts, from the plurality of variables, variables with a relatively large amount of change as the plurality of first variables.
[0021] Alternatively, the output unit may calculate the contribution degree to the abnormality for each of the multiple variables, and extract variables having a contribution degree greater than a threshold value from among the multiple variables as the multiple first variables.
[0022] Alternatively, the output unit may extract, from among the multiple variables, variables whose amount of change is relatively large and whose contribution rate is greater than a threshold, as the multiple first variables.
[0023] According to these disclosures, the output unit can easily extract a plurality of first variables related to anomalies.
[0024] In the above disclosure, the specific data set may include at least one of second data indicating a value of a feature of an image obtained by photographing the control object, and third data indicating a value of a feature extracted from a sound emitted from the control object or the surroundings of the control object.
[0025] According to one example of the present disclosure, an analysis method includes one or more processors generating, based on one or more programs for controlling a control object, causal relationship information indicating a causal relationship between a plurality of variables used in one or more programs; associating, for each of the plurality of variables, link information to a program portion of the one or more programs that uses each variable; and associating, for each variable, a specific data set for each variable in a target period that includes a timing at which an abnormality occurred in the control object or an object processed by the control object.
[0026] According to an example of the present disclosure, a program causes a computer to execute an analysis method, the analysis method including: generating, based on one or more programs for controlling a control target, causal relationship information indicating a causal relationship between a plurality of variables used in the one or more programs, associating, for each of the plurality of variables, link information to a program portion of the one or more programs that uses the variable, and associating, for each variable, a specific data set related to the variable in a target period including a timing when an abnormality occurs in the control target or an object processed by the control target.
[0027] These disclosures make it easier for users to search for the cause of an abnormality. Effect of the Invention
[0028] According to the present disclosure, it becomes easier for a user to search for the cause of an abnormality. [Brief description of the drawings]
[0029] [Figure 1] FIG. 1 is a diagram illustrating an example of a manufacturing system including an analysis device according to an embodiment. [Diagram 2] FIG. 2 is a schematic diagram illustrating an example of a hardware configuration of an analysis device according to an embodiment. [Diagram 3] FIG. 2 is a schematic diagram illustrating an example of a hardware configuration of a controller according to an embodiment. [Figure 4] FIG. 2 is a schematic diagram illustrating an example of a functional configuration of a controller and an analysis device. [Diagram 5] FIG. 13 is a diagram illustrating an example of an I / O map. [Figure 6] FIG. 11 is a diagram illustrating a method for generating causal relationship information. [Figure 7] FIG. 1 is a diagram showing an example of a graph showing the causal relationships of all variables. [Figure 8] FIG. 13 is a diagram illustrating an example of a graph showing the causal relationship between a plurality of anomaly-related variables having relatively large changes before and after an anomaly in a specific data set; [Figure 9] 10 is a flowchart showing a flow of preparation processing for generating an analysis screen in the analysis device. [Figure 10] 11 is a flowchart showing an example of a flow of an analysis screen output process in the analysis device. [Figure 11] FIG. 13 is a diagram showing an example of an analysis screen when a display level "low" is specified. [Figure 12] FIG. 13 is a diagram showing an example of an analysis screen when a display level "high" is specified. [Figure 13] FIG. 13 is a diagram showing an example of an analysis screen when a program portion to be edited has been edited. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0030] DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS An embodiment of the present invention will be described in detail with reference to the drawings. In the drawings, the same or corresponding parts are designated by the same reference characters and the description thereof will not be repeated.
[0031] §1 Examples of application 1 is a diagram illustrating an example of a manufacturing system including an analysis device according to an embodiment. As shown in FIG. 1, the manufacturing system 1000 includes an analysis device 100, one or more controllers 200, a manufacturing line 300, and a monitoring system 400.
[0032] The production line 300 is an example of a "controlled object" in the present disclosure. The production line 300 performs processes related to the production of products. Specifically, the production line 300 performs processes such as machining, inspection, transport, and assembly on workpieces. The workpieces are an example of an "object processed by a controlled object" in the present disclosure, and include parts, intermediate products, and products. The production line 300 includes one or more devices 31. The one or more devices 31 include actuators that provide some kind of physical action, various sensors, robots, and the like.
[0033] The one or more controllers 200 control the manufacturing line 300. The controller 200 is configured, for example, by a programmable logic controller (PLC) or an industrial PC (Personal Computer). The one or more controllers 200 have one or more control programs 222 for controlling the manufacturing line 300, and control the manufacturing line 300 in accordance with the one or more control programs 222.
[0034] The controller 200 acquires input / output data (hereinafter referred to as "IO data") at each predetermined control cycle in order to control the production line 300. The IO data includes input data transferred from the production line 300 to the controller 200 and output data output from the controller 200 to the production line 300. Furthermore, the IO data may include various data calculated by calculations according to the control program 222. The IO data indicates values of multiple variables used in one or more control programs 222.
[0035] The controller 200 records some or all of the IO data held during a target period including the timing when some abnormality occurred in the production line 300 or the work, as a time series data set 223 indicating the state of the production line 300 during the target period.
[0036] The monitoring system 400 monitors the production line 300. The monitoring system 400 includes one or more cameras 41, one or more microphones 42, and a network attached storage (NAS) 43.
[0037] The camera 41 photographs at least a part of the production line 300. For example, the one or more cameras 41 may include a camera that photographs the appearance of a product or intermediate product. In this case, image data obtained by photographing with this camera may be input to a visual sensor provided in the production line 300 and used to inspect the quality of the appearance. Alternatively, the one or more cameras 41 may include a camera that photographs a specific device included in the production line 300.
[0038] The microphones 42 are installed in the production line 300 and record sounds emitted from the production line 300 or the surroundings of the production line 300. The sounds emitted from the surroundings of the production line 300 may include voices emitted from workers of the production line 300. For example, one or more microphones 42 are installed near a specific device included in the production line 300 and record sounds emitted from the specific device or the voices of workers operating the specific device.
[0039] The monitoring system 400 receives a recording instruction for a target period including the timing when some abnormality occurred in the production line 300 or the workpiece from the controller 200. Upon receiving the recording instruction, the monitoring system 400 stores in the NAS 43 image data indicating images captured by the camera 41 during the target period. The image data may indicate still images at each timing during the target period, or may indicate video during the target period. The image data may include both still image data and video data. Furthermore, the monitoring system 400 stores in the NAS 43 audio recording data indicating sounds captured by the microphone 42 during the target period.
[0040] The image data and the audio data may be output directly from the camera 41 and the microphone 42 to the analysis device 100 and stored in the analysis device 100. In this case, the NAS 43 is omitted in the surveillance system 400.
[0041] Analysis device 100 is configured with one or more computers, and supports the analysis of the causes of abnormalities in production line 300 or workpieces. Analysis device 100 performs the following processes (1) to (3).
[0042] In process (1), the analysis device 100 generates causal relationship information indicating causal relationships of multiple variables used in the one or more control programs 222 for controlling the production line 300, based on the one or more control programs 222. The causal relationship information is used to create a graph 5 having nodes 51 representing each variable and edges 52 representing causal relationships between the variables. The graph 5 is, for example, a directed acyclic graph. The edges 52 are represented by arrows. The start and end points of the edges 52 represent causes and effects, respectively.
[0043] In process (2), analysis device 100 associates, with each of a plurality of variables, link information to program portion 6. Program portion 6 is a portion of one or more control programs 222 that uses the associated variable.
[0044] In process (3), the analysis device 100 associates, with each of the multiple variables, a specific data set 7 related to each variable in a target period including the timing when an abnormality occurred in the production line 300 or the work. Typically, the specific data set 7 includes data indicating values of the corresponding variables extracted from the time-series data set 223. The specific data set 7 may include data indicating values of features extracted from an image represented by image data stored in the NAS 43. Alternatively, the specific data set 7 may include data indicating values of features extracted from a sound represented by sound recording data stored in the NAS 43.
[0045] According to the analysis device 100 according to the embodiment, each of the multiple variables is associated with link information to the program portion 6 and a specific data set 7. The specific data set 7 can be used to narrow down the variables related to the anomaly. Furthermore, the user can easily check the code that caused the anomaly using the program portion 6. This makes it easier for the user to search for the cause of the anomaly.
[0046] §2 Specific examples <Hardware configuration of the analysis device> Fig. 2 is a schematic diagram showing an example of a hardware configuration of an analysis device according to an embodiment. As shown in Fig. 2, analysis device 100 includes a CPU (Central Processing Unit) 110, a memory 112 configured as a volatile storage device such as a DRAM (Dynamic Random Access Memory), a hard disk 114 configured as a non-volatile storage device, an input interface 118, a display controller 120, a communication interface 124, and a data reader / writer 126. These components are connected to each other via a bus 128 so as to be able to communicate data with each other.
[0047] The CPU 110 reads out any one of the analysis program 116 and one or more editing programs 117 stored in the hard disk 114, and loads the program in the memory 112. The CPU 110 executes the loaded program. Note that instead of the hard disk 114, another non-volatile storage device (such as an SSD (Solid State Drive)) may be used.
[0048] The input interface 118 mediates data transmission between the CPU 110 and an input device 132 such as a keyboard, a mouse, or a touch panel. That is, the input interface 118 receives data indicating various user inputs described later from the input device 132, and transmits the received data to the CPU 110. The display controller 120 is connected to a display 122, and displays the results of processing in the CPU 110, etc., on the display 122. The communication interface 124 communicates with the controller 200 and the monitoring system 400. The data reader / writer 126 mediates data transmission between the CPU 110 and an external storage medium 130. The storage medium 130 includes a volatile storage medium, a non-volatile storage medium, a general-purpose semiconductor storage device such as a CF (Compact Flash) or an SD (Secure Digital), a magnetic storage medium such as a flexible disk, or an optical storage medium such as a CD-ROM (Compact Disk Read Only Memory).
[0049] The analysis program 116 may be provided not as a standalone program but as part of an arbitrary program. In this case, the analysis program 116 cooperates with the arbitrary program to realize the processing according to the present embodiment. In addition, some or all of the functions provided by the analysis program 116 may be realized by a dedicated hardware circuit (for example, an ASIC (Application Specific Integrated Circuit) or an FPGA (Field-Programmable Gate Array).
[0050] <Controller hardware configuration> Fig. 3 is a schematic diagram showing an example of a hardware configuration of a controller according to an embodiment. As shown in Fig. 3, the controller 200 includes, as main components, a CPU 202, a chipset 204, a memory 206, a storage 208, a USB controller 250, a field network controller 252, a network controller 254, and a reader / writer 270.
[0051] The CPU 202 reads out a program stored in the storage 208 and loads it in the memory 206. The CPU 202 executes the loaded program.
[0052] The memory 206 is composed of a volatile storage device such as a DRAM or an SRAM. The memory 206 holds the values of various variables. The values of the various variables held in the memory 206 are updated according to a preset control period by the CPU 202 executing a program stored in the storage 208. The values of the various variables are accumulated in a buffer area 207 of the memory 206 for a certain period of time.
[0053] The storage 208 is configured, for example, by a non-volatile storage device such as a hard disk drive (HDD), an SSD, or a flash memory, but a portion of the storage device may be configured by a volatile storage device.
[0054] The chipset 204 mediates data exchange between the CPU 202 and each component, thereby realizing processing of the controller 200 as a whole.
[0055] The storage 208 stores an OS (Operating System) 212 for implementing the basic functions of the controller 200 and a system program 211 having a scheduler program 213 .
[0056] In addition, the storage 208 includes a control program 222 and a data collection program 224 .
[0057] Control program 222 defines a process for collecting values of variables indicating the state of production line 300, and a process for performing calculations based on the collected variable values to generate variable values related to commands to production line 300. The values of various variables are temporarily stored in memory 206. CPU 202 executes control program 222 to update the variable values stored in memory 206 for each control cycle.
[0058] The data collection program 224 defines the process of collecting data for a target period including the timing when an abnormality occurred in the production line 300 or a work. The CPU 202 executes the data collection program 224 to realize the process of saving the time-series data set 223 and the process of outputting a recording instruction to the monitoring system 400.
[0059] The data collection program 224 includes instructions for setting trigger conditions, variables to be sampled, sampling times, etc. in response to user input.
[0060] The trigger condition includes, for example, a condition that the value of a first specific variable related to an abnormality in the production line 300 has changed to a specific value (a value indicating that there is an abnormality in the production line 300). Alternatively, the trigger condition may include a condition that a second specific variable output from an inspection device that inspects the workpiece has changed to a specific value (a value indicating that there is an abnormality in the workpiece). Multiple types of trigger conditions may be set. The CPU 202 reads out from the buffer area 207 a time series data set 223 indicating values of one or more variables in a target period including the timing at which one trigger condition is satisfied, and controls the reader / writer 270 to write the time series data set 223 to the storage medium 500. The target period includes, for example, a first predetermined period before the timing at which the trigger condition is satisfied and a second predetermined period after the timing at which the trigger condition is satisfied. The lengths of the first and second predetermined periods are set in advance.
[0061] The storage medium 500 includes a volatile storage medium, a non-volatile storage medium, a general-purpose semiconductor storage device such as a Compact Flash (CF) or a Secure Digital (SD), a magnetic storage medium such as a Flexible Disk, or an optical storage medium such as a Compact Disk Read Only Memory (CD-ROM). The storage medium 500 is, for example, an SD memory card.
[0062] USB controller 250 is responsible for transmitting data to and from an external device (eg, analysis device 100) via a USB connection.
[0063] The field network controller 252 has a connector 252a that connects to the field network, and controls data exchange with the production line 300. The field network controller 252 has an internal buffer that stores input data received from the field network and output data output from the controller 200 to the field network.
[0064] The network controller 254 has a connector 254a for connecting to a higher-level network, and controls data exchange between the controller 200 and an external device (for example, the camera 41, the microphone 42, or the NAS 43).
[0065] The reader / writer 270 mediates data transmission between the CPU 202 and the storage medium 500. The CPU 202 copies the time series data set 223 generated in response to the trigger condition being satisfied from the buffer area 207 to the storage medium 500. The time series data set 223 stored in the storage medium 500 is transferred to the analysis device 100 via the network controller 254 at a predetermined timing. Alternatively, the user may connect the storage medium 500 to the analysis device 100 and copy or move the time series data set 223 from the storage medium 500 to the PC 100.
[0066] Note that time series data set 223 read from buffer area 207 may be output directly to analysis device 100 and stored in analysis device 100 without going through recording medium 500 .
[0067] 3 shows an example of a configuration in which the CPU 202 executes a program to provide necessary functions, but some or all of these provided functions may be implemented using a dedicated hardware circuit (e.g., ASIC or FPGA). Alternatively, the main part of the controller 200 may be realized using hardware that conforms to a general-purpose architecture (e.g., an industrial PC based on a general-purpose PC). In this case, multi-core technology may be applied to execute processes in parallel. Alternatively, virtualization technology may be used to execute multiple OSs with different uses in parallel, and necessary applications may be executed on each OS.
[0068] <Functional configuration of controller and analyzer> Fig. 4 is a schematic diagram showing an example of the functional configuration of the controller and the analysis device. The manufacturing system 1000 shown in Fig. 4 includes a PLC 200A and a robot controller 200B as one or more controllers 200. The manufacturing line 300 includes a plurality of servos 31a, a plurality of sensors 31b, and a plurality of robot servos 31c as one or more devices 31.
[0069] The PLC 200A includes a PLC control program 222A for controlling the multiple servos 31a and the multiple sensors 31b, and a collection unit 21A. The PLC control program 222A is an example of the control program 222 shown in Fig. 3, and is created using, for example, a ladder language or structured text (ST language). In the following description, it is assumed that the PLC control program 222A is created using a ladder language.
[0070] The collection unit 21A is realized by the CPU 202 included in the PLC 200A executing a data collection program 224 (see FIG. 3). The collection unit 21A generates and stores a time series data set 223A in response to a preset trigger condition being satisfied. The time series data set 223A indicates values of various variables used by the PLC control program 222A at each timing of a target period including the timing of an abnormality occurring in the production line 300. For example, the various variables include the torque, speed, position, temperature, pressure, current, or voltage of each of the multiple servos 31a.
[0071] Furthermore, the collection unit 21A outputs a recording instruction for the image data 431 and the sound recording data 432 for the target period to the monitoring system 400. As a result, the image data 431 and the sound recording data 432 for the target period are stored in the NAS 43 in the monitoring system 400. The image data 431 indicates, for example, a change in the material of a product, or a change in a product due to processing.
[0072] The robot controller 200B includes a robot control program 222B for controlling a plurality of robot servos 31c, and a collection unit 21B. The robot control program 222B is an example of the control program 222 shown in Fig. 3, and is created using, for example, G-code. In the following description, it is assumed that the robot control program 222B is created using G-code.
[0073] The collection unit 21B is realized by the CPU 202 included in the robot controller 200B executing a data collection program 224 (see FIG. 3). The collection unit 21B generates and stores a time-series data set 223B in response to a preset trigger condition being satisfied. The time-series data set 223B indicates values of various variables used by the robot control program 222B at each timing of a target period including the timing at which an abnormality occurred in the production line 300.
[0074] Furthermore, the collection unit 21B outputs a recording instruction for the image data 431 and the sound recording data 432 for the target period to the monitoring system 400. As a result, the image data 431 and the sound recording data 432 for the target period are stored in the NAS 43 in the monitoring system 400.
[0075] The trigger condition set in the PLC 200A may be the same as or different from the trigger condition set in the robot controller 200B.
[0076] When the trigger conditions set in the PLC 200A and the robot controller 200B are different from each other, the PLC 200A and the robot controller 200B preferably perform the following processing. That is, the collection unit 21A generates a time series data set 223A for the target period in response to the trigger condition set in the PLC 200A being satisfied, and outputs an instruction to generate a time series data set 223B for the target period (hereinafter referred to as a "first generation instruction") to the robot controller 200B. When the collection unit 21B of the robot controller 200B receives the first generation instruction, it generates the time series data set 223B.
[0077] Similarly, the collection unit 21B generates a time series data set 223B for the target period in response to the trigger condition set in the robot controller 200B being satisfied, and outputs an instruction to generate a time series data set 223A for the target period (hereinafter referred to as a "second generation instruction") to the PLC 200A. Upon receiving the second generation instruction, the collection unit 21A of the PLC 200A generates the time series data set 223A.
[0078] As a result, in the PLC 200A and the robot controller 200B, a time series data set 223A and a time series data set 223B are generated for the same target period.
[0079] The PLC control program 222A cooperates with the robot control program 222B. Specifically, the PLC control program 222A includes an instruction to change the value of another variable (hereinafter referred to as a "second cooperation variable") used in the robot control program 222B in response to the value of a certain variable (hereinafter referred to as a "first cooperation variable") used in the PLC control program 222A satisfying a preset condition. For example, the PLC control program 222A includes an instruction to change the value of a second cooperation variable related to a trigger of a picking operation of the robot from 0 to 1 in response to the value of a first cooperation variable representing a measurement result of the sensor 31b changing from 0 to 1.
[0080] As shown in Fig. 4, analysis device 100 includes storage unit 10, generation unit 11, first association unit 13, second association unit 15, output unit 17, and one or more editing tools 18. Storage unit 10 is realized by memory 112 or hard disk 114 shown in Fig. 2. Generation unit 11, first association unit 13, second association unit 15, and output unit 17 are realized by CPU 110 shown in Fig. 2 executing analysis program 116. Editing tool 18 is realized by CPU 110 executing editing program 117.
[0081] The storage unit 10 stores a PLC control program 222A, a robot control program 222B, and an I / O map 16.
[0082] The I / O map 16 defines the input / output relationship between a first linked variable among a plurality of variables used in the PLC control program 222A and a second linked variable among a plurality of variables used in the robot control program 222B.
[0083] Fig. 5 is a diagram showing an example of an I / O map. The I / O map 16 shown in Fig. 5 defines an input / output relationship between a first coordination variable "PLC1.c" and a second coordination variable "robot1.x". When the PLC control program 222A includes a command to change the value of the second coordination variable "robot1.x" from 0 to 1 according to the value of the first coordination variable "PLC1.c", the I / O map 16 indicates that the first coordination variable "PLC1.c" is an input and the second coordination variable "robot1.x" is an output. The I / O map 16 is created in advance based on the PLC control program 222A and the robot control program 222B.
[0084] Returning to FIG. 4, the generation unit 11 generates, based on one or more control programs 222 for controlling the production line 300, causal relationship information 12 indicating the causal relationships of multiple variables used in the one or more control programs 222.
[0085] The generation unit 11 may determine the causal relationship of multiple variables from the control program 222 using a known technique described in, for example, JP 2023-92184 A (Patent Document 2). For example, the generation unit 11 performs syntax analysis of the control program 222 and constructs an extracted syntax tree. The generation unit 11 extracts variables and operators including conditional branches and assignment operations from the extracted syntax tree. The generation unit 11 randomly selects conditional branches and tries the control program 222 to order the variables. This determines the causal relationship of multiple variables.
[0086] In the manufacturing system 1000 shown in FIG. 4, the one or more control programs 222 include a PLC control program 222A and a robot control program 222B. Therefore, the multiple variables used in the one or more control programs 222 include multiple variables used in the PLC control program 222A (hereinafter referred to as "multiple PLC-related variables") and multiple variables used in the robot control program 222B (hereinafter referred to as "multiple robot-related variables"). The multiple PLC-related variables are an example of the "multiple second variables" in the present disclosure. The multiple robot-related variables are an example of the "multiple third variables" in the present disclosure. The generation unit 11 generates causal relationship information 12 indicating the causal relationship between the multiple PLC-related variables and the multiple robot-related variables based on the PLC control program 222A, the robot control program 222B, and the I / O map 16.
[0087] Fig. 6 is a diagram for explaining a method for generating causal relationship information. The generating unit 11 determines the causal relationships of a plurality of PLC-related variables based on the PLC control program 222A. The graph 5a shown in Fig. 6 is created based on the causal relationships determined for the plurality of PLC-related variables, and has nodes 51 representing the plurality of PLC-related variables and edges 52 representing the causal relationships of the plurality of PLC-related variables.
[0088] The generation unit 11 determines the causal relationships of the multiple robot-related variables based on the robot control program 222B. The graph 5b shown in Fig. 6 is created based on the causal relationships determined for the multiple robot-related variables, and has nodes 51 representing the multiple robot-related variables and edges 52 representing the causal relationships of the multiple robot-related variables.
[0089] Furthermore, the generation unit 11 determines a causal relationship between a first linkage variable "PLC1.c" of the multiple PLC-related variables and a second linkage variable "robot1.x" of the multiple robot-related variables based on, for example, the I / O map 16 shown in Fig. 5. Specifically, the generation unit 11 determines the first linkage variable "PLC1.c" defined as an input in the I / O map 16 as an explanatory variable (cause). Furthermore, the generation unit 11 determines the second linkage variable "robot1.x" defined as an output in the I / O map 16 as an objective variable (result).
[0090] The generation unit 11 generates causal relationship information 12 indicating the determined causal relationship. The generation unit 11 stores the causal relationship information 12 in the storage unit 10.
[0091] Returning to FIG. 4, the first associating unit 13 associates link information 14 to the program portion 6 with each of the multiple variables. Specifically, the first associating unit 13 extracts the program portion 6 including each variable from the PLC control program 222A and the robot control program 222B. The first associating unit 13 generates link information 14 to the extracted program portion 6. The link information 14 is used to call the program portion 6. The first associating unit 13 associates the link information 14 generated for each variable with the variable. The first associating unit 13 stores the generated link information 14 in the storage unit 10. The link information 14 is stored in the storage unit 10 with identification information added to identify the associated variable.
[0092] The second associating unit 15 associates, with each of the multiple variables, a specific data set 7 related to each variable in a target period including the timing when an abnormality occurred in the production line 300 or a workpiece.
[0093] Specifically, the second associating unit 15 acquires the time series data sets 223A and 223B for the target period from the PLC 200A and the robot controller 200B. As described above, the time series data sets 223A and 223B indicate the values of each variable at each timing in the target period. The second associating unit 15 extracts, for a certain variable, first data indicating the value of the certain variable at each timing in the target period from the time series data sets 223A and 223B. The second associating unit 15 includes the extracted first data in the specific data set 7 related to the certain variable.
[0094] Furthermore, the second associating unit 15 acquires image data 431 for the target period from the NAS 43. The second associating unit 15 may include second data indicating a value of a feature amount of an image indicated by the image data 431 (hereinafter referred to as an "image feature amount") in the specific data set 7 related to a certain variable.
[0095] For example, when the image data 431 is input to a visual sensor that judges whether the appearance of the workpiece is good or bad, the second associating unit 15 generates second data indicating values of image features such as the size of a characteristic part of the workpiece. The second associating unit 15 associates a specific data set 7 including the second data with a variable output from the visual sensor (e.g., a variable indicating a judgment result).
[0096] Alternatively, when the image data 431 indicates an image (still image or video) of a processing machine included in the production line 300, the second associating unit 15 generates second data indicating a value of an image feature amount, such as the distance between the processing machine and the workpiece, from the image. The second associating unit 15 associates a specific data set 7 including the second data with variables collected from the processing machine.
[0097] The first definition information, which defines the procedure for generating the second data from the image data 431 and the variables to which the second data is associated, is created in response to a user input. The second association unit 15 generates the second data based on the first definition information and associates the generated second data with the variables.
[0098] Furthermore, the second associating unit 15 acquires the sound recording data 432 for the target period from the NAS 43. The second associating unit 15 may include third data indicating a value of a feature of a sound indicated by the sound recording data 432 (hereinafter referred to as a "sound feature") in the specific data set 7 related to a certain variable.
[0099] For example, if the audio recording data 432 indicates a sound emitted from a rotating mechanism included in the production line 300, the second associating unit 15 generates third data indicating a value of a sound feature quantity, such as a sound pressure of a frequency component corresponding to an abnormal sound of the rotating mechanism. The second associating unit 15 associates a specific data set 7 including the third data with the variables collected from the rotating mechanism.
[0100] The second definition information that defines the procedure for generating the third data from the sound recording data 432 and the variables to which the third data is associated is created in response to a user input. The second association unit 15 generates the third data based on the second definition information and associates the generated third data with the variables.
[0101] In this way, the second associating unit 15 generates a specific data set 7 for each variable and associates the generated specific data set 7 with each variable. The specific data set 7 includes a plurality of unit data corresponding to a plurality of timings within the target period. The plurality of unit data are composed of the above-mentioned first data, second data, or third data. The second associating unit 15 stores the generated specific data set 7 in the memory unit 10. The specific data set 7 is stored in the memory unit 10 with identification information added to identify the associated variable.
[0102] The one or more editing tools 18 have a function of editing one or more control programs 222. In the manufacturing system 1000 shown in Fig. 4, the one or more control programs 222 include a PLC control program 222A created using a ladder language and a robot control program 222B created using a G code. Therefore, the one or more editing tools 18 include at least an editing tool 18A for editing the control program using the ladder language and an editing tool 18B for editing the control program using the G code.
[0103] The output unit 17 outputs screen data showing the analysis screen. The output unit 17 includes a change amount calculation unit 17a, a contribution degree calculation unit 17b, a graph visualization unit 17c, a program visualization unit 17d, and an editing tool calling unit 17e.
[0104] The change amount calculation unit 17a calculates, for each variable, the amount of change before and after the abnormality in the associated specific data set 7. The change amount calculation unit 17a may calculate the amount of change in a value indicated by a second unit data at a timing after the occurrence of the abnormality relative to a value indicated by a first unit data at a timing before the occurrence of the abnormality, among a plurality of unit data included in the specific data set 7.
[0105] The change amount calculation unit 17a may calculate the change amount using any one of the first to third data included in the specific data set 7. For example, when the specific data set 7 includes the first data, the change amount calculation unit 17a may calculate a first change amount of the value of the variable at a timing after the occurrence of the abnormality with respect to the value of the variable at a timing before the occurrence of the abnormality. The first change amount is, for example, a quotient obtained by dividing the value of the variable at a timing after the occurrence of the abnormality by the value of the variable at a timing before the occurrence of the abnormality.
[0106] When the specific data set 7 includes the second data, the change amount calculation unit 17a may calculate a second change amount of the image feature amount at a timing after the occurrence of the abnormality with respect to the value of the image feature amount at a timing before the occurrence of the abnormality. The second change amount is, for example, a quotient obtained by dividing the value of the image feature amount at a timing after the occurrence of the abnormality by the value of the image feature amount at a timing before the occurrence of the abnormality.
[0107] When the specific data set 7 includes the third data, the change amount calculation unit 17a may calculate a third change amount of the sound feature amount at a timing after the occurrence of the abnormality with respect to the sound feature amount at a timing before the occurrence of the abnormality. The third change amount is, for example, a quotient obtained by dividing the sound feature amount at a timing after the occurrence of the abnormality by the sound feature amount at a timing before the occurrence of the abnormality.
[0108] When the change amount calculation section 17a calculates two or more of the first to third change amounts, the change amount calculation section 17a may calculate a representative value (for example, an average value or a maximum value) of the two or more change amounts as a fourth change amount.
[0109] The contribution degree calculation unit 17b calculates the contribution degree to the abnormality for each of the multiple variables. As a method of calculating the contribution degree, for example, a method of calculating a contribution rate described in Patent Document 2 may be adopted. Specifically, the contribution degree calculation unit 17b stores in advance a data group indicating a normal range for the multiple variables. In a multidimensional space according to the number of the multiple variables, the contribution degree calculation unit 17b calculates the contribution degree of each variable to the abnormality according to the direction of a vector whose starting point is the center point of the data group indicating the normal range and whose ending point is a point corresponding to the values of the multiple variables when the abnormality occurs. For example, the contribution degree calculation unit 17b calculates the contribution degree of each variable based on the magnitude of the axis component corresponding to each variable of the vector. In addition to the above method, the contribution degree calculation unit 17b may calculate the contribution degree of each variable to the abnormality by using the importance of a decision tree (or a random forest).
[0110] The graph visualization unit 17c extracts a plurality of anomaly-related variables related to anomalies from among the plurality of variables based on the specific data set 7 associated with each variable. The plurality of anomaly-related variables correspond to the "plurality of first variables" in the present disclosure. The graph visualization unit 17c creates a graph having a plurality of nodes representing the plurality of anomaly-related variables and edges representing the causal relationships of the plurality of anomaly-related variables based on the causal relationship information 12. The graph visualization unit 17c includes the created graph in the analysis screen.
[0111] The graph visualization unit 17c may extract, from among the multiple variables, variables having a relatively large amount of change before and after the abnormality in the associated specific data set 7 as the multiple anomaly-related variables. For example, the graph visualization unit 17c extracts, from among the multiple variables, variables having an amount of change before and after the abnormality in the associated specific data set 7 that exceeds a predetermined threshold as the multiple anomaly-related variables. Alternatively, the graph visualization unit 17c may extract, from among the multiple variables, a predetermined number of variables having a top amount of change before and after the abnormality in the associated specific data set 7 as the multiple anomaly-related variables. The graph visualization unit 17c may extract the multiple anomaly-related variables from among the multiple variables by using any one of the first to fourth amounts of change.
[0112] Fig. 7 is a diagram showing an example of a graph showing the causal relationship of all variables. Fig. 8 is a diagram showing an example of a graph showing the causal relationship of multiple anomaly-related variables with relatively large changes before and after an anomaly in an associated specific data set. As shown in Figs. 7 and 8, the variables related to anomalies are narrowed down, making it easier for a user to identify the variable that causes the anomaly.
[0113] The graph visualization unit 17c may extract, as the multiple anomaly-related variables, variables whose contributions calculated by the contribution calculation unit 17b are greater than a threshold value among the multiple variables. The threshold value may be set according to a display level designated by a user. For example, the graph visualization unit 17c sets a threshold value Th1 when a display level "high" is designated, sets a threshold value Th2 (<threshold value Th1) when a display level "medium" is designated, and sets a threshold value Th3 (<threshold value Th2) when a display level "low" is designated.
[0114] The thresholds Th1 to Th3 are fixed values. Alternatively, the thresholds Th1 to Th3 may be automatically determined according to the contribution degree calculated for each of the multiple variables. For example, the threshold Th1 is automatically determined so that the number of variables whose contribution degree exceeds the threshold Th1 is a predetermined number (e.g., 10) or a predetermined percentage (e.g., 30%).
[0115] Alternatively, the graph visualization unit 17c may extract, from among the multiple variables, variables whose change amount before and after the abnormality in the associated specific data set 7 is relatively large and whose contribution calculated by the contribution calculation unit 17b is greater than a threshold value, as multiple abnormality-related variables.
[0116] Returning to FIG. 4, the program visualization unit 17d accepts a selection operation for a plurality of nodes in the graph included in the analysis screen. The program visualization unit 17d includes one or more display target program parts in the analysis screen according to the selected node. The selected node corresponds to the "first node" of the present disclosure. The one or more display target program parts include at least a program part indicated by the link information 14 associated with a variable corresponding to the selected node among the plurality of anomaly-related variables. Furthermore, the one or more display target program parts may include a program part corresponding to one or more nodes (hereinafter referred to as "one or more connection nodes") connected to the selected node via an edge. That is, the one or more display target program parts may include a program part indicated by the link information 14 associated with a variable corresponding to each of the one or more connection nodes among the plurality of anomaly-related variables.
[0117] The editing tool calling unit 17e receives a designation of a program portion to be edited among one or more program portions to be displayed. The editing tool calling unit 17e calls a target editing tool for editing the program portion to be edited among one or more editing tools 18. For example, when the program portion to be edited is a part of the PLC control program 222A, the editing tool calling unit 17e calls an editing tool 18A for editing a control program using a ladder language. When the program portion to be edited is a part of the robot control program 222B, the editing tool calling unit 17e calls an editing tool 18B for editing a control program using a G code. This allows the user to edit the program portion to be edited using the target editing tool.
[0118] <Preparation process flow for generating analysis screen> FIG. 9 is a flowchart showing the flow of preparation processing for generating an analysis screen in the analysis device.
[0119] In step S1, CPU 110 of analysis device 100 acquires time-series data sets 223A and 223B, image data 431, and audio recording data 432 for a target period including the timing at which an abnormality occurred on production line 300 or a workpiece.
[0120] In step S2 following step S1, the CPU 110 digitizes or characterizes the time series data sets 223A and 223B, and characterizes the image data 431 and the sound recording data 432. Specifically, the CPU 110 digitizes the data included in the time series data sets 223A and 223B. For example, the CPU 110 digitizes data of a data type other than an integer type or a decimal type among the data included in the time series data sets 223A and 223B. The CPU 110 may also calculate a feature amount (e.g., an average value, a standard deviation, a maximum value, a minimum value, or a median value) of the value indicated by the time series data sets 223A and 223B. The CPU 110 calculates the value of the image feature amount at each timing of the target period based on the image indicated by the image data 431. The image feature amount may indicate, for example, an RGB value. Furthermore, the CPU 110 calculates the value of the sound feature amount at each timing of the target period based on the sound indicated by the sound recording data 432. The sound feature amount is obtained, for example, by quantizing the sound feature amount.
[0121] In parallel with steps S1 and S2, the CPU 110 performs the processes of steps S3 to S5. In step S3, the CPU 110 determines the causal relationships of a plurality of variables used in each of the one or more control programs 222.
[0122] In step S4, the CPU 110 associates, with each variable, link information 14 to a program portion of one or more control programs 222 that uses the variable.
[0123] In step S5, the CPU 110 determines the causal relationship between the linked variables based on the I / O map 16. The CPU 110 executes steps S3 and S5 to generate causal relationship information 12 indicating the causal relationship between multiple variables used in one or more control programs 222.
[0124] When the parallel processing of steps S1, S2 and steps S3 to S5 is completed, in step S6, the CPU 110 generates a specific data set 7 for each variable, and associates the generated specific data set 7 with each variable.
[0125] In step S7, CPU 110 calculates, for each variable, the amount of change before and after the occurrence of an abnormality in the value indicated by the associated specific data set 7. Specifically, CPU 110 calculates the amount of change in the value indicated by the second unit data at the timing after the occurrence of the abnormality relative to the value indicated by the first unit data at the timing before the occurrence of the abnormality.
[0126] In step S8, the CPU 110 calculates the contribution of each variable to the abnormality. In step S9, the CPU 110 determines thresholds for each display level (for example, thresholds Th1 to Th3 corresponding to the display levels "high", "medium", and "low", respectively) based on the contribution of each variable to the abnormality. After step S9, the preparation process for generating the analysis screen ends.
[0127] <Flow of analysis screen generation process> FIG. 10 is a flowchart showing an example of the flow of an analysis screen output process in the analysis device.
[0128] In step S11, the CPU 110 generates an analysis screen including a graph corresponding to a display level designated by the user, and outputs screen data showing the generated analysis screen.
[0129] Specifically, the CPU 110 extracts, from among the multiple variables, variables whose corresponding change amounts are relatively large and whose contribution degrees are greater than a threshold value corresponding to a specified display level as multiple anomaly-related variables. The CPU 110 creates a graph (causal relationship graph) having multiple nodes corresponding to the multiple anomaly-related variables and edges representing causal relationships between the multiple anomaly-related variables. The CPU 110 generates an analysis screen including the created graph.
[0130] In step S12, which follows step S11, the CPU 110 determines whether or not a node has been selected in the graph.
[0131] If a node has been selected (YES in step S12), in step S13, CPU 110 causes one or more program parts to be displayed to be included in the analysis screen according to the selected node.
[0132] In step S14 following step S13, CPU 110 determines whether or not designation of a program portion to be edited from among one or more program portions to be displayed has been accepted.
[0133] When the designation of the program portion to be edited is accepted (YES in step S14), in step S15, CPU 110 calls a target editing tool from one or more editing tools 18 for editing the program portion to be edited.
[0134] In step S16, which follows step S15, the CPU 110 edits the program portion to be edited in accordance with user input.
[0135] In step S17, which follows step S16, CPU 110 updates the analysis screen so as to visually display the difference between the program portion to be edited before and after editing by the target editing tool.
[0136] After step S17, the process proceeds to step S18. If no node is selected (NO in step S12) or if the designation of the program portion to be edited is not accepted (NO in step S14), the process also proceeds to step S18. In step S18, CPU 110 determines whether or not an end instruction has been received.
[0137] If an end instruction has not been received (NO in step S18), in step S19, CPU 110 determines whether or not an instruction to change the display level has been received.
[0138] If an instruction to change the display level has been received (YES in step S19), the process returns to step S11, whereby the analysis screen is updated to include a graph corresponding to the changed display level.
[0139] If an instruction to change the display level has not been received (NO in step S19), the process returns to step S12.
[0140] <Example of analysis screen> Fig. 11 is a diagram showing an example of an analysis screen when a display level "low" is specified. Fig. 12 is a diagram showing an example of an analysis screen when a display level "high" is specified.
[0141] The analysis screen 70 shown in FIGS. 11 and 12 includes an input field 71, an area 72, a cursor 73, and a button 74.
[0142] The input field 71 is used to select a display level. When the input field 71 is operated, the CPU 110 displays a drop-down list showing a list of display levels and prompts the user to select a display level.
[0143] The area 72 is used to display a graph corresponding to the display level input in the input field 71. The CPU 110 creates a graph corresponding to the display level, and places the created graph in the area 72.
[0144] Graph 5c shown in FIG. 11 corresponds to the display level "low" and has nodes 51a to 51g and edges 52a to 52f. Nodes 51a to 51g correspond to variables (abnormality-related variables) "PLC1.a1", "PLC1.x_servo_ctrl", "PLC1.b", "PLC1.c", "PLC1.y_servo_ctrl", "robot1.x", and "robot1.hand_ctrl" whose contributions calculated in step S8 are greater than threshold value Th3 corresponding to the display level "low", respectively. Edge 52a represents the causal relationship between variable "PLC1.a1" corresponding to node 51a and variable "PLC1.x_servo_ctrl" corresponding to node 51b. Edge 52b represents the causal relationship between variable "PLC1.x_servo_ctrl" corresponding to node 51b and variable "PLC1.b" corresponding to node 51c. Edge 52c represents a causal relationship between the variable "PLC1.b" corresponding to node 51c and the variable "PLC1 c" corresponding to node 51d. Edge 52d represents a causal relationship between the variable "PLC1 c" corresponding to node 51d and the variable "PLC1.y_servo_ctrl" corresponding to node 51e. Edge 52e represents a causal relationship between the variable "PLC1 c" corresponding to node 51d and the variable "robot1.x" corresponding to node 51f. Edge 52f represents a causal relationship between the variable "robot1.x" corresponding to node 51f and the variable "robot1.hand_ctrl" corresponding to node 51g.
[0145] Graph 5d shown in FIG. 12 corresponds to the display level "high". As described above, threshold value Th1 corresponding to the display level "high" is greater than threshold value Th3 corresponding to the display level "low". Therefore, as shown in FIG. 11 and FIG. 12, the number of nodes in graph 5d is smaller than the number of nodes in graph 5c. Specifically, graph 5d has nodes 51a, 51b, 51e to 51g and edges 52a, 52f to 52h. That is, since the contribution of variables "PLC1.b" and "PLC1.c" to the abnormality is equal to or less than threshold value Th1, nodes 51c and 51d corresponding to variables "PLC1.b" and "PLC1.c" are omitted in graph 5d.
[0146] As shown in Fig. 11, node 51b is indirectly connected to node 51e via edge 52b, node 51c, edge 52c, node 51d, and edge 52d. Therefore, CPU 110 connects node 51b and node 51e with edge 52g in graph 5d shown in Fig. 12. CPU 110 determines the direction of edge 52g based on the directions of edges 52b, 52c, and 52d shown in Fig. 11.
[0147] Similarly, as shown in Fig. 11, node 51b is indirectly connected to node 51f via edge 52b, node 51c, edge 52c, node 51d, and edge 52e. Therefore, CPU 110 connects node 51b and node 51f by edge 52h in graph 5d shown in Fig. 12. CPU 110 determines the direction of edge 52h based on the directions of edges 52b, 52c, and 52e shown in Fig. 11.
[0148] The cursor 73 is used to select a node. In the analysis screen 70 shown in FIG. 11, the cursor 73 is placed on the node 51d. Therefore, the CPU 110 determines that the node 51d has been selected. As a result, the CPU 110 includes the program portion 6d indicated by the link information 14 associated with the variable "PLC1 c" corresponding to the node 51d in the analysis screen 70. Furthermore, the CPU 110 also includes the program portions 6c, 6e, and 6f indicated by the link information 14 associated with the variables "PLC1.b", "PLC1.y_servo_ctrl", and "robot1.x" corresponding to the nodes 51c, 51e, and 51f connected to the node 51d in the analysis screen 70. The PLC control program 222A is created using a ladder language. Therefore, the program portions 6c to 6e indicate the ladder language. On the other hand, the robot control program 222B is created using a G code. Therefore, the program portion 6f indicates the G code.
[0149] On the analysis screen 70, the program portion is displayed in a form according to the value of the variable at the timing when the abnormality occurs. The value of the variable at the timing when the abnormality occurs is indicated by the specific data set 7 associated with the variable. For example, if the values of the variables "PLC1.a1" and "PLC1.b" are in the ON state at the timing when the abnormality occurs, the program portion 6b is displayed in a form indicating that the variables "PLC1.a1" and "PLC1.b" are in the ON state, as shown in Figs. 11 and 12.
[0150] 12, the cursor 73 is placed over the node 51b. Therefore, the CPU 110 determines that the node 51b has been selected. As a result, the CPU 110 includes in the analysis screen 70 the program portion 6b indicated by the link information 14 associated with the variable "PLC1.x_servo_ctrl" corresponding to the node 51b. Furthermore, the CPU 110 also includes in the analysis screen 70 the program portions 6a, 6e, and 6f indicated by the link information 14 associated with the variables "PLC1.a1," "PLC1.y_servo_ctrl," and "robot1.x," which correspond to the nodes 51a, 51e, and 51f connected to the node 51b.
[0151] When CPU 110 receives a designation of one or more program portions to be displayed on analysis screen 70, it determines the designated program portion as the program portion to be edited.
[0152] The button 74 is used to end the display of the analysis screen 70. When the button 74 is operated, the CPU 110 determines that an end instruction has been received.
[0153] FIG. 13 is a diagram showing an example of an analysis screen when a program portion to be edited is edited. FIG. 13 shows an analysis screen 70 when a program portion 6f indicated by the link information 14 associated with the variable "robot 1.x" corresponding to the node 51f is edited. As shown in FIG. 13, when the program portion 6f is edited, the CPU 110 updates the analysis screen 70 so as to visually display the difference before and after the edit. Specifically, the CPU 110 includes the program portion 6f_1 before the edit and the program portion 6f_2 after the edit in the analysis screen 70. Furthermore, the CPU 110 highlights the edited portions in the program portions 6f_1 and 6f_2. In addition, the CPU 110 may display the edited text in bold.
[0154] <Variation 1> In the above description, the CPU 110 includes one or more display target program parts in the analysis screen according to the selected node. Furthermore, the CPU 110 may visualize, on the analysis screen, the transition of values of variables corresponding to each of the selected node and one or more connection nodes during a target period. The CPU 110 may visualize the transition by using a specific data set 7 associated with the variable.
[0155] <Variation 2> In the above description, the controller 200 is assumed to record the time series data set 223 of the target period including the timing when an abnormality occurs in the production line 300 or the work. Furthermore, the monitoring system 400 is assumed to record the image data and the audio recording data of the target period. However, the controller 200 may always output IO data to the analysis device 100 regardless of whether an abnormality occurs in the production line 300 or the work. In this way, the analysis device 100 holds IO data for a certain period in the past. The analysis device 100 may extract the time series data set 223 of the target period including the timing when an abnormality occurs in the production line 300 or the work from the held IO data. Similarly, the monitoring system 400 may always output image data and audio recording data to the analysis device 100 regardless of whether an abnormality occurs in the production line 300 or the work. In this way, the analysis device 100 holds image data and audio recording data of a certain period in the past. The analysis device 100 may extract image data and audio recording data of the target period including the timing when an abnormality occurs in the production line 300 or the work from the held image data and audio recording data.
[0156] For example, CPU 110 of analysis device 100 determines the target period based on manufacturing history information indicating the manufacturing time of each workpiece in manufacturing line 300 and inspection result information indicating the inspection result of the workpiece in the subsequent process of manufacturing line 300. The manufacturing history information is generated by, for example, a Manufacturing Execution System (MES). Specifically, CPU 110 identifies a workpiece in which an abnormality has occurred based on the inspection result information. CPU 110 determines the manufacturing time of the identified workpiece as the timing at which the abnormality occurred based on the manufacturing history information, and determines the period including that timing as the target period.
[0157] Alternatively, CPU 110 may receive from the user a specification of the timing at which an abnormality occurred in production line 300 or a work. In this case, CPU 110 determines a period including the specified timing as the target period. In this case, the user can specify the timing at which the abnormality occurred by checking the recorded image data or audio data.
[0158] <Modification 3> In the above description, analysis device 100 is a device different from controller 200. However, analysis device 100 may be integrated with controller 200. Specifically, analysis device 100 may be realized by an industrial PC including the functions of controller 200.
[0159] <Variation 4> An embodiment is also possible in which a general-purpose computer functions as the analysis device 100 according to the above-described embodiment. Specifically, an analysis program 116 describing the processing contents for realizing each function of the analysis device 100 according to the above-described embodiment is stored in the memory of the general-purpose computer, and the analysis program 116 is read and executed by a processor. Therefore, the invention according to this embodiment can also be realized as the analysis program 116 executable by a processor, or a non-transitory computer-readable medium that stores the analysis program 116.
[0160] §3 Supplementary Note As described above, the present embodiment includes the following disclosure.
[0161] (Configuration 1) An analysis device (100), A generation unit (11, 110) that generates, based on one or more programs (222, 222A, 222B) for controlling a control target (300), causal relationship information (12) indicating causal relationships between a plurality of variables used in the one or more programs (222, 222A, 222B); a first associating unit (13, 110) that associates, with each of the plurality of variables, link information (14) to a program portion (6) that uses each of the variables among the one or more programs (222, 222A, 222B); and a second associating unit (15, 110) that associates, for each of the variables, a specific data set (7) for the each of the variables during a target period that includes a timing when an abnormality occurs in the controlled object (300) or an object processed by the controlled object (300).
[0162] (Configuration 2) An output unit (17, 110) for outputting screen data showing an analysis screen (70), The output unit (17, 110) Extracting a plurality of first variables associated with the anomaly from among the plurality of variables based on the specific data set (7); creating a graph (5c, 5d) having a plurality of nodes (51a to 51g) representing the plurality of first variables and edges (52a to 52h) representing the causal relationships of the plurality of first variables based on the causal relationship information (12); 2. The analysis device (100) according to configuration 1, wherein the analysis screen (70) includes the graphs (5c, 5d).
[0163] (Configuration 3) The output unit (17, 110) Accepting a selection operation for the plurality of nodes; one or more program parts (6a to 6f) to be displayed are included in the analysis screen (70) according to the selected first node (51b, 51d); The one or more program portions (6a to 6f) to be displayed include a program portion (6b, 6d) indicated by the link information (14) associated with a variable corresponding to the first node among the plurality of first variables.
[0164] (Configuration 4) the graph (5c, 5d) includes one or more second nodes (51a, 51c, 51e, 51f) connected to the first node (51b, 51d) via the edge, The one or more program portions (6a to 6f) to be displayed include program portions (6a, 6c, 6e, 6f) indicated by the link information (14) associated with variables corresponding to each of the one or more second nodes (51a, 51c, 51e, 51f) among the plurality of first variables.
[0165] (Configuration 5) The specific data set (7) includes first data indicating values of associated variables among the plurality of variables; The analysis device (100) according to configuration 3 or 4, wherein, on the analysis screen (70), the one or more display target program portions (6a to 6f) are displayed in a form corresponding to a value indicated by the first data at the timing when the abnormality occurred.
[0166] (Configuration 6) one or more editing tools (18, 18A, 18B) for editing the one or more programs (222, 222A, 222B); The output unit (17, 110) A program portion (6f) to be edited is designated among the one or more program portions (6a to 6f) to be displayed, The analysis device (100) according to any one of configurations 3 to 5, which calls a target editing tool for editing the program portion (6f) to be edited, out of the one or more editing tools (18, 18A, 18B).
[0167] (Configuration 7) The analysis device (100) according to configuration 6, wherein the analysis screen (70) visually displays a difference between before and after editing of the program portion (6f) to be edited by the target editing tool.
[0168] (Configuration 8) The one or more programs (222, 222A, 222B) include a first program (222A) and a second program (222B), The plurality of variables include a plurality of second variables used in the first program (222A) and a plurality of third variables used in the second program (222B), The generation unit (11, 110) determining a causal relationship of the plurality of second variables based on the first program (222A); determining a causal relationship of the plurality of third variables based on the second program (222B); The analysis device (100) according to any one of configurations 1 to 7, which determines a causal relationship between a first linked variable and a second linked variable based on a map (16) that defines an input / output relationship between a first linked variable among the plurality of second variables and a second linked variable among the plurality of third variables.
[0169] (Configuration 9) The specific data set (7) includes a plurality of unit data corresponding to a plurality of timings within the target period, The output unit (17, 110) Calculating an amount of change in a value indicated by a second unit data among the plurality of unit data at a timing after the occurrence of the abnormality relative to a value indicated by a first unit data among the plurality of unit data at a timing before the occurrence of the abnormality, for each of the plurality of variables; The analysis device (100) according to any one of configurations 2 to 7, wherein variables having a relatively large amount of change among the plurality of variables are extracted as the plurality of first variables.
[0170] (Configuration 10) The output unit (17, 110) Calculating a contribution of each of the plurality of variables to the anomaly; The analysis device (100) according to any one of configurations 2 to 7, wherein variables whose contribution degree is greater than a threshold value are extracted as the plurality of first variables from among the plurality of variables.
[0171] (Configuration 11) The specific data set (7) includes a plurality of unit data corresponding to a plurality of timings within the target period, The output unit (17, 110) Calculating an amount of change in a value indicated by a second unit data among the plurality of unit data at a timing after the occurrence of the abnormality relative to a value indicated by a first unit data among the plurality of unit data at a timing before the occurrence of the abnormality, for each of the plurality of variables; Calculating a contribution of each of the plurality of variables to the anomaly; The analysis device (100) according to any one of configurations 2 to 7, extracting, from the plurality of variables, variables in which the amount of change is relatively large and the degree of contribution is greater than a threshold value as the plurality of first variables.
[0172] (Configuration 12) The analysis device (100) according to any one of configurations 1 to 11, wherein the specific data set (7) includes at least one of second data indicating a value of a feature of an image obtained by photographing the control object, and third data indicating a value of a feature extracted from a sound emitted from the control object or from around the control object.
[0173] (Configuration 13) 1. A method of analysis comprising: one or more processors (110) generate, based on one or more programs (222, 222A, 222B) for controlling a control target, causal relationship information (12) indicating a causal relationship between a plurality of variables used in the one or more programs (222, 222A, 222B); the one or more processors (110) associating, with each of the plurality of variables, link information (14) to a program portion (6) that uses each of the variables among the one or more programs (222, 222A, 222B); and associating, by the one or more processors (110), with each of the variables, a specific data set (7) for the variable over a time period of interest that includes a timing at which an anomaly occurs in the controlled object (300) or an object processed by the controlled object (300).
[0174] (Configuration 14) A program for causing a computer to execute an analysis method, The analysis method includes: generating, based on one or more programs (222, 222A, 222B) for controlling a control target, causal relationship information (12) indicating causal relationships among a plurality of variables used in the one or more programs (222, 222A, 222B); Associating, with each of the plurality of variables, link information (14) to a program portion (6) that uses each of the variables among the one or more programs (222, 222A, 222B); and associating, for each of the variables, a specific data set (7) relating to the variable during a period of interest that includes a timing at which an anomaly occurs in the controlled object (300) or an object processed by the controlled object (300).
[0175] Although the embodiment of the present invention has been described, the embodiment disclosed herein should be considered as illustrative and not restrictive in all respects. The scope of the present invention is defined by the claims, and it is intended to include all modifications within the meaning and scope of the claims. [Explanation of symbols]
[0176] 5c, 5d graph, 6a to 6f, 6f_1, 6f_2 program part, 7 specific data set, 10 memory unit, 11 generation unit, 12 causal relationship information, 13 first association unit, 14 link information, 15 second association unit, 16 I / O map, 17 output unit, 17a change amount calculation unit, 17b contribution degree calculation unit, 17c graph visualization unit, 17d program visualization unit, 17e editing tool call unit, 18, 18A, 18B editing tool, 21A, 21B collection unit, 31 equipment, 41 camera, 42 microphone, 43 network attached storage (NAS), 51a to 51g node, 52a to 52h edge, 70 analysis screen, 100 analysis device, 116 analysis program, 200 controller, 200A PLC, 200B robot controller, 222 Control program, 222A PLC control program, 222B Robot control program, 223, 223A, 223B Time series data set, 300 Manufacturing line, 400 Monitoring system, 431 Image data, 432 Audio recording data, 500 Storage medium, 1000 Manufacturing system.
Claims
1. An analysis device, comprising: a generation unit that generates, based on one or more programs for controlling a control target, causal relationship information indicating a causal relationship between a plurality of variables used in the one or more programs; a first associating unit that associates, with each of the plurality of variables, link information to a program portion that uses each of the variables among the one or more programs; and a second associating unit that associates, for each of the variables, a specific data set related to the each of the variables during a target period that includes a timing at which an abnormality occurs in the controlled object or an object processed by the controlled object.
2. An output unit that outputs screen data showing an analysis screen, The output unit is Extracting a plurality of first variables associated with the anomaly from among the plurality of variables based on the specific data set; creating a graph having a plurality of nodes representing the plurality of first variables and edges representing the causal relationships of the plurality of first variables based on the causal relationship information; The analysis device according to claim 1 , wherein the analysis screen includes the graph.
3. The output unit is Accepting a selection operation for the plurality of nodes; including one or more program portions to be displayed on the analysis screen in response to the selected first node; The analysis device according to claim 2 , wherein the one or more program portions to be displayed include a program portion indicated by the link information associated with a variable corresponding to the first node among the plurality of first variables.
4. the graph includes one or more second nodes connected to the first node via the edges; The analysis device according to claim 3 , wherein the one or more program portions to be displayed include a program portion indicated by the link information associated with a variable among the plurality of first variables corresponding to each of the one or more second nodes.
5. the particular data set includes first data indicative of values of associated variables of the plurality of variables; 5 . The analysis device according to claim 3 , wherein on the analysis screen, the one or more program portions to be displayed are displayed in a form corresponding to a value indicated by the first data at a timing when the abnormality occurred.
6. one or more editing tools for editing the one or more programs; The output unit is receiving a designation of a program portion to be edited from among the one or more program portions to be displayed; The analysis device according to claim 3 , further comprising: a target editing tool for editing the program portion to be edited, out of the one or more editing tools, being invoked.
7. The analysis device according to claim 6 , wherein the analysis screen visually displays a difference between before and after editing of the program portion to be edited by the target editing tool.
8. the one or more programs include a first program and a second program; the plurality of variables includes a plurality of second variables used in the first program and a plurality of third variables used in the second program; The generation unit is determining a causal relationship of the plurality of second variables based on the first program; determining a causal relationship of the plurality of third variables based on the second program; 2. The analysis device according to claim 1, further comprising: a map defining an input / output relationship between a first linked variable among the plurality of second variables and a second linked variable among the plurality of third variables, the causal relationship between the first linked variable and the second linked variable being determined based on the map defining an input / output relationship between the first linked variable and the second linked variable among the plurality of third variables.
9. The specific data set includes a plurality of unit data corresponding to a plurality of timings within the target period, The output unit is Calculating an amount of change in a value indicated by a second unit data among the plurality of unit data at a timing after the occurrence of the abnormality relative to a value indicated by a first unit data among the plurality of unit data at a timing before the occurrence of the abnormality, for each of the plurality of variables; The analysis device according to claim 2 , wherein variables having a relatively large amount of change among the plurality of variables are extracted as the plurality of first variables.
10. The output unit is Calculating a contribution of each of the plurality of variables to the anomaly; The analysis device according to claim 2 , wherein variables having the contribution rate greater than a threshold value among the plurality of variables are extracted as the plurality of first variables.
11. The specific data set includes a plurality of unit data corresponding to a plurality of timings within the target period, The output unit is Calculating an amount of change in a value indicated by a second unit data among the plurality of unit data at a timing after the occurrence of the abnormality relative to a value indicated by a first unit data among the plurality of unit data at a timing before the occurrence of the abnormality, for each of the plurality of variables; Calculating a contribution of each of the plurality of variables to the anomaly; The analysis device according to claim 2 , wherein variables in which the amount of change is relatively large and the degree of contribution is greater than a threshold value are extracted as the first variables from among the plurality of variables.
12. The analysis device according to claim 1, claim 2, claim 9 or claim 11, wherein the specific data set includes at least one of second data indicating values of features of an image obtained by photographing the control object and third data indicating values of features extracted from sounds emitted from the control object or from around the control object.
13. 1. A method of analysis comprising: generating, by one or more processors, causal relationship information indicating a causal relationship between a plurality of variables used in one or more programs for controlling a control target; the one or more processors associating, with each of the plurality of variables, link information to a program portion of the one or more programs that uses the each variable; and associating, by the one or more processors, for each of the variables, a specific data set for the variable over a time period of interest that includes a timing when an anomaly occurs in the controlled object or an object processed by the controlled object.
14. A program for causing a computer to execute an analysis method, The analysis method includes: generating, based on one or more programs for controlling a control target, causal relationship information indicating a causal relationship between a plurality of variables used in the one or more programs; Associating link information with each of the plurality of variables to a program portion of the one or more programs that uses the variable; and associating for each of the variables a specific data set relating to the variable over a time period of interest that includes a timing at which an anomaly occurs in the controlled object or an object processed by the controlled object.
Citation Information
Patent Citations
Engineering tool for programmable logic controller
JP2020013528A
Information processor and information processing method and information processing program
JP2023092184A