- 103
- 0
- 约5.24千字
- 约 8页
- 2016-09-10 发布于北京
- 举报
Excel中通过VBA脚本访问Wincc数据库读取多变量脚本的方法.doc
Excel中通过VBA脚本访问Wincc数据库读取多变量脚本的方法
摘要 通过Excel中的VBA(Visual Basic for Application)脚本读取Wincc数据库SQL server2005中的变量数据,实现了多时间段、各变量多数据类型的读取。
关键词 Excel;VBA;Wincc;SQL server2005
中图分类号TP392 文献标识码A 文章编号 1674-6708(2014)112-0207-02
Excel是最流行的电子表格软件,其内嵌VBA编程语言,提供了对Wincc数据库SQL server很好的支持,可以方便访问数据库,从数据库中提取变量存储信息、保存报表。Wincc是西门子公司与微软公司在工业自动化领域共同开发的人机界面软件,广泛用于在工业自动化系统中与PLC等基础自动化设备连接,提供操作员对自动化系统的监视、操作、报警、报表等人机对话功能。同时Wincc将变量归档的结果存储于SQL server中,便于其他程序对SQL server的操作。本文中Wincc的版本为6.2,附加的数据库版本是SQL Server 2005。本文中从实际角度出发,提供一种直接使用Excel VBA编写客户端访问Wincc数据库SQL Server 2005的方法,针对用户对变量的要求,从数据库中同时挑选多个变量,不同的时间段、时间间隔,实现了不同要求的数据采集。本实例中提供了关键的Excel示例代码,有一定的实用价值。本文以煤气化气化装置实验数据采集为例进行说明。
1 变量归档
在WinccExplorer界面中打开变量记录,点击归档,在右方区域点击右键,选择归档向导,根据向导的提示步骤创建归档变量。若想改变采集周期,可点变量属性,分别设置采集、归档、显示时间,完成后再保存。另需在计算机属性的起动设置中要给变量记录系统打勾才能正常调用。
2 数据采集软件的编写
本文中,Wincc作为上位机组态软件,将发出的指令与采集回来的数据经过变量归档实时地存入数据库SQL server2005中,为了便于不同专业科研人员对于数据的处理,利用Excel内嵌的VBA编程语言,对数据库内的数据进行采集。
打开excel,在视图选项栏下,首先录制一个空的宏,保存在当前工作簿中,然后选择查看宏,点击编辑,进入了VBA界面,在ThisWorkBook中,写入Excel文件打开预代码Private Sub Workbook_Open()。
程序的实现:
Private Declare Function GetComputerName Lib kernel32_Alias GetComputerNameA (ByVal lpBuffer As String,nSize As Long) As Long
首先声明获取计算机名称函数
在Private Sub Workbook_Open()下,主要写入以下代码:
lngLength = 16
strBuffer = Space$(lngLength)
lngResult = GetComputerName(strBuffer, lngLength)
定义一个由16个空格组成的字符串,获取计算机名称
strDate = Format$(Now, YYYY-MM-DD)获取当前时间
Set txtDateFrom = Sheets(1).OLEObjects(txtTagDateFrom).Object
Set txtDateTill = Sheets(1).OLEObjects(txtTagDateTill).Object
Set cmbTagServer = Sheets(1).OLEObjects(cmbTagServer).Object
Set DataType = Sheets(1).OLEObjects(cmbDataType).Object
将Excel表格中时间起始文本框、服务器下拉列表框用变量代替
将Excel表格中数据类型下拉列表框用变量代替
txtDateFrom.Text = strDate 00:00:00
txtDateTill.Text = Format(DateAdd(n, 59, Format(txtDateFrom.Text, yyyy-m-d hh:mm:ss)), yyyy-m-d hh:mm:ss)
将文本框中的内容填写为今天,并且起始间距为1小时
DataType.Clear
DataType.AddItem Minimum
DataType.AddItem
原创力文档

文档评论(0)