最新文章专题视频专题问答1问答10问答100问答1000问答2000关键字专题1关键字专题50关键字专题500关键字专题1500TAG最新视频文章推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37视频文章20视频文章30视频文章40视频文章50视频文章60 视频文章70视频文章80视频文章90视频文章100视频文章120视频文章140 视频2关键字专题关键字专题tag2tag3文章专题文章专题2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章专题3
当前位置: 首页 - 正文

基于SQL数据库的wincc复杂报表的实现

来源:动视网 责编:小OO 时间:2025-09-23 06:40:34
文档

基于SQL数据库的wincc复杂报表的实现

基于SQL2005的WINCC复杂报表实现方法TheImplementationmethodofcomplexWinccreportbasedonSQL2005董洪垒王静波河北联合大学电气工程学院摘要:本文介绍了在Wincc组态环境中,基于SQL数据库和VB-Scirpt编程语言实现自定义Wincc复杂报表的操作方法,结合数据库和VB语言详细阐述了如何对数据进行自定义归档、查询以及导出和编辑。基于模块化的思想,将报表的结构分为数据归档、数据查询、数据显示和数据打印四个模块。详细介绍了各个模块的
推荐度:
导读基于SQL2005的WINCC复杂报表实现方法TheImplementationmethodofcomplexWinccreportbasedonSQL2005董洪垒王静波河北联合大学电气工程学院摘要:本文介绍了在Wincc组态环境中,基于SQL数据库和VB-Scirpt编程语言实现自定义Wincc复杂报表的操作方法,结合数据库和VB语言详细阐述了如何对数据进行自定义归档、查询以及导出和编辑。基于模块化的思想,将报表的结构分为数据归档、数据查询、数据显示和数据打印四个模块。详细介绍了各个模块的
基于SQL2005的WINCC复杂报表实现方法

The Implementation method of complex Wincc report based on SQL2005

董洪垒王静波河北联合大学电气工程学院

摘要:本文介绍了在Wincc组态环境中,基于SQL数据库和VB-Scirpt编程语言实现自定义Wincc复杂报表的操作方法,结合数据库和VB语言详细阐述了如何对数据进行自定义归档、查询以及导出和编辑。基于模块化的思想,将报表的结构分为数据归档、数据查询、数据显示和数据打印四个模块。详细介绍了各个模块的设计思路以及编程方法,从而有效解决了在Wincc7.0环境中实现复杂数据报表的问题。

关键词:WINCC SQL数据库 复杂报表

Abstract:This paper introduces the wincc7.0configuration environment,and VB-Scirpt based on SQL database programming language to implement custom WinCC operating method of complex reports,combining database and VB language detailing how to customize the data archiving, query, export and edit. Based on modular thinking, to file reports, structured data, data query, data display and data printing up to four modules. Details on each module design ideas and programming methods, so as to effectively address the complex data reporting issues implemented in a wincc7.0 environment.

Keywords: wincc SQL database complex reports

0 引言

目前在工控领域比较流行的组态软件主要有Wincc、组态王等,以上软件在工业现场应用中对于数据的监控等方面功能强大,但是在报表生成以及处理方面却功能有限,主要表现为格

式较为固定单一,灵活性不高。对于一般对报表要求不高的用户,可以实现简单的数据表格处理,一旦用户提出更高更复杂的要求,以上软件都没有比较直接的方法,从而使报表设计由画面

组态转向对数据库和脚本语言的应用。

西门子公司的Wincc组态软件本身具有数据归档和报表的

处理功能,尤其在Wincc6.0以后的版本中,开始支持SQL数据

库以及VB-Script编程。但是无论何种版本在复杂数据处理中,比如:数据的查询、计算和统计等相对灵活的要求中就显得力不从心。主要表现在Wincc在报表中不能对历史数据进行任意查询和过滤以及相关的统计计算。本文基于毕业设计中的项目开发,实现了一种基于SQL数据库以及VB-Script编程语言实现复杂报表的方法,作为Wincc高级应用中的一种有效探索途径。

1 报表结构的构建

Wincc软件本身虽然提供了数据归档功能和报表编辑功能,但由于固定的格式和一定的功能,在项目开发过程中必然

感到报表的灵活性不够,实现复杂报表比较困难。但是Wincc7.0支持SQL2005数据库以及VB-Script,因此可以实现对数据库的

