A scheduling method and system for a semiconductor cleaning apparatus

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

Patent Information

Application Number
CN202610884983.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2026-06-18
Publication Date
2026-09-29
Estimated Expiration
2046-06-18

AI Technical Summary

Technical Problem

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

Benefits of technology

[0022]有益效果:本申请在调度规划阶段,预先为各个任务初始调度规划的动作序列S0,然后通过机械手从源模块到目标模块过程中所要经过的工艺槽与其他机械手经过干涉区内工艺槽集合之间的交集检测预判可能发生的潜在干涉,一旦发现潜在干涉,计算机械手的最早安全时间(即必要的等待时长),然后通过推迟机械手的传输开始时间来错开干涉,并基于该传输开始时间最终生成一个在任何时刻都不会有两个机械手同时进入干涉区中同一工艺槽的新动作序列,从而从根源上降低,甚至避免机械手之间发生干涉的风险。换句话说,本申请实际上提供的是一种“主动避免干涉”的机制。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122421708B_ABST
    Figure CN122421708B_ABST
Patent Text Reader

Abstract

The application relates to the technical field of semiconductors, and particularly discloses a scheduling method and system for a semiconductor cleaning device, wherein the scheduling method specifically comprises the following steps: S10, acquiring a source position of a current planning task and a next target process tank; S20, judging whether interference will occur to a mechanical hand during the process of carrying the current planning task from the source position to the next target process tank; if yes, calculating an earliest carrying safety time of a target mechanical hand according to an earliest movable time of other mechanical hands that cause the interference; otherwise, calculating the earliest carrying safety time of the target mechanical hand according to an action end time of the other mechanical hands; S50, calculating an earliest transmission time of the target mechanical hand for carrying the current planning task from the Src source position to the next target process tank according to the earliest carrying safety time; S60, traversing a next task to be planned until a task list is traversed completely; and S70, sorting all the tasks according to the earliest transmission time and generating an action sequence.
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 scheduling method and system for semiconductor cleaning equipment. 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 / unloading area and a process area. The loading / unloading area mainly comprises 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 their corresponding processes. The process area mainly consists of Process Transfer Robot 1 (Robot 1), Process Transfer Robot 2 (Robot 2), a process tank (Tank), a handwashing tank (EEWD), and a drying tank (Dry). Robot 1 and Robot 2 each have their own movable process area range. Robot 1 can cover Tank 1~Tank 6 and EEWD; Robot 2 can cover Tank 5~Tank 8, EEWD, Dry, Load, and Unload. Within the process area, the process areas Tank 5~8 and EEWD, which can be covered by both Robot 1 and Robot 2, are considered interference areas.

