掌桥专利:专业的专利平台
掌桥专利
首页

自动化流程的排程方法和系统、电子设备及存储介质

文献发布时间:2024-04-18 20:02:18


自动化流程的排程方法和系统、电子设备及存储介质

技术领域

本申请涉及自动化技术领域,具体地,涉及一种自动化流程的排程方法、一种自动化流程的排程系统、一种电子设备及一种存储介质。

背景技术

在诸如针对实验室的自动化流程中常常包括需要重复执行多次的目标流程。例如,在实验之前需要对实验所需的耗材执行预处理流程或者在实验之后需要对耗材执行后处理流程。以预处理流程为例,由于实验耗材的数量较多,而预处理设备有限,因此往往需要分批执行多次预处理流程。每次预处理流程可以视作一个通量,这样自动化流程中就包括多个通量的预处理流程。

在一些情况下,往往需要多个预处理设备执行多个操作才能完成一个通量的预处理流程。以清洗孔板的预处理流程为例,每个通量的预处理流程均需要机械臂、用于存放孔板的板站以及洗板机三种预处理设备协作完成。由于这些预处理设备的数量有限,板站和洗板机上的板位有限,因此,多个通量的预处理流程不能完全并行执行。而多个通量的预处理流程完全串行则效率低。因此,需要对多个通量的预处理流程所涉及的所有操作进行规划排程,以确定这些操作的执行时间。

现有技术中的排程方法通常是对每个通量的目标流程逐一依次排布。例如,针对第一个通量的预处理流程中的各个操作先进行排程,然后再对下一通量的预处理流程进行排程。这种方案中针对每个通量的预处理流程的中的各个操作的排布是独立的,而没有综合考虑其他通量。因此这种排程方法对预处理设备的利用率并不充分,从而导致自动化流程的执行效率较低。

发明内容

为了至少部分地解决现有技术中存在的问题,根据本申请的第一个方面,提供了一种自动化流程的排程方法,包括:

根据自动化流程的参数,确定自动化流程中的目标流程的通量数以及每个通量对应的有序操作集,其中,通量数表示目标流程的重复执行次数,通量数大于1,有序操作集是完成单次目标流程所涉及的各个操作的有序集合;

根据通量数和有序操作集,分别确定当前时刻各通量的待排操作的最早开始时间,其中,每个通量的待排操作是在该通量对应的有序操作集中的第一个未排操作,未排操作是尚未确定执行时间的操作;

至少根据每个待排操作的最早开始时间,将各通量的待排操作中的一个确定为当前时刻的应排操作;以及

确定当前时刻的应排操作的执行时间,并转而执行确定下一时刻各通量的待排操作的最早开始时间的步骤,直至完成各个有序操作集中的所有操作的排程。

示例性地,确定当前时刻的应排操作的执行时间,包括:

将该应排操作的最早开始时间确定该应排操作的开始执行时间;以及

计算所确定的开始执行时间和该应排操作的持续时间之和,作为该应排操作的结束执行时间。

示例性地,分别确定当前时刻各通量的待排操作的最早开始时间,包括:

确定当前时刻各通量的待排操作;以及

对于每个通量的待排操作,

根据有序操作集,确定该待排操作的前序操作,其中,在该通量对应的有序操作集中,前序操作是该待排操作的前一个操作;以及

至少根据该前序操作的结束时间,确定该待排操作的最早开始时间。

示例性地,方法还包括:

根据自动化流程的参数,确定目标流程的执行设备集;

根据通量数、执行设备集和有序操作集,确定有序操作集中每个操作所关联的各个设备,其中每个操作所关联的各个设备至少包括该操作的执行设备,执行设备是用于执行该操作的设备;以及

确定当前时刻每个操作所关联的各个设备的释放时间,其中释放时间表示设备空闲时间,并且在初始时刻每个设备的释放时间均为0。

示例性地,至少根据该前序操作的结束时间,确定该待排操作的最早开始时间,还包括:

确定当前时刻该待排操作所关联的各个设备的释放时间的最大值;

根据最大值和该前序操作的结束时间,确定该待排操作的最早开始时间。

示例性地,在确定该应排操作的开始执行时间和结束执行时间之后,方法还包括:

将该应排操作的执行设备的释放时间更新为该应排操作的结束执行时间。

示例性地,确定该待排操作的最早开始时间,包括:

将最大值与该前序操作的结束时间中的较大的一者确定为该待排操作的最早开始时间。

示例性地,确定该待排操作的最早开始时间,包括:

根据该待排操作即将对所关联的设备的板位的第一占用信息和当前时刻该设备的板位的第二占用信息,确定该待排操作是否存在板位冲突;以及

如果确定该待排操作存在板位冲突,则确定该待排操作的最早开始时间为预设极大时间;其中,预设极大时间大于前序操作的结束时间和任意设备的释放时间。

示例性地,在将各通量的待排操作中的一个确定为应排操作之后,方法还包括:

更新该应排操作对所关联的设备的板位的第二占用信息。

示例性地,方法还包括:

确定当前时刻各个通量的待排操作的繁忙时间,其中,繁忙时间等于当前时刻该通量对应的有序操作集中的所有未排操作的累计持续时间;

