三菱FX5U与威纶通触摸屏在伺服机器人工作站中的设计与调试
2026/9/12 3:53:02 网站建设 项目流程

1. 项目概述与整体方案选型

1.1 为什么是三菱FX5U加威纶通这个组合

做自动化项目这么多年,FX5U这代产品算是三菱在小型PLC领域比较能打的一款。它不像FX3U那样只有传统的RS422/485串口思维,也不像L系列或者Q系列那样偏向大中型项目,FX5U刚好卡在中间——既保留了FX系列的编程习惯,又引入了一部分高端PLC才有的总线能力。

这次项目做的是伺服机器人工作站,核心控制对象包括三菱MR-JE伺服、气动夹爪、传感器模组、报警灯,外加一台威纶通触摸屏做交互。整套系统的架构非常典型:FX5U做大脑,伺服驱动器做肌肉,威纶通触摸屏做脸面。

1.2 控制需求拆解:这套程序到底在控什么

接到这个项目的时候,需求清单大概是这样:

  • 两个伺服轴,一个走X方向搬运,一个走旋转分度,两者需要联动衔接
  • 机器人末端夹爪由气缸驱动,PLC直接输出控制电磁阀
  • 需要原点回归、手动点动、自动循环三种运行模式
  • 威纶通触摸屏要能监控所有轴的当前位置、报警状态、产量计数,还要能下发速度倍率和位置修正值
  • 出现故障时,蜂鸣器加三色灯报警,触摸屏显示具体报警内容

项目的核心其实就一个字:稳。伺服机器人工作站一旦跑起来,一天可能会做上千次往复动作。每次动作都要求定位精准、时序正确,不能有累积误差,不能因为一次抖动就撞机。选FX5U的原因也在这里——它本体支持四轴200kHz的高速脉冲输出,做小型伺服定位完全够用,而且指令集比较成熟,网上资料也多,后期维护不至于抓瞎。

1.3 系统架构图:设备层、控制层、交互层的分工

整套系统的信号流向可以分成三层来看:

  • 设备层:两个伺服驱动器(带电机)、两个气缸(带磁性开关)、三个传感器(原点、限位、到位检测)、三色灯蜂鸣器、紧急停止按钮
  • 控制层:三菱FX5U-32MT/ES,负责逻辑控制、脉冲输出、数据处理和故障判断
  • 交互层:威纶通MT8071iP触摸屏,通过以太网与FX5U连接,负责状态显示、参数设定和手动操作按钮

这种三层架构是目前小型自动化设备最常见、也最容易维护的结构。设备层只管干活,控制层只管逻辑,交互层只管人和机器的沟通。哪一层出了问题都很容易定位,维修电工一看网络拓扑图就明白该查哪里。

2. FX5U程序架构与关键功能块设计

2.1 程序整体架构:从主程序到子程序的调用关系

FX5U的编程软件是GX Works3,这一版软件和三菱以往的GX Developer相比变化很大。它的单位不再是单纯的“步”,而是基于标签和FB(功能块)的结构化编程。一开始从GX Developer转过来的人多少有点不适应,但用习惯了会发现结构化编程对后期维护是真香。

这次程序我按照功能划分了几个子程序:

  • 主程序(MAIN):负责整体流程调度,根据触摸屏传来的模式信号决定执行哪个流程
  • 原点回归子程序:两个伺服轴分别做原点回归,回归完毕置位一个完成标志
  • 手动操作子程序:支持各轴单独点动,气缸单独动作,主要用于调试阶段
  • 自动循环子程序:整个搬运分度流程的时序控制核心
  • 报警处理子程序:采集各个报警条件,统一处理后给触摸屏推报警码
  • 数据管理子程序:产量计数、运行时间统计、班次数据保持

用标签编程最大的好处是可以给每个变量起一个有意义的名字。比如Axis1_Pos表示轴1当前坐标,Gripper_Open表示夹爪打开到位信号,程序阅读起来非常直观。这个项目后期用户自己找人改过几个参数,反馈说程序没有他们想象中那么难看懂,就是因为标签命名规范。

2.2 原点回归功能块:三种回归方式的选用经验

