- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Excel中通过VBA脚本访问Wincc数据库读取多变量脚本方法
Excel中通过VBA脚本访问Wincc数据库读取多变量脚本方法 摘要通过Excel中的VBA(Visual Basic for Application)脚本读取Wincc数据库SQL server2005中的变量数据,实现了多时间段、各变量多数据类型的读取。 【关键词】EExcel VBA Wincc SQL server2005 Wincc是西门子公司与微软公司在工业自动化领域共同开发的人机界面软件(Human Machine Interface,简称HMI)。广泛用于在工业自动化系统中与PLC等基础自动化设备连接,提供操作员对自动化系统的监视、操作、报警、报表等人机对话功能。同时Wincc将变量归档的结果存储于SQL server中,便于其他程序对SQL server的操作。本文中Wincc的版本为6.2,附加的数据库版本是SQL Server 2005。 Microsoft SQL Server 2005 是一个全面的数据库平台,使用集成的商业智能 (BI)工具提供了企业级的数据管理。Microsoft SQL Server 2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能。在本文中,SQL Server 2005是联系Wincc与Excel的桥梁和纽带。 Wincc在西门子工业自动化领域已经得到广泛的应用,各种各样的报表要求几乎都能满足。本文中从实际角度出发,提供一种直接使用Excel VBA编写客户端访问Wincc数据库SQL Server 2005的方法,针对用户对变量的要求,从数据库中同时挑选多个变量,不同的时间段、时间间隔,实现了不同要求的数据采集。本实例中提供了关键的Excel示例代码,有一定的实用价值。 1 数据采集软件的编写 本文中,Wincc作为上位机组态软件,将发出的指令与采集回来的数据经过变量归档实时地存入数据库SQL server2005中,为了便于不同专业科研人员对于数据的处理,利用Excel内嵌的VBA编程语言,对数据库内的数据进行采集。 打开excel,在视图选项栏下,首先录制一个空的宏,保存在当前工作簿中,然后选择查看宏,点击编辑,进入了VBA(Microsoft Visual Basic for Applications)界面,在ThisWorkBook中,写入Excel文件打开预代码Private Sub Workbook_Open()。 在Sheet1中写入数据库变量读取、写入代码 Sheets(1).Unprotect 工作表1解保护 dblStartTimeReadout = Now将当前时间记录 Rows(9:65536).Select Selection.Delete Shift:=xlUp Sheets(1).Cells(10,1).Select Sheets(1).Rows(9).HorizontalAlignment = 3 Sheets(1).Rows(9).VerticalAlignment = 2 Sheets(1).Rows(9).RowHeight = 1 / 0.035 Sheets(1).Range(A:IV).ColumnWidth = 20 删除所有的以前记录的信息,本例中从第9行到65536行全部选中 删除所选单元格的内容,单元格或者区域以下内容向上移动 选中单元格第10行第一列表格 确定第九行的居中模式以及高度、宽度 Application.Calculation = xlManual Application.Cursor = xlWait 关闭自动重算,这样就不会把时间浪费在每次改变单元格内容而引起的重算 鼠标显示为漏斗等待状态 strSQLServer = cmbTagServer.Text .List(cmbTagServer.ListIndex) 获取当前下拉列表中的标签值 Set objSQLServer = CreateObject(SQLDMO.SQLServer) 创建一个数据库服务器的应用程序名 objSQLServer.LoginSecure = True objSQLServer.Connect ServerName:=strSQLServer \WinCC Set objSQLDB = CreateObject(SQLDMO.Database) For Each objSQLDB In objSQLServer.Databases If ((Right(objSQLDB.Name, 1) = R) And (Left(objSQLDB.Name, 2) = C
文档评论(0)