Modscan32 读取 FX3U 地址:Modbus 调试实战指南
Modscan32 读取 FX3U 地址:Modbus 调试实战指南
在工业自动化调试中,用 Modscan32 读取三菱 FX3U 的数据是最常见的操作之一。但很多人第一次连接时都会遇到“读不到数”或“地址对不上”的问题,根源在于 FX3U 的软元件地址和 Modbus 地址之间有一套固定映射规则。这篇文章把连接方法和地址换算逻辑讲清楚。
一、硬件与通讯前提
FX3U 本身不支持原生 Modbus,需要加装通讯适配器:
串口 RTU:使用 FX3U-485ADP-MB 适配器,支持 Modbus RTU 主站/从站模式
以太网 TCP:使用 ENET-FX 等以太网模块,内部集成 Modbus TCP 服务器,可直接被 Modscan32 访问
Modscan32 作为 Modbus 主站(Master) 运行,FX3U 作为从站(Slave) 响应请求。
二、Modscan32 连接设置
1. 连接参数
打开 Modscan32,菜单 Connection → Connect:
Modbus TCP:选择 Remote TCP/IP Server,填入模块 IP 地址,端口默认 502
Modbus RTU:选择对应 COM 口,波特率、校验位需与 FX3U 的 D8120 设置完全一致
2. 数据定义
在 Setup → Data Definition 中设置:
| 参数 | 设置值 |
|---|---|
| Device ID | FX3U 站号(通常为 1) |
| Point Type | 03: HOLDING REGISTER(读 D 寄存器)或 01: COIL STATUS(读 Y/M) |
| Address | 按映射表换算后的 Modbus 地址 |
| Length | 读取的连续点数 |
3. 读取结果验证
Modscan32 数据区会显示十六进制值。比如读 Address = 1301, Length = 100,对应的是 FX3U 的 D8000 到 D8100 区域。
三、FX3U 地址映射核心规则
这是最容易出错的地方。FX3U 的软元件地址和 Modbus 地址的换算,不是简单的 1:1 对应。
3.1 数据寄存器 D
| Modbus 区域 | FX3U 对应 | 换算规则 |
|---|---|---|
| 400001~ | D0 开始 | Dm = 400001 + m |
| 401301~ | D8000 开始 | D8m = 401301 + m(m 为去掉 8000 后的数值) |
示例:要读 D100,Modbus 地址为 400001 + 100 = 400101,在 Modscan32 的 Address 栏填 101。
3.2 输出继电器 Y(八进制陷阱)
FX3U 的 Y 点按八进制编码,但 Modbus 地址是十进制的。
换算步骤:先把八进制数值转成十进制,再加基址。
| 目标 | 八进制 | 转十进制 | Modbus 地址 |
|---|---|---|---|
| Y0 | 0 | 0 | 000001 |
| Y10 | 10 | 8 | 000009 |
| Y47 | 47 | 39 | 000040 |
公式:地址 = 000001 + (Y点八进制值转十进制后的数值)
3.3 输入继电器 X
同样按八进制编码,映射到离散输入区(1xxxx)。
示例:X110(八进制)→ 转十进制为 72 → 对应地址 100073。
3.4 计数器 C
16 位计数器(C0-C199)占 1 个寄存器地址;32 位计数器(C200 之后)占 2 个地址。
示例:C210 对应地址 = 401201 + (210-200) × 2 = 401221。
四、常用地址速查
| FX3U 软元件 | Modscan32 功能码 | Modbus 起始地址 |
|---|---|---|
| D0 开始 | FC03 | 400001 |
| D8000 开始 | FC03 | 401301 |
| Y0 开始 | FC01 | 000001 |
| X0 开始 | FC02 | 100001 |
| T0 当前值 | FC03 | 428001 |
| C0 当前值 | FC03 | 434001 |
| R0 文件寄存器 | FC03 | 436101(仅 FX3U 支持) |
五、现场调试要点
1. 地址偏移量是最大坑点
Modbus 协议有“1-based”和“0-based”两种编号方式。Modscan32 的 Address 栏填的是 0-based 地址。比如你想读 40001 寄存器,Modscan32 里填 1(对应 400001 就是填 1,因为 400001 的偏移量是 0)。
2. 连接通不通,先看三样
用 USB 转 485 接电脑串口助手单点测试,确认:
A/B 接线没有接反
波特率和校验位与 FX3U 的 D8120 一致
站号(Device ID)与 FX3U 设置的从站号匹配
3. 读到的数不对
优先怀疑:地址偏移差 1 或者多字数据高低字顺序问题。浮点数、32 位数值需要做字交换。
总结
用 Modscan32 读 FX3U,核心就三步:连对通讯、填对地址、看清数。地址映射是唯一的门槛——D 寄存器加偏移量,Y 和 X 先转八进制,把这两条吃透,调试就不会卡在“读不到数”上了。