伺服定位的第一步永远是原点回归。原点找不准,后面所有定位都是扯淡。FX5U支持三种常用回归方式:

  • 近点狗回归:碰到减速开关后减速,再找编码器Z相脉冲作为原点
  • 数据设定回归:直接指定一个机械绝对坐标作为原点,上电后直接走绝对值
  • 手动挡块回归:直接朝挡块方向低速运行,碰到硬限位后反向脱离,以脱离位置为原点

这个项目用的是近点狗回归加Z相锁定。原因很简单:X轴行程足够长,机械上装了一个独立的近点传感器,用近点狗回归可以保证每次回原点的方向和位置一致性。旋转轴则用了数据设定回归,因为分度台根本不需要找机械原点,只需要一个固定的电气原点就够了。

实操中有个细节值得注意:近点狗信号的接入位置一定要选对。FX5U的高速脉冲定位输入端子中,有专门用于近点信号的输入端,接错的话回归逻辑会变得很奇怪。我最初把近点开关接到了普通输入点上,用程序指令去读,结果每次回归的位置偏差在0.5mm左右,后来查了很久发现是信号响应延迟造成的。换到专用近点输入端后,偏差直接降到0.02mm以内。

2.3 总线定位与脉冲定位的选型对比

FX5U做伺服控制有两种主流方式:一种是传统的脉冲输出方式(PLS),另一种是通过CC-Link IE Field Basic总线通讯,直接给伺服驱动器发速度指令、位置指令、读取编码器反馈。

脉冲方式的好处是简单直观,接线几根线就搞定了,调试时用万用表也能量到脉冲信号。缺点是精度和响应速度受限于脉冲频率,而且无法直接读取伺服驱动器的内部状态,很多监控数据还要通过额外的通讯去读。

总线方式的好处是信息量丰富,位置反馈、电流反馈、报警历史、电子齿轮比设置全都可以通过报文读写。FX5U本体内置了一个以太网口,支持CC-Link IE Field Basic协议,可以直连三菱MR-JE伺服驱动器。这个方案省掉了传统脉冲方式需要的高速计数模块和大量接线,一网到底,干干净净。

这次项目我混合使用了两种方式:X轴因为要求高精度高响应,用的是CC-Link IE Field Basic通讯控制;旋转分度轴因为动作简单、定位精度要求不高,直接用了脉冲输出。这样既保证了关键轴的控制性能,又节省了成本和调试时间。

2.4 关键定位指令解读:DRVZ、DRVI和ABS指令的真实用法

FX5U的定位指令体系延续了三菱的一贯风格,最常用的三条指令分别是:

  • DRVZ:原点回归指令,配合近点狗信号和Z相信号执行回归动作
  • DRVI:增量定位指令,以当前所在位置为基准,移动相对距离
  • DRVA:绝对定位指令,以原点为基准,移动到指定绝对坐标

这个项目里,搬运轴用的主要是DRVA,因为搬运的目标位置是固定的几个坐标点。只要原点回归做准确,DRVA的定位结果就非常稳定。分度轴则是典型的DRVI应用场景,每次正转45度,累计八次完成一圈。

这里有个容易踩坑的点:DRVI的移动方向取决于目标值的正负号。很多初学者写DRVI时只关注移动到什么位置,忽略了方向指令的正负号处理。如果程序里用了一个变量作为的移动量,而这个变量在某些工况下会被改成正数或负数,那轴的运动会直接反向。我在分度轴的程序里加了一个方向锁定逻辑,确保每次的移动量正负号都由操作模式决定,不直接从触摸屏变量里读。

2.5 程序里如何做轴联动控制

伺服机器人工作站往往不是单轴动作,而是有多个轴需要配合。比如这次项目的X轴搬运和旋转轴分度,虽然不需要做真正的插补运动,但它们之间的时序配合是必须严格控制的。

我采用的方法是:先到位的轴等后到位的轴,双方都到位后再一起执行下一步。具体实现上用三个标志位,Axis1_DoneAxis2_DoneMoves_Complete。只有当两个轴的完成标志同时为ON,Moves_Complete才会置位,主程序看到这个标志才继续往下走。

