王 琳, 王昌正
(大峘集團有限公司, 江蘇 南京 211112)
在工控領域,需要通過記錄現(xiàn)場生產設備的諸多參數,來即時反映設備運行情況,所以對于這些參數的監(jiān)控和采集非常重要。一般根據生產流程要求,一級系統(tǒng)(下位機)負責采集實時生產數據,并將數據存儲到指定數據庫中,二、三級系統(tǒng)(上位機)則需進行復雜的數據運算或處理,實現(xiàn)對一級系統(tǒng)進行自動化智能控制,實現(xiàn)按需定制生產數據報表或通過分析形成智能化方案。要實現(xiàn)這一聯(lián)動過程,各級系統(tǒng)之間就存在著數據通訊與存儲。往往由于復雜的生產工藝流程,存在跨區(qū)域多個一級系統(tǒng)并存運行的情況,在 OPC 技術出現(xiàn)之前,需要花費大量的時間和精力為不同的設備編寫對應的驅動程序實現(xiàn)數據采集,一旦設備升級或換代,復用可能性非常小,無法繼續(xù)正常使用,需要重新開發(fā)配套的驅動程序。因而OPC 作為工業(yè)自動化控制領域興起的準則,它的出現(xiàn)為基于組態(tài)軟件的數據采集系統(tǒng)的集成提供了確實可行的解決方案。本文旨在通過OPC協(xié)議通訊機制深層次討論如何盡量以最小成本設計二級系統(tǒng)的思路。
SCADA雖然經過40多年的發(fā)展,智能化程度仍然不高。目前冶金行業(yè)應用的 SCADA基本上能夠實現(xiàn)設備日常工作的實時監(jiān)測,能夠對采集的數據進行處理、顯示、趨勢分析以及報表統(tǒng)計,少數能夠達到遠程遙控的調度輔助目標。目前主流的SCADA廠商都支持OPC協(xié)議,很好地解決了過去不同廠商、不同系統(tǒng)以及不同通訊協(xié)議之間不能協(xié)同作業(yè)的問題。
OPC技術最早是于1995 年由Microsoft(微軟)等廠商提出的一種硬件與軟件接口標準,屬于工業(yè)標準。目前,OPC 這一標準主要由OPC 基金會管理,主要是以微軟的OLE(Object Linking and Embedding,面對對象的連接與嵌入技術)、現(xiàn)今的Active X 以及COM(Commercial Object Model,組件對象模型)、DCOM(Microsoft Distributed Component Object Model,分布式組件對象模型)等技術為基礎確定的。隨著近年來OPC 技術研究的不斷深入,已形成了系統(tǒng)的接口、方法與屬性標準集,并在自動化領域中得到廣泛應用,成為工業(yè)控制及其自動化系統(tǒng)中重要的通信方式,OPC通訊機制如圖1所示。
圖1 OPC通訊機制
在OPC數據存取規(guī)范中,一個OPC的數據存取服務器中包括:服務器對象(OPC Server)、組(OPC Group)和項(OPC Item)。OPC服務器對象維護有關服務器的信息并作為OPC組對象的容器,而OPC組對象維護有關其自身的信息,提供包容OPC項的機制,并管理OPC項。
受傳統(tǒng)自動化軟件中OPC 服務器工作模式(Client/Server 模式)的影響,很多鋼鐵企業(yè)在實施二級自動化系統(tǒng)的時候,也采用C/S結構設計,然而隨著工業(yè)生產流程的優(yōu)化和工藝的改進,面臨該二級系統(tǒng)軟、硬件的技術改造和優(yōu)化升級需求也日益迫切。
對幾家鋼鐵企業(yè)現(xiàn)有二級系統(tǒng)研發(fā)技術進行調研后,進行如下幾個維度的分析與歸納(如表1所示)。
表1 二級系統(tǒng)分析歸納
當前主流大品牌SCADA系統(tǒng)日益趨向對工控機硬件高配置、高資源性能占用的要求,一些老牌自動化設備廠商甚至開始提出云端自動化解決方案概念,在客戶投入成本小、運營效率高的項目需求下,無疑大大壓縮了二級系統(tǒng)實施與運行的可用資源空間。
另外,當前C/S架構所實現(xiàn)的二級系統(tǒng),無法支持用戶在日常生產運營過程中對電子數據的一系列定制要求,生產數據之間無法協(xié)同作業(yè),絕大部分工作量由人工手工去實現(xiàn),造成效率很低、人力成本比較高。
OPC接口技術是基于微軟COM/DCOM(Component Object Model/Distributed COM)技術制定的,這項技術的優(yōu)勢在于:借助微軟已有的技術,減少規(guī)范制定的周期,并快速形成相關產品。當然,優(yōu)點也是缺點,那就是依賴于微軟的技術。
基于這種技術思想,在考慮系統(tǒng)設計時,不妨可以考慮基于微軟技術去開發(fā)二級系統(tǒng),比如使用:Visual Studio + SQL Server去實現(xiàn)Windows平臺的應用程序。因為通過實地調研發(fā)現(xiàn),傳統(tǒng)的冶金行業(yè)的企業(yè)基本都使用Windows平臺的IT管理方式,那么在這樣的信息化模式下,建議還是以微軟技術去實現(xiàn)系統(tǒng)設計的基本選型,系統(tǒng)的穩(wěn)定性和兼容性會更穩(wěn)妥,也會更貼合用戶的實際運營需要。
基于 ASP.NET構建B/S架構的二級系統(tǒng),如圖2所示,將該系統(tǒng)分解為3層結構進行工作。
圖2 二級系統(tǒng)的3層結構示意圖
3.2.1 關鍵技術原理
VS插件程序:可視化的設計環(huán)境,用Winform的方式來進行UI設計,高效、方便。
ASP.NET組件:在ASP.NET,用DataWindow控件來對數據庫進行操作,把由VS插件程序生成的窗口控件,生成為 XML傳到客戶端。
ActiveX控件:瀏覽器加載ActiveX控件,ActiveX控件根據窗口的XML數據,生成窗口UI控件,Javascript通過COM對象接口調用窗口控件功能。
使用DataWindow的原因:
(1)瀏覽器的功能不能解決企業(yè)化應用開發(fā)的全部業(yè)務處理功能。
(2)HTML,CSS,JS開發(fā)效率相對較慢,后期的維護性也不如 DataWindow。
(3)瀏覽器需要顯示Flash、PDF,就需要安裝相應的插件程序。
(4)Flex,SilverLight都是用插件來開發(fā)RIA Web應用程序。
3.2.2 開發(fā)概述
設計實現(xiàn)的技術語言是C#,它借鑒了Delphi語言的一個特點:與COM是直接集成的,適合為獨立和嵌入式的系統(tǒng)編寫。對OPC接口進行訪問,需要在C#中添加對OPC自動化接口OPCAutomation(OPC基金會提供的OPC自動化接口標準文件)的引用。另外,若OPC Server和Client不在同一臺工控機上,則需要對Server和Client所在的兩臺機器分別做DCOM設置,才能實現(xiàn)數據互通,否則Client將不能正常訪問到Server。
如圖2所示的3層結構,采用Socket(雙向通信連接)+AJAX (Asynchronous Javascript and XML,即異步 JavaScript 和 XML)異步通訊技術實現(xiàn)Web應用程序。 OPC異步訪問優(yōu)點是:效率更高,不僅能改善網絡擁塞,而且還能系統(tǒng)節(jié)約資源。
3.2.3 系統(tǒng)頁面加載過程及運行
利用ActiveX控件,把窗口加載到一個普通的html頁面里面,如圖3所示。
圖3 加載運行流程示意圖
3.2.4 上位機與下位機之間通過OPC的聯(lián)動機制
上位機與下位機之間通過OPC的聯(lián)動機制如圖4所示。
圖4 聯(lián)動機制示意圖
(1)OPC協(xié)議是一項通用的工業(yè)標準,介于一級系統(tǒng)與上層軟件之間,它為上層的數據及軟件應用提供一個統(tǒng)一的訪問接口,使得上層系統(tǒng)在數據集成時無需考慮下層控制系統(tǒng)的協(xié)議和實現(xiàn)方式,只要符合OPC客戶端的接口規(guī)范即可,這樣大大節(jié)省了上層軟件在數據集成方面的重復工作。
(2)OPC中間服務器,在中間服務器完成統(tǒng)一采集數據和數據庫服務器集群就近存儲數據,使用自動化接口結合動態(tài)鏈接庫設計,開發(fā)具有較強通用性和面向過程數據通信的中間服務器。
(3)采用Web 服務器的二級分布式動態(tài)緩存結構,是針對服務器集群而言的,這樣設計的作用是:在跨區(qū)域的復雜生產環(huán)境中,采用就近優(yōu)先的訪問及存取原則,在緩存的替換策略中引入最近緩存命中時間因子,能夠增加緩存命中率,將生產網絡中的數據利用資源合理分配,提升用戶訪問速度。如果是在單一的工藝或工序級的生產車間,少量工控機的生產環(huán)境下,則不需要有此設置。
OPC 技術作為工業(yè)自動化控制領域的統(tǒng)一通訊接口標準,對基于它的技術性研究還將繼續(xù)并且不斷更新,而選擇C#語言開發(fā)OPC Client相比其它語言工具而言,比較方便快捷,并且在穩(wěn)定性和數據讀取的速度上也有不錯的優(yōu)勢。在二級應用系統(tǒng)軟件設計中應用OPC 技術,不僅能夠提升系統(tǒng)自動化水平,達到自動化技術應用目標,還能夠增強數據生產與傳輸的準確性和安全性,促進生產數據資源的有效共享,強化系統(tǒng)各設備間的有效溝通,規(guī)范系統(tǒng)應用程序,避免軟件系統(tǒng)與硬件設備間“信息孤島”問題的產生。