将各通量的待排操作中的一个确定为应排操作,包括:

采用优先指派原则,至少根据当前时刻每个待排操作的最早开始时间和每个待排操作的繁忙时间,确定各通量的待排操作的优先性,并将优先性最高的一个确定为应排操作;

其中,最早开始时间越小的待排操作的优先性越高;对于最早开始时间相同的多个待排操作,繁忙时间越大的优先性越高。

示例性地,方法还包括:

创建关于每个通量对应的有序操作集中的各个操作的索引,并确定每个索引的值,其中,每个操作在有序操作集中的顺序越靠前,该操作的索引的值越小,并且不同通量中的同一种操作的索引的值相同;

确定各通量的待排操作的优先性,包括:

根据当前时刻每个待排操作的最早开始时间、每个待排操作的繁忙时间以及第一索引的值,确定各通量的待排操作的优先性;

其中,第一索引是每个待排操作的索引或该待排操作的前序操作的索引,对于最早开始时间和繁忙时间均相同的多个待排操作,索引值越小的优先性越高。

示例性地,在有序操作集中的相邻两个操作的索引的值的差值为1,在将各通量的待排操作中的一个确定为应排操作之后,方法还包括:

更新当前通量的待排操作的索引的值或该待排操作的前序操作的索引,其中,当前通量是所确定的应排操作所属的通量,更新后的索引的值等于更新前的索引的值加1。

示例性地,方法还包括:

根据通量数、有序操作集以及有序操作集中的各个操作的索引的值,创建关于排程结果的二维数组;

其中,二维数组中的元素包括每个通量对应的有序操作集中的每个操作的索引的值、每个操作的开始执行时间、每个操作的结束执行时间以及每个操作所属的通量的序号;

在确定该应排操作的开始执行时间和结束执行时间之后,方法还包括:

根据所确定的该应排操作的开始执行时间和结束执行时间,更新二维数组,以在各个有序操作集中的操作均为应排操作之后,根据所更新的二维数组执行目标流程。

根据本申请的另一方面,还提供一种自动化流程的排程系统,包括:

第一确定模块,用于根据自动化流程的参数,确定自动化流程中的目标流程的通量数以及每个通量对应的有序操作集,其中,通量数表示目标流程的重复执行次数,通量数大于1,有序操作集是完成单次目标流程所涉及的各个操作的有序集合;

第二确定模块,用于根据通量数和有序操作集,分别确定当前时刻各通量的待排操作的最早开始时间,其中,每个通量的待排操作是在该通量对应的有序操作集中的第一个未排操作,未排操作是尚未确定执行时间的操作;

第三确定模块,用于至少根据每个待排操作的最早开始时间,将各通量的待排操作中的一个确定为当前时刻的应排操作;以及

第四确定模块,用于确定当前时刻的应排操作的执行时间,并转而执行确定下一时刻各通量的待排操作的最早开始时间的步骤,直至完成各个有序操作集中的所有操作的排程。

根据本申请的另一方面,还提供一种电子设备,包括处理器和存储器,存储器中存储有计算机程序指令,计算机程序指令被处理器运行时用于执行上述自动化流程的排程方法。

根据本申请的另一方面,还提供一种存储介质,在存储介质上存储了程序指令,程序指令在运行时用于执行上述自动化流程的排程方法。

上述自动化流程的排程方法,以每个通量对应的有序操作集中的每个操作为单位依次进行排程,并且综合考虑各个通量的情况来确定每个操作的执行时间。排程的结果可以有效减少设备的等待时间,对设备的利用更充分,使得排程更合理,自动化流程的执行效率也更高。

在发明内容中引入了一系列简化形式的概念,这将在具体实施方式部分中进一步详细说明。本申请内容部分并不意味着要试图限定出所要求保护的技术方案的关键特征和必要技术特征,更不意味着试图确定所要求保护的技术方案的保护范围。

以下结合附图,详细说明本申请的优点和特征。

附图说明

本申请的下列附图在此作为本申请的一部分用于理解本申请。附图中示出了本申请的实施方式及其描述,用来解释本申请的原理。在附图中,

图1示出根据本申请一个实施例的自动化流程的排程方法的示意性流程图;

图2a示出了根据现有技术中的排程方法排程后的排程时序图;

图2b示出了根据本申请一个实施例的排程方法排程后的排程时序图;

图3示出根据本申请另一实施例的自动化流程的排程方法的流程图;

图4示出根据本申请实施例的自动化流程的排程系统的示意性框图;以及

图5示出根据本申请实施例的电子设备的示意性框图。

具体实施方式

在下文的描述中,提供了大量的细节以便能够彻底地理解本申请。然而,本领域技术人员可以了解,如下描述仅示例性地示出了本申请的优选实施例,本申请可以无需一个或多个这样的细节而得以实施。此外,为了避免与本申请发生混淆,对于本领域公知的一些技术特征未进行详细描述。

如前所述,在自动化流程中常常包括需要重复执行多次的目标流程,即包括多个通量的目标流程。现有技术中的排程方法通常是对每个通量的目标流程逐一依次排布。其针对每个通量的目标流程的中的各个操作的排布是独立的,而没有综合考虑其他通量。因此这种排程方法对设备的利用率并不充分,从而导致自动化流程的执行效率较低。

