Scheduling method and system for automated flow, and electronic device and storage medium

By comprehensively considering multiple throughputs, optimizing the scheduling method of the automated process, the problem of low equipment utilization in the prior art is solved and the execution efficiency of the automated process is improved.

WO2025131095A1PCT designated stage expired Publication Date: 2025-06-26MEGAROBO TECH CO LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
PCT/CN2024/141131
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2023-12-22
Filing Date
2024-12-20
Publication Date
2025-06-26

AI Technical Summary

Technical Problem

The scheduling method of automated processes in the prior art is insufficient to utilize pre-processing equipment, resulting in low execution efficiency of automated processes.

Method used

By determining the number of fluxes of the target process in the automated process and the ordered operation set corresponding to each flux, the execution time of each operation is determined comprehensively to consider the situation of each flux, and the scheduling results are optimized to improve the utilization of the equipment.

Benefits of technology

Effectively reduce the waiting time of the equipment, improve the utilization rate of the equipment, and improve the execution efficiency of the automated process.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN2024141131_26062025_PF_FP_ABST
    Figure CN2024141131_26062025_PF_FP_ABST
Patent Text Reader

Abstract

A scheduling method for an automated flow, the method comprising: on the basis of parameters of an automated flow, determining the number of throughputs of a target flow in the automated flow and an ordered operation set corresponding to each throughput; on the basis of the number of throughputs and the ordered operation sets, respectively determining the earliest start time of an operation to be scheduled of each throughput at the current moment, wherein the operation to be scheduled of each throughput is the first unscheduled operation in the ordered operation set corresponding to the throughput; at least on the basis of the earliest start time of each operation to be scheduled, determining one of the operations to be scheduled of the throughputs to be an operation that should be scheduled at the current moment; and determining an execution time of the operation that should be scheduled at the current moment, and shifting to executing the step of determining the earliest start time of the operation to be scheduled of each throughput at the next moment until the scheduling of all the operations in the ordered operation sets is completed. Also disclosed are a scheduling system for an automated flow, an electronic device, and a storage medium.
Need to check novelty before this filing date? Find Prior Art

Description

Automated process scheduling method and system, electronic device and storage medium

[0001] This application claims priority to the Chinese patent application with application number 202311787546.1 filed with the China Patent Office on December 22, 2023, and application name “Scheduling method and system for automated processes, electronic device and storage medium”, the entire contents of which are incorporated by reference into this application. Technical Field

[0002] The present application relates to the field of automation technology, and in particular, to a scheduling method for an automation process, a scheduling system for an automation process, an electronic device, and a storage medium. Background Art

[0003] Automated processes, such as those for laboratories, often include target processes that need to be repeated multiple times. For example, consumables may need to undergo a pretreatment process before an experiment, or a post-processing process after the experiment. For example, due to the large number of experimental consumables and limited pretreatment equipment, multiple pretreatment processes often need to be performed in batches. Each pretreatment process can be considered a flux, so the automated process can include pretreatment processes for multiple fluxes.

[0004] In some cases, multiple pretreatment devices are often required to perform multiple operations to complete the pretreatment process for a single throughput. Taking the pretreatment process for cleaning well plates as an example, each pretreatment process for a single throughput requires the collaboration of three types of pretreatment equipment: a robotic arm, a plate station for storing well plates, and a plate washer. Due to the limited number of these pretreatment devices and the limited plate positions on the plate station and plate washer, the pretreatment processes for multiple throughputs cannot be executed completely in parallel. On the other hand, running the pretreatment processes for multiple throughputs completely serially is inefficient. Therefore, it is necessary to plan and schedule all operations involved in the pretreatment processes for multiple throughputs to determine the execution time of these operations.

[0005] Prior art scheduling methods typically schedule the target processes for each flux one by one. For example, each operation in the pretreatment process for the first flux is scheduled first, followed by the pretreatment process for the next flux. This approach schedules each operation in the pretreatment process for each flux independently, without considering the other fluxes. Consequently, this scheduling method does not fully utilize the pretreatment equipment, resulting in low efficiency in the execution of the automated process. Summary of the Invention

[0006] In order to at least partially solve the problems existing in the prior art, according to a first aspect of the present application, a method for scheduling an automated process is provided, comprising:

[0007] According to the parameters of the automated process, determine the flux number of the target process in the automated process and the ordered operation set corresponding to each flux, where the flux number represents the number of repeated executions of the target process and the flux number is greater than 1. The ordered operation set is an ordered set of operations involved in completing a single target process;

[0008] Based on the number of fluxes and the ordered operation set, the earliest start time of the scheduled operation of each flux at the current moment is determined. The scheduled operation of each flux is the first unscheduled operation in the ordered operation set corresponding to the flux. The unscheduled operation is an operation whose execution time has not yet been determined.

[0009] Determining one of the pending operations of each flux as the operation to be scheduled at the current moment based on at least the earliest start time of each pending operation; and

[0010] Determine the execution time of the scheduled operation at the current moment, and then proceed to determine the earliest start time of the scheduled operation of each flux at the next moment, until the scheduling of all operations in each ordered operation set is completed.

[0011] In one possible implementation, determining the execution time of the scheduled operation at the current moment includes:

[0012] Determine the start time of the scheduled operation based on the earliest start time of the scheduled operation; and

[0013] The sum of the determined start execution time and the duration of the scheduled operation is calculated as the end execution time of the scheduled operation.

[0014] In a possible implementation, determining the earliest start time of the pending operations for each flux at the current moment includes:

[0015] Determine the pending operations for each flux at the current moment; and

[0016] For each flux of pending operations,

[0017] Determining, according to the ordered operation set, a predecessor operation of the operation to be queued, wherein, in the ordered operation set corresponding to the flux, the predecessor operation is the operation preceding the operation to be queued; and

[0018] The earliest start time of the operation to be scheduled is determined based at least on the end time of the preceding operation.

[0019] In one possible implementation, the method further includes:

[0020] Determine the execution equipment set of the target process based on the parameters of the automation process;

[0021] Determine, based on the flux number, the execution device set, and the ordered operation set, the devices associated with each operation in the ordered operation set, wherein the devices associated with each operation include at least an execution device of the operation, which is a device used to execute the operation; and

[0022] The release time of each device associated with each operation at the current moment is determined, where the release time represents the idle time of the device, and the release time of each device is 0 at the initial moment.

[0023] In a possible implementation, determining the earliest start time of the scheduled operation based at least on the end time of the preceding operation further includes:

[0024] Determine the maximum release time of each device associated with the pending operation at the current moment;

[0025] The earliest start time of the operation to be queued is determined based on the maximum value and the end time of the preceding operation.

[0026] In a possible implementation, after determining the start time and the end time of the scheduled operation, the method further includes:

[0027] The release time of the execution device of the scheduled operation is updated to the end execution time of the scheduled operation.

[0028] In a possible implementation, determining the earliest start time of the scheduled operation includes:

[0029] The larger one between the maximum value and the end time of the preceding operation is determined as the earliest start time of the operation to be queued.

[0030] In a possible implementation, determining the earliest start time of the scheduled operation includes:

[0031] Determining whether there is a slot conflict for the pending operation based on first occupancy information of a slot of the device associated with the pending operation and second occupancy information of the slot of the device at the current moment; and

[0032] If it is determined that there is a board position conflict for the operation to be scheduled, the earliest start time of the operation to be scheduled is determined to be a preset maximum time; wherein the preset maximum time is greater than the end time of the previous operation and the release time of any device.

[0033] In a possible implementation, after determining one of the operations to be discharged of each flux as the operation to be discharged, the method further includes:

[0034] Update the second occupancy information of the board position of the equipment associated with the operation.

[0035] In one possible implementation, the method further includes:

[0036] Determine the busy time of the scheduled operations of each flux at the current moment, where the busy time is equal to the cumulative duration of all unscheduled operations in the ordered operation set corresponding to the flux at the current moment;

[0037] One of the operations to be discharged for each flux is determined as the operation to be discharged, including:

[0038] Adopting the priority assignment principle, the priority of each operation to be scheduled is determined based on at least the earliest start time of each operation to be scheduled and the busy time of each operation to be scheduled at the current moment, and the one with the highest priority is determined as the operation to be scheduled;

[0039] Among them, the priority of the queued operation with a smaller earliest start time is higher; for multiple queued operations with the same earliest start time, the priority of the operation with a larger busy time is higher.

