标准 CPU 与 S7-1500R/H 冗余系统进行S7通信

1、简介

S7-1500R/H 冗余系统的基本通信功能与 S7-1500 标准系统的大致相同,但在具体使用时有一些特殊的限制条件。

S7-1500R/H 冗余系统的通信方式
• 通过 TCP/IP、UDP、ISO on-TCP 和 Modbus/TCP 建立开放式用户通信
• S7 通信,在通信中作为服务器
• HMI 通信和 PG 通信

S7-1500R/H 冗余系统通信的限制条件
• 开放式用户通信:
– 不支持所组态的连接
– 不支持开放式用户安全通信
– 电子邮件:S7-1500R/H CPU 支持版本低于 V5.0 的“TMAIL_C”指令。不支持自 V5.0 起的版本。
– 不支持“TCON_Param”的连接描述
• 不支持 OPC UA
• 不支持在 S7 通信中作为客户端
• 不支持 Web 服务器
• PG 通信:不能同时访问两个 CPU。可访问主 CPU 或备份 CPU。
• S7-1500R/H 的 CPU 不支持集中插入的通信模块。

S7-1500R/H 冗余系统的系统 IP 地址
除了各 CPU 的设备 IP 地址之外,S7-1500R/H 冗余系统分配以下系统 IP 地址:
• 两个 CPU 的 X1 PROFINET 接口的系统 IP 地址(系统 IP 地址 X1),适用于 CPU 1513R-1PN、CPU 1515R-2PN、CPU 1517H-3PN 和 CPU 1518HF-4PN
• 两个 CPU 的 X2 PROFINET 接口的系统 IP 地址(系统 IP 地址 X2),适用于 CPU 1515R-2PN、CPU 1517H-3PN 和 CPU 1518HF-4PN
• 两个 CPU 的 X3 PROFINET 接口的系统 IP 地址(系统 IP 地址 X3),适用于 CPU 1518HF-4PN

通过系统 IP 地址,可与其它设备(例如,HMI 设备、CPU 和 PC)通信。这些设备通过系统 IP 地址始终与冗余系统的主 CPU 进行数据通信。
这样,可确保在冗余操作中原来的主 CPU 发生故障后,通信伙伴可在 RUN-Solo 系统状态下与新的主 CPU(之前的备用 CPU )进行数据通信。

与设备 IP 地址相比,系统 IP 地址的优势
• 通信伙伴专与主 CPU 进行通信。
• 即使主 CPU 故障发生主备切换,仍可通过系统 IP 地址与 S7-1500R/H 冗余系统进行数据通信。

应用
系统 IP 地址适用于以下应用中:
• 与 S7-1500R/H 冗余系统进行 HMI 通信,可以使用 HMI 设备控制或监视冗余 S7-1500R/H 系统上的过程
• 与 S7-1500R/H 冗余系统进行开放式用户通信:
– 另一个 CPU 或某 PC 中应用程序访问 S7-1500R/H 冗余系统的数据
– S7-1500R/H 冗余系统访问一个不同的设备
可建立 TCP、UDP 和 ISO-on-TCP 连接
• 与 S7-1500R/H 冗余系统进行S7通信
– 另一个 CPU 应用程序访问 S7-1500R/H 冗余系统的数据(作为服务器)

2、示例说明

示例中一个标准CPU(CPU1513-1PN) 的PROFINET X1接口与两个冗余CPU(CPU1515R-2PN)的PROFINET X2接口连接到同一个网络中,标准CPU(CPU1513-1PN) 通过两个 CPU1515R-2PN 的 X2 PROFINET 接口的系统 IP 地址与 S7-1500R/H 冗余系统进行S7通信,使用指令“PUT”将DB1中10个字节的数据写入到 CPU1515R-2PN 的DB1中。

图 1 示例:S7 1500R/H 冗余系统通过系统 IP 地址 X2 进行通信

示例中使用的软硬件环境

硬件:

  1. CPU1515R-2PN  6ES7 515-2RM00-0AB0,V2.9.2
  2. CPU1515R-2PN  6ES7 515-2RM00-0AB0,V2.9.2
  3. CPU1513-1PN  6ES7 513-1AL02-0AB0,V2.9.2

软件:

  1. STEP7 Professional V17 Update 2

3、组态和配置过程

