This application is generally related to electronic design automation and, more specifically, to harness assembly line balancing.
Modern manufacture of wire harnesses is often performed through a sequence of steps, rather than as a single operation from a collection of basic components. For example, the manufacture of a wire harness can include components, such as connectors, wires, tapes and tubes, or the like, which can be variously manufactured into one or more sub-assemblies. These sub-assemblies can then be combined together, sometimes along with additional components, to form additional sub-assemblies. This process of sub-assembly construction from other sub-assemblies and/or components can continue until a wire harness has been built. In order to identify this sequence of manufacturing steps during the design phase, some design tools can convert harness designs into a Structured Bill of Materials (SBOM) that describes the sequential manufacturing process in a hierarchical manner.
Many manufacturers distribute the construction of assemblies or sub-assemblies, for example, using a production line or assembly line having an ordered line of workstations to perform operations having one or more tasks in the sequential manufacturing process. In order to reduce manufacturing time and cost for a production line, the tasks associated with the operations can be assigned to workstations in a balanced manner, commonly called line balancing, which can load the workstations with tasks so they have approximately the same amount of cumulative time to perform their assigned tasks. This manual balancing of the tasks across the different workstations, however, can be complex as task performance often depends on performance of one or more other tasks or materials. This complexity increases as manufacturers utilize the same production line to build variants of an assembly or sub-assembly in an attempt to reduce manufacturing time and cost. Since each variant has a different SBOM and corresponding tasks, the line balancing among workstations to perform the tasks associated with all of the SBOMs becomes an increasingly difficult, time-consuming, and error-prone manual process, often taking several weeks to complete. When manufacturers receive harness design changes or add new harness variants to the production lines, the line balancing process iterates and often becomes a manufacturing bottleneck.
This application discloses a computing system implementing a line balancing tool to generate a structured bill of materials for a wire harness based on a harness design and available fabrication processes. The computing system implementing the line balancing tool can decompose the structured bill of materials into tasks and assign the tasks to workstations in a production line configured to manufacture the wire harness. The computing system implementing the line balancing tool can determine dependencies between a plurality of the tasks and verify the tasks assigned to the workstation conform to the dependencies between the plurality of the tasks. The dependencies can indicate an order for performance of the operations associated with the tasks. The computing system implementing the line balancing tool can identify unassigned tasks capable of assignment to one or more of the workstations and determine which of the workstations the unassigned assembly tasks, if assigned, would conform with the dependencies between the plurality of the assembly tasks. The computing system implementing the line balancing tool can generate work instructions for each of the workstations in the production line. The work instructions describe operations corresponding to the assembly tasks assigned to the workstations. Embodiments of will be described below in greater detail.
The execution of various electronic design automation processes according to embodiments may be implemented using computer-executable software instructions executed by one or more programmable computing devices. Because these embodiments may be implemented using software instructions, the components and operation of a generic programmable computer system on which various embodiments may be employed will first be described. Further, because of the complexity of some electronic design automation processes and the large size of many circuit designs, various electronic design automation tools are configured to operate on a computing system capable of simultaneously running multiple processing threads.
Various examples may be implemented through the execution of software instructions by a computing device, such as a programmable computer. Accordingly,
The processor unit 105 and the system memory 107 are connected, either directly or indirectly, through a bus 113 or alternate communication structure, to one or more peripheral devices. For example, the processor unit 105 or the system memory 107 may be directly or indirectly connected to one or more additional memory storage devices, such as a “hard” magnetic disk drive 115, a removable magnetic disk drive 117, a removable optical disk drive 119, or a flash memory card. The processor unit 105 and the system memory 107 also may be directly or indirectly connected to one or more input devices 121 and one or more output devices 123. The input devices 121 may include, for example, a keyboard, a pointing device (such as a mouse, touchpad, stylus, trackball, or joystick), a scanner, a camera, and a microphone. The output devices 123 may include, for example, a monitor display, a printer and speakers. With various examples of the computer 101, one or more of the peripheral devices 115-125 may be internally housed with the computing unit 103. Alternately, one or more of the peripheral devices 115-125 may be external to the housing for the computing unit 103 and connected to the bus 113 through, for example, a Universal Serial Bus (USB) connection.
With some implementations, the computing unit 103 may be directly or indirectly connected to at least one network interfaces 115 for communicating with other devices making up a network. The network interface 115 translates data and control signals from the computing unit 103 into network messages according to one or more communication protocols, such as the transmission control protocol (TCP) and the Internet protocol (IP). Also, the network interface 115 may employ any suitable connection agent (or combination of agents) for connecting to a network, including, for example, a wireless transceiver, a modem, or an Ethernet connection. Such network interfaces and protocols are well known in the art, and thus will not be discussed here in more detail.
It should be appreciated that the computer 101 is illustrated as an example only, and it not intended to be limiting. Various embodiments may be implemented using one or more computing devices that include the components of the computer 101 illustrated in
With some implementations, the processor unit 105 can have more than one processor core. Accordingly,
Each processor core 201 is connected to an interconnect 207. The particular construction of the interconnect 207 may vary depending upon the architecture of the processor unit 201. With some processor cores 201, such as the Cell microprocessor created by Sony Corporation, Toshiba Corporation and IBM Corporation, the interconnect 207 may be implemented as an interconnect bus. With other processor units 201, however, such as the Opteron™ and Athlon™ dual-core processors available from Advanced Micro Devices of Sunnyvale, Calif., the interconnect 207 may be implemented as a system request interface device. In any case, the processor cores 201 communicate through the interconnect 207 with an input/output interface 209 and a memory controller 210. The input/output interface 209 provides a communication interface between the processor unit 201 and the bus 113. Similarly, the memory controller 210 controls the exchange of information between the processor unit 201 and the system memory 107. With some implementations, the processor units 201 may include additional components, such as a high-level cache memory accessible shared by the processor cores 201.
It also should be appreciated that the description of the computer network illustrated in
Each workstation 310-1 to 310-8 can receive instructions 311-1 to 311-8, respectively, which can identify a sequential order of tasks to be performed at the workstations 310-1 to 310-8. The workstations 310-1 to 310-8 also can receive materials 312-1 to 312-8, respectively, which the operators at the workstations 310-1 to 310-8 can utilize to perform the tasks described in the instructions 311-1 to 311-8.
The manufacture of the wire harnesses 313 can begin at the workstation 310-1 with an operator utilizing materials 312-1 to build a portion of the wire harness 313 according to the instructions 311-1. The portion of the wire harness 313 built at the workstation 310-1 can be advanced to the workstation 310-2. In some embodiments, the harness manufacturing environment can include a conveyor to advance the portions of the wire harnesses 313 between the workstations 310-1 to 310-8, for example, after a predetermined elapsed time. At workstation 310-2, another operator can add to the portion of the wire harness 313 with the materials 312-2 according to the instructions 311-2 before advancing to workstation 310-3. At workstation 310-3, another operator can add to the portion of the wire harness 313 with the materials 312-3 according to the instructions 311-3 before advancing to workstation 310-4. At workstation 310-4, another operator can add to the portion of the wire harness 313 with the materials 312-4 according to the instructions 311-4 before advancing to workstation 310-5. At workstation 310-5, another operator can add to the portion of the wire harness 313 with the materials 312-5 according to the instructions 311-5 before advancing to workstation 310-6. At workstation 310-6, another operator can add to the portion of the wire harness 313 with the materials 312-6 according to the instructions 311-6 before advancing to workstation 310-7. At workstation 310-7, another operator can add to the portion of the wire harness 313 with the materials 312-7 according to the instructions 311-7 before advancing to workstation 310-8. At workstation 310-8, another operator can finalize the wire harness 313 with the addition of the materials 312-8 according to the instructions 311-8.
The line balancing tool 400 also can receive manufacturing operations 402, sometimes called a Structured Bill of Materials (SBOM) pattern, which can describe a set of fabrication techniques available to a manufacturer. For example, certain manufacturers may have equipment capable of generating or modifying components or sub-assemblies with particular specifications, which can be specified in the manufacturing operations 402. In some embodiments, the manufacturing operations 402 can be a manufacturing program model describing operations that can be performed to build a wire harness based on a manufacturing capability of the manufacturer.
The line balancing tool 400 can generate multiple structured bills of materials from the harness designs 401 and the manufacturing operations 402. In some embodiments, the structured bills of materials can represent the wire harnesses described in the harness designs 401 as trees of sub-assemblies and components. The connectivity of the trees can represent manufacturing processes for building the wire harnesses from the components and sub-assemblies. In some embodiments, the structured bills of materials can represent the wire harnesses hierarchically, for example, the trees can include a description of a sub-assembly being built with one or more of the other sub-assemblies. An example of a structured bill of materials is described below with reference to
The connectivity of the tree for the structured bill of materials for the wire harness 511 can illustrate how the components 531-536 in the leaf stage 530 combine to form different sub-assemblies 521-523 in the parent stage 520. The connectivity of the tree also can illustrate how the sub-assemblies 521-523 in the parent stage 520 can be combined, sometimes along with one or more of the components 531-536 in the leaf stage 530, to form other sub-assemblies and ultimately the wire harness 511 in the root stage 510. In some embodiments, sub-assemblies that are built only with components 531-536, and not other sub-assemblies, such as subassemblies 522 and 523, can be called first parent 525 sub-assemblies.
Referring back to
The line balancing tool 400 can include a task decomposition unit 420 to utilize the structured bills of materials to identify tasks that, when performed, can allow for the manufacture of the wire harnesses described in the harness designs 401. In some embodiments, the task decomposition unit 420 can utilize task definitions, for example, described in the structured bills of materials, to generate each of the tasks. Each task definition can describe a task to be performed, identify a type of material that applies to the task, include a time to perform the task or a formula to determine the time to perform the task, and include a resource corresponding to a cost associated with performing the task, such as a monetary cost, resource consumption cost, or the like. Embodiments of task generation from a task definition will be described below in reference to
The task decomposition unit 420 can generate a listing of the tasks that, when performed, can allow for the manufacture of the wire harnesses described in the harness designs 401. In some embodiments, a production line may be configured to support manufacturing of multiple different wire harnesses, for example, variants of each other. The task decomposition unit 420 can consolidate multiple assembly tasks into a consolidated task that represents the assembly tasks, for example, acting on a common material. The consolidated task can describe multiple tasks to be performed, identify a type of material that applies to the tasks, times to perform each of the tasks, costs associated with performing each of the tasks, or the like.
The operation 620 can include a task definition 621, which can be utilized along with a description of the input materials 610 to generate an assembly task 630. The assembly task 630 can describe the operation 620 performed with the specific input materials 610. The task definition 621 can include a filter query 622 to define the types of materials utilized to perform operation 620. The filter query 622 can receive the input materials 610 and ascertain whether the input materials 610 can be utilized during the operation 620 based on a set of filter criteria. For example, when the operation 620 corresponds to wire cutting, the filter query 621 could be set to apply the operation 620 on a wire material having given diameter or diameter range. When the input materials 610 describe a material or multiple materials that fall within the set of filter criteria, the material or materials can included in the assembly task 630 as material 631.
The task definition 621 can include a duration unit 623 to determine a time consumed 632 during the performance of the operation 620 with the input materials 610. Since the input materials 610 can vary while still satisfying the filter query 622, the duration unit 623 can identify the time consumed 632 based on which type of input materials 610 were applied to the task definition 621. In some embodiments, the duration unit 623 may include an algorithm having a variable that can be set based on at least one characteristic of the input materials 610, which the duration unit 623 can utilize to calculate or select the time consumed 632 for the assembly task 630.
The task definition 621 can include a resource unit 624 to define resources consumed by the operation 620, such as money, power, or the like. The resource unit 624 can include a resource factor to identify one or more resources consumed by the performance of the operation 620, which may vary based on the type of the input materials 610 applied to the task definition 621. The resource unit 624 can generate a cost 633 corresponding to resources consumed by the operation 620 using the input materials 610, which can be included in the assembly task 630.
Referring back to
The representation 710 can correspond to an assembly task window 711, for example, in a table view, which can be presented on a display device of a computing system. The assembly task window 711 can show the task dependency rules 704 and 705 for the close connector lock task 701 in written form. In some examples, the task dependency rule 704 can state “depends on locate connector task 702 being completed” and the task dependency rule 705 can state “depends on insert wire end task 703 being completed.”
Referring back to
The task assignment unit 440 can generate an assignment presentation, such as a line balancing table showing production time consumed due to performance of each task and a cumulative total production time consumed at each workstation for all of the tasks assigned to the workstation. An example line balancing table will be illustrated with reference to
The line balancing table 800 also shows a production time 802 consumed due to performance of each task 811-816, 821-826, 831-835, and 841-846 and a cumulative total production time consumed at each workstation 801-1 to 801-4 for all of the tasks 811-816, 821-826, 831-835, and 841-846 assigned to each workstation 801-1 to 801-4. The line balancing table 800 also can include a maximum time 803 indicator, which can identify an amount of production time available for the workstations 801-1 to 801-4.
Referring back to
The inference engine 450 can include a forward chaining unit 452 to generate task verification 404 for assembly tasks or consolidated tasks assigned to workstations. In some embodiments, the forward chaining unit 452 can verify whether assembly tasks or consolidated tasks assigned to workstations by the task assignment unit 440 violate task dependency rules. For example, when assembly tasks or consolidated tasks are assigned to workstations out-of-sequence, which could render the wire harness unbuildable in the production line, the forward chaining unit 352 can determine the assembly tasks or consolidated tasks were assigned to workstations out-of-order or misordered within a workstation.
The forward chaining unit 452 can compare the assembly tasks or consolidated tasks to their corresponding dependent assembly tasks or consolidated tasks using the task dependency network or the task dependency rules directly and issue an indication of the task dependency violation. In some embodiments, the forward chaining unit 452 can notify the task assignment unit 440 of the dependency-based violation of an assigned assembly task or consolidated task, which the task assignment unit 440 can utilize in a presentation or graphical user interface to a user of the line balancing tool 400.
The inference engine 450 can include a backward chaining unit 454 to generate task guidance 405 for assembly tasks or consolidated tasks yet to be assigned to workstations. The task guidance 405 can identify which unassigned assembly tasks or unassigned consolidated tasks can be assigned to each workstation based on any previously assigned assembly tasks or consolidated tasks. In some embodiments, the backward chaining unit 454 can utilize the task dependency network to identify which of the assigned assembly tasks or assigned consolidated tasks have dependencies to unassigned assembly tasks or unassigned consolidated tasks and generate the task guidance 405 based on the identified dependencies. For example, when a task has been assigned to workstation 2, the backward chaining unit 454 can identify any unassigned tasks that depend on performance of the assigned task and generate task guidance 405 that the unassigned tasks can be assigned to be performed after the assigned task, such as in a subsequent workstation or after the assigned task in workstation 2. In some embodiments, the backward chaining unit 454 can notify the task assignment unit 440 of the dependency-based guidance for unassigned tasks, which the task assignment unit 440 can utilize in a presentation or graphical user interface to a user of the line balancing tool 400.
After the assembly tasks or consolidated tasks have been assigned to workstations by the task assignment unit 440 and the inference engine 450 has verified their dependencies, the line balancing tool 400 can modify the structured bills of materials generated from the harness designs 401 and the manufacturing operations 402 based on the workstation assignments of the assembly tasks or consolidated tasks. The line balancing tool 400 can generate the workstation instructions 403 from the modified structured bills of materials, which can describe the operations to be performed at the workstations in the production line based on the assembly tasks or consolidated tasks assigned to the workstations during the line balancing process.
The computing system implementing the line balancing tool can receive manufacturing operations describing a set of fabrication techniques available to a manufacturer. For example, certain manufacturers may have equipment capable of generating or modifying components or sub-assemblies with particular specifications, which can be specified in the manufacturing operations. In some embodiments, the manufacturing operations can be a manufacturing program model describing operations that can be performed to build a wire harness based on a manufacturing capability of the manufacturer.
The computing system implementing the line balancing tool can divide the harness design into components and various sub-assemblies, and organize them in a hierarchical form to represent the manufacturing processes capable of building the wire harness described in the harness design from the components and sub-assemblies.
In a block 902, the computing system implementing the line balancing tool can decompose the structured bill of materials for the wire harness into assembly tasks.
The computing system implementing the line balancing tool can utilize the structured bill of materials to identify tasks that, when performed, can allow for the manufacture of the wire harness described in the harness design. In some embodiments, the computing system implementing the line balancing tool can utilize task definitions, for example, described in the structured bills of materials, to generate each of the tasks. Each task definition can describe a task to be performed, identify a type of material that applies to the task, include a time to perform the task or a formula to determine the time to perform the task, and include a resource corresponding to a cost associated with performing the task, such as a monetary cost, resource consumption cost, or the like.
The computing system implementing the line balancing tool can generate a listing of the tasks that, when performed, can allow for the manufacture of the wire harness described in the harness design. In some embodiments, a production line may be configured to support manufacturing of multiple different wire harnesses, for example, variants of each other. The computing system implementing the line balancing tool can consolidate multiple assembly tasks into a consolidated task that represents the assembly tasks, for example, acting on a common material. The consolidated task can describe multiple tasks to be performed, identify a type of material that applies to the tasks, times to perform each of the tasks, costs associated with performing each of the tasks, or the like.
In a block 903, the computing system implementing the line balancing tool can determine dependencies between a plurality of the assembly tasks and, in a block 904, the computing system implementing the line balancing tool can generate task dependency rules defining an order for performance for the assembly tasks based on the dependencies. The computing system implementing the line balancing tool can determine relationships between assembly tasks and determine task material presence, for example, relationships of assembly tasks to materials utilized in the performance of the assembly tasks. In some embodiments, the task definition utilized to generate the assembly tasks can indicate the relationships of the generated assembly task to another assembly task or a type of input material utilized in the performance of the generated assembly task. The computing system implementing the line balancing tool can utilize the identified relationships between assembly tasks or between an assembly task and its corresponding input materials to generate task dependency rules. Each task dependency rule can indicate an order of performance for multiple assembly tasks, for example, a performance of a first task being a predicate to a performance of a second task.
In a block 905, the computing system implementing the line balancing tool can assign the assembly tasks to workstations in a production line configured to manufacture the wire harness. The computing system implementing the line balancing tool can assign the assembly tasks or consolidated tasks to workstations. Each workstation can be located in a production line or assembly line having an ordered line of the workstations to perform operations having one or more assembly tasks in a sequential manufacturing process. In some embodiments, the computing system implementing the line balancing tool can assign the assembly tasks or consolidated tasks to the different workstations in response to user input.
In some embodiments, the computing system implementing the line balancing tool can generate an assignment presentation, such as a line balancing table showing production time consumed due to performance of each task and a cumulative total production time consumed at each workstation for all of the tasks assigned to the workstation. When the production line is configured for manufacturing wire harnesses for multiple different harness designs, the task assignment unit 440 also can generate an assignment presentation to show time consumed at each workstation for each of the different wire harnesses.
In a block 906, the computing system implementing the line balancing tool can verify that the assembly tasks assigned to the workstation conform to the task dependency rules. For example, when assembly tasks or consolidated tasks are assigned to workstations out-of-sequence, which could render the wire harness unbuildable in the production line, the computing system implementing the line balancing tool can determine the assembly tasks or consolidated tasks were assigned to workstations out-of-order or misordered within a workstation. In some embodiments, the computing system implementing the line balancing tool can generate a task dependency rule network, which can define the dependencies between the assembly tasks, and then utilize the task dependency rule network to determine whether the assembly tasks were assigned to the workstations in order. When the computing system implementing the line balancing tool determines the assembly tasks were assigned out-of-order, the computing system implementing the line balancing tool can issue a violation message. In some embodiments, the computing system implementing the line balancing tool can present the violation message on the assignment presentation, for example, indicating the particular assembly task assigned out-of-order.
In a block 907, the computing system implementing the line balancing tool can identify which workstations could be assigned any unassigned assembly tasks and conform with the task dependency rules. The computing system implementing the line balancing tool can generate task guidance for assembly tasks or consolidated tasks yet to be assigned to workstations. The task guidance can identify which unassigned assembly tasks or unassigned consolidated tasks can be assigned to each workstation based on any previously assigned assembly tasks or consolidated tasks. In some embodiments, the computing system implementing the line balancing tool can utilize the task dependency network to identify which of the assigned assembly tasks or assigned consolidated tasks have dependencies to unassigned assembly tasks or unassigned consolidated tasks and generate the task guidance based on the identified dependencies. In some embodiments, the computing system implementing the line balancing tool can issue a notification of the task guidance, for example, in a presentation or graphical user interface to a user of the line balancing tool.
The system and apparatus described above may use dedicated processor systems, micro controllers, programmable logic devices, microprocessors, or any combination thereof, to perform some or all of the operations described herein. Some of the operations described above may be implemented in software and other operations may be implemented in hardware. Any of the operations, processes, and/or methods described herein may be performed by an apparatus, a device, and/or a system substantially similar to those as described herein and with reference to the illustrated figures.
The processing device may execute instructions or “code” stored in memory. The memory may store data as well. The processing device may include, but may not be limited to, an analog processor, a digital processor, a microprocessor, a multi-core processor, a processor array, a network processor, or the like. The processing device may be part of an integrated control system or system manager, or may be provided as a portable electronic device configured to interface with a networked system either locally or remotely via wireless transmission.
The processor memory may be integrated together with the processing device, for example RAM or FLASH memory disposed within an integrated circuit microprocessor or the like. In other examples, the memory may comprise an independent device, such as an external disk drive, a storage array, a portable FLASH key fob, or the like. The memory and processing device may be operatively coupled together, or in communication with each other, for example by an I/O port, a network connection, or the like, and the processing device may read a file stored on the memory. Associated memory may be “read only” by design (ROM) by virtue of permission settings, or not. Other examples of memory may include, but may not be limited to, WORM, EPROM, EEPROM, FLASH, or the like, which may be implemented in solid state semiconductor devices. Other memories may comprise moving parts, such as a known rotating disk drive. All such memories may be “machine-readable” and may be readable by a processing device.
Operating instructions or commands may be implemented or embodied in tangible forms of stored computer software (also known as “computer program” or “code”). Programs, or code, may be stored in a digital memory and may be read by the processing device. “Computer-readable storage medium” (or alternatively, “machine-readable storage medium”) may include all of the foregoing types of memory, as well as new technologies of the future, as long as the memory may be capable of storing digital information in the nature of a computer program or other data, at least temporarily, and as long at the stored information may be “read” by an appropriate processing device. The term “computer-readable” may not be limited to the historical usage of “computer” to imply a complete mainframe, mini-computer, desktop or even laptop computer. Rather, “computer-readable” may comprise storage medium that may be readable by a processor, a processing device, or any computing system. Such media may be any available media that may be locally and/or remotely accessible by a computer or a processor, and may include volatile and non-volatile media, and removable and non-removable media, or any combination thereof.
A program stored in a computer-readable storage medium may comprise a computer program product. For example, a storage medium may be used as a convenient means to store or transport a computer program. For the sake of convenience, the operations may be described as various interconnected or coupled functional blocks or diagrams. However, there may be cases where these functional blocks or diagrams may be equivalently aggregated into a single logic device, program or operation with unclear boundaries.
While the application describes specific examples of carrying out embodiments, those skilled in the art will appreciate that there are numerous variations and permutations of the above described systems and techniques that fall within the spirit and scope as set forth in the appended claims. For example, while specific terminology has been employed above to refer to electronic design automation processes, it should be appreciated that various examples may be implemented using any desired combination of electronic design automation processes.
One of skill in the art will also recognize that the concepts taught herein can be tailored to a particular application in many other ways. In particular, those skilled in the art will recognize that the illustrated examples are but one of many alternative implementations that will become apparent upon reading this disclosure.
Although the specification may refer to “an”, “one”, “another”, or “some” example(s) in several locations, this does not necessarily mean that each such reference is to the same example(s), or that the feature only applies to a single example.
This patent application claims priority to U.S. Provisional Patent Application No. 62/821,942, filed Mar. 21, 2019, which is incorporated by reference herein.
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/US2019/048796 | 8/29/2019 | WO | 00 |
Number | Date | Country | |
---|---|---|---|
62821942 | Mar 2019 | US |