版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于WINCC組態(tài)軟件的復(fù)雜報表實現(xiàn) 孫言巖 李加文 顏智慧 田媛 孫園澤 (機科發(fā)展科技股份有限公司 北京 ) 摘要:本文介紹了在WinCC組態(tài)軟件環(huán)境下,通過訪問其歷史數(shù)據(jù)庫中壓縮歸檔數(shù)據(jù)生成帶有數(shù)據(jù)統(tǒng)計分析功能的報表的實現(xiàn)方法。并且以實際污水處理廠為例,根據(jù)此方法和步驟,完成現(xiàn)場需要的各種時間節(jié)點和數(shù)據(jù)分析統(tǒng)計的報表需求,報表性能穩(wěn)定可靠。關(guān)鍵詞: VBS語言 WinCC壓縮歸檔 WinCC OLE控件The method of generating complex reports based on Wincc softwareYanyan Sun Jiawen Li Zhihui Ya
2、n Yuan Tian Yuanze Sun (Machinery Technology Development CO LTD. Beijing )ABSTRACT:A method of generating reports using WinCC is produced on this paper. The method can generate the report with data statistical analysis in historical database. According to this method, the report of every time node a
3、nd data analysis for actual wastewater treatment plant can be finished. The practical application proves the report is stable and reliable.Key words: VBS WinCC compressed archive WinCC OLE DB 1. 引言WinCC是目前使用最為廣泛的工業(yè)組態(tài)軟件之一,被廣泛應(yīng)用于各種工業(yè)控制系統(tǒng)的數(shù)據(jù)采集及監(jiān)控應(yīng)用系統(tǒng)中。它把所有的過程數(shù)據(jù)保存在其專用的Microsoft SQL Sever 2005數(shù)據(jù)庫中,用戶可以通過
4、WinCC提供的Online Trend Control等控件對其進行訪問,但不能對這些數(shù)據(jù)進行直接訪問和處理。對于現(xiàn)場日趨復(fù)雜的數(shù)據(jù)分析統(tǒng)計的報表要求,顯然已經(jīng)不能滿足。針對此問題,本文提出了通過VBS、WinCC OLE DB方法和SQL相結(jié)合的編程方法,實現(xiàn)對數(shù)據(jù)的重新歸檔及統(tǒng)計分析,以滿足不同場合對報表的需求。2. 污水處理廠自控系統(tǒng)簡介該污水處理廠出水量3萬噸/日。全廠使用西門子PLC進行監(jiān)視、控制和數(shù)據(jù)采集存儲,自控系統(tǒng)框圖如圖1所示。上位機采用WinCC作為人機交互界面的軟件平臺。鑒于當?shù)丨h(huán)保局和污水廠自身的要求,報表系統(tǒng)要具有日報、月報、季報、年報和按時間間隔查詢的自由報表功能
5、。Wincc本身自帶的歷史數(shù)據(jù)查詢控件不能夠滿足要求,因此需要通過編程實現(xiàn)上位機監(jiān)控系統(tǒng)報表功能。PLC2PLC1 測量儀表污泥泵鼓風(fēng)機測量儀表提升泵粗格柵粗格柵圖1:污水廠自控系統(tǒng)框圖3. 報表生成過程 WinCC歷史數(shù)據(jù)庫的存儲方式及常規(guī)訪問方法WinCC在運行時,數(shù)據(jù)歸檔是以一定時間作為基準,形成數(shù)據(jù)片段。在數(shù)據(jù)片段下,與數(shù)據(jù)操作存儲有關(guān)的表格主要有三個: ARCHIVE(用戶歸檔記錄);TAGPRESSED(TAGUNPRESSED)(壓縮/非壓縮變量歸檔記錄) ; MSARCLONG(報警記錄)。這些表格不允許直接訪問,ARCHIVE和TAGPRESSED(TAGUNPRESSED)
6、也不允許修改,MSARCLONG通過控件允許插入/修改等。如果僅僅對數(shù)據(jù)進行簡單的查詢和報警報表的修正,我們可以通過WinCC online Talbe Control 和WinCC Alarm Control 控件實現(xiàn),但控件訪問格式固定,在用戶對報表功能要求較高的時候顯然是不適用的。3.2 利用WinCC OLE DB方法訪問歷史數(shù)據(jù)庫從WINCC6.0開始,SIEMENS就采用SQL3000SP3做為WINCC的后臺數(shù)據(jù)。SQL2000SP3采用了一些獨特的技術(shù),和常規(guī)的SQL訪問的方法是有不同的。WINCC的SQL庫操作是不需要表名的,他有自己定義的SQL語句,需要通過其特有的WinC
7、C OLE DB進行訪問。定義連接字符串sPro = Provider=WinCCOLEDBProvider.1; sDsn = Catalog=數(shù)據(jù)庫名稱;sSer = Data Source=.WinCC其中數(shù)據(jù)庫名稱為WinCC運行后自動生成的數(shù)據(jù)庫名稱,其余為固定格式。利用連接字符串連接數(shù)據(jù)庫Set conn = CreateObject(ADODB.Connection)conn.ConnectionString = sConconn.Open數(shù)據(jù)查詢oCom.CommandText=Tag:R,(A1,A2),+StTime.OutputValue+,+SpTime.OutputV
8、alue+其中A1、A2為數(shù)據(jù)庫中Achieve表中歸檔變量的ID。3.3 RecordSet記錄集中的數(shù)據(jù)存儲格式WinCC歷史數(shù)據(jù)庫中的數(shù)據(jù)通過WinCC OLE DB方法讀出后存儲在RecordSet記錄集中。如果想要處理這些數(shù)據(jù),首先需要知道它的存儲方式,進而通過VBS編程對數(shù)據(jù)進行處理。圖2為WinCC讀取歷史數(shù)據(jù)庫數(shù)據(jù)至RecordSet并在WinCC Listview中顯示。RecordSet每一條存儲記錄包括五列內(nèi)容:ValueIDWinCC ARCHIVE表中變量的ValueIDTimestamp變量存儲時間RealValue變量值Quality質(zhì)量數(shù),表示數(shù)據(jù)的好壞Flag
9、s標志位圖2: WinCC歷史數(shù)據(jù)RecordSet顯示從圖2中可以看出,第一列為變量ID,第二列為存儲時間,第三列為變量值,這三列數(shù)據(jù)是我們所需要的。這些數(shù)據(jù)經(jīng)過計算,就可以完成報表的各種功能了,例如計算累計值、平均值、最大最小值等。3.4 報表功能的實現(xiàn)利用RecordSet數(shù)據(jù)集中的數(shù)據(jù),通過計算就能夠生成日報、月報、季報和年報了。創(chuàng)建一個用戶數(shù)據(jù)庫,并建立日報表,月報表等需要的表格,并將計算后的數(shù)據(jù)存儲在與其相對應(yīng)的表格中,形成報表。根據(jù)用戶查詢的不同報表按鈕連接不同的表格,獲取數(shù)據(jù),并生成用戶所需要的報表。下面以月報為例進行介紹。月報實現(xiàn)每天生成一個平均數(shù),根據(jù)月份不同生成30或31
10、個數(shù)據(jù)。在SQLserver中創(chuàng)建一個用戶數(shù)據(jù)庫,命名為ReportData,在數(shù)據(jù)庫中創(chuàng)建一個table,命名為Data-Month。在WinCC中創(chuàng)建一VBS全局腳本,此腳本運行時間間隔為10min,每條記錄的時間格式為年月日 00:00:00。每次日變量發(fā)生變化時,程序產(chǎn)生一條新的記錄插入數(shù)據(jù)表中,否則程序只更新當前記錄的數(shù)據(jù)內(nèi)容。程序流程圖如圖3所示: 開始讀取系統(tǒng)時間獲取當前時間連接wincc歷史數(shù)據(jù)庫按時間讀取數(shù)據(jù)并計算平均值斷開wincc歷史數(shù)據(jù)庫連接ReportData數(shù)據(jù)庫日期是否存在 更新數(shù)據(jù)記錄新建數(shù)據(jù)記錄 N Y 斷開ReportData數(shù)據(jù)庫結(jié)束 圖3:月報表程序流程
11、圖下面介紹程序中各部分的具體實現(xiàn)。打開WinCC歷史數(shù)據(jù)庫,將數(shù)據(jù)按時間要求讀出,生成RecordSet對象。具體步驟在2.2中已經(jīng)說明。圖3為生成數(shù)據(jù)集之后,如何處理數(shù)據(jù)的程序流程圖。RecordSet包含數(shù)據(jù)記錄 Y 計算RecordSet行數(shù)變量行數(shù)=RecotdSet行數(shù)/變量個數(shù)指針指向首行計算累計值指針加1 N N 循環(huán)次數(shù)=變量行數(shù)Y 指針指向?qū)ο笞詈笠粭l記錄 YN計算下一個變量累積值結(jié)束圖4: 計算功能程序流程圖連接數(shù)據(jù)庫WinCC中連接用戶數(shù)據(jù)庫與VB連接數(shù)據(jù)庫的語法一致,在此不多做陳述,主要程序如下所示:sCon_1 = Provider=SQLOLEDB.1;Integr
12、ated Security=SSPI;Persist Security Info=False;Initial Catalog=Baobiao_Month;Data Source=.WINCC conn_1.Open新建數(shù)據(jù)記錄新建數(shù)據(jù)記錄時,Sum1、Sum2、Sum3是由步驟中計算得到的strWork1 = INSERT INTO ReportData.dbo. Data-Month strWork2 = (DateTime,temperature,press,height) strWork3 = VALUES(+Date+,&(Sum1)&,&(Sum2)&,&(Sum3)&)strWor
13、k = strWork1 + strWork2 + strWork3更新數(shù)據(jù)記錄當日期關(guān)鍵字沒有改變時,程序僅更新當前記錄,不會產(chǎn)生新的數(shù)據(jù)記錄。strWork6 = UPDATE ReportData.dbo. Data-Month strWork7 =SET temperature = &(Sum1)& ,press = &(Sum2)&,height = &(Sum3)& strWork8 = WHERE DateTime = +Date+strWork5 = strWork6 + strWork7 + strWork84. 報表查詢過程經(jīng)過上述步驟,報表數(shù)據(jù)庫已經(jīng)建立。日報表、月報表、
14、季報表和年報表按照不同的時間間隔保存在不同的表中,接下來就可以在WinCC中利用按鈕與DTPicker時間控件相結(jié)合的方法來進行數(shù)據(jù)查詢了。按鈕的功能是確定選擇哪一張表格作為查詢對象,DTPicker的功能是設(shè)置查詢的起始時間和結(jié)束時間。DTPicker是微軟提供的OCX控件,在WinCC中添加此控件。當用戶通過該控件設(shè)置時間后,經(jīng)過VB編程可以獲得控件中設(shè)置的時間參數(shù),之后按照此時間進行數(shù)據(jù)庫查詢。5. 運行結(jié)果報表系統(tǒng)已經(jīng)在實際污水廠自控系統(tǒng)中正常運行使用,記錄包括進水流量、出水流量、進水COD、出水COD、進水氨氮、出水氨氮、溶解氧、進水PH、出水PH、鼓風(fēng)量以及污泥濃度十一個變量。系統(tǒng)
15、中實現(xiàn)了日報表、月報表、季報表和年報表的查詢以及累計值和平均值的計算。6. 結(jié)論本報表系統(tǒng)通過WinCC OLE DB方法連接WinCC歷史數(shù)據(jù)庫讀取數(shù)據(jù),并采用VBS和SQL相結(jié)合的編程方式,實現(xiàn)了數(shù)據(jù)的靈活訪問,制作出滿足污水廠要求的報表系統(tǒng)。利用此方法,我們可以制作出滿足各行業(yè)要求的復(fù)雜報表系統(tǒng),解決工程中關(guān)于報表的實際問題。參考文獻1. 龔沛曾等,Visual Basic 程序設(shè)計簡明教程,第一版,2001年,高等教育出版社,北京2. 常桂英,蔚淑君,Visual Basic 程序設(shè)計+SQL Server 2005 數(shù)據(jù)庫應(yīng)用系統(tǒng)開發(fā)案例教程,第一版,2012,清華大學(xué)出版社,北京3. 劉彬彬,安劍等,Visual Basic從入門到精通,第二版,2010年,清華大學(xué)出版社,北京4.
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 建立培訓(xùn)制度流程
- 高速質(zhì)量教育培訓(xùn)制度
- 代理內(nèi)部培訓(xùn)制度
- 理工社區(qū)工作站培訓(xùn)制度
- b超規(guī)范工作制度
- 生產(chǎn)線下培訓(xùn)班管理制度
- 社區(qū)全科醫(yī)生培訓(xùn)制度
- 2025福建龍巖上杭縣殯儀館有限公司招聘工作人員2人筆試歷年參考題庫附帶答案詳解
- 外國公司新員工培訓(xùn)制度
- 2025浙江嘉興市海寧長河水務(wù)有限責任公司招聘3人筆試歷年參考題庫附帶答案詳解
- 民航保健與衛(wèi)生
- 醫(yī)藥ka專員培訓(xùn)課件
- 【中考真題】2025年上海英語試卷(含聽力mp3)
- 2025年城市更新的城市更新技術(shù)
- 聚焦2025年:電商物流“最后一公里”配送冷鏈運輸解決方案研究
- 冬季代維安全培訓(xùn)課件
- DB32-T 5160-2025 傳媒行業(yè)數(shù)據(jù)分類分級指南
- 地理信息安全在線培訓(xùn)考試題(附答案)
- DBJT15-192-2020 平板動力載荷試驗技術(shù)標準
- 《智能網(wǎng)聯(lián)汽車概論》高職完整全套教學(xué)課件
- 【MOOC答案】《電路分析基礎(chǔ)》(南京郵電大學(xué))章節(jié)作業(yè)慕課答案
評論
0/150
提交評論