[0040] In one possible implementation, the method further includes:

[0041] Create an index for each operation in the ordered operation set corresponding to each flux, and determine the value of each index, wherein the earlier the operation is in the ordered operation set, the smaller the value of the index of the operation, and the index value of the same operation in different fluxes is the same;

[0042] Determine the priority of operations to be processed for each flux, including:

[0043] Determine the priority of the operations to be queued of each flux according to the earliest start time of each operation to be queued, the busy time of each operation to be queued, and the value of the first index at the current moment;

[0044] The first index is the index of each queued operation or the index of the preceding operation of the queued operation. For multiple queued operations with the same earliest start time and busy time, the smaller the index value, the higher the priority.

[0045] In a possible implementation, the difference between the index values ​​of two adjacent operations in the ordered operation set is 1. After determining one of the operations to be queued of each flux as the operation to be queued, the method further includes:

[0046] Update the index value of the pending operation of the current flux or the index of the predecessor operation of the pending operation, wherein the current flux is the flux to which the determined pending operation belongs, and the value of the updated index is equal to the value of the index before the update plus 1.

[0047] In one possible implementation, the method further includes:

[0048] Create a two-dimensional array of scheduling results according to the values ​​of the flux number, the ordered operation set, and the index of each operation in the ordered operation set;

[0049] The elements in the two-dimensional array include the index value of each operation in the ordered operation set corresponding to each flux, the start execution time of each operation, the end execution time of each operation, and the sequence number of the flux to which each operation belongs;

[0050] After determining the start execution time and the end execution time of the scheduled operation, the method further includes:

[0051] The two-dimensional array is updated according to the determined start execution time and end execution time of the operation to be queued, so that after the operations in each ordered operation set are all the operations to be queued, the target process is executed according to the updated two-dimensional array.

[0052] According to a second aspect of the present application, there is also provided a scheduling system for an automated process, comprising:

[0053] A first determination module is configured to determine, based on parameters of the automated process, the number of fluxes of a target process in the automated process and an ordered operation set corresponding to each flux, wherein the number of fluxes represents the number of times the target process is repeatedly executed and is greater than 1, and the ordered operation set is an ordered collection of operations involved in completing a single target process;

[0054] A second determination module is configured to determine the earliest start time of the scheduled operation of each flux at the current moment based on the number of fluxes and the ordered operation set, wherein the scheduled operation of each flux is the first unscheduled operation in the ordered operation set corresponding to the flux, and the unscheduled operation is an operation whose execution time has not yet been determined;

[0055] A third determining module is configured to determine one of the operations to be scheduled of each flux as the operation to be scheduled at a current moment based at least on the earliest start time of each operation to be scheduled; and

[0056] The fourth determination module is used to determine the execution time of the scheduled operation at the current moment, and then execute the step of determining the earliest start time of the scheduled operation of each flux at the next moment, until the scheduling of all operations in each ordered operation set is completed.

[0057] According to a third aspect of the present application, an electronic device is also provided, including a processor and a memory, wherein computer program instructions are stored in the memory, and the computer program instructions are used by the processor to execute the scheduling method of the above-mentioned automated process when the processor is running.

[0058] According to a fourth aspect of the present application, a storage medium is further provided, on which program instructions are stored. The program instructions are used to execute the above-mentioned scheduling method for the automated process when running.

[0059] This automated process scheduling method schedules each operation within the ordered set of operations corresponding to each flux, determining the execution time of each operation by comprehensively considering the performance of each flux. This scheduling method effectively reduces equipment waiting time, maximizes equipment utilization, and results in more efficient scheduling and automated process execution.

[0060] The Summary of the Invention introduces a series of simplified concepts that will be further described in detail in the Detailed Description of the Invention. This Summary of the Application does not intend to limit the key features and essential technical features of the claimed technical solution, nor does it intend to determine the scope of protection of the claimed technical solution.

[0061] The advantages and features of the present application are described in detail below with reference to the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS

[0062] The following drawings of this application are hereby incorporated as part of this application for understanding this application. The drawings show the embodiments of this application and their descriptions, and are used to explain the principles of this application. In the drawings,

[0063] FIG1 is a schematic flow chart showing a method for scheduling an automated process according to an embodiment of the present application;

[0064] FIG2 a shows a scheduling sequence diagram after scheduling according to a scheduling method in the prior art;

[0065] FIG2 b shows a scheduling sequence diagram after scheduling by a scheduling method according to an embodiment of the present application;

[0066] FIG3 shows a flow chart of a method for scheduling an automated process according to another embodiment of the present application;

[0067] FIG4 shows a schematic block diagram of a scheduling system for an automated process according to an embodiment of the present application; and

[0068] FIG5 shows a schematic block diagram of an electronic device according to an embodiment of the present application. DETAILED DESCRIPTION

[0069] In the following description, a large amount of details are provided to enable a thorough understanding of the present application. However, it will be appreciated by those skilled in the art that the following description is merely illustrative of preferred embodiments of the present application, and the present application may be implemented without one or more of these details. In addition, in order to avoid confusion with the present application, some technical features well known in the art are not described in detail.

[0070] As mentioned above, automated processes often include target processes that need to be executed multiple times, that is, target processes with multiple fluxes. Prior art scheduling methods typically schedule target processes for each flux one by one. These scheduling methods independently schedule each operation within each target process, without considering other fluxes. Consequently, this scheduling method does not fully utilize equipment, resulting in low efficiency in the execution of automated processes.

[0071] To at least partially address the above-mentioned technical issues, according to one aspect of the present application, a method for scheduling automated processes is provided. During the scheduling process, this method considers the earliest start time of each scheduled operation for each throughput to determine the current scheduled operation, thereby enabling more rational scheduling of automated processes. The resulting scheduling can effectively reduce equipment waiting time, maximize equipment utilization, and thereby effectively improve the efficiency of automated process execution.

[0072] Fig. 1 shows a schematic flow chart of a method 100 for scheduling an automated process according to an embodiment of the present application. As shown in the figure, the method 100 includes steps S120, S140, S160, and S180.

[0073] In step S120, based on the parameters of the automated process, the number of fluxes of the target process in the automated process and the ordered operation set corresponding to each flux are determined. The flux number represents the number of times the target process is repeated and is greater than 1. The ordered operation set is an ordered collection of operations involved in completing a single target process.

[0074] According to an embodiment of the present application, the target process can be any local process in the automated process. Of course, in some special examples, the target process can also be a complete process in the automated process. The content of the target process can be arbitrary and is not limited by this application. In an embodiment of the present application, the target process is executed multiple times, so it can also be said that the flux number of the target process is greater than 1. The flux number and ordered operation set of the target process can be obtained by any suitable method. In one example, the user can edit the flux number of the target process in the automated process through the operable controls in the process editing interface. In this step, the flux number of the target process can be obtained by parsing the automated process. Similarly, the ordered operation set corresponding to each flux can be obtained by parsing the data after parsing the automated process. The ordered operation set can be an ordered set of each operation involved in completing a single target process. Therefore, the ordered operation sets corresponding to different fluxes can be the same. The only difference is that the consumables operated by each operation in the ordered operation sets of different fluxes are different.

[0075] The following is an example of a target process being a pretreatment process in a laboratory automation system. It is understood that in a laboratory automation process, experimental consumables (such as orifice plates) used subsequently are usually pretreated before the experiment / test. For example, to prevent the orifice plate from being dirty and interfering with the experiment, the orifice plate needs to be cleaned. Or if some enzymes need to be added to the orifice plate according to experimental requirements, pretreatment equipment is required. For example, the pretreatment equipment is a device or equipment pool in which only the robot arm transfers the plate in the pre-operation and post-operation. The corresponding pretreatment equipment in the pretreatment process not only corresponds to the pretreatment operation, but also corresponds to some auxiliary operations done for the pretreatment operation, and these auxiliary operations include pre-operations performed before the pretreatment operation and / or post-operations performed after the pretreatment operation. The auxiliary equipment in this embodiment may include transport equipment such as a robot arm. Take the pretreatment process where the target process is to clean the orifice plate as an example. The pretreatment equipment includes a sequential access plate station, a random access plate station, a robot arm, and a plate washer. The sequential access plate station is used to store a plurality of stacked well plates, and the random access plate station includes a plurality of positions, each position being used to store one well plate.