根据文档开始的介绍,S7-1500R/H 冗余系统在 S7 通信中只能作为服务器,不能主动建立S7连接也没有用于S7通信的指令。因此,需要在标准 CPU 侧建立一个未指定的单向S7连接,在伙伴地址处填写S7-1500R/H 冗余系统 PROFINET 接口的系统 IP 地址。同时只能在标准 CPU 中使用指令“PUT”,将数据写入S7-1500R/H 冗余系统的 CPU 中,使用指令“GET”从冗余 CPU 中读取数据。PUT 和 GET 指令是单向指令,只需在标准CPU中有该指令即可。

3.1 配置S7-1500R/H站

  1. 使用 STEP7 V17 创建一个新项目,并通过“添加新设备”组态 S7-1500R/H站,选择对应型号 CPU1515R-2PN。创建PN/IE_2子网,将两个CPU的PROFINET X2接口连入子网。分别设置两个CPU的X2接口的设备 IP 地址。

  2. 激活CPU1515R-2PN PFORINET X2接口属性中的“启用切换通信的系统IP地址”并设置 X2 接口的系统 IP 地址,如图 2 所示。


图 2 设置X2接口的系统IP地址

  1. 在CPU1515R-2PN 属性“防护与安全”中激活“允许来自远程对象的PUT/GET通信访问”,如图 3 所示。


    图 3 激活连接机制

  2. CPU1515R-2PN中新建一个数据块_1[DB1]存放接收的数据,注意,要去掉DB块属性中的“优化的块访问” ,见图4,图5。


图 4 创建数据块


图 5 设置数据块属性

3.2 配置CPU1513-1PN

  1. “添加新设备”组态 CPU1513-1PN,将CPU的PROFINET X1接口连入PN/IE_2子网,设置 IP 地址,如图 6 所示。


图 6 在项目中配置 CPU1513-1PN

  1. 在网络视图左上角,点击“连接”,右侧的下拉框中选择“S7连接”。鼠标右键单击 CPU1513-1PN,在弹出的对话框中选择“添加新连接”,如图 7 所示。
    随后点击“添加”按钮,添加一个新的S7连接,如图 8 所示。


图 7 进入添加新连接界面


图 8 添加新连接

  1. 在刚刚建立的 S7 连接属性界面中的“常规”里填入连接伙伴的 IP 地址,注意此处一定要填写前面 CPU1515R-2PN 设置的 X2 接口的系统 IP 地址(图2 中),如图 9 所示。
    在“地址详细信息”中,将伙伴下面的插槽号设置为“1”,见图 10 所示。


图 9 填入 CPU1515R-2PN 的系统 IP 地址


图 10 设置伙伴插槽

  1. 新建发送数据块,长度和结构与之前在 CPU1515R-2PN 中建立的接收数据块一致,同样要去掉“优化的块访问”,如图 11 所示。


图 11 建立发送数据块

  1. S7通信需要使用专门的指令发送接收数据,指令位于“指令列表—通信—S7 通信”文件夹下。示例中是 CPU1513-1PN 发送数据到 CPU1515R-2PN,需要使用“PUT”,如图 12。


图 12 调用指令“PUT”

在指令属性界面“连接参数”中,选择之前步骤建立的S7连接,如图 13。


图 13 指令“PUT”选择连接

填写指令的相关参数,如图 14。参数说明见图 15,更多关于指令的相关信息可以参考指令的帮助文件!


图 14 填写指令参数


图 15 指令参数说明

4、结果测试

将项目编译正常后下载到各自CPU中,使用监控表对数据传递进行测试。在 CPU1513-1PN 程序中置位指令“PUT”的参数“REQ”地址变量M100.0,接收方 CPU1515R-2PN 接收数据块收到数值,说明数据交换正常,见图 16。


图 16 监控CPU之间的数据传递

5、标准 CPU 与 S7-1500R/H 冗余 CPU 不在一个项目中的情况

标准 CPU 和S7-1500 R/H 冗余 CPU 不在同一个TIA Portal 项目的情况下,通信的组态和配置是分开进行的,操作方法是完全相同的(唯一不同就是组态标准 CPU 时,在3.2章节步骤1中的图片中没有S7-1500R/H 站)。

关于的S7-1500R/H 冗余系统更多信息,请参考系统手册,下载链接:https://support.industry.siemens.com/cs/cn/zh/view/109754833