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

PLANT SIMULATION 16 · LEARNING NOTE

Lab 02:建立三工位自动线并识别瓶颈

本页目录

场景说明

客户计划建设一条电机壳体自动加工线:OP10 上料定位、OP20 精加工、OP30 清洗检测。三道工序节拍分别为 55、70、50 秒。客户希望知道为什么某些工位会等待、某些工位会阻塞,以及增加设备前能否先通过缓冲改善。

本课先建立无故障、固定时间的基线。只有基线通过验证,下一课才加入故障。

完成后的模型

Source_Part → OP10_Load → B10_20 → OP20_Machine → B20_30 → OP30_Wash → Drain_Good
                                  EventController

参数:

对象 类型 时间/容量
Source_Part Source 每 55 秒 1 件
OP10_Load SingleProc 55 秒
B10_20 Buffer 容量 5
OP20_Machine SingleProc 70 秒
B20_30 Buffer 容量 5
OP30_Wash SingleProc 50 秒
Drain_Good Drain 默认
EventController EventController 8 小时

理论瓶颈是 OP20,理想上限约 8×3600/70 = 411.4 件/班。

真实系统视觉参考

Plant Simulation 16 中模块、输送对象和连接器的官方示例

官方示例显示了子 Frame 连接、长度型输送对象、机器人和尺寸标注。你的练习模型先使用简单对象;不要为了接近 3D 外观而过早增加复杂度。来源:Siemens Plant Simulation 16 发布说明

步骤 1:从 Lab 01 另存为

  1. 打开 Lab01_FirstModel_v02_validated.spp
  2. 选择 File → Save As
  3. 新建目录 Lab02_ThreeStationLine
  4. 保存为 Lab02_ThreeStationLine_v01.spp
  5. Reset 模型,确认时钟为 0。

不要直接修改已经验证的 Lab 01 文件。

步骤 2:重命名现有对象

  1. Source_RawPart 改为 Source_Part
  2. Drill_01 改为 OP10_Load
  3. 保留 Drain_Good
  4. 双击 Source_Part,把到达间隔改为 55 秒。
  5. 双击 OP10_Load,把 Processing time 改为 55 秒。

步骤 3:插入第一段 Buffer

最稳妥的做法是先删除 OP10_Load → Drain_Good 的 Connector,再放新对象。

  1. 选中该 Connector,按 Delete
  2. 从 Material Flow 工具箱放置 Buffer
  3. 放在 OP10 右侧,命名为 B10_20
  4. 双击 Buffer。
  5. Capacity 设置为 5
  6. 保持 FIFO 行为。
  7. 关闭对话框。

步骤 4:增加 OP20

  1. 放置一个 SingleProc,命名为 OP20_Machine
  2. 打开 Times。
  3. 设置 Processing time 为 70 秒。
  4. Setup、Failure 暂时保持关闭或 0。

步骤 5:增加第二段 Buffer 和 OP30

  1. 放置 Buffer,命名为 B20_30,Capacity = 5。
  2. 放置 SingleProc,命名为 OP30_Wash
  3. 设置 OP30 Processing time = 50 秒。
  4. 把 Drain 移到 OP30 右侧。

步骤 6:按顺序连接

用 Connector 建立:

  1. Source_Part → OP10_Load
  2. OP10_Load → B10_20
  3. B10_20 → OP20_Machine
  4. OP20_Machine → B20_30
  5. B20_30 → OP30_Wash
  6. OP30_Wash → Drain_Good

连接后从左到右逐一念出对象名。这个简单动作能发现跳过工位、反向连接和重复连接。

步骤 7:先做单件贯通测试

长时间运行前,先只创建 1 件。

  1. 打开 Source,将创建数量限制为 1;如果当前 Source 配置没有直接数量字段,可暂时设置一个极长的第二件间隔,在第一件完成后暂停。
  2. Reset。
  3. 降低动画速度。
  4. Start。
  5. 观察该件依次经过 OP10、B10_20、OP20、B20_30、OP30、Drain。
  6. 记录第一件离开系统的时刻,理论无等待流动时间为 55+70+50=175 秒,加上软件事件边界差异。

若第一件跳过任何对象,停止并修复 Connector。

步骤 8:恢复连续来料并运行 8 小时

  1. 恢复 Source 每 55 秒创建 1 件。
  2. 确认 B10_20/B20_30 容量均为 5。
  3. Reset。
  4. Start,先观察前 10 分钟。
  5. 加速运行至 8 小时。

预期动态

  • OP20 比 OP10 慢,B10_20 将逐渐填满;
  • B10_20 满后,OP10 会出现 Blocked;
  • OP30 比 OP20 快,常因没有工件而 Waiting/Starved;
  • OP20 长期接近满负荷;
  • 最终良品约 410 件,边界值可能略有差异。

步骤 9:查看状态统计

逐一打开三个工位的 Statistics,记录:

工位 Working Waiting/Starved Blocked 解释
OP10_Load 受 OP20 限制,缓冲满后阻塞
OP20_Machine 理论瓶颈,应接近持续工作
OP30_Wash 能力大于供给,常等待

状态名称可能因对象和语言显示为 Waiting、Waiting for MU、Blocked 等。关键是理解机制,不是死记颜色。

步骤 10:做容量实验

保持所有时间不变,只修改 B10_20 与 B20_30 容量。

方案 A:容量 1/1

  1. Save As Lab02_Buffer_1_1.spp
  2. 两个 Buffer Capacity = 1。
  3. Reset 并运行 8 小时。
  4. 记录产量、OP10 Blocked、OP30 Waiting 和期末 WIP。

方案 B:容量 5/5

恢复基线,记录同样指标。

方案 C:容量 20/20

  1. 两个 Buffer Capacity = 20。
  2. 运行并记录。
  3. 注意产量可能没有显著增加,但期末 WIP 会增加。

结果表:

方案 B10_20 B20_30 良品 期末 WIP OP10 Blocked OP30 Waiting
A 1 1
B 5 5
C 20 20

正确结论

在固定时间、无故障的串行线上,增加瓶颈前缓冲无法突破 OP20 的理论能力。它可能改变阻塞位置、期末 WIP 和短期启动行为,但不应神奇地把长期产能提高到超过 70 秒节拍的极限。

步骤 11:反证瓶颈

  1. 恢复 Buffer 5/5。
  2. 将 OP20 Processing time 从 70 秒降到 45 秒。
  3. 其他参数不变。
  4. Reset 并运行。
  5. 现在 Source/OP10 的 55 秒节拍将成为限制因素,产量应回到约 480–523 的边界范围,取决于 Source 创建规则。

这说明“瓶颈”是系统条件下的结果,不是设备永恒标签。

结果截图要求

保存:

  1. L02-01-baseline-layout.png:完整模型和对象名;
  2. L02-02-buffer-full.png:B10_20 满载、OP10 阻塞时;
  3. L02-03-station-statistics.png:三个工位状态统计;
  4. L02-04-scenario-table.png:三个缓冲方案结果。

常见错误

现象 原因 修复
Buffer 永远不满 Source 间隔大于 OP20 节拍,或 OP20 不是 70 秒 检查时间单位
OP30 一直工作 可能 Source 设置为 0 间隔且 OP20 多容量 检查 Source 和对象类型
增大 Buffer 后产量大幅翻倍 统计未 Reset 或方案时间不同 每方案先 Reset,统一 8 小时
对象显示有连接但 MU 不走 Connector 端点错误或存在出口规则 删除后重新连接

本课通过标准