A method and device for scheduling a robot in a semiconductor cleaning apparatus

CN122396254BActive Publication Date: 2026-09-25SHENZHEN EXX IND AUTOMATION CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202610857755.6
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2026-06-15
Publication Date
2026-09-25
Estimated Expiration
2046-06-15

AI Technical Summary

Technical Problem

该专利文献虽然通过重构硬件设施并重新规划布局来降低机械手之间的干涉问题,但其需要对已有硬件设施进行大幅度改造,大大增加了成本

Benefits of technology

本申请通过将双机械手在干涉区内的传输范围进行约束,例如,以干涉区内不同工艺槽为划分界线,并在此基础上进行计算得到多种候选机械手分配序列,且每一种候选机械手分配序列都可避免干涉问题。相较于传统没有约束的方式,不仅避免了机械手之间的干涉问题,并且,相较于传统没有约束仅通过移动机械手来避免干涉的方式,大大降低了候选机械手分类序列的量级(从指数级降低了量级),从而使得后续计算过程中从中找到最优候选机械手分配序列时,大大降低了计算量,节省了计算资源的同时提高后续调度规划的效率。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122396254B_ABST
    Figure CN122396254B_ABST
Patent Text Reader

Abstract

The application relates to the technical field of semiconductors, and particularly discloses a robot scheduling method and device in a semiconductor cleaning equipment, wherein the scheduling method specifically comprises the following steps: S100, initializing a robot distribution sequence to obtain a first working slot set and a second working slot set; S200, traversing an interference area, and taking each process slot in the interference area as a division line in sequence to obtain N third working slot sets; S300, traversing a task list to obtain a process path of each task, and generating at least one candidate robot distribution sequence according to the process path and the first, second and third working slot sets; and S500, traversing the at least one candidate robot distribution sequence to calculate a scheduling action sequence of all tasks under different candidate robot distribution sequences, and finding an optimal candidate robot distribution sequence with the minimum completion time. The application avoids interference by optimizing the scheduling process, and does not need to make a large number of changes to the existing facilities.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of semiconductor technology, and in particular to a method and apparatus for scheduling a robotic arm in a semiconductor cleaning device. Background Technology

[0002] Wafer manufacturing is the most automated and complex process in semiconductor manufacturing. Multiple cleaning steps are often required to ensure wafer quality. These cleaning steps involve multiple chemical etching and cleaning processes, each followed by rinsing with clean water. Semiconductor cleaning is crucial across the three major stages of silicon wafer manufacturing, wafer fabrication, and packaging; inadequate cleaning will result in wafers that do not meet standards due to residual contaminants.

[0003] In the semiconductor wafer cleaning process, there is a type of equipment called a cleaning basket. A common diagram of a cleaning basket is shown below. Figure 1 As shown, the existing flower basket cleaning equipment consists of multiple modules, which can be divided into a loading and unloading area and a process area. The loading and unloading area mainly consists of a loading area (Load) and an unloading area (Unload). The loading area is the waiting area for flower baskets to be processed, and the unloading area is the unloading area for flower baskets that have completed the corresponding process. The process area mainly consists of a process transfer robot 1 (PTR1), a process transfer robot 2 (PTR2), a process tank, a hand washing tank (EEWD), and a drying tank (Dry).

[0004] The complete process flow for a single wafer cassette (Job) is as follows: The Load area stores wafer cassettes loaded with wafers to be processed. When the host computer initiates Job scheduling, the PTR2 retrieves the corresponding wafer cassette from the Load area and moves it to the appropriate Tank according to the Job's process route for processing. After processing, the wafer cassette is moved to the Dry tank for drying. Once drying is complete, the PTR2 moves the empty wafer cassette of the Job to the Unload area for unloading. This completes the process flow for one Job.

[0005] However, due to limited equipment and the fact that PTR1 and PTR2 each have their own movable handling range (e.g., PTR1 covers Tank1~Tank6 and EEWD; PTR2 covers Tank5~Tank8, EEWD, Dry, Load, and Unload), the area Tank5~8 and EEWD that can be covered by both robots in the process area is called the interference zone. Figure 1 As shown.

[0006] However, in practical applications, it is undesirable for two robotic arms to be in the same tank in the interference zone at the same time. Therefore, existing technologies propose to add hardware settings, such as setting up a corresponding running guide rail for each robotic arm. However, this approach not only greatly increases the cost, but also makes the modification cost very high for some existing facilities.

[0007] For example, patent application CN116884896A discloses a handling support structure, a detection device, and a handling method. This handling support structure is used to connect robotic arms and has multiple support areas spaced apart along a first direction. The structure includes guide rails distributed within each support area and crossbeams slidably connected to the corresponding guide rails, with the length direction of the guide rails and the length direction of the crossbeams arranged at an angle. In any adjacent support area, adjacent guide rails are arranged at an angle to each other, and robotic arms are mounted on each crossbeam, with each robotic arm operating independently. This allows the robotic arms to move between pallets while simultaneously reducing their travel distance, optimizing the layout space, reducing inertia during movement, and improving the stability of the robotic arms. Although this patent reduces interference between robotic arms by reconfiguring the hardware and replanning the layout, it requires significant modifications to existing hardware, greatly increasing costs. Summary of the Invention

[0008] The purpose of this invention is to provide a method and apparatus for scheduling robotic arms in a semiconductor cleaning device, which partially solves or alleviates the above-mentioned deficiencies in the prior art, and can avoid interference between robotic arms without making significant changes to existing hardware facilities or adding new facilities.

[0009] To solve the aforementioned technical problems, the present invention specifically adopts the following technical solution: A first aspect of the present invention is to provide a method for scheduling a robotic arm in a semiconductor cleaning device, comprising the steps of: S100, initialize the robot arm allocation sequence to obtain the first working slot set T1 of the first robot arm and the second working slot set T2 of the second robot arm; S200, Traverse the interference zone, and use each process slot in the interference zone as a dividing line to divide all the working slots on the side away from the loading and unloading area in the interference zone into the third working slot set of the first robot arm, to obtain N third working slot sets P11, P12, P13, ..., P1N, where N is the number of process slots in the interference zone. S300, traverse the task list to obtain the process path of each task, and generate at least one candidate robot allocation sequence based on the process path, the first set of working slots, the second set of working slots, and the third set of working slots when different process slots are used as different dividing lines. S500, traverse the at least one candidate robot allocation sequence to calculate the scheduling action sequence of all tasks under different candidate robot allocation sequences, and find the optimal candidate robot allocation sequence with the minimum completion time.

[0010] In some embodiments, step S300 specifically includes the following steps: S301, when the current process slot in the interference zone is used as the dividing line, the process path of each task is traversed in turn. S302, identify the equipment type corresponding to each process step in the process path, and configure a corresponding robot for each process step according to the equipment type and the first working slot set, the second working slot set and the third working slot set, to obtain the path action sequence of each task when the current working slot is the dividing line; S303, Generate candidate robot assignment sequences for all tasks based on the path action sequence of each task; S304, traverse the next process slot in the interference region and execute steps S301-S303 to obtain the candidate robot allocation sequence for all tasks when different process slots in the interference region are used as dividing lines.

[0011] In some embodiments, step S302 specifically includes the following steps: S3021, Identify the equipment type corresponding to the current process step in the process path. If it is a robot, the configuration of the current process step remains unchanged; if it is a work tank, execute step S3022. S3022, determine whether the working slot belongs to the first working slot set T1 or the second working slot set T2 or the third working slot set when the current process slot is used as the dividing line; If it belongs to the first working slot set T1, configure the robot in the current process step as the first robot corresponding to the first working slot set T1, and execute step S3023. If it belongs to the second working slot set T2, configure the robot in the current process step as the second robot corresponding to the second working slot set T2, and execute step S3023; If it belongs to the third working slot set when the current process slot is used as the dividing line, configure the robot of the current process step as the first robot corresponding to the third working slot set, and execute step S3023. Otherwise, configure the robot in the current process step as the second robot and execute step S3023; S3023, traverse the next process step in the process path and execute steps S3021-S3022 until all process steps in the process path have been traversed, and generate the path action sequence of the current task when the current process slot is the dividing line.

