TIA Portal中S7-1200F CPU和S7-1500F CPU实现安全相关控制器与控制器通讯的配置例程(PN/PN Coupler V4.x版本)

在安全系统中F-CPU之间可以借助 PN/PN Coupler 模块进行控制器之间的安全相关的通信。通信通过两个安全应用程序块进行,即SENDDP块用于发送数据,而RCVDP块用于接收数据。这些块由用户在F-CPU相应的安全程序中调用,以故障安全的方式将 16 个数据类型为 BOOL 的数据和 2 个数据类型为 INT 的数据或者 1 个数据类型为 DINT(S7-1200、S7-1500)的数据发送至另一 F-CPU。

更多的关于创建和编写、通信的安全程序的信息请参考故障安全系统组态和编程手册

在本例程中,将CPU1513F-1PN作为一个 IO 控制器,CPU1215FC作为另一个 IO 控制器,通过 PN/PN Coupler(V4.2)实现两个CPU的安全相关的通信。CPU1513F在安全程序中使用F应用程序块SENDDP进行发送,CPU1215FC在安全程序中用RCVDP进行接收,以安全方式一次传送16个BOOL型数据和2个INT型数据。注意:必须在安全程序开始时调用RCVDP,必须在安全程序结束时调用SENDDP。

CPU1513F

传输方向

CPU1215FC

16 Bool

2 INT

16 Bool

2 INT

表1  示例中传输数据的数量和类型

示例中使用的软硬件环境

硬件:

  1. CPU1513F-1PN 6ES7 513-1FL02-0AB0,V2.8.3
  2. CPU1215FC DC/DC/DC 6ES7 215-1AF40-0CB0,V4.4.1 注意:从固件版本V4.2版本开始的S7-1200F CPU才支持安全相关的通信。
  3. PN/PN Coupler 6ES7 158-3AD10-0XA0,V4.2.0

软件:

  1. STEP7 Professional V16 Update2
  2. STEP7 Safety V16

这种通信方式可以分2种情况来操作,具体如下:

1.第一种情况:CPU1513F 和 CPU1215F 在同一个TIA项目中操作

2.第二种情况:CPU1513F 和 CPU1215F 分开在两个TIA项目中操作

1.第一种情况(同一项目中操作)

这种情况下两个CPU 使用 STEP7 V16 在一个项目中操作,详细步骤如下。

1.1 使用 STEP7 V16 创建项目加入 S7-1500和S7-1200 站

使用 STEP7 V16 创建一个新项目,并通过“添加新设备”分别组态 S7-1500和S7-1200 站,选择对应型号 CPU,创建各自的PN/IE子网,设置各自的 IP 地址,并确认设备名称。

本示例中CPU151F设备名称是PLC_1,CPU1215FC设备名称是PLC_2。如图 1 所示。

图 1 在新项目中创建两个PLC 站

1.2 配置PN/PN Coupler

  1. 在“硬件目录”中找到 PN/PN Coupler,确认订货号,选择版本,拖入到“网络视图”中,如图 2 所示。

图 2 在项目中拖入PN Coupler V4.2版本

  1. 鼠标左键点中PN Coupler 左侧X1网络接口,按住鼠标拖拽连接到CPU1513F的PROFINET接口,这样PN Coupler的PROFINET接口X1就连接到PN/IE_1子网,分配IO控制器为PLC_1,如图 3 所示。

    然后设置X1接口的IP地址和设备名称,如图 4 所示。。

图 3 将PN Coupler PROFINET接口 X1连接到CPU1513F的PROFINET接口

图 4 组态PN Coupler PROFINET接口X1部分的IP地址和设备名称

  1. 同样方法将PN Coupler的PROFINET接口X2拖向CPU1215FC的PROFINET接口,网络会显示连接到PN/IE_2子网,自动分配IO控制器为PLC_2。PN Coupler的左下角会显示“多重分配”字样,然后设置X2接口的IP地址和设备名称。如图 5 所示。

图 5 组态PN Coupler PROFINET接口X2部分的IP地址和设备名称

  1. 在PN Coupler属性界面中“转换映射”创建“传输区_1”,类型选择“PROFISAFE输入/输出 6字节/12字节”,如图 6 所示。

注意:安全通信时要使用固定格式的传输区类型,这里是CPU1513F向CPU1215FC发送数据,所以要选择输出长度12个字节的类型。

图 6 组态PN Coupler 地址映射

两个CPU在同一个项目中,系统自动在PN Coupler PROFINET接口X2的PLC_2侧自动生成了一个匹配的传输区“PROFISAFE输入/输出 12字节/6字节”,如图 7 所示。

注意:最好使用系统自动分配的IO地址,如果要进行修改,要保证传输区分配的输入地址和输出地址的起始地址相同。

图 7 PN Coupler 地址映射信息

图 8 传输区在两个CPU的地址分配情况

