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