有一年我在现场蹲了三天,就为了搞定一个看起来再简单不过的问题:配料秤到了设定值为什么还会继续涨?车间老师傅说,这不就是我们当初担心的落差吗。可那个落差数据早上和下午完全不一样,上午物料干、流动性好,下午料仓压力大,一停就会冲出几十公斤。就是从那次开始,我意识到基于三菱PLC的自动配料控制系统,重点不是把M线圈和Y输出接对,而是先把物料特性和控制逻辑一起想清楚。
这篇文章会把一个典型的三组分自动配料项目从设计、选型、编程到调试的全过程拆开讲。适合正在做自动配料项目、刚接触PLC配料控制、或者想从继电器逻辑转PLC控制的人参考。我不会只讲"能动的程序",我会把那些真正影响精度的细节和我在现场踩过的坑都交代清楚。
1. 配料系统不是"到数就停":先看清现场的物料和误差
1.1 物料特性决定控制策略
我接手过很多配料项目,发现一个规律:拿到任务后第一件事不应该翻开软件写梯形图,而是先去现场搞清楚物料长什么样、怎么流、怎么停。以我常做的三组分配料系统为例:主料A是粉体,辅料B是颗粒,微量组分C是细粉剂,还要按比例加水。这三种物料看着简单,实际控制逻辑完全不一样。
粉料最大的问题是"架桥"。料仓里粉料结拱之后,螺旋给料机在里面空转,秤上的重量纹丝不动;等料拱突然塌下来,重量会在几秒内猛冲一大截。颗粒料流动性好,落差相对稳定,但下落时对料斗的冲击力大,称重信号容易跳变。液体则有管道余流,电磁阀关闭之后管路里还会滴一点出来,这批滴多、下批滴少,很难用固定时间彻底解决。
所以我在设计控制策略时,对不同物料用了不同的动作方式。主料A用变频器驱动螺旋给料机,粗加料阶段频率拉到35Hz左右快速进料,接近目标时切到10Hz精加料,用低速减少空中悬料量。微量组分C用振动给料器,靠点动方式控制,每次振动几十毫秒,单次落料几克到几十克,精度很高。液体则尽量缩短阀门到料斗的管长,减少管道残留,最后再用"点动滴水"的方式补足。
投料顺序也很重要。我的习惯是先投主料,再投辅料,最后投微量组分,然后加水搅拌。原因很简单:主料先入斗,后面的组分落在主料表面上,搅拌时有更多时间混合;如果一开始就投微量组分,很容易被后续物料埋在死角里。这个顺序看起来是工艺问题,但直接决定了PLC程序里状态机的流转顺序。
1.2 系统组成与数据流
明确了工艺,再来看系统组成。一个典型的自动配料控制系统分四层:
- 检测层:称重传感器、称重变送器、料位开关、变频器反馈。
- 控制层:三菱FX3U系列PLC、模拟量输入模块、RS485通信扩展板。
- 执行层:变频器驱动的螺旋给料机、振动给料器、电磁阀、搅拌电机、出料插板阀、报警灯塔。
- 人机层:昆仑通态触摸屏,必要时加LabVIEW上位机做数据记录。
这里面的数据流是一条闭环:操作员在触摸屏输入配方,PLC读取当前料斗重量,经过滤波、去皮、落差补偿后,与配方目标值做比较,然后输出给各执行机构。与此同时,PLC通过RS485读写变频器的频率和电流,通过脉冲输出控制步进电机,每个批次结束后把实际重量、误差、日期时间存到触摸屏或者上传到上位机。
很多初学者容易忽略数据流规划,导致程序写到一半发现变量不够用、寄存器冲突。我在每个项目开始前会先画一张表,列出"配方区、称重区、状态区、报警区、统计区"分别占用哪些D寄存器,写清楚谁负责写、谁负责读。这个习惯帮我省掉了大量调试时间。
2. 三菱PLC选型与硬件链路的取舍
2.1 先算I/O和通信需求,再定FX3U还是FX5U
选PLC型号不能凭感觉,先老老实实算I/O点数。以我那个三组分配料系统为例,数字量输入大概有:启动按钮、停止按钮、急停、手动/自动旋钮、主料仓低料位、辅料仓低料位、微量斗低料位、搅拌电机过载、步进原点、插板前后限位等,加起来14点左右。数字量输出大概有:主螺旋变频运行、辅螺旋变频运行、振动给料器、进水泵、插板步进脉冲、插板方向、搅拌接触器、出料泵、报警灯等,10点左右。
模拟量输入至少三路:主料斗称重变送器4-20mA、辅料斗称重变送器4-20mA、微量斗称重变送器4-20mA。还要预留一两路,以后可能加温度、压力信号。这样算下来,FX3U-32MT/ES-A加一块FX3U-4AD模拟量模块基本满足要求。
为什么强调选MT型?因为MT是晶体管输出,可以发高速脉冲控制步进电机;继电器输出型号虽然便宜,但Y0和Y1发不出脉冲,后面接步进电机就麻烦了。如果项目预算稍微充足,我建议直接用FX5U-32MT/ES,带内置以太网口,以后接上位机、MES系统都比FX3U加转接板方便。大型项目,比如三条生产线联动的配料车间,就上Q系列加QJ71E71以太网模块,走Modbus TCP与上位机对接,触摸屏连接也更稳定。
2.2 称重信号进PLC的三种方案
这是选型里最容易被低估的部分。称重信号进PLC一般有三种做法,我分别踩过:
第一种是传感器加变送器,变送器输出4-20mA给PLC模拟量模块。成本低,实时性好,我现在的项目多数用这个方案。FX3U-4AD的刷新周期对配料控制来说足够,变送器负责给传感器供桥和放大,4-20mA比毫伏信号抗干扰能力强很多。
第二种是称重仪表加RS485通信,PLC通过串口读仪表的重量值。好处是仪表本身带标定、滤波、显示,操作工能直接看到秤值,维修方便;坏处是很多仪表的RS485刷新周期在几十到几百毫秒,对快速配料来说会感觉"反应慢半拍"。如果工艺要求严格计量、需要计量检定证书,那必须走这种方案。
第三种是PLC模拟量模块直接接称重传感器毫伏信号。这个我强烈不推荐,普通PLC模拟量模块精度和激励电源都不够,标定非常痛苦,遇到温度漂移就更难查。
我在这个项目里选了第一种,核心原因是我需要在精加料阶段每秒做多次比较,及时捕捉停止信号,模拟量采集的响应速度比RS485轮询要快得多。
2.3 执行机构与通信选型
执行机构的选型,体现了一个人对工艺的把握。螺旋给料机用变频器驱动,最常规的做法是用多段速端子切换高低速,但我更倾向用RS485通信控制变频器。原因很直接:端子方式如果要改速度,得跑电柜里调电位器或拨码;用RS485之后,PLC程序里一个MOV指令就能改频率,还能远程读电流、读故障代码,方便很多。三菱FR-E700系列配FX3U的485ADP板用Modbus RTU协议,接线也不复杂。
出料插板阀我用了步进电机,而不是气缸。气缸只有开和关两个位置,对出料流量的控制太粗糙;步进电机可以精准控制闸板开度,需要慢速卸料时开小一点,需要快速卸料时开大一点,灵活性高。FX3U的Y0发脉冲,Y1发方向信号,配一个步进驱动器就能跑。
触摸屏选了昆仑通态,原因很务实:价格合适,驱动库齐全,对三菱FX系列的串口通信支持成熟。我自己做项目通常不把触摸屏选成三菱GOT,除非客户指定,因为昆仑通态在中小型项目里已经很稳定,备件也好买。
3. I/O分配与原理接线:这一步省事,现场就多熬几个夜
3.1 一个实际项目的I/O分配示例
I/O分配表是整个系统从设计落到图纸的第一步,也直接决定了后面程序好不好写。下面是我这个三组分配料系统的实际I/O表,可以作为模板抄:
| 地址 | 信号名称 | 说明 |
|---|---|---|
| X0 | 启动按钮 | 自动启动一个批次 |
| X1 | 停止按钮 | 完成当前投料后停机 |
| X2 | 急停按钮 | 硬回路急停,同时进PLC |
| X3 | 手动/自动旋钮 | 切换模式 |
| X4 | 主料仓低料位 | 料位低时报警 |
| X5 | 辅料仓低料位 | 料位低时报警 |
| X6 | 微量斗低料位 | 料位低时报警 |
| X7 | 搅拌电机过载 | 热继电器反馈 |
| X10 | 步进原点 | 插板阀原点传感器 |
| X11 | 插板前进限位 | 步进正方向限位 |
| X12 | 插板后退限位 | 步进反方向限位 |
| Y0 | 步进脉冲 | 高速脉冲输出 |
| Y1 | 步进方向 | 方向信号 |
| Y2 | 主螺旋变频运行 | 变频器启动信号 |
| Y3 | 辅螺旋变频运行 | 变频器启动信号 |
| Y4 | 振动给料器 | 微量组分给料 |
| Y5 | 进水泵 | 加水电磁阀 |
| Y6 | 插板使能 | 步进驱动器使能 |
| Y7 | 搅拌接触器 | 搅拌电机 |
| Y10 | 出料泵 | 卸料泵/卸料阀 |
| Y11 | 报警灯 | 声光报警 |
模拟量方面,FX3U-4AD的CH1接主料斗变送器,CH2接辅料斗变送器,CH3接微量斗变送器,CH4留空备用。四条通道都是4-20mA电流输入,这种信号比电压信号抗干扰更好,远距离传输也不会因为线阻产生明显压降。
特别提醒一句:急停按钮必须走硬回路,直接切断主接触器,PLC程序里看到的急停状态只是用来做报警和逻辑联锁。如果只靠PLC程序控制急停,PLC死机或者输出点烧毁的时候,设备根本停不下来,这是安全事故,不是程序问题。
3.2 模拟量接线和接地必须较真的地方
接线这张图,我每次都给电气装配工人强调三个原则。
第一,模拟量信号电缆必须用屏蔽双绞线,屏蔽层只能在电柜侧单端接地。我曾经遇到一台设备,称重信号在螺旋启动瞬间跳变,查到最后就是屏蔽层在传感器端和PLC端都接了地,形成地环路。把传感器端屏蔽层剪断之后,信号立刻稳了。
第二,模拟量信号线和变频器动力线绝对不能走同一个线槽。变频器输出侧是强干扰源,哪怕是平行走线一米,都可能让4-20mA信号上叠加尖峰。我建议信号线走独立的金属线槽,实在要交叉,也必须90度交叉,尽量减少耦合面积。
第三,称重变送器和PLC输出负载不要共用一个DC24V开关电源。螺旋启停、搅拌启动瞬间电流波动很大,如果变送器供电被拉低,称重值就会跟着跳。我给模拟量回路单独配一个24V电源,成本不高,但能省掉很多现场排查时间。
4. 控制程序:状态机、滤波和落差补偿是核心
4.1 用状态机组织投料流程,别用一坨置位复位
配料流程天然是分步的:启动、粗加主料、精加主料、粗加辅料、精加辅料、微量补料、稳定搅拌、卸料、结束。这种流程如果不做状态机,全部用置位复位写,程序做到一半就会乱成一锅粥。一个线圈被三处地方置位、两处地方复位,现场查故障的时候根本不知道它当前为什么是这个状态。
我在程序里用SFC思路组织,每个状态用一个STL步。示意如下:
LD M8000 SET S0 STL S0 OUT Y11 ; 报警灯复位或状态提示,根据实际定义 LD X0 ; 启动按钮 SET S20 ; 进入主料粗加 STL S20 OUT Y2 ; 主螺旋变频运行 LD M40 ; 精加切换条件满足 SET S21 ; 切换到主料精加 STL S21 OUT Y2 LD M41 ; 主料投完条件满足 SET S22 ; 进入辅料加工实际上我很少直接用STL指令,更多是在梯形图里用辅助继电器M实现同样的状态转移,因为很多电气维修工更习惯看