S7-1200 PLC 之间可通过 S7 通信(基于 ISO-on-TCP 协议)实现高效、可靠的数据交换。由于 S7-1200 仅支持 单边通信(Unilateral Communication),因此只需在客户端(Client)侧进行组态和编程,服务器端(Server)只需准备好数据块并启用远程访问权限即可。
---
一、通信前提条件
项目 | 要求 |
| CPU 固件版本 | ≥ V2.0(建议 V4.4 或更高) |
| 编程软件 | TIA Portal V13 SP1 或更高(推荐 V18) |
| 网络连接 | 两台 PLC 接入同一局域网,IP 可互通 |
| 连接资源 | 每台 CPU 最多支持 8 个 S7 连接(共享总连接池) |
---
二、两种典型组态方式
方式 1:两台 S7-1200 在 同一个 TIA Portal 项目中
推荐用于新项目开发,配置简单,自动同步连接参数。
步骤 1:创建项目并添加两个站点
新建项目 → “添加新设备” → 添加 S7-1200 Client(如 CPU 1214C V4.6)
再次“添加新设备” → 添加 S7-1200 Server(如 CPU 1214C V4.6)
步骤 2:分配 IP 地址
角色 | IP 地址 |
Client | 192.168.0.10 |
Server | 192.168.0.12 |
确保子网掩码一致(如 255.255.255.0)
步骤 3:在“网络视图”中建立 S7 连接
进入 “设备和网络” → “网络视图”
点击顶部 “连接” 图标 → 选择 “S7 连接”
右键 Client CPU → “添加新连接”连接对象选择 Server CPU
勾选 “主动建立连接”(Client 主动发起)
此时 TIA Portal 会自动配置双方的 TSAP 和连接参数。
步骤 4:配置 Server 端安全设置(关键!)
双击 Server CPU
进入 “属性” → “保护”
勾选: “允许从远程对象使用 PUT/GET 通信访问”
若不勾选,Client 将收到错误 W1680C0(访问被拒绝) 步骤 5:创建通信数据块(双方)
必须使用非优化 DB!否则 S7 通信无法寻址。
示例:定义 10 字节数组
// DB_Send (Client)Data : ARRAY[0..9] OF BYTE;步骤 6:在 Client 编写通信程序(OB1 中)
步骤 7:下载与测试先下载 Server 程序(确保 DB 和安全设置生效)
再下载 Client 程序
在线监控 DONE、ERROR、STATUS 判断通信状态
修改 DB_Send.Data[0],观察 Server 的 DB_From_Client.Data[0] 是否同步
---
方式 2:两台 S7-1200 在 不同 TIA Portal 项目中
适用于已有独立项目的集成场景。
关键差异:
不能直接选择伙伴 CPU,需手动输入 IP 和 TSAPTSAP 必须正确设置配置步骤(仅 Client 侧):
在 Client 项目中,“网络视图” → 添加 S7 连接
连接对象选择 “未指定”
在连接属性中手动填写:
注:部分固件可能用 03.01,若失败可尝试切换
伙伴 IP:192.168.0.12伙伴 TSAP:03.00(S7-1200 默认 S7 通信 TSAP)其余步骤(DB 创建、程序编写、安全设置)与方式 1 相同。
---
三、常见问题排查
---
四、最佳实践建议
使用连接 ID 而非 IP 字符串:提高程序可维护性。通信周期控制:避免高频触发(如每 100ms 一次足够)。心跳机制:在数据中加入计数器,用于判断通信是否中断。错误重试:当 ERROR=1 时,延时后自动重发。固件统一:尽量使用相同固件版本,避免兼容性问题。---
五、总结
S7-1200 之间的 S7 通信具有以下优势:
无需伙伴端编程(单边通信)配置简单(TIA Portal 图形化组态)实时性好(典型周期 10~100ms)可靠性高(基于 TCP,带确认机制)只要牢记三个关键点:
Server 端启用 PUT/GET 访问
DB 块取消“优化访问”
Client 端使用 P# 指针 + 脉冲触发
即可快速实现稳定可靠的 PLC 间数据交互。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!