PS16 制造系统仿真实战 ← 返回学习门户

PLANT SIMULATION 16 · LEARNING NOTE

Lab 05:加入换型与 AGV 物流

本页目录

场景说明

Lab 04 的 FMS 已能正确处理 A/B/C 三种零件,但仍假设设备切换产品没有损失、工件能瞬间移动。真实车间中,夹具和刀具切换会占用 CNC,AGV 数量不足也会让已加工零件滞留。客户要判断:应优先增加一台 AGV,还是通过同类产品成组减少换型?

本课采用两级建模:先做简化物流基线,确认生产逻辑;再引入 Transporter/AGV。这样能区分“设备能力问题”和“运输能力问题”。

研究问题

  • 换型会损失多少可用生产时间?
  • 固定产品顺序与小批量排序的差异是什么?
  • 1 台、2 台、3 台 AGV 对产量和等待时间的影响如何?
  • 物流改善是否只是把瓶颈重新推回 CNC?

换型矩阵

练习数据,单位为秒:

从/到 A B C
A 0 300 180
B 240 0 360
C 180 300 0

矩阵可以不对称,因为 A→B 和 B→A 的刀具、清洁和首件确认工作可能不同。

步骤 1:冻结无换型基线

  1. 打开已通过 100 件守恒验证的 Lab04_FMS_Routing_v01.spp
  2. 使用固定产品序列和固定加工时间运行一次。
  3. 记录产量、各 CNC Working、Waiting 和处理数量。
  4. 保存为 Lab05_Setup_AGV_v01.spp
  5. 在项目记录中标记这个版本为 NoSetup_NoTransport_Baseline

步骤 2:建立换型表

  1. 从 Information Flow 放置 TableFile
  2. 命名为 t_SetupMatrix
  3. 第一行和第一列填写产品类型 A/B/C。
  4. 输入上面的 3×3 换型时间。
  5. 在表格标题或旁边 Variable 中明确单位为秒。

不要把换型时间分别硬编码在四台 CNC 中;集中表便于审查和实验。

步骤 3:配置设备换型

Plant Simulation 16 可通过设备 Setup 设置或自定义逻辑表达换型。优先使用标准功能:

  1. 双击一台 CNC。
  2. 打开 Setup 或 Times 中的 setup 区域。
  3. 启用 setup dependent on MU type/attribute 的选项。
  4. 将产品类型或 ProductType 指定为换型依据。
  5. 选择从表格读取前一类型→新类型的换型时间;若标准设置不能直接引用你的表,再使用由软件生成签名的 Method。
  6. 对其余 CNC 使用同一规则或从已配置类创建实例。
  7. 确认同类连续加工的 Setup time 为 0。

四件小样本验证

只输入 A,A,B,A

转换 预期换型
无前件→A 根据项目定义,通常 0 或初始换型
A→A 0 秒
A→B 300 秒
B→A 240 秒

在设备 Statistics 中核对 Setting-up 时间。若总换型时间不是预期值,不要运行长周期。

步骤 4:比较产品顺序

创建两种 100 件序列,产品总量相同:

  • S0 交错:AAAAABBBCC 循环 10 次;
  • S1 成组:50 个 A、30 个 B、20 个 C;
  • S2 小批量:A×10、B×6、C×4,循环 5 次。

记录:

场景 良品 总换型次数 总换型小时 Flow Time 最大队列
S0 交错
S1 成组
S2 小批量

成组可能降低换型,却增加某些订单等待。不能只看设备利用率。

步骤 5:建立简化物流基线

在引入 AGV 之前,用固定运输时间表达设备间移动:

  1. 在资源组前后插入能表达延迟的对象,或在转移逻辑中加入明确的运输时间。
  2. 设置装载 20 秒、行驶 45 秒、卸载 20 秒。
  3. 暂时假设搬运资源无限,任何请求都能立即运输。
  4. 再次运行 10 件和 100 件守恒验证。

