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

资讯详情

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

运料小车PLC自动往返控制:三菱FX3U梯形图与调试全解

运料小车PLC自动往返控制:三菱FX3U梯形图与调试全解

车间里那种来回运料的小车,估计没人觉得陌生:A点装料,沿轨道跑到B点卸料,再空车跑回来,循环往复。以前不少厂子是用继电器搭正反转回路,加两个行程开关就完事,线接得跟蜘蛛网一样,真出故障了只能对着端子排一根根查。这次我直接用三菱FX3U PLC把这套控制整体重写,把核心控制逻辑用梯形图固化下来,维护的人只要搞懂十几行梯形图,比对着继电器盘硬猜强太多了。这篇文章就把整套东西完整拆开聊,从点位规划、梯形图逻辑到现场调试会遇到的问题,一次性讲透。

这套方案能解决什么问题、适合谁看?如果你正在做运料小车、传送带往返、料斗升降这类典型的"两点往返"控制,或者刚接触PLC想找一个能直接抄作业的正反转自动循环案例,这篇就是照着车间实际项目的路子写的。我尽量不说虚的,全是能落地的内容。

1. 运料小车的工艺需求拆解:先弄清楚小车到底要干什么

别急着写程序。任何PLC项目,第一步都是把工艺动作搞清楚,运料小车也不例外。别看它动作简单,控制需求理不清,后面梯形图写出来也是带着病跑的。

1.1 典型动作流程与隐藏的控制要求

最常见的运料小车工况是这样的:小车停在A点,料斗打开装料,装够时间后小车电机正转,沿轨道驶向B点;到了B点撞到限位,电机停,卸料门打开卸料;卸够时间后电机反转,小车返回A点;回到A点撞到限位,电机停,又开始下一轮装料。

表面上就这几步,但落到控制要求上就没这么简单了:

  • 小车电机必须能正反转,而且正反转绝对不能同时接通,这是安全底线。
  • 两端必须有位置检测,到位自动停车,不能靠人盯着。
  • 装料、卸料都需要停留时间,时间长短要能调。
  • 现场必须能手动操作,调试、对料、应急处理时都要用。
  • 要有急停、过载保护,电机堵转或小车卡住时能停下来。
  • 最好能自动循环运行,一键启动后不用人工干预。

我按这个最常见的"两端限位+定时停留"工况来做,后面提到的所有逻辑也都围绕这套需求展开。真实项目里如果还有卸料门开到位/关到位检测、小车载重信号、多料位停靠等,都是在这些基本控制点上的扩展,思路是一样的。

1.2 I/O点位规划与FX3U选型

控制需求理清之后,接下来就是分配I/O点。这一步非常重要,点位分配合理,后面写梯形图、接线都会很顺。我这套项目的输入输出点位如下:

软元件功能说明
X0启动按钮常开,按下启动自动循环
X1停止按钮常闭,断开即停
X2A点限位常开,小车到位A点时接通
X3B点限位常开,小车到位B点时接通
X4手动/自动切换旋钮开关,闭合为手动模式
X5手动正转按钮常开,手动模式下点动正转
X6手动反转按钮常开,手动模式下点动反转
X7急停按钮常闭,断开即停
X10热继电器常闭,电机过载时断开
Y0正转接触器控制电机正转
Y1反转接触器控制电机反转
Y2装料电磁阀装料时打开
Y3卸料电磁阀卸料时打开

用三菱FX3U-32MR/ES这台基本单元就够,14点输入、10点输出,点位有富余,后面想加报警灯、蜂鸣器都有地方接。

这里解释一下为什么选FX3U而不是别的型号。一是车间存量确实大,很多老设备升级改造就是用FX3U替换继电器控制盘,备件、图纸、维修人员的经验都现成;二是GX Works2编程软件用得顺手,梯形图、指令表、仿真都齐,对新手也友好;三是扩展能力够用,后面想加模拟量、通讯模块都支持,不会做到一半发现CPU不动。对一台运料小车来说,FX3U的性能完全冗余,但冗余意味着稳定和好维护,这正是车间设备最看重的。

1.3 为什么用PLC替代继电器控制盘

