十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

三菱PLC与组态王在饮料自动装箱机控制系统的完整设计与调试实战

三菱PLC与组态王在饮料自动装箱机控制系统的完整设计与调试实战 做了这么多年自动化项目接触过的包装线控制系统少说也有几十条但像饮料自动装箱机这种“看着简单、做着讲究”的设备还是值得单独拿出来聊聊。核心就两样三菱PLC做逻辑控制组态王做上位监控一主一从配合起来完成从瓶体输送、计数整列、推瓶入箱到满箱输出的整个装箱流程。这篇文章我不打算讲说明书上的套话直接把这套系统的设计思路、硬件选型、程序架构、组态王开发和现场调试经验一次说透给正在做类似设备或准备入坑的朋友一个可以参照的完整方案。1. 项目背景与控制需求拆解1.1 饮料装箱工艺与功能需求饮料自动装箱机说白了就是把灌装好的瓶装或罐装饮料按照预定的排列方式装进瓦楞纸箱里。听起来简单真正落到工艺上动作链其实并不短空箱要到位瓶体要排队瓶子要计数数量够了要整列推瓶机构或抓取机构要把瓶子送进箱子里满箱要输出中间还有缺瓶检测、堵瓶保护、箱子歪斜检测一大堆琐碎的东西。我接手的这条线是500ml PET瓶装饮料包装规格是每箱24瓶分两层每层12瓶按3×4排列。设备设计的节拍是每分钟16箱算下来每箱装箱时间也就3.75秒左右实际考虑到推瓶动作、气缸升降、输送停顿留给每个节拍的时间非常紧凑。这就要求控制系统的扫描周期、气缸动作的时序配合、传感器响应的实时性都要做到足够到位。功能需求拆开来主要有这么几块空箱供给纸箱通过辊道输送到位定位气缸伸出把箱子卡在固定位置上。瓶体输送灌装好的瓶子由灌装机出口进入装箱机的输送带多列并行进料。计数整列每列瓶子经过光电传感器PLC实时计数当计数达到设定值比如12瓶后挡瓶气缸动作把这一列截住等待推瓶。推瓶入箱分层推瓶。先推第一层12瓶推瓶板下降再推第二层两层叠加后进入箱体。满箱输出装箱完成后定位气缸松开辊道启动把满箱送走同时补充一个空箱到位。除了这些自动循环动作设备还必须支持手动单步操作便于调试、换型和故障处理。所以控制系统既要自动运行的稳定性也要手动模式的灵活性。1.2 控制系统的整体方案选型我在这条线上选型的思路是以“成熟稳定、维护方便”为第一原则。PLC这块选的是三菱FX3U-64MT/ES晶体管输出型带3路高速计数器对于装箱机这种以开关量为主、少量脉冲输出的设备完全够用。为什么不用继电器输出因为推瓶机构用的是伺服电机需要高速脉冲输出继电器输出根本跟不上再者设备节拍快输出点频繁通断继电器触点寿命也经不起折腾。上位监控选了组态王6.55这是国内工控圈用得最广的组态软件之一。选它不是因为功能多炫而是因为设备最终是用在饮料厂车间的车间设备管理员大多对组态王比较熟悉后续改配方、看产量、查报警都容易上手。组态王通过串口和三菱PLC通信读取/写入寄存器和线圈状态实现数据监控和参数下发。整体系统架构就是一个典型的“PLC触摸屏/上位机”两层结构底层三菱FX3U PLC负责所有逻辑控制、时序动作、计数、报警判断。上层组态王负责数据显示、参数设置、历史记录、报表导出、报警汇总。中间通信RS485串口FX3U-485-BD通信板组态王通过“三菱FX3U编程口/MODBUS”驱动访问PLC。我特别想强调一点通信协议这块三菱FX3U自身支持编程口协议也支持MODBUS RTU。组态王6.55里自带三菱FX系列驱动直接在设备配置里选“三菱PLC—FX3U—串口”即可。动手做过项目的都知道组态王连三菱PLC最怕的就是通信不上九成原因是串口参数不一致后面我会专门讲这一块。2. 硬件选型与电气设计要点2.1 PLC选型与I/O分配规划选硬件不能上来就画IO表得先把设备动作捋清楚再定点数。我这条装箱机设备的IO点数统计下来大致是输入点25个输出点19个。考虑到预留余量选了64点的主机输入输出各留了大约7到8个备用点。输入点主要包括启动按钮、停止按钮、急停按钮、手动/自动切换开关空箱到位检测光电、满箱输出检测光电、瓶体到位检测光电各气缸磁性开关定位气缸伸出/缩回、挡瓶气缸伸出/缩回、推瓶气缸到位推瓶伺服原点、正负限位气源压力检测开关变频器故障信号输出点主要包括定位气缸电磁阀、挡瓶气缸电磁阀、推瓶机构升降气缸电磁阀推瓶伺服脉冲方向信号输送带变频器启动/停止及多段速控制端子装箱完成指示灯、故障蜂鸣器、三色灯塔空箱供给辊道电机、满箱输出辊道电机这里有个我一再强调的设计习惯急停按钮绝不进PLC参与软逻辑必须双回路硬接线直接切断总电源和控制回路。PLC程序里可以做安全逻辑但硬件急停是最后一道保障两条腿走路才踏实。2.2 传感器、执行机构与气动回路设计装箱机现场的传感器环境其实挺恶劣的瓶体透明反光、现场有水雾、输送带振动连续。瓶到位检测我用的是对射式光电传感器选了对射而不是漫反射就是因为透明瓶用漫反射极易漏检。计数器读取的是这个光电信号一旦漏检多检装箱数量就乱了所以信号稳定性是第一位的。气缸方面装箱机动作频率高选型时必须留够余量。定位气缸我用了SC63×50缸径63mm推力足够把空箱牢牢卡住挡瓶气缸用SC32×100轻巧快速推瓶升降气缸用SC40×75负责推瓶板升降这个气缸动作频繁我特意加了磁性开关反馈到位而不是单纯靠延时避免因为气缸动作不到位造成推瓶错位。气动回路上有一个非常容易踩的坑多个气缸同时动作瞬间气源压力会骤降。因此我在气源入口加了气动二联件过滤器减压阀并在靠近执行元件的汇流板前增加了一个小容量储气罐起到缓冲作用。这套配置做完之后多气缸联动时的动作明显干脆了很多。2.3 电气原理与安全回路设计电气设计上我把220V动力线和24V信号线严格分槽走线这一点在变频器存在的场合特别重要。输送带电机由三菱变频器驱动变频器输出侧的干扰很大如果信号线跟动力线扎在一起走PLC输入点时不时会误动作传感器信号也容易乱跳。做好分槽、屏蔽接地能省掉后面一大半调试麻烦。安全回路除了前面说的急停硬接线我还做了门开关检测、气源低压检测。门开关信号进PLC运行中舱门打开立即停机并报警气源压力低于0.4MPa时系统不允许自动启动防止气缸推力不足导致装箱事故。这些信号在组态王上都有对应显示方便操作工一眼看出设备状态。3. PLC程序架构与关键逻辑实现3.1 程序总体框架与状态机设计三菱PLC编程很多朋友喜欢从头到尾写一条大梯形图分支一堆看着就头疼。我在这套系统里用的是典型的“状态机分块”结构程序按功能分成主程序、自动运行子程序、手动操作子程序、报警处理子程序、参数初始化子程序几个块通过CALL指令或条件跳转来组织。自动运行核心用三菱的步进梯形图指令STL来搭。STL本质上就是状态机S0到S40定义了整个装箱循环的各个状态S0初始状态等待启动条件满足S5空箱到位检测S10定位气缸夹紧S15瓶体输送计数循环等待状态S20第一层整列完成推瓶板下降S25第一层推瓶入箱S30推瓶板退回原位第二层计数整列S35第二层推瓶入箱S40定位气缸松开满箱输出状态机的好处是逻辑清晰每个状态只管一件事出问题时看当前激活状态就知道设备卡在哪一步。这个思路对于所有顺序控制类项目都通用装箱机、灌装机、包装机全都适合。3.2 装箱计数与整列逻辑计数逻辑是整个程序的灵魂。24瓶一箱、每层12瓶需要精确数出12瓶就截停、再数12瓶又截停。我用的是三菱FX3U的高速计数器编程时将X0指定为高速计数输入计数当前值实时读入D0。当D0等于12时置位挡瓶气缸输出把这一列瓶子截住。这里有一个设计细节计数到位后不能立刻推瓶必须等输送带上的瓶队列稳定也就是在挡瓶气缸动作后延时一段时间等后面的瓶子都顶住前面的瓶身、排列整齐了推瓶动作才有意义。这个延时我设在0.8秒左右根据输送带速度和瓶间距现场微调。还有判断满层数量的问题第一层12瓶推入箱后推瓶板上升回位开始第二层计数。所以D0要做两次计数清零一次在第一层推瓶完成后一次在第二层推瓶完成后。为了防止计数误差累积每箱装箱完成后D0强制清零同时用另一个寄存器D1记录总箱数。3.3 伺服推瓶动作与电子齿轮比设定推瓶机构是这台设备里唯一用伺服的部位选的是三菱MR-J4系列400W伺服配合滚珠丝杠实现推瓶板的前后移动。伺服的控制方式为位置控制模式PLC发脉冲串脉冲频率决定速度脉冲数量决定位移。电子齿轮比的计算在这里做个完整示例。丝杠导程10mm伺服电机每转需要131072个脉冲J4系列编码器分辨率。推瓶板从原点推到箱口需要直线行程500mm对应电机50转需要的脉冲数为50×1310726553600个脉冲。如果PLC发脉冲频率是200kHz电机要跑到多少转速200000×60÷131072≈91.5r/min看起来速度不高但推瓶本身不需要高速平稳比速度重要。实际操作中我没有直接用这么大的电子齿轮比而是把电子齿轮比设为1:1PLC端通过软件计算脉冲数。这样程序里改动推瓶位置只需要改一个寄存器里的脉冲数数值换瓶型时特别方便。3.4 手动/自动切换与报警处理手动模式的实现方法很直接在自动运行的步进指令前面加一个总开关M0自动运行允许。M0为ON时STL程序正常执行M0为OFF时步进状态全部复位此时组态王或设备面板上的手动按钮直接控制各输出点。这个逻辑简单但调试时非常实用——新设备第一次上电必须先把每个气缸单独手动动作一遍确认方向、磁性开关都正常了再调自动。报警处理我单独用了M100~M140一段辅助继电器涵盖的主要报警有气源压力低推瓶伺服报警变频器故障瓶到位信号超时长时间无瓶箱子卡滞满箱输出超时舱门打开报警信号汇总后一方面驱动三色灯塔的红灯和蜂鸣器另一方面通过通信上传到组态王在报警画面上显示具体报警内容和发生时间。这里我建议报警点不要直接使用输入点本身而是PLC程序里做滤波加锁存避免外部干扰导致报警误报。4. 组态王监控系统开发4.1 组态王与三菱PLC通信配置组态王连接三菱PLC是整条系统里最容易出问题的环节我在多个现场见过同行在这上面卡两三天。先把配置步骤写清楚在组态王工程浏览器左侧选择“设备—COM1”双击“新建”。设备驱动选择“三菱—FX3U—串口”。设定串口参数波特率9600、数据位8、停止位1、校验方式偶校验三菱编程口协议默认就是9600E81。设定PLC地址为0三菱编程口站的默认地址就是0。通信测试通过后开始定义变量。实际操作中最常见的坑有三个一是组态王默认串口参数跟PLC通信板实际参数不一致PLC那端如果用485-BD板也要确认是RS485模式且波特率一致二是USB转串口线质量差导致数据丢包建议用带FTDI芯片的工业级USB转串口线普通的CH340也不是不行但现场环境复杂时确实不如FTDI稳定三是PLC必须处于RUN状态如果PLC编程口被其他设备占用或者PLC处于STOP通信就直接失败。调试通信的时候我习惯先用组态王自带的设备测试功能看读回来的数据对不对而不是直接跑到画面上判断。这一步通过之后再定义变量、画动画问题定位会快很多。4.2 数据词典与监控画面设计数据词典是组态王里所有变量的登记表。我这套系统的变量分成几类开关量输入变量对应三菱PLC的X点实际通过PLC内部M点映射读取。开关量输出变量对应三菱PLC的Y点。内部继电器变量对应M点比如自动运行标志、手动模式标志。寄存器变量对应D点比如当前计数值D0、总箱数D1、推瓶位置脉冲数D10。为了通信效率组态王读取三菱PLC的位和字时尽量按块批量读取不要一个变量一个变量反复读。举个例子把M100到M140这40个报警点一次性定义到组态王的一个“报警字”变量里再用移位或比较指令拆开显示。这样做通信负载小数据刷新快不会出现画面卡顿。画面设计上我做了主画面、参数设置画面、报警记录画面、产量报表画面四个界面。主画面用设备俯视图的方式画了输送带、装箱机构、箱体位置用动画连接让瓶体位置随计数值移动、气缸伸出缩回用填充方块表示、推瓶板移动用水平位移连接。操作工能直观看到设备到哪一步了比看一排指示灯高效得多。4.3 参数下发、报表与数据库联动参数设置画面里放了几个关键参数每箱瓶数、每层瓶数、推瓶位置脉冲数、挡瓶延时时间。操作工改完参数点“下发”组态王把数值写入PLC的D寄存器PLC下次循环就按新参数运行。这个功能在换瓶型的时候特别有用比如从24瓶/箱切换成12瓶/箱不用修改PLC程序只需在画面上改数字。产量报表这块组态王本身就带报表系统但我更推荐把产量数据落进SQL数据库便于车间管理层做生产统计。组态王通过ODBC接口连接MySQL数据库报表明细用SQL语句插入和查询。这里有个小经验组态王ODBC写入MySQL时如果字段类型是bit插入0/1有时会报错建议统一用tinyint类型不然后面排查起来非常头疼。报表内容我通常记录三类每小时产量、每班次累计产量、报警时间段汇总。同时把设备运行时间也记录下来方便算OEE设备综合效率。4.4 报警记录时间错乱的排查心得组态王报警记录时间不对这个问题我专门遇到过一回。现象是报警画面上显示的时间比实际时间慢了好几个小时一开始以为是电脑时间问题检查了Windows系统时间却是准的。后来发现是组态王的数据采集时间间隔和报警时间戳机制导致的当通信不稳定时组态王会把报警产生时间取的是采集到报警那一刻的时间而非PLC内的触发时间通信一旦阻塞时间戳就会被延迟刷新。解决方法是双管齐下一方面优化组态王的数据更新周期把报警采集变量所在的设备采集周期从默认的几百毫秒调整到和PLC扫描周期匹配另一方面在PLC里记录报警触发的相对时间用PLC内部时钟寄存器D8013-D8019上传到组态王作为参考时间。这个方案用下来报警时间基本能对齐了。5. 现场调试、典型问题与经验总结5.1 调试流程与常见问题排查新设备调试我坚持“先单机、再联机、后联动”的顺序。装箱机属于产线中的单台设备但现场通常要对接前道灌装机、后道封箱机所以调试节奏一定要稳。单机调试阶段先把PLC程序里的手动模式跑一遍每个气缸单独动作确认方向正确、磁性开关到位。接着调伺服先慢速点动确认正负方向再做原点回归最后跑一遍全行程检查有无干涉。自动调试试运行时先不放瓶子空跑整个装箱循环观察各状态是否按顺序切换。没问题了再小批量放瓶从慢速节拍逐步提速过程中观察计数准不准、挡瓶有没有漏截、推瓶有没有刮箱沿。提速到目标节拍后至少连续运行2小时中间每一小时记录一次产量核对组态王计数值和实际码放箱数是否一致。调试中容易出的问题我整理成了一张速查表故障现象常见原因排查步骤组态王通信失败串口参数不一致、USB线驱动异常、PLC处于STOP先设备测试再查参数最后查硬件线瓶计数不准光电安装角度偏、对射信号被水滴遮挡、信号干扰单独观察光电输入点闪动调整对准角度气缸不动作气源压力不足、电磁阀线圈坏、磁性开关没到位先看压力表再测电磁阀输出最后查反馈推瓶位置偏伺服原点丢失、丝杠间隙、电子齿轮参数错重新原点回归核对脉冲数报警频繁误报传感器信号线受变频器干扰分槽走线、屏蔽层单端接地、输入端加滤波电容5.2 几个容易被忽视的细节这里分享几个我踩过的坑都不复杂但容易让人白耗时间。第一个是挡瓶气缸的动作时机。如果挡瓶气缸在计数刚等于12时就立刻动作实际上前面的瓶子还有惯性往前冲很有可能第13瓶也挤过来计数乱了。我后来在程序里做了“先减速、后挡停”的处理当计数达到11时给变频器发一个减速信号输送带速度降下来第12瓶通过后就很好挡停了。这个细节对计数准确率影响特别大。第二个是推瓶动作完成后一定要等待伺服“到位”信号再进入下一状态而不能只靠延时。因为瓶身在箱内可能因为摩擦阻力导致推瓶板实际行程有误差延时结束不代表动作完成。用伺服定位完成信号做状态切换条件可靠性要高得多。第三个是组态王工程备份问题。组态王工程动辄几十上百兆现场人员改完经常不备份出了问题很难回退。我的习惯是每次现场调试结束把组态王工程文件全部打包压缩连同PLC源程序和三菱GX Works工程一起刻进一个以日期命名的文件夹保存在现场工控机和我的移动硬盘各一份。这套习惯救过我不少次。5.3 后续扩展与个人体会这套系统交付之后其实还可以做很多扩展比如把产量数据通过工业网关直接上传到MES系统或者增加扫码读码实现箱体唯一标识追溯。组态王侧也可以用SQL脚本做更细致的数据分析直接生成每班次OEE看板。这些都是在这套“三菱PLC组态王”骨架上很容易长出来的功能。按我个人经验做这类控制系统项目技术方案本身往往不是最大难点真正的功夫在细节有没有考虑到传感器被水雾遮挡、有没有测试过连续高速运行下的计数稳定性、有没有把报警信息做得让车间工人一看就懂。这些细节决定了一套系统从“能跑”到“好用”的差距。如果你正在做类似的装箱机、包装机、灌装机项目希望这篇文章里写的这些东西能帮你少走点弯路尤其是通信配置和计数逻辑这两块值得多花点时间打磨。
返回列表