接到一个饮料厂罐装线的控制改造项目时,很多人第一反应是“不就是灌装加传送带吗”,真正深入之后才发现,一套基于PLC的饮料罐装生产线控制系统,牵涉到空瓶检测、液位控制、灌装精度、产量统计、故障联锁等多个环节,任何一个细节没想清楚,到了现场调试都会变成灾难。
这篇文章我基于自己做过的某饮料罐装线项目,把从方案设计、硬件选型、IO分配、程序逻辑到现场调试的全过程拆开来讲。项目的核心是:用一台中型PLC作为控制中枢,配合传感器、气缸、电磁阀、变频器、触摸屏,完成空瓶上料、定量灌装、封盖、成品计数和故障报警的自动化流程。适合刚接触工控项目的学生、刚入行的电气工程师,以及准备做类似产线改造的朋友参考。
1. 整体设计思路与方案选型
1.1 为什么这类产线一定要用PLC
罐装线的工作环境决定了控制器的选择标准。车间里电机频繁启停,灌装阀高速通断,变频器驱动传送带时还会产生电磁干扰,普通单片机或者继电器逻辑在这种环境下的可靠性和抗干扰能力都撑不住。PLC作为工业控制器,优势在于三个地方:一是输入输出接口直接支持24V开关量信号,接线简单,不用额外设计信号调理电路;二是程序运行方式决定了它天然抗干扰,扫描周期固定,信号抖动用滤波就能处理;三是后续要加触摸屏、变频器通信、上位机监控,PLC都有现成的通信接口,扩展成本低。
从维护角度看也有明显优势。继电器逻辑改一条线要重新布线,单片机程序烧录还要专门的下载器,而PLC随时可以在线修改程序、强制输出点做测试,产线调试阶段这种灵活性非常关键。我见过不少用继电器搭的半自动灌装线,改一次灌装时间要拧电位器,精度全靠手感,换成PLC之后这些全部变成了程序参数,操作工在触摸屏上就能改。
1.2 系统层级怎么划分
这套罐装线系统我按照现场设备的功能,分成五个层次来看。最底下一层是执行机构和传感器,包括传送带电机、灌装电磁阀、封盖气缸、空瓶检测光电传感器、液位传感器、成品计数传感器。往上一层是PLC主站,负责采集这些信号,按照程序逻辑输出控制指令。再往上是人机界面层,也就是触摸屏,用于参数设置、状态监视、故障报警和产量查询。还有一层是驱动层,传送带电机用变频器控制,需要在启动时实现软启动,避免瓶子在传送带上倒瓶。最后一层是通信层,PLC通过串口或者以太网和触摸屏、变频器通信,后期如果接MES系统,数据也能从这里走。
分层的意义在于,每一层之间职责清晰,现场找故障的时候可以快速定位。比如灌装量不准,问题可能出在电磁阀、传感器、PLC程序、触摸屏参数四个环节,按层级逐个排查,思路不会乱。
1.3 工艺流程与控制要求梳理
接到需求之后先把工艺吃透。这条产线的流程是这样的:空瓶由前段输送带送入,到达灌装工位后挡瓶气缸伸出,把瓶子定位住;灌装头下降插入瓶口,打开电磁阀,利用高位储液罐的重力或者泵送方式向瓶内灌入饮料,达到设定液位或者设定时间后关闭电磁阀,灌装头抬起;瓶子放行,进入封盖工位,气缸下压完成封盖;最后瓶子经过成品计数传感器,数量计入总产量,再送入下一段输送带。
控制要求对应着几条硬指标。灌装精度要控制在±5ml以内,这意味着电磁阀的响应时间要快,程序里的灌装时间不能简单用固定定时器,需要根据实际流量做修正;传送带启停要平滑,防止瓶子倒伏;系统必须有自动和手动两种模式,自动模式用于正常生产,手动模式用于调试和故障处理;产量需要实时统计,并能在触摸屏上查询当天总产量和班产量;任何一台设备故障,系统要能及时报警并联动停机,避免堆积和碰撞。
2. 硬件选型与IO分配实战
2.1 PLC型号和扩展模块怎么定
PLC选型的第一步不是看品牌,而是计算输入输出点数。我先把设备清单列出来,一一对应输入信号和输出信号。输入信号包括:启动按钮、停止按钮、急停按钮、手动/自动切换旋钮、空瓶检测传感器、瓶到位检测传感器、液位传感器、成品计数传感器、封盖气缸上下限位开关。输出信号包括:传送带变频器启停和正转、挡瓶气缸电磁阀、灌装头升降气缸电磁阀、灌装电磁阀、封盖气缸电磁阀、三色报警灯。初步算下来输入约12点,输出约8点,这是纯开关量的情况。
考虑到后期要接触摸屏和变频器通信,我直接选了一款带通信接口的中型PLC,CPU本体的数字量输入输出点数够用,不需要额外加扩展模块,给现场留了一定裕量。这里提醒一下,选型时点数一定要留余量,按实际需求的1.2倍到1.5倍来留,因为现场调试时往往会有临时增加信号的情况,比如某个工位要加一个安全门开关、加一个气缸磁性开关,如果点数卡太紧,后面只能加扩展模块,价格高不说,还要重新接线。
输出类型也要想清楚。驱动电磁阀和气缸这类负载,选继电器输出型的PLC比较稳妥,负载能力大,而且电磁阀是感性负载,切换瞬间会产生反向电动势,继电器输出对浪涌的耐受能力比晶体管输出强。但是继电器输出有动作寿命限制,如果灌装电磁阀动作频率非常高,每秒钟通断几次,这时候就要考虑晶体管输出加中间继电器的方式。我这套系统灌装阀的动作频率不算太高,所以选了继电器输出。
2.2 传感器和执行机构的选型思路
空瓶检测和成品计数传感器,我选的是对射式光电传感器,一组发射一组接收,瓶子经过时挡住光线,输出信号翻转。这里有一个坑需要专门说:饮料瓶有透明瓶和不透明瓶之分,透明瓶用对射式光电没有问题,但如果用的是漫反射式光电,透明瓶可能会导致检测不到,因为光线直接穿透了瓶子,反射回来的光太弱。所以做这类项目时,要么用对射式,要么选用专门检测透明物体的光电传感器,不要凭感觉定型号。
液位检测这里有两种方案。一种是在灌装工位旁边安装电容式液位传感器,瓶子到达后灌装到设定液位,传感器检测到液体到位就关闭电磁阀,这种方式的优点是精度高,不受灌装时间漂移影响,缺点是传感器成本高,而且不同瓶型需要调整安装高度。另一种是用时间控制,程序里根据灌装时间定时关闭电磁阀,成本低,但精度受储液罐液位高度变化影响。我这次采用的方案是时间控制为主,同时在储液罐上装一个液位传感器做低位报警,当储液罐液位偏低时提醒操作工补充饮料,避免灌装时间一样但实际灌装量偏小的情况。
执行机构方面,传送带电机用变频器驱动,功率不大,但变频器带来的好处是可以通过加减速时间设定避免起步过猛导致倒瓶。灌装头和封盖气缸用标准气缸加电磁阀控制,气缸动作到位靠磁性开关反馈,这样程序里可以判断动作是否完成,超时则报警。
2.3 IO分配表要详细到什么程度
IO分配是整个项目的地基,分配不好后面编程和接线都会乱。我习惯在画原理图之前先把IO分配表做出来,而且要细致到每个点位对应哪个设备的哪根线。这看似费时间,实际上省了很多后期麻烦。下面是我这次项目的IO分配表:
| 地址 | 信号名称 | 设备位置 | 说明 |
|---|---|---|---|
| X0 | 启动按钮 | 操作面板 | 自复位常开,上升沿启动 |
| X1 | 停止按钮 | 操作面板 | 自复位常闭,断开时停车 |
| X2 | 急停按钮 | 操作面板 | 自锁常闭,断开时紧急停车 |
| X3 | 手动/自动切换 | 操作面板 | 旋钮,0为手动,1为自动 |
| X4 | 空瓶检测传感器 | 传送带入口 | 检测到空瓶为ON |
| X5 | 瓶到位检测传感器 | 灌装工位 | 瓶子到位为ON |
| X6 | 灌装头气缸上限 | 灌装工位 | 磁性开关,到位为ON |
| X7 | 灌装头气缸下限 | 灌装工位 | 磁性开关,到位为ON |
| X8 | 封盖气缸上限 | 封盖工位 | 磁性开关 |
| X9 | 封盖气缸下限 | 封盖工位 | 磁性开关 |
| X10 | 成品计数传感器 | 传送带出口 | 每过一个瓶子产生一个脉冲 |
| X11 | 储液罐液位低 | 储液罐 | 液位低时ON,报警 |
| Y0 | 传送带变频器启动 | 电控柜 | 驱动传送带运行 |
| Y1 | 挡瓶气缸电磁阀 | 灌装工位 | 伸出挡瓶 |
| Y2 | 灌装头升降电磁阀 | 灌装工位 | 得电下降,失电上升 |
| Y3 | 灌装电磁阀 | 灌装工位 | 得电灌装,失电停止 |
| Y4 | 封盖气缸电磁阀 | 封盖工位 | 得电下压封盖 |
| Y5 | 三色灯-绿 | 灯塔 | 运行指示 |
| Y6 | 三色灯-黄 | 灯塔 | 待机指示 |
| Y7 | 三色灯-红 | 灯塔 | 故障指示 |
这张表在项目里发挥的作用很大。编程时每个软元件都有明确对应关系,查问题的时候拿着表对着端子和PLC指示灯看,基本一眼就能看出哪个信号没到。
3. 程序设计与核心控制逻辑实现
3.1 程序结构怎么组织才不乱
PLC程序最忌讳所有逻辑堆在一起。正规的做法是分块组织,我用的是主程序加子程序的架构。主程序里放整体流程控制,子程序分成自动运行、手动操作、报警处理、产量统计四个块,用条件调用。主程序执行时先扫描急停信号,急停断开时直接封锁所有输出,这是安全底线,优先级最高。然后判断手动自动模式,自动模式下调用自动运行子程序,手动模式下调用手动操作子程序。
为什么要分块?因为程序越往后改起来越危险。如果所有逻辑平铺在一起,后期增加一个故障检测条件要在一大段程序里找位置,改错一处就可能影响整个产线动作。分块之后,修改只局限于某个子程序内部,互不干扰。
再一个细节是程序扫描周期的问题。PLC的梯形图是从上到下、从左到右扫描的,同一个扫描周期内,先执行的部分会影响后执行的部分。所以程序里涉及到联锁和互锁的逻辑,要特别注意排列顺序。我的做法是:传感器信号处理放前面,气缸和电机的控制逻辑放后面,报警输出放最后,这样信号状态先刷新,控制逻辑基于最新状态判断,避免出现一扫描周期内状态不一致的情况。
3.2 自动运行的核心流程怎么写
自动模式的流程我用步进逻辑来实现,没有用复杂的顺序功能图语言,而是用梯形图配合辅助继电器做状态步进。核心思路是每一步用一个辅助继电器代表当前状态,状态之间的切换条件明确,前一步的状态复位,下一步的状态置位。这样程序的可读性好,而且不会出现两个状态同时激活的情况。
灌装工位的状态流程是:传送带运行,空瓶进入,当瓶到位传感器X5检测到瓶子时,挡瓶气缸伸出,传送带停止。接着灌装头下降,下降到位后打开灌装电磁阀开始灌装。这里有一个关键问题:灌装时间的控制。如果用固定定时器,前期灌装和后期灌装由于储液罐液位不同,流量会变化,导致灌装量不稳定。我在程序里采用了一个修正系数,操作工可以根据实际灌装量的检测结果调整触摸屏上的灌装时间参数,相当于用人工反馈做了一次闭环修正。
灌装时间到,关闭电磁阀,灌装头上升,上升到位后挡瓶气缸缩回,传送带重新启动,瓶子向右进入封盖工位。封盖工位的逻辑类似,瓶子到位后封盖气缸下压,保压一定时间后抬起,瓶子继续向前走,经过出口计数传感器时完成计数。整条流程通过步进逻辑串联起来,任何一个环节超时或者未到位,都会触发报警并停止后续动作。
这里要注意一个衔接细节:传送带的启停不能频繁。瓶子在灌装工位和封盖工位都需要定位,如果每个瓶子到位后都停传送带,变频器会频繁启停,发热严重且容易报故障。我做了优化处理:传送带不是每个瓶子都停,而是分两种情况,当瓶子连续进入且灌装工位空闲时,传送带持续运行,瓶子到达灌装工位后只在灌装那几秒钟停止,灌装完成立刻恢复运行。封盖工位同样处理,这样即便有两个工位,传送带也只在需要精确定位时才短暂停止,整体效率更高。
3.3 产量统计和班次管理怎么做
产量统计看着简单,实际有几个细节要处理。成品计数传感器X10每检测到一个瓶子就产生一个脉冲,程序里用加法指令对脉冲计数。但这里有个问题:传感器信号有抖动。瓶子经过时光电信号可能因为瓶身反光或者外形不规则产生多次触发,直接计数会导致数量偏大。解决办法是加去抖处理,程序里用定时器做一个10ms的延时确认,只有信号持续稳定10ms以上才认为是有效脉冲,然后计数一次。
还有一个更隐蔽的问题:计数时机。如果瓶子和瓶子之间挨得很近,传送带速度又快,传感器还没复位下一个瓶子就到了,就会漏计。我的处理方式是增加一个最小间隔判断,传感器信号断开后必须保持至少200ms无信号才允许下一次计数,这个时间参数可以在触摸屏上调整,以适配不同的传送带速度。
班次管理方面,我设置了三个产量寄存器:当天总产量、早班产量、中班产量。PLC内部有实时时钟的话可以直接判断当前时间属于哪个班次,程序里每小时切换一次区间判断。如果没有实时时钟模块,就用触摸屏的时钟数据写到PLC寄存器里。这个功能看似不起眼,但对于车间管理者来说很重要,因为班次产量直接对应绩效考核和生产统计。
3.4 手动模式与安全联锁设计
手动模式不是简单地把自动流程拆开,而是让每个输出都可以独立操作,同时还要保留必要的安全联锁。我使用了触摸屏上的手动操作页面,每个气缸和电机对应一个启动按钮,按下时动作,松开时停止,或者按下一次动作到位再按一次返回。
手动模式的安全设计有一个容易忽略的点:气缸互锁。比如灌装头升降气缸,手动模式下如果上升和下降两个电磁阀同时得电,气缸会憋住不动,时间长了会损坏电磁阀或者气缸。程序里必须在手动控制逻辑中做互锁,上升阀得电时强制下降阀失电,反之亦然。传送带启动也是同理,自动状态下如果有报警,手动模式不允许启动传送带,防止故障状态下继续跑料。
急停逻辑我放在了程序最前面,用的是常闭触点。急停按钮按下时,输入信号断开,程序里对应的常闭触点变为导通,驱动一个急停辅助继电器,然后所有输出全部复位。这里有一个重要细节:急停使用的是常闭触点接法而不是常开。这样即使急停按钮的线断了,系统也会进入停止状态,属于故障安全型设计。很多初学者在这里会搞反,以为常开触点才是正常的,实际上急停和安全回路要求断线保护,必须选常闭。
4. 实操过程中的关键步骤与调试记录
4.1 接线和硬件检查阶段
接线是整个项目里出错率最高的环节,问题往往不是技术含量高,而是不够仔细。我的经验是接线前先做三件事:核对IO分配表和接线图的一致性、检查PLC输入输出模块的型号和标签、确认电源的极性。24V直流电源一旦接反,轻则传感器烧毁,重则PLC输入模块损坏,这个成本是很高的。
输入信号的接线方式也要提前确认。PLC输入端子有两种接法:漏型输入和源型输入。我用的传感器是NPN输出型,对应的PLC输入端需要接入24V正极,传感器输出端接PLC输入点,这样传感器导通时输入点为低电平。如果传感器型号买成了PNP型,接法就完全相反,需要接24V负极。所以接线之前一定要看清楚传感器铭牌上的输出类型,这比任何编程细节都重要。
输出端的保护也值得多说两句。电磁阀是感性负载,断电瞬间会产生反向电动势,如果不加保护,可能会击穿PLC输出模块的继电器触点。我的做法是在每个电磁阀线圈两端并联续流二极管,二极管的方向和正常工作电流方向相反,断电时给反向电动势一个泄放回路。同时电磁阀线尽量使用双绞线,减少对相邻信号的干扰。
接线完成后不能急着上电,先做一次全面的导通检查。用万用表电阻档逐个量PLC输入点和公共端的通断关系,模拟按钮按下和松开两种状态,看信号是否能正确变化。这套工序看起来繁琐,但能把接线错位这类问题在上电前全部拦住,现场调试时节省大量时间。
4.2 程序下载与空载调试
程序写完先不要接主回路负载,把PLC输出端的负载线暂时断开,只保留输入信号和PLC本体的运行状态检查。这样做的原因是第一次跑程序时极大概率会有逻辑漏洞,如果直接带负载,可能气缸乱动、传送带突然启动,非常危险。
空载调试的第一步是逐点测试输入信号。在触摸屏上做一个输入监视页面,或者在编程软件里打开同步监视窗口,然后逐个触发传感器和按钮,看PLC程序里对应的输入点是否变为ON。这一步能验证接线和输入地址是否对应正确。第二步是逐点强制输出,在编程软件里用强制功能直接把Y0到Y7置位,听继电器吸合的声音是否正常,确认输出回路到中间继电器或者接触器的路径通畅。这里提醒一句,强制输出之后一定要记录哪些点被强制过,调试完要全部撤销,否则恢复自动运行时会出大问题。
第三步是模拟自动流程空跑。我没有用真实的瓶子,而是手动触发传感器信号来模拟瓶子到位。具体做法是在程序监视状态下,手动将X5瓶到位传感器强制为ON,观察整个灌装流程是否能按步进逻辑往下走。这一步能发现很多时序问题,比如灌装头还没抬起,挡瓶气缸就缩回了,说明步进切换的先后条件写错了。空载调试时要把每个工位的先后关系都仔细验证一遍,直到流程完全顺畅,再接上真实负载。
4.3 联机调试要盯住的几个指标
带上瓶子进行联机调试时,重点盯三个指标:灌装精度、传送带节拍、故障恢复时间。
灌装精度是罐装线最容易被客户挑战的参数。联机调试第一步先做小批量测试,取10个瓶子,灌装完成后逐一用量杯检查液位,记录实际灌装量。如果普遍偏多,说明灌装计时偏长,在触摸屏上调小灌装时间参数;如果有的多有的少,那就不是时间参数的问题,而是电磁阀动作不一致或者储液罐液位波动过大,需要检查电磁阀阀芯是否卡滞,或者储液罐的补液速度是否跟不上灌装速度。一般做两三轮调整之后,精度就能稳定在要求范围内。
传送带节拍调试要和灌装时间配合。如果传送带速度太快,瓶子在灌装工位的定位时间太短,灌装还没完成瓶子就被带走;如果太慢,单位时间产能上不去。变频器频率我按实际测试来定:先设一个中等频率跑起来,然后逐渐调高,观察灌装工位能否稳定完成动作,以不发生倒瓶且灌装动作完整为边界,最终确定运行频率。
故障恢复时间这个指标比较容易忽略。生产中经常出现瓶子歪倒、传感器瞬间误信号这类临时故障,如果故障逻辑处理太激进,一检测到异常就整线急停,每次恢复要重新走流程,产量损失很大。我在程序里对轻微故障设置了自动恢复机制,比如瓶到位信号丢失超过某个时间才判断为致命报警,短时间波动只记录警告不动作。这个时间参数要现场调,我一般从500ms开始试,小了容易误报,大了会掩盖真实故障。
4.4 触摸屏画面设计和参数开放
触摸屏画面我做了三个主页面:运行监控页、手动操作页、参数设置页。
运行监控页显示设备当前运行状态,包括传送带运行指示、各气缸位置状态、当前灌装时间、变频器频率、实时产量和今日总产量。画面上还有一个报警栏,最新一条报警会显示在顶部,报警时三色灯红灯亮起。
手动操作页对应手动模式,每个气缸有独立的“伸出”和“缩回”按钮,传送带有一个启动按钮和一个停止按钮。这里要特别设置操作权限,手动操作页只在手动模式下才允许操作,自动模式下按钮全部置灰,防止误操作。
参数设置页开放给操作工的参数不宜太多,我最终只开放了三个:灌装时间、瓶间隔时间、计数去抖时间。变频器频率和传感器参数放在工程师页面,需要密码才能进入,这样既方便现场调整,又防止不懂的人乱改导致产线异常。
5. 常见问题与排查技巧实录
5.1 灌装量突然不准怎么办
这类问题我在现场遇到过好几次。首先要分清是全都不准还是个别的偏差。如果全都不准,排查方向从储液罐液位开始,液位低了自然流量小,同样的灌装时间灌装量就会减少;再看灌装时间参数有没有被操作工改动过,触摸屏上有没有报警记录。如果是个别的偏差,重点检查灌装电磁阀,阀芯被杂质卡住会导致开关不到位,流量偏小,清洗之后一般能恢复。
还有一种隐蔽情况:电磁阀线圈老化导致响应时间变长。正常的电磁阀从得电到完全打开需要几十毫秒,老化之后可能变成上百毫秒,实际灌装时间等于设定时间加上响应延迟,就会普遍偏多。这种情况下在程序里做时间修正也能救急,但要真正解决还是更换电磁阀。
5.2 计数比实际产量多或者少
计数偏多的主要原因就是传感器抖动,解决办法是加去抖时间,我在前面已经提过。计数偏少则要检查传感器和瓶子的相对位置,如果传感器安装偏低或者偏高,瓶子经过时触发不完整,就会漏计。还有传送带速度过快导致信号脉宽太窄,PLC扫描周期来不及捕捉,这种情况可以把计数信号接到PLC的高速计数输入端子,用高速计数器功能来统计,不占普通输入点的扫描限制。
5.3 触摸屏和PLC通信偶尔断开
通信中断的典型原因是布线问题。触摸屏和PLC之间的通信线如果和动力线走在同一个线槽里,变频器工作时会产生谐波干扰,导致通信帧错误。解决办法是把通信线单独走管,使用带屏蔽层的通信线,并且屏蔽层单端接地。另外通信线的接头要牢固,我遇到过多次通信断开是接头松动导致,用带锁扣的工业接头能彻底避免这类问题。
5.4 气缸动作时好时坏
气缸问题先检查气源压力。车间气路压力波动会造成气缸动作无力或者不动作,在气源入口加一个过滤减压阀,把压力稳定在0.5MPa左右。再检查磁性开关的位置,磁性开关装得太靠边,气缸到位时感应不到信号,程序就会认为动作超时而报警。磁性开关的灵敏度也可以通过拧动后部的螺母微调,调到刚好触发的位置最可靠。
6. 个人经验总结与项目扩展思路
这套罐装线控制系统做完之后,我最深的体会是:PLC项目里编程本身只占三成工作量,剩下七成花在IO梳理、现场调试和反复处理各种“不按常理出牌”的情况上。前期的IO分配越细致、程序结构越清晰,后期调试的麻烦就越少,这是一个正比例关系。
关于灌装精度,如果要求更严格,比如±2ml以内,单纯靠时间控制是做不到的,建议升级为称重式灌装或者流量计灌装。流量计方案是在灌装管路上加装流量传感器,PLC读取实时流量值,累计到设定量时关闭电磁阀,这种方式对传感器和PLC的响应速度要求更高,成本也上了一个台阶。
扩展方向上,这套系统的控制逻辑可以比较方便地移植到其他类似产线。比如把灌装工位换成贴标工位,把灌装阀换成贴标气缸,整体程序框架不需要大改。再往上走,可以把PLC和产线上的MES系统对接,实现订单管理、批次追溯、设备OEE分析,这就是工业数字化改造的路子,也是以后工控项目需求最多的方向。