这里多聊一句选型逻辑。继电器控制也能实现正反转和限位停,但有个致命问题:逻辑是"硬"的,改一个动作就要改线。我们今天把装料时间从5秒改成8秒,继电器盘要换时间继电器;PLC只需要改一个定时器常数K50改成K80,或者更省事,把定时值放到触摸屏上,操作工自己填。再一个是排障效率,PLC有输入输出指示灯,接近开关、限位、接触器哪个没动作一目了然,继电器盘就只能拿万用表一段段量了。所以别觉得小项目用PLC是杀鸡用牛刀,省下来的维护时间很快就能回本。

2. 梯形图核心控制逻辑拆解:启停、互锁与自动往返

来到这篇博文的硬核部分。运料小车梯形图看着简单,但里面的逻辑关系很值得细抠。我习惯把程序拆成几大块来写:运行标志、正反转输出、自动循环、手动逻辑。每一块独立调通,再合到一起总装,排查问题的时候脑子和思路都清楚得多。

2.1 运行标志:启动、停止、急停、过载串在一条链上

整个程序最上面一层,我放了一个"运行标志"M0。它相当于总闸,M0不ON,后面所有自动动作都免谈。逻辑用指令表写出来就是这样的,照着串并联关系还原到梯形图里很容易:

LD X0 OR M0 ANI X1 ANI X7 ANI X10 OUT M0

这个回路就是经典的"起保停"电路:X0启动按钮按下,M0得电;松手后M0自保持;X1停止按钮、X7急停、X10热继电器任一断开,M0就断电,整个自动流程停止。

为什么用辅助继电器M0而不是直接把启动条件接到输出线圈上?因为后面自动正转、自动反转、装料阀、卸料阀都需要M0做总使能,用一个中间继电器做"运行标志",后面的程序段全部拿M0的常开触点去串,逻辑清晰,也方便手动/自动切换时统一切断。

2.2 正反转输出与三重互锁

小车电机的正反转,是运料小车控制里最不能出错的环节。三相异步电机正反转就是换相序,正转接触器KM1吸合、反转接触器KM2吸合。问题是这两个接触器只要同时吸合,就是相间短路,轻则跳闸,重则炸接触器。所以正反转必须做互锁,而且我建议做三重:

第一重是程序互锁。正转输出回路里串反转线圈的常闭触点,反转输出回路里串正转线圈的常闭触点。用指令表表达:

LD M1 ANI Y1 OUT Y0 LD M2 ANI Y0 OUT Y1

M1、M2分别是正转、反转的中间控制信号,Y1、Y0互为对方的禁止条件。程序执行时,正转和反转永远不可能同时输出高电平。

第二重是硬件互锁。交流接触器上有常闭辅助触点,把KM1的常闭触点串进KM2的线圈回路,把KM2的常闭触点串进KM1的线圈回路。就算PLC程序出问题、输出模块坏掉,两个接触器也不具备同时吸合的条件。这是必须做的,不能省。

第三重是换向延时。运料小车带负载,电机从正转突然切反转,冲击电流很大,机械传动部分容易损坏。程序里我习惯在正转结束和反转开始之间加一个0.5秒左右的延时,让电机完全停下来再反向启动。实现方式是在切换逻辑里串一个定时器T2做方向切换等待,正转断开、等待延时到、再到反转启动。

2.3 自动循环:装料、正转、卸料、反转组成的一个完整闭环

自动循环是整个梯形图的核心控制逻辑。我先把流程再捋一遍:

小车在A点 -> 装料延时 -> 正转去B点 -> 到B点停车 -> 卸料延时 -> 反转回A点 -> 到A点停车 -> 再次装料。

回到梯形图,这个闭环用定时器加限位触点就能搭出来。装料阶段:

LD M0 AND X2 ANI M2 OUT T0 K20

这条逻辑的含义是:运行标志M0为ON、小车已经停在A点(X2接通)、当前没有反转(M2为OFF),就开始装料计时。T0是100ms定时器,K20表示2秒。装料期间小车是不动的,2秒一到T0动作,触发正转。

正转去B点:

LD T0 AND M0 ANI X3 ANI Y1 OUT Y0

T0计时结束,且运行标志M0还在,B点限位X3还没碰到,反转Y1处于断开状态,正转输出Y0接通,电机正转,小车往B点跑。一旦小车到B点撞到X3,X3的常闭触点断开,Y0断电,电机停。

这里需要注意一个细节:到B点停车后,要马上开始卸料计时。卸料同样用定时器:

LD M0 AND X3 ANI M1 OUT T1 K30

