WO2024252562A1 - 基板生産プログラムの最適化方法、最適化装置および最適化システム - Google Patents

基板生産プログラムの最適化方法、最適化装置および最適化システム Download PDF

Info

Publication number
WO2024252562A1
WO2024252562A1 PCT/JP2023/021172 JP2023021172W WO2024252562A1 WO 2024252562 A1 WO2024252562 A1 WO 2024252562A1 JP 2023021172 W JP2023021172 W JP 2023021172W WO 2024252562 A1 WO2024252562 A1 WO 2024252562A1
Authority
WO
WIPO (PCT)
Prior art keywords
optimization
conditions
production program
component
execution
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Ceased
Application number
PCT/JP2023/021172
Other languages
English (en)
French (fr)
Inventor
一亮 山田
哲也 滝西
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Yamaha Motor Co Ltd
Original Assignee
Yamaha Motor Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Yamaha Motor Co Ltd filed Critical Yamaha Motor Co Ltd
Priority to JP2025525528A priority Critical patent/JPWO2024252562A1/ja
Priority to DE112023006467.9T priority patent/DE112023006467T5/de
Priority to PCT/JP2023/021172 priority patent/WO2024252562A1/ja
Priority to CN202380098498.7A priority patent/CN121175662A/zh
Publication of WO2024252562A1 publication Critical patent/WO2024252562A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing

