Control device, machine learning device and control method

By designing a control device in a CNC device, providing conversion diagram display, option generation and change information output functions, it solves the problem of task allocation complexity and difficulty in adjusting by non-experts, and achieves optimization of processing performance.

CN114981741BActive Publication Date: 2025-05-09MITSUBISHI ELECTRIC CORP
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202080093654.7
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2020-01-31
Publication Date
2025-05-09
Estimated Expiration
2040-01-31

AI Technical Summary

Technical Problem

The task allocation method of existing CNC devices is complex and difficult to adjust by non-parallel programming experts, resulting in difficult processing performance optimization.

Method used

A control device is designed to help users confirm and adjust the allocation status of tasks to the calculation unit through the conversion diagram display unit, the option generation unit, the input reception unit and the change information output unit to generate a suitable allocation change method.

Benefits of technology

Even non-parallel programming experts can easily confirm and adjust the task allocation status, improving the processing performance of CNC devices.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114981741B_ABST
    Figure CN114981741B_ABST
Patent Text Reader

Abstract

A control device (10A) determines a method for allocating tasks of a numerical control device (1), wherein the numerical control device (1) allocates tasks constituting software to a plurality of computing units to execute the tasks. The control device (10A) is characterized in that it comprises: a transition diagram display unit (111) which displays a transition diagram representing the execution status of each of the tasks of the plurality of computing units in a time series based on log data obtained from the numerical control device (1) and including information determining the computing units that executed the tasks in the past and the timing at which the tasks were executed in the past; an option generation unit (14) which generates options for a method for changing the allocation status of the tasks displayed on the transition diagram based on restrictions imposed on the software; an input receiving unit (12) which receives input information representing an option selected from the generated options; and a change information output unit (16) which outputs change information for changing the allocation status of the tasks according to the option indicated in the input information.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present invention relates to a control device, a machine learning device, and a control method for allocating tasks constituting software for controlling the operation of a numerical control device to a plurality of computing units and determining an allocation method for the tasks of the numerical control device to be executed. Background Art

[0002] In recent years, the functions required of numerical control devices for controlling machine tools have become more diverse and sophisticated, and the required processing performance has also increased. One method for improving the processing performance of numerical control devices is to use hardware with multiple computing units to execute the processing of the numerical control device in parallel. In a numerical control device with multiple computing units, the processing performance changes according to the allocation status of the processing unit, i.e., the task, to the computing unit to be executed in parallel. Therefore, it is important to control the allocation status of the task to the computing unit in order to improve the processing performance of the numerical control device.

[0003] Patent Document 1 discloses a method of controlling the allocation of tasks to computing units based on machining conditions set in a machine tool using machine learning in a numerical control device having a plurality of computing units.

[0004] Patent Document 1: Japanese Patent Application Publication No. 2019-003271 Summary of the invention

[0005] However, according to the technology disclosed in Patent Document 1, there is a problem that it is difficult for a person who does not have specialized knowledge of parallel programming to make adjustments while checking the allocation status of tasks to the computing units.

[0006] In the software of the numerical control device developed so far based on the execution of a single operation unit, there are various restrictions in order to allocate the tasks constituting the software to the multiple operation units. For example, in the case where the execution result of the first task needs to be used in the second task, the first task and the second task cannot be parallelized. In addition, in the case where the first task and the second task need to access the same memory area, the first task and the second task cannot be parallelized. As described above, there are restrictions that should be considered when performing parallel programming, so it is difficult for people who do not have specialized knowledge of parallel programming to adjust the allocation status of tasks to the operation units.

[0007] The present invention has been made to solve the above-mentioned problems, and an object of the present invention is to provide a control device that allows even a person without specialized knowledge of parallel programming to easily check and adjust the state of assignment of tasks to computing units.

[0008] In order to solve the above-mentioned problems and achieve the purpose, the control device involved in the present invention determines a method for allocating tasks of a numerical control device, which allocates tasks constituting software to multiple operation units respectively to execute the tasks. The control device is characterized in that it has: a transition diagram display unit, which displays a transition diagram representing the execution status of each task of multiple operation units in a time series based on log data obtained from the numerical control device, including information determining the operation units that executed tasks in the past and the timing of executing tasks in the past; an option generation unit, which generates options for a method of changing the allocation status of the tasks displayed on the transition diagram based on the limitations imposed on the software; an input receiving unit, which receives input information representing an option selected from the generated options; and a change information output unit, which outputs change information for changing the allocation status of the task according to the option indicated in the input information.

[0009] Effects of the Invention

[0010] According to the present invention, there is an effect that even a person who does not have specialized knowledge of parallel programming can easily check and adjust the allocation state of tasks to computing units. BRIEF DESCRIPTION OF THE DRAWINGS

[0011] Figure 1 This is a diagram showing the configuration of a numerical control device including the control device according to the first embodiment.

[0012] Figure 2 It is used for Figure 1 A flowchart for explaining the operation of the control device shown.

[0013] Figure 3 It means in Figure 2 FIG. 1 is a diagram showing an example of a transition map displayed by the transition map display unit in step S103.

[0014] Figure 4 It means in Figure 2 FIG. 1 is a diagram showing an example of options displayed in step S106 .

[0015] Figure 5 It means in Figure 2 FIG. 1 is a diagram showing an example of a conversion map after the change displayed in step S109 .

[0016] Figure 6 It is used for Figure 2 The flowchart for explaining the details of step S108 is shown in FIG.

[0017] Figure 7 This is a diagram showing the functional structure of a control device according to the second embodiment.

[0018] Figure 8This is a diagram showing the structure of a numerical control device including a control device according to a third embodiment.

[0019] Fig. 9 It is used for Figure 8 A flowchart for explaining the operation of the control device shown.

[0020] Fig.10 It means in Fig. 9 FIG. 1 is a diagram showing an example of a transformation graph abstracted in step S201 .

[0021] Fig.11 It means in Fig. 9 A diagram showing an example of options abstracted in step S202.

[0022] Fig.12 It means in Fig. 9 FIG. 1 is a diagram showing an example of a changed transformation graph abstracted in step S203 .

[0023] Fig.13 It is a diagram showing the structure of a control device according to the fourth embodiment.

[0024] Fig.14 This is a diagram showing the structure of a numerical control device including a control device according to the fifth embodiment.

[0025] Fig.15 Yes means Fig.14 Diagram of the functional structure of the machine learning device shown.

[0026] Fig.16 This is a diagram showing the structure of a control device according to the sixth embodiment.

[0027] Fig.17 This is a diagram showing dedicated hardware for realizing the functions of the control device according to the first to sixth embodiments.

[0028] Fig.18 This is a diagram showing the configuration of a control circuit for realizing the functions of the control device according to the first to sixth embodiments. DETAILED DESCRIPTION

[0029] Hereinafter, a control device, a machine learning device, and a control method according to an embodiment of the present invention will be described in detail based on the drawings. In addition, the technical scope of the present invention is not limited to the embodiments described below.

[0030] Implementation method 1.

[0031] Figure 1The figure shows the structure of the numerical control device 1 including the control device 10A according to Embodiment 1. The numerical control device 1 includes the control device 10A, a change information storage unit 17 , a numerical control process execution unit 18 , and a log data storage unit 19 .

[0032] The numerical control device 1 has a plurality of computing units not shown in the figure. The plurality of computing units may be a multi-core CPU having a plurality of cores in one CPU (Central Processing Unit), or a multi-CPU having a plurality of CPUs. That is, the computing unit possessed by the numerical control device 1 may be a "core" possessed by a CPU, or a processing device such as a "CPU". Below, each computing unit is sometimes referred to as a "core". The numerical control device 1 assigns the tasks constituting the software to the plurality of computing units respectively and executes the tasks. The plurality of computing units each executes the assigned tasks. By using the plurality of computing units as described above, the numerical control device 1 can execute a plurality of tasks in parallel. By executing a plurality of tasks in parallel, the processing capability can be improved compared to the numerical control device 1 executing tasks sequentially through a single computing unit.

[0033] The control device 10A has a function of determining a method of allocating tasks to a plurality of computing units possessed by the numerical control device 1. The control device 10A obtains log data from the numerical control device 1. The log data includes information for determining the allocation status of tasks executed in the past by the numerical control device 1, and information for determining the execution status of the tasks. The information for determining the allocation status of the tasks here is information for determining in which computing unit the tasks executed in the past by the numerical control device 1 were executed. If information for determining the timing at which the tasks are executed is added to the information for determining the allocation status of the tasks, it becomes information for determining the execution status of the tasks. For example, the log data includes information for identifying the tasks, namely, the task name, information indicating the computing unit to which the tasks are allocated, and event occurrence time information for each task. The task name and the information indicating the computing unit to which the tasks are allocated are an example of information for determining the allocation status of the tasks. The event occurrence time information for each task is an example of information for determining the timing at which the tasks are executed. The control device 10A generates change information for changing the assignment state of the task by performing various processes based on the acquired log data, and outputs the generated change information. The change information storage unit 17 stores the change information generated by the control device 10A.

