尧图精选

三菱PLC台车呼叫控制系统:16工位程序设计与调试全解析

🕒 发布时间:2026/9/9 19:40:34 📁 来源:尧图网络
前阵子给一条自动喷涂线做了一套台车呼叫控制系统轨道上跑一台往复转运台车沿线16个工位每个工位都能呼叫台车过来卸料、装料。接活的时候我以为这种程序不算难无非是十六个按钮对应十六个动作可真正把工艺和IO表捋清楚之后才发现16工位的难点根本不在按钮多而在呼叫信号怎么锁存、多个工位同时叫车时车该去哪、台车怎么又快又稳地停在指定工位以及故障时怎么安全停下来。这篇文章把我从工艺梳理、三菱PLC选型、IO规划、核心程序思路到现场调试踩坑的完整过程写出来给正在做或准备做类似项目的朋友参考。1. 先把工艺跑明白16个工位、一台台车需求到底长什么样1.1 台车的运行场景与控制流程这套设备放在喷涂车间16个工位沿直线轨道排开每个工位有半成品和成品交接需求台车负责把物料从一个工位转运到指定工位。操作工按下自己工位的呼叫按钮台车就从当前位置出发沿轨道行走到目标工位停稳后人工装卸完成后在触摸屏上确认台车再等待下一次呼叫。整个控制流程拆开来就是四步采集各工位的呼叫请求并把这些请求记牢根据台车当前位置和所有待处理呼叫决定下一步去哪个工位台车启动、加速、减速、到位停车方向要正确停车要精准到位后呼叫声光提示操作工确认装卸完成清除本次呼叫。这四步听起来简单但落在程序里每一步都有不少细节。第一步要处理按钮瞬时信号和误触发第二步要处理多工位同时呼叫时的优先级第三步要处理负载变化带来的停车惯性第四步要处理人工确认超时之类的异常情况。1.2 从工艺需求到三组核心数据很多初学者写这种程序第一反应是每个工位一段梯形图16个工位就写16段结果程序又长又乱后面加一个工位改半天。我做这类程序习惯先抽数据把16个工位抽象成三组数据后续所有逻辑都围绕这三组数据展开而不是围着X点、Y点转。第一组是呼叫状态数据对应16个工位的呼叫请求我用16个中间继电器M100~M115来存。按钮按下去对应的M位就置1台车到达并确认装卸完成后对应M位才复位。第二组是位置数据包括当前工位号D0和目标工位号D1。当前工位号由到位传感器实时刷新目标工位号由优先级仲裁逻辑写入。第三组是运行控制数据包括方向、速度段、抱闸、运行状态等这些用输出点Y0~Y5直接映射。把问题抽象成数据之后程序结构会清晰很多。工位数量从16改成20、24只需要改循环次数和地址范围核心逻辑一行都不用动。这就是标题里说的奥秘——不是某个神秘指令而是数据结构化的思路。2. 硬件选型和IO规划36个输入点位怎么分配才不浪费2.1 PLC选型FX3U还是FX3GA算清IO账再决定16个工位需要多少个输入点如果每个工位配一个呼叫按钮加一个到位接近开关就是32个输入点。输出点至少有正转、反转、高中低三段速、抱闸、运行指示灯这就是6个以上。再加上急停、原点、手动自动切换、变频器故障等总点数轻松超过40。三菱FX3U系列里FX3U-64MR/MT正好是32点输入32点输出能满足要求且有余量扩展。FX3GA价格低一些但IO扩展能力受限如果现场后续可能增加工位或传感器我建议直接用FX3U多花的钱换来的扩展余地非常值。选型时要特别注意三菱的IO编号是八进制不是十进制。也就是说X0到X7之后是X10而不是X816个输入点的编号是X0~X7、X10~X17不是X0~X15。这个细节写程序、接线的都要牢记我见过好几次新人按十进制编地址结果现场端子对不上排查一个下午的。2.2 信号采集方案多芯拖链还是远程IO16个工位的按钮和传感器信号怎么进PLC有两种主流方案台车上装控制柜PLC随车运动工位信号通过拖链电缆接入PLC放在地面控制柜工位信号通过远程IO站接入或所有信号电缆汇总到控制柜。大多数中小型台车项目用第一种成本低、接线简单。但拖链电缆是整台设备里故障率最高的环节之一台车日夜往复运动电缆反复弯折普通RVV电缆用不了几个月就断芯。一定要用高柔性拖链电缆而且多芯电缆里要预留备用芯。如果项目轨道特别长几十上百米或者现场环境有大量切削液、粉尘不适合拖链可以考虑三菱CC-Link远程IO方案。在每个工位附近放一个远程IO站PLC通过CC-Link总线轮询主站和远程站之间只用一两根通讯线可靠性大幅提高但成本也高不少。16工位规模的常规项目我一般直接多芯电缆拖链性价比最高。2.3 走行电机和变频器的组合方案台车走行电机建议用三相异步减速电机配变频器驱动不要用普通的接触器直接启停。原因很简单台车带着物料有惯性直接启停冲击大停车位置控制不住机械寿命也短。变频器可以实现加减速时间设定、多段速运行配合制动电阻还可以快速停车。我用的是三菱FR-A800系列虽然价格略高但抗干扰能力和制动性能可靠。速度控制走多段速端子不需要模拟量模块。输出点分配如下输出点功能说明Y0正转前进变频器STF端子Y1反转后退变频器STR端子Y2高速段变频器RH端子Y3中速段变频器RM端子Y4低速段变频器RL端子Y5抱闸释放控制抱闸接触器Y6运行指示灯台车车顶三色灯变频器参数里把RH、RM、RL各自对应一个频率例如高速40Hz、中速20Hz、低速5Hz三段速由组合通断来切换。这样做的好处是程序里只需要控制Y2、Y3、Y4三个普通输出点不涉及模拟量处理抗干扰能力更强。3. 呼叫与仲裁16个工位同时叫车程序怎么决定去哪3.1 字压缩一段MOV把16个按钮变成一个字先说这个程序里最核心、也是最能体现16工位奥秘的小技巧——字压缩。16个呼叫按钮分别接在X0~X7和X10~X17上如果按传统写法每个按钮做成一条指令16段梯形图又长又难维护。我改用一条MOV指令把这16个输入点的状态一次性搬到一个数据寄存器D20里LD M8000 MOV K4X0 D20K4X0的意思是以X0起始、连续4个组共16个点三菱PLC里X和Y是八进制编号K4X0实际覆盖X0~X17这16个点。执行完之后D20的bit0到bit15就分别对应X0到X17的实时状态。同样16个工位的到位接近开关接在X20~X37用一条MOV K4X20 D21把它们压进D21。这一步做完16个分散的物理输入点就变成了两个字。后面的处理全部在这个字上做位操作程序可以从容地使用循环和变址寄存器这是后续所有简洁逻辑的基础。3.2 呼叫锁存与到达复位的时序逻辑呼叫按钮是瞬时接通的操作工按一下松开如果台车正在执行别的任务等它忙完再想去这个工位按钮信号早就没了。所以必须把呼叫信号锁存下来。锁存方案我用了置位/复位指令。每个扫描周期程序检查D20各位的上升沿检测到哪个位从0变1就把对应的M100~M115中间继电器置位。16个位的上升沿检测如果用梯形图逐位写还是有16段。我改用循环和变址寄存器Z0处理MOV K0 Z0 ; Z0清0 FOR K16 ; 循环16次 BTST D20 Z0 ; 判断D20的第Z0位 OUT M30 ; 当前状态 BTST D22 Z0 ; 判断上一周期状态 OUT M31 LD M30 ANI M31 ; 当前为1且上一周期为0说明是上升沿 SET M100Z0 ; 置位对应的呼叫锁存位 INC Z0 NEXTD22保存的是上一周期D20的快照在程序开头用MOV D20 D22刷新。这样一段循环就完成了16个工位的呼叫锁存想扩展到24个工位把循环次数和地址段改一下就成。到达复位的条件就明确多了台车已经停在目标工位、到位传感器有效、变频器停止输出这三个条件同时满足后延时300ms执行RST M100Z0把当前呼叫位清掉。3.3 当前工位识别与目标工位扫描台车到底在哪个工位这个信息是判断方向和计算优先级的基础。到位传感器压缩在D21里正常情况下16个位只有1位为1因为台车不可能同时在两个工位。用循环从bit0开始逐位检查找到为1的那个位把位号写入D0就是当前工位号。MOV K0 Z0 FOR K16 BTST D21 Z0 OUT M32 LD M32 MOV Z0 D0 ; 当前工位号写入D0 INC Z0 NEXT如果检查到D21里不止一位为1说明传感器误动作或接线短路我单独加了一个统计位为1数量的逻辑超过1位就报警禁止台车运行。目标工位号D1来自对16个呼叫锁存位的扫描。扫描逻辑是遍历M100~M115把所有为1的位找出来写成候选工位列表交给优先级仲裁逻辑处理。3.4 优先级仲裁距离优先如何防止远端工位饿死多个工位同时呼叫台车先去哪这是整个程序里最有意思的地方。常见策略有三种策略特点适用场景固定号优先实现简单工位号小的永远先走工艺本身有明确先后顺序先来先服务公平但需要记录呼叫时间戳各工位地位平等的场合距离优先台车响应最快节省空跑时间呼叫频率高、追求效率的产线我这次选的是距离优先因为喷涂线各工位节奏不同远端工位呼叫后让台车先跑近处整体效率最高。具体逻辑遍历所有呼叫位把每个呼叫工位号取出计算该工位号与当前工位号D0差值的绝对值也就是台车跑过去的距离找出距离最小的那个工位把工位号写入D1作为目标。距离优先有个明显的坑如果近处工位频繁呼叫远端工位可能永远轮不上这就是饿死问题。我的对策是加一个等待超时提升机制——每个呼叫锁存位置位后开始计时如果在设定时间比如8分钟内还没被执行强制把该呼叫的优先级提到最前。这个计时用D寄存器配合触摸屏设定时间实现虽然多占了一些寄存器但现场运行下来效果很好从来没有工位投诉车子老是不来。4. 走行控制时序启动、减速、停车和抱闸的完整流程4.1 方向判断与启动前的安全连锁目标工位号D1确定了方向判断就是简单的数学问题。用SUB指令把D1减去D0结果的正负就代表方向结果为正台车往工位号增大的方向走输出Y0正转结果为负输出Y1反转结果等于0说明台车已经在目标工位不需要动作。方向判断逻辑不难难的是启动前的安全连锁。台车几十米长、带负载一旦在错误条件下启动后果严重。我列了一张启动条件检查表所有条件都满足才允许输出运行指令急停按钮未按下两个端点的极限开关未被触发变频器无故障报警抱闸已经打开到位有反馈信号当前工位识别正常D21只有1位为1无运行超时或堵转报警。这些条件用串联触点的方式写在启动回路里任何一个不满足运行输出就出不来。特别注意方向切换如果台车正在前进发现后方某个工位呼叫了不能直接输出反转必须先停车等待变频器停止输出且台车完全静止再启动反向。我在程序里加了一个方向切换延时从运行信号断开到允许反向启动至少延时1秒确保台车停稳。4.2 多段速减速不装编码器也能稳停的设计有些台车项目用编码器做距离控制精度确实高但编码器有打滑问题、断电需要回原点、成本也高。我这个项目16个工位等距排列完全可以用工位计数多段速的方式实现稳定减速不需要编码器。思路就是根据离目标还差几个工位来切换速度段。程序里实时计算台车当前工位号D0和目标工位号D1的差值的绝对值然后差值大于等于5输出高速段Y2台车全速运行差值等于3或4切中速段Y3开始减速差值等于1或2切低速段Y4准备爬行到位差值等于0到位停车。这种设计最巧妙的地方在于不需要额外增加减速传感器完全靠16个工位的到位信号和寄存器里的数学运算。现场如果工位间距离不均匀就不能用这个方案得在每个工位前方单独装减速接近开关或者改用编码器二选一。4.3 到位停车与抱闸配合晚300ms和早300ms天差地别台车低速爬行到位传感器一ON程序立刻给变频器发停止信号。但变频器从收到停止指令到输出真正为零还有一段惯性时间这时候抱闸如果跟着同时抱死台车会猛地顿一下物料可能移位机械冲击也大抱闸如果太晚台车可能溜车。正确的时序是到位信号ON低速运行指令OFF变频器输出频率下降转速趋零变频器零速信号或SU到达信号反馈回PLC输入点PLC收到零速信号后延时300ms断开抱闸释放输出Y5抱闸抱死。这个300ms延时是我实际调试时调出来的。延时太长斜坡上可能溜车太短停车瞬间机械冲击大。不同负载、不同轨道坡度延时略有差异建议做成触摸屏可调参数现场根据实际情况微调。4.4 超程、失速和其它异常保护台车两端装了极限开关硬线串联在变频器启动回路里这是最底层的物理防线即使PLC程序跑飞了台车撞到端头极限也会被硬切断电停机。软件层面我加了几条保护逻辑运行超时发出运行指令后如果超过设定时间还没出现新的工位变化判定台车卡死或传感器故障立即停车并报警方向丢失输出正转但工位号持续不变说明轮胎打滑或变频器异常停车报警到位偏差低速爬行超过设定时间还没触发到位传感器说明减速距离不够或传感器故障停车报警。这些保护不需要很复杂的指令几段定时器和比较指令就能实现但价值非常大。现场调试阶段好几次都是靠运行超时报警提前发现了问题避免了更严重的机械事故。5. 触摸屏画面与通讯操作工和调试者各自的关注点5.1 GT1150的页面布局小屏也要让操作工一眼看懂触摸屏这块我用的是三菱GT1150虽然现在这型号已经停产二手件居多但项目上用的人还是不少新项目可以考虑GT21系列程序和设计思路通用。3.8寸的屏幕不大画面要节约着用。我设计了四个页面。第一页主画面顶部显示台车当前工位和目标工位中间是运行状态指示正转、反转、高速、低速、到位、报警底部放三个切换按钮呼叫页面、手动页面、报警页面。操作工平时就停在这一页抬头就能看到车在哪、正往哪去。第二页是工位状态页面用16个指示灯按钮排成两列显示每个工位的呼叫状态绿色代表无呼叫红色闪烁代表有呼叫且台车正在赶来红色常亮代表台车已到位等待确认装卸。这一页对操作工非常直观不用跑到现场看灯就知道哪家在叫车。第三页是手动页面供调试人员使用有正转点动、反转点动、抱闸测试、速度切换等按钮。第四页是报警页面列出当前和历史报警信息。5.2 手动模式与权限分级调试期间必须能脱离自动呼叫单独控制台车所以手动页面是必需品。但生产过程中操作工误切手动模式很危险可能撞坏机械结构。我做了两级权限普通操作员密码只能看主画面和工位状态页手动页面和参数设置页面需要工程师密码才能进入。触摸屏画面里还要有装卸完成确认按钮。台车到位后操作工完成装卸必须按一下这个按钮才会复位当前呼叫位台车才会响应下一次呼叫。如果操作工忘记确认误以为台车卡住了其实程序只是在等确认信号这个逻辑要在培训时讲清楚。5.3 FX3GA与GT1150通讯不上的排查清单不少做三菱项目的朋友碰过FX3GA与GT1150屏通讯不上这个问题我整理了一份排查清单按顺序走一遍基本能解决检查GT Designer3软件里的PLC类型是否选对。FX3GA在软件里要选FX3G/FX3GA系列选成FX3U虽然通讯能建立但部分软元件读写会异常核对通讯参数。站号、波特率、数据格式三处必须一致FX3GA编程口默认站号0、波特率9600GT1150侧默认值要匹配确认线缆。GT1150与FX3GA编程口连接要用专用RS422线缆仿制线缆没做好终端匹配时经常时通时断检查PLC侧D8120设置。如果是通过扩展的485BD板连接触摸屏D8120的通讯格式必须和屏端设置一致确认GT Designer3版本。太老的版本里没有FX3GA选项升级软件版本往往就直接解决了。顺带提一句GX Works2在Win10/11上打开报错的老问题优先考虑升级到1.585以上版本或安装微软VC运行库网上那些完美修复方案大多绕不开这两个方向。6. 现场调试实测三个让我印象深刻的坑6.1 拖链里的公共线断裂传感器集体失灵台车第一次上电调试回原点正常但开到3号工位时PLC输入点怎么都不亮。现场用万用表量接近开关输出信号正常量到PLC输入端X23没有电压。顺着线路往拖链方向查发现拖链里那根公共线在电缆内部断了外观完全看不出来拉一下线皮才发现内部已经断开。这个故障的教训非常大拖链电缆必须用高柔性专用线不能省16个工位传感器的公共线不要全部挤在一根芯上分散到两三根芯里同时预留至少两芯备用。从那以后我做台车项目拖链电缆芯数永远比实际需要的多备30%尤其是公共线这根线一断就是全线瘫痪。6.2 变频器一启动输入点乱跳程序下载后单机测试一切正常一到联动运行时触摸屏上的工位状态开始乱跳明明没人按呼叫按钮屏幕上却出现好几个红色呼叫。用示波器看24V电源变频器启动瞬间毛刺非常明显干扰脉冲让PLC误判了按钮上升沿把呼叫锁存位置位了。处理分了三步。第一变频器和PLC的接地分开不能接到同一个接地排上而且接地电阻要合格。第二拖链里动力电缆和信号电缆分开绑扎动力用屏蔽电缆屏蔽层在PLC柜侧单端接地。第三PLC输入端加数字滤波三菱FX3U的D8020寄存器可以调整输入响应时间默认10ms我调到了20ms干扰脉冲直接被滤掉。这套组合拳下来问题彻底消失。变频器干扰是做台车项目几乎必踩的坑建议在设计和施工阶段就把接地和布线规范了别等调试时再返工。6.3 低速爬行还冲过工位减速点距离没算够调试中期发现一个问题台车在满载状态下低速爬行接近目标工位到位信号都触发了车还是往前冲了小半米超出工位停靠范围。单看程序减速逻辑没问题低速段也输出了问题出在低速频率和减速距离的匹配上。满载时台车惯性大低速段5Hz速度下从切断运行信号到完全停住还能滑出一段距离。我的解决措施一是把低速段频率从5Hz降到3Hz爬行速度更慢二是把低速切换点提前到距目标2个工位时就切入低速留足滑行距离三是到位信号ON后不立即发停车指令而是让台车继续低速爬行500ms确保完全压上到位传感器再停车。这个调参过程没有捷径只能在现场空载、半载、满载三种状态下分别试把参数调到三种工况都稳定为止。我在触摸屏上做了参数页面低速频率、减速切换点、到位延时都可以随时调大大加快了调试进度。7. 后续扩展从单台车到多台车、从就地到上位机这套程序跑稳定之后我在想还能怎么扩展。首先是多台车场景同一轨道上两台以上台车问题就复杂了涉及任务分配、区间冲突检测、防碰撞。这时候单靠一台PLC内的简单仲裁就不够用了通常会增加上位机调度或者用三菱Q系列PLC做集中管理每台台车作为子站接收指令。其次是上位机通讯如果车间有MES系统需要把台车状态、呼叫记录、装卸确认时间上传FX3U可以加485BD板走串口也可以用以太网扩展模块通过三菱MC协议与上位机通信。热搜词里提到的三菱QJ71E71与上位机通信就是典型的以太网方案数据格式依然是MC协议逻辑上可以复用不少思路。最后是统计功能我后来在程序里加了呼叫次数累计、单次任务等待时间、台车每日运行时长这些计数。统计逻辑很简单就是每次呼叫复位、每次到位时对相应D寄存器加1触摸屏页面里做几张表就能展示。这些数据对生产管理很有用——哪个工位呼叫频率最高、台车利用率怎么样一眼就能看出来。如果你也准备做类似的台车呼叫项目我的建议是先把现场的轨道长度、工位间距、台车满载和空载的刹车距离这些物理参数量清楚再动笔。梯形图里的指令就那么几条真正决定方案成败的往往是那些写在调试记录里的细节。
上一篇/下一篇内容由系统自动关联 返回资讯列表 →