资讯动态

卷烟厂原辅料自动配给系统逻辑设计全解析:从配方展开到追溯闭环

发布时间:2026/10/14 6:16:46 来源:尧图企业网站定制
很多第一次接触卷烟厂自动化项目的朋友听到“原辅料自动配给系统的逻辑设计”这个活儿第一反应往往是一堆料仓、几条皮带、几个称重斗。真做起来你就知道逻辑设计这一关要是没过好后面电气、机械、软件全跟着遭殃。这个系统说白了就是车间里的物料配送神经中枢从烟叶配方烟包到香精香料从滤棒到盘纸凡是机台上要用的原辅料都由它统一调度、统一配送、统一校验。它解决的是生产现场最头疼的三个问题配方按比例准确执行、物料在正确时间出现在正确工位、每一个物料都能追溯到来源。这篇分享主要写给搞工控、搞MES、搞仓储物流的同行也适合刚入行的新人。我会把实际项目里的设计思路、踩过的坑还有现场最常遇到的问题一块儿交代清楚。1. 配给系统设计的第一步先界定范围和对象1.1 系统边界项目拿过来第一件事不是写代码也不是画图纸而是先跟工艺、生产计划、仓储的人坐下来把“配什么、给谁配、从哪到哪”这三个问题聊清楚。很多团队栽跟头就栽在边界模糊上干到一半发现某个料不该归你管或者某个动作其实应该由机台自己完成。我一般在需求阶段把系统边界定死成一句话从原辅料仓库和储料区开始到生产机台工位的收料确认结束。机台内部的加料、换料动作不在这个系统的控制范围内。这句话听上去简单实际执行的时候边界问题会反复出现。比如烟叶拆包后暂时存放在缓存区缓存区到底算配给系统管还是仓储系统管我的处理方法是按“是否被配给任务跟踪”来判断只要这个物料已经生成了配给任务它的流动过程就归配给系统管不归仓储管。这样责任清晰不会出现两套系统互相踢皮球。边界清晰之后设计逻辑才有明确的输入输出。系统的输入是生产计划输出是所有原辅料按需求到达指定工位中间的所有判断、调度、校验、记录都是逻辑设计要覆盖的内容。1.2 配给对象拆解与分类设计卷烟厂的原辅料远不止“烟叶”这么简单。粗略分一下至少有三大类每一类的物理形态、计量方式、输送方式都不一样控制逻辑自然要分开设计。物料类别典型物料计量方式输送方式配方类原料烟叶、烟梗、膨胀烟丝等重量、批次配方烟包、周转箱、AGV香精香料各种液体香料单体、料液克/毫升级微量计量管道、计量泵、罐体辅料类滤棒、盘纸、接装纸、盒皮、条盒等按卷/按箱/按件输送线、AGV、小推车为什么要专门把这几类料分开看因为它们对应的底层逻辑完全是两套。烟叶要按“批”追溯一批烟叶可能几十包同一批内允许混合使用但批次之间不能串香精香料是另一个极端用量到克浓度敏感计量精度要求极高辅料则是典型的定额配给不强调配方比例强调的是数量和规格。如果试图用一套通用的配给逻辑去套所有物料结果往往是每个特殊物料都会在代码里留下一个补丁补丁越来越多系统越来越难维护。我习惯的做法是在设计之初就把物料按上述分类抽象出分区模型每一类单独定义计量逻辑、批次逻辑和防错逻辑最后统一收口到一个任务调度框架里。1.3 分层架构把复杂问题拆成四层逻辑设计最怕的是所有逻辑都揉在一张大网里改一个功能牵一发动全身。我在这个项目里把系统拆成四个逻辑层每一层只干自己的事计划层负责从生产计划或MES系统接收工单展开成配给需求算出“要什么、要多少、什么时候要”调度层负责把需求排成任务队列决定优先级、分配输送设备、做路径规划执行层负责驱动底层的输送线、AGV、称重设备、扫码设备真正把物料送过去数据层负责记录任务日志、校验结果、追溯数据。分层的好处举个实际例子后期如果想增加“紧急插单”功能生产计划层和调度层各加一个规则即可执行层的设备逻辑完全不用动。如果逻辑揉在一起加这个功能很可能要重写一大半程序。分层看似多写了不少接口代码但换来的维护便利是实打实的。2. 配方展开与配给量计算把生产工单变成领料单2.1 BOM展开逻辑与配方版本控制配给系统自己不产生需求需求全部来自生产工单。工单拿进来之后要做的是配方展开也就是把“牌号A”这种抽象概念拆解成具体可执行的物料清单。展开过程分三层。第一层是叶组配方告诉系统这个牌号用哪几种烟叶、各占多少比例第二层是香精香料配方列出需要用哪几种香料单体、配比是多少第三层是辅料定额说明每生产一箱烟需要多少滤棒、多少盘纸、多少包装材料。一层一层展开之后系统才能得到完整的“领料单”。这里有一个特别容易踩的坑配方版本控制。同一个牌号工艺部门会不定期调整配方而且调整不是立即生效往往有明确的放行日期。配给系统取数时如果直接拿当前最新版本去套一旦工单的计划生产日期跨越了版本切换日就会配错料。正确做法是用工单的计划生产时间去匹配配方版本的生效区间工单在哪一天生产就用那一天对应的配方版本。这个版本匹配逻辑看起来简单但实际编码时很多人会写成“取当前时间的最新版本”。平时没问题一旦遇到跨版本切换的生产日就出大事。我曾经见过一个项目因为版本匹配做错一整批烟叶的叶组配方全用成了旧版等发现的时候已经生产了大半个班次。所以配方版本这块设计阶段就要当成一级功能来对待不能当成边角料。2.2 配给量计算公式与损耗处理需求量的计算公式不复杂需求数量 计划产量 × 单箱消耗定额 ×1 损耗系数举个例子一个班次计划生产200箱某个叶组的单箱消耗定额是12公斤损耗系数按1.5%估那么配给量就是 200 × 12 × 1.015 2436公斤。损耗系数这块很讲究。烟叶在输送、拆包、称量过程中会有飞尘损耗和残留定高了库存积压定低了生产不够。经验做法是试产阶段先把损耗系数定得保守一些运行一两周后用实际消耗数据回推修正而不是拍脑袋一次定死。香精香料的配给量计算更要精细。很多单体料液一个批次只用几公斤甚至几百克而且必须考虑管路残留和搅拌罐死区。比如管路里残留30克料液如果配给量只有500克那这30克占比就相当大了会造成实际浓度偏差。所以配给系统在计算香精香料需求时会把“管路清洗残留量”“罐底死区量”单独列一个修正项而不是简单套用单箱定额。辅料类的计算相对简单按件按卷按箱走定额即可。但要注意盘纸和接装纸这类卷材是有剩余量的上一班次用的那卷纸还剩多少这个余量信息要回传给系统否则下一班次按整卷定额配给现场就会堆积大量半卷纸。这个余量回传逻辑虽然小却直接影响库存准确度。2.3 库存视图、锁定与齐套校验配给系统不能拿“仓库里的总量”直接用它维护的是自己的“可用库存视图”可用库存 库存总量 - 已锁定量 - 在途暂存量这里“已锁定量”是为了防止同一个批次被两个任务同时占用。比如某批烟叶账面还剩5吨同时有两个任务各需要4吨如果不做锁定两个任务都会判定“库存够用”等到现场去取料时才发现只能满足一个。加了锁定之后第一个任务锁定4吨第二个任务就只能看到1吨可用系统会提示缺料调度员可以及时介入调整。齐套校验是另一个关键点。我的原则是不能一有配给需求就生成配送任务必须等所有相关物料都满足时才触发。否则机台旁边堆了一堆半成品物料既占空间又增加现场管理难度。齐套校验的时间窗口也要分别处理烟叶这类需要提前准备的物料可能要求提前2小时到位辅料类提前30分钟即可香精香料因为调配需要时间要提前4小时。每种物料单独算提前期再由调度层统一倒排这样既不会让机台等料也不会让物料过早堆积在工位旁边。3. 任务调度与输送执行让物料掐点到位3.1 任务优先级判定规则调度逻辑最容易犯的错是“先来先服务”。实际生产现场的需求优先级差异非常大一个只按队列顺序跑的系统要不了多久就会出乱子。优先级判定我习惯综合三个维度紧急性、先进先出、负载均衡。紧急性看的是机台剩余可生产时间比如2号机台8分钟后就要断料3号机台还能撑1小时那毫无疑问优先送2号机台。先进先出是要兼顾物料的库存批次顺序避免老批次长期压库。负载均衡则是看输送设备的忙闲情况优先派空闲的、离得近的设备去执行。这三个维度在实现上不能简单加权求和因为不同场景下主导因素不一样。我的做法是设计一个两级判定规则先按“紧急程度”分档断料风险高的任务直接进最高优先级队列同一档内再按先进先出和时间窗排序。这样既照顾了最紧急的情况又不至于让次要任务被饿死。3.2 输送链路与到位确认输送执行这块不同物料的执行逻辑差得很远。烟叶配方料通常靠AGV或输送线搬运配方烟包一次送一个工位的整批料香精香料靠管道和计量泵按配方顺序向调配罐注入辅料类可能用悬挂链或AGV配送按件按箱送到机台缓存位。不管底层用哪种设备到位确认逻辑是一致的必须区分“物理到位”和“逻辑到位”。物理到位是传感器或定位系统告诉系统“有东西到了”逻辑到位是经过扫码、称重、数量比对之后确认“到的东西是对的”。这个区分特别重要。我见过不止一次AGV开到工位附近光电传感器触发系统就认为物料到位并通知机台可以取料结果操作工过去一看AGV根本没对准工位箱体还歪着。所以我的设计规范里明确要求传感器信号只能作为“物理到位”的触发条件必须再加上扫码确认和重量校验全部通过之后才允许机台放行取料。这个逻辑多写几行代码却能省掉后面无穷无尽的扯皮。3.3 输送节拍估算与瓶颈分析调度逻辑写得再漂亮设备产能跟不上照样白搭。所以逻辑设计阶段必须做一次节拍估算别等系统上线了才发现配送能力不够。估算步骤很简单先把所有机台的峰值要料频率列出来比如高峰时段同时有8个工位要料再统计单次配送周期的耗时比如一台AGV从装料点到工位12分钟来回就是24分钟接着计算一个小时内整个系统的任务总量和设备可用时间最后对比任务量和产能确认瓶颈。用这个办法算过之后发现高峰期已经超出设备产能往往不是加一台AGV就能解决的还要看装料工位和卸料工位是不是卡脖子。装料工位同时只能装一辆车整个系统每小时最多发出5个任务那车再多也没用。这时候要在逻辑设计里增加装料工位的排队控制逻辑甚至优化装料顺序来压缩周期。3.4 异常兜底逻辑超时、死锁、掉料正常流程谁都写得好异常流程才是见真章的地方。超时未送达是最常见的异常。任务发起后系统必须有一个超时监视器超过预定时长还没有收到逻辑到位信号就把任务打入异常队列同时触发一个补偿任务或者直接通知调度员介入。这个超时设定不能太长否则机台等料也不能太短否则稍微有点拥堵就报警现场全是噪音。我通常把正常配送周期乘以1.3倍作为超时阈值运行后再根据实际数据微调。AGV交通死锁是另一个高频问题。两台车在窄巷子里对头堵住如果调度逻辑没有死锁检测系统会一直僵在那里。死锁检测的设计思路是调度层维护每台车当前所在路段和下一路段如果发现两台车互相占用对方的目标路段就主动让其中一台先退到避让点。这个检测必须写在调度层靠现场人员喊话指挥AVG避让在自动化项目里属于事故不是方案。输送过程中掉料也要考虑。比如烟叶烟包在AGV上倾斜或者周转箱翻倒靠什么发现我的做法是给载具加姿态检测和重量复核。AGV接料后、卸料前各称一次两次重量不一致直接报异常不允许卸料。这个逻辑在设备成本上多花了一点但能避免把缺斤少两的料送到机台后面省下的都是大麻烦。4. 防错校验与追溯闭环把错误挡在系统内4.1 防错的三道逻辑关口配给系统里“配错”比“配不到”更致命。烟叶批次混用可能导致整批产品风味变化辅料规格错了直接造成废烟香精配方加错更是连补救机会都没有。所以防错设计是整个逻辑设计的核心不能靠操作工自觉要把错误在系统层面拦截掉。我设计了三级防错关口防错层级校验内容执行方式入库身份绑定物料批次、等级、数量、质检状态二维码/RFID绑定生成唯一身份工位期望校验该工位当前牌号需要什么物料配给任务生成时比对工位配方表到位三向校验期望物料、任务内容、实到物料三者一致扫码 称重 PLC确认入库身份绑定解决的是“物料从哪来”的问题。所有原辅料在入库时就要绑定唯一身份码这个码后面跟着批次号、产地、等级、数量、质检结果。后面配给系统的所有校验都基于这个身份码。工位期望校验解决的是“该不该送”的问题。每个机台当前生产的牌号不同需要的物料也不同。配给任务在生成时就要和工位当前的配方表比对防止把A牌号的烟叶送到正在生产B牌号的机台。这个校验看起来多余但换牌号的时候特别容易出问题因为现场可能同时残留多个牌号的物料。到位三向校验解决的是“送对没有”的问题。物料到达工位后系统拿到实扫的物料码要和任务里登记的物料码、工位当前期望的物料码三方比对全部一致才确认到位。这三级都过了系统才允许机台取料。4.2 称量精度与落差补偿逻辑称量精度控制是配给系统里最细节也最磨人的部分。烟叶配给通常用大称量衡器精度要求相对粗但要处理“落差”问题。给料过程一般是高速给料快速接近目标值到了设定值附近切换成慢给停料信号发出后料仓到称斗之间还在流动的物料会多落下来一些这部分就叫落差。如果落差是固定值问题不大但实际中物料含水率一变流动特性就变落差就不稳定。比如水分大的烟叶流动性差下料慢实际落差值就偏小配给结果就偏少。处理办法是让系统记录最近五到十批的实际超差量自动修正关料提前量形成自适应的落差补偿。这个逻辑不用写得太复杂一个滑动平均滤波器就能工作得很好。我见过有人一开始用固定落差补偿运行一段时间后误差越来越大就是因为没有考虑物料特性的变化。香精香料的微量称量是另一个难点。这类物料大多是液体或膏状系统要求精度到克级还要考虑滴漏。阀门关闭之后管口残留的料液会继续滴落影响最终计量。处理方式是在阀门关闭逻辑中加一个“防滴”动作比如关闭后短暂延时再反向回吸一小段料液或者延长慢给时间把最后几克精确打进去。微量称量还要考虑环境因素。温度变化会影响料液粘度粘度一变泵的计量误差就跟着变。所以这类称量设备最好带温度补偿逻辑或者至少保证计量操作间温度稳定否则冬天夏天数据差异会很明显。4.3 追溯数据链的设计思路防错把错误挡在前面追溯是把已经发生的过程完整记录下来万一出现质量问题能快速锁定原因。追溯设计我习惯用三个数据实体来实现。第一是配给任务表记录每个任务的基本信息任务号、目标工位、对应牌号、计划时间、执行状态。第二是执行明细表记录每个物料的实际流动情况物料批次、身份码、数量、操作时间、操作人员、使用设备。第三是校验日志表记录所有防错校验的现场数据扫码结果、称重读数、异常说明、确认时间。配给任务号要作为中间纽带把原料批次和产成品批次串起来。正向追溯是从某批原料出发查它被哪些配给任务使用这些任务对应到哪一批产品反向追溯是从某批成品出发倒查它用了哪几个配给任务每个任务用了哪些批次的原料。检验追溯设计好不好的标准很简单模拟一次质量倒查看能不能在五分钟之内从成品批次锁定到具体的原料批次、具体的配给时间段、具体的操作人员。如果做不到说明数据链有断点设计就得返工。5. 现场常见问题排查五类高频故障的应对思路5.1 账实不符库存视图和实物对不上是所有配给项目上线初期最让运维头疼的问题。现象是系统里有库存但实物找不到或者现场堆了一堆料而系统显示为零。原因多数出在流程没有闭环。比如退料没有走系统操作工直接把多余的料放回仓库或者扫码漏扫物料没有绑定任务就流到现场。处理办法是强绑定所有物料流动必须经过扫码确认才能变更库存状态退料必须走反冲销流程不允许出现“实物动了但系统不知道”的情况。另外每个月固定做一次差异复盘只看异常单据不要每次都全面盘点。5.2 配方版本乌龙前面讲过版本控制这里说一个我实际遇到的变形某天工艺部门临时调整配方说次日生效但调度员把工单时间改了一下跨过版本生效线系统取到的配方就乱了。这种问题靠流程解决不了系统层面必须有强制校验工单的计划生产日期一旦落在版本切换日附近系统直接弹出确认提示要求调度员确认版本选择。宁可多一次人工确认也不要自动静默处理后患。5.3 输送超时与AGV堵车任务挂在配送中机台等料这是现场最常见也最赶人的问题。我在前文讲到的死锁检测这里再补充一个排查技巧查看“停留时间超长”的车辆如果同一路段上有多个车辆长期不动大概率不是单点故障而是调度死锁。解决后还要看是偶发还是频发。频发的话多半是路径规划层只考虑了最短路径没有考虑路段拥堵。这时候要调整调度参数比如给路段加动态拥堵权重而不是每次都走同一条热门路线。5.4 称重误差漂移烟叶配给量越来越偏复查发现落差补偿的值已经和环境不匹配了。这种情况多半是物料含水率变化导致流动性改变固定补偿失效。解决办法我前文提过把落差补偿改成自适应按近期实际超差量动态修正。工具上并不复杂关键是别把补偿值写死在程序里。5.5 通信中断导致任务悬挂配置任务执行到一半AGV或输送线和调度中心断线任务卡在中间状态。网络恢复后如果任务从头开始执行会造成重复配送如果直接放弃又会造成物料缺失。正确逻辑是任务状态机在设计时就考虑断点续传设备侧先把当前位置和状态保存在本地网络恢复后向调度中心请求续跑调度中心核对已完成步骤从断点继续执行而不是重启整个任务。这个设计必须在逻辑设计阶段就做别等现场遇到通信故障了再补。我就吃过这个亏前期没考虑续跑逻辑结果调试期断了一次网全场任务全部重新派发现场乱成一锅粥从那以后状态机里永远预留断点恢复的中间态。最后再说说个人体会。做过几个类似配给项目之后最大的感受是项目后期改得最狠的往往不是设备能力而是逻辑设计阶段没想清楚的异常场景。急插单、换牌号、断网、传感器误报这些事不在图纸阶段列出来调试现场就会天天被追着问。所以我的习惯是逻辑设计阶段多花两周画状态机、列异常清单、模拟极端工况比现场加班一个月管用得多。配给系统说白了就是个流程机器流程理清楚了设备反而是最听话的那一环。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