[0034] The numerical control processing execution unit 18 uses a plurality of computing units to perform numerical control processing of the control object of the numerical control device 1, namely, the working machine. The numerical control processing execution unit 18 is an execution unit for realizing software processing as a function required of the numerical control device 1. Specific examples of the processing executed by the numerical control processing execution unit 18 include the processing of analyzing a processing program that describes the processing content that is expected to be executed by the working machine, the interpolation processing for smoothly specifying the path of the tool, and the acceleration and deceleration processing for creating a speed mode that does not vibrate the working machine and is used for rapid movement. The numerical control processing execution unit 18 is capable of changing the assignment status of the task according to the change information stored in the change information storage unit 17. The numerical control processing execution unit 18 determines the timing of each of the plurality of computing units to execute the assigned tasks according to the limitations imposed on the software. In addition, the numerical control processing execution unit 18 generates log data during the numerical control processing and outputs it to the log data storage unit 19.

[0035] The log data storage unit 19 stores the log data output by the numerical control processing execution unit 18. Figure 1 In the embodiment, the change information storage unit 17 and the log data storage unit 19 are provided in the numerical control device 1, but the change information storage unit 17 and the log data storage unit 19 may also be in a storage area such as a computer or a hard disk that the numerical control device 1 can access via a network. The log data includes, for example, the name of the task constituting the numerical control processing, information for determining the operation unit assigned to each task, the time when the event occurs for each task, etc. A task is a processing unit on the software that can change the allocation destination of multiple operation units. Tasks include not only units such as functions in programming, but also units that are aggregates of functions such as tasks and procedures.

[0036] There are many types of events. For example, there is a "start event" that occurs when a task obtains execution rights in the operation unit, a "preempted event" that occurs when a task that has obtained execution rights is deprived of its execution rights by an interrupted task or other task with a higher priority than the task being executed, an "exit event" that occurs when a task completes processing and gives up its execution rights, and a "release to xxx event" that occurs when a task releases its execution rights to other tasks. Here, the "xxx" input in the "release to xxx event" indicates the task name of the other task that is the target. In order to obtain the event log, the CNC processing execution unit 18 generally only needs to use the API (Application Programming Interface) provided by a popular real-time OS (Operating System).

[0037] The control device 10A includes a display unit 11 , an input receiving unit 12 , a conversion map generating unit 13 , an option generating unit 14 , a post-change conversion map estimating unit 15 , and a change information output unit 16 .

[0038] The display unit 11 provides a display screen including a transition diagram, options for changing the task allocation state, and a changed transition diagram. The display unit 11 can provide the above-mentioned display screen by rendering using an internal or external display device of the numerical control device 1 .

[0039] The display unit 11 includes a transition diagram display unit 111 that displays a transition diagram generated by the transition diagram generation unit 13, an option display unit 112 that displays options generated by the option generation unit 14, and a changed transition diagram display unit 113 that displays a changed transition diagram estimated by the changed transition diagram estimation unit 15. The transition diagram display unit 111, the option display unit 112, and the changed transition diagram display unit 113 can each perform a drawing process in a manner that two or more of the transition diagram, the options, and the changed transition diagram are simultaneously included in one screen area drawn by the display unit 11. For example, when the display unit 11 provides a display screen including a transition diagram, options, and a changed transition diagram, the transition diagram display unit 111, the option display unit 112, and the changed transition diagram display unit 113 can each perform a drawing process in a part of the screen area. In addition, when one or two of the transition diagram, the options, and the changed transition diagram are displayed, if the user performs a switching operation, the display unit 11 can switch the displayed content.

[0040] The input receiving unit 12 receives input information generated by a user using an input device or input information generated by a machine, and can output the received input information to the option generating unit 14, the post-change transition map estimating unit 15, and the change information output unit 16.

[0041] The transition diagram generation unit 13 generates a transition diagram that represents the execution status of each task of the plurality of computing units in a time series based on the log data. The transition diagram represents which task is executed by each of the plurality of computing units of the numerical control device 1 at a certain time in a time series. The transition diagram generation unit 13 outputs the generated transition diagram to the transition diagram display unit 111 of the display unit 11.

[0042] The option generation unit 14 generates an option of a method for changing the allocation state of the task indicated by the input information output by the input receiving unit 12. The task indicated by the input information output by the input receiving unit 12 is a designated task among the tasks displayed in the transition diagram. The option of the method for changing the allocation state is an option related to how to change the allocation state of the task, such as which of the multiple computing units each task of the software of the numerical control device 1 is executed by, or which task is executed in parallel, or whether to distribute the task to multiple computing units and execute it in parallel. At this time, the option generation unit 14 generates "options that can be changed" based on the restrictions imposed on the software. The restrictions imposed on the software are, for example, a combination of tasks that cannot be processed in parallel among the multiple tasks constituting the software, restrictions imposed on the order of tasks, restrictions imposed on computing units that can execute tasks, etc. In the case where the option generation unit 14 does not generate an option based on the restrictions imposed on the software, the generated options may include options that cannot be changed. Options that cannot be changed are, for example, options for processing multiple tasks that cannot be processed in parallel in parallel. The option generation unit 14 outputs the generated options to the option display unit 112 of the display unit 11.

[0043] The after-change transition diagram estimation unit 15 estimates, based on the log data, a transition diagram when the assignment state of the task is changed according to the option indicated by the input information output by the input receiving unit 12. The option indicated by the input information output by the input receiving unit 12 is an option selected from the options generated by the option generating unit 14. The after-change transition diagram estimation unit 15 outputs the estimated after-change transition diagram to the after-change transition diagram display unit 113 of the display unit 11.

[0044] The change information output unit 16 generates change information for changing the assignment state of the task according to the option indicated by the input information output by the input receiving unit 12. The option indicated by the input information output by the input receiving unit 12 is an option selected from the options generated by the option generating unit 14. The input information sometimes indicates a plurality of options. When a plurality of options are selected, the change information output unit 16 generates change information based on all currently selected options. The change information output unit 16 can output the generated change information to the change information storage unit 17.

[0045] The change information is data recorded in a form for reflecting the change of the assignment status of the task for the numerical control processing execution unit 18. For example, the change information may be a file that records information such as which operation unit each task is assigned to or whether a task is distributed to multiple operation units for execution in a text form in a predetermined format, or may be a binary file that records the above information in a form that can be parsed by a real-time OS or the like.

[0046] Figure 2 It is used for Figure 1First, the control device 10A obtains log data from the log data storage unit 19 (step S101). The log data obtained from the log data storage unit 19 is output to the conversion map generation unit 13 and the post-change conversion map estimation unit 15.

[0047] The transition diagram generation unit 13 generates a transition diagram based on the log data (step S102). Specifically, the log data contains information that specifies the execution status of the task, such as the task name, the computing unit that executes the task, and the time when the event occurs for each task. Based on this information, the transition diagram generation unit 13 generates a transition diagram that represents the execution status of each task of the plurality of computing units in a time series. The transition diagram generation unit 13 outputs the generated transition diagram to the transition diagram display unit 111.

[0048] The transition diagram display unit 111 displays the transition diagram generated by the transition diagram generation unit 13 on the display screen (step S103). The tasks displayed on the transition diagram can be selected, and the input receiving unit 12 can receive input information indicating the selected task. In addition, here, the user who observes the display screen performs an input operation to select the task included in the displayed transition diagram.

[0049] Figure 3 It means in Figure 2 In step S103, the transition map display unit 111 displays an example of the transition map. Figure 3 The horizontal axis is the time axis. Figure 3 Core0, core1, core2, and core3 represent a plurality of computing units included in the numerical control device 1. Figure 3 Each of the multiple blocks shown represents a task. Here, the type of task can be distinguished by the type of texture applied to the block. In addition to using texture, the transition diagram display unit 111 can also use block color, text, etc. to distinguish the type of task. In the case of using text, if the box representing the task is selected, the transition diagram display unit 111 can display information indicating the nature of the task such as the type of task using text, etc. through a pop-up. Figure 3 For each computing unit, the execution status of the task is represented by a time series. Figure 3 is an example, and the transition diagram only needs to represent the execution status of each task of multiple computing units through time series. Figure 3 The horizontal axis in the middle becomes the time axis, but the vertical axis can also become the time axis.

