logo资料库

基于S7-400 PLC及WinCC的高速数据采集系统的设计.pdf

第1页 / 共2页
第2页 / 共2页
资料共2页,全文预览结束
《工业控制计算机》2008 年 21 卷第 6 期 77 基于 S7- 400 PLC 及 WinCC 的高速数据采集系统的设计 S7- 400 PLC and WinCC Hig h Sp eed Data Gathering Sys tem (1 长沙航空职业技术学院,湖南 长沙 410124;2 华中科技大学光电子科学与工程学院,湖北 武汉 430074) 刘悦音 1,2 描述 WinCC 端利用原始数据方式,S7- 400 PLC 端使用数据块作为数据缓冲区,实现高速数据采集的方法。数据采集 摘 要 周期达到 10ms 。 关键词:PLC 机制,WinCC 组态,数据采集,缓冲区,动态效果 Abs tract This paper des cribes the WinCC end us e primary data way,SIMATICS7- 400 the PLC end us e block data has taken the data buffer,the realization high s peed data gathering method.The data acquis ition cycle achieves 10ms . Keywords :PLC mechanis m,WinCC configuration,data acquis ition,buffer,dynamic effect 在使用 PLC 机制实现控制的领域,大多使用 WinCC 等组 态工具实现对现场信号的采集功能并将数据存储到上位机数据 库,但由于受到通讯性能等原因的限制,通常的方法所能实现的 数据采集周期局限于秒级。对于一般意义的现场信号,对它的测 控所要求的数据周期要求并不高,通常 1~2s 的采集周期,就足 以满足我们对现场信号的监控精度。但在某些特定领域,譬如快 速反应系统,其整个反应过程小于 5s ,要分析了解其在整个反 应过程中的参数变化情况,即便以 500ms 的采集周期,数据采 集量仍然太少,分析结果仍然不够精确。而在此情况下,上位机 用于与控制器通讯的系统资源耗费已经非常高,再加上数据处 理、画面、数据库等任务,在变量规模尚不算多的情况下,上位机 的负荷已经不堪重负。 1 PLC+WinCC 模式下的高速数据采集系统设计 对以上情况的数据处理,通常的解决方案是使用带高速处 理功能的数据采集板卡,数据卡插在计算机插槽中,通过板卡提 供的驱动程序接口,使用高级语言如 C++等编程实现。但同时, 此解决方案的缺点又是非常明显的,首先,整个系统的规模受到 非常大的限制。即便系统的其他控制对象均为普通信号,但由于 计算机的扩展插槽数量受限制,导致能实现的点数往往仅限于 最多不超过几十个点。这样,如果面对的是稍大规模的项目,数 据采集卡的模式就无能 为 力 了 。 因 而 我 们 尝 试 使 用 PLC + WinCC 模式下问题的解决方法。 在数据采集卡中,根据数据采集的周期不同,会分为普通采 集卡和高速采集卡,而在高速采集卡的性能指标中,非常重要的 就是它提供的缓存区的容量。许多采集卡会有如 1KB 或者 2KB 的数据缓冲区,用于实现高速采集数据的缓存。采集卡从现场获 得信号并进行 A/D 转换之后,将数据存储在缓存区中,而 PC 通过它的扩展 PCI 插槽从板卡获取数据。这个过程说到底其实 也是一种通讯的过程。同时为了保证数据采集的连续性,通常的 方法是设定一个缓冲区半满的标志,或者说将整个缓冲区分成 两部分,采集来的数据,首先堆栈到缓冲区 1 中,当缓冲区 1 存 满,则发出一个半满标志到计算机,计算机收到这个半满信号, 则启动读取程序,将缓冲区 1 内的数据读取到计算机内存中。当 数据读取结束,清空缓冲区 1 内的数据,而在此期间,高速采集 的数据,缓存在缓冲区 2 中。同样的道理,当缓冲区 2 满之后,同 样发出半满信号,数据从缓冲区 2 转移到计算机。如此形成循 环。整个逻辑实现的基础就是,数据的集中通讯比分散通讯的效 率高得多,在远远低于数据堆满一个缓冲区的时间内,已满数据 能够有充分的时间转移到计算机中。根据缓冲区大小的不同,在 缓冲区比较小的情况下,为了保证数据半满之后,能够尽快将数 据读出,以满足下一个周期的使用,半满信号往往需要较高的优 先级,在计算机内以中断的方式,通知后续的处理过程。但如果 缓冲区尺寸能够提供得比较大,留给主机与板卡通讯的查询时 间能够足够长,那么即便是用普通 I/O 方式来处理半满信号,也 同样可行。基于上述思想同样的思路,我们可以应用到 WinCC+ S7- 400 PLC 的系统中来。 2 PLC+WinCC 模式下的高速数据采集系统的实现 2.1 在 WinCC 中连续数据的读取 在 WinCC 中可以建立原始数据类型的变量。所谓的原始数 据类型,就是在 WinCC 中定义变量的时候,只需要指定数据在 PLC 中的开始地址和长度,而具体数据的排列方式定义,可以由 用 户 自 行 定 义 。 而 同 时 在 WinCC 的 趋 势 变 量 记 录 中 支 持 AR_SEND 功能块的原始数据类型,它分别设计了趋势变量记 录可以接受的将近十种原始数据类型的结构,这些数据结构原 理大同小异,无非所定义的变量数不同,有针对一个采集数的, 也有针对多个采集数的。时间标签的记录方式也不同,有不带时 间标签的,也有带时间标签的,有的每条记录均带时间标签,而 有的仅仅首条记录带有时间标签,后续的记录以相同的时间间 隔平移后推。 只对一个归档变量进行记录,同时,为了节省数据存储的空 间和节省通讯耗时,我们选择其中的第二种数据类型,即“具有 等间隔时间标志的过程值”。这种数据类型的描述如下: 1)DB 块地址内容 0.0 报文类型=1 2.0 年 月 4.0 日 小时 6.0 分钟 秒 8.0 0.1s 0.01s 001s 工作日 10.0 周期=10 14.0 单元(类型)=1 单位(范围)=3 16.0 AR_ID 子编号=0 18.0 过程数据:数据类型 20.0 过程值数量=2000 24.0 过程值 1
78 28.0 过程值 2 其中 22.0 之前的 22 个 BYTE 存放的报文头,之后为实质 的数据序列。 2)报文头的各参数含义如下: 报头类型=1 报头类型定义了报头中所包含的信息的类型。 报头类型 时间标志 AR_ID 子编号 0 不带时间标志的报头 不带 AR_ID 子编号的报头 1 带时间标志的报头 不带 AR_ID 子编号的报头 8 不带时间标志的报头 带 AR_ID 子编号的报头 9 带时间标志的报头 带 AR_ID 子编号的报头 3)时间标志 时 间 标 志 包 含 SIMATIC S7 BCD 格 式 的 日 期 和 时 间 。 WinCC 不使用工作日条目。 周期=10 在周期中读取过程值。该参数是在单位(范围)处指定的时间 单位的因子。数据长度:双字。 “周期”=10;“单位(范围)”=3 意思是:过程值读取周期=10ms 单元(类型)=1 指定时间信息的类型并修改参数“过程值的数目”。 根据以上的定义,我们在 S7 - 400 PLC 中建立数据块 DB10,分别在 Step7 和 WinCC 中做相应的调用。建立 FB37 调 用 SFC37 AR_SEND 函数发送数据。其中 MW14=8022,表示 整个发送数据区长度为 8022 个字节,除了包含 22 个报文头之 外,我们建立 2000 个 REAL 型的数据,长度 8000 个字节。所使 用的变量 M10.0 即为归档的使能位,使能之后 PLC 主动与 WinCC 进行通讯,完成后 M10.2=1。在 OB1 调用的 FC 块中调 用 FB37,自动分配 AR_ID=16#1。然后在 WinCC 中建立一个 RAW DATA TYPE 的变量,变量记录中,选择过程变量,并制定 AR_ID 一致。这样,通过使能位 M10.0 的控制命令,就可以将数 据区中的 2000 个数据发送到 WinCC 数据库中。这里的数据区 尚没有任何数据,需要我们编程实现数据序列。 2.2 双缓冲区模式实现连续记录的过程 (1)生成信号 正常应用时,数据大多直接从模拟量模块采集,实验中为了 方便检查效果,在 OB35(10ms ) 中生成争弦曲线,周期为 20s ,2000 个数据。采集的数据放 在 MD404 中,实数形式。 (2)数据记录到缓冲区 首先建立长度 4000 个 REAL 的数据块 DB400,作为我们 的双缓冲区: 基于 S7- 400 PLC 及 WinCC 的高速数据采集系统的设计 OB35 中使用间接寻址编程,每采集一个数据,依次放入缓 冲区,并在指针分别达到 2000 和 4000 的时候,生成半满信号。 M495.0 和 M495.1 分别为缓冲区 1 和缓冲区 2 的满标志,当缓 冲区 2 满的同时,切换指针回 0。另外,在每个缓冲区记录首行 数据的时候,记录下当前的系统时间。 (3)数据从缓冲区发送到 WinCC 在 OB1 调用的 FC 中编程实现:根据半满标志位状态,分 别完成的工作:记录开始时间值送到数据区 8 个字节。2000 个 数据送到数据区 8000 个字节。指定数据长度 2000,使能通讯标 志。完成后此半满标志复位。 2.3 调试效果 在 WinCC 的趋势图画面中添加对此归档的监视,可以看到 动态效果,每过 20s ,图像刷新一次,一个完整的正弦曲线周期 被添加,2000 个数据记录被保存。 每条记录之间的时间间隔为足够精确的 10ms ,说明所有按 照设计精度记录的数据,全都没有丢失的被记录下来了。 3 结束语 由于高速数据采集所站用的系统资源较多,采集来的数据 占用空间也很大,所以通常情况下,这种高速数据的采集应当有 一个开关,就是只有在需要的时候才进行数据采集。所以程序还 需要做一些相应的处理,使用一个 WinCC 能控制的中间量作 为触发开关。在触发的上升沿,数据指针指向首行,下降沿时,判 断指针位置,判断在缓冲区 1 还是缓冲区 2,并且在缓冲区中的 有效数据数量,在发送任务中根据实际的数量,而不是正常半满 下的 2000。 使用 S7- 400 PLC 配合 WinCC,我们成功实现了高速数据 的采集,采集周期达到了 10ms ,而且通过不同的通讯协议接口, 也做了耗时统计,结果在使用 MPI 接口 187.5kbit /s 时,当数据 量为 6000 个时,写入时间大概要 10s ,而使用 10M 工业以太网 ISO 协议,需要的时间大概为 600ms 。可见在高速采集情况下, 工业以太网的效果要好得多,应当尽量采用工业以太网。参数设 置表中,也可以使用比 10ms 更小的周期,理论上的最高限能达 到 1ms ,但这时除了 PLC 的定时中断需要使用 1ms 周期,从而 占用了 PLC 更大的运行资源之外,缓冲区的尺寸设计也需要非 常谨慎。 参考文献 [1]杨路明,雷亚军.组态软件 WinCC 在自动监控系统中的应用[J ].计 算技术与自动化,2003,22(4) [2]区益善.计算机网络工程手册[Z].北京:电子工业出版社,1993 [收稿日期:2007.7.10] !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! NI 为交互式动手课程引入新版原型开发平台 6 月,NI 发布了 NI ELVIS II 硬件,它是设计与原型开发平台的最新版本,被全球众多教师应用于动手实验和项目学习中。NI ELVIS II 基于强大的 LabVIEW 图形化系统设计软件,为教师提供了 12 种新型 USB 即插即用仪器。它与用于 SPICE 仿真的 Mul- tis im 10.1 软件的完全整合,简化了电路设计教学。此外,教师可以将 NI ELVIS II 与第三方板卡以及课程资源套件结合在一起使 用,教授控制设计、通信以及微控制器的概念。 NI 院校关系部门副总裁 Ray Almgren 说:“NI ELVIS II、LabVIEW 图形化系统设计软件以及它们与 Multis im 10.1 的紧密整 合将最尖端的硬件和软件技术结合在一起,为科学和工程实验室创建了理想的动手平台。NI ELVIS II 汇总了来自世界各地教师的 宝贵意见,按照教师的需求演示课堂教学中的理论概念,同时为学生提供了使用 LabVIEW 和 Multis im 在交互式环境中对概念进行 探索和设计的机会。” 全新的 NI ELVIS II 包括对过去版本的向下兼容特性、USB 即插即用连接的友好特性以及较小的外形尺寸,从而可以简化安 装与实验室维护。NI ELVIS II 还在低成本、简单易用的平台中包含了工程和科学实验室中最为常用的 12 种仪器,包括示波器、函 数发生器、可变电源以及隔离式数字万用表。由于 NI ELVIS II 基于 LabVIEW 软件,教师还能方便地自定义 12 种仪器,或使用提供 的源代码创建他们自己的仪器。
分享到:
收藏