[0012] In some embodiments, step S500 specifically includes the following steps: S501, initialize the current optimal robot arm allocation sequence to empty, and initialize the current optimal completion time configuration to infinity; S502, traverse the current candidate robot allocation sequence to obtain the process slot as the dividing line and its corresponding robot allocation sub-sequence; S503, generate a first scheduling action sequence based on the robot arm allocation sub-sequence, and when the first scheduling action sequence is generated once, determine whether the end time of the currently generated first scheduling action sequence is less than the current optimal completion time. If so, execute step S504; if the end time of the currently generated first scheduling action sequence is greater than or equal to the current optimal completion time, return to step S502. S504, Generate the second scheduling action sequence for all tasks, and execute step S505; S505, update the end time of the last scheduled action sequence to the current optimal completion time, and use the current candidate robot allocation sequence as the latest current optimal robot allocation sequence; S506, determine whether all candidate robot arm allocation sequences have been traversed. If yes, generate a scheduling action sequence for all tasks based on the current optimal robot arm allocation sequence; otherwise, roll back all scheduling actions generated in this scheduling calculation, restore to the state before the scheduling calculation, and return to step S502 based on the next candidate robot arm allocation sequence.

[0013] In some embodiments, before performing step S500, the scheduling method further includes the step of: S400, determine whether the number of candidate robot arm allocation sequences is less than a preset threshold. If so, configure the candidate robot arm allocation sequence as the optimal robot arm allocation sequence; otherwise, execute step S502.

[0014] A second aspect of the present invention is to provide a robotic arm scheduling device for a semiconductor cleaning apparatus, comprising: The initialization module is configured to initialize the robot arm allocation sequence to obtain the first working slot set T1 of the first robot arm and the second working slot set T2 of the second robot arm. The interference zone division module is configured to traverse the interference zone and, using each process slot in the interference zone as a dividing line, divide all the working slots on the side of the interference zone away from the loading and unloading area into the third working slot set of the first robot arm, resulting in N third working slot sets P11, P12, P13, ..., P1N, where N is the number of process slots in the interference zone. The scheduling module is configured to traverse the task list to obtain the process path for each task, and generate at least one candidate robot allocation sequence based on the process path, the first set of work slots, the second set of work slots, and the third set of work slots when different process slots serve as different dividing lines; and traverse the at least one candidate robot allocation sequence to calculate the scheduling action sequence of all tasks under different candidate robot allocation sequences, and find the optimal candidate robot allocation sequence with the minimum completion time.

[0015] In some embodiments, the scheduling module specifically includes: The equipment identification unit is configured to sequentially traverse the process path of each task when the current process slot in the interference zone is used as the dividing line; and identify the equipment type corresponding to each process step in the process path. The configuration unit is configured to configure a corresponding robot for each process step according to the equipment type and the first set of working slots, the second set of working slots and the third set of working slots, so as to obtain the path action sequence of each task when the current working slot is the dividing line. The scheduling unit is configured to generate candidate robot allocation sequences for all tasks based on the path action sequence of each task; and to traverse the remaining process slots within the interference zone until the candidate robot allocation sequences for all tasks are obtained when the different process slots within the interference zone are used as dividing lines.

[0016] In some embodiments, the configuration unit is specifically configured to: keep the configuration of the current process step unchanged when the device identification unit identifies that the device type corresponding to the current process step is a robot; or, configure the robot of the current process step as the first robot when the device identification unit identifies that the device type corresponding to the current process step is a work slot and the work slot belongs to the first work slot set T1 or the third work slot set; or, configure the robot of the current process step as the second robot corresponding to the second work slot set T2 when the device identification unit identifies that the device type corresponding to the current process step is a work slot and the work slot belongs to the second work slot set T2; or, configure the robot of the current process step as the second robot when the device identification unit identifies that the device type corresponding to the current process step is a work slot, but the work slot does not belong to the first work slot set T1, the second work slot set T2, or the third work slot set.

[0017] In some embodiments, the initialization module is further configured to initialize the current optimal robot arm assignment sequence to empty and the current optimal completion time to infinity; correspondingly, the device further includes: The calculation module is configured to traverse the current candidate robot allocation sequence to obtain the process slots as dividing lines and their corresponding robot allocation sub-sequences; and generate a scheduling action sequence based on the robot allocation sub-sequences. Each time a scheduling action sequence is generated, it is determined whether the end time of the currently generated scheduling action sequence is less than the current optimal completion time. If so, a scheduling action sequence for all tasks is generated; and the end time of the last scheduling action is updated to the current optimal completion time. The current candidate robot allocation sequence is then used as the latest current optimal robot allocation sequence. The judgment module is configured to determine whether all candidate robot allocation sequences have been traversed after the calculation module updates the current optimal completion time and the current optimal robot allocation sequence. If so, it generates a scheduling action sequence for all tasks based on the current optimal robot allocation sequence; otherwise, it triggers the calculation module to roll back all scheduling action sequences generated in this scheduling calculation, restores the state before the scheduling calculation, and triggers the calculation module to recalculate based on the next candidate robot allocation sequence.

[0018] In some embodiments, the calculation module is further configured to determine whether the number of candidate robot allocation sequences is less than a preset threshold. If so, the candidate robot allocation sequence is configured as the optimal robot allocation sequence; otherwise, each candidate robot allocation sequence is traversed, and a scheduling action sequence and its end time are calculated based on the current candidate robot allocation sequence.

[0019] Beneficial effects: This application constrains the transmission range of the two robotic arms within the interference zone, for example, by using different process tanks within the interference zone as boundaries. Based on this, multiple candidate robotic arm allocation sequences are calculated, and each candidate robotic arm allocation sequence avoids interference problems. Compared to the traditional unconstrained approach, this not only avoids interference between robotic arms but also significantly reduces the magnitude of the candidate robotic arm classification sequences (from an exponential reduction) compared to the traditional unconstrained approach that only avoids interference by moving the robotic arms. This greatly reduces the computational load when finding the optimal candidate robotic arm allocation sequence in subsequent calculations, saving computational resources and improving the efficiency of subsequent scheduling and planning.

[0020] Furthermore, since there are usually multiple process tanks within the interference zone, there will be multiple candidate robot allocation sequences. Accordingly, a corresponding scheduling action sequence is generated based on each candidate robot allocation sequence. However, different scheduling action sequences will have different completion times. Therefore, in order to improve equipment utilization and increase production capacity, this application makes real-time judgments during the process of generating scheduling action sequences based on subsequences extracted from the current candidate robot allocation sequences. As long as the completion time of the currently generated scheduling action sequence (which is only a local scheduling action sequence) is greater than the optimal completion time, it indicates that the current candidate robot allocation sequence is not the optimal solution. Therefore, it is not necessary to wait until the scheduling action sequences of all tasks (i.e., the global scheduling action sequence) are generated before judging the completion time, thus avoiding meaningless calculations, saving resources and improving the efficiency of finding the optimal candidate robot allocation sequence. Attached Figure Description

[0021] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. In all the drawings, similar elements or parts are generally identified by similar reference numerals. The elements or parts in the drawings are not necessarily drawn to scale. Obviously, the drawings described below are some embodiments of the present invention, and those skilled in the art can obtain other drawings based on these drawings without any creative effort.

