国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于高級(jí)編程語言WINCC復(fù)雜報(bào)表管理的實(shí)現(xiàn)

2011-06-13 00:35徐志杰
綜合智慧能源 2011年11期
關(guān)鍵詞:字符串數(shù)據(jù)源控件

徐志杰

(國電南自新能源科技有限公司,江蘇南京210032)

0 引言

WINCC(WindowsControlCenter)作為西門子公司開發(fā)的上位機(jī)組態(tài)軟件,功能強(qiáng)大、應(yīng)用靈活,為現(xiàn)場控制提供了一個(gè)高可靠性的監(jiān)控平臺(tái),它廣泛應(yīng)用于工控領(lǐng)域,尤其在電力系統(tǒng)的輔機(jī)控制方面,有許多采用WINCC+S7300(或400)方案來實(shí)現(xiàn)穩(wěn)定可靠控制的成功案例。隨著WINCC多年應(yīng)用經(jīng)驗(yàn)的積累,該版本進(jìn)行了多次升級(jí),WINCCV6.2 SP3由于具有智能新選件、可擴(kuò)展菜單(工具欄)、報(bào)警可隱藏,自定義數(shù)據(jù)庫等諸多新特征,使其應(yīng)用越來越廣泛。WINCCV6.2的歸檔方式與以前的版本有所不同,它的運(yùn)行數(shù)據(jù)存放在數(shù)據(jù)片段當(dāng)中。當(dāng)控制系統(tǒng)數(shù)據(jù)采集比較多時(shí),需要對(duì)數(shù)據(jù)關(guān)系進(jìn)行二次梳理,而WINCC自帶的報(bào)表編輯器有其局限性,用戶要實(shí)現(xiàn)復(fù)雜報(bào)表存在很大難度。針對(duì)上述情況,結(jié)合數(shù)據(jù)片段無法直接用高級(jí)編程語言VB(VisualBasic)讀取的問題,采用自定義數(shù)據(jù)庫來存放過程運(yùn)行數(shù)據(jù),然后采用VB技巧通過字符串訪問方式讀取數(shù)據(jù),可實(shí)現(xiàn)分析處理及復(fù)雜報(bào)表的查詢打印等功能。

1 WINCC軟件訪問數(shù)據(jù)庫的方式

WINCC軟件幾乎集成了微軟所有開放性技術(shù),大量采用了標(biāo)準(zhǔn)化技術(shù)(OPC,DDE,ODBC,OLEDB,ActiveX等),可方便地與其他應(yīng)用程序交換數(shù)據(jù)。

WINCC6.2軟件還提供C腳本和VBScript腳本語言支持,可通過連接字符串的方式實(shí)現(xiàn)數(shù)據(jù)庫的連接和操作。以某電廠減排控制系統(tǒng)的上位機(jī)監(jiān)控系統(tǒng)為例,實(shí)時(shí)數(shù)據(jù)直接采用WINCC歸檔數(shù)據(jù)通過WINCC控件進(jìn)行調(diào)閱查詢。而過程運(yùn)行特殊設(shè)置數(shù)據(jù)和歷史數(shù)據(jù)通過字符串連接方式訪問自定義數(shù)據(jù)庫來實(shí)現(xiàn)。

2 WINCC訪問自定義數(shù)據(jù)庫

2.1 建立自定義數(shù)據(jù)庫

打開SQLServerManagementStudio,以Sa用戶登錄SQLServer數(shù)據(jù)庫,如圖1所示。在SQLServer數(shù)據(jù)庫中建立名為“userdata”數(shù)據(jù)庫和“process_value”數(shù)據(jù)表,如圖2所示。

圖1 自定義數(shù)據(jù)庫連接

2.2 與自定義數(shù)據(jù)庫進(jìn)行連接并讀寫

在WINCC軟件全局腳本建立一動(dòng)作周期觸發(fā)執(zhí)行實(shí)現(xiàn)與自定義數(shù)據(jù)庫連接后把過程值寫入到自定義數(shù)據(jù)庫中,詳細(xì)情況見參考文獻(xiàn)[1]。具體實(shí)現(xiàn)代碼如下:

圖2 自定義數(shù)據(jù)庫表

通過以上代碼,每隔1min執(zhí)行一次寫入操作,將過程值寫入到自定義數(shù)據(jù)庫,便于下一步用VB編寫的程序進(jìn)行讀取。

3 基于高級(jí)編程語言的數(shù)據(jù)庫訪問

3.1 VB連接數(shù)據(jù)庫的方法

由于WINCC軟件提供了開放的標(biāo)準(zhǔn)數(shù)據(jù)訪問接口,VB可通過多種方式進(jìn)行數(shù)據(jù)庫連接。

方法1。建立ODBC數(shù)據(jù)源,通過ODBC數(shù)據(jù)源進(jìn)行連接,該方法簡單易用,但需要在上位機(jī)上手動(dòng)建立ODBC數(shù)據(jù)源。

