ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

饲料配料控制系统全解析:从称重到批次追溯的PLC工程实践

饲料配料控制系统全解析:从称重到批次追溯的PLC工程实践 接到 No.888 这个编号时我正在办公室看图纸甲方只给了很简短的需求一条新建的配料饲料加工产线要把称重、混合、输送、打包这几个环节统一到一套控制系统里实现从配方下达到成品出库的全过程可追溯。听起来是标准活儿但等我去现场转了一圈才发现真正要解决的问题远不止“装几台仪表、写一段PLC程序”这么简单。饲料配料这个行业很有意思。它不像精细化工那样要求极高精度但配方里的预混料、微量元素一旦加错整批饲料喂出去问题可大可小。传统的车间靠的是老师傅的手感用小铲子一铲一铲往台秤上添料这回我遇到的车间也是这状态。起初我跟着技术负责人去配料区看三个人分工合作一个人按配方单喊料另外两个人称料、倒料忙活半小时配出一锅效率和精度全靠人顶着。我当时就说这个“差不多就行”的误差就是整套系统最大的改造空间。从签合同到调试验收前后花了大概四个月。这篇文章就把 No.888 这个项目的完整技术思路、关键设计、还有调试期踩过的坑都摊开讲给准备做饲料厂、预混料厂或者类似散料配料产线的同行一个参考。1. 从手工配料到中央控制项目背景与总体方案1.1 饲料厂的真实痛点误差与追溯双缺失先说说这个车间的具体情况。年产大概6万吨的配合饲料原本配料工序是典型的人工模式质检员把配方单打印出来配料工按单子称重。一台电子台秤一把铲子一个桶这就是全部生产工具。问题有三个第一人工称重的波动非常大。取料的时候铲子大小不一读数的时机有早有晚同一个配方不同的人配料甚至同一个人早上和下午配料误差都不一样。特别是那种一锅料里只占0.5%的预混料一旦多称了20克整锅料的微量元素比例就偏了。第二出了问题追不到源头。一旦市场反馈某批饲料质量有问题厂里只能翻纸质单据看看差不多时间生产的大概是哪几批至于原料是哪家供应商、哪个批次、哪锅料用了多少完全说不清。这在小规模作坊里还能凑合想往正规渠道走这个短板是致命的。第三设备之间是信息孤岛。粉碎机、混合机、提升机、打包秤各自独立运行生产进度靠工人用对讲机互通产量统计靠下班前手写记录月底对账非常痛苦。所以 No.888 项目的核心目标我梳理成三条把配料和混合环节改造成自动控制精度目标设定为单料种误差≤0.2%FS批次合格率100%。建立完整的批次追溯链生产时间、配方版本、原料批次、实际称重量、操作员全部数字化存档。实现中控室集中监控一条产线只需要一个人值守。1.2 控制架构选型PLC称重仪表上位机组态三层结构控制系统架构方案我在设计阶段对比了好几种路线。最终采用的是经典的“三层结构”感知层用数字式称重仪表控制层用PLC监控层用上位机组态软件。这个选择的逻辑很简单。第一配料控制的核心在于称重信号的实时性和稳定性专业称重仪表本身自带滤波、线性校正、零点跟踪功能比PLC直接读模拟量省心得多。第二PLC负责顺序逻辑控制——投料顺序、闸门开关、混合时间、卸料联锁这是它的看家本事。第三上位机负责配方下发、生产监控、历史报表组态软件已经非常成熟不需要自己从零做界面。具体到设备选型PLC西门子 S7-200 SMARTCPU SR40 加上一个数字量扩展模块一个模拟量扩展模块。选这个主要看中它稳定、编程软件上手快、后期维护配件好买。当然用汇川、信捷这些国产品牌也没问题逻辑是一样的。称重仪表选了三台带Modbus RTU通讯的数字式配料仪表分别对应大料秤、中料秤、小料秤。仪表本身可以独立完成去皮、判稳、超差报警PLC通过RS485总线轮询读取重量值。上位机组态用组态王KingView通过以太网与PLC通信配SQL数据库做报表存储。选组态王是因为饲料行业用户对它比较熟悉操作工培训成本低。1.3 为什么不用一体化智能仪表方案市面上也有些一体化配料控制器一台仪表把多个料仓的配料逻辑全做了看起来更省事。我最终没选原因很实际一体化仪表如果本身出故障整个配料线就瘫了排查问题也不方便。而PLC仪表上位机的三层结构里仪表坏了可以临时手动操作PLC程序里还有一套重量上下限保护逻辑可以防止意外加料PLC坏了仪表也能独立显示重量应急处理空间大得多。这套系统在后期甲方维护的时候电工也更容易理解毕竟每个环节的职责划分很清楚。1.3 控制层级与职责划分表结构调整为1.2下面的补充子小节为了避免读者混淆把三层结构的职责和通讯方式列个表层级 | 设备 | 主要职责 | 对外通讯 控制层 | PLC | 顺序逻辑控制、设备联锁、报警处理、配方临时存储 | 以太网到上位机RS485到仪表 感知层 | 数字称重仪表 | 称重信号采集、滤波、去皮、判稳、超差输出 | RS485 Modbus RTU 监控层 | 工控机组态王 | 配方下发、画面监控、报警记录、数据库报表 | 以太网到PLCODBC到数据库这套结构跑下来最大的感受就是“各司其职”每一层出问题都能快速定位不会出现改一个参数牵一发而动全身的情况。2. 配料秤与称重传感器稳定性的根基2.1 传感器选型与量程计算配料秤是整个系统的“心脏”而称重传感器的选型则是心脏的瓣膜——选小了满载压坏选大了精度稀释。这个道理很简单但实际项目中经常看到有人把传感器选得过大。举个例子我这边一台大料配料秤秤斗自身钢结构约150公斤一个批次最大配料量是500公斤那么传感器承受的总载荷就是650公斤左右。配料秤通常用三只传感器或四只传感器支撑三只传感器的话每只承担大约217公斤。按1.11.3倍安全系数来选单只传感器额定载荷250公斤是最合理的。有人会问为什么不选500公斤的传感器留两倍余量不是更保险问题在于传感器输出的是毫伏级信号额定载荷越大同样的重量变化对应的输出电压变化越小。假设250公斤传感器输出灵敏度是2mV/V供桥电压10V满载输出20mV你要称的是217公斤那输出大约17.4mV信号很充裕。但如果换了500公斤传感器同样的重量就只有8.7mV信号幅度小一半仪表的分辨率和抗干扰能力都会打折。所以量程不是越大越好合适的利用率区间在70%90%。2.2 安装环节最容易忽略的应力问题传感器选对了安装出问题照样白搭。这个项目里踩过一个特别典型的坑秤斗和进料管之间的连接法兰。第一次空秤校准的时候怎么校都校不稳零点飘来飘去砝码加上去显示的数值和理论值偏了差不多3%。检查了半天最后发现是秤斗上方的进料管道直接和秤斗刚性连接了管子本身的重量、震动、热胀冷缩全压在秤斗上。后来把这段管道改成软连接帆布软接头并确保管道和秤斗之间完全分离零点才稳住。这算配料系统里最经典的机械应力问题做设备安装时务必盯紧这一处。另外还有几个细节传感器底座必须调整到水平用水平仪逐个确认误差控制在1毫米以内。每只传感器的压头受力要均匀可以通过仪表读数判断空秤状态下三只传感器的输出值应当接近相差超过5%就要检查是否压偏。连接传感器的信号线要用屏蔽电缆屏蔽层在仪表端单端接地。千万不能两端都接地否则形成地环路现场有变频器时会出现奇怪的重量漂移。防过载限位装置一定要留间隙一般是2~3毫米调到刚好不接触秤斗。太紧了会把秤斗“架”起来导致称重失真。安装完成之后一定要做标准砝码加载试验。我是在每只传感器对应的秤斗位置分别加载20%、50%、100%的砝码记录仪表读数计算线性误差和重复性误差。只有全量程误差在允许范围内才允许进入下一步调试。2.3 称重仪表与PLC的通讯方式权衡称重信号从传感器到仪表之后怎么把重量发给PLC常见方案有两种4~20mA模拟量输出和Modbus RTU数字通讯。我这次全部用的是Modbus RTU。模拟量方案的优点是接线简单PLC模拟量模块直接采程序里做个量程换算就行。缺点是模拟量信号在长线传输中容易被变频器、接触器这些设备干扰而且模拟量只能读到仪表处理后的当前重量像“稳定状态”“毛重/净重”这些状态字读不到。而Modbus RTU可以一次性把重量、单位、状态、去皮状态全读回来抗干扰能力也比4~20mA强不少成本不过就是双绞屏蔽线加一个通讯板卡。通讯参数设置上波特率我选了19200bps8位数据、无校验、1位停止位仪表地址分别设为1、2、3。这里有个细节PLC轮询三台仪表时每台仪表的响应时间大约30~50毫秒三轮询一遍大概150毫秒左右完全满足配料过程中重量采样速度的要求。如果波特率选9600虽然更稳但采样周期变长对快加阶段的响应会有影响。仪表本身的滤波等级我调成了中等太强会导致重量变化反应变慢太弱则容易有毛刺。3. 落料控制与误差补偿精度是怎么“抠”出来的3.1 空中悬料配料精度的最大敌人很多人第一次做配料项目会困惑目标重量设的是500公斤每次配料完成后实际重量总是超出有时候超出3公斤有时候5公斤为什么这么不稳定原因就是“空中悬料”。气动闸门打开料流从料仓冲进秤斗当PLC收到重量到达设定值的信号、关闭闸门的一瞬间闸门到秤斗之间那段管道里还有料这些料在闸门关闭后仍然会继续落下来进入秤斗。这部分重量理论上每次都差不多但因为物料流动性的波动、料仓料位的高低、闸门开度磨损实际上每次都略有不同。这多出来的部分就叫落差值。落差值如果小且稳定问题不大如果大且随机配料精度就崩了。处理的核心思路是“提前关门”不是等到目标重量才关而是提前一个“预计落差值”就发出关门信号。3.2 三段式落料与动态差值修正算法我把配料过程设计成了三段快加、慢加、点动。快加阶段目标重量在90%以下时闸门全开料流最大追求效率。慢加阶段到达90%后闸门关到半开状态减小流量给后面的精确关门做准备。点动阶段接近“目标值-预期落差值”时用非常短的脉冲控制闸门一次只放一点点料让最终重量尽量贴住目标线。具体到500公斤的大料秤参数大致是这样阶段 | 切换条件 | 闸门动作 快加 | 重量 450公斤 | 全开 慢加 | 重量 ≥ 450公斤 | 半开减小流量 点动 | 重量 ≥ (500 - 预期落差值 - 0.5公斤) | 短脉冲点动 关门 | 重量 ≥ (500 - 预期落差值) | 完全关闭这里最关键的就是“预期落差值”怎么定。纯靠人工设定一个固定值不够因为现场物料流动特性会变。我采用的是动态修正每批次配料完成计算出本批次的真实落差值然后和最近几次的落差值做加权平均作为下一次的预期落差值。举个简单公式每次配料完成后的预期落差值更新为新落差值 0.3 × 本次实际落差值 0.7 × 旧落差值这样落差值会随着物料状态缓慢自学习不会因为某一次的偶然波动就剧烈变化。我实测下来玉米这类流动性好的颗粒料落差值大约在3~4公斤麸皮这类蓬松料落差值在1~2公斤预混料小料因为流量小落差值只有0.2公斤左右。所以每种物料最好单独记录落差值不要混用一套参数。3.3 投料顺序与配方管理的工程经验配方设计不是简单地把料名和重量填进去就行投料顺序直接影响到成品质量。这中间有不少饲料行业的“潜规则”。第一个原则是“大料铺底、小料居中、大料覆盖”。也就是说先往混合机里下玉米、豆粕这些占大头的原料让它们先铺底再下预混料、微量元素这些占比很小的料让它们在中间被“包裹”住最后再用大料覆盖上去。这样小料不会直接粘在混合机底部或者死角里减少交叉污染。第二个原则是批次之间的换配方处理。如果上一批是肉鸡料下一批是蛋鸡料两者所用预混料完全不同中间一定要增加一个“清斗”动作混合机空转一段时间让残留料尽量排出同时配料秤斗做一次“空秤检查”。如果残留量超过设定阈值就报警不允许直接开始下一批次。这个环节最容易被忽略但它恰恰是微量成分超标的保险丝。配方管理上PLC内部保存最近10个配方的临时数据上位机数据库里存全部配方版本。每次生产前操作员在中控室选择配方号系统自动检查当前投用的原料仓和配方原料是否对应防止选错仓。具体到操作权限我用三级权限操作员只能选择已有配方、启动/停止生产工艺员可以创建新配方、修改配料顺序工程师才有权限调整PID参数、落差值、仪表校准。权限分离能避免现场误操作把参数改乱。4. 上位机监控与批次追溯系统实现4.1 组态画面的设计逻辑让操作工看得懂组态画面不是画得越花哨越好关键是要让一个只做过人工配料的老师傅能在十分钟内看懂当前生产状态。我的画面结构是这样设计的第一个画面是“产线总览”用一张侧视图把料仓、配料秤、混合机、提升机、打包秤全部画出来当前设备运行状态用颜色区分——绿色运行、黄色等待、红色报警。画面正中央大字显示当前配方号和本批次进度。第二个画面是“配料监控”三台秤的重量实时值、目标值、当前正在下的料种、快加/慢加/点动状态全部列成表格。特别注意要把每台秤的“当前重量曲线”画出来可以看到落下过程的曲线形态这对调参非常有用。第三个画面是“报警信息”最近报警的时间、内容、确认状态按时间排序方便操作员快速定位哪台设备出了问题。第四个画面才放“参数设置”和“报表查询”而且这类画面默认加密不是谁的账号都能打开。配色上我用了深灰色底加纯色高亮报警用红色闪烁慢加状态用黄色这种配色在白天强光下和晚上控制室昏暗环境中都容易辨认。4.2 数据库表结构设计完整的追溯链路批次追溯是这套系统相对核心的交付内容。我给客户建了一套SQL Server数据库核心表大概是这样的结构-- 配方主表 CREATE TABLE feed_formula ( formula_code VARCHAR(20) PRIMARY KEY, formula_name VARCHAR(50), version INT, create_time DATETIME, remark VARCHAR(200) ); -- 配方明细表存储每个料种的目标重量和投料顺序 CREATE TABLE formula_detail ( id INT PRIMARY KEY, formula_code VARCHAR(20), material_name VARCHAR(50), material_code VARCHAR(20), target_weight FLOAT, sort_no INT, tolerance FLOAT ); -- 生产批次主表 CREATE TABLE batch_main ( batch_no VARCHAR(30) PRIMARY KEY, formula_code VARCHAR(20), batch_time DATETIME, operator_name VARCHAR(20), mix_time INT, total_weight FLOAT, status INT ); -- 批次配料明细表记录每一秤实际称重的结果 CREATE TABLE batch_detail ( id INT PRIMARY KEY, batch_no VARCHAR(30), material_name VARCHAR(50), target_weight FLOAT, actual_weight FLOAT, deviation FLOAT, feed_status INT );这个结构的核心思路是“一次生产批次”对应“一条主记录”主记录下面挂“配料明细记录”。每一锅料生产完成实际重量和偏差都会写入数据库。以后甲方想追溯某一批饲料只需要知道成品批号就能反查出生产时间、配方版本、每一种料的实际添加量、当时操作员是谁甚至可以精确到哪一锅。报表方面我做了三种班次产量报表、日累计报表、批次偏差分析报表。前两种是生产统计用最后一种让工艺员定期看如果某一种料的偏差有增大趋势就说明设备可能要检修了。4.3 追溯流程的落地效果系统上线一个月后甲方做了一次模拟追溯演练随机抽取一个成品批号要求在十分钟内找出这批饲料用到的所有原料批次和供应商信息。结果不到三分钟报表就拉出来了。对比以前翻纸质单据翻半天效率提升不是一点半点。这套追溯能力不仅满足企业内部质量管理对迎接各类检查、认证也都用得上。这里额外提一个实践经验数据库要做好定期备份。我用的是Windows计划任务每天晚上自动备份一次保留最近30天。别嫌麻烦等到需要查几个月前的数据却发现数据库损坏的时候哭都来不及。5. 调试阶段踩过的坑与完整排查链路5.1 重量跳变干扰问题从变频器到接地的排查过程这个坑在系统联调第三天出现。现象是配料进行到慢加阶段PLC读到的重量偶尔会瞬间跳变2~4公斤然后马上又回落正常。表面上看只是数据闪了一下但配料程序会把跳变后的重量当真实值导致提前关门配料精度直接报废。我第一步先做确认确认跳变是仪表读数的问题还是PLC通讯的问题。在仪表面板上直接观察重量发现仪表本地显示也在跳说明干扰发生在仪表之前——传感器信号链路。第二步做分段排除。把配料秤周围的设备分组断电看重量是否恢复稳定。停掉混合机后没有改善停掉车间东侧的除尘风机时跳变明显减少但没完全消失。继续查发现风机旁边有一路变频器控制柜电缆从配料秤传感器信号线旁边约30厘米处并行走了大约五米。到这里原因基本清楚变频器输出侧的高频谐波通过空间耦合到传感器信号线上传感器信号本身又是毫伏级的稍有点干扰就会被放大。处理办法分三步将传感器信号线重新敷设远离动力电缆间距扩大到1米以上。屏蔽层改为在仪表端单端接地断开另一端接地。在仪表供电端加一个EMC滤波器变频器输出侧加磁环。做完这些再观察一个下午跳变消失。这个问题的排查链路核心经验就是“从信号链路两端向中间夹逼”不要上来就改程序参数。5.2 Modbus通讯掉线问题轮询周期与终端电阻另一个让人头疼的问题是Modbus通讯偶发掉线。上位机画面上某台仪表的重量偶尔变成长时间不变——比如维持在123.0公斤不动但其实料还在继续下。原因很简单PLC读到的是保持寄存器里的旧值通讯中断导致数据没有更新。排查过程如下先查通讯参数三台仪表的地址有没有重复波特率、校验位、停止位是否一致这些基础项全部复核正常。然后用串口调试工具单独轮询三台仪表连续发2000帧报文发现有一台仪表偶尔没有应答。但这台仪表本地显示完全正常说明问题出在仪表的通讯接口或总线上。接下来查物理链路。RS485总线的规范和普通网线不同需要终端电阻匹配。现场总线长度大约120米仪表之间手拉手连接末端没有加终端电阻。特别是靠近变频器的那个节点A/B线极性原先是反的我想了一下在末端仪表两端并联了一只120欧姆终端电阻并在PLC的RS485口也确认匹配正确全部接好后再通讯测试连续通宵跑了一个晚上再没出现过掉线。在实际项目里Modbus掉线往往不是单点问题而是多点小问题叠加。我的建议是把通讯当作一条“逻辑链路”——每个节点、每段线缆、每个参数都过一遍不要只看仪表。5.3 混合机卸料门误动作信号抖动引发的联锁陷阱最后一个坑发生在混合机环节。混合机卸料门的控制逻辑是混合完成后电机电流下降到空载值延迟5秒后开门。结果系统试运行第二天出现了一次误动作混合过程中电机电流瞬间降到阈值以下卸料门突然打开一批还没混匀的料直接排到了成品输送带上。排查过程查程序逻辑第一版程序用的是“电流低于阈值立即判定为空载”这存在一个漏洞。因为混合机内部物料翻滚时电流本身就有波动偶尔会有个瞬时低点低点持续时间不超过200毫秒。而PLC扫描周期很快完全可以在这个低点内完成判断并置位开门指令。这个问题的修复不复杂把判断条件从“瞬时低于阈值”改为“低于阈值且持续3秒以上”同时在开门指令前增加一个混合时间下限联锁——不管电流怎么变化混合时间没到就不允许开门。加了两层保险之后再跑一周误动作再也没有出现。这个坑给我的教训很直接所有关于“状态”的判断都应该是“持续状态”而不是“瞬时状态”。尤其在现场干扰多、信号波动大的环境里瞬时信号会骗人持续信号才可靠。5.4 调试阶段的时间分配建议结合上面几个坑我最想提醒的是不要在办公室盯着电脑调参多去现场看物料的实际流动状态。我个人的经验是配料调试有将近一半的时间应该花在“观察物料特性”上不同料种从闸门落下时的流量、冲击力、流动性直接决定了快慢加切换点怎么设。玉米粒径大落下速度快冲击也大麸皮蓬松容易搭桥下料不顺畅有时还要加震动器辅助。这些现象坐在中控室里是看不出来的。6. 写在最后给同行的几点实在建议这套 No.888 配料饲料加工控制系统上线稳定运行之后甲方很快把另外两条旧线也按同样的方案做了改造。要说技术上有多少高深的东西其实并没有核心就是传感器选好、安装做对、落料差值动态修正、链路上层层防干扰。我自己的体会是配料控制看着是重量控制实际上是一个物料特性、机械结构、程序逻辑三者交织的系统工程。每个环节单独拿出来都不难难的是一环扣一环的真实匹配。数据再好看不如现场多蹲几天参数再精细不如先把机械应力问题处理干净。如果你正在规划类似的项目我最后再给三条实在建议第一设备安装阶段就在现场盯着把软连接、传感器受力、线缆敷设这些基础工作做扎实后面调试能少掉一半的头发。第二落差值动态修正算法一定要做而且要做成分物料独立记录的版本别怕麻烦。第三所有报警信号都要做“持续确认”处理无论是模拟量超限还是开关量到位加上几百毫秒的延时判断能挡住很多现场干扰造成的灵异事件。没有花哨的技术但能稳定、能追溯、能让甲方踏踏实实生产这才是控制系统该有的样子。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进