为了至少部分地解决上述技术问题,根据本申请的一个方面,提供了一种自动化流程的排程方法。这种方法在进行排程的过程中,每排一个操作时均会综合各个通量的待排操作的最早开始时间来确定当下的应排操作,因此可以更加合理地对自动化流程进行排程。排程的结果可以有效减少设备的等待时间,更大化地提高设备的利用率,进而可以有效地提高自动化流程的执行效率。

图1示出根据本申请一个实施例的自动化流程的排程方法100的示意性流程图。如图所示,该方法100包括步骤S120、步骤S140、步骤S160和步骤S180。

在步骤S120中,根据自动化流程的参数,确定自动化流程中的目标流程的通量数以及每个通量对应的有序操作集。其中,通量数表示目标流程的重复执行次数,通量数大于1,有序操作集是完成单次目标流程所涉及的各个操作的有序集合。

根据本申请实施例,目标流程可以是自动化流程中的任意局部流程。当然,在一些特殊示例中,目标流程也可以是自动化流程中的完整流程。目标流程的内容可以是任意的,本申请不对其进行限制。在本申请实施例中,目标流程的执行次数为多次,因此也可以说目标流程的通量数大于1。目标流程的通量数和有序操作集可以通过任意合适的方法得到。在一个示例中,用户可以通过流程编辑界面中的可操作控件编辑自动化流程中的目标流程的通量数。在此步骤中,可以通过对自动化流程进行解析,得到目标流程的通量数。类似地,也可以通过对自动化流程进行解析之后的解析数据得到每个通量对应的有序操作集。有序操作集可以是完成单次目标流程所涉及的各个操作的有序集合。因此,不同通量对应的有序操作集可以是相同的。唯一不同的是,不同通量的有序操作集中各个操作所操作的耗材不同。

下面以目标流程是实验室自动化系统中的预处理流程为例进行展开说明。可以理解,在实验室的自动化流程中,通常在实验/试验之前对后续使用的实验耗材(例如孔板)进行预处理。例如,为避免孔板有脏污干扰实验,需要对孔板进行清洗。又或者应实验需求需要在孔板中加入一些酶等操作,都需要用到预处理设备。示例地,预处理设备是前操作、后操作中只有机械臂转板的设备或设备池。预处理流程中对应的预处理设备,不仅对应预处理操作,还会对应一些为了预处理操作而做的一些辅助操作,而这些辅助操作包括在预处理操作之前执行的前操作和/或在预处理操作之后执行的后操作。本实施例中的辅助设备可以包括诸如机械臂的转运设备。以目标流程是清洗孔板的预处理流程为例。预处理设备包括一个顺序存取板站、一个随机存取板站、一个机械臂以及一个洗板机。其中,顺序存取板站用于存放堆叠的多个孔板,随机存取板站包括多个位置,每个位置用于存放一个孔板。

示例性地,一次清洗孔板的预处理流程主要包括以下4步:1、机械臂将孔板(耗材)从顺序存取板站搬运到随机存取板站中的某个位置进行存放;2、机械臂从随机存取板站将孔板搬运至洗板机;3、洗板机清洗孔板;4、机械臂从洗板机将孔板再次搬运到随机存取板站;5、机械臂将孔板从随机存取板站搬运回顺序存取板站。可以理解,在该预处理流程中,洗板机清洗孔板需要花费较长的时间。除了洗板机清洗孔板的步骤之外,其余的4个步骤是机械臂执行的转运操作,机械臂执行每个操作也需要一定的时间。并且,在一些情况下耗材(孔板)在中转位(随机存取板站)还需要至少停留一段时间,才能被转移至下一位置。因此,在该预处理流程中还需要考虑耗材在中转位存放的时间。下面参考表1,对于目标流程是上述预处理流程的情况,每个通量的目标流程均包括表格中的7个操作(每个操作对应一个步骤),且每个操作具有各自对应的时间。如表1所示,孔板在随机存取板站至少停留1秒。

表1

在本申请实施例中,上述目标流程的执行次数或说通量数可以是m,m可以是任意大于1的数目。可以理解,在本申请实时例中,每个通量的目标流程是串行的,但是m个通量的目标流程之间则并非是串行的,其可能存在并行的情况,才能保证自动化流程的执行效率。下文将以通量数m=6为例,对执行6次上述目标流程的排程方法进行展开阐述。可以理解,对于该目标流程而言,对应每个通量的有序操作集可以是由表中的操作1、操作2、操作3、操作4、操作5、操作6、操作7依次排列而成的操作集。

步骤S140,根据通量数和有序操作集,分别确定当前时刻各通量的待排操作的最早开始时间。其中,每个通量的待排操作是在该通量对应的有序操作集中的第一个未排操作,未排操作是尚未确定执行时间的操作。

