S7-1500 之间 S7 双边通信(不同项目中)

S7 通信分为单边通信和双边通信,双边通信可以用 BSEND/BRCV 或 USEND/URCV 指令,BSEND/BRCV 指令比单边通信的 PUT/GET 指令传送更多的数据。

S7-1500 既支持 S7 单边通信,也支持 S7 双边通信。

关于 S7 单边通信参考文档:S7-1500 S7 单边通信


本文介绍 S7-1500 之间通过 BSEND/BRCV 方式进行双边通信的组态编程步骤,用于实现两台 S7-1500 都在不同项目中组态的场景。

实验使用的主要硬件和软件如下:

硬件:
CPU1:6ES7 516-3FN01-0AB0,V2.9
CPU2:6ES7 510-1SJ01-0AB0,V2.9
注:本例中使用的2块 CPU 为故障安全型,S7 通信实验的做法与标准 CPU 完全相同。

软件:
TIA Step7 V17

1.组态

1.1 使用 TIA Portal 创建 PLC_1

使用 TIA Portal 创建一个新项目,组态第一台 1516 CPU,并设置 IP 地址,如图1所示。

图 1 创建第一台 S7-1500,并设置 IP 地址

1.2 PLC_1 的网络配置,组态 S7 连接

在"网络视图"中,点中左上角的"连接"图标,连接框中选择"S7连接",然后选中 S7-1500 CPU,右键选择"添加新的连接",如图2所示。

图 2 添加新连接

在“添加新连接”的对话框中,选择连接对象"未指定",选择本地接口"PLC_1,PROFINET接口_1[X1]",默认为"主动建立连接",点击"添加"按钮,这时在"信息"栏能看到 S7 连接已添加的信息,点击"关闭"按钮,完成新连接的创建,如图3所示。

图 3 创建 S7 连接

1.3 PLC_1 的 S7 连接及其参数说明

在"网络视图"中间栏的"连接"页面中,可以看到已经创建的"S7_连接_1"。

选择“连接”页面中的第一行,在下方的连接属性“常规”中,手动输入伙伴设备的 IP 地址,如图4所示。

图 4 1516 CPU 侧的 S7 连接常规参数

在“本地 ID”属性中,设置通讯连接的 ID 号,本地 ID 在本地 PLC 中必须是唯一的,在后续的通信编程中需要指向这个 ID,这里 1516 CPU 的 ID=W#16#100,如图5所示。

图 5 1516 CPU 侧的 S7 连接本地 ID 参数

在“地址详细信息”属性中,设置通讯双方的 TSAP 号,伙伴的机架/插槽设置为 1510SP CPU 所在的机架号和插槽号,在这里是0和1。因本例中使用 S7 双边连接,连接资源需设置为10,如图6所示。

图 6 1516 CPU 侧的地址详细信息

在“特殊连接属性”中,可以选择是否为主动建立连接。通信的双方只能有一方是主动建立连接,另一方是被动建立连接,这里 1516 CPU 是主动建立连接,如图7所示。

图 7 1516 CPU 侧的 S7 连接特殊连接属性

1.4 使用 TIA Portal 创建 PLC_2

使用 TIA Portal 创建另一个新项目,组态第二台 1510SP CPU,并设置 IP 地址,如图8所示。

图 8 创建第二台 S7-1500,并设置 IP 地址

1.5 PLC_2 的网络配置,组态 S7 连接

在"网络视图"中,点中左上角的"连接"图标,连接框中选择"S7连接",然后选中 S7-1500 CPU,右键选择"添加新的连接",如图9所示。

图 9 添加新连接

在“添加新连接”的对话框中,选择连接对象"未指定",选择本地接口"PLC_1,PROFINET接口_1[X1]",默认为"主动建立连接",点击"添加"按钮,这时在"信息"栏能看到 S7 连接已添加的信息,点击"关闭"按钮,完成新连接的创建,如图10所示。

图 10 创建 S7 连接

1.6 PLC_2 的 S7 连接及其参数说明

在"网络视图"中间栏的"连接"页面中,可以看到已经创建的"S7_连接_1"。

选择“连接”页面中的第一行,在下方的连接属性“常规”中,手动输入伙伴设备的 IP 地址,如图11所示。

图 11 1510SP CPU 侧的 S7 连接常规参数

在“本地 ID”属性中,设置通讯连接的 ID 号,本地 ID 在本地 PLC 中必须是唯一的,在后续的通信编程中需要指向这个 ID,这里 1510SP CPU 的 ID=W#16#100,如图12所示。

图 12 1510SP CPU 侧的 S7 连接本地 ID 参数

在“地址详细信息”属性中,设置通讯双方的 TSAP 号,伙伴的机架/插槽设置为 1516 CPU 所在的机架号和插槽号,在这里是0和1。因本例中使用 S7 双边连接,连接资源需设置为10,如图13所示。

图 13 1510SP CPU 侧的地址详细信息

在“特殊连接属性”中,可以选择是否为主动建立连接。通信的双方只能有一方是主动建立连接,另一方是被动建立连接,这里 1510SP CPU 是被动建立连接(不勾选),如图14所示。

图 14 1510SP CPU 侧的 S7 连接特殊连接属性

1.7 下载硬件组态

配置完网络连接,双方都编译保存并下载。

如果通讯连接正常,连接的在线状态为绿色图标,如图15和16所示。

图 15 1516 CPU 在线连接状态

图 16 1510SP CPU 在线连接状态

2 通信编程

2.1 PLC_1 编程

在 PLC_1 站中,创建用于发送和接收的数据块,定义为5个字节的数组,如图17所示。

图 17 创建数据传输区

在 1516 CPU 侧,打开 OB1 中,从"指令" >"通信" >"S7 通信">"其它"下,调用 BSEND、BRCV 通信指令,如图18所示。

图 18 1516 CPU 侧发送/接收指令调用

BSEND指令的各个参数说明如表1所示:

表1 BSEND指令参数

BRCV指令的各个参数说明如表2所示:

表2 BRCV指令参数

2.2 PLC_2 编程

在 PLC_2 站中,创建用于发送和接收的数据块,定义为5个字节的数组,如图19所示。

图 19 创建数据传输区

在 1510SP CPU 侧,打开 OB1 中,从"指令" >"通信" >"S7 通信">"其它"下,调用 BSEND、BRCV 通信指令,如图20所示。

图 20 1510SP CPU 侧发送/接收指令调用

注:BSEND/BRCV 指令的各个参数说明参见表1和表2。

3 通信测试

两台 PLC 的项目编译无错误后,分别将程序下载到各自的 CPU 中。1516 CPU 侧触发 M0.0 时,向1510SP CPU 发送一次数据;1510SP CPU 侧触发 M10.0 时,向1516 CPU 发送一次数据,如图21所示。

图 21 通信测试