1.3 分配PN/PN Coupler设备名称

  1. 将两个安全CPU都编译下载后,还需要在线分配PN Coupler设备名称后PROFINET通信才能正常,而且由于PN Coupler的PROFINET网口有两个,要分别进行操作。

在前面的组态配置中CPU1513F连接的是PN Couler上PROFINET接口X1网络,所以在实际的网线连接时要将CPU1513F的PROFINET网线插入到PN Coupler左侧总线适配器的网口上。同样,CPU1215FC的网线应该插入到PN Coupler右侧总线适配器的网口上。

图 9 PN Coupler模块面板图

关于PN/PN Coupler的更多信息,请参考手册《PN/PN 耦合器 硬件安装和操作》,下载链接:https://support.industry.siemens.com/cs/cn/zh/view/44319532

  1. 以CPU1513F侧操作为例,介绍分配设备名称操作。首先要保证计算机的网线连接到PN Coupler上PROFINET接口X1网络中。使用鼠标右击PN Coupler左侧,弹出的对话框中选择分配设备名称,如图 10 所示。

图 10 鼠标右击左侧,打开分配设备名称界面

进入分配设备名称界面后,点击“更新列表”会显示出网络中的可访问节点。核对MAC地址与PN Coupler上面印刷的MAC ADDRESS 1相同,确保是PN Coupler上的PROFINET X1接口。点击“分配名称”,如图11所示。

图 11 分配设备名称操作

操作成功后,在状态栏会显示“确定”,如图 12所示。

图 12 分配设备名称操作完成

  1. 采用同样的步骤,对PN Coupler的PROFINET接口X2分配设备名称,完成后网络视图在线后状态显示通信正常,如图13。

    注意:这时计算机的网线要连接到PN Coupler上PROFINET接口X2网络中,而且使用鼠标右击PN Coupler右侧,核对MAC地址时要与PN Coupler上面印刷的MAC ADDRESS 2相同。

图13 硬件组态在线状态

1.4 编程、下载

安全相关的通信除了要进行硬件组态外,还要使用专门的安全通信程序块完成数据的发送和接收。

  1. 在CPU1513F程序块中添加F-DB,命名“SendData”建立16个BOOL类型和2个INT类型变量,作为发送数据。在CPU1215FC程序块中添加F-DB,命名“RcvData”建立16个BOOL类型和2个INT类型变量用于接收数据,如图14。

图 14 CPU1513F中的发送数据块结构

图 15 CPU1215FC中的接收数据块结构

  1. 示例中是CPU1513F向CPU1215FC发送数据,所以在CPU1513F的安全主程序FB1中调用SENDDP数据发送功能块,注意参数DP_DP_ID和LADDR参数的填写,指令所在位置如图16。

图 16 指令所在位置

输入参数

SD_BO_00—SD_BO_15 用于发送BOOL数据
SD_I_00 — SD_I_01 用于发送INT数据
SD_DI_00 用于发送DINT数据
DINTMODE 指定是否发送SD_I_00 和 SD_I_01 处的数据或SD_DI_00 处的数据。=0 发送 SD_I_00 和 SD_I_01;=1 发送SD_DI_00
DP_DP_ID 唯一的SENDDP和RCVDP之间的关联值,确认发送和接收的对应关系,示例中是123,与CPU1215FC侧RCVDP的ID要一致
TIMEOUT 安全相关的通讯的监视时间
LADDR 传输区的硬件标识符,如下图17

输出参数

ERROR: 1=通信出错
SUBS_ON 1=接收方输出故障安全值
RET_DPRD/ RET_DPWR DPRD_DAT/DPWR_DAT的错误代码
DIAG 诊断信息

表2 SENDDP功能指令参数简单说明

LADDR参数需要到PN Coupler X1接口部分的属性中查找“传输区_1”的系统常数,如图17。

图 17 查找PN Coupler X1接口配置的传输区_1的系统常数

  1. CPU1215FC的安全主程序FB1中调用RCVDP数据接收功能块,参数DP_DP_ID要与CPU1513F的SENDDP一致,如图16。

图 18 CPU1215FC中的接收功能块DP_DP_ID要与CPU1513F中的发送功能块一致

输入参数

ACK_REI: 1=发生通信错误后,对发送数据的重新集成确认
SUBBO_00 - SUBBO_15 用于接收BOOL数据的安全替代值
SUBI_00 - SUBI_01 用于接收INT数据的安全替代值
SUBDI_00 用于接收DINT数据的安全替代值
DP_DP_ID 唯一的SENDDP和RCVDP之间的关联值,确认发送和接收的对应关系,示例中是123,与CPU1513F侧SENDDP的ID一致
TIMEOUT 安全相关的通讯的监视时间
LADDR 传输区域的硬件标识符,如下图19

输出参数

