工控网首页
>

应用设计

>

工业自动化系统中的Excel工业报表系统

工业自动化系统中的Excel工业报表系统

2005/7/18 13:25:00
1. 项目的产生(问题的提出): 2. 数据获取 3. 什么是VBA 4. 报表程序框图(见附录) 5. 报表的浏览 6. 报表的自动保存和定时自动打印 7. 起动画面: 附录:报表程序框图 1. 项目的产生(问题的提出): 在企业综合自动化系统(CIPS——Computer Integrated Process Control System)中,管理网需要从控制网上实时地获取工艺生产过程数据以满足管理的不同需求。由于控制网上的DCSPLC和其他智能仪器仪表通常来自不同的厂商,相互之间的通讯非常复杂。甚至由于通讯接口不够灵活,导致控制网与管理网之间数据的互操作性差、通讯的稳定性差、管理软件功能受到限制。因此,如何有效、可靠、实时和高速地从控制网中获取在管理网上所需要的各种实时数据,是在企业综合自动化实施过程中普遍关注的问题。 工业控制领域的生产数据,经常涉及到数据信息的分析、加工,最终还需把统计结果形成各种形式的报表自动生成,自动打印,提供给用户,随着网络的飞速发展无纸办公的兴起,用户希望这种报表能通过网络发送到世界的不同地方,身在异地的决策者能随时看到工厂自动生成的生产报表(也许这就是工业IT技术的一部分吧),而目前的工业自动化系统所生成的报表是不通用的;另一方面我们中国人的报表太复杂了!无规则、嵌套、斜线、交叉线等历来都是困挠开发人员的最大问题。用户可是不管你采用了多么先进的DCS、PLC系统,在报表上他们最感兴趣的是出来的报表如何漂亮,出报表的操作如何熟悉简单,不用专门学习。EXCEL是一个非常优秀的创建报表的工具。它提供的单元格任意合并、拆分和绘图功能基本上能够满足设计所有复杂报表的需求。它对任意一个单元格的格式随意控制,更为随心所欲地设计报表提供了强大的支持。为此我们制作了Excel工业报表系统,它是相对独立于工业监控软件,如Intouch、RSVIEW、ABB的DigiVis、西门子的WinCC,国产的组态王、天工组态等组态软件,基于微软Office中的Excel通过VBA编程同时运行于上位机的一套软件。通过对Excel单元格和区域值的各种设置的深入了解,可以创建各种复杂、美观、满足需要的、具有自己特点的报表。由于Office全球通用所以本系统通用性、开放性、实用性极佳,只要计算机装有Office就可以打开观看生产现场的报表。而操作员站只要监控软件支持DDE、OPC等方式且安装了Office中的Excel即可。 2. 数据获取 Excel的数据处理功能在现有的通用文字处理软件中可以说是独占鳌头,几乎没有什么软件可以与其匹敌,所以选择Excel来处理生产数据是正确的, Excel工业报表系统的生产数据,我们通过DDE或OPC读取工业组态软件 (如Intouch、RSVIEW、ABB的DigiVis、西门子的WinCC,国产的组态王、天工组态等) 的数据。即Excel工业报表系统的数据来源于工业组态软件,它们之间的通讯采用OPC或DDE技术。 OPC(OLE for Process Control)是Microsoft公司的对象链接和嵌入OLE/COM技术在过程控制方面的应用,为工业控制领域提供了标准的数据访问机制。OPC采用客户/服务器结构,提供了两套接口方案,分别为COM接口和OLE自动化接口。COM接口效率高,通过它客户能够发挥OPC服务器的最佳性能,采用C++语言的客户一般采用此方案;OLE自动化接口使解释性语言和宏语言访问OPC服务器成为可能,采用VB语言的客户一般采用此方案。OPC作为硬件和软件之间的一个中间件,解决了上述问题,它为工业数据通讯提供了一种标准。OPC技术扩展了硬件设备的概念,只要符合OPC服务器的规范,OPC客户都可以与之进行数据交换。硬件厂商只需要编写一套驱动程序就可以满足不同用户的需要,软件开发商也无需了解硬件设备究竟是哪家厂商的及其硬件实质,因此OPC在短时间内取得了飞速的发展。只要遵循OPC规范,管理网即可随时通过OPC接口来获取工艺生产过程数据了。 DDE(Dynamic Data Exchange 动态数据交换)允许应用程序之间共享数据,它在功能上类似OLE,但不嵌入,即客户程序(Client)和服务程序(Server)是单独运行的。它们之间的会话经由一条通道(Channel)来进行,整个会话过程由程序控制,不需用户进行任何干涉。 尽管DDE正逐渐被OLE取代,但其作为一种应用程序之间共享数据的手段,仍然受到广泛的使用和支持。相比之下,OLE服务器通过嵌入到客户程序中来为其提供服务,激活速度常常慢得让人讨厌。因此,在某些情况下OLE是无法取代DDE的。 管理OPC标准的组织是OPC基金会,全世界几乎全部的控制系统、仪器仪表和过程控制系统的主要供应商都是该组织成员。世界各大公司的工业组态监控软件均支持DDE、OPC,所以本Excel工业报表系统适用于全球各大公司的工业组态监控系统。 本文这里我们介绍工业组态软件为“天工组态”,采用DDE的链接方式。使用DDE的一种典型方式是在两个程序间建立链接(会话)。一旦建立了链接,两个程序就可以连续而自动地把数据来回地传来传去。当一方的数据发生改变时,另一方的数据也自动改变。DDE通常用于交换简短明确的文本字符串,如电子表格的单元格,或一个数据库的字段等。DDE会话由DDE客户程序和DDE服务器程序组成。通常请求数据的应用程序是客户;提供被请求的数据。更新DDE客户端数据的是服务器。 本方案中,Excel报表系统启动时将自动读取工业组态软件中“天工组态”的相关数据,更新现有数据。“天工组态” DDE服务器程序,Excel报表系统DDE客户程序,为数据单向的温链(warm link)方式,语法为: “=view|data!AC30420” 其中: view:DDE topics,topic特性是服务器程序认可的包含有关链接信息的一块数据,又称为主题; data:DDE items,DDE会话的item特性标识,要链接的实际数据块,又称为项目。例如,电子表格的单元格或数据库的字段等。 AC30420:为工业监控软件“天工组态”中的数据变量名; 3. 报表程序框图 我们利用EXCEL可用做开发平台实现应用程序自动化的优点.采用VBA编程实现了自动Excel工业报表系统。用VBA实现了报表数据的自动读取、数据统计分析、自动保存、浏览、查询,为了避免用户的误操作,保证数据的真实性,我们通过VBA自动设置了工作表保护密码,使工作表不能人为随意更改;自动去除了不使用的菜单和工具栏,避免用户的误操作人为更改数据,保证产生的数据是真实来源于自动产生的准确的工控数据,没有人为更改的地方。 但是,我们在需要当班人员填写当班资料的地方我们留出了可以写入的单元格,供当班人员填写当班资料。 报表程序框图(见附录) 4. 什么是VBA VBA究竟是什么? 它能作什么?更确切地讲,它是一种自动化语言,它可以使常用的程序自动化,可以创建自定义的解决方案. VBA (Visual Basic For Application)直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORD BASIC使WORD自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言VBA,可以认为VBA是非常流行的应用程序开发语言VASUAL BASIC 的子集.实际上VBA是"寄生于"VB应用程序的版本VBA可以称作EXCEL的“遥控器”.使用VBA可以实现的功能包括: 1. 使重复的任务自动化. 2. 自定义EXCEL工具栏,菜单和界面. 3. 简化模板的使用. 4. 自定义EXCEL,使其成为开发平台. 5. 创建报表. 6. 对数据进行复杂的操作和分析.    用EXCEL作为开发平台有如下原因: 1. EXCEL本身功能强大,包括打印,文件处理,格式化和文本编辑. 2. EXCEL内置大量函数. 3. EXCEL界面熟悉. 4. 可连接到多种数据库. 所以我们可以利用EXCEL可用做开发平台实现应用程序自动化的优点.实现了自动Excel工业报表系统。 5. 报表的浏览和查询: 报表采用单页浏览的方式,即“日报”、“月报”、“年报”分别浏览,切换浏览报表方式有两种: l 自定义工具栏 l 快捷菜单 打开文件,在窗口的右边是可以随意移动位置的自定义工具栏,可以与Excel标准工具栏一起使用,自定义工具栏有“日报”、“月报”、“年报”、“打印”四个按钮,当鼠标左键点击相应按钮时,可以浏览“日报”、“月报”、“年报”或完成“打印”相应报表功能;这些功能还可以通过自定义菜单来完成。 报表保存在预先规定的位置,以年月日日期时间为文件名按顺序排列,可以很快的找到所需的报表。 如图所示:
6. 报表的自动保存和定时自动打印 报表以Excel文件的格式保存在用户需要的文件夹中,可以是计算机本机的任意磁盘,任意文件夹,文件名为日期时间,便于查找。按月、年分类。这样,按时间顺序你可以很快查找到你所需要的日报表。每一个文件大小只有100KB左右,包含了日报、月报、年报,同一个文件中用按钮切换,即每一天的日报表为100 KB左右,一年356×100KB=35MB,现在的硬盘一般可以达到80GB,如果分10GB作为报表保存,则可以保存285年的Excel报表文件。 当系统判断为保存时间时(本方案为晚上23:59),则可以自动以日期时间为文件名保存在用户需要的文件夹中。 假设报表保存在F盘根目录,则语句为: ChDir "F:\" ActiveWorkbook.SaveAs FileName:="F:\" & Year(Now()) & "年" & Month(Now()) & "月" & Day(Now()) & "日" & Hour(Now()) & "时" & Minute(Now()) & "分" & Second(Now()) & ".xls", FileFormat:= _ xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _ , CreateBackup:=False 当时间到了预定的打印时间,则自动打印,语句为: ActiveWindow.SelectedSheets.Prin
投诉建议

提交

查看更多评论
其他资讯

查看更多

PAC8000入门指南

AC800F培训教程

电工口诀及讲解说明

自动化仪表基本知识简介

电磁流量计教程资料