[0076] For example, the pretreatment process for cleaning a single orifice plate primarily includes the following four steps: 1. The robotic arm moves the orifice plate (consumables) from the sequential access plate station to a location in the random access plate station for storage; 2. The robotic arm moves the orifice plate from the random access plate station to a plate washer; 3. The plate washer washes the orifice plate; 4. The robotic arm moves the orifice plate from the plate washer back to the random access plate station; 5. The robotic arm moves the orifice plate from the random access plate station back to the sequential access plate station. It is understandable that in this pretreatment process, cleaning the orifice plate with the plate washer takes a considerable amount of time. Besides the step of cleaning the orifice plate with the plate washer, the remaining four steps are transfer operations performed by the robotic arm, and each operation also takes a certain amount of time. Furthermore, in some cases, the consumables (orifice plate) need to remain in the transfer location (random access plate station) for at least a period of time before being transferred to the next location. Therefore, the time the consumables remain in the transfer location also needs to be considered in this pretreatment process. Referring to Table 1 below, for the case where the target process is the pretreatment process described above, the target process for each flux includes the seven operations shown in the table (each operation corresponds to a step), and each operation has its own corresponding time. As shown in Table 1, the orifice plate stays at the random access plate station for at least 1 second.

[0077] Table 1

[0078] In an embodiment of the present application, the number of executions of the above-mentioned target process or the number of fluxes can be m, and m can be any number greater than 1. It is understood that in the real-time example of the present application, the target process of each flux is serial, but the target processes of m fluxes are not serial, and there may be parallel situations to ensure the execution efficiency of the automated process. Below, the scheduling method for executing the above-mentioned target process 6 times will be explained by taking the flux number m=6 as an example. It is understood that for the target process, the ordered operation set corresponding to each flux can be an operation set composed of operation 1, operation 2, operation 3, operation 4, operation 5, operation 6, and operation 7 arranged in sequence in the table.

[0079] Step S140: Determine the earliest start time of the scheduled operation for each flux at the current moment based on the number of fluxes and the ordered operation set. The scheduled operation for each flux is the first unscheduled operation in the ordered operation set corresponding to the flux. Unscheduled operations are operations for which the execution time has not yet been determined.

[0080] According to an embodiment of the present application, the scheduling problem for the target flow of 6 fluxes can be converted into a scheduling problem for 42 operations. In other words, the execution time of each operation in the ordered operation set of the 6 fluxes can be determined one by one. In this step, the current moment can be a certain moment in the scheduling process. For example, at the beginning of the scheduling, the execution time of one operation among the 42 operations (for simplicity, it can be called the first operation, which can be any one of the operations 1 of the 6 fluxes) is first determined. Afterwards, at the next moment, the execution time of the second operation is determined... Finally, at the last moment of the scheduling, the execution time of the 42nd operation is determined. Taking the current moment as the moment when the execution time of the 20th operation is determined as an example, at this time, the execution times of operations 1, 2, and 3 may have been determined in flux 1. Therefore, operations 4, 5, 6, and 7 of flux 1 at the current moment are all unscheduled operations. However, the order of operation 4 in the ordered operation set precedes the other unscheduled operations. Therefore, the operation to be scheduled for flux 1 at the current moment is operation 4.

[0081] In this step, the earliest start time of operation 4 of flux 1 can be determined using any appropriate determination logic based on the number of fluxes and the ordered operation set. The method described in the above example can be used to determine the scheduled operations for each flux at each current moment, and the earliest start time of each scheduled operation for each flux can be determined using an appropriate calculation method. For example, at the start of scheduling, the earliest start time of operation 1 for each flux is determined to be 0. In the intermediate stages of scheduling, the earliest start time of each scheduled operation for each flux can be determined based on at least the execution time of the scheduled operations (operations with determined execution times) in the ordered operation set corresponding to that flux and the execution time of scheduled operations in other fluxes that are associated with the scheduled operation. For example, the scheduled operations associated with the scheduled operation can be the same operations as the devices occupied by the scheduled operation. For example, the corresponding devices can be assigned to the operations of each flux based on the devices required to be occupied by each device in the ordered operation set of each flux and the devices executing the target process. For example, the correspondence between operations and devices can be determined, and the operations associated with each scheduled operation can be determined based on this correspondence. Furthermore, the earliest start time for a scheduled operation can be determined based on the execution time of scheduled operations in the ordered operation set corresponding to the flux and the execution time of scheduled operations associated with the scheduled operation in other fluxes.

[0082] Specifically, taking the above-mentioned pretreatment process as an example, each flux can be assigned a pretreatment device. Then, related operations in the fluxes corresponding to the same device can be associated. The execution time of the associated operations can then be considered when determining the earliest start time for these operations. It is understandable that since the main operations in the pretreatment process are performed by the pretreatment device, in some cases, due to the limited number of pretreatment devices or the limited workstations of the pretreatment devices, it is also necessary to consider the occupancy of the pretreatment devices when scheduling. For example, in the above example, the pretreatment equipment only includes two plate washers: plate washer 1 and plate washer 2. When plate washer 1 is performing operation 4 of the pretreatment process of one flux, if the pretreatment process of other fluxes wants to perform operation 4, it can only use plate washer 2, that is, place the well plate in plate washer 2 for cleaning. If both plate washers are occupied at a certain moment, the pretreatment process of the other flux cannot perform operation 4 and can only perform the plate washing operation when the plate washer is free.

[0083] For example, if the pretreatment equipment only includes two plate washers (e.g., plate washer 1 and plate washer 2), and the number of pretreatment flow is 6, a plate washer can be allocated for each flow. As can be seen from Table 1, the operating time of the plate washer is much longer than the time of other operations. Therefore, the plate washers can be reasonably allocated so that there is an available plate washer in each flow.

[0084] Table 2

[0085] Thus, the operation 4 in the pre-treatment process of flux 1, flux 3, and flux 5 can be performed using plate washer 1, and the operation 4 in the pre-treatment process of flux 2, flux 4, and flux 6 can be performed using plate washer 2. Exemplarily, it is also possible to establish an association relationship between the plate washing operations concentrated in the ordered operations of the fluxes corresponding to the same plate washer according to the corresponding relationship between plate washer and flux. For example, in conjunction with Table 1 and Table 2, the operation to be arranged for flux 1 at the current moment is operation 5, the operation to be arranged for flux 3 is also operation 5, and the operation to be arranged for flux 6 is operation 4. It is understandable that since flux 1, flux 3, and flux 6 all correspond to plate washer 2, the plate washing operations (operation 4) of these three fluxes have an association relationship. Moreover, at this moment, the plate washing operations of flux 1 and flux 3 have all determined execution time. Therefore, the execution time of the plate washing operation of flux 6 can be determined according to the execution time of the plate washing operation in flux 1 and the execution time of the plate washing operation in flux 3 and the execution time of operation 3 in flux 1. For example, the start execution time of the plate washing operation of flux 6 can be determined based on the maximum of the end execution time of the plate washing operation in flux 1, the end execution time of the plate washing operation in flux 3, and the end execution time of operation 3 in flux 1. Of course, in other examples, other factors that affect scheduling can also be considered to accurately determine the execution time of the scheduled operations of each flux at the current moment.

[0086] Step S160: determining one of the operations to be scheduled of each flux as the operation to be scheduled at the current moment according to at least the earliest start time of each operation to be scheduled.

[0087] In one example, the pending operation of the flux with the earliest determined start time can be directly determined as the operation to be scheduled at the current moment. In other examples, other screening factors can be combined to screen out one operation to be scheduled at the current moment from the pending operations of each flux, and this application does not limit this.

[0088] Step S180, determining the execution time of the scheduled operation at the current moment, and then proceeding to determine the earliest start time of the scheduled operation of each flux at the next moment, until the scheduling of all operations in each ordered operation set is completed.

[0089] For example, after determining the execution time of operation 1 of flux 1, the step of determining the earliest start time of the operations to be scheduled for each flux at the next moment can be performed, until the scheduling of all operations in each ordered operation set is completed. For example, after determining an operation to be scheduled, the scheduling pattern consisting of all the operations to be scheduled that have been determined can be called the current pattern. The operations to be scheduled for each flux at the current moment can be the operations to be scheduled for each flux under the current pattern. In other words, they can be the operations that need to be started first among all operations that do not specify a start time for each flux under the current pattern. In other words, after the operations to be scheduled are determined, they will not be modified, and new scheduling will only be performed under the currently determined state. In this way, the sequential execution of the program logic can be guaranteed without confusion.

