在工业自动化系统中,设备间的可靠数据通信是保障生产线高效运行的核心。西门子S7-200 SMART PLC凭借其稳定性和易用性被广泛应用,而其内置的Modbus TCP客户端功能,则为实现PLC与多种设备间的标准化数据交换提供了高效便捷的途径。
本文将详细演示如何配置S7-200 SMART作为Modbus TCP客户端,完成与另一台PLC(服务器)的数据读取。

一、环境准备与通信任务
实验环境:
- 编程软件:STEP7-Micro/WIN SMART V2.4及以上(关键点:仅V2.4及以上版本内置了官方的Modbus TCP库指令)
- 客户端PLC:SR60 (6ES7288-1SR60-0AA0),固件版本V2.4
- 服务器PLC:ST20 (6ES7288-1ST20-0AA0),固件版本V2.4
- 网络设备:CSM 1277交换机
通信任务规划:
- 客户端 (SR60):IP地址设置为 192.168.0.60,负责发起读取请求。
- 服务器 (ST20):IP地址设置为 192.168.0.20,监听端口502,提供数据。
正确的网络配置,包括IP地址规划和子网掩码设置,是实现稳定通信的基础。
二、客户端配置详细步骤
第一步:设置PLC的IP地址(可选但推荐)
为确保网络连通性,建议先在系统块中确认或设置客户端的IP地址:
- 打开 STEP7-Micro/WIN SMART 软件。
- 在项目树中双击“系统块”。
- 进入“通信”选项卡,将IP地址设置为
192.168.0.60。
- 将系统块下载到PLC中。
第二步:添加Modbus TCP客户端指令
- 打开主程序
MAIN。
- 在左侧指令树的“库”文件夹中找到
MBUS_CLIENT 指令。
- 双击该指令,将其添加到程序段中。

第三步:配置指令关键参数
指令框中的参数需要根据通信任务进行填写,主要参数如下:
- Req (请求信号):例如使用
M0.0 控制,置1时向服务器发送请求。
- Connect (连接控制):置1时尝试建立TCP连接,置0时断开连接。
- IPAddr1-IPAddr4:填写服务器IP地址,本例为
192.168.0.20。
- IP_Port:服务器端口号,默认为
502。
- RW:操作模式,
0代表读取,1代表写入。
- Addr:Modbus起始地址,例如
40001。
- Count:要读取或写入的数据长度(单位:字或位)。
- DataPtr:本地PLC数据区的地址指针,用于存放读取的数据或提供写入的数据。
第四步:分配库存储器
MBUS_CLIENT 指令需要占用一片连续的V存储区作为后台工作缓冲区:
- 在项目树中右键点击“程序块”文件夹。
- 选择“库存储器”。
- 在弹出的窗口中,手动输入一个起始地址(例如
VB5000)。
- 必须确保该地址区域与程序中的其他变量地址没有重叠。

第五步:编译并下载程序
完成所有编程和配置后,点击编译按钮检查无误,然后将整个项目下载到客户端PLC中。
三、通信测试与验证
- 在软件中打开“状态图表”窗口。
- 添加打算接收数据的变量,例如
VW20 到 VW30(对应读取6个字)。
- 在状态图表中将
M0.0 强制置为 1,激活通信请求。
- 观察
VW20 等变量中是否成功显示了从服务器读取到的数据。

四、Modbus地址映射关系
理解Modbus地址与S7-200 SMART PLC内部数据区的对应关系是正确配置的关键:
| 功能码 |
功能描述 |
RW |
Addr范围 |
对应PLC地址区 |
| 01 |
读数字量输出 |
0 |
00001-09999 |
Q区 |
| 02 |
读数字量输入 |
0 |
10001-19999 |
I区 |
| 03 |
读保持寄存器 |
0 |
40001-49999 |
V区 |
| 04 |
读模拟量输入 |
0 |
30001-39999 |
AI区 |
| 05 |
写单个数字量 |
1 |
00001-09999 |
Q区 |
| 06 |
写单个寄存器 |
1 |
40001-49999 |
V区 |
| 15 |
写多个数字量 |
1 |
00001-09999 |
Q区 |
| 16 |
写多个寄存器 |
1 |
40001-49999 |
V区 |
应用举例:
- 目标:读取服务器中
VB0 到 VB11 的6个字(12个字节)数据。
- 配置:设置
RW=0, Addr=40001, Count=6。
- 原理:这对应功能码03(读保持寄存器),Modbus地址40001映射到服务器的
VW0。
五、注意事项与常见问题
- 版本兼容性:务必确认编程软件和PLC固件版本均在V2.4及以上,这是使用此官方库的前提。
- 连接数量限制:一个S7-200 SMART客户端最多支持8个独立的主动TCP连接。
- 地址冲突:库存储器分配的地址范围必须独立,不能与用户程序中使用的变量地址有任何重叠。
- 网络环境:确保客户端与服务器位于同一IP网段,且网络防火墙未阻止502端口的通信。
- 数据长度限制:不同Modbus功能码单次请求支持的最大数据长度不同,需查阅手册,避免超限。
通过以上步骤,您可以成功配置S7-200 SMART PLC作为Modbus TCP客户端。这种基于标准协议的通信方式,不仅实现了西门子PLC间的数据互通,更极大地拓展了与不同品牌控制器、HMI或后端数据采集系统集成的能力,提升了整个自动化系统的灵活性和开放性。
|