这套逻辑看着简单,但实际项目里很容易被忽略。尤其是设备提速的时候,如果只追求单个轴的速度,忽略了轴与轴之间的握手等待,机器会在高速运行中出现撞模或者抓空的情况。安全起见,每个轴的到位信号一定要通过伺服驱动器的定位完成输出读取,或者通过程序判断当前坐标与目标坐标的差值小于允许公差。前者更实时,后者更灵活,我一般两种都做,互为冗余。

3. 威纶通触摸屏开发与通讯配置

3.1 新建工程的设备连接配置

威纶通触摸屏的编程软件是EBPro,界面比较友好,但有一个步骤非常关键——新建工程时选择和PLC通讯的方式。按照项目结构,威纶通触摸屏和FX5U之间是通过以太网连接的,所以在EBPro新建工程时,设备类型要选择三菱FX5U Ethernet,接口类型选以太网。

这里有几个容易踩的坑:

  • IP地址必须在同一个网段。FX5U的默认IP是192.168.3.250,触摸屏如果没有改过,默认是192.168.1.88,两者不在一个网段,哪怕用网线直连,通信也是不会通的。我习惯给它们规划成固定IP,PLC是192.168.1.10,触摸屏是192.168.1.20,避免以后增加设备时冲突。
  • 通讯协议选择。FX5U以太网口上支持SLMP协议和MC协议,EBPro里通常用SLMP(QnA兼容3E帧)或者三菱FX5U专用驱动。选错协议类型会导致元件地址无法读取,实际表现就是触摸屏上所有数据显示不出来。
  • 帧长度和超时时间设置。如果程序里存在大量连续读取的数据块,可以把帧长度调大一些。默认的帧长度往往需要多次轮询才能把全部数据刷新完,表现在触摸屏上就是页面切换时数据有延迟。

3.2 元件地址规划:D寄存器、M继电器和定位特殊软元件的映射

FX5U和威纶通触摸屏之间的数据交换,本质上就是触摸屏去读写PLC内部的各种软元件。用的最多的就是D寄存器(数据寄存器)和M继电器(中间继电器)。

D寄存器适合放数值数据。比如当前轴位置、速度倍率、产量计数、报警代码之类的。M继电器适合放开关量。比如启动按钮、停止按钮、模式选择、故障复位、油泵开关等。

为了保证程序可维护,我在项目开始就统一规划了地址表:

地址范围用途示例
D0-D9系统参数D0:速度倍率,D1:产量设定
D10-D19轴1状态D10:轴1当前位置,D11:轴1目标位置
D20-D29轴2状态D20:轴2当前位置,D21:轴2目标位置
M0-M19操作按钮M0:启动,M1:停止,M2:急停复位
M20-M39自动流程状态M20:自动运行中,M21:原点已回归
D100-D199报警信息区D100:报警代码,D101:报警详情字符串索引

这种地址规划方法看着多花了点时间,但效果很明显。触摸屏画面上监控的数据,和PLC程序里处理的数据,一一对应,调试的时候方便到飞起。

3.3 画面设计与功能布局

威纶通触摸屏的画面设计,我一般遵循一条原则:操作频率高的按钮放右下角,报警信息放最显眼的位置,参数设定页面要有二次确认

这次项目设计了四个主要画面:

  • 主监控页面:显示两个轴的当前位置、当前速度、当前运行状态,同时放启动、停止、复位三个大按钮,方便操作工戴着手套也能按到
  • 手动操作页面:每个轴有正向点动、反向点动、回原点三个按钮,旁边是点动速度设定框。气缸操作按钮也放在这一页,方便调试
  • 参数设定页面:速度倍率、加减速时间、目标位置设定、产量目标值。进入这个页面需要操作员权限,参数修改后必须点保存才写入PLC
  • 报警历史页面:记录最近50条报警记录,包含报警时间、报警代码和报警描述,方便售后工程师远程判断问题

画面设计有个细节值得说:按钮的大小和间距一定要够大。工业现场操作工经常戴手套,按钮做太小了非常难按,还容易误触旁边的按钮。我一般要求按钮最小尺寸不低于60×60像素,相邻按钮间距不小于20像素,实测下来误触率大幅下降。

3.4 以太网通讯参数设置与常见连接故障

