操作指南 3/2015 利用 BSEND/BRCV 功能实现 S7-300/400 与 WinCC Professional 的大数据量交换 BSEND/BRCV, WinCC Professional, 原始数据 https://support.industry.siemens.com/cs/cn/zh/view/109477719
目录 1 WinCC BSEND/BRCV 功能介绍... 3 2 经典 STEP 7 和 WinCC(TIA Portal) 的组态... 4 2.1 经典 STEP 7 组态... 4 2.2 组态 WinCC 站... 4 2.3 组态 WinCC 的连接和变量... 5 2.4 组态 WinCC 的画面和脚本... 6 2.5 调试项目... 7 3 STEP 7(TIA Portal) 和经典 WinCC 的组态... 9 3.1 组态 PLC 的硬件设备... 9 3.2 组态 PLC 的网络连接... 9 3.3 编写 PLC 程序... 11 3.4 组态 WinCC 的连接和变量... 13 3.5 组态 WinCC 画面和脚本... 14 3.6 调试项目... 16 4 TIA Portal 中 STEP 7 和 WinCC 的组态... 18 4.1 TIA Portal 中 STEP 7 的组态... 18 4.2 TIA Portal 中 WinCC 的组态... 18 4.3 调试项目... 18 2
1 WinCC BSEND/BRCV 功能介绍 同经典 WinCC 相同,WinCC Professional 也支持 Rawdata( 原始数据 ) 类型的变量, 可以实现和 PLC 的批量数据交换 其中 Send/Receive 类型的 Rawdata 变量因其受 PDU 尺寸的限制 (240/480 字节 ), 故最大数据尺寸为 208/448 字节, 能够实现中小规模的批量数据交换 但对于大批量的数据交换可以考虑使用 AR_SEND 和 BSEND/BRCV 功能 两者都需要 PLC 端调用功能块, 主动将最大 16K 字节的数据发到 WinCC 的 Rawdata 变量 AR_SEND(SFB37) 只适用于 S7-400 系列 PLC,S7-300PLC 不支持 关于此内容请参见 WinCC 的帮助文档和西门子下载中心中 ID 号为 A0109 的 如何实现 WinCC 对 S7-400 的高速数据采集 而对于 BSEND/BRCV 功能,PLC 端需要调用 BSEND/BRCV 功能块 (SFB12/13 或 FB12/13) 发送到或接收 WinCC 的 Rawdata 变量 该方案主要适用于 S7-400PLC, 但现在使用有集成的 PN 接口的 S7-300PLC 也可以实现, 如 CPU315-2PN/DP 但 WinCC 无法直接在画面中使用该变量, 需要用脚本处理字节数组的方式来访问它 由于 S7-300/400 可以使用经典 STEP 7 和 STEP 7(TIA Portal) 组态,SCADA 系统可以使用经典 WinCC 和 WinCC(TIA Portal) 组态, 所以实现该功能的组态方式有四种, 如表 1-1 所示 WinCC BSEND_BRCV 经典 WinCC WinCC (TIA Portal) 经典 STEP 7 * STEP 7 (TIA Portal) 表 1-1 注意 :* 经典 STEP 7 和 WinCC 的组态方式可以参考以下链接 : http://www.ad.siemens.com.cn/download/docmessage.aspx?id=3710 http://www.ad.siemens.com.cn/download/docmessage.aspx?id=2527 本例描述在 TIA Portal 中如何实现 S7-300/400 与和经典 WinCC 和 WinCC Professional 的 BSEND/BRECV 功能, 使用的硬件和软件如表 1-2 所示 AS/PC 站固件 / 操作系统组态软件 CPU 317F- 2PN/DP IPC 547C HP Compaq 8200 Elite 表 1-2 6ES7 317-2FK14-0AB0 FW V3.2 Windows 7 Ultimate SP1 x64 Windows Enterprise 8.1 x64 STEP 7 Professional 2010 SR4 STEP 7 Professional V13 SP1 Upd1 WinCC V7.3 SE WinCC Professional V13 SP1 Upd1 WinCC Runtime Professional V13 SP1 Upd1 3
2 经典 STEP 7 和 WinCC(TIA Portal) 的组态 2.1 经典 STEP 7 组态 在经典 STEP 7 中组态 PLC 站 建立 S7 连接和编写 PLC 程序调用 BSEND/BRCV 发送和接收数据的具体步骤请参考章节 1 中的链接, 本例中不再赘述 2.2 组态 WinCC 站 在 TIA Portal 中添加新设备, 选择 PC 系统 SIMATIC HMI 应用软件 WinCC RT Professional, 如图 2-1 所示 图 2-1 在设备视图中, 在 PC Station 中插入硬件目录 通信模块 PROFINET/Ethernet 常规 IE, 如图 2-2 所示 图 2-2 4
为该该网卡卡分分配配以以太网网的的网网络和 IP 地址, 如图 2-3 所示示 图 2-3 注意 :IP 地址址应应该与 STEP 7 中组组态态的 S7 连接接中中通通信信伙伴伴的 IP 地址址一致致 2.3 组态 Wi inccc 的连连接接和和变变量 在连连接中中添添加加新新连接, 通信驱驱动动程程序序选择 SIMATIC S7-300/400,, 接口口选选择 TCP/IP, 访问问点点选择择相相应应的的访问问点点或或通信通信设设备 ; 在 WinCC RT Prof 连接接中中设置相应 PLC 的通通信信参参数, 选择择发发送 / 接收收原原始始数据据块, 输入相相应应的的连接接编编号, 如图 2-4 所示示 图 2-4 注意 : 连接接编编号号应该该与 STE EP 7 中组态的 S7 连接接资资源编编号号一一致致 在 HMI 变量 默认认变量量表表中中添添加新新变变量, 在变变量量属属性 常规规中, 为变变量量选择择连接, 数据据类类型型选选择 RAW,, 如图 2-5 所示示 5
图 2-5 在变量属性 原始数据中, 选择原始数据模式为 BSEND/BRCV, 输入 R_ID 数值, 如图 2-6 所示 图 2-6 注意 : 值 R_ID 应该与 PLC 程序中调用 BSEND/BRCV 的参数 R_ID 一致 2.4 组态 WinCC 的画面和脚本 在画面中新建画面, 添加应用程序窗口和两个按钮用于调试, 其中设置应用程序窗口属性 窗口内容为脚本, 模板为 GSC 诊断 如图 2-7 和图 2-8 所示 图 2-7 6
图 2-8 在按钮 GetRawData 的鼠标事件中调用函数 GetTagRaw 读取原始数据变量, 如图 2-9 所示 图 2-9 在按钮 SetRawData 的鼠标事件中调用函数 SetTagRaw 写入原始数据变量, 如图 2-10 所示 图 2-10 2.5 调试项目 下载 PLC 项目, 并运行 WinCC 项目 7
在 STEP 7 中的监控表输入相应的数据块 DB1 数值, 在 WinCC 画面中单击 GetRawData 读取原始数据变量, 如图 2-11 所示 图 2-11 注意 : 在 WinCC 读取原始数据变量前, 在 STEP 7 中的监控表需要置位变量 BSEND_Request, 以触发 BSEND 发送 DB1 到 WinCC 的变量缓冲区中, 否则变量缓冲区中可能没有数值, 显示为 0, 或变量缓冲区没有更新, 为先前的数值 在 WinCC 画面中单击 SetRawData 写入原始数据变量, 在 STEP 7 中的监控表检测相应的数据块 DB1 数值 注意 : 在 WinCC 写入原始数据变量时, 将数组 a[8000] 写入到 PLC, 因为 BRCV_Enable 一直处于置位状态, 所以数据块 DB1 可以随时接收 WinCC 写入的数据 8
3 STEP 7(TIA Portal) 和经典 WinCC 的组态 3.1 组态 PLC 的硬件设备 在 TIA Portal 中添加新设备, 选择相应的 CPU, 如图 3-1 所示 图 3-1 在设备视图中为 CPU 分配以太网的网络和 IP 地址, 如图 3-2 所示 图 3-2 3.2 组态 PLC 的网络连接 在网络视图中选择连接 S7 连接, 选择 CPU 的以太网接口拖拽未指定通信伙伴的连接, 如图 3-3 所示 9
图 3-3 在 S7 连接的属性 常规中, 为通信伙伴输入 IP 地址, 如图 3-4 所示 图 3-4 注意 : 该 IP 地址为运行 WinCC 项目的 PC 用于和 PLC 通信的以太网卡的 IP 地址 在 S7 连接的属性 本地 ID 中, 输入本地 ID, 如图 3-5 所示 图 3-5 注意 : 该本地 ID 用于章节 3.3 中的 PLC 编程 ( 图 3-9) 在 S7 连接的属性 特殊连接属性中, 禁用主动建立连接, 如图 3-6 所示 10
图 3-6 在 S7 连接的属性 地址详细信息中, 为通信伙伴输入连接资源号, 如图 3-7 所示 图 3-7 注意 : 根据实际情况选择不小于 10 的资源号, 该连接资源号用于章节 3-4 中 WinCC 连接 ( 图 3-14) 的通信参数设置 3.3 编写 PLC 程序 在 PLC 变量 默认变量表中定义相关变量, 用于 BSEND/BRCV 编程, 如图 3-8 所示 图 3-8 11
新建函数块 FB2, 调用 BSEND/BRCV 编程, 如图 3-9 所示 图 3-9 注意 :BSEND/BRCV 中参数 ID 需要参考章节 3.2 中的 S7 连接设置 ( 图 3-5); 参数 R_ID 用于章节 4.1 中 WinCC 变量的地址标识 ( 图 4-2) 新建数据块 DB1, 添加一个 8000 字节的数组 新建组织块 OB100, 为 BSEND 设置发送数据长度, 如图 3-10 所示 图 3-10 12
注意 : 使用 BSEND/BRCV 和 WinCC 变量通信的最大长度为 16K 字节 本例中设置 BSEND 设置发送长度为 8000 字节 在组织块 OB1 中调用 FB2, 如图 3-11 所示 图 3-11 3.4 组态 WinCC 的连接和变量 在 WinCC 项目管理器中, 打开变量管理, 在 Configuration Studio 中添加通信驱动 SIMATIC S7 Protocol Suite, 在 TCP/IP 通道下新建连接, 在该连接下新建变量, 在变量属性 常规 数据类型选择原始数据类型, 地址对话框中选择原始数据, 设置 R_ID, 原始数据类型选择 BSEND/BRCV, 如图 3-12 所示 3-12 注意 : 地址标识 R_ID 应该与章节 3-3 中 PLC 程序 ( 图 3-9) 中的参数 R_ID 一致 在 TCP/IP 通道下的系统参数 单元 逻辑设备名称中选择相应的访问点或通信设备, 如图 3-13 所示 13
图 3-13 在 TCP/IP 通道下的连接属性中设置 PLC 的相关通信参数, 选择发送 / 接收原始数据类型, 如图 3-14 所示 图 3-14 注意 :S7 网络地址应该与章节 3-1 中控制器属性 ( 图 3-2) 一致 ; 连接资源编号应该与章节 3.1 中 S7 连接属性 ( 图 3-7) 中的连接资源编号一致 3.5 组态 WinCC 画面和脚本 在画面编辑器中新建画面, 添加应用程序窗口和两个按钮用于调试, 其中设置应用程序窗口属性 窗口内容为 Global Script, 模板为 GSC Diagnostics 如图 3-15 所示 14
图 3-15 在按钮 GetRawData 的鼠标事件中调用函数 GetTagRaw 读取原始数据变量, 如图 3-16 所示 图 3-16 在按钮 SetRawData 的鼠标事件中调用函数 SetTagRaw 写入原始数据变量, 如图 3-17 所示 15
图 3-17 3.6 调试项目 下载 PLC 项目, 并运行 WinCC 项目 在 TIA Portal 中的监控表输入相应的数据块 DB1 数值, 在 WinCC 画面中单击 GetRawData 读取原始数据变量, 如图 3-18 所示 图 3-18 注意 : 在 WinCC 读取原始数据变量前, 在 TIA Portal 中的监控表需要置位变量 BSEND_Request, 以触发 BSEND 发送 DB1 到 WinCC 的变量缓冲区中, 否则变量缓冲区中可能没有数值, 显示为 0, 或变量缓冲区没有更新, 为先前的数值 在 WinCC 画面中单击 SetRawData 写入原始数据变量, 在 TIA Portal 中的监控表检测相应的数据块 DB1 数值, 如图 3-19 所示 16
图 3-19 注意 : 在 WinCC 写入原始数据变量时, 将数组 a[8000] 写入到 PLC, 因为 BRCV_Enable 一直处于置位状态, 所以数据块 DB1 可以随时接收 WinCC 写入的数据 17
4 TIA Portal 中 STEP 7 和 WinCC 的组态 4.1 TIA Portal 中 STEP 7 的组态 在 TIA Portal 中 STEP 7 的组态, 请参考章节 3.1~ 章节 3.3 中的描述 4.2 TIA Portal 中 WinCC 的组态 4.3 调试项目 在 TIA Portal 中 WinCC 的组态, 请参考章节 2.2~ 章节 2.4 中的描述 调试项目, 请参考章节 3.6 和章节 2.5 中的描述 18