[0090] Figure 2a shows a scheduling sequence diagram after scheduling according to a scheduling method in the prior art. Figure 2b shows a scheduling sequence diagram after scheduling according to a scheduling method in one embodiment of the present application. As shown in Figure 2a, in the prior art, all operations of the previous flux are arranged before the operations of the next flux are arranged. That is, after flux 1 is arranged, flux 2 is arranged, after flux 2 is arranged, flux 3 is arranged, and so on. It can be seen that such an arrangement will cause the efficiency of the plate washer to decrease. The interval between the two operations of plate washer 1 is 227 seconds, and the interval between the two operations of plate washer 2 is 181 seconds and 228 seconds respectively, resulting in extremely low process execution efficiency. For a pretreatment process with a flux number of 6, the total time consumed to execute the entire process is 25 minutes and 36 seconds. If the flux continues to increase, as the scheduling continues, the idle time of the same plate washer will continue to increase.

[0091] As shown in Figure 2b, according to the scheduling method of the automated process of the embodiment of the present application, the waiting time of the plate washer can be effectively shortened. The interval between the two operations of plate washer 1 is shortened to 90 seconds, and the interval between the two operations of plate washer 2 is shortened to 180 seconds and 90 seconds respectively. Even if the number of throughputs is further increased, the interval between the two operations of plate washer 1 and plate washer 2 will remain within 90 seconds. For the pretreatment process with a throughput of 6, the total time consumed by the entire process is shortened to 22 minutes and 31 seconds. Compared with the prior art, after scheduling the target process according to the scheduling method of the embodiment of the present application, the execution time of the target process can be greatly shortened.

[0092] This automated process scheduling method schedules each operation within the ordered set of operations corresponding to each flux, determining the execution time of each operation by comprehensively considering the performance of each flux. This scheduling method effectively reduces equipment waiting time, maximizes equipment utilization, and results in more efficient scheduling and automated process execution.

[0093] Exemplarily, determining the execution time of the scheduled operation at the current moment may include: determining the earliest start time of the scheduled operation as the start execution time of the scheduled operation; and calculating the sum of the determined start execution time and the duration of the scheduled operation as the end execution time of the scheduled operation.

[0094] Taking Flux 1 as an example, if Operation 1 of Flux 1 is determined to be a scheduled operation, its start time can be determined to be its earliest start time t0. Then, its end time can be calculated. As shown in Table 1, Operation 1 lasts for 5 seconds, so the end time of Operation 1 of Flux 1 can be determined to be t0+5.

[0095] This solution has simpler calculation logic, less computational effort, and more accurate execution time, enabling real-time and precise scheduling of automated processes.

[0096] For example, in step S140, the earliest start time of the pending operation of each flux at the current moment is determined, including:

[0097] Step S141: Determine the pending operations for each flux at the current moment.

[0098] Step S142: for each operation to be queued of the flux, determine the predecessor operation of the operation to be queued according to the ordered operation set.

[0099] Step S143: For each operation to be scheduled of each flux, determine the earliest start time of the operation to be scheduled based at least on the end time of the preceding operation.

[0100] Continuing to refer to Figure 2b, when operation 3 of flux 2 ends, the earliest start time of the operations to be queued for each flux at the current moment is determined. First, step S141 is executed to determine the operations to be queued for each flux at the current moment. At this time, the operation to be queued for flux 1 is operation 5, the operation to be queued for flux 2 is operation 4, and the operations to be queued for fluxes 3, 4, 5, and 6 are all operation 1. Then, step S142 can be executed to determine the preceding operation of each flux to be queued according to the ordered operation set shown in Table 1. The preceding operation is the previous operation of the operation to be queued. The preceding operation of flux 1 is operation 4, the preceding operation of flux 2 is operation 3, and fluxes 3, 4, 5, and 6 have no preceding operation. Next, step S143 can be executed to determine the earliest start time of the operation to be queued for each flux at least based on the end time of the preceding operation. The preceding operation of flux 1 ended approximately 179 seconds ago, the preceding operation of flux 2 has already ended, and fluxes 3-6 have no preceding operations. Therefore, the earliest start time of the operations to be scheduled is the current time. Operation 4 of flux 2 and one of operations 1 of fluxes 3-6 can be determined as the current scheduled operation. For example, the order of these operations 1 can also be determined by combining other considerations to comprehensively determine the current scheduled operation. This solution will be explained later and will not be repeated here.

[0101] The above solution of determining the earliest start time of each operation to be scheduled based on the end time of its predecessor operation has a more reasonable execution logic and can more accurately determine the earliest start time of the operation to be scheduled, thereby making the scheduling result more reasonable.

[0102] Exemplarily, the scheduling method for an automated process further includes: determining an execution device set for a target process based on parameters of the automated process; determining the devices associated with each operation in the ordered operation set based on the throughput number, the execution device set, and the ordered operation set; wherein the devices associated with each operation include at least the execution device of the operation, which is a device used to execute the operation; and determining a release time for each device associated with each operation at a current moment. The release time represents the idle time of the device, and initially, the release time of each device is 0.

[0103] The row device set can be obtained based on the results of parsing the automated process. Taking Operation 1 of Throughput 1 as an example, the robotic arm moves the well plate from the sequential access plate station to the random access plate station. The execution device set includes the sequential access plate station, the robotic arm, and the random access plate station. For example, the robotic arm mentioned above. It is understandable that a robotic arm cannot simultaneously perform the following two tasks: moving the well plate from the sequential access plate station to the random access plate station, and moving the well plate from the random access plate station to the plate washer. Therefore, when scheduling, it is necessary to consider whether the execution device is currently occupied.

[0104] In this step, any suitable determination logic can be used to determine the release time of each device associated with each operation at the current moment, based on the number of fluxes, the set of executing devices, and the set of ordered operations. For example, consider operation 4 of flux 1. This is a plate wash operation, so the executing device for this operation is plate washer 1. Therefore, its associated devices include at least plate washer 1. In some instances, the scheduled operation is a transport operation, such as operation 3 of flux 1. This operation requires a robotic arm to transport consumables from the random access plate station to the plate washer. Therefore, it is necessary to ensure not only that the robotic arm is unoccupied, but also that the plate washer is unoccupied. Therefore, the associated devices of operation 3 may also include the incoming device for this operation, i.e., the device to be transported after transport, i.e., the plate washer. In other cases, the associated devices of a transport operation may also include the outgoing device, i.e., the device occupied before transport. The release time represents the idle time of the device, i.e., the time at which the device is unoccupied and available for the next task. Initially, the release time of each device is 0. As the device is used, its release time accumulates. In this way, by setting the release time of the device, you can avoid the device from malfunctioning. In subsequent scheduling, the release time of each device will be modified according to the current arrangement.

[0105] Exemplarily, step S143 determines the earliest start time of the scheduled operation based at least on the end time of the preceding operation, and also includes: determining the maximum value of the release time of each device associated with the scheduled operation at the current moment, and determining the earliest start time of the scheduled operation based on the maximum value and the end time of the preceding operation.

[0106] As mentioned above, if any of the devices associated with the pending operation is busy with other tasks, the pending operation cannot begin. The pending operation cannot begin if the preceding operation has not yet completed. Therefore, the pending operation can only begin after all devices are released and the preceding operation has completed.

[0107] Exemplarily, determining the earliest start time of the scheduled operation includes determining the larger of the maximum value and the end time of the predecessor operation as the earliest start time of the scheduled operation. For example, if the end time of the predecessor operation is earlier than the maximum release time of the associated device, the maximum release time of the associated device is determined as the earliest start time of the scheduled operation. For another example, if the determined end time of the predecessor operation is greater than the maximum release time of the associated device, the earliest start time of the scheduled operation may be the end time of the predecessor operation.

[0108] In this solution, the earliest start time for a scheduled operation is determined based on the maximum release time of its associated devices and the end time of its predecessor. This scheduling logic is more reasonable and the scheduling results are more accurate.

[0109] Exemplarily, after determining the start execution time and the end execution time of the scheduled operation, the scheduling method for an automated process further includes: updating the release time of the execution device of the scheduled operation to the end execution time of the scheduled operation.