直接操作。基于此,作者结合数据库语言和VB语言的可操作性,将数据归档、查询、显示、打印等过程用编程的方式实现,就可以大大提高归档和报表的灵活性,解决编辑自定义复杂报表的问题。

本文设计的报表系统结构如图1所示,共分为四个部分:

数据归档、数据查询、数据显示和数据导出打印。在数据归档部分中利用Wincc组态软件自带的SQL2005数据库建立相应的数据表格,通过Wincc中的VB—Script全局脚本编辑器实现数据归档。数据查询部分则是在界面中利用按钮的VB动作脚本以及相应的SQL数据库语言进行数据的查询。在数据显示部分中利用Wincc 提供的强大控件(例如本例中使用的M s F lex G rid控件)进行显示。在数据打印部分同样利用按钮的VB动作脚本,将所查询到的数据输出到E xcel电子表格中进行编辑和打印。用户可以随意浏览在任意时间查询到的数据,因为在输出到E xcel表格的同时,已经将生成表格利用脚本保存到系统相应的文件夹中,以

遍日后进行查阅。以下详细介绍各部分的实现方法和主要的程序设计。

2 建立数据源

2.1 在数据库中创建数据库以及相应的数据库表

在系统的数据监控过程中,有大量的数据需要进行归档处理,本文涉及的归档方法与Wincc本身自带的数据归档功能类似,就是利用背景脚本将数据采集并写入数据表中进行保存。1)在数据库中创建名为“300调速称”的数据库

2)在新建立的数据库中建立名为

day,month_A、month_B、month_C的数据表

3)在表中定义相应的字段名称例如ID、日期时间、变量名称、班组名称等

2.2 建立O DBC链

图2:报表系统整体结构图

O DBC (O pen DataBase Connectivity 开放数据库互连)是一个用于访问数据库的统一标准接口,应用程序要访问一个数据库,首先必须用O DBC 管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及O DBC 驱动程序等信息建立数据库与O DBC 的联系。因此,应用程序只需将数据源名提供给O DBC,O DBC 就能建立起与相应数据库的连接。建立数据源的方法可以分为以下几个步骤:

1)打开控制面板,选择管理工具中的数据源,在O DBC 数据源管理器中添加“sql server ”类型的数据源

2)定义数据源的名称属性及提供数据源的服务器名称,选择访问方式等

3)连接服务器后,选择所要连接的数据库的名称“300调速称”4)测试连接,建立数据源。3 数据归档

数据归档模块利用Wincc 的全局脚本实现,在全局脚本中写入代码,选择相应的触发器在固定的时间(比如每一天的最后一秒或者每个月的最后一秒)执行全局脚本,将数据写入相应的数据表中。同时也可以在写入的数据中加入相应的条件,比如当前日期,当前时间,这样在查询数据的时候可以将这些作为查询条件进行筛选,是数据的归档和查询更加灵活。O DBC 数据源支持SQL 语言,因此数据的写入代码将利用VB 结合SQl 语言进行实现。图2是写入数据代码的流程图:关键程序代码:1)读取变量数据

Setacum1 = HM I R untime.Tags ("acum1")

acum1.R ead acum1=acum1.Value 2)链接数据库

sCon = "P rovider =M SDASQL ;DSN =300tsc ;U ID =sa ;P WD =;" Set conn = Create O b j ect ("AD O DB.Connection ") conn.ConnectionString = sCon conn.CursorLocation = 3

conn.O pen

Set o R s = Create O b j ect ("AD O DB.R ecordset ") Set oCom = Create O b j ect ("AD O DB.Command ") Set oCom.ActiveConnection =conn

oCom.CommandType = 13)编辑SQL 语言

sSql1="insert into day (日期时间,年,月,日,第一路,第二路

第三路,第四路,第五路,第六路,第七路,第八路,班次)" sSql1=sSql1&"values (getdate (),Y ear (getdate ()),M onth (get date ()),Day (getdate ()),"

sSql1=sSql1&"'"&acum1&"','"&acum 2&"','"&acum 3&"','"&acu m 4&"','"&acum 5&"','"&acum6&"','"&acum7&"','"&acum 8&"','"&banci &"');"4)执行SQL 语言写入oCom.CommandText = sSql1oCom.E xecute 5)释放资源Set o R s = Nothing Set oCom = Nothing conn.Close Set conn = Nothing 4 数据查询和显示

