FlexSim 是一个功能强大的仿真软件,广泛应用于生产、物流和仓储等领域。本文将通过一个简单通用性示例,介绍如何使用 FlexSim 模拟 AGV(自动导引车)搬运货架的流程,并解决实践中可能遇到的问题。实践过程中需要您对Flexsim的常用资源有一定了解。
目录
效果演示
本案例是一个简单的 AGV 搬运货架示例,具有良好的通用性。AGV 依次完成以下三部分操作:移动到货架、装载并搬运货架、卸载货架并返回起始点。具体建模流程及参数设置将在下文中详细介绍。
建模教程
1.新建模型
在 FlexSim 中创建一个新的模型,并为仿真设置基础环境。
2. 货架设置
从 FlexSim 的模型库中拖出一个货架对象。根据实际需求调整货架的外观和大小。右键点击货架并选择“调整大小”,使其符合实际的需求。将调整后的货架拖动到道路上的指定控制点上方,便于 AGV 准确进行定点搬运。
3. 创建 AGV 道路与控制点
创建 AGV 道路,选择合适的道路类型(如双向道路),并在道路上添加多个控制点(Control Point)。控制点将用于指导 AGV 小车的移动路径。
注意:在两段直线道路之间需要使用 Join Path 连接,否则 AGV 无法顺利通行。控制点需置于道路之上,否则 AGV 可能无法到达。
4. 配置 AGV 小车
添加 AGV 小车对象。将 AGV 小车与起点使用A链接连接,并将其属性设置为“AGV 小车”(Traveler AGV),连接后,AGV 小车将以连接的控制点作为起始点。连接完成后会有红线将起点与AGV连接,如图所示:
5. 创建并设置流程图
首先添加一个新的通用流程图:
在流程图中定义 AGV 小车的任务逻辑,每一步对应具体操作,完整流程如下:
-
启动流程图(Process Start):生成 token 以标记流程的开始。
-
定义资源(Resource):在流程图中添加一个资源对象,表示将要搬运的货架(Rack)。你可以从资源列表中选择货架,或使用滴管工具直接从模型中吸取货架对象。
-
3.拉取资源(Acquire Resource):设置好resource之后添加一个Acquire Resource并点击,使用右侧的吸管工具吸取Resource完成资源拉取。点击Acquire Resource图标可以发现已经拉取之前定义好的资源(Rack1),并将其标记为 Token.resource,作为后续AGV搬运对象。
4.创建任务序列(Create Task Sequence):将AGV小车设置为任务执行对象并添加到token.taskSequence。
5.移动AGV至目标地点(Travel):使用Travel让AGV运动到目标货架下方,本例中为Rack1对应的control point,即control point3。
6.装载货架(Load):AGV 接近货架并将其装载。
7.移动到目标位置(Travel):AGV 小车运输货架到目标位置,本案例为卸载货架地点即Control Point2。
9.释放资源(Unload & Release):AGV 在目标位置(Control Point2)放下货架,执行 Release Resource 以解除 AGV 和货架之间的绑定。
10.返回起始位置(Travel):AGV 完成任务后返回起点(Control Point1)。
11.结束任务(Finish Task Sequence):流程结束。
常见问题及解决方案
问题现象
在实践中,重新运行仿真时可能会遇到 AGV 和货架同时移动的现象,即使货架已经被手动移动到初始位置也没有用。这通常是因为 AGV 在上一次运行过程中没有正确卸载(unload)货架,导致货架仍然被视为 AGV 的一部分。
问题原因
- 资源未正确释放:AGV 完成任务后,如果未通过 Release Resource 正确解除货架与 AGV 之间的绑定,系统会认为货架仍然附着在 AGV 上。
- 状态未重置:如果没有在仿真结束后清除任务状态,AGV 和货架在下一次运行时会继续保留之前的绑定状态。
解决方法:可以尝试手动删除并重新添加货架到模型中,或者重新设计流程图,确保每次任务结束后 AGV 正确执行卸载货架操作。
管理大量货架资源的优化方法
如果模型中包含大量货架,可以使用流程图中的列表或代码来管理和拉取货架资源。具体可根据需求制定拉取策略。
总结
通过本文的示例和方法,你可以在 FlexSim 中模拟 AGV 小车搬运货架的基本流程,并避免常见的资源绑定问题。通过合理使用流程图、状态重置和资源管理,可以进一步扩展和优化仿真系统,为更复杂的物流场景提供支持。