根据本申请实施例,可以将对6个通量的目标流程的排程问题转化为对42个操作的排程问题。换言之,可以逐一确定6个通量中的有序操作集中的每个操作的执行时间。在此步骤中,当前时刻可以是排程过程中的某一时刻。例如,在排程的开始时刻,先确定42个操作中的一个操作(为了简便,可以称作第1个操作,其可以是6个通量的操作1中的任一个)的执行时间。之后,在下一时刻,确定第2个操作的执行时间……最终,在排程的最后时刻,确定第42个操作的执行时间。以当前时刻是确定完第20个操作的执行时间的时刻为例,此时通量1中可能已确定了操作1、操作2和操作3的执行时间,因此,当前时刻通量1的操作4、操作5、操作6和操作7均为未排操作。而操作4在有序操作集中的顺序先于其他的未排操作,因此,当前时刻通量1的待排操作为操作4。

在此步骤中,可以根据通量数和有序操作集,采用任意合适的确定逻辑,确定通量1的操作4的最早开始时间。可以采用上述示例中的方法确定出每个当前时刻每个通量的待排操作,并采用合适的计算方法确定出各个通量的待排操作的最早开始时间。例如,在排程的开始时刻,将各个通量的操作1的最早开始时间均确定为0。而在排程的中间阶段,对于每个通量的待排操作,可以至少根据该通量对应的有序操作集中的已排操作(已确定执行时间的操作)的执行时间和其他通量中与该待排操作具有关联关系的已排操作的执行时间,确定该待排操作的最早开始时间。示例性地,与该待排操作具有关联关系的已排操作可以是与该待排操作所占用的设备相同的操作。示例性地,可以根据每个通量的有序操作集中各个设备需要占用的设备的情况以及执行目标流程的各个设备,为每个通量的操作分配相应的设备。例如,可以确定操作和设备的对应关系,并可以根据该对应关系确定与每个待排操作具有关联关系的操作。进而,可以根据该通量对应的有序操作集中的已排操作的执行时间和其他通量中与该待排操作具有关联关系的已排操作的执行时间,确定该待排操作的最早开始时间。

具体地,以上述预处理流程为例,可以为每个通量分配一个预处理设备,然后可以将对应同一设备的通量中的相关操作建立关联关系,进而可以在确定这些操作的最早开始时间时考虑具有关联关系的操作的执行时间。可以理解,由于预处理流程中的主要操作是预处理设备执行的。示例性地,在一些情况下,由于预处理设备的数量有限,或者预处理设备的工位有限,还需要考虑预处理设备的占用情况来进行排程。例如,在上述示例中,预处理设备仅包括两台洗板机:洗板机1和洗板机2。在洗板机1执行其中一个通量的预处理流程的操作4时,其他通量的预处理流程中如果要执行操作4,则只能利用洗板机2,即将孔板放置到洗板机2中进行清洗。而如果某一时刻两个洗板机同时被占用,其他通量的预处理流程则不能执行操作4,只能等待洗板机空闲时才能执行该洗板操作。

示例性地,对于预处理设备仅包括两台洗板机(例如,洗板机1和洗板机)2的情况,而预处理流程的通量数为6的情况,可以为每个通量分配一个洗板机。从表1可知,洗板机的工作时长远大于其他操作的时长。因此,可以对洗板机进行合理分配,从而在每个通量中,都有可用的洗板机。

表2

由此,通量1、通量3、通量5的预处理流程中的操作4可以利用洗板机1来执行,通量2、通量4、通量6的预处理流程中的操作4可以利用洗板机2。示例性地,还可以根据洗板机和通量的对应关系,将对应同一个洗板机的通量的有序操作集中的洗板操作建立关联关系。例如,结合表1和表2,当前时刻通量1的待排操作是操作5,通量3的待排操作也是操作5,通量6的待排操作是操作4。可以理解,由于通量1和通量3与通量6均对应洗板机2,因此,这三个通量的洗板操作(操作4)具有关联关系。并且,此时通量1和通量3的洗板操作均已确定了执行时间,因此,可以根据通量1中的洗板操作和通量3中的洗板操作的执行时间以及通量1中操作3的执行时间确定通量6的洗板操作的执行时间。例如,可以根据通量1中的洗板操作的结束执行时间、通量3中的洗板操作的结束执行时间以及通量1中操作3的执行结束时间中的最大值,确定通量6的洗板操作的开始执行时间。当然,在其他的示例中,还可以考虑其他的影响排程的因素,准确确定当前时刻各个通量的待排操作的执行时间。

步骤S160,至少根据每个待排操作的最早开始时间,将各通量的待排操作中的一个确定为当前时刻的应排操作。

在一个示例中,可以直接将确定的最早开始时间最小的一个通量的待排操作,确定为当前时刻的应排操作。在其他的示例中,还可以综合其他的筛选因素,从各通量的待排操作中的筛选出一个确定为当前时刻的应排操作,本申请不对其进行限制。

步骤S180,确定当前时刻的应排操作的执行时间,并转而执行确定下一时刻各通量的待排操作的最早开始时间的步骤,直至完成各个有序操作集中的所有操作的排程。