Definitions

  • This invention relates to technology for optimizing production programs that stipulate the conditions for mounting components on boards on a component mounting line.
  • a technology is known in which a component mounting line is operated in accordance with conditions defined in a production program that indicates the execution of a specified production plan, and the line mounts components onto the boards, thereby producing the boards planned in the production plan.
  • 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, or the order in which the components are mounted on the boards.
  • the production program is generally optimized. In this case, it is important to reduce the calculation time required to optimize the production program.
  • Patent Document 1 multiple algorithms for optimization are prepared, and the same production data is sent to multiple computers, and each computer is made to optimize the same production data using a different algorithm.
  • each computer perform optimization in parallel using different algorithms, it is possible to obtain an optimized solution using the most suitable algorithm out of the multiple algorithms in a short period of time.
  • Cited Document 1 causes multiple computers to each optimize the same production data. Therefore, when optimizing a production program for executing a specified production plan using this technology, multiple computers optimize the same production program.
  • This type of method has room for improvement from the following two perspectives. First, there is room for improvement in shortening the calculation time required to optimize a production program, since each of the multiple computers requires calculation time to optimize the entire production program. Second, since multiple computers are used to optimize the same production program, it was necessary to prepare many computers; the former is an inefficient use of the resource of time, and the latter is an inefficient use of the resource of equipment (computers). Therefore, there was a need to make effective use of at least one of the resources.
  • This invention was developed in consideration of the above problems, and aims to enable efficient use of resources (computing time or equipment) required to optimize production programs.
  • the method for optimizing a board production program includes the steps of: acquiring optimization target data including a production program that specifies the conditions for mounting components on a board in a component mounting line; executing an allocation process that allocates N different pieces of element data (N is an integer equal to or greater than 2) included in the optimization target data to Q arithmetic units (Q is an integer equal to or greater than 2 and equal to or less than N); and executing a parallel optimization process in which the Q arithmetic units execute in parallel calculations to optimize the element data that has been assigned to them in the allocation process.
  • N is an integer equal to or greater than 2
  • Q is an integer equal to or greater than 2 and equal to or less than N
  • the optimization device for a board production program includes a production program acquisition unit that acquires optimization target data including a production program that specifies the conditions for mounting components on a board in a component mounting line, an allocation process execution unit that assigns N different pieces of element data (N is an integer equal to or greater than 2) included in the optimization target data to Q arithmetic units (Q is an integer equal to or greater than 2 and equal to or less than N), and a parallel optimization process execution unit that causes each of the Q arithmetic units to execute in parallel a calculation that optimizes the assigned element data.
  • N is an integer equal to or greater than 2
  • Q is an integer equal to or greater than 2 and equal to or less than N
  • parallel optimization process execution unit that causes each of the Q arithmetic units to execute in parallel a calculation that optimizes the assigned element data.
  • the optimization system for a board production program 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 in a component mounting line, and an assignment process execution unit that assigns N different pieces of element data (N is an integer equal to or greater than 2) included in the optimization target data to Q execution calculation devices (Q is an integer equal to or greater than 2 and equal to or less than N) among the plurality of execution calculation devices, and each of the Q execution calculation devices executes calculations in parallel to optimize the assigned element data.
  • N is an integer equal to or greater than 2
  • Q is an integer equal to or greater than 2 and equal to or less than N
  • N is an integer equal to or greater than 2 pieces of element data included in the optimization target data, including the production program, are assigned to Q arithmetic units (execution arithmetic units). Each of the Q arithmetic units then executes in parallel an operation to optimize the assigned element data.
  • the present invention decomposes the optimization target data, including the production program, into N pieces of element data, and has the Q arithmetic units execute the optimization of the N pieces of element data in parallel.
  • it is possible to efficiently utilize the resources (operation time) required for optimizing the production program i.e., to shorten the operation time required for optimizing the production program.
  • the optimization method for the board production program may be configured such that, in the allocation process, out of 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 capable of executing an operation to optimize each of the element conditions in parallel are assigned to Q arithmetic devices as N element data, and in the parallel optimization process, the Q arithmetic devices execute in parallel the operation to optimize the element conditions assigned to them in the allocation process.
  • N element conditions (M is an integer equal to or greater than 2) included in the conditions defined by the production program
  • M is an integer equal to or greater than 2
  • M is an integer equal to or greater than 2 and equal to or less than M
  • Q arithmetic devices execution arithmetic devices
  • each of the Q arithmetic devices executes an operation to optimize the assigned element conditions in parallel.
  • the conditions defined by the production program are decomposed into M element conditions, and the optimization of N of the M element conditions is executed in parallel by Q arithmetic devices. As a result, it is possible to reduce the calculation time required for optimizing the production program.
  • the optimization method for the board production program may be configured so that, of the M element conditions, a calculation for optimizing (M-N) element conditions that are different from the N element conditions is executed at a timing different from that of the parallel optimization process.
  • the calculation for optimizing (M-N) element conditions can be executed at an appropriate timing.
  • the component mounting line may also have multiple set positions for setting components
  • the production program may define conditions for executing N setup groups, and in each of the N setup groups, components are mounted in sequence on multiple types of boards after the setup work of setting the components at the set positions is performed, and the allocation process may be configured to treat the conditions for executing the setup groups as element conditions and allocate the N element conditions corresponding to the N setup groups to Q arithmetic units.
  • 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, it is possible to reduce the calculation time required for optimizing the production program.
  • the component mounting line may have multiple set 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 set positions is executed in the setup group, the components set at the set positions are mounted in order on N types of boards, and in the allocation process, a condition indicating the order in which components are mounted on one type of board is treated as an element condition, and N element conditions corresponding to the N types of boards are allocated to Q arithmetic devices.
  • the conditions defined in the production program are decomposed into M element conditions including N element conditions corresponding to the N types of boards. Then, optimization of the N element conditions is executed in parallel by the Q arithmetic devices. As a result, it is possible to reduce the calculation time required for optimizing the production program.
  • the optimization method for a board production program may also be configured to include a step of executing, before the allocation process, a component position optimization process that optimizes the components to be set in the set positions during setup work; a step of waiting for the optimization of N element conditions executed by Q arithmetic devices to be completed; a step of determining, upon completion of the optimization of the N element conditions, whether or not it is necessary to re-execute the component position optimization process based on the results of the optimization of the N element conditions; and, upon determining that it is necessary to re-execute the component position optimization process, executing the component position optimization process, the allocation process, and the parallel optimization process.
  • the component mounting line may also be equipped with N component mounters arranged in series
  • the production program may specify conditions for transporting a board to the N component mounters in sequence and for each of the N component mounters to mount components on the board
  • the allocation process may be configured to treat the conditions indicating the order in which one component mounter mounts components on the board as element conditions, and to allocate the N element conditions corresponding to the N component mounters to the Q arithmetic units.
  • the conditions specified in the production program are decomposed into M element conditions including the N element conditions corresponding to the N component mounters.
  • the optimization of the N element conditions is then performed in parallel by the Q arithmetic units. As a result, it is possible to reduce the calculation time required for optimizing the production program.
  • the optimization method for a board production program may also be configured to include a step of executing a component position optimization process that optimizes the components to be set on N component mounters before the allocation process, a step of waiting for the optimization of N element conditions executed by Q arithmetic devices to be completed, a step of determining whether or not the component position optimization process needs to be executed again based on the results of the optimization of the N element conditions when the optimization of the N element conditions is completed, and a step of executing the component position optimization process, the allocation process, and the parallel optimization process when it is determined that the component position optimization process needs to be executed again.
  • the optimization method for a board production program may be configured so that the production program is obtained by receiving optimization target data transmitted from a specified terminal device, and the Q arithmetic devices are Q cloud servers.
  • the optimization method for a board production program may be configured so that the production program is obtained by receiving optimization target data transmitted from a specified terminal device, and the Q arithmetic devices are Q servers connected to the terminal device via a local area network.
  • the optimization method for board production programs 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 calculations to optimize the production programs assigned to them in the allocation process.
  • N different production programs (N is an integer greater than or equal to 2 and less than or equal to M) are assigned to Q arithmetic units.
  • each of the Q arithmetic units executes in parallel calculations to optimize the assigned production program.
  • multiple arithmetic units are not used to optimize the same production program, but are used to optimize different production programs. As a result, it is possible to efficiently use the resources (facilities) required for optimizing the production programs.
  • the present invention makes it possible to reduce the calculation time required to optimize a production program.
  • FIG. 1 is a block diagram that illustrates a schematic diagram of an optimization system according to the present invention and a component mounting line that executes a production program optimized by the optimization system.
  • FIG. 1 is a plan view illustrating a schematic configuration of an example of a component mounter.
  • 4 is a flow chart showing an example of control executed by a local server for optimizing a production program.
  • 4 is a flowchart showing a first example of control executed by the optimization system for optimizing a production program.
  • 5 is a timing chart showing a first example of the operation executed according to the flowchart of FIG. 4 .
  • 5 is a timing chart showing a first example of the operation executed according to the flowchart of FIG. 4 .
  • FIG. 5 is a timing chart showing a second example of the operation executed according to the flowchart of FIG. 4 .
  • 5 is a timing chart showing a second example of the operation executed according to the flowchart of FIG. 4 .
  • 6 is a flowchart showing a second example of control executed by the optimization system for optimizing a production program.
  • FIG. 8 is a diagram showing a first example of a timing chart that illustrates the content of calculations executed according to the flowchart of FIG. 7.
  • 1 is a timing chart showing the operation of mounting components E on three types K(a) to K(c) in sequence on a component mounting line LN.
  • 1 is a timing chart showing the operation of mounting components E on three types K(a) to K(c) in sequence on a component mounting line LN.
  • FIG. 8 is a diagram showing a second example of a timing chart that illustrates the content of calculations executed according to the flowchart of FIG. 7 .
  • FIG. 13 is a diagram showing an example of a timing chart for executing optimization of a plurality of production programs in parallel.
  • FIG. 1 is a block diagram that shows a schematic diagram of 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 the user's site PR, and is equipped with multiple component mounters M (three in the example of FIG. 1) lined up in series in the X direction (horizontal direction). Boards B (FIG. 2) are loaded into these component mounters M in sequence, and each component mounter M mounts components E (FIG. 2) on the loaded board B. In this way, the multiple component mounters M share the task of mounting components E on the same board B, and produce boards B with components mounted on them.
  • a local server Sl and a local area network NW are provided on the user's site PR, and the local area network NW interconnects the multiple component mounters M and the local server Sl.
  • the local server Sl is a server computer, and manages the component mounting line LN.
  • the local server Sl 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 specified number of boards of a specified variety.
  • the multiple component mounters M on the component mounting line LN mount components E on the board B by operating in accordance with the production program PG.
  • 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 comprises a management server Sm, which is a computer that functions as a cloud server, and multiple execution servers Se1, Se2, Se3, ....
  • the management server Sm manages the multiple execution servers Se1, Se2, Se3, ... and communicates with a local server Sl via the Internet communication network. The operation of this optimization system SY will be described later.
  • FIG. 2 is a plan view showing a schematic configuration of an example of a component mounter.
  • This component mounter M mounts small piece-like electronic components E such as integrated circuits, transistors, and capacitors on a board B.
  • the component mounter M is equipped with a transport unit 21 that transports the 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 by the conveyors 211.
  • the spacing between these conveyors 211 can be changed in the Y direction (width direction) 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 specified 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 downstream in the X direction.
  • This component mounter M is provided with a total of four component supply carts 22, and specifically, two component supply carts 22 are lined up in the X direction on each side of the transport section 21 in the Y direction.
  • multiple tape feeders 23 are lined up in the X direction, and multiple component supply reels are arranged corresponding to the multiple tape feeders 23.
  • a component storage tape is wound around the component supply reel.
  • This component storage tape has multiple 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 section 21 side in the Y direction, and supplies components E in the component storage tape to the component supply position 231 by intermittently sending the component storage tape pulled out from the component supply reel to the transport section 21 side.
  • Each part supply cart 22 has multiple feeder set positions F23 aligned in the X direction.
  • a tape feeder 23 can be removably set at the feeder set positions F23. When the tape feeder 23 is set at the tape feeder 23, the part E attached to the tape feeder 23 is set at the feeder set position F23.
  • the component mounter M is 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.
  • the X-axis rail 244 is supported by 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.
  • the X-axis rail 244 is attached with 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.
  • the component mounter M is provided with a head unit 25, which is supported by the X-axis rail 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.
  • the head unit 25 is an inline type having multiple mounting heads 5 arranged in a line in the X direction.
  • the specific configuration of the head unit 25 is not limited to the example in Figure 1, and the head unit 25 may be a rotary type having multiple mounting heads 5 arranged in a circular pattern.
  • the number of mounting heads 5 held by the head unit 25 is not limited to multiple, and may be a single number.
  • a nozzle is removably attached to the bottom end of each mounting head 5, and the mounting head 5 picks up the component E using the nozzle.
  • 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 lowered to bring the nozzle 51 into contact with the upper surface of the component E supplied to the component supply position 231, and then the nozzle 51 picks up the component E from the component supply position 231 by raising the nozzle 51.
  • the mounting head 5 is 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 to be picked up by the nozzle 51 with respect to the land is adjusted, and the nozzle 51 is lowered to place the component E on the land of the board B.
  • the production program PG specifies the conditions for mounting components E on the board B on the component mounting line LN in order to execute a predetermined production plan on the component mounting line LN.
  • This production program PG includes various conditions, including at least: component position conditions...conditions that specify the positions (specifically, the feeder set positions F23) at which various components E are set on each component mounter M; 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.
  • at least the component position conditions and the mounting order conditions are optimized in order to shorten the time required to complete the execution of the production plan.
  • the production program PG specifies the conditions (overall conditions) required for the component mounting line LN to execute the production plan, and these overall conditions can be considered to be a collection of multiple element conditions.
  • the overall conditions specified by the production program PG are a collection of component position conditions and mounting order conditions, etc., and these overall conditions can be considered to be separated into element conditions called component position conditions and element conditions called mounting order conditions.
  • the purpose of separating into multiple element conditions in this way is to reduce the calculation time required to optimize the production program PG by performing optimization of two or more element conditions in parallel. Note that there are variations in how the element conditions can be considered, and they are optional, as will be specifically shown later.
  • FIG. 3 is a flowchart showing an example of control executed by a local server for optimizing a production program.
  • the local server Sl 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.
  • step S102 the local server S1 determines whether an execution command for optimizing the production program PG has been input by operating the UI (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 via the UI.
  • the local server Sl 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 Sl confirms that 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 for which optimization has been completed, or they may be downloaded all at once after optimization of all production programs PG has been completed.
  • FIG. 4 is a flowchart showing a first example of control executed by the optimization system to optimize a production program.
  • the management server Sm of the optimization system SY receives a production program PG uploaded from the local server Sl, it determines that optimization of the production program PG has been requested ("YES" in step S201).
  • the optimization system SY determines the number of execution servers Se required to optimize the production program PG based on the results of analyzing the number of element conditions contained in the production program PG (step S202). As a result, if the number of currently activated execution servers Se is insufficient for the number required to optimize the production program PG, the local server Sl activates the missing execution servers Se (step S203).
  • Steps S204 to S206 are executed according to the number of production programs PG included in the optimization execution list.
  • the example in FIG. 4 corresponds to a case in which 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 contents of steps S204 to S206 executed for production programs PG1 and PG2 are similar, so here we will explain steps S204 to S206 executed for production program PG1.
  • 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. Then, the management server Sm causes each execution server Se to optimize the assigned element conditions (step S205). When each execution server Se completes the optimization of the assigned element conditions ("YES" in step S206), the management server Sm transmits the production program PG with the optimization of each element condition completed to the local server S1 (step S207). That is, the download of the production program PG in step S106 of FIG. 3 is executed. In step S208, the management server Sm suspends unnecessary execution servers Se that will not be used in future calculations.
  • FIGS. 5A and 5B are timing charts showing a first example of the operation executed according to the flowchart of FIG. 4.
  • a production plan PL is shown.
  • the production plan PL shows the setups A(a)-A(f) executed in the component mounting line LN and the mounting of components E on boards B of types K(a)-K(f).
  • the setups A(a)-A(f) are the work of setting components E to be mounted on boards B of types K(a)-K(f) at the feeder set position F23 of each component mounter M in the component mounting line LN, and are executed by a user or a robot.
  • setup A when there is no particular distinction between the setups A(a)-A(f), they will be referred to as setup A, and when there is no particular distinction between the types K(a)-K(f), they will be referred to as type K.
  • the production plan PL in Fig. 5A shows that a setup A for setting a component E at the feeder set position F23 of each mounter M in the component mounting line LN and a component mounting for mounting the component E set in the setup A on a board B of a type K are repeated while changing the types K(a) to K(f) of the board B. Specifically, By repeating the above operations, the mounting of components E onto boards B of types K(a) to K(f) is performed. - Component E set in this setup A(a) is mounted on board B of type K(a). - Component E set in this setup A(b) is performed on board B of type K(b).
  • the production program PG which indicates the conditions required for the component mounting line LN to execute this production plan PL, indicates, for multiple varieties K(a) to K(f), component position conditions that stipulate the position at which component E is set in setup A, and mounting order conditions that stipulate the order in which the components E set in setup A are mounted on board B of variety K.
  • a component position condition Cp and a mounting order condition Cm that correspond to the same variety 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 varieties K(a) to K(f). Each element condition Ce is then assigned to a different execution server Se.
  • the execution server Se1 performs a calculation to optimize (consider) the component position condition Cp that specifies the position at which component E is set in the setup A(a), and then optimize the mounting order condition Cm that specifies the order in which the component E set in the setup A(a) is to be mounted on the board B of type K(a).
  • the execution server Se2 performs a calculation to optimize (consider) the component position condition Cp that specifies the position at which component E is set in the setup A(b), and then optimize the mounting order condition Cm that specifies the order in which the component E set in the setup A(b) is to be mounted on the board B of type K(b).
  • the execution servers Se3 to Se6 perform a calculation to optimize the component position condition Cp and the mounting order condition Cm for types K(c) to K(f).
  • the execution servers Se1 to Se6 perform their respective calculations in parallel.
  • multiple operations being executed in parallel means that the periods during which each of the multiple operations is executed at least partially overlap.
  • the six element conditions Ce included in the conditions defined by the production program PG are assigned to six execution servers Se1 to Se6 (computation devices, execution computation devices) (step S204). Then, each of the six execution servers Se1 to Se6 executes computations in parallel to optimize the assigned element conditions Ce (step S205).
  • the conditions defined by the production program PG are broken down into six element conditions Ce, and the optimization of the six element conditions Ce is further executed in parallel by the six execution servers Se1 to Se6. As a result, it is possible to reduce the computation time required to optimize the production program PG.
  • Figures 6A and 6B are timing charts showing a second example of the operation executed according to 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 types K are set in a single setup A (common setup).
  • the production plan PL is This indicates that the following operations are executed in order: - execute setup A (abc) for components E to be mounted on board B of types K(a) to K(c) - mount components E set in that setup A (abc) on board B of type K(a) - mount components E set in that setup A (abc) on board B of type K(b) - mount components E set in that setup A (abc) on board B of type K(c) - execute setup A (def) for components E to be mounted on board B of types K(d) to K(f) - mount components E set in that setup A (def) on board B of type K(d) - mount components E set in that setup A (def) on board B of type K(e) - mount components E set in that setup A (def) on board B of type K(f).
  • setup group G that sets part E in setup A (abc) and mounts part E set in setup A (abc) on boards B of multiple varieties K(a) to K(c)
  • setup group G that sets part E in setup A (def) and mounts part E set in setup A (def) on boards B of multiple varieties K(d) to K(f) are executed in sequence.
  • two setup groups G are executed in sequence.
  • 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 the component E is set in setup A common to multiple boards B of multiple types K, and a mounting order condition Cm that specifies the order in which the component E set in that setup A is mounted on each of the multiple boards B of multiple types K.
  • the production plan PL treats the component position condition Cp and mounting order condition Cm corresponding to one setup A as one element condition
  • the production program PG is decomposed into two element conditions Ce corresponding to two setups A(abc) and A(def), respectively. Then, each element condition Ce is assigned to a different execution server Se.
  • the execution server Se1 executes a calculation to optimize the element condition Ce assigned to the execution server Se1.
  • Optimization (examination) of part position condition Cp that specifies the position for setting part E in setup A (abc)
  • the system executes calculations such as optimizing the mounting order condition Cm which stipulates the order in which the components E set in the setup A (abc) are to be mounted on the board B of type K(a), optimizing the mounting order condition Cm which stipulates the order in which the components E set in the setup A (abc) are to be mounted on the board B of type K(b), and optimizing the mounting order condition Cm which stipulates the order in which the components E set in the setup A (abc) are to be mounted on the board B of type K(c).
  • the execution server Se2 executes a calculation to optimize the element conditions Ce assigned to the execution server Se2. Optimization (examination) of part position condition Cp that specifies the position for setting part E in setup A (def)
  • the controller 100 executes calculations such as optimizing the mounting order condition Cm that stipulates the order in which the components E set in the setup A (def) are to be mounted on the board B of type K (d), optimizing the mounting order condition Cm that stipulates the order in which the components E set in the setup A (def) are to be mounted on the board B of type K (e), and optimizing the mounting order condition Cm that stipulates the order in which the components E set in the setup A (def) are to be mounted on the board B of type K (f).
  • the execution servers Se1 and Se2 execute their respective calculations in parallel. That is, the calculation in which the execution server Se1 optimizes the element conditions Ce assigned to the execution server Se1 and the calculation in which the execution server Se2 optimizes the element conditions Ce assigned to the execution server Se2 are executed in parallel.
  • two element conditions Ce included in the conditions defined by the production program PG are assigned to two execution servers Se1, Se2 (computation devices, execution computation devices) (step S204). Then, each of the two execution servers Se1, Se2 executes computations in parallel to optimize the assigned element conditions Ce (step S205).
  • 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 further executed in parallel by two computation devices. As a result, it is possible to reduce the computation time required to optimize the production program PG.
  • the component mounting line LN has a plurality of feeder set positions F23 (set positions) for setting components E.
  • the production program PG specifies the conditions for executing two setup groups G (FIG. 6A).
  • the setup A setup work
  • components E are mounted in sequence on multiple boards B of different types K.
  • step S204 allocation process
  • the conditions for executing the setup group G are treated as element conditions Ce, and two element conditions Ce corresponding to the two setup groups G are assigned to two execution servers Se1 and Se2 (FIG. 6B).
  • the conditions specified in the production program PG are decomposed into two element conditions Ce corresponding to the two setup groups G (step S204). Then, the optimization of the two element conditions Ce is performed 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.
  • one setup group G may be further decomposed, and one component position condition Cp and multiple mounting order conditions Cm may each be set as an element condition Ce.
  • Figure 7 is a flowchart showing a second example of control executed by an optimization system to optimize a production program
  • Figure 8 is a first example of a timing chart that shows the content of the calculation executed according to the flowchart of Figure 7. Note that Figure 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.
  • step S301 the management server Sm assigns the optimization (study) of the part position condition Cp, which specifies the position where part E is to be set in setup A, to one execution server Se1. Then, in step S302, the management server Sm causes the execution server Se1 to execute the optimization of 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.
  • the management server Sm assigns the optimization of multiple (2) mounting order conditions Cm, each of which specifies the order in which components E set according to the optimized component position conditions Cp are to be mounted on multiple (2) boards B of type K, to multiple (2) 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 each of them (step S304). As a result, as shown in FIG.
  • the execution server Se1 optimizes the mounting order conditions Cm assigned to the execution server Se1 from time t2 to t5
  • the execution server Se2 optimizes the mounting order conditions Cm assigned to the execution server Se2 from time t2 to t6.
  • the two execution servers Se1 and Se2 perform optimization in parallel of the mounting order conditions Cm for two different boards B of different types K on which components E are mounted in the same setup group G.
  • the management server Sm assigns the determination of whether or not steps S301 to S304 need to be re-executed to the execution server Se2 (step S306). Then, the execution server Se2 executes the determination of whether or not it needs to be assigned (step S307). That is, as described above, in the component mounting line LN, one board B is sequentially carried into multiple component mounters M, and each of the multiple component mounters M mounts a component E on the board B in sequence.
  • step S307 if there are two component mounters M among the multiple component mounters M whose difference in the time (takt time) required for the component mounters M to complete the mounting of the component E in their charge 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 there is no need to re-execute steps S301 to S304 ("NO" in step S307).
  • the execution server Se2 judges whether re-execution is necessary between times t6 and t7, and judges 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 that specifies the position where component E is 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 is shortened among the multiple component mounters M.
  • execution server Se2 determines that component E to be mounted on board B should be moved from the component mounter M with the longest takt time to the component mounter M with the shortest takt time (optimization of component position condition Cp).
  • execution server Se2 performs optimization of part position condition Cp from time t7 to t9.
  • the management server Sm assigns the optimization of the multiple (2) 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 the multiple (2) boards B of type K, to the multiple (2) 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 conditions Cm assigned to the execution server Se2 from time t9 to t13, and the execution server Se3 optimizes the mounting order conditions Cm assigned to the execution server Se3 from time t10 to t13. In this way, the two execution servers Se2 and Se3 perform in parallel optimization of the mounting order conditions Cm corresponding to two different boards B of different types K on which components E are mounted in the same setup group G.
  • the management server Sm assigns the determination of whether or not 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 of whether or not re-execution is necessary (step S307).
  • the management server Sm determines whether or not re-execution is necessary at times t11 to t12 and determines that re-execution is not necessary ("NO" in step S306). Therefore, the management server Sm ends the flowchart of FIG. 7.
  • the management server Sm changes the execution server Se to which the optimization of the same element condition Ce is assigned for different 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. In addition, the management server Sm assigns the optimization of the mounting order condition Cm for the same board B of type K 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.
  • two element conditions Ce that can perform calculations in parallel to optimize each of them are assigned to two execution servers Se (calculation device, execution calculation device) (step S303). Then, each of the two execution servers Se executes calculations in parallel to optimize the assigned mounting order conditions Cm (step S304).
  • the conditions defined by the production program PG are decomposed into three element conditions Ce (part position condition Cp and two mounting order conditions Cm), and the optimization of two of the three element conditions Ce (mounting order conditions Cm) is executed in parallel by two execution servers Se.
  • Ce part position condition Cp and two mounting order conditions Cm
  • 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).
  • a calculation for optimizing one component position condition Cp can be executed at an appropriate timing.
  • the component mounting line LN also has a number of feeder set positions F23 for setting components E.
  • the production program PG specifies the conditions for executing the setup group G, and in the setup group G, after the execution of setup A (setup work) for setting components E at the feeder set positions F23, the components E set at the feeder set positions F23 are mounted in order on two boards B of type K.
  • the mounting order condition Cm indicating the order in which components E are mounted on one board B of type K is treated as an element condition Ce
  • two element conditions Ce mounting order condition Cm
  • the conditions defined in the production program PG are decomposed into three element conditions Ce (component position condition Cp and two mounting order conditions Cm), including two element conditions Ce (mounting order condition Cm) corresponding to the two boards B of type K. Then, the optimization of the two element conditions Ce (component position condition 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.
  • step S302 for optimizing part E to be set at feeder set position F23 in setup A (setup work) is executed before step S303 (allocation process). Then, the process 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 (step S305: "YES"), a determination is made based on the results of the optimization of the two element conditions Ce (step S307) as to whether or not step S302 (part position optimization process) needs to be re-executed.
  • step S302 When it is determined that step S302 needs to be re-executed (step S307: "YES"), step S302 (part position optimization process), step S303 (allocation process), and step S304 (parallel optimization process) are executed.
  • step S302 part position optimization process
  • step S303 allocation process
  • step S304 parallel optimization process
  • 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 each timing shown in both figures based on the results of optimizing the component position conditions Cp and the mounting order conditions Cm. For example, such a prediction 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.
  • a difference ⁇ occurs in the time (takt time) required to mount component E on one board B of type K(c) between component 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). In addition, in the re-executed step S302, the execution server Se decides to move component E, which is to be mounted on board B of type K(c), from feeder set position F23 of component mounter M2 to feeder set position F23 of component mounter M3 (optimization of component position condition Cp).
  • a difference ⁇ occurs in the time (takt time) required to mount component E on one board B of type K(a) between component 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). In addition, in the re-executed step S302, the execution server Se determines that component E to be mounted on board B of type K(a) should be moved from feeder set position F23 of component mounter M1 to feeder set position F23 of component mounter M3 (optimization of component position condition Cp).
  • FIG. 10 is a second example of a timing chart that shows the content of the calculations executed according to the flowchart of FIG. 7.
  • step S301 the management server Sm assigns the optimization (study) of the part position condition Cp, which specifies the position where part E is to be set in setup A, to one execution server Se1. Then, in step S302, the management server Sm causes the execution server Se1 to execute the optimization of 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.
  • the management server Sm assigns optimization of multiple (three) mounting order conditions Cm indicating the order in which each of the multiple (three) component mounters M1, M2, M3 mounts components E on the board B to multiple (three) different execution servers Se1, Se2, Se3, assuming that 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, Se3 to optimize the mounting order conditions Cm assigned to them (step S304). As a result, as shown in FIG.
  • 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
  • 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.
  • 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.
  • the management server Sm assigns the determination of whether or not steps S301 to S304 need to be re-executed to the execution server Se2 (step S306). Then, the execution server Se2 executes the assigned determination of whether or not it needs to be re-executed (step S307).
  • the method of determination here is as described above.
  • the execution server Se2 determines whether re-execution is necessary from time t7 to t8, and determines that re-execution is necessary ("YES" in step S307). Therefore, the management server Sm returns to step S301 and assigns the optimization (review) of the part position condition Cp that specifies the position where part E is to be set to one execution server Se2. 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 from time t8 to t10.
  • the management server Sm assigns optimization of multiple (three) mounting order conditions Cm indicating the order in which each of the multiple (three) component mounters M1, M2, M3 mounts components E on the board B to multiple (three) different execution servers Se1, Se2, Se4, assuming that components E have been set according to the optimized component position condition Cp (step S303). Then, in step S304, the management server Sm causes the three execution servers Se1, Se2, Se4 to optimize the mounting order conditions Cm assigned to them (step S304). As a result, as shown in FIG.
  • 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
  • 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.
  • the three execution servers Se1, Se2, and Se4 optimize the mounting order condition Cm for the three mutually different mounters M1, M2, and M3 in parallel.
  • the management server Sm assigns the determination of whether or not steps S301 to S304 need to be re-executed to the execution server Se1 (step S306).
  • the execution server Se1 then executes the assigned determination of whether or not re-execution is necessary (step S307).
  • the management server Sm ends the flowchart of FIG. 7.
  • 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 the optimization of three of the four element conditions Ce (mounting order conditions Cm) is executed in parallel by the three execution servers Se.
  • Ce component position condition
  • Cm mounting order conditions
  • a calculation for optimizing 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).
  • a calculation for optimizing one element condition Ce (mounting order condition Cm) can be executed at an appropriate timing.
  • the component mounting line LN also includes three component mounters M arranged in series, and the production program PG specifies conditions for transporting the board B to the three component mounters M in order and for each of the three component mounters M to mount a component E on the board B.
  • the mounting order condition Cm indicating the order in which one component mounter M mounts a component E on the board B is treated as an element condition Ce
  • three element conditions Ce mounting order condition Cm corresponding to each of the three component mounters M are assigned to three execution servers Se.
  • 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) including three element conditions Ce (mounting order condition Cm) corresponding to each of the three component mounters M. Then, the optimization of the three element conditions Ce (mounting order condition 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.
  • step S302 for optimizing the components E to be set on the three component mounters M is executed before step S303 (allocation process). Then, the process waits for the completion of the optimization of the three element conditions Ce (mounting order conditions Cm) executed by the three execution servers Se (step S305). When 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 process) needs to be re-executed based on the results of the optimization of the three element conditions Ce (mounting order conditions Cm) (step S307).
  • step S302 component position optimization process
  • step S303 allocation process
  • step S304 parallel optimization process
  • step S204 or S303 corresponds to an example of the "allocation process” of the present invention
  • step S205 or step S304 corresponds to an example of the "parallel optimization process” of the present invention
  • step S302 corresponds to an example of the “component position optimization process” 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 process execution unit,” “parallel optimization process 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
  • the execution server Se functions as the "cloud computing device” of the present invention.
  • the local server Sl 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
  • the setup group G corresponds to an example of a "setup group” of the present invention.
  • the management server Sm and 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.
  • the number of component mounters M that make up the component mounting line LN may be changed as appropriate.
  • the number of types K of boards B to be mounted in the setup group G may be changed as appropriate.
  • the example shown in the timing chart of FIG. 10 can be modified as appropriate.
  • the optimization of three (N) mounting order conditions Cm indicating the order in which each of three (N) mounters M1, M2, and M3 mounts components E on the board B may be assigned to two (Q) execution servers Se1 and Se2.
  • the optimization of two mounting order conditions Cm indicating the order in which each of two mounters M1 and M2 mounts components E on the board B may be assigned to the execution server Se1
  • the optimization of one mounting order condition Cm indicating the order in which each of one mounters M3 mounts components E on the board B may be assigned to the execution server Se2.
  • the optimization of the two mounting order conditions Cm by the execution server Se1 and the optimization of the one mounting order condition Cm by the execution server Se2 are executed in parallel.
  • 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 method is suitable, for example, when there is a shortage of execution servers Se that can be used for optimization calculations in the optimization system SY.
  • 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. 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.
  • FIG. 11 shows an example of a timing chart for optimizing multiple production programs in parallel.
  • multiple production programs PG1, PG2, PG3 are assigned to multiple execution servers Se1, Se2, Se3, respectively.
  • the multiple execution servers Se1, Se2, Se3 then execute the optimization of the multiple production programs PG1, PG2, PG3 assigned to them in parallel.
  • the optimization of production program PG1 by execution server Se1 the optimization of production program PG2 by execution server Se2
  • the optimization of production program PG3 by execution server Se3 are executed in parallel.
  • N (3) different production programs PG1, PG2, PG3 included in the optimization execution list (optimization target data) are assigned to Q (3) execution servers Se1, Se2, Se3 (assignment process).
  • the Q (3) execution servers Se1, Se2, Se3 execute in parallel calculations to optimize the assigned production programs PG1, PG2, PG3 (parallel optimization process).
  • multiple computers are not used to optimize the same production program PG, but are used to optimize the different production programs PG1, PG2, PG3.
  • the three production programs PG1, PG2, PG3 may be assigned to two execution servers Se1, Se2, Se3.
  • the optimization of the production programs PG1, 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 that can be used for optimization calculations in the optimization system SY.
  • Sm Management server Se: Execution server Se
  • Sl Local server PG: Production program (optimization target data) Ce...Element condition LN...Component mounting line M...Component mounting machine F23...Feeder set position B...Board E...Component A...Setup G...Setup group

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Supply And Installment Of Electrical Components (AREA)
  • General Factory Administration (AREA)