[0022] Figure 1 This is a schematic diagram showing the transmission range of the dual robotic arms in an existing semiconductor cleaning device used for cleaning flower baskets. Figure 2 This is a flowchart of an embodiment of a robotic arm scheduling method in a semiconductor cleaning device according to the present invention; Figure 3 This is an example of generating multiple candidate robot sequences in a robot scheduling method in a semiconductor cleaning device according to the present invention; Figure 4 This is an example of a robot scheduling method in a semiconductor cleaning device of the present invention for quickly finding the optimal robot allocation sequence from multiple candidate robot sequences; Figure 5 This is a functional block diagram of a robotic arm scheduling device in a semiconductor cleaning equipment according to the present invention. Detailed Implementation

[0023] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some, not all, of the embodiments of the present invention. All other embodiments obtained by those skilled in the art based on the embodiments of the present invention without creative effort are within the scope of protection of the present invention.

[0024] In this document, suffixes such as "module," "part," or "unit" used to denote elements are used only for the purpose of illustrative purposes and have no specific meaning in themselves. Therefore, "module," "part," or "unit" may be used interchangeably.

[0025] In this document, the terms "upper," "lower," "inner," "outer," "front," "rear," "one end," and "the other end," etc., indicate the orientation or positional relationship based on the orientation or positional relationship shown in the accompanying drawings. They are used only for the convenience of describing the present invention and for simplifying the description, and do not indicate or imply that the device or element referred to must have a specific orientation, or be constructed and operated in a specific orientation. Therefore, they should not be construed as limitations on the present invention. Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance.

[0026] In this document, unless otherwise explicitly specified and limited, the terms "installed," "equipped with," "connected," etc., should be interpreted broadly. For example, "connection" can be a fixed connection, a detachable connection, or an integral connection; it can be a mechanical connection, a direct connection, or an indirect connection through an intermediate medium; it can be a connection within two components. Those skilled in the art can understand the specific meaning of the above terms in this invention based on the specific circumstances.

[0027] In this document, "and / or" includes any and all combinations of one or more of the listed related items.

[0028] In this article, "multiple" means two or more, that is, it includes two, three, four, five, etc.

[0029] As used in this specification, the term "about" typically means + / -5% of the value, more typically + / -4% of the value, more typically + / -3% of the value, more typically + / -2% of the value, even more typically + / -1% of the value, and even more typically + / -0.5% of the value.

[0030] In this specification, certain embodiments may be disclosed in a range-bound format. It should be understood that this "range-bound" description is merely for convenience and brevity and should not be construed as a rigid limitation on the disclosed range. Therefore, the description of a range should be considered as having specifically disclosed all possible subranges and the individual numerical values ​​within those ranges. For example, a description of the range 1-6 should be considered as having specifically disclosed subranges such as from 1 to 3, from 1 to 4, from 1 to 5, from 2 to 4, from 2 to 6, from 3 to 6, etc., and the individual numbers within those ranges, such as 1, 2, 3, 4, 5, and 6. This rule applies regardless of the breadth of the range.

[0031] The scheduling process for semiconductor cleaning equipment includes: adding the process task job to be started (referred to as the new job) to the list of jobs to be started: NewJobs=[Job1, Job2, Job3, ...]. Each recalculation selects the first job in the NewJobs list (i.e., Job1) and the already started jobs for scheduling planning.

[0032] Due to the existence of interference regions, when the process path route of any job contains an interference region, there are multiple scheduling methods. Figure 1 Taking equipment as an example, for a traditional scheduling scheme, if any job's process path includes process tanks: Tank5, Tank6, and Tank7, since both Tank5, Tank6, and Tank6, Tank7 can use PTR1 or PTR2 to move the baskets, there are a total of 4 robot allocation sequences. Each sequence requires calculating the actual production capacity before selecting the optimal robot allocation sequence. Therefore, if the number of process tanks in the interference zone is N, there are a total of 2 (N-1) The number of robot arm allocation sequences and the computational time complexity increase exponentially, significantly increasing the system's computational load. Therefore, iterative optimization of the scheduling scheme is a pressing technical problem that needs to be solved to maximize equipment capacity and meet dwell constraints.

[0033] To maximize equipment capacity while avoiding interference, this application proposes a robot scheduling method and apparatus. This method constrains the transmission range of the robot in the interference zone, reconstructs the scheduling scheme based on the constrained transmission range of each robot, and finds the robot allocation sequence with optimal capacity. Detailed descriptions are provided below with reference to specific embodiments and accompanying drawings.

[0034] Parameter definitions: robot_sequence, the robot allocation sequence for all tasks; temp_sequence, the robot allocation sub-sequence for a single process slot; job_sequence, the task sequence; step_sequence, the path action sequence; optimal_sequence, the optimal robot allocation sequence (e.g., the candidate robot allocation sequence with the shortest completion time among all candidate robot allocation sequences for a certain task); min_end_time, the minimum completion time; Move, the scheduling action sequence; Module, module; Step, process step; Route, process path; Tank, process slot; PTR, robot.

[0035] Example 1: See Figure 2 The above is a flowchart of an embodiment of a robotic arm scheduling method in a semiconductor cleaning device according to the present invention. Specifically, the method includes the following steps: S100, initialize the robot arm allocation sequence to obtain the first working slot set T1 of the first robot arm and the second working slot set T2 of the second robot arm.

[0036] In some embodiments, a robot allocation sequence list `robot_sequence` is initialized to obtain a set of work slots accessible only to the first robot, namely, a first work slot set T1 (preferably, the first work slot set T1 includes all work slots accessible to the first robot on the side outside the interference zone away from the loading / unloading area); and a set of work slots accessible only to the second robot, namely, a second work slot set T2, which includes all work slots accessible to the second robot on the side outside the interference zone near the loading / unloading area. The work slots include various slots involved in the process areas, such as process tanks, handwashing tanks, and drying tanks.

[0037] In this embodiment, the accessible working slot refers to the working slot that the robot's transmission range can cover.

[0038] For example, see Figure 1There is an interference zone in the process area, which is the intersection of the transmission ranges of two robotic arms, PTR1 and PTR2. Therefore, in order to avoid overlapping robotic arm allocation sequences and reduce meaningless idle movements of the robotic arms, thereby improving transmission efficiency and increasing production capacity, this embodiment constrains the transmission ranges of the two robotic arms within the interference zone according to preset rules. Correspondingly, the non-interference area includes... Figure 1 The area to the left of the interference zone in the process area shown, that is, the area away from the loading and unloading area, and the area to the right of the interference zone, include part of the process area and the loading and unloading area.

[0039] S200, Traverse the interference zone, and use each process slot in the interference zone as a dividing line to divide all the working slots on the side away from the loading and unloading area in the interference zone into the third working slot set of the first robot arm, resulting in N third working slot sets P11, P12, P13, ..., P1N, where N is the number of process slots in the interference zone.

[0040] In some embodiments, after the third set of working slots that can only be accessed by the first robot arm is obtained, the process slots corresponding to the dividing line in the interference zone, and all working slots on the side near the loading and unloading area, are the fourth set of working slots that can only be accessed by the second robot arm.

[0041] In some embodiments, the transmission range of the two robotic arms within the interference zone is constrained in advance according to preset rules, thereby obtaining the transmission range of the two robotic arms within the interference zone. Specifically, the preset rules include: sequentially "cutting" the process tanks from the start to the end of the interference zone, excluding the EEWD module (the reason for excluding EEWD is that different robotic arms may need to perform handwashing processes during different tasks), when the material (such as a flower basket) is located in any tank to the left of the cutting tank, it is transported by the first robotic arm PTR1, that is, the transmission range of the first robotic arm includes all tanks to the left of the cutting tank; when the material (such as a flower basket) is located in any tank to the right of the cutting tank, it is transported by the second robotic arm PTR2, that is, the transmission range of the second robotic arm includes the cutting tank and all tanks to its right. In other words, the interference zone is divided into two transmission ranges, each accessible by a designated process tank, using the specified process tank as the dividing line. This division avoids meaningless idle transmission by the robotic arms, thereby improving equipment utilization and thus increasing production capacity. The start and end points of the interference zone refer to: such as Figure 1As shown, from left to right, the first process slot on the far left and the first process slot on the far right are located within the interference zone. Of course, in other embodiments, the direction can be from right to left, with the start and end points of the interference zone being the first process slot on the far right and the first process slot on the far left, respectively. The constraint principle is the same and will not be elaborated here. Subsequent embodiments will use the direction from left to right, with each process slot serving as a dividing line for "cutting."