例如,在确定了通量1的操作1的执行时间之后,可以转而执行确定下一时刻各通量的待排操作的最早开始时间的步骤,直至完成各个有序操作集中的所有操作的排程。示例性地,在确定一个应排操作之后,可以将由所有已确定的应排操作组成的排程格局称为当前格局。当前时刻各通量的待排操作可以是当前格局下各通量的待排操作,换言之,可以是当前格局下每个通量未指定开始时间的所有操作中需要优先启动的操作。换言之,应排操作确定后,不会再修改,只会在当前确定的状态下进行新的排程。这样,可以保证程序逻辑的顺序执行,不会出现错乱。

图2a示出了根据现有技术中的排程方法排程后的排程时序图。图2b示出了根据本申请一个实施例的排程方法排程后的排程时序图。如图2a所示,现有技术中,将前一个通量的所有操作排布完成后再排下一个通量的各个操作。即通量1排布完成后排布通量2,通量2排布完成后排布通量3,以此类推。可以看出,这样排布会造成洗板机的使用效率下降,洗板机1的两次操作间隔时间均为227秒,洗板机2的两次操作间隔时间分别为181秒和228秒,从而造成了流程执行效率极低。对于通量数为6的预处理流程,执行完整个流程的总耗时为25分36秒。如果通量继续增加,随着排程的延续,同一洗板机的空闲时间还有继续增长的趋势。

如图2b所示,根据本申请实施例的自动化流程的排程方法,可以有效缩短洗板机的等待时间,洗板机1的两次操作间隔时间缩短至90秒,洗板机2的两次操作间隔时间分别缩短至180秒和90秒,后续即使继续增加通量数,洗板机1和洗板机2的两次操作间隔时间也将维持在90秒内。对于通量数为6的预处理流程,全部流程的总耗时缩短至22分31秒。与现有技术相比,按照本申请实施例的排程方法对目标流程进行排程后,可以大大缩短目标流程的执行时间。

上述自动化流程的排程方法,以每个通量对应的有序操作集中的每个操作为单位依次进行排程,并且综合考虑各个通量的情况来确定每个操作的执行时间。排程的结果可以有效减少设备的等待时间,对设备的利用更充分,使得排程更合理,自动化流程的执行效率也更高。

示例性地,确定当前时刻的应排操作的执行时间,可以包括:将该应排操作的最早开始时间确定为该应排操作的开始执行时间;以及计算所确定的开始执行时间和该应排操作的持续时间之和,作为该应排操作的结束执行时间。

以通量1为例,如果将通量1的操作1确定为应排操作,则可以确定其开始执行时间为其最早开始时间t0。然后,可以计算得到其结束执行时间。如表1所示,操作1的持续时间为5秒,则可以确定通量1的操作1的结束执行时间为t0+5。

这种方案计算逻辑更简单,计算量小,所确定的执行时间也更准确,可以实现自动化流程的实时精准排程。

示例性地,步骤S140中分别确定当前时刻各通量的待排操作的最早开始时间,包括:

步骤S141:确定当前时刻各通量的待排操作。

步骤S142:对于每个通量的待排操作,根据有序操作集,确定该待排操作的前序操作。

步骤S143:对于每个通量的待排操作,至少根据该前序操作的结束时间,确定该待排操作的最早开始时间。

继续参考图2b,在通量2的操作3结束时,确定当前时刻各通量的待排操作的最早开始时间,首先执行步骤S141确定当前时刻各通量的待排操作。此时通量1的待排操作为操作5,通量2的待排操作为操作4,通量3、4、5、6的待排操均作为操作1。然后,可以执行步骤S142对于每个通量的待排操作,根据表1所示的有序操作集,确定该待排操作的前序操作。前序操作是该待排操作的前一个操作,通量1的前序操作为操作4,通量2的前序操作为操作3,通量3、4、5、6没有前序操作。接着,可以执行步骤S143,对于每个通量的待排操作,至少根据该前序操作的结束时间,确定该待排操作的最早开始时间。通量1的前序操作结束时间大约179秒,通量2的前序操作已经结束,通量3-6没有前序操作,因此,该待排操作的最早开始时间即为当前时刻,可以将通量2的操作4,以及通量3-6的操作1中的一个确定为当前的应排操作。示例性地,对于这些操作1的排序,还可以结合其他考虑因素综合确定当前的应排操作,这种方案将在后文进行阐释,在此不再赘述。

上述根据每个待排操作的前序操作的结束时间确定待排操作的最早开始时间的方案,执行逻辑更合理,可以较准确地确定出待排操作的最早开始时间,从而排程结果也更合理。

示例性地,自动化流程的排程方法还包括:根据自动化流程的参数,确定目标流程的执行设备集;根据通量数、执行设备集和有序操作集,确定有序操作集中每个操作所关联的各个设备;其中,每个操作所关联的各个设备至少包括该操作的执行设备,执行设备是用于执行该操作的设备;确定当前时刻每个操作所关联的各个设备的释放时间。其中,释放时间表示设备空闲时间,在初始时刻每个设备的释放时间均为0。

行设备集可以根据解析自动化流程的解析结果得到。以通量1的操作1为例,机械臂将孔板从顺序存取板站搬运到随机存取板站,执行设备集中包括了顺序存取板站、机械臂以及随机存取板站。例如上述的机械臂。可以理解,一个机械臂不可能同时执行下面的两个任务:将孔板从顺序存取板站搬运到随机存取板站,以及将孔板从随机存取板站搬运到洗板机。因此,在排程时,需要考虑当前时刻执行设备是否被占用。