[0050] By displaying a transition diagram that represents the execution status of the task for each computing unit in a time series, the user of the control device 10A can intuitively understand which computing unit has a high load. Figure 3 In the transition diagram of , the horizontal axis is the time axis, so when multiple blocks representing tasks are repeated vertically, these blocks are shown to be executed in parallel. Figure 3 It can be seen that the computing unit shown as “core1” is in a state of high processing load compared with other computing units.

[0051] The user can check the displayed conversion diagram and understand how the current numerical control device 1 operates. After understanding how the current numerical control device 1 operates, the user performs analysis based on each problem awareness. For example, when the processing of the numerical control device 1 is not completed within the predetermined period, the user identifies the task that becomes the bottleneck of the processing time, or analyzes the uneven load conditions between the computing units. Based on the results of the analysis, the user can perform operations to determine the tasks set as the target to solve the problem.

[0052] return Figure 2 The input receiving unit 12 determines whether a task displayed on the transition diagram has been selected (step S104). If a task displayed on the transition diagram has not been selected (step S104: No), the process is repeated from step S103.

[0053] When there is a selection of a task displayed on the transition diagram (step S104: Yes), that is, when the input receiving unit 12 receives input information indicating the selected task, the input receiving unit 12 outputs the received input information to the option generating unit 14. The option generating unit 14 generates an option for a method of changing the allocation status of the selected task based on the restrictions imposed on the software (step S105). In addition, when the input information indicates a plurality of tasks, the option generating unit 14 generates an option for a method of changing the allocation status of each of the plurality of tasks. The option generating unit 14 may generate one option for a method of changing the allocation status for one task, or may generate a plurality of options.

[0054] The option generation unit 14 verifies the static constraint conditions in the target task using constraint condition information indicating the constraints to which the software is subject. Here, the static constraint conditions are constraint conditions determined by the nature of each task, regardless of the way in which the tasks are allocated to the computing unit. For example, static constraint conditions are conditions such as "the second task may not be executed until the execution of the first task is completed" and "the third task and the fourth task may not be executed in parallel". By verifying the static constraint conditions, the options for the method of changing the allocation state that can be selected within the range of the constraints to which the software of the numerical control device 1 is subject are selected.

[0055] The constraint information is information stored in the form of a list, database, or the like, in which a person having expertise in software for controlling the numerical control device 1 , such as a software developer of a manufacturer that manufactures the numerical control device 1 , lists in advance the constraint conditions existing in the software.

[0056] The option generation unit 14 then verifies the dynamic constraints using the information of the computing unit to which the task is assigned for each task included in the log data. The dynamic constraints are the constraints imposed on the computing unit to which the current task is assigned. For example, when using an AMP (Asymmetrical Multi Processing) type multi-core CPU, there are sometimes cores that cannot be assigned depending on the nature of the task and the core. The option generation unit 14 verifies the static constraints and the dynamic constraints, and as a result, generates options that can be changed. The option generation unit 14 outputs the generated options to the option display unit 112.

[0057] The option display unit 112 displays the options generated by the option generation unit 14 on the display screen (step S106). The options displayed on the display screen can be selected, and the input receiving unit 12 can receive input information indicating the selected option. In addition, here, the user who observes the display screen performs an input operation to select the displayed option.

[0058] Figure 4 is Figure 2 FIG. 106 is a diagram showing an example of options displayed in step S106. Here, it is shown that three tasks are selected in step S104, and options are generated one-to-one for each of the three tasks. The option display unit 112 displays on the display screen the options that are determined to be changeable based on the restrictions imposed on the software, among the options of the selected tasks to be changed and the method of changing the allocation status of the selected tasks. Figure 4 The option of the method of changing the distribution state of the tasks shown in the upper part is processing distribution, which shows that one task is divided into a plurality of tasks, here divided into four tasks, and each of the four tasks is executed by a different computing unit. Figure 4 The option of the method of changing the allocation state of the task shown in the middle is moving to another core, indicating that the computing unit that executes the task is moved in such a way that the task executed by the computing unit shown in "core1" is executed by the computing unit shown in "core2". Figure 4 The option of the method of changing the allocation state of the task shown in the lower part is moving to other cores, indicating that the computing unit that executes the task is moved in such a way that the task executed by the computing unit shown in "core2" is executed by the computing unit shown in "core1".

[0059] In addition, options are displayed as Figure 4As shown in the upper part of the diagram, it can be a method of illustrating the change of the schematic diagram before and after the application of the option, or it can be as shown in the diagram Figure 4 As shown in the middle and lower parts of , the method of expressing in a list form. The method of displaying the options is preferably a method that allows the user to understand the status before and after the application of the options.

[0060] return Figure 2 The input receiving unit 12 determines whether an option displayed on the display screen has been selected (step S107). If no option has been selected (step S107: No), the process is repeated from step S106.

[0061] When there is a selection of an option (step S107: Yes), that is, when the input receiving unit 12 receives input information indicating the selected option, the input receiving unit 12 outputs the received input information to the changed transition diagram estimation unit 15. In addition, the input information received by the input receiving unit 12 sometimes shows one option and sometimes shows multiple options. The changed transition diagram estimation unit 15 estimates the transition diagram after the assignment state of the task is changed according to the selected option based on the log data (step S108). When the input information shows multiple options, the changed transition diagram estimation unit 15 estimates the transition diagram after the assignment state of the task is changed according to the multiple options. The changed transition diagram estimation unit 15 outputs the estimated transition diagram to the changed transition diagram display unit 113.

[0062] The after-change transition diagram display unit 113 displays the estimated after-change transition diagram on the display screen (step S109 ).

[0063] Figure 5 It means in Figure 2 Here, an example of a conversion diagram after the change is shown in step S109 of FIG. Figure 4 The changed transition diagram generated when all the options shown are selected. The method in which the changed transition diagram display unit 113 displays the changed transition diagram is the same as the method in which the transition diagram display unit 111 displays the transition diagram. Figure 5 The horizontal axis is the time axis. Figure 5 Core0, core1, core2, and core3 represent a plurality of computing units included in the numerical control device 1. Figure 5 The multiple blocks shown in the figure each represent a task. Here, the types of tasks can be distinguished according to the types of textures applied to the blocks. The changed conversion map display unit 113 can be connected with Figure 5 The conversion after the change is shown Figure 1The user checks the changed conversion diagram, determines whether the problem of processing time and processing load can be solved, and performs input operation to select whether to confirm the change.

[0064] return Figure 2 The input receiving unit 12 determines whether to confirm the change based on the received input information (step S110). In addition, "confirmation of change" refers to the option selected in step S107 among the options of the method of changing the allocation status generated in step S105, which is applied to the task selected in step S104.

[0065] If the change is not confirmed (step S110: No), the input receiving unit 12 outputs the input information to the transition diagram generating unit 13, and causes the transition diagram display unit 111 to repeat the process of step S103. In this case, the input receiving unit 12 may operate in a manner to repeat the process from step S106. In this case, the user can start over from the selection of an option instead of the selection of a task.

[0066] When the change is confirmed (step S110: Yes), the input receiving unit 12 adds the option selected in step S107 to the confirmed options (step S111). The input receiving unit 12 instructs the after-change transition diagram generating unit 15 to display a screen for receiving an input operation for whether the selection of the option is completed. If the user performs an input operation on the displayed screen, the input receiving unit 12 determines whether the selection of the option is completed based on the received input information (step S112).

[0067] If the selection of the option has not been completed (step S112: No), the input receiving unit 12 outputs the input information to the changed transition diagram estimating unit 15, and the process is repeated from step S103. In addition, if the process is repeated from step S103 after the change is determined, the changed transition diagram to which the option selected in step S107 is applied is displayed in step S103, and in step S104, it is determined whether there is a selection of the task displayed in the changed transition diagram. That is, if the process is repeated from step S103 after the change is determined, it is the changed transition diagram display unit 113 that displays the transition diagram of step S103.

[0068] When the selection of the option is completed (step S112: Yes), the input receiving unit 12 outputs information indicating the determined option to the change information output unit 16, and the change information output unit 16 outputs change information for the numerical control processing execution unit 18 to change the distribution state of the task according to the determined option to the change information storage unit 17 (step S113). The numerical control processing execution unit 18 changes the distribution state of the task to the operation unit by performing an action based on the change information stored in the change information storage unit 17.

