文档详情

WinCC高速数据采集的实现.docx

发布:2016-11-18约2.97千字共13页下载文档
文本预览下载声明
WinCC高速数据采集的实现 摘要:WinCC 采用 RawData 归档数据链接的方式实现对 S7-400 PLC 的高速数据采集 关键词:WinCC,RawData,数据采集,SFB37,AR_SEND,归档 Key Words:WinCC,RawData,Data Collection,SFB37,AR_SEND,Archive 前言 在一些应用场合,需要上位机对高速变化的过程数据进行归档记录。对于一般的网络通讯方式来说,WinCC 能提供的最高刷新速度是250 毫秒,但WinCC 采用RawData 归档数据链接的方式可以实现对S7-400 PLC 的高速数据采集。原理是PLC 将每个循环周期所采集的过程值(或PLC 以其他方式得到的数据或数据包)以一定的顺序存放在具有一定的格式的DB块中,当到达一定的数量后,PLC可以调用系统功能块 SFB37(AR_Send)将这个DB块主动地发送给WinCC, 然后WinCC会在后台自动调用标准化DLL来拆解数据,并将其按时间顺序保存在数据库中。在WinCC的过程画面中,可以使用在线趋势控件或在线表格控 件来查看所采集的数据。 由于是批量传送,可以有效地提高通讯效率,使高速数据采集成为可能,而这时所谓的采集频率就取决于你对保存在DB 块中的各过程值间的时间间隔的定义。可以定义的最小的时间间隔是1 毫秒。但如果是PLC 每个循环周期采样一次,那么定义的时间间隔应大于PLC 循环周期。DB块的最大尺寸是16KB。 详细信息请参见WinCC的帮助文件:WinCC System Information-通讯-SIMATIC S7 Protocol Suite-特殊功能-使用S7功能块AR_SEND进行数据交换。 条件 1.WinCC的版本为V5.1或更高 2.S7-400系列CPU 3.WinCC站与S7-400站建立S7连接(包括 MPI, ProfiBus, TCP/IP,工业以太网都可以实现) 4.编程人员能够熟练地使用STEP7和WinCC 本例介绍了WinCC如何在相同时间间隔(10ms)下实现对两个过程变量采集归档的方法,即上述WinCC帮助文件中的示例6。 所使用的操作系统和软件环境如下: 1.Windows7 Professional SP1 2.STEP7 V5.5 SP3 HF1 3.WinCC V7.2 Upd3 4.SIMATIC NET V8.2 SP1 5.WinAC RTX 2010(V4.6) SP1 注意:在本例中使用WinAC RTX代替S7-400,编程方式是相同的。WinAC RTX 2009(V4.5)及更高版本支持SFB37(AR_Send)。 步骤: 1.在新建的STEP7项目中新建PC Station,分别插入WinCC Application和WinLC RTX(必须定位在2号槽位),如图1所示。 图1 2.在NetPro中选择PC Station中的WinCC Application,双击下方表格的空白处插入S7 Connection,如图2、图3和图4所示。 图2 图3 图4 3.在WinLC RTX中新建Data Type(UDT1),参照上述WinCC帮助文件中数据块的架构和参数介绍,定义过程变量的结构,如图5所示。 图5 4.在WinLC RTX中新建Data Block(DB1),定义数组,类型选择UDT1,如图6所示。 图6 5.参照上述WinCC帮助文件中AR_SEND的变量属性,为DB1的数组PV分配如下相应的初始值: PV(1).HeaderType=9 PV(1).Cycle=10 PV(1).Unit_Type=1 PV(1).Unit_Range=3 PV(1).AR_ID_SubNum=1? PV(1).DataType=2 PV(1).NumOfPV=100 PV(2)的初始值和PV(1)基本相同,注意PV(1).AR_ID_SubNum=2。 6.在WinLC RTX中新建Function Block(FB1),在Interface-IN中新建输入参数AR_Send,选择Data Type为AR_Send,调用SFB37(AR_SEND)发送DB1,如图7所示。 图7 7.在WinLC RTX中新建Fucntion(FC1),调用FB1,并调用SFC1(READ_CLK)读取当前系统时间并写入DB1,如图8所示。 图8 8.在WinLC RTX中新建Function(FC3),指定SFB37(SAR_Send)发送的数据包长度,如图9所示。 图9 9.在WinLC RTX中新建Organization Block(OB100),调用FC3。 10.在WinLC RTX中的OB1中调用FC1。 1
显示全部
相似文档