此步骤中,可以采用任意合适的确定逻辑,根据通量数、执行设备集和有序操作集,确定当前时刻每个操作所关联的各个设备的释放时间。例如,以通量1的操作4为例,其为洗板操作,因此该操作的执行设备为洗板机1。因此,其关联的设备至少包括洗板机1。在一些实例中,对于待排操作是搬运操作的情况,例如通量1的操作3,该操作需要机械臂将耗材从随机存取板站搬运至洗板机。因此,其不仅需要保证机械臂未被占用,还需要保证洗板机未被占用。从而,操作3的关联设备还可以包括该操作的搬入设备,即搬运后要去的设备,即洗板机。在另一些情况下,搬运操作的关联设备还可以包括搬出设备,即搬运前占用的设备。释放时间表示设备空闲时间,即该设备在什么时间点解除占用,从而可供调用至下一任务。在初始时刻每个设备的释放时间均为0,随着设备被使用,其释放时间会累计增加。这样,通过设置设备的释放时间,可以避免设备发生误动作。在后续的排程中会根据当前排布情况修改每个设备的释放时间。

示例性地,步骤S143中至少根据该前序操作的结束时间,确定该待排操作的最早开始时间,还包括:确定当前时刻该待排操作所关联的各个设备的释放时间的最大值,以及根据最大值和该前序操作的结束时间,确定该待排操作的最早开始时间。

如上所述,在该待排操作所关联的设备中,只要有一个进行其他工作,该待排操作无法开始。前序操作未结束时,该待排操作也无法开始。因此,只有设备全部释放,且前序操作结束,该待排操作才可以开始。

示例性地,确定该待排操作的最早开始时间,包括将最大值与该前序操作的结束时间中的较大的一者确定为该待排操作的最早开始时间。例如,如果前序操作的结束时间早于所关联的设备的释放时间的最大值,则将其所关联的设备的释放时间的最大值,确定为该待排操作的最早开始时间。又例如,所确定的前序操作的结束时间大于所关联的设备的释放时间的最大值,则可以该待排操作的最早开始时间为前序操作的结束时间。

这种方案中,根据待排操作的关联设备的释放时间的最大值和待排操作的前序操作的结束时间,综合确定待排操作的最早开始时间。这种排程逻辑更合理,排程结果更准确。

示例性地,在确定该应排操作的开始执行时间和结束执行时间之后,自动化流程的排程方法还包括:将该应排操作的执行设备的释放时间更新为该应排操作的结束执行时间。

继续以机械臂为例,机械臂的动作结束后,机械臂空闲。因此,可以将该机械臂的释放时间更新为机械臂动作的结束时间,从而可以立即将机械臂投入下一个任务中。这种实时更新设备释放时间的方案不仅可以保证整个排程结果的准确性,还可以保证较高的排程效率。

示例性地,确定该待排操作的最早开始时间,包括:根据该待排操作即将对所关联的设备的板位的第一占用信息和当前时刻该设备的板位的第二占用信息,确定该待排操作是否存在板位冲突;如果确定该待排操作存在板位冲突,可以确定该待排操作的最早开始时间为预设极大时间。其中,预设极大时间大于前序操作的结束时间和任意设备的释放时间。

参考图2a,以通量3、通量4、通量5和通量6为例,随机存取板站可以提供2个入口板位和2个出口板位,可以看出,通量3向洗板机1搬运孔板前,操作2占用了1个入口板位,通量4向洗板机2搬运孔板前,操作2也占用了1个入口板位。此时通量5和通量6的排程中操作1只能向后顺延,因为没有可用的板位供机械臂放置孔板。从洗板机向随机存取板站搬运孔板的操作5同样可能因为出口板位被占用而被迫推迟。

示例性地,随机存取板站包括1号入口板位,1号入口板位向洗板机1提供孔板。在通量3中执行操作2后,1号入口板位的第二占用信息为+1(表示占用)。此时,通量5的操作1包括向1号入口板位搬运孔板,即第一占用信息表示该待排操作占用1号入口板位。根据第一占用信息与第二占用信息可以得出1号入口板位存在板位冲突。

结合图2a、图2b以及上文可以得出,机械臂、洗板机的工作时间均为固定值,而操作2和操作6的时间可以根据排程而改变,即孔板根据排程情况,可能在随机存取板站滞留。换言之,由于板位冲突的时间不能确定,因此可以设置一个大于整个流程的数值,将该待排操作的最早开始时间尽量推迟。这样,可以避免在板位冲突的情况下出现误启动,引起撞机、损坏设备和孔板等情况。

示例性地,在将各通量的待排操作中的一个确定为应排操作之后,自动化流程的排程方法还包括:更新该应排操作对所关联的设备的板位的第二占用信息。

如上所述,板位冲突的时间不能确定。而待排操作确定为应排操作后,该应排操作的板位占用情况也同样确定下来,即第二占用信息为确定值。如果板位被占用,则第二占用信息的值+1,如果板位被释放,则第二占用信息的值-1。