[0042] by Figure 1 Taking the equipment as an example, when constraining the transmission range of PTR1 and PTR2 by using the process tanks Tank5, Tank6, and Tank7 within the interference zone as cutting points (i.e., dividing lines), the transmission range of each of the two robots within the interference zone can be obtained: When Tank5 is used as the cutting point (i.e. the dividing line), if the material (such as a flower basket) is in the Tank to the left of Tank5, it is handled by the first robotic arm PTR1; if the material (such as a flower basket) is in Tank5 or the Tank to the right of Tank5, it is handled by PTR2. When Tank6 is used as the cutting point (i.e. the dividing line), materials in the Tank to the left of Tank6 are handled by PTR1; materials in the Tank to the right of Tank6 are handled by PTR2.

[0043] Correspondingly, when Tank5 is used as the cutting point (i.e. the dividing line), there are no working slots to the left of Tank5. Therefore, the third working slot set P11 of PTR1 is empty. Correspondingly, Tank6, EEWD, and Tank7 are all located to the right of Tank5. Therefore, the fourth working slot set P21 of PTR2 includes: Tank5, Tank6, EEWD, and Tank7. When Tank6 is used as the cutting point (i.e. the dividing line), the working slots to the left of Tank6 include Tank5. Therefore, the third set of working slots P12 of PTR1 includes Tank5. The working slots to the right of Tank6 include EEWD and Tank7. Therefore, the fourth set of working slots P22 of PTR2 includes Tank6, EEWD, and Tank7. Similarly, when Tank7 is used as the cutting point (i.e. the dividing line), the working slots to the left of Tank7 include Tank5, Tank6, and EEWD. Therefore, the third set of working slots P13 of PTR1 includes Tank5, Tank6, and EEWD; while the fourth set of working slots P23 of PTR2 includes Tank7.

[0044] In some embodiments, if the number of process tanks in the interference region is N, then when each process tank in the interference region is used as the dividing line, there are a total of N robot allocation sequences. That is, the number of robot allocation sequences increases linearly with the increase of the number of Tanks in the interference region. Compared with exponential growth, this greatly reduces the computational load of the system.

[0045] S300, traverse the task list job_sequence to obtain the process path Route for each task job, and generate at least one candidate robot assignment sequence robot_sequence corresponding to all tasks based on the process path, the first set of work slots, the second set of work slots, and the third set of work slots when different process slots are used as different dividing lines.

[0046] In some embodiments, once the transmission range of each robot arm within the interference zone is defined, the set of working slots for each robot arm (i.e., the accessible working slots) can be determined. This allows us to identify the robot arm corresponding to the process step of each task, thereby obtaining the candidate robot arm allocation sequence for each task (Job). Since there are multiple tasks in the task list, when the transmission range is constrained by any process slot within the interference zone, the third and fourth working slot sets for PTR1 and PTR2 are obtained respectively. Under this premise, a corresponding candidate robot arm allocation list needs to be generated for all tasks in the task list. Therefore, if there are N process slots in the interference zone, there are N ways to divide them. Naturally, traversing the N process slots within the interference zone (i.e., traversing the N ways of division) will generate N candidate robot arm allocation sequences (robot_sequence).

[0047] Specifically, step S300 includes the following steps: S301, when the current process slot Tanki (i=1, ..., N) in the interference zone is used as the dividing line, the process path of each task is traversed in turn.

[0048] S302, identify the equipment type corresponding to each process step in the process path, and configure the corresponding robot for each process step according to the equipment type and the first working slot set, the second working slot set and the third working slot set, to obtain the path action sequence of each task when the current working slot Tanki is used as the dividing line.

[0049] In some embodiments, step S302 specifically includes the following steps: S3021, Identify the equipment type (or module type) corresponding to the current process step in the process path. If it is a robot, define the current process step as corresponding to the current robot, that is, keep the robot configuration of the current process step unchanged; if it is a work slot, execute step S3022.

[0050] S3022, determine whether the working slot belongs to the first working slot set T1 or the second working slot set T2 or any of the third working slot sets; If it belongs to the first working slot set T1, define the robot corresponding to the process step of the task as the first robot corresponding to the first working slot set T1, and execute step S3023. If it belongs to the second working slot set T2, define the robot corresponding to the process step of the task as the second robot corresponding to the second working slot set T2, and execute step S3023. If it belongs to any of the third working slot sets, the robot corresponding to the process step of the task is defined as the first robot corresponding to the third working slot set, and step S3023 is executed. Otherwise (that is, it does not belong to the first working slot set, the second working slot set, or any third working slot set, so it is determined to belong to the fourth working slot set), the robot corresponding to the process step of the task is defined as the second robot, and step S3023 is executed.

[0051] In some embodiments, each job's process path (Route) corresponds to a path work sequence (step_sequence), which includes a process step (Step) and a device type (Module) pair. For example, each time a robot arm performs a wafer transfer, it needs to determine whether the robot arm needs to wash its hands in the handwashing sink based on the previous destination Module and the next source Module in the process path, as well as the robot arm handwashing configuration matrix. Therefore, it is necessary to first determine the device type / module type corresponding to the current process step in the job. If it is a robot arm, the robot arm configuration for the current process step remains unchanged; if it is not a robot arm, it is a process slot. Therefore, it is necessary to further determine the set of work slots in which the process slot is located, that is, the transmission range in which the process slot is located, so as to match the corresponding process step with a robot arm with the corresponding access permission based on its transmission range.

[0052] For example, if the equipment type corresponding to the current process step is Tank2, and Tank2 belongs to the first working slot set T1 of the transmission range of the first robot PTR1, then the robot matched for this process step is PTR1.

[0053] For example, if the equipment type corresponding to the current process step is Tank6, and Tank6 belongs to the third working slot set P11 (if the third working slot set P11 is obtained by dividing Tank7, it includes Tank5 and Tank6), since the third working slot set P11 belongs to the transmission range of the first robot PTR1, the robot matched for this process step is PTR1.

[0054] S3023, traverse the next process step in the process path and execute steps S3021-S3022 until all process steps in the process path have been traversed, and generate the path action sequence of the current task when the current process slot Tanki is used as the dividing line.

[0055] S303, generate candidate robot assignment sequences for all tasks based on the path action sequence of each task.

[0056] As mentioned earlier, since there are multiple process slots in the interference zone, the path action sequence under different dividing lines will be calculated for each task, thereby obtaining the candidate robot allocation sequence for all tasks.

[0057] In some embodiments, as described above, since there are N process tanks in the interference zone, there are N robot allocation sequences. Accordingly, if the process path Route of any task includes the interference zone, there will naturally be multiple candidate robot allocation sequences.

[0058] by Figure 1 For example, if the current job's process path (Route) includes... Figure 1 In the interference region shown, then: When Tank5 is used as the dividing line, as mentioned earlier, since the third working slot set P11 of PTR1 is empty, the fourth working slot set P21 of PTR2 includes: Tank5, Tank6, EEWD, and Tank7; and the process path of the current task Job includes: Tank5-Tank6-Tank7 (that is, the robot does not need to wash its hands). Accordingly, the path action sequence step_sequence of the current task Job at this time includes: ···[T1,PTR2,MoveTo(Tank5)]; [T2,PTR2,Pick]; [T3,PTR2,MoveTo(Tank6)]; [T4,PTR2,Place]; [T5,PTR2,Pick]; [T6,PTR2,MoveTo(Tank7)]; [T7,PTR2, Place]···. Where T1-T7 represent the time for the corresponding robotic arm to perform the corresponding action.