小车在B点(X3为ON),当前没有正转(M1为OFF),卸料计时T1开始。T1是100ms定时器,K30就是3秒。

卸料完成,反转回A点:

LD T1 AND M0 ANI X2 ANI Y0 OUT Y1

T1计时到,反转输出Y1接通,电机反转,小车往A点跑。路上A点限位X2还没碰到,反转保持。回到A点X2接通,Y1断电,电机停。此时因为M0还在、X2为ON、M2为OFF,装料定时T0又开始计时。整套自动循环就这么闭环了,不需要额外的步序号,限位触点加定时器天然形成了"到了哪里、该干什么"的判断。

上电后如果小车本来就停在A点,按启动按钮,程序会先走一遍装料延时再正转,这符合工艺要求。如果上电时小车停在轨道中间,则不会进入自动流程——因为X2、X3都没接通,T0、T1都不满足条件。

3. 限位开关、断电保持和手动优先:小车能不能稳就看这几处

核心循环写完之后,真正决定这套设备现场稳不稳的,反而是几个容易被忽略的细节。这三个问题我在不同项目里都踩过,拿出来单独说。

3.1 限位开关的软检测与硬保护要分开接

运料小车的位置检测,靠的是A点和B点的限位开关。很多新手程序里只把限位开关接进PLC,觉得程序里处理了就万事大吉。但PLC程序是软件,会死机、会误判、输出模块可能坏掉。所以现场安全做法是:软检测和硬保护分开走。

软检测就是限位开关的常开触点接进PLC输入点,程序里用X2、X3判断位置,控制正反转输出。硬保护则是把限位开关的常闭点串进接触器的控制回路:小车到了极限位置,常闭物理断开,接触器线圈直接断电,电机硬停车。这样即便PLC卡死、程序跑飞了,小车撞到限位还是能停下来。

另外限位触点的常开常闭接法要想清楚。我习惯软检测用常开点,到位即接通,程序里用的是X2、X3的常开触点来判位置。常闭点则串在接触器回路里做硬件保护,平时不碰是导通的,小车撞到位后断开停车。常闭点还有个附加好处:如果限位开关的线断了,回路直接断开,小车也停,不会出现线断了设备还在傻跑的情况,符合故障安全原则。

安装上再补一句:限位开关的撞块位置要留余量,不能刚好卡在停止位置,要给机械惯性留缓冲。开关支架要牢固,松了以后限位位置飘移,那才是真的要命的事。

3.2 FX3U断电保持的坑:普通寄存器断电就丢

这也是很多第一次用FX3U的人会踩的坑。FX3U的数据寄存器D区,D0到D8属于普通寄存器,默认断电不保持。也就是说你把小车循环次数、运行时间、某个临时数据存在D0里,一断电全部清零。当然PLC参数可以改保持范围,但前提是你得知道还有这回事。

我建议凡是需要长期保存的数据,比如小车累计运行次数、总装料斗数,直接放到断电保持区域。FX3U里D200到D511默认就是断电保持的,D512以上的寄存器可以通过参数设置保持范围。同理,中间继电器M也有区分:M0到M499默认不保持,M500到M1023默认保持。

程序里的M0运行标志、M1、M2这类状态继电器,我全部放在普通区,断电后自动清零,上电后必须重新按启动才运行,这其实是好事。但如果你把某段状态放在了保持区,上电时它还是ON,那设备可能直接"复活"开始跑,反而危险。

所以运料小车控制我加了一个上电复位逻辑:PLC上电瞬间,如果小车不在A点位置,蜂鸣器报警,提示人工把小车拉回A点,才能投自动。位置检测本来就是限位决定的,断电期间小车停哪都有可能,靠寄存器保持来"记住位置"是不可靠的,工位工艺上重新对位才是正道。

3.3 手动/自动切换与双线圈陷阱

现场必须允许人工手动操作。我的做法是用一个旋钮开关X4来切换模式,X4闭合时进入手动模式,此时手动正转、手动反转按钮有效,自动循环被禁止。

手动正转逻辑用指令表示意:

LD X4 AND X5 ANI X6 ANI X3 ANI Y1 OUT Y0

X4手动模式、X5手动正转按钮按下、X6没按(防止正反一起按)、B点限位X3没碰到、反转输出Y1没接通,这时候输出正转。反转逻辑同理,用X6启动、串X5常闭、串X2常闭、串Y0常闭。