[0110] Continuing with the robotic arm example, after completing its movement, the arm becomes idle. Therefore, the release time of the robotic arm can be updated to the end time of the movement, allowing the arm to be immediately deployed for the next task. This solution of updating device release times in real time not only ensures the accuracy of the overall scheduling results, but also ensures high scheduling efficiency.

[0111] Exemplarily, determining the earliest start time of the pending operation includes: determining whether there is a slot conflict for the pending operation based on first occupancy information of a slot for a device associated with the pending operation and second occupancy information of the slot for the device at the current moment; if it is determined that there is a slot conflict for the pending operation, the earliest start time of the pending operation may be set to a preset maximum time. The preset maximum time is greater than the end time of the preceding operation and the release time of any device.

[0112] Referring to Figure 2a, taking fluxes 3, 4, 5, and 6 as examples, the random access plate station can provide two entry slots and two exit slots. It can be seen that before flux 3 transfers the plate to plate washer 1, operation 2 occupies one entry slot. Before flux 4 transfers the plate to plate washer 2, operation 2 also occupies one entry slot. At this point, operation 1 in the schedule for fluxes 5 and 6 must be postponed because there are no available slots for the robot arm to place the plate. Operation 5, which transfers the plate from the plate washer to the random access plate station, may also be forced to postpone due to occupied exit slots.

[0113] For example, the random access plate station includes entry plate position 1, which provides orifice plates to plate washer 1. After operation 2 is executed in flux 3, the second occupancy information for entry plate position 1 is +1 (indicating occupancy). At this time, operation 1 in flux 5 involves moving an orifice plate to entry plate position 1. Therefore, the first occupancy information indicates that this pending operation occupies entry plate position 1. Based on the first and second occupancy information, it can be concluded that there is a plate position conflict at entry plate position 1.

[0114] Combining Figures 2a and 2b with the above information, we can conclude that the operating times of the robot and plate washer are fixed, while the times of Operations 2 and 6 can vary based on scheduling. This means that depending on the scheduling, the plate may be held up at the random access station. In other words, since the duration of a plate position conflict is uncertain, a value greater than the overall process flow can be set to postpone the earliest start time of the scheduled operation as much as possible. This prevents false starts in the event of a plate position conflict, which could lead to machine collisions, damage to equipment, and plate positions.

[0115] Exemplarily, after determining one of the operations to be scheduled of each flux as the operation to be scheduled, the scheduling method of the automated process further includes: updating second occupancy information of a board position of equipment associated with the operation to be scheduled.

[0116] As mentioned above, the timing of slot conflicts cannot be determined. However, once a pending operation is determined as a scheduled operation, the slot occupancy status of the scheduled operation is also determined, meaning the second occupancy information is a fixed value. If the slot is occupied, the value of the second occupancy information is increased by 1; if the slot is released, the value of the second occupancy information is decreased by 1.

[0117] For example, the occupancy of the plate washer can also be regarded as the plate position occupancy. The operation to be scheduled is operation 3 with a throughput of 3. Since operation 3 releases the plate position 1 at the entrance and occupies plate washer 1, the occupancy of the plate position 1 at the entrance is updated to 0, and the occupancy of plate washer 1 is updated to 1. The specific plate position occupancy information is shown in the following table:

[0118] Table 3

[0119] Exemplarily, the scheduling method for an automated process further includes: determining a busy time of scheduled operations of each flux at a current moment, wherein the busy time is equal to the cumulative duration of all unscheduled operations in the ordered operation set corresponding to the flux at the current moment.

[0120] Table 4

[0121] Flux 1 has only operation 7 left to perform, so the busy time is 45 seconds for operation 7. Flux 2 has the fifth, sixth, and seventh operations left to perform, totaling 91 seconds for the fifth, sixth, and seventh operations, so the busy time is 91 seconds, and so on.

[0122] In step S160, one of the pending operations in each flow is determined as the operation to be scheduled. This includes: using a priority assignment principle, the priority of each pending operation is determined based on at least the earliest start time of each pending operation and the busy time of each pending operation at the current moment, and the operation with the highest priority is determined as the operation to be scheduled. The priority of the pending operation with the shorter earliest start time is higher; for multiple pending operations with the same earliest start time, the priority of the operation with the longer busy time is higher.

[0123] Continuing with Table 4, Table 4 corresponds to an example in which a random access board station can provide one entry board slot. The earliest start time for the current operation of fluxes 4, 5, and 6 is extremely high because the first occupancy information for fluxes 4, 5, and 6 indicates that they occupy the entry board slot. Flux 3 occupies the entry board slot, and its second occupancy information is 1, resulting in a board slot conflict. In this case, fluxes 1, 2, and 3 can be scheduled. Fluxes 1 and 3 have the earliest start times. Comparing their busy times, flux 3 has a longer busy time, so current operation 2 for flux 3 is prioritized. Since no board slots have been released or newly occupied for operation 2, there is no need to update the second occupancy information for the device to which this operation belongs.

[0124] In the above scheme, on the basis of considering the earliest start time of each operation to be scheduled, the busy time of each flux is also fully considered, and the operations to be scheduled in the flux with a large busy time are given a higher priority execution weight. In this way, the current scheduled operations can be determined quickly and accurately, the scheduling logic is more reasonable, and the execution efficiency of the automated process is also higher.

[0125] Exemplarily, the automated process scheduling method further includes: creating an index for each operation in the ordered operation set corresponding to each flux, and determining a value for each index. The earlier an operation is in the ordered operation set, the smaller the value of the index of the operation, and the index value of the same operation in different fluxes is the same.

[0126] The following is a detailed introduction in conjunction with Table 5.

[0127] Table 5

[0128] Table 5 is a table generated by adding indexes to Table 4. The index value is the sequence number of each operation. For example, the difference between the index values ​​of two adjacent operations in the ordered operation set is 1. For example, the index value of operation 1 is 1, and the index value of operation 2 is 2. The index value is independent of the flux. The index value of operation 1 of flux 1 is 1, and the index value of operation 1 of flux 2 is also 1.

[0129] Exemplarily, determining the priority of the operations to be queued of each flux includes: determining the priority of the operations to be queued of each flux according to the earliest start time of each operation to be queued at the current moment, the busy time of each operation to be queued, and the value of the first index.

[0130] The first index can be the index of each pending operation or the index of the preceding operation. For example, if the pending operation for flux 1 is operation 7 and the preceding operation is operation 6, the first index value is 6. For fluxes 4, 5, and 6, since there are no preceding operations, the first index value is -1 by default. For multiple pending operations with the same earliest start time and busy time, the smaller the index, the higher the priority.

[0131] This solution not only considers the earliest start time of each scheduled operation and the busy time of the scheduled operations of each flux, but also fully considers the task completion status of each flux, and gives higher priority execution weights to the scheduled operations in the flux with low task completion. In this way, the task completion status of each flux can be more balanced and the scheduling can be more reasonable.

[0132] Exemplarily, after determining one of the pending operations of each flux as a scheduled operation, the automated process scheduling method further includes: updating the index value of the pending operation of the current flux or the index of the predecessor operation of the pending operation. The current flux is the flux to which the scheduled operation is determined to belong, and the updated index value is equal to the previous index value plus 1.

[0133] As mentioned above, once a pending operation is determined to be a scheduled operation, it will not be modified and will only be re-arranged within the current structure. Therefore, the pending operation of the flux becomes the next operation after the scheduled operation. Taking the schedule shown in Table 5 as an example, the first index is the index of the previous operation of the pending operation. Operation 2 of Flux 3 is determined to be the scheduled operation, and the first index is updated to 2. This means that the pending operation is now Operation 2, and therefore the previous operation of Flux 3 becomes Operation 2, and the first index value is updated to 2.

[0134] Exemplarily, the scheduling method for an automated process further includes: creating a two-dimensional array of scheduling results according to the flux number, the ordered operation set, and the index value of each operation in the ordered operation set.

[0135] Exemplarily, based on the number of fluxes m and the number of flux steps n, the operations for each flux include:

[0136] {o 11 ,o 12 ,…,o 1n};{o 21 ,o 22 ,…,o 2n};…;{o m1 ,o m2 ,…,o mn}

[0137] Thus, the operations of all fluxes constitute the operation set:

[0138] {o 11 ,o 12 ,…,o 1n ,o 21 ,o 22 ,…,o 2n ,…,o m1 ,o m2 ,…,o mn}

