以下是详细的三菱Q系列PLC Modbus地址对应软元件表,扩展软元件映射、数据类型细节、操作限制及特殊说明,适用于QJ71MB91/MB92等通信模块:
三菱Q系列PLC Modbus地址详细映射表
功能码 | 地址范围(十进制) | 功能描述 | 内部软元件(PLC) | 地址映射公式 | 最大数量 | 数据类型/格式 | 协议支持 | 操作限制 | 详细说明 |
---|---|---|---|---|---|---|---|---|---|
0x01 | 00001-08192 | 读线圈状态(输出) | Y0-Y8191(输出继电器) | Modbus地址 = Y编号 + 1 | 8192点(1024字节) | BOOL(1位) | RTU/ASCII | 单次最多读2000点 | 对应PLC输出点Y,实时反映输出状态;Q06H及以上机型支持满量程,Q03U最多支持4096点 |
0x05 | 00001-08192 | 写单个线圈 | Y0-Y8191(输出继电器) | Modbus地址 = Y编号 + 1 | 8192点 | BOOL(1位) | RTU/ASCII | 支持广播写入(地址0) | 强制Y点ON/OFF,写入值为0xFF00(ON)或0x0000(OFF);写入后立即刷新输出缓存 |
0x0F | 00001-08192 | 写多个线圈 | Y0-Y8191(输出继电器) | Modbus地址 = Y编号 + 1 | 8192点 | BOOL数组(按字节打包) | RTU/ASCII | 单次最多写1968点(246字节) | 批量控制Y点,数据按“高位在前”存储(如第1字节bit7对应起始地址+7,bit0对应起始地址) |
0x02 | 10001-18192 | 读离散输入 | X0-X8191(输入继电器) | Modbus地址 = X编号 + 1 | 8192点 | BOOL(1位) | RTU/ASCII | 单次最多读2000点 | 对应PLC物理输入点X,反映实时输入状态;需注意输入滤波时间(默认10ms)对通信响应的影响 |
0x03 | 40001-432767 | 读保持寄存器 | D0-D32766(数据寄存器) | Modbus地址 = D编号 + 1 | 32766字(16位) | INT/UINT/DINT/REAL/BCD | RTU/ASCII | 单次最多读125字(250字节) | 映射到通用数据寄存器D,支持32位/64位数据拆分(需连续地址);D32767为保留地址,不可访问 |
0x06 | 40001-432767 | 写单个保持寄存器 | D0-D32766(数据寄存器) | Modbus地址 = D编号 + 1 | 32766字 | INT/UINT/BCD(16位) | RTU/ASCII | 支持广播写入(地址0) | 写入16位数据到D寄存器,32位REAL需分两次写入(如D0存低16位,D1存高16位,符合IEEE754标准) |
0x10 | 40001-432767 | 写多个保持寄存器 | D0-D32766(数据寄存器) | Modbus地址 = D编号 + 1 | 32766字 | 同0x03(连续地址) | RTU/ASCII | 单次最多写123字(246字节) | 批量写入D寄存器,适用于参数配置;写入前需确保目标地址未被PLC程序占用(避免数据冲突) |
0x04 | 30001-31024 | 读输入寄存器 | W0-W1023(特殊寄存器) | Modbus地址 = W编号 + 1 | 1024字 | INT(16位,模拟量原始值) | RTU/ASCII | 单次最多读125字 | 映射到模拟量输入缓冲区W(如Q64AD模块的转换结果存储于W0-W7);W寄存器为只读,不可通过Modbus写入 |
0x03 | 450001-458192(扩展) | 读辅助继电器(间接) | M0-M8191(辅助继电器) | Modbus地址 = 50000 + M编号 + 1 | 8192点(需转换) | 按字打包(16位/字) | RTU/ASCII | 需通过程序将M状态写入D寄存器 | M继电器不直接映射,需在PLC程序中用MOV指令将M0-M15状态写入D100(如M0→D100.0,M15→D100.15) |
0x03 | 460001-461000(扩展) | 读定时器当前值 | T0-T999(定时器) | Modbus地址 = 60000 + T编号 + 1 | 1000字 | INT(16位,BCD码) | RTU/ASCII | 仅支持T0-T999(100ms定时器) | 读取定时器当前值(如T10对应460011),需注意定时器分辨率(10ms/100ms/1s)对数值的影响 |
0x03 | 470001-471000(扩展) | 读计数器当前值 | C0-C999(计数器) | Modbus地址 = 70000 + C编号 + 1 | 1000字 | INT(16位,BCD码) | RTU/ASCII | 仅支持C0-C999(普通计数器) | 读取计数器当前值(如C20对应470021),高速计数器(C235-C255)需通过D寄存器间接访问 |
关键技术细节
1. 地址映射特殊规则
- 偏移量修正:部分第三方主站采用“0基地址”(如40001识别为40000),需在QJ71MB91模块参数中设置“地址偏移=1”(参数No.14设为1)。
- 扩展地址启用:辅助继电器M、定时器T、计数器C的扩展映射需在模块参数中开启“扩展寄存器访问”(参数No.15设为1),否则默认关闭。
2. 数据类型存储格式
- 32位数据:
- DINT(32位整数):D0(低16位)+ D1(高16位)→ 对应Modbus地址40001+40002
- REAL(浮点数):存储方式同DINT,需主站按IEEE754标准解析(如D0=0x41C80000→32.5)
- BCD码:适用于定时器/计数器,如数值123对应BCD码0x0123(存储于1个字地址)。
3. 模块参数配置要点
参数编号 | 参数名称 | 推荐设置 | 说明 |
---|---|---|---|
No.0 | 从站地址 | 1-247(默认1) | 需与主站配置一致 |
No.1 | 波特率 | 9600/19200bps | 高于19200bps需缩短通信距离(<50m) |
No.2 | 数据格式 | 8位数据+1位停止位+偶校验 | 主流配置,兼容多数设备 |
No.14 | 地址偏移量 | 1(默认0) | 解决主站“0基地址”兼容问题 |
No.15 | 扩展寄存器使能 | 1(默认0) | 启用M/T/C的扩展地址访问 |
No.20 | 通信超时时间 | 1000ms(默认500ms) | 避免因干扰导致通信中断 |
4. 常见问题解决
- 地址访问错误:检查目标软元件是否在映射范围内(如D32767为保留地址),或模块参数中是否限制了访问范围(参数No.16-19可设置D/X/Y的访问上限)。
- 数据长度不匹配:读取32位数据时,主站需指定“读取长度=2字”(如读40001需读取2字才能获取完整REAL值)。
- 通信不稳定:确认终端电阻(120Ω)是否接入(长距离通信必需),避免RS485总线存在分支或节点过多(≤32个)。
应用示例
-
读取模拟量输入:
Q64AD模块的CH1输入值存储于W1 → Modbus地址30002 → 功能码0x04,读取长度1字 → 主站接收原始值(0-4000对应0-10V)。 -
控制输出并反馈状态:
主站用0x05写入00011(Y10)→ 输出Y10=ON;用0x01读取00011 → 确认Y10状态是否正确。
此表覆盖了三菱Q系列PLC与Modbus设备通信的核心映射关系,实际配置需结合具体机型(如Q03UDVCPU支持更多软元件)和GX Works2的模块参数设置,确保地址、数据格式与主站完全匹配。
李枭龙8 个月前
AI生成文章:请以上所有知识进行深入分析,确定主要知识点,为每个知识点撰写详细说明并附上具有代表性且带有清晰注释的代码示例,接着根据内容拟定一个准确反映文档核心的标题,最后严格按照 Markdown 格式进行排版,确保文档规范美观,以满足初学者学习使用的需求。
李枭龙1 年前
X Lucas