Abstract

生産プログラムPGにより規定される条件に含まれる6個の要素条件Ceが、6個の実行サーバーSe1~Se6(演算装置、実行演算装置)に割り当てられる(ステップS204)。そして、6個の実行サーバーSe1~Se6のそれぞれが、割り当てられた要素条件Ceを最適化する演算を並列して実行する(ステップS205)。このように、上記の例は、生産プログラムPGの全体の最適化を一の実行サーバーSeに実行させるのではなく、生産プログラムPGにより規定される条件を6個の要素条件Ceに分解して、さらに6個の要素条件Ceの最適化を6個の実行サーバーSe1~Se6に並列して実行させる。その結果、生産プログラムPGの最適化に要する演算時間の短縮が可能となっている。

Description

基板生産プログラムの最適化方法、最適化装置および最適化システム
 この発明は、部品実装ラインで基板に部品を実装するための条件を規定する生産プログラムを最適化する技術に関する。
 所定の生産計画の実行を示す生産プログラムに規定される条件に従って部品実装ラインを動作させて、基板への部品の実装を部品実装ラインに実行させることで、生産計画で計画された基板を生産する技術が知られている。ここで、生産プログラムに規定される条件には、部品実装ラインにセットされる部品の種類、部品実装ラインに部品をセットする位置あるいは部品を基板に実装する順序等が含まれる。また、基板生産を効率的に実行するために、生産プログラムの最適化が一般に行われる。この際、生産プログラムの最適化に要する演算時間の短縮が重要となる。
 例えば特許文献1では、最適化を行うための複数のアルゴリズムを用意しておき、複数のコンピューターに同一の生産データを送信して、各コンピューターに異なるアルゴリズムで同一の生産データに対する最適化を実行させる。こうして、複数のコンピューターに互いに異なるアルゴリズムで最適化を並列して実行させることで、複数のアルゴリズムのうちの最適なアルゴリズムにより最適化された解を短時間で得られるようにしている。