[0139] The variables to be optimized are the current pattern {t0,t1,t2,…,t k ,t k-1}Where k=m*n, represents the starting time of each flux.

[0140] This gives o 11 Corresponding to t0, o 12 Corresponding to t1... until o mn Corresponding to t k-1 , thereby obtaining a two-dimensional array of scheduling results, which can be shown in Table 6.

[0141] Table 6

[0142] According to the data in Table 6 (the data in Table 6 are initial values, and are updated as pending operations are gradually determined to be scheduled operations), the elements in the two-dimensional array include the index value of each operation in the ordered operation set corresponding to each flux, the start execution time of each operation, the end execution time of each operation, and the sequence number of the flux to which each operation belongs. The initial value of the start time is -1, indicating that the calculation has not yet started.

[0143] The above method has a small amount of calculation and can effectively save computing resources and storage resources.

[0144] For example, after determining the start and end times of the scheduled operations, the automated process scheduling method further includes updating a two-dimensional array based on the determined start and end times of the scheduled operations, such that after all operations in the ordered operation sets are scheduled operations, the target process is executed based on the updated two-dimensional array. This solution reduces computational complexity, and the ultimately stored scheduling results can be updated two-dimensional data, effectively conserving computing and storage resources.

[0145] Figure 3 illustrates a flowchart of a method for scheduling an automated process according to another embodiment of the present application. As shown in Figure 3, each operation in the process can be assigned an available device based on the device pool number in the input parameter data. The input parameter data refers to the data parsed based on the user-configured process. Preprocessing devices are allocated sequentially based on the number of devices and flux. Then, based on the number of fluxes, an index representing the operation currently being scheduled can be created and assigned a value. Next, a two-dimensional array can be created to record the scheduling results for each flux and each step, including start and end times. All device information can then be retrieved and a device release table generated. The device release table defaults to 0; during scheduling, the release time of each device can be modified based on the current configuration. For example, the pending operations for each flux under the current configuration are determined. The earliest start time and the busy time of each pending operation under the current configuration are determined, and the pending operation is selected and designated as the operation to be scheduled. The pending operations are updated, including the pending operations identified as the operation to be scheduled in the current loop, with the pending operation sequence number of the corresponding flux increased by 1. After confirmation, update the device release time and device board cover status, record the results of this arrangement, and enter the next cycle.

[0146] According to a second aspect of the present application, a scheduling system for an automated process is also provided. FIG4 shows a schematic block diagram of a scheduling system 400 for an automated process according to an embodiment of the present application. As shown in the figure, the scheduling system 400 includes:

[0147] A first determination module 410 is configured to determine, based on parameters of the automated process, the number of fluxes of a target process in the automated process and the ordered operation set corresponding to each flux. The number of fluxes represents the number of times the target process is repeated and is greater than 1. The ordered operation set is an ordered collection of operations required to complete a single target process.

[0148] A second determining module 420 is configured to determine the earliest start time of the scheduled operation of each flux at the current moment based on the number of fluxes and the ordered operation set, wherein the scheduled operation of each flux is the first unscheduled operation in the ordered operation set corresponding to the flux, and the unscheduled operation is an operation whose execution time has not yet been determined;

[0149] A third determining module 430 is configured to determine one of the operations to be scheduled of each flux as the operation to be scheduled at the current moment based at least on the earliest start time of each operation to be scheduled; and

[0150] The fourth determination module 440 is used to determine the execution time of the scheduled operation at the current moment, and then execute the step of determining the earliest start time of the scheduled operation of each flux at the next moment, until the scheduling of all operations in each ordered operation set is completed.

[0151] According to a third aspect of the present application, an electronic device is also provided. Figure 5 shows a schematic block diagram of an electronic device 500 according to an embodiment of the present application. As shown, the electronic device 500 includes a processor 510 and a memory 520. The memory 520 stores computer program instructions, which, when executed by the processor 510, are used to execute the above-described automated process scheduling method 100.

[0152] According to a fourth aspect of the present application, a storage medium is also provided. Program instructions are stored on the storage medium, and when executed, the program instructions are used to execute the above-described automated process scheduling method 100. The storage medium may include, for example, an erasable programmable read-only memory (EPROM), a compact disc read-only memory (CD-ROM), a USB memory, or any combination of the above storage media. The storage medium may be any combination of one or more computer-readable storage media.

[0153] A person skilled in the art can understand the specific implementation scheme and beneficial effects of the scheduling system, electronic device and storage medium of the above-mentioned automated process by reading the relevant description of the scheduling method of the above-mentioned automated process. For the sake of brevity, they will not be repeated here.

[0154] Example

[0155] Example 1. A method for scheduling an automated process, comprising:

[0156] Determine, based on parameters of an automated process, a flux number of a target process in the automated process and an ordered operation set corresponding to each flux, wherein the flux number represents the number of times the target process is repeatedly executed, the flux number is greater than 1, and the ordered operation set is an ordered collection of operations involved in completing a single target process;

[0157] Determine, based on the number of fluxes and the ordered operation set, the earliest start time of the scheduled operation of each flux at the current moment, wherein the scheduled operation of each flux is the first unscheduled operation in the ordered operation set corresponding to the flux, and the unscheduled operation is an operation whose execution time has not yet been determined;

[0158] Determining one of the pending operations of each flux as the operation to be scheduled at the current moment based on at least the earliest start time of each pending operation; and

[0159] Determine the execution time of the scheduled operation at the current moment, and then proceed to determine the earliest start time of the scheduled operation of each flux at the next moment, until the scheduling of all operations in each ordered operation set is completed.

[0160] Embodiment 2. The method for scheduling an automated process according to embodiment 1, wherein determining the execution time of the scheduled operation at the current moment comprises:

[0161] Determine the start time of the scheduled operation based on the earliest start time of the scheduled operation; and

[0162] The sum of the determined start execution time and the duration of the scheduled operation is calculated as the end execution time of the scheduled operation.

[0163] Embodiment 3. The method for scheduling an automated process according to embodiment 1 or 2, wherein determining the earliest start time of each operation to be scheduled for each flux at the current moment comprises:

[0164] Determine the pending operations for each flux at the current moment; and

[0165] For each flux of pending operations,

[0166] Determining a predecessor operation of the operation to be queued according to the ordered operation set, wherein in the ordered operation set corresponding to the flux, the predecessor operation is the operation preceding the operation to be queued; and

[0167] The earliest start time of the operation to be scheduled is determined based at least on the end time of the preceding operation.

[0168] Embodiment 4. The method for scheduling an automated process according to any one of embodiments 1 to 3, wherein the method further comprises:

[0169] Determining an execution device set for the target process based on parameters of the automation process;

[0170] Determining, based on the flux number, the execution device set, and the ordered operation set, the devices associated with each operation in the ordered operation set, wherein the devices associated with each operation include at least an execution device of the operation, which is a device used to execute the operation; and

[0171] The release time of each device associated with each operation at the current moment is determined, wherein the release time represents the idle time of the device, and the release time of each device is 0 at the initial moment.

[0172] Embodiment 5. The method for scheduling an automated process according to any one of embodiments 1 to 4, wherein determining the earliest start time of the scheduled operation based at least on the end time of the preceding operation further comprises:

[0173] Determine the maximum release time of each device associated with the pending operation at the current moment;

[0174] The earliest start time of the operation to be queued is determined according to the maximum value and the end time of the preceding operation.

[0175] Embodiment 6. The method for scheduling an automated process according to any one of embodiments 1 to 5, wherein, after determining the start execution time and the end execution time of the scheduled operation, the method further comprises:

[0176] The release time of the execution device of the scheduled operation is updated to the end execution time of the scheduled operation.

[0177] Embodiment 7. The method for scheduling an automated process according to any one of embodiments 1 to 6, wherein determining the earliest start time of the operation to be scheduled comprises:

[0178] The larger one between the maximum value and the end time of the preceding operation is determined as the earliest start time of the operation to be queued.

[0179] Embodiment 8. The method for scheduling an automated process according to any one of embodiments 1 to 7, wherein determining the earliest start time of the operation to be scheduled comprises:

[0180] Determining whether there is a slot conflict for the pending operation based on first occupancy information of a slot of the device associated with the pending operation and second occupancy information of the slot of the device at the current moment; and

[0181] If it is determined that there is a board position conflict for the operation to be scheduled, the earliest start time of the operation to be scheduled is determined to be a preset maximum time; wherein the preset maximum time is greater than the end time of the previous operation and the release time of any device.