触摸屏和FX5U以太网通信连接不上是项目调试阶段最常见的问题,几乎每个项目都会遇到。根据经验,九成以上的通信故障都出在以下几个地方:

  • IP地址不在同一网段:这种情况最常见,两者IP必须属于同一个网段,还要注意子网掩码是否一致
  • PLC侧没有开放端口:FX5U默认开启以太网端口,但如果之前有人改过系统参数,把端口禁用了,那就需要进GX Works3的CPU参数里检查
  • 设备编号被其他设备占用:某些网口上有多个HMI或上位机同时连接同一个PLC时,会要求每个设备设置不同的网络编号。比如第一台HMI的网络号是0、站号是1,第二台就必须改成站号2,否则后连的设备容易被挤掉
  • 不经交换机直连是允许的,但网线类型要留意:FX5U是工业以太网口,和电脑直连时有些型号需要交叉网线,而现在大多数电脑网卡和触摸屏都支持自动翻转,普通直通线也能用。但保险起见,我会建议现场多备几根网线换着试。

我遇到过一次很头疼的情况:触摸屏上显示的所有数据都正常,唯独报警状态那一路始终不刷新。排查了整整半天,最后发现是触摸屏画面上那个报警灯元件设置错了地址,把M40写成了M4。这种事没办法靠软件检查出来,只能人眼一个一个核对画面元件的地址。所以从项目一开始就要保持严谨的地址规划习惯,不然排查起来真的很费时间。

4. 数据交互、逻辑控制与进阶玩法

4.1 FX5U与第三方系统通过Modbus TCP交互

有些项目现场除了触摸屏,还有上位机或者MES系统要读取设备数据。FX5U以太网口原生支持SLMP协议,也支持Modbus TCP从站模式。如果上位机或MES系统只支持Modbus TCP,那么只需要在GX Works3里做一下从站参数配置,把要开放的寄存器区域映射出去即可,不需要写额外的通讯梯形图。

映射方式是在CPU参数里设置Modbus TCP从站功能,指定允许外部读写的软元件范围。我习惯的做法是单独划分一块数据区专门供上位机读写,比如D1000到D1999。PLC内部的程序不主动往这块区域写运作数据,只由上位机来读取,这样就算上位机操作失误也不会干扰到核心逻辑。

如果现场要求主从模式反过来——FX5U作为主站去读其他设备的数据,那就需要写MBE指令或者使用MODBUS通讯功能块。FX5U的Modbus TCP主站功能块在GX Works3里有现成的库文件,调用后填一下对方的IP地址、端口号(默认502)、起始地址和读取长度就可以。

4.2 PID指令在温度控制中的应用

伺服机器人工作站一般不会有温度控制,但很多接入这个系统的外围设备,比如热缩炉、焊接头、加热管,都会有温控需求。FX5U自带的PID指令(编号PID)支持标准的PID运算,可以通过自整定方式自动计算P、I、D参数。

FX5U自整定的参数设定和FX3U差别不大,核心是设好SV目标值、设定好采样时间、确定好输出上限和下限,然后启动自整定。自整定过程中CPU会输出一个阶跃信号,通过观察被控对象的响应曲线来推算出合适的PID参数。工程上的一个经验是:自整定结束后一定要再手调一下P和I。因为自整定出来的参数偏保守,用在响应要求高的场合会感觉动作迟缓,通常把P稍微放大20%左右,I稍微减小10%左右,响应会改善很多。

4.3 AI辅助PLC代码生成的现状

这两年AI辅助编程风很大,工业自动化领域也有人开始尝试让大模型生成PLC代码。从我用过的几个工具看,AI在生成FX5U的结构化文本(ST语言)代码方面已经有一定可用性,尤其是一些功能块的骨架代码、数据处理逻辑、字符串解析这类内容,AI写起来挺快的。

但梯形图生成这块目前还比较鸡肋。因为梯形图本质是图形化编程,AI输出的是指令表或者结构化文本,做出来能否直接转换成梯形图,还要看GX Works3的兼容性。我目前对AI代码生成的态度是:可以当辅助,不能当主力。让AI写一段Modbus读取的框架代码没问题,但涉及伺服定位时序、安全联锁逻辑这种核心安全控制部分,必须自己一行一行敲进去。毕竟设备的伺服撞一次机的维修成本,远超省下来那点编程时间。

4.4 数据采集与产量统计

触摸屏上的产量统计看着简单,真正做起来有几个细节需要注意。