ERROR: 1=通信出错
SUBS_ON 1=使用替代值
ACK_REQ: 1=需要对发送数据的重新集成进行确 认
SENDMODE 1= 具有F_SENDDP的F-CPU处于取消激活的安全模式中
RD_BO_00 - RD_BO_15 接收的BOOL数据
RD_I_00 - RD_I_01 接收的INT数据
RD_DI_00 接收的DINT数据
RET_DPRD/ RET_DPWR DPRD_DAT/DPWR_DAT的错误代码
DIAG 诊断信息

表3 RCVDP功能指令参数简单说明

LADDR参数需要到PN Coupler X2接口部分的属性中查找“传输区_1”的系统常数,如图19。

图 19 查找PN Coupler X2接口配置的传输区_1的系统常数

示例中CPU1513F向CPU1215FC发送了2个INT类型的数据,如果要发送DINT类型的数据,只需要将要发送的数据地址填写在SENDDP功能指令的输入参数SD_DI_00处,同时在输入参数DINTMODE=1就可以。

这时CPU1215FC就可以在RCVDP功能指令的输出参数RD_DI_00处接收到DINT数据。注意:不能同时传送INT和DINT类型的数据

  1. 将两个PLC的程序进行编译,然后分别下载到PLC。

1.5 通讯测试

检查无错误后,分别给两个站点新建监控表,对数据进行监控,如图 20 所示。

图 20 通信测试

1.6 发生通信错误时的处理

如果发生通信错误,发送方(SENDDP指令)会置位输出参数 ERROR 和 SUBS_ON =1,同时在输出参数DIAG处显示有关所发生通信错误类型的信息。

接收方(RCVDP 指令)会将输入参数 SUBBO_xx 和 SUBI_xx 或 SUBDI_00所指定的故障安全值替代到对应输出,同时置位输出ERROR和 SUBS_ON =1,在输出参数DIAG处显示有关所发生通信错误类型的信息。

图 21 SENDDP/RCVDP 指令的DIAG的结构说明

当不再检测到通信错误时,RCVDP 指令会置位输出参数ACK_REQ = 1,这时在输入参数 ACK_REI 处输入上升沿进行确认,安全数据传递才会恢复。

图 22 通信错误及确认的时序图

在本示例中,为了演示通信错误的确认过程,故意制造了一个通信错误。

1、将CPU1513F切换到停止模式,CPU1215FC中的RCVDP指令置位输出ERROR和 SUBS_ON =1,同时在输出参数DIAG处显示信息16#10。

图 23 CPU1215FC RCVDP指令报错

2、根据DIAG的提示信息,查找故障原因,将CPU1513F切换到运行模式后,错误排除。RCVDP指令置位输出ACK_REQ =1,请求重新集成。

图 24 CPU1215FC RCVDP指令请求确认

3、对RCVDP指令的输入参数ACK_REI置位,对发送数据的重新集成进行确认后,数据传递恢复。

图 25 CPU1215FC RCVDP指令进行确认

2.第二种情况(不在同一项目中操作)

如果两个CPU是分开在两个TIA项目中,只需要将PN Coupler的两个PROFINET接口的配置分开来操作就可以了。即,在CPU1513F的项目中配置PN Coupler上的PROFINET X1接口,在CPU1215FC的项目中配置PN Coupler上的RPOFINET X2接口。

对于安全通信程序块SENDDP/RCVDP的调用和参数填写,与前面在同一个项目中的操作是完全相同的。

2.1 S7-1500 项目中配置PROFINET X1接口

创建一个新项目,并通过“添加新设备”组态 S7-1500 站,在网络视图中配置PN Coupler。鼠标左键点中PN Coupler 左侧X1网络接口,按住鼠标拖拽连接到CPU1513F的PROFINET接口,这样PN Coupler的PROFINET接口X1就连接到CPU1513F。然后设置X1接口的IP地址和设备名称,操作方法与前面的都是相同的,只是不需要再对PN Coupler上的PROFINET X2接口进行配置。之后在“转换映射”中创建“传输区_1”,在PROFINET接口[X1]下面,类型选择“PROFISAFE输入/输出 6字节/12字节”如图 21 所示

图 26 在S7-1500项目中配置PROFINET接口[X1]

2.2 S7-1200 项目中配置PROFINET X2接口

创建一个新项目,并通过“添加新设备”组态 S7-1200 站,在网络视图中配置PN Coupler。鼠标左键点中PN Coupler 左侧X2网络接口,按住鼠标拖拽连接到CPU1215FC的PROFINET接口,这样PN Coupler的PROFINET接口X1就连接到CPI1215FC上。然后设置X2接口的IP地址和设备名称,操作方法与前面的都是相同的,只是不需要再对PN Coupler上的PROFINET X1接口进行配置。之后在“转换映射”中创建“传输区_1”,在PROFINET接口[X2]下面类型选择“PROFISAFE输入/输出 12字节/6字节”,如图 22 所示。

图 27 在S7-1200项目中配置PROFINET接口[X2]