PID優化整定系統中OPC接口的研究與應用
4.2.2 OPC客戶端的實現
客戶端的主要實現方式是OPC自動化接口方式,使用VB編寫應用程序。對于工廠各裝 置回路中pv(實測值)、sv(設定值)、mv(閥門開度)參數的采集使用同步通訊的方式; 而對于回路控制的自動、手動情況的采集則使用訂閱通訊的方式,即在參數(控制狀態)發 生改變時主動通知客戶端程序。 OPC數據訪問對象由分層結構組成,它由上而下包括OPC服務器對象(OPCServer)、 組對象(OPCGroup)、項對象(OPCItem),在設計OPC客戶端程序時,基本按照以上順 序進行連接。對于OPC自動化接口方式,OPC基金會專門為它的開發提供了“自動化包裝器” OPCDAAuto.dll,在編寫程序前,應該首先在VB項目中引用該動態鏈接庫,這樣才能調用 OPC自動化規范中定義的屬性、方法和事件。客戶端程序設計的基本步驟如下:
(1)在VB工程中添加對OPCDAAuto.dll的引用。
(2)聲明OPC對象。
(3)連接OPC服務器,創建OPC對象。設計時需要調用OPC服務器對象的“Connect” 方法,和OPC服務器建立連接。之后,用OPC服務器對象的“OPCGroups”屬性生成一個組 集合,再調用“Add”方法在OPC組集合中添加新的OPC組。最后,在對OPC服務器進行訪 問前,要使用“OPCItems”屬性生成項集合,并使用“Add”添加新的OPC項。
(4)讀取數據。對于裝置回路PID參數采集采用同步讀取方式,對于裝置回路的控制 狀態采集采用訂閱讀取方式;最多可同時讀取16條回路的參數。
(5)刪除OPC對象,斷開與服務器的連接。連接著OPC服務器的OPC應用程序,在退 出之前必須斷開與OPC服務器的連接。否則,OPC服務器不知道OPC應用程序的退出,計算 機資源就一直不能被釋放,長此以往,會造成計算機資源枯竭而產生嚴重問題。斷開連接時, 使用“Disconnect”方法;并將OPCItems、OPCGroup和OPCServer都置為Nothing,刪除對象。
4.3 數據存儲及導出的實現
為了給后期PID優化整定提供大量完整的數據,在數據采集過程中需要將大量數據保存 在Access數據庫中,以備使用。由于同時讀取多條回路,數據量很大,為避免在最后保存數 據時由于數據量過大而造成時間過慢,甚至是死機現象,設計時采取每讀取30個數據自動保 存一次的方法。另外,在把數據導出到Excel過程中,由于Excel自身的限制,一張Sheet保存 的數據有限,為了避免數據溢出,設計成每保存一定數據自動生成一張新的Sheet進行存儲。
5、結束語
以OPC為接口通訊方式的數據采集模塊是PID優化整定系統的基礎,該模塊及整個PID 優化整定系統的設計都相對獨立于現場工程師站,使用OPC通訊也只進行讀操作而不進行寫 操作。該設計的好處是,既能使兩臺機器互相沒有影響,又能使客戶端采集到全部DCS數據。 鑒于石油化工企業的重要性,數據采集只讀不寫,具有較好的安全性,可以保證原系統數據 的安全和純潔,也避免了數據錯誤造成的影響,保證了生產的安全。目前,PID優化整定系 統經過實驗室長期檢驗,已經穩定的運行于國內許多石油化工企業中,且運行狀況良好。 現在,絕大多數工控廠商為實現系統的開放性,其DCS都提供了OPC接口。同時,OPC 基金會也在不斷推出新的產品,從OPC DA到OPC XML-DA,再到OPC UA。OPC必然會向 更為廣泛的跨語言、跨平臺、企業級的方向發展。
評論