ABB 机械臂 3C 组装实施流程:传统交付、Omniverse/Isaac 协同与柔性制造探索

本文面向刚进入自动化、机器人、Omniverse/Isaac 与智能体研发协同场景的从业者,目标不是介绍“机器人能做什么”,而是给出一套接近真实工业现场的 ABB 机械臂 3C 组装实施与协同指南。

阅读对象

适合阅读的人:

  • 刚接触 ABB 工业机器人项目的工程师
  • 负责 3C 自动化导入、设备实施、调试和验收的从业者
  • 使用 Omniverse / Isaac / Cosmos 的仿真与物理 AI 工程师
  • 负责 Agent、VLA、任务编排和柔性制造研究的智能体开发工程师
  • 需要统筹传统 ABB 交付与 NVIDIA 协同研发的项目负责人

不适合作为唯一参考的人:

  • 只想查单个 RAPID 指令语法的人
  • 只想看某个具体 ABB 型号硬件参数的人
  • 需要正式法律、安规、认证文件的人

5 分钟速读

如果你时间很少,先记住 3 条总判断和 5 条行动建议。

3 条总判断

  1. ABB 3C 项目的主链路仍然是传统工业交付链路,不会因为引入 Omniverse、Isaac、Cosmos 或智能体而消失。
  2. 真正决定项目成败的,依然是工艺窗口、治具基准、节拍、异常恢复和量产稳定性,而不是某一次 demo 是否跑通。
  3. RobotStudio 更接近 ABB 机器人交付工具;Omniverse / Isaac 更接近高保真仿真和数字孪生工具;Cosmos 更接近物理 AI 数据与世界模型工具。

5 条行动建议

  1. Omniverse / Isaac 工程师优先在仿真、传感器建模、合成数据和 sim-to-real 闭环上创造增量,不要主导治具、安全和真机交付。
  2. 智能体开发工程师优先参与任务抽象、技能编排、Agent / VLA 训练和任务级恢复研究,不要替代 PLC、RAPID 或工艺放行。
  3. 柔性制造探索研究不要从“先训一个大模型”开始,而要从一个小而真实的单工站问题开始。
  4. 研究系统必须建立在真实工业状态接口、日志接口和降级机制之上,否则很难进入现场。
  5. 所有研究能力最终都要回到真实数据回流、试产验证和受限真机验证,否则只能停留在演示阶段。

推荐阅读路径

这份文档已经覆盖传统 ABB 交付、Omniverse / Isaac 协同、智能体 / VLA 研究、以及单机械臂工业控制入门。第一次阅读时,不建议从头到尾平均用力,建议按角色进入。

如果你是传统 ABB / 自动化工程师

先读:

  • 1-12:完整实施主流程
  • 13-18:工程文件、常见错误、实施节奏、启动检查表
  • 19.1-19.6:术语速查

再按需要读:

  • 20-24:Omniverse / Isaac / 智能体与传统工业角色的边界
  • 21-22:Cosmos、Omniverse、Isaac Sim、RobotStudio 的能力边界

如果你是 Omniverse / Isaac 工程师

先读:

  • 0:给 Omniverse / Isaac 工程师的阅读提示
  • 3-12:传统 ABB 主流程
  • 19:术语速查
  • 20-22:协作分工、Cosmos 位置、工具边界

再按需要读:

  • 27-32:从 LeRobot / SO-101 到单机械臂 ABB 工站控制的连续专题

如果你是智能体 / VLA 工程师

先读:

  • 0
  • 3-12
  • 19
  • 23-26

再重点读:

  • 27-32

因为这一组内容最直接回答:

  • 实验室动作控制和工业站级控制到底差在哪里
  • RAPID、PLC、IO 表、时序图分别在工业里扮演什么角色

如果你是项目负责人或研究负责人

建议顺序:

  • 5 分钟速读
  • 3-12
  • 20-26
  • 27.8
  • 28-32

这样读完后,你基本能同时掌握:

  • 传统 ABB 主链路
  • NVIDIA / 智能体团队的合理介入边界
  • 一个研究型团队从实验室走向工业验证时最容易失真的地方

目录

主线内容

    1. 给 Omniverse / Isaac 工程师的阅读提示
    1. ABB 机械臂在 3C 组装中的典型应用边界
    1. 一个真实 3C 组装项目的标准实施阶段
    1. 第一阶段:需求澄清与项目立项
    1. 第二阶段:工艺拆解与节拍建模
    1. 第三阶段:方案设计与设备选型
    1. 第四阶段:离线仿真与虚拟调试
    1. 第五阶段:机械、电气、气路与安全设计
    1. 第六阶段:软件架构与程序开发
    1. 第七阶段:标定、示教与工艺调试
    1. 第八阶段:异常处理与恢复设计
    1. 第九阶段:FAT、SAT 与量产验收
    1. 第十阶段:量产运维与持续优化
    1. 3C 组装项目中的关键工程文件清单
    1. 新手最常见的 15 个错误
    1. 一个 ABB 3C 组装工站的推荐实施节奏
    1. 给新从业者的实操建议
    1. 结语:ABB 机械臂 3C 组装项目的本质
    1. 可直接复用的项目启动检查表

附录 A:术语与工业基础

    1. ABB、Omniverse 与工业自动化术语速查表

附录 B:角色协同与工具边界

    1. Omniverse / Isaac 工程师参与 ABB 项目的推荐分工地图
    1. NVIDIA Cosmos 在 ABB 项目中的正确位置
    1. RobotStudio、Omniverse、Isaac Sim、Cosmos 的能力边界对照表
    1. 智能体开发工程师在 ABB + NVIDIA 柔性制造研究中的角色定位
    1. 传统 ABB 工程师、Omniverse / Isaac 工程师、智能体开发工程师的阶段对照矩阵

附录 C:研究落地与试点方法

    1. 柔性制造探索项目的最小可行实施路径(MVP)
    1. 首个柔性制造研究试点项目模板

附录 D:从实验室机器人到单机械臂 ABB 工站控制

    1. 从 LeRobot + SO-101 实验室验证走向 ABB 工业落地的演进步骤
    1. 从 LeRobot 的动作控制视角到 ABB 工业控制视角
    1. 单机械臂 ABB 工站控制架构图
    1. 这段 RAPID 程序对应的最小 PLC IO 表
    1. 单机械臂 ABB 工站的一次完整时序图
    1. 从“发动作向量”到“工业状态机”的认知对照表

这里默认的项目背景是:

  • 行业:3C 电子产品装配
  • 典型对象:手机、平板、笔电、智能穿戴、小型模组
  • 典型工站:上料、搬运、定位、压合、贴附、锁附、点胶、检测、下料
  • 机器人平台:ABB 六轴机械臂
  • 控制系统:ABB IRC5 或 OmniCore
  • 软件平台:RobotStudio + RAPID
  • 产线特征:多工站联机、节拍敏感、对良率与可追溯要求高

需要先明确一点:

3C 组装项目的难点,往往不在“机械臂会不会动”,而在“工艺是否稳定、定位是否可靠、节拍是否达标、异常是否可恢复、全线是否可量产”。


0. 给 Omniverse / Isaac 工程师的阅读提示

这一节专门补给做人工智能、具身智能、仿真平台和软件系统的工程师。这里的“Omniverse / Isaac 工程师”,优先指的是使用 NVIDIA Omniverse、Isaac、合成数据、物理 AI、数字孪生和相关边缘 AI 套件的工程师,而不是泛指所有做模型训练的人。你们通常熟悉模型、数据、仿真和服务架构,但对工业现场、机器人交付和量产约束未必熟悉。为了避免用纯软件思维理解 ABB 工业项目,建议先建立下面几个基本认知。

0.1 在 ABB 项目里,“开发”不是只写代码

在 AI 项目中,“开发”常常主要指:

  • 写模型代码
  • 写推理服务
  • 跑实验
  • 调参和评估
  • 上线部署

但在 ABB 机械臂 3C 项目中,“开发”通常是一个跨学科交付过程,至少包含:

  • 工艺定义
  • 治具与夹爪设计
  • 机器人选型与布局
  • 电气与安全设计
  • PLC 联锁与 IO 设计
  • 视觉方案设计
  • RobotStudio 离线仿真
  • RAPID 程序开发
  • 联机调试
  • FAT / SAT
  • 试产导入与量产移交

也就是说,工业现场里“软件逻辑正确”不等于“系统可交付”。

0.2 ABB 项目的核心目标不是 Demo,而是稳定量产

Omniverse / Isaac 工程师常关注:

  • 是否首次跑通
  • 模型指标是否提升
  • 算法是否优于 baseline
  • 系统是否可自动执行任务

工业现场更关注:

  • 是否能连续稳定运行
  • 节拍是否长期达标
  • 良率是否受控
  • 异常后是否可恢复
  • 是否支持换型、维护和追溯

因此 ABB 项目的典型评价指标通常是:

  • CT
  • UPH
  • 良率
  • OEE
  • MTBF
  • MTTR
  • 报警率

如果一个方案只能“演示成功”,但不能在白班、夜班、批量生产中持续稳定运行,它就还不是工业交付方案。

0.3 ABB 项目的真实技术栈和 NVIDIA AI 工作流不一样

一个 ABB 机械臂 3C 工站,实际常见技术栈包括:

  • ABB 机器人控制器:负责运动控制和 RAPID 程序执行
  • PLC:负责站级时序、互锁、报警和整站节拍协调
  • 视觉系统:负责识别、定位、检测
  • 工艺设备:电批、压机、点胶机、供料器等
  • IPC / 上位机:负责配方、追溯、MES、条码、数据库、人机界面
  • RobotStudio:用于离线编程、仿真、节拍验证

如果把你看到的 NVIDIA 工作流也放进来,那么 Omniverse / Isaac 工程师更常接触的是:

  • Omniverse:高保真场景、USD 数据、物理级仿真与可视化
  • Isaac 系列工具链:机器人仿真、数据生成、训练与验证
  • 合成数据流程:为视觉、检测和机器人 AI 模块生成训练数据
  • 边缘 AI 部署:例如 Jetson 类平台上的推理与感知模块

这两套世界不是对立的,而是分工不同:

  • ABB / PLC / 工艺体系负责真实产线可运行、可维护、可验收
  • NVIDIA 工具链更适合提升仿真精度、缩短 sim-to-real 距离、生成数据和承载 AI 模块

这意味着 AI 模块只是整站中的一部分,必须接受以下现实约束:

  • 机械基准不一定完美
  • 来料状态并不完全一致
  • PLC 时序严格
  • 工艺设备存在硬延迟
  • 安全链路不能被绕开
  • 现场维护人员必须能接手

0.4 工业现场的“状态空间”比 AI 训练环境脏得多

Omniverse / Isaac 工程师常在较干净的数据环境中工作,但 ABB 工业项目面对的是带噪的真实世界:

  • 工件批次差异
  • 来料姿态偏移
  • 光照变化
  • 灰尘、油污、磨损
  • 气压、电压、网络波动
  • 操作员动作不完全标准
  • 白班与夜班表现差异

所以工业自动化里,异常不是边缘情况,而是主流程的一部分。一个没有异常恢复和降级策略的 AI 模块,不适合直接进入产线主流程。

0.5 为什么工业项目特别强调 TCP、WorkObject 和治具

做 Omniverse / Isaac 的工程师容易把问题理解成“感知 + 决策 + 控制”,但在 ABB 3C 装配项目里,很多问题首先是“基准 + 标定 + 工艺”的问题。

最关键的基础对象通常是:

  • tooldata / TCP
  • wobjdata / WorkObject
  • 治具定位基准
  • 夹爪重复定位能力
  • 工件约束方式

如果这些基础不稳定,再强的感知算法也会因为机械误差、工艺漂移和装配公差失效。

可以把它简单理解为:

  • AI 更擅长处理剩余不确定性
  • 治具、标定和工艺首先要尽量消灭不确定性

工业项目通常优先先“把问题做简单”,再考虑“用智能方法处理复杂性”。

0.6 ABB 项目的接口,不只是 API

Omniverse / Isaac 工程师常把接口理解成 HTTP、gRPC 或数据库结构,但在 ABB 项目里,接口通常还包括:

  • 机器人数字 IO
  • PLC 握手位
  • 视觉结果寄存器或 Socket 通信
  • 工艺设备 Ready / Busy / OK / NG 信号
  • 安全门、急停、光栅、安全回路
  • MES 配方下发和结果上传

这些接口的特点是:

  • 有严格时序
  • 不能“偶发超时”
  • 错误恢复成本高
  • 边界责任必须非常清晰

0.7 ABB 项目的调试顺序和 NVIDIA 仿真工作流并不相同

AI 项目常见流程是:

  • 准备数据
  • 训练模型
  • 离线验证
  • 灰度上线

ABB 项目的现场调试更接近:

  1. 先验证安全
  2. 再验证机器人本体动作
  3. 再验证 TCP 和 WorkObject
  4. 再验证 IO
  5. 再验证视觉
  6. 再验证工艺设备
  7. 最后才做整站联机

原因很简单:

  • 坐标错了会撞治具或产品
  • IO 错了会导致误动作
  • 工艺设备联错会报废产品
  • 安全逻辑错误会带来人身风险

因此工业调试强调步骤化、隔离化、可回退,不追求一次性把全部链路同时接通。

对于使用 Omniverse / Isaac 的工程师,这一点尤其重要:

  • 仿真精度高,不等于现场就可以跳过标定
  • 合成数据有效,不等于治具和来料问题已经消失
  • sim-to-real 差距缩小,不等于可以绕过 FAT、SAT 和试产

0.8 Omniverse / Isaac 工程师在 ABB 项目中最适合创造的价值

如果 Omniverse / Isaac 工程师要参与 ABB 3C 项目,最适合优先切入的方向通常是:

  • 用 Omniverse / Isaac 构建高保真仿真场景
  • 用合成数据提升视觉检测与识别鲁棒性
  • 做 sim-to-real 对比分析,识别现实偏差来源
  • 做来料姿态估计、异常模式识别和报警归因
  • 做调试与生产数据结构化、节拍与停机分析
  • 做运维预测和知识检索
  • 打通机器人、视觉、工艺、仿真数据的统一数据层

但这些模块上线前,最好满足三个条件:

  • 输入输出边界清晰
  • 失败时可回退到规则或人工流程
  • 不破坏原有安全链路

0.9 Omniverse / Isaac 工程师最容易犯的误区

  1. 认为机器人问题本质上都是感知与规划问题
  2. 低估治具、标定和工艺窗口的重要性
  3. 只关注单次成功率,不关注连续稳定性
  4. 用更多模型复杂度掩盖基础工程问题
  5. 忽略 PLC 时序、IO 联锁和硬件延迟
  6. 把“跑通一次”误认为“可量产”
  7. 没有给失败模式设计降级和旁路
  8. 不理解现场维护和变更控制要求

0.10 建议 Omniverse / Isaac 工程师先建立的工业心智模型

建议按下面顺序理解 ABB 项目:

  1. 先理解工艺,再理解算法
  2. 先理解治具和基准,再理解视觉
  3. 先理解 PLC 时序,再理解系统联机
  4. 先理解安全和异常恢复,再理解自动化率
  5. 先理解量产约束,再讨论 Omniverse / Isaac / 合成数据能带来的增量

带着这个心智模型再阅读后文,会更容易看懂 ABB 项目为什么强调方案评审、仿真、标定、联机、验收和量产导入。


1. ABB 机械臂在 3C 组装中的典型应用边界

ABB 机械臂适合承担重复、高一致性、对轨迹和节拍有要求的动作,但并不意味着所有 3C 装配动作都应该由机械臂完成。实际选型时,应先判断应用边界。

适合机器人做的工艺:

  • 工件搬运与上下料
  • 治具间转运
  • 相机引导抓取与放置
  • 插件前定位
  • 压合前姿态修正
  • 点胶路径执行
  • 螺丝锁附过程中的位姿搬运
  • 检测工位之间的转接
  • 不良品分拣

不适合直接交给机器人单独完成的工艺:

  • 依赖柔顺手感的复杂插接
  • 公差链极紧、且无浮动补偿的精密压配
  • 对力控要求极高但夹具/末端未做工艺补偿的装配
  • 产品版本频繁切换且治具尚未标准化的场景

经验上,3C 项目成败取决于四件事:

  1. 工艺窗口是否清楚
  2. 夹具与定位方案是否稳定
  3. 机器人、视觉、治具、PLC 的职责边界是否清晰
  4. 异常恢复流程是否在量产前打磨完成

2. 一个真实 3C 组装项目的标准实施阶段

ABB 机械臂 3C 组装项目通常按以下阶段推进:

  1. 需求澄清与可行性评估
  2. 工艺拆解与节拍建模
  3. 方案设计与设备选型
  4. 离线仿真与节拍验证
  5. 机械、电气、气路与安全设计
  6. 软件开发与联机调试
  7. FAT 预验收
  8. 现场安装与 SAT
  9. 小批量试产
  10. 量产移交与运维优化

对于新从业者,最容易犯的错误是直接从“编 RAPID 程序”开始。真实工业项目里,RAPID 只是落地环节之一,前面的工艺定义和后面的联机验证同样关键。


3. 第一阶段:需求澄清与项目立项

3.0 本阶段的角色、职责、输入与输出

参与角色

  • 销售或项目经理
  • 工艺工程师
  • 机械工程师
  • 电气/PLC 工程师
  • 机器人工程师
  • 质量工程师
  • 客户工艺或制造代表

主要职责

  • 项目经理负责组织需求澄清、冻结范围、形成里程碑
  • 工艺工程师负责定义工艺边界、关键 CTQ 与工艺窗口
  • 机械工程师负责判断上料、定位、治具和布局可行性
  • 电气/PLC 工程师负责识别控制接口、通信方式和安全边界
  • 机器人工程师负责判断机器人可达性、节拍和应用边界
  • 质量工程师负责确认验收口径、良率和追溯要求

阶段输入

  • 客户需求说明
  • 产品图纸、BOM、样件或 3D 数模
  • 当前人工工艺资料
  • 产能、良率、换型和追溯要求
  • 现场厂务与上下游接口信息

阶段输出

  • 《需求规格说明书》
  • 《项目范围与边界清单》
  • 《初版风险清单》
  • 《验收指标清单》
  • 《可行性评估任务列表》

Omniverse / Isaac 工程师如何参与

  • 把客户需求、风险和验收项整理成结构化数据
  • 协助定义后续仿真、合成数据、追溯和数据采集需求
  • 借助历史项目数据,辅助识别未来可能需要数字孪生或视觉增强的工位

参与目的

  • 让后续 Omniverse / Isaac 场景建模有清晰输入
  • 提前识别哪些工位值得做高保真仿真和数据闭环
  • 为后续视觉、仿真和数据工作流预留接口

边界提醒

  • 不主导工艺边界、节拍承诺和验收承诺

智能体开发工程师如何参与

  • 把客户提出的柔性制造目标转译成可研究的任务定义
  • 识别哪些需求适合抽象成智能体任务、技能编排或自然语言任务接口
  • 协助把需求拆成后续可验证的研究目标,例如多机种换型、自适应抓取、异常恢复

参与目的

  • 尽早明确“研究问题”而不是泛化成“做一个智能机器人”
  • 为后续 Agent、技能图、VLA 训练目标建立清晰边界
  • 避免后续研发脱离真实产线需求

边界提醒

  • 不主导客户验收口径,也不直接替代工艺定义

3.1 先把需求定义成可执行的工程语言

用户最初给的描述通常是:

  • “要做自动锁螺丝”
  • “要把人工装配改成机器人”
  • “这一段节拍不够,想上机械臂”

工程上必须把它翻译成以下内容:

  • 产品型号与变体数量
  • UPH 目标
  • 单机节拍 CT
  • OEE 目标
  • 稼动率预期
  • 良率目标
  • 是否一机多型
  • 是否支持快速换型
  • 设备稼动时间制度
  • 来料状态
  • 上下游接口方式
  • MES / 条码 / 追溯要求
  • 现场厂务条件

3.2 需求澄清会议必须问清的问题

建议项目初期就形成《需求澄清清单》,至少覆盖:

产品与工艺

  • 装配对象是什么,尺寸、重量、材质如何
  • 关键基准面在哪里
  • 当前人工工艺步骤是什么
  • 哪一步最不稳定
  • 哪一步最耗时
  • 允许机器人替代到什么程度
  • 哪些动作必须保留人工确认

产能与节拍

  • 每小时产量要求
  • 单站节拍上限
  • 是否允许双夹具/双工位并行
  • 上下游是连续流还是缓存式

质量要求

  • 装配精度要求
  • 是否需要扭矩、压力、高度、位移记录
  • 关键缺陷模式是什么
  • 是否需要全检、抽检或防呆机制

设备集成

  • PLC 平台是什么
  • 现场总线是 Profinet、EtherNet/IP、EtherCAT 还是离散 IO
  • 是否要接 MES、条码枪、打印机、数据库
  • 安全回路由谁主控

3.3 可行性评估不要只看“能不能抓起来”

3C 项目可行性评估至少要同时判断:

  • 工件是否可稳定上料
  • 工件是否有稳定抓取位
  • 抓取后姿态是否可控
  • 装配前是否有可靠基准
  • 装配过程是否需要柔顺补偿
  • 节拍是否有工程余量
  • 维护与换型成本是否可接受

很多项目在 PoC 阶段看似能跑,但最终量产失败,原因通常是:

  • 来料离散性被低估
  • 治具基准不稳定
  • 相机识别良率不够
  • 节拍只算了机器人运动,没算等待、通信、检测和异常恢复

4. 第二阶段:工艺拆解与节拍建模

4.0 本阶段的角色、职责、输入与输出

参与角色

  • 工艺工程师
  • 机器人工程师
  • 机械工程师
  • 电气/PLC 工程师
  • 质量工程师
  • 项目经理

主要职责

  • 工艺工程师负责拆解工步、定义工艺窗口和失败模式
  • 机器人工程师负责估算轨迹时间、姿态切换和节拍余量
  • 机械工程师负责识别定位、支撑、供料和装夹限制
  • 电气/PLC 工程师负责统计握手、等待和设备联动时间
  • 质量工程师负责补充 CTQ、检测点和质量判定条件
  • 项目经理负责推动节拍与风险评审闭环

阶段输入

  • 已冻结的需求规格说明
  • 产品样件和工艺流程
  • 现行人工节拍数据或试做数据
  • 上下游节拍要求

阶段输出

  • 《工艺流程分解表》
  • 《节拍分析表》
  • 《工步失败模式与恢复策略表》
  • 《阶段风险评估表》

Omniverse / Isaac 工程师如何参与

  • 把工步、节拍、异常和失败模式整理成可计算的数据模型
  • 分析历史停机、不良和视觉失败数据
  • 识别哪些工步适合引入视觉仿真、合成数据或传感器仿真