在数据查询和显示部分利用按钮的VB 动作脚本来实现,此方法可以充分发挥VB 编程语言的灵活性以及强大的数据处理能力,对查询到的数据可以进行相应的计算和统计。例如对查询到数据的求平均值和求和运算等。在显示部分同样利用操作VB 提供的M s F lex G rid 控件来进行显示查询到的数据,程序流程图如图3:关键程序代码:1)创建数据库连接sCon =

"P rovider =M SDASQL ;DSN =300tsc ;U ID =sa ;P WD =;" Setconn =Create O b j ect ("AD O DB.Connection ") conn.ConnectionString = sCon conn.CursorLocation = 3

conn.O pen 2)定义查询SQL 语句

sSql1="select * from day where 日期时间 between '"&riqi &"00:00:00' and '"&riqi &" 23:59:59'and 班次='"&banci &"';"3)执行查询语句

Set o R s = Create O b j ect ("AD O DB.R ecordset ")Set oCom = Create O b j ect ("AD O DB.Command ")

oCom.CommandType = 1Set oCom.ActiveConnection = conn

图2:写入数据代码流程

图3:查询显示数据代码流程图

Set o R s1 = oCom.E xecute

m = o R s1.R ecordCount

4)将数据写入到M s F lex G rid控件中

Set oList = ScreenItems("view1")

oList.clear

olist.Text M atrix(rownum-1,3)=ors1.fields(6).value

5 数据的导出和打印

Wincc支持的VB-Script脚本提供了E xcel等办公软件相应的程序接口,因此可以利用VBS脚本将查询到的数据导出到已建立好的E xcel模板中利用E xcel电子表格强大的数据处理能力进行更高级的编辑和打印。程序流程与查询方法类似。

关键代码

1)打开E xcel模板

Setob jE xcelApp=Create O b j ect("E xcel.Application") ob jE xcelApp.Visible = True

ob jE xcelApp.Workbooks.O pen "模板保存路径"

ob jE xcelApp.Worksheets(sheetname).Activate

2)写入数据

ob jE xcelApp.WorkSheets(sheetname).cells(2,2).value=Left (shi j ian,9)

6 报表实现的综合介绍

以上介绍了基于SQL数据库的Wincc复杂报表的实现方法,该方法灵活多变,编程人员可以随意进行数据的读写,不拘泥于本文中的形式。例如可以在写入数据中加入查询条件,可以方便做出复杂的查询等等。对于查询界面中的查询条件需要用Wincc自带的控件进行输入,同时也可以在查询代码中加入更多的统计算法以满足客户的不同需求。E xcel电子表格具有强大的数据处理能力,将查询到的数据导出到电子表格,可以方便操作人员对报表进行美化编辑,做出更加具有专业性的报表。

以下是系统运行效果图

:7 结论

本文结合毕业设计中的实际项目要求,利用数据库语言和VBs语言将Wincc中的数据进行归档、查询、显示和打印,有效的解决了复杂报表的制作问题,同时利用VB的程序接口将数据导出到E xcel电子表格,通过电子表格的数据处理以满足客户的不同需求。

参考文献:

[1]深入浅出西门子WINCC V6(第2版)[M].北京航空航天大学出版社,2004

[2] 数据库应用教程(Visual Basic+SQL Sever)[M].清华大学大学出版社,2008

[3]郭建明,邢晨,刘清.Wincc组态软件中自定义复杂报表的实现[J].工业控制计算机,2007,20(2):1-2

[4]徐志杰.基于高级编程语言Wincc复杂报表管理的实现[J].华电技术,2011.1,33(11):54-56

[5]巩伟,宋勇江,陈庆文.R SVI E W32与VB、E xcel结合的复杂生产报表解决方案[J].自动化技术与应用,2003,22(9):53-55

文档

基于SQL数据库的wincc复杂报表的实现

基于SQL2005的WINCC复杂报表实现方法TheImplementationmethodofcomplexWinccreportbasedonSQL2005董洪垒王静波河北联合大学电气工程学院摘要:本文介绍了在Wincc组态环境中,基于SQL数据库和VB-Scirpt编程语言实现自定义Wincc复杂报表的操作方法,结合数据库和VB语言详细阐述了如何对数据进行自定义归档、查询以及导出和编辑。基于模块化的思想,将报表的结构分为数据归档、数据查询、数据显示和数据打印四个模块。详细介绍了各个模块的
推荐度:
  • 热门焦点

最新推荐

猜你喜欢

热门推荐

专题
Top