A cleaning device scheduling method and device based on security slot residence
By using a method of real-time calculation and forced residence in a safety tank in semiconductor cleaning equipment, the problem of over-foaming was solved, improving equipment utilization and capacity, and reducing the probability of over-foaming.
Patent Information
- Application Number
- CN202511606207.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-11-05
- Publication Date
- 2026-03-03
- Estimated Expiration
- 2045-11-05
AI Technical Summary
In the existing technology, the probability of over-foaming problems occurring in semiconductor cleaning equipment during actual operation is still very high, and existing scheduling methods cannot effectively solve this problem, resulting in a decrease in production capacity and equipment utilization.
A cleaning equipment scheduling method based on safety tank dwelling is adopted. The method finds the safety tank that meets the preset dwelling conditions through real-time calculation and reverse traversal, forces the dwelling time of the task in the safety tank, adjusts the action priority to avoid over-bubbling, and delays the entry time of new tasks when necessary.
It effectively reduces the probability of over-bubbling, improves equipment utilization and capacity, and reduces the amount of modification and calculation required for existing schedules.
Smart Images

Figure CN121075968B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of semiconductor manufacturing technology, and in particular to a method and apparatus for scheduling cleaning equipment based on the residence of a safety tank. 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] Semiconductor cleaning equipment consists of three parts: a front-end storage area, a transfer area, and a process area. In each area, robotic arms are configured to transfer wafer products. For example, the transfer area is equipped with corresponding robotic arms (e.g., FTRs) to transport wafer cassettes (i.e., a group of wafers) from the storage area to the transfer area, and also includes pushing devices (e.g., pushers) to push wafer groups from the transfer area to the process area. In the process area, robotic arms (e.g., PTRs) transfer wafer groups between safe and hazardous tanks. Finished wafers cannot remain in the hazardous tank for too long, i.e., the residence time specified in the formula cannot be exceeded; otherwise, the chemical liquid will corrode the wafers, causing significant economic losses. Therefore, there are strict constraints on over-bubbling time. Based on this, various scheduling methods have been proposed in the prior art to reduce the probability of over-bubbling or to avoid the over-bubbling problem altogether.
[0004] For example, invention patent CN111229679B discloses a control method, control device, and wafer cleaning equipment for a wafer cleaning machine. The method includes: calculating various feasible paths for the robot arm from the initial input of a new workpiece to the completion of the entire process flow based on the status of each process module and the robot arm, as well as the process recipe; calculating the total time spent executing each feasible path based on the current set completion time of each robot arm action, and selecting the path with the shortest total time as the optimal path; collecting the actual completion time of each action during the execution of the optimal path, and determining whether the actual completion time of each action meets the preset maximum offset requirement; if the actual completion time of an action meets the maximum offset requirement, then the set completion time of that action is corrected based on the actual completion time, and the corrected set completion time is used in the next optimal path calculation for that action. This effectively prevents robot arm idleness and workpiece over-foaming. This patent actually controls the movement scheduling of the process area based on capacity and process precision, thereby preventing over-foaming. If over-foaming occurs, a capacity mode is used for scheduling instead of a process precision mode. However, scheduling based on capacity and process precision cannot solve the problem of over-bubbling during actual operation. This is because actual operation does not follow the pre-planned schedule exactly. For example, the robot arm's movements will not be executed strictly according to the scheduled time and there will be fluctuations and deviations. Therefore, even if scheduling is done in advance based on capacity and process precision, the probability of over-bubbling is still very high.
[0005] For example, invention patent CN111923066B discloses a process scheduling method and apparatus for wafer cleaning equipment. The method includes: generating a feasible move set; generating multiple move branches based on the feasible move set to form a first branch set; sequentially accessing each branch in the sorted first branch set to find a move branch that meets preset executable conditions; stopping access to other move branches when a move branch that meets the executable conditions is found; and performing corresponding operations based on whether all materials in the wafer cleaning equipment are in a safe position after executing the move branch. Therefore, in each scheduling process, not only can the safety of the scheduling be ensured, but also that the selected executable move branch is the one with better capacity or the one with better process accuracy after material processing. This improves the capacity of the wafer cleaning equipment and the process accuracy of the materials after processing. This patent essentially calculates all feasible paths, finds the path with the shortest time, and then "corrects" each action in the path nodes based on the offset in historical data. On the one hand, the method of calculating all feasible paths to find the move branches that meet the executable conditions and thus constructing the move set is computationally intensive. On the other hand, the correction based on the offset in historical data is unreliable. Therefore, in actual operation, various unexpected situations are always encountered. At the same time, there are always fluctuations and deviations in actual operation. Therefore, the probability of the bubble problem is still very high.
[0006] For example, invention patent CN114864456B discloses a semiconductor cleaning equipment scheduling method, system, device, and storage medium. This invention patent determines the wafer to be cleaned, identifies a predicted deadlock loop based on the wafer, determines the corresponding control place of the predicted deadlock loop, performs process scheduling simulation based on the wafer and the control place, effectively prevents potential deadlock situations using the pre-controlled place, and judges whether the simulation results of the process scheduling simulation meet the preset over-bubbling time constraint. By pre-scheduling the process through process scheduling simulation, it exposes potential wafer over-bubbling risks early, reducing the probability of wafer damage. When the simulation results meet the over-bubbling time constraint, it controls the semiconductor cleaning equipment to perform cleaning operations based on the simulation results, reducing the probability of deadlock and the risk of wafer over-bubbling during the cleaning operation, thus improving the effectiveness of semiconductor cleaning equipment scheduling. This patent avoids over-bubbling problems by delaying the entry time of tasks that may cause over-bubbling. However, the delay time may affect capacity and equipment module utilization, leading to increased costs.
[0007] In view of this, there is an urgent need for a cleaning equipment scheduling mechanism that can not only increase production capacity but also make full use of each equipment module to reduce the probability of over-foaming or even avoid the occurrence of over-foaming problems. Summary of the Invention
[0008] The purpose of this invention is to provide a cleaning equipment scheduling method and apparatus based on safety tank dwelling, which partially solves or alleviates the above-mentioned deficiencies in the prior art. It can make full use of each equipment module, reduce the probability of over-foaming, or even avoid over-foaming problems, while improving production capacity to a certain extent.
[0009] To solve the aforementioned technical problems, the present invention specifically adopts the following technical solution:
[0010] A first aspect of the present invention is to provide a method for scheduling cleaning equipment based on safety tank dwelling, comprising the steps of:
[0011] S101: Obtain the formula information pre-planned for the current new task in the task list, and determine whether over-foaming has occurred based on the first action sequence S1 in the formula information. If over-foaming occurs, the process tank is a dangerous tank. If no over-foaming occurs, proceed to step S102. If over-foaming occurs and the process tank is a dangerous tank, proceed to step S103. If over-foaming occurs and the process tank is a safe tank, proceed to step S105.
[0012] S102, update the status of the current new task to planning successful, and plan recipe information for the next new task in the task list, and repeat steps S101-S102 until all new tasks in the task list are successfully planned;
[0013] S103, starting from the current action where over-bubbling occurs, the first action sequence S1 is traversed in reverse order to find a safe slot that meets the preset dwelling conditions. When the nearest safe slot that meets the preset dwelling conditions is found, step S104 is executed. If no safe slot that meets the preset dwelling conditions is found, step S105 is executed. The preset dwelling conditions include: the available dwell time of the safe slot corresponding to the over-bubbling task is greater than or equal to the over-bubbling time of the current action, and the start time when the material in the safe slot is moved to the next process slot is greater than the current recalculation time T0'.
[0014] S104, determine the forced dwell time of the corresponding over-bubbling task Jobm in the safe slot based on the over-bubbling time of the dangerous slot, and update the priority of the action corresponding to the safe slot and its subsequent actions in the first action sequence S1 based on the forced dwell time, and execute step S106.
[0015] S105, obtain the current new task initialization device parameters and initialization action sequence S0, and based on the overbubbling time delay, obtain the earliest entry time T3 of the current new task Jobi in the initialization device parameters, and rearrange the priority of the actions in the initialization action sequence S0 based on the earliest entry time T3, and execute step S102.
[0016] S106. Based on the updated second action sequence S2, determine whether overbubbling has occurred. If so, proceed to step S103. Otherwise, determine that the planning is successful and use the earliest entry time T3 of the plan as the start time of the current new task, and proceed to step S102.
[0017] In some embodiments, the step of planning in advance for a new task in the task list specifically includes the following steps:
[0018] S201, the device is initialized to obtain the initialization device parameters and the initialization action sequence S0; the initialization device parameters include: the current time T0, the earliest available time of the first robot arm T1, the earliest entry time of the previous new task planning T3, the initial entry time of the current new task Job T3', and the dwell time T_r of all process tanks calculated in the previous round.
[0019] S202, based on the initialization device parameters, the earliest entry time T3 of the current new task is planned, where the earliest entry time T3 is the maximum value among T0, T1, T2, T3', and T_r; wherein, T2 is calculated based on the new task initialization entry time T3';
[0020] S203, using the earliest entry time T3 and the initialization action sequence S0 as the current new task, perform path planning to obtain corresponding recipe information. The recipe information includes: a first action sequence S1 obtained by rearranging the priority of each action in the initialization action sequence S0 based on the earliest entry time T3.
[0021] In some embodiments, the earliest entry time T3 after the delay in step S105 is the sum of the initial entry time T3' and the overbubbling time.
[0022] In some embodiments, the time constraint for reverse traversal is the current time T0.
[0023] In some embodiments, before performing step S102, the following step is further included:
[0024] S301, determine whether the difference between the earliest entry time T3 of the current new task and the earliest entry time obtained by the successful planning of the previous task meets the preset precision condition; if it meets the condition, proceed to step S102; otherwise, proceed to step S302.
[0025] S302, based on the earliest entry time T3 and the binary search method, redetermine the initial entry time T3' of the current new task, and execute step S202.
[0026] In some embodiments, step S101 specifically includes the following steps:
[0027] S1010, all first tasks in the process area, all successfully planned second tasks in the transfer area, and the current new task in the task list are regarded as tasks to be calculated, and their earliest start time T7 is calculated. Then, step S1011 is executed.
[0028] S1011, Sort each action in the first action sequence S1 in ascending order according to the earliest start time T7 of the current new task, the first task and the second task respectively, to obtain the execution priority of each action, and execute step S1012.
[0029] S1012, sequentially check whether the corresponding action has caused an overbubbling error from the first to the last position of the sorting. If an overbubbling error is detected for the first time, proceed to step S1013. If no overbubbling error is detected, proceed to step S102.
[0030] S1013, obtain the task information of the over-bubbling task that occurred, and execute step S103 or S105; the task information includes: information of the process tank corresponding to the over-bubbling and the time of the over-bubbling.
[0031] In some embodiments, step S1010 specifically includes the following steps:
[0032] S401, initialize the recipe information of the current task to be calculated in the task list. The recipe information includes: the third action sequence S3, the earliest entry time T3 of the current task to be calculated, the earliest start time of all actions in the third action sequence S3, and the earliest available time of all process tanks.
[0033] S402, determine whether the current task to be calculated is a new task in the task list. If yes, proceed to step S403; otherwise, proceed to step S404.
[0034] S403, calculate the time point T2 from the earliest entry time T3 when the new task arrives at the Pusher from the storage area through the transmission area, and at the same time, mark the current status of the new task as waiting to be picked up by the robot arm in the process tank;
[0035] S404, Based on the earliest available time Ti of the current process tank where the current task to be calculated is located and the maximum value of the current process tank's dwell time T_r, determine the earliest available time Ti of the current process tank, and execute step S407.
[0036] S407, determine whether the robot arm that the current task to be calculated is going to the next process tank is the second robot arm. If yes, execute step S408; otherwise, execute step S409.
[0037] S408, determine whether the second robotic arm needs to wash its hands in the EEWD tank according to the handwashing configuration; if yes, proceed to step S410; otherwise, proceed to step S409.
[0038] S409, calculate the earliest available time T5 for all robotic arms, and execute step S412;
[0039] S410, calculate the earliest available time T4 after the second robotic arm goes to the EEWD tank to wash its hands, and execute step S412;
[0040] S411, Calculate the earliest time point T6 when the current task to be calculated completes the preparatory actions required for the next process tank to prepare for the process.
[0041] S412, take the maximum value among T2, T4 and T6, or T2, T5 and T6, as the current earliest start time T7 of the task to be calculated.
[0042] In some embodiments, before step S407, the following step is further included:
[0043] S405, determine whether a deadlock has occurred based on the subsequent path of the current task to be calculated. If yes, proceed to step S406; otherwise, proceed to step S407.
[0044] S406, obtain the third action sequence S3 of the next task to be calculated in the task list, and execute step S402.
[0045] A second aspect of the present invention is to provide a cleaning equipment scheduling device based on safety tank dwelling, comprising:
[0046] The planning module is configured to perform path planning for multiple new tasks in the task list in sequence, and obtain the recipe information for each new task. The recipe information includes the earliest entry time T3 planned for the new task and the first action sequence S1, until all new tasks in the task list whose process paths to be planned are successfully planned.
[0047] The over-bubbling detection module is configured to determine whether over-bubbling has occurred based on the first action sequence S1, and the type of process slot with over-bubbling error is a dangerous slot; and under the trigger of the scheduling module, determine whether over-bubbling has occurred based on the updated second action sequence S2, and when over-bubbling is determined to occur again, trigger the safety slot matching module to search for a safety slot that meets the preset dwell conditions in reverse order starting from the current action where over-bubbling occurred; or, when it is determined that no over-bubbling has occurred based on the updated second action sequence S2, determine that the planning is successful, and set the earliest entry time T3 as the start time of the current new task, and trigger the planning module to plan the path for the next new task in the task list until all new tasks in the task list that are to be planned for the process path are successfully planned;
[0048] The safety tank matching module is configured to, when the over-bubbling detection module determines that the process tank with the over-bubbling error is a dangerous tank, traverse the first action sequence S1 in reverse order from the current action where the over-bubbling error occurred to find a safety tank that meets the preset dwell conditions; wherein, the preset dwell conditions include: the available dwell time of the safety tank corresponding to the over-bubbling task is greater than or equal to the over-bubbling time of the current action, and the start time when the material in the safety tank is moved to the next process tank is greater than the current recalculation time T0';
[0049] The dwelling condition configuration module is configured to, when the safety slot matching module finds a safety slot that meets the preset dwelling conditions, determine the forced dwelling time of the corresponding over-bubbling task in the safety slot based on the over-bubbling time of the over-bubbling dangerous slot, and update the priority of each action in the first action sequence S1 based on the forced dwelling time.
[0050] The scheduling module is configured to, when the over-bubbling detection module determines that the process tank with the over-bubbling error is a safety tank, delay the earliest entry time T3 of the current new task based on the over-bubbling time, and update the priority of each action in the first action sequence S1 based on the delayed earliest entry time T3; or, when the safety tank matching module does not find a safety tank that meets the preset dwell conditions, obtain the initialization equipment parameters and initialization action sequence S0 of the current new task, delay the earliest entry time T3 of the current new task in the initialization equipment parameters based on the over-bubbling time, and re-plan the path based on the delayed earliest entry time T3 and the initialization action sequence S0; wherein, the delayed earliest entry time T3 is the sum of the original earliest entry time T3 and the over-bubbling time.
[0051] In some embodiments, the planning module specifically includes:
[0052] The initialization unit is configured to perform device initialization, obtaining initialization device parameters and an initialization action sequence S0; the device parameters include: current time T0, earliest available time of the first robot arm T1, earliest entry time of the previous task successfully planned for the process path to be planned, initial entry time of the current new task Job T3', and dwell time T_r of all process slots calculated in the previous round; the initialization action sequence S0;
[0053] The planning unit is configured to plan the earliest entry time T3 for the current new task based on the device parameters, wherein the earliest entry time T3 is the maximum value among T0, T1, T2, T3', and T_r; and to perform path planning for the current new task based on the earliest entry time T3 to obtain the corresponding first action sequence S1.
[0054] In some embodiments, the scheduling module is further configured to determine whether the difference between the earliest entry time T3 of the current new task and the earliest entry time obtained from the successful planning of the previous task is subject to a preset precision condition; if it is, the planning module is triggered to perform path planning for the next new task in the task list until all new tasks in the task list that are to be planned for the process path are successfully planned; if it is not, the initial entry time T3' of the current new task is re-determined based on the earliest entry time T3 and the binary search method.
[0055] Beneficial effects: Existing technologies either reduce the probability of bubble overflow by planning ahead to account for the possibility of bubble overflow, or avoid it by delaying the entry time of new tasks. This application, considering that deviations always occur in practical applications, adopts a real-time calculation method. That is, as soon as a new task is planned, the current status of all successfully planned tasks in the current process area and transport area is used to determine whether bubble overflow will occur. Furthermore, when bubble overflow occurs, the task is forced to remain in the safety slot for a certain period, thereby rescheduling all tasks and preventing bubble overflow.
[0056] In contrast to the technical approach of directly delaying job over-bubbling to avoid it, this invention completely changes the technical approach. Therefore, even if over-bubbling occurs, it does not immediately consider delaying the entry time of newly added jobs. Instead, it identifies the specific action that caused the over-bubbling, and then finds the nearest available safety slot in reverse order. Based on the over-bubbling time of that action, it adjusts the forced residence time of the job within that safety slot, thereby redistributing the priority of that action and its subsequent actions (because the execution time of each action changes, the corresponding order of actions, i.e., the priority, changes). This process is repeated until the new job is successfully planned, meaning that no actions will experience over-bubbling, at which point the planning of the next new job begins. Compared to directly delaying job entry time, this not only avoids over-bubbling but also fully utilizes safety slots, improving equipment utilization and increasing productivity.
[0057] Furthermore, if no safety slot is found, an alternative path will be activated, which means delaying the entry time of the new job. Compared to directly delaying the job's entry time, this not only avoids over-bubbling but also makes full use of the safety slot, improving equipment utilization.
[0058] Furthermore, in order to minimize the amount of changes to the planned schedule and reduce the computational load of the system, this application uses both the available dwell time and the start time of the material in the safety tank being moved to the next process tank as constraints to filter the safety tank, and uses a reverse traversal to find the nearest qualified safety tank, which reduces the computational load to a certain extent. Attached Figure Description
[0059] 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.
[0060] Figure 1 This is a schematic diagram of a common tank-type wafer cleaning equipment;
[0061] Figure 2 This is a flowchart of a cleaning equipment scheduling method based on safety tank dwelling according to an embodiment of the present invention;
[0062] Figure 3 This is a flowchart of a cleaning equipment scheduling method based on safety tank dwelling according to another embodiment of the present invention;
[0063] Figure 4This is a flowchart illustrating step S101 of a cleaning equipment scheduling method based on safety tank dwelling in an embodiment of the present invention.
[0064] Figure 5 This is a flowchart illustrating the calculation of the entry time of a new Jobi in a cleaning equipment scheduling method based on safety tank dwelling according to an embodiment of the present invention.
[0065] Figure 6 This is a schematic diagram of the process for calculating the action sequence to determine whether over-foaming has occurred in a cleaning equipment scheduling method based on safety tank dwelling according to an embodiment of the present invention.
[0066] Figure 7 This is a functional block diagram of a cleaning equipment scheduling device based on safety tank dwelling according to an embodiment of the present invention.
[0067] Reference numerals: Planning module 100, over-bubbling detection module 200, safety slot matching module 300, dwell condition configuration module 400, scheduling module 500. Detailed Implementation
[0068] 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.
[0069] 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.
[0070] 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.
[0071] 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.
[0072] In this document, "and / or" includes any and all combinations of one or more of the listed related items. "Multiple" in this document means two or more, i.e., it includes two, three, four, five, etc.
[0073] The wafer cleaning equipment described in this article comprises multiple modules, such as a transfer area and a process area. The transfer area includes a wafer storage area (e.g., Foup Stocker), a first robotic arm (e.g., Foup Transfer Robot, FTR), transfer area modules, and a pusher, etc. The process area includes an calibrator (e.g., Aligner), a second robotic arm (e.g., Process Transfer Robot, PTR), a dual-tank robotic arm (e.g., Dual Lifter), a process tank, an EEWD (External Electrosurgical Hand Washing) tank, and a dryer, etc. See [link to relevant documentation]. Figure 1 Typically, a maximum of two sets of wafers can be placed in each process bay.
[0074] In this article, the types of process tanks mentioned above include hazardous tanks and safe tanks. Hazardous tanks refer to various process tanks in the process area. Because some process tanks are filled with various chemicals, such as hydrofluoric acid and sulfuric acid, if the time for wafers to complete processing in these tanks and wait to be removed by the second robotic arm exceeds the specified dwell time, it will greatly affect the quality of the wafers and may even result in them becoming scrap. Therefore, these process tanks are called hazardous tanks or acid tanks. Conversely, process tanks where wafers can remain for a long time even after processing is completed are called safe tanks. The aforementioned dry tanks (Dry) and handwashing tanks (EEWD), where wafers can remain for a long time, are also called safe tanks.
[0075] The typical complete process flow of a job is as follows: The Foup Stocker stores the Foup (front) containing wafers awaiting processing. opening unified A pod (front-open standard wafer pod) can hold a group of wafers or wafers. When the host computer (or control system) initiates job scheduling, the first robotic arm retrieves the pod corresponding to the current job from the pod stocker and moves it to the transport area entrance. The wafer is separated from the pod, moves through the transport area to the pusher, and waits to enter the process area for processing. The first robotic arm moves the empty pod back to the pod stocker. The second robotic arm in the process area takes the wafer from the pusher and moves it to the corresponding process tank according to the recipe information pre-configured for the job. After the process is completed, it is moved to the dry tank for drying. After drying, the first robotic arm moves the empty wafer pod of the job to the transport area entrance. The wafer is returned to the pusher by the second robotic arm, then returns to the transport area entrance via the same route and is loaded into the empty wafer pod. Finally, the wafer pod containing the processed wafer is moved back to the pod stocker by the first robotic arm, thus completing the process flow of one job. To ensure that jobs meet process requirements and do not violate dwell constraints, it is necessary to schedule the entry time of each job and the sequence of actions for all robotic arms. The existing approach is to avoid over-bubbling by delaying the entry time of new jobs when over-bubbling occurs in job planning. However, this approach not only reduces throughput but also decreases the utilization rate of equipment modules.
[0076] In view of this, the present invention proposes a completely different technical approach: instead of delaying the arrival time of the new job, it avoids over-bubbling by forcibly extending the wafer's dwell time in the safe slot within the specified wafer dwell time range, thereby altering the scheduling of the process area. Therefore, it does not delay the arrival time of the new job. Furthermore, another solution is provided, offering two strategies: forcibly extending the wafer's dwell time in the safe slot combined with delaying the arrival time of the new job; wherein the strategy of forcibly extending the wafer's dwell time in the safe slot has higher priority than the strategy of delaying the arrival time of the new job. For example, if the strategy of forcibly extending the wafer's dwell time in the safe slot fails (e.g., no suitable safe slot is found), then the strategy of delaying the arrival time of the new job is employed.
[0077] Parameter summary:
[0078] T0: The current time initialized each time a new task is planned;
[0079] T0': Each time an over-bubble is detected, the recalculation time for replanning is calculated based on the found safety slot;
[0080] T1: The earliest start time for all actions, and also the earliest available time for FTR;
[0081] T2: The time point from the earliest entry time T3 for the Job to arrive at the Pusher from the storage area through the transmission area;
[0082] T3: The earliest entry time of a task; for example, the earliest time a new job leaves the Foup Stocker, which gradually increases as other tasks successfully complete their calculations.
[0083] T3': Job initialization entry time;
[0084] T4: Earliest usable time after PTR goes to the EEWD sink to wash hands;
[0085] T5: The earliest available time T5 for all robotic arms;
[0086] T6: The earliest time point at which the current task Jobk to be calculated will complete the preparatory actions required for the process in the next process tank;
[0087] T7: The earliest start time of the current task Jobk to be calculated; at this time, since Jobk is already in the process area, T7 refers to the earliest time when the robot can move this Jobk to the next Tank.
[0088] T 驻留 The residence time threshold T of the safety slot 驻留 ;
[0089] T 占用: The time the safety slot is occupied by any Job;
[0090] T 过泡 Soaking time;
[0091] T 强制 Forced dwell time is the time it takes for the action Ap of the overbubbling task Jobm to complete, or the time it takes for the overbubbling task Jobm to be taken away by the second robotic gripper in the previous process slot; where action Ap is the action preceding the overbubbling action.
[0092] Ti: Earliest available time for the process tank;
[0093] T_r: Dwell time of the process tank;
[0094] S0: Initialize the sequence of initialization actions obtained before the earliest entry time T3 for the current new task Jobi;
[0095] S1: The first action sequence is calculated based on the earliest entry time T3 of the current new task Jobi, including the action sequences of all first tasks already in the process area, the action sequences of all second tasks that have been planned and completed (such as Job(i-1)), and the action sequence of the new task Jobi to be calculated.
[0096] S2: Based on the mandatory residence time T 驻留 The second action sequence is obtained by updating the priority of the action corresponding to the safety slot and its subsequent actions in the first action sequence S1;
[0097] S3: Determine whether an action sequence obtained before initialization has occurred based on the earliest entry time of the new Jobi;
[0098] Jobi: The current new task (or the i-th task);
[0099] Job(i-1): A new task that was successfully planned in the previous round;
[0100] Jobk: The current task to be computed (or the kth task);
[0101] Jobm: Bubble task (or the m-th task).
[0102] Example 1: See Figure 2 This invention provides a method for scheduling cleaning equipment based on safety tank dwelling. Specifically, the method includes the following steps:
[0103] S101, obtain the formula information pre-planned for the current new task in the task list, and determine whether over-foaming has occurred based on the first action sequence S1 in the formula information, and the process tank with over-foaming is a dangerous tank; if no over-foaming has occurred, execute step S102; if over-foaming has occurred and the process tank with over-foaming is a dangerous tank, execute step S103; if over-foaming has occurred and the process tank with over-foaming is a safe tank, execute step S105.
[0104] In some embodiments, the system plans the earliest entry time T3 and the sequence of actions of all robotic arms, i.e., the first action sequence S1, for each job to obtain the corresponding recipe information. For example, the recipe-i-1 planned by the system for a new job (i-1) includes: Tank1 → Tank2 → Tank3 → Tank4 → Tank5 → Tank6 → Dry. After the new job (i-1) is successfully planned (i.e., no over-bubbling error occurs), the recipe-i planned for the next new job (or the currently planned new job) includes: Tank5 → Tank6 → Tank7 → Tank8 → Dry. If the job (i-1) is planned while it is in the Tank5 process, and the job enters the process at this time, because the PTR does not have enough time to move the job (i-1) to Tank6, the job (i-1) will experience over-bubbling in Tank5. Accordingly, if Tank5 is a dangerous tank, then step S103 is executed; if Tank5 is a safe tank, then step S105 is executed.
[0105] S102, update the status of the current new task (e.g. Jobi) to successful planning, and plan the recipe information for the next new task in the task list (e.g. Job(i+1)). Repeat steps S101-S102 until all new tasks in the task list are successfully planned.
[0106] S103: Starting from the current action that has bubbled, traverse the first action sequence S1 in reverse order to find a safe slot that meets the preset dwell conditions. When the nearest safe slot that meets the preset dwell conditions is found, execute step S104. If no safe slot that meets the preset dwell conditions is found, execute step S105.
[0107] In some embodiments, the preset dwell conditions include: the available dwell time of the safety slot corresponding to the overbubbling task is greater than or equal to the overbubbling time T of the current action. 过泡 Furthermore, the start time for the material in the safety tank to be moved to the next process tank is greater than the current recalculation time T0'.
[0108] In some embodiments, the time constraint for reverse traversal is the current time T0. That is, if a safe slot that meets the preset dwell conditions is not found when the reverse traversal reaches T0, the search for a safe slot that meets the dwell conditions is stopped, and step S105 is executed instead.
[0109] Because the action sequence time of the second robotic arm, such as PTR, is increasing, the reverse order is to traverse from the direction of large time to small time, so as to find the task that can be forcibly stationed in the safe slot without affecting the many sequences that have been planned before.
[0110] Specifically, starting with the bubble-over action, each action is traversed in reverse order to determine whether it is an action of the bubble-over task Jobm. If it is an action corresponding to the bubble-over task Jobm, and the process slot corresponding to the action is a safety slot, then it is determined that the available dwell time of the safety slot is greater than or equal to the bubble-over time T of the current action. 过泡 If the start time for the material in the safety tank to be moved to the next process tank is greater than the current recalculation time T0', then execute step S104. Since it is a reverse traversal, it only needs to find a safety tank that meets the conditions for the first time to stop. Of course, if no safety tank that meets the preset dwell conditions is found after traversing, then execute step S105.
[0111] For example, in the original planned first action sequence S1={···A1, A2, A3, A4, A5, A6···}, if it is determined that the current action that caused the overbubbling is A6 (and the task corresponding to the current action A6 is Jobm, where m may be i, i-1, or other tasks), then we search backwards from the current action A6. We may find the safe slot TANK4 that meets the preset dwell conditions at A4. That is, action A4 is one of the actions of the overbubbling task Jobm, and the process slot corresponding to this action is a safe slot. At the same time, the available dwell time of this safe slot is greater than or equal to the overbubbling time T of the current action. 过泡 If the start time for moving material from the safety tank to the next process tank is greater than the recalculation time T0', then when rescheduling (i.e., recalculating time T0'), the preceding action sequence will still be A1, A2, A3, but changes will begin from A4. Accordingly, when recalculating whether overbubbling has occurred, the sequence can be rolled back to A4, and calculations can begin directly from A4, minimizing internal scheduling changes and reducing calculation time. That is, once overbubbling is detected in action A6, the nearest safety tank is found in reverse order, and then step S104 is executed.
[0112] In some embodiments, since each successfully planned Job has corresponding recipe information, once a safe slot is found, the pre-planned residence time threshold T for that safe slot can be obtained from the recipe information. 驻留 Therefore, the available dwell time is actually T. 驻留 Subtract the time T that the safety slot is occupied by the Job 占用 Therefore, the dwell time = T 驻留 -T 占用 .
[0113] For example, continuing from the previous example, the T of the safety slot TANK4 驻留 The time is 300 seconds, where T corresponds to the time taken by a successfully planned job. 占用The time is 260s, therefore its available dwell time is 300s-260s=40s. Thus, the overbubbling time T of the current action A6 is... 过泡 Less than or equal to the available dwell time of 40 seconds.
[0114] S104, based on the over-bubbling time T of the dangerous tank where over-bubbling has occurred. 过泡 Determine the mandatory dwell time of the corresponding bubble-over task in the found safe slot, and update the priority of the action corresponding to the safe slot and its subsequent actions in the first action sequence S1 based on the mandatory dwell time, that is, replan and execute step S106.
[0115] In some embodiments, following the example above, the danger slot corresponding to the over-bubbling action A6 is TANK6, and the task corresponding to action A6 is the over-bubbling task Jobm. Therefore, when the process slot corresponding to action A4 of the over-bubbling task Jobm is found for the first time through reverse traversal, and this safety slot meets the above conditions, based on the over-bubbling time T... 过泡 To determine the dwell time of action A4 in the safety slot, action A4 is forced to remain in the safety slot for a certain period of time, thereby changing the execution time of action A6 to prevent overbubbling. In other words, it only adjusts the priority of action A6 and its subsequent actions in action sequence S1, without delaying the entry time of the entire Jobm.
[0116] For example, if job A4 of the over-bubbling task completes the corresponding process in the corresponding process tank, and over-bubbling is calculated to occur in A6, then the over-bubbling time T based on A6... 过泡 Determine the forced dwell time T of action A4 in the safety slot in the overbubbling task Jobm. 强制 =Action A4 Completion Time + T 过泡 The completion time of action A4 is the time it takes for the overbubbling task Jobm to be removed by the second robotic gripper in the previous process tank.
[0117] S105, obtain the initialization device parameters and initialization action sequence S0 for the current new task, and based on the overbubbling time T 过泡 The initialization entry time T3' in the device parameters is delayed to obtain the earliest entry time T3 of the current new task Jobi, and the priority of the actions in the initialization action sequence S0 is rearranged based on the earliest entry time T3, and step S102 is executed.
[0118] In some embodiments, the earliest entry time T3 of the current new task Jobi after the delay is equal to the initial entry time T3' + T. 过泡 .
[0119] S106. Based on the updated second action sequence S2, determine whether overbubbling has occurred. If so, proceed to step S103. Otherwise, determine that the planning is successful and use the earliest entry time T3 of the plan as the start time of the current new task, and proceed to step S102.
[0120] In some embodiments, although overbubbling occurs, unless overbubbling occurs in the first action of the overbubbling task, the process proceeds directly to step S105, i.e., by delaying the earliest entry time of the overbubbling task; otherwise, the dwell time of the corresponding action of the overbubbling task in the safety slot is adjusted by forced dwelling, thereby avoiding overbubbling. That is, the earliest entry time T3 in step S106 is actually still the earliest entry time planned for the new task in the recipe information.
[0121] In other embodiments, see Figure 3 The steps for planning new tasks in the task list in advance include the following:
[0122] S201, Device initialization obtains the initialization device parameters and initialization action sequence S0.
[0123] In some embodiments, initializing device parameters includes: current time T0, earliest available time of FTR T1, and earliest entry time of the last successfully scheduled new task Job(i-1) in the task list T3. (i-1) The current new task Jobi initialization entry time is T3', and the previous round of calculation of the residence record time of all process slots is T_r.
[0124] S202, based on the above-mentioned initialization device parameters, the earliest entry time T3 is planned for the current new task Jobi, and the earliest entry time T3 is the maximum value among T0, T1, T2, T3', and T_r.
[0125] In some embodiments, T2 is the time point from the initialization entry time T3' of the new task Jobi, calculated by the system based on the initialization entry time T3', from the storage area through the transmission area to the Pusher.
[0126] S203, using the earliest entry time T3 and initialization action sequence S0 of the current new task Jobi as the basis for path planning, and obtain the corresponding recipe information.
[0127] In some embodiments, when the earliest entry time T3 of the new task Jobi is determined in step S202, the system automatically rearranges the priorities of each action in the initialization action sequence S0 according to the latest earliest entry time T3, thereby obtaining the first action sequence S1. Accordingly, the planned recipe information includes: the first action sequence S1 planned based on the initialization action sequence S0. Wherein, the initialization sequence S0 includes the action sequences of Job(i-1) and other successfully planned tasks; the first action sequence S1 includes: the action sequences of Job(i-1) and other successfully planned tasks, and the action sequence planned for the new task Jobi.
[0128] In some other embodiments, before performing step S102, the following step is also included:
[0129] S301, compare the earliest entry time T3 of the current new task Jobi with the earliest entry time T3 obtained from the successful planning of the previous task Job(i-1). (i-1) Check if the difference has a preset precision condition; if it does, proceed to step S102; otherwise, proceed to step S302.
[0130] S302, based on the earliest entry time T3 of the current new task Jobi and the binary search method, redetermine the initial entry time T3' of the current new task Jobi, and execute step S202.
[0131] In some embodiments, see Figure 4 Step S101 specifically includes the following steps:
[0132] S1010, treat all first tasks in the process area, all successfully planned second tasks in the transfer area, and the current new task Jobi in the task list as tasks to be calculated, and calculate their earliest start time T7, then execute step S1011.
[0133] In this embodiment, when the system plans a new Jobi, the process area may contain first tasks that are already executing various processes, while the transport area may contain second tasks that have been successfully planned but have not yet entered the process area. The transport area may also contain third tasks that have not yet been planned, i.e., are waiting to be planned. Once the new Jobi is successfully planned, it automatically becomes the second task. Correspondingly, if any second task in the transport area enters the process area, it automatically becomes the first task.
[0134] S1011, Sort each action in the first action sequence S1 in ascending order according to the earliest start time T7 of the current new task Jobi, the first task and the second task, to obtain the priority of each action to be executed, and then execute step S1012.
[0135] S1012, sequentially check whether the corresponding action has caused an overbubbling error from the first to the last position of the sort. If an overbubbling error is detected for the first time, proceed to step S1013. If no overbubbling error is detected, proceed to step S102.
[0136] S1013, obtain the task information of the over-bubbling task (such as Jobm) that has over-bubbled, and execute step S103 or S105.
[0137] In some embodiments, the task information of the over-bubbling task includes: identification information (such as number or name) of the task that caused the over-bubbling and its corresponding action sequence, information of the process tank corresponding to the over-bubbling, and the time T when the over-bubbling occurred. 过泡 Specifically, this bubble-breaking task could be a new task called Jobi, or it could be another task.
[0138] In some embodiments, if an over-bubbling error is detected, it is further determined whether the over-bubbling error occurred in a dangerous tank. If it is a dangerous tank, step S103 is executed; if it is a safe tank, step S105 is executed.
[0139] In other embodiments, if it is determined that no bubble error has occurred, the corresponding actions can be executed sequentially from the first position to the last position in the first action sequence S1, i.e., step S1014 can be executed.
[0140] Preferably, step S1010 specifically includes the following steps:
[0141] S401, Initialize the recipe information for the currently pending task in the task list.
[0142] In some embodiments, the above-mentioned recipe information includes: the third action sequence S3, the earliest entry time T3 of the current task to be calculated Jobk, the earliest start time of all actions in the third action sequence S3, and the earliest available time Ti of each process tank.
[0143] In practice, since the recipe information has been planned in advance for the current new task Jobi, the corresponding first action sequence S1 is obtained. Therefore, the third action sequence S3 here is actually obtained by initializing the first action sequence S1.
[0144] In some embodiments, the current task to be calculated, Jobk, may be the first task, the second task, or a new task. Generally, when planning for a new task Jobi, the recipe information for the first and second tasks has already been calculated. Therefore, what needs to be calculated at this time is the recipe information for the new task Jobi.
[0145] S402, determine whether the current task to be calculated, Jobk, is a new task, Jobi, in the task list. If yes, proceed to step S403; otherwise, proceed to step S404.
[0146] S403, calculate the time point T2 from the earliest entry time T3 when the new task Jobi arrives at the Pusher from the storage area through the transmission area. At the same time, mark the current status of the new task Jobi as waiting to be picked up by the robot in the process tank, and execute step S404.
[0147] In some embodiments, the earliest entry time T3 of the new task Jobi is the earliest entry time T3 that the system has planned for the new task Jobi, such as the earliest entry time T3 determined in step S202 above.
[0148] S404. Based on the earliest available time Ti of the current process tank where the task Jobk is currently located, and the maximum value of the current process tank's dwell time T_r, determine the earliest available time Ti of the current process tank, and execute step S407.
[0149] In some embodiments, the earliest available time Ti of the current process tank is recalculated as the largest of the earliest available time Ti before the update and the residence record time T_r.
[0150] S407, determine whether the robot arm that the current task Jobk is going to the next process tank is the second robot arm, such as PTR. If yes, proceed to step S408; otherwise, proceed to step S409.
[0151] S408. Determine whether the second robotic arm needs to wash its hands in the EEWD tank based on the handwashing configuration. If yes, proceed to step S410; otherwise, proceed to step S409.
[0152] S409, calculate the earliest available time T5 for all robotic arms, and execute step S412.
[0153] The earliest time for a robotic arm to handle materials in a slot is determined by three times: the slot itself, the preparation time of the target slot, and the robotic arm time. Sometimes the robotic arm needs to wash its hands before it can pick up materials from a specific slot, so T4 is actually derived from T5. When handwashing is not required, T4 = T5.
[0154] S410, calculate the earliest available time T4 after the PTR goes to the EEWD sink to wash hands, and proceed to step S412.
[0155] S411, calculate the earliest time T6 when the current task Jobk to be calculated completes the preparatory actions required for the next process tank.
[0156] S412, take the maximum value among T2, T4 and T6 as the current earliest start time T7 of the task to be calculated.
[0157] In some other embodiments, before executing step S407, the method further includes the following steps: S405, determining whether a deadlock has occurred based on the subsequent path of the current task Jobk to be calculated; if so, executing step S406; otherwise, executing step S407; S406, obtaining the third action sequence S3 of the next task Job(k+1) to be calculated in the task list, and executing step S402.
[0158] In other embodiments, the method includes the above steps S101-S102, as well as steps S101-S103-S104-S106-S102, that is, by traversing the first action sequence S1 in reverse order, a safe slot that meets the conditions can be found and the over-bubbling problem can be solved.
[0159] Example 2: Once a new Job enters, its corresponding entry time needs to be planned (e.g., through an external model Job scheduling planning module, or simply a scheduling planning module, to plan the entry time of each new Job). Once its entry time is determined, the action sequence of all robotic arms is calculated (e.g., through an internal model). The scheduling method of the present invention will be described in detail below with reference to a specific example.
[0160] See Figure 5 The specific steps for scheduling and planning the entry time of a new job include:
[0161] (1) System initialization to add all new Job1, Job2, ..., JobN involved in scheduling to the task list.
[0162] (2) Take out new Jobi (i=1,2···N) from the above task list in sequence and calculate.
[0163] (3) Initialize the current time T0, the earliest available time of FTR T1, and the earliest entry time of the previous round of new Job (i-1) planning T3. (i-1) The initial entry time of the new Jobi is T3', the dwell time record of all Tanks in the previous round is T_r, and the initial action sequence is S0.
[0164] In some embodiments, if there is no previously planned new task, then T3 (i-1) The default value is T1.
[0165] In some embodiments, the initial action sequence S0 is actually the action sequence planned for the previous round of new Job (i-1). That is, the action sequence obtained after each successful planning includes the action sequences corresponding to all Jobs that have been successfully planned. Of course, if there are no Jobs that have been successfully planned before, then the initial action sequence S0 is an empty sequence.
[0166] (4) Update the earliest entry time T3 of the current new task Jobi to T0, T1, T3. (i-1) The maximum value among T3' and T_r.
[0167] (5) Based on Jobi’s earliest entry time T3, the first action sequence S1 is calculated.
[0168] In some embodiments, the new action sequence S1 is obtained by reordering the actions in S0 based on the latest T3, which includes the action sequences corresponding to all successfully planned Jobs and Jobis.
[0169] (6) Determine whether a bubble has appeared. If it has, proceed to step (7); otherwise, proceed to step (19).
[0170] In some embodiments, since Job(i-1) has been successfully planned, it means that there was no bubble in the planning process before Job(i-1) was added. Therefore, once a new Job(i-1) is added, the planning of Job(i-1) together may result in bubble (of course, Job(i-1) may also bubble with other tasks). Therefore, calculation is used to determine whether bubble has occurred. For the specific calculation / determination process, please refer to Embodiment 3.
[0171] (7) Determine whether the overbubbling Tank type is a dangerous tank. If yes, jump to step (8); otherwise, jump to step (14).
[0172] (8) Based on the information of the overbubbling task Jobm, Tank information, time information, and Jobm history, traverse each action in the first action sequence S1 in reverse order.
[0173] In practical applications, the task Jobk that has bubbled could be Jobi, Job(i-1), or other tasks.
[0174] (9) Determine whether the current action belongs to the bubble-breaking task Jobm, and whether the start time of the action is earlier than the bubble-breaking time point T of Jobm. 过泡 If the Tank type corresponding to the action is a safe slot, and the safe slot meets the preset dwell conditions, then jump to step (10); otherwise (i.e., the action corresponding to the action is not a safe slot), then jump to step (13).
[0175] Of course, if the safe slot does not meet the preset dwell conditions, the process continues to traverse in reverse order to find the next safe slot corresponding to Jobm, until a safe slot that meets the preset dwell conditions is found.
[0176] (10) Update the dwell time of Jobm in this safety tank. When Jobm completes the process in this safety tank, it is forced to stay based on the over-bubbling time. That is, the earliest available time of this safety tank is the start time of the action plus the over-bubbling time.
[0177] (11) Jobm still uses the planned T3 as the start time, updates the Tank dwell record, and recalculates the new action sequence, namely the second action sequence S2.
[0178] Since a forced dwell was performed in step (10), a new dwell record was generated, and the priority order of the corresponding action and its subsequent actions was adjusted according to the forced dwell time to obtain the second action sequence S2.
[0179] (12) Check again whether a bubble has occurred. If so, jump to step (8) and repeat steps (8) to (12). Otherwise, it means that the dwell calculation is successful (i.e., the planning is successful). Then the start time of the new Jobi, i.e. the earliest entry time, is the planning time T3. Jump to step (19).
[0180] (13) Clear the dwell time of the safety slot, recalculate the action sequence, and roll back to the first action sequence S1 with the over-bubbling error.
[0181] (14) Roll back the action sequence, recalculate the action sequence, and roll back to the initial action sequence S0 with the over-bubbling error.
[0182] (15) Delay the earliest entry time of the new Jobi T3 = T3 + T 过泡 .
[0183] (16) Jump to step (3) with the earliest entry time T3 after the new Jobi update, and repeat steps (3) to (19).
[0184] (17) Determine the earliest entry time T3 of the new Job in this round and the earliest entry time T3 of the previous Job (i-1). (i-1) If the difference meets the accuracy requirements (accuracy requirements are set in advance), then proceed to step (19); otherwise, proceed to step (18).
[0185] (18) Delay the earliest entry time T3 of Jobi = half the difference between the original earliest entry time T3 (i.e. the earliest entry time T3 in step (4)) and the earliest entry time of Jobi calculated this time, and jump to step (3), and repeat steps (3) to (19).
[0186] For example, if the earliest entry time of the new Job i in this round of calculation is T3=T0, and the earliest entry time of Job i in this calculation is T3=T1 (T1>T0), then the earliest entry time of the Job i is delayed, and the delayed earliest entry time is T3=(T1-T0) / 2. Accordingly, the time for the next calculation is T0+T3.
[0187] (19) Determine whether all new tasks in the task list have been planned. If so, the planning ends; otherwise, jump to step (2) and repeat steps (2) to (19).
[0188] Example 3: See Figure 6 The steps for calculating the action sequence based on the entry time T3 of a successfully planned new Jobi specifically include:
[0189] (1) Traverse the new Jobs in the current Foup Stocker area and the Jobs that have been successfully planned in the process area (i.e., traverse the task list) and take out the Jobs in turn for calculation.
[0190] (2) Initialize the action list job_sort for this round of calculation, such as the first action sequence S1, the earliest entry time T3 for each Job, the earliest start time T1 for all actions (that is, the earliest available time of the robot arm), and the earliest available time Ti for all Tanks.
[0191] (3) Determine whether the Jobk to be calculated is a new Job. If so, calculate the time point T2 when the new Job starts from T3, passes through the transfer area from FoupStocker to Pusher, and regard the new Job as waiting for PTR to pick up the chip in Pusher. Otherwise, jump to step (4).
[0192] (4) Calculate the earliest available time Ti of the current process tank Tank based on the earliest available time Ti of the process tank where the current Jobk is currently located and the dwell time of the process tank. Preferably, the maximum value between the earliest available time Ti of the process tank where the current Jobk is currently located and the dwell time of the process tank is taken as the earliest available time Ti of the current process tank Tank.
[0193] (5) Determine whether a deadlock will occur based on the subsequent action sequence of the Jobk to be calculated. If so, jump to step (15); otherwise, jump to step (6).
[0194] In some embodiments, if a deadlock is detected, the current planned job will be excluded from the current internal calculation, and the next job will be calculated directly. The deadlocked job will be recalculated at a later time point to avoid deadlock.
[0195] (6) Determine whether the robot used by the Jobk to go to the next node Tank is a PTR. If yes, jump to step (7); otherwise, jump to step (9).
[0196] (7) Determine whether the PTR needs to wash hands in the EEWD sink based on the handwashing configuration. If so, proceed to step (8); otherwise, proceed to step (9).
[0197] (8) Calculate the earliest available time T4 after the PTR goes to the EEWD sink to wash his hands.
[0198] (9) Calculate the earliest available time T5 for the robot.
[0199] (10) Calculate the earliest time point T6 when the preparation actions required for the next node Tank process of the current Jobk are completed.
[0200] (11) Take the maximum value of T2, T3 and T6, or T2, T5 and T6 as the current earliest start time T7 of the Jobk to be calculated.
[0201] (12) Calculate the overbubbling time T of the current Jobk to be calculated, which moves to the next node Tank starting at T7. 过泡 =T7-T3- The allowed overbubbling time of Jobk in the current Tank.
[0202] (13) [T7, T 过泡 Add it to the first action sequence S1 as a candidate sorting list.
[0203] (14) Determine whether all Jobs have been traversed. If yes, proceed to step (15); otherwise, proceed to step (16).
[0204] (15) Traverse the next Job (k+1), jump to step (2), and repeat steps (2) to (15).
[0205] (16) Sort each action in the first action sequence S1 in ascending order based on T7, and the first action is the action with the highest priority.
[0206] (17) Determine whether overbubbling occurs when executing the highest priority action (e.g., the overbubbling time T of the highest priority action). 过泡 <0), if it appears, jump to step (18), otherwise jump to step (19).
[0207] (18) If over-bubbling occurs, record the information of the over-bubbling Jobm, the Tank information of the over-bubbling process tank, the time information, and throw an over-bubbling error to end the calculation.
[0208] When an over-bubbling error is thrown, the type of process tank that has over-bubbled will be determined by step (7) when planning the earliest entry time of the new Jobi, i.e., in the above embodiment 2.
[0209] (19) Execute the sequence of actions with the highest current priority.
[0210] That is, the action with the highest priority at the moment is checked in turn from the last action in the action sequence to determine whether the corresponding action has an overbubbling error. If an overbubbling error has occurred, the process jumps to step (20); otherwise, the process jumps to step (18).
[0211] (20) Determine whether all Jobs are planned to the last step of the Recipe. If so, the calculation ends. Otherwise, jump to step (1) and repeat steps (1) to (20).
[0212] Example 4: Based on the above-described cleaning equipment scheduling method, this invention also provides a cleaning equipment scheduling device based on safety tank dwelling. See [link to related document]. Figure 7 Specifically, the cleaning equipment scheduling device includes:
[0213] The planning module 100 is configured to perform path planning for multiple new tasks in the task list in sequence, and obtain the recipe information for each new task. The recipe information includes the earliest entry time T3 planned for the new task and the first action sequence S1, until all new tasks in the task list whose process paths to be planned are successfully planned.
[0214] The over-bubbling detection module 200 is configured to determine whether over-bubbling has occurred based on the first action sequence S1, and the type of process slot with over-bubbling error is a dangerous slot; and under the trigger of the scheduling module, determine whether over-bubbling has occurred based on the updated second action sequence S2, and when over-bubbling is determined to have occurred again, trigger the safety slot matching module 300 to search for a safety slot that meets the preset dwell conditions in reverse order starting from the current action where over-bubbling occurred; or, when it is determined that no over-bubbling has occurred based on the updated second action sequence S2, determine that the planning is successful, and set the earliest entry time T3 as the start time of the current new task, and trigger the planning module to plan the path for the next new task in the task list until all new tasks in the task list that are to be planned for the process path are successfully planned;
[0215] The safety tank matching module 300 is configured to, when the over-bubbling detection module 200 determines that the process tank with the over-bubbling error is a dangerous tank, traverse the first action sequence S1 in reverse order from the current action where the over-bubbling error occurred to find a safety tank that meets the preset dwell conditions; wherein, the preset dwell conditions include: the available dwell time of the safety tank corresponding to the over-bubbling task is greater than or equal to the over-bubbling time of the current action, and the start time when the material in the safety tank is moved to the next process tank is greater than the current recalculation time T0';
[0216] The dwelling condition configuration module 400 is configured to, when the safety slot matching module 300 finds a safety slot that meets the preset dwelling conditions, determine the forced dwelling time of the corresponding over-bubbling task in the safety slot based on the over-bubbling time of the over-bubbling dangerous slot, and update the priority of each action in the first action sequence S1 based on the forced dwelling time.
[0217] The scheduling module 500 is configured to, when the over-bubbling detection module 200 determines that the type of process tank where the over-bubbling error occurs is a safety tank, delay the earliest entry time T3 of the current new task based on the over-bubbling time, and update the priority of each action in the first action sequence S1 based on the delayed earliest entry time T3; or, when the safety tank matching module 300 does not find a safety tank that meets the preset dwell conditions, obtain the initialization equipment parameters and initialization action sequence S0 of the current new task, delay the earliest entry time T3 of the current new task in the initialization equipment parameters based on the over-bubbling time, and re-plan the path based on the delayed earliest entry time T3 and the initialization action sequence S0; wherein, the delayed earliest entry time T3 is the sum of the original earliest entry time T3 and the over-bubbling time.
[0218] In some embodiments, the planning module 100 specifically includes:
[0219] An initialization unit is configured to perform device initialization, obtaining initialization device parameters and an initialization action sequence S0; the device parameters include: current time T0, earliest available time of FTR T1, earliest entry time of the previous task successfully planned for the process path to be planned, initial entry time of the current new task T3', and dwell time T_r of all process slots calculated in the previous round; the initialization action sequence S0;
[0220] The planning unit is configured to plan the earliest entry time T3 for the current new task based on the device parameters. The earliest entry time T3 is the maximum value among T0, T1, T2, T3', and T_r. It then performs path planning for the current new task using the earliest entry time T3 to obtain the corresponding first action sequence S1. As mentioned earlier, T2 is calculated based on T3'.
[0221] In some embodiments, the scheduling module 500 is further configured to determine whether the difference between the earliest entry time T3 of the current new task and the earliest entry time obtained by the successful planning of the previous task is subject to a preset precision condition; if it is, the planning module is triggered to perform path planning for the next new task in the task list until all new tasks in the task list that are to be planned for the process path are successfully planned; if it is not, the initial entry time T3' of the current new task is re-determined based on the earliest entry time T3 and the binary search method.
[0222] 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.
[0223] 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.
[0224] 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 cleaning device dispatching method based on secure slot residency, characterized by, The method comprises the steps of: S101, obtaining recipe information previously planned for a current new task in a task list, and determining whether over-foaming occurs based on a first action sequence S1 in the recipe information, and a process tank in which over-foaming occurs is a dangerous tank, if over-foaming does not occur, executing step S102; if over-foaming occurs and the process tank in which over-foaming occurs is the dangerous tank, executing step S103, if over-foaming occurs and the process tank in which over-foaming occurs is a safe tank, executing step S105; S102, updating a state of the current new task to planning success, planning recipe information for a next new task in the task list, and repeatedly executing steps S101-S102 until all new tasks in the task list are successfully planned; S103, starting from a current action in which over-foaming occurs, traversing the first action sequence S1 in reverse order to find a safe tank meeting a preset residence condition, and when a safe tank meeting the preset residence condition is found, executing step S104, if a safe tank meeting the preset residence condition is not found, executing step S105; wherein the preset residence condition comprises that an available residence time of the safe tank corresponding to an over-foaming task is greater than or equal to over-foaming time of the current action, and a start time of moving material in the safe tank to a next process tank is greater than a current recalculation time T0'; S104, determining a forced residence time of a corresponding over-foaming task Jobm in the safe tank based on over-foaming time of the dangerous tank in which over-foaming occurs, and updating priority of an action corresponding to the safe tank and each action subsequent to the action in the first action sequence S1 based on the forced residence time, and executing step S106; S105, obtaining initialization equipment parameters and an initialization action sequence S0 of the current new task, delaying an initialization entry time T3' of the current new task in the initialization equipment parameters based on the over-foaming time to obtain an earliest entry time T3 of the current new task, and rearranging priorities of actions in the initialization action sequence S0 based on the earliest entry time T3, and executing step S102; S106, determining whether over-foaming occurs based on a second action sequence S2 obtained after updating, if over-foaming occurs, executing step S103, otherwise, determining that planning is successful, and taking the planned earliest entry time T3 as a start time of the current new task, and executing step S102.
2. The method of claim 1, wherein, The step of previously planning for a current new task in a task list comprises the steps of: S201, obtaining initialization equipment parameters and an initialization action sequence S0 through device initialization; the initialization equipment parameters comprise: a current time T0, an earliest available time T1 of a first mechanical arm, an earliest entry time of a previous new task planning success, an initial entry time T3' of the current new task, and residence record time T_r of all process tanks in a previous round of calculation; S202, planning an earliest entry time T3 for the current new task based on the initialization equipment parameters, the earliest entry time T3 being a maximum value in T0, T1, T2, T3', and T_r; wherein T2 is calculated according to the new task initialization entry time T3'. S203, path planning is performed on the current new task with the earliest entering time T3 and the initial action sequence S0 to obtain corresponding recipe information, the recipe information including a first action sequence S1 obtained by rearranging priorities of each action in the initial action sequence S0 based on the earliest entering time T3.
3. The method of claim 2, wherein, The delayed earliest entering time T3 in step S105 is a sum of the initial entering time T3' and the over-foaming time; And / or, the time constraint condition of the reverse sequence traversal is a current time T0.
4. The method of claim 2, wherein, Before step S102 is performed, the method further includes steps of: S301, judging whether a difference between the earliest entering time T3 of the current new task and an earliest entering time successfully planned for a previous task meets a preset precision condition; If yes, step S102 is performed; Otherwise, step S302 is performed; S302, determining an initial entering time T3' of the current new task based on the earliest entering time T3 and a bisection method, and performing step S202.
5. The method of claim 1, wherein, Step S101 specifically includes steps of: S1010, regarding all first tasks in a process area, all second tasks successfully planned in a transmission area and the current new task in the task list as to-be-calculated tasks, and calculating respective earliest starting times T7, and performing step S1011; S1011, performing ascending sequence sorting on each action in the first action sequence S1 according to the respective earliest starting times T7 of the current new task, the first task and the second task to obtain respective execution priorities of the actions, and performing step S1012; S1012, judging whether a corresponding action occurs over-foaming error from a first position to a last position of the sorting, and if the over-foaming error occurs, performing step S1013, and if the over-foaming error does not occur, performing step S102; S1013, obtaining task information of an over-foaming task, and performing step S103 or S105; the task information including information of a corresponding process tank in which the over-foaming occurs and a time when the over-foaming occurs.
6. The method of claim 5, wherein, Step S1010 specifically includes Step: S401, initializing recipe information of a current to-be-calculated task in the task list, the recipe information including a third action sequence S3, an earliest entering time T3 of the current to-be-calculated task, an earliest starting time of all actions in the third action sequence S3, and an earliest available time of all process tanks; S402, judging whether the current to-be-calculated task is a new task in the task list, if yes, performing step S403, and if not, performing step S404; S403, calculating a time point T2 when the new task starts from the earliest entering time T3, passes through the transmission area to the Pusher, and simultaneously, marking a state of the current new task as waiting to be taken away by a robot in a process tank; S404, determining an earliest available time Ti of a current process tank according to a maximum value of the earliest available time Ti of the current process tank and a residence record time T_r of the current process tank, and performing step S407; S407, determining whether the robot arm of the current task to be calculated to the next process tank is the second robot arm, if yes, executing step S408, otherwise, executing step S409; S408, judging whether the second robot arm needs to go to the EEWD tank to wash hands according to the hand washing configuration, if yes, executing step S410; otherwise, executing step S409; S409, calculating the earliest available time T5 of all robot arms, and executing step S412; S410, calculating the earliest available time T4 of the second robot arm after going to the EEWD tank to wash hands, and executing step S412; S411, calculating the earliest time point T6 of completing the preparation action of the current task to be calculated in the next process tank; S412, taking the maximum value of T2, T4 and T6, or T2, T5 and T6 as the current earliest start time T7 of the current task to be calculated.
7. The method of claim 6, wherein the method further comprises: Before step S407, further comprising steps: S405, judging whether there is a lock according to the subsequent path of the current task to be calculated, if yes, executing step S406, otherwise, executing step S407; S406, obtaining the third action sequence S3 of the next task to be calculated in the task list, and executing step S402.
8. A cleaning device dispatching apparatus based on secure slot residency, characterized by, Comprise: A planning module configured to sequentially plan paths for multiple new tasks in a task list, obtain recipe information of each new task, the recipe information comprising an earliest entering time T3 and a first action sequence S1 planned for the new task, until all new tasks in the task list to be planned for process paths are successfully planned; A bubble over detection module configured to judge whether a bubble over occurs based on the first action sequence S1, and the type of the process tank where the bubble over error occurs is a dangerous tank; And based on the updated second action sequence S2 triggered by the scheduling module, judging whether a bubble over occurs, and when the bubble over occurs again, triggering the safety tank matching module to again find a safety tank meeting a preset residence condition in reverse order from the current action where the bubble over occurs; or, when it is judged based on the updated second action sequence S2 that no bubble over occurs, determining that the planning is successful, taking the earliest entering time T3 as the start time of the current new task, and triggering the planning module to plan paths for the next new task in the task list, until all new tasks in the task list to be planned for process paths are successfully planned; A safety tank matching module configured to, when the bubble over detection module judges that the process tank where the bubble over error occurs is a dangerous tank, traverse the first action sequence S1 in reverse order from the current action where the bubble over error occurs to find a safety tank meeting a preset residence condition; wherein, the preset residence condition comprises: the available residence time of the safety tank corresponding to the bubble over task is greater than or equal to the bubble over time of the current action, and the start time of moving the material in the safety tank to the next process tank is greater than the current recalculation time T0'. The residence condition configuration module is configured to determine a forced residence time of a corresponding over-foaming task in the safe tank based on an over-foaming time of the over-foaming dangerous tank when the safe tank matching module finds a safe tank meeting preset residence conditions, and update priorities of actions in the first action sequence S1 based on the forced residence time. The scheduling module is configured to delay an earliest entering time T3 of the current new task based on the over-foaming time when the over-foaming detection module judges that a type of the process tank in which the over-foaming error occurs is a safe tank, and update priorities of actions in the first action sequence S1 based on the delayed earliest entering time T3; or, when the safe tank matching module does not find a safe tank meeting preset residence conditions, obtain current new task initialization equipment parameters and an initialization action sequence S0, delay an earliest entering time T3 of the current new task in the initialization equipment parameters based on the over-foaming time, and perform path planning again based on the delayed earliest entering time T3 and the initialization action sequence S0; wherein the delayed earliest entering time T3 is a sum of the earliest entering time T3 before delay and the over-foaming time.
9. The cleaning device dispatching apparatus based on the security slot residence according to claim 8, characterized in that, The planning module specifically includes: An initialization unit configured to perform equipment initialization to obtain initialization equipment parameters and an initialization action sequence S0; the equipment parameters include: a current time T0, an earliest available time T1 of a first robot, an earliest entering time of a last task planning success of a process path to be planned, an initial entering time T3' of the current new task, and residence record time T_r of all process tanks in a last round of calculation; and the initialization action sequence S0; A planning unit configured to plan the earliest entering time T3 for the current new task based on the equipment parameters, and the earliest entering time T3 is a maximum value among T0, T1, T2, T3', and T_r; and perform path planning for the current new task with the earliest entering time T3 to obtain a corresponding first action sequence S1.
10. The cleaning device dispatching apparatus based on the security slot residence according to claim 8, wherein, The scheduling module is further configured to judge whether a difference between the earliest entering time T3 of the current new task and an earliest entering time successfully planned by a last task meets preset precision conditions; if yes, trigger the planning module to perform path planning for a next new task in the task list until all new tasks of the process path to be planned in the task list are successfully planned; and if not, re-determine the initial entering time T3' of the current new task based on the earliest entering time T3 and a bisection method.
Citation Information
Patent Citations
Control methods, control devices, and wafer cleaning equipment for wafer cleaning equipment
CN111229679B
A process scheduling method and apparatus for wafer cleaning equipment
CN111923066B
Semiconductor cleaning equipment scheduling methods, systems, devices and storage media
CN114864456B
Chamber abnormity processing method and semiconductor process equipment
CN119387225A
Process task starting control method and semiconductor cleaning equipment
CN120821248A