基于多Agent的面向订单的柔性生产动态调度系统的制作方法

文档序号:15463107发布日期:2018-09-18 18:39阅读:130来源:国知局

技术领域

本发明属于车间调度控制技术领域,具体涉及一种基于多Agent的面向订单的柔性生产动态调度系统。



背景技术:

现代制造业面临着越来越复杂的制造环境,主要体现在以下几点:

(1)随着生活水平的提高,人们更加关注个性化和多样化的商品,客户需求更加动态多变,企业的生产模式逐渐以面向小批量的订单生产甚至是单件生产为主,因此企业需要解决订单随机、产品种类繁多等制造难题。

(2)企业的制造资源呈现分布式的特征。一个企业可能拥有若干工厂,分别位于不同地理位置,每个工厂的车间结构、设备配置等均可能存在差异。在确定生产调度方案时,需要综合考虑任务在各工厂各车间的分解分配问题。

(3)产品的生产加工过程具有更多的柔性,例如一个零部件的加工往往存在多个可选的加工工艺,其中的工序能在多台设备上进行,对应不同的加工时间。柔性车间调度是典型的NP-hard问题,需要使用合理的调度方法兼顾求解速度和质量。

(4)生产制造环境充满不确定性,如零部件测试不合格需返工返修、设备故障、原料短缺、订单更改等。当以上异常因素发生时,需要对原有生产线调度方案进行变更以重新满足订单的交货期。

目前多Agent系统作为人工智能的热点研究领域,其内的Agent拥有自主性和自适应性,能够通过与其他Agent交互和相互配合来完成大型复杂的任务,同时能根据环境信息快速响应外界的请求,成为了现代柔性车间调度的研究热点。

据查,宁波赛夫科技有限公司申请了“工厂智能车间实时调度系统”专利(专利号:201610403522.5),该专利的工厂智能车间实时调度系统使用智能化和信息化技术对车间生产线、物流运输系统、生产控制系统、报警系统等进行管理,能够有效提高调度系统对工厂的生产管理水平,但其中的报警系统更多是对环境的温度、亮度、空气质量、噪声等进行检测,而没有涉及生产设备的故障信息的采集和分析以及故障引起的生产重调度,同时对车间设备的加入和移除的反馈不够及时,影响了系统的实用性。

中国科学院自动化研究所申请了“基于多智能体的车间自主调度系统和方法”专利(专利号:201611100675.9),该专利的自主调度系统的特点在于为所有工件、设备和物流工具设置对应的智能体,收集生产过程中的数据,发生故障及时报警,一定程度上能够保证系统的鲁棒性和可靠性,但对故障的诊断较为简单,没有充分考虑故障的种类的影响,并且在生产控制中仅考虑固定位置的一个工厂,没有兼顾企业分布式的制造资源,因此并不是通用性的调度系统。

中国科学院自动化研究所申请了“面向智能制造的车间智能体组”专利(专利号:201611100674.4),该专利的车间调度智能体组的特点在于对已有多智能体车间调度系统的结构进行优化,设计了总管智能体、分管智能体和基本智能体来相互协调完成生产任务,能够提高生产效率。该智能体组能够作为通用的调度系统,但是由于智能体(Agent)的种类少,分工不明细,功能过于集中,反而降低了整体的灵活性,同时对故障只发起简单的警报而没有根据故障类型和影响进行对应的重调度,因此实用性较低。

综上,我国目前的车间调度系统结合各种调度算法一般都能够生成高效的调度方案,但是这些调度方案存在以下问题:(1)资源利用率不高,基本只针对集中生产控制的制造企业,没有考虑联合分布在各地的工厂车间的制造资源来进行订单任务的分解分配。(2)信息化管理水平不高,忽略了对生产设备、产品工艺信息的形式化表示,因此对信息的增删查改的反应不够及时、灵活。(3)没有考虑故障对原调度方案的影响,或者不能充分考虑故障的种类和影响而采取对应的重调度策略。



技术实现要素:

本发明的目的在于克服上述现有车间调度系统的缺点与不足,提供一种基于多Agent的面向订单的柔性生产动态调度系统,合理利用企业的分布式制造资源,提高现代制造业的生产效率、管理水平以及应对制造环境变化的响应能力。

本发明着重提高制造企业的生产效率以及资源利用率。为提高制造企业的生产效率,本发明根据制造企业的功能和结构,把其中各模块封装为Agent,对应不同的物理或逻辑实体,构建了多Agent系统,通过Agent间的灵活交互和配合,完成了从订单任务输入、任务分配、调度方案的计算到对异常状况的响应等一系列生产加工流程,尤其在发生设备故障时,通过各Agent的协调合作,根据故障类型和影响采用对应的重调度方案,能够在短时间内响应异常状况,保证系统的生产效率,提高系统的稳定性和鲁棒性;本发明在提高资源利用率上,根据现代制造业的分布式特征,即存在若干工厂车间分布在不同的地理位置,提出一种基于订单任务的分解分配方法,该方法综合考虑各工厂的资源配置和制造能力,对任务进行分解分配,减少分布式制造资源的闲置率。同时,为提高企业的信息化管理水平,针对产品的层次进行工艺信息的分级管理,加强了对产品工艺信息增删查改的反应速度。

为达上述目的,本发明采用的技术方案如下。

基于多Agent的面向订单的柔性生产动态调度系统,其包括工艺Agent、监控Agent、管理Agent、资源模块和算法Agent;工艺Agent负责管理系统的产品工艺信息,为其他Agent提供数据查询服务;监控Agent负责采集设备工作状态信息并进行故障分析;管理Agent是系统的消息中转站,负责管理全体Agent;资源模块有车间Agent和设备Agent组成,设备Agent负责对设备的工作进度进行模拟,车间Agent负责管理其下的设备Agent;算法Agent封装系统的调度方法和重调度方法,为其他Agent提供计算服务;基于订单任务的分解分配方法来得到订单任务在企业分布式工厂车间的若干分配可行解,并由算法Agent计算每个可行解的调度时间,由管理Agent筛选最优的调度方案;当系统内存在设备故障、订单更换等异常因素时,由管理Agent启动重调度流程,重新构建任务以及重调度设备集合后,由算法Agent执行重调度方法;所述系统是指柔性生产动态调度系统。

进一步的,所述工艺Agent管理的工艺信息用于表示系统所能生产加工的产品种类、产品需要的原材料、产品中各零部件的加工工艺流程以及其中各个工序的机器选择信息;一种产品在结构上由若干零部件装配而成;一个零部件从投入生产到完成需要经过多道工序的加工;每道工序能在若干机器上进行加工,对应不同的完成时间;工艺Agent所存储管理的产品工艺信息分为三种:产品工艺信息、零部件工艺信息和工序加工信息。

进一步的,所述产品由若干零部件组成,对应的产品工艺模型由三元组<I, S,R>来表示,I代表产品信息,S代表产品的零部件组成,R代表约束;产品信息包括产品名称、产品ID、规格和精度;零部件组成声明产品的结构;约束表示零部件在生产上的约束关系,若零部件可并行生产,代表该产品的生产具有柔性;

所述零部件需要经历若干道工序的加工,对应的零部件工艺模型由三元组<I,S,R>表示,I代表零部件信息,S代表零部件的工序组成,R代表约束;零部件信息包括零部件名称、零部件ID、需要的原材料、规格和精度;零部件的工序组成表示该零部件从生产到完成需要经历的工序;约束表示工序的顺序约束;在零部件的若根据该约束能得到多条可选的工艺路线,表示产品的生产具有柔性;

所述工序能够在若干机器上进行加工对应不同的加工时间,对应的工序加工信息模型由二元组<I,S>组成,I代表工序信息,S代表工序的机器选择;工序信息包括工序名称、ID;机器选择代表能够完成该工序的设备集合以及对应的加工时间。

