
1. 为什么要做这套称量系统车间里称不准、配不快的痛点先说个真实场景。我之前去一家做塑料改性颗粒的工厂调研他们的配料车间还停留在人工模式工人在电子台秤前面拿铲子一铲一铲加料加到差不多的位置再用手捏着料袋抖一点找补。一个班下来操作工胳膊酸、眼睛花配方稍微复杂一点就要两个人在秤旁边配合。更要命的是批次之间的一致性完全看当天工人的状态——心情好的时候误差小赶上赶产量的时候配方偏差百分之五都能给你配出来。原料贵废品更贵一批料配错了拌进混合机里下游挤出机一开就是几个小时处理废料的成本让老板肉疼。这套基于PLC的物料自动称量控制系统说白了就是把人盯着秤加料这件事变成PLC盯着秤加料。核心就三个环节称重配料、物料混合、程序组态。前两个解决工艺问题最后一个解决人怎么看、怎么操作的问题。项目做完之后交付物里有一项让我印象很深——每套程序都必须附带带解释的梯形图。这件事后面细说因为它直接关系到客户能不能自己维护这套系统。如果你正在做PLC非标项目、做设备改造或者学生党在做PLC相关的毕业设计这篇内容应该能给你一个完整的参考框架。我从硬件链路、梯形图逻辑、组态画面到现场调试顺序讲下来会尽量把那些文档里查不到、只在现场踩过坑才知道的细节也讲清楚。2. 硬件选型与信号链路称重传感器到PLC的最后一公里2.1 称重传感器的类型选择物料自动称量系统的眼睛是称重传感器。做配料系统我见过用得最多的就两种悬臂梁式和柱式。悬臂梁传感器适合中小量程的称量斗比如一次称量10kg到200kg这种范围安装方便四个角各装一只用接线盒并联。柱式传感器适合大量程比如称量斗几百公斤甚至几吨抗偏载能力更好但安装要求高底座必须水平。挑选的时候别只盯着量程。很多人习惯料斗最大重量是多少就选多大量程这是不对的。实际选型要把料斗自重算进去——称量斗本身的重量加上最大物料重量再乘以1.2到1.5的安全系数才是传感器的额定量程。举个例子空料斗80kg物料最多100kg那总量180kg传感器量程至少选250kg。有人觉得这个余量太浪费真不是机械冲击和物料下落瞬间的动载对传感器冲击很大余量小了传感器很快就漂。2.2 变送器和模拟量模块的信号转换传感器出来的是毫伏级电压信号PLC不能直接读中间必须有称重变送器。市面上常见的称重变送器输出两种信号4-20mA电流环或者RS485数字信号。我强烈推荐用4-20mA接PLC的模拟量模块理由只有一个——现场抗干扰能力强。电流环对线路电阻不敏感100米传输距离没问题而且能天然识别断线线路断了信号就是0mA低于4mA量程下限程序里可以直接判断成故障。PLC选型的时候注意模拟量模块的分辨率。做配料系统12位分辨率是底线我建议直接用16位的。12位在4-20mA范围内对应的数字量是0-4000左右一个字节能分到的体重很小但配料精度要求高的时候量化误差就会被放大。16位的模块4-20mA对应0-27648西门子或者0-4000三菱理论上能达到的分辨率要高好几倍。2.3 连线细节屏蔽、接地和供电这套系统里我发现最容易出问题的不是PLC程序而是信号线。传感器到变送器要用四芯屏蔽电缆屏蔽层要单端接地——所谓单端接地就是只在PLC柜这一侧接地传感器那侧的屏蔽层悬空。为什么两侧都接地会形成地环路工业现场的杂散电流会在屏蔽层上感应出电压反而给信号引入干扰。变送器到PLC模拟量模块的线同样用屏蔽双绞线。还有一点很多人忽略变送器的直流电源不要和接触器、变频器共用开关电源。变频器是出了名的干扰源它的IGBT开关频率会通过电源线串进去。我做过一套系统上电之后PLC显示的称重值在小数点后一位上乱跳找了两天最后发现是变送器用的电源和变频器的控制电源在同一个断路器下面分开供电之后立刻稳定。3. 梯形图核心逻辑拆解定量配料、卸料判断与误差补偿3.1 配料状态机的构建思路这是整套程序的心脏。先说状态机的思路再说具体的梯形图指令。一个典型的配料周期是这么流转的停止状态 → 启动信号 → 快加料 → 到达慢加料阈值 → 慢加料 → 到达目标值 → 关闭给料设备 → 等待卸料信号 → 卸料到混合机 → 卸料完成判零 → 回到停止状态为什么要分快加料和慢加料因为给料设备关闭之后还有一段料流——螺旋给料机停了但螺旋里和出料口的余料还会继续落到称量斗里。如果全程快加料冲到目标值再关实际重量会超出目标几十克甚至几百克。分成快慢两段快加料阶段接近目标比如还差200克时先切换成慢速给料让料一点点补进去到目标值就停这样动料惯性对精度的影响就小。3.2 带解释的梯形图核心段落怎么编写以下用三菱FX3U的指令风格写逻辑和西门子S7-200 SMART是通的我尽量把注释写完整——这也是标题里带解释的梯形图的体现。| X0 启动按钮 | M0 配料允许状态 | | | |----[ ]------|----[ ]----------|--------( M100) 配料周期进行中 | | M100 配料周期进行中 | | | | |----[ ]----------------------|--------( Y0 ) 1号料仓螺旋给料机快加 | | 比较指令: D20当前重量 D210慢加阈值 | M100 | | Y0 快加复位 | |----[ D20 D210]----[ ]----------------------------( M101 ) 切换到慢加 | | M101 慢加状态 | 比较指令: D20当前重量 D212目标值 | M100 | | Y1 慢加关闭 | |----[ ]--[ D20 D212]----[ ]----------------------------( M102 ) 配料完成 |这四段梯形图第一段是总启动逻辑按启动按钮且系统允许就置位M100配料周期进行中。只要M100通了Y0快加给料就开始动作。第二段用比较指令不断读当前的称重值D20当它大于等于慢加阈值D210时切断Y0同时置位M101切换成慢加。第三段是慢加阶段等到D20大于等于目标值D212关断Y1、置位M102配料完成。我把注释写这么细是因为客户最后是要拿着梯形图去维护的。电工师傅不一定懂PLC编程的抽象逻辑但他们看得懂1号料仓快加慢加切换这种写字板级别的注释。交付一份每个网络都有中文注释的梯形图客户可能几年后用得上——某个传感器坏了、某台电机不转开个监控模式一监视就知道问题卡在哪段逻辑里。3.3 称重值滤波与判零逻辑现场称重信号不是完美的料斗受冲击后会来回晃动传感器输出跟着波动。如果直接用原始值去做比较可能在临界点附近反复抖给料设备一开一关损坏设备不说精度也保证不了。我的做法是程序里做个简单的平均值滤波PLC采集模拟量后在D20里不是实时更新而是每200ms取5个采样值去掉最大值和最小值剩下3个求平均再写入当前重量寄存器。这样料斗晃动带来的轻微波动基本被抹平了响应也不算迟钝。追求更灵敏的系统可以在称重变送器端做硬件滤波但动态响应会变差要按实际工况去平衡。卸料判零逻辑也值得说。配料完成之后要等操作工打开料斗底阀把料放进混合机放料完成后怎么知道放干净了不能靠人看程序需要自己判断。判零的核心不是当前重量等于0而是当前重量小于一个很小的阈值比如1kg或者重量值在2秒内变化小于50g。用稳定判据比用绝对阈值可靠得多因为料斗里可能有少量残留料渣绝对判零会把系统卡死在卸料完成这一步。3.4 误差补偿用上次的偏差修正这次的目标定量配料最隐蔽的误差来源是料流惯性。前面说了快慢加料能减一部分但就算慢速给料螺旋停转之后也有一小段下料余量。这一部分不完全是固定值和物料流动性有关——干燥颗粒料余量大潮湿粉末料余量小。我习惯在程序里做一个自动误差补偿每次配料完成后记录实际重量和目标重量的偏差实际值减目标值把这个差值存在掉电保持的寄存器里。下一次配料开始时用目标值减去上次偏差作为新的慢加停止阈值。如果上次冲过头了200克这次就提前200克切换让慢加阶段多补一点或者少补一点系统会自己慢慢收敛。要注意的是补偿量要做限幅比如只能修正±500克防止某一次异常大偏差把后续每一批都带偏。4. 混合搅拌程序的时序设计与配方切换4.1 混合工序怎么编排才不窝工自动称量只是一半另一半是物料混合。典型的流程是各种物料按顺序依次称入称量斗全部配完之后打开卸料门把混合料倒入混合机。混合机启动搅拌设定搅拌时间到停搅拌机打开卸料门放料。放料完成关闭进入下一批次。程序时序上有一个提高效率的技巧不要把混合机闲着等配料。如果混合机上一批已经开始搅拌了PLC就可以同时开始配下一批料。等到混合机放料完成下一批料已经在称量斗里等着了混合机一关门就能投料。这就是非标项目里常说的并行工作梯形图编写的时候用M区软元件把两种流程独立起来互不干扰。4.2 正反搅拌与低速启动混合机电机建议用正反转控制。只朝一个方向转桶壁边缘的物料容易堆积中间形成死区。让混合机正转20秒→停止2秒→反转20秒→停止2秒这样反复物料能在桶内形成交叉流动混合均匀度明显好过单向转动。启动方式上如果电机功率大直接全压启动可能会让设备猛震一下对楼面和设备寿命都不好。带变频器的系统可以直接用低速启动比如10Hz跑3秒再升频没有变频器也可以用星三角启动。有次客户厂房是钢结构二层混合机直接装在上面全压启动的时候整个楼板都在颤后来就是程序里加了个延时切入的降压启动问题才解决。4.3 配方切换与数据寄存器管理配方本质上是几组目标重量数据。用三菱或者西门子的数据寄存器把每个配方号对应的目标值存好。举个例子配方1物料A 25kg物料B 10kg配方2物料A 30kg物料B 8kg。在组态画面上做一个配方选择控件操作工选配方2组态把数据写到PLC的数据寄存器D300开始的位置然后启动配料。程序全部按照D寄存器里的目标值来做比较换配方不需要改程序。这个设计的一个好处是配方表可以在组态画面里直接修改不用拿笔记本电脑去现场改梯形图。很多客户很看重这一点——他们工艺员自己就能在现场电脑上调配方调完直接下载效率非常高。5. 组态画面变量绑定、报警记录与趋势曲线5.1 组态变量和PLC地址的对应关系组态软件国产的组态王、力控、MCGS或者西门子的WinCC负责和PLC通讯核心工作就是变量对应关系。组态里的每一个画面元素都要绑定到PLC的一个寄存器地址上。这一部分最容易踩坑的是地址不统一。三菱PLC的D寄存器组态软件里变量类型要选对D20如果是当前重量就是16位整数如果模拟量模块的分辨率是16位采集值最大27648这个范围用16位整数没问题。但涉及到多个字拼一个32位数据比如配方里的重量可能超过32767吗正常不会但保险起见设计成32位双字的时候高字和低字的位置一定要确认清楚不然数值会出现离谱的跳变。我用过一个办法来验证变量绑定对不对在组态调试界面里直接强制写一个已知数值到PLC的寄存器然后看画面上对应显示元件显示的值是否一致。不一致要么是数据类型选错16位和32位、浮点和整数要么是地址偏移了一位。这个检查和PLC接线通电调模拟量一样是组态联调的第一道工序。5.2 主画面、配方画面和报警画面怎么分工组态画面不要贪多够用就好。一套称量系统我一般分三个画面主画面显示工艺流程——料仓、给料机、称量斗、混合机的示意位置关系每个设备旁边顶着运行状态红色闪表示运行中绿色表示待机称量斗旁边用大字显示当前重量和配料目标值。操作工到了现场只需要看这一屏就能知道现在设备跑到第几步了。配方画面做操作界面把配方号、各物料的目标值、慢加切换阈值这些参数做成可输入框操作工修改后点写入PLC程序下次配料自动按新参数执行。这个画面加一个权限等级不然任何人都能改配方工艺纪律就乱套了。通常工艺员有一个密码操作工有一个密码权限不同能改的项目不同。报警画面记录历史报警。称量超差配料完成后的实际值和目标值偏差超过允许范围、堵料报警给料机运行但重量长时间不变化、卸料门没关到位这类事件都要在画面里弹出来并且记录发生时间。这些记录在质量追溯的时候就是证据——客户问你这一批料当时是怎么配出来的历史报警能告诉你是快加没切换还是给料机卡了。5.3 实时趋势曲线在调试中的妙用组态的实时趋势曲线功能很多工程师只拿它来看个大概。但在系统调试阶段趋势曲线是最厉害的诊断工具。把当前重量通道添加到趋势曲线上跑一次配料过程然后看曲线形态如果曲线在快到目标值时是一条直线斜着上去说明慢加切换生效了斜率变缓如果曲线突然掉头说明有人在切给料机——可能逻辑有冲突如果曲线从开始到结束一直在剧烈抖动说明信号滤波没做好。我的习惯是每套系统调试的时候先在组态里建立一个重量趋势画面跑个十几个周期截图保存。这个图一方面是调试记录另一方面交付给客户之后客户回头看趋势就能理解快慢加料是怎么回事。这比讲十遍理论都直观。6. 现场调试实录那些反复折磨人的通讯与PID问题6.1 组态软件连不上PLC的排查链路做组态联调最磨人心态的就是通讯不上。界面弹出来无法连接IP地址也设了网线也插了就是不通。这么多年我总结了一套排查顺序固定节奏来先ping PLC的IP地址。能ping通则物理链路和IP设置基本没问题ping不通检查网卡IP网段PLC一般在192.168.0.x电脑要设成同网段比如192.168.0.15、检查网线工业现场网线经常被设备压到或拉断水晶头金属触点有没有脏污、检查PLC的以太网模块是否正常。ping通了但组态还是连不上问题大概率在通讯参数上。西门子S7-200 SMART要用TCP/IP协议填写PLC的IP和机架号、槽号S7-300/1200的话槽号要看清一般为0或1三菱FX系列以太网模块要占端口号默认是5006还是5007要和实际模块一致。最坑的一次一台西门子S7-200 SMART组态怎么配都连不上ping也通。最后发现PLC以太网口旁边还有一个连接指示灯那个灯微红不绿。把网线拔下来重新做了一次水晶头接触不良。所以我的排查顺序里永远把看一眼网口灯排第一步。6.2 模拟量信号漂移的实战处理模拟量信号漂移是称量系统的老大难。表现是画面上的重量值在没有投料时自己慢慢往上飘或者小数点跳来跳去。最常见的三个原因供电不稳、接地不良、线缆破损。第一看变送器供电电压拿万用表量一下如果波动超过5%给变送器换一个单独的24V电源。第二查屏蔽层屏蔽层接在PLC柜的接地铜排上接地铜排要真正接到工厂的地网有些柜子接地线断了或者生锈了屏蔽等于白接。第三查线缆沿着信号线走一圈看有没有和动力电缆同槽敷设的。信号线必须单独穿管或者远离动力线间距最好大于20cm。如果实在走线空间受限可以在信号线外面再加一层屏蔽管或者换更高的滤波。6.3 温度PID波动一个跨领域但常见的问题标题相关热词里提到了PLC温度PID波动温差大如何调节——虽然这主要是温度控制场景但和我们的称量系统有个共同点都会用到PID思路。我做过的干燥机温控系统也踩过PID参数整定的坑。温度PID波动大通常不是什么高级问题是增益太高、积分太猛。温度系统响应慢如果比例系数P调得过大输出稍微动一点温度就到超调再回调又过冲系统就在目标值附近震荡。处理方法先把积分时间Ti设大比如300秒以上让积分作用弱一点只调P从1%开始慢慢加找到临界点后回调20%然后再慢慢减小Ti观察波动情况。微分D一般温度系统可以不用的多用了反而容易受噪声影响。如果工艺允许手动输出模式先把系统稳定在一个低于目标的温度再切自动这样整定出来的参数更可靠。 这个经验和称量系统的慢加阈值调整逻辑很像——先找临界值再退让一点留足稳定裕量。控制这东西相通的地方多得很。7. 程序注释与交付文档带解释的梯形图应该怎么带7.1 为什么客户点名要带解释的梯形图我在前面提过这套系统的交付物里有一项特别的要求带解释的梯形图。后来我理解了客户不是要一份梯形图程序的打印件他们要的是能看懂的程序。很多PLC程序交付的时候就是一份导出的文件里面注释少得可怜变量名称全是F0、M100这种编号。现场电工打开软件一看满屏都是X0Y1M100根本不知道哪段管哪段。设备一旦出问题只能打电话给你而你未必随时都在。带解释的梯形图解释要写在节标题和每一网络注释里。三菱GX Works2和西门子博途都支持网络注释、设备注释。我给自己定的规矩是每一个网络都加注释说明这一段的工艺目的每一组完成一个功能的若干网络用节Section划分节点名写清楚快加料控制卸料门开混合机正转。7.2 变量命名规范和IO清单的重要程度和注释配套的是一份完整的IO清单和变量表。IO清单是硬件位号X0接的是启动按钮Y0接的是1号料仓给料机接触器模拟量通道1接的是称量斗传感器。这个清单一发现场电工查线对着找直接看到底是接在哪个端子。变量表则是软件定义D20是当前称量值、D210是配方1物料A慢加阈值、D500是批次计数……这份表的意义是让你以及接手的人能在成千上万个寄存器里快速找到自己要监控的地址。7.3 交付时的程序结构建议我再给一个实际建议交付的程序文件最好同时导出一份PDF版梯形图以及一份工程文件本身。工程文件给客户的目的是让客户能在线监控、可以小改配方参数和定时器。PDF版是备用的——万一客户软件版本不兼容打开PDF至少还能看清逻辑结构。另外程序备份习惯很重要。每次去现场改完程序回办公室第一件事就是把工程文件保存一个带日期的副本。我见过同事因为改完程序忘了存就断电白白丢了半天的工作量。PLC程序这东西改动前后各保存一个版本是永远不会错的规矩。8. 后记做非标自动化项目的一些个人体会项目收工那一刻复盘过几件事值得分享给正在做或者准备做这类系统的朋友。第一不要跳过点位表直接写程序。省下的时间一定会以别的方式还回来。我做这套系统之前花了整整半天整理IO清单把所有信号、地址、注释、对应现场位置全部列完写梯形图的时候思路非常清晰基本没回头改过接线相关的逻辑。第二留足时间和客户一起验收。流程走一遍还不够最好能在客户现场跑个连续试生产让配料、混合、组态报警、配方切换这些环节全部经受住考验。试生产阶段会暴露出很多理论上不会发生的情况——比如某种物料流动性差导致给料机长时间运行重量不变比如操作工误碰急停按钮之后程序能不能自动安全恢复。这些问题在现场发现比交付完再电话来回沟通要省心得多。第三关于带解释的梯形图这件事我个人体会是它不是给PLC老手看的是给三年后接手维护的电工师傅看的。你的程序写得再优雅别人看不懂等于没有。注释、变量表、IO清单这些配角文档的价值在设备出故障的那一天会体现得淋漓尽致。最后说一句可能有点用的话一套称量配料系统真正值钱的不是那几段梯形图指令而是你对工艺的理解、对可能出问题的环节的预判、以及你在现场排查问题时积累下来的判断力。工具和指令书到处都有经验不是。