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