常问问题 07/2018 在 TIA 环境下实现 S7-1500F 和 S7-1200F 之间的安全相关控制器与智能设备通讯 ( 不同项目 ) SAFETY https://support.industry.siemens.com/cs/cn/zh/view/109758604
目录 1 概念... 3 2 安全相关的 PN 控制器和智能设备之间的通信... 3 2.1 示例所使用的软硬件环境... 3 2.2 硬件配置... 4 2.2.1 IO 设备侧组态... 4 2.2.2 IO 控制器侧组态... 9 2.3 编译下载... 11 2.4 通讯编程... 13 2
1 概念 与在标准的系统中一样, 在 TIA 安全系统中具有 PROFINET 接口的 S7-1500F 和 S7-1200F CPU 之间可以进行安全相关的控制器与智能设备通信 通信通过两个安全应用程序指令进行, 即 SENDDP 指令用于发送数据, 而 RCVDP 指令用于接收数据 这些指令由用 户在 F-CPU 相应的安全程序中调用, 可用于固定数量的 BOOL 和 INT(DINT) 类型的数据进行安全传送 2 安全相关的 PN 控制器和智能设备之间的通信 在本例程中, 将 CPU1511F-1PN 作为一个 PROFINET 控制器,CPU1215FC 作为一个 PROFINET 智能设备 在不同的项目下, 项目 2 中, CPU 1215FC 为了能配置安全的通讯类型 F-CD, 需要配置一个假的 IO 控制器 ( 如下文的代用控制器 ) 带 CPU1215FC 为智能设备, 然后 CPU1215FC 智能设备生成 GSDML; 在项目 1 中,CPU1511F-1PN 控制器侧安装 GSDML 文件并调用, 然后用 SENDDP/RCVDP 指令实现两个 CPU 的安全相关的通信, 示意如图 1-1 图 1-1 配置示意图 2.1 示例所使用的软硬件环境 STEP7 Professional V14 SP1 STEP7 Safety Advanced V14 SP1 CPU1511F-1PN 固件版本 V2.1 订货号 6ES7 511-1FK01-0AB0 CPU1215FC 固件版本 V4.2 订货号 6ES7215-1HF40-0XB0 注意 : 从固件版本 V4.2 版本开始的 S7-1200F CPU 才支持安全相关的通信 3
测试目的 : 通过 F-CPU 之间的 PROFINET 控制器与智能设备的安全通信, 使用安全程序指令 SENDDP 进行发送, 用 RCVDP 进行接收 以安全方式一次传送 16 个 BOOL 型数据和 2 个 INT 型数据, 如图 1-2 注意 : 必须在安全程序开始时调用 RCVDP, 必须在安全程序结束时调用 SENDDP CPU1511F 传输类型 CPU1215FC 16 Bool 2 INT 16 Bool 2 INT 图 1-2 数据交换数量和类型 2.2 硬件配置 2.2.1 IO 设备侧组态 1) 打开 TIA 软件, 点击 新建项目 输入项目名称, 设置项目文件存储路径 ; 点击 确定, 完成项目创建, 如图 2-1 图 2-1 新建项目 2) 建立代用控制器, 添加新设备, 选择的订货号和版本, 将设备名称命名为 : 代用控制器, 如图 2-2 4
图 2-2 插入代用控制器站 3) 在设备组态界面创建新的以太网子网, 设置 IP 地址, 如图 2-3 图 2-3 分配网络和设置 IP 地址 5
4) 重复上面的步骤, 在项目中添加 S7-1200 F CPU( 智能从站 ), 将以太网接口连接到同 一个子网, 设置 IP 地址 ( 设备名称和 IP 地址需要和 IO 控制器侧所带智能从站配置一致 ) 如 图 2-4 图 2-4 设置 S7-1200 F CPU 以太网参数 5) 设备视图中, 在 操作模式 选项, 激活 S7-1200F CPU 智能设备功能, 并分配给代用 控制器, 如图 2-5 6
图 2-5 设置操作模式 6) 在下面的 传输区域 中, 组态两个 CPU 之间的通信地址区, 在类型中一定要选择 F- CD, 箭头方向表示 S7-1500F CPU 发送数据到 S7-1200F CPU, 如图 2-6 如果需要发送的数据多于 16Bool 和 2INT, 可以再配置多个同样的传输地址区 S7-1200F CPU 如果需要发送数据到 S7-1500F CPU 也是相同配置方法, 只不过箭头方向要向左 图 2-6 组态 S7-1200F CPU 通信地址区 7
7) 选择站点, 整体编译, 导出 GSDML 文件, 名称为 PLC_1, 如图 2-7 图 2-7 S7-1200F CPU 生成 GSDML 文件 8
2.2.2 IO 控制器侧组态 1) 重复 2.2.1 中的步骤 1)~3), 新建项目 IO 控制器, 新建网络, 设置 IP 地址, 如图 2-8 图 2-8 新建 IO 控制器站点 2) 安装 S7-1200FC 的 GSDML 文件, 如图 2-9 图 2-9 添加智能从站 GSDML 文件 9
3) 在网络视图中,IO 控制器挂智能从站,IP 地址和设备名称同 S7-1200F 侧, 如图 2-10 Copyright ã Siemens 图 2-10 配置智能从站 4) 在智能从站的设备视图中, 配置 IO 控制器的通讯区 图 2-11 组态 S7-1500F CPU 通信地址区 10
2.3 编译下载 1) 将两个安全 CPU 都编译保存, 然后下载, 以 S7-1500F 下载为例, 如图 2-12~14 图 2-12 编译项目 图 2-12 搜索 CPU 11
图 2-14 下载 2) 1500F/1200F 项目编译保存下载后, 网络视图在线后状态, 说明两个 CPU 之间通信正常, 如图 2-15 图 2-15 硬件组态在线状态 12
2.4 通讯编程 1) 在 S7-1200F 智能设备侧, 安全运行组在添加安全 CPU 硬件时系统已经自动生成, 默认在 OB123 中调用安全主程序 Main_Safety_RTG1 FB1, 如图 2-16 图 2-16 安全运行组 2) 添加 F-DB, 用于 RCVDP 指令输出变量接口连接, 如图 2-17 图 2-17 建立接收数据 F-DB 13
3) 打开 程序块 下面的安全主程序 Main_Safety_RTG1 (FB1), 在程序段 1 中调用 RCVDP 数据接收功能指令 注意 :F 通讯程序接收指令, 必须在主程序的开始调用, 如图 2-18 图 2-18 插入接收功能指令 RCVDP 4) 接收功能指令 RCVDP 管脚定义, 如图 2-19 14
图 2-19 接收指令参数管脚 输入参数 ACK_REI: SUBBO_00 -SUBBO_15 SUBI_00 SUBI_01 DP_DP_ID TIMEOUT 1= 发生通信错误后, 对发送数据的重新集成确认 用于接收 BOOL 数据的安全值 用于接收 INT 数据的安全值 唯一的 SENDDP 和 RCVDP 之间的关联值, 确认发送和接收的对应关系, 示例中是 1, 与 S7-1500F 侧 SENDDP 的 ID 一致 安全相关的通讯的监视时间 LADDR IO 传输区域的硬件标识符, 示例中是 272( ), DEC 如下图 2-20 15
输出参数 ERROR: SUBS_ON ACK_REQ: SENDMODE RD_BO_00- RD_BO_15 RD_I_00 RD_I_01 RET_DPRD/ RET_DPWR DIAG 表 1 RCVDP 功能指令参数说明 1= 通信出错 1= 使用替代值 1= 需要对发送数据的重新集成进行确认 1= 具有 F_SENDDP 的 F-CPU 处于取消激活的安全模式中 接收的 BOOL 数据 接收的 INT 数据 DPRD_DAT/DPWR_DAT 的错误代码 诊断信息 注意 : 输出变量中, 除 RET_DPRD, RET_DPWR 和 DIAG 三个变量以外其它的变量都需要用故障安全的数据 5) 在指令中,LADDR 参数需要到 PLC 变量的系统常量中找到之前配置的传输地址区的硬件标识符 图 2-20 RCVDP 中 LADDR 管脚的填写 16
6) S7-1500F 控制器侧, 同样在 Main_Safety_RTG1 (FB1) 中, 新建 F-DB, 编写发送 程序, 如图 2-21,2-22 图 2-21 1500F 侧发送 F-DB 图 2-22 发送指令程序参数管脚 17
输入参数 SD_BO_00 SD_BO_15 SD_I_00 SD_I_01 DP_DP_ID TIMEOUT LADDR 输出参数 ERROR: SUBS_ON RET_DPRD/ RET_DPWR DIAG 表 2 SENDDP 功能指令说明 用于发送 BOOL 数据 用于发送 INT 数据 唯一的 SENDDP 和 RCVDP 之间的关联值, 确认发送和接收的对应关系, 示例中是 1, 与 S7-1200F 侧 RCVDP 的 ID 一致 安全相关的通讯的监视时间 接 IO 传输区域的硬件标识符, 示例中是 262(DEC), 如下图 2-23 1= 通信出错 1= 接收方输出故障安全值 DPRD_DAT/DPWR_DAT 的错误代码 诊断信息 注意 : 输出变量中, 除 RET_DPRD, RET_DPWR 和 DIAG 三个变量以外其它的变量都需要用故障安全的数据 7) 同样在 S7-1500F 系统常量表中找到与 S7-1200F CPU 通信数据区的硬件标识符填写在 LAADR, 如图 2-23 图 2-23 发送 LADDR 填写 18
8) 将两个 PLC 的程序分别进行编译, 然后下载到各自 PLC, 如图 2-24 Copyright ã Siemens 图 2-24 编译保存下载 (1500F 为例 ) 9) 使用监控表监控测试结果,S7-1500F 通过 SENDDP 指令将 M100.0 M100.1 和 MW102 发送,S7-1200F 通过 RCVDP 指令接收数据放置在建立的 DB3 中, 如图 2-25 图 2-25 监控结果 19