
搞了这么多年硬件和工艺我发现一个特别有意思的现象很多工程师天天挂在嘴边的“BOM”其实根本不是同一个东西。研发说的BOM、工艺那边排的BOM、车间产线上实际跑的BOM名字都叫BOM内容却差着十万八千里。等到试产出了问题追责的时候才发现大家手里的表根本对不上。今天就把设计BOM、工艺BOM和制造BOM这三者的区别、各自的用途、以及它们之间是怎么一步步转换的一次说清楚。这篇文章适合刚入行的硬件工程师、结构工程师也适合在PDM/PLM或者ERP系统里负责物料数据维护的同行。哪怕你暂时不接触工艺和产线理解了这三层BOM的演变逻辑对你画原理图、出物料清单的时候也会有很大帮助——至少你知道你手里那份清单到了下游会经历什么。1. 三种BOM的真实身份从图纸到交付物的一条物料主线BOM的全称是Bill of Materials字面意思就是物料清单。但物料清单只是一张表真正让BOM复杂起来的是这张表背后服务的对象、承载的信息以及它变化的节奏。业界习惯把BOM拆成EBOM、PPBOM、MBOM三类去看分别对应设计、工艺规划、生产执行三个阶段。1.1 设计BOMEBOM研发视角下的“图纸物料表”设计BOM是产品从无到有最原始的物料台账它的核心逻辑是跟着图纸和原理图走。在电子硬件项目里EBOM通常由硬件工程师在画完原理图之后从EDA工具比如Altium Designer、Cadence Allegro、立创EDA里导出的那份元件清单内容包括位号、封装、规格型号、数量、是否关键器件等在结构件领域EBOM则对应三维模型装配树展开后的零件明细。EBOM有两个典型特点。其一它是按“功能模块装配逻辑”组织的。比如一个电源板EBOM会按照电源输入、滤波、DC-DC转换、保护电路这样的功能单元把元器件分组这种组织方式跟原理图页面的划分高度一致研发工程师能一眼找到某个功能对应的物料。其二EBOM里的物料状态是“设计态”也就是说里面某些物料可能只是选型阶段的一个临时替代或者某个物料还没完全确定供应商甚至有几颗物料是“预留位”——原理图里画了位置但实际可不贴。这就导致EBOM不能直接拿去买料或者上线生产。原因很直接EBOM没有考虑一个物料是否可采购、是否有替代料、是否需要在特定工序分阶段投入也没有从单板-整机的路径去拆解物料。说得极端一点EBOM是一份“理想的物料集合”它默认所有物料按设计原样装配就能做出产品而现实往往是需要调整的。1.2 工艺BOMPPBOM工艺与制造的中间翻译层PPBOMProcess Planning BOM在不同企业里的叫法略有不同有人叫工艺BOM有人叫规划BOM还有人直接叫它“虚拟件BOM”。它的本质是连接设计与生产的桥梁核心任务是把EBOM整理成“面向工艺路线”的物料结构。也就是说PPBOM关心的是什么东西应该在什么阶段、以什么方式进入制造流程。PPBOM对物料做的最关键操作是“虚实转换”。EBOM里有很多物料是功能性的逻辑组合比如一个“电源模块组件”在EBOM里可能就是多个电阻电容芯片的组合但到了工艺BOM里如果这个组件是外购的标准模块就应该把它设成采购件如果是内部组装件则需要建立一个“虚拟件”或“中间件”的BOM节点下面挂上组成它的零件清单。PPBOM还有一个杀手级工作就是引入“工艺路线”信息。每个物料对应哪个工序加工、在哪道工序投入、由哪个车间完成这些在PPBOM里要梳理出来。比如机箱的钣金件可能涉及下料、折弯、焊接、喷涂四道工序PPBOM要把物料和工序绑定而在电子装联领域PPBOM要把PCB裸板、元器件、辅料焊锡、助焊剂、三防漆等分别挂到SMT、THT、组装、测试等不同工序节点下。1.3 制造BOMMBOM产线真正执行和库存扣账的版本MBOM是制造执行系统MES、ERP生产订单真正调用的物料清单它描述的是“制造和装配一件产品实际需要的物料、顺序和数量”。MBOM和EBOM看上去很像但细节不同最重要的一点是MBOM包含生产过程中需要但不会出现在图纸上的物料比如标签、包装材料、工艺辅料、返修预留件等。MBOM的结构更贴近“装配工序”。举个例子一台设备在EBOM里可能是一棵完整的树外壳组件、主板、电源、显示屏等等都在同一层但在MBOM里生产线是先装外壳再装主板然后装屏幕最后统一测试、贴标签、包装。所以MBOM通常把物料按“工位”或“工序”重新组织一个工位需要哪些物料、数量多少一目了然。这种组织方式让领料、备料、上线核对都非常方便。MBOM也是企业ERP系统里库存扣账的基准。车间的工人扫一个条码系统知道这是哪个工单的哪个工序自动扣减对应物料库存靠的就是MBOM里的物料挂接关系。如果MBOM和实际装配不一致轻则库存账实不符重则影响交期。所以MBOM几乎是企业数据准确度要求最高的一份BOM。1.4 三种BOM的核心差异对照维度设计BOMEBOM工艺BOMPPBOM制造BOMMBOM归属部门研发/硬件/结构工艺/IE/制造工程生产/计划/物控数据源头原理图/3D模型工艺路线设计生产工单/工序装配组织逻辑功能模块/图纸结构工艺路线/加工顺序工位装配/领料顺序是否含辅料一般不含部分含工艺耗材必须含标签包材等物料状态设计选型态工艺规划态可采购/可执行态核心用途设计评审、选型验证工艺准备、成本核算采购执行、排产、库存扣账变更频率高选型优化多中工艺调整时变低稳定执行期这张表建议截图存一下后面任何关于BOM的讨论先把“你指的是哪一种”确认清楚沟通效率能提升一半。2. 为什么BOM要拆成三层它背后解决的是企业协作的现实问题有些小团队可能会觉得搞这么多BOM太繁琐了我们直接一张表用到死不行吗坦率说项目简单、产品单一、产量小的时候一张大BOM确实够用。可一旦产品复杂一点、参与协作的部门一多一张表根本扛不住因为不同角色对物料数据的需求是冲突的。2.1 研发、采购、产线三方对BOM的诉求根本不一致研发希望BOM反映“设计意图”采购希望BOM反映“可采购性”产线希望BOM反映“怎么装”。这三种诉求放在一张表里必然打架。举一个具体场景研发在EBOM里放了两颗容值相同但封装不同的MLCC电容一颗是0402一颗是0603为什么因为板子上预留了两档设计需要根据实测结果决定最终贴哪颗。从研发角度看这是很正常的备选设计。但采购看到这张表会疯掉到底买0402还是0603买多了库存积压买少了交期延误。生产那边也头疼产线到底按哪个封装贴如果BOM经过工艺层转换这个问题就由“设计备选”变成了“执行确认”。工艺工程师会跟研发确认量产阶段到底锁定哪一颗确认后工艺BOM里直接删除未选中的物料制造BOM更是只保留确定要装的物料。这就是分层管理的意义——各层各司其职研发层保留设计灵活性制造层保证执行准确性。2.2 从EBOM到MBOM的演变本质是物料被“加工信息”加持的过程我习惯把BOM的转换理解为一个“给物料不断加属性”的过程。EBOM里的物料就像一个刚出生的孩子有名字、有规格、有父母所属模块但它还没被赋予社会角色——它要去哪个车间、走什么流程、跟谁配套。PPBOM就是给每个物料做“职业规划”的环节制造BOM则是“上岗排班表”。这么理解BOM转换可能更清晰EBOM阶段关注“是什么”What——哪些物料组成这个产品PPBOM阶段关注“怎么做”How——物料按什么工序、什么阶段投入MBOM阶段关注“用什么执行”With what——产线在哪个工位、领哪些料、装什么件。每一层都是在上一层的基础上做“加上新东西”的工作而不是推倒重来。所以这三种BOM之间天然存在血缘关系EBOM是源头PPBOM是枢纽MBOM是终点。这也是为什么很多企业上PDM/PLM系统时一定要把BOM变更的传递链条设计好——改了一层要有流程驱动下一层同步更新否则断层立马出现。2.3 没有工艺层直接EBOM转MBOM会发生什么不少初创公司或者小批量产线的硬件团队为了图省事会让ERP实施方直接把EBOM导入系统当MBOM用。短期看确实省事但隐患埋得特别深。第一个隐患是虚拟件问题。EBOM里经常有“模块化”的物料组比如一个传感器板由主芯片、外围电路、连接器组成如果直接按EBOM展开ERP里的生产订单会要求仓库分别发三样物料到产线可产线实际是想让供应商直接供一套“传感器板组件”而不是自己贴。这种差异轻则导致采购下单错误重则整个生产计划崩掉。第二个隐患是辅料和包材缺失。直接导入EBOM说明书、合格证、泡沫衬垫、外箱、标签、扎带这些“生产必需品”全都没有。等东西做完了要包装才发现没料临时补采购交期必然延误。这类问题几乎每个直接转BOM的企业都踩过。所以工艺层不是可有可无的它是BOM从“设计语言”翻译成“制造语言”的必经之路。规模小可以简化但跳不过去。3. 实操要点从EDA/结构工具导出BOM到底怎么处理和跨层转换聊完了理论下面说点能直接上手的东西。这一Part结合日常工作中最常碰到的几个场景——AD导出BOM、Cadence导出BOM、Creo二次开发读取BOM表以及拿到类似SW6206这样的原厂方案BOM后怎么消化利用。3.1 Altium Designer导出BOM的正确姿势与常见坑AD导出BOM的门槛很低菜单里头点一下就行但导出来的表能不能用就是另一回事了。很多人导出的BOM要么没有位号合并要么数量统计不对要么找不到关键物料字段根源在于导出前没有配置好模板。我的习惯是优先使用AD的“Report”里的Bill of Materials功能然后做三个关键配置第一分组字段选“Comment”和“Footprint”组合。如果不分组每个位号单独占一行一颗料有10个位号就出现10行BOM会膨胀得没法看。按CommentFootprint分组后同规格同封装的料会合并成一行数量列自动汇总。第二必须勾选并配置“Include Parameters From Components”里的关键字段。至少要有 Manufacturer Part Number厂商型号、Supplier Part Number供应商编号、Description描述这三样是后面做物料匹配的基础。如果库里这些参数为空导出的表就是残缺的拿给采购也没法用。第三位号栏Designator要转成单行文本。AD默认的导出里位号可能是逗号分隔的列表这个没问题但如果用的是某些老版本或插件位号可能被截断。我一般会在Excel里用一个简单公式再校验一下位号数量拆分为多个单元格后统计非空个数跟数量列做对比。数字对不上说明导出的位号有问题。还有一个细节AD导出BOM前先在原理图里跑一遍ERC电气规则检查确认没有未连接的引脚或悬空的元件。原因很简单如果原理图本身有问题导出的BOM哪怕格式再漂亮也是带病出生。3.2 Cadence导出BOM用CIS数据库保证物料字段一致性Cadence的OrCAD Capture导出BOM跟AD思路不同它的优势在于配合CISComponent Information System数据库可以强制保证原理图里的物料字段跟公司标准库一致。用Cadence导出BOM第一步要先确认原理图工程勾选了CIS配置。如果没有CIS所有物料属性都靠工程师手动填填错的风险极大。CIS的好处是你从库里选一个料它的厂家、型号、封装、价格档位、生命周期状态全部自动带出BOM导出的可靠性从源头就得到了保障。OrCAD的导出通常用“Tools - Bill of Materials”菜单里面可以配置输出的字段顺序。我比较推荐把Part Number作为BOM的第一列因为它是后续跟ERP对接的唯一主键然后是位号、数量、Value、Footprint、Description。字段顺序决定了下游同事的使用体验采购、计划看同一份表各取所需。一个实用的技巧是在Cadence导出BOM时把“Combined property string”里面的分隔符设置成一个不容易冲突的字符比如双竖线||。因为有些元件的Description里面会带逗号或分号如果分隔符用逗号导出后用Excel直接分列内容就会错位。用||或~这种冷门字符能大幅度减少分列出错。3.3 Creo二次开发读取BOM表结构工程师的自动化提效方案结构领域跟电子领域不太一样结构件的BOM通常在Creo、SolidWorks这类三维软件里以装配树的形式存在。Creo本身有“OMI”和“BOM报表”功能但对于需要频繁导BOM的团队手动导来导去太痛苦所以很多人会走二次开发。Creo二次开发读BOM主流的路径有两条。一条是用Creo TOOLKIT写C程序另一条是用J-LinkJava或者Web.LinkJavaScript写脚本。对于大多数做结构的工程师来说Web.Link是最容易上手的因为它不用编译写个JavaScript脚本放到Creo的启动目录就能跑。我见过比较成熟的方案是这样做的用J-Link遍历装配树把每个零件/组件的名称、编号、数量、材料、重量、备注导出成一个XML或CSV文件然后通过脚本自动生成结构BOM表。整个过程不需要人工打开模型一棵树一棵树地展开效率提升非常明显。这里的关键在于Creo模型里的参数命名要统一比如零件号参数统一叫CNAME材料参数统一叫CMAT否则脚本没法对所有模型通用。平面的建议是如果你所在企业有PLM系统Creo二次开发导BOM表的动作尽量直接对接PLM的接口把数据写入PLM的BOM模块而不是导成Excel再人工导入。因为Excel中转一次数据就可能被改一次准确性就掉一次。3.4 拿到SW6206这类原厂方案BOM后怎么消化吸收热词里出现了“SW6206原厂方案包含PCB、原理图、寄存器列表、BOM等全套资料”这里稍微展开一下。SW6206是一款非常常见的电源管理/移动电源主控芯片很多做消费电子的工程师都会拿到原厂或者方案公司提供的全套参考设计里面就包含了BOM。这种原厂BOM最大的价值是“参考”而不是“直接量产”。原厂的BOM往往是在理想条件下设计的用的物料可能都是大品牌、好采购、贵价的料。拿到这种BOM正确的处理方式是分三个步骤第一步筛选关键器件。主控芯片、Flash、电感、MOS管、充电协议相关的器件这些是核心尽量不要动动任何一个都可能影响功能性能。原厂BOM里这些物料的规格型号必须原样保留。第二步对被动器件做替代评估。电阻电容这类通用物料原厂BOM里可能用的是村田或者TDK如果你有长期合作的国产替代品牌比如风华、宇阳可以小批量试焊验证后替换。但必须确认容差、耐压、温度系数这三个参数不低于原设计。第三步把原厂BOM转换成自己的编码体系。原厂给你的BOM里可能直接是厂家型号而你的公司有自己的物料编码规则需要把厂家型号映射到公司内部编码然后才能进ERP。这一步别忽略很多人直接拿着原厂BOM找供应商下单结果采购系统里没有对应编码流程根本走不动。4. 从EBOM到MBOM的实操演绎一颗物料的“变形记”光讲概念可能还不够直观下面用一个简化的电子产品的例子把一颗物料从EBOM里的一个字符串变成MBOM里产线能直接扫条码的料完整走一遍。4.1 设计阶段的原始记录假设我们要做一款蓝牙温湿度传感器硬件工程师在AD里画完原理图后导出EBOM其中有这么一行位号ValueFootprint厂家型号数量C12, C13, C14, C15100nF/50V/X7R0402GRM155R71H104KE14D4这一行在EBOM里没有任何问题它表示设计需要4颗100nF电容放在C12到C15这四个位号上。但到了工艺和制造阶段这行信息是不够的——至少还有三个问题没回答这料从哪买在哪个工序用损耗算多少4.2 工艺BOM的处理逻辑工艺工程师拿到EBOM之后先做三件事。第一件事核对物料状态。GRM155R71H104KE14D是村田的型号价格高、货期长工艺或采购会评估是否有可替代的国产料。如果公司有替代料库比如有一家国产厂的料C1005X7R1H104K050BA规格参数一模一样经过验证可以替换那么PPBOM里会把“首选料”和“替代料”都标出来采购下单时优先买国产料缺货时切换村田。第二件事附加工艺信息。100nF电容属于表贴元件理论上在SMT回流焊工序随PCB一起贴装所以PPBOM中把这颗料归属到“SMT贴片工序”同时需要定义一个关键属性——“供料方式”。考虑到0402封装特别小编带供料必须用8mm编带这些信息会在工艺BOM里备注清楚供贴片机编程读料站时参考。第三件事核算损耗率。SMT贴片0402封装的电容行业里正常的损耗率大概在千分之三到千分之五。如果一次投产1万片那采购数量按10040到10050颗下单比较合理。这个损秗率在PPBOM里会作为参数记录ERP跑MRP物料需求计划的时候会自动把这部分安全量算进去。4.3 制造BOM的最终形态制造BOM接收到PPBOM传递过来的信息后做最后一步调整把物料按工位结构化。SMT贴片工位需要这4颗电容那MBOM里就会生成一个“SMT工位用料清单”包含100nF电容、对应编带规格、以及贴片机程序里的Feeder编号。产线操作员扫料时直接对照MBOM的工位清单领料不会出现多领少领的问题。如果这个产品还有组装和包装工序MBOM还会在最后追加说明书、合格证、吸塑盘、纸箱这些物料这些在EBOM和PPBOM里通常是看不到的。到这里一颗电容从EBOM里的一个设计符号变成了产线手里的实物BOM的三层演变才算走完。5. 常见问题与排查技巧BOM转换中那些让人头大的坑最后聊聊实际工作中BOM转换最常见的几个问题以及我自己的排查思路。这些问题几乎每个做硬件和制造的人都会遇到提前了解能省不少事。5.1 物料一物多码和一码多物一物多码是指同一个物料在不同工程师或者不同时期被创建了多个编码比如村田那颗GRM155R71H104KE14D有人建成了M1005-104K-50V有人建成了CAP-0402-100NF其实都是它。一码多物则反过来一个编码下面挂了多种规格多半是旧编码复用导致的。排查思路是在物料主数据里筛选“厂家型号封装规格”完全一致但编码不同的物料定期合并同时建立编码申请规范同一规格的物料禁止新建编码。这事靠人自觉很难上一个PLM系统在编码申请环节做查重拦截才能从机制上根治。5.2 BOM版本不对齐导致生产用错料研发更新了EBOM但工艺BOM和制造BOM没跟着变产线还在按老版本生产。这个问题在没上PLM的企业极为常见。我见过最严重的案例是一个结构件的EBOM从V1.2升到V1.3只是改了一个螺丝的长度结果工艺那边没同步生产还是用旧料整批产品装配后干涉全部返工。排查技巧核心就一句话版本变更必须走“BOM变更单”并且把变更影响范围定清楚。影响范围至少要包含三个地方——采购是否还有旧料库存、工艺路线是否要调整、产线工装/程序是否要变。如果三个答案都是否才能放行有一个是就要走对应的再确认流程。5.3 多工厂/多产线用同一份MBOM但工艺能力不同有些公司有几个生产基地A工厂有高速贴片机B工厂只有老式贴片机。同样一块PCBAA工厂可以贴0402封装的料B工厂良率很低。如果MBOM不做区分B工厂按同一份MBOM排产良率一定难看。这类问题的解法是“MBOM按工厂/产线做视图”。PLM或ERP里同一个成品编码可以挂多个BOM视图不同工厂调用对应视图。工艺工程师在发布PPBOM时一定要加上“工厂适应范围”的属性并在MBOM里做对应过滤。这个做法在汽车电子和大型家电企业里已经很成熟中小型公司往往意识不到等踩坑了才补。5.4 替代料在BOM里的管理方式很多制造企业的BOM里允许设置替代料但这个替代关系的有效期和验证状态必须管好。我的建议是把替代料分成两类一类是“已验证替代”就是经过可靠性测试、小批量试产可以随时切换另一类是“临时替代”比如主料缺货、客户交期紧用一颗规格接近的料顶上但只限本次工单有效。在MBOM里已验证替代料可以长期挂着生产系统缺料时自动建议切换临时替代料一定不要挂在标准MBOM里要挂在具体工单上生产完成后自动失效。不然这批用的替代料会一直留在BOM里下次排产系统又按它跑MRP干扰库存规划。5.5 BOM准确率的日常监控方法BOM准确率是制造企业非常核心的指标但很多公司从来没认真统计过。最简单的监控方法是“产线盘点法”随机抽若干工单拿着MBOM去产线一一核对看实际领料是否跟BOM一致差异项记录下来月度汇总算出准确率。这个方法不需要上什么高级系统但效果很好。一两次盘点下来哪个环节BOM容易出问题就清楚了是研发没更新还是工艺挂错工位还是物控改了编码没同步数据一摆责任一目了然。写在最后BOM这东西入门容易精深很难。很多人干了好几年可能还只见过其中一种形态却以为那就是BOM的全部。把设计BOM、工艺BOM、制造BOM的差异理清楚往小了说是避免项目沟通时扯皮往大了说是一家企业从“几个人手工做产品”走向“一套数据驱动制造”的必经起点。我个人在实际操作中最深的体会是BOM不是一张表而是一条链。这条链从研发的创意开始穿过工艺的规划落到产线的执行中间任何一个环节的失真都会在最终产品上暴露出来。下次当你再打开一份BOM文件时不妨先问一句这到底是哪一种BOM它在我这条链上处于什么位置想清楚了这两个问题很多数据混乱的问题其实已经解决了一半。