BOM Toolkit — BOM物料清单管理工具包 v1.1
非标自动化项目BOM物料清单全生命周期管理,覆盖完整性检查、版本对比、机电拆分、供应商合并、变更说明生成。
五大模块
| 模块 | 功能 | 适用场景 |
|---|---|---|
| 模块1:BOM完整性检查 | 对照标准清单检查遗漏 | 采购前BOM审查 |
| 模块2:BOM版本对比 | 比较两版本差异 | 设计变更追踪 |
| 模块3:机电协同表拆分 | 分离机械BOM/电气BOM | 采购分工 |
| 模块4:供应商BOM合并 | 汇总多个供应商BOM | 多供应商整合 |
| 模块5:BOM变更说明 | 生成格式化变更报告 | ECN变更管理 |
模块1:BOM完整性检查
为什么需要这个模块
视觉检测设备BOM遗漏是常见但代价高昂的错误:
- 漏掉一个相机 → 设备无法检测,产线停线
- 漏掉光源控制器 → 光源无法工作,整台设备报错
- 漏掉伺服驱动器 → 运动系统瘫痪
- 漏掉线缆 → 设备无法组装,交期延误
一条遗漏可能造成数万到数十万的损失,这个模块就是要把关BOM的完整性,在采购前发现问题。
检查流程
- 读取BOM文件 — 支持 Excel (.xlsx, .xls)、CSV (.csv)、文本文件
- 提取物料信息 — 物料名称/描述、物料编码、数量、规格型号
- 对照标准部件清单检查 — 按9大类逐一检查
- 输出检查报告 — 按风险等级分类输出
标准部件清单(9大类)
核心成像系统(最关键,漏掉=设备无法工作)
| 部件 | 关键词匹配 | 风险等级 |
|---|---|---|
| 相机 | 相机、camera、线扫、面阵、线阵 | 🔴 致命 |
| 镜头 | 镜头、lens、远心、定焦 | 🔴 致命 |
| 图像采集卡 | 采集卡、frame grabber、GigE、CoaXPress | 🔴 致命 |
光源系统(漏掉=无法成像)
| 部件 | 关键词匹配 | 风险等级 |
|---|---|---|
| 光源 | 光源、light、条形光、环形光、同轴光、背光 | 🔴 致命 |
| 光源控制器 | 光源控制器、光源驱动、light controller | 🔴 致命 |
控制系统(漏掉=设备无法运行)
| 部件 | 关键词匹配 | 风险等级 |
|---|---|---|
| 工控机/主机 | 工控机、IPC、主机、computer、工业电脑 | 🔴 致命 |
| 运动控制卡 | 运动控制卡、motion card、控制卡 | 🟡 高 |
| 显示器 | 显示器、显示屏、monitor、屏幕 | 🟡 高 |
| 操作系统 | Windows、系统 | 🟢 中 |
运动系统(漏掉=无法移动/定位)
| 部件 | 关键词匹配 | 风险等级 |
|---|---|---|
| 伺服电机 | 伺服、servo、电机 | 🟡 高 |
| 伺服驱动器 | 驱动器、driver、伺服驱动 | 🟡 高 |
| 线性模组/导轨 | 导轨、linear guide、模组、滑台 | 🟡 高 |
| 丝杆/同步带 | 丝杆、ball screw、同步带、belt | 🟡 高 |
电气系统(漏掉=无法供电/通讯)
| 部件 | 关键词匹配 | 风险等级 |
|---|---|---|
| 电源 | 电源、power supply、开关电源 | 🔴 致命 |
| 线缆-相机 | 相机线、GigE线、网线、camera cable | 🟡 高 |
| 线缆-光源 | 光源线、光源触发线 | 🟡 高 |
| 线缆-电源 | 电源线、power cable | 🟡 高 |
| 线缆-通讯 | 通讯线、串口线、RS232/485 | 🟡 高 |
| 断路器/空开 | 断路器、空开、breaker | 🟢 中 |
| 接线端子 | 端子、terminal | 🟢 中 |
机械结构(漏掉=无法组装)
| 部件 | 关键词匹配 | 风险等级 |
|---|---|---|
| 机架/底座 | 机架、底座、frame、底座、框架 | 🟡 高 |
| 铝型材 | 铝型材、aluminum profile、2040 | 🟡 高 |
| 钣金/外壳 | 钣金、外壳、cover、防护罩 | 🟢 中 |
| 脚轮/脚杯 | 脚轮、脚杯、adjustable foot | 🟢 中 |
传感器与检测(漏掉=功能不完整)
| 部件 | 关键词匹配 | 风险等级 |
|---|---|---|
| 触发传感器 | 传感器、sensor、光电、接近开关 | 🟡 高 |
| 编码器 | 编码器、encoder | 🟡 高 |
| 激光测距(可选) | 激光、laser、测距 | 🟢 中 |
气动系统(如有运动/夹持)
| 部件 | 关键词匹配 | 风险等级 |
|---|---|---|
| 气缸 | 气缸、cylinder | 🟡 高 |
| 电磁阀 | 电磁阀、valve | 🟡 高 |
| 气管 | 气管、tube | 🟢 中 |
| 气源处理 | 过滤器、调压阀 | 🟢 中 |
软件(漏掉=设备无法运行)
| 部件 | 关键词匹配 | 风险等级 |
|---|---|---|
| 检测软件 | 软件、software、检测程序 | 🔴 致命 |
| 视觉库(如自研) | 视觉库、Halcon、VisionPro、OpenCV | 🟡 高 |
检查规则
致命项(必须全部通过):以下任何一项缺失,BOM直接判定为不通过:
- 相机
- 镜头
- 光源
- 光源控制器
- 工控机/主机
- 电源
- 图像采集卡
- 检测软件
高风险项(缺失需警告):以下缺失需明确警告,但不直接判定不通过:
- 伺服电机/驱动器
- 运动控制卡
- 线性模组/导轨
- 显示器
- 各类线缆
- 机架/底座
- 传感器
- 视觉库
中风险项(建议检查):以下缺失需建议检查:
- 操作系统
- 断路器/空开
- 钣金/外壳
- 气动元件
- 脚轮/脚杯
输出格式
═══════════════════════════════════════════════════════════
BOM完整性检查报告
═══════════════════════════════════════════════════════════
📋 BOM文件:{filename}
📊 物料总数:{count}
🕐 检查时间:{datetime}
───────────────────────────────────────────────────────────
🔴 致命缺失(设备无法工作)
───────────────────────────────────────────────────────────
[ ] 相机 - 未找到任何相机相关物料
[ ] 镜头 - 未找到任何镜头相关物料
...
───────────────────────────────────────────────────────────
🟡 高风险缺失(功能不完整)
───────────────────────────────────────────────────────────
[ ] 伺服驱动器 - 未找到驱动器
...
───────────────────────────────────────────────────────────
🟢 中风险缺失(可能影响使用)
───────────────────────────────────────────────────────────
[ ] 操作系统 - 未明确标注
...
───────────────────────────────────────────────────────────
✅ 已包含部件
───────────────────────────────────────────────────────────
[✓] 工控机 - IPC-610 (数量: 1)
[✓] 线扫相机 - MV-CL084-91GM (数量: 1)
...
═══════════════════════════════════════════════════════════
检查结论:❌ 不通过 / ✅ 通过
═══════════════════════════════════════════════════════════
特殊场景处理
- 用户只提供了部分BOM:明确告知只检查了部分内容,提醒用户补充完整BOM再次检查
- BOM中有"整套"/"系统"类物料:询问是否包含子BOM,如果有子BOM需要合并检查
- 设备类型不同:AOI设备必须有相机+镜头+光源;视觉引导机器人可能有相机但没有传统光源;根据设备类型调整检查项
- 用户说"这些不需要":记录用户的说法,但仍然在报告中列出,标注"用户确认不需要"
注意事项
- 宁严勿松:BOM检查宁可误报,不可漏报
- 关键词模糊匹配:用户可能写"相机"也可能写"camera",都要能识别
- 数量检查:有些部件数量为0也算缺失
- 规格确认:对于关键部件,提醒用户确认规格是否匹配
- 保存检查记录:每次检查生成报告文件,便于追溯
模块2:BOM版本对比
适用场景
- "对比BOM"、"BOM有什么变化"
处理流程
输入:两个版本的BOM Excel文件(.xlsx)
处理步骤:
- 读取两个BOM文件(通常是"电气BOM"sheet)
- 以"序号"为主键匹配物料
- 对比关键字段:品牌、名称、型号、规格、数量、单位
- 识别变更类型:
- 新增:新版本有,旧版本无
- 删除:旧版本有,新版本无
- 变更:关键字段值发生变化
输出:Excel变更说明报告,包含:
- 变更类型(新增/删除/变更)
- 序号、物料小类、名称、品牌
- 变更字段、旧值、新值
- 颜色标记:黄色=变更、绿色=新增、红色=删除
参考脚本:scripts/compare_bom.py
模块3:机电协同表拆分
适用场景
- "拆分机械电气"、"分出机械BOM"
处理流程
输入:机电协同物料清单Excel文件
处理步骤:
- 读取协同表(通常包含机械和电气物料混合)
- 识别物料分类依据:
- 按"类别"列:机械件/电气件/标准件/加工件
- 按"物料小类":判断属于机械还是电气
- 按品牌:电气品牌 vs 机械品牌
- 拆分为两个独立BOM:
- 机械BOM:钣金件、机加工件、导向件、传动件等
- 电气BOM:PLC、伺服、传感器、断路器、线缆等
电气品牌关键词:
施耐德、西门子、汇川、欧姆龙、菲尼克斯、三菱、ABB、
台达、安川、松下、基恩士、SMC、FESTO、实点科技、
REER、伯恩施坦、MOONS、天逸、胜蓝、正泰、德力西
机械品牌关键词:
米思米、怡合达、THK、HIWIN、NSK、SKF
加工件分类:
- 加工件/"钣金"分类
输出:两个独立的Excel文件
XXX_机械BOM.xlsxXXX_电气BOM.xlsx
模块4:供应商BOM合并
适用场景
- "合并BOM"、"汇总物料"
处理流程
输入:多个供应商的BOM Excel文件
处理步骤:
- 逐个读取供应商BOM文件
- 提取关键字段:品牌、名称、型号、数量、单位
- 以(品牌+名称+型号)为唯一键合并
- 相同物料数量累加
- 可选:匹配单价,计算总价
输出:汇总Excel,包含:
- 序号、品牌、名称、型号、数量、单位
- 单价(如有)、总价
- 汇总统计
参考脚本:scripts/extract_bom.py
模块5:BOM变更说明生成
适用场景
- "生成变更说明"、"ECN变更"
输出格式
| 变更类型 | 序号 | 物料小类 | 名称 | 品牌 | 变更字段 | 旧值 | 新值 | 备注 |
|---|---|---|---|---|---|---|---|---|
| 变更 | 5 | 伺服驱动器 | 伺服驱动 | 汇川 | 型号 | SV660N | SV660F | 升级型号 |
| 新增 | 23 | 传感器 | 接近开关 | 欧姆龙 | - | - | E2B-M12 | 新增工位 |
| 删除 | 15 | 断路器 | 微型断路器 | 施耐德 | - | iC65N 2P C6A | - | 取消 |
Excel格式规范
样式要求
- 表头:蓝底白字,加粗居中
- 数据:Arial 10号字
- 边框:细线边框
- 交替行:浅蓝底色(#F2F7FB)
- 冻结窗格:冻结表头和首列
- 列宽:自动适配内容
颜色标记
| 用途 | 颜色 | 场景 |
|---|---|---|
| 变更 | 黄色 #FFEB9C | BOM字段变更 |
| 新增 | 绿色 #C6EFCE | 新增物料 |
| 删除 | 红色 #FFC7CE | 删除物料 |
| 表头 | 蓝色 #4472C4 | 列标题 |
常见问题处理
Q1: BOM格式不统一怎么办?
- 先读取文件,分析表头结构
- 找到"序号"、"物料名称"、"型号"等关键列
- 适配不同格式(有的从第3行开始,有的从第5行)
Q2: 型号有细微差异如何匹配?
- 去除空格后比较
- 模糊匹配(如"SV660N"与"SV660FS"可能是同系列)
- 列出疑似匹配项让用户确认
Q3: 机电协同表中分类不明确?
- 优先按"类别"列判断
- 其次按品牌判断
- 最后按物料名称关键词判断
- 不确定的物料单独列出,让用户确认
相关文件
- BOM对比脚本:
scripts/compare_bom.py - BOM提取脚本:
scripts/extract_bom.py
版本历史
| 版本 | 日期 | 变更 |
|---|---|---|
| v1.1.0 | 2026-07-31 | 合并 bom-checker + bom-manager,统一为BOM全生命周期管理工具包 |
| v1.0.0 | - | 初始版本(bom-checker / bom-manager) |
Version 1.1.0 — BOM物料清单全生命周期管理工具包
