S7-1500 之间通过 BSEND/BRCV 方式进行双边通信的组态编程步骤,用于实现两台 S7-1500 都在同一项目中组态的场景。
1.组态
1.1 使用 TIA Portal 创建项目
使用 TIA Portal 创建一个新项目,组态两台 S7-1500,并设置 IP 地址,如图1所示。
图 1 创建两台 S7-1500,并设置 IP 地址
1.2 网络配置,组态 S7 连接
在"网络视图"中,点中左上角的"连接"图标,连接框中选择"S7连接",然后选中 S7-1500 CPU,右键选择"添加新的连接",如图2所示。
图 2 添加新连接
在“添加新连接”的对话框中,选择连接对象"PLC_2",选择伙伴接口"PLC_2,PROFINET接口_1[X1]",选择"主动建立连接"后,点击"添加"按钮,这时在"信息"栏能看到 S7 连接已添加的信息,点击"关闭"按钮,完成新连接的创建,如图3所示。
图 3 创建 S7 连接
1.3 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 参数
在'特殊连接‘属性中,可以选择是否为主动建立连接。通信的双方只能有一方是主动建立连接,另一方是被动建立连接,这里 1516 CPU 是主动建立连接,如图6所示。
图 6 1516 CPU 侧的 S7 连接特殊连接属性
相同的方法查看设置 1510SP CPU 侧的连接参数。
选择“连接”页面中的第二行,在下方的连接属性“常规”中,显示连接双方设备的接口和 IP 地址,如图7所示。
图 7 1510SP CPU 侧的 S7 连接常规参数
在“本地 ID”属性中,设置通讯连接的 ID 号,本地 ID 在本地 PLC 中必须是唯一的,在后续的通信编程中需要指向这个 ID,这里 1510SP CPU 的 ID=W#16#100,如图8所示。
图 8 1510SP CPU 侧的 S7 连接本地 ID 参数
在'特殊连接‘属性中,可以选择是否为主动建立连接。通信的双方只能有一方是主动建立连接,另一方是被动建立连接,这里 1510SP CPU 是被动建立连接(不勾选),如图9所示。
图 9 1510SP CPU 侧的 S7 连接特殊连接属性
配置完网络连接,双方都编译保存并下载。
如果通讯连接正常,连接的在线状态为绿色图标,如图10所示。
图 10 连接状态
2 通信编程
在两台 PLC 的站中,分别创建用于发送和接收的数据块,定义为5个字节的数组,如图11所示。
图 11 创建数据传输区
在 1516 CPU 侧,打开 OB1 中,从"指令" >"通信" >"S7 通信">"其它"下,调用 BSEND、BRCV 通信指令,如图12所示。
图 12 1516 CPU 侧发送/接收指令调用
在 1510SP CPU 侧,打开 OB1 中,从"指令" >"通信" >"S7 通信">"其它"下,调用 BSEND、BRCV 通信指令,如图13所示。
图 13 1510SP CPU 侧发送/接收指令调用
BSEND指令的各个参数说明如表1所示:
表1 BSEND指令参数
BRCV指令的各个参数说明如表2所示:
表2 BRCV指令参数
3 通信测试
两台 PLC 的项目编译无错误后,分别将程序下载到各自的 CPU 中。1516 CPU 侧触发 M0.0 时,向1510SP CPU 发送一次数据;1510SP CPU 侧触发 M10.0 时,向1516 CPU 发送一次数据,如图14所示。
图 14 通信测试