三菱FX5U TCP/IP连接问题解析与解决方案
一、核心配置步骤
IP参数设置
IP地址:需与上位机(如HMI、PC)同网段(如PLC设为
192.168.1.100
,子网掩码255.255.255.0
)。端口号:默认Modbus TCP端口为
502
,SLMP协议常用5002
,需与上位机一致。协议类型:TCP(稳定场景)或UDP(高速场景,需同步修改PLC与上位机协议)。
路径:GX Works3 → 参数 → FX5UCPU → 模块参数 → 以太网端口。
关键项:
对象设备连接配置
添加“SLMP连接设备”,协议选TCP,端口需与上位机一致(如
5002
)。副头部设置:网络号/站号建议设为
1
,避免冲突。添加“Modbus/TCP连接设备”,端口默认为
502
,支持多客户端连接(系统自动分配端口)。启用后,通过“详细设置”查看Modbus地址映射(如
D0
对应保持寄存器40001
)。Modbus TCP从站:
SLMP协议连接:
通信协议支持功能(主站)
D400
:握手ID(本体以太网口为0
)。D401
:从站站号。D402
:起始Modbus地址(如0000
对应40001
)。D403
:读取点数(寄存器数)。D406~D531
:数据存储区(D406
为数据长度,D407
起为数据内容)。步骤:
添加“Active连接设备”,选择“通信协议”,填写对方IP和端口。
新建通信协议,选择功能码(如
03
读保持寄存器)。分配软元件:
程序调用
建立连接:使用
SP.SOCOPEN
指令,参数S2
指向预置参数首地址(如0
调用默认设置)。执行协议:通过
SP.ECPRTCL
指令调用协议,如读取从站D10~D13
:plaintextD402 = 10 // 起始地址D403 = 4 // 读取4个寄存器
关闭连接:使用
SP.SOCCLOSE
指令。
二、常见问题与解决方案
连接失败
IP冲突:通过“诊断 → 简单CPU通信诊断”定位冲突设备,修改PLC或上位机IP。
端口占用:单端口仅支持单连接,检查是否被其他程序占用(如调试助手)。
防火墙拦截:关闭PC防火墙或添加PLC IP到白名单。
数据不一致
字节序问题:Modbus TCP默认大端序,若上位机为小端序,需通过
SWAP
指令调整数据高低字节(如SWAP D407
)。数据未清零:接收数据时,需将存储区末尾数据清零(如
MOV 0 D500
),避免残留数据干扰。通信不稳定
协议切换:TCP不稳定时,尝试切换至UDP协议(需同步修改PLC与上位机设置)。
超时调整:默认超时为
2.5秒
(0x0A00
),可根据场景优化(如缩短至1秒
)。Modbus地址映射错误
地址偏移:Modbus TCP地址从
0
开始(如0000
对应40001
),而PLC软元件地址从0
直接对应(如D0
对应40001
),需确认映射关系。
三、测试与验证
硬件连接
网线直连PLC与PC,确保PLC ETH灯常亮,PC网络适配器显示“已连接”。
调试工具
以太网调试助手:
新建TCP客户端,填写PLC IP和端口(如
192.168.1.100:502
)。发送Modbus TCP报文(如读取
D0~D3
):plaintext00 00 00 00 00 06 00 03 00 00 00 04
观察返回数据是否符合预期。
组态软件测试
安卓手机组态软件(如ModbusScada):
添加设备,填写PLC IP和端口(如
192.168.1.100:502
)。绑定变量(如
X0
对应00000
,D0
对应40001
)。运行测试,监控变量状态变化。
四、进阶配置
多设备协同
添加多个Modbus TCP连接设备,分配独立端口(如
5003~5006
),实现多客户端同时通信。无线通信
通过DTD419MB终端实现1公里通信,PLC/触摸屏IP设为
192.168.2.14/15
,网关192.168.2.1
。数据采集与远程控制
使用PLCRecorder监控寄存器生成报表,或通过SLMP协议跨网锁定/重启PLC。