三菱FX5U可以通过设置TCP服务端对客户端读取数据,具体可通过Modbus TCP协议实现服务器功能,允许客户端主动读取其寄存器数据。以下是详细说明:
一、FX5U实现TCP服务端的核心配置
硬件与软件要求
硬件:FX5U本体自带以太网口,无需额外模块。
软件:使用GX Works3编程软件,版本需支持Modbus TCP协议配置(如V2.10及以上)。
关键配置步骤
D0对应Modbus地址40001D1对应40002,依此类推。
客户端通过读取40001地址即可获取D0的值。IP地址设置:
在GX Works3中,导航至参数 → FX5UCPU → 模块参数 → 以太网端口,设置PLC的IP地址(如192.168.1.20)和子网掩码(如255.255.255.0)。启用Modbus TCP服务器:
在对象设备连接配置中,从以太网设备(通用)中拖拽Modbus/TCP连接设备至组态区域。默认端口为502(行业惯例,也可自定义),保存后重启PLC生效。地址映射:
PLC的D寄存器(数据寄存器)与Modbus地址对应关系为:连接数限制
FX5U的Modbus TCP服务器最多支持8个并发连接,超过后新连接将被拒绝。
二、客户端读取数据的实现方式
客户端配置
发送指令:
00 00 00 00 00 06 01 03 00 00 00 01
(解读:事务标识符00 00,协议标识符00 00,长度00 06,单元标识符01,功能码03,起始地址00 00,寄存器数量00 01)PLC返回:
00 00 00 00 00 05 01 03 02 00 0A
(解读:数据长度02,寄存器值00 0A,即十进制10)。读取保持寄存器(功能码03):用于读取D寄存器数据。
读取输入寄存器(功能码04):用于读取特殊寄存器(如SD、R)数据。
目标IP与端口:客户端(如上位机、HMI或其他PLC)需配置为PLC的IP地址(如
192.168.1.20)和端口502。功能码选择:
示例指令(以Modbus Poll调试工具为例):
PLC程序示例(无需额外编程)
FX5U的Modbus TCP服务器功能为内置功能,无需编写PLC程序即可实现数据读取。但需注意:保持寄存器区缓冲:建议预留200个D寄存器(如
D0-D199)作为缓冲,防止通信风暴导致数据溢出。错误处理:通过D寄存器监控通信状态(如
D7000显示错误代码,D7001记录异常功能码)。
三、调试与验证工具
Modbus Poll
模拟客户端发送功能码03/04指令,验证PLC数据是否正确返回。
支持多窗口监控,可同时读取多个寄存器。
Wireshark抓包分析
过滤条件设为
tcp.port == 502,捕获Modbus TCP报文。验证事务标识符、功能码、寄存器地址等关键字段是否正确。
PLC软元件监控
在GX Works3中,通过
监控 → 软元件监控实时查看D寄存器值,确认与客户端读取结果一致。
四、常见问题与解决
客户端无法连接
防火墙拦截:关闭PLC或客户端防火墙,或添加端口
502例外。IP冲突:确保PLC与客户端IP在同一网段且不重复。
连接数超限:检查当前连接数是否超过8个,关闭闲置连接。
数据读取错误
字节顺序问题:若数据解析异常(如高低字节颠倒),在客户端配置中调整字节顺序(如
ABCD→DCBA)。寄存器地址偏移:确认客户端读取的Modbus地址是否与PLC的D寄存器对应(如
40001对应D0)。性能优化
减少数据量:仅传输必要寄存器,避免全量读取。
固定寄存器地址:避免动态分配导致解析错误。
心跳检测:通过定时发送测试指令(如读取固定寄存器)保持连接活跃。