[0069] There may be multiple options for changing the assignment status of a task for one task. Therefore, the processing performance of the numerical control device 1 changes depending on which combination of options is applied to each of the multiple tasks. Depending on the combination of options applied, it is also considered that the processing performance may decrease. Therefore, by Figure 5 The operation shown allows the user to determine a combination of applied options among the generated options through trial and error while observing the estimated transition diagram.

[0070] Figure 6 It is used for Figure 2 The following is a flowchart for explaining the details of step S108. Figure 2 In step S108, the after-change transition diagram estimation unit 15 needs to estimate the occurrence time of events related to the execution of the target task, such as "start event" and "exit event", in order to estimate the after-change transition diagram. Therefore, the after-change transition diagram estimation unit 15 estimates the after-change event occurrence time based on the event occurrence time before the allocation state of the target task is changed, based on the log data.

[0071] First, the post-change transition diagram estimation unit 15 searches for the event log included in the log data from the beginning (step S11). If the event log is found, the post-change transition diagram estimation unit 15 determines whether the event shown in the found event log is an event of the target task (step S12). If it is an event of the target task (step S12: Yes), the post-change transition diagram estimation unit 15 determines whether the event shown in the found event log is the first "start event" (step S13).

[0072] If it is not an event of the target task (step S12: No) or if it is not the first "start event" (step S13: No), the after-change transition diagram estimation unit 15 proceeds to search for the next event log (step S14) and repeats the process from step S12.

[0073] If it is the first “start event” (step S13 : Yes), the after-change transition diagram estimation unit 15 estimates the occurrence time of the “start event” after the change of the target task is applied, based on the occurrence time of the found event log (step S15 ).

[0074] The after-change transition diagram estimation unit 15 proceeds to search for the next event log (step S21). If an event log is found, the after-change transition diagram estimation unit 15 determines whether the event shown in the found event log is an event of the target task (step S22). If it is not an event of the target task (step S22: No), the after-change transition diagram estimation unit 15 repeats the processing of step S21.

[0075] If it is an event of the target task (step S22: Yes), the post-change transition diagram estimation unit 15 determines whether the event shown in the found event log is an "exit event" (step S23). If it is not an "exit event" (step S23: No), the post-change transition diagram estimation unit 15 estimates the event occurrence time after the change of the target task is applied (step S24), and returns to the processing of step S21.

[0076] If it is an "exit event" (step S23: Yes), the after-change transition diagram estimation unit 15 estimates the occurrence time of the "exit event" after the change is applied (step S25).

[0077] The changed transition diagram estimation unit 15 searches for the event logs in the range of step S21 to step S25 (step S31). The changed transition diagram estimation unit 15 determines whether the search for the event logs in the search range has been completed (step S32). If the search for the search range has not been completed (step S32: No), the changed transition diagram estimation unit 15 determines whether the events shown in the event log of the object have an impact from the events that have been changed so far (step S33). The criteria for determining whether there is an impact are predetermined. For example, if the occurrence time of the "release event" for the task of the object is changed, the changed transition diagram estimation unit 15 determines that there is an impact. In addition, if a task with a higher priority than the task of the object is executed by the same operation unit as the task of the object due to the change in the allocation of the operation unit, the changed transition diagram estimation unit 15 determines that there is an impact. If the time of the interval from the "start event" to the "exit event" of the task of the object overlaps with the interval from the "start event" to the "exit event" of other tasks, the changed transition diagram estimation unit 15 determines that there is an impact.

[0078] If there is an impact (step S33: Yes), the post-change transition diagram estimation unit 15 estimates the time when the event occurs after the change is applied (step S34), proceeds to search for the next event log (step S35), and returns to the process of step S32. If there is no impact (step S33: No), the post-change transition diagram estimation unit 15 omits the process of step S34 and proceeds to the process of step S35.

[0079] When the search in the search range is completed (step S32 : Yes), the after-change transition diagram estimation unit 15 repeats the processing of steps S11 to S35 for all tasks including the event determined to have an influence (step S41 ).

[0080] The post-change transition diagram estimation unit 15 determines whether the search up to the final event of the log data is completed (step S42). If the search up to the final event of the log data is completed (step S42: Yes), the post-change transition diagram estimation unit 15 ends the processing. If the search up to the final event of the log data is not completed (step S42: No), the post-change transition diagram estimation unit 15 repeats the processing from step S11. However, when returning from step S42 to step S11, the post-change transition diagram estimation unit 15 does not start from the beginning of the event log, but performs the processing of step S11 from the first event determined to have an impact.

[0081] As described above, the post-change transition diagram estimation unit 15 searches the event log of the selected object task from the beginning of the log data by performing the processing of steps S11 to S15, and estimates the occurrence time of the "start event" after the change is applied based on the occurrence time of the initial "start event". For example, there is the following method for estimating the event occurrence time, that is, estimating based on the occurrence time immediately before the "start event" currently concerned among the "release events" for the object task. In addition, the post-change transition diagram estimation unit 15 performs the processing of steps S21 to S25, and estimates the event occurrence time after the change is applied for all events that occur after the "start event" of concern among the events of the selected object task until the "exit event", using the above-mentioned event occurrence time estimation method. In addition, the after-change transition diagram estimation unit 15 performs the processing of steps S31 to S35, thereby determining whether there is an influence from the after-change event based on the estimation so far for all events of other tasks that occurred in the interval from the "start event" to the "exit event" of the currently concerned target task, and estimates the occurrence time of the event determined to have an influence. The after-change transition diagram estimation unit 15 performs the processing of steps S41 and S42, thereby repeating the processing of steps S11 to S35 for each task including the event determined to have an influence in the processing of steps S31 to S35 until the final event included in the log data is reached.

[0082] In the above, the post-change transition diagram estimation unit 15 estimates the time when the event occurs after the allocation change based on the time when the event occurs before the allocation state is changed. However, in the case where the performance of the operation unit before and after the allocation change is different, the time taken for the execution of the task can be grasped on the basis of considering the difference in performance to estimate the time when the event occurs.

[0083] As described above, according to the control device 10A involved in the first embodiment, a transition diagram is displayed in which the execution status of each task of the plurality of computing units of the numerical control device 1 is represented by a time series, and an option of a method of changing the distribution status of the task displayed on the transition diagram is generated based on the limitation of the software. In addition, input information representing an option selected from the generated options is received, and change information for changing the distribution status of the task is output according to the option shown in the input information. Therefore, even a person who does not have specialized knowledge of parallel programming can easily confirm and adjust the distribution status of the task to the computing unit.

[0084] For example, users of the numerical control device 1, such as general software developers, service personnel who perform product maintenance and maintenance services, and machine manufacturers who purchase the numerical control device 1 and ship machine tools equipped with the numerical control device 1, do not necessarily have specialized knowledge of parallel programming. Even such users can make appropriate adjustments because the options displayed by the control device 10A are filtered to those that do not violate the limitations imposed on the software.

[0085] In addition, the control device 10A can display a transition diagram that represents the execution state of the task assigned to the computing unit in a time series, and generate options for a method of changing the assignment state of the task selected from the tasks displayed on the transition diagram, estimate the execution state of the task after the assignment state is changed according to the option selected from the generated options, and display the changed transition diagram. With the above-mentioned structure, the user of the numerical control device 1 can confirm the assignment state of the task when the change method shown in the option is applied and adjust the assignment state.

[0086] The control object of the numerical control device 1, i.e., the working machine, has a variety of sizes and types, and the environment in which it is used is also diverse for each user. Therefore, the performance and functions required of the numerical control device 1 vary greatly, and the numerical control device 1 is required to have a variety of functions to meet these requirements.

[0087] For example, a compound processing machine is an example of a large-scale and complexly structured machine tool. The compound processing machine has multiple spindles, and can execute many processing programs in parallel, and can synchronize and transfer processing objects between processing programs, or process multiple processing objects at the same time. In the compound processing machine as described above, many axes that move the tool and the processing object move around in a complex manner in the processing groove, so a function called interference check is required to prevent them from interfering with each other. In such a function, the processing time increases due to the task of finding the trajectory of the axis.

[0088] In addition, in a small machine tool, for example, a machine tool having only one main axis and three or four drive axes for changing the relative position between the main axis and the object to be processed, a function called interference checking as in a multi-tasking machine is not required, and instead, a function is required to analyze as many machining programs as possible in a short time to make the tool path smooth. In such a small machine tool, the processing time increases due to the task of analyzing the machining program.