参与目的

  • 明确 Omniverse / Isaac 应优先服务哪些高价值工步
  • 为后续仿真场景覆盖范围和传感器建模提供依据
  • 避免在低价值工步上过度投入仿真或 AI 能力

边界提醒

  • 不主导工艺拆解,也不单独给出节拍承诺

智能体开发工程师如何参与

  • 把工艺工步抽象成任务图、技能图、状态机或层级动作结构
  • 设计后续 Agent / VLA 所需的观测、动作、奖励或成功判定结构
  • 标出哪些工步是规则适合做、哪些工步值得用智能体方法探索

参与目的

  • 搭建从工业工艺到智能体任务表示之间的桥梁
  • 为后续数据采集、模仿学习和 VLA 训练奠定任务结构基础
  • 减少“模型能学什么”和“现场需要什么”之间的错位

边界提醒

  • 不替代工艺工程师拆工步,也不单独定义成功工艺窗口

4.1 先把人工动作拆成标准工步

以一个“取件-扫码-装夹-压合-检测-下料”的小工站为例,应拆为:

  1. 来料到位确认
  2. 托盘或载具定位
  3. 视觉取像
  4. 机器人抓取
  5. 姿态修正
  6. 进入治具
  7. 压合或贴附
  8. 检测结果读取
  9. OK / NG 分流
  10. 数据上传

每一步都要定义:

  • 输入条件
  • 输出结果
  • 执行时间
  • 失败模式
  • 恢复策略

4.2 节拍计算必须按真实工站方式展开

真实 CT 不能只看机器人轨迹时间,还要加上:

  • 相机曝光与识别时间
  • PLC 握手等待
  • 气缸动作时间
  • 电批或伺服压机工艺时间
  • 条码读取时间
  • MES 反馈时间
  • 安全门/互锁引起的停等
  • 异常重试时间占比

建议在立项阶段就做三套节拍:

  • 理论最优节拍
  • 工程设计节拍
  • 量产保守节拍

工业上通常以“工程设计节拍”作为验收目标,以“量产保守节拍”评估产能风险。

4.3 3C 工站常见工艺风险

  • 薄壁件易变形,抓取力过大导致压痕
  • 膜片、FPC、泡棉等柔性件定位重复性差
  • 小螺丝供料稳定性差,卡料率高
  • 点胶受温度、黏度、针头状态影响大
  • 压合后外观件容易产生偏位、毛边或溢胶
  • 多相机、多工位联机时,通信延迟被放大

5. 第三阶段:方案设计与设备选型

5.0 本阶段的角色、职责、输入与输出

参与角色

  • 机械工程师
  • 机器人工程师
  • 电气/PLC 工程师
  • 视觉工程师
  • 工艺工程师
  • 采购或供应链
  • 项目经理

主要职责

  • 机械工程师负责总体布局、治具、夹爪和维护空间方案
  • 机器人工程师负责机器人型号、安装方式、工具负载和轨迹可达性建议
  • 电气/PLC 工程师负责通信架构、IO 规模和控制边界设计
  • 视觉工程师负责视觉类型、标定方案和光学风险评估
  • 工艺工程师负责确认工艺动作对设备方案的约束
  • 项目经理负责组织跨专业方案评审与冻结

阶段输入

  • 节拍分析结果
  • 工艺可行性结论
  • 客户现场约束条件
  • 产品与工装基础资料

阶段输出

  • 《总体技术方案》
  • 《设备选型清单》
  • 《Layout 与节拍方案》
  • 《视觉与工艺设备方案》
  • 《方案评审问题清单》

Omniverse / Isaac 工程师如何参与

  • 参与评估视觉工位、数字孪生、传感器仿真和数据架构需求
  • 定义未来仿真场景所需的资产、日志、事件和接口
  • 对需要边缘 AI 或仿真闭环的工位提出算力与部署建议

参与目的

  • 确保总体方案能够支持后续高保真仿真和数据闭环
  • 避免后期才发现缺失传感器、缺失日志或场景资产
  • 为 Omniverse / Isaac 工作流预留工程接口

边界提醒

  • 不主导机器人、治具和安全方案选型

智能体开发工程师如何参与

  • 参与设计技能层、任务层和上位决策层的系统边界
  • 识别未来需要保留哪些观测接口、任务状态和动作回执
  • 为自然语言任务下发、任务编排、异常恢复策略预留系统接口

参与目的

  • 保证后续智能体层可以嵌入系统,而不是事后外挂
  • 让机器人、视觉、PLC、上位机之间的状态更适合被智能体消费
  • 为柔性制造研究预留架构位置

边界提醒

  • 不主导设备选型,也不把智能体当作治具和工艺不足的替代品

5.1 机器人型号选型逻辑

ABB 在 3C 组装中常见的是小负载高精度机型。选型时不要只看额定负载,还要看:

  • 最大工作半径
  • 重复定位精度
  • 安装方式
  • 电缆包与工艺干涉
  • 实际有效负载
  • 节拍要求下的动态性能
  • 维护空间

负载核算应包含:

  • 夹爪本体重量
  • 快换盘重量
  • 工具法兰与转接板
  • 真空发生器或传感器附件
  • 工件最大重量
  • 动态加速度余量

现场经常出现的问题是:名义上负载够,但惯量超限或姿态下垂,导致高速运行精度下降。

5.2 控制柜与控制平台选择

常见控制平台包括:

  • IRC5
  • OmniCore

原则上应根据以下因素确认:

  • 现场已有 ABB 平台存量
  • 通信协议兼容性
  • 安全功能需求
  • 运动性能要求
  • 客户维护团队熟悉度

如果是新线并且重视数字化、紧凑型布局和后期扩展,通常优先考虑较新的控制平台;如果是老线改造,需优先考虑备件、程序兼容和维护成本。

5.3 末端执行器设计原则

3C 组装中的末端执行器往往比机器人本体更决定成败。设计时要明确:

  • 抓取方式:真空、夹持、磁吸、软指、复合式
  • 定位方式:靠面、靠销、V 槽、弹性浮动
  • 补偿方式:浮动头、弹簧机构、 RCC、柔顺模组
  • 检测方式:真空开关、到位传感器、压力传感器、位移传感器
  • 快换需求:是否一机多型、多工具切换

3C 工站常见经验:

  • 只靠真空吸附不一定足够,常需叠加防转定位
  • 插装类动作应优先考虑机械浮动补偿,而不是只靠程序慢速试探
  • 外观件要控制接触材料,避免划伤、压痕和静电风险

5.4 夹具与治具比机器人更重要

对 3C 组装来说,夹具/治具通常比机器人更关键。需要重点设计:

  • 产品定位基准
  • 装配支撑刚性
  • 防呆方向
  • 快速换型结构
  • 清洁与维护便利性
  • 传感器布置
  • 可视化调机基准

一个常见工程结论是:

如果治具重复性不稳定,再高精度的机器人也无法保证量产一致性。

5.5 视觉系统选型

ABB 机器人做 3C 组装时,视觉通常承担以下任务:

  • 来料位置补正
  • 角度识别
  • 缺件检测
  • 正反判断
  • 装配后外观检查

视觉系统选型时要分清:

  • 视觉是“引导”还是“检测”
  • 是 2D、2.5D 还是 3D
  • 识别基准是产品还是治具
  • 视觉结果由机器人消费还是由 PLC / IPC 消费

视觉识别稳定性的关键不只在算法,更在:

  • 光源设计
  • 产品摆放一致性
  • 背景控制
  • 镜头工作距离
  • 标定方式

6. 第四阶段:离线仿真与虚拟调试

6.0 本阶段的角色、职责、输入与输出

参与角色

  • 机器人工程师
  • 机械工程师
  • 电气/PLC 工程师
  • 视觉工程师
  • 工艺工程师
  • 项目经理

主要职责

  • 机器人工程师负责 RobotStudio 建模、轨迹规划、节拍和碰撞验证
  • 机械工程师负责提供工站 3D 模型、治具基准和结构约束
  • 电气/PLC 工程师负责提供 IO 草案和联机时序假设
  • 视觉工程师负责提供相机安装、视场和标定约束
  • 工艺工程师负责确认关键动作路径和工艺接近姿态
  • 项目经理负责确认仿真结论可用于设计放行

阶段输入

  • 设备选型和布局方案
  • 工站 3D 数模
  • 治具和末端执行器方案
  • 初版 IO 和工艺流程定义

阶段输出

  • RobotStudio 仿真文件
  • 可达性与碰撞分析结果
  • 节拍估算报告
  • 关键轨迹与姿态定义
  • 虚拟调试问题清单

Omniverse / Isaac 工程师如何参与

  • 把 RobotStudio 已验证的动作需求扩展到更高保真的 Omniverse / Isaac 场景
  • 建立传感器模型、场景标注、仿真日志和数据采集接口
  • 比较仿真与真实工况之间的差距,识别 sim-to-real 风险

参与目的

  • 提前在高保真环境中暴露视觉、感知和环境建模问题
  • 为后续训练、验证和合成数据生成准备场景基础
  • 缩短从虚拟调试到现场调试的认知落差

边界提醒

  • 不单独对机器人轨迹安全性和量产可行性拍板

智能体开发工程师如何参与

  • 在仿真中定义任务成功条件、技能切换条件和异常状态
  • 建立适合 Agent / VLA 训练的数据回放、任务日志和状态记录
  • 设计仿真中的高层任务执行闭环,而不是只看单步动作

参与目的

  • 为智能体和 VLA 提供可重复、可评估、可回放的训练环境
  • 在不上真机的前提下先验证任务分解和策略逻辑
  • 提前发现任务表示与真实场景之间的不匹配

边界提醒

  • 不把仿真任务跑通当作真机研究成功

6.1 RobotStudio 在项目中的真实作用

RobotStudio 不只是画轨迹,它在真实项目中的价值主要包括:

  • 建立机器人、夹具、工装、围栏的数字模型
  • 提前检查可达性和奇异点
  • 验证节拍
  • 验证工具姿态与干涉
  • 提前编写 RAPID 程序框架
  • 给现场调试减少试错时间

6.2 离线仿真的最低交付物

一个合格的前期仿真,不应只有一个动画,而应交付:

  • 机器人布局图
  • 工站 3D 模型
  • Reachability 分析
  • Collision 分析
  • 节拍估算
  • 关键路径仿真视频
  • 工具姿态定义
  • WorkObject 定义思路
  • 主要 IO 点表草案

6.3 新手最容易忽略的仿真误区

  • 仿真中工件模型很理想,现场来料却存在公差和姿态偏差
  • 只验证了单循环,没有验证故障恢复路径
  • 工装、相机、电缆拖链、气管没有加入碰撞分析
  • 节拍按直线运动估算,没算加减速与等待
  • 机器人在仿真可达,现场却因维护空间和门板结构受限

7. 第五阶段:机械、电气、气路与安全设计

7.0 本阶段的角色、职责、输入与输出

参与角色

  • 机械工程师
  • 电气工程师
  • PLC 工程师
  • 安全工程师
  • 机器人工程师
  • 工艺工程师
  • 项目经理

主要职责

  • 机械工程师负责总装、治具、夹爪、底座和维护结构设计
  • 电气工程师负责原理图、端子、柜体和布线设计
  • PLC 工程师负责 IO 分配、通信和时序接口定义
  • 安全工程师负责安全回路、围栏、门禁和风险控制设计
  • 机器人工程师负责机器人本体安装条件、工具接口和信号需求确认
  • 工艺工程师负责确认工艺设备接口和参数采集需求

阶段输入

  • 已通过评审的总体技术方案
  • 仿真结论
  • 设备选型结果
  • 现场规范与安全标准

阶段输出

  • 机械图纸与 BOM
  • 电气图纸与柜内布局
  • IO 表与通信协议表
  • 气路图
  • 安全回路图与风险评估结果

Omniverse / Isaac 工程师如何参与

  • 参与定义传感器、日志、追溯和数据库接口
  • 提出后续仿真和 AI 模块所需的数据采集点
  • 辅助筛选哪些信号值得保留用于异常分析和模型训练

参与目的

  • 保证真实产线能够产出可用于仿真闭环和模型迭代的数据
  • 避免设备建成后才发现缺少关键传感器或缺少日志
  • 为后续数字孪生和运维分析准备真实数据源

边界提醒

  • 不主导机械结构、安全回路和电气布线

智能体开发工程师如何参与

  • 提出智能体层需要读取的状态信号、任务回执和异常事件
  • 协助定义事件驱动的状态记录结构
  • 与 PLC / 上位机工程师协商高层任务状态的可观测接口

参与目的

  • 让后续智能体不只是“看图像”,还能读到工业状态上下文
  • 为任务规划、异常恢复和执行监控提供系统级状态输入
  • 建立工业控制层与智能体层之间的桥梁

边界提醒

  • 不直接介入安全回路和关键控制链路实现

7.1 机械设计输出物

机械部分至少应输出:

  • 总装图
  • 关键机构零件图
  • 机器人底座图
  • 夹具装配图
  • 末端执行器图
  • 电缆气管走向图
  • 维护空间图
  • 快换治具图

7.2 电气设计输出物

电气部分至少应输出:

  • 电气原理图
  • IO 分配表
  • 端子排图
  • 通信网络拓扑图
  • 安全回路图
  • 柜内布局图
  • 标签规范

7.3 3C 项目里常见通信架构

一个典型架构如下:

  • ABB 机器人控制器负责机器人运动与本体 IO
  • PLC 负责整站节拍控制、互锁、报警汇总
  • IPC 负责视觉、MES、数据库、上位逻辑
  • 伺服压机、电批、点胶机等工艺设备通过 PLC 或工业以太网接入

职责边界建议如下:

  • 机器人负责“怎么动”
  • PLC 负责“什么时候允许动”
  • 工艺设备负责“工艺参数执行与反馈”
  • 上位机负责“数据记录、追溯、配方和界面”

7.4 安全设计是立项阶段就要锁定的内容

ABB 机器人站安全设计要覆盖:

  • 围栏与门禁
  • 急停回路
  • 安全门开关
  • 光栅/激光扫描器
  • 安全继电器或安全 PLC
  • 速度受限区域
  • 人机协作边界判定

如果使用 SafeMove 等安全功能,应在方案阶段就定义:

  • 安全区域
  • 受限速度
  • 受限姿态
  • 安全停机逻辑

不要到现场再临时补安全策略,这会直接拖慢调试和验收。


8. 第六阶段:软件架构与程序开发

8.0 本阶段的角色、职责、输入与输出

参与角色

  • 机器人工程师
  • PLC 工程师
  • 视觉工程师
  • 上位机/软件工程师
  • 工艺工程师
  • 项目经理

主要职责

  • 机器人工程师负责 RAPID 程序架构、运动逻辑、报警恢复和配方接口
  • PLC 工程师负责站级时序、互锁、报警管理和设备联动
  • 视觉工程师负责识别流程、结果输出和标定接口
  • 上位机工程师负责 MES、条码、数据库、配方和 HMI 集成
  • 工艺工程师负责工艺参数表、质量判定逻辑和版本口径
  • 项目经理负责软件联调计划和版本受控

阶段输入

  • IO 表和通信协议表
  • 工艺流程与节拍要求
  • 设备驱动接口资料
  • 视觉和上位系统接口说明

阶段输出

  • RAPID 程序包
  • PLC 程序版本
  • 视觉流程与模板版本
  • HMI / 上位机接口程序
  • 报警清单与配方管理表

Omniverse / Isaac 工程师如何参与

  • 开发与仿真、视觉、追溯和分析相关的上位模块
  • 设计程序、报警、配方、生产数据之间的统一数据层
  • 为 Omniverse / Isaac / Cosmos 工作流准备可复用的数据接口

参与目的

  • 让现场程序、仿真系统和 AI 模块形成可持续的数据闭环
  • 降低后续调试分析、模型迭代和知识沉淀成本
  • 为边缘 AI、合成数据和异常分析模块提供稳定接入口

边界提醒

  • 不主导 RAPID 底层运动和 PLC 安全互锁逻辑

智能体开发工程师如何参与

  • 设计高层任务接口,例如任务描述、技能调用、任务状态、失败回执
  • 开发任务规划 Agent、技能编排层或自然语言到任务图的中间层
  • 设计 VLA / Agent 与规则系统之间的降级切换机制

参与目的

  • 让智能体层建立在稳定工业软件之上,而不是替代工业主链路
  • 支持柔性任务、自然语言任务和复杂异常恢复研究
  • 为将来的高层智能控制保留落地路径

边界提醒

  • 不让智能体直接接管实时安全控制

8.1 软件分层建议

真实项目中,ABB 机器人软件最好分层开发,而不是所有逻辑写在一个主程序里。

建议分为:

  • 系统初始化层
  • 自动运行层
  • 手动调试层
  • 工艺动作层
  • 通信握手层
  • 报警与恢复层
  • 配方与参数层

8.2 ABB RAPID 程序建议结构

RAPID 程序建议按模块管理:

  • MainModule:主循环、模式切换
  • MotionModule:取放、过渡、回原点等标准动作
  • IOModule:IO 读写、握手信号封装
  • VisionModule:视觉结果读取与坐标补偿
  • ProcessModule:点胶、压合、锁附等工艺流程
  • AlarmModule:故障码、报警处理、恢复逻辑
  • RecipeModule:机种参数、偏移量、工艺窗口

新手常见错误:

  • 直接在主程序里堆大量 MoveJMoveL
  • IO 名称不规范,后期没人敢改
  • 报警处理散落在各处,无法统一维护
  • 手动模式和自动模式共用同一套不安全的动作入口

8.3 RAPID 程序中必须明确的数据对象

在 ABB 项目中,以下对象必须标准化管理:

  • tooldata
  • wobjdata
  • robtarget
  • speeddata
  • zonedata
  • loaddata
  • 工艺参数
  • 机种偏移参数

特别重要的两个概念:

  • tooldata 定义的是工具坐标与负载
  • wobjdata 定义的是工件或工装参考坐标

大量现场问题其实来自这两项定义不规范,导致示教点难复用、换型困难、补偿混乱。

8.4 PLC 与机器人握手的基本原则

握手逻辑应清晰、最小化、可追踪。通常包括:

  • 自动允许
  • 急停复位
  • 站内准备好
  • 产品到位
  • 机器人忙
  • 机器人循环完成
  • NG 报警
  • 允许放行

建议将握手设计成状态机,不要把大量条件散落在梯形图和 RAPID 里互相猜测。

8.5 配方与换型管理

3C 项目经常一机多型。必须在软件中提前规划:

  • 型号号段
  • 治具编号
  • 工艺参数版本
  • 视觉模板版本
  • 机器人点位偏移
  • 权限控制

量产后最怕的是:

  • 配方改了但程序没留记录
  • 治具换了但 wobjdata 没更新
  • 视觉模板与机种配方不一致

因此需要建立最基本的版本控制和变更记录机制。


9. 第七阶段:标定、示教与工艺调试

9.0 本阶段的角色、职责、输入与输出

参与角色

  • 机器人工程师
  • 视觉工程师
  • 工艺工程师
  • PLC 工程师
  • 设备装配/调试工程师
  • 质量工程师

主要职责

  • 机器人工程师负责 TCP、WorkObject、点位示教和运动调试
  • 视觉工程师负责相机标定、识别参数和补偿精度验证
  • 工艺工程师负责压合、锁附、点胶等工艺窗口调试
  • PLC 工程师负责联机时序、超时、报警和恢复逻辑验证
  • 调试工程师负责现场装配状态、气电状态和机构动作确认
  • 质量工程师负责首件质量验证和数据记录

阶段输入

  • 机械、电气、软件已安装到位的工站
  • 可运行的程序初版
  • 治具、夹爪、产品和工艺参数
  • 调试记录表和质量判定标准

阶段输出

  • TCP / WorkObject 标定记录
  • 调试完成的机器人点位与程序版本
  • 工艺参数窗口
  • 首件验证记录
  • 调试问题与整改清单

Omniverse / Isaac 工程师如何参与

  • 记录并分析调试日志、报警序列、视觉结果和质量数据
  • 对识别偏差、误检漏检、节拍抖动做数据归因
  • 把现场问题沉淀为后续仿真与训练所需的真实样本

参与目的

  • 把现场调试经验转化为可复用的数据资产
  • 找到仿真和真实现场之间的差异来源
  • 为后续 Omniverse / Isaac / Cosmos 迭代提供真实反馈

边界提醒

  • 不主导 TCP、WorkObject、点位示教和首件放行

智能体开发工程师如何参与

  • 采集现场执行轨迹、状态序列、失败恢复过程和人工干预记录
  • 分析高层任务在哪些状态下失败,哪些失败可以通过策略改进避免
  • 建立用于模仿学习、策略优化或 VLA 微调的数据集

参与目的

  • 从真实调试中获取“任务级”而不是只“动作级”的数据
  • 为后续智能体恢复策略、技能切换和高层规划优化提供训练素材
  • 缩小仿真任务逻辑和真机执行逻辑之间的差距

边界提醒

  • 不主导首件质量判定,也不在标定错误时强行上智能策略

9.1 现场调试的正确顺序

现场调试建议严格按以下顺序进行:

  1. 机器人本体通电检查
  2. 安全回路验证
  3. 单轴点动与回零确认
  4. 工具安装与负载确认
  5. TCP 标定
  6. WorkObject 标定
  7. 空跑轨迹验证
  8. 加入夹具与工件空抓测试
  9. 加入视觉补偿
  10. 加入工艺设备联动
  11. 单循环验证
  12. 连续循环验证
  13. 异常恢复验证

不要跳步骤,尤其不要在 TCP 和 WorkObject 未完全确认时直接做精密装配调试。

9.2 TCP 标定与 WorkObject 标定

这是 ABB 项目成败的基础工作。

TCP 标定关注:

  • 工具尖端是否真实
  • 工具更换后是否重复
  • 标定方法是否统一
  • 标定误差是否被记录

WorkObject 标定关注:

  • 治具基准是否稳定
  • 每套治具是否有唯一编号
  • 换型后是否可快速复位
  • 标定点是否便于维护

如果项目后期需要频繁换型,应优先设计“治具基准块 + 标准化标定流程”,而不是依赖资深工程师现场手工找点。

9.3 视觉标定的现场注意事项

视觉调试不只是“识别成功”即可,还要验证:

  • 重复识别偏差
  • 产品不同批次差异
  • 光照波动
  • 夹具污染后的影响
  • 通信异常后的超时处理
  • 识别失败后的重试与旁路策略

9.4 工艺调试必须围绕 CPK 和良率

3C 组装不是把产品放上去就结束,真正的目标是:

  • 尺寸是否稳定
  • 压力是否在窗口内
  • 扭矩是否稳定
  • 外观是否合格
  • 重复生产后的漂移是否可控