第一,产量计数的时机。我习惯同时用到位信号和夹爪松开信号来确认一个成品真正完成,而不是只凭定位完成就往上走。防止机器空跑或者误抓时也计入产量,实际应用中极好用的细节。

第二,班次切换问题。有些工厂分白班和夜班,两个班组各自计产。可以把产量存储做成两个计数器,根据触摸屏上的班次选择信号来切换累加,同时记录每个班次的运行时长。

第三,断电保持。配电柜突然断电后,产量如果清零了,生产管理会很麻烦。所以产量计数的寄存器一定要做成锁存型(FX5U里的D寄存器默认是锁存,但哪些区域锁存需要确认参数设置),或者通过触摸屏的历史数据存储来补救。我的习惯是产量区用锁存寄存器,同时触摸屏历史数据里每半小时自动记录一次当前产量,这样就算PLC意外断电,产量也能找回。

5. 常见问题与排查技巧实录

5.1 伺服定位偏差突然变大怎么查

伺服定位系统出现问题,第一反应不要先改程序,先确认机械和电气链路的状态。我遇到过一次X轴定位偏差从0.02mm漂移到0.8mm的情况,排查顺序如下:

  • 先看伺服驱动器前面板有没有报警代码。如果是AL.50(过载)或AL.16(编码器异常),优先怀疑机械卡死或编码器线松动
  • 再看PLC里监控的当前坐标值是否和实际位置一致。如果不一致,说明丢脉冲了,重点检查脉冲输出线是不是用了屏蔽线,屏蔽层有没有单端接地
  • 如果坐标一致,但机械实际位置不对,那就是机械传动问题。检查联轴器是否松动、丝杠螺母间隙是否变大、同步带是否跳齿
  • 最后查伺服驱动器的电子齿轮比参数(PA05、PA06),确认是不是被误改过。很多现场维修人员喜欢乱调参数,搞完又没记住原来的值,这是固定项目安全隐患

排查伺服故障最忌讳乱猜乱试。按照从简单到复杂、从机械到电气、从外围到核心的顺序排查,通常都能快速定位。

5.2 FX5U程序写不进CPU怎么处理

GX Works3连不上PLC、程序写不进CPU的问题,在实际项目中经常发生。大多数情况出在连接设置上:

  • USB连接方式时,检查驱动是否安装好。GX Works3安装完成后需要单独安装USB驱动,有些精简安装包会把这一步漏掉
  • 以太网连接时,检查电脑网卡的IP地址是否和PLC在同一网段。FX5U默认IP是192.168.3.250,电脑要设成192.168.3.1之类的同网段地址才能直连
  • 连接上PLC后如果先读后写,注意在线模式下PLC的RUN/STOP状态。写程序之前需要把PLC切换到STOP状态,GX Works3通常会弹窗提醒,但要确认没有跳过
  • 写入成功后PLC会自动复位,注意观察恢复RUN后设备是否自启动

还有个三菱官方推荐的维护工具FX5U Clean_up_tool也值得备用。这个工具可以把PLC内部的数据区、文件寄存器、缓存区彻底清空,恢复到出厂状态。遇到CPU内部的数据残留导致的异常,比如程序删除后还有遗留标签、掉电保持区内容错乱,用这个工具清理一遍往往能解决问题。使用前务必备份原有程序。

5.3 威纶通触摸屏显示数据不刷新的典型原因

触摸屏连上PLC但数据不刷新,这种问题的排查思路和通信不上有一点区别。通信不上通常是物理链路或参数配置的问题,而数据不刷新往往更诡异——页面可以切换、按钮有反应,但显示值永远是0或者永远不变。

这种情况先看元件的地址对不对。威纶通EBPro里元件属性的“读取地址”和“写入地址”是两个独立的概念,很容易弄混。如果一个按钮元件同时设了读写地址,但读地址和写地址不一致,按下去能写,但显示状态读的却是另一个地址,这样就会出现按了没反应或者状态始终不变的假象。

再看画面切换后的数据刷新机制。EBPro默认是后台持续轮询所有在线元件的,但如果元件数量特别多,或者通讯帧设置不合理,刷新率会被拉得很低。我一般会把同一页面上连续地址的元件合并成区块读取(成组读取),一个帧读完一整片数据,刷新速度会快很多。如果元件地址分布非常散,就考虑在PLC里把数据先用指令集中到一个连续D区内,触摸屏只读这个区块。