[0089] As described above, the functions and performances required of the numerical control device 1 vary depending on the type of machine tool that is the object of control of the numerical control device 1. Furthermore, the functions and performances required of the numerical control device 1 vary depending on the use environment, such as what kind of product the user processes with these machine tools and for what purpose the production activities are carried out. For example, the functions and performances required of the numerical control device 1 are completely different for a user who accepts a commission to conduct trial production of a product and a user who mass-produces parts used in mass products.

[0090] As described above, it is difficult to predetermine the distribution state of tasks of the numerical control device 1 having multiple computing units to be optimal for all users. Therefore, by using the control device 10A, the user can easily adjust the distribution state of tasks according to his / her own usage environment, and can fully exert the original performance of the numerical control device 1.

[0091] Implementation method 2.

[0092] Figure 7 This is a diagram showing a functional configuration of a control device 10B according to Embodiment 2. The control device 10B has the same functions as the control device 10A according to Embodiment 1 except that it is a separate device from the numerical control device 1 , and therefore detailed descriptions of common matters are omitted.

[0093] The control device 10B includes a display unit 11, an input receiving unit 12, a conversion map generating unit 13, an option generating unit 14, a post-change conversion map estimating unit 15, and a change information output unit 16. The display unit 11 includes a conversion map display unit 111, an option display unit 112, and a post-change conversion map display unit 113.

[0094] The numerical control device 1 is a device separate from the control device 10B. The change information storage unit 17 and the log data storage unit 19 are storage areas such as computers and hard disks that the numerical control device 1 can access via a network. In addition, the change information storage unit 17 can also be a storage area built into the numerical control device 1. The log data storage unit 19 can also be a storage area built into the numerical control device 1.

[0095] The operation of the control device 10B is similar to that of the user except for the following aspects: Figure 2 The operation of the control device 10A described above is the same. The control device 10B can obtain the log data from the log data storage unit 19 via the network. In addition, a mobile storage medium such as an SD card or USB (Universal Serial Bus) memory that stores log data can be connected to the control device 10B, so that the control device 10B can also obtain the log data.

[0096] Furthermore, when control device 10B is connected to change information storage unit 17 outside control device 10B, change information output unit 16 may output change information to change information storage unit 17 or to a storage area on a device such as a computer constituting control device 10B.

[0097] As described above, according to the control device 10B according to the second embodiment, similarly to the control device 10A according to the first embodiment, even a person without specialized knowledge of parallel programming can easily check and adjust the allocation state of tasks to the computing units.

[0098] In addition, the control device 10B is a device separate from the numerical control device 1. Therefore, there is an advantage that the influence of the processing load for changing the distribution state of the task will not affect the numerical control device 1. For example, in a working machine having the numerical control device 1, since it is installed in an automated production line, it is sometimes not easy to stop the operating state. In the case as described above, considering the impact on the product being processed, it is desirable to avoid causing the numerical control device 1 to perform processing other than numerical control processing. According to the control device 10B, the numerical control device 1 only needs to be able to perform the acquisition processing of the log data, and other processing can be performed in the control device 10B which is separate from the numerical control device 1, so that the impact on the performance of the numerical control device 1 can be suppressed and the distribution state of the task can be adjusted.

[0099] Implementation method 3.

[0100] Figure 8 1 is a diagram showing the structure of a numerical control device 1 having a control device 10C according to Embodiment 3. The numerical control device 1 has a control device 10C, a change information storage unit 17, a numerical control processing execution unit 18, and a log data storage unit 19. The control device 10C has a display unit 11, an input receiving unit 12, a transition diagram generation unit 13, an option generation unit 14, a post-change transition diagram estimation unit 15, a change information output unit 16, and an abstraction unit 20. The display unit 11 has a transition diagram display unit 111, an option display unit 112, and a post-change transition diagram display unit 113. The abstraction unit 20 has a transition diagram abstraction unit 201, an option abstraction unit 202, and a post-change transition diagram abstraction unit 203.

[0101] The control device 10C further includes an abstraction unit 20 based on the structure of the control devices 10A and 10B. The abstraction unit 20 has the following function, that is, based on the identification information representing the attributes of the user, the abstraction degree of the display content of the display screen generated by the display unit 11 is changed. The identification information is information used to determine the importance of information that can be accessed among the internal information of the numerical control device 1. The identification information is represented by a numerical value called a user level, for example. The user level of the user who can be allowed to access all the internal information, such as the developer of the manufacturer that manufactures the numerical control device 1, is set to the highest value, i.e., "4", and the user level of the user who is allowed to access except for a part of the information with high importance, such as the maintenance and service person in charge of the manufacturer that manufactures the numerical control device 1, is set to "3". In addition, the user level of the user who is allowed to access the restricted information, such as the development person in charge, the maintenance person in charge, the service person in charge of the machine tool manufacturer that purchases the numerical control device 1 and ships it in combination with the machine tool, is set to "2", and the user level of the user who is allowed to access only a very small part of the information, such as the end user who purchases the machine tool and uses it, is set to "1".

[0102] Important internal information is a corporate secret of the manufacturer of the numerical control device 1 and the manufacturer of the machine tool. Therefore, by using the abstraction unit 20 to set access restrictions on the internal information, the corporate secrets of each manufacturer are strictly protected, and users without sufficient knowledge can be prevented from making careless changes to the numerical control device 1 or the machine tool and performing unexpected actions.

[0103] The transition graph abstraction unit 201, the option abstraction unit 202, and the changed transition graph abstraction unit 203 each perform abstraction processing based on the identification information, thereby realizing access restriction to internal information. Specifically, the transition graph abstraction unit 201 obtains the drawing data of the transition graph generated by the transition graph display unit 111, performs abstraction processing based on the identification information of the user, and outputs the processed drawing data to the transition graph display unit 111. The option abstraction unit 202 obtains the drawing data of the options generated by the option display unit 112, performs abstraction processing based on the identification information of the user, and outputs the processed drawing data to the option display unit 112. The changed transition graph abstraction unit 203 obtains the drawing data of the changed transition graph from the changed transition graph display unit 113, performs abstraction processing based on the identification information of the user, and outputs the processed drawing data to the changed transition graph display unit 113.

[0104] In addition, the method by which the abstraction unit 20 of the control device 10C acquires the identification information is not particularly limited. For example, the password of the numerical control device 1 is set to be different for each user level, and if the user inputs the password using an input device pre-set in the numerical control device 1, the input receiving unit 12 can assign different identification information for each type of password and notify the abstraction unit 20.

[0105] Fig. 9 It is used for Figure 8 The flowchart for explaining the operation of the control device 10C shown in FIG. Fig. 9 Part of the action shown and use Figure 2 The operation of the control device 10A described above is the same, so the same operation is marked with the same reference numerals and detailed description is omitted here. Figure 2 The differences are explained below.

[0106] If the transition diagram generation unit 13 generates a transition diagram in step S102, and the transition diagram display unit 111 generates the drawing data of the transition diagram, the transition diagram abstraction unit 201 obtains the drawing data of the transition diagram from the transition diagram display unit 111 and performs abstraction processing of the transition diagram (step S201). Various methods are considered for abstracting the display content of the transition diagram. For example, a specific task name is internal information of the software, so the transition diagram abstraction unit 201 can abstract or hide the task name contained in the transition diagram. For example, for users with user levels of "4" and "3", the task name can be directly displayed, and for users with user levels of "2" and "1", the task name can be represented by the function of the task such as "task for parsing the machining program". In addition, as another example of the method of abstracting the display content of the transition diagram, it is considered to hide the information for each task and represent the ratio of the processing execution time for each operation unit at each certain time through a time series.

[0107] Fig.10 It means in Fig. 9 FIG. 1 is a diagram showing an example of a transformation graph abstracted in step S201 . Fig.10 The transition diagram shown is a diagram in which information for each task is concealed, and the ratio of the processing execution time for each computing unit at each certain time is represented by a time series. The transition diagram showing the allocation status for each task can be a clue to infer how the numerical control processing is performed, and therefore sometimes becomes information that should be kept confidential for users other than the manufacturer of the numerical control device 1. In the above case, the transition diagram abstraction unit 201 can abstract the transition diagram to the extent that the tendency of the time series of the processing load of each computing unit can be known for users with user levels of "2" and "1". Fig.10 The horizontal axis is the time axis. Fig.10Core0, core1, core2, and core3 represent a plurality of computing units included in the numerical control device 1. Fig.10 The vertical axis of shows the processing load for each computing unit. A user who observes the abstracted conversion graph cannot know which computing unit executes which task, but can determine which computing unit has the processing load concentrated on.

