FlexSim AGV仿真 Tutorial Task 4.1 - 使用标准3D逻辑的AGV
购买adidas上京东官方旗舰店。
任务概述
完成本教程后,您最终将为整个医院构建一个AGV网络。AGV将在医院其余区域与装卸区之间运输医疗用品、待洗衣物和废弃物。
上网淘巴领天猫淘宝优惠券,一年省好几千。现在,在第一个教程任务中,您将专注于使用标准3D逻辑创建一个非常基础的AGV网络。您将学习如何创建AGV路径,以及如何将3D对象连接到这些路径上的控制点。您还将学习如何向模型中添加多个AGV。
完成后,您的模型将类似于下图:
步骤 1添加并连接AGV路径
在此步骤中,您将添加AGV路径并将它们连接在一起,以创建主要的AGV网络。该网络将形成一个环形回路,AGV将在此回路上持续循环运行,寻找需要处理的任务。完成此步骤后,您的3D模型应如下图所示:
在很大程度上,AGV路径的添加、移动、调整大小等操作可以使用与其他3D对象相同的方法。然而,关键区别在于AGV路径有两个端点:分别称为起点和终点。
起点是AGV进入路径的位置,终点是AGV离开路径的位置。虽然这两个端点是连接的,但您可以独立移动它们。弯曲路径还具有半径、起始角度和扫掠角度,您可以使用这些参数来控制路径的弧度。
为此3D模型创建AGV路径布局:
-
在库中,单击展开按钮
位于AGV组旁边,以查看AGV对象。
- 单击直线路径进入路径构建模式。当您处于路径构建模式时,鼠标指针将变为一个加号,旁边带有直线路径图标,如下图所示:
- 进入构建模式后,在3D模型中找到您想要放置AGV路径起点的位置。当您单击模型中的该位置并开始从左向右移动鼠标指针时,您会注意到它开始创建一条AGV路径。
- 重新定位鼠标指针,直到路径距离起点28个单位。最终,主要的AGV环形路径将沿x轴25个单位,沿y轴30个单位,但您需要在两端各留出1个单位的空间。
-
请注意,您仍处于路径构建模式。您将再构建3条路径。尝试将这些路径构建成一个大约25乘30个单位的长方形,且不在角落处连接路径,如下图所示:
- 按Esc键退出路径构建模式。
-
在连接这些路径之前,请检查以确保路径的朝向为逆时针方向。每条路径上的方向箭头显示了AGV在该路径上的移动方向:
- 南侧路径应从左向右移动
- 东侧路径应从下向上移动
- 北侧路径应从右向左移动
- 西侧路径应自上而下移动
- 现在开始连接路径。在AGV组下的库中,点击连接路径对象以进入路径连接模式。进入路径连接模式后,鼠标指针将变为带连接路径图标的加号,如下图所示:
- 在连接模式下,将鼠标悬停在一条路径的末端,直到其变为黄色(如同高亮显示)。点击该路径并开始移动鼠标指针至最近路径的末端。当该路径变为黄色(如同高亮显示)时点击它。此时两条路径应已连接。
- 将所有剩余路径连接起来,形成闭合回路。
- 按Esc键退出路径连接模式。
建议此时保存仿真模型。
步骤2向网络添加并连接3D对象
在此步骤中,您将为模型添加多种3D对象:
- 一个作为医院卸货码头的队列,最终将接收医疗用品和洁净衣物的运输货物
- 两个处理器,用于表示在装载站为AGV分拣运输货物所需的时间
- 一个任务执行器对象(默认情况下这些对象的视觉外观类似AGV)
- 一个暂存器,将在AGV卸载货物时临时作为目的地
最重要的是,您将学习如何使用名为控制点的AGV对象在此步骤中将3D对象连接到AGV网络。控制点是固定资源与任务执行器能与AGV网络交互的接入点。您需要将固定资源连接到控制点,使其能够请求和接收运输服务;同时将任务执行器连接到控制点,使其能够进入并在AGV网络上行驶。
请注意,AGV网络本质上是一种更复杂的方式,用于将流物料从一个3D对象运输到另一个对象,但其基本运输逻辑与使用任务执行器运输流物料的标准方法非常相似。因此,您需要确保所有对象通过端口连接相互连通。
完成此步骤后,您的3D模型应类似于下图:
添加并连接这些对象的步骤如下:
- 在AGV组下的库中,拖出七个控制点除最上面的直线路径外,在每条直线路径上放置两个控制点。如图所示,将每个控制点放置在距离路径边缘约 5 个单位的位置:
- 为清晰起见,将部分新控制点重命名如下:
-
从库中将以下 3D 对象添加到 3D 模型中:
- A队列(靠近主取货点)
- 2处理器(靠近主取货点)
- A接收器(靠近主卸货点)
- A任务执行器(靠近 AGV 入口点)
- 为清晰起见,将对象重命名如下:
- 创建一条连接(A-connect),从AGV1到AGV入口点控制点,以打开菜单。选择移动AGV。将出现一条红线,显示AGV已连接。
-
为以下对象创建连接(A-connect):
- 从暂存区1处理器到主拾取点控制点
- 从暂存区2处理器到主拾取点控制点
- 从卸货点接收器到主卸货点控制点
- 从卸货码头队列到暂存区1处理器
- 从卸货码头队列到暂存区2处理器
- 从暂存区1处理器到交货点接收器
- 从暂存区2处理器到交货点接收器
- 创建一条从暂存区1处理器到AGV1的中心端口连接(S型连接)。
- 重复上述步骤以连接暂存区2处理器到AGV1同样如此。
| 对象 | 新名称 |
|---|---|
| 东北角控制点 | AGV入口点 |
| 西北角控制点 | 主卸货点 |
| 西南角控制点 | 主取货点 |
| 对象 | 新名称 |
|---|---|
| 队列 | 卸货码头 |
| 处理器1 | 暂存区1 |
| 处理器2 | 暂存区2 |
| 接收器 | 卸货点 |
| 任务执行器 | AGV1 |
完成后,您的模型应与此步骤开头显示的图像类似。
步骤 3设置运输逻辑
在此步骤中,您将创建基本的运输逻辑,暂存处理器将使用该逻辑通过AGV网络将物品发送到卸货接收器。目前,您将学习如何将AGV集成到标准3D对象逻辑中。在后续步骤中,您将学习如何将其与流程流集成。
在此步骤结束时,您还将设置一个简单的流程流,用于处理到达卸货码头物品的调度计划。目前,您将把调度设置为仅交付两个流动物品,这两个物品将立即由两个暂存处理器处理。未来,您将使这个到达调度计划更加复杂。请记住,此步骤的主要目标主要是测试基本运输逻辑是否正常工作。
完成后,您的流程流将类似于下图:
以下是每个活动功能的概述:
| 活动 | 说明 |
|---|---|
| 源:医疗物资交付 | 调度源是一个活动,它将在仿真模型运行期间的特定时间创建令牌。目前,您将设置此活动在仿真模型开始时创建两个令牌。 |
| 创建对象:卸货码头物品 | 此活动将创建一个箱式流动物品,并将其放置在 UnloadingDock 队列中。 |
| 接收器:物品已创建 | 此活动将令牌从流程流中移除。您将使用其默认设置。 |
要设置运输逻辑:
- 点击Staging1处理器,在右侧显示其属性。在输出部分,勾选使用运输复选框。
- 点击确定按钮保存更改并关闭属性窗口。
- 对Staging2处理器也是如此。
- 在主工具栏上,点击流程流按钮以打开菜单。选择添加通用流程流来创建一个新的流程流。
- 在属性中,将此新流程流的名称更改为DeliverySchedule。
- 从显示组下的库中,添加一个容器形状。
- 为清晰起见,将该形状重命名为医疗用品。
-
将以下活动添加到流程流中,创建一个堆叠块:
- 一个计划源(位于令牌创建下)
- 一个创建对象(位于对象下)
- A汇(在基础下)
- 为清晰起见,将新活动重命名如下:
- 点击源:医疗物资配送活动以选中它。在属性中,找到到达表下,定位到第一行数量列下的单元格。在此单元格中输入2。
-
点击创建对象:卸货码头物品活动以选中它。在属性中,检查并确保已选择创建于选项。接着在此选项下方的框中,点击采样器按钮。
进入采样模式。
- 在3D模型中,点击UnloadingDock队列以打开菜单。选择UnloadingDock对其进行采样。
| 对象 | 新名称 |
|---|---|
| 源 | 源:医疗物资配送 |
| 创建对象 | 创建对象:卸货码头物品 |
| 汇 | 汇:已创建物品 |
重置并运行模型,以测试基本的AGV运输逻辑是否正常工作:
如果模型设置正确,两个处理器将处理两个流实体。处理完成后,AGV将拾取一个流实体并将其运输到吸收器。然后,它将再次循环返回并拾取另一个流实体。
如果模型行为不符合预期,请返回并检查是否已正确完成教程中的先前步骤。
步骤 4添加第二个AGV
在此步骤中,您将学习如何向AGV网络添加额外的AGV。如果使用标准逻辑控制AGV,一旦开始使用多个AGV,就需要切换为使用调度器。
完成后,您的3D模型将类似于下图:
要添加第二个AGV:
- 移除连接AGV1与Staging1和Staging2处理器的中心端口连接。(按住W键的同时点击两个相连的对象。)
-
从库中将以下对象添加到模型中:
- 一个Dispatcher
- 一个TaskExecuter
- 为清晰起见,将对象重命名如下:
- 从Staging1处理器到AGVDispatcher创建一个中心端口连接(S-connect)。
- 重复上一步,将Staging2处理器也连接到AGVDispatcher。
- 从AGVDispatcher到两个AGV创建端口连接(A-connect)。
- 将AGV1从AGVEntryPoint拖开,以便在3D模型中看到控制点。
- 从AGV2到AGVEntryPoint控制点创建一个端口连接(A-connect)以打开菜单。选择Traveler AGV。将出现一条红线,显示第二个AGV已连接。
| 对象 | 新名称 |
|---|---|
| Dispatcher1 | AGVDispatcher |
| TaskExecuter | AGV2 |
重置并运行模型:
注意,AGV2会发生死锁,因为AGV1停留在卸货点且不会移动,导致AGV2无法送达流项目。AGV1不移动的原因是没有更多卸载任务可供其处理。因此,它只是停留在当前位置,直到被分配新的任务。由于当前模型只安排了两个流项目到达卸货码头,所以永远不会有新任务。
你可以通过确保两个AGV有连续的工作任务来解决此问题。你也可以在接收器中添加多个卸货点,以便不同的AGV能够各自将货物送达接收器而不会发生冲突。然而,使用AGV流程流模板时,添加停放点会更容易,这将在下一个教程任务中介绍。
结论
现在你已使用标准3D对象和标准3D逻辑构建了一个非常基础的AGV模型,是时候让这个基础模型稍微复杂一些了。在下一个教程任务中,你将学习如何使用AGV流程流模板,并在模型中添加一些取货点和停放点。继续前往教程任务 4.2 - 使用流程流的AGV。
返回本章目录


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