[0059] When Tank6 is used as the dividing line, the third work slot set P12 of PTR1 includes: Tank5; while the fourth work slot set P22 of PTR2 includes: Tank6, EEWD, and Tank7; and the process path of the current task Job includes: Tank5-Tank6-Tank7 (that is, the robot does not need to wash its hands). Accordingly, the path action sequence step_sequence of the current task Job at this time includes: ···[T1, PTR1, MoveTo(Tank5)]; [T2, PTR1, Pick]; [ T3, PTR1, MoveTo(Tank6) ]; [T4, PTR1, Place] [ T5, PTR2, MoveTo(Tank6) ]; [T6, PTR2, Pick]; [ T7, PTR2, MoveTo(Tank7) ]; [T8, PTR2, Place]... Where T1-T8 represent the time for the corresponding robotic arm to perform the corresponding action.

[0060] Similarly, when Tank7 is used as the dividing line, the third work slot set P13 of PTR1 includes: Tank5, Tank6, and EEWD; while the fourth work slot set P23 of PTR2 includes: Tank7; and the process path of the current task Job includes: Tank5-Tank6-Tank7 (that is, the robot does not need to wash its hands). Accordingly, the path action sequence step_sequence of the current task Job at this time includes: ···[T1, PTR1, MoveTo(Tank5)]; [T2, PTR1, Pick]; [ T3, PTR1, MoveTo(Tank6) ]; [T4, PTR1, Place]; [T5, PTR1, Pick]; [ T6, PTR1, MoveTo(Tank7) ]; [T7, PTR1, Place]; [ T8, PTR2, MoveTo(Tank7) ]; [T9, PTR2, Pick]... Where T1-T9 represent the time for the corresponding robotic arm to perform the corresponding action.

[0061] It should be noted that different tasks utilize different process slots, and the robot's transport range is constrained. Therefore, some tasks may use process slots as demarcation lines, while others may not. In such cases, within the interference zone, some process slots within the second robot's transport range may serve as junction points between the two robots (e.g., the first robot places a flower basket in this slot, and the second robot picks it up and moves it to the next slot). In other words, although the junction slot is within the second robot's transport range, the first robot can still place materials in it but will not perform subsequent transport operations on the materials within that slot.

[0062] In some embodiments, after completing the path action sequence of a task, the same operation is performed on the next task in the task list job_sequence to obtain the path action sequence of the next task. This process is repeated until all tasks in the task list have been traversed, resulting in the path action sequence of each task under the current boundary, which is also a candidate robot allocation sequence.

[0063] S304, traverse each process slot in the interference zone and execute steps S301-S303 to obtain the candidate robot allocation sequence for all tasks when different process slots in the interference zone are used as dividing lines.

[0064] As mentioned earlier, since there are N process slots in the interference region, once a candidate robot allocation sequence is generated for a process slot, the next process slot can be traversed to obtain the next candidate robot allocation sequence. This process is repeated until all process slots in the interference region have been traversed, that is, until all possible candidate robot allocation sequences are found.

[0065] S500, traverse the at least one candidate robot allocation sequence to calculate the scheduling action sequence of all tasks under different candidate robot allocation sequences, and find the optimal candidate robot allocation sequence with the minimum completion time.

[0066] As mentioned earlier, since there are N candidate robot allocation sequences in the interference region, it is necessary to find the optimal robot allocation sequence that maximizes the equipment's productivity. However, the large number of N candidate robot allocation sequences results in a significant computational burden. Therefore, this application proposes a method to quickly find the optimal robot allocation sequence from the N candidate robot allocation sequences, thereby reducing unnecessary computation.

[0067] Specifically, step S500 includes the following steps: S501, initialize the current optimal robot arm allocation sequence to empty, and initialize the current optimal completion time configuration to infinity.

[0068] In this embodiment, the initialization provides an "empty and infinite" starting point to ensure that the first feasible solution is accepted and to allow subsequent candidate robot allocation sequences to approach the globally optimal completion time through continuous comparison.

[0069] S502, traverse the current candidate robot allocation sequence to obtain the process slots that serve as the dividing line and their corresponding robot allocation sub-sequences.

[0070] In some embodiments, each task's process path (Route) corresponds to a corresponding path action sequence (step_sequence). As mentioned earlier, if the process path includes an interference zone, then there are naturally N robot allocation sequences (robot_sequence) as candidate robot allocation sequences. In order to find the optimal robot allocation sequence, it is necessary to calculate the end time, i.e. the completion time, of the scheduling action sequence generated based on each candidate robot allocation sequence. Therefore, in this embodiment, each candidate robot allocation sequence is traversed, and each process slot in the interference zone and its corresponding robot allocation subsequence (temp_sequence) are extracted from the candidate robot allocation sequence for subsequent scheduling calculations.

[0071] Since the action sequence in the non-interference region (i.e., the region outside the interference region) is deterministic and does not generate candidate branches, introducing the process slots and their subsequences from the interference region would increase unnecessary computation and waste resources. Therefore, in this embodiment, the process slots and their robot allocation subsequences within the interference region, which serve as the dividing line, are extracted and used for subsequent scheduling calculations, significantly reducing the search space while ensuring the optimal solution is found.

[0072] Continuing with the previous example, the process path (Route) of a certain job includes... Figure 1The interference region is shown, and three sets of third working slots are obtained by dividing Tank5, Tank6, and Tank7 respectively. Correspondingly, three candidate robot allocation sequences are obtained: robot_sequence1, robot_sequence2, and robot_sequence3.

[0073] In robot_sequence1: ... T1: PTR2 MoveTo(Tank5); T2: PTR2 Pick (take the basket from Tank5); T3: PTR2 MoveTo(Tank6); T4: PTR2 Place (place in Tank6); T5: Tank6 process; T6: PTR2 MoveTo(Tank6); T7: PTR2 Pick (take from Tank6); T8: PTR2 MoveTo(Tank7); T9: PTR2 Place (place in Tank7); T10: Tank7 process; T11: PTR2 MoveTo(Tank7); T12: PTR2 Pick (take from Tank7) ...; where T1-T12 represent time intervals. When traversing robot_sequence1, since Tank5 serves as the dividing line, we obtain Tank5 and its corresponding robot allocation subsequence temp_sequence1: [T1, PTR2 MoveTo(Tank5); T2, PTR2 Pick].

[0074] In robot_sequence2: T1: PTR1 MoveTo(Tank5); T2: PTR1 Pick (take the basket from Tank5); T3: PTR1 MoveTo(Tank6); T4: PTR1 Place (place in Tank6); T5: Tank6 process; T6: PTR2 MoveTo(Tank6); T7: PTR2 Pick (take from Tank6); T8: PTR2 MoveTo(Tank7); T9: PTR2 Place (place in Tank7); T10: Tank7 process; T11: PTR2 MoveTo(Tank7); T12: PTR2 Pick (take from Tank7)...; where T1-T12 represent time intervals. When traversing robot_sequence2, since Tank6 serves as the dividing line, we obtain Tank6 and its corresponding robot allocation subsequence temp_sequence2: [T3: PTR1 MoveTo(Tank6); T4: PTR1 Place (Place in Tank6); T5: Tank6 Process; T6: PTR2 MoveTo(Tank6); T7: PTR2 Pick (Take from Tank6)].

[0075] In robot_sequence3: T1: PTR1 MoveTo(Tank5); T2: PTR1 Pick (take the basket from Tank5); T3: PTR1 MoveTo(Tank6); T4: PTR1 Place (place in Tank6); T5: Tank6 process; T6: PTR2 MoveTo(Tank6); T7: PTR1 Pick (take from Tank6); T8: PTR1 MoveTo(Tank7); T9: PTR1 Place (place in Tank7); T10: Tank7 process; T11: PTR2 MoveTo(Tank7); T12: PTR2 Pick (take from Tank7)...; where T1-T12 represent time intervals. When traversing robot_sequence3, since Tank7 serves as the dividing line, we obtain Tank5 and its corresponding robot allocation subsequence temp_sequence2: [T8: PTR1 MoveTo(Tank7); T9: PTR1 Place (Place in Tank7); T10: Tank7 Process; T11: PTR2 MoveTo(Tank7); T12: PTR2 Pick (Take from Tank7)].

