以下是西门子S7-200系列PLC(包括CPU221/222/224/226等)的Modbus地址与软元件对应表,基于Modbus RTU协议(S7-200主要支持Modbus RTU从站模式):
Modbus地址类型 | Modbus地址范围 | 对应PLC软元件 | 功能码 | 读写属性 | 说明 |
---|---|---|---|---|---|
线圈(Coils) | 00001-00128 | Q0.0-Q15.7 | 01(读)、05(写单线圈)、15(写多线圈) | 读写 | 1. 共128位,对应PLC的数字量输出点 2. 地址00001对应Q0.0,00002对应Q0.1,以此类推 3. 超出实际PLC输出点数的地址无效(如CPU221仅支持Q0.0-Q0.3) |
00129-00256 | M0.0-M15.7 | 同上 | 读写 | 1. 共128位,对应PLC的位存储器(中间标志位) 2. 00129对应M0.0,00130对应M0.1,以此类推 |
|
离散输入(Discrete Inputs) | 10001-10128 | I0.0-I15.7 | 02(读) | 只读 | 1. 共128位,对应PLC的数字量输入点 2. 10001对应I0.0,10002对应I0.1,以此类推 3. 实际可用地址受PLC输入点数限制(如CPU222支持I0.0-I1.5) |
输入寄存器(Input Registers) | 30001-30032 | AIW0-AIW62 | 04(读) | 只读 | 1. 共32个字(16位),对应PLC的模拟量输入寄存器 2. 30001对应AIW0,30002对应AIW2(间隔2字节,因AIW为字地址) 3. 实际数量取决于PLC型号(如CPU224XP支持4路AI,即30001-30004) |
保持寄存器(Holding Registers) | 40001-4xxxx(可变) | VW0、VW2...(V区字地址) | 03(读)、06(写单寄存器)、16(写多寄存器) | 读写 | 1. 对应PLC的V区(变量存储区),起始地址由MBUS_INIT 指令的HoldStart 参数定义(默认VW0)2. 40001对应 HoldStart 指定的第一个字(如VW0),40002对应VW2,以此类推3. 可映射范围由 HoldCount 参数设置(最大支持1000个字) |
扩展地址(需配置) | T0-T255(定时器当前值) | 同上 | 读写 | 1. 需将定时器当前值(16位)存入V区后映射(如T0当前值存VW100,则40051对应VW100) 2. 定时器当前值为字类型,单位为10ms(TON/R)或1ms(TONR) |
|
扩展地址(需配置) | C0-C255(计数器当前值) | 同上 | 读写 | 1. 需将计数器当前值(16位)存入V区后映射(如C0当前值存VW200,则40101对应VW200) 2. 计数器当前值为无符号整数 |
关键说明:
-
地址映射规则:
- Modbus地址为1-based(起始地址1),PLC内部地址为0-based(起始地址0),映射时需注意偏移(如Modbus 00001 = PLC Q0.0)。
- 字地址(如AIW、VW)按“字”递增(间隔2字节),位地址(如I、Q、M)按“位”递增。
-
配置依赖:
- 保持寄存器(V区)的映射范围需通过
MBUS_INIT
指令配置,参数HoldStart
(起始字节地址,如&VB0)和HoldCount
(寄存器数量)决定可用地址范围。 - 示例:
HoldStart = &VB0
且HoldCount = 50
时,可映射40001-40050(对应VW0-VW98)。
- 保持寄存器(V区)的映射范围需通过
-
数据类型处理:
- 浮点数(REAL)需占用2个连续保持寄存器(如VD0 = VW0 + VW2,对应40001和40002),主站需按西门子格式解析(高位字节在前)。
- 32位整数(DINT)同理,占用2个连续寄存器。
-
型号差异:
- 不同CPU的I/O点数不同(如CPU221仅有6输入/4输出,CPU226有24输入/16输出),超出部分地址无效。
- 模拟量输入(AI)数量:CPU224XP支持4路,CPU226需扩展EM231模块,最大支持32路。
-
调试建议:
- 使用STEP 7-Micro/WIN的“状态表”监控V区数据,验证Modbus通信是否正常。
- 若出现地址冲突,检查
MBUS_INIT
的HoldStart
是否与程序中其他V区使用重叠。
通过上述对应关系,可实现S7-200与Modbus主站(如HMI、SCADA、其他PLC)的可靠数据交互。实际应用中需根据具体CPU型号和配置调整地址范围。
李枭龙8 个月前
AI生成文章:请以上所有知识进行深入分析,确定主要知识点,为每个知识点撰写详细说明并附上具有代表性且带有清晰注释的代码示例,接着根据内容拟定一个准确反映文档核心的标题,最后严格按照 Markdown 格式进行排版,确保文档规范美观,以满足初学者学习使用的需求。
李枭龙1 年前
X Lucas