特許6025161号公報
 ただし、引用文献1の技術は、複数のコンピューターのそれぞれに同一の生産データの最適化を実行させる。したがって、所定の生産計画を実行するための生産プログラムを当該技術により最適化するとなると、複数のコンピューターは同一の生産プログラムに対する最適化を実行する。このような手法は、次の2つの観点から改善の余地がある。1つ目は、複数のコンピューターのそれぞれで、当該生産プログラムの全体を最適化するための演算時間が発生するため、生産プログラムの最適化に要する演算時間の短縮に改善の余地があった。2つ目は、同一の生産プログラムの最適化に複数のコンピューターを使用するため、多くのコンピューターを用意する必要があった、前者は時間というリソースの使い方が非効率であり、後者は設備(コンピューター)というリソースの使い方が非効率である。したがって、少なくとも一方のリソースを有効に利用することが求められていた。
 この発明は上記課題に鑑みなされたものであり、生産プログラムの最適化に要するリソース(演算時間あるいは設備)の効率的な利用を可能とすることを目的とする。
 本発明に係る基板生産プログラムの最適化方法は、部品実装ラインで基板に部品を実装するための条件を規定する生産プログラムを含む最適化対象データを取得する工程と、最適化対象データに含まれる互いに異なるN個(Nは2以上の整数)の要素データを、Q個(Qは2以上であってN以下の整数)の演算装置に割り当てる割り当て処理を実行する工程と、Q個の演算装置が割り当て処理でそれぞれに割り当てられた要素データを最適化する演算を並列して実行する並列最適化処理を実行する工程とを備える。
 本発明に係る基板生産プログラムの最適化装置は、部品実装ラインで基板に部品を実装するための条件を規定する生産プログラムを含む最適化対象データを取得する生産プログラム取得部と、最適化対象データに含まれる互いに異なるN個(Nは2以上の整数)の要素データを、Q個(Qは2以上であってN以下の整数)の演算装置に割り当てる割り当て処理実行部と、Q個の演算装置のそれぞれに、割り当てられた要素データを最適化する演算を並列して実行させる並列最適化処理実行部とを備え。
 本発明に係る基板生産プログラムの最適化システムは、管理演算装置と、複数の実行演算装置とを備え、管理演算装置は、部品実装ラインで基板に部品を実装するための条件を規定する生産プログラムを含む最適化対象データを取得する生産プログラム取得部と、最適化対象データに含まれる互いに異なるN個(Nは2以上の整数)の要素データを、複数の実行演算装置のうちQ個(Qは2以上であってN以下の整数)の実行演算装置に割り当てる割り当て処理実行部とを有し、Q個の実行演算装置のそれぞれは、割り当てられた要素データを最適化する演算を並列して実行する。
 このように構成された本発明(基板生産プログラムの最適化方法、最適化装置および最適化システム)では、生産プログラムを含む最適化対象データに含まれるN個(Nは2以上の整数)の要素データが、Q個の演算装置(実行演算装置)に割り当てられる。そして、Q個の演算装置のそれぞれが、割り当てられた要素データを最適化する演算を並列して実行する。このように、本発明は、生産プログラムを含む最適化対象データをN個の要素データに分解して、N個の要素データの最適化をQ個の演算装置に並列して実行させる。その結果、生産プログラムの最適化に要するリソース(演算時間)の効率的な利用、すなわち、生産プログラムの最適化に要する演算時間の短縮が可能となっている。
 また、割り当て処理では、生産プログラムにより規定される条件に含まれるM個(MはN以上の整数)の要素条件のうち、それぞれの要素条件を最適化する演算を並列して実行可能なN個の要素条件を、N個の要素データとしてQ個の演算装置に割り当て、並列最適化処理では、Q個の演算装置が割り当て処理でそれぞれに割り当てられた要素条件を最適化する演算を並列して実行するように、基板生産プログラムの最適化方法を構成してもよい。かかる構成では、生産プログラムにより規定される条件に含まれるM個(Mは2以上の整数)の要素条件のうち、それぞれの要素条件を最適化する演算を並列して実行可能なN個(Nは2以上であってM以下の整数)の要素条件が、Q個の演算装置(実行演算装置)に割り当てられる。そして、Q個の演算装置のそれぞれが、割り当てられた要素条件を最適化する演算を並列して実行する。つまり、生産プログラムの全体の最適化を一の演算装置に実行させるのではなく、生産プログラムにより規定される条件をM個の要素条件に分解して、さらにM個のうちのN個の要素条件の最適化をQ個の演算装置に並列して実行させる。その結果、生産プログラムの最適化に要する演算時間の短縮が可能となっている。
 また、NがM未満である場合には、M個の要素条件のうち、N個の要素条件とは異なる(M-N)個の要素条件を最適化する演算を、並列最適化処理とは異なるタイミングで実行するように、基板生産プログラムの最適化方法を構成してもよい。かかる構成では、(M-N)個の要素条件を最適化する演算を、適切なタイミングで実行することができる。
 また、部品実装ラインは、それぞれ部品をセットするための複数のセット位置を有し、生産プログラムは、N個の段取りグループを実行するための条件を規定し、N個の段取りグループのそれぞれでは、セット位置に部品をセットする段取り作業の実行後に、複数の種類の基板に順番に部品が実装され、割り当て処理では、段取りグループを実行するための条件を要素条件として扱って、N個の段取りグループにそれぞれ対応するN個の要素条件をQ個の演算装置に割り当てるように、基板生産プログラムの最適化方法を構成してもよい。かかる構成では、生産プログラムに規定される条件が、N個の段取りグループに対応するN個の要素条件を含むM個の要素条件に分解される。そして、N個の要素条件の最適化がQ個の演算装置によって並列して実行される。その結果、生産プログラムの最適化に要する演算時間の短縮が可能となっている。
 また、部品実装ラインは、それぞれ部品をセットするための複数のセット位置を有し、生産プログラムは、段取りグループを実行するための条件を規定し、段取りグループでは、セット位置に部品をセットする段取り作業の実行後に、セット位置にセットされた部品がN種類の基板に順番に実装され、割り当て処理では、1種類の基板に対して部品を実装する順序を示す条件を要素条件として扱って、N種類の基板にそれぞれ対応するN個の要素条件をQ個の演算装置に割り当てるように、基板生産プログラムの最適化方法を構成してもよい。かかる構成では、生産プログラムに規定される条件が、N種類の基板にそれぞれ対応するN個の要素条件を含むM個の要素条件に分解される。そして、N個の要素条件の最適化がQ個の演算装置によって並列して実行される。その結果、生産プログラムの最適化に要する演算時間の短縮が可能となっている。
 また、段取り作業でセット位置にセットする部品を最適化する部品位置最適化処理を、割り当て処理の前に実行する工程と、Q個の演算装置により実行されるN個の要素条件の最適化が完了するのを待機する工程と、N個の要素条件の最適化が完了すると、N個の要素条件の最適化の結果に基づき、部品位置最適化処理の再実行の要否を判定する工程と、部品位置最適化処理の再実行が必要と判定されると、部品位置最適化処理、割り当て処理および並列最適化処理を実行するように、基板生産プログラムの最適化方法を構成してもよい。かかる構成では、並列に実行されるN個の要素条件の最適化の完了を待って、この結果に基づき部品をセットする位置を最適化でき、より適切な生産プログラムを求めることができる。
 また、部品実装ラインは、直列に配列されたN個の部品実装機を備え、生産プログラムは、N個の部品実装機に順番に基板を搬送してN個の部品実装機のそれぞれに基板に部品を実装させるための条件を規定し、割り当て処理では、1個の部品実装機が基板へ部品を実装する順序を示す条件を要素条件として扱って、N個の部品実装機にそれぞれ対応するN個の要素条件をQ個の演算装置に割り当てるように、基板生産プログラムの最適化方法を構成してもよい。かかる構成では、生産プログラムに規定される条件が、N個の部品実装機にそれぞれ対応するN個の要素条件を含むM個の要素条件に分解される。そして、N個の要素条件の最適化がQ個の演算装置によって並列して実行される。その結果、生産プログラムの最適化に要する演算時間の短縮が可能となっている。
 また、N個の部品実装機にセットする部品を最適化する部品位置最適化処理を、割り当て処理の前に実行する工程と、Q個の演算装置により実行されるN個の要素条件の最適化が完了するのを待機する工程と、N個の要素条件の最適化が完了すると、N個の要素条件の最適化の結果に基づき、部品位置最適化処理の再実行の要否を判定する工程と、部品位置最適化処理の再実行が必要と判定されると、部品位置最適化処理、割り当て処理および並列最適化処理を実行するように、基板生産プログラムの最適化方法を構成してもよい。かかる構成では、並列に実行されるN個の要素条件の最適化の完了を待って、この結果に基づき部品をセットする位置を最適化でき、より適切な生産プログラムを求めることができる。
 なお、Q個の演算装置の具体的な態様は種々想定される。例えば、所定の端末装置から送信された最適化対象データを受信することで、生産プログラムを取得し、Q個の演算装置は、Q個のクラウドサーバーであるように、基板生産プログラムの最適化方法を構成してもよい。あるいは、所定の端末装置から送信された最適化対象データを受信することで、生産プログラムを取得し、Q個の演算装置は、端末装置とローカルエリアネットワークで接続されたQ個のサーバーであるように、基板生産プログラムの最適化方法を構成してもよい。
 また、割り当て処理では、最適化対象データに含まれる互いに異なるN個の生産プログラムを、N個の要素データとしてQ個の演算装置に割り当て、並列最適化処理では、Q個の演算装置が割り当て処理でそれぞれに割り当てられた生産プログラムを最適化する演算を並列して実行するように、基板生産プログラムの最適化方法を構成してもよい。かかる構成では、互いに異なるN個(Nは2以上であってM以下の整数)の生産プログラムが、Q個の演算装置に割り当てられる。そして、Q個の演算装置のそれぞれが、割り当てられた生産プログラムを最適化する演算を並列して実行する。つまり、複数の演算装置を同一の生産プログラムの最適化に使用するのではなく、互いに異なる生産プログラムの最適化に使用している。その結果、生産プログラムの最適化に要するリソース(設備)の効率的な利用が可能となっている。
 本発明によれば、生産プログラムの最適化に要する演算時間の短縮が可能となる。
本発明に係る最適化システムおよび当該最適化システムによって最適化された生産プログラムを実行する部品実装ラインを模式的に示すブロック図。 部品実装機の一例の構成を模式的に示す平面図。 生産プログラムの最適化のためにローカルサーバーによって実行される制御の一例を示すフローチャート。 生産プログラムの最適化のために最適化システムによって実行される制御の第1例を示すフローチャート。 図4のフローチャートに従って実行される動作の第1例を示すタイミングチャート。 図4のフローチャートに従って実行される動作の第1例を示すタイミングチャート。 図4のフローチャートに従って実行される動作の第2例を示すタイミングチャート。 図4のフローチャートに従って実行される動作の第2例を示すタイミングチャート。 生産プログラムの最適化のために最適化システムによって実行される制御の第2例を示すフローチャート。 図7のフローチャートに従って実行される演算の内容を模式的に示すタイミングチャートの第1例を示す図。 部品実装ラインLNにおいて3個の品種K(a)~K(c)に順番に部品Eを実装する動作を示すタイミングチャート。 部品実装ラインLNにおいて3個の品種K(a)~K(c)に順番に部品Eを実装する動作を示すタイミングチャート。 図7のフローチャートに従って実行される演算の内容を模式的に示すタイミングチャートの第2例を示す図。 複数の生産プログラムの最適化を並列に実行するタイミングチャートの一例を示す図。
 図1は本発明に係る最適化システムおよび当該最適化システムによって最適化された生産プログラムを実行する部品実装ラインを模式的に示すブロック図である。部品実装ラインLNは、ユーザーの敷地PRに設置されており、X方向(水平方向)に直列に並ぶ複数(図1の例では3台)の部品実装機Mを備える。これらの部品実装機Mには基板B(図2)が順番に搬入され、各部品実装機Mは搬入されてきた基板Bに部品E(図2)を実装する。こうして、複数の部品実装機Mは、同一の基板Bに対する部品Eの実装を分担して、部品実装済みの基板Bを生産する。
 また、ユーザーの敷地PRには、ローカルサーバーSlおよびローカルエリアネットワークNWが設けられており、ローカルエリアネットワークNWが複数の部品実装機MとローカルサーバーSlとを相互に接続する。ローカルサーバーSlはサーバーコンピューターであり、部品実装ラインLNを管理する。特に、ローカルサーバーSlは、所定の品種の基板を所定の枚数ずつ生産することを示す生産計画を部品実装ラインLNに実行させる生産プログラムPGに基づき、部品実装ラインLNを管理する。換言すれば、部品実装ラインLNの複数の部品実装機Mは、生産プログラムPGに従って動作することで、部品Eを基板Bに実装する。
 これに対して、生産プログラムPGを最適化する最適化システムSYは、敷地PRとは別の場所、換言すればクラウド上に設けられる。この最適化システムSYは、それぞれクラウドサーバーとして機能するコンピューターである管理サーバーSmおよび複数の実行サーバーSe1、Se2、Se3、…を備える。なお、以下では、実行サーバーSe1、Se2、Se3を特に区別しない場合には、実行サーバーSeと称する。管理サーバーSmは、複数の実行サーバーSe1、Se2、Se3、…を管理するとともに、インターネット通信網を介してローカルサーバーSlと通信を行う。この最適化システムSYの動作は後述する。
 図2は部品実装機の一例の構成を模式的に示す平面図である。図2では、水平方向であるX方向、X方向に直交する水平方向であるY方向および鉛直方向であるZ方向を適宜示す。この部品実装機Mは、集積回路、トランジスタ、コンデンサ等の小片状の電子部品Eを基板Bに実装する。
 図2に示すように、部品実装機Mは、基板BをX方向(基板搬送方向)に搬送する搬送部21を備える。この搬送部21は、X方向に並列に配置された一対のコンベア211を有し、コンベア211によって基板BをX方向に搬送する。これらコンベア211の間隔は、X方向に直交するY方向(幅方向)に変更可能であり、搬送部21は、搬送する基板Bの幅に応じてコンベア211の間隔を調整する。この搬送部21は、基板搬送方向であるX方向の上流側から所定の作業位置212に基板Bを搬入するとともに、作業位置212で部品Eが実装された基板Bを作業位置212からX方向の下流側に搬出する。
 この部品実装機Mでは、合計4台の部品供給台車22が設けられており、具体的には、 搬送部21のY方向の両側それぞれにおいて2台の部品供給台車22がX方向に並んでいる。各部品供給台車22では、複数のテープフィーダ23がX方向に並び、複数のテープフィーダ23にそれぞれ対応して複数の部品供給リールが配置されている。部品供給リールには部品収納テープが巻き付けられている。この部品収納テープは、一列に配列された複数のポケットを有し、各ポケットに部品Eが収納されている。各テープフィーダ23は、Y方向において搬送部21側の先端部に部品供給位置231を有し、部品供給リールから引き出した部品収納テープを搬送部21側に間欠的に送ることで、部品収納テープ内の部品Eを部品供給位置231に供給する。
 各部品供給台車22は、X方向に並ぶ複数のフィーダーセット位置F23を有する。フィーダーセット位置F23に対しては、テープフィーダ23を着脱可能にセットすることができる。そして、テープフィーダ23にテープフィーダ23がセットされることで、当該テープフィーダ23に装着された部品Eがフィーダーセット位置F23にセットされる。
 また、部品実装機Mでは、Y方向に延びる一対のY軸レール241と、Y方向に延びるY軸ボールネジ242と、Y軸ボールネジ242を回転駆動するY軸モータMyとが設けられ、X軸レール244が一対のY軸レール241にY方向に移動可能に支持された状態でY軸ボールネジ242のナットに固定されている。X軸レール244には、X方向に延びるX軸ボールネジ245と、X軸ボールネジ245を回転駆動するX軸モータMxとが取り付けられている。部品実装機Mはヘッドユニット25を備え、ヘッドユニット25は、X軸レール244にX方向に移動可能に支持された状態でX軸ボールネジ245のナットに固定されている。したがって、Y軸モータMyによりY軸ボールネジ242を回転させてヘッドユニット25をY方向に移動させ、あるいはX軸モータMxによりX軸ボールネジ245を回転させてヘッドユニット25をX方向に移動させることができる。
 図2に示す例では、ヘッドユニット25は、X方向に直線状に配列された複数の実装ヘッド5を有するインラインタイプである。ただし、ヘッドユニット25の具体的構成は図1の例に限られず、ヘッドユニット25は、円周状に配列された複数の実装ヘッド5を有するロータリータイプであってもよい。また、ヘッドユニット25が有する実装ヘッド5の本数は複数に限られず単数でも構わない。各実装ヘッド5の下端にはノズルが着脱可能に装着されており、実装ヘッド5はノズルによって部品Eを吸着する。
 かかる部品実装機Mでは、X軸モータMxおよびY軸モータMyによって実装ヘッド5を移動させることで、部品供給位置231に供給された部品Eに対して、当該実装ヘッド5のノズル51を上方から対向させる。続いて、ノズル51を下降させることで、部品供給位置231に供給された部品Eの上面にノズル51を当接させた後に、ノズル51に部品Eを吸着させる。さらに、ノズル51を上昇させることで、ヘッドユニット25は、実装ヘッド5のノズル51によって部品供給位置231から部品Eをピックアップする。続いて、X軸モータMxおよびY軸モータMyによって実装ヘッド5を移動させることで、基板Bのランドに対して、当該実装ヘッド5のノズル51に吸着される部品Eを上方から対向させる。そして、ノズル51により吸着される部品Eのランドに対する角度を調整してから、ノズル51を下降させることで、部品Eを基板Bのランドに載置する。
 続いては、生産プログラムPGの最適化について説明する。生産プログラムPGは、所定の生産計画を部品実装ラインLNに実行させるために、部品実装ラインLNで基板Bに部品Eを実装するための条件を規定する。この生産プログラムPGは多様な条件を含むが、少なくとも