[0108] return Fig. 9 If the option generation unit 14 generates an option in step S105, and the option display unit 112 generates the option description data, the option abstraction unit 202 obtains the option description data from the option display unit 112 and performs option abstraction processing (step S202). Various methods are considered for abstracting the display content of the option. For example, similar to the abstraction of the transition diagram, it is considered to abstract or hide the task name. In addition, Fig.10 As shown, when the transition diagram represents the ratio of the processing execution time at each certain time for each operation unit through a time series, the option abstraction unit 202 does not explicitly indicate which task's allocation status is changed when displaying the options that can be changed for each operation unit, and can only show information such as how the processing of which operation unit is dispersed to other operation units.

[0109] Fig.11 It means in Fig. 9 A diagram showing an example of options abstracted in step S202. Fig.11 The options shown are hidden for each task, and for each computing unit, the ratio of the processing load of the target task and the computing unit to which the target task is distributed are shown. Fig.11 The user can see the abstracted options shown in the figure, so that in the computing unit shown in "core1", there is an option to distribute the tasks that currently occupy 50% of the processing load to all computing units. Fig.11 The abstracted options shown in FIG. 1 allow the user to know that, among the computing units shown in “core 1”, there is an option to move the task that currently occupies 15% of the processing load to a specific computing unit shown in “core 2” or “core 3”.

[0110] return Fig. 9The changed conversion diagram estimation unit 15 estimates the changed conversion diagram in step S108. If the changed conversion diagram display unit 113 generates the drawing data of the changed conversion diagram, the changed conversion diagram abstraction unit 203 obtains the drawing data of the changed conversion diagram from the changed conversion diagram display unit 113 and performs the abstraction processing of the changed conversion diagram (step S203). The method of abstracting the changed conversion diagram is the same as the method of abstracting the conversion diagram by the conversion diagram abstraction unit 201.

[0111] Fig.12 It means in Fig. 9 FIG. 1 is a diagram showing an example of a changed transformation graph abstracted in step S203 . Fig.12 The horizontal axis is the time axis. Fig.12 Core0, core1, core2, and core3 represent a plurality of computing units included in the numerical control device 1. Fig.12 The vertical axis of shows the processing load for each computing unit. A user who observes the changed conversion diagram when the abstraction process is performed cannot know which computing unit executes which task, but can judge which computing unit the processing load is concentrated on.

[0112] In the above description, the abstraction unit 20 changes the abstraction level of the displayed content in two steps for users with user levels "4" and "3" and users with user levels "2" and "1", but the abstraction level of the displayed content may be changed to four steps for each value of the user level. The identification information indicating the attribute of the user is indicated by the user level in four steps in the above description, but may be indicated by two steps or three steps, or may be indicated by five steps or more.

[0113] As described above, according to the control device 10C according to the third embodiment, similarly to the control devices 10A and 10B according to the first and second embodiments, even a person without specialized knowledge of parallel programming can easily check and adjust the allocation status of tasks to the computing units.

[0114] In addition, the control device 10C has a function of changing the abstraction level of the display content of the display screen generated by the display unit 11 based on the identification information indicating the attributes of the user. Therefore, the transition diagram, options, and the changed transition diagram are abstracted according to the attributes of the user, and the disclosure range and access range of the internal information can be appropriately limited.

[0115] By using the control device 10C, the manufacturer of the numerical control device 1 and the manufacturer of the machine tool that is the object of control of the numerical control device 1 can select information to be restricted for access by each user, thereby strictly protecting company secrets.

[0116] Furthermore, by using the abstraction unit 20 to set access restrictions on internal information, it is possible to prevent a user without sufficient knowledge from making an inadvertent change in the numerical control device 1 or the machine tool and executing an unexpected operation.

[0117] Implementation method 4.

[0118] Fig.13 1 is a diagram showing a configuration of a control device 10D according to Embodiment 4. The control device 10D has the same functions as the control device 10C according to Embodiment 3 except that it is a separate device from the numerical control device 1 , and therefore detailed description of common matters will be omitted.

[0119] The control device 10D includes a display unit 11, an input receiving unit 12, a transition map generating unit 13, an option generating unit 14, a post-change transition map estimating unit 15, a change information output unit 16, and an abstracting unit 20. The display unit 11 includes a transition map display unit 111, an option display unit 112, and a post-change transition map display unit 113. The abstracting unit 20 includes a transition map abstracting unit 201, an option abstracting unit 202, and a post-change transition map abstracting unit 203.

[0120] The numerical control device 1 is a device separate from the control device 10D. The change information storage unit 17 and the log data storage unit 19 are storage areas such as computers and hard disks that the numerical control device 1 can access via a network. In addition, the change information storage unit 17 can also be a storage area built into the numerical control device 1. The log data storage unit 19 can also be a storage area built into the numerical control device 1.

[0121] The operation of the control device 10D is similar to that of the user except for the following aspects: Fig. 9 The control device 10C described above operates in the same manner. The control device 10D can obtain log data from the log data storage unit 19 via the network. In addition, a mobile storage medium such as an SD card or USB memory storing log data can be connected to the control device 10D, thereby the control device 10D can also obtain log data.

[0122] Furthermore, when the control device 10D is connected to a change information storage unit 17 outside the control device 10D, the change information output unit 16 may output the change information to the change information storage unit 17 or to a storage area on a device such as a computer constituting the control device 10D.

[0123] As described above, according to the control device 10D according to the fourth embodiment, similarly to the control devices 10A to 10C according to the first to third embodiments, even a person without specialized knowledge of parallel programming can easily check and adjust the allocation state of tasks to the computing units.

[0124] In addition, the control device 10D is a device separate from the numerical control device 1. Therefore, the control device 10B also has the advantage that the influence of the processing load for performing the processing for changing the distribution state of the task will not affect the numerical control device 1. For example, in a working machine having the numerical control device 1, since it is installed in an automated production line, it is sometimes not easy to stop the operating state. In the case as described above, considering the impact on the product being processed, it is desirable to avoid causing the numerical control device 1 to perform processing other than numerical control processing. According to the control device 10D, the numerical control device 1 only needs to be able to perform the processing of obtaining log data, and other processing can be performed in the control device 10D which is separate from the numerical control device 1, so that the impact on the performance of the numerical control device 1 can be suppressed and the distribution state of the task can be adjusted.

[0125] In addition, the control device 10D has an abstraction unit 20. Therefore, similarly to the control device 10C, the conversion diagram, options, and the changed conversion diagram are abstracted according to the attributes of the user, and the disclosure range and access range of the internal information can be appropriately limited. In addition, the control device 10D can strictly protect corporate secrets and prevent users who do not have sufficient knowledge from making careless changes to the numerical control device 1 or the machine tool and performing unexpected actions.

[0126] Implementation method 5.

[0127] Fig.14 The figure shows the structure of the numerical control device 1 including the control device 10E according to Embodiment 5. The numerical control device 1 includes the control device 10E, a change information storage unit 17 , a numerical control process execution unit 18 , and a log data storage unit 19 .

[0128] The control device 10E includes a display unit 11, an input receiving unit 12, a transition diagram generating unit 13, an option generating unit 14, a post-change transition diagram estimating unit 15, a change information output unit 16, an abstracting unit 20, and a machine learning device 30. The display unit 11 includes a transition diagram display unit 111 and a post-change transition diagram display unit 113. The abstracting unit 20 includes a transition diagram abstracting unit 201 and a post-change transition diagram abstracting unit 203. The control device 10C has a configuration in which options are displayed on a display screen and input information indicating an option selected by a user from among the generated options is obtained. In contrast, the control device 10E is different from the control device 10C in that it includes a machine learning device 30, and the machine learning device 30 has a function of selecting an option to be applied from among the generated options. Below, the differences from the control device 10C will be mainly described, and detailed descriptions of the common points will be omitted.

[0129] The transition graph generation unit 13 performs the same operation as that of the third embodiment, and outputs the event log of each task that is the source of the generated transition graph to the machine learning device 30 .

[0130] The option generation unit 14 generates options by the same operation as that of the third embodiment, and outputs the generated options to the machine learning device 30 .

[0131] After performing the same operation as in the third embodiment, the after-change transition graph estimation unit 15 estimates the after-change transition graph and outputs the estimation data of the event log of each task which is the source of the estimated after-change transition graph to the machine learning device 30 .

