FlexSim AGV仿真Tutorial Task 4.2 - 使用流程流的AGV
购买adidas上京东官方旗舰店。
任务概述
为了让AGV仿真更加简单,FlexSim提供了几个预建的AGV流程模板,您可以在AGV仿真项目中使用。这些流程模板已包含大多数AGV系统所需的基本逻辑。下图展示了高级AGV模板的全局视图:
在本教程任务中,您将学习如何设置高级流程模板。您还将学习如何创建取货区、卸货区和停车点。在教程的最后,您将学习如何调整控制点灵敏度,以使系统更高效。
虽然详细解释AGV模板的工作原理超出了本教程的范围,但您应该了解此流程将控制该AGV系统中几乎所有的逻辑。建议您进一步探索AGV流程模板以详细了解其工作原理。
完成后,您的模型将类似于下图:
步骤 1添加AGV流程模板
在此步骤中,您将创建AGV流程模板并将AGV连接到该流程。正如您将在本步骤中看到的,基本设置相当简单。创建流程模板后,您需要将AGV连接到流程。然后,您将设置处理器将运输任务推送到名为AGVWork的全局列表(该列表在设置AGV流程时会自动创建)。一旦AGV连接到流程,您就不再需要调度器对象,可以将其删除。
为了使流程正常工作,您还需要创建一个“下一个工作点”循环。该循环本质上是一系列相互连接成环路的控制点。设置好此回路后,系统中的AGV将持续在网络中循环,寻找待处理的运输任务。您将在本步骤中于主AGV网络内设置“下一个工作点”系统。
添加流程并设置其逻辑:
- 在主工具栏上,单击流程按钮以打开菜单。指向添加对象流程,然后选择高级AGV以创建此流程模板。
-
在新创建的流程中,单击空白区域以确保未选中任何内容。在属性面板的流程实例组下,找到附加对象(实例)框。单击此框旁边的采样器按钮以进入采样模式。
在3D模型中,单击
- AGV1。它现在应显示在附加对象框中。重复上述步骤以附加
- Repeat the previous steps to attachAGV2连接到工艺流程。
- 现在AGV已连接到工艺流程,您可以删除AGVDispatcher在3D模型中。
- 在3D模型中,点击Staging1处理器以打开其属性。在输出部分,点击使用运输工具框旁边的箭头以打开菜单。指向使用列表,然后选择推送到项目列表(无任务序列)以打开一个选择列表窗口。
- 确认列表框显示当前已选择AGVWork列表。其余属性保持默认设置。
- 点击确定按钮以保存更改并关闭属性窗口。
- 重复上述步骤,将AGVWork列表也添加到Staging2处理器。
- 如果两个AGV当前正悬停在AGVEntryPoint控制点上,请将它们拖离控制点,以便控制点可见。
- 创建一个连接(A-连接)从AGVEntryPoint控制点到MainDropOffPoint点击控制点以打开菜单。选择下一个工作点。一条红线将出现,显示两个控制点已连接。
-
重复此过程,按照以下顺序在其余控制点之间创建循环的下一个工作点连接:
- 从主卸货点控制点到主取货点控制点
- 从主取货点控制点到左下控制点
- 从左下控制点到右下控制点
- 从右下控制点到右下方控制点
- 从右下方控制点到右上控制点
- 从右上控制点到AGV入口点控制点
重置并运行仿真模型:
如果您还记得上一个教程任务结束时,存在一个问题,即AGV1和AGV2发生死锁。幸运的是,这个问题不再发生,因为现在两辆AGV都会在系统中循环运行,持续寻找工作,无论是否有实际工作需要执行。AGV流程模板自动创建了此逻辑。
步骤2添加取货区域
在此步骤中,您将学习如何添加取货区域,并将取货控制点连接到位置控制点。您将创建取货站,最多可容纳10个物品等待AGV运输。
完成此步骤后,您的3D模型将类似于下图:
要创建取货区域:
- 创建一条从右向左的水平AGV路径,从AGV网络的左下角向外延伸,长度为16个单位。两端各留1个单位空间。
- 创建一条从上到下的垂直AGV路径,长度为3个单位。此路径应位于前一条路径的左下方1个单位处。
- 创建一条从左到右的水平路径,长度为18个单位。它应位于前一条路径的右下方1个单位处。
- 创建一条从下到上的垂直路径,长度为3个单位。它应位于前一条路径的右上方1个单位处。
- 使用库中的连接路径工具将这些路径连接在一起。将主AGV路径与您创建的第一条和最后一条新路径连接起来。确保连接路径的流向与其他路径相同。
- 在顶部和底部的路径上各添加10个控制点,将它们间隔约3个单位。
- 为清晰起见,按照AGV将经过的顺序,将新的控制点重命名为PickUp1、Pickup2等。
- 创建一个控制点连接(A-连接),从MainPickUpPoint控制点到PickUp1控制点以打开菜单。选择PickUpPoints。将出现一条绿线,显示这两个控制点已连接。
- 重复前面的步骤,从MainPickUpPoint到所有10个拾取控制点创建拾取控制点连接。
- 打开DeliverySchedule流程。
- 点击来源:MedSupplies 交付活动以选中它。在属性中,找到到达组,在数量列下的第一行单元格。在此单元格中输入10。
重置并运行模型:
注意,流项目进入队列,处理器开始处理它们。然后,处理器将它们传递给 MainPickUpPoint 控制点,该控制点立即将项目分流到十个拾取点之一。当 AGV 经过 MainPickUpPoint 寻找工作时,它会引导它们前往拾取区域。AGV 随后装载流项目并将其运输到目的地。
如果让模型运行足够长时间,AGV 将运输所有项目。注意,当这种情况发生时,它们将绕过进入拾取区域,因为该区域没有需要它们处理的运输工作:
步骤 3添加一个卸货区域
就像可以为 AGV 转运创建拾取点一样,也可以为固定资源创建卸货点。此步骤将指导您完成该过程。
完成此步骤后,您的 3D 模型将类似于下图:
要创建卸货区域并使用全局列表:
- 在 3D 模型中,删除DropOff吸收器。
- 创建一条水平的 AGV 路径,从右向左延伸,从 AGV 网络的左上角开始,长度为 12 个单位。两端各留出 1 个单位的空间。
- 创建一条从上到下的垂直AGV路径,长度为3个单位。该路径应位于前一条路径左侧和下方各1个单位的位置。
- 创建一条从左到右的水平路径,长度为12个单位,与上一路径相同。该路径应位于前一条路径右侧和下方各1个单位的位置。
- 使用连接路径工具将这两条路径连接起来。将主AGV路径与你创建的第一条和最后一条新路径连接。确保连接路径的流向与其他路径方向一致。
- 在顶部和底部路径上各添加4个控制点,沿路径均匀分布。
- 为清晰起见,按照AGV经过的顺序,将新控制点重命名为DropOff1、DropOff2等。
- 从库中添加一个队列到此区域。
- 为清晰起见,将新队列重命名为LoadingDock。
- 创建一个连接(A-connect),从LoadingDock队列到MainDropOffPoint控制点。
- 创建一个连接(A-connect),从MainDropOffPoint控制点到DropOff1控制点以打开菜单。选择DropoffPoints。将出现一条浅蓝色线条,表示位置控制点现已连接到卸货控制点。
- 根据需要重复上述步骤,为其他三个卸货控制点创建额外的卸货控制点。
检查你的仿真模型是否与本步骤开头显示的图像相似。
步骤4使用列表设置物品目的地
在此步骤中,你将学习一种不同的方法将物品发送到下游对象。你将使用名为ItemsReadyForDelivery的全局物品列表来推送和拉取物品,而不是使用端口连接。你还将把Dropoff接收器改为队列。
尽管列表需要更多思考来正确设置,但在AGV模型中,列表有时更适合物品路由,因为它们不需要在可能很长的距离上建立端口连接。对于具有许多不同起点和目的地的模型,列表还可以简化多对多端口路由。
要创建全局物品列表:
-
在工具箱中,点击添加按钮
以打开菜单。指向全局列表,然后选择项目列表。
- 在列表属性窗口中,将列表名称改为ItemsReadyForDelivery。
- 在标签字段框中,删除当前文本并输入LoadType。
- 删除所有表达式字段。
- 按下确定按钮以保存更改并关闭窗口。
- 点击Staging1处理器以打开其属性。在输出部分,点击发送至端口按钮旁边的箭头以打开菜单。指向使用列表,然后选择推送至项目列表。
- 点击列表框以打开菜单。 选择待交付物品。
- 对暂存区2处理器重复上述步骤。
- 点击装货区队列以显示其属性。 在输入部分勾选拉取复选框。
- 点击此框旁边的箭头以打开菜单。指向使用列表并选择从物品列表拉取。
- 点击列表框旁边的箭头以打开菜单。 选择待交付物品。
- 点击确定按钮以保存更改并关闭窗口。
重置并运行模型:
注意,第一辆AGV在卸货点4卸货,第二辆AGV在卸货点3卸货。
步骤 5添加停放点
在此步骤中,您将再向模型添加三辆AGV,总计五辆。您还将为每辆AGV创建停放点。停放点是AGV在仿真模型首次开始运行时所在的位置。在仿真运行期间,当AGV电池电量低时,可以返回停放点充电。
完成此步骤后,您的3D模型将类似于下图:
要添加额外的AGV并创建停放点:
- 从库中再添加三个任务执行器对象到三维模型中。
- 为清晰起见,将这些AGV重命名为AGV3、AGV4和AGV5。
- 打开AGV工艺流程。
-
点击空白区域以确保未选中任何对象。在属性面板的工艺流程实例组下,找到附加对象(实例)框。点击此框旁边的采样器按钮
进入采样模式。
- 在三维模型中,点击AGV3。现在它应该出现在附加对象框中。
- 重复前面的步骤,将另外两个新的AGV也附加到工艺流程中。
- 将AGV1和AGV2从AGV入口点控制点移开,以便在三维模型中可见。
- 创建一个端口连接(A-连接)从AGV2到AGV入口点控制点以打开菜单。选择旅行者AGV。一条红线将出现,显示第二个AGV已连接。
- 重复上一步骤,将剩余的AGV连接到控制点。
- 在左上角距离角落约4个单位的位置,创建一个垂直的AGV路径,长度为6个单位。
- 点击新路径以选中它。在属性中,勾选双向复选框。
- 按Ctrl+C复制选中的路径。按Ctrl+V在模型中粘贴路径的副本。
- 重复上一步骤,创建5条路径。将这些路径间隔开,使它们彼此之间相距约四个单位。
- 使用连接路径工具将每条停车路径连接到主AGV网络。
- 点击你创建的一条新连接路径以选中它。在属性中,勾选双向复选框。
- 重复上一步,将所有新加入的路径改为双向路径。
- 从库中添加一个控制点到其中一条公园路径的中间。
- 对所有五条公园路径重复此步骤。
- 为了清晰起见,将这些新控制点重命名为ParkPoint1、ParkPoint2等。
- 从AGVEntryPoint控制点到ParkPoint1控制点创建一个端口连接(A-connect)以打开菜单。选择ParkPoints。一条深绿色的线将出现,表示第二个AGV已连接。
- 重复之前的步骤,将AGVEntryPoint控制点连接到其余的停车点。
重置并运行仿真模型:
仿真开始时,所有五台AGV均从其指定的停放点出发,随后在网络中移动执行运输任务。您会注意到,有时AGV需要短暂停顿。在下一步中,您将学习如何减少AGV在控制点的等待时间。
如果让模型运行足够长的时间,AGV将完成所有物料的运输。注意当运输任务全部完成后,AGV最终会全部返回停放点进行充电,而非在系统中空转:
步骤 6调整控制点灵敏度
在前一步骤中,您注意到AGV有时需要停车等待前方路径上的AGV离开其所在控制点。这是因为AGV网络具备先进的预判机制,可通过检测路径中下一个控制点是否可用以避免碰撞。若不可用,AGV将在当前控制点等待。
默认情况下,控制点需等到占用它的AGV抵达下一个控制点后才释放。您可以调整控制点灵敏度,使AGV只需离开当前控制点,该点即可被其他AGV占用。在本步骤中,您将通过修改控制点的"释放类型"属性来学习如何调整此灵敏度。
调整AGV系统控制点灵敏度的操作如下:
- 将五台AGV从AGVEntryPoint控制点移开,使其在3D模型中可见。
- 点击AGVEntryPoint控制点以选中它。在属性面板中,点击Deallocation Type菜单将其展开。选择Deallocate When Past Current(经过后立即释放)。
- 对主AGV网络中的所有控制点重复上一步操作。
- 在工具箱中,双击自动导引车网络打开网络属性窗口。
- 在解除分配类型选项卡中,从类型菜单选择经过当前位置后解除分配。
- 在解除分配条件标题下,点击第一个菜单将其打开。选择中心。
- 按下确定按钮保存更改并关闭窗口。
重置并运行仿真模型:
现在请注意,自动导引车在系统中行驶时效率更高。自动导引车发生死锁的情况减少,并能快速有效地在整个网络中分散开来。
结论
现在您已经了解了自动导引车流程模板如何实现更复杂的行为,如拾取点、卸货点和停放点。您还学习了如何根据需要调整控制点灵敏度以提高系统效率。在下一个教程中,您将学习如何为自动导引车系统添加电梯,以便自动导引车在需要时可以前往多个楼层。请继续学习教程 4.3 - 在自动导引车系统中使用电梯。
返回本章目录


微信扫一扫,打赏作者吧~