所以现场调试需要记录:

  • 周期时间
  • 良率
  • 重试率
  • 报警频次
  • 关键工艺参数分布

10. 第八阶段:异常处理与恢复设计

10.0 本阶段的角色、职责、输入与输出

参与角色

  • 机器人工程师
  • PLC 工程师
  • 工艺工程师
  • 质量工程师
  • 设备维护工程师
  • 项目经理

主要职责

  • 机器人工程师负责机器人相关异常、回安全位和恢复动作设计
  • PLC 工程师负责超时、联锁、整站停机和复位流程设计
  • 工艺工程师负责工艺 NG 判定、重试规则和隔离逻辑
  • 质量工程师负责异常分类、缺陷记录和追溯要求
  • 维护工程师负责确认现场可执行的恢复步骤
  • 项目经理负责推动异常闭环进入 FAT / SAT 标准

阶段输入

  • 联机调试中暴露的问题
  • 报警记录和失败样本
  • 工艺质量判定规则
  • 现场操作与维护约束

阶段输出

  • 报警清单与报警说明
  • 异常分级与恢复 SOP
  • 自动重试与人工干预规则
  • 问题闭环台账

Omniverse / Isaac 工程师如何参与

  • 参与报警分类、根因归因和异常知识库建设
  • 基于历史日志和现场样本建立辅助诊断与预测模型
  • 识别哪些异常值得回流到仿真和合成数据体系中

参与目的

  • 提升维护人员定位效率
  • 形成“现场异常 -> 仿真复现 -> 模型改进”的闭环
  • 为后续运维预测和长尾场景扩展准备数据

边界提醒

  • 不主导安全相关异常的最终恢复策略

智能体开发工程师如何参与

  • 把异常流程抽象成任务级恢复图
  • 识别哪些异常适合自动重试、哪些适合策略回退、哪些必须人工接管
  • 研究高层异常处理 Agent,但保持在建议层或受限执行层

参与目的

  • 为柔性制造中的异常恢复研究提供真实问题集合
  • 提升任务级恢复效率,而不是只靠人工经验
  • 为后续半自动恢复和智能运维提供研究基础

边界提醒

  • 不让智能体单独决定安全相关跳过或复位动作

10.1 工业项目不能只设计正常流程

正常流程跑通只完成了 50%。剩下 50% 来自异常设计。3C 组装中最常见的异常包括:

  • 来料不到位
  • 真空吸取失败
  • 工件二次掉落
  • 视觉识别失败
  • 压机超差
  • 电批锁附 NG
  • PLC 超时
  • 安全门打开
  • 通信中断
  • 产品卡在治具

10.2 异常恢复要分级

建议分为四级:

一级:自动重试

  • 视觉重拍一次
  • 吸取失败再取一次
  • 通信超时重发一次

二级:自动回安全位

  • 当前动作不可继续,机器人回安全位等待人工或 PLC 决策

三级:人工干预恢复

  • 弹出明确报警信息
  • 指引操作员处理
  • 处理后按步骤复位

四级:停机待工程师处理

  • 涉及安全风险、设备碰撞、工艺失控或连续异常

10.3 报警信息必须“可执行”

差的报警写法:

  • “Robot Error”
  • “Vision NG”
  • “Axis Fault”

好的报警写法应该包含:

  • 发生位置
  • 可能原因
  • 操作员动作
  • 是否允许复位

例如:

  • “工位 2 取料失败,真空开关未检测到吸附,已自动重试 2 次,请检查来料姿态和吸嘴堵塞情况。”

11. 第九阶段:FAT、SAT 与量产验收

11.0 本阶段的角色、职责、输入与输出

参与角色

  • 项目经理
  • 机器人工程师
  • PLC / 电气工程师
  • 工艺工程师
  • 质量工程师
  • 客户制造/设备代表
  • 售后或现场服务工程师

主要职责

  • 项目经理负责组织验收、问题归口和交付协调
  • 机器人工程师负责机器人动作、节拍和恢复能力演示
  • PLC / 电气工程师负责整站联机、安全和 IO 功能演示
  • 工艺工程师负责工艺质量、参数和换型能力确认
  • 质量工程师负责验收数据、良率和追溯项核对
  • 客户代表负责按约定条款确认 FAT / SAT 结果
  • 售后工程师负责现场安装、复测和问题闭环支持

阶段输入

  • 完整设备与程序版本
  • 图纸和交付文件包
  • FAT / SAT 验收标准
  • 连续运行和带料测试条件

阶段输出

  • FAT 报告
  • SAT 报告
  • 验收问题清单与整改计划
  • 现场安装和培训记录
  • 试产准入结论

Omniverse / Isaac 工程师如何参与

  • 整理验收、试运行和试产阶段的数据报表
  • 验证追溯链路、日志完整性和数据采集质量
  • 分析良率、停机和异常分布,为后续模型优化建立基线

参与目的

  • 确认真实量产数据已经能够支撑后续仿真和 AI 迭代
  • 形成试产阶段的真实世界基准数据集
  • 为后续 Cosmos / 合成数据 / 模型优化提供参考真值

边界提醒

  • 不主导 FAT / SAT 放行,也不在验收临近时引入高风险新模块

智能体开发工程师如何参与

  • 利用试运行和试产数据评估高层任务成功率、异常分布和策略覆盖范围
  • 识别哪些研究能力可以进入下一阶段验证,哪些只能继续离线研究
  • 建立真实产线基准,用于评估智能体方案相对传统规则系统的增益

参与目的

  • 用真实世界数据校准研究目标
  • 避免用演示效果代替产线效果
  • 为下一轮 Agent / VLA 研究建立可信基线

边界提醒

  • 不把研究原型直接塞进正式验收项

11.1 FAT 前必须准备的文件

FAT 不是“客户来看设备会不会动”,而是按预定义标准核对交付物。通常需要准备:

  • 设备功能说明书
  • 电气图纸
  • 气路图
  • 机械 BOM
  • IO 表
  • 报警清单
  • 程序备份
  • 配方清单
  • 易损件清单
  • 点检保养手册
  • FAT 验收表

11.2 FAT 典型验收内容

  • 自动循环节拍
  • 空跑与带料运行
  • OK / NG 分流
  • 安全回路动作
  • 断电重启恢复
  • 报警与复位
  • 换型操作
  • 数据记录与追溯
  • 连续运行稳定性

11.3 SAT 与试产阶段关注点

设备到客户现场后,SAT 的重点不只是设备本身,而是整线环境:

  • 上下游接口是否匹配
  • 厂务波动是否影响设备
  • 来料真实离散性是否超出预期
  • 操作员是否按标准作业
  • 网络、MES、条码系统是否稳定

试产阶段要特别关注:

  • 首批量产不良模式
  • 连续运行 8 小时以上的稳定性
  • 白夜班差异
  • 保养周期是否合理

12. 第十阶段:量产运维与持续优化

12.0 本阶段的角色、职责、输入与输出

参与角色

  • 生产主管或线长
  • 设备维护工程师
  • 质量工程师
  • 工艺工程师
  • 数据/系统工程师
  • 供应商售后工程师

主要职责

  • 生产主管负责日常生产组织、异常升级和换型执行
  • 维护工程师负责点检、保养、备件和停机恢复
  • 质量工程师负责良率监控、异常分析和质量闭环
  • 工艺工程师负责参数优化、工艺漂移控制和持续改善
  • 数据工程师负责报警、节拍、追溯和运维数据分析
  • 售后工程师负责重大异常支援和版本优化建议

阶段输入

  • 已验收并投产的设备
  • 生产数据、报警记录和点检记录
  • 良率与节拍目标
  • 备件和保养计划

阶段输出

  • 日/周/月运维报表
  • 报警 Top 清单与改善措施
  • 工艺和程序优化记录
  • 备件与保养执行记录
  • 持续改进项目清单

Omniverse / Isaac 工程师如何参与

  • 分析长期节拍、报警、良率和停机数据
  • 建立运维可视化、知识检索、异常预测和数据回流机制
  • 把现场真实数据反馈到仿真、合成数据和模型优化链路

参与目的

  • 形成长期稳定的 sim-to-real 数据闭环
  • 持续提升视觉、检测、诊断和运维模型效果
  • 让 Omniverse / Isaac / Cosmos 真正服务量产优化,而不是停留在演示阶段

边界提醒

  • 不主导现场工艺变更,也不直接下发未经工程验证的自动调参策略

智能体开发工程师如何参与

  • 基于长期运行数据研究任务调度、异常恢复、换型辅助和运维助手
  • 持续迭代任务规划 Agent、知识检索 Agent 和维护辅助 Agent
  • 用真实量产数据评估 VLA / Agent 的泛化与稳定性

参与目的

  • 让智能体研究从单站 demo 走向长期真实场景验证
  • 支持柔性制造中的多机种、多任务和异常协同研究
  • 形成持续迭代的数据闭环和研究闭环

边界提醒

  • 不直接把研究策略自动推到生产主链路

12.1 量产后真正影响 OEE 的因素

设备量产后,最影响 OEE 的通常不是大故障,而是“小停机”:

  • 吸嘴脏污
  • 相机镜头污染
  • 气压轻微波动
  • 治具磨损
  • 传感器松动
  • 小批次来料偏差
  • 操作员误操作

因此必须建立:

  • 日点检
  • 周保养
  • 月度精度复核
  • 备件更换周期
  • 报警统计复盘

12.2 建议纳入持续监控的数据

  • 每小时产量
  • 设备节拍
  • 报警次数
  • 报警 Top 10
  • 真空失败率
  • 视觉 NG 率
  • 工艺设备 NG 率
  • MTBF
  • MTTR

12.3 工程优化的正确方向

量产优化时,优先顺序通常应是:

  1. 先降低异常率
  2. 再提升恢复效率
  3. 最后再压缩纯运动时间

因为多数 3C 工站的产能损失并非来自机器人速度不够,而来自异常和等待时间过多。


13. 3C 组装项目中的关键工程文件清单

一个完整的 ABB 机械臂 3C 组装项目,建议至少具备以下文件:

  • URS / 需求规格说明
  • 工艺流程图
  • 节拍分析表
  • Layout 图
  • 风险评估表
  • 机械 2D/3D 图纸
  • 电气原理图
  • IO 点表
  • 通信协议表
  • RAPID 程序结构说明
  • PLC 程序说明
  • 视觉流程说明
  • TCP / WorkObject 标定记录
  • 配方管理表
  • FAT / SAT 验收表
  • 备件清单
  • 点检保养 SOP
  • 故障排查手册
  • 程序备份与版本记录

新从业者要建立一个基本意识:

工业项目交付的不是“代码”或“设备”,而是一整套可生产、可维护、可追溯的系统。


14. 新手最常见的 15 个错误

  1. 只关注机器人,不关注治具和工艺
  2. 节拍估算只算轨迹,不算等待与异常
  3. 没有在方案阶段考虑换型
  4. 报警设计过于模糊,现场无法快速处理
  5. IO 命名混乱,联调阶段频繁出错
  6. tooldatawobjdata 管理混乱
  7. 视觉只看识别成功率,不看重复性和稳定性
  8. 现场调试跳过基础标定步骤
  9. 没有预留维护空间和快修空间
  10. 没有验证连续运行稳定性
  11. 把 PLC、机器人、视觉之间的职责混在一起
  12. 没有把异常恢复做成标准流程
  13. 量产后没有统计小停机原因
  14. 设备文档不完整,交接后维护困难
  15. 过度依赖个别资深工程师的经验,没有沉淀标准化方法

15. 一个 ABB 3C 组装工站的推荐实施节奏

下面给出一个更接近真实项目的推荐节奏。

阶段 A:方案期

  • 完成需求澄清
  • 完成工艺可行性验证
  • 完成节拍模型
  • 完成机器人、夹具、视觉、工艺设备初选
  • 输出布局与风险评估

阶段 B:设计期

  • 完成机械、电气、安全设计
  • 完成 RobotStudio 仿真
  • 完成 IO 与通信定义
  • 完成程序框架设计
  • 完成 BOM 与采购

阶段 C:装配与厂内调试期

  • 机构装配
  • 单机通电
  • IO 测试
  • 机器人示教
  • 视觉标定
  • 工艺参数调试
  • 连续运行测试

阶段 D:验收与导入期

  • FAT
  • 现场搬入
  • SAT
  • 试产
  • 问题闭环
  • 文件交付
  • 培训移交

16. 给新从业者的实操建议

16.1 先学会看现场,再学编程

对新手而言,优先级应是:

  1. 看懂工艺流程
  2. 看懂治具基准
  3. 看懂设备节拍
  4. 看懂 IO 与联锁
  5. 再深入 RAPID 编程细节

16.2 你在现场必须重点观察的内容

  • 产品是如何定位的
  • 机器人每次抓取是否一致
  • 设备等待时间卡在哪
  • 哪类报警最频繁
  • 操作员最常绕开的步骤是什么
  • 维护人员最怕拆哪一块

16.3 建议尽快形成的能力结构

  • 机械基础:基准、刚性、公差链
  • 电气基础:IO、互锁、传感器、执行器
  • 机器人基础:TCP、坐标系、轨迹、姿态
  • 软件基础:RAPID、PLC 握手、版本管理
  • 工艺基础:压合、锁附、点胶、贴附、检测
  • 工业方法:FMEA、8D、标准作业、变更控制

17. 结语:ABB 机械臂 3C 组装项目的本质

ABB 机械臂在 3C 组装里,真正交付的不是“机械臂自动跑起来”,而是:

  • 稳定的节拍
  • 可控的良率
  • 可恢复的异常流程
  • 可复制的换型方法
  • 可追溯的数据链路
  • 可维护的工程系统

如果只把注意力放在示教点和轨迹优化上,项目很容易停留在“能演示”阶段;只有把工艺、治具、视觉、通信、安全、调试、验收和运维一起做好,才算完成一个真实工业版本的 ABB 机械臂 3C 组装项目。


18. 可直接复用的项目启动检查表

以下清单可作为新项目启动时的第一版检查表。

18.1 商务/需求侧

  • 产品型号是否冻结
  • 产能目标是否明确
  • 验收指标是否书面化
  • 现场厂务条件是否确认
  • 上下游接口是否明确

18.2 工艺侧

  • 关键工艺窗口是否确认
  • 是否做过打样或 PoC
  • 不良模式是否列出
  • 是否明确允许的重试次数

18.3 设备侧

  • 机器人型号是否完成选型
  • 末端执行器方案是否评审
  • 治具基准是否经过验证
  • 视觉方案是否验证光学可行性
  • 安全方案是否评审通过

18.4 软件侧

  • IO 点表是否冻结
  • 通信协议是否冻结
  • 程序结构是否定义
  • 报警规范是否定义
  • 配方与版本管理方式是否定义

18.5 验证侧

  • 节拍模型是否评审
  • FAT / SAT 标准是否确认
  • 连续运行测试条件是否定义
  • 数据追溯项是否确认

这份检查表越早使用,项目返工越少。


附录阅读导航

从这里开始,文档从“主流程”切换到“附录工具箱”。建议按下面方式使用:

  • 19:先解决名词理解问题,适合第一次接触工业现场时随查随看
  • 20-24:再理解角色边界、工具边界和团队协作边界
  • 25-26:如果你在做柔性制造研究或试点立项,优先看这里
  • 27-32:如果你来自 LeRobot / SO-101 / VLA / 智能体 背景,建议把这一组当成一个连续专题阅读

如果你不是按顺序通读,而是带着问题来查,这个导航会比从目录硬找更快。


19. 附录:ABB、Omniverse 与工业自动化术语速查表

这一节给第一次接触工业机器人项目,尤其是使用 Omniverse / Isaac / 合成数据工作流的工程师使用。目标不是做教科书式定义,而是帮助你在读方案、开会、看图纸、看报警和参与调试时,快速理解这些词在现场到底代表什么。

19.1 ABB 机器人相关术语

ABB

工业机器人厂商。本文语境里,主要指 ABB 机械臂本体、控制器、RobotStudio 软件和 RAPID 编程体系。

机器人本体

指机械臂硬件本身,包括各轴、电机、减速机构和机械结构。它负责“动起来”,但不等于整站自动化系统。

控制器

机器人控制柜,如 IRC5 或 OmniCore。负责运行 RAPID 程序、管理运动控制、执行机器人 IO 和安全相关配置。

示教器

现场工程师拿在手上的操作终端,用于点动机器人、加载程序、查看报警、手动调试和示教点位。

RAPID

ABB 机器人的编程语言。可以理解为 ABB 机器人上的“业务执行语言”,用于写取放、轨迹、IO 控制、流程、报警处理等逻辑。

RobotStudio

ABB 的离线编程和仿真软件。用于建模、可达性分析、碰撞检查、节拍估算、虚拟调试和程序预开发。

TCP

Tool Center Point,工具中心点。通俗说,就是末端工具真正“干活”的那个点。吸嘴中心、夹爪夹持中心、点胶针头尖端,都可以是 TCP。

一个很好理解的例子是:

  • 如果机器人末端装的是吸嘴,那么真正吸产品的位置不是机器人法兰中心,而是吸嘴最前端的吸取中心
  • 工程师在程序里让机器人“移动到产品上方 2 毫米”,实际上是让这个 TCP 到目标位置,而不是让法兰到目标位置

所以对新手来说,可以先把 TCP 理解成:

  • 机器人真正拿来对位、插装、吸取、点胶、锁附的“笔尖”

tooldata

ABB 中定义工具信息的数据结构,通常包含 TCP 位置、姿态和负载信息。工具定义错了,轨迹和工艺动作通常都会出问题。

一个常见例子是:

  • 机器人末端从吸嘴换成锁螺丝模组后,如果程序里还沿用原来的工具定义,机器人看到的“工具尖端”就还是旧位置
  • 结果可能是拍照位置偏了、取放高度不对、锁附点位不准

所以可以先把 tooldata 理解成:

  • 机器人如何理解“我手上这个工具长什么样、重多少、真正干活的点在哪里”

WorkObject

工件坐标系或工装坐标系。机器人不是只相对自身基座工作,很多示教点会建立在治具或产品的参考坐标系下,这样换型和补偿才可控。

一个好理解的例子是:

  • 同一台机器人今天装 A 型号手机中框,明天装 B 型号中框,如果两种产品在治具上的基准不同,就不能只靠改几个点位硬顶
  • 更常见的做法是把点位挂在对应的 WorkObject 上,这样当工装基准变化时,只需要修正坐标系,而不是整套轨迹全部重教

所以可以先把 WorkObject 理解成:

  • 机器人干活时所参考的“工件世界”

wobjdata

ABB 中定义 WorkObject 的数据结构。通常和治具基准、托盘基准、工装平台强相关。

一个最容易理解的例子是:

  • 同一套程序本来在 1 号治具上跑得很好,后来把治具整体挪了几毫米
  • 如果点位都挂在对应的 WorkObject 上,工程师往往只需要修正这套 wobjdata,而不是把每个点重新示教一遍

所以可以把 wobjdata 理解成:

  • 机器人程序里那份“工件坐标系配置”

robtarget

ABB 中的目标点位数据,包含位置和姿态等信息。可以理解成机器人运动中的“目标位姿”。

一个最直接的理解方式是:

  • 你在示教器上教出的“到这里取料”“到这里放料”“到这里拍照”,背后通常都会落成一个或多个 robtarget

所以可以先把 robtarget 理解成:

  • 机器人程序里一个可被调用的目标位置

MoveJ / MoveL

ABB 常见运动指令。MoveJ 通常是关节运动,适合过渡和高速移动;MoveL 是直线运动,适合接近工件、插装、点胶、压合等工艺动作。

一个常见例子是:

  • 机器人从待机位去拍照位,通常可以用 MoveJ,因为重点是快和顺利到达
  • 机器人从拍照位往连接器孔位下插时,通常更适合用 MoveL,因为这段过程需要沿直线接近,避免姿态和路径乱飘

所以对新手来说,可以先粗略记成:

  • MoveJ 更像“快速过去”
  • MoveL 更像“沿着可控直线靠近目标”

speeddata

机器人运动速度参数。现场不是所有动作都越快越好,接近产品和执行工艺动作时常需要降速。

zonedata

机器人路径转角平滑参数。它会影响轨迹是否严格过点、节拍是否更快。新手常见错误是为了快,把转角区设置过大,导致接近产品时轨迹偏差过大。

一个典型例子是:

  • 机器人在空中做过渡运动时,可以允许它不要每个点都刹停,而是顺滑带过去,这样节拍会更快
  • 但如果接近插装位、点胶轨迹或锁螺丝位置时还把区带设太大,机器人可能没有真正精确到点,就开始执行工艺动作

所以可以先把 zonedata 理解成:

  • 机器人在“必须精确过点”和“允许平滑带过”之间的设置

loaddata

机器人负载数据。包括末端工具和工件的质量、质心和惯量信息。负载设错会影响运动稳定性甚至安全。

一个常见例子是:

  • 末端加装了更重的夹爪,或者取到产品后总重量明显变化
  • 如果程序里还是按旧负载跑,高速运动时就可能出现轨迹不稳、停不准、报警甚至保护停机

所以对新手来说,可以先把 loaddata 理解成:

  • 告诉机器人“你现在手上到底拿着多重的东西”

奇异点

某些姿态下机器人运动学会变得不稳定或姿态突变。仿真和现场调试都需要尽量避开。

19.2 自动化控制与通信术语

PLC

可编程逻辑控制器。站级自动化的中枢,负责时序控制、互锁、报警汇总、工位协调。可以简单理解为“整站流程控制器”,但它不是机器人控制器的替代品。

IO

输入输出信号。工业现场大量控制就是靠这些信号完成,例如“产品到位”“夹爪打开”“机器人忙”“工艺完成”“报警复位”等。

DI / DO

数字输入 / 数字输出。现场最常见的离散信号类型。

AI / AO

模拟输入 / 模拟输出。常用于压力、位移、流量等连续量。

握手

设备之间互相确认状态的一套信号时序。例如 PLC 告诉机器人“可以启动”,机器人回传“正在运行”和“循环完成”。握手设计混乱,是联机调试最常见问题之一。

互锁

为了防止错误动作发生而设置的前提条件。例如安全门打开时不能自动运行、工件不到位不能压合、治具未夹紧不能放料。

一个现场里非常常见的例子是:

  • 治具夹紧信号没到,机器人就不能下压放件
  • 安全门被打开,整站自动循环必须立即禁止
  • 视觉结果还没返回,PLC 就不能放行机器人进入下一步

所以可以把互锁先理解成:

  • “只有前提满足,下一步动作才被允许执行”

Socket 通信

设备或系统之间基于网络的数据通信方式。视觉系统和机器人、上位机之间常用。

现场总线

工业设备之间的通信网络,如 Profinet、EtherNet/IP 等。现场总线更多是工业控制域的标准通信,不等于普通 IT 网络接口。