[0182] Embodiment 9. The method for scheduling an automated process according to any one of embodiments 1 to 8, wherein, after determining one of the operations to be scheduled for each flux as the operation to be scheduled, the method further comprises:

[0183] Update the second occupancy information of the board position of the equipment associated with the operation.

[0184] Embodiment 10. The method for scheduling an automated process according to any one of embodiments 1 to 9, wherein the method further comprises:

[0185] Determine the busy time of the scheduled operations of each flux at the current moment, where the busy time is equal to the cumulative duration of all unscheduled operations in the ordered operation set corresponding to the flux at the current moment;

[0186] Determining one of the operations to be discharged of each flux as the operation to be discharged includes:

[0187] Adopting a priority assignment principle, determining the priority of each operation to be scheduled according to at least the earliest start time of each operation to be scheduled and the busy time of each operation to be scheduled at the current moment, and determining the one with the highest priority as the operation to be scheduled;

[0188] Among them, the priority of the queued operation with a smaller earliest start time is higher; for multiple queued operations with the same earliest start time, the priority of the operation with a larger busy time is higher.

[0189] Embodiment 11. The method for scheduling an automated process according to any one of embodiments 1 to 10, wherein the method further comprises:

[0190] Create an index for each operation in the ordered operation set corresponding to each flux, and determine a value for each index, wherein the earlier an operation is in the ordered operation set, the smaller the value of the index of the operation, and the index value of the same operation in different fluxes is the same;

[0191] Determining the priority of the operations to be processed for each flux includes:

[0192] Determine the priority of the operations to be queued of each flux according to the earliest start time of each operation to be queued, the busy time of each operation to be queued, and the value of the first index at the current moment;

[0193] The first index is the index of each queued operation or the index of the preceding operation of the queued operation. For multiple queued operations with the same earliest start time and busy time, the smaller the index value, the higher the priority.

[0194] Embodiment 12. The method for scheduling an automated process according to any one of Embodiments 1 to 11, wherein the difference between the index values ​​of two adjacent operations in the ordered operation set is 1, and after determining one of the to-be-scheduled operations of each flux as the operation to be scheduled, the method further comprises:

[0195] Update the value of the index of the operation to be queued of the current flux or the index of the predecessor operation of the operation to be queued, wherein the current flux is the flux to which the determined operation to be queued belongs, and the value of the updated index is equal to the value of the index before the update plus 1.

[0196] Embodiment 13. The method for scheduling an automated process according to any one of embodiments 1 to 12, wherein the method further comprises:

[0197] Creating a two-dimensional array of scheduling results according to the flux number, the ordered operation set, and the index of each operation in the ordered operation set;

[0198] The elements in the two-dimensional array include the index value of each operation in the ordered operation set corresponding to each flux, the start execution time of each operation, the end execution time of each operation, and the sequence number of the flux to which each operation belongs;

[0199] After determining the start execution time and the end execution time of the operation to be queued, the method further includes:

[0200] The two-dimensional array is updated according to the determined start execution time and end execution time of the operation to be queued, so that after the operations in each ordered operation set are all operations to be queued, the target process is executed according to the updated two-dimensional array.

[0201] Example 14. A scheduling system for an automated process, comprising:

[0202] A first determination module is configured to determine, based on parameters of an automated process, a flux number of a target process in the automated process and an ordered operation set corresponding to each flux, wherein the flux number represents the number of times the target process is repeatedly executed and is greater than 1, and the ordered operation set is an ordered collection of operations involved in completing a single target process;

[0203] a second determining module, configured to determine, based on the number of fluxes and the ordered operation set, the earliest start time of the to-be-scheduled operation of each flux at the current moment, wherein the to-be-scheduled operation of each flux is the first unscheduled operation in the ordered operation set corresponding to the flux, and the unscheduled operation is an operation whose execution time has not yet been determined;

[0204] A third determining module is configured to determine one of the operations to be scheduled of each flux as the operation to be scheduled at a current moment based at least on the earliest start time of each operation to be scheduled; and

[0205] The fourth determination module is used to determine the execution time of the scheduled operation at the current moment, and then execute the step of determining the earliest start time of the scheduled operation of each flux at the next moment, until the scheduling of all operations in each ordered operation set is completed.

[0206] Embodiment 15. An electronic device comprises a processor and a memory, wherein the memory stores computer program instructions, and the computer program instructions are used by the processor to execute the scheduling method for the automated process as described in any one of Embodiments 1 to 13 when the processor is executed.

[0207] Embodiment 16. A storage medium having program instructions stored thereon, wherein the program instructions are used to execute the scheduling method for an automated process as described in any one of Embodiments 1 to 13 when running.

[0208] Although example embodiments have been described herein with reference to the accompanying drawings, it should be understood that the above example embodiments are merely illustrative and are not intended to limit the scope of the present application. Various changes and modifications may be made therein by those skilled in the art without departing from the scope and spirit of the present application. All such changes and modifications are intended to be included within the scope of the present application as required by the appended claims.

[0209] Those skilled in the art will appreciate that the units and algorithm steps of each example described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are performed in hardware or software depends on the specific application and design constraints of the technical solution. Professional and technical personnel can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0210] In the several embodiments provided in this application, it should be understood that the disclosed devices and methods can be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of the units described is merely a logical function division. In actual implementation, other division methods may be used, such as combining or integrating multiple units or components into another device, or ignoring or not performing some features.

[0211] In the description provided herein, a large number of specific details are described. However, it is understood that the embodiments of the present application can be practiced without these specific details. In some instances, well-known methods, structures, and techniques are not shown in detail so as not to obscure the understanding of this description.

[0212] Similarly, it should be understood that in order to streamline the present application and aid in understanding one or more of the various inventive aspects, in the description of the exemplary embodiments of the present application, the various features of the present application are sometimes grouped together into a single embodiment, figure, or description thereof. However, this approach of the present application should not be interpreted as reflecting the intention that the application claimed for protection requires more features than those explicitly recited in each claim. More precisely, as reflected in the corresponding claims, the inventive point is that the corresponding technical problem can be solved with fewer features than all the features of a single disclosed embodiment. Therefore, the claims following the detailed description are hereby expressly incorporated into the detailed description, with each claim itself serving as a separate embodiment of the present application.

[0213] It will be understood by those skilled in the art that, except where mutually exclusive, all features disclosed in this specification (including the accompanying claims, abstract, and drawings) and all processes or units of any method or apparatus disclosed herein may be combined in any combination. Unless expressly stated otherwise, each feature disclosed in this specification (including the accompanying claims, abstract, and drawings) may be replaced by an alternative feature providing the same, equivalent, or similar purpose.

[0214] Furthermore, those skilled in the art will appreciate that although some embodiments described herein include certain features included in other embodiments but not other features, combinations of features from different embodiments are intended to be within the scope of this application and to form different embodiments. For example, in the claims, any of the claimed embodiments may be used in any combination.

[0215] The various component embodiments of the present application can be implemented in hardware, or in software modules running on one or more processors, or in a combination thereof. It should be understood by those skilled in the art that a microprocessor or digital signal processor (DSP) can be used in practice to implement some or all of the functions of some modules in the scheduling system of the automated process according to the embodiment of the present application. The application can also be implemented as a device program (e.g., a computer program and a computer program product) for executing part or all of the methods described herein. Such a program implementing the present application can be stored on a computer-readable medium, or can have the form of one or more signals. Such a signal can be downloaded from an Internet website, or provided on a carrier signal, or provided in any other form.

[0216] It should be noted that the above embodiments illustrate rather than limit the present application, and that a person skilled in the art may devise alternative embodiments without departing from the scope of the appended claims. In the claims, any reference symbols placed between brackets should not be construed as limiting the claims. The word "comprising" does not exclude the presence of elements or steps not listed in the claims. The word "a" or "an" preceding an element does not exclude the presence of a plurality of such elements. The present application may be implemented by means of hardware comprising several different elements and by means of appropriately programmed computers. In a unit claim enumerating several means, several of these means may be embodied by the same item of hardware. The use of the words first, second, and third etc. does not indicate any order. These words may be interpreted as names.

[0217] The above description is merely a specific embodiment or illustration of a specific embodiment of the present application, and the scope of protection of the present application is not limited thereto. Any changes or substitutions that can be easily conceived by a person skilled in the art within the technical scope disclosed in the present application should be included in the scope of protection of the present application. The scope of protection of the present application should be based on the scope of protection of the claims.

