前阵子刚给客户交付了一套自动加料机控制系统,从柜内接线、PLC逻辑到上位机组态,全程一个人跟下来的。这套系统不算复杂,但该踩的坑一个没少,尤其是称重信号抗干扰和上位机通信这两块,折腾得我差点怀疑人生。趁记忆还新鲜,把这套系统的完整实现过程整理成笔记。
总的来看就三块活:PLC侧把料加得准,上位机侧把数据看得见、配方调得顺,中间靠稳定的通信协议把两头拽起来。如果你正好在搞类似的自动配料、定量加料项目,或者想从零入门PLC加监控系统的整体搭建思路,这篇笔记应该能让你少走不少弯路。
我不会按教科书方式讲,就按实际干活顺序来写:从项目需求拆解、硬件接线,到PLC程序逻辑,再到上位机组态和通信排障,最后补一段调试现场遇到的典型问题。每段都尽量写细,尤其是别人文档里不写的经验点。
1. 项目概述与系统架构
1.1 自动加料机的核心需求到底是什么
先交代工艺背景。这套自动加料机是用在粉体配料车间的,物料从料仓下来,通过螺旋给料机送进称量斗,称到设定重量后放料进入下一道工序。客户给的核心指标有两个:单次称量精度 ±0.5%,批次节拍不超过 25 秒。听起来不复杂,但真做起来就会发现“目标重量”和“实际重量”之间永远隔着一层惯性。
把需求拆开看,其实分四层:
- 定量准确。这是底线,每一批料的实际重量必须落在允差范围内。影响精度的因素很多:给料速度、物料落差、传感器响应、PLC扫描周期、切料时机,一个环节没处理好就超差。
- 模式灵活。现场需要手动模式用来调机、排料和检修,自动模式用来连续批量生产。两种模式必须互锁,不能出现手动和自动同时操作的情况。
- 报警与安全。缺料、堵料、超差、急停这些都是硬需求,缺一个就等着半夜接电话。
- 数据可视。操作工要能实时看到当前重量、批次、配方,工艺员要能查历史记录和偏差趋势,不然出了问题只能靠猜。
所以这套系统的本质是一个“定量称重 + 顺序控制 + 上位监控”的组合体。搞清楚了这一点,后面的整体架构和选型就都有了依据。
1.2 为什么用PLC加上位机,而不是单机仪表或触摸屏
做自动加料机的方案其实有好几种。最简单的路子是“称重仪表 + 触摸屏”,很多小设备厂就这么干。称重仪表自带上下限比较输出,一台仪表控制一台秤,触摸屏配参数和看数据。这种方案胜在成本低、调试快,但问题也很明显:多台秤之间没有联动,数据不好集中汇总,做不了精细的批次追溯,想接入MES或ERP基本没门。
另一种是“PLC + 上位机”,也就是这次用的方案。PLC负责所有底层逻辑和实时控制,上位机负责配方管理、数据记录、趋势显示和报表导出。为什么这么选?因为自动加料机本质上是个小型产线,不是一台孤立设备,上位机的价值体现在三块:
- 数据集中。所有秤的重量、状态、报警都汇总到一台电脑上,操作工看一个画面就能掌握全局,不用挨个看触摸屏。
- 配方柔性。配方是跟着产品走的,操作工直接在上位机界面改目标重量、切换提前量,比去PLC里改参数方便得多,也避免了误操作。
- 追溯能力。每一批加料都有记录,时间、配方、实际重量、偏差值都在数据库里,客户审计或质量问题反查时能拿出数据说话。
HMI触摸屏不是不能用,但如果项目里有三台以上秤,或者有上位系统对接需求,我建议直接上上位机组态。一套工控机加组态软件的开发时间可能比触摸屏画面多两三天,但后期收益明显更大。
1.3 系统组成与核心器件选型
这套系统的硬件配置很典型,我按功能块列了个清单,后续章节都会围绕这些设备展开:
| 功能块 | 核心器件 | 选型说明 |
|---|---|---|
| 逻辑控制 | PLC | 三菱FX5U-32MT/ES,自带以太网,支持Modbus TCP,程序容量和通信能力都够用 |
| 重量采集 | 称重仪表 + 传感器 | 称重传感器(量程100kg,灵敏度2mV/V),配智能称重仪表,通过Modbus RTU将重量值传给PLC |
| 给料执行 | 螺旋给料机 + 变频器 | 0.75kW电机,配三菱变频器,通过RS485控制频率,实现快慢加料切换 |
| 放料执行 | 气动蝶阀 + 电磁阀 | 称量斗底部放料,用DC24V电磁阀控制气缸开闭 |
| 上位监控 | 工控机 + 组态软件 | 工控机装组态王,通过Modbus TCP与PLC通信,实现画面监控和报表 |
| 通信网络 | 工业交换机 | 普通非网管交换机即可,注意IP地址段规划和屏蔽走线 |
这里有个关键选型点:重量值怎么进PLC。我见过两种做法,一种是称重传感器直接接PLC的称重模块或模拟量模块,另一种是称重仪表先把信号处理成数字量,再通过RS485或模拟量输出给PLC。这次选的是第二种,也就是“称重仪表 + Modbus RTU 进PLC”。原因是:
- 称重仪表自带标定功能,现场校秤方便,工人师傅也熟悉仪表面板操作。
- 传感器毫伏级微弱信号在传输过程中容易受干扰,仪表把信号就地转换,抗干扰能力明显更好。
- PLC只需要通过RS485读仪表的重量寄存器,逻辑处理全部集中在PLC内,程序结构清晰。
如果你的PLC本身有强大的模拟量模块,用第一种方案也能做,但一定要处理滤波、屏蔽、接地这些细节,否则现场重量跳变会让你崩溃。
2. PLC硬件接线与调试
2.1 电气原理设计与I/O分配表
先把I/O点捋清楚。这套系统输入输出不算多,但每一点都要有明确的物理对应,尤其是急停和限位这种安全相关点,必须硬接线进PLC,不能只靠通信。
数字量输入部分:
| 地址 | 信号名称 | 说明 |
|---|---|---|
| X0 | 启动按钮 | 自动模式启动加料流程 |
| X1 | 停止/复位按钮 | 停止当前流程,重新上电初始化 |
| X2 | 急停按钮 | 常闭触点,动作时立即切断所有输出 |
| X3 | 料仓料位下限 | 缺料检测,无料时禁止加料 |
| X4 | 放料门开到位 | 气缸磁性开关反馈 |
| X5 | 放料门关到位 | 气缸磁性开关反馈 |
| X6 | 手动/自动选择开关 | 双位旋钮,程序内部互锁 |
数字量输出部分:
| 地址 | 信号名称 | 说明 |
|---|---|---|
| Y0 | 变频器运行指令 | 控制螺旋给料机启停 |
| Y1 | 快加料切换 | 变频器多段速端子1,高速运行 |
| Y2 | 慢加料切换 | 变频器多段速端子2,低速运行 |
| Y3 | 放料门电磁阀 | 控制气动蝶阀开闭 |
| Y4 | 声光报警输出 | 缺料、超差、故障时输出 |
另外PLC还接了一个RS485通信模块,用于读取称重仪表数据;以太网口用于上位机通信和程序下载。变频器也要通信,如果把快慢加料完全靠开关量多段速,其实可以不通信;但这次为了让上位机能显示当前给料频率,还是走了RS485通信,后面会单独讲。
接线布局的注意点我多说一句:信号线、供电线、动力线要分开走线槽,称重仪表RS485线用屏蔽双绞线,屏蔽层在PLC侧单端接地。很多人图省事把485线和变频器输出线绑在一起,结果通信时好时坏,查半天最后发现是干扰导致的。
2.2 称重传感器与变送器的接入细节
称重传感器是整个系统最娇贵的部分。它输出的是毫伏级差分信号,稍微有一点干扰或接地问题,重量值就会乱跳。
接线时我按这几条原则来:
- 传感器四线制线和仪表的EXC+、EXC-、SIG+、SIG-一一对应。错误接法轻则读数异常,重则烧掉传感器。
- 屏蔽层只能单端接地。我这次把屏蔽层接在称重仪表侧的接地端子上,PLC侧不接,避免形成地环路。
- 传感器电缆要远离变频器输出线、接触器控制线,至少保持 20cm 以上的距离。如果必须交叉,一定走垂直方向而不是平行走线。
- 称重仪表供电建议用隔离电源,防止现场其他设备启停时造成电压跌落。
上电前我用万用表量了传感器输入阻抗和输出阻抗,确认没有短路才把仪表接上。这一步不能省,特别是新装机时,传感器在运输过程中被挤压或者接线端子松动,都可能导致测量值异常。
称重仪表标定也很关键。流程分三步:空秤清零,加载标准砝码,输入砝码重量值。标定完成后用几个不同重量点验证线性度。自动加料机一般做三点标定就够:零点和两个常用目标重量附近。如果称量范围跨得很大,建议做五点标定,保证全量程线性。
2.3 执行机构接线与调试
给料执行机构用的是螺旋给料机加变频器。快慢加料通过变频器多段速实现:快加时运行在35Hz,下料速度快;慢加时降到12Hz,下料速度慢,便于在接近目标重量时精确切断。
变频器端子接线时,我特意确认了几个细节:
- 变频器的启动信号用干接点,PLC的Y0输出直接驱动中间继电器,再由继电器触点接变频器STF端子。避免PLC输出点和变频器数字输入点共地问题。
- 多段速端子 RH 和 RM 分别接Y1和Y2。注意变频器内部参数要把多段速模式设成二进制组合,否则同时接通时不是按预期速度运行。
- 变频器与PLC通信走RS485时,终端电阻要设置在链路两端。这台设备只有PLC和变频器两个节点,所以两端都接了终端电阻,实测通信稳定。
电磁阀控制放料门。电磁阀线圈功率不大,但我不建议PLC输出点直接驱动,因为气缸动作瞬间会产生反电动势,而且磁性开关反馈信号容易受干扰。我还是加了中间继电器隔离,继电器线圈并联续流二极管。这个习惯帮我躲过不少麻烦,上一台设备就是因为没加续流,把PLC输出点打坏过。
2.4 上电自检与点位排查流程
这一节应该是所有调试工作的第一步,很多人上来就写程序,结果点位都没对,白折腾。我按这个顺序排查:
- 检查柜内接线,对照图纸逐点确认,重点看电源相线、零线有没有接错,PLC输入端公共端和输出端公共端是否符合手册要求。
- 断开所有执行机构负载,给PLC通电。用编程软件连接PLC,建立在线监控。
- 逐个操作现场按钮,观察输入点是否对应变化。按下启动按钮时X0变ON,急停按下时X2变OFF,注意急停是常闭点逻辑。
- 用软件的强制输出功能逐个驱动Y点,确认对应的中间继电器、接触器动作正常。强制Y0时变频器是否得电,强制Y3时电磁阀是否动作。
- 测试称重系统:在称量斗里放砝码,通过仪表观察重量值是否准确,再通过PLC的RS485指令读回数据,确认PLC侧读取的数值和仪表示值一致。
第5步特别重要,因为它直接关系到后面的自动控制准确性。现场经常出现仪表显示50kg,PLC读回来却只有45kg的情况,多半是寄存器地址选错或数据格式解析错误,后面我会细说。
3. PLC程序设计与核心逻辑实现
3.1 自动流程的状态机设计
PLC程序我用了顺序控制思路,三菱里用STL步进指令实现。为什么要用步进而不是普通梯形图?因为自动加料流程是个典型时序流程:待机、快加、慢加、稳定、完成、放料。如果用辅助继电器堆变量,程序逻辑会很绕,出问题时很难排查。步进指令把每个状态分成独立的一段,哪一步出问题一目了然。
流程状态定义如下:
- M0:待机状态。放料门关闭,等待启动指令。
- M10:快加料状态。螺旋给料机高速运行,料门关闭。
- M20:慢加料状态。重量达到快慢切换点后切换低速。
- M30:停止加料,重量稳定判断。
- M40:加料完成,允许放料门打开。
- M50:放料状态。电磁阀得电,料门开启,等待物料排空。
自动启动的条件是:手动/自动旋钮在自动位、急停未动作、放料门关到位、料仓有料、当前重量小于目标值。任何一个条件不满足,就算按下启动按钮也不会有反应。这个联锁逻辑是保命的,绝对不能省。
程序里还加了一个很实用的细节:启动时自动去皮。每次加料前都把当前秤体重量作为皮重清零,保证显示的是净重。这样即使称量斗里有残留物料,也不会影响目标重量判断。
3.2 重量采集与滤波
重量数据是PLC读称重仪表得来的,默认100ms轮询一次。原始值往往会有点跳变,尤其是加料过程中物料下落冲击料斗时,重量会有周期性波动。
如果直接拿这个波动的值和目标值比较,切料时机就不准。我做了两层处理:
- 滑动平均滤波。连续取5次采样值求平均,作为当前显示重量。这样能滤掉大部分高频跳变,但会引入约半秒的延迟,对切料精度影响不大。
- 稳定判断逻辑。在M30稳定状态,PLC连续判断10次采样,如果相邻两次重量变化不超过0.1kg,就认为重量已经稳定,然后记录最终值并置完成标志。
有一点要提醒:不要为了追求数据稳定把滤波窗口开得太大。之前我把平均值窗口调到10次,结果显示重量很平滑,但实际加料量已经偏了,因为滤波让PLC对真实重量的响应变慢了。后来调整到5次,效果最好。
重量读取的通信指令也要做防错。PLC三菱指令用FROM/TO或者专用指令读仪表数据时,要检查通信是否正常。如果通信失败超过3次,我让PLC进入报警状态,停止加料,避免在重量数据缺失的情况下继续工作——这是很危险的情况,万一称重失效还一直加料,会把料斗顶穿。
3.3 快慢加料与提前量补偿
这是自动加料机精度的核心,值得多说几句。
加料过程分成快加和慢加两段:开始阶段重量离目标很远,用高速给料提高效率;当重量接近目标时切慢加,让物料在较低流量下准确补齐余量。
切换点的算法很简单:
快慢切换重量 = 配方目标重量 - 慢加区设定值
比如目标是50kg,慢加区设为1kg,那快加阶段在重量达到49kg时切到慢加。慢加区设置太大了浪费节拍,太小了又容易过冲。一般根据慢加流量估算,慢加区量大约是慢加流量的0.5到1.5倍,我这次设为1kg,现场试验下来切换过程平稳。
真正的关键点是停机时机。由于给料机构和物料下落都有一个滞后,发出“停止”指令后,实际还会有一小段物料落入秤斗,这部分叫“空中料”。所以不能等重量到目标值才停止,必须提前一个量,也就是“提前量”。
提前量计算公式简化成:
提前量 = 上次批次过冲值 + 基准落料补偿值
比如上次实际重量比目标超了0.15kg,而基准落料补偿值是0.2kg,那这次定的提前量就是0.35kg。也就是说PLC在重量到达目标值减0.35kg时发停止信号。如果这次停止后实际少了0.05kg,下次就把提前量调小0.05kg;如果实际超了,就调大。这个自学习逻辑我写进了PLC程序,配方参数里存了提前量寄存器,操作工可手动修正,也可以让程序自动微调。
自学习有个限制:不要单批次猛调,要按偏差的30%到50%幅度逐步调整,否则物料性质变化时会来回振荡。比如偏差0.1kg,就调0.03到0.05kg,经过两三批就能稳定下来。
调试期间我还记录了一组实测数据:目标50kg,快加35Hz、慢加12Hz,初始提前量0.2kg,第一批实际加到50.31kg,超差0.31kg;把提前量调到0.45kg后,第二批实际49.98kg,偏差0.02kg,效果立竿见影。
3.4 报警与联锁保护
报警是自动加料机的安全底裤,我把报警分成三类,分别处理:
- 工艺报警。包括缺料、堵料、下料超时。缺料用料位开关检测,下料超时用定时器判断:进入快加后,如果30秒内重量没有明显增加,判定下料异常,停止给料并报警。
- 质量报警。加料完成后,最终重量超出允差范围(比如±0.5%),PLC照样允许放料,但会把超差批次记录下来,在上位机醒目提示。这个设计是特意跟客户确认过的:如果重量超差就不放料,整条产线会被卡死;先放料但做好记录,让操作工判定是否回料或调整。
- 设备报警。急停动作、称重通信失败、变频器故障、气压低,这些属于安全联锁类,动作后PLC立即切断所有输出,必须人工复位后才能重新启动。
报警信息我统一存到PLC内部寄存器,上位机定时轮询读取。报警发生时间在PLC里用时钟数据记录下来,上位机会将报警内容生成记录表,方便追溯。
联锁逻辑同样重要,几个典型例子:
- 放料门没有关到位,禁止启动加料。
- 加料过程中禁止打开放料门。
- 急停动作时,即使程序正在加料中,所有输出也必须立即归零。
- 手动模式下,自动流程启动无效;自动模式下,手动点动操作无效。
这些逻辑都是用PLC梯形图和STL状态共同实现的,程序里我会特别标注注释,方便后期维护的人看。
4. 上位机组态实现与通信
4.1 组态软件和自研上位机该选哪个
上位机部分我纠结过一阵子。客户有两种需求:一是单机监控、简单报表,二是后续要接厂级MES。考虑到这次先做第一期的单机监控,我用组态软件(组态王)来做,运行稳定、画面组件丰富、开发周期短。
组态软件的优势很明显:
- 内置PLC驱动程序,Modbus TCP只要配置IP和寄存器地址就能读写,不用自己解析协议。
- 报警和趋势曲线是现成的功能,绑定变量后就能用,省不少开发时间。
- 触摸屏风格的画面组态工具,画仪表盘、按钮、指示灯比用代码做界面快得多。
但也有局限性:组态软件授权按点数收费,点数多了成本高;流程逻辑、自定义报表、数据库交互做起来比较别扭。如果你的项目需要很强的定制化,比如复杂的配方审批流程、对接Oracle数据库、自定义工艺算法,那就建议走自研路线,用C#或LabVIEW搭一个通用上位机框架。C#的优势在于界面自由、通信灵活、能直接操作数据库,开发周期会拉长,但后期扩展空间大。
我的建议是:三台秤以内、需求明确、预算有限,用组态软件;超过这个规模或未来要深度数字化,果断自研。
4.2 Modbus TCP与OPC UA怎么选
上位机和PLC之间的通信协议,直接影响开发的难易和运行的稳定性。常见选择有三种:
| 协议 | 开发难度 | 实时性 | 安全性 | 适用场景 |
|---|---|---|---|---|
| Modbus TCP | 低,直接读写寄存器 | 中,轮询周期可调 | 无加密 | 中小型项目,PLC/仪表/触摸屏通用 |
| OPC UA | 中,信息模型配置稍复杂 | 高,订阅推送 | 有加密和认证 | 大型数字化产线、跨平台集成 |
| PLC原生协议(MC、S7) | 中高,需按厂商报文格式封装 | 高 | 取决于实现 | 对实时性和点位密度要求极高的场景 |
这次选的是Modbus TCP。原因很简单:FX5U自带Modbus TCP服务器功能,组态王也内置了对应驱动,配置容易;而且现场如果临时要接第三方设备,比如读称重仪表、变频器,Modbus协议通用性最好,不用再装驱动。
OPC UA是趋势,特别是现在都在提工厂数字化,OPC UA有着更标准的信息模型和安全性。如果你的项目需要让多个上位系统同时访问同一台PLC,或者安全等级要求高,用OPC UA更合适。但OPC UA的前置配置工作量不小,还需要确认PLC侧用什么方式暴露OPC UA接口,有的需要用网关或软件桥接,维护成本也高。
4.3 上位机画面与功能模块
组态王画面我拆成四个主要界面:
- 主监控画面:车间设备总览,三台加料机并排显示。每台秤显示当前净重、目标重量、运行状态(待机/快加/慢加/完成/放料)、累计批次、报警灯。核心数据用大字号显示,操作工在10米外扫一眼就能知道当前状态。
- 配方管理画面:操作工在这里查看和修改配方参数。配方字段包括:配方编号、目标重量、快慢切换点、提前量、允差范围、批次数量、提前量自动补偿开关。修改后直接下发到PLC对应寄存器。
- 趋势曲线画面:显示单台秤的动态重量曲线。这个画面调试时特别有用,过冲多少、落料时间多长、稳定性如何,看一眼曲线就明白了。
- 历史报表查询:按日期、班次、配方号查询历史批次记录,条目内容包括批次号、配方号、目标重量、实际重量、偏差值、加料用时、报警信息。支持导出Excel,方便质量部做分析。
组态王里面配置变量时要注意数据类型。PLC里重量值我用32位浮点数存储,那组态王的变量类型也必须对应设为FLOAT。很多通信失败或数据乱码的原因,就是变量类型没对齐:PLC往寄存器里写的是浮点数,上位机按整数解析,出来的数值当然完全不对。
4.4 上位机与PLC通信配置步骤
我在组态王里新建设备,选择“Modbus TCP”驱动,配置PLC的IP地址和端口号。FX5U默认Modbus TCP端口是502,这一点和西门子S7通信不一样,不用额外指定机架号或插槽号。
寄存器地址映射是重点。PLC侧我把重量值放在D100,目标值放在D101,状态字放在D102。Modbus TCP下,三菱FX5U的数据寄存器D区对应的Modbus地址是从40001开始,但具体偏移取决于PLC内部映射。我试过用Modbus Poll先单独读PLC,确认能读到正确的D100数据后,再到组态王里建立对应变量。这一步相当于先验证链路,再接上层,能省掉大量排查时间。
通信周期我设为100ms。太快了会增加PLC和交换机负担,太慢了画面刷新不流畅。100ms完全够用,组态趋势图一秒刷新10次,肉眼看已经很平滑。
4.5 常见通信故障与排查实录
通信这块我踩过的坑比想象中多,整理几个典型的:
第一个是“在线连接所组态访问节点的接口不可用。以太网电缆断开或损坏时,P NIE接口不可用”这一类提示。这是博图类软件或仿真器组态时常见,本质原因是计算机和PLC之间的以太网链路根本没有建立成功,或者是组态环境中访问节点配置错误。实际排查顺序是:先Ping通PLC的IP,确认物理链路正常;再检查访问节点的接口名称是否指向当前使用的网卡;最后检查电脑IP是否和PLC在同一网段。很多时候就是电脑IP填了不同的子网,导致在线监控失败,重新设置网段就能解决。
第二个是Modbus TCP能Ping通,但组态王读不到数据。我遇到过IP完全能Ping通,PLC侧也确认开了Modbus TCP功能,但组态王变量始终读零。最后发现是PLC中Modbus映射区没有配置,D区根本没有开放给Modbus主站访问。三菱FX5U要设置“以太网配置”和“Modbus TCP映射”,把需要通信的D寄存器区间开放出去。这个设置藏在PLC参数里,找起来费点劲,但对通信是否成功是决定性的。
第三个是串口Modbus RTU读称重仪表但数据有时对有时错。仪表显示正常,PLC轮询偶尔读到满量程或零。这个十有八九是RS485通信参数问题或接线问题。我逐一排查了波特率、校验位、停止位,后来发现是称重仪表的RS485接线端子松动,重新压紧端子后连续一周没再出问题。另外终端电阻确实重要,短距离通信可能感觉不出来,但现场如果电磁环境差,终端电阻能显著减少反射。
5. 调试实战与常见问题排查技巧
5.1 称重不准的排查全流程
自动加料机验收时最容易被客户挑刺的就是精度,所以称重不准的排查流程要刻在脑子里。我给自己定了一个排查顺序,基本能解决九成问题:
- 先查机械。传感器受力方向是否垂直,有没有顶到料斗壁或连接件别劲。很多“称重不准”其实是机械结构卡住了,传感器受力不对,怎么调程序都没用。
- 再看接线。信号线是否靠近动力线,屏蔽层接地是否可靠,接线端子有没有氧化松动。
- 然后重新标定。用标准砝码做零点和量程标定,再验证中间点。标定完如果线性仍然不好,八成是传感器故障或仪表参数设置问题。
- 最后才调程序。确认滤波器参数、提前量、稳定判断阈值是不是被改过。
实际案例:现场有一台秤调试时显示重量会缓慢爬升,从50kg慢慢变成50.15kg。排查半天发现是传感器电缆被柜门夹住,绝缘层破损,信号线破损部分和柜体搭在一起,形成了微弱的漏电通路。重新换线并规范走线后恢复正常。所以说传感器电缆要在柜内留足余量,同时要用线槽或波纹管保护,防止被机械运动部分挤压。
5.2 通信掉线的系统性排查步骤
上位机和PLC之间如果频繁掉线,整个自动流程就会变成“盲操作”,这种情况必须快速定位。我的排查步骤是:
- 先确认网络物理连接。用网线测试仪或直接看交换机端口指示灯是否闪烁,网线水晶头是否压接牢固。
- 用Ping工具长时间测试丢包率。如果Ping值平稳,说明链路正常,问题大概率在协议配置或上位机软件层。
- 用Modbus Poll直接连接PLC读数据,看是否稳定。如果Modbus Poll正常,说明PLC和网络都正常,问题在组态王或自研上位机的通信配置上。
- 检查组态王的设备配置:IP地址、端口、超时时间、重试次数。超时时间设置太短容易误判掉线,我一般设500ms以上。
- 如果用了无线桥接或工业路由器,要考虑信号干扰和延迟。万一现场环境复杂,还是拉网线靠谱,无线方案只适合临时调试。
有一回掉线问题查了很久,最后发现是电脑上装了杀毒软件,实时监控功能把组态王的通信进程给掐了。关掉杀毒软件后问题立刻消失。这种环境因素靠技术分析很难定位,但可以作为经验记下来。
5.3 精度不达标的典型处理实录
再讲一个完整的调试案例。客户反馈某批次目标50kg,实际重量稳定在50.35kg左右,超差0.35kg。第一批我让操作工把提前量参数从0.2kg改成0.5kg,结果下一批变成了49.92kg,反向偏了0.08kg。为什么会这样?因为0.35kg的误差中,一部分是空中料,一部分是给料机构的惯性,还有一部分可能是传感器响应延迟。
我的处理方法是先记录三批正常生产数据,每批实际偏差分别算出来,取平均值后对提前量做一次粗调,然后根据新偏差再微调。最终把提前量稳定在0.42kg,实际偏差控制在±0.05kg以内。这里面的经验是:不要让操作工靠感觉调参数,而要根据批次报表的数据来调。正因为有了上位机报表,这个数据驱动调参才成为可能。
还有一次是慢加阶段切得太晚,导致慢加还没把余量补完,目标就停了。原因是快慢切换点设置成了0.5kg,以12Hz的慢加速度根本来不及稳定。我把它改成1kg,多出来的零点几秒慢加时间刚好把物料补齐。快速判断切换点是否合理的方法是看趋势曲线:如果慢加阶段太短或者几乎没有慢加过程,说明切换点偏小。
5.4 典型问题速查表
最后整理一个速查表,调试时按图索骥能省不少脑力:
| 现象 | 可能原因 | 排查与解决思路 |
|---|---|---|
| PLC能在线,但上位机读不到数据 | PLC未开放Modbus映射区、IP网段不一致、变量类型不匹配 | 用Modbus Poll单独读PLC,确认可用后再查组态配置 |
| 称重显示跳变严重 | 传感器信号线干扰、屏蔽接地不良、滤波参数太弱 | 检查走线和接地,调整滑动平均窗口 |
| 加料总是过冲 | 提前量偏小、慢加流量太大、切换点太晚 | 查看批次偏差数据,逐步调整提前量和慢加频率 |
| 慢加几乎没有作用 | 快慢切换点设置过小 | 将切换点调整到慢加区合理范围 |
| 变频器和PLC通信频繁失败 | 终端电阻缺失、485线接反、波特率不一致 | 两端加终端电阻,检查接线,核实通信参数 |
| 自动模式不能启动 | 门限位未到位、料位开关无信号、不在自动状态 | 逐项查看联锁条件,用在线监视输入点确认 |
| 博图在线监控提示“接口不可用” | 网卡选择错误、IP不在同一网段、网线异常 | 确认电脑IP、访问节点接口名称,重新选择网卡 |
| 放料门动作慢或卡住 | 气压不足、电磁阀线圈老化、气缸润滑不良 | 检测气源压力,检查电磁阀和气缸机械状态 |
6. 调试之外的个人体会
这套自动加料机做完,我最大的体会是:加料机能不能做准,一半靠PLC程序,一半靠机械结构和传感器安装;而上位机好不好用,一半靠组态设计,一半靠通信规范。项目验收时客户最关心的永远是精度和稳定性,而不是你用了什么高级算法。所以先把现场稳定跑顺,再考虑优化功能。
调试过程中还有两个小细节值得说。一是给每台加料机拍了一张接线照片存档,后面查问题时对着照片找线,比看图纸快得多。二是在PLC程序里写注释这事,前期省下来的功夫,后期维护时会十倍还回来。这台设备交付三个月后客户自己改过一次配方,打电话来问参数位置,我让他翻程序注释,一眼就找到了。
这套系统后续如果想扩展,方向其实很多。比如把上位机从组态软件迁移到C#自研框架,接入工厂数据库实现生产计划下发;比如增加物料批次和追溯码管理,做到每包料都能反向追溯;再比如在称量斗上加点激光料位或视觉检测,实现对下料口堵塞的预测预警。工程上的东西永远没有“最优解”,只有“当前最合适”。希望这篇实战笔记能帮你少踩几个坑。