19.3 工艺与机械相关术语

治具

用于定位、支撑、约束或夹紧工件的工装。3C 项目里,治具经常比机器人本体更决定成败。

一个最容易理解的例子是:

  • 机器人要把手机中框放进装配位里,真正决定它能不能放准的,往往不是机器人本体,而是治具有没有把中框稳稳限位住
  • 如果治具定位销有偏差、夹紧不稳定,机器人即使重复精度很好,也会出现放偏、压坏、插不进去

所以对新手来说,可以先把治具理解成:

  • 帮产品“站好位置、固定姿态、提供装配基准”的那套机械基础

夹具

有时和治具混用。本文里更偏向指抓取、夹持、装夹或限位相关机构。

一个常见例子是:

  • 机器人末端用两指夹爪夹住连接器,再把连接器送到装配位置
  • 这里负责“抓住零件”的那套机构,更接近夹具或夹持机构;而负责“把产品在工位上定位好”的那套,一般更接近治具

所以可以先粗略区分成:

  • 治具更偏工位侧定位
  • 夹具更偏抓取侧夹持

末端执行器

安装在机器人法兰上的工具系统,如吸嘴、夹爪、点胶头、锁附模组、压头等。它直接决定机器人和工件如何交互。

柔顺补偿

用机械浮动、弹性结构或合适的工艺策略吸收装配偏差。对于插装、压合、定位配合等场景非常关键。

基准

所有定位和测量的参考。产品基准、治具基准、相机基准、机器人坐标基准如果不统一,调试会非常痛苦。

公差链

多个尺寸误差累积后的结果。很多“机器人明明很准却装不进去”的问题,本质上是公差链和工艺窗口没理清。

工艺窗口

某个工艺动作允许稳定工作的参数范围,例如压力范围、扭矩范围、位置范围、速度范围、温度范围。工业交付必须知道窗口,而不是只知道一个“最佳值”。

一个典型例子是:

  • 某个压合工序不是“压力 32N 才能做”,而可能是 28N 到 35N 都能稳定压入且不伤件
  • 某个锁螺丝工序不是“转速 600 rpm 才对”,而是要知道在不同批次来料下,什么扭矩、转速、下压量的组合还能稳定合格

所以工艺窗口真正表达的是:

  • 系统在什么范围内还能稳定产出,而不是只记住一个实验室里最漂亮的参数点

19.4 视觉与检测相关术语

视觉引导

视觉系统输出目标位置、角度或偏移量,提供给机器人做抓取或放置补偿。

视觉检测

视觉系统输出 OK / NG、缺陷类型、尺寸或外观结论,主要用于质量判定,而不是直接引导运动。

标定

把不同坐标系之间的关系建立起来。例如相机坐标到机器人坐标、治具基准到工装坐标。没有标定,视觉结果通常不能直接用于机器人运动。

一个最直观的例子是:

  • 相机识别到螺丝孔中心在相机画面里的某个位置,不代表机器人已经知道那个孔在自己坐标系里的准确位置
  • 只有做完相机到机器人之间的标定后,机器人才能把“看见的位置”变成“能运动到的位置”

所以对新手来说,标定可以先理解成:

  • 把不同设备看到的世界,统一到同一套坐标关系里

模板

视觉识别中用于匹配或检测的一组标准数据。不同机种、不同外观件通常需要不同模板。

重复性

同样条件下多次测量或多次动作的离散程度。工业现场比起“偶尔识别成功”,更看重“每次都差不多”。

19.4A Omniverse / 物理 AI 相关术语

Omniverse

NVIDIA 的 3D 协作与物理级仿真平台。在 ABB 语境下,更适合被理解为高保真数字场景、仿真验证和 AI 数据生成环境,而不是现场控制器本身。

USD

Universal Scene Description,场景描述格式。它适合表达机器人站、传感器、灯光、工件和环境的统一场景数据,是 Omniverse 工作流的重要基础。

数字孪生

真实设备或产线在数字空间中的对应体。工业里真正有价值的数字孪生,不是“看起来像”,而是结构、运动、信号和工艺行为足够接近真实系统。

合成数据

通过仿真生成的训练或测试数据。它特别适合补充视觉样本不足、缺陷样本难采集、极端场景难覆盖的问题,但不能完全替代真实产线数据。

sim-to-real

从仿真到真实部署的一致性问题。工业项目里追求的是缩小差距,而不是假设差距完全消失。

物理 AI

让 AI 能理解、预测和作用于真实物理世界的能力。在工业场景里,它通常要建立在可靠仿真、明确工艺边界和可验证部署链路上。

边缘 AI

把推理能力部署在靠近设备侧的硬件平台上。它适合做视觉、检测、辅助判断等近实时任务,但仍需接受工业控制和安全边界约束。

19.5 质量、节拍与交付术语

节拍

这是现场最常听到的词之一。通俗理解就是:

  • 这台设备做完一件产品要花多久
  • 或者这条线多久能稳定产出一件产品

在很多工厂口语里,“节拍”经常直接等同于 CT,但严格来说:

  • 工站节拍:单个工站完成一个循环所需时间
  • 产线节拍:整条线稳定产出一件产品的节奏

新手最容易犯的错误是:

  • 把机器人运动时间当成全部节拍

真实节拍通常还包含:

  • 视觉识别时间
  • PLC 等待时间
  • 气缸动作时间
  • 工艺执行时间
  • 条码/MES 时间
  • 异常重试损失

一个最常见的误解是:

  • “机器人轨迹只跑 6 秒,所以节拍就是 6 秒”

现场里这通常是不成立的。比如一个锁附工站的单循环可能是:

  • 相机识别:1.2 秒
  • 机器人取件和移动:3.5 秒
  • 夹具夹紧:0.8 秒
  • 锁螺丝工艺动作:3.0 秒
  • 结果回传和放行:1.0 秒
  • 总节拍:9.5 秒

也就是说:

  • 机器人本体动作时间只是节拍的一部分
  • 真正影响产能的,往往是等待、工艺动作和联机时间

所以当现场说“节拍不够”时,第一反应不应该只是“让机器人跑快一点”,而应该先问:

  • 最慢的是机器人,还是视觉、工艺设备、PLC 等待,还是人工放件节奏

瓶颈

整条线里最慢、最限制产能的那个工站或环节。只优化非瓶颈工站,往往不会真正提升整线产能。

CT

Cycle Time,单循环时间。通常指一个工站完成一次完整动作所需时间,是节拍最核心指标之一。

UPH

Units Per Hour,每小时产出。常用于描述产能目标。

稼动率

设备在计划运行时间内,真正处于运行状态的比例。它关注的是“设备有多少时间真的在工作”,而不是“理论上应该工作多久”。

一个简单例子是:

  • 这台设备今天排班计划运行 10 小时
  • 但其中 2 小时因为报警、换料、等待维修或上游断料停着
  • 那么它真正运行的时间只有 8 小时,稼动率就不会高

所以稼动率更像是在回答:

  • 这台设备今天到底有多少时间真的在干活

直通率

产品一次通过所有工站、不返修、不重测就合格的比例。它比单纯良率更能反映流程是否顺畅。

一个常见例子是:

  • 一批 100 台产品里,有 85 台第一次就顺利通过
  • 另外 15 台虽然最后返修后也做成了,但第一次没有直接通过

那么这批产品的直通率就不是 100%,而更接近:

  • 第一次就通过的那部分比例

所以直通率强调的是:

  • 流程是不是顺,产品是不是第一次就稳定做对

OEE

Overall Equipment Effectiveness,设备综合效率。通常综合考虑可用率、性能和质量,是量产运营的重要指标。

一个简单理解方式是:

  • 设备不是“开机了”就代表效率高
  • 它可能经常停机,也可能一直没停但跑得慢,还可能跑得快但不良很多

所以 OEE 本质上是在一起看三件事:

  • 能不能稳定开机
  • 开机后是不是按应有节拍在跑
  • 跑出来的产品是不是合格

如果一个工站理论每小时能做 100 件,但实际因为停机、降速和不良,最后只稳定产出 60 件合格品,那么它的 OEE 就不会高。

可用率

设备在计划生产时间里,真正可开机生产的比例。停机、故障、等待维修都会拉低它。

一个简单例子是:

  • 今天计划生产 12 小时
  • 但其中 3 小时设备因为故障、维护或者等待关键部件而根本开不起来
  • 那么可用率就不会高

所以可用率更偏向回答:

  • 设备在该生产的时候,是否真的具备开机生产的条件

性能率

设备实际运行速度相对于理论速度的表现。设备虽然没停,但如果一直跑不到设计节拍,性能率就会下降。

一个常见例子是:

  • 这台设备设计节拍是 8 秒一件
  • 但现场因为视觉处理慢、机器人降速、上料等待等原因,长期只能跑到 11 秒一件
  • 即使它几乎没停机,性能率也不会好看

所以性能率更像是在问:

  • 这台设备开起来以后,是不是按应有速度在跑

良率

合格品占比。Omniverse / Isaac 工程师经常先看模型精度,但在产线里最终还是要回到良率。

一个最简单的例子是:

  • 做了 100 件产品,其中 94 件判定合格,6 件不合格
  • 那么这批产品的良率就是 94%

但现场通常不会只满足于“平均良率还行”,还会继续追问:

  • 不良是不是集中在某个班次、某种来料、某个工位或某种参数组合上

所以良率不是一个孤立数字,而是:

  • 最终用来判断这套工艺和设备到底有没有稳定产出价值的核心指标之一

返修

产品第一次没通过,需要重新处理或重新检测。返修多,往往说明工艺窗口、治具、检测或来料状态存在问题。

MTBF

平均无故障时间。值越高,说明系统越稳定。

一个简单理解方式是:

  • 如果一套设备平均每运行 3 天就出一次故障,它的 MTBF 就不会高
  • 如果能连续稳定跑 20 天才出现一次故障,说明稳定性明显更好

所以 MTBF 关注的是:

  • 故障之间隔得够不够久

MTTR

平均修复时间。值越低,说明异常恢复越快。

一个常见例子是:

  • 两套设备都可能出故障
  • 一套设备每次 10 分钟能恢复,另一套每次要停 2 小时才能恢复
  • 那么后者的 MTTR 就明显更差

所以 MTTR 关注的是:

  • 出了问题以后,要花多久才能把系统拉回可运行状态

FMEA

失效模式与后果分析。方案期常用来梳理风险、失效模式和控制措施。

CPK

过程能力指标。用于判断工艺过程是否稳定、是否能长期满足规格要求。

19.6 项目实施与验收术语

PoC

Proof of Concept,概念验证。通常用于验证某个关键动作或技术路线是否可行,不等于可以直接量产。

FAT

Factory Acceptance Test,出厂验收测试。通常在设备供应商厂内完成,确认功能、节拍、安全和主要交付物。

可以把它理解成:

  • 设备在离开供应商工厂之前,先证明“这套系统基本能跑起来,而且达到约定的交付状态”

一个常见场景是:

  • 在集成商车间里,客户来现场看机器人、PLC、视觉和工艺设备是否按方案运行
  • 检查功能流程是否完整、报警是否能处理、节拍是否接近目标、安全回路是否正常

FAT 通过,不代表现场一定没问题;它只说明:

  • 设备在供应商环境下已经具备出厂条件

SAT

Site Acceptance Test,现场验收测试。设备到客户现场后进行,重点是现场联机、厂务环境、上下游接口和带料稳定性。

可以把它理解成:

  • 设备到了客户工厂以后,再证明“它在真实现场条件下也能稳定工作”

一个常见场景是:

  • 设备在客户现场重新安装、接入厂务、对接上游下游、导入真实产品后,再验证整站流程
  • 这时经常会暴露 FAT 时看不出的现场问题,比如来料波动、现场照明变化、网络延迟、上下游节奏不一致

所以 SAT 更接近回答:

  • 这套设备能不能真正接入客户现场并进入试产

试产

设备通过基础验收后,用真实产品和真实班次做一段时间的小批量生产验证。很多问题会在这个阶段暴露出来。

换型

同一设备切换不同产品型号或配置。3C 行业机种切换频繁,因此换型设计和配方管理非常重要。

一个典型例子是:

  • 上午生产 A 型号耳机壳体,下午切换到 B 型号壳体
  • 这时可能需要切换治具定位块、视觉模板、机器人偏移量、压合参数和检测门限

所以换型不只是“换个产品继续跑”,而是:

  • 让设备在不同机种之间安全、快速、可控地切换

配方

不同产品型号所需的一组参数集合,可能包括机器人偏移、视觉模板、压力参数、扭矩参数、检测门限等。

一个常见理解方式是:

  • 如果把设备看成一台会做很多菜的机器,那么配方就是不同菜对应的那组参数

例如同一工站切到不同机种时,配方里可能一起切换:

  • 机器人抓取偏移
  • 相机模板
  • 锁附扭矩
  • 压合压力
  • NG 判定阈值

所以配方的关键不是“存了一堆参数”,而是:

  • 保证换到某个型号时,整站相关参数能成套、受控地切换

版本管理

对程序、配方、模板、参数和标定数据进行受控管理。工业项目里,“现场临时改了一点点”往往就是后期失控的开始。

19.7 给 Omniverse / Isaac 工程师的术语理解建议

如果你第一次参与 ABB 项目,建议这样理解这些术语:

  • 先把 TCPWorkObject、治具基准看懂,再谈感知补偿
  • 先把 PLCIO、握手、互锁看懂,再谈系统集成
  • 先把 CTUPH、良率、OEE 看懂,再谈算法价值
  • 先把 FATSAT、试产看懂,再谈交付节奏

当你能把这些词和现场动作一一对应起来,就会开始真正理解 ABB 工业项目的开发与交付逻辑。

19.8 术语之间的关系图

如果你是第一次接触 ABB 项目,建议不要把这些词当成彼此独立的名词,而要按“关系链”来理解。

1. 机器人坐标与运动这条链

可以先按下面这条顺序理解:

TCP -> tooldata -> WorkObject -> wobjdata -> robtarget -> MoveJ / MoveL -> zonedata

它们大致分别在回答这些问题:

  • TCP:机器人真正拿哪个点去干活
  • tooldata:这个工具的 TCP、姿态和负载怎么定义
  • WorkObject:机器人相对哪个工件或工装坐标系工作
  • wobjdata:这套工件坐标系在程序里怎么配置
  • robtarget:机器人到底要到哪个目标位姿
  • MoveJ / MoveL:机器人用什么运动方式到那个位姿
  • zonedata:这个过程中是必须精确过点,还是允许平滑带过

可以把这条链理解成:

  • 先定义“我用哪个工具点干活”
  • 再定义“我相对哪个工件世界干活”
  • 再定义“我要去哪里”
  • 最后定义“我怎么过去,以及要不要严格过点”

如果这条链里前面的定义错了,后面的轨迹通常也不会对。

2. 工装与视觉这条链

可以按下面这条顺序理解:

治具 / 夹具 -> 基准 -> 标定 -> 视觉引导 / 视觉检测 -> 工艺窗口

它们大致分别在回答:

  • 治具 / 夹具:产品怎么被固定、抓取和约束
  • 基准:大家共同参考的零点和方向是什么
  • 标定:相机、机器人、治具这些坐标关系怎么统一
  • 视觉引导 / 视觉检测:系统是要指导机器人运动,还是只做质量判断
  • 工艺窗口:即使前面都对了,参数在什么范围内才算稳定可生产

可以把这条链理解成:

  • 先把产品放稳
  • 再把坐标关系讲清楚
  • 再让视觉参与
  • 最后确认工艺是否真能稳定跑

3. 产能与运营这条链

可以按下面这条顺序理解:

节拍 / CT -> UPH -> 稼动率 -> 可用率 -> 性能率 -> 良率 / 直通率 -> OEE

它们大致分别在回答:

  • 节拍 / CT:单件做完要多久
  • UPH:每小时大概能做多少件
  • 稼动率:设备有多少时间真的在运行
  • 可用率:该生产的时候设备能不能开起来
  • 性能率:开起来之后有没有按应有速度跑
  • 良率 / 直通率:跑出来的产品是不是合格,是否第一次就顺利通过
  • OEE:把运行、速度和质量综合起来看,整体效率到底怎么样

可以把这条链理解成:

  • 先看单件时间
  • 再看小时产出
  • 再看设备是否常停、是否跑慢、是否做坏
  • 最后才汇总成一个更综合的运营指标

4. 项目交付这条链

可以按下面这条顺序理解:

PoC -> FAT -> SAT -> 试产 -> 量产

它们大致分别在回答:

  • PoC:关键技术动作到底可不可行
  • FAT:在供应商环境里,这套设备是否具备出厂条件
  • SAT:到了客户现场后,是否还能正常联机和运行
  • 试产:在真实产品和真实班次下,能不能稳定跑
  • 量产:是否进入长期稳定、可考核的生产阶段

可以把这条链理解成:

  • 先证明能做
  • 再证明能交
  • 再证明能在现场跑
  • 最后才谈稳定量产

对新手来说,一个最实用的记忆方法是:

  • ABB 相关术语优先按“坐标链”和“交付链”理解
  • 工艺和视觉相关术语优先按“基准链”理解
  • 节拍、良率、OEE 这些词优先按“运营链”理解

这样读文档时,你就不容易把术语记成一堆散乱名词。

19.9 ABB 项目里一天调试现场到底在发生什么

如果你第一次进 ABB 项目现场,很容易觉得大家一直在“点点点、改改改、等一等、再试一次”,看起来很乱。实际上,现场调试通常是在围绕一条固定链路反复验证。

可以先把一天的现场理解成下面这个顺序:

操作员上料 -> 治具定位与夹紧 -> PLC 判断前提 -> 视觉取图 / 计算 -> 机器人执行动作 -> 工艺设备执行 -> 检测结果返回 -> PLC 放行或报警 -> 操作员取件 / 异常处理

下面按一个典型 3C 装配工站来理解。

1. 操作员上料

  • 操作员把产品或托盘放到指定位置
  • 到位传感器、按钮或扫码信号告诉系统“这一循环可以开始了”

这一步看起来最简单,但如果上料姿态不稳定,后面所有调试都会漂。

2. 治具定位与夹紧

  • 治具把产品定位到工艺要求的位置
  • 气缸、夹块、真空等机构完成夹紧
  • PLC 检查夹紧到位信号

这一步的本质是:

  • 在机器人动之前,先把产品和基准固定住

3. PLC 判断前提

  • PLC 检查互锁条件是否满足
  • 比如安全门关闭、治具夹紧、上游允许、报警清除、设备复位完成

这一步的本质是:

  • 确保系统具备进入自动动作的前提

4. 视觉取图与计算

  • 如果工站带视觉,PLC 或机器人触发相机采图
  • 视觉系统输出位置偏移、角度、OK/NG 或缺陷结果
  • 如果做的是引导,结果会传给机器人;如果做的是检测,结果会传给 PLC 或上位机

这一步最常见的问题不是“算法完全不行”,而是:

  • 光照、基准、标定、触发时序和治具状态没有统一好

5. 机器人执行动作

  • 机器人根据程序和当前结果执行取料、移载、插装、点胶、锁附、压合等动作
  • 这时工程师会关注点位、姿态、速度、区带、TCP、WorkObject 是否合理

这一步是很多新人最容易只盯着看的部分,但它只是整条链中的一个环节。

6. 工艺设备执行

  • 如果站内还有锁螺丝机、压机、点胶机、焊接头、条码枪等设备,这些设备会继续执行对应工艺
  • 工艺设备完成后,再把完成信号、扭矩值、压力值、曲线结果或 OK/NG 回传

这一步常决定:

  • 现场节拍够不够
  • 最终良率稳不稳定

7. 检测结果返回

  • 视觉、传感器、工艺控制器或测试设备把结果回传给 PLC / 上位机
  • 系统判断这一件产品是放行、返修、重试还是报警停机

这里常见的不是单纯“识别错了”,而是:

  • 结果怎么定义
  • NG 怎么分级
  • 是允许重试一次,还是必须直接拦截

8. PLC 放行或报警

  • 如果所有条件满足,PLC 放行当前循环并允许进入下一件
  • 如果某一步失败,PLC 会触发报警、停机、等待人工处理或进入异常恢复流程

对工业现场来说,真正重要的不只是“正常流程能跑通”,而是:

  • 出问题时系统是否能安全、可恢复地停下来

9. 操作员取件与异常处理

  • 操作员取走 OK 件,隔离 NG 件,补充来料,或按照 SOP 处理异常
  • 工程师在这时会看日志、报警、点位、时序和数据记录,判断下一轮该改什么

这就是为什么现场调试看起来总是在循环:

  • 观察一次完整流程
  • 发现最主要的问题
  • 只改最关键的一两个点
  • 再跑下一循环验证

10. 为什么大家总是在“反复跑循环”

因为工业调试不是一次性把所有问题想清楚,而是通过大量单循环和连续循环,把下面这些问题一点点暴露出来:

  • 点位准不准
  • 节拍够不够
  • 互锁对不对
  • 标定稳不稳
  • 工艺窗口宽不宽
  • 异常能不能恢复

所以对新人来说,现场一天最核心的事情不是“写了多少代码”,而是:

  • 让这条链路更稳定一点
  • 让一次循环比上一次更可控一点
  • 让问题被更清楚地定位出来

如果你把现场调试先看成“多设备围绕单循环反复闭环验证”的过程,就会比把它看成“大家在零散修 bug”更容易理解。


20. 附录:Omniverse / Isaac 工程师参与 ABB 项目的推荐分工地图

这一节的目标,是把“谁主导、谁协同、谁不适合拍板”说清楚。这里的 Omniverse / Isaac 工程师,主要指使用 NVIDIA Omniverse、Isaac、合成数据、数字孪生和边缘 AI 套件的工程师。最重要的不是在每个阶段都强行参与,而是知道在哪些环节能提供高价值增量,在哪些环节必须尊重工业工程主责。

阅读方式建议如下:

  • 主导:该角色对该阶段结果负责,拥有主要决策权
  • 协同:该角色参与支持、提供输入、承担部分专题任务
  • 审阅:该角色主要做结果校核、风险提示、验收配合
  • 不主导:该角色可以了解,但不应作为拍板责任人

20.1 分工矩阵总览

项目阶段Omniverse / Isaac 工程师机器人工程师PLC/电气工程师机械工程师工艺工程师质量工程师
需求澄清与立项协同协同协同协同主导协同
工艺拆解与节拍建模协同协同协同协同主导协同
方案设计与设备选型协同协同协同主导主导审阅
离线仿真与虚拟调试协同主导协同协同协同审阅
机械、电气、气路与安全设计不主导协同主导主导协同审阅
软件架构与程序开发协同主导主导审阅协同审阅
标定、示教与工艺调试协同主导协同协同主导协同
异常处理与恢复设计协同协同主导审阅协同协同
FAT / SAT / 试产验收协同协同协同协同协同主导
量产运维与持续优化协同协同协同协同主导主导

