本帖最后由 Yumaotuo 于 2018-5-14 09:45 编辑
1、模型描述: 有三台同样的设备加工产品,加工完之后由固定路线的AGV小车把货物搬到暂存区。为提高设备利用率,AGV在空载时始终等在传送带出货口的位置,并且在去搬运处理器加工完的产品时携带一个产品去给处理器补货。 2、模型布局: 1个发生器与传送带A连接,传送带与3个处理器A连接,3个处理器与暂存区A连接,再加1个发生器0时刻产生3个产品并与3个处理器A连接。传送带、处理器、暂存区和AGV都A连接相应的网络节点进入路径。
3、建模逻辑: 产品加工完毕处理器调用运输工具,在运输工具过来之前先在传送带出货点等待装载货物,当调用运输工具时出货点有货物则直接装载,若没有货物则等待货物传过来。这个模型是一个子任务序列的逻辑,对于不熟悉编写任务序列的初学者来说很难实现,这里使用Process Flow模块,可以较清晰的梳理任务序列的逻辑和以极少的代码编辑实现子任务的逻辑。
4、建模步骤 Step1:建立新的空白FixedResource Process Flow,选择引用该PF的处理器
Step2:对照模型布局中的PF流程图建立流程布局,对每一步骤重命名,设置第一个发生器(事件触发)监听的事件为处理器的使用运输工具,并且把后面要用的参数进行标签赋值。调用运输工具的处理器定义为current,加工完的Item和要去往的目的地分别设置标签为item和destination.后面就可以使用current、token.item和token.destination来引用到这三个实体了。
Step3:资源引用AGV,为全局类型,占用资源和释放资源为默认设置。对要引用的传送带和离开衔接点进行标签赋值为conveyor和op_station,标签的值可以直接用吸管吸。
Step4:AGV在传送带的出货点要进行选择,出口处有货物就直接转载,没货物就等待,使用流转对token进行分流,在发送临时标记处写入以下代码,并且指定出口的顺序。 Object conveyor = token.conveyor;//引用传送带 if (token.conveyor.subnodes.length==0)//判断传送带上是否有货物 return 1;//如果没货物就去1号出口 return 2;//如果有货物就去2号出口
出口1进入事件监听,事件监听的逻辑是被监听的事件发生token才往下流。在出口处放一个决策点,监听事件为决策点的到达触发,把到达的Item和传送带赋值标签;出口2进入标签赋值,把传送带上的item赋值为box。
Step5:从传送带装载到货物之后AGV就可以去执行后面的任务了,按照顺序设置每个任务的参数。
Step6:最后要触发PF的发生器(事件触发),处理器都必须设置使用运输工具,这里把使用运输工具里的值设为0,不引用具体的运输工具。
|