这台产线上的称重配料系统用了快十年的S7-200,今天又因为配料精度问题被生产部打电话催了一遍。说实话,这几年PLC设备和方案一直在更新,但称重配料这个场景里,S7-200依然是很多工厂的实际主力,尤其在小料配料、化工助剂添加、饲料预混料这些产线上,S7-200的稳定性和编程灵活性到今天仍然能打。
这篇内容就是一份面向现场工程师的“傻瓜式”称重配料指南。从最底层的传感器选型、信号变送、梯形图逻辑,到触摸屏配方管理、调试标定、故障排查,一条线全部走通。不绕弯子,不堆术语,适合正在接手称重配料改造、或者想从零搭一套小配料系统的朋友参考。
1. 为什么称重配料还在大量用S7-200——以及“傻瓜式”的实现思路
先说一个反直觉的事实:S7-200早就停产了,但现役设备保有量非常大,很多做设备维修改造的老师傅手里离职的交接文档,打开就是STEP 7-Micro/WIN的工程。为什么大家不换?因为称重配料的核心需求——稳定、准确、可维护——S7-200完全能满足,而整套系统改到S7-1200/1500需要的不仅是换CPU,还有触摸屏协议、程序移植、现场布线改动,是一笔不小的投入。
1.1 称重配料系统的本质是什么
称重配料的本质就一句话:按预设重量,把物料从一个料仓加到称斗里,到重量就停。看起来简单,但工程难点藏在细节里——物料下落时有冲击力,料斗有残余重量,传感器有温漂,电磁阀有动作延时,快慢加料怎么配合,这些都是影响最终精度的关键。
一套完整的称重配料系统,通常由这几个部分组成:
- 称重传感器:把物料重量转换成微小的电压信号,一般满量程输出仅有2mV/V左右。
- 变送器或仪表:把传感器的毫伏信号放大,并转换成PLC能直接读取的4-20mA或0-10V标准信号。
- PLC:负责逻辑控制、配方存储、通讯和人机交互。
- 触摸屏:设定目标重量、配方号、自动/手动切换,以及显示当前重量和状态。
- 执行机构:通常是快加阀门、慢加阀门/螺旋给料机、卸料阀等。
S7-200在其中扮演的角色,是一个“超稳定的大脑”。它不追求花哨功能,但模拟量处理、定时器、计数器、比较指令这些基本功足够扎实,完全撑得起配料系统的控制逻辑。
1.2 “傻瓜式”不等于简单,而是“讲人话”
我们做工程的人,最烦的就是写一套只有自己能看懂的复杂程序。所谓“傻瓜式”指南,本质是:把配料系统的每一个环节拆开,讲清楚为什么这样做、怎么做、出了问题怎么查。哪怕你以前没碰过S7-200,只要照着图纸接线、照着逻辑理清流程,也能把系统调顺。
这套思路我建议新手和老手都按这个顺序走一遍:硬件选型 → 接线 → 程序 → 触摸屏 → 调试 → 排障。顺序反了就会到处返工,最容易出问题的恰恰是很多人上来就写程序,写完之后才发现模拟量信号根本没接对。
2. 硬件搭配:传感器、变送器和CPU,照着选就行
硬件选型这一步看着不起眼,实际上决定了整个系统精度的上限。很多精度问题不是程序写得不好,而是传感器量程选大了、变送器精度不够、或者信号干扰没处理好。
2.1 称重传感器怎么选:量程和灵敏度
称重配料常用的传感器是悬臂梁式,量程从几十公斤到几吨都有。选型的时候记住一个原则:工作重量落在传感器量程的30%到70%之间最合适。如果最大配料重量是50kg,那就选100kg的传感器,不要选500kg的。因为传感器是线性的,但在小信号段相对误差更大,量程选太大,小重量时输出信号太弱,精度很难保证。
传感器还有一个关键参数叫灵敏度,常见的是2mV/V。意思是每1V激励电压,满量程时输出2mV信号。用10V激励时,满量程输出就是20mV。这个信号非常微弱,绝对不要直接往PLC的模拟量模块上接,否则采到的全是干扰噪声。一定得经过变送器放大。
2.2 变送器:把mV信号变成标准信号
变送器的作用是把传感器输出的毫伏级信号,转换成PLC模拟量模块能够稳定读取的4-20mA或0-10V信号。选变送器的建议有几点:
- 选带隔离的,电源隔离加信号隔离,可以有效切断接地环路干扰。
- 选可标定零点与满度的,方便现场校准。
- 输出选4-20mA的最稳妥,电流信号抗干扰能力强,传输距离远,很多老产线都用这个。
这里特别注意,如果你手头没有单独的变送器,也可以用带RS485通讯的称重仪表,直接把重量值通过Modbus读进S7-200的自由口通讯,这也是很常见的方案。不过本文主线还是讲模拟量方案,因为它的接线和编程逻辑更通用。
2.3 S7-200 CPU和模拟量模块的搭配
具体到S7-200,建配料系统常见搭配是CPU224或CPU226加EM231模拟量输入模块。CPU221的IO点数太少,一般不用来做配料;CPU224有14DI/10DO,配一台触摸屏做两三路配料绰绰有余。如果配方复杂、要求更高,可以选CPU226。
EM231模块选型要看订货号。标准模拟量输入模块AI4x12位,支持0-10V和0-20mA。如果现场是4-20mA信号,模块上有一个拨码开关需要拨到电流档,然后在程序里做量程转换。这一步忘了拨,读到的数据会错得非常离谱。
如果是8路模拟量的需求,可以选择EM231 AI8x12位,或者干脆用两块4路模块。从维护方便角度,我倾向用4路模块,坏一个换一个,不用整块拆。
2.4 执行机构选型:快慢加料的阀门与给料机
配料精度很大一部分取决于执行机构。粗加料用大流量(大阀门、螺旋给料机高速挡),精加料用小流量(小阀门、低速挡)。常见的执行器有气动球阀、电动蝶阀、变频螺旋给料机、电磁振动给料机等。气动阀响应快、结构简单,很多小配料站都在用;螺旋给料机适合粉体,但要注意堵料和残留问题。
执行机构选型还要考虑一个“落差”概念。从阀门关到物料完全停止,中间还有一段空中余料,这部分重量就是落差。落差大,超差就大。所以系统里一般要有“粗加料提前量”和“精加料提前量”两个参数,给控制留出缓冲。
3. 称重变送的接线与信号调理:最容易翻车的几个地方
接线这部分,说实话是现场出问题最多的环节。传感器信号本身就是毫伏级,干扰一进来,读数飘得让人抓狂。以下是我总结的接线规范,照着做基本能避开90%的坑。
3.1 传感器四线制与六线制的区别
传感器常见的出线是四线制:EXC+、EXC-、SIG+、SIG-。有些传感器是六线制,多了两条反馈线SENSE+、SENSE-,用于补偿线缆压降,需要和变送器的对应端子连接。
很多初学者不知道,四线制长距离传输时,激励电压在线缆上会衰减,导致传感器灵敏度漂移。六线制能解决这个问题。现场原则是:距离变送器超过5米,优先选六线制;如果买的是四线制,把变送器尽量装在传感器附近,缩短信号线长度。
3.2 屏蔽层怎么接才有效
屏蔽层接了但没有形成一个完整的“法拉第笼”,等于白接。我的做法是:传感器信号线用双绞屏蔽电缆,屏蔽层在变送器端单点接地,PLC那一侧不接屏蔽层。这样可以将共模干扰电流导入大地,而不是顺着信号线跑进模块。如果两条传感器线都经过比较长的路径,屏蔽层两端都不要直接接大地,改成经过并联的电容接地,能防止接地环路形成。
3.3 EM231模块拨码开关和接线图
EM231模块的接线端子每个通道有RA、A+、A-三个端子。接电流信号时,RA和A+短接,拨码开关MODULE拨到mA档(具体以模块型号和手册为准)。接电压信号时,A+接信号正、A-接信号负,RA不用管。
这个拨码开关是被最多人忽略的细节。之前有个项目调试称重读数一直是满量程的冒泡,查了整整一天,最后发现模块出厂默认为电压档0-10V,接4-20mA当然读到的值异常。拨到电流档之后,量程转换才正常。
3.4 电源的隔离与滤波
变送器、PLC、触摸屏、电磁阀的电源建议分开供电。尤其是电磁阀这类感性负载,断电瞬间会产生很高的反向电动势,如果不做隔离,谐波会顺着电源线串进模拟量通道。
我的做法是给变送器配一个独立的24V开关电源,并且在变送器电源正极串一个磁珠,并一个100μF和0.1μF的去耦电容。这套滤波对抑制毛刺干扰非常管用,示波器测下来波形干净很多。
4. 梯形图核心逻辑:去皮、滤波、标定、快慢加料的完整写法
很多朋友拿到称重配料项目最头疼的就是梯形图怎么组织。这里给出一套我反复使用的框架,虽然不是唯一解,但结构清晰、方便维护,新手也能轻松看懂。程序分四个功能块:信号处理块、标定块、逻辑控制块、配方/通信块。
4.1 模拟量信号转换与数字滤波
EM231读回来的原始数据范围是0-32000(12位AD典型值,0-20mA或0-10V对应),它不是重量,必须通过标定转换成工程单位。转换思路如下:
假如变送器输出4-20mA对应0-100kg,那么程序里先做电流→百分比→重量。但更简洁的做法是:在触摸屏上直接设定“零位AD值”和“满量程AD值”,重量换算公式为:
重量 =(当前AD值 - 零位AD值)/(满量程AD值 - 零位AD值)× 传感器总额定量程
这段程序用S7-200的整数运算可能精度不够,必须用浮点数。建议把AD值先用数据转换指令变成实数(比如用I_TO_R指令),再套公式。我做这套程序时用了一个加解密式的思路:把模拟量采样值取均值滤波后再做换算。即同一时刻连续采集10次,每100ms采集一次,累加后除以10,得到平均值作为当前AD值。
测试下来,这种简单均值滤波能滤掉大部分振动干扰。如果还不够,可以加大采样次数到20次,但响应会慢一些,加料结束时可能会多冲一点,需要靠落差补偿来解决。
4.2 去皮(Tare)逻辑
传感器在空斗状态下,系统输出可能不是零,因为料斗自重、物料残留、传感器预紧力都会产生一个“零点偏差”。去皮逻辑很简单:按一次去皮按钮,程序把当前重量值作为新的零点存储,之后的重量显示都减去这个零点。
在S7-200里,去掉皮重我用一个M区触点和一条减法指令:M0.0置位后,执行当前重量 - 皮重 = 净重,随后把M0.0复位。皮重值存在V区断电保持区,防止一断电就要重新去皮。这个功能虽然简单,但非常影响操作员的使用体验。如果不做去皮,每个批次都得手动输入物料残留重量,生产上根本没法接受。
4.3 标定:两点标定和现场实操
标定的目的,是把AD值换算成重量公式里的零位AD值与满量程AD值找准确。理论上讲,两点标定就够了,但现场受传感器安装、机械结构的影响,标定做不好,精度会非常差。
操作流程是这样的:
- 空斗状态,等待读数稳定,记录零位AD值并写入配方参数。
- 在秤斗中加入标准砝码(比如50kg标准砝码,或者是已知重量的物料标定),等待读数稳定,记录满载AD值。
- 把实际砝码重量输入触摸屏标定画面,系统自动算出系数,存入断电保持区。
需要记录一个重要注意事项:标定过程对称重传感器的安装状态非常敏感。传感器上方压头如果卡死了,标定出来的“满量程AD值”就会偏小,导致实际配料量偏大。每次机械检修后,都必须重新标定。
4.4 快慢加料控制流程
这是配料的核心时分逻辑。设计思路是:先快速加料到接近目标重量,然后切换慢速给料,用很小的流量慢慢补到目标值,避免大流量惯性造成超调。
一个典型流程:
- 启动配料,快加阀门打开,慢加阀门关闭。
- 当重量达到“快加料目标值”(=目标重量 - 精加量 - 落差补偿)时,关闭快加阀,打开慢加阀。
- 当重量达到“慢加料目标值”(=目标重量 - 落差补偿)时,关闭慢加阀。
- 等2-5秒,让空中余料全部落下,如果重量仍未达到目标,启动“补料”逻辑:慢加阀点动几次,直到重量≥目标值。
- 卸料阀打开,放料完成后关闭,完成一个配料循环。
这套逻辑在S7-200里用比较指令就能实现。把目标重量、精加量、落差补偿都做成V区变量,在触摸屏上可调。不建议把这三个数值直接写死在程序里,不然物料特性一变,比如从颗粒料变成粉料,落差和精加量完全不同,现场就要麻烦你去改程序了。
4.5 配料循环中用到的关键指令
S7-200特有的几个指令,我在配料程序里用得最频繁的:
- 上升沿指令EU:用于按一次按钮触发一次动作,防止按着不放反复执行。
- 定时器TON:用于加料完成后的延时稳定、故障报警延时等。
- 加计数器CTU:用于批次计数。每完成一种物料加料,计数加一;配方完成即整批完成。
- 比较指令 >=I / >=R:用于判断目标值是否到达。注意重量是实数,比较也得实数比较。
还有一个常用的保护功能:如果模拟量模块断线或者信号超限,AD值会直接跑到32000或者0,这时候程序应该判为异常并停住,防止误加料。可以加一个AD值上限和下限的报警判断,超出范围立即关阀并报警。
5. 触摸屏与配方管理:把参数放给操作工
称重配料系统离不开人机界面。S7-200最常见的触摸屏搭配是威纶通(Weintek)的MT/TK系列,也有许多老项目用台达、西门子Smart Line,通讯协议走的是PPI。这块配置比较简单,但有几个要点值得单独说。
5.1 画面结构设计
我的触摸屏画面一般分四页:主监控页、配方设定页、标定页、报警页。
主监控页显示当前配方号、当前重量、目标重量、各个阀门状态、批次计数,以及自动/手动切换按钮。配方设定页放各物料的目标值、快慢加料参数、落差补偿。标定页专门给维修人员用,需要密码进入,防止操作工误改标定系数。
画面布局要注意,数字输入框一定要做上下限约束。比如目标重量最小0.1kg、最大为量程的90%,不然操作工误输一个500kg,而秤斗只有100kg量程,会直接造成机械事故。
5.2 配方数据存放与切换
S7-200的配方,我习惯用V区中的十个连续的VW或VD变量存一种配方。比如配方1有4种物料,那就用VD100到VD131存配方1的四个目标重量,VD140到VD171存配方2,以此类推。触摸屏上做配方号选择,切换时把对应配方数据批量复制到“当前目标重量”区作为动态变量。
这一步不要在梯形图里做太复杂的计算,直接使用MOV指令复制即可。复制次数多的话可以用循环,但在S7-200上考虑到程序扫描周期,不建议在主程序里做大数据块搬运,建议用子程序调用。
5.3 通讯口的设置与常见坑
S7-200使用PPI协议通讯时,触摸屏的PLC站号必须与S7-200的系统块设置一致。常见错误是触摸屏默认站号0,而PLC站号设置为2,导致通讯不上。另外S7-200的通讯口波特率默认是9.6kbps,部分老触摸屏要手动设成一致,否则也会连不上。
如果S7-200还要同时连接编程线缆和触摸屏,多主站通讯的情况下,记得在系统块里勾选“允许PPI多主站”,否则你会发现插拔编程电缆之后,触摸屏就断线了。
5.4 配方“一键启动”的实现
在触摸屏上加一个“启动配料”按钮,对应M0.0。梯形图里用一个置位指令把它置位为启动状态,配料循环完成后自动复位。这里建议操作流程做成“两步确认”:先按“配方确认”按钮,再按“启动配料”按钮。防止操作工手滑误启动,也方便在配料过程中随时暂停。
6. 调机与精度验证:从波动到达标的全过程
程序写完不等于系统能直接用。调试这一步,通常要花掉整个项目三分之一的时间。我自己调试的经验是:先调信号、再调逻辑、最后调精度,步骤不能跳。
6.1 第一步:验证模拟量信号是否准确
用万用表测量变送器输出电流,在空载和加砝码两种情况下分别记录电流值,和PLC读到的AD值对比,确认转换线性。如果PLC读数比万用表大很多,优先查EM231拨码开关是否在正确档位,以及是否把电压信号接到了电流档。
6.2 第二步:观察重量数值的稳定性
空斗状态下打开主监控画面,盯着当前重量数值看两分钟。如果数字在0.5kg以上无规则跳动,说明有干扰或机械振动问题。先检查传感器安装是否稳定,再检查信号线屏蔽层是否接地,然后用前面说的均值滤波把波动压下去。
稳定度目标:空斗静置两分钟,读数波动在±0.1kg以内可接受。如果无法达到,不要急着进入下一步调试,否则后面所有精度数据都不作数。
6.3 第三步:空跑逻辑,不打料
在全自动模式下,把目标重量设成一个很小的值,比如2kg,不投物料,观察阀门的动作顺序是否正确——快加、慢加、停止、卸料。这个阶段主要是验证梯形图的顺序和互锁逻辑,发现阀门互锁没做好立即改,不要等到打料时再发现。
6.4 第四步:带料测试,记录落差
第一次带料测试,建议目标重量从日常批次的50%开始,不要一上来就全量程。加完料停住后,观察最终实际重量和目标重量的偏差。假设目标50kg,实际52kg,说明超差了2kg,就把“落差补偿”调大2kg,或者把慢加料目标值提前2kg。这样反复调整两三轮,就能把误差压到±0.3%以内。
这里有一个很关键的问题,每次配料完成后,准确记录下实际重量和显示重量的差值。如果每次超差量都差不多,说明是落差参数没设好;如果超差忽大忽小,多半是精加料阶段阀门动作不稳定,或者物料流动性起伏太大,这就要查机械和物料问题而不是程序问题。
6.5 精度验证的指标怎么定
不同行业对配料精度要求不同,但一般可以参考这个标准:单次配料误差在±0.5%以内算合格,±0.2%算优良。记住,精度是相对于当前批次的设定重量来说的,不是相对于传感器量程。比如目标20kg,允许±0.5%就是±100g,系统就要确保最终重量在19.9kg到20.1kg之间。
验证方法:连续配料十批次,记录每一批实际重量,计算平均值和最大偏差。如果十批中有9批在合格范围内,且没有批次超界太多,就可以判定系统达标。这组数据建议存档,后续维护和查问题比什么都好用。
7. 售后式故障排查:常见症状、排查顺序和修复手段
系统交付之后,真正体现价值的时候是出故障时。下面几个症状是我这几年碰到最多的,排查思路也是经过验证的,直接按顺序走,效率最高。
| 症状 | 优先排查位置 | 典型原因 | 处理办法 |
|---|---|---|---|
| 重量读数跳动大 | 传感器/变送器/信号线 | 屏蔽层悬空、变送器电源干扰、传感器松动 | 检查屏蔽接地,独立供电,复紧压头 |
| 配料总是超差 | 快慢加料目标值 | 落差补偿不准确、慢加阀流量太大 | 重新测落差,减小精加量 |
| 配料总是差重(偏少) | 上料管道/称斗挂料 | 物料残留堆积在称斗壁、传感器被卡住 | 清理料斗,复位机械结构,重新去皮标定 |
| PLC与触摸屏连不上 | 通讯端口/站号/波特率 | 站号不一致、PPI多主站未使能 | 检查系统块设置,重启HMI与PLC |
| 模拟量显示是最大值32000 | EM231拨码/接线 | 拨码在电压档但接了电流信号、A+开路 | 拨码拨到电流档,检查接线端子 |
| 自动流程走到一半不动 | 程序互锁/传感器超限 | 某个条件不满足,卡在定时器或比较指令 | 监控PLC变量表,查找卡住的中间变量 |
7.1 重量读数波动的完整排查链路
这里展开说一下最典型的一种:重量波动大。我之前遇到一个项目,空载重量在-0.3kg和+0.5kg之间来回跳,配料完全没法做。我按这样的顺序排查:
第一,用万用表测变送器输出电流,发现空载时电流在8mA和8.2mA之间抖。这说明变送器输出确实波动,不是PLC采样的问题。
第二,拔掉传感器插头,用模拟电阻箱接进变送器,注入一个稳定的毫伏信号,再测输出。结果显示稳定在8.00mA,不抖。这说明变送器本身是好的,问题出在传感器或者信号线。
第三,重新检查传感器电缆,拆开航空插头后发现屏蔽层在插头内部脱落了,没有与变送器屏蔽端子相连。重新焊接屏蔽层后,波动立即消失。
整个过程半小时就解决了。所以做排障不要上来就怀疑程序,先从物理信号链路上找问题,很多时候最终答案就在一个焊接点、一个拨码开关、一根屏蔽线上。
7.2 配料超差的排查思路
超差这个症状区分两种情况:超加和欠加。
如果每次都超加(实际重量大于目标),把落差补偿调大即可。但调一次要重新检测验证,不要一次调太多,每次调整不超过超差量的50%比较稳妥。
如果每次欠加(实际重量小于目标),大概率是慢加料阶段提前停止了,或者精加量设置得太保守。可以先把慢加料目标值从“目标-落差”改成“目标-落差-一个增量”,让慢加阶段多补一点料,看看超差值的变化趋势。
还有一点容易被忽略:物料在称斗内未完全静止时,重量显示还在缓慢上升,此时如果程序判断到达目标就停止加料,实际稳定后可能超差。所以程序里加料停止后要延时等待2到3秒,再采集最终稳定值做补料判断。
7.3 通讯故障的排查顺序
触摸屏显示“PLC no response”,很多人的第一反应是换线、换触摸屏,其实应该先检查PLC的站号。S7-200的PPI通讯最容易出问题的地方就是系统块里的站地址。其次检查触摸屏的通讯参数是否和PLC一致,重点看波特率。
这里有一个实用技巧:用一根编程线(USB-PPI)连接PLC,在Micro/WIN里打开通讯设置,点击刷新,如果能搜到PLC,说明PLC通讯硬件正常。搜不到,就检查PLCCOM口的引脚定义和线序。别忘了S7-200的通讯口和普通232/485线序不一定兼容,很多所谓“PLC坏了”其实就是线序接错了。
7.4 程序突然不运行的常见原因
S7-200在运行中突然程序停止,基本可以锁定在以下几种情况:
- RUN/STOP开关被碰了:部分CPU上有物理开关,在控制柜里容易被误触。检查这一项只需要一秒钟,但要最先做。
- 编程电缆插着导致冲突:如果调试完没拔编程线,有些工程在线监控会锁住程序。
- 程序中有未处理的异常或看门狗超时:比较指令误用无限循环会导致扫描周期超时,PLC会跳STOP。
- V区数据被意外改坏:部分操作工误填了标定参数、配方数据,导致运算数据溢出,PLC程序崩溃。
遇到这种问题,用Micro/WIN连接PLC,打开“诊断”视图,查看STOP原因代码。根据代码定位模块,比盲目改程序高效得多。
8. 长期运行后的一些维护经验
最后说几个项目交付以后,真正影响设备寿命和稳定性的维护细节,这些是图纸和说明书上通常不会写的。
第一,S7-200的EEPROM写次数是有限制的,不要把配方修改这种频繁操作直接写入EEPROM。我在程序中把配方参数放在V区,并默认V区断电保持。操作工改完配方后,只提示“参数已保存”,不需要写EEPROM。很多老工程师习惯性地在每个修改后强行写EEPROM,长期看会损坏存储芯片。
第二,称重传感器的压头处,建议每半年加一次润滑油,每年把传感器上下压头拆开检查一次。多数“精度漂移”问题,最后查明原因都是压头卡死或者锈蚀,导致传感器受力不均,标定系数变了。
第三,模拟量模块的端子螺丝要定期复紧。称重配料现场的振动往往很大,端子松了会造成接触电阻变化,信号时好时坏,这是间歇性故障的常见根源。
第四,给系统做一个“配料日志”。在PLC里用断电保持区记录每次配料完成时间、目标重量、实际重量、超差值。遇到客户投诉精度问题时,回看日志就能知道是持续超差还是偶发波动,排查方向完全不一样。
我做过的最好的一个项目,就是冲着“傻瓜式”这个目标去设计的:所有需要的参数都显示在触摸屏上,接线端子全部打标,梯形图每个网络都有中文注释,故障报警直接定位到具体阀门。就算现场操作工换了一茬又一茬,只要有这份指南和图纸,新人也能很快接手。这套思路真的值得每一个做设备工程的同行认真学习。