



全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
题目作者(作者单位)摘要:FactoryTalk View SE是Rockwell Automation公司推出的监控组态软件,它可以用映射工厂和过程的方式来分配应用项目的各个部分,在数据监控,画面显示等方面具有强大的功能,然而在数据报表、处理方面却表现出弱点。利用其内嵌的VBA可以扩展软件功能。本文结合FactoryTalk View SE内嵌的VBA,调用Excel,读取软件通过ODBC接口记录到Access中的数据,然后生成报表。关键词:报表;Excel;VBA;FactoryTalk View SE;AccessTopicAuthor(The unit of author)Abstract:Rockwell Automation FactoryTalk View SE is launched to monitor configuration software,It can map plant and process to distribute applications in various parts of the project, the data monitoring, the screen display has a powerful.However, data reporting, processing has shown weakness. VBA using its embedded software functionality can be extended. This paper FactoryTalk View SE embedded VBA, called Excel, read the software interface to record through the ODBC to Access the data, then generate reports.Keyword:reports;Excel;VBA;FactoryTalk View SE;Access1、引言FactoryTalk View Supervisory Edition是Rockwell Automation公司组态软件,是与公司自动化产品结合最佳的可视化软件产品,提供了强大的数据监控能力,方便用户进行上位机的画面组态。FactoryTalk View SE内嵌VBA,它为自定义及扩展FactoryTalk View SE功能提供了完整的开发环境。FactoryTalk View SE和其他组态软件一样,本身报表生成、处理能力比较弱。为了实现数据报表功能,本文使用FactoryTalk View SE内嵌的VBA,与Excel相结合,利用Excel强大制表功能,实现数据报表功能。2、实现原理通过日志模型设置,FactoryTalk View SE从PLC采集实时数据,通过ODBC接口存储到Access数据库中,利用FactoryTalk View SE内嵌的VBA开发,访问Access数据库,调用Excel,将Access数据库中的数据读取到Excel中,在进行处理,形成报表。系统解决方案框图如图1所示:ODBCFactoryTalk采集数据Access数据库ExcelVBA图1 报表解决方案框图3、Excel对象模型Excel对象封装了Microsoft Excel的全部元素,利用Excel对象提供的属性、方法和事件,就可以在应用程序中生成Excel报表1。Excel对象模型描述了Excel对象之间的结构关系,如图2所示:Application对象Workbook对象Worksheet对象Range对象图2 Excel对象模型(1)Application对象Application对象表示Excel应用程序,在Excel读象模型中该对象处于模型的顶端,通过使用Application对象可以访问模型中其他对象,从而控制Excel应用程序的外观和功能。(2)Workbook对象Workbook对象表示Excel中的工作簿,即对应一个Excel文件,通过使用Workbook对象就可以实现对Excel工作簿的各种控制。(3)Worksheet对象Worksheet对象表示Excel中的工作表,通过使用Worksheet对象就可以实现对Excel工作表中的各种控制。(4)Range对象Range对象表示Excel中的区间,可以表示Excel中的单元格、几个单元格、行、列或一个选中的区域,使用Range对象可以实现对Excel单元格或选中区域的各种操作。4、应用实例本文通过读取系统标签中的年、月、日、时、分、秒,在报表中体现出记录日期和数值。下面将具体介绍如何实现报表。(1)将Excel、Access对象库加载到当前VBA程序中为了能够在程序中调用Access数据库以及Excel对象,为Access与Excel连接、互相嵌入使用做准备,必须在VBA程序中加载Excel、Access对象库。在VBA编程环境下,单击“Tools”菜单中的“Reference”命令,在弹出的对话框汇中选中Microsoft Access 11.0 Object Library和Microsoft Excel 11.0 Object Library两项,点击“确定”后退出,这样就完成了Excel、Access对象库在VBA程序中的加载2。(2)打开Excel模型为了使用Excel生成报表,必须事先打开Excel模型,新建一个Excel文件用以存储从Access数据库中读取的数据,并使用Excel对象的属性和方法完成报表的设计,从而形成我们所需要的报表。下面的VBA程序语句实现了在FactoryTalk View SE中打开Excel的方法。 创建Excel对象Set objE = CreateObject(Excel.Application)设置Excel属性With objExcel显示Excel.Application.Visible = True创建新的工作簿.Application.workbooks.Add激活第一个工作表Sheet1.worksheets(Sheet1).Activate 给每一列数据添加表头.Cells(1, 2).Value = 日期.Cells(1, 3).Value = 秒.Cells(1, 4).Value = 年.Cells(1, 5).Value = 月.Cells(1, 6).Value = 日.Cells(1, 7).Value = 时.Cells(1, 8).Value = 分(3)创建ADO对象访问数据库在与Access数据库连接中,Excel有Automation、Data Access Objects(DAO)以及ActiveX Data Object(ADO)三种方法,最新的,最建议用的建立对Access数据库的链接方法是使用ActiveX Data Object(ADO)3,本文采用了这种链接到Access数据库的方法。首先必须先设置对微软ActiveX数据对象2.5库或者更高版本的引用,与加载Excel、Access对象库一样,将Microsoft ActiveX Data Objects 2.5 Library或更高版本加载到VBA程序中来,编写下列程序创建ADO的Connection对象建立与数据库的链接。Set cn1 = CreateObject(adodb.connection)(4)读取数据库实际地址在读取数据库实际地址时候,需要编写数据库的驱动程序,本系统中数据库驱动程序采用的是microsoft access driver (*.mdb),并且将通过ODBC接口存储的数据库存放于E盘datalog目录下,因此该步骤的VBA程序如下3:cn1.open driver=microsoft access driver (*.mdb);DBQ=E:datalog(5)获取Access数据通过FactoryTalk View SE数据日志记录的历史数据,在数据库中的FloatTable总记录了一下几种数据:DateAndTime、Millitm、TagIndex、Val、Status,因此我们需要从这些数据中选取有用数据进行报表输出,结合Excel对象属性以及设置SQL语言的查询命令,按照不同的需要编写相应的SQL语句用来实现选择我们所需要的数据,本系统需要的FloatTable中的DateAndTime和Val两列数据。下面VBA程序实现了从Access获取历史数据的功能。创建游标Set rs = CreateObject(adodb.recordset)设置SQL语言查询命令,扫描FloatTable中的所有数据,以便后面程序能够正确读取数据sql = select * from FloatTable打开游标rs.open sql, cn1将FloatTable中的DateAndTime一列写入Excel中的第一列,Val一列写入Excel中的第二列i = 1Do While Not rs.EOFobjE.Sheets(1).Cells(i, 1) =rs(DateAndTime)objE.Sheets(1).Cells(i, 2) = rs(Val)rs.MoveNexti = i + 1Loop这样实现了从Access数据库读取数据到Excel中的功能。(6)在Excel完成行列转换由于在Microsoft Access记录文件中,文件记录方式为行记录方式,在形成报表的时候需要将其转化成列记录方式, 在Excel进行行列转换非常简单,只要在Excel中C1 单元格输入公式:C1=INDIRECT(“B”&6*(ROW()-1+COLUMN()-1)本文记录数据为6个,在公式中数字为6,表示每六个数形成一行,该数根据实际需要改变。然后再将鼠标拖至H1,然后将C1:H1往下拖即可实现利用Excel数据报表功能。完成后报表如图13所示:图 3.13 数据报表5、结论与大部分组态软件相似,FactoryTalk View SE在数据监控、画面组态功能较强,但在报表生成、处理能力较弱。此方法实现复杂的生产报表,开发周期短,可操作性强,完全满足工业的生产要求,在此基础上,完全可实现班报、周报、月报、年报等。参考文献1 苗苗,朱秀慧,王海.组态软件RSVi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小学班主任工作计划(10篇)
- 公司之间业务合作协议
- 2025年特种作业类危险化学品安全作业合成氨工艺作业-硝化工艺作业参考题库含答案解析
- 2025年嵌入式软件项目提案报告模范
- 南通附小数学试卷
- 2025年建筑工程类注册安全工程师安全生产法律法规-安全生产专业实务(金属非金属矿山安全)参考题库含答案解析
- 2025年建筑工程类注册安全工程师-安全生产专业实务(煤矿安全)参考题库含答案解析
- 2025年学历类自考公共课高等数学(工本)-计算机应用基础参考题库含答案解析
- 洛阳初二期末数学试卷
- 《神经调节的基本方式》(教案及反思)-2024-2025学年鲁科版(五四学制)初中生物七年级下册
- 福建省泉州市五中七中等七校联合2022-2023学年八年级上学期期末教学质量检测数学试题
- 2022室外排水设施设计与施工-钢筋混凝土化粪池22S702
- 2022版义务教育(道德与法治)课程标准(附课标解读)
- 《礼仪与修养》01 目录
- 解读性激素六项培训课件
- 胖东来总配电室操作规范
- 人教版初中学业水平考试地理试题与答案(共五套)
- 砼回弹强度自动计算表
- 教师课堂管理方法和技巧课件
- 小学科学教师专题培训课件
- 伍德灯在寻找炎症性皮肤病变中的应用价值研究
评论
0/150
提交评论