0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

WinCC如何做外部報表

1bGT_GKYXT1508 ? 來源:未知 ? 作者:李倩 ? 2018-04-16 10:40 ? 次閱讀

用VB實現(xiàn)WinCC歸檔數(shù)據(jù)的復(fù)雜報表

最近在看WinCC如何做外部報表,網(wǎng)上找了一篇文章,供大家參考。

引言:

Siemens公司的WinCC是一個優(yōu)秀的工控組態(tài)軟件,廣泛應(yīng)用于各種工業(yè)控制系統(tǒng)的數(shù)據(jù)采集及監(jiān)控,具有良好的人機界面、靈活的組態(tài)功能。WinCC本身也具有報表和曲線處理功能,但 WinCC V6.0以前的版本沒有嵌入VB腳本功能,且其歸檔數(shù)據(jù)不能直接被SQL server數(shù)據(jù)庫所用。對于一些較復(fù)雜的數(shù)據(jù)處理功能(如數(shù)據(jù)查詢、數(shù)據(jù)備份、報表打印等)用WinCC實現(xiàn)就顯得力不從心。同時,WinCC在處理報表時不能對歷史數(shù)據(jù)進行任意查詢和過濾,且報表格式設(shè)計也不夠靈活方便,無法滿足項目要求。

1.系統(tǒng)概述

本系統(tǒng)是將WinCC從PLC采集過來的過程數(shù)據(jù)通過VB編程進行歸檔、查詢、過濾、報表打印。在每次試驗前,先要清空WinCC歸檔數(shù)據(jù)庫和Access臨時數(shù)據(jù)庫,以保證每一次試驗數(shù)據(jù)的有效性和完整性。試驗結(jié)束后,可立即進行數(shù)據(jù)處理(備份、查詢、過濾、打印)。也可對備份的歷史數(shù)據(jù)進行查詢和報表打印。由于Excel實現(xiàn)報表功能非常強大,且VB的可擴展性強,可以利用Excel作為OLE服務(wù)器,實現(xiàn)VB與Excel的集成,所以各種復(fù)雜的報表可以很容易的實現(xiàn)。系統(tǒng)主要界面如下 :

圖一:新試驗起始畫面

圖二:數(shù)據(jù)查詢畫面

2. ODBC的配置連接和DAO

2.1 ODBC(Open Database Connectivity)配置

ODBC是一個用于訪問數(shù)據(jù)庫的統(tǒng)一標(biāo)準(zhǔn)接口,是Microsoft Windows的開放服務(wù)體系WOSA(Windows OpenServices Architecture)中有關(guān)數(shù)據(jù)庫的一個組成部分。ODBC需要連接數(shù)據(jù)源,選擇相應(yīng)的驅(qū)動程序。本系統(tǒng)數(shù)據(jù)源配置在ODBC Config 對話框中進行,配置數(shù)據(jù)庫文件名(此處輸入Siemens組態(tài)軟件Wincc自動生成存檔的過程數(shù)據(jù)庫《項目名》RT.DB)和路徑。并在類型(Description)中輸入Wincc5.0 。在Access中通過“獲取外部數(shù)據(jù)“連接到在ODBC 管理器中建立的數(shù)據(jù)源。這樣即使Wincc退出后,Access仍然與過程數(shù)據(jù)庫保持后臺動態(tài)連接。

2.2 DAO(dataaccessobjects)

VB訪問數(shù)據(jù)庫的方法有多種,訪問的數(shù)據(jù)庫類型也有多種。DAO(dataaccess objects)是一種基于Jet 數(shù)據(jù)庫引擎的面向?qū)ο蠼涌?,它提供了完整的管理一個關(guān)系型數(shù)據(jù)庫所需的全部操作屬性和方法。DAO可以識別ODBC數(shù)據(jù)庫。

3. VB創(chuàng)建數(shù)據(jù)庫和Excel報表

3.1創(chuàng)建數(shù)據(jù)庫、添加記錄

Siemens組態(tài)軟件Wincc自動生成歸檔的過程數(shù)據(jù)庫《項目名》RT.DB,每一個標(biāo)簽變量對應(yīng)一個表,需將若干個表匯總成為一個總表,另外需建一個包含變量名稱、代號、允許值等字段的表。上述過程采用VB編程,用前面介紹的的DAO創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表、添加字段等來完成。并將Access中不同的采樣周期對應(yīng)數(shù)據(jù)添加到臨時數(shù)據(jù)庫中,然后進行備份、查詢和報表處理等。主要程序如下:

SetWs = DBEngine.Workspaces(0)

Set dataBase = Ws.CreateDatabase(dataBasePath,dbLangGeneral, dbVersion60)

Set Table = dataBase.CreateTableDef(TableName)

Do Until recordTemp.EOF

Rs.AddNew:Rs(1) = recordTemp(0)

Rs.Update:recordTemp.MoveNext

Loop

3.2數(shù)據(jù)查詢和過濾

使用SQL語句實現(xiàn)時間段和數(shù)據(jù)過濾時間的子查詢,并將查詢結(jié)果放在建立的臨時查詢表中,再將臨時查詢表的記錄顯示。

Set queryTemp =db.CreateQueryDef(“”, “SELECT * FROM 運行數(shù)據(jù) WHERE 時間 IN ( SELECT 時間 From 運行數(shù)據(jù) WHERE 時間 between #” & strStart & “# and #” &strEnd & “# ) and Val(序號) Mod ” & Tim& “=” & numMod & “ ORDER BY 時間 ”)

3.3生成Excel報表

由于生成的報表比較復(fù)雜,所以先在Excel中按照用戶的要求作好一個模板(后綴為.xlt),對于報表中不固定的部分,需要VB程序動態(tài)生成。由于本項目過程變量數(shù)目及采樣值較多,在VB程序中需同時控制Excel的Sheet和Page。整個過程都是后臺調(diào)用Excel。

1)啟動Excel、復(fù)制模板:

SetobjNew = New Excel.Application

SetobjNew = CreateObject(“Excel.application”)

FileCopystrS, strD ‘復(fù)制模板

SetobjEW = objNew.Workbooks.Open(strD) objNew.Visible = False

2)按要求將查詢結(jié)果送到Excel的各個Range或Cells中:

Fori = 3 To 16

objEW.Sheets(1).Cells(4+ k * 33, i) = c(i - 2, 1): Next I

3)刪除多余的模板:

objEW.Sheets(1).Range(“A”& Trim$(Str$(k)) & “:” & “P660”).Select objNew.Selection.EntireRow.Delete

Selection.DeleteShift:=xlUp

4)設(shè)置紙張、打印預(yù)覽和打?。?/p>

objEW.ActiveSheet.PageSetup.Orientation= xlLandscape ‘設(shè)置紙張方向為橫向

objEW.ActiveSheet.PageSetup.PaperSize= xlPaperA4 ’設(shè)置紙張尺寸為A4

objNew.Visible= True

objEW.Sheets(1).PrintPreview

objNew.Visible= False

objEW.Sheets(1).PrintOut

objNew.DisplayAlerts= False: objNew.Quit objNew.DisplayAlerts= True:

SetobjNew = Nothing

KillApp.Path + “\temp1.xls” ‘刪除臨時模板

4.結(jié)束語:

本系統(tǒng)將WinCC從PLC采集過來的過程數(shù)據(jù),通過VB編程進行歸檔、查詢、過濾、報表打印,以及對歷史數(shù)據(jù)查詢、過濾、報表打印。系統(tǒng)充分利用Excel非常強大的報表處理功能,以及VB的可擴展性強,將VB與Excel集成,以實現(xiàn)用戶所要求的報表;同時,實現(xiàn)了數(shù)據(jù)靈活備份,解決了工程實際問題。目前該系統(tǒng)已投入運行,性能良好。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • WinCC
    +關(guān)注

    關(guān)注

    6

    文章

    204

    瀏覽量

    47929
  • VB編程
    +關(guān)注

    關(guān)注

    0

    文章

    44

    瀏覽量

    8403

原文標(biāo)題:用VB實現(xiàn)WinCC歸檔數(shù)據(jù)的復(fù)雜報表