这个矩阵表达的是工程常态,而不是绝对规则。不同公司组织结构不同,但对于 ABB 3C 项目来说,有几个边界最好不要打破:

  • 机械和工艺问题,优先由机械/工艺主导
  • 运动、标定和机器人程序问题,优先由机器人工程师主导
  • 安全、互锁、站级时序问题,优先由 PLC/电气主导
  • 放行、质量和验收问题,质量工程师必须有实权
  • Omniverse / Isaac 工程师更适合做增量价值,而不是替代基础工业职责

20.2 Omniverse / Isaac 工程师的推荐定位

在 ABB 项目中,使用 Omniverse / Isaac 工作流的工程师最适合被定义成下面三类角色之一:

角色 A:智能视觉与检测支撑

适合承担:

  • 视觉识别鲁棒性提升
  • 外观检测模型
  • 来料姿态估计
  • 异常样本管理和模型迭代

不适合承担:

  • 机器人运动主程序
  • 安全链路
  • 治具定位闭环

角色 B:数据平台与知识系统支撑

适合承担:

  • 设备日志结构化
  • 调试知识库
  • 异常检索和辅助诊断
  • 追溯与数据联通
  • 节拍和停机分析系统

不适合承担:

  • 现场工艺放行
  • 安全恢复拍板
  • 节拍承诺拍板

角色 C:辅助决策与运维分析支撑

适合承担:

  • 报警归因
  • 维护预测
  • 参数变化趋势分析
  • 质量风险预警

不适合承担:

  • 直接闭环控制机器人
  • 直接自动修改现场关键工艺参数
  • 未经验证替代工程师处置异常

20.3 按阶段看,Omniverse / Isaac 工程师最值得投入的任务

阶段 1:需求澄清

高价值任务:

  • 将客户需求整理成结构化需求表
  • 归档类似历史项目案例
  • 提前识别未来数据采集和追溯需求

低价值或高风险任务:

  • 直接承诺“这个一定能用 AI 解决”

阶段 2:工艺拆解与节拍建模

高价值任务:

  • 做历史节拍和不良数据统计
  • 帮助建立异常分类标签体系
  • 找出更适合引入视觉或数据分析的工步

低价值或高风险任务:

  • 脱离现场直接用算法推断节拍可行性

阶段 3:方案设计与设备选型

高价值任务:

  • 设计未来数据流和接口
  • 评估视觉工位的算力、部署和延迟
  • 识别后续算法上线需要的传感器和日志

低价值或高风险任务:

  • 把“多上几个模型”当成对治具不足的补救方案

阶段 4:离线仿真

高价值任务:

  • 提供仿真数据采集、标注和分析工具
  • 比较仿真与现场数据分布差异
  • 为视觉与异常模型积累数据集

低价值或高风险任务:

  • 仅凭仿真成功就判断现场必然可交付

阶段 5:机械、电气、安全设计

高价值任务:

  • 参与日志点、追溯点、监控点定义
  • 协助信号命名、事件模型和数据结构设计

低价值或高风险任务:

  • 越过安全评审直接加传感器、加控制路径、改控制逻辑

阶段 6:软件与程序开发

高价值任务:

  • 做上位数据层、分析工具、视觉模块、知识系统
  • 建立日志、报警、配方、程序版本之间的关联关系

低价值或高风险任务:

  • 让 AI 推理链路成为机器人实时控制必经路径

阶段 7:标定与调试

高价值任务:

  • 整理调试数据
  • 分析误检、漏检、节拍抖动和异常序列
  • 建立现场问题知识库

低价值或高风险任务:

  • 在 TCP / WorkObject 错误时,试图用算法补偿坐标错误

阶段 8:异常与恢复

高价值任务:

  • 做报警聚类、故障归因、辅助诊断
  • 帮助维护人员更快检索相似问题

低价值或高风险任务:

  • 让黑盒模型决定是否屏蔽报警或继续生产

阶段 9:验收与试产

高价值任务:

  • 自动生成试产分析报表
  • 汇总报警、良率、节拍和停机统计
  • 校验追溯链路完整性

低价值或高风险任务:

  • 在验收前夕临时上线未经稳定验证的 AI 功能

阶段 10:量产与优化

高价值任务:

  • 做长期趋势分析
  • 做报警 Top 根因分析
  • 做维护预测和知识检索
  • 连接 MES、质量和设备数据

低价值或高风险任务:

  • 没有工程验证就自动下发调参策略

20.4 Omniverse / Isaac 工程师与各类工业角色的协作接口

与机器人工程师协作时

Omniverse / Isaac 工程师应重点提供:

  • 视觉输出定义
  • 数据接口定义
  • 日志分析工具
  • 异常统计结果

不要要求机器人工程师接受:

  • 不可解释的实时控制输出
  • 没有失效降级的视觉结果
  • 影响安全和节拍的实验性模块

与 PLC/电气工程师协作时

Omniverse / Isaac 工程师应重点提供:

  • 稳定的输入输出协议
  • 明确的超时策略
  • 明确的失败返回值
  • 事件和报警码映射

不要做的事:

  • 使用模糊状态描述
  • 使用不稳定延迟链路承载关键互锁
  • 把复杂模型输出直接当作安全信号

与机械/工艺工程师协作时

Omniverse / Isaac 工程师应重点理解:

  • 治具基准
  • 来料公差
  • 工艺窗口
  • 产品外观与质量约束

不要做的事:

  • 在不了解机械和工艺约束时,反向要求现场配合算法
  • 让现场为了迁就模型而破坏已有稳定工艺

与质量工程师协作时

Omniverse / Isaac 工程师应重点输出:

  • 可追溯的数据结果
  • 可解释的检测结论
  • 误检和漏检统计
  • 版本对比结果

不要做的事:

  • 只给模型指标,不给产线质量指标映射
  • 把验证责任转移给质量部门兜底

20.5 给团队负责人的落地建议

如果你的团队中有 Omniverse / Isaac 工程师参与 ABB 项目,推荐采用下面的组织方式:

  1. 先把工业主责固定下来,不要让 Omniverse / Isaac 工程师天然漂移成“什么都懂的人”。
  2. 给他们明确专题目标,例如高保真仿真、合成数据、视觉鲁棒性、异常分析、知识系统或数据平台。
  3. 要求 AI / 仿真模块有清晰边界、明确失败输出和降级策略。
  4. 不把 AI 模块设计成安全链路或唯一控制链路。
  5. 验收时把 AI 功能单独列项,不与基础设备交付混淆。

这样做的结果是:

  • 工业主链路保持可控
  • AI 增量价值更容易落地
  • 现场团队更容易接受
  • 后续维护成本更低

21. 附录:NVIDIA Cosmos 在 ABB 项目中的正确位置

这一节是专门补给使用 Omniverse / Isaac 工作流的工程师的。NVIDIA Cosmos 不应被理解为传统 ABB 交付流程中的某个现场调试环节,也不应被理解成机器人控制器、PLC 或 RobotStudio 的替代物。更准确地说,它属于:

  • 物理 AI 的基础模型层
  • 世界模型与视频世界生成层
  • 合成数据和场景扩展层
  • 仿真到现实之间的数据和模型桥接层

基于 NVIDIA 官方页面,Cosmos 的核心组成可以概括为:

  • Cosmos Predict:世界生成模型,可从文本、图像或视频生成预测性视频世界
  • Cosmos Transfer:把仿真内容转成更逼真的视觉域,用于加速合成数据生成
  • Cosmos Reason:面向物理世界的视觉语言推理模型
  • Cosmos Curator:大规模传感器数据过滤、标注、去重
  • Cosmos Dataset Search:场景检索
  • Cosmos Evaluator:生成视频输出评估

21.1 Cosmos 不属于传统 ABB 交付主链路

一个传统 ABB 3C 项目的主链路仍然是:

  1. 需求澄清
  2. 工艺拆解
  3. 方案设计
  4. 离线仿真
  5. 机械电气设计
  6. RAPID / PLC / 视觉开发
  7. 标定调试
  8. FAT / SAT
  9. 试产
  10. 量产运维

Cosmos 一般不直接出现在以上任一现场交付步骤的“必经门槛”中。也就是说:

  • 没有 Cosmos,传统 ABB 项目仍然可以完成交付
  • 但如果要做更强的物理 AI、世界模型、合成数据和 sim-to-real 工作流,Cosmos 可以成为上层能力增强工具

更合适的理解方式是:

  • ABB 主链路解决“设备如何被交付并稳定生产”
  • Cosmos 解决“如何更高效地产生物理世界数据、训练世界模型、扩展极端场景并增强物理 AI”

21.2 Cosmos 在 ABB 项目中的推荐放置位置

如果把整个体系分层,可以这样看:

第 1 层:真实工业交付层

  • ABB 机器人本体
  • IRC5 / OmniCore
  • RAPID
  • PLC / 电气 / 安全
  • 工艺设备
  • FAT / SAT / 试产

这一层决定设备能不能安全、稳定、合规地运行。

第 2 层:工业仿真与数字化工程层

  • RobotStudio
  • Omniverse / Isaac Sim
  • 工站 USD 场景
  • 传感器建模
  • 数字孪生场景

这一层决定是否能高保真地表达、验证和扩展真实产线场景。

第 3 层:物理 AI / 世界模型层

  • Cosmos Predict
  • Cosmos Transfer
  • Cosmos Reason
  • Cosmos Curator / Dataset Search / Evaluator

这一层更像是“生成、理解、筛选和评估物理世界数据与视频世界”的基础设施。

所以,Cosmos 更接近:

  • RobotStudio 之前的前置认知工具,不完全准确
  • RobotStudio 之后的增强层,也不完全准确
  • 最准确的说法是:它横跨仿真、数据生成、模型训练和评估,是传统 ABB 流程之外的一层物理 AI 平台

21.3 对 3C 组装最有价值的 Cosmos 用法

在 3C 场景中,Cosmos 的价值不一定体现在“让机器人直接更会动”,而更可能体现在下面这些地方:

1. 扩展视觉数据

3C 装配里经常有这些问题:

  • 缺陷样本少
  • 光照变化大
  • 外观差异细微
  • 来料姿态分布覆盖不足

Cosmos Transfer 和相关工作流更适合用来:

  • 扩展不同光照、背景、角度和材质条件下的数据
  • 构造更丰富的视觉训练与验证集
  • 为缺件、偏位、污染、外观瑕疵等情况补充样本

2. 扩展边缘工况和长尾场景

真实产线里最难收集的,常常不是正常样本,而是:

  • 少见异常
  • 极端光照
  • 反光与遮挡
  • 治具脏污后的视觉变化
  • 多相机视角不一致

Cosmos Predict 更适合用来帮助生成和放大这类场景,用于训练和评估,而不是直接替代现场打样。

3. 支持物理 AI 训练前的数据准备

如果未来不是只做单点视觉,而是做:

  • 机器人 VLA
  • 物理场景理解
  • 视频问答与异常解释
  • 更高层的机器人世界模型

那么 Cosmos Reason、Curator、Dataset Search 这类能力会更有意义,因为它们更接近“数据和世界理解基础设施”。

21.4 Cosmos 与 RobotStudio、Omniverse、Isaac Sim 的关系

这几个东西容易混淆,建议这样区分:

RobotStudio

ABB 官方离线编程与仿真环境,核心目标是机器人可达性、轨迹、节拍、RAPID 开发和虚拟调试。

Omniverse / Isaac Sim

更偏通用 3D / 物理仿真 / 传感器仿真 / 高保真数字孪生平台,适合构建更丰富的工站环境和 AI 工作流。

Cosmos

更偏世界基础模型、视频世界生成、合成数据增强、数据筛选和物理 AI 评估,不是传统意义上的机器人离线编程工具。

可以简单记成:

  • RobotStudio 更接近机器人交付工具
  • Omniverse / Isaac Sim 更接近高保真仿真与数字孪生工具
  • Cosmos 更接近物理 AI 数据与世界模型工具

21.5 Cosmos 最适合插入 ABB 项目的哪些阶段

虽然 Cosmos 不属于传统 ABB 主流程,但它可以插入若干前置或侧向增强阶段:

在方案阶段之前

可用于:

  • 提前构思未来需要的场景覆盖范围
  • 评估是否存在长尾视觉数据不足问题
  • 规划合成数据和真实数据的配比策略

在离线仿真阶段并行

可用于:

  • 辅助扩展场景多样性
  • 准备训练和验证数据
  • 做仿真视频到更真实视觉域的转换

在视觉开发阶段并行

可用于:

  • 增强检测模型训练数据
  • 建立更强的验证集
  • 做误检漏检场景回放和补样

在量产阶段之后

可用于:

  • 收集现场真实失败样本
  • 做数据筛选与检索
  • 迭代新一版视觉或物理 AI 模型

21.6 Cosmos 不应该被用来替代什么

这点非常重要。Cosmos 很强,但在 ABB 现场项目里,它不应该被用来替代:

  • TCP 标定
  • WorkObject 标定
  • 治具精度
  • 工艺窗口验证
  • PLC 安全互锁
  • FAT / SAT
  • 试产验证

如果这些基础工程问题没有解决,Cosmos 也不能把项目直接变成可量产系统。

21.7 对 Omniverse / Isaac 工程师最实用的理解方式

如果你是从 NVIDIA Cosmos 进入 ABB 项目的,建议用下面这个心智模型:

  • ABB 主流程 决定设备能不能交付
  • RobotStudio 决定机器人动作能不能提前被验证
  • Omniverse / Isaac Sim 决定数字场景能不能更真实、更丰富
  • Cosmos 决定物理 AI 的数据生成、世界建模和评估能不能规模化

所以 Cosmos 的正确定位不是“现场必经步骤”,而是:

一个帮助 ABB 项目从传统自动化走向更强物理 AI 和世界模型能力的上层加速器。


22. 附录:RobotStudio、Omniverse、Isaac Sim、Cosmos 的能力边界对照表

这个附录的目标,是帮助第一次进入 ABB 项目的 Omniverse / Isaac 工程师快速建立工具分工认知。很多团队在实际推进中会混淆这四类工具,结果要么重复建设,要么把不该承担的任务硬塞给某个平台。

22.1 一句话定位

  • RobotStudio:ABB 机器人交付与离线编程工具
  • Omniverse:高保真数字场景与协同仿真平台
  • Isaac Sim:偏机器人与传感器的仿真执行环境
  • Cosmos:物理 AI 世界模型、合成数据和评估基础设施

22.2 能力边界总表

维度RobotStudioOmniverseIsaac SimCosmos
核心定位ABB 机器人离线编程与虚拟调试通用数字孪生与 3D 协同平台机器人与传感器仿真环境物理 AI 世界模型与数据层
最强场景RAPID 开发、轨迹验证、节拍验证高保真场景组织、USD 协同、场景集成机器人任务仿真、传感器仿真、算法联调视频世界生成、合成数据增强、数据筛选、评估
面向对象机器人工程师仿真/数字孪生工程师机器人/仿真/感知工程师Omniverse / Isaac / 物理 AI 工程师
直接服务对象ABB 真机交付数字场景资产与协同流程仿真机器人系统AI 训练、世界模型和评估体系
是否直接面向真机 RAPID
是否适合做 PLC / 安全交付主链路否,配合但不替代
是否适合做高保真传感器仿真一般很强不直接负责
是否适合做合成数据很强
是否适合做世界模型/视频生成很强
是否可替代 FAT / SAT

22.3 按输入、输出和交付责任理解

工具典型输入典型输出交付责任
RobotStudio机器人型号、工装模型、点位、轨迹需求RAPID 框架、轨迹、可达性分析、节拍结果支撑机器人交付
OmniverseUSD 场景、3D 资产、传感器与环境定义高保真数字场景、可视化协同环境支撑数字孪生与仿真协同
Isaac Sim机器人模型、任务逻辑、传感器模型、环境仿真执行结果、传感器数据、算法联调环境支撑机器人仿真和感知验证
Cosmos文本、图像、视频、仿真数据、真实采集数据世界生成结果、增强数据、过滤结果、评估结果支撑物理 AI 数据与模型体系

这里最重要的一点是:

  • RobotStudio 更偏“交付现场机器人”
  • Omniverse / Isaac Sim 更偏“构建和运行高保真数字环境”
  • Cosmos 更偏“生成、筛选、理解和评估物理世界数据”

22.4 按 ABB 项目阶段对照

项目阶段RobotStudioOmniverseIsaac SimCosmos
需求澄清
工艺拆解
方案设计
离线仿真协同
软件开发协同
标定调试
FAT / SAT
试产优化
长尾数据补充很强
世界模型训练很强

可以这样理解:

  • 机器人交付越近,越靠近 RobotStudio
  • 数字场景和仿真越重,越靠近 Omniverse / Isaac Sim
  • 物理 AI 和世界模型越重,越靠近 Cosmos

22.5 什么时候优先用 RobotStudio

优先用 RobotStudio 的情况:

  • 需要做 ABB 机器人轨迹验证
  • 需要开发 RAPID 程序框架
  • 需要验证可达性、姿态、节拍
  • 需要做 ABB 现场调试前的虚拟准备

不应指望它解决的事情:

  • 大规模合成数据生成
  • 世界模型训练
  • 长尾视觉场景扩展

22.6 什么时候优先用 Omniverse / Isaac Sim

优先用 Omniverse / Isaac Sim 的情况:

  • 需要更高保真的工站场景
  • 需要传感器仿真
  • 需要跨机器人、视觉、环境的一体化仿真
  • 需要和 AI 工作流打通
  • 需要用 USD 统一场景资产

不应指望它直接替代的事情:

  • 真机 RAPID 交付
  • PLC 安全回路设计
  • FAT / SAT 验收本身

22.7 什么时候优先用 Cosmos

优先用 Cosmos 的情况:

  • 需要扩展长尾场景数据
  • 需要做视频世界生成和变体扩展
  • 需要做 sim-to-real 视觉域增强
  • 需要构建物理 AI 的训练与评估链路
  • 需要做世界模型相关研发

不应指望它直接替代的事情:

  • 机器人示教
  • TCP / WorkObject 标定
  • 治具精度和工艺窗口验证
  • 工业主链路交付

22.8 对 Omniverse / Isaac 工程师最实用的工具选型建议

如果你进入的是一个真实 ABB 3C 项目,推荐按下面方式切入:

  1. 先看 RobotStudio 资产,理解机器人交付边界。
  2. 再看 Omniverse / Isaac Sim 场景,理解高保真仿真边界。
  3. 最后再看 Cosmos,判断哪些问题值得上升到世界模型、合成数据和评估层。

不要反过来做:

  • 不要先上 Cosmos,再回头找机器人轨迹怎么交付
  • 不要先做世界模型,再补治具和标定
  • 不要把工具先进性误当成交付成熟度

22.9 给项目负责人的落地建议

如果团队同时使用这四类工具,建议按下面方式分工:

  • RobotStudio 由机器人工程师主责
  • Omniverse / Isaac Sim 由仿真/机器人/感知联合主责
  • Cosmos 由 Omniverse / Isaac 工程师或物理 AI 工程师主责
  • 现场 FAT / SAT、工艺、质量和安全仍由传统工业角色主责

这样做的好处是:

  • 工具职责清晰
  • 不容易重复建设
  • 不会把世界模型工具误用成现场交付工具
  • 团队协作边界更清楚

23. 附录:智能体开发工程师在 ABB + NVIDIA 柔性制造研究中的角色定位

这里所说的“智能体开发工程师”,主要指具备以下能力的人:

  • 大语言模型智能体开发
  • 工具调用与任务编排
  • VLA 模型训练与评估
  • 世界模型 / 任务模型设计
  • 和 Omniverse / Isaac / Cosmos 工作流协同

这类角色和传统机器人工程师、Omniverse / Isaac 工程师不同。更准确地说,他们最适合站在:

  • 任务层
  • 技能层
  • 世界模型层
  • 研究验证层

而不是站在:

  • 机器人底层运动层
  • PLC 安全控制层
  • 工艺窗口拍板层

23.1 最适合承担的三类任务

任务一:任务与技能抽象

适合做:

  • 自然语言任务到结构化任务图
  • 技能图 / 行为树 / 状态机抽象
  • 任务级失败恢复图
  • 工位级任务接口设计

任务二:仿真中的 Agent / VLA 验证

适合做:

  • 仿真任务执行
  • 高层规划策略
  • VLA 训练数据组织
  • 任务回放与评估
  • 模型对比验证

任务三:真实产线数据回流后的研究闭环

适合做:

  • 异常恢复策略研究
  • 换型辅助策略研究
  • 知识检索 Agent
  • 运维辅助 Agent
  • 任务级泛化能力研究

23.2 不适合承担的任务

不适合主导:

  • TCP / WorkObject 标定
  • RAPID 底层运动逻辑
  • PLC 安全互锁
  • 治具精度确认
  • 工艺窗口最终确认
  • FAT / SAT 放行

原因不是“技术上绝对做不了”,而是这些属于高风险工业主责,错误成本远高于研究收益。

23.3 推荐实施路径

建议按下面顺序推进:

  1. 先理解工艺和技能边界。
  2. 再把工艺动作抽象成任务图和技能图。
  3. 再在 Omniverse / Isaac 中建立高层任务验证环境。
  4. 再采集真实调试和试产数据,做 VLA / Agent 训练与评估。
  5. 最后才考虑受限场景下的小范围真机研究。

最忌讳的推进方式是:

  • 先训一个大模型,再倒推现场该怎么配合
  • 先做自然语言控制,再补工艺边界
  • 先尝试让智能体接管真机,再补降级和回退策略

23.4 一句话总结

如果目标是“ABB 机械臂 + NVIDIA 做柔性制造探索研究”,那么智能体开发工程师最适合扮演的角色是:

建立工业任务与物理 AI 之间的桥梁,而不是替代传统 ABB 工业交付主链路。


24. 附录:传统 ABB 工程师、Omniverse / Isaac 工程师、智能体开发工程师的阶段对照矩阵

这个附录适合拿去做团队分工讨论。它不再只讲某一类角色,而是把三类角色按传统 ABB 实施阶段并排对照,便于回答三个问题:

  • 这个阶段谁主责
  • 其他角色如何支持
  • 哪些事情不能跨界替代

24.1 三类角色的一句话定义

  • 传统 ABB 工程师:负责真实设备交付、机器人动作、PLC 时序、安全、工艺和验收
  • Omniverse / Isaac 工程师:负责高保真仿真、数字孪生、传感器仿真、合成数据与 sim-to-real 支撑
  • 智能体开发工程师:负责任务抽象、技能编排、Agent / VLA 训练、任务级恢复和研究闭环

24.2 阶段总对照矩阵

