Optimization method, optimization device, and optimization system for substrate production program
Patent Information
- Application Number
- JP2025525528
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Filing Date
- 2024-07-25
- Publication Date
- 2025-12-09
Abstract
Description
Optimization method, optimization device, and optimization system for board production program
[0001] The present invention relates to a technique for optimizing a production program that defines conditions for mounting components onto a board on a component mounting line.
[0002] A technology is known for producing boards as planned in a production plan by operating a component mounting line in accordance with conditions defined in a production program that indicates the execution of a predetermined production plan and having the component mounting line mount components onto boards. The conditions defined in the production program include the types of components to be set on the component mounting line, the positions at which the components are set on the component mounting line, and the order in which the components are mounted on the boards. Furthermore, optimization of the production program is generally performed to efficiently execute board production. In this case, it is important to reduce the calculation time required for optimizing the production program.
[0003] For example, in Patent Document 1, multiple algorithms for optimization are prepared, and the same production data is sent to multiple computers, and each computer executes optimization for the same production data using a different algorithm. In this way, by having the multiple computers execute optimization in parallel using different algorithms, an optimized solution can be obtained in a short time using the most suitable algorithm from among the multiple algorithms.
[0004] Patent No. 6025161
[0005] However, the technology of D1 causes multiple computers to each optimize the same production data. Therefore, when optimizing a production program for executing a predetermined production plan using this technology, multiple computers optimize the same production program. This method leaves room for improvement in two respects. First, each of the multiple computers requires calculation time to optimize the entire production program, leaving room for improvement in reducing the calculation time required for optimizing the production program. Second, using multiple computers to optimize the same production program requires preparing many computers. The former is an inefficient use of the resource time, and the latter is an inefficient use of the resource equipment (computers). Therefore, there was a need to make effective use of at least one of the resources.
[0006] The present invention has been made in view of the above-mentioned problems, and has as its object to enable efficient use of resources (computing time or facilities) required for optimizing a production program.
[0007] The method for optimizing a board production program according to the present invention comprises the steps of: acquiring optimization target data including a production program that specifies conditions for mounting components on a board on a component mounting line; executing an allocation process that allocates N (N is an integer greater than or equal to 2) different pieces of element data included in the optimization target data to Q (Q is an integer greater than or equal to 2 and less than or equal to N) arithmetic units; and executing a parallel optimization process in which the Q arithmetic units perform, in parallel, operations to optimize the element data that have been allocated to them in the allocation process.
[0008] The optimization device for a board production program according to the present invention comprises: a production program acquisition unit that acquires optimization target data including a production program that specifies conditions for mounting components on a board on a component mounting line; an allocation process execution unit that allocates N (N is an integer greater than or equal to 2) different pieces of element data included in the optimization target data to Q (Q is an integer greater than or equal to 2 and less than or equal to N) arithmetic units; and a parallel optimization process execution unit that causes each of the Q arithmetic units to execute in parallel an operation that optimizes the allocated element data.
[0009] The optimization system for a board production program according to the present invention comprises a management calculation device and a plurality of execution calculation devices. The management calculation device has a production program acquisition unit that acquires optimization target data including a production program that specifies the conditions for mounting components on a board on a component mounting line, and an allocation processing execution unit that allocates N (N is an integer greater than or equal to 2) different pieces of element data included in the optimization target data to Q (Q is an integer greater than or equal to 2 and less than or equal to N) execution calculation devices out of the plurality of execution calculation devices, and each of the Q execution calculation devices executes calculations in parallel to optimize the assigned element data.
[0010] In the present invention (optimization method, optimization device, and optimization system for a board production program) configured in this manner, N (N is an integer greater than or equal to 2) data elements included in optimization target data including a production program are assigned to Q arithmetic units (execution arithmetic units). Each of the Q arithmetic units then executes an operation in parallel to optimize the assigned data elements. In this way, the present invention decomposes optimization target data including a production program into N data elements, and causes the Q arithmetic units to execute optimization of the N data elements in parallel. As a result, it is possible to efficiently utilize the resources (arithmetic time) required for optimizing a production program, i.e., to shorten the arithmetic time required for optimizing a production program.
[0011] Alternatively, the optimization method for a board production program may be configured such that, in the allocation process, N element conditions, each of which can be optimized in parallel, out of M element conditions (where M is an integer equal to or greater than N) included in the conditions defined by the production program, are assigned to Q arithmetic units as N element data, and in the parallel optimization process, the Q arithmetic units execute in parallel the operations to optimize the element conditions assigned to them in the allocation process. In this configuration, of M element conditions (where M is an integer equal to or greater than 2) included in the conditions defined by the production program, N element conditions (where N is an integer equal to or greater than M) that can be optimized in parallel are assigned to Q arithmetic units (execution arithmetic units). Each of the Q arithmetic units then executes in parallel the operations to optimize the assigned element conditions. In other words, rather than having a single arithmetic unit execute the optimization of the entire production program, the conditions defined by the production program are decomposed into M element conditions, and then N of the M element conditions are optimized in parallel by the Q arithmetic units. As a result, the calculation time required for optimizing the production program can be reduced.
[0012] Furthermore, the optimization method for a board production program may be configured so that, when N is less than M, calculations for optimizing (M-N) element conditions, which are different from the N element conditions, among the M element conditions, are executed at a timing different from that of the parallel optimization process. In this configuration, the calculations for optimizing the (M-N) element conditions can be executed at an appropriate timing.
[0013] Furthermore, the component mounting line may each have multiple setting positions for setting components, the production program may define conditions for executing N setup groups, and in each of the N setup groups, after the setup work of setting components at the setting positions is performed, the components are mounted in sequence on multiple types of boards. In the allocation process, the conditions for executing the setup groups are treated as element conditions, and the N element conditions corresponding to the N setup groups are assigned to Q arithmetic units. In this configuration, the conditions defined in the production program are decomposed into M element conditions, including the N element conditions corresponding to the N setup groups. The optimization of the N element conditions is then performed in parallel by the Q arithmetic units. As a result, the calculation time required for optimizing the production program can be reduced.
[0014] The component mounting line may have multiple setting positions for setting components, the production program may define conditions for executing a setup group, and after the setup work of setting components at the setting positions is performed in the setup group, the components set at the setting positions are mounted in order on N types of boards. The allocation process may treat conditions indicating the order in which components are to be mounted on one type of board as element conditions, and allocate N element conditions corresponding to each of the N types of boards to Q arithmetic units. In this configuration, the conditions defined in the production program are decomposed into M element conditions, each of which includes N element conditions corresponding to each of the N types of boards. The optimization of the N element conditions is then performed in parallel by the Q arithmetic units. As a result, the calculation time required for optimizing the production program can be reduced.
[0015] Furthermore, the optimization method for a board production program may be configured to include the steps of: executing a component position optimization process that optimizes the components to be set in the set positions during setup work before the allocation process; waiting for the completion of the optimization of N element conditions executed by Q arithmetic units; determining, upon completion of the optimization of the N element conditions, whether or not the component position optimization process needs to be re-executed based on the results of the optimization of the N element conditions; and, if it is determined that the component position optimization process needs to be re-executed, executing the component position optimization process, the allocation process, and the parallel optimization process. With this configuration, it is possible to optimize the component setting positions based on the results of the optimization of N element conditions executed in parallel after waiting for their completion, thereby obtaining a more appropriate production program.
[0016] The component mounting line may include N mounters arranged in series, the production program may specify conditions for transporting boards to the N mounters in sequence and for each of the N mounters to mount components on the board, and the allocation process may treat conditions indicating the order in which each mounter mounts components on a board as element conditions, and allocate the N element conditions corresponding to each of the N mounters to Q arithmetic units. In this configuration, the conditions specified in the production program are broken down into M element conditions, each of which includes N element conditions corresponding to each of the N mounters. The Q arithmetic units then perform optimization of the N element conditions in parallel. As a result, the calculation time required for optimizing the production program can be reduced.
[0017] Furthermore, the optimization method for a board production program may be configured to include the steps of: executing a component position optimization process that optimizes the components to be set in N mounters before the allocation process; waiting for the completion of the optimization of N element conditions executed by Q arithmetic units; determining, upon completion of the optimization of the N element conditions, whether or not the component position optimization process needs to be re-executed based on the results of the optimization of the N element conditions; and, if it is determined that the component position optimization process needs to be re-executed, executing the component position optimization process, the allocation process, and the parallel optimization process. With this configuration, it is possible to wait for the completion of the optimization of N element conditions executed in parallel, and then optimize the component setting positions based on the results, thereby obtaining a more appropriate production program.
[0018] Various specific embodiments of the Q arithmetic devices are possible. For example, the optimization method for a board production program may be configured so that the production program is acquired by receiving optimization target data transmitted from a specific terminal device, and the Q arithmetic devices are Q cloud servers. Alternatively, the optimization method for a board production program may be configured so that the production program is acquired by receiving optimization target data transmitted from a specific terminal device, and the Q arithmetic devices are Q servers connected to the terminal device via a local area network.
[0019] Furthermore, the optimization method for a board production program may be configured such that, in the allocation process, N different production programs included in the optimization target data are assigned to Q arithmetic units as N pieces of element data, and, in the parallel optimization process, the Q arithmetic units execute, in parallel, operations to optimize the production programs assigned to them in the allocation process. In this configuration, N different production programs (N is an integer greater than or equal to 2 and less than or equal to M) are assigned to the Q arithmetic units. Then, each of the Q arithmetic units executes, in parallel, operations to optimize its assigned production program. In other words, multiple arithmetic units are not used to optimize the same production program, but are used to optimize different production programs. As a result, resources (facilities) required for optimizing the production programs can be used efficiently.
[0020] According to the present invention, it is possible to reduce the calculation time required to optimize a production program.
[0021] 7 is a block diagram schematically showing an optimization system according to the present invention and a component mounting line that executes a production program optimized by the optimization system. FIG. 8 is a plan view schematically showing the configuration of an example of a component mounter. FIG. 9 is a flowchart showing an example of control executed by a local server for optimizing a production program. FIG. 10 is a flowchart showing a first example of control executed by the optimization system for optimizing a production program. FIG. 11 is a timing chart showing a first example of operations executed according to the flowchart of FIG. 4. FIG. 12 is a timing chart showing a first example of operations executed according to the flowchart of FIG. 4. FIG. 13 is a timing chart showing a second example of operations executed according to the flowchart of FIG. 4. FIG. 14 is a timing chart showing a second example of operations executed according to the flowchart of FIG. 15. FIG. 15 is a flowchart showing a second example of control executed by the optimization system for optimizing a production program. FIG. 16 is a first example of a timing chart schematically showing the content of calculations executed according to the flowchart of FIG. 16. FIG. 17 is a timing chart showing an operation of mounting components E on three types K(a) to K(c) in order on the component mounting line LN. FIG. 18 is a timing chart showing an operation of mounting components E on three types K(a) to K(c) in order on the component mounting line LN. Fig. 8 is a diagram showing a second example of a timing chart schematically showing the contents of calculations executed according to the flowchart of Fig. 7. Fig. 9 is a diagram showing an example of a timing chart for executing optimization of a plurality of production programs in parallel.
[0022] Figure 1 is a block diagram showing an optimization system according to the present invention and a component mounting line that executes a production program optimized by the optimization system. The component mounting line LN is installed on a user's site PR and includes multiple component mounters M (three in the example of Figure 1) lined up in series in the X direction (horizontal direction). Boards B (Figure 2) are loaded onto these component mounters M in sequence, and each component mounter M mounts a component E (Figure 2) onto the loaded board B. In this way, the multiple component mounters M share the task of mounting components E on the same board B, producing a board B with components mounted on it.
[0023] The user's site PR is also provided with a local server SI and a local area network NW, which interconnects multiple mounters M and the local server SI. The local server SI is a server computer that manages the component mounting line LN. In particular, the local server SI manages the component mounting line LN based on a production program PG that causes the component mounting line LN to execute a production plan indicating the production of a predetermined number of boards of a predetermined variety. In other words, the multiple mounters M on the component mounting line LN mount components E onto boards B by operating in accordance with the production program PG.
[0024] In contrast, the optimization system SY that optimizes the production program PG is installed in a location separate from the site PR, in other words, on the cloud. This optimization system SY includes a management server Sm and multiple execution servers Se1, Se2, Se3, ..., each of which is a computer that functions as a cloud server. Note that, hereinafter, unless otherwise specified, the execution servers Se1, Se2, Se3 will be referred to as the execution server Se. The management server Sm manages the multiple execution servers Se1, Se2, Se3, ..., and communicates with the local server S1 via the Internet communication network. The operation of this optimization system SY will be described later.
[0025] 2 is a plan view showing a schematic configuration of an example of a component mounter. In FIG. 2, the horizontal X direction, the horizontal Y direction perpendicular to the X direction, and the vertical Z direction are appropriately indicated. This component mounter M mounts small piece-like electronic components E, such as integrated circuits, transistors, and capacitors, on a substrate B.
[0026] 2, the component mounter M includes a transport unit 21 that transports a board B in the X direction (board transport direction). This transport unit 21 has a pair of conveyors 211 arranged in parallel in the X direction, and transports the board B in the X direction using the conveyors 211. The spacing between these conveyors 211 is changeable in the Y direction (width direction), which is perpendicular to the X direction, and the transport unit 21 adjusts the spacing between the conveyors 211 according to the width of the board B being transported. This transport unit 21 transports the board B from the upstream side in the X direction, which is the board transport direction, to a predetermined work position 212, and transports the board B, on which components E have been mounted at the work position 212, from the work position 212 to the downstream side in the X direction.
[0027] This component mounter M is provided with a total of four component supply carts 22. Specifically, two component supply carts 22 are lined up in the X direction on each side of the transport unit 21 in the Y direction. Each component supply cart 22 has a plurality of tape feeders 23 lined up in the X direction, and a plurality of component supply reels are arranged corresponding to the plurality of tape feeders 23. A component storage tape is wound around the component supply reel. This component storage tape has a plurality of pockets arranged in a row, and components E are stored in each pocket. Each tape feeder 23 has a component supply position 231 at its tip on the transport unit 21 side in the Y direction, and intermittently feeds the component storage tape pulled out from the component supply reel toward the transport unit 21, thereby supplying the components E in the component storage tape to the component supply position 231.
[0028] Each component supply cart 22 has a plurality of feeder set positions F23 aligned in the X direction. A tape feeder 23 can be detachably set at the feeder set positions F23. When a tape feeder 23 is set at the tape feeder 23, the component E attached to the tape feeder 23 is set at the feeder set position F23.
[0029] The component mounter M is also provided with a pair of Y-axis rails 241 extending in the Y direction, a Y-axis ball screw 242 extending in the Y direction, and a Y-axis motor My that rotates and drives the Y-axis ball screw 242. An X-axis rail 244 is supported on the pair of Y-axis rails 241 so as to be movable in the Y direction and is fixed to the nut of the Y-axis ball screw 242. An X-axis ball screw 245 extending in the X direction and an X-axis motor Mx that rotates and drives the X-axis ball screw 245 are attached to the X-axis rail 244. The component mounter M is also provided with a head unit 25, which is supported on the X-axis rails 244 so as to be movable in the X direction and is fixed to the nut of the X-axis ball screw 245. Therefore, the Y-axis motor My can rotate the Y-axis ball screw 242 to move the head unit 25 in the Y direction, or the X-axis motor Mx can rotate the X-axis ball screw 245 to move the head unit 25 in the X direction.
[0030] 2, the head unit 25 is an inline type having multiple mounting heads 5 arranged linearly in the X direction. However, the specific configuration of the head unit 25 is not limited to the example in FIG. 1, and the head unit 25 may be a rotary type having multiple mounting heads 5 arranged circumferentially. Furthermore, the number of mounting heads 5 that the head unit 25 has is not limited to multiple, and may be a single mounting head. A nozzle is detachably attached to the bottom end of each mounting head 5, and the mounting head 5 picks up components E by suction using the nozzle.
[0031] In the component mounter M, the mounting head 5 is moved by the X-axis motor Mx and the Y-axis motor My, so that the nozzle 51 of the mounting head 5 faces the component E supplied to the component supply position 231 from above. The nozzle 51 is then lowered to abut the upper surface of the component E supplied to the component supply position 231, and then the nozzle 51 picks up the component E. The head unit 25 then raises the nozzle 51 of the mounting head 5 to pick up the component E from the component supply position 231. The mounting head 5 is then moved by the X-axis motor Mx and the Y-axis motor My, so that the component E to be picked up by the nozzle 51 of the mounting head 5 faces the land of the board B from above. The angle of the component E picked up by the nozzle 51 relative to the land is then adjusted, and the nozzle 51 is then lowered to place the component E on the land of the board B.
[0032] Next, we will explain the optimization of the production program PG. The production program PG specifies the conditions for mounting components E on the board B on the component mounting line LN in order to have the component mounting line LN execute a predetermined production plan. This production program PG includes a variety of conditions, but at least includes: component position conditions...conditions that specify the positions (specifically, feeder set positions F23) at which various components E are set on each component mounter M; and mounting order conditions...conditions that specify the components E to be mounted on each mounting point on the board B and the order in which the components E are mounted on each mounting point. In optimizing the production program PG, at least the component position conditions and mounting order conditions are optimized in order to shorten the time required to complete the execution of the production plan.
[0033] The production program PG defines the conditions (overall conditions) required for the component mounting line LN in order to execute the production plan, and these overall conditions can be considered to be a collection of multiple element conditions. In the above example, the overall conditions defined by the production program PG are a collection of component position conditions, mounting order conditions, etc., and these overall conditions can be considered to be separated into element conditions, such as component position conditions and mounting order conditions. The purpose of separating the overall conditions into multiple element conditions in this way is to optimize two or more element conditions in parallel, thereby reducing the calculation time required to optimize the production program PG. Note that there are variations and options for how element conditions can be defined, as will be specifically described later.
[0034] 3 is a flowchart showing an example of control executed by the local server for optimizing a production program. In step S101, the local server S1 creates an optimization execution list in response to user operations on the UI (User Interface). This optimization execution list indicates one or more production programs PG for which the user requests optimization execution.
[0035] In step S102, the local server S1 determines whether an execution command for optimizing the production program PG has been input through an operation on the UI (step S102). When the execution command has been input ("YES" in step S102), the local server S1 requests cloud authentication from the user (step S103). Specifically, the local server S1 performs cloud authentication by inputting the user's ID and password through the UI.
[0036] In the following step S104, the local server S1 uploads the production programs PG included in the optimization execution list to the management server Sm of the optimization system SY. Then, when the local server S1 confirms that the optimization of the production programs PG in the optimization system SY is complete ("YES" in step S105), it downloads the optimized production programs PG from the management server Sm (step S106) and displays the results on the display (step S107). Note that when multiple production programs PG have been uploaded, they may be downloaded in order starting with the production programs PG that have been completely optimized, or may be downloaded all at once after the optimization of all the production programs PG has been completed.
[0037] 4 is a flowchart showing a first example of control executed by the optimization system for optimizing a production program. When the management server Sm of the optimization system SY receives a production program PG uploaded from the local server S1, it determines that optimization of the production program PG has been requested ("YES" in step S201). The optimization system SY then analyzes the number of element conditions included in the production program PG and determines the number of execution servers Se required to optimize the production program PG (step S202). If the number of currently activated execution servers Se is insufficient to meet the number required to optimize the production program PG, the local server S1 activates the missing execution servers Se (step S203).
[0038] Steps S204 to S206 are executed according to the number of production programs PG included in the optimization execution list. The example in Figure 4 corresponds to a case where two production programs PG1 and PG2 are included, and two systems of steps S204 to S206 corresponding to the two production programs PG are executed by different execution servers Se. The content of steps S204 to S206 executed for the production programs PG1 and PG2 is similar, so here we will explain steps S204 to S206 executed for the production program PG1.
[0039] In step S204, the management server Sm assigns multiple element conditions included in the conditions defined by the production program PG1 to different execution servers Se. The management server Sm then causes each execution server Se to optimize the assigned element conditions (step S205). Once each execution server Se has completed optimizing the assigned element conditions ("YES" in step S206), the management server Sm transmits the production program PG with the optimized element conditions completed to the local server S1 (step S207). In other words, the download of the production program PG is performed in step S106 of FIG. 3. In step S208, the management server Sm suspends unnecessary execution servers Se that will not be used in future calculations.
[0040] 5A and 5B are timing charts illustrating a first example of the operations executed according to the flowchart of FIG. 4. FIG. 5A shows a production plan PL. The production plan PL illustrates setups A(a) through A(f) executed on the component mounting line LN and the mounting of components E onto boards B of types K(a) through K(f). Here, setups A(a) through A(f) are tasks for setting components E to be mounted onto boards B of types K(a) through K(f) at the feeder set position F23 of each mounter M on the component mounting line LN, and are performed by a user or a robot. Note that, hereinafter, setups A(a) through A(f) will be referred to as setup A unless otherwise specified, and products K(a) through K(f) will be referred to as product K unless otherwise specified.
[0041] The production plan PL in Figure 5A shows that setup A, in which components E are set at the feeder set position F23 of each mounter M on the component mounting line LN, and component mounting, in which components E set in setup A are mounted on boards B of type K, are repeated while changing the types K(a) to K(f) of boards B. Specifically, the following operations are performed: - Setup A(a) is executed for components E to be mounted on boards B of type K(a); - Components E set in setup A(a) are mounted on boards B of type K(a); - Setup A(b) is executed for components E to be mounted on boards B of type K(b); - Components E set in setup A(b) are mounted on boards B of type K(b). By repeating the following operations, mounting of components E on boards B of types K(a) to K(f) is performed.
[0042] The production program PG, which indicates the conditions required for the component mounting line LN to execute this production plan PL, indicates, for multiple product types K(a) to K(f), component position conditions that stipulate the positions at which components E are set in setup A and mounting order conditions that stipulate the order in which the components E set in setup A are to be mounted on boards B of product type K. In the example shown in FIG. 5B , a component position condition Cp and a mounting order condition Cm that correspond to the same product type K are treated as one element condition Ce, and the production program PG is decomposed into six element conditions Ce that respectively correspond to the multiple product types K(a) to K(f). Each element condition Ce is then assigned to a different execution server Se.
[0043] In other words, execution server Se1 performs a calculation to optimize (consider) component position conditions Cp, which define the positions at which components E are set in setup A(a), and then optimize mounting order conditions Cm, which define the order in which components E set in setup A(a) are to be mounted on board B of type K(a). Similarly, execution server Se2 performs a calculation to optimize component position conditions Cp, which define the positions at which components E are set in setup A(b), and then optimize mounting order conditions Cm, which define the order in which components E set in setup A(b) are to be mounted on board B of type K(b). Similarly, execution servers Se3 to Se6 perform calculations to optimize component position conditions Cp and mounting order conditions Cm for types K(c) to K(f). At this time, execution servers Se1 to Se6 perform their respective calculations in parallel. Here, "multiple calculations being executed in parallel" means that the periods during which the multiple calculations are executed at least partially overlap.
[0044] In this example, the six element conditions Ce included in the conditions defined by the production program PG are assigned to six execution servers Se1 to Se6 (computing devices, execution computing devices) (step S204). Each of the six execution servers Se1 to Se6 then executes a calculation in parallel to optimize the assigned element conditions Ce (step S205). In this way, in the example above, rather than having a single execution server Se execute the overall optimization of the production program PG, the conditions defined by the production program PG are broken down into six element conditions Ce, and the six execution servers Se1 to Se6 then execute the optimization of the six element conditions Ce in parallel. As a result, the calculation time required to optimize the production program PG can be reduced.
[0045] Figures 6A and 6B are timing charts showing a second example of the operation executed in accordance with the flowchart of Figure 4. Figure 6A shows a production plan PL. The difference between the production plan PL of Figure 5A and the production plan PL of Figure 6A is that in the production plan PL of Figure 6A, components E to be mounted on boards B of multiple product types K are set in a single setup A (common setup). In other words, the production plan PL indicates that the following operations are executed in order: ・Execute setup A (abc) for components E to be mounted on boards B of product types K(a) to K(c) ・Mount components E set in this setup A (abc) on boards B of product type K(a) ・Mount components E set in this setup A (abc) on boards B of product type K(b) ・Mount components E set in this setup A (abc) on boards B of product type K(c) ・Execute setup A (def) for components E to be mounted on boards B of product types K(d) to K(f) ・Mount components E set in this setup A (def) on boards B of product type K(d) ・Mount components E set in this setup A (def) on boards B of product type K(e) ・Mount components E set in this setup A (def) on boards B of product type K(f)
[0046] Here, the operation of setting component E in setup A and mounting the component E set in setup A on boards B of multiple types K is referred to as a "setup group G." In the above example, setup group G that sets component E in setup A (abc) and mounts the component E set in setup A (abc) on boards B of multiple types K(a) to K(c), and setup group G that sets component E in setup A (def) and mounts the component E set in setup A (def) on boards B of multiple types K(d) to K(f), are executed in sequence. In other words, two setup groups G are executed in sequence.
[0047] The production program PG, which indicates the conditions required for the component mounting line LN to execute this production plan PL, indicates, for each setup A, a component position condition Cp that specifies the position at which components E are to be set in a setup A common to multiple boards B of multiple product types K, and a mounting order condition Cm that specifies the order in which the components E set in that setup A are to be mounted on each of the multiple boards B of multiple product types K. In other words, in the example shown in FIG. 6B , the production plan PL decomposes the production program PG into two element conditions Ce that correspond to two setups A(abc) and A(def), respectively, with the component position condition Cp and mounting order condition Cm corresponding to one setup A being treated as one element condition. Each element condition Ce is then assigned to a different execution server Se.
[0048] That is, the execution server Se1 executes a calculation to optimize the element conditions Ce assigned to the execution server Se1. Specifically, the execution server Se1 executes the following calculations in order: Optimization (examination) of the component position conditions Cp that stipulate the position at which components E are set in the setup A (abc) Optimization of the mounting order conditions Cm that stipulate the order in which components E set in the setup A (abc) are to be mounted on the board B of type K (a) Optimization of the mounting order conditions Cm that stipulate the order in which components E set in the setup A (abc) are to be mounted on the board B of type K (b) Optimization of the mounting order conditions Cm that stipulate the order in which components E set in the setup A (abc) are to be mounted on the board B of type K (c)
[0049] Furthermore, the execution server Se2 executes a calculation to optimize the element conditions Ce assigned to the execution server Se2. Specifically, the execution server Se2 executes the following calculations in order: optimization (examination) of the component position conditions Cp that stipulate the position at which components E are set in the setup A(def); optimization of the mounting order conditions Cm that stipulate the order in which components E set in the setup A(def) are to be mounted on boards B of type K(d); optimization of the mounting order conditions Cm that stipulate the order in which components E set in the setup A(def) are to be mounted on boards B of type K(e); optimization of the mounting order conditions Cm that stipulate the order in which components E set in the setup A(def) are to be mounted on boards B of type K(f).
[0050] At this time, the execution servers Se1 and Se2 execute their respective operations in parallel. That is, the execution server Se1 executes an operation to optimize the element conditions Ce assigned to it, and the execution server Se2 executes an operation to optimize the element conditions Ce assigned to it, in parallel.
[0051] In this example, two element conditions Ce included in the conditions defined by the production program PG are assigned to two execution servers Se1 and Se2 (computing devices, execution computing devices) (step S204). Then, the two execution servers Se1 and Se2 each execute a computation in parallel to optimize the assigned element conditions Ce (step S205). In this way, in the example above, rather than having one execution server Se execute the overall optimization of the production program PG, the conditions defined by the production program PG are decomposed into two element conditions Ce, and the optimization of the two element conditions Ce is then executed in parallel by two computing devices. As a result, the computation time required to optimize the production program PG can be reduced.
[0052] Furthermore, the component mounting line LN has multiple feeder set positions F23 (set positions) for setting components E. The production program PG defines conditions for executing two setup groups G ( FIG. 6A ). In each of the two setup groups G, a setup A (setup operation) is performed to set components E at the feeder set positions F23 (set positions), and then the components E are mounted sequentially on multiple boards B of different product types K. In step S204 (assignment processing), the conditions for executing the setup groups G are treated as element conditions Ce, and two element conditions Ce corresponding to each of the two setup groups G are assigned to two execution servers Se1 and Se2 ( FIG. 6B ). In this configuration, the conditions defined in the production program PG are decomposed into two element conditions Ce corresponding to the two setup groups G (step S204). The two element conditions Ce are then optimized in parallel by the two execution servers Se1 and Se2 (step S205). As a result, it is possible to reduce the calculation time required to optimize the production program PG.
[0053] Incidentally, one setup group G may be further decomposed, with one component position condition Cp and multiple mounting order conditions Cm each serving as an element condition Ce. For example, this can be implemented as shown in FIGS. 7 and 8. FIG. 7 is a flowchart showing a second example of control executed by the optimization system for optimizing the production program, and FIG. 8 is a first example of a timing chart schematically showing the content of the calculations executed according to the flowchart of FIG. 7. Note that FIG. 8 corresponds to an example in which, in a setup group G, components E are mounted in order on two boards B of type K after one setup A.
[0054] In step S301, the management server Sm assigns one execution server Se1 to optimize (consider) the part position condition Cp, which specifies the position where part E is to be set in setup A. Then, in step S302, the management server Sm causes the execution server Se1 to optimize the part position condition Cp (step S302). As a result, as shown in FIG. 8 , the execution server Se1 optimizes the part position condition Cp from time t0 to t2.
[0055] Upon completion of the optimization of the component position conditions Cp, the management server Sm assigns the optimization of multiple (two) mounting order conditions Cm, each of which specifies the order in which components E set in accordance with the optimized component position conditions Cp are to be mounted on multiple (two) boards B of type K, to multiple (two) different execution servers Se1 and Se2 (step S303). Then, in step S304, the management server Sm causes the two execution servers Se1 and Se2 to optimize the mounting order conditions Cm assigned to them (step S304). As a result, as shown in FIG. 8 , the execution server Se1 optimizes the mounting order conditions Cm assigned to it from time t2 to t5, and the execution server Se2 optimizes the mounting order conditions Cm assigned to it from time t2 to t6. In this way, the two execution servers Se1 and Se2 execute in parallel the optimization of the mounting order conditions Cm for the two different boards B of different product types K on which components E are to be mounted in the same setup group G.
[0056] At time t6, when the optimization of the mounting order condition Cm of each of the execution servers Se1 and Se2 is completed ("YES" in step S305), the management server Sm assigns the execution server Se2 with the task of determining whether steps S301 to S304 need to be re-executed (step S306). The execution server Se2 then executes the assignment and determines whether the task needs to be re-executed (step S307). That is, as described above, on the component mounting line LN, a single board B is sequentially loaded into multiple mounters M, and each of the multiple mounters M mounts components E on the board B in sequence. If two mounters M exist among the multiple mounters M, the difference in the time (takt time) required for the mounters M to complete the mounting of the components E assigned to them is equal to or greater than a predetermined time, it is determined that steps S301 to S304 need to be re-executed ("YES" in step S307). On the other hand, if the difference in takt time between any two of the multiple component mounters M is less than a predetermined time, it is determined that steps S301 to S304 do not need to be re-executed ("NO" in step S307).
[0057] In the example of FIG. 8 , the execution server Se2 determines whether re-execution is necessary between times t6 and t7, and determines that re-execution is necessary ("YES" in step S307). Therefore, the management server Sm returns to step S301 and assigns one execution server Se2 to optimize (consider) the component position condition Cp, which specifies the position where component E is to be set in setup A. In step S302, the management server Sm causes the execution server Se2 to optimize the component position condition Cp (step S302). At this time, the execution server Se2 determines the component position condition Cp so that the difference in takt time between multiple mounters M is reduced. For example, the execution server Se2 determines to move component E to be mounted on board B from the mounter M with the longest takt time to the mounter M with the shortest takt time (optimization of the component position condition Cp). In the example of FIG. 8, the execution server Se2 executes optimization of the part position condition Cp from time t7 to time t9.
[0058] Upon completion of the optimization of the component position condition Cp, the management server Sm assigns the optimization of multiple (two) mounting order conditions Cm, each of which specifies the order in which the components E set in the setup A are to be mounted on multiple (two) boards B of type K, to multiple (two) different execution servers Se2 and Se3 (step S303). Then, in step S304, the management server Sm causes the two execution servers Se2 and Se3 to optimize the mounting order conditions Cm assigned to them (step S304). As a result, as shown in FIG. 8 , the execution server Se2 optimizes the mounting order condition Cm assigned to it from time t9 to t13, and the execution server Se3 optimizes the mounting order condition Cm assigned to it from time t10 to t13. In this way, the two execution servers Se2 and Se3 execute in parallel the optimization of the mounting order conditions Cm corresponding to the two different boards B of product type K on which components E are to be mounted in the same setup group G.
[0059] At time t13, when the optimization of the mounting order conditions Cm for each of the execution servers Se2 and Se3 is completed ("YES" in step S305), the management server Sm assigns the task of determining whether steps S301 to S304 need to be re-executed to the execution server Se2 (step S306). The execution server Se2 then executes the assigned determination (step S307). In the example of FIG. 8, the management server Sm determined whether re-execution was necessary between times t11 and t12 and determined that re-execution was not necessary ("NO" in step S306). Therefore, the management server Sm terminates the flowchart of FIG. 7.
[0060] Here, in the loop that repeats steps S301 to S307, the management server Sm changes the execution server Se to which the optimization of the same element condition Ce is assigned with each different number of loops. For example, the management server Sm assigns the optimization of the component position condition Cp to the execution server Se1 in the first loop, but assigns it to the execution server Se2 in the second loop. Similarly, the management server Sm assigns the optimization of the mounting order condition Cm for the same type K board B to the execution server Se1 in the first loop, but assigns it to the execution server Se2 in the second loop. This makes it possible to dynamically change the execution server Se to which the optimization of the element condition Ce is assigned depending on the operating status of the execution server Se.
[0061] In the above example, of the three element conditions Ce (component position condition Cp and two mounting order conditions Cm) included in the conditions defined by the production program PG, two element conditions Ce (mounting order conditions Cm) for which calculations to optimize each of them can be executed in parallel are assigned to two execution servers Se (computing devices, execution computing devices) (step S303). Then, each of the two execution servers Se executes calculations to optimize the assigned mounting order conditions Cm in parallel (step S304). Thus, in the above example, rather than having one execution server Se execute the overall optimization of the production program PG, the conditions defined by the production program PG are decomposed into three element conditions Ce (component position condition Cp and two mounting order conditions Cm), and two execution servers Se execute the optimization of two of the three element conditions Ce (mounting order conditions Cm) in parallel. As a result, the calculation time required to optimize the production program PG can be reduced.
[0062] Furthermore, among the three element conditions Ce, a calculation for optimizing one component position condition Cp that is different from the two mounting order conditions Cm is executed at a timing (step S302) different from that of step S304 (parallel optimization process). With this configuration, the calculation for optimizing one component position condition Cp can be executed at an appropriate timing.
[0063] Furthermore, component mounting line LN has a plurality of feeder set positions F23 for setting components E. In response to this, production program PG defines conditions for executing setup group G, and in setup group G, after setup A (setup work) is executed to set components E at feeder set positions F23, the components E set at feeder set positions F23 are mounted in order on two product K boards B. In response to this, in step S303 (allocation process), a mounting order condition Cm indicating the order in which components E are to be mounted on one product K board B is treated as an element condition Ce, and two element conditions Ce (mounting order conditions Cm) corresponding respectively to the two product K boards B are allocated to two execution servers Se (computing devices) (step S303). In other words, the conditions defined in the production program PG are decomposed into three element conditions Ce (component position conditions Cp and two mounting order conditions Cm), including two element conditions Ce (mounting order conditions Cm) corresponding to the two boards B of type K. Then, the optimization of the two element conditions Ce (component position conditions Cp) is executed in parallel by the two execution servers Se (step S304). As a result, it is possible to reduce the calculation time required to optimize the production program PG.
[0064] Furthermore, step S302 (component position optimization process), which optimizes the component E to be set at the feeder set position F23 in setup A (setup work), is executed before step S303 (allocation process). Then, the system waits for the completion of the optimization of the two element conditions Ce (mounting order conditions Cm) executed by the two execution servers Se (step S305). When the optimization of the two element conditions Ce (mounting order conditions Cm) is completed ("YES" in step S305), a determination is made as to whether step S302 (component position optimization process) needs to be re-executed based on the results of the optimization of the two element conditions Ce (step S307). If it is determined that step S302 needs to be re-executed ("YES" in step S307), step S302 (component position optimization process), step S303 (allocation process), and step S304 (parallel optimization process) are executed. In this configuration, after waiting for the completion of the optimization of the two element conditions Ce (mounting order conditions Cm) executed in parallel, the position where the component E is set can be optimized based on the results, and a more appropriate production program PG can be obtained.
[0065] Here, a method for determining whether or not re-execution of step S307 is required will be described again using the specific example shown in Figures 9A and 9B. Figures 9A and 9B are timing charts showing the operation of mounting components E in order on three types K(a) to K(c) on a component mounting line LN. The execution server Se, which determines whether or not re-execution of step S307 is required, performs this semi-determination by predicting the timings shown in both figures based on the results of optimizing the component position conditions Cp and the mounting order conditions Cm. For example, such predictions can be made by simulating the operation of mounting components E in the order indicated by the mounting order conditions Cm while placing them in accordance with the component position conditions Cp.
[0066] 9A , there is a difference Δ in the time (takt time) required to mount a component E on one board B of type K(c) between mounters M2 and M3. Because this difference Δ is equal to or greater than a predetermined time, it is determined that step S302 needs to be re-executed ("YES" in step S307). Furthermore, in the re-executed step S302, the execution server Se determines that component E, which is to be mounted on board B of type K(c), should be moved from feeder set position F23 of mounter M2 to feeder set position F23 of mounter M3 (optimization of component position condition Cp).
[0067] 9B , there is a difference Δ in the time (takt time) required to mount a component E on one board B of product type K(a) between mounters M1 and M3. Because this difference Δ is equal to or greater than a predetermined time, it is determined that step S302 needs to be re-executed ("YES" in step S307). Furthermore, in the re-executed step S302, the execution server Se determines that component E, which is to be mounted on board B of product type K(a), should be moved from feeder set position F23 of mounter M1 to feeder set position F23 of mounter M3 (optimization of component position condition Cp).
[0068] In the example of Figure 5B, the component position condition Cp and the mounting order condition Cm for the component mounting line LN are treated as one element condition Ce. Therefore, the optimization of the mounting order condition Cm, which indicates the order in which each of the three component mounters M will mount components E on the board B, is executed in series by one execution server Se. However, the optimization of the mounting order condition Cm, which indicates the order in which each of the three component mounters M will mount components E on the board B, may also be executed in parallel by three execution servers Se. Such calculations can be executed as shown in Figures 7 and 10. Figure 10 is a second example of a timing chart schematically showing the contents of the calculations executed according to the flowchart of Figure 7.
[0069] In step S301, the management server Sm assigns one execution server Se1 to optimize (consider) the part position condition Cp, which specifies the position where part E is to be set in setup A. Then, in step S302, the management server Sm causes the execution server Se1 to optimize the part position condition Cp (step S302). As a result, as shown in FIG. 10 , the execution server Se1 optimizes the part position condition Cp from time t0 to t2.
[0070] When the optimization of the component position conditions Cp is completed, the management server Sm assigns the optimization of multiple (three) mounting order conditions Cm, which indicate the order in which each of the multiple (three) mounters M1, M2, and M3 will mount the components E on the board B, to multiple (three) different execution servers Se1, Se2, and Se3, assuming that the components E have been set according to the optimized component position conditions Cp (step S303). Then, in step S304, the management server Sm causes the three execution servers Se1, Se2, and Se3 to optimize the mounting order conditions Cm assigned to them (step S304). 10, the execution server Se1 optimizes the mounting order condition Cm for the mounter M1 assigned to the execution server Se1 from time t2 to t5, the execution server Se2 optimizes the mounting order condition Cm for the mounter M2 assigned to the execution server Se2 from time t2 to t7, and the execution server Se3 optimizes the mounting order condition Cm for the mounter M3 assigned to the execution server Se3 from time t2 to t4. In this way, the three execution servers Se1, Se2, and Se3 optimize the mounting order condition Cm for each of the three different mounters M1, M2, and M3 in parallel.
[0071] At time t7, when the optimization of the mounting order condition Cm for each of the execution servers Se1, Se2, and Se3 is completed ("YES" in step S305), the management server Sm assigns the determination of whether steps S301 to S304 need to be re-executed to the execution server Se2 (step S306). The execution server Se2 then executes the determination of whether the assignment needs to be performed (step S307). The determination method here is as described above.
[0072] In the example of FIG. 10 , the execution server Se2 determines whether re-execution is necessary between times t7 and t8, and determines that re-execution is necessary ("YES" in step S307). Therefore, the management server Sm returns to step S301 and assigns one execution server Se2 to optimize (consider) the part position condition Cp that defines the position where part E is to be set. In step S302, the management server Sm causes the execution server Se2 to optimize the part position condition Cp (step S302). The optimization method here is as described above. In the example of FIG. 10 , the execution server Se2 optimizes the part position condition Cp between times t8 and t10.
[0073] When the optimization of the component position conditions Cp is completed, the management server Sm assigns to the three different execution servers Se1, Se2, and Se4 the optimization of the three mounting order conditions Cm, which indicate the order in which the three mounters M1, M2, and M3 will mount the components E on the board B, on the assumption that the components E have been set in accordance with the optimized component position conditions Cp (step S303). Then, in step S304, the management server Sm causes the three execution servers Se1, Se2, and Se4 to optimize the assigned mounting order conditions Cm (step S304). 10, the execution server Se1 optimizes the mounting order condition Cm for the mounter M1 assigned to the execution server Se1 from time t10 to t14, the execution server Se2 optimizes the mounting order condition Cm for the mounter M2 assigned to the execution server Se2 from time t10 to t13, and the execution server Se4 optimizes the mounting order condition Cm for the mounter M3 assigned to the execution server Se4 from time t10 to t13. In this way, the three execution servers Se1, Se2, and Se4 optimize the mounting order condition Cm for the three different mounters M1, M2, and M3 in parallel.
[0074] At time t14, when the optimization of the mounting order condition Cm for each of the execution servers Se1, Se2, and Se4 is completed ("YES" in step S305), the management server Sm assigns the task of determining whether steps S301 to S304 need to be re-executed to the execution server Se1 (step S306). The execution server Se1 then executes the assigned task (step S307). In the example of FIG. 10, the execution server Se1 determines whether re-execution is necessary between times t14 and t15, and determines that re-execution is not necessary ("NO" in step S307). Therefore, the management server Sm ends the flowchart of FIG. 7.
[0075] In the above example, of the four element conditions Ce (component position condition Cp and three mounting order conditions Cm) included in the conditions defined by the production program PG, three element conditions Ce (mounting order conditions Cm) for which calculations to optimize each element condition Ce (mounting order conditions Cm) can be executed in parallel are assigned to three execution servers Se (computing devices, execution computing devices) (step S303). Then, each of the three execution servers Se executes calculations to optimize the assigned element conditions Ce (mounting order conditions Cm) in parallel (step S304). Thus, in the above example, rather than having one execution server Se execute the overall optimization of the production program PG, the conditions defined by the production program PG are decomposed into four element conditions Ce (component position condition Cp and three mounting order conditions Cm), and then three of the four element conditions Ce (mounting order conditions Cm) are optimized in parallel by the three execution servers Se. As a result, the calculation time required to optimize the production program PG can be reduced.
[0076] Furthermore, among the four element conditions Ce, a calculation to optimize one element condition Ce (component position condition Cp) that is different from the three element conditions Ce (mounting order condition Cm) is executed at a timing (step S302) different from that of step S304 (parallel optimization process). With this configuration, the calculation to optimize one element condition Ce (mounting order condition Cm) can be executed at an appropriate timing.
[0077] The component mounting line LN also includes three mounters M arranged in series, and the production program PG specifies conditions for transporting a board B to the three mounters M in sequence and for each of the three mounters M to mount a component E on the board B. In response to this, in step S303 (assignment processing), a mounting order condition Cm indicating the order in which one mounter M mounts a component E on the board B is treated as an element condition Ce, and three element conditions Ce (mounting order conditions Cm) corresponding to each of the three mounters M are assigned to three execution servers Se. In this configuration, the conditions specified in the production program PG are decomposed into four element conditions Ce (component position condition Cp and three mounting order conditions Cm), each including three element conditions Ce (mounting order conditions Cm) corresponding to each of the three mounters M. Then, optimization of the three element conditions Ce (mounting order conditions Cm) is executed in parallel by the three execution servers Se (step S304). As a result, it is possible to reduce the calculation time required to optimize the production program PG.
[0078] Furthermore, step S302 (component position optimization processing), which optimizes the components E to be set on the three mounters M, is executed before step S303 (allocation processing). Then, the system waits for the completion of the optimization of the three element conditions Ce (mounting order conditions Cm) executed by each of the three execution servers Se (step S305). Once the optimization of the three element conditions Ce (mounting order conditions Cm) is completed, a determination is made as to whether or not step S302 (component position optimization processing) needs to be re-executed based on the results of the optimization of the three element conditions Ce (mounting order conditions Cm) (step S307). If it is determined that step S302 (component position optimization processing) needs to be re-executed ("YES" in step S307), step S302 (component position optimization processing), step S303 (allocation processing), and step S304 (parallel optimization processing) are executed. In this configuration, after waiting for the completion of the optimization of the three element conditions Ce (mounting order conditions Cm) executed in parallel, the position where the component E is set can be optimized based on the results, and a more appropriate production program PG can be obtained.
[0079] As described above, in the above embodiment, step S204 or S303 corresponds to an example of the "allocation processing" of the present invention, step S205 or step S304 corresponds to an example of the "parallel optimization processing" of the present invention, step S302 corresponds to an example of the "component position optimization processing" of the present invention, the optimization system SY functions as the "optimization system" of the present invention, the management server Sm functions as the "production program acquisition unit," "allocation processing execution unit," "parallel optimization processing execution unit," "board production program optimization device," and "management calculation device" of the present invention, the execution server Se functions as the "calculation device" and "execution calculation device" of the present invention, and the execution server Se functions as the "cloud The local server S1 corresponds to an example of a "server" of the present invention, the local server S1 corresponds to an example of a "terminal device" of the present invention, the production program PG corresponds to an example of a "production program" or "optimization target data" of the present invention, the element condition Ce corresponds to an example of an "element condition" of the present invention, the component mounting line LN corresponds to an example of a "component mounting line" of the present invention, the component mounter M corresponds to an example of a "component mounter" of the present invention, the feeder set position F23 corresponds to an example of a "set position" of the present invention, the board B corresponds to an example of a "board" of the present invention, the component E corresponds to an example of a "component" of the present invention, the setup A corresponds to an example of a "setup work" of the present invention, and the setup group G corresponds to an example of a "setup group" of the present invention.
[0080] The present invention is not limited to the above-described embodiment, and various modifications can be made to the above without departing from the spirit of the present invention. For example, the management server Sm and the execution server Se do not need to be installed on the cloud, but may be installed on the user's premises PR and connected to the local server SL via a local area network NW.
[0081] Furthermore, the number of component mounters M that make up the component mounting line LN may be changed as appropriate.
[0082] Furthermore, the number of type K of boards B to be mounted in the setup group G may be changed as appropriate.
[0083] 10 can be modified as needed. For example, optimization of three (N) mounting order conditions Cm, which indicate the order in which three (N) mounters M1, M2, and M3 mount components E on the board B, may be assigned to two (Q) execution servers Se1 and Se2 (step S303). Specifically, optimization of two mounting order conditions Cm, which indicate the order in which two mounters M1 and M2 mount components E on the board B, may be assigned to the execution server Se1, and optimization of one mounting order condition Cm, which indicates the order in which one mounter M3 mounts components E on the board B, may be assigned to the execution server Se2. Then, optimization of the two mounting order conditions Cm by the execution server Se1 and optimization of the one mounting order condition Cm by the execution server Se2 are executed in parallel. In this case, the execution server Se1 serially (i.e., sequentially) executes optimization of the mounting order condition Cm indicating the order in which the mounter M1 mounts the components E on the board B, and optimization of the mounting order condition Cm indicating the order in which the mounter M2 mounts the components E on the board B. This type of technique is suitable, for example, when there is a shortage of execution servers Se available for optimization calculations in the optimization system SY.
[0084] As described above, steps S204 to S206 in Fig. 4 are executed according to the number of production programs PG included in the optimization execution list (optimization target data). Therefore, when multiple production programs PG are included in the optimization list, the optimization of these multiple production programs PG will be executed in parallel by different execution servers Se. Note that in this case, the optimization of each production program PG may be executed in parallel without breaking down each production program PG into element conditions.
[0085] 11 shows an example of a timing chart for optimizing multiple production programs in parallel. In this example, multiple production programs PG1, PG2, and PG3 are assigned to multiple execution servers Se1, Se2, and Se3, respectively. The execution servers Se1, Se2, and Se3 then execute the optimization of the multiple production programs PG1, PG2, and PG3 assigned to them in parallel. In other words, the optimization of the production program PG1 by the execution server Se1, the optimization of the production program PG2 by the execution server Se2, and the optimization of the production program PG3 by the execution server Se3 are executed in parallel.
[0086] In the example of FIG. 11 , N (three) different production programs PG1, PG2, and PG3 included in the optimization execution list (optimization target data) are assigned to Q (three) execution servers Se1, Se2, and Se3 (assignment process). Then, the Q (three) execution servers Se1, Se2, and Se3 execute calculations in parallel to optimize the assigned production programs PG1, PG2, and PG3 (parallel optimization process). In this way, multiple computers are not used to optimize the same production program PG, but rather to optimize different production programs PG1, PG2, and PG3. As a result, the resources (facilities) required for optimizing the production programs PG1, PG2, and PG3 can be used efficiently.
[0087] Incidentally, it is not necessarily necessary to assign the three production programs PG1, PG2, and PG3 to the three execution servers Se1, Se2, and Se3. In other words, the three production programs PG1, PG2, and PG3 may be assigned to two execution servers Se1, Se2, and Se3. In this case, for example, the optimization of the production programs PG1 and PG2 by the execution server Se1 and the optimization of the production program PG3 by the execution server Se1 are executed in parallel. This method is suitable, for example, when there is a shortage of execution servers Se available for optimization calculations in the optimization system SY.
[0088] S204, S304...steps (allocation processing) S205, S304...steps (parallel optimization processing) S302...step (component position optimization processing) SY...optimization system Sm...management server Se...execution server Se Sl...local server PG...production program (optimization target data) Ce...element conditions LN...component mounting line M...component mounting machine F23...feeder set position B...board E...component A...setup G...setup group
Claims
1. a step of acquiring optimization target data including a production program that defines conditions for mounting components on a board in a component mounting line; executing an allocation process for allocating N (N is an integer equal to or greater than 2) different element data items included in the optimization target data to Q (Q is an integer equal to or greater than 2 and equal to or less than N) arithmetic units; a step of executing a parallel optimization process in which the Q calculation devices execute in parallel calculations to optimize the element data respectively assigned in the assignment process; A method for optimizing a board production program comprising:
2. In the allocation process, among M element conditions (M is an integer equal to or greater than N) included in the conditions defined by the production program, N element conditions for which calculations for optimizing each element condition can be executed in parallel are allocated to Q calculation devices as the N element data, 2. The method for optimizing a board production program according to claim 1, wherein in the parallel optimization process, the Q arithmetic units execute in parallel the calculations for optimizing the element conditions respectively assigned in the assignment process.
3. 3. The method for optimizing a board production program according to claim 2, wherein, when N is less than M, an operation for optimizing (M-N) element conditions, which are different from the N element conditions, out of the M element conditions, is executed at a timing different from that of the parallel optimization process.
4. the component mounting line has a plurality of setting positions for setting components, the production program defines conditions for executing N setup groups; In each of the N setup groups, after a setup operation of setting components at the set positions is performed, components are mounted in order onto a plurality of types of boards; 4. The method for optimizing a board production program according to claim 2 or 3, wherein the allocation process treats conditions for executing the setup groups as element conditions, and allocates the N element conditions corresponding to the N setup groups, respectively, to the Q arithmetic devices.
5. the component mounting line has a plurality of setting positions for setting components, the production program defines conditions for executing a setup group; In the setup group, after a setup operation of setting components at the set positions is performed, the components set at the set positions are mounted in order onto N types of boards; 4. A method for optimizing a board production program as described in claim 2 or 3, wherein the allocation process treats a condition indicating the order in which components are to be mounted on one type of board as the element condition, and allocates the N element conditions corresponding to the N types of boards to the Q arithmetic devices.
6. a step of executing a part position optimization process to optimize parts to be set at the set positions in the setup work before the allocation process; a step of waiting for the optimization of the N element conditions executed by the Q arithmetic units to be completed; a step of determining, when the optimization of the N element conditions is completed, whether or not the component position optimization process needs to be re-executed based on the results of the optimization of the N element conditions; 6. The method for optimizing a board production program according to claim 5, wherein when it is determined that the component position optimization process needs to be re-executed, the component position optimization process, the allocation process, and the parallel optimization process are executed.
7. the component mounting line includes N component mounting machines arranged in series, the production program defines conditions for transporting a board to the N component mounters in order and for causing each of the N component mounters to mount components on the board; 4. The method for optimizing a board production program according to claim 2 or 3, wherein the allocation process treats a condition indicating the order in which one component mounter mounts components onto a board as the element condition, and allocates the N element conditions corresponding to the N component mounters to the Q arithmetic units.
8. a step of executing a component position optimization process to optimize components to be set in the N component mounters before the allocation process; a step of waiting for the optimization of the N element conditions executed by the Q arithmetic units to be completed; a step of determining, when the optimization of the N element conditions is completed, whether or not the component position optimization process needs to be re-executed based on the results of the optimization of the N element conditions; 8. The method for optimizing a board production program according to claim 7, wherein when it is determined that the component position optimization process needs to be re-executed, the component position optimization process, the allocation process, and the parallel optimization process are executed.
9. The optimization target data is received from a predetermined terminal device, thereby acquiring the production program; The method for optimizing a board production program according to claim 1 , wherein the Q computing devices are Q cloud servers.
10. The optimization target data is received from a predetermined terminal device, thereby acquiring the production program; 9. The method for optimizing a board production program according to claim 1, wherein the Q number of arithmetic devices are Q number of servers connected to the terminal device via a local area network.
11. In the allocation process, N different production programs included in the optimization target data are allocated to Q arithmetic devices as the N element data, 2. The method for optimizing a board production program according to claim 1, wherein in the parallel optimization process, the Q arithmetic units execute in parallel the calculations for optimizing the production programs assigned to them in the allocation process.
12. a production program acquisition unit that acquires optimization target data including a production program that defines conditions for mounting components on a board in a component mounting line; an allocation processing execution unit that allocates N (N is an integer equal to or greater than 2) different element data items included in the optimization target data to Q (Q is an integer equal to or greater than 2 and equal to or less than N) arithmetic units; a parallel optimization processing execution unit that causes each of the Q arithmetic units to execute in parallel an operation that optimizes the assigned element data; A circuit board production program optimization device comprising:
13. a management computing device; A plurality of execution operation units; Equipped with The management computing device a production program acquisition unit that acquires optimization target data including a production program that defines conditions for mounting components on a board in a component mounting line; an allocation processing execution unit that allocates N (N is an integer equal to or greater than 2) different element data items included in the optimization target data to Q (Q is an integer equal to or greater than 2 and equal to or less than N) execution arithmetic units among the plurality of execution arithmetic units; and A system for optimizing a board production program, wherein each of the Q execution calculation devices executes calculations in parallel to optimize the assigned element data.
14. a step of acquiring optimization target data including a production program that defines conditions for mounting components on a board in a component mounting line; executing an allocation process for allocating N (N is an integer equal to or greater than 2) different element data items included in the optimization target data to Q (Q is an integer equal to or greater than 2 and equal to or less than N) arithmetic units; a step of executing a parallel optimization process in which the Q calculation devices execute in parallel calculations to optimize the element data respectively assigned in the assignment process; Equipped with In the allocation process, among M element conditions (M is an integer equal to or greater than N) included in the conditions defined by the production program, N element conditions for which calculations for optimizing each element condition can be executed in parallel are allocated to Q calculation devices as the N element data, In the parallel optimization process, the Q calculation devices execute in parallel calculations to optimize the element conditions assigned to each of them in the assignment process; the component mounting line has a plurality of setting positions for setting components, the production program defines conditions for executing N setup groups; In each of the N setup groups, after a setup operation of setting components at the set positions is performed, components are mounted in order onto a plurality of types of boards; In the allocation process, the conditions for executing the setup groups are treated as element conditions, and the N element conditions corresponding to the N setup groups are allocated to the Q arithmetic devices.
15. a step of acquiring optimization target data including a production program that defines conditions for mounting components on a board in a component mounting line; executing an allocation process for allocating N (N is an integer equal to or greater than 2) different element data items included in the optimization target data to Q (Q is an integer equal to or greater than 2 and equal to or less than N) arithmetic units; a step of executing a parallel optimization process in which the Q calculation devices execute in parallel calculations to optimize the element data respectively assigned in the assignment process; Equipped with In the allocation process, among M element conditions (M is an integer equal to or greater than N) included in the conditions defined by the production program, N element conditions for which calculations for optimizing each element condition can be executed in parallel are allocated to Q calculation devices as the N element data, In the parallel optimization process, the Q calculation devices execute in parallel calculations to optimize the element conditions assigned to each of them in the assignment process; the component mounting line has a plurality of setting positions for setting components, the production program defines conditions for executing a setup group; In the setup group, after a setup operation of setting components at the set positions is performed, the components set at the set positions are mounted in order onto N types of boards; In the allocation process, a condition indicating the order in which components are to be mounted on one type of board is treated as the element condition, and the N element conditions corresponding to the N types of boards are allocated to the Q computing devices. This is a method for optimizing a board production program.
16. a step of acquiring optimization target data including a production program that defines conditions for mounting components on a board in a component mounting line; executing an allocation process for allocating N (N is an integer equal to or greater than 2) different element data items included in the optimization target data to Q (Q is an integer equal to or greater than 2 and equal to or less than N) arithmetic units; a step of executing a parallel optimization process in which the Q calculation devices execute in parallel calculations to optimize the element data respectively assigned in the assignment process; Equipped with In the allocation process, among M element conditions (M is an integer equal to or greater than N) included in the conditions defined by the production program, N element conditions for which calculations for optimizing each element condition can be executed in parallel are allocated to Q calculation devices as the N element data, In the parallel optimization process, the Q calculation devices execute in parallel calculations to optimize the element conditions assigned to each of them in the assignment process; the component mounting line includes N component mounting machines arranged in series, the production program defines conditions for transporting a board to the N component mounters in order and for causing each of the N component mounters to mount components on the board; In the allocation process, a condition indicating the order in which one component mounter mounts components onto a board is treated as the element condition, and the N element conditions corresponding to the N component mounters are allocated to the Q arithmetic units, thereby optimizing a board production program.
17. 9. A method for optimizing a board production program according to claim 6 or 8, wherein if a component mounting line includes two component mounters whose difference in the time required to complete component mounting is equal to or greater than a predetermined time, it is determined that the component position optimization process needs to be re-executed.