这里有一个很多新手会犯的错,叫双线圈问题。如果我在自动程序段写了一个OUT Y0,又在手动程序段写了另一个OUT Y0,同一个线圈在两个梯级输出,PLC扫描时会按从上到下的顺序执行,后面的输出会覆盖前面的。看起来程序没啥问题,实际上自动和手动逻辑会互相打架。

解决方法有两个。一个是在我之前的结构里,自动和手动输出条件都汇总到同一个Y0输出梯级上,用中间继电器合并条件,比如"自动正转M1或手动正转M50"统一驱动Y0。另一个是用SET/RST指令做置位复位,但要注意SET后的状态在保持区和普通区的差异,以及上电时是否需要初始化。我用的结构是前者,逻辑直观,排查容易。

4. 现场调试实录:三个最典型的小车故障与处理过程

光看梯形图写对了没用,设备是要在车间泥土、灰尘、油污里跑的。调试运料小车这一年多,我遇到过三个非常典型的问题,现象诡异,但根子其实都在程序之外,写出来给大家提个醒。

4.1 小车冲过限位:减速策略问题不是程序问题

第一次调试这台小车,带重载试车,B点限位X3都撞上了,程序也停了,Y0也灭了,但小车靠着惯性继续往前滑,一直顶到机械防撞块上,哐当一声。当时第一反应是程序没停住,拿着笔记本蹲在轨道边一顿查,查半天发现PLC输出早就断了,纯粹是机械惯性。

这事的本质是:三相异步电机加接触器,停车就是直接断电,制动全靠机械摩擦和负载阻力,重载小车冲过限位太正常了。程序没错,但工艺不能满足。

解决思路有几个方向。最简单的,换带电磁刹车的电机,断电瞬间刹车抱死,定位准。但刹车有磨损,动作频繁了以后刹车片要定期换。第二个思路是在终点前加一个减速位限位,配合双速电机或变频器多段速,小车先减速,低速爬到终点再停,冲击小得多。第三种就是上变频器,用变频器控制电机,程序里到减速位给低速信号,到终点正常停止,加减速时间都可以调,这是目前车间改造用得最多的方案。

后来我这边改成变频器方案,程序结构基本没变,只是Y0、Y1不再直接接接触器,而是接变频器的正转、反转端子,多了一个高速/低速切换输出点。小车运行平稳太多,而且电机启停冲击小了,机械寿命也上去了。

4.2 接触器弹跳和PLC输出点烧毁

有段时间现场反馈说小车经常"咯噔咯噔"响,后来PLC输出点也烧了一个。过去一看,接触器吸合时触头抖动得厉害,声音都不对。接触器线圈是感性负载,吸合瞬间电流冲击大,断开瞬间会产生反向电动势,一路窜回PLC输出点,继电器输出型的触点很容易被打坏。

处理办法分了三步走。第一,PLC输出点不再直接带接触器线圈,中间加一级中间继电器。PLC输出点接中间继电器线圈,中间继电器的触点再去带接触器线圈。这样PLC里的触点只驱动小电流,寿命长很多。第二,中间继电器线圈和接触器线圈两端都并联RC吸收器,把断开瞬间的反向电动势吸收掉。第三,把接触器本身检查了一遍,选型偏小的换大了一档,线圈电压不稳的也在控制电源前端加了稳压。

从那以后,同样的线路结构再没烧过输出点。这个经验我写进笔记里了,以后凡是PLC带感性负载,一律先过中间继电器,不加RC不投运。

4.3 限位信号受干扰导致小车乱跑

调试后期出现过一个特别头疼的偶发故障:小车正常跑着,偶尔在轨道中途突然自己停一下,或者反转往回跑,但过一会儿又自己好了。查梯形图查了半天,逻辑完全没毛病,后来怀疑是输入信号出了问题。

我把X2、X3的状态实时监控起来,守在轨道边等故障复现。结果发现小车还没到B点,B点限位X3的信号就已经闪通了瞬间。原来是限位开关的电缆和电机动力电缆走在了同一个线槽里,接触器吸合、电机启动瞬间的大电流在电缆上产生了强电磁干扰,耦合到信号线上,把X3给"打闪"了。程序一收到X3的闪断信号,以为到点了,就停了车。

