ABB · OFFLINE-CODER · v0.1.0 RAPID CODE GENERATOR · IRC5 / OMNICORE
概览 演示 架构 样例 部署 OFFLINE READY
FILE  index.html REV  A · 2026-05-17 ISSUE 01 FORMAT A0 SCALE 1 : 1
// PROJECT 01 — ABB SPRAY PAINTING OFFLINE · LOCAL LLM · RAG

abb-offline-coder.

把中文一句话变成 ABB RAPID 喷涂程序 本地小模型 + 官方手册 RAG,工业 PC 断网可用。

  • IRB 52
  • IRB 5500
  • IRB 5710
  • IRC5 / OmniCore
  • RobotStudio
  • Qwen2.5-Coder · 7B / 3B
  • ChromaDB · bge-zh
SPECIMEN · A-01 INPUT / OUTPUT
用户输入 · 中文
"对 600×400 矩形面做 Z 字扫描喷涂,行距 50 mm,喷涂速度 v200"
类别
zigzag_scan
检索
top-5 / 7497

模型
Qwen2.5-Coder-7B Q4

耗时
≈ 25 s
OUTPUT · PaintZigzag.mod
! Z 字扫描喷涂 — 500×400 矩形面,行距 50 mm
MODULE PaintZigzag
    PERS tooldata  tSprayGun := [TRUE,…];
    PERS wobjdata  wobjPart  := [FALSE,…];
    CONST speeddata vPaint   := [150,400,5000,1000];
    PERS num nRowSpacing := 50;

    PROC main()
        FOR i FROM 0 TO 8 DO
            ! 偶数行 X+, 奇数行 X-
            MoveL pStart, vPaint, fine, tSprayGun;
            SetDO doSprayOn, 1;
            MoveL pEnd,   vPaint, z1,   tSprayGun;
            SetDO doSprayOn, 0;
        ENDFOR
    ENDPROC
ENDMODULE
01 Abstract

现场工程师不上网,也能「写一句话出一个程序」

ABB 喷涂机器人编程涉及大量专业概念:笔刷工艺(BrushData)、TriggIO 同步喷枪、 TCP 校准、扫描轨迹规划。工业 PC 长期断网,工程师只能翻官方手册手写。

本工具把本地代码小模型(Qwen2.5-Coder-7B Q4,4.5 GB)与ABB 官方手册向量检索(10 本 PDF,7497 切片)结合, 通过命令行用中文描述需求即可生成符合 RAPID 标准的 .mod 模块代码,可直接拖入 RobotStudio 验证。 全程不需要联网。

// PROBLEM
断网 · 专业概念繁多 · 手写易错
// APPROACH
Local LLM + RAG over official manuals
查询改写 · 混合检索 · 后处理校验
// PLATFORM
RobotStudio + IRC5 / OmniCore
Windows / macOS / Linux
// MODELS
LLM: Qwen2.5-Coder · 7B Q4_K_M
Embed: BAAI/bge-small-zh-v1.5
Vector: ChromaDB (local)
// VERIFIED
67 unit tests · 0.5 s
4 end-to-end painting cases
02 Live Pipeline · Try it

改一行需求 看 .mod 即时重生成。

编辑左侧中文需求,或点示例 chip 一键填充;按 RUN 看输入穿过查询改写、向量检索、本地 LLM、语法校验,最终流式落地为可下载的 .mod 文件。

INPUT / PIPELINE IDLE

用户中文需求

示例
  1. 01
    Query Rewrite
    归一化 · 抽取关键词 · 任务分类
  2. 02
    Hybrid Retrieval
    bge-zh 向量检索 + BM25 关键词,融合 top-5
  3. 03
    Context Assembly
    System prompt + few-shot + 检索片段 (≤ 3.5K tokens)
  4. 04
    Local LLM
    Ollama → Qwen2.5-Coder-7B Q4 · 流式生成
  5. 05
    RAPID Post-process
    补 MODULE/PROC · 关键字大写 · 语法校验
  6. 06
    Write .mod
    → output/PaintTrigSync.mod · ✓ 校验通过
PaintTrigSync_IRC5.mod awaiting…
// 编辑左侧需求 → 按 RUN,完整 .mod 会在这里流式生成
WEB PREVIEW · 规则解析 · 真实工具用本地 LLM + RAG
03 Architecture

分层流水线 · 可单元替换 · 全离线。

