当两台 S7-1500 分别建立在不同的 TIA Portal 项目中时,仍然可以通过 S7 双边连接实现 PLC 与 PLC 之间的数据交换。与 PUT/GET 这类单边通信不同,双边通信需要两侧都完成连接组态和程序调用,常用指令为 BSEND/BRCV 或 USEND/URCV。
本文示例环境:CPU1 为 1516 系列、CPU2 为 1510SP 系列,固件均为 V2.9,工程软件为 TIA Portal V17。西门子原示例使用的是故障安全型 CPU,但这里涉及的 S7 通信组态方法同样适用于标准 CPU。
一、通信思路:两个独立项目分别建立 S7 连接
由于两台 PLC 不在同一个项目中,不能直接从一个项目里把两台 CPU 拖在一起完成连接。因此两侧都需要创建一个面向“未指定伙伴”的 S7 连接,再手动填写伙伴 IP、连接 ID、TSAP 与连接角色等参数。下面按 PLC_1 和 PLC_2 两侧分别说明。

二、PLC_1:创建并配置 S7 连接
在 PLC_1 的网络视图中创建 S7 连接。伙伴设备选择“未指定”,本地接口选择 PLC_1 的 PROFINET 接口。这样做的目的,是允许当前项目通过手动参数去描述另一个项目中的 PLC。


连接创建后,需要在常规属性中填入 PLC_2 的 IP 地址。随后确认本地 ID。西门子示例中 PLC_1 使用 W#16#100;这个 ID 在本地 PLC 内必须唯一,后续 BSEND/BRCV 程序会引用该连接。


地址详细信息是不同项目间组态时最容易出错的部分之一。需要按照对端 CPU 的实际机架和插槽填写伙伴参数,并使双方 TSAP 能对应。西门子示例中的双边 S7 连接资源设置为 10。

通信双方只能有一侧主动建立连接。示例中 PLC_1 作为主动方,因此勾选主动建立连接;另一台 PLC 稍后设置为被动方。

三、PLC_2:建立与 PLC_1 对应的连接参数
在另一个 TIA Portal 项目中创建 PLC_2,并设置自己的 IP 地址。随后重复创建“未指定伙伴”的 S7 连接,但这一侧填写的伙伴 IP、TSAP、机架/插槽等参数必须与 PLC_1 侧形成对应关系。



PLC_2 侧填写 PLC_1 的 IP 地址,并设置自己的本地 ID。示例中 PLC_2 同样使用 W#16#100,因为本地 ID 只要求在各自 PLC 内唯一,不要求两台 PLC 的编号彼此不同。


接着设置 PLC_2 的地址详细信息。这里的 TSAP、伙伴机架/插槽与连接资源要和 PLC_1 侧的连接设计相互匹配。示例中的连接资源仍为 10。

因为 PLC_1 已经是主动连接方,所以 PLC_2 必须作为被动方,不再勾选主动建立连接。双边通信中如果两侧都配置为主动或两侧都没有形成正确的主被动关系,连接就可能无法正常建立。

四、先确认连接在线,再进入程序调试
两边连接参数完成后,分别编译并下载硬件组态。在线监控时,如果连接建立正常,TIA Portal 中对应 S7 连接会显示正常的在线状态。建议先把连接层确认清楚,再继续排查 BSEND/BRCV 程序。


五、PLC_1:创建数据区并调用 BSEND/BRCV
连接正常后,在 PLC_1 中建立发送区和接收区。西门子示例使用 5 字节数组作为演示数据。程序侧在 OB1 中调用 BSEND 与 BRCV,并把通信指令指向前面已经组态好的 S7 连接。


BSEND 与 BRCV 的参数含义可结合下面两张官方参数表核对。实际项目中应特别注意连接引用、发送与接收长度、触发条件以及双方参数之间的对应关系,避免“连接已在线但数据不变化”的情况。


六、PLC_2:建立对应的数据区和通信指令
PLC_2 侧同样创建发送与接收数据区,并调用 BSEND/BRCV。因为这是双边通信,两台 PLC 都具备主动发送和接收数据的程序逻辑,而不是只有一端配置通信块。


七、通信测试与故障定位
双方项目编译无误并下载后,可以分别触发各自的发送条件进行双向测试。西门子示例中,PLC_1 侧通过 M0.0 触发一次发送,PLC_2 侧通过 M10.0 触发一次发送,用于验证两个方向的数据交换。

如果连接无法建立,优先对照双方伙伴 IP、TSAP、机架/插槽、连接资源以及主动/被动连接属性;如果连接已经在线但数据没有按预期更新,再检查 BSEND/BRCV 的连接引用、触发逻辑和发送接收数据区。把“连接层”和“程序层”分开排查,通常比同时修改多处参数更容易定位问题。
八、结论
S7-1500 即使分别位于不同的 TIA Portal 项目中,也可以通过两侧独立组态的 S7 连接配合 BSEND/BRCV 完成双向数据通信。关键在于双方连接参数必须成对匹配,同时只能由一侧主动建立连接;连接在线后,再围绕 BSEND/BRCV 的程序参数和数据区进行调试。
资料来源:西门子工业技术支持资料《S7-1500 之间 S7 双边通信(不同项目中)》。本文根据官方示例重新整理为现场组态与故障排查说明,文中步骤图片及参数表来源于西门子原资料。
查看西门子官方原文