直接数据交换功能概述

从固件版本 V2.8 开始,S7-1500 CPU 支持与其它 S7-1500 CPU 进行直接数据交换。 在直接数据交换的情况下,S7-1500 CPU 将 I/O 区域中的循环用户数据提供给一个或多个伙伴,数据交换模型见下图1。直接数据交换基于 IRT 和等时同步模式下的 PROFINET,通过传送区进行数据交换。

图1. 直接数据交换模型

使用要求

● STEP 7 V16 或更高版本
● S7-1500 CPU 固件版本为 V2.8 或更高版本
● IRT 已组态:
– 所有 CPU 都在一个同步域中。
– 一个 CPU 是同步主站,其它 CPU 是同步从站。
– 端口已互连。

属性

● 始终等时同步
● MRP 组态中支持 MRPD
● 无通过 PROFINET 进行非循环数据交换的数据记录机制
● 无 PROFINET 报警
● 组态限值:
– 直接数据交换的最大数据长度为 3075 字节(包括用户数据限定符)
– 传送区的最大数据长度:1024 字节(无用户数据限定符)
– 最大发送方传送区数:128
– 最大接收方传送区数:512,分布在最多 64 个可接收的 PROFINET 帧中,因此最多 64 个发送方 CPU

直接数据交换实验环境和内容

在本应用实例中,通过以下产品进行直接数据交换功能组态,实现了2个IO控制器之间和3个IO控制器之间的 PROFINET IRT 通信。

软件:

TIA V16 Professional

硬件:

CPU 1511-1PN V2.8
CPU 1511C-1PN V2.8
CPU 1516F-3PN/DP V2.8

直接数据交换功能组态

两个 S7-1500 CPU 之间组态直接数据交换

1、设备添加及分配接口参数

1.1、打开TIA 项目视图,在项目树下双击“添加新设备”,输入设备名称(PLC_1),选择控制器(6ES7511-1AK01-0AB0 版本V2.8),单击确定进入设备视图,如下图2所示

图2. 添加新设备

1.2、双击控制器以太网接口进入属性常规界面,为控制器添加子网及设置IP地址,如下图3所示。

图3. PLC_1 分配以太网地址

1.3、重复步骤1.1和1.2,添加控制器PLC_2(6ES7 511-1CK00-0AB0 版本V2.8),添加子网及设置IP地址,如下图4所示。

图4. PLC_2 分配以太网地址

2、组态PROFINET IRT

2.1、组态拓扑视图,如下图5所示。注意现场的拓扑要和组态拓扑完全一致,不然会报错。

图5. 拓扑视图

2.2、鼠标悬停在总线,在弹出的菜单中选择高亮显示同步域,然后单击进入“域管理”>“同步域”界面,如下图6所示。

图6. 域管理

2.3、进入同步域下的设备界面,分配PLC_1为同步主站,如下图7所示。

图7. 同步主站分配

2.4、进入同步域下的设备界面,分配PLC_2为同步从站,如下图8所示。

图8. 同步从站分配

3、组态直接数据交换

3.1、建立直接数据交换的通信关系,如下图9所示。

选择PN/IE_1总线,网络视图右侧切换到"I/O 通信"选项卡,为伙伴1 PLC_1分配伙伴2通信关系, 在"伙伴 2"列的"<将设备放在此处或者选择>"中,从下拉列表中选择通信伙伴的 PROFINET 接口作为连接伙伴。
注意通信方向:
– ←:通信伙伴为发送方
– →:通信伙伴为接收方

图9.直接数据交换的通信关系

3.2、组态用于直接数据交换的传送区,如下图10所示。

选择直接数据交换的通信关系,导航到通信关系属性的"常规 > 直接数据交换 > 传送区域",双击"<新增>"按钮,分别为2个通信关系创建一个传输区,为传送区指定一个有意义的名称。传送区的通信方向由通信关系指定,无法更改传送区的通信方向。

图10. 用于直接数据交换的传送区

3.3、编辑传送区,如下图11所示。

在"常规 > 直接数据交换 > 传送区名称 > 传送区详细信息"下选择传送区的属性。这里可以修改输入和输出的起始地址;选择相应的组织块和过程映像区,由于是IRT通信,要选择具有同步功能组织块,比如Synchronous Cycle 或MC_Servo等组织块;设置所需传输数据长度。

图11. 传送区属性

3.4、更新过程映像区

分别在各个PLC下的Synchronous Cycle OB61组织块内调用“SYNC_PI”同步过程映像输入和“SYNC_PO”同步过程映像输出来更新过程映像区。如图12所示。

图12. 更新过程映像区

4、编译和加载

分别编译和加载控制器PLC_1 和 PLC_2,测试结果如下图13所示。

图13. 通信结果

多个 IO 控制器之间组态直接数据交换

1、设备添加及分配接口参数

重复两个 S7-1500 CPU 之间组态直接数据交换示例中步骤1.1和1.2,添加控制器PLC_1(6ES7511-1AK01-0AB0 版本V2.8)、PLC_2(6ES7 511-1CK00-0AB0 版本V2.8)、PLC_3(6ES7 516-3FN01-0AB0 版本V2.8),添加子网及设置IP地址。

2、组态PROFINET IRT

重复两个 S7-1500 CPU 之间组态直接数据交换示例中步骤2.1~2.4,其中PLC_1为同步主站,PLC_2和PLC_3为同步从站。

3、组态直接数据交换

重复两个 S7-1500 CPU 之间组态直接数据交换示例中步骤3.1~3.4,组态CPU两两之间的直接通信关系,并为其新建传输区及编辑传输区,如下图14所示。

图14. 多CPU间数据交换

对于多CPU间组态直接数据交换来说,传输区的"伙伴地址"可以选择发送方中的现有地址区域作为输出传送区起始地址,如图14中红色方框所示,实现发送方的同一个地址传输给多个CPU,如图15中蓝色方框所示。

图15. 传输区配置

4、编译和加载

分别编译和加载控制器PLC_1 、 PLC_2 和 PLC_3,测试结果如下图16所示。

图16. 通信结果