进一步的,所述的管理Agent分为全局管理Agent和子管理Agent;全局管理Agent作为系统内的虚拟管理员,能够接收来自用户的生产订单和订单更改、撤销请求、来自监控Agent的故障信息和故障修复信息;由于企业可能在各个地理位置分布有工厂,因此系统为每座工厂其下的资源模块分配一个子管理Agent;子管理Agent通过与全局管理Agent进行交互来管理其下的资源模块,并参与到资源模块的任务分解分配过程。

进一步的,所述的资源模块表示一座工厂的制造资源结构;一座工厂内存在若干车间,每个车间内配置有各类机床、机械臂设备;系统为每台设备分配一个设备Agent,设备Agent负责对所关联的设备的工作进度进行模拟仿真,模拟的数据包括设备正在加工的工序,完成的百分比,以及后续安排的工序的开始时间和结束时间;系统为每个车间分配一个车间Agent,车间Agent对其下的设备Agent进行管理;资源模块主要完成订单任务的分解分配过程。

进一步的,所述的基于订单任务的分解分配方法执行步骤如下:

S1、全局管理Agent接收到订单任务后,进行合法性判断;若合法性通过,把订单任务以广播的形式发送至其下各个子管理Agent,否则返回任务无法完成的判断结果,方法结束;

S2、子管理Agent接收到订单任务后,以广播的形式发送至其下各个车间Agent;

S3、对于接收到的任务,车间Agent检查其下的设备集合能够满足任务对设备的要求;若能够满足,表示车间有能力完成任务,转至步骤S4,否则向所属子管理Agent返回无法完成任务的结果,转至步骤S5;

S4、车间Agent向算法Agent发送调度请求;

S5、算法Agent接收到调度请求后,向工艺Agent获取任务中零部件和工序的加工工艺和机器选择,执行调度策略,计算调度方案,并把方案返回到请求方车间Agent所述的子管理Agent;

S6、子管理Agent对算法Agent返回的调度方案进行筛选;若不存在算法Agent返回的调度方案,表明其下任一车间Agent均无法完成任务,执行步骤S7;若存在算法Agent返回调度方案,从中选出完成时间最短的调度方案,转至步骤S8;

S7、若任务是工序级别的任务,则任务已不能进一步分解,系统无法完成该订单,向全局管理Agent返回无法完成任务的结果,结束方法;若装配任务是产品级别或者零部件级别的任务,对任务分解,得到一个子任务集合;而后把集合内的子任务逐个以广播的形式发布到其下所管辖的车间Agent,转至步骤3;

S8、全局管理Agent接收到各子管理Agent返回的调度方案后,从中选择用时最短的调度方案,并对方案中的设备Agent发送调度方案,通知其按照方案进行模拟仿真,结束方法。

进一步的,所述的算法Agent的重调度方法执行步骤如下:

S1、全局管理Agent接收到来自监控Agent的故障信息后,重新生成参与重调度的任务以及构建参与重调度的设备集合,并向算法Agent发送重调度请求;

S2、算法Agent接收到重调度请求后,执行调度策略,向全局管理Agent返回调度方案;

S3、全局管理Agent接收到算法Agent返回的重调度方案后,通知相关的设备Agent进行模拟仿真;

S4、当全局Agent接收到来自监控Agent的故障修复信息后,再次执行重调度方法,执行步骤S1,此时需把原故障设备加入到重调度设备集。

进一步的,所述步骤S2包含以下步骤:

S21、全局管理Agent重新生成任务;全局管理Agent获取故障设备的模拟数据,根据其中的工序向工艺Agent获取该工序所述的零部件加工工艺流程;

S22、全局管理Agent对获取到的零部件加工工艺流程,对其中已完成的工序标记为无效,形成新的零部件加工任务;

S23、全局管理Agent向故障设备对应的设备Agent发送请求,要求设备Agent清除其所模拟的设备任务队列;