从 CLI 入口到 .mod 文件落地,每一层都是单一职责的纯函数 / 单类。换 LLM、换向量库、换嵌入模型都不需要改其它层。

┌────────────────────────────────────────────────────────────────────┐
│                                                                    │
│   USER  ─────►  CLI (typer)  ─────►  Agent Orchestrator            │
│   中文需求      gen / chat              │                          │
│                                         ▼                          │
│                              ┌──────────────────────┐              │
│                              │  Query Rewriter (CN)  │              │
│                              └──────────┬───────────┘              │
│                                         ▼                          │
│              ┌──────────────────────────────────────┐              │
│              │  Hybrid Retriever  (vector + BM25)   │              │
│              │  ┌──────────────┐    ┌────────────┐  │              │
│              │  │ bge-small-zh ├──► │  ChromaDB  │  │              │
│              │  │ (CPU)        │    │  7497 ✂   │  │              │
│              │  └──────────────┘    └────────────┘  │              │
│              └──────────────────┬───────────────────┘              │
│                                 ▼                                  │
│                  ┌──────────────────────────────┐                  │
│                  │  Context Builder · Prompt    │                  │
│                  │  system + few-shot + ctx     │                  │
│                  └──────────────┬───────────────┘                  │
│                                 ▼                                  │
│                ┌─────────────────────────────────┐                 │
│                │  Local LLM · Ollama HTTP        │                 │
│                │  Qwen2.5-Coder · 7B Q4_K_M     │                 │
│                └────────────────┬────────────────┘                 │
│                                 ▼                                  │
│             ┌─────────────────────────────────────┐                │
│             │  RAPID Post-process                 │                │
│             │  • wrap MODULE / inject defaults    │                │
│             │  • format (keywords, indent)        │                │
│             │  • validate (regex, 8 rules)        │                │
│             └────────────────┬────────────────────┘                │
│                              ▼                                     │
│                      ●  output/*.mod   →  RobotStudio              │
│                                                                    │
└────────────────────────────────────────────────────────────────────┘

FIG. A-03 · 端到端管线 · 每个模块 200-400 行 · 67 个单元测试覆盖纯逻辑层 90-100 %

04 Highlights

为现场工程师设计 · 不是为 demo 设计。

F-01

真 · 离线

LLM 推理、嵌入模型、向量检索全部本地。拔网线、断 WiFi、隔离工厂网都能完整工作。

F-02

中文 描述

中文需求 → 中文注释 + 标准英文 RAPID 代码。术语映射、任务分类自动完成。

F-03

RAG over 官方手册

从 10 本 ABB PDF 切出 7497 片,向量+BM25 混合检索注入到 prompt。小模型也能引用 MToolTCPCalib 这种生僻官方指令。

F-04

喷涂场景 专精

5 个 painting few-shot 覆盖直线扫描 / Z 字扫描 / TriggIO 同步 / TCP 校准 / 圆弧轨迹。BrushData、扇幅、雾化全识别。

F-05

轻量·工业 PC 友好

Q4 量化模型 4.5 GB,CPU 推理 ≈ 25 s。无独立 GPU 可用。最小 3B 配置降到 8-15 s。

F-06

语法 自校

正则校验 8 类常见错误(块配对、关键字、分号、引号、字符串等)。输出直接导入 RobotStudio 不报错。

F-07

Windows / macOS / Linux

显式 UTF-8、跨平台路径、CRLF 自适应。install.batinstall.shpackage_offline.ps1 全套就绪。

F-08

一键 离线包

有网工作站打包 → tar.gz / zip → 拷贝 → 工业 PC install.bat /offline。U 盘部署。

F-09

67 unit tests · 0.5 s

核心纯逻辑(校验、格式化、切片、改写)覆盖率 90-100%。可信赖。

05 Specimens

真实生成 · 非样例桩。

下面 3 段代码来自 output/ 目录的真实端到端生成。模型本身不知道 MToolTCPCalib 这种 ABB 专属指令名 —— RAG 注入知识后,模型正确写出了使用流程。

A-01 · LINEAR .mod
从 p1 高速到 p2 低速喷涂,结束关喷
MODULE PaintLine
    PERS tooldata tSprayGun := [TRUE,…];
    CONST speeddata vPaint := [200,500,…];
    ! P1: 高速到位点  P2: 喷涂终点
    PROC main()
        ConfL\Off;
        MoveJ P1, v1000, fine, tSprayGun;
        SetDO doSprayOn, 1;
        MoveL P2, vPaint, z1,   tSprayGun;
        SetDO doSprayOn, 0;
        MoveJ P1, v1000, z50,  tSprayGun;
    ENDPROC
ENDMODULE
VALIDATED 78 s · 1.4 KB
A-02 · TRIGG-IO .mod
用 TriggIO 同步:距起点 80mm 开喷,500mm 关喷
MODULE PaintTrigSync
    VAR triggdata trgSprayOn;
    VAR triggdata trgSprayOff;
    PROC main()
        ConfL\Off; SingArea\Wrist;
        ! 距 P1 80mm 时开喷
        TriggIO trgSprayOn,  80 \DOp:=doSprayOn,1;
        TriggIO trgSprayOff, 500 \DOp:=doSprayOn,0;
        MoveJ P1, v1000, fine, tSprayGun;
        TriggL P2, vPaint, trgSprayOn,  z1,   tSprayGun;
        TriggL P2, vPaint, trgSprayOff, fine, tSprayGun;
    ENDPROC
ENDMODULE
VALIDATED 194 s · 2.1 KB
A-03 · TCP-CALIB .mod
用 MToolTCPCalib 写 4 点 TCP 校准
MODULE CalibSprayTCP
    ! 喷枪 TCP 校准 · 4 点法
    PERS tooldata tSprayGun;
    PROC main()
        ConfL\Off; SingArea\Wrist;
        TPWrite "== TCP 校准 (4 点法) ==";
        TPWrite "1. 进入 Calibration > Define Tool";
        TPWrite "2. 选 MToolTCPCalib 模式";
        TPWrite "3. 依次对准固定参考针 4 点";
        WaitTime 3;
        ! 结果自动写入 tSprayGun.tframe
    ENDPROC
ENDMODULE
VALIDATED 102 s · 1.9 KB
06 Spec Sheet

技术指标 · 实测数据。

PARAMETER VALUE / MEASURED
Source code3,664lines · 37 files
Unit tests67 / 67 passed0.5 s
Knowledge base7,497chunks · 10 PDFs · 54 MB
Vector storeChromaDBlocal · 52 MB persisted
Embedding modelbge-small-zh-v1.592 MB · CPU
LLM (primary)Qwen2.5-Coder-7B Q4_K_M4.5 GB · CPU 25 s/req
LLM (fallback)Qwen2.5-Coder-3B Q4_K_M2.0 GB · CPU 10 s/req
End-to-end latency8 — 35seconds (CPU)
Memory peak≤ 6GB (with 7B Q4)
Offline package191MB (.tar.gz, without LLM)
Platform supportWindows / macOS / LinuxPython ≥ 3.10
LicenseMITHollis36 · 2026
07 Quickstart

五行命令 · 上手。

假设已经装好 Python 3.10+Ollama。详细的 Windows 工业 PC 部署看 WINDOWS.md

macOS / Linux bash · zsh
# 1) 克隆 + 安装
$ git clone https://github.com/Hollis36/abb-offline-coder.git
$ cd abb-offline-coder
$ bash scripts/install.sh

# 2) 拉模型(首次需联网,~4.5 GB)
$ ollama serve &
$ ollama pull qwen2.5-coder:7b-instruct-q4_K_M

# 3) 把 ABB 手册放入 data/raw/pdf/ 后建库
$ python scripts/build_knowledge_base.py

# 4) 生成代码
$ abb-agent gen "对 600x400 矩形面做 Z 字扫描喷涂,行距 50mm"
Windows · 工业 PC cmd · powershell
REM 1) 安装(自动建 .venv + 装依赖)
> scripts\install.bat

REM 2) 启 Ollama 服务(保持开启,新窗口)
> ollama serve

REM 3) 拉模型 + 建知识库
> ollama pull qwen2.5-coder:7b-instruct-q4_K_M
> python scripts\build_knowledge_base.py

REM 4) 健康体检 + 生成
> abb-agent doctor
> abb-agent gen "用 TriggIO 实现喷枪同步开关"
08 Cite

如果它帮到了你

本项目是 MIT 协议开源工具,欢迎在内部部署、二次开发、写文档时引用。

@software{hollis36_abb_offline_coder_2026, title = {abb-offline-coder: Offline AI Assistant for ABB RAPID Painting}, author = {Hollis36}, year = {2026}, url = {https://github.com/Hollis36/abb-offline-coder}, license = {MIT}, note = {Local LLM (Qwen2.5-Coder) + RAG over ABB official manuals} }