方法2。采用連接字符串方式進(jìn)行連接,直接調(diào)用OLE-DB驅(qū)動(dòng),以字符串方式進(jìn)行連接,該方法不需要手動(dòng)建立連接數(shù)據(jù)源,便于在不同工程間進(jìn)行程序的移植。

本文考慮到程序的通用性和可移植性,采用了字符串連接方式實(shí)現(xiàn)VB與數(shù)據(jù)庫之間的連接,具體實(shí)現(xiàn)代碼如下:

上面介紹了用VB和VBScript腳本分別操作SQL數(shù)據(jù)庫的方法,通過執(zhí)行SQL語言的insertinto或者update等命令(更多命令參見參考文獻(xiàn)[2])即可實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的插入、更新等操作。

3.2 通過Active控件實(shí)現(xiàn)靈活報(bào)表管理

通過上面介紹的VB連接SQL數(shù)據(jù)庫的方法,從數(shù)據(jù)庫獲取數(shù)據(jù)后,可利用廣泛使用的第3方Active控件來實(shí)現(xiàn)靈活的報(bào)表查詢、打印、輸出。查詢數(shù)據(jù)源與控件的綁定方法如下:

pri_title=Left(Now(),10)&"12月份運(yùn)行記錄"

sbStatusBar.Panels.Item(1).text=″當(dāng)前顯示的數(shù)據(jù)是:″&pri_title

通過以上代碼就可實(shí)現(xiàn)控件與數(shù)據(jù)源的綁定,圖3為應(yīng)用于某電廠的煙塵減排控制系統(tǒng)數(shù)據(jù)管理界面。

圖3 應(yīng)用實(shí)例

3.3 WINCC軟件中調(diào)用外掛EXE文件

將VB編寫的數(shù)據(jù)管理程序編譯成完整的EXE文件,然后在WINCC下通過以下C腳本來調(diào)用。

通過以上介紹的方法和步驟即可實(shí)現(xiàn)WINCC下復(fù)雜報(bào)表管理功能。

4 結(jié)論

本文在應(yīng)用WINCC作為上位機(jī)監(jiān)控軟件開發(fā)平臺(tái)的工程中,由于WINCC系統(tǒng)自帶的報(bào)表功能所限,而過程數(shù)據(jù)又需要二次分析且要求實(shí)現(xiàn)復(fù)雜報(bào)表管理,通過本文描述的方法即可簡單方便地實(shí)現(xiàn)對(duì)WINCC軟件過程數(shù)據(jù)和需要特殊處理的數(shù)據(jù)的存取操作和數(shù)據(jù)管理。該方法充分利用了WINCC軟件的優(yōu)點(diǎn),大大降低了操作人員使用監(jiān)控軟件的復(fù)雜性和難度。此外,在WINCC軟件中將過程數(shù)據(jù)存入自定義數(shù)據(jù)庫,為以B/S方式獲取數(shù)據(jù)預(yù)留了方便的接口,該方法具有較好的擴(kuò)展性和可移植性。

[1]蘇昆哲.深入淺出西門子WINCCV6[M].北京:北京航空航天大學(xué)出版社,2008.

[2]“653”工程編委會(huì).SQLServer2005實(shí)例教程M].北京:中國電力出版社,2008.

猜你喜歡
字符串數(shù)據(jù)源控件
基于文本挖掘的語詞典研究
基于.net的用戶定義驗(yàn)證控件的應(yīng)用分析
關(guān)于.net控件數(shù)組的探討
Web 大數(shù)據(jù)系統(tǒng)數(shù)據(jù)源選擇*
基于不同網(wǎng)絡(luò)數(shù)據(jù)源的期刊評(píng)價(jià)研究
SQL server 2008中的常見的字符串處理函數(shù)
最簡單的排序算法(續(xù))
基于真值發(fā)現(xiàn)的沖突數(shù)據(jù)源質(zhì)量評(píng)價(jià)算法
WONCA研究論文摘要匯編
——初級(jí)保健晚期疾病患者照顧者的識(shí)別障礙:3個(gè)數(shù)據(jù)源的三角化測量
高效的top-k相似字符串查詢算法
沙河市| 石河子市| 常山县| 福建省| 嘉兴市| 天镇县| 潮安县| 杨浦区| 荔波县| 嵊州市| 临颍县| 弥渡县| 家居| 搜索| 商洛市| 巴马| 天祝| 丹阳市| 葫芦岛市| 齐齐哈尔市| 高青县| 松溪县| 上饶县| 宜兴市| 彰化县| 庄浪县| 上犹县| 南通市| 惠水县| 乌拉特前旗| 邯郸县| 定安县| 扎鲁特旗| 甘洛县| 泰宁县| 龙门县| 西乌| 邢台市| 班戈县| 商洛市| 什邡市|