S24、根据设备的影响结果,构建参与重调度的设备集;故障种类分为两种,分别是工作效率下降和中止运行,前者导致相同的装配工序耗时延长,后者导致设备停工等待维修;若设备由于故障需停止运行,则故障设备不加入设备集;若设备由于故障而工作效率下降,则把故障设备加入到设备集中,同时根据工作效率的下降程度,重新计算在该设备上加工的工序的完成时间。

进一步的,所述工艺Agent对系统的产品工艺信息进行管理,为管理Agent和算法Agent提供数据查询服务。所述监控Agent负责采集并分析来自机械状态监测设备、机械故障诊断仪、RFID读取器等设备所采集的工作设备工作进度和状态信息,判断设备的故障类型以及对应的影响,并把相关信息发送至所述管理Agent。所述管理Agent负责对全体Agent进行管理监控。管理Agent分为全局管理Agent和子管理Agent。由于企业可能在不同的地理位置设有工厂,为了联合各工厂部门的技术和制造资源,因此系统需为每个工厂分配一个子管理Agent,子管理Agent负责对车间内的所有Agent进行管理。全局管理Agent能够接收客户的生产订单任务,然后对任务的合法性进行判断;子管理Agent能够接收来自监控Agent关于设备工作进度信息,然后发送至对应的设备Agent,与设备Agent的模拟数据进行同步;子管理Agent同时也能接收来自监控Agent的故障信息,把信息发送至故障设备所属的资源模块后,由资源模块和算法Agent对原有调度方案进行调整,即启动重调度。

进一步的,所述资源模块由若干资源Agent组成,资源Agent分为车间Agent和设备Agent。设备Agent负责对其所对应的机床、机械臂等的工序任务队列进行模拟。车间Agent对应工厂内的一个车间,负责对车间内加工设备对应的设备Agent进行管理。当车间Agent接收到来自管理Agent的任务时,根据其下的设备配置与任务所要求的设备进行匹配,若匹配成功,由算法Agent生成调度方案。

所述算法Agent封装了调度系统内的逻辑方法,可根据系统需求灵活地增加、删除、替换、调整对应算法逻辑。在该系统中,算法Agent至少需要封装两种方法,分别是调度方法和重调度方法,前者计算任务的最小完成时间,生成调度方案,后者当发生订单更改、设备故障等异常因素时,调整原有调度。

所述工艺Agent管理的工艺信息用于表示系统所能生产加工的产品种类、产品需要的原材料、产品中各零部件的加工工艺流程以及其中各个工序的机器选择等信息。一种产品在结构上由若干零部件装配而成;一个零部件从投入生产到完成需要经过多道工序的加工;每道工序能在若干机器上进行加工,对应不同的完成时间。因此根据产品的结构,工艺Agent对其所存储管理的产品工艺信息分为三个级别:产品工艺信息、零部件工艺信息和工序加工信息。

(1)所述产品由若干零部件组成,对应的产品工艺模型由三元组<I,S,R>来表示,I代表产品信息,S代表产品的零部件组成,R代表约束。产品信息包括产品

名称、产品ID、规格和精度等;零部件组成声明产品的结构;约束表示零部件在生产上的约束关系,若零部件可并行生产,代表该产品的生产具有一定的柔性。

(2)所述零部件需要经历若干道工序的加工,对应的零部件工艺模型由三元组<I,S,R>表示,I代表零部件信息,S代表零部件的工序组成,R代表约束。零部件信息包括零部件名称、零部件ID、需要的原材料、规格和精度等;零部件的工序组成表示该零部件从生产到完成需要经历的工序;约束表示工序的顺序约束。在零部件的若根据该约束可以得到多条可选的工艺路线,表示产品的生产具有一定的柔性。

(3)所述工序能够在若干机器上进行加工对应不同的加工时间,对应的工序加工信息模型由二元组<I,S>组成,I代表工序信息,S代表工序的机器选择。工序信息包括工序名称、ID;机器选择代表能够完成该工序的设备集合以及对应的加工时间。