文章出處:【微信號:GKYXT1508,微信公眾號:工控云學(xué)堂】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    變壓器沒有抽頭如何做正負(fù)壓?

    變壓器沒有抽頭如何做正負(fù)壓?
    的頭像 發(fā)表于 01-20 10:28 ?1594次閱讀
    變壓器沒有抽頭<b class='flag-5'>如何做</b>正負(fù)壓?

    求教labview和wincc的接口問題?

    現(xiàn)在在許多行業(yè)的HMI用的是西門子的WinCC ,有沒有用labview和西門子的SCADA軟件WINcc的接口?
    發(fā)表于 11-24 17:05

    labview 和 wincc 的區(qū)別 使用場景

    labview 和 wincc 的區(qū)別 使用場景 都是上位機軟件,都可以監(jiān)控軟件 wincc的名氣也比較大 對比的資料較少 寫這些文章的人,從自己的從事的行業(yè)出發(fā),帶有自己的思維 使用的場景 肯定
    發(fā)表于 10-27 18:01

    WinCC數(shù)據(jù)報表實現(xiàn)方法介紹

    WinCC數(shù)據(jù)報表實現(xiàn)方法介紹:本文對數(shù)據(jù)報表的需求進行了分析,結(jié)合WinCC就復(fù)雜數(shù)據(jù)報表的實現(xiàn)進行了介紹。關(guān)鍵詞
    發(fā)表于 07-03 15:53 ?192次下載

    如何做一塊好的PCB板

    如何做一塊好的PCB板    大家都知道理PCB板就是把設(shè)計好的原理圖變成一塊實實在在的PCB電路板,請別小看這一
    發(fā)表于 01-18 13:16 ?2547次閱讀

    手機企業(yè)如何做項目管理

    手機企業(yè)如何做項目管理 項目管理科學(xué)是一門關(guān)于項目資金、時間、人力、產(chǎn)品等資源控制的管
    發(fā)表于 07-15 07:51 ?1610次閱讀

    半導(dǎo)體廠商如何做芯片的出廠測試

    半導(dǎo)體廠商如何做芯片的出廠測試呢,這對芯片來說,是流片后或者上市前的必須環(huán)節(jié)。
    發(fā)表于 06-18 15:56 ?1.5w次閱讀

    半導(dǎo)體廠商如何做芯片的出廠測試

    半導(dǎo)體廠商如何做芯片的出廠測試,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 10-26 15:55 ?0次下載

    SIMATIC WinCC V7.4 過程可視化系統(tǒng)樣本

    、262144個外部變量)。外部變量是指,通過WinCC通道連接到控制器或其它數(shù)據(jù)源的數(shù)據(jù)點。WinCC基本系統(tǒng)已集成圖形系統(tǒng)、報警消息系統(tǒng)、歸檔系統(tǒng)、
    發(fā)表于 04-26 14:26 ?13次下載

    博圖WINCC如何做畫面模板

    博圖WINCC 如何做畫面模板
    的頭像 發(fā)表于 10-10 09:10 ?3.2w次閱讀
    博圖<b class='flag-5'>WINCC</b><b class='flag-5'>如何做</b>畫面模板

    利用第三方軟件實現(xiàn)WinCC打印實時報表的方法

    利用第三方軟件實現(xiàn)WinCC打印實時報表的方法A說明。
    發(fā)表于 04-25 11:07 ?10次下載

    WINCC flexiblo組態(tài)報表是什么,如何創(chuàng)建

    出于產(chǎn)品測試和質(zhì)量控制的目的,報表用于記錄生產(chǎn)過程中的事件。這些事件,即報警和配方數(shù)據(jù),以班次報表的形式定期輸出。
    的頭像 發(fā)表于 06-30 17:26 ?1965次閱讀
    <b class='flag-5'>WINCC</b> flexiblo組態(tài)<b class='flag-5'>報表</b>是什么,如何創(chuàng)建

    涂鴉IoT平臺如何做智能家居項目

    電子發(fā)燒友網(wǎng)站提供《涂鴉IoT平臺如何做智能家居項目.zip》資料免費下載
    發(fā)表于 11-08 10:40 ?7次下載
    涂鴉IoT平臺<b class='flag-5'>如何做</b>智能家居項目

    WINCC flexiblo組態(tài)報表詳解

    出于產(chǎn)品測試和質(zhì)量控制的目的,報表用于記錄生產(chǎn)過程中的事件。這些事件,即報警和配方數(shù)據(jù),以班次報表的形式定期輸出。
    的頭像 發(fā)表于 07-26 10:11 ?947次閱讀
    <b class='flag-5'>WINCC</b> flexiblo組態(tài)<b class='flag-5'>報表</b>詳解

    SIMATIC WinCC產(chǎn)品特性及亮點

    SIMATIC WinCC 基本系統(tǒng)包分運行版和完全版(組態(tài)+ 運行)兩種,軟件授權(quán)以外部變量進行劃分(可支持128、512、2048、8192、65536、102400、153600、262144 個外部變量)。
    的頭像 發(fā)表于 08-09 14:25 ?1304次閱讀