朱圓圓 高燕麗 李煥
摘要:在工業控制領域,生產或管理數據的處理往往以各類報表的形式提供給生產技術人員或管理人員。報表數據可對系統運行狀況、產品品質及管理狀態提供分析支持。本文介紹了一種報表的實現方案,利用OPC通用數據接口對接各類控制系統,生成本地的基于報表查詢的歷史數據庫,利用Excel的強大可視化報表功能進行報表的組態,可滿足各種類型的報表需求。
關鍵詞:OPC 可視化 報表
中圖分類號:TP311.52 文獻標識碼:A 文章編號:1007-9416(2016)08-0162-01
1 引言
目前國內外各系統廠商所提供的控制系統均以不同方式提供其過程數據的報表功能。但用戶對于報表內容、格式以及數據處理要求各不相同,各系統所提供的報表功不能滿足用戶的不同需求。另外,由于各控制系統廠商訪問現場設備的數據接口也各不一樣,往往缺乏通用的數據存取標準,給用戶帶來的很大的不便。OPC技術的出現給工業控制領域數據的存取訪問帶來了新的方法。本文使用OPC接口作為各控制系統的統一數據接口,采用可視化方法提供靈活多樣的運行報表的模板設計,簡化了用戶報表組態過程,具有使用靈活、接口簡單、通用性強的特點。
2 總體設計方案
提供通用的數據接口,使用戶可以方便地配置報表類型和記錄測點,同時提供功能豐富的、可滿足大部分用戶對于報表格式、內容多樣性的需求的可視化的報表定義系統。用戶將焦點集中在報表功能需求的定義方面,可以使用戶從應用角度來設計和使用報表。
設計分三個部分:第一部分為基于OPC接口的數據庫。目前絕大多數控制系統廠商均提供OPC接口的數據存取方案,為報表系統的統一數據接口提供了支持;第二部分為歷史數據的記錄。數據以Access數據庫表的形式記錄在存儲器中,方便其它模塊對數據的訪問。雖然OPC規范中提供了對于歷史數據訪問(Historical Data Access)的方法,但在實際應用中發現,各控制系統廠商實現歷史數據訪問是采用的標示方法不同,無法做到統一的訪問,因此本方案中仍采用OPC數據存取(Data Access)規范來完成數據的獲取;第三部分為報表定義與生成系統。通過報表定義系統,可以完成報表的基本配置,如報表格式、報表類型等。本方案中采用Excel文件作為報表的模板,因其具有靈活的格式、方便的統計計算等特點。報表生成系統根據報表的配置,定期自動生成格式化報表文件,供運行管理人員進行分析處理。系統整體構架如圖1所示。
3 各功能的設計與實現
3.1 OPC數據接口模塊
OPC接口模塊功能如圖2所示。OPC通過三個接口來實現數據存取。一個OPC的數據存取服務器中包括幾類對象:服務器(OPCServer)、組(OPCGroup)和項(OPCItem)。OPC服務器對象維護有關服務器的信息并作為OPC組對象的包容器, OPC組對象維護有關其自身的信息,提供包容OPC項的機制,并管理OPC項。
OPC數據的獲取可以采用三種方式:同步讀寫、異步讀寫和通知方式。本方案中為了簡化應用,采取同步讀寫方式。讀操作完成后返回的數據中包含三個有用的域,其中Value域中是讀出的數據, TimeStamp域是數據的時間戳, Quality屬性是返回數據的質量碼。需要注意的是數據的時間戳返回的是格林尼治時間,在處理的時候要進行本地化。
3.2 歷史數據記錄模塊
歷史數據記錄模塊的主要功能是定時將內存數據庫中的數據存入歷史數據庫中以便報表生成模塊調用。主要流程如圖3所示。本方案通過DAO(Data Access Object)接口來操作Access數據庫。主要涉及的操作有建立數據庫、建立數據表、添加表記錄。
建立數據庫及數據表的代碼如下:
Set myDB = DAO.CreateDatabase(strDBFileName, dbLangChineseSimplified)
Set myTbl = myDB.CreateTableDef(“表名”)
myTbl.Fields.Append .CreateField(“Time”, dbDate)
myTbl.Fields.Append .CreateField(“Value”, dbSingle)
myDB.TableDefs.Append myTbl
向數據表中添加記錄:
Set myRcdSet = myDB.OpenRecordset(“表名”, dbOpenDynaset)
myRcdSet.AddNew
myRcdSet.Fields(0) = GetLastUpdate(i)‘時間戳
myRcdSet.Fields(1) = Val(GetValue(i))‘數據
myRcdSet.Update
3.3 報表定義及生成模塊
報表定義主要完整報表格式、報表類型的定義。業務系統的報表主要要日報表、班報表、月報表等,報表的格式需要根據用戶的需求設置報表的布局、標題、時間、測點。本系統利用Microsoft Office Excel報表處理的強大功能,方便用戶進行報表的排版、格式的定義以及數據的各類統計。報表定義模塊主要設置的參數有報表類型、排版方式、報表記錄測點等內容。報表生成系統依據報表的定義,定時生成報表文件。該模塊的流程如圖4所示。
報表生成系統要對Excel文件進行讀寫操作。部分操作代碼如下:
Set xlApp = CreateObject(“Excel.Application”) ‘建立Excel對象
Set xlBook = xlApp.Workbooks.Open(strTempFileName) ‘打開Excel模板文件
xlBook.ActiveSheet.Cells(row, col) = value ‘寫入數據
xlBook.SaveAs strTagFileName ‘保存報表文件
xlApp.Quit ‘關閉Excel
4 結語
報表數據可對業務系統的運行管理狀態提供分析支持。 本方案提出的可視化報表系統提供了從報表設計到報表生成的一整套解決方法,具有配置方便、使用簡單、接口通用等特點,具有很好的實用價值。
參考文獻
[1]陸會明,等.控制裝置標準化通信—OPC服務器開發設計與應用[M].機械工業出版社,2010.
[2]于宏強.EXCEL+VBA及OPC技術在工廠報表系統中的應用[J].水泥工程,2012(1).
[3]陳巖.歸檔數據的Excel自動報表生成在宣鋼的應用[J].通訊世界,2015(12).