本发明所述的工艺Agent通过修改产品工艺模型的约束、零部件工艺模型的约束或工序加工信息模型的约束,能够适用具有柔性或不具有柔性的产品生产,因此具有通用性。

所述动态调度是通过各Agent间的交互和配合来共同解决任务分解、调度和重调度流程的,各Agent之间的信息交互如下:

所述工艺Agent能够接收处理如下两类消息请求:

(1)工艺Agent能够响应来自系统管理员对工艺信息的增删查改操作。当系统管理员执行添加新产品操作时,工艺Agent需执行的步骤如下:

S1、若新产品是由系统原有零部件组成的,工艺Agent根据系统管理员对零部件的选择以及指定的约束关系,以所述产品工艺模型三元组<I,S,R>的形式录入自身数据库中,而后添加完成,结束操作。若新产品在零部件组成上包含工艺Agent所不具有的零部件,执行步骤S2。

S2、若新的零部件是由系统原有工序组成的,工艺Agent根据系统管理员对工序的选择以及指定的工序约束,以所述零部件工艺模型三元组<I,S,R>的形式录入自身数据库中,而后把新零部件与原有零部件组成的新产品录入数据库中,最终新产品添加完成,结束操作。若零部件在工序组成上包含工艺Agent所不具有的工序,执行步骤S3。

S3、工艺Agent根据系统管理员对新工序的信息和机器选择,以所述工序加工信息模型三元组<I,R>的形式录入自身数据库中,而后经过对新零部件、新产品的相继封装得到新产品的信息,至此产品添加完成,结束操作。

(2)工艺Agent能够接收来自管理Agent对产品信息的获取请求,工艺Agent最终返回产品中各零部件所需的设备集。

(3)工艺Agent能够接收来自算法Agent对零部件工艺信息的获取请求,工艺Agent最终返回对应零部件的加工工艺流程,其中主要是工序间的顺序约束以及机器选择。

所述监控Agent能够发送如下三类消息请求:

(1)监控Agent需定时读取对应设备的工作进度信息,进度信息是指设备正在加工的工序已经完成的百分比,并把进度信息发送至该设备对应的设备Agent,通知设备Agent进行进度同步。

(2)当机械状态监测设备、机械故障诊断仪等监控设备有新数据读入时,监控Agent需要对数据进行分析,得到设备的故障类型以及故障的影响,而后把故障信息发送至全局管理Agent通知其启动重调度。

(3)当故障设备维修完毕可重新投入使用后,返回该信息通知全局管理Agent再次启动重调度。

所述管理Agent能够接收处理如下三类信息请求:

(1)全局管理Agent能够接收来自客户的产品订单任务,订单中标注了所需生产的产品、产品数量、产品的规格和精度等等。管理Agent需对订单合法性进行判断,先向所述工艺Agent获取任务所要求的产品工艺信息,根据系统的设备配置和库存原材料判断是否匹配,若匹配成功,表示系统有能力生产该产品,然后把任务发送至其下各个子管理Agent;若匹配失败,向客户返回无法完成订单的结果。

(2)子管理Agent能够接收来自全局管理Agent的任务请求,而后把任务分别发送至其下的各个车间Agent,获取到各车间Agent的调度方案后,从中选择用时最短的方案;若不存在车间Agent能够完成任务,子Agent执行基于订单任务的分解与分配方法。

(3)全局管理Agent能够接收来自所述监控Agent的设备故障信息,而后清空故障设备上原有的工序任务队列,向算法Agent发送重调度请求。

(4)全局管理Agent能够接收来自所述监控Agent的故障修复信息,而后把原故障设备重新加入调度集合,再次启动重调度流程。

所述资源模块能够接收如下两类消息请求:

(1)车间Agent能够接收来自其所属的子管理Agent的任务请求,该任务可能是产品级、零部件级或工序级别的加工任务,车间Agent把任务所要求的加工设备与自身拥有的设备配置进行匹配,表示该车间有能力完成该任务,然后向算法Agent发起调度请求,计算调度方案;否则,向所述子管理Agent返回任务无法完成的判断结果。