[0076] S503, calculate the current task's scheduling action sequence Move based on the robot arm allocation sub-sequence temp_sequence; and during the calculation process, when a scheduling action sequence Move is generated, determine whether the end time of the currently generated scheduling action sequence Move is less than the current optimal completion time. If so, continue to generate the next scheduling action sequence Move, and again determine whether its end time is less than the current optimal completion time, until the robot arm allocation sub-sequence temp_sequence has been traversed, and then execute step S504; if the end time of the generated scheduling action is greater than or equal to the current optimal completion time, return to step S502.

[0077] As mentioned earlier, since each robot allocation subsequence temp_sequence corresponds to a candidate robot allocation sequence robot_sequence, comparing the total completion time after all task scheduling action sequences Move_sequence are generated would waste a significant amount of computational resources. Therefore, in this embodiment, real-time judgment is adopted. That is, for each generated scheduling action sequence, its end time (which includes the accumulated time of all preceding actions) is checked to see if it is greater than or equal to the current optimal completion time (known, such as if initialized to infinity, or the end time of the previous scheduling action sequence obtained in the last calculation). If this condition is met, the end time of subsequent actions will only be greater, therefore this candidate sequence can never be better than the current optimal solution and can be immediately discarded. This significantly reduces the computational load and improves the real-time performance and scalability of the scheduling algorithm while ensuring the finding of the globally optimal scheduling sequence.

[0078] In some embodiments, since the optimal robot allocation sequence `optimal_sequence` is configured to be empty during initialization, and the optimal completion time `min_end_time` is an infinite number (i.e., the initial minimum completion time), if there is no end time for the previous scheduled action sequence, the calculated end time is compared with the initial minimum completion time `min_end_time`. Accordingly, if the end time of the current scheduled action sequence is greater than the end time of the previously calculated previous scheduled action sequence, it indicates that the current `temp_sequence` does not only contain allocation sequences, and the current candidate robot allocation sequence is discarded. Then, the next candidate robot allocation sequence is traversed.

[0079] For example, assume the current optimal completion time is 100 seconds (e.g., the previous candidate robot allocation sequence). For the robot allocation sub-sequence temp_sequence obtained from the current robot allocation sequence robot_sequence: generate the first Move (movement + placement), ending time = 5 seconds. Since 5 < 100, continue generating the second Move (waiting for process completion, taking 60 seconds), ending time = 65 seconds. Since 65 < 100, continue generating the third Move (another long process, taking 50 seconds), ending time = 115 seconds. Since 115 ≥ 100, immediately stop the subsequent calculation of the current candidate robot allocation sequence and return to S502 to try the calculation of the next candidate robot allocation sequence. If we don't return to try the calculation of the next candidate robot allocation sequence, we still need to generate the remaining actions of the current subsequent robot allocation sequence, but the final total time will inevitably be ≥ 115 seconds, and cannot be better than 100 seconds.

[0080] S504, Generate the scheduling action sequence for each task, and execute step S505.

[0081] As mentioned earlier, since a real-time calculation method is used, for a candidate robot allocation sequence, as long as the end time of each generated action is less than the current optimal completion time, the next action is generated until the robot allocation subsequence is traversed. That is, the actions generated in step S503 are part of the scheduling actions when the current candidate robot allocation sequence is the optimal candidate robot allocation sequence. Therefore, it is necessary to continue to generate the remaining scheduling actions when the current candidate robot allocation sequence is the optimal candidate robot allocation sequence, so as to obtain the scheduling action sequence Move for all tasks.

[0082] S505, update the end time of the last scheduled action sequence Move to the current optimal completion time, and take the current candidate robot allocation sequence as the latest current optimal robot allocation sequence.

[0083] As mentioned earlier, since there are N process slots in the interference zone, correspondingly, for a task whose work path includes the interference zone, multiple candidate robot allocation sequences will be generated. Therefore, for each candidate robot allocation sequence, a corresponding job_sequence scheduling action sequence Move will be generated. In this process, a real-time judgment method is used to avoid unnecessary calculations: the end time of the current calculated Move is compared with the end time obtained from the previous calculation (if there is no previous calculation, the initial optimal completion time: infinity is used). If it is less than the end time obtained from the previous calculation, the next action and its end time are calculated. This process is repeated until the robot allocation subsequence in the current candidate robot allocation sequence is found, and then the scheduling action sequence for all tasks is generated. If the end time of the current calculation is greater than the end time obtained from the previous calculation, the next candidate robot allocation sequence is recalculated until all candidate robot allocation sequences are traversed, thereby finding the optimal robot allocation sequence. The same principle is repeated until the scheduling action sequence for all tasks is generated.

[0084] In some other embodiments, before executing step S502, it is first determined whether the number of candidate robot arm allocation sequences is less than a preset threshold (e.g., a positive integer 2). If so, the candidate robot arm allocation sequence is the optimal robot arm action sequence; otherwise, step S502 is executed.

[0085] In other words, if there is only one candidate robot allocation sequence (robot_sequence), then the unique candidate robot allocation sequence is directly taken as the optimal robot allocation sequence.

[0086] Example 2: The following detailed explanation, with reference to specific examples, illustrates the process of generating multiple candidate robot allocation sequences after dividing (i.e., constraining) the transmission ranges of PTR1 and PTR2 within the interference zone in the scheduling method of the present invention. Specifically, see... Figure 3 : (1) Initialize the robot_sequence allocation sequence to obtain the first work slot set T1 that can only be accessed by PTR1 and the second work slot set T2 that can only be accessed by PTR2; (2) Traverse the interference zone and determine whether the type of each module in the interference zone is a process tank. If the current module is a process tank, jump to step (3). Otherwise, traverse the next module in the interference zone and determine its type. That is, repeat step (2) until the module type is determined to be a process tank and jump to step (3). (3) Initialize the task sequence job_sequence of the task job. Using the current Tank in the interference zone as the cutting point, divide each Tank accessible by PTR1 to the left of the current Tank into set P1 (correspondingly, each Tank accessible by PTR2 to the right of the current Tank is set P2). (4) Traverse all current Jobs, retrieve Jobs in turn, and initialize the path action sequence step_sequence; (5) Traverse the process path Route of the Job, extract the process step Step and the corresponding module of the Route, determine whether the module type corresponding to the current process step of the Job is a robot. If so, define the robot corresponding to the step of the Job as the current module (i.e., remain unchanged) and jump to step (9); otherwise, jump to step (6). (6) Determine whether the current module of the Job, i.e., the process slot, belongs to the first work slot set T1 or the second work slot set T2. If the process slot belongs to the first work slot set T1, define the robot arm of the step corresponding to the Job as PTR1 of the accessible first work slot set T1, or if the process slot belongs to the second work slot set T2, define the robot arm of the step corresponding to the Job as PTR2 of the accessible second work slot set T2, and jump to step (9); otherwise, jump to step (7). (7) Determine whether the process tank corresponding to the current step of the Job belongs to set P1. If yes, define the robot corresponding to the step of the Job as PTR1 and jump to step (9). Otherwise, jump to step (8). (8) Define the robot arm corresponding to the step of this Job as PTR2; (9) After traversing the Route of the Job, the result is saved to the step_sequence of the Job; (10) After traversing all Jobs, save step_sequence to job_sequence; (11) After traversing the interference region Tank, the job_sequence is saved to the robot_sequence; (12) When traversing Tank cutting, determine the robot_sequence of all corresponding Jobs.