[0132] The machine learning device 30 learns the assignment state of the task after the change based on the input information indicating the selected option and the assignment state of the task shown in the event log of the transition diagram and the changed transition diagram. The machine learning device 30 selects the option to be applied from the options generated by the option generation unit 14, generates the input information indicating the selected option and outputs it to the input receiving unit 12. The input receiving unit 12 outputs the input information indicating the selected option to the changed transition diagram estimation unit 15 and the change information output unit 16, respectively. In this case, the changed transition diagram estimation unit 15 estimates the changed transition diagram indicating the assignment state of the task according to the learning result, and the changed transition diagram display unit 113 displays the changed transition diagram indicating the assignment state of the task according to the learning result. In addition, at this time, the change information output unit 16 outputs the change information for realizing the assignment state of the task according to the learning result.

[0133] Fig.15 Yes means Fig.14 The machine learning device 30 includes a state observation unit 31 and a learning unit 32. The learning unit 32 includes a reward calculation unit 33, a function update unit 34, and an action selection unit 35.

[0134] The state observation unit 31 observes, as a state variable, information indicating the execution state of the task estimated when the assignment state of the task is changed according to the past execution state of each of the plurality of computing units of the numerical control device 1 and the change information. Specifically, the state observation unit 31 obtains the event log that is the source of the transition diagram from the transition diagram generation unit 13, obtains the estimated data of the event log that is the source of the changed transition diagram from the changed transition diagram estimation unit 15, and observes the obtained event log as a state variable.

[0135] The learning unit 32 learns the optimal system configuration, specifically, the state of allocation of tasks to a plurality of computing units, according to the data set created based on the state variables.

[0136] The learning unit 32 can use any learning algorithm. As an example, the case where the learning unit 32 uses reinforcement learning is described. Reinforcement learning is a process in which an agent in an environment observes the current state and determines the action to be taken. The agent is referred to as an agent here. The agent obtains rewards from the environment by selecting actions, and learns the strategy that obtains the most rewards through a series of actions. As representative methods of reinforcement learning, Q learning, TD learning, etc. are known. For example, in the case of Q learning, the general update formula of the action value function Q(s, a), that is, the action value table, is expressed by the following formula (1).

[0137] [Formula 1]

[0138]

[0139] In formula (1), s t represents the environment at time t, a t represents the action at time t. t , the environment becomes s t+1 Specifically, in this embodiment, environment s is the execution state of the task, and action a is the selected option. t+1 represents the reward obtained through the change of its environment, γ represents the discount rate, and α represents the learning coefficient. In addition, γ takes a value greater than 0 and less than or equal to 1, and α takes a value greater than 0 and less than or equal to 1. In the case of applying Q learning, the optimal system structure becomes action a t .

[0140] The update formula represented by formula (1) is that if the action value Q of the best action a at time t+1 is greater than the action value Q of the action a executed at time t, the action value Q is increased, and in the opposite case, the action value Q is decreased. In other words, the action value function Q(s, a) is updated so that the action value Q of the action a at time t is close to the best action value at time t+1. In this way, the best action value in a certain environment is continuously propagated to the action value in its previous environment.

[0141] The reward calculation unit 33 calculates the reward based on the state variable. The reward calculation unit 33 calculates the reward r based on the processing time required until the task to be executed is completed within a certain period and the utilization efficiency of multiple computing units at this time. For example, when the completion time of the task to be executed within a certain period is early, when the processing load among multiple computing units is unevenly reduced, the reward calculation unit 33 increases the reward r. The method of increasing the reward r is not particularly limited, for example, consider adding "1" to the reward r. In addition, when the completion time of the task to be executed within a certain period is extended, when the processing load among multiple computing units is unevenly increased, the reward calculation unit 33 reduces the reward r. The method of reducing the reward r is not particularly limited, for example, consider subtracting "1" from the reward r. The processing time required until the task to be executed within a certain period is completed and the utilization efficiency of multiple computing units at this time are extracted according to a known method. For example, the reward calculation unit 33 obtains the completion time of the task to be executed within a certain period from the log data, and can calculate the processing time by taking the average. Furthermore, the report calculation unit 33 can calculate the utilization efficiency of the plurality of computing units by acquiring the total of the time when each of the plurality of computing units executes a task and the time when the task is not executed within the range of the time when the log data is acquired.

[0142] The function updating unit 34 updates the function for determining the optimal system configuration according to the reward calculated by the reward calculating unit 33. For example, in the case of Q learning, the action value function Q(s t , a t ) is used as a function for calculating the optimal system configuration. The function updating unit 34 can update the action value function Q(s t , a t ) is output to the action selection unit 35.

[0143] The action selection unit 35 generates an action value function Q(s) outputted from the function updating unit 34 based on the action value function Q(s) outputted from the function updating unit 34. t , a t ) selects action a. Specifically, the action selection unit 35 selects the option to be applied from the options generated by the option generation unit 14, generates input information representing the selected option, and outputs it to the input receiving unit 12. At this time, the method by which the action selection unit 35 selects action a is not particularly limited. For example, the action selection unit 35 can use the action value function Q(s t , a t ) The greedy method can also be used to randomly select action a' with probability ε and to adjust the action value function Q(s) with probability (1-ε). t , a t)ε-greedy method for selecting the highest action a'.

[0144] When receiving input information from the action selection unit 35, the input receiving unit 12 outputs the input information to the post-change transition diagram estimation unit 15. The post-change transition diagram estimation unit 15 estimates the post-change transition diagram based on the option selected by the action selection unit 35, and outputs the estimation data of the event log that is the source of the estimated transition diagram to the state observation unit 31. When the best action a is determined, the action selection unit 35 outputs the determined action a to the input receiving unit 12, and the input receiving unit 12 notifies the result by outputting it to the change information output unit 16 as change information.

[0145] Furthermore, during the repetition of machine learning, the machine learning device 30 does not need to use the display unit 11 to display the transition diagram that is being passed through. After the selection of the best action a is determined, in the above description, the input receiving unit 12 automatically outputs the determined action a, but the machine learning device 30 may also use the changed transition diagram estimation unit 15 and the changed transition diagram display unit 113 to display the transition diagram when the option shown in the determined action a is applied. In this case, the changed transition diagram display unit 113 will be used to select whether to confirm the change of the input operation unit and the changed transition diagram display unit 113. Figure 1 The user can confirm the change by operating the operation unit. In this case, if the input receiving unit 12 detects that the user has operated the operation unit, it outputs the change information to the change information output unit 16 in a manner that confirms the change.

[0146] In addition, in the present embodiment, the learning algorithm used by the learning unit 32 is reinforcement learning, but the present embodiment is not limited to this example. In addition to reinforcement learning, the learning unit 32 can also use learning algorithms such as learning with a teacher, learning without a teacher, or learning with a semi-teacher. In addition, the learning unit 32 can also use deep learning that learns to extract the feature quantity itself, and can also use other well-known methods, such as neural networks, genetic programming, functional logic programming, support vector machines, etc.

[0147] As described above, according to the control device 10E according to the fifth embodiment, similarly to the control devices 10A to 10D according to the first to fourth embodiments, even a person without specialized knowledge of parallel programming can easily check and adjust the allocation status of tasks to the computing units.

[0148] In addition, the control device 10E has an abstraction unit 20. Therefore, similarly to the control devices 10C and 10D, the conversion diagram, the options, and the changed conversion diagram are abstracted according to the attributes of the user, and the disclosure range and access range of the internal information can be appropriately limited. In addition, the control device 10E can strictly protect corporate secrets and prevent users who do not have sufficient knowledge from making careless changes to the numerical control device 1 or the machine tool and performing unexpected actions.

[0149] Furthermore, the machine learning device 30 of the control device 10E has a function of selecting an option to be applied from the options generated by the option generation unit 14 based on the learning result of the task allocation state. Therefore, the user can select the option to be applied and adjust the task allocation state without repeated trials.

[0150] In addition, the control device 10E has an abstraction unit 20, but the abstraction unit 20 may be omitted. In addition, the machine learning device 30 is built into the control device 10E of the numerical control device 1, but it may be a device separate from the numerical control device 1. In this case, the machine learning device 30 and the numerical control device 1 are connected via a network.

[0151] Implementation method 6.

[0152] Fig.16 1 is a diagram showing a configuration of a control device 10F according to Embodiment 6. The control device 10F has the same functions as the control device 10E according to Embodiment 5 except that it is a separate device from the numerical control device 1 , and therefore detailed description of common matters will be omitted.

[0153] The control device 10F has the same functions as the control device 10E except that it is a separate device from the numerical control device 1. The control device 10F includes a display unit 11, an input receiving unit 12, a transition diagram generating unit 13, an option generating unit 14, a post-change transition diagram estimating unit 15, a change information output unit 16, an abstracting unit 20, and a machine learning device 30. The display unit 11 includes a transition diagram display unit 111 and a post-change transition diagram display unit 113. The abstracting unit 20 includes a transition diagram abstracting unit 201 and a post-change transition diagram abstracting unit 203.