(2)设备Agent能够接收来自监控Agent的的设备工作进度信息请求,而后设备Agent需进行进度同步,即根据该进度信息调整自身所模拟的设备工作进度,以保证模拟数据与设备实际工作进度的误差控制在可接受范围内。

所述算法Agent能够接收处理如下两类消息请求:

(1)算法Agent能够接收来自所述车间Agent的调度请求,该请求附有参与调度的任务以及设备Agent所模拟的设备工序任务队列,算法Agent先向所述工艺Agent获取任务所要求的零部件加工工艺流程,流程中标注了各工序的顺序约束关系以及对应的加工设备,而后根据设备Agent所模拟的工序任务队列,执行调度方法对零部件任务的工序进行分配,最终得到用时尽可能少的调度方案,该方案最终返回到所述子管理Agent。

(2)算法Agent能够接收到来自所述子管理Agent的重调度请求,该请求附有故障设备集合和故障信息,算法Agent需根据设备故障的类型以及影响程度采用对应的重调度方法,并把重调度方案返回到全局管理Agent。

同时,本发明还提供了一种基于订单任务的分解分配方法以及面向设备故障的重调度方法。

本发明相对于现有车间调度系统具有如下优点:

1、使用Agent对制造企业生产加工过程中涉及的管理、工艺、车间设备、监控等模块的功能和结构进行封装,最终形成了对应的多Agent系统。通过各Agent间的交互配合。能快速完成订单任务的分解分配、也能对环境中发送的异常状况快速响应,保证系统的持续稳定生产。

2、根据产品结构对产品工艺信息进行分层次管理并使用对应的形式化数据进行存储,能够及时响应产品信息的增删查改,提高系统的信息化管理水平。

3、综合考虑现代制造业工厂车间的分布式特征,根据处于不同地理位置的工厂车间的制造资源和生产能力对订单任务进行分解分配,联合各企业部门的技术和资源,得到最优的调度方案。

4、能够根据设备故障的类型和故障造成的影响而选择对应的重调度方法,对原有调度方案进行调整以重新满足原有任务的交货期,保证系统的自适应性和鲁棒性。

附图说明

图1是本发明中调度系统的结构示意图

图2是本发明中Agent的内部模型设计图。

图3是本发明中资源模块执行基于订单任务的分解分配方法的流程图。

图4是本发明中算法Agent执行调度方法的流程图。

具体实施方式

以下结合附图和实例对本发明的具体实施作进一步说明,但本发明的实施不限于此。

如附图1所示,本发明涉及一种基于多Agent的面向订单的柔性生产动态调度系统,对应的动态调度系统主要由工艺Agent、管理Agent、资源模块、监控Agent和算法Agent组成。

工艺Agent存储和管理系统的产品工艺信息,包括系统所能生产的产品种类、产品的零部件的加工工艺流程、产品所需的生产设备和原材料。

管理Agent作为系统虚拟的车间调度人员,是全体Agent的消息中转站,为了避免系统内Agent频繁的通信占据过多网络带宽,大部分重要的消息请求需要经过管理Agent进行分类处理后转发,包括设备故障信息、调度和重调度请求信息等。

监控Agent负责采集机械状态监测设备、机械故障诊断仪、RFID识别器等的读取数据,从中获取设备的工作进度信息以及分析设备的故障信息。

]044] 资源模块表示企业一座工厂的制造资源结构,包含一个子管理Agent、车间Agent和设备Agent。设备Agent需要对其所对应的设备的工作进度进行模拟仿真,模拟数据包括设备当前工序的执行进度,后续工序的开始时间和结束时间。

算法Agent是对系统内调度方法、重调度方法等的逻辑封装,可根据系统的需求增加、移除、替换、更改其中的算法,为其他Agent提供计算服务。

