Rsview中VBA实现excel报表

上传人:宝路 文档编号:2143097 上传时间:2017-07-20 格式:DOC 页数:7 大小:77.50KB
返回 下载 相关 举报
Rsview中VBA实现excel报表_第1页
第1页 / 共7页
Rsview中VBA实现excel报表_第2页
第2页 / 共7页
Rsview中VBA实现excel报表_第3页
第3页 / 共7页
Rsview中VBA实现excel报表_第4页
第4页 / 共7页
Rsview中VBA实现excel报表_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《Rsview中VBA实现excel报表》由会员分享,可在线阅读,更多相关《Rsview中VBA实现excel报表(7页珍藏版)》请在金锄头文库上搜索。

1、在组态软件 RSView32 中用 VBA 实现报表1 引言在 PLC计算机监控系 统中,界面设计通常组态软件来实现。作为组态软件,罗克韦尔RSView32提供了强大的数据监控能力,方便用户进行上位机的画面组态。由于 RSView32 并没有提供强大的报表功能,如果只进行简单的数据分析,报表变化不是很复杂,并且对数据可移动性无太高要求,组态软件可实现。然而一旦涉及到复杂的数据处理,组态软件往往表现得力不从心。但是 RSView32 内嵌有 VBA,VBA 是 Visual Basic for Application 的简写,它以 VB 语言为基础,经过修改并运行在 Microsoft Offi

2、ce 的应用程序。只要使用 VBA 进行 简单的编程便可以实现大多 数报表功能了。2 开发环境及数据记录格式简介RSView32 是 RockWell SoftWare 公司的组态软件,它提供集成的、组态化的人机接口,广泛的用来监视和控制自动化设备和过程。它除了可以方便的与 ALLEN -BRADLEY PLC进行无缝的结合应用,也可以通过使用 OPC 的通讯方式与其它公司的设备进行连接。ODBC(Open Database Connectivity 开放式数据库互连 )是由微软推出的工业标准,一种开放的独立于厂商的 API 应用程 序接口,可以跨平台访问各种个人计算机、小型机以及主机系统。O

3、DBC 作为一个工业标准,绝大多数数据库厂商都为自己的产品提供了 ODBC 接口或提供了 ODBC 支持,这其中就包括常用的 SQL SERVER、ORACLE 、INFORMIX 等,当然也包括了 Access。RSView32 的数据记录是一个在特定条件下保存指定的标记数值或数据的过程。在“数据记录设置”编辑器里,可以创建定义不同条件的数据记录模式,本文将数据通过 ODBC 接口存储到数据库 Access 里,即将标记值被记录到用 ODBC接口连接到的数据库 Access 的三个表格里:标记表格(TagTable ):把标记名存储到一个索引里;符点数表格(FloatTable):存储模拟量

4、和开关量标记数值;字符串表格(StringTable): 存储字符 串数值。本文中关心的是符点数表格(FloatT able),但在符点数表格中(FloatTabl e)没有代表标记名称的 Tagname 字段,代替它 的是标记索引号 TagIndex 字段,这样在分析报表时很不方便,而在本文中将使用 VBA 解决表格带来 的不便。3 实现原理 RSView32 从 PLC 采集的实时数据,通过 ODBC 接口存储到数据库 Access 中,在利用 RSView32 自带的 VBA开发,访问 Access 数据库,对实时数据进行复杂的操作,可以通过VBA 调 用 Excel,显示和打印出美观复

5、杂的报表; 也可以在通过 VBA 的窗体,表格控件,回显在 RSView32 的人机界面上,作到无缝连接; 本文介绍前一种方 法。通过 Excel 可以 用 VBA 程序生成 Excel 报表及图表,并利用 Excel 的功能完成打印预览、打印等功能;Excel对象封装了微软 Excel的全部元素,例如 Application 对象表示 Excel 应用程序,Worksheet 对象表示 Excel 工作表等,利用 Excel 对象提供的属性、方法和事件,在应用程序中生成 Excel 报表及图表 Excel 对象模型描述了 Excel 中对象之间的结构关系,如图 1 所示。图 1 EXCEL