示例性地,洗板机的占用情况也可以视为板位占用。应排操作为通量3的操作3,由于操作3释放了1号入口板位,占用了洗板机1,则1号入口板位的占用情况更新为0,洗板机1的占用情况更新为1。具体板位占用信息如下表所示:

表3

示例性地,自动化流程的排程方法还包括:确定当前时刻各个通量的待排操作的繁忙时间。其中,所述繁忙时间等于当前时刻该通量对应的有序操作集中的所有未排操作的累计持续时间。

表4

通量1只剩操作7未进行,因此繁忙时间为操作7所需的45秒。通量2还有第五、第六、操作7未进行,第五、第六、操作7总计91秒,因此繁忙时间为91秒,以此类推。

步骤S160中,将各通量的待排操作中的一个确定为应排操作,包括:采用优先指派原则,至少根据当前时刻每个待排操作的最早开始时间和每个待排操作的繁忙时间,确定各通量的待排操作的优先性,并将优先性最高的一个确定为应排操作。其中,最早开始时间越小的待排操作的优先性越高;对于最早开始时间相同的多个待排操作,繁忙时间越大的优先性越高。

继续参考表4,表4对应随机存取板站可以提供1个入口板位的实施例。通量4、5、6的当前操作最早开始时间极大,因为通量4、5、6的第一占用信息为占用入口板位,通量3占用了入口板位,第二占用信息为1,板位冲突。此时可以对通量1、2、3进行排程,开始时间最早的是通量1、3,再比较繁忙时间,通量3的繁忙时间较大,所以,优先选择通量3的当前操作2,由于操作2没有板位释放和新的占用,因此不需要更新该操作所属设备的第二占用信息。

上述方案中,在考虑每个待排操作的最早开始时间的基础上,还充分考虑了每个通量的繁忙时间,将繁忙时间大的通量中的待排操作赋予更高的优先执行的权重,从而,可以快速且准确地确定出当前的应排操作,排程逻辑更合理,自动化流程的执行效率也更高。

示例性地,自动化流程的排程方法还包括:创建关于每个通量对应的有序操作集中的各个操作的索引,并确定每个索引的值。其中,每个操作在有序操作集中的顺序越靠前,该操作的索引的值越小,并且不同通量中的同一种操作的索引的值相同。

下面将结合表5进行详细介绍。

表5

表5为表4加入索引后生成的表格,索引值为每一个操作的序号,示例性地,在有序操作集中的相邻两个操作的索引的值的差值为1例如操作1的索引值为1,操作2的索引值为2。索引值无关通量,通量1的操作1的索引值为1,通量2的操作1的索引值也为1。

示例性地,确定各通量的待排操作的优先性,包括:根据当前时刻每个待排操作的最早开始时间、每个待排操作的繁忙时间以及第一索引的值,确定各通量的待排操作的优先性。

第一索引可以是每个待排操作的索引,也可以为该待排操作的前序操作的索引。例如,通量1的待排操作为操作7,前序操作为操作6,第一索引值为6。对于通量4、5、6而言,由于没有前序操作,因此第一索引值为默认值-1。对于最早开始时间和繁忙时间均相同的多个待排操作,索引值越小的优先性越高。

这种方案在考虑每个待排操作的最早开始时间、各个通量的待排操作的繁忙时间的基础上,还充分考虑了每个通量的任务完成情况,将任务完成度低的通量中的待排操作赋予更高的优先执行的权重,从而,可以使得各个通量的任务完成情况更均衡,排程也更合理。

示例性地,在将各通量的待排操作中的一个确定为应排操作之后,自动化流程的排程方法还包括:更新当前通量的待排操作的索引的值或该待排操作的前序操作的索引。其中,当前通量是所确定的应排操作所属的通量,更新后的索引的值等于更新前的索引的值加1。

如上所述,待排操作确定为应排操作之后,不会再进行修改,只会在当前格局下进行新的排布。因此,该通量的待排操作变为应排操作的下一个操作,以表5所示排程为例,第一索引为该待排操作的前序操作的索引。通量3的操作2确定为应排操作,此时更新第一索引为2,即此时待排操作为操作2,因此通量3的前序操作变为操作2,第一索引值更新为2。

示例性地,自动化流程的排程方法还包括:根据通量数、有序操作集以及有序操作集中的各个操作的索引的值,创建关于排程结果的二维数组。

示例性地,根据通量数m、通量的步骤数为n,每个通量的操作包括:

{o

从而得出所有通量的操作组成操作集:

{o

待优化变量为当前格局{t

由此得到o

表6

根据表6的数据(表6中的数据为初始值,随之待排操作逐步确定为应排操作,随之更新)。二维数组中的元素包括每个通量对应的有序操作集中的每个操作的索引的值、每个操作的开始执行时间、每个操作的结束执行时间以及每个操作所属的通量的序号。开始时间的初始值为-1,表示还没开始计算。

上述方法计算量小,可以有效节约计算资源和存储资源。

示例性地,在确定该应排操作的开始执行时间和结束执行时间之后,自动化流程的排程方法还包括:根据所确定的该应排操作的开始执行时间和结束执行时间,更新二维数组,以在各个有序操作集中的操作均为应排操作之后,根据所更新的二维数组执行所述目标流程。这种方案的计算量更小,并且最终所存储的排程结果可以是更新后的二维数据,可以有效节约计算资源和存储资源。

图3示出根据本申请另一实施例的自动化流程的排程方法的流程图。如图3所示,可以根据入参数据中的设备池的编号,给流程中的每个操作分配一个可用设备。其中,入参数据指的是根据用户搭建的流程解析出的数据。预处理设备按照设备个数和通量依次分配。然后,可以根据通量数量,创建一个表示当前计算排程的操作的索引,并赋值。接着,可以创建一个二维数组,记录各个通量、各个步骤的排程结果,包括开始时间和结束时间。然后,可以获取所有设备信息,并生成设备释放表。设备释放表默认给0,在排程中可以根据当前排布情况修改每个设备的释放时间。示例性地,确定当前格局下每个通量的待排操作。分别确定当前格局下每个待排操作的最早开始时间、当前格局下每个待排操作的繁忙时间,选取待排操作并确定为应排操作。更新待排操作,包括在当前循环中确定为应排操作的待排操作,其所属通量的待排操作序号+1。确定之后更新设备释放时间、设备板盖位情况,记录本次排布的结果,进入下一轮循环。

根据本申请的另一方面,还提供一种自动化流程的排程系统。图4示出根据本申请实施例的自动化流程的排程系统400的示意性框图。如图所示,排程系统400包括:

第一确定模块410,用于根据自动化流程的参数,确定自动化流程中的目标流程的通量数以及每个通量对应的有序操作集。其中,通量数表示目标流程的重复执行次数,通量数大于1,有序操作集是完成单次目标流程所涉及的各个操作的有序集合;

第二确定模块420,用于根据通量数和有序操作集,分别确定当前时刻各通量的待排操作的最早开始时间,其中,每个通量的待排操作是在该通量对应的有序操作集中的第一个未排操作,未排操作是尚未确定执行时间的操作;

第三确定模块430,用于至少根据每个待排操作的最早开始时间,将各通量的待排操作中的一个确定为当前时刻的应排操作;以及

第四确定模块440,用于确定当前时刻的应排操作的执行时间,并转而执行确定下一时刻各通量的待排操作的最早开始时间的步骤,直至完成各个有序操作集中的所有操作的排程。

根据本申请的另一方面,还提供一种电子设备。图5示出根据本申请实施例的电子设备500的示意性框图。如图所示,电子设备500包括处理器510和存储器520。存储器520中存储有计算机程序指令,计算机程序指令被处理器510运行时用于执行上述自动化流程的排程方法100。

根据本申请的另一方面,还提供一种存储介质。在存储介质上存储了程序指令,程序指令在运行时用于执行上述自动化流程的排程方法100。所述存储介质例如可以包括可擦除可编程只读存储器(EPROM)、便携式只读存储器(CD-ROM)、USB存储器、或者上述存储介质的任意组合。所述存储介质可以是一个或多个计算机可读存储介质的任意组合。

本领域普通技术人员通过阅读上述有关自动化流程的排程方法的相关描述,可以理解上述自动化流程的排程系统、电子设备和存储介质的具体实现方案和有益效果,为了简洁,在此不再赘述。

尽管这里已经参考附图描述了示例实施例,应理解上述示例实施例仅仅是示例性的,并且不意图将本申请的范围限制于此。本领域普通技术人员可以在其中进行各种改变和修改,而不偏离本申请的范围和精神。所有这些改变和修改意在被包括在所附权利要求所要求的本申请的范围之内。

本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。例如,以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个设备,或一些特征可以忽略,或不执行。

在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本申请的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。

类似地,应当理解,为了精简本申请并帮助理解各个发明方面中的一个或多个,在对本申请的示例性实施例的描述中,本申请的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该本申请的方法解释成反映如下意图:即所要求保护的本申请要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如相应的权利要求书所反映的那样,其发明点在于可以用少于某个公开的单个实施例的所有特征的特征来解决相应的技术问题。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本申请的单独实施例。

本领域的技术人员可以理解,除了特征之间相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。

此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本申请的范围之内并且形成不同的实施例。例如,在权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。

本申请的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本申请实施例的自动化流程的排程系统中的一些模块的一些或者全部功能。本申请还可以实现为用于执行这里所描述的方法的一部分或者全部的装置程序(例如,计算机程序和计算机程序产品)。这样的实现本申请的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。

应该注意的是上述实施例对本申请进行说明而不是对本申请进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本申请可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。

以上所述,仅为本申请的具体实施方式或对具体实施方式的说明,本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。本申请的保护范围应以权利要求的保护范围为准。

相关技术
  • 存储方法、存储系统、电子设备及存储介质
  • 一种流程处理方法、电子设备及存储介质
  • 引导电子设备系统开机的方法,电子设备,可读存储介质
  • 服务自动化部署方法、装置、电子设备及存储介质
  • 一种分布式系统部署方法、系统、电子设备及存储介质
  • 自动化任务排程方法、电子设备及存储介质
  • 一种晶圆测试排程方法、系统、存储介质和电子设备
技术分类

06120116577727