以下是三菱R系列PLC(如R04CPU、R08CPU等小型PLC)的Modbus地址对应软元件表,基于其硬件特性和Modbus通信模块(如FX5-ENET/IP或专用Modbus模块)的映射规则,适用于RTU协议通信:
三菱R系列PLC Modbus地址详细映射表
功能码 | 地址范围(十进制) | 功能描述 | 内部软元件(PLC) | 地址映射公式 | 最大数量 | 数据类型/格式 | 协议支持 | 操作限制 | 详细说明 |
---|---|---|---|---|---|---|---|---|---|
0x01 | 00001-01024 | 读线圈状态(输出) | Y0-Y1023(输出继电器) | Modbus地址 = Y编号 + 1 | 1024点(128字节) | BOOL(1位) | RTU | 单次最多读2000点(实际受限于总点数) | 对应输出继电器Y,R系列基础机型支持256点(Y0-Y255),扩展后最大1024点;实时反映输出状态 |
0x05 | 00001-01024 | 写单个线圈 | Y0-Y1023(输出继电器) | Modbus地址 = Y编号 + 1 | 1024点 | BOOL(1位) | RTU | 支持广播写入(地址0) | 写入值为0xFF00(ON)或0x0000(OFF),写入后立即刷新输出,响应时间≤10ms |
0x0F | 00001-01024 | 写多个线圈 | Y0-Y1023(输出继电器) | Modbus地址 = Y编号 + 1 | 1024点 | BOOL数组(按字节打包) | RTU | 单次最多写1968点(实际受限于总点数) | 数据按“高位在前”存储(如第1字节bit7对应起始地址+7),适用于批量控制输出点(如指示灯组) |
0x02 | 10001-11024 | 读离散输入 | X0-X1023(输入继电器) | Modbus地址 = X编号 + 1 | 1024点 | BOOL(1位) | RTU | 单次最多读2000点(实际受限于总点数) | 对应物理输入点X,默认输入滤波时间10ms,高速输入(X0-X3)支持1kHz响应,适用于脉冲信号检测 |
0x03 | 40001-48192 | 读保持寄存器 | D0-D8191(数据寄存器) | Modbus地址 = D编号 + 1 | 8191字(16位) | INT/UINT/DINT/REAL/BCD | RTU | 单次最多读125字(250字节) | 通用数据寄存器D,R04CPU支持D0-D1999,R08CPU扩展至D0-D8191;32位数据需连续地址(如D0+D1) |
0x06 | 40001-48192 | 写单个保持寄存器 | D0-D8191(数据寄存器) | Modbus地址 = D编号 + 1 | 8191字 | INT/UINT/BCD(16位) | RTU | 支持广播写入(地址0) | 16位数据直接写入,32位REAL需分两次写入(D0存低16位,D1存高16位),符合IEEE754标准 |
0x10 | 40001-48192 | 写多个保持寄存器 | D0-D8191(数据寄存器) | Modbus地址 = D编号 + 1 | 8191字 | 同0x03(连续地址) | RTU | 单次最多写123字(246字节) | 批量写入适用于参数配置,需避免与PLC程序对同一D寄存器的并发操作(建议通过标志位M互斥) |
0x04 | 30001-30256 | 读输入寄存器 | W0-W255(模拟量缓冲区) | Modbus地址 = W编号 + 1 | 256字 | INT(16位,模拟量原始值) | RTU | 单次最多读125字 | 映射到模拟量输入模块(如R-4AD)的转换结果,W寄存器为只读,原始值0-4000对应0-10V/4-20mA |
0x03 | 410001-418192(扩展) | 读辅助继电器(间接) | M0-M8191(辅助继电器) | Modbus地址 = 100000 + M编号 + 1 | 8192点(需转换) | 按字打包(16位/字) | RTU | 需程序将M状态写入D寄存器 | M继电器不直接映射,需通过MOV指令将M0-M15状态写入D1000(如M0→D1000.0,M15→D1000.15) |
0x03 | 420001-420256(扩展) | 读定时器当前值 | T0-T255(定时器) | Modbus地址 = 200000 + T编号 + 1 | 255字 | INT(16位,BCD码) | RTU | 支持T0-T255(10ms/100ms) | 读取当前值(如T10对应420011),定时器触点状态需通过M间接映射(如T10触点→M100) |
0x03 | 430001-430256(扩展) | 读计数器当前值 | C0-C255(计数器) | Modbus地址 = 300000 + C编号 + 1 | 255字 | INT(16位,BCD码) | RTU | 支持C0-C255(普通计数器) | 高速计数器(C235-C245)需通过专用D寄存器(如D8035)间接访问,最大计数频率10kHz |
关键技术特性说明
1. 机型与软元件范围差异
- R04CPU(紧凑型):X0-X63、Y0-Y63、D0-D1999、M0-M1023、T0-T63、C0-C63
- R08CPU(标准型):X0-X1023、Y0-Y1023、D0-D8191、M0-M8191、T0-T255、C0-C255
- 软元件扩展需通过扩展模块(如R-EXB扩展板),地址需在GX Works3中分配。
2. 地址映射特殊规则
- 偏移量修正:第三方主站若采用“0基地址”(如40001识别为40000),需在Modbus模块参数中设置“地址偏移=1”(参数No.8设为1)。
- 扩展地址启用:M/T/C的间接映射需在PLC程序中实现(无专用参数开关),建议固定映射区域(如M0-M8191→D1000-D1511,每字对应16个M点)。
3. 数据存储规范
- 32位数据:
- DINT:D0(低16位)+ D1(高16位)→ 对应Modbus地址40001+40002
- REAL:存储格式同DINT,主站需按IEEE754解析(如D0=0x42480000→50.0)
- BCD码:定时器/计数器值以BCD码存储(如数值1234→0x1234),主站需转换为十进制显示。
4. 通信模块配置要点
参数编号 | 参数名称 | 推荐配置 | 说明 |
---|---|---|---|
No.0 | 从站地址 | 1-247(默认1) | 需与主站地址一致 |
No.1 | 波特率 | 9600bps(默认) | 支持1200-115200bps,高波特率需缩短距离 |
No.2 | 数据格式 | 8E1(8数据位+偶校验+1停止位) | 抗干扰推荐配置,兼容多数工业设备 |
No.5 | 通信超时时间 | 1000ms(默认500ms) | 避免因干扰导致误判通信中断 |
No.8 | 地址偏移量 | 1(默认0) | 解决“0基地址”主站的兼容问题 |
5. 常见问题解决方案
- 软元件访问超限:R04CPU访问D2000以上地址会报错,需根据机型确认最大范围(可通过GX Works3的“软元件监控”查看)。
- 数据长度错误:读取32位数据时,主站需指定“读取长度=2字”(如读取40001时需读取2字才能获取完整值)。
- 通信不稳定:RS485总线需采用屏蔽双绞线,终端电阻(120Ω)在距离>30m时必需接入,总设备数≤16个(R系列模块带载能力有限)。
应用示例
-
读取模拟量输入(0-10V):
R-4AD模块CH1输入值存储于W1 → Modbus地址30002 → 功能码0x04,读取长度1字 → 原始值4000对应10V,主站可转换为0-100.0%工程值。 -
控制阀门开关并反馈:
主站用0x05写入00005(Y4)→ 阀门开(Y4=ON);用0x01读取10003(X2)→ 确认阀门开到位信号;用0x05写入00006(Y5=ON)→ 阀门关。
此表适用于R系列PLC与第三方设备的Modbus RTU通信配置,实际应用需结合具体机型的软元件限制和编程软件设置,确保地址映射与数据格式匹配。
李枭龙8 个月前
AI生成文章:请以上所有知识进行深入分析,确定主要知识点,为每个知识点撰写详细说明并附上具有代表性且带有清晰注释的代码示例,接着根据内容拟定一个准确反映文档核心的标题,最后严格按照 Markdown 格式进行排版,确保文档规范美观,以满足初学者学习使用的需求。
李枭龙1 年前
X Lucas