・部品位置条件…各部品実装機Mにおいて各種の部品Eがセットされる位置(具体的にはフィーダーセット位置F23)を規定する条件
・実装順序条件…基板Bの各実装点に実装する部品Eと各実装点に部品Eを実装する順序を規定する条件
を含む。そして、生産プログラムPGの最適化では、生産計画の実行完了に要する時間の短縮を図るために、少なくとも部品位置条件および実装順序条件が最適化される。
 生産プログラムPGは、生産計画を実行するために部品実装ラインLNに求められる条件(全体条件)を規定し、この全体条件は、複数の要素条件の集合体であると捉えることができる。上記の例では、生産プログラムPGが規定する全体条件は、部品位置条件および実装順序条件等の集合体であり、この全体条件は、部品位置条件という要素条件と実装順序条件という要素条件とに分けて捉えることができる。このように複数の要素条件に分けて捉える目的は、2個以上の要素条件の最適化を並列して実行して、生産プログラムPGの最適化に要する演算時間を短縮することにある。なお、要素条件の捉え方は、後に具体的に示すようにバリエーションを有し、任意性がある。
 図3は生産プログラムの最適化のためにローカルサーバーによって実行される制御の一例を示すフローチャートである。ステップS101では、ローカルサーバーSlは、UI(User Interface)に対するユーザーの操作に応じて、最適化実行リストを作成する。この最適化実行リストは、ユーザーが最適化の実行を要求する一あるいは複数の生産プログラムPGを示す。
 ステップS102では、ローカルサーバーSlは、UIへの操作によって、生産プログラムPGの最適化の実行指令が入力されたかを判定する(ステップS102)。ローカルサーバーSlは、実行指令が入力されると(ステップS102で「YES」)、クラウド認証をユーザーに要求する(ステップS103)。具体的には、ローカルサーバーSlは、ユーザーのIDおよびパスワードのUIによる入力によって、クラウド認証を行う。
 続くステップS104では、ローカルサーバーSlは、最適化実行リストに含まれる生産プログラムPGを最適化システムSYの管理サーバーSmにアップロードする。そして、ローカルサーバーSlは、最適化システムSYにおける生産プログラムPGの最適化の完了を確認すると(ステップS105で「YES」)、管理サーバーSmから最適化された生産プログラムPGをダウンロードして(ステップS106)、その結果をディスプレイに表示する(ステップS107)。なお、複数の生産プログラムPGをアップロードした場合には、最適化が完了した生産プログラムPGから順にダウンロードしてもよいし、全ての生産プログラムPGの最適化が完了してから一括してダウンロードしてもよい。
 図4は生産プログラムの最適化のために最適化システムによって実行される制御の第1例を示すフローチャートである。最適化システムSYの管理サーバーSmは、ローカルサーバーSlからアップロードされた生産プログラムPGを受信すると、当該生産プログラムPGの最適化が要求されたと判定する(ステップS201で「YES」)。そして、最適化システムSYは、生産プログラムPGに含まれる要素条件の個数を解析した結果に基づき、当該生産プログラムPGの最適化に必要となる実行サーバーSeの個数を判定する(ステップS202)。その結果、現在起動している実行サーバーSeの個数が、生産プログラムPGの最適化に必要な個数に対して不足している場合には、ローカルサーバーSlは、不足分の実行サーバーSeを起動する(ステップS203)。
 ステップS204~S206は、最適化実行リストに含まれる生産プログラムPGの個数に応じて実行される。図4の例は、2個の生産プログラムPG1、PG2が含まれる場合に相当し、2個の生産プログラムPGにそれぞれ対応する2系統のステップS204~S206が互いに異なる実行サーバーSeによって実行される。生産プログラムPG1、PG2それぞれに実行されるステップS204~S206の内容は同様であるため、ここでは、生産プログラムPG1に対して実行されるステップS204~S206について説明する。
 ステップS204では、管理サーバーSmは、生産プログラムPG1によって規定される条件に含まれる複数の要素条件を互いに異なる実行サーバーSeに割り当てる。そして、管理サーバーSmは、割り当てられた要素条件の最適化を各実行サーバーSeに実行させる(ステップS205)。各実行サーバーSeが割り当てられた要素条件の最適化を完了すると(ステップS206で「YES」)、管理サーバーSmは、各要素条件の最適化が完了した生産プログラムPGをローカルサーバーSlに送信する(ステップS207)。すなわち、図3のステップS106における生産プログラムPGのダウンロードが実行される。ステップS208では、管理サーバーSmは、以後に演算に使用されない不要な実行サーバーSeを休止させる。
 図5Aおよび図5Bは図4のフローチャートに従って実行される動作の第1例を示すタイミングチャートである。図5Aでは、生産計画PLが示されている。生産計画PLは、部品実装ラインLNにおいて実行される段取りA(a)~A(f)と品種K(a)~K(f)の基板Bへの部品Eの実装とが示されている。ここで段取りA(a)~A(f)は、それぞれ品種K(a)~K(f)の基板Bに実装される部品Eを、部品実装ラインLNの各部品実装機Mのフィーダーセット位置F23にセットする作業であり、ユーザーあるいはロボットによって実行される。なお、以下では、段取りA(a)~A(f)を特に区別しない場合には段取りAと称し、品種K(a)~K(f)を特に区別しない場合には品種Kと称する。
 図5Aの生産計画PLは、部品実装ラインLNの各部品実装機Mのフィーダーセット位置F23に部品Eをセットする段取りAと、当該段取りAでセットされた部品Eを品種Kの基板Bに実装する部品実装とを、基板Bの品種K(a)~K(f)を変更しつつ繰り返すことを示す。具体的には、
・品種K(a)の基板Bに実装される部品Eの段取りA(a)を実行
・当該段取りA(a)でセットされた部品Eを品種K(a)の基板Bに実装
・品種K(b)の基板Bに実装される部品Eの段取りA(b)を実行
・当該段取りA(b)でセットされた部品Eを品種K(b)の基板Bに実装
といった動作を繰り返すことで、品種K(a)~K(f)の基板Bへの部品Eの実装が実行される。
 この生産計画PLを実行するために部品実装ラインLNに求められる条件を示す生産プログラムPGは、段取りAで部品Eをセットする位置を規定する部品位置条件と、当該段取りAでセットされた部品Eを品種Kの基板Bに実装する順序を規定する実装順序条件とを、複数の品種K(a)~K(f)について示す。図5Bに示す例では、同一の品種Kに対応する部品位置条件Cpおよび実装順序条件Cmが一つの要素条件Ceとして扱われて、複数の品種K(a)~K(f)にそれぞれ対応する6個の要素条件Ceに生産プログラムPGが分解される。そして、各要素条件Ceが互いに異なる実行サーバーSeに割り当てられる。
 つまり、実行サーバーSe1は、段取りA(a)で部品Eをセットする位置を規定する部品位置条件Cpの最適化(検討)を行ってから、当該段取りA(a)でセットされた部品Eを品種K(a)の基板Bに実装する順序を規定する実装順序条件Cmの最適化を行うといった演算を実行する。また、実行サーバーSe2は、段取りA(b)で部品Eをセットする位置を規定する部品位置条件Cpの最適化(検討)を行ってから、当該段取りA(b)でセットされた部品Eを品種K(b)の基板Bに実装する順序を規定する実装順序条件Cmの最適化を行うといった演算を実行する。同様に、実行サーバーSe3~Se6は、部品位置条件Cpおよび実装順序条件Cmを最適化する演算を、品種K(c)~K(f)について実行する。この際、実行サーバーSe1~Se6は、それぞれの演算を並列に実行する。ここで、複数の演算が並列に実行されるとは、複数の演算のそれぞれが実行される期間が少なくとも部分的に重複していることを示す。
 このように上記の例では、生産プログラムPGにより規定される条件に含まれる6個の要素条件Ceが、6個の実行サーバーSe1~Se6(演算装置、実行演算装置)に割り当てられる(ステップS204)。そして、6個の実行サーバーSe1~Se6のそれぞれが、割り当てられた要素条件Ceを最適化する演算を並列して実行する(ステップS205)。このように、上記の例は、生産プログラムPGの全体の最適化を一の実行サーバーSeに実行させるのではなく、生産プログラムPGにより規定される条件を6個の要素条件Ceに分解して、さらに6個の要素条件Ceの最適化を6個の実行サーバーSe1~Se6に並列して実行させる。その結果、生産プログラムPGの最適化に要する演算時間の短縮が可能となっている。
 図6Aおよび図6Bは図4のフローチャートに従って実行される動作の第2例を示すタイミングチャートである。図6Aでは、生産計画PLが示されている。図5Aの生産計画PLと図6Aの生産計画PLとの違いは、図6Aの生産計画PLでは、複数の品種Kの基板Bに実装される部品Eを1回の段取りAによりセットする点である(共通段取り)。すなわち、生産計画PLは、
・品種K(a)~K(c)の基板Bに実装される部品Eの段取りA(abc)を実行
・当該段取りA(abc)でセットされた部品Eを品種K(a)の基板Bに実装
・当該段取りA(abc)でセットされた部品Eを品種K(b)の基板Bに実装
・当該段取りA(abc)でセットされた部品Eを品種K(c)の基板Bに実装
・品種K(d)~K(f)の基板Bに実装される部品Eの段取りA(def)を実行
・当該段取りA(def)でセットされた部品Eを品種K(d)の基板Bに実装
・当該段取りA(def)でセットされた部品Eを品種K(e)の基板Bに実装
・当該段取りA(def)でセットされた部品Eを品種K(f)の基板Bに実装
といった動作を順番に実行することを示す。
 ここで、段取りAで部品Eをセットして、当該段取りAでセットされた部品Eを複数の品種Kの基板Bに実装する動作を「段取りグループG」と称する。上記の例では、段取りA(abc)で部品Eをセットして当該段取りA(abc)でセットされた部品Eを複数の品種K(a)~K(c)の基板Bに実装する段取りグループGと、段取りA(def)で部品Eをセットして当該段取りA(def)でセットされた部品Eを複数の品種K(d)~K(f)の基板Bに実装する段取りグループGとが順に実行される。すなわち、2個の段取りグループGが順番に実行される。
 この生産計画PLを実行するために部品実装ラインLNに求められる条件を示す生産プログラムPGは、複数の品種Kの基板Bに共通する段取りAで部品Eをセットする位置を規定する部品位置条件Cpと、当該段取りAでセットされた部品Eを複数の品種Kの基板Bそれぞれに実装する順序を規定する実装順序条件Cmを、各段取りAについて示す。つまり、生産計画PLは、図6Bに示す例では、1回の段取りAに対応する部品位置条件Cpおよび実装順序条件Cmが一つの要素条件として扱われて、2回の段取りA(abc)、A(def)にそれぞれ対応する2個の要素条件Ceに生産プログラムPGが分解される。そして、各要素条件Ceが互いに異なる実行サーバーSeに割り当てられる。
 つまり、実行サーバーSe1は、当該実行サーバーSe1に割り当てられた要素条件Ceを最適化する演算を実行する。具体的には、
・段取りA(abc)で部品Eをセットする位置を規定する部品位置条件Cpの最適化(検討)
・当該段取りA(abc)でセットされた部品Eを品種K(a)の基板Bに実装する順序を規定する実装順序条件Cmの最適化
・当該段取りA(abc)でセットされた部品Eを品種K(b)の基板Bに実装する順序を規定する実装順序条件Cmの最適化
・当該段取りA(abc)でセットされた部品Eを品種K(c)の基板Bに実装する順序を規定する実装順序条件Cmの最適化
を順に行うといった演算を実行する。
 また、実行サーバーSe2は、当該実行サーバーSe2に割り当てられた要素条件Ceを最適化する演算を実行する。具体的には、
