运料小车PLC控制系统设计实战:从三菱FX3U到触摸屏组态
上个月刚交付完一套运料小车控制系统主机用的三菱FX3U配了块7寸触摸屏现场跑了两周基本没让我半夜去现场。这种小车项目在中小工厂里特别典型一条轨道、四个传感器、一个小电机、一个HMI工艺看起来极其简单——前进、后退、装料、卸料翻来覆去就这几件事——但项目真正落地时I/O分配、梯形图结构、HMI画面组态、通信参数这四条线只要有一条没考虑到位调试期就会用各种突发状况“回馈”你。这篇是我这个项目从头到尾的完整复盘重点放在需求怎么梳理、程序状态机怎么写、触摸屏和PLC怎么对接以及那些让我加班到很晚的通信与组态坑。刚入行的电气工程师、想把手动电控柜改造成PLC加触屏控制的设备维护人员都可以把它当一份可直接复现的改造提纲。1. 运料小车控制需求和动作流程怎么梳理1.1 现场工况装料位与卸料位之间的往返搬运项目背景是一台轨道式运料小车小车在装料位和卸料位之间往返。装料位是前段设备的下料口小车停到正下方后前段设备向小车内放料卸料位是另一台提升机的料斗小车到位后把物料倒入料斗。物料是颗粒状没有称重模块所以装料完成的判断只能靠“装料仓无料信号”或者“装料延时”两种方式来做。轨道长度大概15米小车由一台0.75kW三相异步电机驱动正转前进、反转后退接触器控制。设备原有的电气方案是继电器逻辑只有启动、停止、前后限位没有任何状态显示坏了只能拿万用表一段一段量。这次改造的目标很明确保留原有传感器和执行机构把控制核心换成三菱PLC再增加触摸屏做状态监控和参数设置。1.2 控制要求拆解自动循环、手动检修、安全保护三套逻辑现场对控制系统的要求其实可以拆成三块我建议新手做类似项目时也先这么拆别一上来就写梯形图。第一块是自动循环。按下启动后小车自动完成“回到装料位原点—装料—前进至卸料位—卸料—返回装料位”的完整循环循环次数可以设定到次数后自动停止等待。自动模式下如果某一步条件不满足小车就停在当前位置并且画面要能显示出等待原因比如“小车不在原点”“装料仓无物料”“卸料台料满”。第二块是手动模式。每个执行元件都能单独点动前进、后退、开装料闸门、卸料动作分别有独立按钮。手动模式主要用来检修和调试比如更换传感器后逐点验证接线或者检查电机转向。手动模式下自动流程必须完全退出不能出现手动和自动抢输出的情况。第三块是安全保护。急停按钮随时切断所有运行输出两端超程限位做得独立于正常到位限位超程后设备必须停车并报警正反转必须互锁这个后面详细说。安全回路的可靠性优先于一切功能这条原则我在所有项目里都放在第一位。1.3 信号清单的确定哪些传感器必须有哪些可以省梳理需求阶段最容易犯的毛病是“为了省两个传感器把逻辑搞得特别绕”。运料小车至少需要三个位置信号装料位原点、卸料位到位、前进超程后退方向的超程也建议装。如果只有两个正常限位而没有超程限位小车一旦因为接触器熔焊或程序异常冲出去没有任何兜底手段会直接撞坏机械挡块。位置检测我用的是电感式接近开关原因很简单小车往返频繁机械式行程开关的滚轮和触点寿命扛不住高频动作。近接开关没有机械触点响应快寿命长。但超程保护我特意保留了两个机械式常闭限位开关理由是断电安全——接近开关断电后就失效了机械开关的常闭触点断线时反而是安全侧急停按下就是断线状态逻辑上更可靠。除了位置信号还要有“装料仓有料”和“卸料台允许卸料”这两个条件信号。它们可以来自上工序PLC的一路干接点也可以用光电开关就地检测。现场原来有一对光电我直接沿用了减少外围硬件改动量。2. 硬件选型与I/O分配把现场信号落到PLC地址上2.1 PLC本体的选择逻辑FX3U为什么是这类项目的主流PLC选的是三菱FX3U-32MR/ES-A继电器输出型32点规模。选择理由不复杂输入输出点数在12点输入、6点输出左右32点正好留了余量后面加触摸屏的状态字、参数寄存器也不怕不够用。FX3U自带两个通信口一个Mini-DIN编程口是RS422一个扩展口可以装485BD无论接三菱GOT、威纶通还是昆仑通态触摸屏通信口都够用。有人问为什么不上FX5UFX5U确实更强内置以太网、程序执行速度快、GX Works3功能也更现代。但具体到这个项目车间维修人员已经熟悉GX Works2备件库里囤的也是FX3U统一平台对后期维护更友好。设备电气改造不是参数越新越好要综合现场维护水平、备件成本、工程师上手难度来选。FX3U在这个场景下是“够用、好修、大家都会”的最优选。2.2 完整的I/O地址分配表I/O分配我在设计阶段就固定下来后面程序、画面、接线全部以这张表为准避免各说各话。下面是我这个项目的实际分配可以直接参考。PLC地址信号名称类型说明X0启动按钮常开输入自动循环一键启动X1停止按钮常闭输入停止自动循环X2自动/手动模式选择开关常开输入ON为自动模式OFF为手动模式X3急停按钮常闭输入急停按下时输入断开X4装料位原点到位常开输入电感近接开关X5卸料位到位常开输入电感近接开关X6前进超程常闭输入机械限位超程时断开X7后退超程常闭输入机械限位超程时断开X10装料仓有料信号常开输入来自前段设备或光电X11卸料台允许卸料常开输入料斗未满信号Y0小车前进继电器输出控制前进接触器Y1小车后退继电器输出控制后退接触器Y2装料闸门打开继电器输出控制放料电磁阀Y3卸料完成指示继电器输出蜂鸣器或状态灯Y4故障报警灯继电器输出超程、急停等故障指示Y5运行指示灯继电器输出设备运行状态指示内部软元件我另外规划了M区、D区给HMI使用M0是自动模式允许位M51是故障总复位M100到M105是当前工步状态位D0是循环次数当前值D1是循环次数设定值。这样触摸屏组态时直接按地址关联不用翻来覆去对应。2.3 电气接线里要特别注意的三个细节第一个细节是急停、超程、停止按钮全部用常闭触点并且串在输入回路的公共侧。这样如果某根线断了输入信号表现为“断开”程序里按“不允许运行”处理属于失效安全设计。常开触点在线断时无法区分“没按下”和“线断了”这是安全回路的大忌。第二个细节是传感器NPN/PNP类型要和PLC输入方式匹配。三菱FX3U的输入端子一般配NPN型近接开关公共端接0V传感器输出低电平导通。现场如果误买了PNP型信号会一直收不到看起来就是“输入偶尔通一下又断掉”很容易误判成干扰。第三个细节是接触器线圈的反电动势处理。继电器输出型的PLC直接驱动接触器线圈断开瞬间线圈会产生很高的反电动势时间长了会烧蚀继电器触点。在接触器线圈两端并联RC阻容吸收器或者压敏电阻能明显延长PLC输出点的寿命。动作频率高的场合更要注意条件允许的话用中间继电器过渡一下更稳。3. 程序主体怎么写互锁、阻停、自动循环的状态机3.1 前进/后退互锁程序与硬件双重保险小车电机正反转互锁是最基本也是最重要的程序段。程序里Y0和Y1不能同时为ON这是一个前提但只靠程序互锁不够。如果前进接触器发生触点熔焊程序里即使没有输出Y0电机依然可能带电运转这时外部接触器之间的电气互锁能兜住一部分风险。我习惯的程序写法是每个输出条件里都把对方输出作为禁止条件串联进去同时保留一个“运行允许”的总开关。简化后大致是这样LD X0 // 启动按钮 OR M0 // 运行允许自保持 ANI X1 // 停止按钮常闭输入 ANI X3 // 急停常闭输入 OUT M0 // 运行允许标志 LD M0 // 运行允许 AND M10 // 前进指令来自自动或手动 ANI X6 // 前进超程 ANI X7 // 后退超程保护 ANI Y1 // 与后退输出互锁 OUT Y0 // 小车前进 LD M0 AND M11 // 后退指令 ANI X7 // 后退超程 ANI X6 // 前进超程保护 ANI Y0 // 与前进输出互锁 OUT Y1 // 小车后退接线时两个接触器的辅助常闭点互相串入对方线圈回路形成第二层互锁。程序一层硬件一层双重保险。这套做法成本几乎为零但能避免最严重的事故我强烈建议不要省。3.2 三段式停车小车不能一撞就停运料小车的停车逻辑是整个程序里最有工程含量的一段也是很多初版项目做得最粗糙的地方。小车带着物料有一定的惯性如果一收到到位信号就立刻断开输出让接触器直接切断电机电源小车会因为惯性继续往前冲一段然后哐一下撞在机械挡块上。短期看不坏长期就是车轮磨损、物料洒落、轨道变形现场就会说“这设备怎么老是坏”。我采用的做法是“三段式阻停”。第一段是提前减速在正常到位位置前约30厘米装一个减速检测点程序收到这个信号后如果有变频器就切换低速本套用接触器没有速度档就做“准备停车”的状态标记。第二段是提前断输出实际到位位置由近接开关检测但检测点安装位置刻意放在机械停止位略靠前的位置留出滑行距离让小车断电靠惯性滑到目标位。第三段是硬限位兜底如果前两段都没停住最后靠超程机械限位切断回路并报警。安装位置要按现场实测调整。小车速度大约0.5m/s时从输出断开到真正停下大约还会多走20到50毫米不同负载、不同轨道摩擦系数都不一样。调试时要反复试几次把近接开关的安装位置调到“滑行后刚好到目标位”的状态而不是傻乎乎地把传感器装在机械挡块旁边。3.3 用三菱STL步进指令组织自动循环自动循环的逻辑顺序很清晰等待启动、回原点、装料、前进、卸料、返回原点、计数判断。这种典型的单流程顺序控制用三菱的STL步进指令写比用一堆M继电器互锁清晰得多后期维护看程序也轻松。核心骨架大致是这样LD M8002 // 上电初始脉冲 SET S0 // 初始状态 STL S0 // 初始等待 LD X0 // 启动按钮 AND M0 // 运行允许 AND X4 // 小车在装料位原点 SET S20 // 进入装料状态 STL S20 // 装料 OUT Y2 // 打开装料闸门 LD T0 // 装料延时到 SET S30 // 进入前进状态 STL S30 // 小车前进 SET M10 // 前进指令标志 LD X5 // 到达卸料位 SET S40 // 进入卸料状态 STL S40 // 卸料 RST M10 LD T1 // 卸料延时到 SET S0 // 回到初始状态循环 RET需要提醒新手几个点。第一STL区域必须以RET结束否则程序可能跑出状态区造成不可预料的动作。第二手动模式切换时要把自动状态全部复位我直接在程序里做了“手动模式ON时ZRST S0 S50”的处理把所有状态强制清零切回自动时重新置位S0这样能避免手动和自动同时作用。第三STL状态转移的条件一定要加到位信号不能只靠延时否则小车没到位就进入下一步后面全乱。3.4 定时器和计数器的配合细节装料和卸料的完成判断我用传感器信号优先、定时器兜底的策略。如果“装料仓无料”信号X10先到说明料已经放空就没必要等满30秒程序直接跳到下一步。如果传感器坏了或者信号没来T0延时到也能强制往后走不至于卡死。这样既满足节拍要求又不会因为单个传感器故障导致整条线停掉。定时器的单位一定要搞清楚。FX3U默认的T0是100ms时基K300就是30秒。很多新手把K300当成300秒用结果现场等5分钟都不往下走还以为是PLC坏了。如果延时比较短可以用10ms时基的定时器选型时要看定时器编号范围。循环次数用计数器C0来实现设定值放在D1里面这样触摸屏上可以直接修改不用每次改程序重新下载。计数器达到设定值后置位“循环完成”标志M20自动流程停到初始状态操作工在触摸屏上按“次数复位”才能重新开始。这个设计在现场很实用班组长可以根据生产批次随时调整循环次数不用喊电气工程师去改程序。4. HMI通信搭建从三菱编程口到触摸屏的关键参数4.1 为什么通信参数不一致就会“device no response”触摸屏和PLC之间本质上是一问一答的关系。触摸屏定期向PLC发送请求帧PLC收到后回复数据。这套对话必须遵循同样的协议、同样的波特率、同样的数据格式、同样的站号任何一项对不上PLC就不会理触摸屏触摸屏端就会报“device no response”。打个比方两个人打电话一个说中文一个说英语说了半天全是鸡同鸭讲。现场最常用的解决办法不是猜而是把通信参数逐项对照检查。波特率、数据位、停止位、校验位、站号、协议类型这六项必须两边一致。容易忽略的一个点PLC侧的通信参数不一定一直是默认值。如果PLC之前被别的项目改过特殊数据寄存器D8120这个寄存器控制串口通信格式触摸屏新工程里按默认9600、7E1去连同样会超时。排查时先看看PLC现在的串口参数不要想当然认为是出厂值。4.2 三种主流触摸屏与三菱PLC的驱动配置对照先放一张对照表是我在不同项目里验证过的常见配置思路具体型号的驱动名称以软件实际版本为准。触摸屏新建设备时驱动选择物理接口要点常用参数三菱GOT2000GX Works2里直接配置FX3U内置RS422GOT通信板通过专用电缆接PLC编程口波特率跟随PLC站号默认威纶通MT8071iP新增设备选三菱FX3U/FX3G系列对应驱动用FX3U专用电缆注意COM口协议定义默认9600、7E1站号0昆仑通态TPC7062K设备窗口选三菱FX系列编程口驱动核对屏的COM口是否支持所需协议按驱动默认参数确认站号里面最坑的是物理接口。FX3U本体上那个Mini-DIN圆形编程口是RS422但很多触摸屏的COM口只支持RS232或者RS485物理层就不通哪怕驱动参数全都对也白搭。第一次做这类项目的人最容易在这里卡住看到“device no response”第一反应是改参数折腾半天才发现是线型不对。解决方案两个一是买触摸屏厂家对应FX3U的专用通信线把422信号转成屏能识别的电平二是在PLC上加一块FX3U-485-BD把通信改成RS485和屏的RS485口对接。我这次用的方案就是后者485传输距离远、抗干扰也好现场布线更灵活。接485线时注意信号端子定义。三菱485BD的SDA、SDB、RDA、RDB、SG五个端子接屏蔽双绞线时逻辑上相当于发送和接收两对线有的屏侧需要把发送和接收短接具体以接线图为准。屏蔽层单端接地不要两端都接否则容易形成地环流引入干扰。提示通信线不要用普通网线或者随意找几根跳线代替。工业现场变频器、接触器都在附近干扰很大必须用双绞屏蔽线。我遇到过一次莫名其妙时通时断最后发现就是线径太细、屏蔽层没接导致的。4.3 一个PLC同时带两个触摸屏的可行做法现场有时需要在设备旁边和办公室各放一块屏操作人员就地控制管理人员远程看状态。一个PLC带两个触摸屏完全可行有三种常见接法。第一种两个屏都挂在RS485总线上PLC加485BD两个屏各设一个站号通过轮询访问PLC。适合距离不太远、屏都支持RS485的场合。接线时A、B线从PLC端拉到第一块屏再并接第二块屏手拉手串联不要搞成星形。第二种一个屏走编程口的RS422另一个屏走485BD两个通信口物理独立互不干扰。适合一个屏就在PLC旁边另一个屏离得远的场景。我就是这么接的主屏在设备电柜门上看状态副屏在办公室显示产量数据。第三种PLC加以太网模块两个屏都走以太网每个屏分配不同IP。通信速度最快还能顺便接上位机或者SCADA但成本也最高。如果PLC选型是FX5U内置以太网这个方案最省事。双屏同时读取PLC寄存器没有冲突但写入时要小心。比如两台屏都有“修改循环次数”功能同时改D1就可能互相覆盖。我的建议是业务上指定主屏负责参数修改副屏只做只读监控权限设置里把副屏的写入按钮权限关掉免得两边打架。5. 触摸屏画面组态的设计要点布局、权限与脚本细节5.1 自动画面里必须回答“现在卡在哪一步”自动画面是整个触摸屏里最重要的一个页面操作工90%的时间都盯着它。设计原则很简单画面必须能回答“设备现在为什么不动”。如果小车停在那里操作工要看一眼画面就知道是“装料仓没料”“小车不在原点”还是“循环次数到了”而不是跑过去叫电气工程师。我的自动画面布局是这样的顶部是模式显示和急停状态中间是一幅小车位置示意图用两个位状态指示灯切换小车在装料位和卸料位的图标下方是工步状态区用文字框绑定M100到M105这些工步状态位分别显示“待机”“回原点中”“装料中”“前进中”“卸料中”“返回中”再往下是循环次数显示D0和设定值D1最下面是报警信息条显示当前故障和等待原因。等待原因这块很多人不做只放一个“运行/停止”灯设备一停操作员完全不知道卡在哪。我把“装料仓无料”“卸料台料满”“小车未回原点”“循环完成请复位”这几个条件都做成独立的位状态指示哪个条件不满足就亮哪个操作工一看就明白。按钮权限也要提前规划。启动、停止按钮操作员可用循环次数修改、延时时间修改这些参数在参数设置页面单独做只给工程师权限。不然一个新人乱改参数整条线的生产节拍全乱出了问题还找不到人。5.2 手动画面怎么设计才不容易误触手动画面是检修时用的防误触是第一优先级。前进、后退、装料、卸料这四个动作按钮我都做成了“按住有效、松开停止”的瞬时动作型而不是切换型。这样即使误碰一下按钮松手后动作马上停止不会一直运行到撞限位。按钮旁边我还放了当前的到位指示和超程指示手动模式下操作工能实时看到小车在哪个位置。如果小车已经接近超程位指示闪烁提醒避免手一抖直接顶到机械挡块。手动模式的画面入口放在二级页面主画面不能直接进入防止正常运行时误触切换到手动页然后乱按。模式开关本身也在电柜门上加了一个物理旋钮即使HMI屏幕上没有操作权限现场也能通过旋钮切断自动模式。物理开关和HMI权限双控制安全性高很多。5.3 两个容易卡壳的组态细节字符串换行与用户登录宏第一个细节是字符串怎么换行。做报警信息或者提示文字时经常要在一行里显示两段内容比如“装料仓无料”加“请检查上游设备”。直接在某些组态软件脚本里敲回车是不生效的屏幕上会显示一个方块或者直接忽略换行。昆仑通态MCGS里脚本拼接多行字符串一般用Chr(13)加Chr(10)来实现回车换行。假设要把两段文字拼在一个标签变量里思路是!SetStrValue(提示文字, 装料仓无料 Chr(13) Chr(10) 请检查上游设备)威纶通的宏指令略有差异不同版本的换行转义符也不完全一样有的支持\r\n有的需要按实际版本测试。我自己的习惯是先用一个测试按钮在屏上试确认屏端实际显示效果后再写进正式逻辑不要凭记忆硬搬。第二个细节是用户登录宏。威纶通实现用户登录一般是在系统参数里预设用户和密码然后在画面上放置用户名、密码输入框通过宏指令调用系统登录函数完成校验登录成功后当前操作员权限随之切换。具体API名称不同版本封装有差异比如获取当前用户名可能用类似GetUserName的接口。做个示例思路// 威纶通宏指令示意版本不同API略有差异 if Engine.GetUserName() admin then // 管理员权限 else // 操作员权限 endif昆仑通态则通常用系统自带的登录函数或者策略块完成。关键是权限验证成功后的状态位要能回写到PLC的一个寄存器里让PLC程序也知道当前是普通操作员还是工程师不同权限下自动流程的行为可以不同。最后登录记录要进报警日志出问题溯源到人才不会扯皮。现场经常会有人在交接班时改参数闯祸有了登录记录至少知道是谁什么时候改了什么。6. 调试期踩过的三类典型坑与完整排查链路6.1 威纶通报“device no response”的完整排查顺序这个报错几乎是每个接威纶通屏的人都遇到过的我这次也不意外。遇到之后不要慌按下面这个顺序排查大部分问题能在半小时内定位。第一步确认PLC本体正常。把通信线从触摸屏上拔下来用电脑接USB转串口线通过GX Works2连接PLC。如果电脑能连上并能监控程序说明PLC侧通信口和参数没问题问题出在触摸屏或者线缆如果电脑也连不上先查PLC侧的通信口是不是被人改过特殊寄存器或者通信口硬件损坏。第二步用串口调试助手手动发帧测试。把通信线接回触摸屏和PLC之间串口线通过分线头同时接到电脑上向PLC发送一条读寄存器的协议帧。PLC有回应说明物理层通、协议也对没有回应问题在线缆或物理层接线。这一步能快速区分“设置问题”和“硬件问题”省得瞎猜。第三步核对触摸屏设备参数。打开EBPro查看设备列表里的驱动类型是不是对应F
上一篇/下一篇内容由系统自动关联
返回资讯列表 →