- 1. 一、概述
- 2. 二、Modbus地址类型说明
- 3. 三、FX3U默认Modbus地址映射表
- 4. 3.1 离散输入区(X输入继电器)→ 1xxxx
- 5. 3.2 线圈区(Y/M/S等)→ 0xxxx
- 6. 3.3 保持寄存器区(D/R数据寄存器)→ 4xxxx
- 7. 3.4 输入寄存器区 → 3xxxx
- 8. 四、用户自定义设备分配
- 9. 五、PLC从站配置步骤
- 10. 5.1 安装通信适配器
- 11. 5.2 设置通信参数
- 12. 5.3 设置从站地址
- 13. 5.4 调用Modbus指令
- 14. 六、PLC主站读取变频器示例
- 15. 七、常见问题与排障指南
- 16. 7.1 通讯无响应
- 17. 7.2 读不到数据
- 18. 7.3 数据不对或乱码
- 19. 7.4 偶发通讯失败
- 20. 八、与西门子S7-200 SMART的区别
- 21. 九、总结
- 22. 十、相关链接
一、概述
三菱FX3U/FX3G/FX3S系列PLC通过FX3U-485ADP-MB或FX3U-232ADP-MB通信适配器,可以实现Modbus RTU主站或从站功能。本文基于三菱官方《FX用户手册 – 通信篇》,详细说明FX3U系列PLC的Modbus地址映射规则。
FX3U系列PLC支持两种Modbus工作模式:
- Modbus RTUHauptstation(Master):主动读写从站设备(如变频器、仪表)
- Modbus RTUVon der Station(Slave):被动响应上位机的读写请求
二、Modbus地址类型说明
Modbus协议定义了四种数据区域,每种区域有固定的地址范围和功能码:
| Modbus地址区域 | Funktionscode | 读写属性 | Datentyp | 对应FX3UAusrüstung |
|---|---|---|---|---|
| 0xxxx(线圈) | 01(读线圈)/ 05(写单线圈)/ 15(写多线圈) | 读/写 | 位(1 bit) | Y/M/S等位设备 |
| 1xxxx(离散输入) | 02(Lesen Sie getrennte Eingabe) | 只读 | 位(1 bit) | X输入继电器 |
| 3xxxx(输入寄存器) | 04(Eingangsregister lesen) | 只读 | 字(16 bit) | 特殊寄存器/固定映射 |
| 4xxxx(保持寄存器) | 03(Lesen Sie das Register)/ 06(写单寄存器)/ 16(写多寄存器) | 读/写 | 字(16 bit) | D/R数据寄存器 |
重要说明:Modbus地址有两种表示方式——带区域前缀的(如40001)和纯偏移量的(如00000)。实际通信中使用的是0-based偏移地址。
三、FX3U默认Modbus地址映射表
3.1 离散输入区(X输入继电器)→ 1xxxx
FX3U的输入继电器X固定映射到Modbus的1xxxx离散输入区域,只读。
| ModbusAdresse | FX3UAusrüstung | 说明 |
|---|---|---|
| 10001 | X000 | 输入继电器第0位 |
| 10002 | X001 | 输入继电器第1位 |
| 10003 | X002 | 输入继电器第2位 |
| 10004 | X003 | 输入继电器第3位 |
| 10005 | X004 | 输入继电器第4位 |
| 10006 | X005 | 输入继电器第5位 |
| 10007 | X006 | 输入继电器第6位 |
| 10008 | X007 | 输入继电器第7位 |
| 10009 | X010 | 输入继电器第8位(八进制) |
| 10010 | X011 | 输入继电器第9位(八进制) |
| … | … | 依次类推,X采用八进制寻址 |
| 10256 | X337 | 最大地址(根据IO点数) |
注意:FX系列PLC的X/Y输入输出采用八进制寻址,不是十进制!X0-X7是前8位,X10-X17是接下来的8位,依次类推。
3.2 线圈区(Y/M/S等)→ 0xxxx
FX3U的输出继电器Y、辅助继电器M、StatusS等位设备可以映射到Modbus的0xxxx线圈区域,读写。
默认映射(Beispiel):
| Modbus地址范围 | FX3UAusrüstung | Menge | 说明 |
|---|---|---|---|
| 0x0000 – 0x001F (00001-00032) | Y000-Y017 | 32点 | 输出继电器Y(八进制) |
| 0x0020 – 0x005F (00033-00096) | M0-M63 | 64点 | 辅助继电器M |
| 0x0060 – 0x007F (00097-00128) | S0-S31 | 32点 | StatusS |
说明:
- 线圈区域映射可以通过参数自定义配置
- 默认情况下,Y输出继电器映射到最前面
- M辅助继电器映射到接下来的区域
- 每个PLC设备区域占1个位
3.3 保持寄存器区(D/R数据寄存器)→ 4xxxx
FX3U的数据寄存器D映射到Modbus的4xxxx保持寄存器区域,读写。
| ModbusAdresse | FX3UAusrüstung | 说明 |
|---|---|---|
| 40001 | D0 | 数据寄存器第0个 |
| 40002 | D1 | 数据寄存器Die erste |
| 40003 | D2 | 数据寄存器Der zweite |
| 40004 | D3 | 数据寄存器Der dritte |
| … | … | 依次类推 |
| 40200 | D199 | 数据寄存器第199个 |
| 40201 | D200 | 数据寄存器第200个(保持型) |
| … | … | 依次类推 |
| 48000+ | D7999+ | 数据寄存器最大地址 |
计算公式:ModbusAdresse = 40000 + D寄存器编号 + 1
Beispiel:要访问D100,ModbusAdresse = 40000 + 100 + 1 = 40101
D寄存器分区说明:
| D寄存器范围 | 点数 | 说明 |
|---|---|---|
| D0-D199 | 200点 | 通用型,可改为保持型 |
| D200-D511 | 312点 | 保持型,可改为非保持 |
| D512-D7999 | 7488点 | 保持型,D1000以后可设为文件寄存器 |
3.4 输入寄存器区 → 3xxxx
FX3U的3xxxx输入寄存器区域通常用于只读数据,映射相对固定。
- 输入寄存器是只读的
- 通常映射到模拟量输入模块的数据寄存器
- 具体地址取决于安装的模拟量模块型号和数量
四、用户自定义设备分配
FX3U的Modbus地址映射是可配置的,可以通过用户自定义设备分配功能,将不同的PLC设备映射到Modbus地址空间。
配置规则:
- 线圈(0xxxx)和保持寄存器(4xxxx)是可配置的
- 离散输入(1xxxx)和输入寄存器(3xxxx)映射是固定的
- 最多可以映射8个PLC设备区域到Modbus地址空间
- 每一组配置信息需要占用2个寄存器
配置步骤:
- 在GX Works2编程软件中打开PLC参数设置
- 找到「Modbus串行通信」设置项
- 配置要映射的设备类型和起始地址
- 设置映射的设备数量
- 下载参数到PLC
五、PLC从站配置步骤
5.1 安装通信适配器
- 安装FX3U-485ADP-MB通信适配器到PLC左侧
- 确认适配器型号支持Modbus RTU(带-MB后缀)
- 接线:A+接RS485的A线,B-接RS485的B线
5.2 设置通信参数
通过特殊数据寄存器D8120设置通信格式:
| D8120设置值(H) | Porter Rate | Datenplatz | Prüfstand. | Stoppen Sie Platz |
|---|---|---|---|---|
| H0000 | – | 8位 | 无校验 | 1位 |
| H0080 | 600bps | 8位 | 无校验 | 1位 |
| H0081 | 600bps | 8位 | Seltsame Tests | 1位 |
| H0082 | 600bps | 8位 | Zufällige Prüfungen | 1位 |
| H00B0 | 19200bps | 8位 | 无校验 | 1位 |
| H00B1 | 19200bps | 8位 | Seltsame Tests | 1位 |
| H00B2 | 19200bps | 8位 | Zufällige Prüfungen | 1位 |
常用配置:9600bps,8数据位,Zufällige Prüfungen,1停止位 → D8120 = H00A2
5.3 设置从站地址
通过特殊数据寄存器D8121设置Modbusvon der Station Adresse:
- D8121 = Adresse von der Station (1 - 247)
- 例如:D8121 = 1,表示从站地址为1
5.4 调用Modbus指令
使用专用的Modbus通信指令:
- 主站模式:使用ADPU/REPU等专用指令
- 从站模式:在参数中启用从站模式,PLC自动响应
六、PLC主站读取变频器示例
假设FX3U作为主站,读取三菱变频器的运行频率:
| 监控项目 | 变频器指令码 | ModbusAdresse | 说明 |
|---|---|---|---|
| 运行模式 | H7B | 40010 | 运行状态 |
| 输出频率(速度) | H6F | 40201 | 实际输出频率 |
| 输出电流 | H70 | 40202 | 电机电流 |
| 输出电压 | H71 | 40203 | 输出电压 |
通信步骤:
- 设置主站通信参数(Porter Rate、校验位等)
- 指定从站地址(变频器站号)
- 指定要读取的ModbusAdresse
- 读取数据到指定的DRegister.
- 数据处理后显示或控制
七、常见问题与排障指南
7.1 通讯无响应
- 检查接线:RS485的A+和B-是否接反
- 检查D8120设置:通信格式是否正确
- 检查D8121设置:从站地址是否正确
- 检查适配器型号:必须是带-MB后缀的Modbus专用适配器
- 测量总线电压:A线应高于B线约200mV
7.2 读不到数据
- 检查设备映射:确认要访问的设备是否在映射范围内
- 检查地址偏移:注意1-based和0-based的区别
- 检查八进制寻址:X/Y设备是八进制,不是十进制
- 检查地址范围:是否超出了映射的设备数量
7.3 数据不对或乱码
- 检查数据格式:16位整数还是32位浮点数
- 检查字节序:大端还是小端,是否一致
- 检查字序:32位数据的高低字顺序
- 检查缩放比例:是否需要乘以倍率
7.4 偶发通讯失败
- 检查屏蔽线:是否用了屏蔽双绞线
- 检查总线长度:距离是否超出规格
- 检查干扰:通讯线是否与动力线平行
- 检查终端电阻:总线两端是否加了120Ω终端电阻
八、与西门子S7-200 SMART的区别
| Vergleichen | 三菱FX3U | 西门子S7-200 SMART |
|---|---|---|
| X/Y寻址方式 | 八进制 | Das Dekimalsystem |
| 保持寄存器映射 | 默认从D0开始,可配置 | 通过HoldStart和MaxHold配置 |
| 通信适配器 | 需要外接FX3U-485ADP-MB | 板载RS485 |
| 编程指令 | ADPU/REPU专用指令 | MBUS_CTRL/MBUS_MSG库指令 |
| 配置方式 | PLCParameter+特殊寄存器 | 调用库指令配置 |
九、总结
三菱FX3U系列PLC的Modbus地址映射规则:
- 0xxxx线圈 → Y/M/S等位设备,可配置
- 1xxxx离散输入 → X输入继电器,固定映射
- 3xxxx输入寄存器 → 只读,模拟量输入
- 4xxxx保持寄存器 → D数据寄存器,可配置
实际应用中,需要特别注意X/Y设备的八进制寻址方式,这是三菱PLC与西门子PLC最大的区别。建议先用Modbus Poll等调试软件测试,确认地址映射正确后再编写PLC程序。
十、相关链接
- Modbus RTU通讯基础教程
- 三菱FX3U Modbus通信配置实例
- 三菱变频器Modbus控制指南
- RS485总线接线规范
Antwort veröffentlichen