[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, Robot 2 retrieves the corresponding wafer cassette from the Load area and transports it to the appropriate Tank according to the Job's process route. After processing, the wafer cassette is moved to the Dry tank for drying. Once drying is complete, Robot 2 moves the empty wafer cassette from the Job to the Unload area for unloading. This completes the process flow for one Job.

[0005] 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 facilities or modify existing hardware facilities, such as setting up a corresponding running guide rail for each robotic arm. However, this approach not only greatly increases the cost, but also the modification cost is very high for some existing facilities.

[0006] 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 no interference between the robotic arms. 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 reconstructing the hardware and replanning the layout, it requires significant modifications to existing hardware, greatly increasing costs. Summary of the Invention

[0007] The purpose of this invention is to provide a scheduling method and system for semiconductor cleaning equipment, which partially solves or alleviates the above-mentioned shortcomings in the prior art. It can reduce the risk of interference between different robotic arms in the interference zone by rationally scheduling and planning the action sequence of each task without making significant changes to the existing hardware facilities or adding new facilities, thereby increasing production capacity.

[0008] 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 scheduling method for a semiconductor cleaning apparatus, comprising the steps of: S10, obtain the source location of the current planned task and its next target process tank according to the process path of the current planned task in the task list; S20, determine whether the target robot used to move the current planned task from the source position to the next target process tank will interfere with other robots during the handling process; if interference occurs, proceed to step S30; if no interference occurs, proceed to step S40. S30, calculate the earliest safe handling time of the target robot based on the earliest movable time of the other robot that interfered, and execute step S50; S40, calculate the earliest safe handling time of the target robot based on the end time of the actions of the other robot arms, and execute step S50; S50, calculate the earliest transfer time for the target robot to move the current planned task from the source location to the next target process tank based on the earliest safe handling time; S60, traverse the next task in the task list and execute steps S10-S50 until the task list has been traversed. S70, sort all tasks in the task list according to the earliest transmission time, and generate the action sequence of the target robot arm to handle materials according to the transmission time of each task in the sorted task list.

[0009] In some embodiments, step S20 specifically includes the following steps: S201, determine whether the target robotic arm needs to perform a handwashing process; if yes, proceed to step S202; otherwise, proceed to step S203. S202, determine whether the target robot arm interferes with other robots arm during the process of moving from its source position to the handwashing sink, from the handwashing sink to the source position of the current planned task, and then from the source position of the current planned task to the next target process tank. If interference occurs, execute step S40; if no interference occurs, execute step S30. S203, determine whether the target robot arm interferes with other robots arm during the process of moving from its source position to the source position of the current planned task and from the source position of the current planned task to the next target process tank. If interference occurs, execute step S30; if no interference occurs, execute step S40.

[0010] In some embodiments, step S202 specifically includes the following steps: S2021, Determine whether the other robotic arms are idle. If not idle, proceed to step S2022. If idle, proceed to step S2023. S2022, reverse the action sequence of the other robotic arms to obtain the fourth set of process slots in the interference zone through which the action sequence of the other robotic arms passes. Then, determine whether the first, second, and third intersections of the fourth set of process slots with the first set of process slots, the second set of process slots, and the third set of process slots corresponding to different path segments in the interference zone that the target robotic arm passes through from its source position to move the current planned task to the next target process slot are not empty. If all are empty, proceed to step S40. If any intersection is not empty, determine whether the current action of the other robotic arm is the last action and whether its target process slot belongs to any non-empty intersection. If so, determine that interference will occur and proceed to step S30. If it does not belong to any intersection, determine that interference will not occur and proceed to step S40. S2023, sequentially determine whether the source position of the other robotic arms belongs to the first process slot set, the second process slot set, and the third process slot set. If it belongs to any process slot set, determine that the target robotic arm will interfere with the other robotic arms, and execute step S30; if it does not belong to any process slot set, determine that no interference will occur, and execute step S40.

[0011] In some embodiments, step S203 specifically includes the following steps: S2031, determine whether the current working state of the other robotic arm is idle. If not idle, proceed to step S2032. If idle, proceed to step S2033. S2032, reverse the action sequence of the other robotic arms to obtain the fourth set of process slots in the interference zone through which the action sequence of the other robotic arms passes. Then, determine whether the first intersection and the second intersection of the fourth set of process slots with the first set of process slots and the second set of process slots corresponding to different path segments in the interference zone that the target robotic arm passes through from its source position to move the current planned task to the next target process slot are not empty. If the first intersection and the second intersection are both empty, proceed to step S40. If any intersection is not empty, determine whether the current action of the other robotic arm is the last action and whether its target process slot belongs to any non-empty intersection. If it is the last action and belongs to any non-empty intersection, it is determined that interference will occur, and step S30 is executed. Otherwise, it is determined that no interference will occur, and step S40 is executed. S2033, sequentially determine whether the source position of the other robotic arms belongs to the first process slot set and the second process slot set. If it belongs to either process slot set, it is determined that interference will occur, and step S30 is executed; if it does not belong to either process slot set, it is determined that there is no interference, and step S40 is executed.

[0012] In some embodiments, before executing step S20, the method further includes the step of: determining whether the next target process tank is occupied; if it is not occupied, determining that no lock-up error has occurred, and executing step S20; if it is occupied, determining that a lock-up error has occurred, and executing step S60.

[0013] In some embodiments, before performing step S10, the method further includes the step of: constraining the transmission range of the target robot and the other robots based on a designated process slot within the interference zone as a boundary line, such that all process slots located on one side of the designated process slot within the interference zone are assigned to the transmission range of the target robot, while all process slots located on the other side of the designated process slot are assigned to the transmission range of the other robots.

[0014] In some embodiments, the earliest safe handling time = waiting reference time + time required for the target robot to complete the corresponding action of the corresponding interference path segment; wherein, the waiting reference time includes at least the maximum value of one or more of the following: the earliest movable time of other robots, the end time of the current action of other robots, and the latest time of the task in the process area.

[0015] A second aspect of the present invention provides a scheduling system for a semiconductor cleaning apparatus, comprising: The data acquisition module is configured to obtain the source location of the currently planned task and its next target process tank based on the process path of the currently planned task in the task list; An interference identification module is configured to traverse the task list to determine whether the target robot used to move each planned task from its source location to the next target process tank will interfere with other robots during the handling process. The scheduling module is configured to calculate the earliest safe handling time of the target robot based on the earliest movable time of other robot arms that are interfering when the interference recognition module detects interference; or, when the interference recognition module detects no interference, calculate the earliest safe handling time of the target robot based on the action end time of the other robot arms. The calculation module is configured to calculate the earliest transfer time for the target robot to move the corresponding task from the corresponding source location to the corresponding next target process tank based on the earliest safe transfer time; The motion calculation module is configured to, when the interference recognition module has traversed the task list, sort all tasks in the task list according to the earliest transmission time of each planned task, and generate the motion sequence of the target robot arm handling materials according to the transmission time of each task in the sorted task list.

[0016] In some embodiments, the scheduling system for a semiconductor cleaning device further includes: A handwashing recognition module is configured to determine whether the target robotic arm needs to perform a handwashing process; accordingly, The interference recognition module is further configured to, when the handwashing recognition module determines that the target robotic arm needs to perform a handwashing process, determine whether the target robotic arm interferes with other robotic arms during the process of moving from its source position to the handwashing trough, from the handwashing trough to the source position of the current planned task, and then from the source position of the current planned task to the next target process trough; or, when the handwashing recognition module determines that the target robotic arm does not need to perform a handwashing process, determine whether the target robotic arm interferes with other robotic arms during the process of moving from its source position to the source position of the current planned task, and then from the source position of the current planned task to the next target process trough.

[0017] In some embodiments, the interference recognition module specifically includes: The robotic arm working status recognition unit is configured to determine whether the other robotic arms are currently idle; The intersection extraction unit is configured to, when the handwashing recognition module determines that the target robotic arm needs to perform a handwashing process, and the robotic arm working status recognition unit determines that the other robotic arms are not currently idle, reverse-order traverse the action sequences of the other robotic arms to obtain the fourth process slot set within the interference zone traversed by the action sequences of the other robotic arms; and extract the first intersection, second intersection, and third intersection between the fourth process slot set and the first process slot set, second process slot set, and third process slot set corresponding to different path segments within the interference zone traversed by the target robotic arm from its source position to moving the currently planned task to the next target process slot; and sequentially determine whether the first intersection, second intersection, and third intersection are empty; The interference recognition unit is configured to, when the robot arm working state recognition unit determines that the other robot arm is currently idle, sequentially determine whether the source position of the other robot arm belongs to the first process slot set, the second process slot set, or the third process slot set. If it belongs to any process slot set, interference is determined to occur; if it does not belong to any process slot set, interference is determined not to occur. Alternatively, when the intersection extraction unit determines that the first intersection, the second intersection, and the third intersection are all empty, interference is determined not to occur. Alternatively, when the intersection extraction unit determines that any intersection is not empty, it determines whether the current action of the other robot arm is the last action of the other robot arm and whether its target process slot belongs to any non-empty intersection. If the current action is the last action and its target process slot belongs to any non-empty intersection, interference with other robot arms is determined; otherwise, interference is determined not to occur.

[0018] In some embodiments, the intersection extraction unit is further configured to, when the handwashing recognition module determines that the target robotic arm does not need to perform the handwashing process, and the robotic arm working status recognition unit determines that the other robotic arms are not currently idle, reverse the action sequence of the other robotic arms to obtain the fourth process slot set passed through the interference region by the action sequence of the other robotic arms, and extract the first intersection and the second intersection between the fourth process slot set and the first process slot set and the second process slot set, and sequentially determine whether the first intersection and the second intersection are not empty; The interference recognition unit is further configured to, when the robot arm working state recognition unit determines that the other robot arm is currently idle, sequentially determine whether the source position of the other robot arm belongs to the first process slot set and the second process slot set. If the source position of the other robot arm belongs to either process slot set, interference is determined to occur; otherwise, interference is determined not to occur. Alternatively, when the intersection extraction unit determines that both the first and second intersections are empty, interference is determined not to occur. Or, when the intersection extraction unit determines that any intersection is not empty, it determines whether the current action of the other robot arm is the last action and whether its target process slot belongs to any non-empty intersection. If it is the last action and belongs to any non-empty intersection, interference is determined to occur; otherwise, interference is determined not to occur.

[0019] In some embodiments, the scheduling system of a semiconductor cleaning equipment further includes: a process tank status identification module, configured to determine whether the next target process tank is occupied; if occupied, triggering the interference identification module to determine whether the target robot used to move each planned task from its source position to the next target process tank will interfere with other robots during the handling process; if not occupied, triggering the interference identification module to traverse the next planned task in the task list until the task list is traversed.

[0020] In some embodiments, the data acquisition module is further configured to constrain the transmission range of the target robot and the other robots based on a designated process slot within the interference zone as a boundary line, such that all process slots located on one side of the designated process slot within the interference zone are assigned to the transmission range of the target robot, while all process slots located on the other side of the designated process slot are assigned to the transmission range of the other robots.

[0021] In some embodiments, the earliest safe handling time = waiting reference time + time required for the target robot to complete the corresponding action of the corresponding interference path segment; wherein, the waiting reference time includes at least the maximum value of one or more of the following: the earliest movable time of other robots, the end time of the current action of other robots, and the latest time of the task in the process area.

[0022] Beneficial Effects: In the scheduling and planning phase, this application pre-plans the initial action sequence S0 for each task. Then, by detecting the intersection between the process slots traversed by the robot arm from the source module to the target module and the set of process slots traversed by other robots in the interference zone, potential interference is predicted. Once a potential interference is detected, the earliest safe time (i.e., the necessary waiting time) for the robot arm is calculated. Then, the interference is avoided by delaying the start time of the robot arm's transmission. Based on this start time, a new action sequence is finally generated so that no two robots will simultaneously enter the same process slot in the interference zone at any time. This reduces or even avoids the risk of interference between robots at the source. In other words, this application actually provides a mechanism for "actively avoiding interference".

[0023] Furthermore, this application predicts potential interference based on the planned action sequence and the time window of the action sequence (e.g., the start time and end time of the action sequence), thereby quickly identifying all potential interferences. The maximum value among these is then taken as the earliest safe time for the robot arm, ensuring that the robot arm will not be blocked by any unknown interference after it begins its operation, thus guaranteeing production efficiency and, consequently, production capacity. Additionally, since interference avoidance is achieved by delaying the robot arm's start time, and process constraints (such as over-bubbling time) are incorporated into the calculation, a balance is found between the earliest safe time and the process window.

[0024] Furthermore, by constraining the transmission range of each robot within the interference zone (such as accessible process slots, for example, ... Figure 1 As shown, a specific process slot within the interference zone, excluding the handwashing trough, is designated as the robot handover point (i.e., one robot places material in the designated process slot, while another robot removes the material from it). Only one robot can access the process slots on one side of this designated process slot, and only another robot can access the process slots on the other side. This effectively prevents interference between the two robots at its source. By constraining the transmission range of each robot within the interference zone, the detection range of interference detection is reduced: it is reduced to a certain extent from the entire interference zone to primarily detect common slots (such as handwashing troughs, boundary lines, and other process slots accessible to multiple robots). For example, during reverse traversal, the focus is mainly on the action sequences of other robots involved in common slots, reducing the computational load during interference detection and thus improving detection efficiency. Attached Figure Description

[0025] 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.

[0026] 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 2A This is a flowchart of an embodiment of a scheduling method for a semiconductor cleaning device according to the present invention; Figure 2B This is a flowchart of an embodiment of step S20 in a scheduling method for a semiconductor cleaning device according to the present invention; Figure 3 This is a functional block diagram of an embodiment of the scheduling system of a semiconductor cleaning equipment according to the present invention. Detailed Implementation

[0027] 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.

[0028] 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.

[0029] 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.

[0030] 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.

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

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

[0033] 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.

[0034] 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.

[0035] The scheduling process of semiconductor cleaning equipment includes: adding new process tasks (jobs) to the job list, resulting in: all Jobs = [Job1, Job2, Job3, ...]. This new task is the task to be planned in this list, which may also contain other unplanned tasks. Each recalculation selects the currently planned task from the all Jobs list and all planned tasks for scheduling together. Specifically, due to the existence of interference zones, when the process path (route) of any task contains an interference zone, the robotic arm may interfere with the process flow of that task within the interference zone, meaning that two robotic arms may simultaneously exist in the same process tank within the interference zone. For example, when scheduling a flower basket cleaning equipment, a corresponding action sequence (Move) is generated based on the Route of the currently scheduled task. During the subsequent cleaning process, the robotic arm will complete the task's process flow according to this action sequence (Move). Generally, there are three main types of robot movements: (1) Prepare Move: robot moves without load; (2) Transfer Move: robot transports with load, including the entire action of taking material from the source tank, transporting with load, and placing the sheet in the destination tank; (3) Wash Move: robot washes its hands.

[0036] by Figure 1 For example, if robot1 is currently located in Tank1, but according to the planned process path, it needs to use robot1 to move the task from Tank2 to Tank3, two different action sequences will be generated depending on whether handwashing is required: I. No handwashing required: robot1 directly moves from Tank1 to Tank2, then moves the material from Tank2 to Tank3 and puts it in; II. Handwashing required: robot1 first moves from Tank1 to EEWD to wash its hands, then moves from EEWD to Tank2, and finally moves the material from Tank2 to Tank3 and puts it in. However, during this process, robot1 may interfere with robot2. Therefore, in order to reduce the risk of interference or even avoid interference, this application proposes a scheduling method and system for semiconductor cleaning equipment. It pre-plans the action sequence of each task and predicts each "potential interference" based on the action sequence. Once a "potential interference" is detected, the action time of the robot is adjusted according to all the predicted potential interferences, thereby obtaining the start time of the robot's Transfer Move and the start time of other actions. This generates a new action sequence, which enables the corresponding process to be completed according to the new action sequence during the actual cleaning process, greatly reducing the risk of interference.

[0037] The following detailed description is provided in conjunction with specific embodiments and accompanying drawings.

[0038] Parameter Explanation: S0, Action sequence of the Job in the process area; Move, Action sequence; Module, Module; EEWD, Handwashing trough; Route, Process path; Tank, Process tank; robot, Target robot; other_Robot, Other robots; The target robot and other robots can be collectively referred to as PTR; T0, Current time; T1, Initial entry time of the task; T2, Last successful entry time of the task; T4, Actual entry time of the task; over_soak_t, Over-soak time; over_span, Task change time; all_jobs, Task list; job_sort, Task sorting list; t1, Initial time; t2, End time of the robot performing the corresponding action; t3, Latest time of the task in the process area; t4, Time required for the robot to move from the source location to Src after handwashing; t5, Handwashing time; t6, Time for the robot to move from EEWD to Src; t7, Intermediate variable; t8, Earliest moveable time of the target robot; t_r, Earliest moveable time of other robots; t_d, Destination time. Tank preparation takes time; Dest Tank, the next target process tank; robot_safe_time, the earliest safe time for the robot to move; D1, the safe time for the robot to move to the Idle tank; q_error, the set of errors recorded when a lock-up error is detected; Src, the source position of the task; t_e, the end time of the process that the task needs to complete at the source position Src. k1, when the robot does not need to wash its hands, is the set of Tanks that the robot passes through in the interference zone from its source location to Src; or when the robot needs to wash its hands, is the set of Tanks that the robot passes through in the interference zone from its source location to EEWD. k2, when the robot does not need to wash its hands, is the set of Tanks in the interference zone that the robot passes through from Src to Dest Tank; when the robot needs to wash its hands, is the set of Tanks in the interference zone that the robot passes through from EEWD to Src. k3, the set of interference zones Tanks that the robot passes through from Src to Dest Tank when the robotic arm needs to wash its hands; o1, the fourth Tank set within the interference zone through which the action sequences of other robotic arms pass; r1, the first intersection between k1 and o1 when the robotic arm needs to wash its hands; r2, the second intersection between k2 and o1 when the robotic arm needs to wash its hands; r3, the third intersection between k3 and o1 when the robotic arm needs to wash its hands.

[0039] Example 1: See Figure 2A The above is a flowchart of an embodiment of a scheduling method for a semiconductor cleaning apparatus according to the present invention. Specifically, it includes the following steps: S10: Obtain the source location Src and its next target process tank Dest Tank of the currently planned task based on the process path route of the currently planned task in the task list all_jobs.

[0040] In some embodiments, the system typically pre-schedules the entry time of each new task into the process area. Therefore, the action sequence of all tasks can be generated based on the entry time of the tasks. Specifically, before generating the action sequence of all tasks, initialization is performed to obtain: a task list all_jobs, a task sorting list job_sort, an initial time t1, a record D1 of the robot moving to the safety slot (i.e., the Idle slot in the non-interference area), and an error set q_error.

[0041] In some embodiments, when the system schedules and plans, it traverses the task list all_jobs to obtain the currently planned task in the task list and its source location Src, process path and other task information, thereby obtaining the process end time t_e corresponding to the source location Src, and the next target process tank Dest Tank (i.e. the target module).

[0042] S20, determine whether the target robot used to move the current planned task from the source position Src to the next target process tank will interfere with other robots during the handling process; if interference occurs, execute step S30; if no interference occurs, execute step S40.

[0043] In some embodiments, it is first determined whether the next target process tank is occupied; if it is occupied, it indicates that a lock-up error may occur; if it is not occupied, it indicates that a lock-up error may not occur. Therefore, it is necessary to first determine whether the next target process tank is occupied. If it is not occupied, it is then determined whether interference will occur, i.e., step S20 is executed; if it is occupied, the next task is traversed, i.e., step S60 is executed.

[0044] Furthermore, in some embodiments, the process tanks and action sequences that the target robot needs to pass through for handwashing will be different from those that it does not need to handwashing. Therefore, it is necessary to first determine whether the target robot needs to handwash. Accordingly, if handwashing is required, it is necessary to determine whether it will interfere with another robot (i.e., other robots) in the interference zone during its journey from the source position (i.e., the current position of the target robot) to the handwashing tank EEWD, then from EEWD to the Src of the current planned task, and then from the Src to the next target process tank. If handwashing is not required, it is necessary to determine whether it will interfere with another robot (i.e., other robots) in the interference zone during its journey from the source position (i.e., the current position of the target robot) to the next target process tank (including the robot's journey from its source position to the Src of the current planned task, and then from the Src to the next target process tank).

[0045] Specifically, the handwashing matrix can be used to determine whether the target robotic arm needs to handwash itself at the EEWD handwashing sink before moving from the source location Src of the current planned task to the next target process tank. See also... Figure 2B Step S20 specifically includes the following steps: S201, determine whether the target robotic arm needs to perform a handwashing process. If yes, proceed to step S202; otherwise, proceed to step S203.

[0046] S202, determine whether the target robot interferes with other robots during its movement from its source position to the handwashing sink EEWD, from the handwashing sink EEWD to the source position Src of the current planned task, and from Src to the next target process tank Dest Tank. If interference occurs, proceed to step S30; if no interference occurs, proceed to step S40. That is, when the handwashing process needs to be performed, determine the three path segments of the target robot from its source position to the process of moving the current planned task to the next target process tank: (1) the path segment from the source position to the handwashing sink EEWD; (2) the path segment from the handwashing sink EEWD to the source position Src of the current planned task; (3) the path segment from Src to the next target process tank Dest Tank. Determine whether any of these three path segments will interfere with other robots.

[0047] S203, determine whether the target robot arm interferes with other robots during the process of moving from its source position to the source position Src of the current planned task and from Src to the next target process tank (i.e., the process of the target robot arm moving from its source position to the process of moving the current planned task to the next target process tank). If interference occurs, execute step S40; if no interference occurs, execute step S30. That is to say, when the handwashing process is not required, determine the two path segments in the process of the target robot arm moving from its source position to the process of moving the current planned task to the next target process tank: (1) the path segment of the target robot arm moving from its source position to the source position Src of the current planned task; (2) the path segment of the target robot arm moving from Src to the next target process tank Dest Tank. Determine whether either of these two path segments will interfere with other robots.

[0048] In some embodiments, since the source position of the target robot may be in other process tanks, that is, the target robot may be performing other processes, for example, neither in the source position Src of the current planned task nor in the washing tank EEWD, it needs to move from the source position to the handwashing tank EEWD to complete handwashing, then move from the handwashing tank EEWD to the current task position Src, and then move to the next target process tank Dest Tank. In these three path segments, the target robot is very likely to interfere with other robots other_robot in the interference zone.

[0049] Typically, other robotic arms will eventually stop and stay in one position, such as a process slot, for a long time. This may cause unavoidable interference with the inevitable path of another robotic arm. Therefore, in this embodiment, the interference is detected by whether other robotic arms are about to stop (e.g., the current action is the last action, and the action will stay in the corresponding process slot for a long time after it ends) on the corresponding process slot in the path of the target robotic arm to perform the current planned task, or whether other robotic arms have already occupied a process slot in the path (e.g., other robotic arms are currently idle, but their current position, that is, their source position, belongs to one of the process slots that the target robotic arm will pass through when passing through the interference zone).

[0050] Specifically, step S202 includes the following steps: S2021, determine whether the other robotic arms are currently idle. If not idle, proceed to step S2022; if idle, proceed to step S2023.

[0051] In some embodiments, the working state of the robotic arm includes two types: one is performing a certain action, i.e., not idle, and the other is idle, i.e., not performing any action. If it is determined that the current working state of another robotic arm is not idle, i.e., another robotic arm is performing a corresponding action, step S2022 is executed; if no action is performed, i.e., idle, step S2023 is executed.

[0052] S2022, reverse the action sequence of the other robotic arms to obtain the fourth set of process slots o1 in the interference zone passed through in the action sequence, and extract the first intersection r1, the second intersection r2, and the third intersection r3 of the fourth set of process slots o1 with the first set of process slots k1, the second set of process slots k2, and the third set of process slots k3 respectively, and determine whether the first, second, and third intersections r1, r2, and r3 are not empty. If all of them are empty, proceed to step S40; if any intersection is not empty, determine whether the current action of the other robotic arm is the last action and whether its target process slot belongs to any non-empty intersection. If it is the last action and belongs to any non-empty intersection, it is determined that interference will occur, and step S30 is executed; otherwise, it is determined that no interference will occur, and step S40 is executed.

[0053] In some embodiments, the first set of process slots k1 includes at least one process slot Tank within the interference zone traversed by the target robot from its source position to the handwashing sink EEWD; the second set of process slots k2 includes at least one process slot Tank within the interference zone traversed by the target robot from the handwashing sink EEWD to the source position Src; and the third set of process slots k3 includes at least one process slot Tank within the interference zone traversed by the target robot from the source position Src to the next target process slot.

[0054] In some embodiments, starting from the current index, the action sequences of other robotic arms are traversed in reverse order. Each action in the action sequence is extracted sequentially to obtain the process slots passed through the interference zone by each action, until the start time of a certain action is less than t1 (i.e., the initial time). That is, starting from the action corresponding to the current time, the action sequences of other robotic arms are traversed in reverse order to obtain the fourth process slot set o1 passed through the interference zone by each action before the current time in the action sequence. Then, for the fourth process slot set o1 obtained by reverse traversal, the first intersection r1 between the fourth process slot set o1 and the first process slot set, the second intersection r2 between the fourth process slot set o1 and the second process slot set, and the third intersection r3 between the fourth process slot set o1 and the third process slot set are obtained respectively. Further, at this time, the earliest safe handling time of the target robotic arm is set to robot_safe_time = initial time t1.

[0055] In this embodiment, by obtaining the three intersections of each action of other robotic arms, it is possible to determine whether the target robotic arm will potentially interfere with other robotic arms during its movement from the source position to the handwashing sink EEWD, from EEWD to Src, and then from Src to the next target process tank. For example, if any intersection is not empty, interference may occur, and the earliest movable time of the historical action can be obtained. When all historical actions in the action sequence that may interfere with the current action of the target robotic arm are found, the earliest movable time corresponding to multiple historical actions can be obtained. Based on all the earliest movable times, the earliest safe time for handling the target robotic arm is recalculated (that is, a later safe time is needed, such as after the conflicting robotic arm leaves the interference zone), thereby ensuring that the target robotic arm avoids almost all interference. If all intersections are empty, it means that interference may not occur, and the target robotic arm can immediately act as planned. The earliest safe time for handling is set to the initial time t1. Specifically, since the first, second, and third intersections are judged sequentially to determine whether they are empty, the statement that any intersection is not empty actually means: the first intersection is not empty, or the first intersection is empty but the second intersection is not empty, or the first and second intersections are empty but the third intersection is not empty.

[0056] S2023, sequentially determine whether the source position of the other robotic arms belongs to the first process slot set k1, the second process slot set k2, and the third process slot set k3. If it belongs to the first process slot set k1, the second process slot set k2, or the third process slot set k3, it is determined that interference will occur, and step S30 is executed; if the source position of the other robotic arms does not belong to the first process slot set k1, the second process slot set k2, or the third process slot set k3, that is, it does not belong to any process slot set, it is determined that interference will not occur, and step S40 is executed.

[0057] In some embodiments, it is first determined whether the source position of other robotic arms belongs to (or exists in) the first process slot set k1. If it does not belong to the first process slot set k1, it is then determined whether it belongs to the second process slot set k2. If it does not belong to the second process slot set k2, it is then determined whether it belongs to the third process slot set k3. That is, if it belongs to any of the first, second, or third process slot sets, it indicates that the target robotic arm may interfere with the other robotic arm (specifically, if it belongs to the first process slot set k1, it is determined that the target robotic arm will interfere with other robotic arms during its unloaded journey to EEWD; if it belongs to the second process slot set k2, it is determined that the target robotic arm will interfere with other robotic arms during its journey from EEWD to Src; if it belongs to the third process slot set k3, it is determined that the target robotic arm will interfere with other robotic arms during its journey from Src to the next target process slot Dest Tank). If it does not belong to any of the first, second, or third process slot sets, it indicates that no interference will occur. That is, the target robotic arm will move from EEWD to Src, and then from Src to Dest. During the tanking process, there will be no interference with other robotic arms.

[0058] In some embodiments, the step of determining whether the first, second, and third intersections r1, r2, and r3 are not empty in step S2022 specifically includes: S20221, Determine whether the first intersection r1 is not empty. If it is not empty, proceed to step S20222A; if it is empty, proceed to step S20222B. S20222A, determine whether the current action of the other robot is the last action in the action sequence of the other robot, and whether the target process tank of the last action belongs to the first intersection r1; if so, determine that the other robot will interfere with the target robot during the process of emptying to the handwashing tank EEWD, and execute step S30; otherwise, determine that the target robot will not interfere during the process of emptying to the handwashing tank EEWD, and execute step S40; S20222B, Determine if the second intersection r2 is not empty. If it is not empty, proceed to step S20223A; if it is empty, proceed to step S20223B. S20223A: Starting from the current index, traverse the action sequences of the other robotic arms in reverse order, and determine whether the set of process slots traversed by the action sequence intersects with the second set of process slots k2. If there is an intersection, set t7 = r_move end time and execute step S20225A. Otherwise, set t7 = t3 and execute step S20225A.

[0059] In some embodiments, starting from the current index, each action r_move in the action sequence of other robots is traversed in reverse order until the start time of an action r_move is less than t1. That is, starting from the last action in the action sequence of other robots, the action sequence is traversed in reverse order until the first action in that action sequence is reached. This yields the set of process slots traversed by each action, i.e., the fourth set of process slots. Then, it is determined whether the process slots traversed by each action intersect with the first set of process slots k1. If there is an intersection, it indicates that interference may have occurred. In other words, traversing the action sequence of other robots in reverse order from the current action is to find all actions that may interfere with the current action of the target robot in time, and to determine whether interference occurs one by one.

[0060] S20223B, determine whether the third intersection r3 is not empty. If it is not empty, proceed to step S20224; if it is empty, proceed to step S40.

[0061] In some embodiments, as described above, when the target robot arm obtains different path segments within the interference zone traversed during its journey from its source position to the next target process slot of the current planned task (i.e., the path segment from the target robot arm's source position to the handwashing sink EEWD, the path segment from the handwashing sink EEWD to the source position Src, and the path segment from the source position Src to the next target process slot), the first process slot set k1, the second process slot set k2, and the third process slot set k3 corresponding to these different path segments are obtained, along with the fourth process slot set k3 of other robots. When considering the three intersections r1, r2, and r3 between the process slot sets, if all three intersections are empty, it indicates that interference may not occur, and therefore, step S40 is executed. If any intersection is not empty, the target robot path segment corresponding to that intersection may interfere. Therefore, it is necessary to further determine whether the current action of other robots is the last action and whether its target process slot belongs to any non-empty intersection. If it is the last action and belongs to any non-empty intersection, it indicates that interference will occur, and step S30 is executed. Otherwise, it is determined that no interference will occur, and step S40 is executed.

[0062] S20224, Starting from the current index, traverse the action sequences of the other robotic arms in reverse order, and determine whether the set of process slots (i.e., the fourth set of process slots) traversed by the action sequence intersects with the third set of process slots k3. If there is an intersection, the intermediate variable t7 = r_move end time, and execute step S20225B; otherwise, t7 = t3, and execute step S20225B.

[0063] In some embodiments, the action sequences of other robots are traversed in reverse order starting from the current index until the start time of r_move in the action sequence is less than t1; that is, the action sequence is traversed in reverse order starting from the current action in the action sequence to obtain the set of process slots passed by each action in the action sequence, so as to find all actions that may interfere with the current action of the target robot in time, and determine whether they interfere one by one.

[0064] S20225A, determine whether the current action of the other robot is the last action in the action sequence of the other robot, and whether the target process tank of the last action belongs to the second intersection r2; if so, determine that the last action will interfere with the target robot from EEWD to Src, and execute step S30; otherwise, determine that there will be no interference in the process of the target robot from EEWD to Src, and execute step S40.

[0065] S20225B, determine whether the current action of the other robot is the last action in the action sequence of the other robot, and whether the target process tank of the last action belongs to the third intersection r3; if so, determine that the last action will interfere with the target robot from Src to Dest Tank, and execute step S30; otherwise, determine that there is no interference, and execute step S40.

[0066] In some embodiments, step S203 specifically includes the following steps: S2031, determine whether the other robotic arms are currently idle. If not idle, proceed to step S2032; if idle, proceed to step S2033.

[0067] S2032, reverse the action sequences of the other robotic arms to obtain the fourth process slot set o1 that the action sequence passes through the process slots in the interference zone, and sequentially determine whether the fourth process slot set o1 has an intersection with the first process slot set k1 and the second process slot set k2 (that is, extract the first intersection r1 and the second intersection r2 between the fourth process slot set o1 and the first process slot set k1 and the second process slot set k2 respectively, and sequentially determine whether the first intersection r1 and the second intersection r2 are empty). If the fourth process slot set o1 has no intersection with any of the first process slot sets k1 and the second process slot set k2 (or, in other words, the first intersection r1 and the second intersection r2 are both empty), it indicates that no interference will occur, and step S40 is executed. If the fourth process slot set o1 has an intersection with any of the first process slot sets k1 and the second process slot set k2 (i.e., if any intersection is not empty, for example, the first intersection r1 is not empty, or the first intersection r1 is empty, but the second intersection r2 is not empty), it indicates that interference may occur. Therefore, it is further determined whether the current action of other robotic arms is the last action and whether its target process slot belongs to any non-empty intersection. If it is the last action and belongs to any non-empty intersection, it is determined that interference will occur, and step S30 is executed. Otherwise, it is determined that no interference will occur, and step S40 is executed.

[0068] S2033, sequentially determine whether the source position of the other robotic arms belongs to the first process slot set k1 and the second process slot set k2. If it belongs to either process slot set, it is determined that interference will occur; otherwise, it is determined that interference will not occur.

[0069] Specifically, if the source position of other robots belongs to the first process slot set k1, it is determined that the target robot will interfere with other robots (other_robot) during the process from EEWD to EEWD, and step S30 is executed (e.g., subsequent step S301); if it belongs to the second process slot set k2, it is determined that the target robot will interfere with other robots (other_robot) during the process from EEWD to the current task position Src, and step S30 is executed (e.g., subsequent step S302). If it does not belong to the first process slot set k1 or the second process slot set k2, it is determined that the target robot will not interfere with other robots during the process from Src to the next target process slot, and step S40 is executed.

[0070] In some embodiments, the step S2032, which sequentially determines whether the first intersection r1 and the second intersection r2 are empty, specifically includes: S20321, determine whether there is an intersection between the fourth process tank set o1 and the first process tank set k1 (i.e., determine whether the first intersection r1 is empty). If there is no intersection (or the first intersection r1 is empty), proceed to step S20322; if the fourth process tank set o1 and the first process tank set k1 have an intersection (i.e., the first intersection r1 is not empty), proceed to step S20323A. S20322, determine whether there is an intersection between the fourth process tank set o1 and the second process tank set k2 (i.e., determine whether the second intersection r2 is empty). If there is an intersection with the second process tank set k2 (i.e., the first intersection r1 is empty, but the second intersection r2 is not empty), proceed to step S20323B; if there is no intersection between the fourth process tank set o1 and the second process tank set k2 (i.e., both the first intersection r1 and the second intersection r2 are empty), it means that the target robot will not interfere with another robot (i.e., other robot) in the interference zone, proceed to step S40.

[0071] S20323A, determine whether the current action of the other robot is the last action in the action sequence of the other robot, and whether the target process slot of the last action belongs to the intersection (i.e., the first intersection r1) between the fourth process slot set o1 and the first process slot set k1. If so, determine that the last action will interfere with the target robot during its unloaded journey to Src in the interference zone, and execute step S30; otherwise, determine that the target robot will not interfere with the target robot during its unloaded journey to Src in the interference zone, and execute step S40.

[0072] S20323B, starting from the current index, traverse the action sequences of the other robotic arms in reverse order until a preset cutoff condition is reached, to determine whether there is an intersection between the set of process slots (i.e., the fourth set of process slots) traversed by the current action that satisfies the cutoff condition and the second set of process slots k2. The preset cutoff condition is that the start time of the current action is less than the preset initial time t1. If so, the traversal ends, and the earliest movable time t8 of the target robotic arm is set to the end time of r_move. Execute step S20324. Otherwise, set the earliest movable time t8 of the target robotic arm to t3 and execute step S20324. S20324, determine whether the current action of the other robot is the last action in the action sequence of the other robot, and whether the target process tank of the last action belongs to the intersection (i.e., the second intersection r2) between the fourth process tank set o1 and the second process tank set k2; if so, determine that the last action will interfere with the target robot from Src to the target process tank Dest Tank, and execute step S30; otherwise, determine that the target robot will not interfere with the target robot from Src to the target process tank Dest Tank, and execute step S40.

[0073] In some embodiments, if the current action is the last action in the action sequence of other robotic arms, it means that after the other robotic arms complete the current action, they will stay at the target Tank position (e.g., waiting for the next instruction or ending the task). This will occupy the Tank for a long time, so interference is very likely to occur. Therefore, it is necessary to record the D1 mapping, and in addition to considering the move end time of the action, it is also necessary to introduce the earliest movable time t_r of other robotic arms (see the detailed description of step S40 later).

[0074] If the current action is not the last action in the action sequence of other robotic arms, it means that the other robotic arms are just passing through the target Tank and will leave immediately afterward. Therefore, there may be no interference. We only need to wait for the action to end (i.e., the other robotic arms leave the position). In other words, we can adjust the start time of the target robotic arm according to the move end time of the action, without considering the earliest movable time t_r of other robotic arms, and without recording D1 (see the detailed description of step S40 later).

[0075] Therefore, regardless of whether the target robot needs to perform a handwashing operation, if other robots are not idle, their action sequences are traversed in reverse order to determine whether their current action is the last action and whether their corresponding target process slot belongs to any of the aforementioned intersections. If the current action is the last action and its target process slot belongs to any of the aforementioned intersections, interference is determined to occur; otherwise, interference is determined not to occur. If other robots are idle, their current position, i.e., their source position, is directly determined to be within any of the aforementioned process slot sets of the target robot. If they are, interference is determined; otherwise, interference is determined not to occur. In other words, whether other robots are about to stop at the path intersection slot of the target robot (not idle and the last action), or whether they have already occupied the path intersection slot (idle), is used as the benchmark for interference detection.

[0076] S30, calculate the earliest safe time for the target robot to handle the machine based on the earliest movable time t_r of the other robot that interfered, and then proceed to step S50.

[0077] In some embodiments, step S30 specifically includes the following steps: S301A, when it is determined in step S2023 that the target robot will interfere with other robots during its unloaded journey to EEWD, the earliest safe time for the target robot to handle the load is calculated as robot_safe_time = max(t_r, t3) + t4, based on the earliest movable time t_r of the other robots. At this time, D1[(job, dest)] = t_r is recorded, which records "the earliest movable time of other robots on a target process tank for the current planned task". This allows the target robot to query the t_r stored in D1 during subsequent scheduling when it needs to access the target process tank, to determine whether waiting is necessary and how to adjust the start time or path of the target robot to avoid interference. In addition, since a handwashing process needs to be performed, t4 here = robot unloaded journey to EEWD + t5 (robot handwashing time) + t6 (robot journey from EEWD to Src).

[0078] In step S301B, when it is determined in step S2033 that the target robot will interfere with other robots during the process of moving from the unloaded robot to Src, the earliest safe time for the target robot to move is calculated based on the earliest movable time t_r of the other robots: robot_safe_time = max(t_r, t3) + time for the robot to move from the source position to Src when unloaded, and D1[(job, dest)] = t_r.

[0079] S302A, when it is determined in step S2023 that the target robot will interfere with other robots (other_robot) during the process of moving from EEWD to Src, the earliest safe time for handling the target robot is calculated based on the earliest movable time t_r of the other robots: robot_safe_time = max(t1, t_r, t3+t5) + t6 (t6 is the time for the target robot to move from EEWD to Src); D1[(job, dest)] = t_r.

[0080] S302B, when it is determined in step S2033 that the target robot interferes with other robots (other_robot) during its journey from src to Dest Tank, the earliest safe transport time for the target robot (i.e., the robot) is calculated as robot_safe_time = max(t_r, t3) + t4, based on the earliest movable time t_r of the other robots. Since handwashing is not required, t4 here equals the time it takes for the robot to travel unloaded to src.

[0081] S303, when it is determined in step S2023 that the target robot will interfere with other robots during the process of moving from the source position Src of the current planned task to the next target process tank, the earliest safe time for the target robot is calculated based on the earliest movable time t_r of the other robots: robot_safe_time=max(t1, t_r, t3)+the transportation time from Src to DestTank; D1[(job, dest)]=t_r.

[0082] S304, when it is determined in step S20222A that interference will occur during the process of the target robot arm moving unloaded to the handwashing sink EEWD, the earliest safe time for handling the target robot arm is calculated based on the earliest movable time t_r of other robots: robot_safe_time = max(t_r, move end time); D1[(job, dest)] = t_r.

[0083] S305, when it is determined in step S20223A that the target robot arm will interfere with other robots during its movement from EEWD to Src, the earliest safe handling time of the target robot arm is calculated based on the earliest movable time t_r of the other robots: robot_safe_time = max(t1, t_r, move end time, t7 + t5) + t6; D1[(job, dest)] = t_r. Here, t7 is an intermediate variable representing the end time of the action sequence of the other robots that may cause potential interference.

[0084] S306, when it is determined in step S20223B that the target robot will interfere with other robots during the process from Src to Dest Tank, the earliest safe time for the target robot to move is calculated based on the earliest movable time t_r of the other robots: robot_safe_time = max(t1, t_r, move end time, t7) + time from Src to Dest Tank; D1[(job, dest)] = t_r.

[0085] Therefore, when the target robot interferes with other robots, the earliest time when the target robot can safely execute the current planned task is calculated by adding the earliest time when the other robots release conflicting resources (i.e., the earliest movable time) to the time required for the target robot to complete its own action. Specifically, the earliest safe handling time of the target robot = waiting reference time + the time required for the target robot to fully respond to the interference path segment (such as the path segment from the target robot's source position to the handwashing sink, or the path segment from the handwashing sink to the source position of the current planned task, or the path segment from the source position of the target robot to the source position of the current planned task, or the path segment from the source position of the current planned task to the next target process tank). The waiting reference time includes at least the maximum value of one or more of the following: the earliest movable time t_r of other robots, the end time of the current action of other robots, and the latest time t3 of the process area task.

[0086] In addition, by recording the earliest movable time of other robotic arms, subsequent scheduling calculations can be made easier, avoiding duplicate calculations.

[0087] S40, calculate the earliest safe handling time of the target robot based on the end time of the actions of the other robot arms, and execute step S50.

[0088] In some embodiments, step S40 specifically includes the following steps: S401, when it is determined in step S20221 that the first, second, and third intersections are all empty, or when it is determined in step S2032 that the fourth process tank set o1 has no intersection with the first and second process tank sets (i.e., the first intersection r1 and the second intersection r2 are both empty), return the earliest safe handling time robot_safe_time, D1 of the target robot.

[0089] S402, when it is determined in step S20222A that there is no interference, the earliest safe handling time of the target robot is robot_safe_time = max(t3, move end time) + t4. In this paper, the move end time refers to the end time of the current action sequence of other robots.

[0090] S403, when it is determined in step S20223A that there is no interference, the earliest safe time for the target robot to handle is robot_safe_time = max(t1, move end time, t7+t5)+t6 (i.e., the time from EEWD to Src when it is unloaded).

[0091] S404, when it is determined in step S20223B that there is no interference, the earliest safe time for the target robot to handle is robot_safe_time = max(t1, move end time, t7+t4).

[0092] S405, when it is determined in step S2033 that there is no interference, the earliest safe handling time of the target robot is robot_safe_time = t3 + the time it takes for the target robot to move unloaded to Src.

[0093] S406, when it is determined in step S20323A that there is no interference, the earliest safe time for the target robot to move is robot_safe_time = max(t3, move end time) + the time it takes for the target robot to move from the source position to Src without load.

[0094] S407, when it is determined in step S20324 that there is no interference, the earliest safe time for the target robot to move is robot_safe_time = max(t3, t8 + time for the target robot to move from the source position to Src without load, move end time).

[0095] Therefore, when the target robot arm will not interfere with other robot arms, the earliest safe handling time is calculated based on the completion time of the other robot arm's actions. Specifically, the earliest safe handling time for the target robot arm = waiting reference time + time required for the target robot arm to complete the corresponding action of the interference path segment (such as the path segment from the target robot arm's source position to the handwashing sink, or the path segment from the handwashing sink to the source position of the current planned task, or the path segment from the source position of the target robot arm to the source position of the current planned task, or the path segment from the source position of the current planned task to the next target process tank). The waiting reference time includes at least the maximum value of one or more of the following: the end time of the current action of other robotic arms, the latest time t3 of the task in the process area, the initial time, etc.

[0096] In addition, by recording the earliest movable time of other robotic arms, subsequent scheduling calculations can be made easier, avoiding duplicate calculations.

[0097] S50, calculate the earliest transfer time for the target robot to move the currently planned task from the current task location to the next target process tank based on the earliest safe handling time.

[0098] In some embodiments, the earliest transfer time from the Src loaded to the Dest Tank by the robotic arm is: transfer = max(robot_safe_time, t_d); where t_d is the time required to prepare the Dest Tank.

[0099] In some embodiments, after calculating the earliest transfer time, [transfer, over_soak_t, Job] needs to be added to the job_sort list, and then the next task to be scheduled is iterated. Here, over_soak_t is the over-bubbling time, and over_soak_t = transfer - t_e - Src allowed over-bubbling time.

[0100] S60, traverse the next task to be planned in the task list, and execute steps S10-S50 until the task list has been traversed.

[0101] S70, sort all tasks in the task list according to the earliest transmission time, and generate the action sequence of the target robot arm to handle materials according to the transmission time of each task in the sorted task list.

[0102] In some embodiments, step S70 specifically includes the following steps: S701, Check if job_sort is empty. If it is, add the deadlock error to the error set q_error. If it is not empty, jump to step S702. S702, sort all tasks in the task list according to the earliest transmission time, then take out the first item job_sort[0], generate all actions of the robot arm to handle materials according to the transfer information of job_sort[0], and obtain the corresponding action sequence; S703, determine whether the values ​​of Src and Dest Tank of job_sort[2] in D1 are equal to -1 (or other preset thresholds). If yes, proceed to step S704; if no, generate the Move action of other robot other_robot being idled in the Idle slot based on the value. S704, let the over-soak time over_soak_t = job[1]; S705, determine whether the Dest Tank of this Job is unloaded. If yes, remove the Job from all_jobs; otherwise, proceed to step S706. S706, determine whether all_jobs is empty or over_soat_t is greater than 0. If yes, jump to step S707; otherwise, re-initialize. S707 returns the over-bubbling time over_soat_t and the error set q_error, marking the end of the generation of action sequences for all tasks.

[0103] In other embodiments, the entry time of each task in the scheduling task list is first determined, and then the action sequence for each task is calculated and generated based on its entry time. Specifically: Initialize system parameters: current time T0, and use it as the initial entry time T1 for the new task, i.e., T1=T0, the last successful entry time of the new task T2=∞; the latest time t3 of the process area, over_soak_t=0, the job change time over_span equals 0, and the action sequence S0 of the job already in the process area. Then, obtain the actual entry time of the new task, generate the action sequence S1 of the new task based on the actual entry time of the new task, and obtain the overbubbling time; The system checks if the overspan time is 0. If it is not 0, it indicates that the action sequence S1 calculated based on the currently updated actual entry time T4 has overspanned. Therefore, it needs to roll back to the initial action sequence S1, replan, and add the overspan time to the time offset. Then, it recalculates the actual entry time T4 based on the new time offset over_span to attempt scheduling again. In other words, the system delays the task's entry time into the process area until the overspan time drops to 0.

[0104] If the overbubbling time is 0, it means that the action sequence S1 calculated according to the currently updated actual entry time T4 will not have the risk of overbubbling. Therefore, the last successful entry time T2 of the new task is updated. Specifically, the last successful entry time T2 is assigned to the minimum of the last successful entry time T2 and the aforementioned actual entry time T4.

[0105] Furthermore, if the difference between the actual entry time T4 of the updated new Job and the last successful entry time T2 meets the accuracy requirements, if not, roll back the action sequence of all Jobs to S0, update over_span = over_span - (T2 - T4) / 2, and then re-perform scheduling planning; if yes, determine whether a deadlock error has occurred. If not, complete the scheduling; if yes, it means that the new task cannot enter at the current time T0. Therefore, remove the new task and roll back to S0 to re-perform scheduling planning.

[0106] In other embodiments, to reduce or even eliminate interference at its source, the transmission range of each robot arm within the interference zone is pre-constrained. For example, using... Figure 1For example, taking any designated process slot within the interference zone (excluding the handwashing trough) as the boundary line, all process slots on one side of this boundary line are assigned to the transmission range of robot1. That is, robot1 can access all process slots and handwashing troughs to the left of this boundary line within the interference zone. All process slots on the other side of this boundary line are assigned to the transmission range of robot2. That is, robot2 can access all process slots and handwashing troughs to the right of this boundary line within the interference zone. The process slot serving as the boundary line allows one of the two robots to place materials in it, and the other to pick them up. By constraining the transmission range of each robot within the interference zone, interference can be quickly determined. For example, when other robots are idle, if their current position belongs to the path set of the target robot (e.g., k1), then that position must be a common slot and occupied, constituting direct interference. When other robots are busy, and multiple of their paths do not pass through common slots, then the intersection must be empty, and interference can be directly determined, thus significantly reducing the computational load in the interference detection process and improving efficiency. For example, in the process of reverse traversing the action sequences of other robotic arms, due to the constraint on the transmission range, only historical actions involving common slots (such as handwashing slots or process slots at boundary lines) may cause conflicts. Therefore, when reverse traversing the action sequences of other robotic arms (or scheduling action sequences), a large number of actions that do not involve common slots can be quickly skipped, and the actions involving common slots can be focused on, thereby reducing the traversal depth and accelerating the calculation of the earliest safe handling time.

[0107] Furthermore, since it only requires waiting for another robotic arm to leave the common slot, such as the handwashing slot or the process slot at the boundary line, rather than the entire interference zone, the earliest safe handling time calculated in steps S30 and S40 is more accurate and earlier, thereby optimizing the earliest transfer time in step S50 and improving the overall throughput of the equipment while ensuring no interference.

[0108] Specifically, the process tank serving as the dividing line can be manually designated by staff based on actual conditions. Of course, in other embodiments, a process tank capable of guaranteeing production capacity can also be pre-identified as the dividing line. For example... Figure 1 As shown, since there are usually multiple process slots within the interference zone, there are various ways to divide them. When different process slots are used as boundaries, the scheduling system automatically generates corresponding robot allocation sequences and their corresponding scheduling action sequences. However, different scheduling action sequences will have different completion times. Therefore, in order to improve equipment utilization and increase production capacity, it is necessary to find the process slot with the optimal boundary (i.e., specify the process slot through an algorithm).

[0109] For example, multiple candidate robot allocation sequences are calculated using simulation and other methods, taking different process tanks as boundaries. For each candidate robot allocation sequence, a corresponding scheduling action sequence for the task list is generated. Real-time judgment is used to avoid unnecessary calculations: the end time of the currently calculated action is compared with the end time of the previously calculated action (or, if there is no previous calculation, the initial optimal completion time: infinity). If the current end time is less than the previously calculated end time, the next action and its end time are calculated, and this process is repeated until all robot allocation subsequences in the current candidate robot allocation sequence are found, and then the scheduling action sequence for all tasks is generated. If the current end time is greater than the previously calculated end time, the process returns to recalculate the next candidate robot allocation sequence, until all candidate robot allocation sequences are traversed, thus finding the optimal robot allocation sequence and the corresponding optimal boundary. Repeating this process based on the same principle yields the scheduling action sequence for all tasks.

[0110] In some embodiments, the method for determining the process tank as the optimal dividing line specifically includes the steps of: S100, initialize the robot arm allocation sequence to obtain the first working slot set of the first robot arm and the second working slot set of the second robot arm.

[0111] In some embodiments, a robot arm allocation sequence list is initialized to obtain a set of work slots accessible only to the first robot arm, i.e., a first set of work slots (preferably, this first set of work slots includes all work slots accessible to the first robot arm located outside the interference zone and away from the loading / unloading area); and a set of work slots accessible only to the second robot arm, i.e., a second set of work slots, which includes all work slots accessible to the second robot arm located outside the interference zone and closer to the loading / unloading area. The work slots include various slots involved in the process areas such as process tanks, handwashing tanks, and drying tanks. In this embodiment, accessible work slots refer to work slots that can be covered by the robot arm's transmission range.

[0112] 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, where N is the number of process slots in the interference zone.

[0113] 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.

[0114] 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 point to the end point of the interference zone, excluding the EEWD module; when the material (such as a flower basket) is located in any tank to the left of the cutting tank, it is handled 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 either the cutting tank or any tank to the right of the cutting tank, it is handled 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 increasing production capacity. The start point and end point of the interference zone refer to: such as... Figure 1 As 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."

[0115] by Figure 1Taking the equipment as an example, when the transmission range of PTR1 and PTR2 is constrained by the process tanks in the interference zone: Tank5, Tank6, and Tank7, respectively, as cutting points (i.e., dividing lines), the transmission range of each of the two robots in the interference zone can be obtained: When Tank5 is the cutting point (i.e., 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 robot 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 the cutting point (i.e., dividing line), if the material is in the Tank to the left of Tank6, it is handled by PTR1; if the material is in the Tank6 (inclusive) and the Tank to the right of Tank6, it is handled by PTR2. Accordingly, when Tank5 is 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 the cutting point (i.e., the dividing line), the working slot to the left of Tank6 includes Tank5; therefore, the third working slot set P11 of PTR1 is empty. PTR2 includes Tank5; and the working slots to the right of Tank6 include EEWD and Tank7. Therefore, the fourth working slot set 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 working slot set P13 of PTR1 includes Tank5, Tank6, and EEWD; and the fourth working slot set P23 of PTR2 includes Tank7.

[0116] 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.

[0117] S300, traverse the task list to obtain the process path (Route) 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 serve as different dividing lines.

[0118] 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.

[0119] Specifically, step S300 includes the following steps: S3001, when the current process slot Tanki (i=1, ..., N) within the interference zone is used as the dividing line, the process path of each task is traversed sequentially. S3002, the equipment type corresponding to each process step in the process path is identified, and a corresponding robot is configured for each process step according to the equipment type and the first work slot set, the second work slot set, and the third work slot set, to obtain the path action sequence of each task when the current work slot Tanki is used as the dividing line.

[0120] In some embodiments, step S3002 specifically includes the following steps: S30021, 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 S30022.

[0121] S30022, determine whether the work slot belongs to the first work slot set, the second work slot set, or any of the third work slot sets; if it belongs to the first work slot set, define the robot corresponding to the process step of the task as the first robot corresponding to the first work slot set, and execute step S30023; if it belongs to the second work slot set T2, define the robot corresponding to the process step of the task as the second robot corresponding to the second work slot set T2, and execute step S30023; if it belongs to any of the third work slot sets, define the robot corresponding to the process step of the task as the first robot corresponding to the third work slot set, and execute step S30023; otherwise (that is, it does not belong to the first work slot set, the second work slot set, or any of the third work slot sets, then it is determined to belong to the fourth work slot set), define the robot corresponding to the process step of the task as the second robot, and execute step S30023.

[0122] In some embodiments, the process path of each job corresponds to a path work sequence, which includes process steps and device type (Module) pairs. For example, each time a robot arm transfers a wafer, 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 of 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.

[0123] For example, if the equipment type corresponding to the current process step is Tank2, and Tank2 belongs to the first working slot set within the transmission range of the first robot PTR1, then the robot matched for this process step is PTR1. As another example, if the equipment type corresponding to the current process step is Tank6, and Tank6 belongs to the third working slot set (if the third working slot set is divided by Tank7, it includes Tank5 and Tank6), since the third working slot set belongs to the transmission range of the first robot PTR1, then the robot matched for this process step is PTR1.

[0124] S30023, traverse the next process step in the process path and execute steps S30021-S30022 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.

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

[0126] As mentioned earlier, since there are multiple process slots within the interference zone, path action sequences are calculated for each task under different boundary lines, thus obtaining candidate robot allocation sequences for all tasks. After completing the path action sequence for one task, the same operation is performed on the next task in the task list to obtain the path action sequence for the next task. This process is repeated until all tasks in the task list have been traversed, resulting in the path action sequences for each task under the current boundary line, which is also a candidate robot allocation sequence.

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

[0128] 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.

[0129] 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, find the optimal candidate robot allocation sequence with the minimum completion time and its corresponding process slot, and use the process slot as the dividing line.

[0130] 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.

[0131] Specifically, step S500 includes the following steps: S5001, initializing the current optimal robot allocation sequence to empty and initializing the current optimal completion time configuration to infinity. S5002, traversing the current candidate robot allocation sequence to obtain the process slots as dividing lines and their corresponding robot allocation sub-sequences.

[0132] In some embodiments, each task's process path corresponds to a specific sequence of path actions. As mentioned earlier, if the process path includes an interference zone, then there are naturally N robot allocation sequences as candidate robot allocation sequences. 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 within the interference zone and its corresponding robot allocation subsequence are extracted from the candidate robot allocation sequence for subsequent scheduling calculations. Since the action sequence in the non-interference zone (i.e., the area outside the interference zone) is deterministic and does not generate candidate branches, introducing the process slots and their subsequences within the interference zone would increase unnecessary computation and waste resources. Therefore, in this embodiment, the process slots within the interference zone that serve as the dividing line and their robot allocation subsequences are extracted and used for subsequent scheduling calculations, significantly reducing the search space while ensuring the optimal solution is found.

[0133] S5003, calculate the scheduling action sequence of the current task based on the robot arm allocation sub-sequence; and during the calculation process, when a scheduling action is generated, determine whether the end time of the currently generated scheduling action is less than the current optimal completion time. If so, continue to generate the next scheduling action and determine again whether its end time is less than the current optimal completion time, until the robot arm allocation sub-sequence is traversed and step S5004 is executed; if the end time of the generated scheduling action is greater than or equal to the current optimal completion time, return to step S5002.

[0134] In this embodiment, real-time judgment is adopted. That is, for each scheduling action generated, its end time (which includes the time required by all preceding actions) is checked to see if it is greater than or equal to the current optimal completion time (known, such as when it is initialized to infinity, or the end time of the previous scheduling action Move obtained from the last calculation). If the 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 abandoned. This significantly reduces the amount of computation and improves the real-time performance and scalability of the scheduling algorithm while ensuring that the globally optimal scheduling sequence is found.

[0135] In some embodiments, since the optimal robot allocation sequence is configured to be empty during initialization, the optimal completion time is an infinite number (i.e., the initial minimum completion time). If there is no previous completion time, the calculated completion time is compared with the initial minimum completion time.

[0136] S5004, Generate the scheduling action sequence for each task, and execute step S5005.

[0137] 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 S5003 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 of all tasks.

[0138] S5005 updates the end time of the last scheduled action to the current optimal completion time, takes the current candidate robot allocation sequence as the latest current optimal robot allocation sequence, obtains its corresponding process slot, and uses it as the dividing line.

[0139] To avoid unnecessary calculations: The end time of the current calculated scheduling action 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 calculation of the next action and its end time continues. This process is repeated until all candidate robot allocation subsequences in the current candidate robot allocation sequence have been traversed, 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 calculation of the next candidate robot allocation sequence is returned, until all candidate robot allocation sequences have been traversed, thereby finding the optimal robot allocation sequence and its corresponding process slot. This process is repeated based on the same principle until the scheduling action sequence for all tasks is generated, and then step S10 above is executed.

[0140] In some embodiments, before executing step S5002, it is first determined whether the number of candidate robot allocation sequences is less than a preset threshold (e.g., a positive integer 2). If so, the candidate robot allocation sequence is the optimal robot action sequence; otherwise, step S5002 is executed. That is, 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.

[0141] Example 2: The specific process of generating action sequences in the above examples is described below with reference to specific examples and accompanying drawings.

[0142] Based on the actual entry time T4 of each job in the task list all_jobs, calculate and generate the Move sequence for all tasks, as follows: (1) Initialization: Task list of all tasks, task sorting list job_sort, initial time t1, robot moved to Idle slot record D1, error set q_error; (2) Traverse the task list and retrieve the currently planned Job, Job source location Src, and the end time t_e of the process corresponding to the source location Src in sequence; (3) Obtain the next destination Dest Tank of the current planned Job's Route, perform a deadlock check to determine whether the Dest Tank is currently occupied. If it is occupied, return to step (2); otherwise, proceed to the next step (4). (4) Obtain the target robot that the current planned Job will go to the Dest Tank. At the same time, define another robot as other_Robot (i.e., other robot); the earliest moveable time of the target robot = max(t1, the end time t2 of the last action in the action sequence of the target robot); t_r = the earliest moveable time of other robot + the time of other robot from the source position to the Idle slot. (5) Based on the handwashing matrix, determine whether the target robot needs to wash its hands in the EEWD tank before moving from Src to Dest Tank. If so, enter the target robot handwashing interference logic (specifically, see the following embodiment 4) to obtain robot_safe_time and D1; if not, enter the target robot not handwashing interference logic (specifically, see the following embodiment 3) to obtain robot_safe_time and D1. (6) The preparation time for obtaining the Dest Tank is t_d; (7) The earliest transfer time of the target robot from Src to Dest Tank is transfer=max(robot_safe_time, t_d); the over-soak time is transfer-t_e-Src allowed over-soak time; (8) Add [transfer, over_soak_t, Job] to the job_sort list; (9) Determine whether the traversal of the Job list has ended. If the traversal has ended, execute step (10). Otherwise, jump to step (2) and continue traversing the next Job in the all_jobs list. (10) Determine if job_sort is empty. If it is empty, add the deadlock error to the error set q_error. If it is not empty, jump to step (11). (11) Sort the job_sort of each task according to the transfer time, take out the first job_sort[0], and generate all moves of the robot to transport materials according to the transfer information of job_sort[0]. (12) Determine whether the values ​​of Src and Dest of job_sort[2] in D1 are equal to -1. If yes, jump to step (13); if no, generate Move for other_robot to be idled in Idle slot according to the value. (13) Oversoak time over_soak_t = job[1]; (14) Determine whether the current Dest of the Job is unloaded. If yes, remove the Job from all_jobs; otherwise, proceed to step (15). (15) Determine whether all_jobs is empty or over_soak_t is greater than 0. If yes, jump to step (16); otherwise, jump to step (1). (16) Return the over-bubbling time over_soat_t and the error set q_error, and the Move generation ends.

[0143] Example 3: The non-handwashing interference logic mainly determines whether interference will occur between the target robot and another robot (i.e., other_robot) during the process from the target robot's source position to Src and from Src to Dest Tank when handwashing is not required. It also determines the earliest safe time (robot_safe_time) for the target robot to handle materials when interference occurs, and moves the target robot to the Idle slot, recording D1. The process is as follows: (1) Let k1 be the set of Tanks in the interference zone that the target robot moves from its source position to the Src of the current planned task; k2 be the set of Tanks in the interference zone that the target robot moves from the Src to the Dest Tank; the safe time for other_robot to move to the Idle slot is D1[(job,dest)]=-1; (2) Determine whether other robotic arms are currently moving (i.e. whether other robotic arms are currently performing the corresponding action). If they are, proceed to step (5); if they are not, proceed to step (3). (3) Determine whether the source position of other robots is in set k1. If yes, it means that there is interference between the source position of other robots and the target robot during the process of moving from the source position to the Src without load. robot_safe_time=max(t_r, t3+time of the target robot moving from the source position to the Src of the current planned task without load, D1[(job, dest)]= t_r; if no, jump to step (4). (4) Determine whether the source positions of other robots are in the set k2. If yes, it means that the source positions of other robots interfere with the target robot from Src to Dest Tank, and robot_safe_time = max(t_r, t3) + robot idle time to Src slot; if no, it means that there is no interference, and robot_safe_time = t3 + robot idle time to Src slot. (5) Starting from the current index, traverse the action sequences of other robots in reverse order and extract the move until the start time of the move is less than t1. Define o1 as the set of the fourth process slots in the interference zone traversed by the current move. (6) Determine whether there is an intersection between k1 and o1 (or determine whether the intersection between k1 and o1 is not empty). If yes, jump to step (7); otherwise, jump to step (8). (7) Determine whether the current move is the last in the sequence of other robot actions, and whether the current move's Dest Tank is at the intersection of k1 and o1. If yes, it means that there is interference between the current move and the robot during the idle process to Src. Let robot_safe_time = max(t1, move end time] + robot idle time from source position to Src, and D1[(job, dest)] = t_r. If no, it means that there is no interference between Robot and other_robot. Let robot_safe_time = max(t3, move end time] + robot idle time from source position to Src. (8) Determine whether there is an intersection between k2 and o1 (or in other words, determine whether the intersection between k1 and o1 is not empty). If yes, jump to step (9); if no, jump to step (12). (9) Starting from the current index, traverse the action sequence of other_robot in reverse order and extract r_move until the start time of r_move is less than t1; (10) Each time the traversal is performed, check whether there is an intersection between the Tank passed by r_move and k1. If yes, the traversal ends and t8 = r_move end time; otherwise, t8 = t3. (11) Determine whether the current move is the last move in the first sequence and its destination Tank is in the intersection of k2 and o1. If yes, it means that the current move interferes with the robot's process from src to dest Tank. robot_safe_time = max(t3, t_r, t8 + robot's time from its source position to Src when idle, move end time), D1[(job, dest)] = t_r; if no, it means that there is no interference between robots. robot_safe_time = max(t3, t8 + robot's time from its source position to Src when idle, move end time); (12) Return robot_safe_time and D1, then end.

[0144] Example 4: The handwashing interference logic mainly determines whether interference will occur between the robot and another robot during the process from the source position of the target robotic arm to the handwashing trough (EEWD), from the handwashing trough to Src, and from Src to Dest when handwashing is required. It also determines the earliest safe time (robot_safe_time) for the robot to move materials when interference occurs, and records the robot's movement to the Idle slot as D1. The process is as follows: (1) Initialization: Define the time t4 required for the robot to travel from the source location to the source after washing its hands as: t4 = robot idle time to EEWD + robot handwashing time + robot idle time from EEWD to the source; handwashing time t5 = t4 - EEWD idle time to the source. (2) Define k1 = the set of interference zone Tanks that the robot passes through from the source position to EEWD; k2 = the set of interference zone Tanks that the robot passes through from EEWD to Src; k3 = the set of interference zone Tanks that the robot passes through from Src to Dest; the safe time for other_robot to move to the Idle slot is D1[(job,dest)] = -1; (3) Determine if other_robot is currently moving (i.e., determine if other robotic arms are currently not idle). If yes, proceed to step (7); otherwise, proceed to step (4). (4) Determine whether the source location of other_robot is in the set k1. If yes, it means that it interferes with the robot's idle time to EEWD. robot_safe_time=max(t_r, t3)+t4, D1[(job, dest)]=t_r; if no, jump to step (5). (5) Determine whether the source location of other_robot is in the set k2. If yes, it means that it interferes with the robot from EEWD to Src. robot_safe_time = max(t1, t_r, t3+t5) + robot from EEWD to Src time; D1[(job, dest)] = t_r; if no, jump to step (6). (6) Determine if the source location of other_robot is in the set k3. If so, it means that it interferes with the robot from Src to Dest. robot_safe_time=max(t1, t_r, t3+t4); D1[(job,dest)]=t_r; (7) Traverse the move sequence of other_robot in reverse order, define o1 as the set of interference tanks passed through by the move (i.e. the set of the fourth process tank mentioned above), until the move start time is less than t1; r1 = the intersection of set k1 and o1; r2 = the intersection of set k2 and o1; r3 = the intersection of set k3 and o1; robot_safe_time = t1; by starting from the action currently being performed by other robots (i.e. the latest action in time), reverse the order until the start time of a certain action is less than t1 (usually the earliest start time or initial time of the current task), thereby finding all actions that have time overlap with the three path segments of the target robot and have intersection with the process tanks.

[0145] (8) Determine if set r1 is empty. If it is, jump to step (10); otherwise, jump to step (9). (9) Determine if the current move is the last action and the destination Tank of the last action is located in r1. If yes, it means there is interference with the robot from idle to EEWD, robot_safe_time = max(t_r, move end time) + t4; D1[(job, dest)] = t_r; if no, it means there is no interference between robots, robot_safe_time = max(t3, move end time) + t4; (10) Determine if set r2 is empty. If it is, jump to step (14); otherwise, jump to step (11). (11) Starting from the current index, traverse the action sequence r_move of other_robot in reverse order until the start time of r_move is less than t1. The reverse traversal in this step starts from the index of the move currently being checked (i.e., the position of an action that has an intersection with k2 in step (7)), and traverses forward again in reverse order until the start time is less than t1, thereby calculating the waiting time t7 related to k1.

[0146] (12) Determine if there is an intersection between the Tank traversed by r_move and k1? If yes; t7 = r_move end time; if no; t7 = t3; (13) Determine whether the current action is the last action and the destination Tank of the last action is located in r2. If yes, it indicates that there is interference with the robot from EEWD to Src; robot_safe_time=max(t1, t_r, move end time, t7+t5)+EEWD no-load to Src time; D1[(job, dest)]=t_r; if no, it indicates that there is no interference; robot_safe_time =max(t1, move end time, t7+t5)+EEWD no-load to Src time; by determining whether the destination Tank of the last move is in r2, its essence is to distinguish whether other robots are stopped (i.e., interference is very likely to occur, so it is determined that interference has occurred) in the process tank where interference may occur or just passing by (it is only necessary to wait for the robot to leave, because the time is short, so it is determined that there is no interference), and calculate different waiting times according to the judgment results, so as to calculate the earliest safe transmission time of the target robot in the future; (14) Determine if set r3 is empty. If it is, jump to step (17); otherwise, jump to step (15). (15) Determine whether there is an intersection between the Tank passed by r_move and k3. If yes, t7 = the end time of r_move; if no, t7 = t3. (16) Determine if move is the last action and the target Tank of the last action is located at r3. If yes, it means that there is interference with robot from Src to Dest; robot_safe_time = max(t1, t_r, move end time, t7+t4); D1[(job, dest)]=t_r; if no, it means that there is no interference; robot_safe_time=max(t1, move end time, t7+t4); (17) Return Robor_safe_time, D1; End.

[0147] Example 5: An example of the system generating task entry time, specifically: (1) System initialization, obtain: current time T0, initial entry time of new Job T1=T0, last successful entry time of new Job T2=∞, latest time of Job in process area is t3, over_soak_t=0, Job change time over_span=0, action sequence S0 of Job in process area; (2) Update the actual entry time of the new Job in the current scheduling plan: T4 = max(T0, T2) + over_span; (3) Calculate all job action sequences S1 based on the actual entry time T4 of the new job, and return the over-soak time and assign it to over_soak_t; (4) Determine if the value of over_soak_t is equal to 0. If not, roll back the action sequence of all Jobs to S0, update over_span=over_span+over_soak_t, and jump to step (2); if yes, jump to step (5). (5) Update the last successful entry time of the new Job in the current scheduling plan to T2=min(T2,T4); (6) Determine whether the difference between the entry time T2 of the new Job in the current scheduling plan and the previous entry time meets the accuracy requirement (this accuracy requirement is common knowledge in the industry and will not be elaborated here). If not, roll back the action sequence of all Jobs to S0, update over_span=over_span-(T2-T4) / 2, and jump to step (2); If yes, jump to step (7). (7) Determine if a deadlock error is thrown. If not, proceed to step (8). If so, remove the new Job currently scheduled, roll back the action sequence of all Jobs to S0, and conclude that the new Job cannot be entered at the current time T0. Proceed to step (8). (8) All job scheduling plans are completed, and the process ends.

[0148] Example 6: Based on the above scheduling method, the present invention also provides a scheduling system for semiconductor cleaning equipment. Specifically, see [link to relevant documentation]. Figure 3 The scheduling system includes: The data acquisition module is configured to obtain the source location of the currently planned task and its next target process tank based on the process path of the currently planned task in the task list; The interference recognition module is configured to traverse each planned task in the task list to determine whether the target robot used to move each planned task from its source position to the next target process tank will interfere with other robots during the handling process. The scheduling module is configured to calculate the earliest safe handling time of the target robot based on the earliest movable time of other robot arms that are interfering when the interference recognition module detects interference; or, when the interference recognition module detects no interference, calculate the earliest safe handling time of the target robot based on the action end time of the other robot arms. The calculation module is configured to calculate the earliest transfer time for the target robot to move the corresponding task from the corresponding source location to the corresponding next target process tank based on the earliest safe transfer time. The motion calculation module is configured to sort all tasks in the task list according to the earliest transmission time of each planned task when the interference recognition module has traversed each planned task in the task list, and generate the motion sequence of the target robot arm to handle materials according to the transmission time of each task in the sorted task list.

[0149] In some embodiments, the scheduling system further includes: A handwashing recognition module is configured to determine whether the target robotic arm needs to perform a handwashing process; accordingly, The interference recognition module is further configured to, when the handwashing recognition module determines that the target robotic arm needs to perform a handwashing process, determine whether the target robotic arm interferes with other robotic arms during its movement from the source position to the handwashing trough, from the handwashing trough to the source position of the current planned task, and then from the source position of the current planned task to the next target process trough; or, when the handwashing recognition module determines that the target robotic arm does not need to perform a handwashing process, determine whether the target robotic arm interferes with other robotic arms during its movement from the source position to the source position of the current planned task, and then from the source position of the current planned task to the next target process trough.

[0150] In some embodiments, the interference recognition module specifically includes: The robotic arm working status recognition unit is configured to determine whether the other robotic arms are currently idle; The intersection extraction unit is configured to, when the handwashing recognition module determines that the target robotic arm needs to perform a handwashing process, and when the robotic arm working state recognition unit determines that the current working state of the other robotic arms is not idle, reverse-order traverse the action sequences of the other robotic arms to obtain the fourth process slot set o1 within the interference zone traversed by each action in the action sequence of the other robotic arms; and extract the fourth process slot set o1 from the first process slot set k1, the second process slot set k2, and the third process slot set k1 corresponding to different path segments within the interference zone traversed by the target robotic arm from its source position to move the currently planned task to the next target process slot. The first intersection r1, the second intersection r2, and the third intersection r3 of the slot set k3 are determined sequentially; and it is determined whether the first intersection r1, the second intersection r2, and the third intersection r3 are empty. The first process slot set k1 includes the process slots within the interference zone traversed by the target robot from its source position to the handwashing trough; the second process slot set k2 includes the process slots within the interference zone traversed by the target robot from the handwashing trough to the source position of the current planned task; and the third process slot set k3 includes the process slots within the interference zone traversed by the target robot from the source position of the current planned task to the next target process slot. The interference identification unit is configured to, when the robot arm working state identification unit determines that the current working state of the other robot arm is idle, sequentially determine whether the source position of the other robot arm belongs to the first process slot set k1, the second process slot set k2, and the third process slot set k3. If it belongs to the first process slot set k1, the second process slot set k2, or the third process slot set k3, it is determined that the target robot arm will interfere with the other robot arm; or, when the intersection extraction unit determines that the first intersection r1, the second intersection r2, and the third intersection r3 are all not empty, it is determined that no interference has occurred; or, when the intersection extraction unit determines that any intersection is not empty, it determines whether the current action of the other robot arm is the last action of the other robot arm and its target process slot belongs to any non-empty intersection. If the current action is the last action and its target process slot belongs to any non-empty intersection, it is determined that interference will occur with other robot arms.

[0151] Specifically, the interference recognition unit includes: The first judgment subunit is configured to, when the intersection extraction unit determines that the first intersection r1 is not empty, determine whether the current action of the other robot is the last action in the action sequence of the other robot, and the target process tank of the last action belongs to the first intersection r1; The second judgment subunit is configured to, when the intersection extraction unit determines that the first intersection r1 is empty, but the second intersection r2 is not empty, traverse the action sequences of the other robotic arms in reverse order, and determine whether the process slots passed by each action in the action sequence of the other robotic arms have an intersection with the second process slot set k2; if there is an intersection, it is determined that interference will occur; otherwise, it is determined that interference will not occur. The third judgment subunit is configured to, when the intersection extraction unit determines that if the first intersection r1 and the second intersection r2 are both empty, but the third intersection r3 is not empty, traverse the action sequences of the other robotic arms in reverse order, and determine whether the process slots traversed by each action in the action sequence of the other robotic arms have an intersection with the second process slot set k2 or the third process slot set k3; if there is an intersection, it is determined that interference will occur; otherwise, it is determined that interference will not occur. The fourth judgment subunit is configured to, when the second judgment subunit determines that the process slot traversed by the current action in the action sequence of the other robot has an intersection with the first process slot set k1, determine whether the current action is the last action in the action sequence of the other robot and whether the target process slot of the last action belongs to the second intersection r2. If it is the last action and its target process slot belongs to the second intersection, it is determined that interference will occur; otherwise, it is determined that interference will not occur. The fifth judgment subunit is configured to, when the third judgment subunit determines that the process slot traversed by the current action in the action sequence of the other robot has an intersection with the second process slot set k2 or the third process slot set k3, determine whether the current action is the last action in the action sequence of the other robot and whether the target process slot of the last action belongs to the second intersection r2. If it is the last action and its target process slot belongs to the second intersection, it is determined that interference will occur; otherwise, it is determined that interference will not occur.

[0152] In other embodiments, the intersection extraction unit is further configured to, when the handwashing recognition module determines that the target robotic arm does not need to perform a handwashing process, and when the robotic arm working status recognition unit determines that the other robotic arms are not currently idle, reverse the action sequence of the other robotic arms to obtain the fourth process slot set o1 passed through the interference region by the action sequence of the other robotic arms, and extract the first intersection r1 and the second intersection r2 of the fourth process slot set o1 with the first process slot set k1 and the second process slot set k2, and sequentially determine whether the first intersection r1 and the second intersection r2 are both non-empty; accordingly, The aforementioned interference recognition unit is further configured to, when the robot arm working state recognition unit determines that the other robot arm is currently idle, sequentially determine whether the source position of the other robot arm belongs to the first process slot set k1 and the second process slot set k2, and when it is determined that the source position of the other robot arm belongs to either process set, determine that interference will occur; otherwise, determine that interference will not occur; or, when the intersection extraction unit determines that the first intersection r1 and the second intersection r2 are both empty, determine that interference will not occur; or, when the intersection extraction unit determines that any intersection is not empty, determine whether the current action of the other robot arm is the last action and its target process slot belongs to any non-empty intersection. If it is the last action and belongs to any non-empty intersection, determine that interference will occur; otherwise, determine that interference will not occur.

[0153] Specifically, the interference recognition module further includes: The sixth judgment subunit is configured to, when the robot working state recognition unit determines that the current working state of the other robot is idle, sequentially determine whether the source position of the other robot belongs to the first process slot set k1 and the second process slot set k2. If it belongs to either process slot set, it is determined that interference will occur; otherwise, it is determined that interference will not occur. The seventh judgment subunit is configured to, when the intersection extraction unit determines that the first intersection r1 is not empty, sequentially determine whether the source position of the other robot belongs to the first process slot set k1 and the second process slot set k2; or, when the intersection extraction unit determines that the first intersection r1 is empty, but not empty with the second intersection r2, determine whether the current action of the other robot is the last action in the action sequence of the other robot, and whether the target process slot of the last action belongs to the first intersection r1. If it is the last action and its target process slot belongs to the first intersection, it is determined that interference will occur; otherwise, it is determined that no interference will occur. The eighth judgment subunit is configured to determine whether the current action of the other robot is the last action in the action sequence of the other robot, and whether the target process slot of the last action belongs to the second intersection r2; if the target process slot of the current action belongs to the second intersection, it is determined that there is interference; otherwise, it is determined that there is no interference.

[0154] In some embodiments, the scheduling system further includes: a process tank status identification module, configured to determine whether the next target process tank is occupied; if occupied, triggering the interference identification module to determine whether the target robot used to move each planned task from its source position to the next target process tank will interfere with other robots during the handling process; if not occupied, triggering the interference identification module to traverse the next planned task in the task list until the task list is traversed.

[0155] 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.

[0156] 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.

[0157] 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 scheduling method for a semiconductor cleaning device, characterized in that, Including the following steps: S10, obtain the source location of the current planned task and its next target process tank according to the process path of the current planned task in the task list; S20, determine whether the target robot arm used to move the current planned task from the source position to the next target process tank will interfere with other robot arms during the handling process; If interference occurs, proceed to step S30; If no interference occurs, proceed to step S40; S30, calculate the earliest safe handling time of the target robot based on the earliest movable time of the other robot that interfered, and execute step S50; S40, calculate the earliest safe handling time of the target robot based on the end time of the actions of the other robot arms, and execute step S50; S50, calculate the earliest transfer time for the target robot to move the current planned task from the source location to the next target process tank based on the earliest safe handling time; S60, traverse the next task in the task list and execute steps S10-S50 until the task list has been traversed. S70, sort all tasks in the task list according to the earliest transmission time, and generate the action sequence of the target robot arm to handle materials according to the transmission time of each task in the sorted task list; Specifically, step S20 includes the following steps: S201, determine whether the target robotic arm needs to perform a handwashing process; if yes, proceed to step S202; otherwise, proceed to step S203. S202, determine whether the target robot arm interferes with other robots arm during the process of moving from its source position to the handwashing sink, from the handwashing sink to the source position of the current planned task, and then from the source position of the current planned task to the next target process tank. If interference occurs, execute step S40; if no interference occurs, execute step S30. S203, determine whether the target robot arm interferes with other robots arm during the process of moving from its source position to the source position of the current planned task and from the source position of the current planned task to the next target process tank. If interference occurs, execute step S30; if no interference occurs, execute step S40.

2. The scheduling method for a semiconductor cleaning equipment according to claim 1, characterized in that, Step S202 specifically includes the following steps: S2021, Determine whether the other robotic arms are idle. If not idle, proceed to step S2022. If idle, proceed to step S2023. S2022, reverse the action sequence of the other robotic arms to obtain the fourth set of process slots in the interference zone through which the action sequence of the other robotic arms passes. Then, determine whether the first, second, and third intersections of the fourth set of process slots with the first set of process slots, the second set of process slots, and the third set of process slots corresponding to different path segments in the interference zone that the target robotic arm passes through from its source position to move the current planned task to the next target process slot are not empty. If all are empty, proceed to step S40. If any intersection is not empty, determine whether the current action of the other robotic arm is the last action and whether its target process slot belongs to any non-empty intersection. If so, determine that interference will occur and proceed to step S30. If it does not belong to any intersection, determine that interference will not occur and proceed to step S40. S2023, sequentially determine whether the source position of the other robotic arms belongs to the first process slot set, the second process slot set, and the third process slot set. If it belongs to any process slot set, determine that the target robotic arm will interfere with the other robotic arms, and execute step S30; if it does not belong to any process slot set, determine that no interference will occur, and execute step S40.

3. The scheduling method for a semiconductor cleaning equipment according to claim 1, characterized in that, Step S203 specifically includes the following steps: S2031, determine whether the current working state of the other robotic arms is idle. If not idle, proceed to step S2032. If idle, proceed to step S2033. S2032, reverse the action sequence of the other robotic arms to obtain the fourth set of process slots in the interference zone through which the action sequence of the other robotic arms passes. Then, determine whether the first intersection and the second intersection of the fourth set of process slots with the first set of process slots and the second set of process slots corresponding to different path segments in the interference zone that the target robotic arm passes through from its source position to move the current planned task to the next target process slot are not empty. If the first intersection and the second intersection are both empty, proceed to step S40. If any intersection is not empty, determine whether the current action of the other robotic arm is the last action and whether its target process slot belongs to any non-empty intersection. If it is the last action and belongs to any non-empty intersection, it is determined that interference will occur, and step S30 is executed. Otherwise, it is determined that no interference will occur, and step S40 is executed. S2033, sequentially determine whether the source position of the other robotic arms belongs to the first process slot set and the second process slot set. If it belongs to either process slot set, it is determined that interference will occur, and step S30 is executed; if it does not belong to either process slot set, it is determined that there is no interference, and step S40 is executed.

4. A scheduling method for a semiconductor cleaning apparatus according to any one of claims 1 to 3, characterized in that, Before executing step S20, the procedure also includes the following steps: determining whether the next target process tank is occupied; if it is not occupied, determining that no lock-up error has occurred, and executing step S20; if it is occupied, determining that a lock-up error has occurred, and executing step S60. And / or, before performing step S10, the following step is also included: constraining the transmission range of the target robot and the other robot based on the designated process slots within the interference zone as the dividing line, such that all process slots located on one side of the designated process slot within the interference zone are assigned to the transmission range of the target robot, while all process slots located on the other side of the designated process slot are assigned to the transmission range of the other robot. And / or, the earliest safe handling time = waiting reference time + time required for the target robot to complete the corresponding action of the corresponding interference path segment; wherein, the waiting reference time includes at least the maximum value of one or more of the following: the earliest movable time of other robots, the end time of the current action of other robots, and the latest time of the task in the process area.

5. A scheduling system for a semiconductor cleaning equipment, characterized in that, include: The data acquisition module is configured to obtain the source location of the currently planned task and its next target process tank based on the process path of the currently planned task in the task list; An interference identification module is configured to traverse the task list to determine whether the target robot used to move each planned task from its source location to the next target process tank will interfere with other robots during the handling process. The scheduling module is configured to calculate the earliest safe handling time of the target robot based on the earliest movable time of other robot arms that are interfering when the interference recognition module detects interference; or, when the interference recognition module detects no interference, calculate the earliest safe handling time of the target robot based on the action end time of the other robot arms. The calculation module is configured to calculate the earliest transfer time for the target robot to move the corresponding task from the corresponding source location to the corresponding next target process tank based on the earliest safe transfer time; The action calculation module is configured to sort all tasks in the task list according to the earliest transmission time of each planned task when the interference recognition module has traversed the task list, and generate the action sequence of the target robot arm handling materials according to the transmission time of each task in the sorted task list. A handwashing recognition module is configured to determine whether the target robotic arm needs to perform a handwashing process; accordingly, The interference recognition module is further configured to determine whether the target robotic arm interferes with other robotic arms during the process of moving from its source position to the handwashing sink, from the handwashing sink to the source position of the current planned task, and then from the source position of the current planned task to the next target process sink when the handwashing recognition module determines that the target robotic arm is to perform a handwashing process. Alternatively, when the handwashing recognition module determines that the target robotic arm does not need to perform the handwashing process, it determines whether the target robotic arm interferes with other robotic arms during the process of moving from its source position to the source position of the current planned task and from the source position of the current planned task to the next target process tank.

6. The scheduling system for a semiconductor cleaning equipment according to claim 5, characterized in that, The interference recognition module specifically includes: The robotic arm working status recognition unit is configured to determine whether the other robotic arms are currently idle; The intersection extraction unit is configured to, when the handwashing recognition module determines that the target robotic arm needs to perform a handwashing process, and the robotic arm working status recognition unit determines that the other robotic arms are not currently idle, reverse-order traverse the action sequences of the other robotic arms to obtain the fourth process slot set within the interference zone traversed by the action sequences of the other robotic arms; and extract the first intersection, second intersection, and third intersection between the fourth process slot set and the first process slot set, second process slot set, and third process slot set corresponding to different path segments within the interference zone traversed by the target robotic arm from its source position to moving the currently planned task to the next target process slot; and sequentially determine whether the first intersection, second intersection, and third intersection are empty; The interference recognition unit is configured to, when the robot arm working state recognition unit determines that the other robot arm is currently idle, sequentially determine whether the source position of the other robot arm belongs to the first process slot set, the second process slot set, or the third process slot set. If it belongs to any process slot set, interference is determined to occur; if it does not belong to any process slot set, interference is determined not to occur. Alternatively, when the intersection extraction unit determines that the first intersection, the second intersection, and the third intersection are all empty, interference is determined not to occur. Alternatively, when the intersection extraction unit determines that any intersection is not empty, it determines whether the current action of the other robot arm is the last action of the other robot arm and whether its target process slot belongs to any non-empty intersection. If the current action is the last action and its target process slot belongs to any non-empty intersection, interference with other robot arms is determined; otherwise, interference is determined not to occur.

7. The scheduling system for a semiconductor cleaning equipment according to claim 6, characterized in that, The intersection extraction unit is further configured to, when the handwashing recognition module determines that the target robotic arm does not need to perform the handwashing process, and the robotic arm working status recognition unit determines that the other robotic arms are not currently idle, reverse the action sequence of the other robotic arms to obtain the fourth process slot set passed through the interference zone by the action sequence of the other robotic arms, and extract the first intersection and the second intersection between the fourth process slot set and the first process slot set and the second process slot set, and sequentially determine whether the first intersection and the second intersection are not empty; The interference recognition unit is further configured to, when the robot working state recognition unit determines that the other robot is currently idle, sequentially determine whether the source position of the other robot belongs to the first process slot set and the second process slot set, and when it is determined that the source position of the other robot belongs to any process set, it determines that interference will occur; if it does not belong to any process set, it determines that interference will not occur. Alternatively, when the intersection extraction unit determines that both the first intersection and the second intersection are empty, it determines that no interference will occur. Or, when the intersection extraction unit determines that any intersection is not empty, it determines whether the current action of the other robot is the last action and whether its target process tank belongs to any non-empty intersection. If it is the last action and belongs to any non-empty intersection, it determines that interference will occur; otherwise, it determines that no interference will occur.

8. The scheduling system for a semiconductor cleaning equipment according to claim 5, characterized in that, Also includes: The process tank status recognition module is configured to determine whether the next target process tank is occupied; If the task is already occupied, the interference identification module is triggered to determine whether the target robot used to move each planned task from its source position to the next target process tank will interfere with other robots during the handling process. If the task is not occupied, the interference recognition module is triggered to traverse the next task to be planned in the task list until the task list has been traversed. And / or, the data acquisition module is further configured to constrain the transmission range of the target robot and the other robots based on a designated process slot within the interference zone as a boundary line, such that all process slots located on one side of the designated process slot within the interference zone are assigned to the transmission range of the target robot, while all process slots located on the other side of the designated process slot are assigned to the transmission range of the other robots. And / or, the earliest safe handling time = waiting reference time + time required for the target robot to complete the corresponding action of the corresponding interference path segment; wherein, the waiting reference time includes at least the maximum value of one or more of the following: the earliest movable time of other robots, the end time of the current action of other robots, and the latest time of the task in the process area.

Citation Information

Patent Citations

  • Transport erection structure, detection device, and transport method

    CN116884896A

  • Semiconductor device task scheduling control method, system, device and medium

    CN120871796A

  • Motion planning method and equipment for cooperative task of multiple mechanical arms

    CN121468527A