这个模型回答“有运输时间但没有车辆竞争时,生产系统会怎样”。

步骤 6:认识 Plant Simulation 16 的 AGV 能力

Plant Simulation 16 的自由行驶 AGV 和驱动控制模式

Plant Simulation 16 增强了自由行驶 Transporter/AGV,可使用驱动标记和自定义控制策略。图片来源:Siemens 官方 Plant Simulation 16 发布说明

初学者第一遍可以用 Track 上的 Transporter;掌握后再使用自由行驶和 DrivingMarker。对象是否可用取决于许可证和安装库。

步骤 7:建立 Track 搬运网络

建议先在独立 Frame FMS_Transport 中练习:

  1. 放置 Track,构成单向闭环。
  2. 在输入、车削、铣削、检测位置放置 Station/Sensor 或相应装卸节点。
  3. 检查 Track 方向连续,不存在断口。
  4. 放置一个 Transporter,命名 AGV_01
  5. 设置速度,例如 1.5 m/s;容量设为 1。
  6. 设置装载和卸载时间各 20 秒。
  7. 让 AGV 空载跑完整个闭环,确认不会停在断开的 Track 端点。

步骤 8:连接生产请求与运输任务

业务规则:

设备完成加工
→ 工件进入出料位置
→ 创建搬运请求(取货点、送达点、工件)
→ 空闲且符合条件的 AGV 接单
→ 行驶到取货点并装载
→ 行驶到目的地并卸载
→ AGV 重新空闲

优先使用版本 16 内置 Broker/Transport Control、Importer 或可用物流库对象。若需要 Method:

  1. 从运输对象设置中创建控制 Method,让软件生成签名。
  2. 请求表至少记录 RequestIdMUPickupDropoffCreatedAtAssignedAGVCompletedAt
  3. 没有可用 AGV 时请求留在队列,不得丢失。
  4. 一个请求只能被一台 AGV 分配。
  5. 完成后清除请求并记录响应时间。

步骤 9:逐级验证运输逻辑

不要一次投入 100 件。按顺序测试:

T01:单 AGV、单工件

  • 只创建 1 件 A;
  • AGV 完成输入→Turn→Inspect 的所有搬运;
  • 工件最终进入 Drain;
  • 请求表无残留。

T02:单 AGV、三工件

  • 创建 A/B/C 各 1 件;
  • 每个请求仅执行一次;
  • 没有工件被 AGV 永久占用。

T03:同时请求

  • 让两台 CNC 同时完工;
  • 单 AGV 应排队处理两个请求;
  • 增加第二台 AGV 后两个请求可并行分配。

T04:不可用压力测试

  • 暂停 AGV 或关键路径;
  • 请求应保留;
  • 恢复后系统继续,而不是死锁或丢件。

步骤 10:运行 AGV 数量实验

因素 水平
AGV 数量 1、2、3
产品顺序 交错、小批量
机前 Buffer 4、8

每个随机场景至少运行 10 次。输出:

  • 良品/班;
  • 平均和最大搬运请求等待;
  • AGV Working/Waiting/Empty travel;
  • CNC Waiting for transport;
  • WIP 和 Flow Time;
  • 死锁或未完成请求数。

识别物流瓶颈

一台 AGV 利用率接近 100% 只是信号。更强的证据是:

  • 请求队列持续增长;
  • CNC 已完成工件但长时间等待卸载;
  • 增加第二台 AGV 显著降低请求等待并提高产量;
  • 增加第三台 AGV 只增加车辆 Waiting,产量几乎不再提高。

这时第二台可能有价值,第三台可能没有。

结果截图要求

  1. L05-01-setup-matrix.png:换型矩阵;
  2. L05-02-agv-network.png:完整 Track、站点和 AGV;
  3. L05-03-simultaneous-requests.png:同时请求测试;
  4. L05-04-agv-results.png:1/2/3 台 AGV 结果比较;
  5. L05-05-bottleneck-shift.png:物流改善前后设备状态变化。

本课通过标准