吳靜然 崔冉
摘要:針對(duì)煤礦洗煤廠項(xiàng)目中組態(tài)軟件WinCC歸檔數(shù)據(jù)的存儲(chǔ)和復(fù)雜查詢的問題,探討了通過在WinCC編寫VBS程序?qū)inCC自帶數(shù)據(jù)庫SQL進(jìn)行數(shù)據(jù)存儲(chǔ)、查詢和刪除的方法。結(jié)果表明:WinCC報(bào)警記錄功能可以實(shí)現(xiàn)消息的采集和歸檔;在SQL中自建用戶歸檔,通過SELECT、INSERT INTO、DELETE三條語句可以實(shí)現(xiàn)對(duì)用戶歸檔的查詢、插入和刪除數(shù)據(jù)集。最后利用這兩種方法實(shí)現(xiàn)了歸檔數(shù)據(jù)的存儲(chǔ)和復(fù)雜查詢,完善了WinCC項(xiàng)目數(shù)據(jù)歸檔的功能,提高了洗煤廠日常管理的自動(dòng)化水平。
關(guān)鍵詞:WinCC VBS SQL 數(shù)據(jù)歸檔
中圖分類號(hào):TP273 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2016)08-0111-01
在實(shí)際生產(chǎn)中需要操作員控制記錄功能,實(shí)現(xiàn)查看操作員操作日志,并且在出現(xiàn)事故時(shí)查詢是否是操作員誤操作導(dǎo)致事故發(fā)生,有利于找到事故原因、分清責(zé)任,避免相同事故的再次發(fā)生。本文采用VBS編程,利用報(bào)警控件記錄和用戶自建數(shù)據(jù)庫實(shí)現(xiàn)實(shí)現(xiàn)操作員控制記錄功能,解決了WinCC一項(xiàng)實(shí)際工程問題。
1 系統(tǒng)概述
本文以洗煤廠中三條每條50米搭接皮帶為例,采用西門子PLC控制,上位機(jī)監(jiān)控軟件為WinCC 7.0。WinCC主要完成對(duì)系統(tǒng)的設(shè)備運(yùn)行狀態(tài)的遠(yuǎn)程集控和監(jiān)視、報(bào)警、數(shù)據(jù)歸檔及報(bào)表打印。
WinCC畫面由2個(gè)LISTTABLE、一個(gè)復(fù)選框、7個(gè)DTPicker控件、一個(gè)I/O域、3個(gè)按鈕和若干靜態(tài)文本組成。
2 歸檔數(shù)據(jù)的存儲(chǔ)和查詢
本文利用VBS編程實(shí)現(xiàn)WinCC與Microsoft SQL Server 2005的數(shù)據(jù)鏈接,通過動(dòng)作調(diào)用過程將操作信息存儲(chǔ)于數(shù)據(jù)庫,并組態(tài)VBS觸發(fā)事件來實(shí)現(xiàn)數(shù)據(jù)的訪問、查詢和刪除。
2.1 利用報(bào)警記錄實(shí)現(xiàn)數(shù)據(jù)歸檔和查詢
報(bào)警記錄分組態(tài)系統(tǒng)和運(yùn)行系統(tǒng)兩個(gè)組件,其組態(tài)系統(tǒng)為報(bào)警記錄編輯器。本文利用報(bào)警記錄實(shí)現(xiàn)帶式輸送機(jī)運(yùn)行記錄的查詢。利用報(bào)警記錄實(shí)現(xiàn)數(shù)據(jù)歸檔和查詢,首先要在報(bào)警記錄編輯器中組態(tài)報(bào)警的消息塊,報(bào)警消息塊分系統(tǒng)塊、過程值塊和用戶文本塊。本系統(tǒng)不對(duì)過程值進(jìn)行歸檔,所以只需要將報(bào)警記錄中用戶文本塊和系統(tǒng)塊的內(nèi)容從SQL中讀出即可。新建3個(gè)報(bào)警記錄,編號(hào)分為1、2、3,組態(tài)對(duì)應(yīng)消息變量,本文分為belt1.run、belt2.run、belt3.run三個(gè)二進(jìn)制變量。
其次,需要在皮帶運(yùn)行記錄查詢中的開始查詢按鈕設(shè)置VBS腳本動(dòng)作,使用觸發(fā)事件中的按下左鍵觸發(fā)事件。
將寫好的按鈕VBS腳本程序?qū)懭氚粹o觸發(fā)事件中,即完成了利用報(bào)警記錄實(shí)現(xiàn)帶式輸送機(jī)運(yùn)行時(shí)間查詢的功能,運(yùn)行總時(shí)間顯示在I/O域內(nèi)。按鈕VBS運(yùn)行記錄查詢腳本程序流程圖如圖1(a)所示。
2.2 通過自建數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)歸檔和查詢
自建數(shù)據(jù)庫實(shí)現(xiàn)數(shù)據(jù)歸檔和查詢較靈活,但需要對(duì)數(shù)據(jù)庫有一定的了解。本文通過自建數(shù)據(jù)庫實(shí)現(xiàn)對(duì)操作員操作記錄的存儲(chǔ)、查詢和刪除。首先,需要在Microsoft SQL Server 2005中建立名為uesrlist的數(shù)據(jù)庫,設(shè)計(jì)數(shù)據(jù)庫包含user、date和event三列,定義數(shù)據(jù)類型和是否允許空;其次,在項(xiàng)目中創(chuàng)建向uesrlist數(shù)據(jù)庫存入數(shù)據(jù)集的save過程,為每個(gè)操作按鈕設(shè)置觸發(fā)動(dòng)作,在觸發(fā)動(dòng)作中調(diào)用save動(dòng)作,來記錄操作員的每個(gè)操作;最后在操作記錄查詢中的開始查詢按鈕中創(chuàng)建VBS腳本動(dòng)作,查詢uesrlist數(shù)據(jù)庫并將查詢數(shù)據(jù)集寫入對(duì)應(yīng)LISTTABLE控件,刪除記錄按鈕同樣創(chuàng)建腳本動(dòng)作,刪除設(shè)定日期前的操作記錄并清空對(duì)應(yīng)LISTTABLE控件。在VBS中通過insert into、select、update和delete命令對(duì)自建數(shù)據(jù)庫的進(jìn)行插入、讀取、寫入和刪除數(shù)據(jù)集操作的格式與報(bào)警記錄數(shù)據(jù)庫的操作命令格式類似。Save過程流程圖如圖1(b)所示。
3 結(jié)語
本文利用了報(bào)警記錄和自建數(shù)據(jù)庫,通過VBS編程,用2種方法實(shí)現(xiàn)了操作員控制記錄功能,使WinCC系統(tǒng)可以自動(dòng)記錄3條皮帶的各自啟停時(shí)間、總運(yùn)行時(shí)間以及某位操作員何時(shí)在WinCC監(jiān)控系統(tǒng)中進(jìn)行了何種操作,方便了洗煤廠的日常工作管理,提高了煤礦自動(dòng)化監(jiān)控的水平。
參考文獻(xiàn)
[1]西門子(中國)有限公司自動(dòng)化與驅(qū)動(dòng)集團(tuán).深入淺出西門子WinCC V6[M].北京:北京航空航天大學(xué)出版社,2003.
[2]高守傳.精通SQL結(jié)構(gòu)化查詢語言詳解[M].北京:人民郵電出版社,2007.
[3]高春艷,李艷,谷偉東.Visual Basic 數(shù)據(jù)庫關(guān)鍵技術(shù)與實(shí)例應(yīng)用[M].人民郵電出版社,2004.
[4]李曉品,張曉輝,李祥勝.SQL Server 2000管理及應(yīng)用系統(tǒng)開發(fā)[M].北京人民郵電出版社,2002.
[5]四維科技,趙斯思.Visual Basic數(shù)據(jù)庫編程技術(shù)與實(shí)例[M].北京人民郵電出版社,2004.