在SMT车间待久了,会看到一个很典型的分歧:计划员在系统里看到一张工单显示“投产中”,就以为板子正在贴片机里一片片往外走;物料员看同一张工单的物料需求状态,却显示“欠料”,正急着催采购;工艺员那边可能刚做完首件确认,还没有放行量产。三个人对着同一套系统,说出来的却是三个完全不同的生产进度。
我之后花了大半年时间把这个问题彻底捋了一遍,发现根因就在标题里的那两个字——生产阶别。没有“阶别”这个骨架,后面的精细化管控、批次追溯、按单成本,甚至按物料缺口的动态排产,都很难真正落地。这篇就当是我们工厂管理的一个复盘来写,适合正在上MES、被缺料和尾数折磨,或者想把SMT工艺管理往细做的朋友。我会把阶别怎么划分、物料需求状态功能怎么实现、哪些坑我替你踩过,尽量一次讲透。
1. 为什么SMT要先分清“生产阶别”
1.1 一次让我决定重构的状态不一致
有一回我在一家做汽车电子的SMT车间做制造系统诊断,现场正在投一款12拼的仪表板主控板,工单数量4800片,折算下来大概是400块大板。计划员说工单已经释放,明天一早必须交第一批;设备工程师说钢网和贴片程序还在准备,首件没做;物料员捧着缺料清单说,还有两粒0603电容和一个连接器没有到货,采购买的是替代料,正在等承认书。
这三个人说的其实都是真话,但放在同一个管理口径里却互相矛盾。系统里那张工单只有一个笼统的状态“投产中”,它没有回答一个关键问题:生产到底进行到哪一步、缺料影响的是哪一个具体生产批次?结果就是现场为了赶交付,采用了最原始的方式硬扛——先手工放行,让前段印刷线先走起来,等物料到了再补上料记录。
这种做法听起来是不是很耳熟?很多SMT工厂每天都在这样“救火”。短期看确实把订单保住了,但代价非常大:投料记录和实际上料不一致,一旦首件或者巡检发现质量问题,你根本说不清楚这个批次里到底用了哪批电容、哪卷锡膏;月底对账时物料损耗会凭空多出一截,因为补录的记录会出现重复扣料或者漏扣。我后来总结,这类问题不是因为大家不努力,而是系统里的生产对象根本没有拆细,工单状态像一层布,把下面的所有乱象都盖住了。
1.2 “生产阶别”到底是什么
先给个不太学术但容易理解的定义:生产阶别,就是把生产执行对象按管控粒度拆成不同层级,并且在每个层级上设置独立的编号、状态和管控动作。用快递来类比就很好懂:一个包裹从营业部发出、进入分拨中心、最后末端派送,每一段都会生成新的流转记录,而不是只有一个“运输中”的状态。工厂也一样,订单是经营层面的事,工单是执行指令,但真正在产线上跑来跑去的,是更细的生产批次和拼板。
在SMT场景里,我习惯把管控对象分成这么几层。
| 阶别 | 典型编号示例 | 管控重点 | 作用对象 |
|---|---|---|---|
| 订单阶 | MO20250618001 | 客户交付、整单齐套、总数量 | 经营调度 |
| 工单阶 | WO20250618001 | 工单BOM、标准工时、成本归集 | 计划排产 |
| 批次阶 | WO20250618001-L01 | 上料清单、物料齐套、炉温曲线、首件 | 现场执行 |
| 拼板阶 | WO20250618001-L01-P12 | 拼板数量、坐标偏移、炉后抽检位置 | 单板追溯 |
| 单板阶 | 板级条码 | 客户序列号、维修记录 | 极细致追溯 |
这里有一个很常见的误区:很多人一听“阶别”,就以为要追溯到每一片单板,每一个元件。其实不是的,追溯粒度取决于你的产品要求和系统承受能力。如果做消费类小家电,一般管到批次阶就够了;如果是车规、医疗或者对序列号有强要求的客户,就需要进一步到单板阶。过早把系统做成“每一片板都不放过”,数据采集压力和人工扫码工作量会压垮产线,这是我自己见过很多项目失败的原因。
阶别真正的价值是让管控动作找到落点。比如工艺巡检发现第3批次的焊膏印刷存在偏移,你可以只拦截这个批次,把该批次单独拿去返工或隔离,其他批次继续正常生产,而不是把整张工单甚至整个客户订单都停下来。同样的道理,物料员追料时也不需要知道整张工单缺多少,他只需要知道“下一个要投产的批次还缺什么、缺多少、什么时候必须到”,这就是阶别在实操层面的意义。
1.3 为什么很多工厂一直停在“工单级管理”
道理讲了这么多,现实里很多SMT厂的管理颗粒度还是停留在工单层面。不是说他们不想管细,而是有三个很现实的原因卡在那里。
第一个原因是上游的ERP体系是按工单来设计逻辑的。MRP跑出工单需求,仓库按工单发料,财务按工单归集成本,一旦内部再做一层批次,就需要额外处理很多工单和批次的对应关系。很多企业怕麻烦,干脆不拆,所有数据都压在工单上。
第二个原因是组织习惯没跟上。计划、物料、车间各管一段,日常沟通还是停留在“那单货怎样了”这类模糊口径,没有人牵头定义过什么是一批、什么时候算齐套、什么状态下允许上线。系统能力再强,没有业务规则支撑,照样用不起来。
第三个原因是SMT产线的特殊工艺没有被理解清楚。SMT一段完整的生产不是从贴片机开始到炉后结束就完事了,它会涉及钢网印刷、SPI检查、贴片、回流焊、AOI等多个工序,而且还常常有换线、首件、接料、补料、拆拼板、尾数管理等动作。如果只把工单当成唯一对象,那么所有工序之间的等待、异常、物料调整都只能靠线下表格记录,管理就断在这里。
而且SMT行业有一个很特殊的点:同一张工单很可能分多批次生产。有的是因为同一个产品需要分两次上料,有的是因为中途发生工程变更,有的是为了把首件和量产的物料批次区分开。工单层面的状态管理完全没办法识别这些差异。所以,精细化管理的第一步不是上一个昂贵的系统,而是先把“工单之下还有批次”这个阶别立起来。
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. SMT生产阶别精细化管控的整体设计
2.1 拆批:把工单拆成可以独立执行的“批次”
明确了阶别的必要性之后,落地时第一个核心动作就是拆批。拆批不是简单把工单数量除以几,而是要根据工艺交付和物料准备的实际单位来拆。
我的经验是:一个批次,应当等于“同一个产品、在同一条产线、使用同一份上料单连续生产的一批板子”。这里的关键是“同一份上料单”。因为SMT一旦换线,需要重新换钢网、换Feeder、加载贴片程序、做首件确认,每一次换线都会带来质量风险和工时损失。如果一张工单在计划阶段就能确定一次上料做完,那就不需要拆;但如果工单数量很大、交货时间跨度长,或者中间还要切出去做其他产品,就必须拆成多个批次来管理。
批次数量应该控制在多少比较合适?我个人的经验值是一批尽量控制在半天到一个班次的产能范围内。比如一条线每天贴装300块大板,那么一个批次做到120到180块大板比较合理。拆得太粗,齐套判断没有意义;拆得太细,每批都要做首件和换线记录,管理动作造成的浪费反而超过收益。
拆批的同时要同步处理批次编码。批次编码一个最怕重复,一个怕看不懂。我建议采用“工单号+两位流水”作为唯一主键,再在批次主数据上挂产品料号、线体编号、班次、计划生产数量、计划开始时间和BOM版本。不要把温度、炉前数量这些会变的东西放进去,编码不是档案柜,越短的码在扫码枪里越好刷。
2.2 状态机是阶别管理的骨架
阶别定好了,每个阶别还需要一套明确的生命周期状态。很多工厂系统不是没有状态,而是状态字段被用成了“记事本”,今天改一下、明天改一下,最后没有一个状态是可追溯的。要精细化管控,状态必须在动作发生时才被计算出来,不能让人随便手工去改。
随手整理一个SMT批次状态的经典流转,大家对照自己工厂调整就好:批次创建后先是“待备料”,物料需求状态会实时计算,齐套后自动变成“已齐套”,这时候才允许打印上料单;产线领料并完成上料确认后进入“生产已释放”,释放不是立刻批量生产,还要做首件确认;首件合格才会走到“批量生产”;生产过程中如果发生缺料、设备故障、工艺异常,就要挂到“暂停”;如果巡检或AOI发现异常,则要进入“待处理”或者“质量扣留”;最后整批完成并完成过站核对,才关闭成“已完工”。
这个流转里最容易出错的两个点是“物料未齐套就释放”和“首件没确认就批量做”。在系统设计上,我建议把这两道门直接用硬校验卡住:物料需求状态不是“已齐套”,上料单就打不出来;首件确认没有记录,批次就不允许进入批量贴装。有些厂觉得这样太死板,非要留一个主管手工放行的口子。留口子可以,但是要保留审批记录,后续报表里要把“例外放行”单列出来,不能让它们混在正常批次里。
之所以花这么大力气管状态,是因为状态是后续看板、报表和异常升级的输入。比如说,现场缺料导致一个批次停在“已释放待首件”状态,物料看了就知道,工位已经准备好,只等料到位后马上做首件;计划看到同一个状态,就知道这批不影响已投产的尾数,可以把它排在换线后第一顺位。同一状态给不同角色提供不同决策依据,这才是状态机真正的价值。
2.3 物料需求状态功能如何与阶别联动
前面反复提到“物料需求状态”,这其实是SMT生产物料需求状态功能实现的核心输出。它不是简简单单列一张“库存低于安全库存”的报表,而是要回答七个问题:当前工单/批次缺不缺料?缺什么料?缺多少?什么时候必须到?可用库存里有没有被其他工单预占?有没有替代料可以用?到货后系统能不能立刻把料分配给这个批次?
我建议把物料需求状态分成三个层次来看:第一层是工单级需求,由ERP跑出工单BOM和总需求;第二层是批次级需求,把工单需求量按批次的生产数量展开,得到“这个批次需要哪些料、各需要多少”;第三层是分配与发料状态,记录哪些库存已经锁定给这个批次、哪些料实际已经领到线边。
批次级需求量计算必须考虑SMT的拼板结构。举一个实际例子,某个工单要生产250块大板,每块大板含2个拼板,每个单板用到某颗料2颗,这部分的用量就是250×2×2=1000颗。然后还要加损耗率。SMT贴片损耗在不同料件上差异很大,普通容阻件可能在0.1%到0.5%,连接器等异形件可能到1%甚至更高。假设我们取该料损耗率为0.3%,计划发料量就是1000×1.003,约等于1003颗。
下一步再看可用量。可用量不等于仓库里现存多少,而是用这个公式去算:可用量=当前仓库存实存+已经检验合格但未入账数量+采购在途且能在开工日前到达的数量-安全库存-已被其他工单预占的数量。假如仓库实存850颗,有200颗待检已确认合格但未入账,安全库存设定100颗,另一个急单已经预占40颗,那这个批次的可用量就是850+200-100-40=910颗。批次需求量是1003颗,缺口就是93颗,此时物料需求状态应该清晰显示“缺料:93颗”。
这里有一个很多系统都会踩的坑:如果只是把仓库现存量拿来比较,很可能会判断成“不齐套”,但其实物料在途第二天就能到;反过来说,如果库存数量够了,但是那批货处于冻结待检状态,系统却算成“齐套”,结果上料时才发现不能用。所以齐套判断必须把库存状态、到料时间和需求时间都放进算法,不能只做一个加减法。
当多个工单同时在抢同一颗料的时候,就需要一个简单的分配引擎,这也是有些同行在问“SMT求解器全称”的由来。实际它不一定是一个复杂的商业APS,而是一个动态分配逻辑,把所有可用库存按“批次计划开始时间”的先后顺序分配给各个批次,遇到产能和物料竞争时再根据客户优先级和切换成本调整。我在项目里用一段基于贪心策略配合线性规划的运算逻辑就解决了大部分问题,几秒钟就能得到每个批次的锁定数量。规模没那么大的工厂,不必一上来就上重型排产软件。
3. 从工单释放到首件确认:核心实现细节
3.1 关键动作与阶别对象怎么对应
理念说清楚了,接下来最难的是把管理动作落进日常流程。SMT一个批次从准备到完工通常会经历十个左右的环节,每个环节必须知道自己在处理哪个阶别的对象。
第一步,计划员在ERP里维护生产订单,但工单真正下达到车间时,必须在MES或自研系统里先执行“拆批”,系统同时展开批次物料需求;第二步,系统自动做批次齐套检查,如果缺料则把缺料清单推给物料人员;第三步,当物料需求状态为“已齐套”,系统才允许打印上料单和流程卡;第四步,备料员按照上料单把Feeder装好,由第二个人扫码复核;第五步,产线换线并加载贴片程序,做首件确认;第六步,首件确认合格后批量过炉,在关键工序扫码过站;第七步,整批完成,核对AOI抽检数据和炉温曲线,关单入库。
这套流程听起来不复杂,难点在于每个环节扫的码要和正确的阶别对象绑定。上料单上要同时有工单号、批次号、产品料号、料站表版本和设备编号;流程卡上要有批次号和拼板数量;首件确认记录要存当时的料站表截图,而不是只存一句“合格”。当数据绑到正确对象后,后续做物料反向追溯、质量回溯都会轻松很多。
3.2 缺料不能上线:用门禁代替人盯
许多工厂明明