为实现系统的灵活高效,各Agent都需要设置通信管理模块,其中指定了Agent间的通信方式。同属一座工厂、车间的Agent可以通过信息总线或局域网实现高效通信;位于不同地理位置的Agent需通过网络进行通信,因此通信管理模块中需制定自身的IP地址和端口,具体通信方式可灵活替换,如基于TCP或UDP的Socket通信方式、WebSocket、WebService等等。其中由于全局管理Agent拥有消息中转服务,其他所有Agent在启动后需要第一时间在全局管理Agent中注册自身的通信标识(IP、端口等)。

同时为提高系统内Agent的自主性,需为Agent设置调度模块和决策模块。决策模块封装Agent所需的决策信息,如管理Agent的决策模块需配置订单合法性的判断方法、订单任务的封装方法等等;算法Agent的决策模块需配置调度和重调度方法,包括方法模型、参数设定等;监控Agent的决策模块需配置故障诊断方法、故障程度的判定方法等等。而调度模块根据通信管理模块接收到的消息请求选择对应的执行方法,方法的执行需要决策模块的支撑。

实施例一:当动态调度系统启动时,执行以下操作:

S1、启动全局管理Agent。管理Agent运行于整个调度系统的中枢,相当于中央服务器。管理Agent启动后,初始化通信管理模块和调度执行模块,监听来自其他Agent的注册。通过界面向系统管理员展现各个工厂中车间以及设备的工作进度。

S2、启动工艺Agent。工艺Agent为其他Agent提供数据查询服务,因此启动顺序仅次于全局管理Agent。系统管理员能通过界面查看工艺Agent所管理的工艺信心,并能对工艺信息执行增删查改等操作。

S3、启动算法Agent。算法Agent为资源模块和全局管理Agent提供计算服务,因此启动顺序在工艺Agent之后。

S4、启动资源模块。资源模块表示的是企业位于不同地理位置的一座工厂内的制造资源构成,因此当对应的工厂投入使用并开始运作时,对应的监控Agent、车间Agent和设备Agent会依次启动。其中,当监控Agent返回设备的工作状态和工作进度后,设备Agent启动模拟仿真,并将相关数据呈现在界面上,系统管理员能够通过界面上设备Agent模拟的数据查看对应设备的工作进度以及工作状态,如设备是否正常运行、设备正在加工的工序的完成百分比以及后续安排的工序等等。其次设备Agent需要向所属的车间Agent发送Agent信息,同样包括IP、端口、种类、能力等。

各Agent启动后,时刻监听来自外界的信息,根据信息来源和种类,从决策模块中选择相应的决策,由调度模块执行相关方法函数,以实现从订单输入到调度方案生成以及异常信息输入到重调度方案生成的全过程。

应用实例二:如附图3所示,当接收到来自用户的生产订单任务时,调度系统所执行的调度方法的执行过程如下:

S1、全局管理Agent对订单合法性进行检测。其中订单任务中标注了要求的产品名称、数量、规格、精度、交货期等,随后全局管理Agent向工艺Agent获取产品的信息,比较订单产品所要求的设备与系统的设备配置、产品所需原材料和系统的库存原材料是否符合,若合法性通过,执行步骤S2,否则向用户返回无法完成任务的判断结果。

S2、全局管理Agent对订单任务进行进一步的封装,其中主要标注任务对设备资源的要求,而后获取各子管理Agent的通信标识,把任务以广播的方式发送到其下各个子管理Agent。

S3、子管理Agent收到任务后,同样把任务广播至其下各车间Agent,车间Agent将自身所管辖的设备Agent集合与任务中所要求的设备集合进行对比,若两者能相互匹配,则向算法Agent发送调度请求,请求中附有参与调度的设备Agent所模拟的设备工作进度信息以及调度任务。

S4、算法Agent接收到调度请求后,先根据任务集合中的零部件向工艺Agent获取详细的加工工艺流程信息,所要求的信息包括工序的约束关系和机器选择,之后在不影响原有调度方案的前提下,基于调度设备原有的任务序列上计算新任务的分配方案,以获取用时最少的调度方案,并把该方案返回给请求方车间Agent所述的子管理Agent,该步骤对应附图4。需要突出的一点是,算法Agent的调度方法可以根据系统的需求进行替换,如遗传算法、粒子群优化算法等等,同时可根据任务的要求进行参数的修改以获得更好的调度结果。

