WinCC高速数据采集的实现.docx
文本预览下载声明
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
显示全部