[0154] The numerical control device 1 is a device separate from the control device 10F. The change information storage unit 17 and the log data storage unit 19 are storage areas such as computers and hard disks that the numerical control device 1 can access via a network. In addition, the change information storage unit 17 can also be a storage area built into the numerical control device 1. The log data storage unit 19 can also be a storage area built into the numerical control device 1.

[0155] The operation of the control device 10F is the same as that of the control device 10E except for the following aspects. The control device 10F can obtain log data from the log data storage unit 19 via the network. In addition, a mobile storage medium such as an SD card or USB memory that stores log data can be connected to the control device 10F, so that the control device 10F can also obtain log data.

[0156] When control device 10F is connected to change information storage unit 17 outside control device 10F, change information output unit 16 may output change information to change information storage unit 17 or to a storage area on a device such as a computer constituting control device 10F.

[0157] As described above, according to the control device 10F according to the sixth embodiment, even a person without specialized knowledge of parallel programming can easily check the allocation status of tasks to the computing units as in the control devices 10A to 10E according to the first to fifth embodiments.

[0158] Furthermore, the machine learning device 30 of the control device 10F has a function of selecting an option to be applied from the options generated by the option generation unit 14 based on the learning result of the task allocation state. Therefore, the user can select the option to be applied and adjust the task allocation state without repeated trials.

[0159] In addition, the control device 10F is a device separate from the numerical control device 1. Therefore, there is an advantage that the processing load for performing the processing for changing the allocation state of the task, the processing load of the machine learning processing performed by the machine learning device 30, and the like will not affect the numerical control device 1. For example, in a working machine having the numerical control device 1, since it is installed in an automated production line, it is sometimes not possible to easily stop the operating state. In the case as described above, considering the impact on the product being processed, it is desirable to avoid causing the numerical control device 1 to perform processing other than numerical control processing. According to the control device 10F, the numerical control device 1 only needs to be able to perform the processing of obtaining log data, and other processing can be performed in the control device 10F which is separate from the numerical control device 1, so that the impact on the performance of the numerical control device 1 can be suppressed and the allocation state of the task can be adjusted.

[0160] In Embodiment 5, the machine learning device 30 is built into the numerical control device 1, and in Embodiment 6, the machine learning device 30 is built into the control device 10F which is separate from the numerical control device 1, but the present embodiment is not limited to this example. The machine learning device 30 may also be a device which is separate from both the numerical control device 1 and the control device 10F.

[0161] Next, the hardware configuration will be described. The control devices 10A to 10F according to the first to sixth embodiments are implemented by processing circuits. These processing circuits may be implemented by dedicated hardware or may be control circuits using a CPU.

[0162] In the case where the above-mentioned processing circuits are implemented by dedicated hardware, they are implemented by Fig.17 The processing circuit 90 shown implements. Fig.17 The figure shows dedicated hardware for realizing the functions of the control devices 10A to 10F according to the embodiments 1 to 6. The processing circuit 90 is a single circuit, a composite circuit, a programmed processor, a parallel programmed processor, an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), or a combination thereof.

[0163] When the above-mentioned processing circuit is implemented by a control circuit using a CPU, the control circuit is, for example, Fig.18 The control circuit 91 of the structure shown. Fig.18 1 is a diagram showing the structure of a control circuit 91 for realizing the functions of the control devices 10A to 10F according to the first to sixth embodiments. Fig.18 As shown, the control circuit 91 has a processor 92 and a memory 93. The processor 92 is a CPU, which is also called a processing device, a computing device, a microprocessor, a microcomputer, a DSP (Digital Signal Processor), etc. The memory 93 is, for example, a non-volatile or volatile semiconductor memory such as RAM (Random Access Memory), ROM (Read Only Memory), a flash memory, an EPROM (Erasable Programmable ROM), an EEPROM (registered trademark) (Electrically EPROM), a magnetic disk, a floppy disk, an optical disk, a compact disk, a mini disk, a DVD (Digital Versatile Disk), etc.

[0164] When the above-mentioned processing circuit is realized by the control circuit 91, it is realized by the processor 92 reading and executing the program corresponding to the processing of each component stored in the memory 93. In addition, the memory 93 is also used as a temporary memory in each processing executed by the processor 92.

[0165] The configuration described in the above embodiment is merely an example, and may be combined with other known technologies, the embodiments may be combined with each other, and part of the configuration may be omitted or changed without departing from the gist.

[0166] Description of the label

[0167] 1 numerical control device, 10A, 10B, 10C, 10D, 10E, 10F control device, 11 display unit, 12 input receiving unit, 13 transition map generating unit, 14 option generating unit, 15 changed transition map estimating unit, 16 change information output unit, 17 change information storage unit, 18 numerical control processing execution unit, 19 log data storage unit, 20 abstraction unit, 30 machine learning device, 31 state observation unit, 32 learning unit, 33 reward calculation unit, 34 function updating unit, 35 action selection unit, 90 processing circuit, 91 control circuit, 92 processor, 93 memory, 111 transition map display unit, 112 option display unit, 113 changed transition map display unit, 201 transition map abstraction unit, 202 option abstraction unit, 203 changed transition map abstraction unit.

Claims

1. A control device, which determines a method of allocating tasks of a numerical control device, wherein the numerical control device allocates the tasks constituting software to a plurality of computing units respectively and causes the tasks to be executed, The control device is characterized in that it has: a transition diagram display unit that displays the execution status of the tasks of each of the plurality of computing units in a time series manner based on log data obtained from the numerical control device and including information identifying computing units that executed the tasks in the past and timings at which the tasks were executed in the past; an option generating unit for generating an option of a method of changing the assignment state of the task displayed on the transition diagram based on the restrictions imposed on the software; an input receiving unit for receiving input information indicating the option selected from the generated options; as well as A change information output unit is configured to output change information for changing the assignment status of the task according to the option indicated by the input information.

2. The control device according to claim 1, characterized in that: The system further includes a post-change transition diagram estimating unit that estimates a transition diagram when the assignment state of the task is changed according to the option indicated by the input information.

3. The control device according to claim 2, characterized in that: The post-change transition map estimation unit estimates a transition map based on the log data.

4. The control device according to any one of claims 1 to 3, characterized in that: Also features: an option display unit that displays the options generated by the option generation unit; as well as The abstraction unit changes the degree of abstraction of the display contents displayed by the transition diagram display unit and the option display unit based on the identification information indicating the attribute of the user.

5. The control device according to any one of claims 1 to 3, characterized in that: The numerical control device includes the control device.

6. The control device according to any one of claims 1 to 3, characterized in that: The control device is a device separate from the numerical control device.

7. The control device according to any one of claims 1 to 3, characterized in that: The restriction indicates a combination of tasks that cannot be processed in parallel among the plurality of tasks constituting the software.

8. The control device according to any one of claims 1 to 3, characterized in that: Also features: a state observation unit that observes, as a state variable, information indicating the execution state of the task estimated when the assignment state of the task is changed according to the execution state of the task included in the transition diagram displayed by the transition diagram display unit and the change information; A learning unit that learns the allocation state of the task according to the data set created based on the state variable; as well as An action selection unit selects an option to be applied from the options generated by the option generation unit based on the learning result of the learning unit, and outputs the input information indicating the selected option to the input reception unit.

9. A machine learning device, characterized in that have: a state observation unit that observes, as a state variable, information indicating the execution state of the task estimated when the assignment state of the task is changed according to the past execution state of each of the plurality of computing units and the change information obtained by the control device according to any one of claims 1 to 3; and A learning unit learns the allocation state of the tasks according to a data set created based on the state variables.

10. A control method, comprising determining a method of allocating tasks of a numerical control device, wherein the numerical control device allocates the tasks constituting software to a plurality of computing units respectively and causes the tasks to be executed, The control method comprises the following steps: Based on log data acquired from the numerical control device and including information identifying a computing unit that executed the task in the past and a timing at which the task was executed in the past, displaying the execution status of the task of each of the plurality of computing units in a transition diagram represented in time series; Based on the limitations of the software, generating options for a method of changing the assignment status of the task displayed in the transition diagram; receiving input information representing the option selected from the generated options; as well as According to the option indicated by the input information, change information for changing the assignment status of the task is output.

Citation Information

Patent Citations

  • Machine learning device, control device, and machine learning program

    JP2019003271A

  • Facility operation display device, air-conditioning system, and program

    CN102473398A

  • Numerical control device and numerical control method

    CN109308052A