WinCC 高速数据采集的实现(使用PLCSIMV5.4+SP5实现)

本文详细介绍了如何利用WinCC的RawData归档功能,结合S7-400 PLC和SFB37 (AR_SEND) 实现10毫秒的高速数据采集。通过设置DB块和配置WinCC变量记录,成功实现了两个过程变量的高速归档。
摘要由CSDN通过智能技术生成

摘要              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

      本文实现10毫秒的高速采集。

 
      详细信息请参见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
5. PLCSIM V5.4+SP5

注:我测试时使用的是 STEP7 V5.6+SP2 , WINCC7.4+SP1 ,WIN7 ---64位旗舰版

本例介绍了WinCC如何在相同时间间隔(10ms)下实现对两个过程变量采集归档的方法,即上述WinCC帮助文件中的示例6。所使用的操作系统和软件环境如下: 

1. Windows7 Professional SP1
2. STEP7 V5.6 SP2 HF1
3. WinCC V7.4 SP1
4. PLCSIM V5.4+SP5

 

步骤:

1. 在新建的STEP7项目中新建项目,如图1所示。

 

 2、在项目中插入SFB37和SFC1

3、新建Data Type(UDT1),即新建用户自定义类型DB块,可参照上述WinCC帮助文件中数据块的架构和参数介绍,定义过程变量的结构,如图所示。

(1)、新建UDT1

(2)、UDT1 内容如下

 UDT1用户自定义DB块中为什么要按照上述建立,参见下图。

4. 在项目中新建一个普通的Data Block(DB1) 

     注意:DB1数据块的符号名也命名为DB1,方便在程序中使用。

在DB1中定义数组PV,PV的类型选择UDT1,如图所示。 

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).HeaderType=9
PV(2).Cycle=10
PV(2).Unit_Type=1
PV(2).Unit_Range=3
PV(2).AR_ID_SubNum=2
PV(2).DataType=2
PV(2).NumOfPV=100

PV(2)的初始值和PV(1)基本相同,注意PV(1).AR_ID_SubNum=1,PV(2).AR_ID_SubNum=2。

注:我在OB100中对PV数组进行初始化,以下程序代码在OB100中对数PV(1)组和PV(2)组的HeaderType、Cycle、Unit_Type、Unit_Range、AR_ID_SubNum、DataType、NumOfPV成员进行初始化。

(5.1)在OB100中对PV(1)数组的HeaderType、Cycle、Unit_Type、Unit_Range、AR_ID_SubNum、DataType、NumOfPV成员进行初始化

 

(5.2)在OB100中对PV(2)数组的HeaderType、Cycle、Unit_Type、Unit_Range、AR_ID_SubNum、DataType、NumOfPV

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值