摘 要: 重點介紹了在工控組態(tài)軟件WINCC上的數據庫通信方法和采集過程,基于WINCC組態(tài)軟件的數據庫后臺是關系數據庫SQL Server。結合實際應用來研究關系數據庫SQL Server及其優(yōu)化策略和服務性能。
關鍵詞: 數據庫; SQL Server; WINCC
從WINCC6.0開始,就開始采用SQL2000SP3做為WINCC的后臺數據了,而這個SQL2000SP3由Siemens為WINCC做了二次開發(fā)。WINCC的數據有設計時數據庫和運行時數據庫,分別放在相關的目錄。設計時數據庫沒有研究的必要性,但運行時數據庫要知道它的名稱,其名稱一般是“CC_工程名_年_月_日_時_分_秒R”,無論準備以DSN或OLEDB的方式訪問數據庫,都需要該名稱。將WINCC激活,然后在“ODBC管理器”或“SQL企業(yè)管理器”下的“DATABASE”可以看到運行時數據庫的名稱。其實,WINCC在運行時,根據WINCC的設置,數據歸檔以一定時間做為基準,形成數據片段。在數據片段下,有3個表是用戶所關心的:ARCHIVE(用戶歸檔記錄)、TAGPRESSED(TAGUNPRESSED)(壓縮/非壓縮變量歸檔記錄)和MSARCLONG(報警記錄)。在這里主要介紹在WINCC項目中的數據庫編程和通信[1]。
1 總體思路
WINCC項目中通用C和VB 兩種語言,所以,采用與數據庫進行通信的必要條件就是熟悉這2種語言。作為編程語言來說,編程只是最后實現結果的方式,重點在于通信方式的建立。下面分別從數據通信方式和實現方法來介紹。
2 數據通信方式
與數據庫通信的數據訪問接口有以下幾種[2]。
(1)高級數據連接器ADC(Advanced Data Connector):提供綁定ADO數據源到窗體的數據綁定控件上。ADC主要是一種直接訪問或者通過ADO訪問遠程OLEDB對象的技術,它支持主要應用在微軟IE瀏覽器上的數據綁定控件,是特地為以Web上的瀏覽器為基礎的應用程序而設計的。
(2)Active數據對象ADO(Active Data Objects):ADO實際是一種提供訪問各種數據類型的連接機制。ADO設計為一種極簡單的格式,通過ODBC的方法同數據庫接口??梢允褂萌魏我环NODBC數據源,既適合于SQL Server、Oracle、Access等數據庫應用程序,也適合于Excel表格、文本文件、圖形文件和無格式的數據文件。ADO是基于OLEDB之上的技術,因此ADO通過其內部的屬性和方法提供統一的數據訪問接口方法。
(3)數據訪問對象DAO(Data Access Objects):一種面向對象的界面接口。通過DAO/JET功能可以訪問ISAM數據庫,使用DAO/ODBCDirect功能可以實現遠程RDO功能。使用DAO的程序編碼非常簡單,DAO提供豐富的游標(Cursor)類型的結果集和非游標(Cursor-Less)類型的結果集,同DDL(數據描述語言)的功能類似。DAO模型是設計關系數據庫系統結構的對象類的集合,它提供了完成管理這樣一個系統所需的全部操作的屬性和方法,包括創(chuàng)建數據庫,定義表、字段和索引,建立表間的關系,定位和查詢數據庫等工具。
(4)數據連接性引擎技術JET(Joint Engine Technology):一種基于工作站通過DAO的數據庫訪問機制。雖然可以通過微軟Access提供的ODBC驅動程序訪問JET數據庫,但使用這些驅動程序在功能上有所限制。JET機制有自己的查詢和結果集處理功能,并可對同種或異種數據源作查詢處理。
(5)開放式的數據庫連接ODBC(Open DataBase Connectivity):一種公認的關系數據源的接口界面。它快而輕,并且提供統一接口的界面。ODBC對任何數據源都未作優(yōu)化。
(6)ODBCDirect:一種基于DAO對象的新的DAO模式,其方法和屬性與RDO功能相同。在有DAO代碼存在的場合使用,可用來訪問遠程數據源。
(7)OLEDB:一種底層數據訪問界面接口,是用于第三方驅動程序商家開發(fā)輸出數據源到ADO技術的應用程序,或用于C++的開發(fā)者開發(fā)定制的數據庫組件。OLEDB不能被VB直接調用。
(8)遠程數據訪問控件RDC(Remote Data Control):一種對RDO數據綁定的控件??梢詫⑻囟ǖ慕Y果集輸出到數據源控件。
(9)遠程數據對象RDO(Remote Data Objects):遠程數據對象和集合為使用代碼來創(chuàng)建和操作一個遠程ODBC數據庫系統的各個部件提供了一個框架。對象和集合都具有描述數據庫的各個部件特征的屬性以及用來操作這些部件的方法??梢栽趯ο蠛图现g建立關系,這些關系代表了數據庫系統的邏輯結構。RDO是ODBC API的一個淺層界面接口,是專為訪問遠程ODBC關系數據源而設計的。
(10)VBSQL:Visual Basic結構化查詢語言,是一種基于API的接口方法,幾乎與C的DB-Library API相同。VBSQL只支持微軟的SQL Server。VBSQL快而且輕,但不支持對象界面。
盡管數據訪問方式有多種,但是適合WINCC通信的方式只有ODBC和ADO,這里重點介紹ODBC接口訪問方式。
3 實現方法
ODBC是一種應用程序的接口(API),這種接口提供了獨立于任何數據管理系統的應用程序編寫能力。ODBC通過ODBC驅動程序為不同的數據庫供應商的一組應用程序接口提供了特殊的數據庫管理系統(DBMS)。用戶的應用程序使用這組API來調度ODBC驅動程序。然后驅動程序通過SQL語句與DBMS發(fā)生聯系。
下面介紹ODBC數據源。在“我的電腦”中打開“控制面板”中的“管理工具”,即可見ODBC數據源圖標。ODBC數據源管理器為配置、添加、刪除各種不同的數據源名稱提供了最為簡潔的方法。它使用戶可以輕松地完成數據源的配置工作,用戶也可以刪除原有的DSN(數據源名稱),或對先前配置的數據源進行修改。ODBC數據源管理器的具體功能如下[3]。
(1)用戶DSN:ODBC用戶數據源存儲了如何與指定數據提供者連接的信息。用戶數據源只對當前的用戶可見,而且只能應用在本機上;
(2)系統DSN: ODBC系統數據源存儲了如何與指定數
據提供者連接的信息。系統數據源對當前機器上的所有用戶可見;
(3)文件DSN: ODBC文件數據源允許用戶連接數據提供者。文件DSN可以由安裝了相同驅動程序的用戶共享;
(4)驅動程序: ODBC驅動程序允許那些支持ODBC的程序通過ODBC數據源獲取信息。如果安裝新的驅動程序,要使用其安裝程序;
(5)跟蹤:ODBC跟蹤允許創(chuàng)建調用ODBC驅動程序的日志,以供技術人員查看;也可以輔助調試應用程序。Visual Studio跟蹤啟動Microsoft Visual Studio的ODBC跟蹤;
(6)連接池:連接池允許應用程序重新打開連接句柄,此操作將往返過程存入服務器。
建立數據源:通過對在系統DSN中建立SQL Server數據源test,連接的數據庫為test,并測試成功。
查詢數據庫:
Dim cn,strConn,sql,rs
Dim view1,view2
Set cn = CreateObject("ADODB.Connection")
Set rs=CreateObject("ADODB.Recordset")
strConn="test"
sql="select * from student order by id "
cn.ConnectionString=strConn
cn.Open
rs.Open sql,cn
view1=rs.fields("id")
view2=rs("name")
rs.movenext
Set rs=Nothing
Set cn=Nothing
以上是一個在WINCC中訪問數據庫、實現查詢功能的簡單實例。同樣,也可以實現插入、刪除、修改等功能。
以上只是初級的WINCC與數據庫通信,要想提高效率,需要進行性能調校。所謂性能調校,是指以用戶期望為依據進行調校目的方法。然而性能問題的癥結通常不是表象所能顯示出來的,從不同的方面去看,往往會有不同的解釋。
數據庫性能調校的步驟流程“DETECT”為:
(1)Discover the problem,發(fā)現問題;
(2)Explore the conditions,探究原因,為問題提供明確的定義與定位;
(3)Track down possible approaches,提供可能的解決方案;
(4)Execute the most likely approach,執(zhí)行最有可能的解決方案;
(5)Check for success(如果需要,可重復之前的步驟),確認解決方案成功與否;
(6)Tie up loose ends完成收尾工作。
通過以上調校步驟來對數據庫性能進行優(yōu)化調校。也可以利用相關工具進行性能調校,如SQLDiag.exe、性能監(jiān)視器(Performance Monitor)、事件日志與事件查看器(Events Log)、網絡監(jiān)視器(Network Monitor)、SQL Profiler、索引微調向導(Index Tuning Wizard)、Query Analyzer、DBCC、Application Center Test和Web Application Stress Tool等。
通過對WINCC與數據庫SQL Server進行連接的實例來說明其調校性能的步驟,實現了工控組態(tài)軟件WINCC的數據庫通信方法和采集過程;并就其性能方面進行了概述,提到了多種性能調校工具軟件,對數據庫系統進行監(jiān)控和優(yōu)化性能起了一定作用[4]。
參考文獻
[1] 西門子(中國)自動化與驅動集團.深入淺出西門子WinCC V6. 北京:北京航空航天大學出版社,2004.
[2] 牛勇,袁鵬飛.QL Server編程篇[M].北京:電子工業(yè)出版社, 2005.
[3] 鄭劍峰,董國平.SQL Server開發(fā)答疑[M].北京:北京:人民郵電出版社,2006.
[4] 胡百敬.Microsoft SQL Server性能調校[M].北京:電子工業(yè)出版社,2005.