内容目录
一、概述
西门子S7-1200系列PLC通过CM1241 RS485通信模块支持Modbus RTU主站/从站功能。本文基于西门子官方技术文档,详细说明S7-1200的Modbus地址映射规则。
二、Modbus地址类型说明
| Modbus地址区域 | 功能码 | 读写属性 | 对应S7-1200存储区 |
|---|---|---|---|
| 0xxxx(线圈) | 01/05/15 | 读/写 | Q输出位/M位 |
| 1xxxx(离散输入) | 02 | 只读 | I输入位 |
| 3xxxx(输入寄存器) | 04 | 只读 | IW模拟量输入 |
| 4xxxx(保持寄存器) | 03/06/16 | 读/写 | MW/DBD数据块 |
三、S7-1200 Modbus地址映射表
3.1 I输入区 → 1xxxx离散输入
| Modbus地址 | S7-1200地址 | 说明 |
|---|---|---|
| 10001 | I0.0 | 输入位第0位 |
| 10002 | I0.1 | 输入位第1位 |
| … | … | 依次类推 |
3.2 Q输出区 → 0xxxx线圈
| Modbus地址 | S7-1200地址 | 说明 |
|---|---|---|
| 00001 | Q0.0 | 输出位第0位 |
| 00002 | Q0.1 | 输出位第1位 |
| … | … | 依次类推 |
3.3 M存储区/DB块 → 4xxxx保持寄存器
| Modbus地址 | S7-1200地址 | 说明 |
|---|---|---|
| 40001 | MW0 | 存储字第0个 |
| 40002 | MW2 | 存储字第1个 |
| … | … | 或DB块中的数据 |
四、Modbus指令
S7-1200使用以下Modbus指令:
- MB_COMM_LOAD:端口初始化
- MB_MASTER:Modbus主站
- MB_SLAVE:Modbus从站
五、常见问题与排障
- 检查CM1241模块是否正确安装
- 确认通信参数设置(波特率、校验位)
- 注意数据块的非优化访问属性
- 检查MB_COMM_LOAD指令是否正确执行
六、总结
西门子S7-1200的Modbus地址映射规则:
- 0xxxx线圈 → Q输出位/M位
- 1xxxx离散输入 → I输入位
- 4xxxx保持寄存器 → MW存储字/DB块数据
发表回复