1、400H 与 S7-1500 通讯方案
西门子 400H 高可用性冗余控制器,自推出以来,在市场中得到了广泛的应用。S7-400H可满足对现代自动化系统在可用性、智能化和分散化方面提出的高要求。该系统还提供了采集和准备过程数据所需的所有功能,其中包括对装配和设备进行的开环控制、闭环控制和监视的功能。通讯带有集成 PN 口以及 PROFIBUS DP 接口,灵活应用于多种通讯协议,并且可以通过通讯模块扩展多个接口,可用性高。
S7-1500 是西门子近年推出的新 PLC 产品系列,在各行各业都得到了极为广泛的应用。以CPU1516 为例,控制器本身集成了三个接口,一个带两个物理接口、支持 IRT 的 Profinet接口 X1,一个以太网接口 X2,一个 Profibus DP 接口 X3。
在实际工程项目中,经常会遇到 400H 和 S7-1500 通讯的问题,基于两类控制器所支持的接口而言,有三种可能的通讯方式:Profibus DP、以太网。考虑到 S7-1500 和 400H 集成的DP 接口均只能用作 DP 主站,所以两者之间不能采用 Profibus DP 的主从通讯方式。
本文主要介绍通过以太网以及 PCS7 工业库实现 400H 和 S7-1500 之间的通讯。
要实现 H 系统集成 PN 口与 S7-1500 的通讯,可以采用基于 S7 连接的方式,配合“H_Status”功能块来确定激活哪一个 CPU 的连接完成数据交换。
本文采用的网络结构如下所示:
400H 与 1500 通讯网络结构图
2、400H 与 S7-1500 通讯组态
2.1 S7-1500 通讯组态
系统采用 TIAPortal V14 Update1 软件,控制器采用 1516-3PN/DP 控制器,组态控制器如下图所示。
在设备视图中选择相应的 PS 电源: 6ES7 507-0BA00-0AB0 , 1516-3PN/DP CPU : 6ES7516-3AN00-0AB0 ,选择对应用于通讯的网口配置以太网地址(本文配置的地址为192.168.1.16),本文中 1516-3PN/DP 有三个用于以太网通讯的网口,选择和 400H 冗余通讯的网口,本文选择以太网口 2,具体配置如下图。
注意需要设置 CPU 的连接机制属性:允许来自远程对象的 PUT/GET 访问
定义用于通讯的数据块,本文定义用于接收的数据块为 DB30,用于发送的数据块为 DB40,数据类型为 int 型,Array[0..15],如下图所示。
定义用于接收和发送的数据块
定义用于接收和发送的数据类型
此处需要注意设置 DB 块的属性,取消“优化的块访问”,如下图所示:
DB 块的属性设置
点击菜单栏中的下载按钮,把程序下载到对应的 CPU 中,如下图所示:
程序下载
S7-1500 方面的组态完成,接下来是对 400H 方面的组态。
2.2 400H 通讯组态
系统采用 PCS7 V9.0 软件,控制器采用 412-5H 控制器,组态控制器如下图所示,拖入UR2-H 机架,选择 CPU412-5H:6ES7412-5HK06-0AB0 并配置以太网地址 192.168.1.133以及 192.168.1.144(双击 PN-IO 设置 IP 地址)
400H 硬件组态
打开 NetPro 网络组态,配置 400H 与 S7-1500 的 S7 连接,具体如下图所示,输入 Local ID以及对应的 S7-1500 控制器的 IP 地址,选择“S7 未指定的连接”
建立未指定的 S7 连接
在属性中设置 Local ID=1,填写 1516-3PN/DP 设置的以太网 IP 地址,主从 CPU 均需配置“S7 未指定的连接”,本文从 CPU 的 Local ID=2。
设置连接参数
点击 Address Details,设置连接资源属性,此处 400H CPU 选择 connection resource=10,连接伙伴 connection resource=3,连接伙伴需要设置机架号和槽号,参考 1500 之前的硬件组态,rack=0,slot=1,400H 从 CPU 选择 connection resource=11,400H CPU 的机架号和槽号为默认设置即可。
设置 TSAP 号
网络组态设置完成之后,对通讯的 DB 块以及 CFC 程序进行编写,本文设置的用于发送的数据块为 DB30,用于接收的数据块为 DB40,对应的数据类型和 1500 保持一致,程序编写调用“H_Status”对 CPU 的状态进行监视,调用 PCS7 V9.0 Industry Lib S7 V90 中用于通讯的 S7Get(FB1198),S7Put(FB1199)功能块,具体见下图:
DB 块的建立
读写程序的编写
“H_Status”用于读取 CPU 的 master 状态,如图所示“R0_MSTR”为 RACK0 机架的CPU 处于主 CPU 的状态,“R1_MSTR”为 RACK1 机架的 CPU 处于主 CPU 的运行状态,通过切换来调用 S7Put,S7Get 块来进行数据交换;
S7Put 需要设置的管脚为:
START:为 1 时开始执行读写操作;
KOM_ID:对应“S7 未指定连接”的 Local ID;
DBNO_SRC:400 侧用于发送的数据块地址,本文为 DB30;
ADDR_SRC;400 侧用于发送的数据块的起始地址,本文从 0 地址开始;
DBNO_DST:1500 侧用于接收的数据块地址,本文为 DB30;
ADDR_DST;1500 侧用于发送的数据块的起始地址,本文从 0 地址开始;
LENGTH:设置用于通讯的地址区域的长度,本文设置为 4;
S7Get 需要设置的管脚为:
START:为 1 时开始执行读写操作;
KOM_ID:对应“S7 未指定连接”的 Local ID;
DBNO_SRC:400 侧用于发送的数据块地址,本文为 DB40;
ADDR_SRC;400 侧用于发送的数据块的起始地址,本文从 0 地址开始;
DBNO_DST:1500 侧用于接收的数据块地址,本文为 DB40;
ADDR_DST;1500 侧用于发送的数据块的起始地址,本文从 0 地址开始;
LENGTH:设置用于通讯的地址区域的长度,本文设置为 12;
建立完成之后,把硬件组态,网络组态以及程序下载到 400H CPU 中。
3、400H 与 S7-1500 通讯测试
首先查看网络组态中建立的 S7 未指定的连接是否建立,如下图所示,主从 CPU 的连接状态都是 set up 的状态,证明网络已经建立正常。
400H 主从 CPU 网络连接状态
在线监视程序是否成功读写数据
RACK0 机架 CPU 读写数据
RACK0 机架 CPU 与 RACK1 机架 CPU 进行主备切换时,通过“H_Status”进行切换,读取数据,如下图所示:
RACK1 机架 CPU 读写数据
程序数据读取状态,下图所示:
DB 块数据读写