・段取りA(def)で部品Eをセットする位置を規定する部品位置条件Cpの最適化(検討)
・当該段取りA(def)でセットされた部品Eを品種K(d)の基板Bに実装する順序を規定する実装順序条件Cmの最適化
・当該段取りA(def)でセットされた部品Eを品種K(e)の基板Bに実装する順序を規定する実装順序条件Cmの最適化
・当該段取りA(def)でセットされた部品Eを品種K(f)の基板Bに実装する順序を規定する実装順序条件Cmの最適化
を順に行うといった演算を実行する。
 この際、実行サーバーSe1、Se2は、それぞれの演算を並列に実行する。すなわち、実行サーバーSe1が当該実行サーバーSe1に割り当てられた要素条件Ceを最適化する演算と、実行サーバーSe2が当該実行サーバーSe2に割り当てられた要素条件Ceを最適化する演算とが並列に実行される。
 このように上記の例では、生産プログラムPGにより規定される条件に含まれる2個の要素条件Ceが、2個の実行サーバーSe1、Se2(演算装置、実行演算装置)に割り当てられる(ステップS204)。そして、2個の実行サーバーSe1、Se2のそれぞれが、割り当てられた要素条件Ceを最適化する演算を並列して実行する(ステップS205)。このように、上記の例では、生産プログラムPGの全体の最適化を一の実行サーバーSeに実行させるのではなく、生産プログラムPGにより規定される条件を2個の要素条件Ceに分解して、さらに2個の要素条件Ceの最適化を2個の演算装置に並列して実行させる。その結果、生産プログラムPGの最適化に要する演算時間の短縮が可能となっている。
 また、部品実装ラインLNは、それぞれ部品Eをセットするための複数のフィーダーセット位置F23(セット位置)を有する。これに対して、生産プログラムPGは、2個の段取りグループGを実行するための条件を規定する(図6A)。2個の段取りグループGのそれぞれでは、フィーダーセット位置F23(セット位置)に部品Eをセットする段取りA(段取り作業)の実行後に、複数の品種Kの基板Bに順番に部品Eが実装される。これに対して、ステップS204(割り当て処理)では、段取りグループGを実行するための条件を要素条件Ceとして扱って、2個の段取りグループGにそれぞれ対応する2個の要素条件Ceを2個の実行サーバーSe1、Se2(図6B)に割り当てる。かかる構成では、生産プログラムPGに規定される条件が、2個の段取りグループGに対応する2個の要素条件Ceに分解される(ステップS204)。そして、2個の要素条件Ceの最適化が2個の実行サーバーSe1、Se2によって並列して実行される(ステップS205)。その結果、生産プログラムPGの最適化に要する演算時間の短縮が可能となっている。
 ところで、1個の段取りグループGをさらに分解して、1個の部品位置条件Cpおよび複数の実装順序条件Cmのそれぞれを要素条件Ceとしてもよい。例えば、図7および図8に示すように、これを実行できる。図7は生産プログラムの最適化のために最適化システムによって実行される制御の第2例を示すフローチャートであり、図8は図7のフローチャートに従って実行される演算の内容を模式的に示すタイミングチャートの第1例である。なお、図8は、段取りグループGにおいて、1回の段取りAの後に2個の品種Kの基板Bに順番に部品Eが実装される例に対応する。
 ステップS301では、管理サーバーSmは、段取りAで部品Eをセットする位置を規定する部品位置条件Cpの最適化(検討)を、1個の実行サーバーSe1に割り当てる。そして、ステップS302では、管理サーバーSmは、部品位置条件Cpの最適化を当該実行サーバーSe1に実行させる(ステップS302)。これによって、図8に示すように、実行サーバーSe1は、時刻t0~t2において部品位置条件Cpを最適化する。
 部品位置条件Cpの最適化が完了すると、管理サーバーSmは、最適化された部品位置条件Cpに従ってセットされた部品Eを複数(2個)の品種Kの基板Bに実装する順序をそれぞれ規定する複数(2個)の実装順序条件Cmの最適化を、互いに異なる複数(2個)の実行サーバーSe1、Se2に割り当てる(ステップS303)。そして、ステップS304では、管理サーバーSmは、2個の実行サーバーSe1、Se2に、それぞれに割り当てられた実装順序条件Cmの最適化を実行させる(ステップS304)。これによって、図8に示すように、実行サーバーSe1は、当該実行サーバーSe1に割り当てられた実装順序条件Cmの最適化を時刻t2~t5において実行し、実行サーバーSe2は、当該実行サーバーSe2に割り当てられた実装順序条件Cmの最適化を時刻t2~t6において実行する。こうして、2個の実行サーバーSe1、Se2は、同一の段取りグループGにおいて部品Eが実装される異なる2個の品種Kの基板Bに対する実装順序条件Cmの最適化を並列に実行する。
 時刻t6において、実行サーバーSe1、Se2それぞれの実装順序条件Cmの最適化が完了すると(ステップS305で「YES」)、管理サーバーSmは、ステップS301~S304の再実行の要否の判定を、実行サーバーSe2に割り当てる(ステップS306)。そして、実行サーバーSe2は、割り当てられた要否の判定を実行する(ステップS307)。つまり、上述の通り、部品実装ラインLNにおいては、一の基板Bが複数の部品実装機Mに順番に搬入されて、複数の部品実装機Mのそれぞれが当該基板Bに順番に部品Eを実装する。この際、部品実装機Mが担当する部品Eの実装を完了するのに要する時間(タクトタイム)の差が所定時間以上となる2個の部品実装機Mが、複数の部品実装機Mのうちに存在する場合には、ステップS301~S304の再実行が必要と判定される(ステップS307で「YES」)。一方、複数の部品実装機Mのうち、任意の2個の部品実装機Mについてタクトタイムの差が所定時間未満である場合には、ステップS301~S304の再実行が不要と判定される(ステップS307で「NO」)。
 図8の例では、実行サーバーSe2が時刻t6~t7において再実行の要否を判定した結果、再実行が必要と判定された(ステップS307で「YES」)。したがって、管理サーバーSmは、ステップS301に戻って、段取りAで部品Eをセットする位置を規定する部品位置条件Cpの最適化(検討)を、1個の実行サーバーSe2に割り当てる。ステップS302では、管理サーバーSmは、部品位置条件Cpの最適化を当該実行サーバーSe2に実行させる(ステップS302)。この際、実行サーバーSe2は、上記のタクトタイムの差が、複数の部品実装機Mの間で短くなるように、部品位置条件Cpを決定する。例えば、実行サーバーSe2は、タクトタイムが最長の部品実装機Mからタクトタイムが最短の部品実装機Mに、基板Bに実装される部品Eを移すと決定する(部品位置条件Cpの最適化)。図8の例では、時刻t7~t9おいて実行サーバーSe2が部品位置条件Cpの最適化を実行する。
 この部品位置条件Cpの最適化が完了すると、管理サーバーSmは、当該段取りAでセットされた部品Eを複数(2個)の品種Kの基板Bに実装する順序をそれぞれ規定する複数(2個)の実装順序条件Cmの最適化を、互いに異なる複数(2個)の実行サーバーSe2、Se3に割り当てる(ステップS303)。そして、ステップS304では、管理サーバーSmは、2個の実行サーバーSe2、Se3に、それぞれに割り当てられた実装順序条件Cmの最適化を実行させる(ステップS304)。これによって、図8に示すように、実行サーバーSe2は、当該実行サーバーSe2に割り当てられた実装順序条件Cmの最適化を時刻t9~t13において実行し、実行サーバーSe3は、当該実行サーバーSe3に割り当てられた実装順序条件Cmの最適化を時刻t10~t13において実行する。こうして、2個の実行サーバーSe2、Se3は、、同一の段取りグループGにおいて部品Eが実装される異なる2個の品種Kの基板Bに対応する実装順序条件Cmの最適化を並列に実行する。
 時刻t13において、実行サーバーSe2、Se3それぞれの実装順序条件Cmの最適化が完了すると(ステップS305で「YES」)、管理サーバーSmは、ステップS301~S304の再実行の要否の判定を、実行サーバーSe2に割り当てる(ステップS306)。そして、実行サーバーSe2は、割り当てられた要否の判定を実行する(ステップS307)。図8の例では、管理サーバーSmが時刻t11~t12において再実行の要否を判定した結果、再実行が不要と判定した(ステップS306で「NO」)。したがって、管理サーバーSmは、図7のフローチャートを終了する。
 ここで、ステップS301~S307を繰り返すループにおいて、管理サーバーSmは、同一の要素条件Ceの最適化を割り当てる実行サーバーSeを、異なる回数のループで変更している。例えば、管理サーバーSmは、部品位置条件Cpの最適化を、1回目のループでは実行サーバーSe1に割り当てる一方、2回目のループでは、実行サーバーSe2に割り当てる。また、管理サーバーSmは、同一の品種Kの基板Bに関する実装順序条件Cmの最適化を、1回目のループでは実行サーバーSe1に割り当てる一方、2回目のループでは、実行サーバーSe2に割り当てる。これによって、実行サーバーSeの動作状況に応じて、要素条件Ceの最適化を割り当てる実行サーバーSeを動的に変更できる。
 上記の例では、生産プログラムPGにより規定される条件に含まれる3個の要素条件Ce(部品位置条件Cpおよび2個の実装順序条件Cm)のうち、それぞれを最適化する演算を並列して実行可能な2個の要素条件Ce(実装順序条件Cm)が、2個の実行サーバーSe(演算装置、実行演算装置)に割り当てられる(ステップS303)。そして、2個の実行サーバーSeのそれぞれが、割り当てられた実装順序条件Cmを最適化する演算を並列して実行する(ステップS304)。このように、上記の例では、生産プログラムPGの全体の最適化を一の実行サーバーSeに実行させるのではなく、生産プログラムPGにより規定される条件を3個の要素条件Ce(部品位置条件Cpおよび2個の実装順序条件Cm)に分解して、さらに3個のうちの2個の要素条件Ce(実装順序条件Cm)の最適化を2個の実行サーバーSeに並列して実行させる。その結果、生産プログラムPGの最適化に要する演算時間の短縮が可能となっている。
 また、3個の要素条件Ceのうち、2個の実装順序条件Cmとは異なる1個の部品位置条件Cpを最適化する演算を、ステップS304(並列最適化処理)とは異なるタイミング(ステップS302)で実行する。かかる構成では、1個の部品位置条件Cpを最適化する演算を、適切なタイミングで実行することができる。
 また、部品実装ラインLNは、それぞれ部品Eをセットするための複数のフィーダーセット位置F23を有する。これに対して、生産プログラムPGは、段取りグループGを実行するための条件を規定し、段取りグループGでは、フィーダーセット位置F23に部品Eをセットする段取りA(段取り作業)の実行後に、フィーダーセット位置F23にセットされた部品Eが2個の品種Kの基板Bに順番に実装される。これに対して、ステップS303(割り当て処理)では、1個の品種Kの基板Bに対して部品Eを実装する順序を示す実装順序条件Cmを要素条件Ceとして扱って、2個の品種Kの基板Bにそれぞれ対応する2個の要素条件Ce(実装順序条件Cm)を2個の実行サーバーSe(演算装置)に割り当てる(ステップS303)。つまり、生産プログラムPGに規定される条件が、2個の品種Kの基板Bにそれぞれ対応する2個の要素条件Ce(実装順序条件Cm)を含む3個の要素条件Ce(部品位置条件Cpおよび2個の実装順序条件Cm)に分解される。そして、2個の要素条件Ce(部品位置条件Cp)の最適化が2個の実行サーバーSeによって並列して実行される(ステップS304)。その結果、生産プログラムPGの最適化に要する演算時間の短縮が可能となっている。
 また、段取りA(段取り作業)でフィーダーセット位置F23にセットする部品Eを最適化するステップS302(部品位置最適化処理)を、ステップS303(割り当て処理)の前に実行する。そして、2個の実行サーバーSeによりそれぞれ実行される2個の要素条件Ce(実装順序条件Cm)の最適化が完了するのが待機される(ステップS305)。2個の要素条件Ce(実装順序条件Cm)の最適化が完了すると(ステップS305で「YES」)、2個の要素条件Ceの最適化の結果に基づき、ステップS302(部品位置最適化処理)の再実行の要否が判定される(ステップS307)。ステップS302の再実行が必要と判定されると(ステップS307で「YES」)、ステップS302(部品位置最適化処理)、ステップS303(割り当て処理)およびステップS304(並列最適化処理)が実行される。かかる構成では、並列に実行される2個の要素条件Ce(実装順序条件Cm)の最適化の完了を待って、この結果に基づき部品Eをセットする位置を最適化でき、より適切な生産プログラムPGを求めることができる。
 ここで、図9Aおよび図9Bに示す具体例を用いて、ステップS307での再実行の要否を判定する方法について改めて説明する。図9Aおよび図9Bは、部品実装ラインLNにおいて3個の品種K(a)~K(c)に順番に部品Eを実装する動作を示すタイミングチャートである。ステップS307の再実行の要否判定を行う実行サーバーSeは、部品位置条件Cpおよび実装順序条件Cmの最適化の結果に基づき、両図に示す各タイミングを予測することで、当該要否半判定を行う。例えば、部品位置条件Cpに従って部品Eを配置しつつ実装順序条件Cmが示す順序で部品Eを実装する動作をシミュレーションすることで、かかる予測を行うことができる。
 図9Aの例では、部品実装機M2と部品実装機M3との間において、品種K(c)の1枚の基板Bに部品Eを実装するのに要する時間(タクトタイム)の差Δが発生している。この差Δが所定時間以上であるため、ステップS302の再実行が必要と判定される(ステップS307で「YES」)。また、再実行されるステップS302では、実行サーバーSeは、品種K(c)の基板Bに実装される部品Eを、部品実装機M2のフィーダーセット位置F23から部品実装機M3のフィーダーセット位置F23に移動すると決定する(部品位置条件Cpの最適化)。
 図9Bの例では、部品実装機M1と部品実装機M3との間において、品種K(a)の1枚の基板Bに部品Eを実装するのに要する時間(タクトタイム)の差Δが発生している。この差Δが所定時間以上であるため、ステップS302の再実行が必要と判定される(ステップS307で「YES」)。また、再実行されるステップS302では、実行サーバーSeは、品種K(a)の基板Bに実装される部品Eを、部品実装機M1のフィーダーセット位置F23から部品実装機M3のフィーダーセット位置F23に移動すると決定する(部品位置条件Cpの最適化)。
 ところで、図5Bの例では、部品位置条件Cpと部品実装ラインLNにおける実装順序条件Cmを1つの要素条件Ceとして扱っている。したがって、3台の部品実装機Mのそれぞれが基板Bに部品Eを実装する順序を示す実装順序条件Cmの最適化は、1個の実行サーバーSeによって直列に実行される。しかしながら、3台の部品実装機Mのそれぞれが基板Bに部品Eを実装する順序を示す実装順序条件Cmの最適化を、3個の実行サーバーSeにより並列に実行してもよい。かかる演算は、図7および図10に示すように実行できる。図10は図7のフローチャートに従って実行される演算の内容を模式的に示すタイミングチャートの第2例である。
 ステップS301では、管理サーバーSmは、段取りAで部品Eをセットする位置を規定する部品位置条件Cpの最適化(検討)を、1個の実行サーバーSe1に割り当てる。そして、ステップS302では、管理サーバーSmは、部品位置条件Cpの最適化を当該実行サーバーSe1に実行させる(ステップS302)。これによって、図10に示すように、実行サーバーSe1は、時刻t0~t2において部品位置条件Cpを最適化する。
 部品位置条件Cpの最適化が完了すると、管理サーバーSmは、最適化された部品位置条件Cpに従って部品Eがセットされた前提で、複数(3台)の部品実装機M1、M2、M3のそれぞれが基板Bに部品Eを実装する順序を示す複数(3個)の実装順序条件Cmの最適化を、互いに異なる複数(3個)の実行サーバーSe1、Se2、Se3に割り当てる(ステップS303)。そして、ステップS304では、管理サーバーSmは、3個の実行サーバーSe1、Se2、Se3に、それぞれに割り当てられた実装順序条件Cmの最適化を実行させる(ステップS304)。これによって、図10に示すように、実行サーバーSe1は、当該実行サーバーSe1に割り当てられた部品実装機M1における実装順序条件Cmの最適化を時刻t2~t5において実行し、実行サーバーSe2は、当該実行サーバーSe2に割り当てられた部品実装機M2における実装順序条件Cmの最適化を時刻t2~t7において実行し、実行サーバーSe3は、当該実行サーバーSe3に割り当てられた部品実装機M3における実装順序条件Cmの最適化を時刻t2~t4において実行する。こうして、3個の実行サーバーSe1、Se2、Se3は、互いに異なる3台の部品実装機M1、M2、M3それぞれでの実装順序条件Cmの最適化を並列に実行する。
 時刻t7において、実行サーバーSe1、Se2、Se3それぞれの実装順序条件Cmの最適化が完了すると(ステップS305で「YES」)、管理サーバーSmは、ステップS301~S304の再実行の要否の判定を、実行サーバーSe2に割り当てる(ステップS306)。そして、実行サーバーSe2は、割り当てられた要否の判定を実行する(ステップS307)。ここでの判定方法は上述の通りである。
 図10の例では、実行サーバーSe2が時刻t7~t8において再実行の要否を判定した結果、再実行が必要と判定された(ステップS307で「YES」)。したがって、管理サーバーSmは、ステップS301に戻って、部品Eをセットする位置を規定する部品位置条件Cpの最適化(検討)を、1個の実行サーバーSe2に割り当てる。ステップS302では、管理サーバーSmは、部品位置条件Cpの最適化を当該実行サーバーSe2に実行させる(ステップS302)。ここでの最適化の方法は上述の通りである。図10の例では、時刻t8~t10おいて実行サーバーSe2が部品位置条件Cpの最適化を実行する。
 この部品位置条件Cpの最適化が完了すると、管理サーバーSmは、最適化された部品位置条件Cpに従って部品Eがセットされた前提で、複数(3台)の部品実装機M1、M2、M3のそれぞれが基板Bに部品Eを実装する順序を示す複数(3個)の実装順序条件Cmの最適化を、互いに異なる複数(3個)の実行サーバーSe1、Se2、Se4に割り当てる(ステップS303)。そして、ステップS304では、管理サーバーSmは、3個の実行サーバーSe1、Se2、Se4に、それぞれに割り当てられた実装順序条件Cmの最適化を実行させる(ステップS304)。これによって、図10に示すように、実行サーバーSe1は、当該実行サーバーSe1に割り当てられた部品実装機M1における実装順序条件Cmの最適化を時刻t10~t14において実行し、実行サーバーSe2は、当該実行サーバーSe2に割り当てられた部品実装機M2における実装順序条件Cmの最適化を時刻t10~t13において実行し、実行サーバーSe4は、当該実行サーバーSe4に割り当てられた部品実装機M3における実装順序条件Cmの最適化を時刻t10~t13において実行する。こうして、3個の実行サーバーSe1、Se2、Se4は、互いに異なる3台の部品実装機M1、M2、M3それぞれでの実装順序条件Cmの最適化を並列に実行する。
 時刻t14において、実行サーバーSe1、Se2、Se4それぞれの実装順序条件Cmの最適化が完了すると(ステップS305で「YES」)、管理サーバーSmは、ステップS301~S304の再実行の要否の判定を、実行サーバーSe1に割り当てる(ステップS306)。そして、実行サーバーSe1は、割り当てられた要否の判定を実行する(ステップS307)。図10の例では、実行サーバーSe1が時刻t14~t15において再実行の要否を判定した結果、再実行が不要と判定された(ステップS307で「NO」)。したがって、管理サーバーSmは図7のフローチャートを終了する。
 上記の例では、生産プログラムPGにより規定される条件に含まれる4個の要素条件Ce(部品位置条件Cpおよび3個の実装順序条件Cm)のうち、それぞれを最適化する演算を並列して実行可能な3個の要素条件Ce(実装順序条件Cm)が、3個の実行サーバーSe(演算装置、実行演算装置)に割り当てられる(ステップS303)。そして、3個の実行サーバーSeのそれぞれが、割り当てられた要素条件Ce(実装順序条件Cm)を最適化する演算を並列して実行する(ステップS304)。このように、上記の例では、生産プログラムPGの全体の最適化を一の実行サーバーSeに実行させるのではなく、生産プログラムPGにより規定される条件を4個の要素条件Ce(部品位置条件Cpおよび3個の実装順序条件Cm)に分解して、さらに4個のうちの3個の要素条件Ce(実装順序条件Cm)の最適化を3個の実行サーバーSeに並列して実行させる。その結果、生産プログラムPGの最適化に要する演算時間の短縮が可能となっている。
 また、4個の要素条件Ceのうち、3個の要素条件Ce(実装順序条件Cm)とは異なる1個の要素条件Ce(部品位置条件Cp)を最適化する演算を、ステップS304(並列最適化処理)とは異なるタイミング(ステップS302)で実行する。かかる構成では、1個の要素条件Ce(実装順序条件Cm)を最適化する演算を、適切なタイミングで実行することができる。
 また、部品実装ラインLNは、直列に配列された3個の部品実装機Mを備え、生産プログラムPGは、3個の部品実装機Mに順番に基板Bを搬送して3個の部品実装機Mのそれぞれに基板Bに部品Eを実装させるための条件を規定する。これに対して、ステップS303(割り当て処理)では、1個の部品実装機Mが基板Bへ部品Eを実装する順序を示す実装順序条件Cmを要素条件Ceとして扱って、3個の部品実装機Mにそれぞれ対応する3個の要素条件Ce(実装順序条件Cm)を3個の実行サーバーSeに割り当てる。かかる構成では、生産プログラムPGに規定される条件が、3個の部品実装機Mにそれぞれ対応する3個の要素条件Ce(実装順序条件Cm)を含む4個の要素条件Ce(部品位置条件Cpおよび3個の実装順序条件Cm)に分解される。そして、3個の要素条件Ce(実装順序条件Cm)の最適化が3個の実行サーバーSeによって並列して実行される(ステップS304)。その結果、生産プログラムPGの最適化に要する演算時間の短縮が可能となっている。
 また、3個の部品実装機Mにセットする部品Eを最適化するステップS302(部品位置最適化処理)が、ステップS303(割り当て処理)の前に実行される。そして、3個の実行サーバーSeによりそれぞれ実行される3個の要素条件Ce(実装順序条件Cm)の最適化が完了するのが待機される(ステップS305)。3個の要素条件Ce(実装順序条件Cm)の最適化が完了すると、3個の要素条件Ce(実装順序条件Cm)の最適化の結果に基づき、ステップS302(部品位置最適化処理)の再実行の要否が判定される(ステップS307)。そして、ステップS302(部品位置最適化処理)の再実行が必要と判定されると(ステップS307で「YES」)、ステップS302(部品位置最適化処理)、ステップS303(割り当て処理)およびステップS304(並列最適化処理)が実行される。かかる構成では、並列に実行される3個の要素条件Ce(実装順序条件Cm)の最適化の完了を待って、この結果に基づき部品Eをセットする位置を最適化でき、より適切な生産プログラムPGを求めることができる。
 このように上記の実施形態では、ステップS204あるいはS303が本発明の「割り当て処理」の一例に相当し、ステップS205あるいはステップS304が本発明の「並列最適化処理」の一例に相当し、ステップS302が本発明の「部品位置最適化処理」の一例に相当し、最適化システムSYが本発明の「最適化システム」として機能し、管理サーバーSmが本発明の「生産プログラム取得部」、「割り当て処理実行部」、「並列最適化処理実行部」、「基板生産プログラムの最適化装置」および「管理演算装置」として機能し、実行サーバーSeが本発明の「演算装置」および「実行演算装置」として機能し、実行サーバーSeが本発明の「クラウドサーバー」の一例に相当し、ローカルサーバーSlが本発明の「端末装置」の一例に相当し、生産プログラムPGが本発明の「生産プログラム」あるいは「最適化対象データ」の一例に相当し、要素条件Ceが本発明の「要素条件」の一例に相当し、部品実装ラインLNが本発明の「部品実装ライン」の一例に相当し、部品実装機Mが本発明の「部品実装機」の一例に相当し、フィーダーセット位置F23が本発明の「セット位置」の一例に相当し、基板Bが本発明の「基板」の一例に相当し、部品Eが本発明の「部品」の一例に相当し、段取りAが本発明の「段取り作業」の一例に相当し、段取りグループGが本発明の「段取りグループ」の一例に相当する。
 なお、本発明は上記実施形態に限定されるものではなく、その趣旨を逸脱しない限りにおいて上述したものに対して種々の変更を加えることが可能である。例えば、管理サーバーSmおよび実行サーバーSeは、クラウド上に設ける必要はなく、ユーザーの敷地PRに設置されて、ローカルエリアネットワークNWによってローカルサーバーSLに接続されてもよい。
 また、部品実装ラインLNを構成する部品実装機Mの個数を適宜変更してもよい。
 また、段取りグループGで実装する基板Bの品種Kの個数を適宜変更してもよい。
 また、図10のタイミングチャートに示す例に適宜変更を加えることができる。例えば、3台(N個)の部品実装機M1、M2、M3のそれぞれが基板Bに部品Eを実装する順序を示す3個(N個)の実装順序条件Cmの最適化を、2個(Q個)の実行サーバーSe1、Se2に割り当ててもよい。(ステップS303)。具体的には、2台の部品実装機M1、M2のそれぞれが基板Bに部品Eを実装する順序を示す2個の実装順序条件Cmの最適化を、実行サーバーSe1に割り当て、1台の部品実装機M3のそれぞれが基板Bに部品Eを実装する順序を示す1個の実装順序条件Cmの最適化を、実行サーバーSe2に割り当てることができる。そして、実行サーバーSe1による当該2個の実装順序条件Cmの最適化と、実行サーバーSe2による当該1個の実装順序条件Cmの最適化とが並列に実行される。この場合、実行サーバーSe1は、部品実装機M1が基板Bに部品Eを実装する順序を示す実装順序条件Cmの最適化と、部品実装機M2が基板Bに部品Eを実装する順序を示す実装順序条件Cmの最適化とを、直列に(すなわち、順番に)実行する。このような手法は、例えば、最適化システムSYにおいて最適化の演算に使用できる実行サーバーSeが不足した場合等に好適となる。
 ところで、上述の通り、図4のステップS204~S206は、最適化実行リスト(最適化対象データ)に含まれる生産プログラムPGの個数に応じて実行される。したがって、複数の生産プログラムPGが最適化リストに含まれる場合には、これら複数の生産プログラムPGの最適化が互いに異なる実行サーバーSeによって並列して実行されることとなる。なお、この際、各生産プログラムPGを要素条件に分解せずに、各生産プログラムPGの最適化を並列に実行してもよい。
 図11は複数の生産プログラムの最適化を並列に実行するタイミングチャートの一例を示す図である。この例では、複数の生産プログラムPG1、PG2、PG3が複数の実行サーバーSe1、Se2、Se3にそれぞれ割り当てられている。そして、複数の実行サーバーSe1、Se2、Se3がそれぞれに割り当てられた複数の生産プログラムPG1、PG2、PG3の最適化を並列に実行する。つまり、実行サーバーSe1による生産プログラムPG1の最適化と、実行サーバーSe2による生産プログラムPG2の最適化と、実行サーバーSe3による生産プログラムPG3の最適化とが並列に実行される。
 図11の例では、最適化実行リスト(最適化対象データ)に含まれる互いに異なるN個(3個)の生産プログラムPG1、PG2、PG3が、Q個(3個)の実行サーバーSe1、Se2、Se3に割り当てられる(割り当て処理)。そして、Q個(3個)の実行サーバーSe1、Se2、Se3がそれぞれに割り当てられた生産プログラムPG1、PG2、PG3を最適化する演算を並列して実行する(並列最適化処理)。このように、複数のコンピューターを同一の生産プログラムPGの最適化に使用するのではなく、互いに異なる生産プログラムPG1、PG2、PG3の最適化に使用している。その結果、生産プログラムPG1、PG2、PG3の最適化に要するリソース(設備)の効率的な利用が可能となっている。
 ちなみに、3個の生産プログラムPG1、PG2、PG3を3個の実行サーバーSe1、Se2、Se3に割り当てる必要は必ずしもない。つまり、3個の生産プログラムPG1、PG2、PG3を2個の実行サーバーSe1、Se2、Se3に割り当てても構わない。この場合、例えば実行サーバーSe1による生産プログラムPG1、PG2の最適化と、実行サーバーSe1による生産プログラムPG3の最適化とが並列して実行される。このような手法は、例えば、最適化システムSYにおいて最適化の演算に使用できる実行サーバーSeが不足した場合等に好適となる。
 S204、S304…ステップ(割り当て処理)
 S205、S304…ステップ(並列最適化処理)
 S302…ステップ(部品位置最適化処理)
 SY…最適化システム
 Sm…管理サーバー
 Se…実行サーバーSe
 Sl…ローカルサーバー
 PG…生産プログラム(最適化対象データ)
 Ce…要素条件
 LN…部品実装ライン
 M…部品実装機
 F23…フィーダーセット位置
 B…基板
 E…部品
 A…段取り
 G…段取りグループ
 
 

