利用BSEND/BRCV功能实现S7-300/400与WinCC的大数据量交换
Bulk Data Exchange between S7-300/400 and WinCC with BSEND/BRCV Function
Getting Started Edition (2008-1)
摘 要 本文介绍了如何在WinCC中使用BSEND/BRCV类型的原始数据类型,来实现与S7-300/400 PLC的大数据量交换。 关键词
BSEND/BRCV,原始数据 Key Words
BSEND/BRCV,Rawdata
A&D Service & Support
Page 2-18
目 录
一.WinCC BSEND/BRCV功能介绍..............................................................................4 二.Step7 中的组态:...................................................................................................4 三.WinCC的设置:......................................................................................................9 附录-推荐网址............................................................................................................17
A&D Service & Support
Page 3-18
一.WinCC BSEND/BRCV功能介绍
WinCC 支持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号为227 :《 如何实现WinCC对S7-400的高速数据采集》。
而对于BSEND/BRCV 功能,PLC端需要调用BSEND/BRCV功能块(SFB12/13,
FB12/13)将数据发送给WinCC的Rawdata变量。使用 S7-300PLC也可以实现(需要CP模板或集成的PN口等硬件支持)。但WinCC无法直接在画面中使用该变量,需要用脚本处理字节数组的方式来访问它。
本文以Step7 5.4 、WinCC V6.2和CPU315 -2 PN/DP 为例,利用以太网实现8K字节
的批量数据交换。
二.Step7 中的组态:
打开Simatic Manager, 新建项目插入一个S7-315 - 2 PN/DP 站,在硬件组态HW Config中设置PN口的IP地址:192.168.2.125 ,子网掩码:255.255.255.0。 并为其建立一个子网。
A&D Service & Support
Page 4-18
2 3
1
编译保存并下载该硬件组态。
点击工具栏上的NetPro按钮或点击菜单“Option”->“Configure Network”,打开NetPro编辑器。
点击选中S7-300站中的CPU315-2PN/DP,然后右键单击下面列表的空白处,出现菜单,如下图所示:
A&D Service & Support
Page 5-18
在点击菜单第一项“Insert New Connection”, 在弹出的对话框中点选 “(Unspecified)”
点击 “OK”确认输入,然后弹出下面的对话框:
2
3
1
4
A&D Service & Support
Page 6-18
请按上图所示设置,其中
1:此处IP为WinCC站的IP地址;
2:Local ID 在Step7的BSEND/BRCV中会用到; 3:不要选择此选项;
4:完后点击按钮“Address Details… ”, 在弹出的对话框中的Partner 列中选择连接资源 10,如下图所示:该参数会在WinCC的连接中使用:
完后点击 “OK”,一次关闭各对话框。保存编译NetPro,确认编译正确,然后点选该S7-300站后将该组态信息下载到PLC。
建立共享数据块DB1作为发送到WinCC的数据区(或用来接收WinCC的数据),在其中定义一个含有8000个字节元素的数组:
A&D Service & Support
Page 7-18
打开OB1,在语句表状态下输入“CALL SFB12, DB12”回车, 这样会自动将 SFB12 /BSEND函数和其背景数据块自动生成,同样调用“CALL SFB13, DB13”,具体示例程序如下:
注意:函数BSEND/BRCV中的参数 ID 就是NetPro中的 Local ID; R_ID要和WinCC中的设置一致。对于BSEND:SD_1为发送区始地地址和发送区最大长度;LEN: 为要发送数据的长度(字节)(本例中请先给MW204赋值:8000 )
对于BRCV:RD_1为接收区起始地址和接收区最大长度;LEN: 为接收到数据的长度(字节)。
编译保存OB1。
关于函数的详细说明请参见Step7的帮助文档。
在OB100中给 BSEND的LEN参数MW204 赋初值 8000:
A&D Service & Support
Page 8-18
保存编译OB100。
完后将整个站下载到PLC。
2
1
选中CPU,下载整个站。
三.WinCC的设置:
设置WinCC站的IP地址:在计算机“控制面板”Æ“网络连接”中设置网卡的IP地址为:192.168.2.232,与NetPro 中的设置一致,子网掩码:255.255.255.0。可以用Ping 命令,确认网络是否连通。
注意:WinCC的IP地址必须和NetPro中所设置的IP一致。
A&D Service & Support
Page 9-18
打开WinCC新建项目。在变量管理器中添加通道“Simatic S7 Protocol Suite”,然后右键单击 “TCP/IP”,添加“新驱动程序连接”,参照下图设置:
1
2 3
4
图中 :
3:选择发送接收原始数据块
4:此处 连接资源与 BSEND/BRCV中的R_ID参数要一致。
添加Rawdata类型的变量“Raw”:
A&D Service & Support
Page 10-18
设置变量地址:选择类型为“BSEND/BRCV”;设置R_ID为 15,务必与BSEND/BRCV功能块中的参数R_ID一致。
2
1
设置WinCC逻辑设备名:右键单击TCP/IP,点击系统参数项
A&D Service & Support
Page 11-18
1
2
在弹出式对话框的第二页中,下拉菜单中选择或直接输入“CP-TCPIP”
1 2
确定,退出WinCC,并重新启动WinCC。
接下来,需要在操作系统的控制面板中设置“Set PG/PC interface”中的访问节点 “CP-TCPIP”:
A&D Service & Support
Page 12-18
双击“设置PG/PC接口”,弹出对话框,在下拉菜单中选择“CP-TCPIP” 项(如下图所示的 1)。如果没有该项,选择“<添加/删除>”(如下图所示的 2),添加一个 “CP-TCPIP” 访问节点。然后将该访问节点指向实际的物理网卡(如下图所示的 1)。
2
1
至此,通讯设置完成。 A&D Service & Support
Page 13-18
在WinCC编写脚本读写PLC的DB块。
打开WinCC 图形编辑器,在画面上放置两个按钮和一个诊断对话框, 一个按钮用来向PLC写入8000个BYTE的数据(下图中的2); 一个按钮用来从PLC读取8000个BYTE的数据(下图中的1)。
诊断对话框(下图中的3)是一个“应用程序窗口”,用来显示PLC数据。在对象选项板的智能对象中可以找到它,将其放置到画面上时选择其模式为“Globle Script”和“GSC Diagnostics”,注意该对象的名称应改为英文字母,如“aaa”等,如是中文对象名时,无法显示诊断内容。
1 2
3
4
图中4是点击“SetRawData”按钮时触发的一次性写入PLC 8000 字节数据的示例脚本。
下面的脚本为点击“GetRawData”按钮时触发的一次读取8000字节数据的示例脚本。
A&D Service & Support
Page 14-18
激活 WinCC运行系统。
可以通过WinCC通道诊断确定连接建立。
下图为WinCC运行画面中点击按钮“GetRawData”后,诊断窗口中显示的部分RawData数据:
A&D Service & Support
Page 15-18
注意:读取数据前,先将M200.0(REQ)置1,让PLC 调用BSEND将数据发送到WinCC的缓冲区中,否则缓冲区中可能没有数据,显示为0; 或数据没有更新,为上一次的值。
写入操作:在WinCC运行画面中点击按钮SetRawData,数组a[8000]将被写入到PLC,注意因为M300.0 空闲时一直为1,即BRCV的EN_R处于使能状态,故可以随时接收WinCC的写入数据。
重要提示:
本文档只注重功能的实现和演示,实现方法并不唯一,仅供参考。同时程序中未做任何错误或异常处理,使用中请根据实际情况改写之,因此使用者须风险自负。技术支持热线不对该文档提供技术支持和排错。
A&D Service & Support
Page 16-18
附录-推荐网址
AS
西门子(中国)有限公司
自动化与驱动集团 客户服务与支持中心
网站首页:http://www.ad.siemens.com.cn/Service/
AS常问问题:http://support.automation.siemens.com/CN/view/zh/10805055/133000 AS更新信息:http://support.automation.siemens.com/CN/view/zh/10805055/133400 “找答案”AS版区:
http://www.ad.siemens.com.cn/service/answer/category.asp?cid=1027PLC“网上课堂”:http://www.ad.siemens.com.cn/service/e-training/list.asp?columnid=4 HMI
西门子(中国)有限公司
自动化与驱动集团 客户服务与支持中心
网站首页:http://www.ad.siemens.com.cn/Service/
HMI常问问题:http://support.automation.siemens.com/CN/view/zh/10805548/133000 HMI更新信息:http://support.automation.siemens.com/CN/view/zh/10805548/133400 “找答案”WinCC版区:
http://www.ad.siemens.com.cn/service/answer/category.asp?cid=1032 WinCC“网上课堂”:
http://www.ad.siemens.com.cn/service/e-training/list.asp?columnid=8 Panel/ProTool/WinCC Flexible “网上课堂”:http://www.ad.siemens.com.cn/service/e-training/list.asp?columnid=9
A&D Service & Support
Page 17-18
因篇幅问题不能全部显示,请点此查看更多更全内容