S5、子管理Agent若接收到算法Agent返回的调度方案,说明存在车间能够独立完成任务,从中选择用时最短的方案返回到全局管理Agent,执行步骤S7;若不存在调度方案,则需要进一步进行任务的分解分配,执行步骤S6。

S6、若任务是产品级或是零部件级的任务,表明任务可进一步分解得到子任

务集合。对于集合中的每一个任务,逐个发送到其下的车间Agent,执行步骤2。

S7、若全局管理Agent收到来自子管理Agent的调度方案,说明存在工厂能够完成任务,从中选择用时最少的调度方案,若该方案满足订单任务的交货期,则采用该方案,否则向客户返回无法在要求的交货期内完成任务的判断结果。

应用实例三:当设备出现故障时,该调度系统所执行的重调度过程为:

S1、监控Agent接收到对应监控设备的监控数据,分析设备的工作状态,当设备由于零件磨损、老化、断裂或者温度、气压异常导致工作效率下降或中断运作时,监控Agent需对故障信息进行封装,注明故障类型、故障引起的后果等,最后把该消息发送到全局管理Agent。

S2、全局管理Agent接收到故障信息后,向故障设备对应的设备Agent发送请求,获取其模拟数据,并要求设备Agent清空其模拟数据,即把设备置为空闲状态。

S3、全局管理Agent获取到故障设备的模拟数据后,对其中模拟的工序所述的零部件任务进行收集,整理为任务集合,把该集合广播至其下所有子管理Agent。

S4、子管理Agent收到任务集合后,通过车间Agent把集合发送至其中的设备Agent,若设备Agent模拟的数据中存在工序属于集合中的任务,则回收该工序。

S5、全局管理Agent重新构建订单任务,任务中包含故障设备上工序所属的零部件任务,对于任务中已完成的工序进行“已完成”标记,不参与调度。

S6、全局管理Agent根据设备故障类型重新构建调度设备集。若故障设备无法运作需马上停工,设备集中不包含故障设备;若故障设备仍能运作,只是工作效率下降,则把故障设备加入到设备集中,同时需要对能在故障设备上加工的工序,根据工作效率下降的程度,重新计算其执行时间。

S7、全局管理Agent把重新构建的任务和调度设备集发送至算法Agetn,由算法Agent执行重调度方法,得到调度方案后,返回至全局管理Agent。

S8、当故障设备维修完毕,能正常投入使用后,监控Agent返回通知到全局管理Agent,再一次执行重调度过程,此时的调度设备集合需包含原故障设备,相应装配工序的执行时间也要恢复到原本的大小。

应用实例四:当出现紧急订单时,该调度系统的重调度步骤为:

S1、紧急插单对应的订单任务在完成期限上更为紧迫,具有最高优先级。全局管理Agent先进行一次“打赌”,即使用正常的调度方法,基于资源模块内各设备Agent的模拟数据把订单任务发送至算法Agent,由算法Agent计算最优的调度方案,若该方案的完成时间满足紧急订单的交货期,则调度结束,否则执行紧急插单对应的重调度方法。

S2、资源模块执行紧急订单对应的重调度规则:把模块内的设备均置为空闲状态,单独对紧急订单任务进行调度。各个设备Agent上的先保存原本的模拟数据,作为第二次重调度的任务集,然后清空各设备Agent的模拟仿真数据,然后把任务发送至算法Agent计算调度方案,此时紧急订单的任务分配完成,由于此过程单独考虑紧急订单任务,因此所得方案是能够在最大程度满足订单的交货期。

S3、对步骤2保存下来的任务集进行重调度。把任务集和全局设备集合发送至算法Agent,执行重调度方法,返回调度方案。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1