6、对象模型(1) Application 对象表示 Excel 应用程序,在 Excel 对象模型中该对象处于模 型的顶端,通过使用可以访问模型中其它对象,从而控制 Excel 应用程序的外观或功能。(2) Workbook 对象表示 Excel 中的工作簿,即对应一个 Excel 文件,通过使用该对象可以实现对 Excel 工作簿的各种控制。(3) Worksheet 对象表示 Excel 中的工作表,通过使用该对象 可以实现对 Excel 工作表的各种控制。(4) Range 对象表示 Excel 中的区间,可以表示 Excel 的单元格、几个单元格、行、列或一个选中的区域,使用 Range

7、 对象可以实现对 Excel 单元格或选中区域的各种控制。4 应用实例Microsoft Office EXCEL 有十分强大报 表功能, 使用 VBA 便可以非常方便地调用 EXCEL的功能来生成我们所需的报表。下面将详细介绍如何使用 VBA 通过 EXCEL 来生成当日的报表。解决方案框图如图 2 所示。图 2 解决方案框图4.1 打开 EXCEL为了使用 EXCEL 为我们生成报表,我们必须事先打开EXCEL,下面的 VBA语句显示了如何在 RSView 中打开 EXCEL。 创建 EXCEL 对象Set objExcel = CreateObject(Excel.Application

8、) 设置 EXCEL 的属性With objExcel显示 EXCEL.Application.Visible = True创建新的工作簿. Application.Workbooks.AddEXCEL 生成报表后全屏显示. Application.WindowState=-4137激活一个第一个工作表.Worksheets(Sheet1).Activate定义列宽. Columns(1).ColumnWidth = 23.Columns(2).ColumnWidth = 15. Columns(3).ColumnWidth = 17.Columns(4).ColumnWidth = 15.C

9、olumns(5).ColumnWidth = 17每列的内容居中显示For nColumn = 1 To 5objExcel.Columns(nColumn).HorizontalAlignment= -4108 -4108=xlCenterNext nColumn定义 EXCEL表的列名.Rows(1).Font.Bold = True.cells(1, 1).Value = Data and Time.cells(1, 2).Value = Ingred1/pv.cells(1, 3).Value = Ingred1/sup_pv.cells(1, 4).Value = Ingred2/

10、pv.cells(1, 5).Value = Ingred2/sup_pvEnd With4.2 数据读出的步骤建立与数据库的连接,从中读出我们所需要 的数据来填充我们的报表, 下面的代码实现了这样的功能,把采集到的时间写入 EXCEL 的第一列中; Ingred1/pv、Ingred1/sup_pv、Ingred2/pv和Ingred2/sup_pv的数据写入 EXCEL 的第二、三、四和五列中。(1) 建立与数据库的连接Set conn = New ADODB.Connectionstr = FileDSN=db.dsn;conn.Open strSet rs = New ADODB.Re

11、cordset采集当日的数据SQL=”select DateAndTime, Millitm from FloatTable where datediff(d,DateAndTime,date()=0”rs.Open SQL, conn(2) 读取符点数表格(FloatTable)中的数据Do While Not rs.EOFnColumn = 0 表中的第 1 列b(i) = Trim(rs.Fields(nColumn).Value)nColumn = 1 表中的第 2 列a(i) = Trim(rs.Fields(nColumn).Value)i = i + 1rs.MoveNextir

12、ow = irow + 1Loop(3) 将数据写到 EXCEL 表中j = 2y = 1Do While y inColumn_excel = 1 EXCEL 的列objExcel.cells(j, nColumn_excel).Value = b(y)objExcel.cells(j, nColumn_excel).numberformatLocal = yyyy-m-d h:mm:ssFor nColumn_excel = 2 To 5objExcel.cells(j, nColumn_excel).Value = a(y)y = y + 1Next nColumn_excelj = j + 1Loop最后在 RSView32 中通过 RSView32 函数调用 VBA 程序,利用 VBA 与 EXCEL 结合编程,实现了生成当日报表的功能。5 结束语本文例中将 RSView32 采集的数据通过 ODBC 接口存储到数据库 Microsoft Access 中,并利用 RSView32 自带的VBA 编辑器导入到 EXCEL 中,并给出表单形式的 数据报表;用同样的方法,也可生成柱状图等形式的报表,可根据具体需要编制相应的程序来实现,可作为低成本的报表实现方法,方便了操作与生产。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号