[0087] Example 3: The following detailed explanation, with reference to a specific example, illustrates the process of finding the final robot allocation sequence from the aforementioned multiple candidate robot allocation sequences in the scheduling method of the present invention. Specifically, see [link to example]. Figure 4 : (1) Initialize the optimal robot allocation sequence (optimal_sequence) to be empty, and set the minimum completion time (min_end_time) to an infinite number; (2) Determine whether there is only one candidate robot_sequence. If so, the unique candidate robot_sequence is the optimal robot_sequence. Jump to step (9); otherwise, jump to step (3). (3) Traverse the candidate robot allocation sequence robot_sequence, and extract the Tank as the cutting point (i.e. the dividing line) and its corresponding robot allocation subsequence temp_sequence in turn; (4) Calculate and generate the Job's scheduling action sequence Move based on the robot's allocation subsequence temp_sequence; (5) Each time a Move is generated, determine whether the end time of the Move sequence (i.e. the end time of the last scheduled action) is less than min_end_time. If so, jump to step (6). Otherwise, it means that the current temp_sequence is not the optimal robot allocation sequence. End the calculation and return to step (3) to start again for the next candidate robot allocation sequence until the optimal robot allocation sequence is found and step (6) is executed. (6) Once all Job scheduling is complete, all Moves are generated; (7) Update optimal_sequence to temp_sequence (or the candidate robot allocation sequence corresponding to temp_sequence), and update min_end_time to the end time of the last Move; (8) Determine whether the traversal of robot_sequence is complete. If yes, jump to step (9). Otherwise, roll back all newly generated Moves and restore the state before scheduling calculation, and return to step (3) to start again. (9) Generate Moves for all Jobs based on the optimal_sequence.

[0088] Example 4: Based on the robotic arm scheduling method in the semiconductor cleaning equipment described in the above examples, the present invention also provides a robotic arm scheduling device in the semiconductor cleaning equipment. Specifically, see [link to relevant documentation]. Figure 5 The device includes: The initialization module is configured to initialize the robot arm allocation sequence, thereby obtaining the first working slot set T1 of the first robot arm and the second working slot set T2 of the second robot arm. The interference zone division module is configured to traverse the interference zone and, using each process slot within the interference zone as a dividing line (or cutting point), divide all the working slots on the side of the interference zone away from the loading and unloading area into the third working slot set of the first robot (correspondingly, the remaining working slots in the interference zone belong to the fourth working slot set accessible by the second robot), resulting in N third working slot sets P11, P12, P13, ..., P1N, where N is the number of process slots in the interference zone; The scheduling module is configured to traverse the task list to obtain the process path for each task, and generate at least one candidate robot allocation sequence corresponding to all tasks based on the process path, the first set of work slots, the second set of work slots, and the third set of work slots when different process slots are used as different dividing lines; and traverse the at least one candidate robot allocation sequence to calculate the scheduling action sequence of all tasks under different candidate robot allocation sequences, and find the optimal candidate robot allocation sequence with the minimum completion time.

[0089] In some embodiments, the scheduling module specifically includes: The equipment identification unit is configured to sequentially traverse the process path of each task, using the current process slot within the interference zone as the dividing line; and to identify the equipment type corresponding to each process step in the process path. The configuration unit is configured to configure a corresponding robot for each process step according to the equipment type and the first set of work slots, the second set of work slots, and the third set of work slots, thereby obtaining the path action sequence for each task when the current work slot serves as the dividing line. Specifically, the robot configuration unit is configured to keep the configuration of the current process step unchanged when the equipment identification unit identifies that the equipment type corresponding to the current process step is a robot; or, when the equipment identification unit identifies that the equipment type corresponding to the current process step is a work slot and the work slot belongs to the first set of work slots T1 or the third set of work slots, configure the robot for the current process step as follows: The first robotic arm corresponding to the first working slot set T1 or the third working slot set; or when the equipment identification unit identifies that the equipment type corresponding to the current process step is a working slot and the working slot belongs to the second working slot set T2, the robotic arm of the current process step is configured as the second robotic arm corresponding to the second working slot set T2; when the equipment identification unit identifies that the equipment type corresponding to the current process step is a working slot and the working slot does not belong to the first working slot set T1, the second working slot set T2, or the third working slot set, the robotic arm of the current process step is configured as the second robotic arm; The scheduling unit is configured to generate candidate robot allocation sequences for all tasks based on the path action sequence of each task; and to traverse the remaining process slots within the interference zone until the candidate robot allocation sequences for all tasks are obtained when the different process slots within the interference zone are used as dividing lines.

[0090] In some embodiments, the initialization module is further configured to initialize the current optimal robot allocation sequence to empty and the current optimal completion time to infinity; correspondingly, the scheduling device further includes: The calculation module is configured to traverse each candidate robot allocation sequence and the current candidate robot allocation sequence to obtain the process slots as dividing lines and their corresponding robot allocation sub-sequences; calculate the scheduling action sequence Move and its end time based on the robot allocation sub-sequences; and determine whether the end time of each calculated scheduling action sequence Move is less than the current optimal completion time. If so, complete the scheduling of all tasks corresponding to the current candidate robot allocation list, generate the scheduling action sequence for all tasks, update the end time of the last scheduling action to the current optimal completion time, and take the current candidate robot allocation sequence as the latest current optimal robot allocation sequence; otherwise, calculate the scheduling action sequence and its end time based on the next robot allocation sub-sequence, and repeat the above process until the optimal robot allocation sequence is found. The judgment module is configured to determine whether all candidate robot allocation sequences have been traversed. If so, it generates a scheduling work sequence Move for all tasks based on the optimal robot allocation sequence; otherwise, it triggers the calculation module to roll back the Move generated by the current scheduling calculation, restores the state before the scheduling calculation, and triggers the calculation module to recalculate based on the next candidate robot allocation sequence.

[0091] In other embodiments, the above-mentioned calculation module is further configured to determine whether the number of candidate robot allocation sequences is less than a preset threshold (i.e., to determine whether there is only one candidate robot allocation sequence). If so, the candidate robot allocation sequence is configured as the optimal robot allocation sequence; otherwise, each candidate robot allocation sequence is traversed, and the scheduling action sequence Move and its end time are calculated based on the current candidate robot allocation sequence.

[0092] In some embodiments, the first set of working slots T1 includes all the working slots accessible to the first robot arm located on the side of the interference zone away from the loading and unloading area; the second set of working slots T2 includes all the working slots accessible to the second robot arm located on the side of the interference zone closer to the loading and unloading area.

[0093] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.

[0094] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of the present invention, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes several instructions to cause a computer terminal (which may be a mobile phone, computer, server, or network device, etc.) to execute the methods described in the various embodiments of the present invention.

[0095] The embodiments of the present invention have been described above with reference to the accompanying drawings. However, the present invention is not limited to the specific embodiments described above. The specific embodiments described above are merely illustrative and not restrictive. Those skilled in the art can make many other forms under the guidance of the present invention without departing from the spirit and scope of the claims. All of these forms are within the protection scope of the present invention.

Claims

