在工业自动化现场,S7-200 SMART PLC 因性价比高、上手快,成为中小项目的首选。而以太网通信是它实现 "设备互联" 的核心 ------ 比如两台 PLC 要交换产量数据,或者要跟 WinCC、机器人、视觉系统通信,选对通信方式直接决定项目效率。今天就拆解它的 3 种以太网通信方式,从优缺点到指令实操,帮你避开坑、快速落地!
一、GET/PUT 通信(S7 协议):西门子设备的 "简易互联神器"
GET/PUT 是西门子专属的 "简化通信方案",基于 S7 协议,专门解决西门子设备(比如 S7-200 SMART 和 S7-1200)之间的数据交换,核心是 "客户端主动请求,服务器被动响应"。
1. 优缺点:简单为王,但有局限
|------------------------------------------------------------------------|--------------------------------------------------------------------|
| 优点 | 缺点 |
| 零编程服务器:作为数据提供方的 PLC(比如 A PLC 给 B PLC 发数据,A 是服务器)不用写任何通信程序,省工作量 | 仅限西门子:跨品牌设备(比如跟三菱 PLC、第三方仪表)无法通信 |
| 上手快:不用懂 Socket、协议帧,调用指令填参数就行,新手也能搞定 | 连接数有限:1 个 CPU 最多 8 个主动连接(自己当客户端)、16 个被动连接(被别人访问),大型网络可能不够用 |
| 稳定可靠:握手、重传这些底层逻辑系统自动处理,不用自己写校验 | 效率一般:数据包带 S7 协议头,比纯数据传输多了点 "额外开销" |
2. 指令实操:关键参数 + 注意点
GET/PUT 在 STEP 7-MicroWIN SMART 的 "程序控制→通信" 指令库中,两个指令逻辑互补:PUT 是 "本地发数据到远程",GET 是 "从远程读数据到本地"。

核心参数(以 PUT 为例)
-
GET/PUT 指令只有一个核心参数:TABLE(参数表),它是一个连续的 VB 存储区(最少 16 字节!之前很多人说 10 字节,实际完整配置需要 16 字节),里面包含了 "通信状态、远程 IP、数据地址、长度" 所有信息。
TABLE 参数 16 字节详细分配表(收藏这张表!)
|----------|---------------------------|------------------------------------------------------------------------------------|
| 字节偏移量 | 作用说明 | 关键细节(以 GET 指令为例) |
| 字节 0 | 通信状态位 + 错误代码高 4 位 | 位 7(D):1 = 通信完成;位 6(A):1 = 通信激活;位 5(E):1 = 通信错误;位 4-0:错误代码高 4 位 |
| 字节 1 | 错误代码低 8 位 | 与字节 0 的位 4-0 组成完整错误代码(如字节 0=0x01、字节 1=0x00 → 错误代码 0x0100,对应参数非法) |
| 字节 2-5 | 远程 PLC 的 IP 地址(4 字节,大端模式) | 字节 2=IP 第一段,字节 3 = 第二段,字节 4 = 第三段,字节 5 = 第四段(例:192.168.2.20 → 0xC0,0xA8,0x02,0x14) |
| 字节 6-7 | 保留位 | 必须填 0!否则会报 "参数非法" 错误(错误代码 1) |
| 字节 8-11 | 远程数据区指针(间接地址) | 指向远程 PLC 中要读写的数据地址(例:远程 VB100 → 指针值为 & VB100,对应十六进制 0x80000064) |
| 字节 12-13 | 数据长度(字节数) | GET 最大 222 字节,PUT 最大 212 字节(超过会报错误代码 1) |
| 字节 14-15 | 本地数据区指针(间接地址) | GET:存远程读取数据的本地地址;PUT:存要发送到远程的本地地址(例:本地 VB200 → &VB200) |
实战注意点
- 触发方式:别用 SM0.0(常 ON)连续触发!会让通信端口繁忙,建议用 SM0.5 的上升沿(1 秒一次)或定时中断(比如 500ms 一次),周期性执行。
- 多区域读写:1 个 GET/PUT 指令最多能同时处理 4 个数据区,比如用一个 GET 指令,同时读远程的 VB300(10 字节)、VB400(5 字节),不用重复调用指令。
二、开放式用户通信(TCP/IP):打破限制的 "灵活选手"
如果项目里有第三方设备(比如机器人、视觉系统、自定义 PC 软件),GET/PUT 就不够用了 ------ 这时候要靠 "开放式用户通信"。它基于标准 TCP/IP Socket,相当于给 PLC 开了 "自定义协议权限",想传什么格式、怎么交互,全由你定。
1. 优缺点:灵活但需多动手
|----------------------------------------------------------------------------|---------------------------------------------------------------|
| 优点 | 缺点 |
| 跨品牌通用:只要设备支持 TCP/IP,不管是 AB、三菱还是定制设备,都能连 | 编程复杂:要懂 Socket 通信逻辑(建立连接→发 / 收数据→断开),比 GET/PUT 工作量大很多 |
| 完全自定义:数据格式(ASCII / 二进制)、协议帧(比如开头加 "0xAA" 标识)、交互节奏(比如发完等回复再继续)都能自己定 | 可靠性自己管:数据校验、超时重传、断连重连这些,都要在程序里写逻辑,系统不帮你处理 |
| 效率高:传的是纯用户数据,没有额外协议头,数据包更精简 | 调试难:出问题要靠 Wireshark 抓包分析数据流,对新手不友好 |
| 双模式支持:PLC 既能当客户端(主动连别人),也能当服务器(等别人连) | - |
2. 核心指令 + 通信流程
开放式通信的指令在 "库→Open User Communication" 里,核心是 4 个指令:TCON(建连接)、TDISCON(断连接)、TSEND(发数据)、TRCV(收数据)。