阶段传统 ABB 工程师主作用Omniverse / Isaac 工程师主作用智能体开发工程师主作用
需求澄清冻结工艺边界、节拍、验收口径识别仿真与数据需求定义研究问题和任务目标
工艺拆解拆工步、定义窗口和失败模式建立工步数据模型与仿真优先级抽象任务图、技能图、状态图
方案设计选型、布局、治具、安全、通信定义数字孪生与传感器需求定义任务层和高层接口边界
离线仿真验证可达性、轨迹、节拍构建高保真场景和传感器仿真构建 Agent / VLA 任务验证环境
机械电气设计完成设备和控制基础设计预留数据采集与仿真接口预留任务状态和事件接口
软件开发RAPID、PLC、视觉、HMI 主链路开发建立数据层、日志层和仿真接口建立任务编排层、Agent 接口和降级策略
标定调试标定、示教、联机、首件验证采集真实反馈、分析 sim-to-real 差异采集任务级数据、分析策略失败点
异常恢复设计报警、恢复和人工介入规则做异常聚类和辅助诊断做任务级恢复策略研究
FAT / SAT / 试产负责验收、放行、现场闭环整理真实数据、验证追溯质量用真实数据评估 Agent / VLA 增益
量产优化维护、改善、换型、质量闭环做长期数据回流与仿真更新做长期任务优化和知识 Agent

24.3 每一类角色最应该交付什么

角色最核心交付物
传统 ABB 工程师可运行、可验收、可量产的设备系统
Omniverse / Isaac 工程师可复用的高保真场景、传感器仿真、数据闭环和合成数据能力
智能体开发工程师可训练、可评估、可回放的任务层、技能层和 Agent / VLA 研究能力

24.4 三类角色最常见的错位

传统 ABB 工程师常见错位

  • 把研究原型当成交付主链路
  • 低估仿真和数据资产的长期价值

Omniverse / Isaac 工程师常见错位

  • 把仿真成功当作交付成功
  • 用合成数据覆盖工艺和治具基础问题

智能体开发工程师常见错位

  • 把高层任务研究直接下放到真机主链路
  • 在没有工业状态接口和降级机制时强推 Agent

24.5 一个更实用的分工原则

可以把三类角色的关系理解成三层:

第 1 层:工业交付层

  • 由传统 ABB 工程师主责
  • 目标是设备真正交付、稳定运行、通过验收

第 2 层:仿真与数据层

  • 由 Omniverse / Isaac 工程师主责
  • 目标是提供高保真场景、仿真数据和 sim-to-real 支撑

第 3 层:任务智能层

  • 由智能体开发工程师主责
  • 目标是把任务抽象、技能编排、Agent / VLA 与真实系统连接起来

如果这个顺序颠倒,项目通常会出现两类问题:

  • 研究很先进,但设备根本交付不了
  • 设备能交付,但研究无法形成长期闭环

24.6 给团队负责人的建议

如果团队里同时有这三类角色,推荐这样组织:

  1. 让传统 ABB 工程师对交付主链路负责。
  2. 让 Omniverse / Isaac 工程师对仿真和数据闭环负责。
  3. 让智能体开发工程师对任务层和 Agent / VLA 研究负责。
  4. 三类角色通过统一的数据接口和状态接口协同,而不是互相替代。

最理想的结果不是“谁都能做所有事”,而是:

工业主链路稳定,仿真闭环完整,任务智能可持续迭代。


25. 附录:柔性制造探索项目的最小可行实施路径(MVP)

这一节不是写传统设备交付,而是写“如果你想做 ABB + NVIDIA + 智能体 / VLA 的柔性制造探索研究,最小可行路径应该怎么走”。目标不是一步到位做完整柔性产线,而是先做出:

  • 有明确研究问题
  • 有可重复验证环境
  • 有真实数据回流
  • 有明确边界和降级策略

的第一版系统。

25.1 先定义一个足够小的问题

最小可行研究问题应同时满足:

  • 有明确工业价值
  • 有清晰输入输出
  • 可以在单工站或单任务上验证
  • 不依赖全线改造

适合的 MVP 问题示例:

  • 多机种来料的自适应抓取
  • 单站换型辅助
  • 异常恢复建议 Agent
  • 工位级自然语言任务到技能编排
  • 基于视觉与状态的任务级失败恢复

不适合作为第一步的问题:

  • 全产线通用智能体
  • 完全自主的端到端柔性装配
  • 直接替代 PLC / RAPID 的统一智能控制

25.2 MVP 推荐分成五步

第一步:选一个单工站、单任务、单目标

推荐条件:

  • 工站工艺相对清晰
  • 数据采集相对容易
  • 失败模式可观察
  • 不需要先解决大量机械问题

目标:

  • 把问题收敛成一个可验证的任务

第二步:把任务抽象成技能图和状态图

需要输出:

  • 任务定义
  • 技能集合
  • 成功条件
  • 失败条件
  • 人工接管条件

目标:

  • 先把任务结构弄清楚,再谈模型

第三步:先在仿真里做闭环

需要具备:

  • RobotStudio 的基础动作验证
  • Omniverse / Isaac 的高保真任务环境
  • 任务回放能力
  • 日志与状态记录

目标:

  • 在不上真机的情况下先验证任务逻辑、状态表示和失败处理

第四步:用真实调试和试产数据做回流

需要采集:

  • 任务执行轨迹
  • 失败样本
  • 视觉结果
  • 报警序列
  • 人工恢复过程

目标:

  • 建立真实世界数据基线
  • 校正仿真偏差

第五步:只在受限范围做真机研究验证

推荐方式:

  • 先做建议式 Agent
  • 再做受限任务编排
  • 最后才做有限闭环自动执行

目标:

  • 保证工业主链路稳定的前提下验证研究价值

25.3 MVP 阶段的推荐交付物

第一版项目至少应交付:

  • 单工站任务定义文档
  • 技能图 / 状态图
  • Omniverse / Isaac 仿真场景
  • 训练 / 验证数据集说明
  • 真实调试数据回流机制
  • Agent / VLA 评估指标
  • 降级与人工接管规则

如果这些没有形成,项目很容易停留在:

  • 一段 demo 视频
  • 一次性成功案例
  • 无法复现的实验结果

25.4 MVP 阶段最重要的评估指标

不要一开始只盯模型 loss 或任务演示效果。更实用的指标是:

  • 任务成功率
  • 失败可恢复率
  • 新机种泛化能力
  • 仿真到真实迁移误差
  • 人工介入频次
  • 降级后的系统稳定性

如果是 Agent,更要看:

  • 任务规划是否稳定
  • 状态理解是否可靠
  • 工具调用是否可控
  • 失败时是否能回退

如果是 VLA,更要看:

  • 观测到动作的泛化能力
  • 长尾场景下的稳健性
  • 和规则系统相比是否带来实际增益

25.5 MVP 阶段最忌讳的三件事

1. 一开始就做端到端大一统

问题:

  • 范围过大
  • 无法隔离失败原因
  • 很难形成真实闭环

2. 把研究系统直接挂到现场主链路

问题:

  • 风险不可控
  • 一旦失败很难界定责任
  • 团队会快速失去现场信任

3. 没有真实数据回流

问题:

  • 仿真永远无法校正
  • 模型优化没有真实目标
  • 研究结果难以持续演进

25.6 一个推荐的研究推进节奏

建议按下面节奏推进:

  1. 用 2-4 周完成任务选择和任务抽象。
  2. 用 4-8 周完成仿真闭环和数据接口。
  3. 用 4-8 周完成第一版 Agent / VLA 验证。
  4. 用 2-6 周接入真实调试数据。
  5. 用受限真机实验验证是否具备继续扩大范围的价值。

这个节奏不是固定工期,而是提醒你:

  • 先建立可重复环境
  • 再建立数据闭环
  • 再做真机研究

25.7 一句话结论

柔性制造探索项目的最小可行路径,不是“先做一个很强的模型”,而是:

先选一个小而真实的问题,先把任务结构、仿真闭环和真实数据回流做好,再逐步把 Agent / VLA 推向受限真机验证。


26. 附录:首个柔性制造研究试点项目模板

这一节给真正准备启动项目的人使用。它不是概念说明,而是一份可以直接复制出来改写的项目模板。建议第一期试点只针对:

  • 单工站
  • 单任务类型
  • 单类研究目标
  • 受限真机验证

不要一开始就定义成“整线柔性制造平台”。

26.1 项目基本信息

项目名称

示例:

  • ABB 机械臂 3C 柔性抓取研究试点
  • 基于 Omniverse / Isaac / Agent 的换型辅助试点
  • 基于 VLA 的单工站异常恢复研究

项目周期

建议首期:

  • 8 周
  • 或 12 周

项目范围

必须明确:

  • 单工站还是双工站
  • 单机种还是多机种
  • 单任务还是多任务
  • 仿真验证还是受限真机验证

26.2 项目目标模板

建议项目目标写成下面这种格式:

业务目标

  • 在不影响现有交付主链路的前提下,验证柔性制造研究价值

技术目标

  • 完成单工站任务图与技能图抽象
  • 完成 Omniverse / Isaac 高保真任务场景
  • 完成第一版 Agent / VLA 离线验证
  • 完成真实数据回流机制
  • 完成受限真机实验一次

边界目标

  • 不替代 RAPID / PLC 主链路
  • 不介入安全控制回路
  • 不把研究原型纳入正式客户验收项

26.3 试点任务选择模板

建议按下面模板选任务:

候选任务

  • 多机种抓取
  • 单站换型辅助
  • 异常恢复建议
  • 自然语言任务下发到技能编排

筛选标准

  • 工艺边界清晰
  • 任务可重复
  • 失败模式可观察
  • 数据采集成本可接受
  • 不依赖整线协同

最终试点任务

示例写法:

  • 在单上料工站中,针对 3 种相似外形但摆放姿态不同的来料,验证基于 Omniverse / Isaac 场景与 VLA 的抓取策略泛化能力。

26.4 角色分工模板

建议至少明确以下角色:

传统 ABB 工程师

负责:

  • 机器人、PLC、视觉、工艺和现场交付主链路

Omniverse / Isaac 工程师

负责:

  • 高保真场景
  • 传感器仿真
  • 合成数据
  • sim-to-real 数据闭环

智能体开发工程师

负责:

  • 任务抽象
  • 技能编排
  • Agent / VLA 训练和评估
  • 任务级恢复逻辑研究

项目负责人

负责:

  • 范围控制
  • 里程碑
  • 风险收敛
  • 研究与交付边界管理

26.5 项目输入模板

项目启动前建议确认以下输入齐全:

  • 产品样件或 3D 数模
  • 工艺流程说明
  • 当前人工或自动节拍数据
  • 现有 RobotStudio 资产
  • 可用的 Omniverse / Isaac 场景资产
  • 相机与传感器清单
  • 现场日志和报警样本
  • 试点工站的访问权限与安全边界说明

26.6 项目输出模板

首期项目建议至少输出:

  • 任务定义文档
  • 技能图 / 状态图
  • 场景资产说明
  • 仿真验证报告
  • 数据集说明
  • Agent / VLA 基线结果
  • 真实数据回流报告
  • 风险与下一阶段建议

26.7 8 周版里程碑模板

第 1-2 周

  • 完成任务选择
  • 完成工艺边界确认
  • 完成任务图和技能图

第 3-4 周

  • 完成 Omniverse / Isaac 场景
  • 完成数据接口定义
  • 完成仿真回放和日志结构

第 5-6 周

  • 完成第一版 Agent / VLA 训练与离线验证
  • 输出第一版评估结果

第 7 周

  • 接入真实调试或试产数据
  • 做 sim-to-real 差异分析

第 8 周

  • 做受限真机研究实验
  • 输出试点总结和下一阶段建议

26.8 风险清单模板

首期项目至少要提前列出以下风险:

  • 工艺本身不稳定
  • 治具基准波动
  • 仿真场景与真实差异过大
  • 真实数据采集权限不足
  • 相机和传感器数据质量不够
  • Agent / VLA 缺乏可解释性
  • 研究原型误入交付主链路

26.9 验收指标模板

建议把试点项目的验收指标分成三层:

研究指标

  • 任务成功率
  • 泛化能力
  • 失败恢复覆盖率
  • sim-to-real 差异

工程指标

  • 数据闭环是否形成
  • 场景资产是否可复用
  • 日志和状态接口是否稳定

边界指标

  • 是否影响正式交付主链路
  • 是否破坏安全边界
  • 是否具备降级与人工接管机制

26.10 项目结束时必须回答的三个问题

试点结束后,团队必须回答:

  1. 这个方向是否真的比规则系统更有增量价值?
  2. 这个方向是否已经形成可持续的数据闭环?
  3. 这个方向是否值得扩大到更多机种、更多任务或更多工站?

如果这三个问题答不清,项目就还停留在研究演示阶段。

26.11 一句话总结

首个柔性制造研究试点项目,最重要的不是做出一个“看起来很强”的模型,而是做出一个:

范围可控、任务清晰、仿真可复现、数据可回流、真机可受限验证的最小系统。


27. 附录:从 LeRobot + SO-101 实验室验证走向 ABB 工业落地的演进步骤

这一节写给刚从实验室机器人、开源数据集和学习型控制进入工业项目的团队。

这一组 27-32 不是彼此孤立的附录,而是一个连续专题。推荐阅读顺序是:

  • 27:先看团队怎么从实验室走到工业验证
  • 28:再看动作控制视角如何切换到工业控制视角
  • 29:再看单机械臂工站的控制架构
  • 30:再看 RAPID 对应的最小 IO 表
  • 31:再看一次完整循环的时序图
  • 32:最后收口成“动作控制 vs 工业状态机”的认知对照

如果你是第一次进入工业控制语境,建议把 27-32 当成一个整体阅读,而不要分散跳读。

如果你不是顺着读,而是带着具体问题来查,可以直接按下面这个索引进入:

你的问题建议先看
我们从 LeRobot + SO-101 走向 ABB,应该先经历哪些阶段?27
为什么 ABB 现场不是直接发“6 维动作向量”?28.1-28.4
单机械臂工站里,PLC、机器人、夹具、相机分别是谁在控制?28.4-28.829
一段真实 RAPID 程序大概长什么样?28.3
RAPID 里的 didogi 到底是什么意思?30
单工站的一次完整循环在时间上怎么发生?31
为什么工业里总在强调状态、互锁和时序,而不只是动作?32
我作为智能体 / VLA 工程师,真正要完成的认知切换是什么?28.1131.732

这里默认的起点是:

  • 你已经能使用 LeRobot
  • 你了解或正在搭建 SO-101
  • 你具备模仿学习、VLA、Agent 或世界模型研究能力

但你还没有真正跨过下面这条线:

  • 从“实验室可跑”走到“工业可交付”

最重要的结论先说在前面:

LeRobot + SO-101 非常适合做任务抽象、数据采集、模仿学习、VLA 验证和研究原型;ABB 工业项目则要求你进一步补齐工艺、治具、安全、节拍、联机和验收体系。

27.1 阶段 0:实验室入门验证

目标

  • 先证明团队具备最基本的机器人数据采集和模仿学习能力

典型产出

  • 跟随示教或遥操作数据
  • 基础抓取、放置或桌面任务演示
  • 第一版 LeRobot 数据集

你应该验证的内容

  • 能不能稳定采集演示数据
  • 能不能复现基础任务
  • 数据格式是否统一
  • 模型训练与推理链路是否跑通

关键资源

这一阶段的边界

  • 不要把桌面抓取成功误认为已经具备工业落地能力

27.2 阶段 1:任务抽象与数据管线稳定化

目标

  • 把实验室任务抽象成可重复、可扩展的数据和任务结构

典型产出

  • 任务定义
  • 观测-动作结构
  • 技能图 / 状态图
  • 数据采集 SOP
  • 训练、验证、回放脚本

你应该验证的内容

  • 换一个人采数据,格式是否仍然一致
  • 换一个任务,管线是否还能复用
  • 任务成功/失败的定义是否明确
  • 是否已经具备最基本的数据版本管理

关键资源

这一阶段的边界

  • 不要急着换大模型,先把任务和数据结构稳定下来

27.3 阶段 2:从桌面机器人到“工业问题”的第一次映射

目标

  • 不再研究抽象抓取,而是开始映射真实工业问题

典型产出

  • 试点工站任务定义
  • 工艺工步拆解
  • 失败模式列表
  • MVP 研究问题

你应该验证的内容

  • 这个问题是否真有工业价值
  • 这个问题是否能在单工站内验证
  • 这个问题是否需要治具、视觉、PLC 状态支持
  • 这个问题是否适合 Agent / VLA,而不是更简单的规则

关键资源

  • 本文第 3-5 章:需求澄清、工艺拆解、方案设计
  • 本文第 25 章:柔性制造探索项目 MVP 路径
  • 本文第 26 章:试点项目模板

这一阶段的边界

  • 不要把“想研究什么”直接当成“现场需要什么”

27.4 阶段 3:引入 Omniverse / Isaac,建立高保真任务环境

目标

  • 从桌面机器人环境升级到更接近真实工站的数字环境

典型产出

  • 工站场景
  • 传感器仿真
  • 任务回放环境
  • sim-to-real 差异分析框架

你应该验证的内容

  • 仿真环境是否能表达真实工站关键约束
  • 是否能重放关键任务和失败场景
  • 是否能为视觉与 VLA 提供更有价值的数据

关键资源

  • 本文第 6 章:离线仿真与虚拟调试
  • 本文第 20-22 章:Omniverse / Isaac / Cosmos 分工
  • NVIDIA Omniverse / Isaac 官方资料

这一阶段的边界

  • 不要把高保真仿真看成真机替代品

27.5 阶段 4:把 ABB 工业约束引入研究系统

目标

  • 开始理解并接入真实工业控制和工艺约束

典型产出

  • 工业状态接口清单
  • 任务层与技能层接口
  • PLC / 机器人 / 视觉 / 上位机状态映射
  • 降级与人工接管机制

你应该验证的内容

  • 任务层是否能读到工业上下文,而不只是图像
  • 失败时是否能回退到规则系统
  • 智能体层是否不会破坏工业主链路

关键资源

  • 本文第 7-10 章:机械电气、安全、软件、异常恢复
  • 本文第 23-24 章:智能体开发工程师定位与分工矩阵

这一阶段的边界

  • 不要让 Agent / VLA 直接接管 PLC 安全、RAPID 底层运动或工艺放行

27.6 阶段 5:受限真机验证,而不是直接工业上线

目标

  • 在受控边界内验证研究系统是否有真实增量价值

典型产出

  • 受限真机实验报告
  • 任务成功率与失败恢复结果
  • 仿真与真实对照分析
  • 下一轮迭代建议

你应该验证的内容

  • 新方法是否比规则系统有明确增益
  • 增益是否来自真实泛化,而不是特定案例过拟合
  • 失败时是否可退回人工或规则系统

关键资源

  • 本文第 9-12 章:标定调试、异常、FAT/SAT、量产运维
  • 本文第 25-26 章:MVP 路径与试点项目模板

这一阶段的边界

  • 不把研究原型直接纳入客户正式交付项

27.7 阶段 6:从研究验证走向工业协同项目

目标

  • 把已经验证有价值的研究能力,嵌入真实工业协同流程

典型产出

  • 研究模块的角色定义
  • 数据回流机制
  • 版本管理策略
  • 现场使用边界
  • 后续扩大试点路线图

你应该验证的内容

  • 团队分工是否清晰
  • 工业主链路与研究链路是否分离
  • 现场是否能够接受该能力作为“辅助层”使用

关键资源

  • 本文第 24 章:三类角色矩阵
  • 本文第 26 章:试点项目模板

这一阶段的边界

  • 不要急于宣传“通用柔性制造平台”,先把一个小范围闭环做稳

27.8 每个阶段最关键的资源清单

阶段软件资源硬件资源现场/工程资源采购建议
LeRobot / SO-101 入门LeRobot 文档、训练脚本、回放工具SO-101 本体、舵机、电源、相机、桌面工装、开发电脑实验台、基础安全隔离、装配工具先买小而全的实验套件,不要一开始采购工业设备
数据与任务结构化数据格式、标注与版本管理、回放脚本采集相机、存储设备、实验工装、标定板数据采集 SOP、任务定义文档、版本规范优先补齐相机、存储和标定工具,而不是先上更大算力
工业问题映射任务图、失败模式记录、节拍分析模板产品样件、治具样件、末端执行器样件工艺流程、质量标准、失败样本、现场访问机会先采购样件、治具样件和基础工装,不急着买真机
高保真仿真Omniverse / Isaac、USD 资产、日志接口、场景管理工具仿真工作站、GPU、传感器模型所需标定件3D 数模、相机参数、工站布局、节拍约束这一阶段重点采购 GPU 工作站和场景建模资源
工业约束接入状态接口定义、任务接口、中间件、日志系统PLC 测试台、工业 IO 模块、工业交换机、相机、工控机IO 表、协议表、异常码、任务回执、联机约束先做小型联机测试台,再考虑整站采购
受限真机验证调试日志、评估脚本、回放和对比分析工具ABB 机器人、控制柜、示教器、治具、夹爪、相机、传感器、安全围栏标定记录、调试窗口、操作员配合、人工接管机制这是第一阶段真正重资产采购点,必须在问题收敛后再下单
工业协同落地数据闭环系统、知识库、版本管理、报表系统备件、维护工装、正式工位硬件、边缘计算设备量产数据、点检 SOP、维护机制、角色分工只有试点验证有效后,才扩大采购到正式工位和备件体系

如果你的目标是“按阶段推进采购”,建议把资源分成三批:

第一批:低风险实验资源

  • SO-101
  • 基础相机
  • 开发电脑或 GPU 工作站
  • 桌面工装
  • 标定板

目的:

  • 快速建立实验能力

第二批:仿真与联机资源

  • 更强 GPU 工作站
  • 工控机
  • 工业相机
  • IO 模块
  • 小型 PLC 测试台

目的:

  • 建立高保真仿真和工业状态接口能力

第三批:工业验证资源

  • ABB 机器人本体
  • 控制柜
  • 示教器
  • 工业治具
  • 正式末端执行器
  • 安全围栏和传感器
  • 备件

目的:

  • 做受限真机验证和后续工业协同落地

一个非常实用的原则是:

在研究问题、任务结构和仿真闭环没跑稳之前,不要过早进入重资产采购阶段。

27.9 一个新人最容易忽略的事实

从 LeRobot + SO-101 到 ABB,不是简单的“机械臂换大一点”,而是研究对象发生了变化:

  • 从桌面任务变成工业任务
  • 从单机演示变成系统协同
  • 从动作成功变成量产稳定
  • 从模型效果变成交付效果

27.10 一句话总结

从 LeRobot + SO-101 到 ABB 工业落地的正确演进,不是:

  • 先把模型做大,再找工业场景落地