解决措施是四管齐下。第一,限位开关换成屏蔽双绞线,屏蔽层单端接地,信号线和动力线分开走线槽,保持距离。第二,在PLC侧把输入滤波时间调大,FX3U对应的特殊数据寄存器是D8020,可以设置X0到X17的输入滤波时间,默认10ms,我调大之后短脉冲干扰就被滤掉了。第三,给DC24V电源加了一级滤波,防止电源线上的干扰串入输入回路。第四,如果用的是接近开关,还要严格核对NPN/PNP类型和PLC输入公共端接法——我见过S/S端子接反导致信号莫名乱跳的,虽然小车这台用的是机械限位,但这个检查项我每次都要提。

这轮排查下来,程序最后一行没改,问题全在物理层。经验就是要记住:PLC输入信号是不可信的,干扰、断线、短路都会让信号乱跳,定位准确这件事要靠滤波、屏蔽、合理布线和硬件保护共同保证。

5. 从这套小车控制延伸出去:触屏、变频器与上位机通讯

运料小车调试稳定之后,基本控制就告一段落了。但如果你愿意多花点功夫,这套系统还能往三个方向延伸,让这台小车从"能跑"变成"好用"。

5.1 加触摸屏:定时参数现场就能改

定时器T0、T1的设定值,我在程序里一开始用的是K常数,K20就是2秒、K30就是3秒。如果想改装料、卸料时间,要拿电脑接上去改程序,太麻烦。加一块触摸屏之后,把定时器的设定值换成数据寄存器,比如OUT T0 D10、OUT T1 D11,触摸屏上就可以直接改D10、D11的值,操作工自己就能调整,不用等电气工程师到场。

要注意的是,D10、D11这种寄存器如果放在普通D区,断电会丢,所以我把它们放在D200、D201这种默认保持的区域内,断电后上次设好的时间还在。触摸屏上还能显示当前小车在A点还是B点、运行了多少次、当前是装料还是卸料,维护人员过来一眼就看清状态。

5.2 接变频器:多段速让小车跑得更像样

前面提过,小车冲过限位的本质问题是硬停车惯性太大。接上变频器之后,正反转端子由Y0、Y1控制,另外加一个多段速端子Y2。快到终点时触到减速限位,Y2输出,变频器切到低速;到了终点才停车。加速减速时间全在变频器里调,机械冲击大幅减小,电机寿命也长了。

选择变频器时留意一下控制端子是NPN还是PNP接法,要和FX3U的输出方式匹配。继电器输出的FX3U板子可以直接接变频器端子,晶体管输出的则要注意电压和容量,一般也用中间继电器转一下。

5.3 用Modbus/OPC UA把小车运行状态交出去

车间里上了MES系统之后,设备联网是趋势。FX3U加一块FX3U-485ADP-MB通讯扩展板,就能作为Modbus RTU从站,把Y0、Y1的状态、D200里的运行次数、报警标志全部开放给上位机读取,MES就能实时看到这台小车当前是在装料、行驶还是故障。

如果车间要求走OPC UA,不需要PLC直接支持OPC UA,更通用的做法是给PLC加以太网模块,上位机装一个OPC服务器软件(比如KEPServerEX),通过三菱的MC协议把PLC数据读上来,再转成OPC UA标准接口,供SCADA或MES订阅。用这套口径,不光是运料小车,车间的传感器、数控机床、变频器状态都能统一汇总到一张页面上,设备状态判断就不再是"靠人走现场"了。

内容写到这里,整套运料小车的PLC控制从需求、梯形图到调试经验就都聊完了。说实话,运料小车在PLC项目里算是入门级别,但越是入门的东西越容易想当然。我在现场看到最多的问题,不是梯形图写不出来,而是限位没接好、断电后位置丢了、互锁只做了程序保护没做硬件保护。所以每次做这类项目,我都要求自己先手动一格一格验证,把每个输入点的状态和实际机械位置对清楚,再切自动。

最后分享一个很实用的小经验:给小车加一个循环次数计数器,放在断电保持的D区里,每次自动循环跑完一圈加一。这玩意儿平时不显眼,但等现场跟生产扯皮说"小车今天少跑了多少趟"的时候,拿数据说话比什么都硬。而且厂房里做设备维护保养,什么时候该检查刹车、什么时候该换限位,翻一下计数器就知道,比按日历推算靠谱得多。

返回列表