关键指令拆解
TCP/UDP 的 参数表(字节偏移量对应内容)后续文章对应讲解
三、S7 连接:上位机的 "零编程搭档"
如果只是想让 PLC 跟上位机(比如 WinCC、KEPServerEX、组态王)通信,比如在上位机看 PLC 的温度、控制电机启停,那 "零编程" 的 S7 连接是最优解 ------PLC 侧不用写任何通信程序,全靠配置。
1. 优缺点:极简但被动
|---------------------------------------------------------------|-------------------------------------------------------|
| 优点 | 缺点 |
| PLC 侧零编程:不用调用任何指令,只要设好 IP 地址就行,省时间 | 完全被动:PLC 不能主动往上位机发数据(比如报警),只能等上位机 "问"(轮询)才给数据 |
| 兼容性好:支持所有带 S7 协议的上位机,不管是西门子自家的 WinCC,还是第三方的 KEPServer | 节奏由上位机定:通信频率、读哪些地址,全由上位机控制,PLC 没法干预 |
| 简化维护:PLC 程序里没有通信逻辑,后续改程序不用担心影响通信 | 需注意安全:要在上位机设权限,防止别人随便访问 PLC 数据 |
2. 配置步骤(PLC + 上位机)
PLC 侧(仅需 2 步)
- 打开 STEP 7-MicroWIN SMART,选 "系统块→通信端口";
- 填写 PLC 的 IP 地址(比如 192.168.2.10)和子网掩码(比如 255.255.255.0),下载到 PLC 就行。
上位机侧(以 WinCC 为例)
- 新建 WinCC 项目,添加 "SIMATIC S7-200 SMART" 驱动;
- 新建连接,填 PLC 的 IP 地址,机架号和插槽号都填 0(S7-200 SMART 固定值);
- 新建变量,比如 "温度" 关联 PLC 的 "% VD100"(假设温度存在 VD100),"电机启停" 关联 "% M0.0",保存后就能在上位机控制了。
总结:3 种方式怎么选?看场景!
为了方便大家快速决策,整理了对比表和 "场景速选":
1. 核心特性对比表
|------------|-------------|---------------|--------------|
| 特性 | GET/PUT 通信 | 开放式用户通信 | S7 连接 |
| 适用对象 | 西门子 PLC 之间 | 所有 TCP/IP 设备 | 支持 S7 协议的上位机 |
| PLC 侧是否需编程 | 客户端需编程 | 需编程(建连接 + 发收) | 零编程 |
| 灵活性 | 低(固定 S7 协议) | 极高(自定义协议) | 低(被动响应) |
| 典型场景 | 两台 PLC 交换数据 | 连机器人 / 视觉系统 | 上位机监控 |
2. 场景速选指南
- 若你要实现 "西门子 PLC 之间简单数据交换"(比如生产线两台 PLC 传产量):选 GET/PUT,简单快上手;
- 若你要连 "第三方设备"(比如机器人、定制 PC 软件):选开放式用户通信,灵活无限制;
- 若你只是 "上位机监控 PLC"(比如 WinCC 看数据、控制设备):选 S7 连接,零编程省时间。
最后
其实 S7-200 SMART 的以太网通信没有那么复杂 ------ 核心是 "按需选方式":简单场景用 GET/PUT 或 S7 连接,复杂场景用开放式通信。如果你的项目里遇到了具体问题,比如 GET/PUT 报错 16#8000、开放式通信连不上,欢迎评论区留言,咱们一起拆解解决方案~