5.4 机器人程序与伺服机器人联动时的调试顺序

这个项目虽然核心是FX5U,但标题里提到的机器人必然会涉及和机器人的信号交互。机器人和PLC之间最常见的是IO信号交互方式,PLC通过输出点给机器人下达启动、复位、切换程序号的指令,机器人通过输出点给PLC返回运行中、完成、报警等状态。

调试这类系统的顺序有讲究。我习惯先在PLC侧用强制输入的方法模拟机器人的应答信号,确认PLC的程序逻辑正确以后,再把机器人的IO线接上联调。如果一上来就接真机联调,两边程序都有bug时,你根本分不清是PLC的问题还是机器人的问题。分步调试的节奏看起来慢,实际总用时反而是最短的。

5.5 常见问题速查表

故障现象可能原因排查方法
伺服轴无法回原点近点开关信号未到PLC查看PLC输入点LED是否有亮
伺服轴回原点位置偏移近点信号响应太慢改用专用近点输入端
触摸屏全部数据显示----PLC通讯未建立检查IP地址、网线连接
触摸屏部分数据不更新元件地址设错或数据区块分散核对元件地址,合并连续读取区块
设备运行时偶尔停顿气缸到位信号提前消失确认磁性开关安装方向和灵敏度
产量计数偶发不准计数信号被卡诺辐射干扰计数信号线加屏蔽,靠近PLC输入端滤波

6. 调试心得与经验分享

6.1 程序调试前的检查清单

下现场调试之前,我每次都会过一遍检查清单。这个习惯帮我省了无数次返工时间:

  • 检查所有输入输出点的接线是否与图纸一致,用万用表逐一点动量测
  • 确认PLC型号和IO扩展模块的地址分配符合程序设定
  • 检查伺服驱动器的电子齿轮比、脉冲模式(正负逻辑)、再生制动选件
  • 核对触摸屏的IP地址、PLC类型、通讯协议
  • 把伺服轴的软限位设置好,避免程序bug导致飞车
  • 确认急停回路的硬件接线独立于PLC程序,确保任何程序异常时都能物理切断动力电

6.2 在线修改程序时的注意事项

GX Works3支持在线修改程序,但这个功能用起来要小心。在线修改前,先把PLC程序备份到本地,如果在修改过程中CPU报内存错误,还可以恢复。

在线修改梯形图时,PLC的运行状态会自动暂停。如果设备正在自动运行中,修改的一瞬间输出会保持之前的状态,这对于气缸、电机这类执行机构来说还算安全,对于高速运行的伺服轴来说则可能存在危险。所以在线修改前,先确认伺服轴是否已经停在安全位置。

6.3 一个让设备稳定性大幅提升的小功能:自动断电记忆

FX5U的D寄存器有一部分是断电保持型的,用来存原点位置、产量值、运行模式这些关键数据。利用这个特性,我做了一个自动断电记忆功能。

设备运行过程中,PLC每秒钟把当前坐标值、当前运行模式、当前产量写入掉电保持寄存器。外部电源恢复后,设备可以选择“从断点恢复”模式,直接把坐标写入伺服驱动器,跳过重新回原点的步骤,设备在几十秒内恢复工作。对需要连续生产的产线来说,这个功能节省了大量的停机恢复时间。

6.4 关于这个项目的总结

写到这里,回头看这个项目,我最想表达的一个观点是:硬件选型只是基础,真正决定设备运行水平的永远是程序细节和调试经验

FX5U和威纶通这套组合,在中小型伺服机器人工作站里是非常可靠而且性价比很高的方案。F5XU丰富的指令集和通讯能力能应付绝大多数的定位控制需求,威纶通触摸屏的开发效率在同类HMI里也算第一梯队。

如果你正在做或者准备做类似的项目,建议从一开始就注意做好地址规划、标签命名、程序结构化,这样后面每一个调试环节都会轻松很多。技术上遇到问题时,不要怕多试,也不要迷信某些所谓的“官方标准做法”,多积累现场踩坑经验,才是这行最值钱的东西。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询