Claims (13)

  1.  部品実装ラインで基板に部品を実装するための条件を規定する生産プログラムを含む最適化対象データを取得する工程と、
     前記最適化対象データに含まれる互いに異なるN個(Nは2以上の整数)の要素データを、Q個(Qは2以上であってN以下の整数)の演算装置に割り当てる割り当て処理を実行する工程と、
     前記Q個の演算装置が前記割り当て処理でそれぞれに割り当てられた前記要素データを最適化する演算を並列して実行する並列最適化処理を実行する工程と
    を備える基板生産プログラムの最適化方法。
  2.  前記割り当て処理では、前記生産プログラムにより規定される条件に含まれるM個(MはN以上の整数)の要素条件のうち、それぞれの要素条件を最適化する演算を並列して実行可能なN個の要素条件を、前記N個の要素データとしてQ個の演算装置に割り当て、
     前記並列最適化処理では、前記Q個の演算装置が前記割り当て処理でそれぞれに割り当てられた前記要素条件を最適化する演算を並列して実行する請求項1に記載の基板生産プログラムの最適化方法。
  3.  NがM未満である場合には、前記M個の要素条件のうち、前記N個の要素条件とは異なる(M-N)個の要素条件を最適化する演算を、前記並列最適化処理とは異なるタイミングで実行する請求項2に記載の基板生産プログラムの最適化方法。
  4.  前記部品実装ラインは、それぞれ部品をセットするための複数のセット位置を有し、
     前記生産プログラムは、N個の段取りグループを実行するための条件を規定し、
     前記N個の段取りグループのそれぞれでは、前記セット位置に部品をセットする段取り作業の実行後に、複数の種類の基板に順番に部品が実装され、
     前記割り当て処理では、前記段取りグループを実行するための条件を前記要素条件として扱って、前記N個の段取りグループにそれぞれ対応する前記N個の要素条件を前記Q個の演算装置に割り当てる請求項2または3に記載の基板生産プログラムの最適化方法。
  5.  前記部品実装ラインは、それぞれ部品をセットするための複数のセット位置を有し、
     前記生産プログラムは、段取りグループを実行するための条件を規定し、
     前記段取りグループでは、前記セット位置に部品をセットする段取り作業の実行後に、前記セット位置にセットされた部品がN種類の基板に順番に実装され、
     前記割り当て処理では、1種類の基板に対して部品を実装する順序を示す条件を前記要素条件として扱って、前記N種類の基板にそれぞれ対応する前記N個の要素条件を前記Q個の演算装置に割り当てる請求項2または3に記載の基板生産プログラムの最適化方法。
  6.  前記段取り作業で前記セット位置にセットする部品を最適化する部品位置最適化処理を、前記割り当て処理の前に実行する工程と、
     前記Q個の演算装置により実行される前記N個の要素条件の最適化が完了するのを待機する工程と、
     前記N個の要素条件の最適化が完了すると、前記N個の要素条件の最適化の結果に基づき、前記部品位置最適化処理の再実行の要否を判定する工程と、
     前記部品位置最適化処理の再実行が必要と判定されると、前記部品位置最適化処理、前記割り当て処理および前記並列最適化処理を実行する請求項5に記載の基板生産プログラムの最適化方法。
  7.  前記部品実装ラインは、直列に配列されたN個の部品実装機を備え、
     前記生産プログラムは、前記N個の部品実装機に順番に基板を搬送して前記N個の部品実装機のそれぞれに基板に部品を実装させるための条件を規定し、
     前記割り当て処理では、1個の部品実装機が基板へ部品を実装する順序を示す条件を前記要素条件として扱って、前記N個の部品実装機にそれぞれ対応する前記N個の要素条件を前記Q個の演算装置に割り当てる請求項2または3に記載の基板生産プログラムの最適化方法。
  8.  前記N個の部品実装機にセットする部品を最適化する部品位置最適化処理を、前記割り当て処理の前に実行する工程と、
     前記Q個の演算装置により実行される前記N個の要素条件の最適化が完了するのを待機する工程と、
     前記N個の要素条件の最適化が完了すると、前記N個の要素条件の最適化の結果に基づき、前記部品位置最適化処理の再実行の要否を判定する工程と、
     前記部品位置最適化処理の再実行が必要と判定されると、前記部品位置最適化処理、前記割り当て処理および前記並列最適化処理を実行する請求項7に記載の基板生産プログラムの最適化方法。
  9.  所定の端末装置から送信された前記最適化対象データを受信することで、前記生産プログラムを取得し、
     前記Q個の演算装置は、Q個のクラウドサーバーである請求項1ないし8のいずれか一項に記載の基板生産プログラムの最適化方法。
  10.  所定の端末装置から送信された前記最適化対象データを受信することで、前記生産プログラムを取得し、
     前記Q個の演算装置は、前記端末装置とローカルエリアネットワークで接続されたQ個のサーバーである請求項1ないし8のいずれか一項に記載の基板生産プログラムの最適化方法。
  11.  前記割り当て処理では、前記最適化対象データに含まれる互いに異なるN個の生産プログラムを、前記N個の要素データとしてQ個の演算装置に割り当て、
     前記並列最適化処理では、前記Q個の演算装置が前記割り当て処理でそれぞれに割り当てられた前記生産プログラムを最適化する演算を並列して実行する請求項1に記載の基板生産プログラムの最適化方法。
  12.  部品実装ラインで基板に部品を実装するための条件を規定する生産プログラムを含む最適化対象データを取得する生産プログラム取得部と、
     前記最適化対象データに含まれる互いに異なるN個(Nは2以上の整数)の要素データを、Q個(Qは2以上であってN以下の整数)の演算装置に割り当てる割り当て処理実行部と、
     前記Q個の演算装置のそれぞれに、割り当てられた前記要素データを最適化する演算を並列して実行させる並列最適化処理実行部と
    を備える基板生産プログラムの最適化装置。
  13.  管理演算装置と、
     複数の実行演算装置と
    を備え、
     前記管理演算装置は、
     部品実装ラインで基板に部品を実装するための条件を規定する生産プログラムを含む最適化対象データを取得する生産プログラム取得部と、
     前記最適化対象データに含まれる互いに異なるN個(Nは2以上の整数)の要素データを、前記複数の実行演算装置のうちQ個(Qは2以上であってN以下の整数)の実行演算装置に割り当てる割り当て処理実行部と
    を有し、
     前記Q個の実行演算装置のそれぞれは、割り当てられた前記要素データを最適化する演算を並列して実行する基板生産プログラムの最適化システム。