1. A method for scheduling a robotic arm in a semiconductor cleaning device, characterized in that, Including the following steps: S100, initialize the robot arm allocation sequence to obtain the first working slot set T1 of the first robot arm and the second working slot set T2 of the second robot arm; S200, Traverse the interference zone, and use each process slot in the interference zone as a dividing line to divide all the working slots on the side away from the loading and unloading area in the interference zone into the third working slot set of the first robot arm, to obtain N third working slot sets P11, P12, P13, ..., P1N, where N is the number of process slots in the interference zone. S300, traverse the task list to obtain the process path of each task, and generate at least one candidate robot allocation sequence based on the process path, the first set of working slots, the second set of working slots, and the third set of working slots when different process slots are used as different dividing lines. S500, traverse the at least one candidate robot arm allocation sequence to calculate the scheduling action sequence of all tasks under different candidate robot arm allocation sequences, and find the optimal candidate robot arm allocation sequence with the minimum completion time. Step S300 specifically includes the following steps: S301, when the current process slot in the interference zone is used as the dividing line, the process path of each task is traversed in turn. S302, identify the equipment type corresponding to each process step in the process path, and configure a corresponding robot for each process step according to the equipment type and the first working slot set, the second working slot set and the third working slot set, to obtain the path action sequence of each task when the current working slot is the dividing line; S303, Generate candidate robot assignment sequences for all tasks based on the path action sequence of each task; S304, traverse the next process slot in the interference region and execute steps S301-S303 to obtain the candidate robot allocation sequence for all tasks when different process slots in the interference region are used as dividing lines.

2. The robotic arm scheduling method in a semiconductor cleaning equipment according to claim 1, characterized in that, Step S302 specifically includes the following steps: S3021, Identify the equipment type corresponding to the current process step in the process path. If it is a robot, the configuration of the current process step remains unchanged. If it is a working slot, proceed to step S3022; S3022, determine whether the working slot belongs to the first working slot set T1 or the second working slot set T2 or the third working slot set when the current process slot is used as the dividing line; If it belongs to the first working slot set T1, configure the robot in the current process step as the first robot corresponding to the first working slot set T1, and execute step S3023. If it belongs to the second working slot set T2, configure the robot in the current process step as the second robot corresponding to the second working slot set T2, and execute step S3023; If it belongs to the third working slot set when the current process slot is used as the dividing line, configure the robot of the current process step as the first robot corresponding to the third working slot set, and execute step S3023. Otherwise, configure the robot in the current process step as the second robot and execute step S3023; S3023, traverse the next process step in the process path and execute steps S3021-S3022 until all process steps in the process path have been traversed, and generate the path action sequence of the current task when the current process slot is the dividing line.

3. The robotic arm scheduling method in a semiconductor cleaning equipment according to claim 1, characterized in that, Step S500 specifically includes the following steps: S501, initialize the current optimal robot arm allocation sequence to empty, and initialize the current optimal completion time configuration to infinity; S502, traverse the current candidate robot allocation sequence to obtain the process slot as the dividing line and its corresponding robot allocation sub-sequence; S503, generate a first scheduling action sequence based on the robot arm allocation sub-sequence, and when the first scheduling action sequence is generated once, determine whether the end time of the currently generated first scheduling action sequence is less than the current optimal completion time. If so, execute step S504; if the end time of the currently generated first scheduling action sequence is greater than or equal to the current optimal completion time, return to step S502. S504, Generate the second scheduling action sequence for all tasks, and execute step S505; S505, update the end time of the last scheduled action sequence to the current optimal completion time, and use the current candidate robot allocation sequence as the latest current optimal robot allocation sequence; S506, determine whether all candidate robot arm allocation sequences have been traversed. If yes, generate a scheduling action sequence for all tasks based on the current optimal robot arm allocation sequence; otherwise, roll back all scheduling actions generated in this scheduling calculation, restore to the state before the scheduling calculation, and return to step S502 based on the next candidate robot arm allocation sequence.

4. The robotic arm scheduling method in a semiconductor cleaning device according to claim 1, characterized in that, Before performing step S500, the following steps are also included: S400, determine whether the number of candidate robot arm allocation sequences is less than a preset threshold; if so, configure the candidate robot arm allocation sequence as the optimal robot arm allocation sequence. Otherwise, proceed to step S502.

5. A robotic arm scheduling device in a semiconductor cleaning equipment, characterized in that, include: The initialization module is configured to initialize the robot arm allocation sequence to obtain the first working slot set T1 of the first robot arm and the second working slot set T2 of the second robot arm. The interference zone division module is configured to traverse the interference zone and, using each process slot in the interference zone as a dividing line, divide all the working slots on the side of the interference zone away from the loading and unloading area into the third working slot set of the first robot arm, resulting in N third working slot sets P11, P12, P13, ..., P1N, where N is the number of process slots in the interference zone. The scheduling module is configured to traverse the task list to obtain the process path of each task, and generate at least one candidate robot allocation sequence based on the process path, the first set of work slots, the second set of work slots, and the third set of work slots when different process slots are used as different dividing lines; and traverse the at least one candidate robot allocation sequence to calculate the scheduling action sequence of all tasks under different candidate robot allocation sequences, and find the optimal candidate robot allocation sequence with the minimum completion time. The scheduling module specifically includes: The equipment identification unit is configured to sequentially traverse the process path of each task when the current process slot in the interference zone is used as the dividing line; and identify the equipment type corresponding to each process step in the process path. The configuration unit is configured to configure a corresponding robot for each process step according to the equipment type and the first set of working slots, the second set of working slots and the third set of working slots, so as to obtain the path action sequence of each task when the current working slot is the dividing line. The scheduling unit is configured to generate candidate robot allocation sequences for all tasks based on the path action sequence of each task; and to traverse the remaining process slots in the interference zone until the candidate robot allocation sequences for all tasks are obtained when the different process slots in the interference zone are used as dividing lines.

6. The robotic arm scheduling device in a semiconductor cleaning equipment according to claim 5, characterized in that, Specifically, the configuration unit is configured to: when the device identification unit identifies the device type corresponding to the current process step as a robot, keep the configuration of the current process step unchanged; or, when the device identification unit identifies the device type corresponding to the current process step as a work slot, and the work slot belongs to the first work slot set T1 or the third work slot set, configure the robot of the current process step as the first robot; or, when the device identification unit identifies the device type corresponding to the current process step as a work slot, and the work slot belongs to the second work slot set T2, configure the robot of the current process step as the second robot corresponding to the second work slot set T2; or, when the device identification unit identifies the device type corresponding to the current process step as a work slot, but the work slot does not belong to the first work slot set T1, the second work slot set T2, or the third work slot set, configure the robot of the current process step as the second robot.

7. The robotic arm scheduling device in a semiconductor cleaning equipment according to claim 5, characterized in that, The initialization module is further configured to initialize the current optimal robot arm assignment sequence to empty and the current optimal completion time to infinity; correspondingly, the device also includes: The calculation module is configured to traverse the current candidate robot allocation sequence to obtain the process slots as dividing lines and their corresponding robot allocation sub-sequences; and generate a scheduling action sequence based on the robot allocation sub-sequences. Each time a scheduling action sequence is generated, it is determined whether the end time of the currently generated scheduling action sequence is less than the current optimal completion time. If so, a scheduling action sequence for all tasks is generated; and the end time of the last scheduling action is updated to the current optimal completion time. The current candidate robot allocation sequence is then used as the latest current optimal robot allocation sequence. The judgment module is configured to determine whether all candidate robot allocation sequences have been traversed after the calculation module updates the current optimal completion time and the current optimal robot allocation sequence. If so, it generates a scheduling action sequence for all tasks based on the current optimal robot allocation sequence; otherwise, it triggers the calculation module to roll back all scheduling action sequences generated in this scheduling calculation, restores the state before the scheduling calculation, and triggers the calculation module to recalculate based on the next candidate robot allocation sequence.

8. The robotic arm scheduling device in a semiconductor cleaning equipment according to claim 7, characterized in that, The calculation module is also configured to determine whether the number of candidate robot allocation sequences is less than a preset threshold. If so, the candidate robot allocation sequence is configured as the optimal robot allocation sequence; otherwise, each candidate robot allocation sequence is traversed, and the scheduling action sequence and its end time are calculated based on the current candidate robot allocation sequence.

Citation Information

Patent Citations

  • Transport erection structure, detection device, and transport method

    CN116884896A

  • Wafer scheduling method of semiconductor process equipment and semiconductor process equipment

    CN117954342A

  • Wafer scheduling method and semiconductor process equipment

    CN121149068A