Claims

1. A method for scheduling an automated process, characterized in that: include: According to the parameters of the automated process, determine the flux number of the target process in the automated process and the ordered operation set corresponding to each flux, wherein the flux number represents the number of repeated executions of the target process, the flux number is greater than 1, and the ordered operation set is an ordered set of operations involved in completing a single target process; According to the number of fluxes and the ordered operation set, respectively determine the earliest start time of the operations to be scheduled for each flux at the current moment, wherein the operation to be scheduled for each flux is the first unscheduled operation in the ordered operation set corresponding to the flux, and the unscheduled operation is an operation whose execution time has not yet been determined; At least according to the earliest start time of each operation to be scheduled, determine one of the operations to be scheduled of each flux as the operation to be scheduled at the current moment; and Determine the execution time of the scheduled operation at the current moment, and then proceed to determine the earliest start time of the scheduled operation of each flux at the next moment, until the scheduling of all operations in each ordered operation set is completed.

2. The method for scheduling an automated process as claimed in claim 1, wherein: The step of determining the execution time of the operation to be scheduled at the current moment includes: Determine the start time of the scheduled operation based on the earliest start time of the scheduled operation; and The sum of the determined start execution time and the duration of the scheduled operation is calculated as the end execution time of the scheduled operation.

3. The method for scheduling an automated process as claimed in claim 1, wherein: The method of respectively determining the earliest start time of the operations to be processed for each flux at the current moment includes: Determine the pending operations for each flux at the current moment; and For each flux of pending operations, Determine, according to the ordered operation set, a preceding operation of the operation to be queued, wherein in the ordered operation set corresponding to the flux, the preceding operation is the previous operation of the operation to be queued; and The earliest start time of the operation to be scheduled is determined at least according to the end time of the preceding operation.

4. The method for scheduling an automated process as claimed in claim 3, wherein: The method further comprises: Determining an execution device set of the target process according to the parameters of the automation process; Determine, according to the flux number, the execution device set and the ordered operation set, the devices associated with each operation in the ordered operation set, wherein the devices associated with each operation at least include an execution device of the operation, and the execution device is a device used to execute the operation; and The release time of each device associated with each operation at the current moment is determined, wherein the release time represents the idle time of the device, and the release time of each device is 0 at the initial moment.

5. The method for scheduling an automated process as claimed in claim 4, wherein: The step of determining the earliest start time of the operation to be scheduled at least according to the end time of the preceding operation further includes: Determine the maximum value of the release time of each device associated with the pending operation at the current moment; The earliest start time of the operation to be queued is determined according to the maximum value and the end time of the preceding operation.

6. The method for scheduling an automated process as claimed in claim 5, wherein: After determining the start execution time and the end execution time of the operation to be scheduled, the method further includes: The release time of the execution device of the scheduled operation is updated to the end execution time of the scheduled operation.

7. The method for scheduling an automated process as claimed in claim 5, wherein: Determining the earliest start time of the operation to be scheduled includes: The larger one between the maximum value and the end time of the preceding operation is determined as the earliest start time of the operation to be queued.

8. The method for scheduling an automated process according to any one of claims 4 to 7, characterized in that: Determining the earliest start time of the operation to be scheduled includes: Determining whether there is a board position conflict for the operation to be scheduled based on first occupancy information of the board position of the device to be associated with the operation to be scheduled and second occupancy information of the board position of the device at the current moment; and If it is determined that there is a board position conflict for the operation to be scheduled, the earliest start time of the operation to be scheduled is determined to be a preset maximum time; wherein the preset maximum time is greater than the end time of the preceding operation and the release time of any device.

9. The method for scheduling an automated process as claimed in claim 8, wherein: After determining one of the operations to be discharged of each flux as the operation to be discharged, the method further includes: Update the second occupancy information of the board position of the equipment associated with the operation.

10. The method for scheduling an automated process according to any one of claims 1 to 7, characterized in that: The method further comprises: Determine the busy time of the operations to be scheduled for each flux at the current moment, wherein the busy time is equal to the accumulated duration of all unscheduled operations in the ordered operation set corresponding to the flux at the current moment; The step of determining one of the operations to be discharged of each flux as the operation to be discharged comprises: Adopting the priority assignment principle, at least according to the earliest start time of each operation to be scheduled and the busy time of each operation to be scheduled at the current moment, the priority of the operations to be scheduled of each flux is determined, and the one with the highest priority is determined as the operation to be scheduled; Among them, the priority of the waiting operation with a smaller earliest start time is higher; for multiple waiting operations with the same earliest start time, the priority of the one with a larger busy time is higher.

11. The method for scheduling an automated process as claimed in claim 10, wherein: The method further comprises: Create an index for each operation in the ordered operation set corresponding to each flux, and determine a value of each index, wherein the earlier the order of each operation in the ordered operation set, the smaller the value of the index of the operation, and the values ​​of the indexes of the same operation in different fluxes are the same; Determining the priority of the operations to be arranged for each flux includes: Determine the priority of the operations to be queued of each flux according to the earliest start time of each operation to be queued, the busy time of each operation to be queued and the value of the first index at the current moment; The first index is the index of each operation to be queued or the index of the preceding operation of the operation to be queued. For multiple operations to be queued with the same earliest start time and busy time, the smaller the index value, the higher the priority.

12. The method for scheduling an automated process as claimed in claim 11, wherein: The difference between the index values ​​of two adjacent operations in the ordered operation set is 1. After determining one of the operations to be arranged of each flux as the operation to be arranged, the method further includes: Update the value of the index of the operation to be arranged of the current flux or the index of the preceding operation of the operation to be arranged, wherein the current flux is the flux to which the determined operation to be arranged belongs, and the value of the updated index is equal to the value of the index before the update plus 1.

13. The method for scheduling an automated process according to any one of claims 3 to 7, characterized in that: The method further comprises: Creating a two-dimensional array of scheduling results according to the flux number, the ordered operation set, and the index value of each operation in the ordered operation set; The elements in the two-dimensional array include the index value of each operation in the ordered operation set corresponding to each flux, the start execution time of each operation, the end execution time of each operation, and the sequence number of the flux to which each operation belongs; After determining the start execution time and the end execution time of the operation to be scheduled, the method further includes: The two-dimensional array is updated according to the determined start execution time and end execution time of the operation to be scheduled, so that after the operations in each ordered operation set are all operations to be scheduled, the target process is executed according to the updated two-dimensional array.

14. A scheduling system for an automated process, characterized in that: include: A first determination module is used to determine the flux number of the target process in the automated process and the ordered operation set corresponding to each flux according to the parameters of the automated process, wherein the flux number represents the number of repeated executions of the target process, the flux number is greater than 1, and the ordered operation set is an ordered set of operations involved in completing a single target process; A second determination module is used to determine the earliest start time of the operations to be scheduled for each flux at the current moment according to the number of fluxes and the ordered operation set, wherein the operation to be scheduled for each flux is the first unscheduled operation in the ordered operation set corresponding to the flux, and the unscheduled operation is an operation whose execution time has not yet been determined; A third determination module is used to determine one of the operations to be scheduled of each flux as the operation to be scheduled at the current moment according to at least the earliest start time of each operation to be scheduled; and The fourth determination module is used to determine the execution time of the scheduled operation at the current moment, and then execute the step of determining the earliest start time of the scheduled operation of each flux at the next moment, until the scheduling of all operations in each ordered operation set is completed.

15. An electronic device comprising a processor and a memory, characterized in that: The memory stores computer program instructions, which are used by the processor to execute the scheduling method for an automated process as claimed in any one of claims 1 to 13 when the processor executes the computer program instructions.

16. A storage medium having program instructions stored thereon, characterized in that: The program instructions are used to execute the scheduling method for an automated process as claimed in any one of claims 1 to 13 when running.

Citation Information

Patent Citations

  • Automatic process scheduling method and system, electronic equipment and storage medium

    CN117829568A

  • Process scheduling method and system

    CN114611995A

  • Scheduling control method, device and equipment and computer readable storage medium

    CN115577997A

  • Design method, device and equipment of robot intelligent laboratory and storage medium

    CN116205023A

  • Workflow system, scheduling program and recording medium recording the program

    JP2002259640A