PCT/JP2023/021172 2023-06-07 2023-06-07 基板生産プログラムの最適化方法、最適化装置および最適化システム Ceased WO2024252562A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2025525528A JPWO2024252562A1 (ja) 2023-06-07 2023-06-07
DE112023006467.9T DE112023006467T5 (de) 2023-06-07 2023-06-07 Optimierungsverfahren, Optimierungsvorrichtung und Optimierungssystem für ein Leiterplatten-Produktionsprogramm
PCT/JP2023/021172 WO2024252562A1 (ja) 2023-06-07 2023-06-07 基板生産プログラムの最適化方法、最適化装置および最適化システム
CN202380098498.7A CN121175662A (zh) 2023-06-07 2023-06-07 基板生产程序的优化方法、优化装置以及优化系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2023/021172 WO2024252562A1 (ja) 2023-06-07 2023-06-07 基板生産プログラムの最適化方法、最適化装置および最適化システム

Publications (1)

Publication Number Publication Date
WO2024252562A1 true WO2024252562A1 (ja) 2024-12-12

Family

ID=93795409

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/021172 Ceased WO2024252562A1 (ja) 2023-06-07 2023-06-07 基板生産プログラムの最適化方法、最適化装置および最適化システム

Country Status (4)

Country Link
JP (1) JPWO2024252562A1 (ja)
CN (1) CN121175662A (ja)
DE (1) DE112023006467T5 (ja)
WO (1) WO2024252562A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63221454A (ja) * 1987-03-11 1988-09-14 Fujitsu Ltd 並列計算機制御方式
JP2013061779A (ja) * 2011-09-13 2013-04-04 Toyota Motor Corp パラメータ適合方法及びパラメータ適合システム
JP6025161B2 (ja) * 2011-12-26 2016-11-16 ハンファテクウィン株式会社Hanwha Techwin Co.,Ltd. 電子部品実装の最適化方法及び最適化プログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63221454A (ja) * 1987-03-11 1988-09-14 Fujitsu Ltd 並列計算機制御方式
JP2013061779A (ja) * 2011-09-13 2013-04-04 Toyota Motor Corp パラメータ適合方法及びパラメータ適合システム
JP6025161B2 (ja) * 2011-12-26 2016-11-16 ハンファテクウィン株式会社Hanwha Techwin Co.,Ltd. 電子部品実装の最適化方法及び最適化プログラム

Also Published As

Publication number Publication date
JPWO2024252562A1 (ja) 2024-12-12
DE112023006467T5 (de) 2026-04-02
CN121175662A (zh) 2025-12-19

Similar Documents

Publication Publication Date Title
JP5535032B2 (ja) 部品装着システム、部品装着設定装置、部品装着設定プログラム、及び部品装着方法
JP5480776B2 (ja) 実装モード決定方法及び部品実装システム
CN105704996A (zh) 管理装置以及部件补充作业的管理方法
JP4996634B2 (ja) 実装条件決定方法および実装条件決定装置
JP6395708B2 (ja) 複数の生産ラインを有する電子部品装着システムの管理方法及び管理装置
CN113955362B (zh) 立体分拣控制方法、立体分拣机器人和相关设备
Öztürk et al. Balancing and scheduling of flexible mixed model assembly lines with parallel stations
JP7769961B2 (ja) 生産計画作成方法および生産計画作成装置
CN110494812A (zh) 生产计划生成装置、生产计划生成程序及生产计划生成方法
WO2024252562A1 (ja) 基板生産プログラムの最適化方法、最適化装置および最適化システム
CN114585982A (zh) 配置辅助方法、学习完毕模型的生成方法、程序、配置辅助系统以及作业系统
CN113010290A (zh) 一种任务管理方法、装置、设备及存储介质
JP4302422B2 (ja) 部品実装方法及びシステム
JP5038970B2 (ja) 実装条件決定方法、実装条件決定装置、部品実装方法、部品実装機およびプログラム
JP4887328B2 (ja) 実装条件決定方法
JP2004146641A (ja) 電子部品実装ラインにおける設備構成最適化シミュレーション方法
JP2009224766A (ja) 実装条件決定方法、実装条件決定装置、部品実装方法、部品実装機及びプログラム
US11076521B2 (en) Production plan creation system and production plan creation method
JP2642800B2 (ja) パレット編成システム
JP5077284B2 (ja) 電子部品実装装置およびデータダウンロード方法
JP5802602B2 (ja) 部品供給機の取付個数決定装置、部品供給機の取付個数決定方法、記録媒体、部品実装機、部品実装システム
JP6644844B2 (ja) 複数の生産ラインを有する電子部品装着システムの管理方法及び割付装置
JPH1187996A (ja) 部品を取り扱う作業機のツールの配置設定方法とその装置
KR102440645B1 (ko) 사이클 단위의 부분 최적화 방법
JP2020061477A (ja) 部品実装システム、実装プログラム最適化装置、部品実装方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 23940008

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2025525528

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2025525528

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 112023006467

Country of ref document: DE