西门子S7-1500PLC 控制器产品系列中具有较大容量程序及数据存储器的 CPU,适用于具有较高程序范围和联网要求的苛刻应用。具有*处理速度,适用于二进制和浮点运算。用于系列机器、机器以及工厂中的跨领域自动化任务,在具有集中式和分布式 I/O 的生产线上作为集中式控制器使用。
产品简介
详细介绍
福建西门子S7-1500代理商欢迎您(总代理)
在TIA环境下实现S7-300F和S7-1500F之间的安全相关控制器与智能设备通讯
概念
安全相关的 PN 控制器和智能设备之间的通信
- 示例所使用的软硬件环境
- 硬件配置
- 通讯编程
概念
与在标准的系统中一样,在 TIA 安全系统中具有 PROFINET 接口的 S7-300F 和 S7- 1500F CPU 之间可以进行安全相关的控制器与智能设备通信。通信通过两个安全应用程序指令进行,即 SENDDP 指令用于发送数据,而 RCVDP 指令用于接收数据。这些指令由用户在 F-CPU 相应的安全程序中调用,可用于固定数量的 BOOL 和 INT 类型的数据进行安全传送。
安全相关的 PN 控制器和智能设备之间的通信
在本例程中,将 CPU317F-2PN/DP 作为一个 PROFINET 控制器,CPU1511F-1PN 作为一个 PROFINET 智能设备,SENDDP/RCVDP 指令实现两个 CPU 的安全相关的通信。
示例所使用的软硬件环境
STEP7 Professional V14 SP1
STEP7 Safety Advanced V14 SP1
CPU1511F-1PN 固件版本 V2.1 订货号 6ES7 511-1FK01-0AB0
CPU317F-2PN/DP 固件版本 V3.2 订货号 6ES7317-2FK14-0AB0
测试目的:通过 F-CPU 之间的 PROFINET 控制器与智能设备的安全通信,使用安全程序指令 SENDDP 进行发送,用 RCVDP 进行接收。以安全方式一次传送 16 个 BOOL 型数据和 2 个 INT 型数据,如图 1-1。
注意:必须在安全程序开始时调用 RCVDP,必须在安全程序结束时调用 SENDDP。
CPU1511F | 传输类型 | CPU317F |
16 Bool 2 INT | 16 Bool 2 INT |
图 1-1 数据交换数量和类型
硬件配置
1) 打开 TIA 软件,点击“新建项目”输入项目名称,设置项目文件存储路径;点击“确定”,完成项目创建,如图 2-1。
图 2-1 新建项目
2) 新建控制器站点,点击添加新设备,选择的订货号和版本,将设备名称命名为:300F IO CONTROL,如图 2-2。
图 2-2 插入 300F 站
3) 在设备视图界面创建新的以太网子网,设置 IP 地址,如图 2-3。
图 2-3 分配网络和设置 IP 地址
4)重复上面的步骤,在项目中添加 S7-1500 F CPU(智能 IO 设备),将以太网接口连接到同一个子网,设置 IP 地址,如图 2-4。
图 2-4 设置 S7-1500 F CPU 以太网参数
5)在“操作模式”中激活 S7-1500F CPU“IO 设备”功能,并分配给 S7-300F CPU 控制器,如图 2-5。
图 2-5 设置操作模式
6)在下面的“传输区域”中,组态两个 CPU 之间的通信地址区,在类型中一定要选择 F-CD,箭头向左方向表示 S7-1500F CPU 发送数据到 S7-300F CPU,如图 2-6。如果需要发送的数据多于 16Bool 和 2INT,可以再配置多个同样的传输地址区。S7-300F CPU 如果需要发送数据到 S7-1500F CPU 也是相同配置方法,只不过箭头方向要向右。
图 2-6 组态 S7-1500F CPU 通信地址区
将两个安全 CPU 都编译保存,然后下载,以 S7-300F 下载为例,如图 2-7。
图 2-7 编译搜索 CPU
图 2-8 下载
S7-300F/1500F 项目都编译保存下载后,网络视图在线后状态,说明两个 CPU 之间通信正常,如图 2-9。
图 2-9 硬件组态在线状态
在项目树中打开 S7-300F,安全运行组在添加安全 CPU 硬件时系统已经自动生成,默认在 OB35 中调用安全主程序“Main_Safety_RTG1”FB1,如图 2-10。
图 2-10 安全运行组
添加 F-DB,用于 RCVDP 指令输出变量接口连接,如图 2-11。
Copyright Siemens AG Copyright year All rights reserved
图 2-11 建立 接收数据 F-DB
打开“程序块”下面的安全主程序“Main_Safety_RTG1”(FB1),在程序段 1 中调用
RCVDP 数据接收功能指令。注意:F 通讯程序接收指令,必须在主程序的开始调用,如图
2-12。
图 2-12 插入接收功能指令 RCVDP
接收功能指令 RCVDP 管脚定义,如图 2-13。
图 2-13 接收指令参数管脚
输入参数 | |
ACK_REI: | 1=发生通信错误后,对发送数据的重新集成确认 |
SUBBO_00 -SUBBO_15 | 用于接收 BOOL 数据的安全值 |
SUBI_00 — SUBI_01 | 用于接收 INT 数据的安全值 |
DP_DP_ID | 的 SENDDP 和 RCVDP 之间的关联值,确认发送和接收的对应关系,示例中是 1,与 S7-1500F 侧SENDDP 的 ID * |
TIMEOUT | 安全相关的通讯的监视时间 |
LADDR | 接收数据区的起始地址,示例中是 4116(DEC),如下图 2-14 |
输出参数 | |
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 数据 |
RET_DPRD/ RET_DPWR | DPRD_DAT/DPWR_DAT 的错误代码 |
DIAG | 诊断信息 |
表 1 RCVDP 功能指令参数说明
在指令中,LADDR 参数需要填写传输区本侧的起始地址,如 S7-300F 侧,起始地址从4116 开始,如图 2-14。
图 2-14 RCVDP 中 LADDR 管脚的填写
同样在 S7-1500F 智能设备侧,新建 F-DB,然后在“Main_Safety_RTG1”(FB1)中, 调用发送程序指令 SENDDP,如图 2-15,2-16。
图 2-15 1500F 侧新建 F-DB
图 2-16 发送指令程序参数管脚
输入参数 | |
SD_BO_00—SD_BO_15 | 用于发送 BOOL 数据 |
SD_I_00 — SD_I_01 | 用于发送 INT 数据 |
DP_DP_ID | 的 SENDDP 和 RCVDP 之间的关联值,确认发送和接收的对应关系,示例中是 1,与 S7-300F 侧 RCVDP 的 ID * |
TIMEOUT | 安全相关的通讯的监视时间 |
LADDR | 接 IO 传输区域的硬件标识符,示例中是 260(DEC),如下图 2-17 |
输出参数 | |
ERROR: | 1=通信出错 |
SUBS_ON | 1=接收方输出故障安全值 |
RET_DPRD/ RET_DPWR | DPRD_DAT/DPWR_DAT 的错误代码 |
DIAG | 诊断信息 |
表 2 SENDDP 功能指令说明
注意:输出变量中,除“RET_DPRD”,“RET_DPWR”和“DIAG”三个变量以外其它的变量都需要用故障安全的数据。
在 S7-1500F 系统常量表中找到与 S7-300F CPU 通信数据区的硬件标识符填写在 LAADR, 如图 2-17。
图 2-17 发送 LADDR 填写
将两个 PLC 的程序分别进行编译,然后下载到各自 PLC,如图 2-18。
图 2-18 编译保存下载(1500F 为例)
使用监控表监控测试结果,S7-1500F 通过 SENDDP 指令将 M100.0、M100.1
和 MW102 发送,S7-300F 通过 RCVDP 指令接收数据放置在建立的 DB3 中,如图 2-19。
图 2-19 监控结果