而是:

先用 LeRobot + SO-101 学会任务、数据和策略研究,再逐步引入工艺、仿真、工业状态、受限真机验证,最后才进入真正的工业协同落地。

28. 附录:从 LeRobot 的动作控制视角到 ABB 工业控制视角

这一节专门写给已经做过 LeRobot + SO-101、但第一次接触 ABB 工业站的人。核心问题不是“ABB 能不能控制 6 个轴”,而是:

  • 在工业现场,控制抽象已经不是“我给每个关节发什么向量”
  • 而是“整站在什么前提下,按什么顺序,驱动哪些设备协同完成一个稳定循环”

28.1 在 LeRobot / SO-101 里你通常在控制什么

在实验室里,你经常会把机械臂看成:

  • 一个由若干关节组成的执行体
  • 你可以直接给它关节目标、动作向量、轨迹点或末端动作命令

如果是 6 自由度机械臂,最容易形成的直觉就是:

  • “驱动机械臂”本质上就是周期性发送一个 6 维向量,让 6 个电机按目标去动

这个理解在研究、模仿学习、策略学习、桌面机器人实验中是成立的,因为你通常直接面对:

  • 关节角
  • 末端位姿
  • 动作向量
  • 控制频率
  • 简化环境

也就是说,你的注意力主要放在:

  • 动作输出是否正确
  • 策略是否学会
  • 轨迹是否能执行

28.2 在 ABB 真实工业站里,通常不是这样工作的

在 ABB 工业站里,底层当然仍然存在每个轴的伺服控制,但这层通常已经被 ABB 控制器封装了。现场工程师一般不会直接周期性下发一个“6 维关节控制向量”去驱动真机。

更常见的是三层结构:

1. 伺服与轴控制层

  • ABB 控制器内部负责每个轴的电机控制、插补、加减速、轨迹平滑、轴协调、奇异点处理、保护逻辑
  • 这层相当于你在研究系统里经常自己关心的低层控制,但在工业里通常由控制器成体系地接管

2. 机器人运动指令层

  • 工程师写的是 RAPID 程序
  • 程序里描述的是:
    • 去哪个 robtarget
    • MoveJ 还是 MoveL
    • 速度多大
    • 区带多大
    • 什么时候开吸嘴、关夹具、等输入信号

也就是说,在这一层你不是直接控制“每个关节怎么转”,而是在告诉 ABB:

  • 去哪里
  • 怎么去
  • 到了以后做什么

3. 站级流程控制层

  • 这一层决定整站流程如何循环
  • 谁先动作
  • 什么条件满足才能进入下一步
  • 失败以后是重试、报警还是停机

这层通常和 PLC、视觉、夹具、工艺设备、安全逻辑强相关。

所以从心智模型上说:

  • LeRobot + SO-101 更像“动作控制视角”
  • ABB 工业站 更像“任务流程与设备协同视角”

28.3 ABB 里“控制机械臂”到底在控制什么

如果用一句话概括,ABB 现场里的“控制机器人”通常是在控制:

  • 机器人按约定的工艺路径和站级时序去执行动作

而不是直接控制:

  • 某个时刻第 1 轴转多少度、第 2 轴转多少度、第 3 轴给多大扭矩

典型的 RAPID 程序更像这样:

  • 等待某个启动条件
  • 确认夹具已夹紧
  • 读取视觉结果
  • 运动到取料点
  • 打开吸嘴或闭合夹爪
  • 运动到装配点
  • 执行插装、压合、点胶、锁附等动作
  • 等待外部设备完成
  • 回到安全位
  • 通知 PLC 本循环完成

下面给一个更接近真实现场风格的简化示例。它不是某个项目的完整量产代码,但已经接近单机械臂工站里常见的 RAPID 结构:

MODULE MainModule

    PERS tooldata tVacuumTool := [TRUE,[[0,0,120],[1,0,0,0]],[0.8,[0,0,40],[1,0,0,0],0,0,0]];
    PERS wobjdata wFixture := [FALSE,TRUE,"",[[500,0,900],[1,0,0,0]],[[0,0,0],[1,0,0,0]]];

    CONST robtarget pHome      := [[0,-600,800],[0.7071,0,0.7071,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
    CONST robtarget pPickAbove := [[100,50,120],[0,1,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
    CONST robtarget pPick      := [[100,50,20],[0,1,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
    CONST robtarget pPlaceAbove:= [[250,-80,100],[0,1,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];
    CONST robtarget pPlace     := [[250,-80,12],[0,1,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];

    VAR num visOffsetX;
    VAR num visOffsetY;
    VAR num visOffsetRz;
    VAR robtarget pPlaceComp;

    PROC main()
        MoveJ pHome,v200,z50,tVacuumTool;

        WHILE TRUE DO
            WaitUntil diStartCycle = 1;
            Reset doCycleDone;
            Set doRobotBusy;

            ! 等待 PLC 放行,并确认夹具到位
            WaitUntil diFixtureClampOk = 1;
            WaitUntil diVisionReady = 1;

            ! 触发视觉拍照
            PulseDO doVisionTrig,0.1;
            WaitUntil diVisionResultValid = 1;

            IF diVisionNg = 1 THEN
                Set doRobotAlarm;
                Reset doRobotBusy;
                WaitUntil diReset = 1;
                Reset doRobotAlarm;
                MoveJ pHome,v200,z50,tVacuumTool;
                CONTINUE;
            ENDIF

            ! 视觉偏移通常来自 PLC 寄存器、Socket 数据或组态映射
            visOffsetX := giVisionOffsetX;
            visOffsetY := giVisionOffsetY;
            visOffsetRz := giVisionOffsetRz;

            pPlaceComp := Offs(pPlace,visOffsetX,visOffsetY,0);

            ! 取料
            MoveJ pPickAbove,v300,z50,tVacuumTool\WObj:=wFixture;
            MoveL pPick,v80,fine,tVacuumTool\WObj:=wFixture;
            Set doVacuumOn;
            WaitTime 0.15;
            WaitUntil diVacuumOk = 1;
            MoveL pPickAbove,v150,z10,tVacuumTool\WObj:=wFixture;

            ! 放料/装配
            MoveJ pPlaceAbove,v300,z50,tVacuumTool\WObj:=wFixture;
            MoveL RelTool(pPlaceComp,0,0,-8\Rz:=visOffsetRz),v60,fine,tVacuumTool\WObj:=wFixture;
            WaitUntil diProcessReady = 1;
            Set doPressStart;
            WaitUntil diProcessDone = 1;
            Reset doPressStart;

            ! 释放工件
            Reset doVacuumOn;
            WaitTime 0.1;
            MoveL pPlaceAbove,v150,z10,tVacuumTool\WObj:=wFixture;

            ! 回安全位并通知 PLC
            MoveJ pHome,v300,z50,tVacuumTool;
            Reset doRobotBusy;
            Set doCycleDone;
            WaitUntil diStartCycle = 0;
        ENDWHILE
    ENDPROC

ENDMODULE

这个示例里最值得你注意的不是每一行语法,而是它体现出来的工业写法特点:

  • 程序入口通常是循环执行,而不是一次性跑完
  • 大量逻辑都围绕 WaitUntil 和 IO 条件展开
  • 机器人动作前后会频繁和 PLC、视觉、夹具、工艺设备做握手
  • 运动指令里真正核心的是 robtarget、速度、区带、tooldatawobjdata
  • 视觉结果不会直接变成“关节动作”,而通常先变成偏移量,再用于目标位姿补偿
  • 异常处理不只是 return false,而是报警、等待复位、回安全位、再决定是否继续

如果按你的背景,把这段程序逐段拆开,可以这样理解:

1. tooldatawobjdata 不是装饰,而是控制前提

PERS tooldata tVacuumTool := ...
PERS wobjdata wFixture := ...

这里定义的不是“附加信息”,而是机器人后续所有动作的参考系。

你可以把它们理解成:

  • tooldata:机器人怎么理解自己手上的工具
  • wobjdata:机器人怎么理解当前工装/工件世界

LeRobot 里你可能更常直接关心末端位姿;在 ABB 里,末端位姿的意义必须放在工具和工装坐标系下才成立。

2. robtarget 更像工业里的关键帧

CONST robtarget pHome      := ...
CONST robtarget pPickAbove := ...
CONST robtarget pPick      := ...

这些点可以理解成:

  • 回安全位
  • 取料上方过渡位
  • 真正取料位
  • 放料上方过渡位
  • 真正装配位

如果用你熟悉的话说,它们不是“连续控制输出”,而更像:

  • 一组被工艺验证过的关键位姿锚点

3. WHILE TRUE 说明它是一个站级循环,不是一段单次动作

WHILE TRUE DO
    WaitUntil diStartCycle = 1;
    ...
ENDWHILE

这段的工业含义很强:

  • 机器人不是执行一次任务就结束
  • 而是在等一轮又一轮产品进入,持续跑站循环

所以这里的主逻辑不是“推理一次动作”,而是:

  • 等条件成立
  • 执行一个完整循环
  • 把结果交回站级系统
  • 再等下一轮

4. WaitUntil 体现的是工业互锁,不是算法阻塞

WaitUntil diFixtureClampOk = 1;
WaitUntil diVisionReady = 1;

这类语句的意思不是“程序卡住了”,而是:

  • 在工业现场,前提条件没满足,就绝对不能继续动作

这和实验室里“策略先输出,环境再反馈”的节奏很不一样。这里更像:

  • 系统先确认世界状态允许
  • 然后才执行动作

5. 视觉部分的核心不是识别,而是把结果接到工艺位姿上

PulseDO doVisionTrig,0.1;
WaitUntil diVisionResultValid = 1;
visOffsetX := giVisionOffsetX;
visOffsetY := giVisionOffsetY;
visOffsetRz := giVisionOffsetRz;
pPlaceComp := Offs(pPlace,visOffsetX,visOffsetY,0);

对你来说,这里最关键的认知是:

  • 视觉输出通常不是直接生成整条轨迹
  • 而是给一个已经存在的工艺目标点做补偿

也就是说,工业里更常见的是:

  • 先有工艺定义好的标准点
  • 再用视觉偏移去修正这个标准点

而不是:

  • 让视觉系统直接端到端决定机器人怎么动

6. MoveJMoveL 体现的是工艺路径约束

MoveJ pPickAbove,v300,z50,...
MoveL pPick,v80,fine,...

这两句放在一起非常典型:

  • MoveJ 先快速移动到目标上方
  • MoveL 再沿直线精确接近工件

这说明工业程序关心的不是“能动就行”,而是:

  • 哪一段要快
  • 哪一段要直线
  • 哪一段必须严格过点
  • 哪一段是工艺敏感区

7. 吸真空和等真空确认,本质上是动作闭环

Set doVacuumOn;
WaitTime 0.15;
WaitUntil diVacuumOk = 1;

这三句很好地体现了工业控制特点:

  • 先下达动作命令
  • 给系统一点物理响应时间
  • 再等反馈确认动作真的发生了

所以现场不是“我发了吸取命令就默认成功”,而是:

  • 必须等反馈确认吸住了,才能继续搬运

8. 工艺设备不是背景,而是流程中的强约束节点

WaitUntil diProcessReady = 1;
Set doPressStart;
WaitUntil diProcessDone = 1;
Reset doPressStart;

这部分非常工业化。它表达的是:

  • 机器人到了装配位,不代表工艺已经完成
  • 真正的压合、锁附、点胶等动作,可能由专用设备完成
  • 机器人必须和这个设备做握手

所以整站价值常常不是只靠机械臂本身完成的,而是:

  • 机械臂负责搬运和对位
  • 工艺设备负责真正完成工艺

9. 异常处理不是退出程序,而是回到可恢复状态

IF diVisionNg = 1 THEN
    Set doRobotAlarm;
    Reset doRobotBusy;
    WaitUntil diReset = 1;
    Reset doRobotAlarm;
    MoveJ pHome,v200,z50,tVacuumTool;
    CONTINUE;
ENDIF

这一段特别像工业,而不太像研究代码。

研究代码里常见的是:

  • 任务失败
  • 记录日志
  • 返回失败

工业程序里更关心的是:

  • 先报警
  • 明确告诉外围“我现在不忙,但有异常”
  • 等人工或系统复位
  • 回到安全位
  • 再决定是否进入下一轮

所以工业站真正重视的是:

  • 失败后系统是否进入可恢复状态

10. doRobotBusydoCycleDone 是站级协同语言

Set doRobotBusy;
...
Reset doRobotBusy;
Set doCycleDone;

这类信号本质上是在对 PLC 说:

  • 我已经开始干活了
  • 我现在不要被打断
  • 我这一循环做完了

这说明 RAPID 程序并不是孤立执行,而是在持续和站级控制系统交换状态。

如果再压缩一下,这段 RAPID 程序可以被读成 4 个层次:

  • 定义工具、工装和关键点位
  • 等待外围条件满足
  • 执行取料和装配工艺动作
  • 在成功或失败后把状态回传给站级系统

这也是为什么 ABB 现场程序更像“受约束的工业流程脚本”,而不是“直接驱动 6 个电机的动作控制器”。

如果把这段程序压缩成一句话,它更像是在表达:

  • “当外部条件满足时,机器人按工艺路径执行一段受约束的动作流程,并在每个关键点与外设做状态同步”

所以在 ABB 里,机械臂的真实控制对象更接近:

  • 路径
  • 位姿
  • 速度
  • 动作顺序
  • 过程中的 IO 和等待条件

28.4 单机械臂工站一定会有 PLC 吗

不一定,但工业上通常还是会有。

即使只是一个 ABB 机械臂的单站,PLC 仍然经常出现,因为它负责的不是“帮机器人算轨迹”,而是负责整站外围逻辑和离散时序。

PLC 常负责这些事情:

  • 启动按钮、复位按钮、模式切换
  • 安全门、急停、联锁
  • 治具夹紧和松开
  • 电磁阀、气缸、真空发生器
  • 三色灯、蜂鸣器
  • 相机触发时序
  • 工艺设备联机
  • 报警汇总
  • 整站放行和异常处理

ABB 控制器则更集中在:

  • 机器人运动执行
  • 机器人本体 IO
  • 机器人动作流程
  • 与视觉或 PLC 的配合

所以真实现场更常见的分工是:

  • PLC 决定“系统能不能做、什么时候做、外围谁先谁后”
  • ABB 机器人 决定“机械臂怎么动、动到哪里、动作过程怎么执行”

28.5 如果只是很小的单站,也可以没有 PLC

有些小型实验站、教学站、PoC 站,会做成“机器人控制器直接带外围”的结构,例如:

  • 机器人控制器直接读取启动按钮
  • 机器人控制器直接输出 IO 控夹具
  • 机器人直接触发相机
  • 相机直接把结果回给机器人

这种方式能跑,但一旦站内设备变多,问题就会出现:

  • 机器人程序里混入太多外围时序逻辑
  • 安全和互锁难以集中管理
  • 调试和维护边界不清晰
  • 后续扩站困难

所以工业交付里,即使是单机械臂站,也经常保留 PLC。

28.6 夹具通常是怎么控制的

夹具本身通常不是一个“会自己思考的系统”,而是由执行元件和检测元件组成。

常见组成包括:

  • 气缸
  • 电磁阀
  • 真空发生器
  • 真空开关
  • 到位传感器
  • 压力开关
  • 限位开关

典型控制方式是:

  1. PLC 输出一个 DO
  2. 电磁阀动作
  3. 气缸夹紧或松开
  4. 传感器返回夹紧到位 DI
  5. PLC 判断是否满足继续运行条件
  6. PLC 再放行机器人执行下一步

如果是更简单的站,也可能由机器人控制器直接发 IO 去控夹具,但在标准工业站里,更常见的是:

  • 夹具归 PLC 管
  • 机器人等 PLC 给的允许信号

28.7 摄像头通常是怎么控制的

这取决于视觉方案,但常见有三种模式。

模式 A:PLC 负责时序,视觉系统负责结果

  • PLC 发触发
  • 相机拍照
  • 视觉系统计算
  • 结果回给 PLC 或机器人

这是现场最常见、也最容易管理的结构之一。

模式 B:机器人触发拍照,视觉结果直接给机器人

  • 机器人走到拍照位
  • 机器人发触发信号
  • 视觉系统返回偏移量、角度或 OK/NG
  • 机器人根据结果做补偿或分拣

这种结构在单工站里也很常见,尤其是视觉引导抓取场景。

模式 C:智能相机直接输出结果

  • 智能相机自己拍、自己算
  • 直接输出 OK/NG、位置偏移或分类结果
  • 再通过 IO、Socket 或工业协议传给 PLC / 机器人

不管哪种模式,真正重要的是:

  • 触发时机是否稳定
  • 标定是否可靠
  • 结果到底给谁用
  • 结果用于引导,还是用于检测

28.8 单机械臂工站的典型控制流

下面给一个最典型、最工业化的单机械臂控制流。你可以把它理解成 ABB 单站里的主循环。

参与对象

  • 操作员
  • PLC
  • ABB 机器人控制器
  • 夹具 / 气动机构
  • 相机 / 视觉系统
  • 工艺设备

控制流主线

  1. 操作员上料,按启动,或上游设备送来产品。
  2. PLC 检查安全门、急停、模式、复位状态、互锁是否满足。
  3. PLC 控制夹具夹紧,并读取夹紧到位信号。
  4. PLC 确认允许机器人进入工作循环。
  5. 机器人运动到拍照位或等待拍照触发。
  6. PLC 或机器人触发相机采图。
  7. 视觉系统输出位置、角度、偏移量或 OK/NG。
  8. PLC 判断视觉结果是否允许继续;机器人读取需要的补偿量。
  9. 机器人执行取料、搬运、装配、插装、点胶、锁附或压合动作。
  10. 如果工位内还有工艺设备,PLC 再触发对应设备执行。
  11. 工艺设备返回完成信号、过程值或 OK/NG。
  12. PLC 根据机器人状态、视觉结果、工艺结果判定本循环是否通过。
  13. 通过则放行当前循环,允许下一个产品进入。
  14. 失败则报警、重试、等待人工处理,或进入异常恢复流程。

压缩成一句话就是:

  • PLC 组织流程,机器人执行动作,视觉提供结果,夹具固定产品,工艺设备完成专用工艺

28.9 一个更贴近你背景的对照表

你在 LeRobot / SO-101 中的理解在 ABB 单机械臂工业站中的对应理解
给机械臂一个动作向量让机器人在站级时序中执行一段工艺动作
关注每个关节怎么动关注点位、姿态、速度、区带、工艺路径
关心策略能不能输出动作关心系统在互锁条件下能不能稳定循环
机械臂几乎是唯一主体机器人只是整站中的一个执行体
相机是感知输入相机既受时序约束,也受标定和结果使用方约束
失败了就重新跑一次失败后要区分重试、拦截、报警、人工恢复

28.10 如果没有 PLC,控制流通常是什么样

在一个简化单站中,也可能把控制流压到机器人控制器里:

  1. 机器人控制器读取启动信号。
  2. 机器人控制器直接输出 IO 控制夹具。
  3. 机器人触发相机或直接请求视觉结果。
  4. 机器人按结果执行动作。
  5. 机器人再控制部分工艺 IO。
  6. 机器人程序自己决定是继续、重试还是报警。

这种方式适合:

  • 教学站
  • 小型实验站
  • 早期验证台

但不太适合复杂工业交付,因为:

  • 程序边界容易混乱
  • 外围逻辑难维护
  • 安全和互锁不够清晰

28.11 对智能体 / VLA 工程师最重要的认知切换

最关键的切换是:

  • 实验室更像“输出动作”
  • 工业更像“在互锁和工艺约束下组织闭环流程”

所以工业站真正关心的是:

  • 动作有没有前提
  • 产品是否已定位
  • 视觉结果是否可信
  • 外围设备是否准备好
  • 失败后能不能恢复
  • 整站能不能长时间稳定循环

28.12 一句话总结

LeRobot + SO-101 走向 ABB 时,最重要的不是把“6 维动作控制”直接搬过去,而是把你的控制思维从:

  • 单机械臂动作控制

切换成:

  • 单工站多设备协同控制

当你开始用这个视角去看 PLC、夹具、视觉、工艺设备和 ABB 机器人之间的关系时,你就真正进入工业控制语境了。

29. 附录:单机械臂 ABB 工站控制架构图

这一节把一个典型单机械臂 ABB 工站画成文字版结构图,帮助你把 PLC、机器人控制器、视觉、夹具、工艺设备和操作员放进同一张图里理解。

29.1 最简结构图

先看一个最常见的工业化结构:

                     ┌──────────────────────┐
                     │      操作员 / HMI     │
                     │ 启动、复位、报警确认   │
                     └─────────┬────────────┘
┌──────────────────────┐   ┌──────────────────────┐
│   安全回路 / 安全门   │──▶│         PLC          │
│ 急停、门锁、安全输入  │   │ 时序、互锁、外围协调 │
└──────────────────────┘   └──┬───────┬──────┬───┘
                               │       │      │
                               │       │      │
                               ▼       ▼      ▼
                     ┌────────────┐ ┌────────────┐ ┌────────────────┐
                     │ 夹具 / 气动 │ │ 视觉系统    │ │ 工艺设备        │
                     │ 夹紧、松开   │ │ 拍照、计算   │ │ 锁附、压合、点胶 │
                     └─────┬──────┘ └─────┬──────┘ └────────┬───────┘
                           │              │                  │
                           └──────┬───────┴──────────┬──────┘
                                  │                  │
                                  ▼                  ▼
                           ┌─────────────────────────────┐
                           │      ABB 机器人控制器        │
                           │ RAPID、运动、机器人本体 IO   │
                           └────────────┬────────────────┘
                               ┌────────────────┐
                               │ ABB 机械臂本体  │
                               │ 取放、装配、搬运 │
                               └────────────────┘

这张图里最重要的是:

  • PLC 负责整站流程和外围设备协同
  • ABB 控制器 负责机器人本体运动执行
  • 视觉夹具工艺设备 共同决定一个循环能否成立

29.2 每个模块分别在做什么

1. 操作员 / HMI

常见职责:

  • 启动
  • 停止
  • 复位
  • 切换机种
  • 查看报警
  • 手动操作部分机构

对新人最重要的理解是:

  • 操作员不是在“编程”,而是在给系统输入运行条件和人工确认

2. 安全回路

常见对象:

  • 急停
  • 安全门
  • 门锁
  • 安全光栅
  • 双手按钮

作用不是让设备“更聪明”,而是:

  • 让系统在危险条件下不能继续动作

3. PLC

它通常是整站离散逻辑的核心,常负责:

  • 自动循环时序
  • 互锁判断
  • IO 汇总
  • 外围设备触发
  • 报警处理
  • 模式切换
  • 与机器人、视觉、工艺设备做状态协同

所以可以把 PLC 理解成:

  • 单站里的流程调度者

4. ABB 机器人控制器

常负责:

  • 执行 RAPID 程序
  • 管理机器人轨迹
  • 控制机器人本体运动
  • 在动作过程中处理机器人相关 IO
  • 和 PLC / 视觉交换结果

所以可以把它理解成:

  • 单站里的机器人执行核心

5. 夹具 / 气动机构

常负责:

  • 产品定位
  • 夹紧松开
  • 提供稳定基准
  • 给 PLC 返回到位状态

它的关键价值不是“自己会动”,而是:

  • 在机器人动作前把产品固定在可重复的位置上

6. 视觉系统

常负责:

  • 拍照
  • 算位姿偏移
  • 输出 OK/NG
  • 输出缺陷类别
  • 给机器人或 PLC 提供决策输入

这里最关键的不是模型本身,而是:

  • 触发时机、标定关系和结果使用方式

7. 工艺设备

比如:

  • 锁螺丝机
  • 压机
  • 点胶机
  • 焊接设备
  • 测试设备

这些设备通常不负责整站调度,而是:

  • 在被触发后完成某个专用工艺动作

29.3 一条正常生产信号流

如果一切正常,一个典型循环的信号流可以画成:

操作员/HMI
  -> 启动信号
PLC
  -> 检查安全、模式、互锁
  -> 触发夹具夹紧
夹具
  -> 返回夹紧到位
PLC
  -> 放行机器人 / 触发视觉
视觉系统
  -> 返回位置偏移或 OK/NG
PLC / ABB 控制器
  -> 判定是否继续
ABB 控制器
  -> 驱动机器人执行取放 / 装配
工艺设备
  -> 执行锁附 / 压合 / 点胶
工艺设备
  -> 返回完成 / 过程值 / OK/NG
PLC
  -> 汇总判定
  -> 放行当前产品或触发下一循环

这条信号流最想说明的是:

  • 一个工站不是“机器人自己在跑”
  • 而是多个模块在按先后顺序交换状态

29.4 一条异常处理信号流

工业现场真正拉开差距的,往往不是正常流,而是异常流。

例如视觉拍照失败时,典型流可能是:

PLC / 机器人
  -> 触发视觉
视觉系统
  -> 返回 NG / 无结果
PLC
  -> 判断是否允许重试
如果允许重试:
  -> 重新触发一次
如果仍失败:
  -> 报警
  -> 禁止进入下一步
  -> 等待人工确认或恢复

再比如夹具不到位时:

PLC
  -> 触发夹具夹紧
夹具
  -> 长时间未返回到位
PLC
  -> 触发报警
  -> 禁止机器人进入压合/放件动作
  -> 等待人工处理

所以工业控制真正重视的是:

  • 正常流程可运行
  • 异常流程可解释
  • 异常后系统可恢复

29.5 没有 PLC 的简化架构图

如果是实验站或 PoC,也可能出现下面这种结构:

操作员 / 按钮
ABB 机器人控制器
  ├─ 直接读启动信号
  ├─ 直接控夹具 IO
  ├─ 直接触发相机
  ├─ 直接读视觉结果
  └─ 直接控部分工艺 IO
ABB 机械臂本体

这种结构的优点是:

  • 系统简单
  • 接线少
  • 适合快速验证

缺点是:

  • 机器人程序容易过重
  • 外围逻辑全堆进 RAPID
  • 后续维护和扩展困难

所以它更适合:

  • 教学
  • 桌面站
  • 早期原型

不太适合:

  • 正式工业交付

29.6 从你的背景出发,该怎么看这张图

如果你是从 LeRobot + SO-101 过来的,可以这样做认知映射:

  • ABB 机器人控制器大致对应你熟悉的“动作执行器”
  • PLC 更像一个站级状态机和流程编排器
  • 视觉不是单纯的 observation provider,而是受时序和标定约束的外部子系统
  • 夹具不是环境背景,而是决定任务是否可重复执行的关键机构
  • 工艺设备不是可选附加项,而常常是真正完成工艺价值的核心设备

所以对你来说,这张图最重要的不是记住谁连着谁,而是理解:

  • 工业里的“控制”本质上是多子系统之间的状态协同

29.7 一句话总结

单机械臂 ABB 工站的真实控制架构,不是:

  • 机械臂直接统治一切

而更像是:

  • PLC 做流程中枢
  • ABB 控制器 做机器人执行中枢
  • 视觉夹具工艺设备 作为受时序约束的协同模块共同完成一个循环

30. 附录:这段 RAPID 程序对应的最小 PLC IO 表

这一节对应前面 28.3 的 RAPID 示例。目的不是给出某个品牌 PLC 的完整地址分配,而是让你第一次看到这些信号名时,知道:

  • 这个信号是谁发的
  • 谁来接收
  • 它在流程里是什么意思
  • 为什么工业程序里会有这么多“看起来不像算法”的变量

30.1 为什么要先看 IO 表

如果你从 LeRobot + SO-101 过来,最容易困惑的是:

  • 为什么工业程序里不是只有动作和状态
  • 为什么还有这么多 di...do...gi...

原因是工业站不是单体机器人,而是多设备协同系统。机器人程序必须通过 IO 和外围系统交换“状态、允许、结果、完成、报警”这些信息。

所以 IO 表本质上是在定义:

  • 谁和谁说话
  • 说的是什么
  • 什么条件下允许进入下一步

30.2 一个最小可理解的信号约定

在 ABB 项目里,命名风格可能不同,但你可以先把下面这些前缀这么理解:

  • di:Digital Input,机器人读到的数字输入
  • do:Digital Output,机器人发出的数字输出
  • gi:Group Input,机器人读到的一组数值输入
  • go:Group Output,机器人发出的一组数值输出

对你来说,可以先记成:

  • di / gi 是“外部世界告诉机器人什么”
  • do / go 是“机器人告诉外部世界什么”

30.3 对应 RAPID 示例的最小 IO 表

信号名类型方向典型来源 / 去向含义在流程中的作用
diStartCycleDIPLC -> 机器人PLC/HMI启动当前循环机器人只有收到启动后才进入本循环
doCycleDoneDO机器人 -> PLCPLC当前循环完成告诉 PLC 这一件已经做完
doRobotBusyDO机器人 -> PLCPLC机器人忙碌中告诉 PLC 不要在中途打断或切入下一件
doRobotAlarmDO机器人 -> PLCPLC/HMI机器人流程异常让 PLC/HMI 报警并进入异常处理
diResetDIPLC/HMI -> 机器人HMI/按钮异常复位确认机器人收到后才能清报警并继续
diFixtureClampOkDIPLC/夹具 -> 机器人夹具到位回路夹具已夹紧到位没这个信号,机器人不能下去取放或压合
doVisionTrigDO机器人/PLC -> 视觉相机/视觉系统触发一次拍照开始获取本循环视觉结果
diVisionReadyDIPLC/视觉 -> 机器人视觉系统视觉系统可用没准备好时机器人不能请求结果
diVisionResultValidDI视觉/PLC -> 机器人视觉系统本次视觉结果有效表示这次拍照和计算已经完成
diVisionNgDI视觉/PLC -> 机器人视觉系统本次视觉判定失败用于进入报警或重试分支
giVisionOffsetXGI视觉/PLC -> 机器人视觉结果寄存器X 方向偏移量用于修正工艺目标点
giVisionOffsetYGI视觉/PLC -> 机器人视觉结果寄存器Y 方向偏移量用于修正工艺目标点
giVisionOffsetRzGI视觉/PLC -> 机器人视觉结果寄存器旋转补偿量用于修正姿态或角度
doVacuumOnDO机器人 -> 真空回路电磁阀/真空发生器打开吸取真空控制末端吸附工件
diVacuumOkDI真空回路 -> 机器人真空开关已成功吸住工件没吸住就不能搬运
diProcessReadyDIPLC/工艺设备 -> 机器人压机/锁附机/点胶机工艺设备准备完成告诉机器人可以进入工艺执行阶段
doPressStartDO机器人 -> PLC/工艺设备压机或 PLC启动工艺动作触发压合、锁附或其他动作
diProcessDoneDI工艺设备/PLC -> 机器人工艺设备工艺动作完成没收到完成,机器人不能离开或进入下一步

30.4 这些信号在 RAPID 里分别干什么

你可以把前面的示例代码理解成下面这条信号流:

  1. diStartCycle = 1 说明 PLC 已经放行这一轮循环。
  2. diFixtureClampOk = 1 说明夹具已把产品固定住。
  3. diVisionReady = 1 说明视觉系统处于可工作状态。
  4. doVisionTrig 机器人触发一次拍照。
  5. diVisionResultValid = 1 视觉已经算完结果。
  6. giVisionOffsetX / Y / Rz 机器人读取补偿量。
  7. doVacuumOn 机器人打开真空吸取。
  8. diVacuumOk = 1 吸取成功,允许搬运。
  9. diProcessReady = 1 工艺设备可执行。
  10. doPressStart 机器人通知工艺设备开始动作。
  11. diProcessDone = 1 工艺动作完成。
  12. doCycleDone 机器人告诉 PLC 本循环结束。

从你的背景看,这一串信号的核心含义是:

  • 机器人不是在独立完成任务
  • 而是在不断确认外部世界状态,再决定自己是否继续动作

30.5 为什么有些信号放在 PLC,有些放在机器人

这里没有唯一标准,但常见原则是:

  • 机器人本体动作相关的状态,适合由机器人维护
  • 整站流程、夹具、安全、HMI 相关的状态,适合由 PLC 维护
  • 视觉和工艺设备的结果,谁最先消费,谁就更贴近接收端

更具体地说:

  • doRobotBusydoCycleDone 这类信号通常由机器人发出,因为机器人最知道自己是否在执行和是否完成
  • diStartCyclediReset 这类信号通常来自 PLC/HMI,因为它们属于站级放行和人工交互
  • diFixtureClampOk 常来自 PLC,因为夹具通常归 PLC 管
  • giVisionOffsetX 这类数值可能来自视觉到 PLC 再到机器人,也可能直接进机器人,取决于项目架构

30.6 你可以把 IO 表看成什么

如果用研究视角类比,IO 表有点像:

  • 多设备系统里的“状态接口定义”

但它比普通软件接口更强的一点在于:

  • 它直接约束了现场动作能不能发生

也就是说,在工业里,IO 不只是传信息,而是在定义:

  • 机器什么时候能动
  • 外设什么时候能动
  • 哪一步完成了
  • 异常时谁该停

30.7 一个新人最容易犯的误解

最常见的误解是:

  • “这些 IO 只是外围小细节,真正核心还是机器人轨迹”

但真实现场里,很多问题恰恰不在轨迹本身,而在:

  • 启动时序乱了
  • 夹具没到位却放行了
  • 视觉结果无效却没拦截
  • 工艺设备还没准备好,机器人就下去了
  • 循环完成信号没清干净,导致下一轮误启动

所以对工业站来说,IO 表不是附件,而是主逻辑的一部分。

30.8 一句话总结

如果 RAPID 程序是“机器人动作流程脚本”,那么 PLC IO 表就是:

  • 这段脚本与真实工站交互的接口契约

31. 附录:单机械臂 ABB 工站的一次完整时序图

前面的 282930 已经分别讲了:

  • RAPID 程序长什么样
  • 单工站控制架构长什么样
  • IO 信号分别在表达什么

这一节把三者合在一起,按时间顺序描述一次完整循环,让你看到:

  • 谁先说话
  • 谁后动作
  • 哪些信号是前提
  • 哪些信号是结果

31.1 参与对象

下面这条时序图里包含 6 个角色:

  • 操作员 / HMI
  • PLC
  • 夹具
  • 视觉系统
  • ABB 机器人控制器
  • 工艺设备

31.2 正常循环时序图

操作员/HMI        PLC              夹具            视觉系统        ABB控制器        工艺设备
   |               |                 |                 |               |               |
   |--启动按钮----->|                 |                 |               |               |
   |               |--检查互锁------>|                 |               |               |
   |               |--夹具夹紧------>|                 |               |               |
   |               |<--夹紧到位------|                 |               |               |
   |               |--放行启动------------------------->|               |               |
   |               |----------------------------------->| diStartCycle  |               |
   |               |                 |                 |               |               |
   |               |                 |                 |               |--等待条件------|
   |               |                 |                 |               |--触发拍照----->|
   |               |                 |                 |<--触发信号-----| doVisionTrig   |
   |               |                 |                 |--采图/计算---->|               |
   |               |<--结果有效/NG/偏移量-------------|               |               |
   |               |----------------------------------------------->| 读取视觉结果     |
   |               |                 |                 |               |               |
   |               |                 |                 |               |--取料动作------|
   |               |                 |                 |               |--打开真空------|
   |               |                 |                 |               |<--真空OK-------|
   |               |                 |                 |               |--搬运到装配位--|
   |               |                 |                 |               |               |
   |               |<--工艺ready-------------------------------------| WaitUntil       |
   |               |----------------------------------------------->| doPressStart    |
   |               |--------------------------------------------------------------->|
   |               |                                                               |--执行工艺
   |               |<---------------------------------------------------------------|--完成/OK/NG
   |               |----------------------------------------------->| diProcessDone   |
   |               |                 |                 |               |               |
   |               |                 |                 |               |--释放工件------|
   |               |                 |                 |               |--回Home--------|
   |               |<-----------------------------------------------| doCycleDone      |
   |<--循环完成-----|                 |                 |               |               |

这张图最关键的是:

  • 机器人动作只是整条时序中的一段
  • 真正让循环成立的是前后条件、握手和结果回传

31.3 用自然语言读一遍这条时序

如果不看图,只用语言来描述,一次正常循环通常是这样:

  1. 操作员上料并按启动。
  2. PLC 先检查安全门、模式、互锁和报警状态。
  3. PLC 控制夹具夹紧,并确认夹具已到位。
  4. PLC 向机器人放行当前循环。
  5. 机器人进入循环,等待视觉系统准备好。
  6. 机器人或 PLC 触发相机拍照。
  7. 视觉系统返回偏移量、角度或 OK/NG。
  8. 机器人根据结果修正目标位姿。
  9. 机器人执行取料。
  10. 机器人确认吸附成功。
  11. 机器人把工件带到装配位。
  12. 机器人等待工艺设备准备好。
  13. 机器人或 PLC 触发工艺设备执行。
  14. 工艺设备返回完成结果。
  15. 机器人释放工件,回到安全位。
  16. 机器人向 PLC 发出循环完成信号。
  17. PLC 再决定是否放行下一件产品。

你可以把工业控制节奏理解成:

  • 等条件
  • 动一下
  • 等反馈
  • 再动下一步

31.4 为什么时序图比“控制代码”更重要

很多新人第一次看工业程序时,会把注意力都放在:

  • MoveJ
  • MoveL
  • 点位
  • 速度

但现场真正最容易出问题的地方,常常是时序而不是轨迹。

例如:

  • 相机还没准备好就被触发
  • 夹具没夹紧就让机器人下去
  • 工艺设备还没 ready 就开始压合
  • doCycleDone 还没清掉,PLC 就误以为当前循环已结束

所以工业调试里常说的“时序问题”,本质上就是:

  • 该先发生的没先发生
  • 不该同时发生的同时发生了
  • 某个结果没确认就进入了下一步

31.5 一个异常时序例子:视觉 NG

把异常也画成时序,你会更容易看懂工业程序为什么要写那么多 WaitUntil 和报警分支。

PLC            视觉系统        ABB控制器
 |                |               |
 |--允许拍照------>|               |
 |                |<--触发---------|
 |                |--采图/计算---->|
 |<--NG / 无结果---|               |
 |--------------->| diVisionNg    |
 |                |               |--置报警 doRobotAlarm
 |                |               |--停止后续动作
 |<---------------| doRobotAlarm  |
 |--通知HMI报警----|               |
 |--等待人工复位------------------>|
 |<-------------- diReset --------|
 |                |               |--回Home
 |                |               |--准备下一轮

这个异常流体现的关键点是:

  • 工业程序不是“错了就崩”
  • 而是“错了就进入一个可被外围理解和处理的状态”

31.6 一个异常时序例子:夹具不到位

PLC              夹具            ABB控制器
 |                |               |
 |--夹紧命令------>|               |
 |                |--执行夹紧---->|
 |                |   无到位反馈   |
 |--超时判断------>|               |
 |--报警---------->|               |
 |-------------------------------->| 禁止机器人继续
 |--等待人工处理------------------->|

这个例子说明,机器人不一定“知道夹具为什么没到位”,但它必须尊重来自 PLC 的禁止继续条件。

31.7 如果你是智能体 / VLA 工程师,该怎么用这张图

这张图也能帮助你识别:

  • 你的模型能插在哪里
  • 你的模型不能越过哪些边界

例如:

  • 视觉模型可以参与 采图 -> 结果输出
  • 智能体可以参与 报警解释 -> 恢复建议
  • 世界模型可以参与 时序评估 -> 仿真验证

但这些模块通常不应该直接替代:

  • PLC 互锁
  • 夹具到位确认
  • 安全回路
  • 工艺完成判定

31.8 一句话总结

单机械臂 ABB 工站的一次完整循环,本质上不是“机器人执行了一段轨迹”,而是:

  • 多个设备沿着同一条时序链,逐步确认条件、执行动作、返回结果,最终完成一个可重复的工业循环

32. 附录:从“发动作向量”到“工业状态机”的认知对照表

这一节给从 LeRobot + SO-101、VLA、智能体、仿真环境进入工业场景的人使用。核心目的,是把“先想动作”切换成“先想条件、状态和时序”。

32.1 一张总对照表

研究 / 实验室视角ABB 工业站视角
给机械臂发动作向量让整站在满足条件时进入下一状态
优先考虑动作输出是否正确优先考虑这一步是否允许发生
机械臂是主角机械臂只是站内一个执行模块
关注策略是否学会任务关注系统是否能长期稳定循环
视觉是 observation视觉是受触发、标定、验收约束的子系统
失败后重新跑一次失败后进入报警、拦截、复位或人工恢复流程
控制重点在轨迹或关节控制重点在状态、互锁、握手、结果回传
环境通常被抽象为可调用接口工装、夹具、工艺设备、安全回路都是真实约束
更容易追求端到端闭环更常采用“工艺基线 + 局部补偿 + 严格边界”
评价重点是成功率、损失、回报评价重点是节拍、良率、直通率、OEE、恢复能力

32.2 “动作”在两边到底分别意味着什么

在实验室里,“动作”通常意味着:

  • 关节角目标
  • 末端位姿增量
  • 抓手开合
  • 一步控制向量

在 ABB 工业站里,“动作”更常意味着:

  • 从哪个工艺位到哪个工艺位
  • 用什么路径类型接近
  • 什么时候允许开夹具或开真空
  • 什么时候必须等 PLC、视觉、工艺设备反馈

所以两边都叫“控制”,但控制对象并不一样:

  • 实验室里更像控制执行体
  • 工业里更像控制一个受约束流程

32.3 “状态”在工业里为什么更重要

工业站里很多动作不是“想做就做”,而是只有在状态成立时才允许发生。

例如:

  • 夹具到位,才能下压
  • 视觉结果有效,才能做补偿
  • 工艺设备 ready,才能触发执行
  • 安全门关闭,才能自动运行

所以工业控制更接近:

  • 先确认世界处于哪个状态
  • 再决定允许哪些动作发生

这就是为什么你在 RAPID 和 PLC 程序里会不断看到 WaitUntil、互锁条件、ready / done / busy / alarm 这类信号。

32.4 为什么 PLC 看起来像“工业状态机”

如果你用软件工程或智能体的视角去看 PLC,可以先把它理解成:

  • 一个站级有限状态机
  • 或一个强约束任务编排器

它常见管理的状态包括:

  • 待机
  • 允许启动
  • 夹具夹紧中
  • 等待视觉
  • 机器人运行中
  • 工艺执行中
  • 循环完成
  • 报警中
  • 等待复位

所以 PLC 的角色并不是替代机器人,而是:

  • 确保所有子系统按站级规则流转

32.5 机器人在工业里更像什么

如果再做一次认知映射,ABB 机器人更像:

  • 站级状态机中的一个高能力执行节点

它很强,但仍然要服从安全条件、夹具条件、视觉结果有效性、工艺设备状态和 PLC 放行逻辑。

这和很多实验环境里“机器人几乎就是全部系统”很不一样。

32.6 为什么工业更少做“直接端到端替代”

从研究角度,你很自然会想到:

  • 能不能让一个模型直接看图、出动作、完成整个任务

工业上通常更谨慎,因为它不仅要“能做出来”,还要:

  • 解释得清
  • 验证得过
  • 故障时能恢复
  • 长时间稳定运行

所以工业更常见的路线是:

  • 先有工艺基线
  • 再做视觉补偿
  • 再做局部智能模块增强
  • 最后再考虑更高层的自主能力

这不是因为工业不需要智能,而是因为工业先要求:

  • 可交付
  • 可验收
  • 可维护

32.7 你应该如何切换自己的思维方式

如果你想真正进入 ABB 工业语境,可以强迫自己把每个问题都多问三句:

  1. 这一步动作的前提条件是什么?
  2. 这一步完成后,谁来确认它真的完成了?
  3. 如果失败了,系统会进入什么状态?

只要你开始这样问问题,你的思维就已经从“怎么让机器人动起来”,转向“怎么让工站稳定循环起来”。

32.8 一个最小对照例子

同样是“抓一个零件并放到目标位”。

在实验室里,你可能会这样想:

  • 获取图像
  • 算目标
  • 输出动作
  • 抓取
  • 放置

在 ABB 工业站里,更真实的想法通常是:

  • 产品是否已经到位
  • 夹具是否已夹紧
  • 视觉是否已准备好
  • 触发拍照后结果是否有效
  • 补偿量是否在允许范围内
  • 机器人是否允许进入抓取动作
  • 真空是否真的吸住
  • 工艺设备是否 ready
  • 放置后是否需要工艺确认
  • 本循环是否应该放行还是报警

这两个流程不是复杂度差一点,而是控制哲学不一样。

32.9 对智能体 / VLA 工程师最重要的一句话

你最需要完成的认知切换不是:

  • 从 low-level action 变成 high-level action

而是:

  • 从“输出动作”变成“管理状态约束下的动作资格”

这句话非常关键,因为它决定了你后面设计智能体、VLA、世界模型或调度系统时,会不会真正贴近工业问题。

32.10 一句话总结

LeRobot + SO-101ABB + PLC,最本质的变化不是:

  • 控制频率变了
  • 机械臂更大了
  • 语法从 Python 变成 RAPID 了

而是:

  • 你面对的对象,从一个动作执行器,变成了一个必须在严格状态机约束下长期稳定运行的工业系统