趙曉峰
(1.江蘇省無線傳感系統應用工程技術開發中心,無錫 214153;2.無錫商業職業技術學院 物聯網技術學院,無錫 214153)
目前,在工業過程控制領域,大多采用上位機和下位機協同工作的模式,需要工作人員在線值守,限制其活動范圍,在農田灌溉、水利排澇等應用環境下,已經顯露出弊端。在“互聯網+”背景下,如何對傳統的工業控制系統進行改造或升級,以瀏覽器、移動終端等多方式實現遠程監控,已成為工業控制領域必須解決的問題[1]。本文在分析傳統工業系統基礎上,設計基于OPC技術的Web工控系統,采用訂閱發布機制處理實時數據,解決了數據并發寫入設備的問題。
傳統的工業控制系統包括3個部分:(1)PLC硬件,通過嵌入的程序邏輯完成模擬信號和數字信號的處理,控制硬件運行,通過OPC標準與OPC Server通信;(2)OPC Server屬于中間服務層,接收 PLC數據,對外提供統一的OPC DA接口;(3)上位機的組態軟件訪問OPC Server,提供實時數據通訊和圖表功能[2]。在傳統的工業控制網進行擴展,增加Web應用平臺,直接與OPC Server通訊,就能實現遠程的實時工控系統,從而可以為各類的訪問終端提供接入服務。圖1所示為改進后的Web工業控制系統(虛線左側是傳統工控系統)。

圖1 Web工控系統結構Fig.1 Architecture of Web industrial control system
工控Web應用主要由3部分構成,表示層和Restful接口提供應用的交互界面;權限控制用于定義設備管理上的約束;數據中心用于定義應用系統范圍內PLC設備及其狀態變量,為上層應用下發的命令提供解析和執行,解決應用數據與設備數據的同步問題;DCOM通訊層通過DCOM接口,將PLC的數據按OPC規范與OPC Server進行相互的通訊[3]。工控Web應用的邏輯結構如圖2所示。

圖2 Web應用結構Fig.2 Architecture of Web application
考慮應用系統的跨平臺、穩定性以及服務的可擴展性,采用Tomcat7.0作為應用服務器,Redis 2.8作為實時數據緩存和消息路由,SQL Server 2008存儲歷史數據和應用配置信息。
OPC定義了一個工業標準接口,基于微軟的COM/DCOM技術,使任何帶有OPC接口的客戶程序都可以采用統一的方式存取不同硬件廠商的設備[4]。OPC Server通過DCOM接口為外部程序提供OPC規范的數據訪問,DCOM通過對象遠程調用ORPC協議來支持對遠程對象的調用。Java訪問OPC Server,可以采用OPC基金會推薦的Utgard項目,它是一個純Java實現的類庫,相比其它JNI的實現方式更為可靠和穩定,并且不依賴于其它組件。OPC Server在Windows系統中需要進行DCOM的配置,分配相應的權限,才能由特定的用戶進行DCOM調用[5]。
數據服務中心的主要任務是數據同步,主要在OPC Server和Redis之間進行,Redis是一個高效的鍵值數據庫,支持字符串類型、散列類型、列表類型、集合類型等鍵值數據,是一個高效的內存數據庫,支持訂閱/發布方式對消息進行處理[6]。在本系統中,Redis作為Web應用的緩沖,保存設備的實時數據,同時通過訂閱發布機制幫助應用實現對設備的實時控制。
數據同步服務以多線程方式工作,運行的基本流程如圖3所示,左側是讀取OPC Server數據流程,右側是寫入OPC Server數據流程,采用讀寫分離的雙線程工作模式,減少相互影響。Web應用寫入OPC Server采用了訂閱發布機制,由Redis通過匹配訂閱條件,將訂閱者感興趣的消息從消息隊列里進行提取,然后通過路由轉發,投遞給相應的訂閱者[7-8]。

圖3 數據同步讀、寫模型Fig.3 Read and write model of data synchronization
讀取OPC Server數據,由SyncAccess對象根據更新頻率自動觸發事件,事件處理由注冊在SyncAccess中的DataCallback對象完成,該對象的changed方法負責接收事件中包含的數據,將數據值由Variant類型轉換成Java基本數據類型,以“變量名-值”的形式保存在Redis中。
寫入OPC Server數據,采用了訂閱發布模式,由業務層把數據以JSON格式發布到指定的Channel中。Redis通知訂閱該Channel的對象接收數據,創建OPC Item對象,把數據寫入OPC Server。訂閱對象需要繼承JedisPubSub,實現onMessage方法,對數據進行處理。
客戶端接口主要包括兩部分,一是由瀏覽器訪問的Web動態網頁,二是為移動終端提供的一組Web API接口,也能訪問設備數據和遠程控制設備。移動端的Web API接口采用Restful風格,數據格式統一采用JSON格式來描述。Web界面借助于HTML5的WebSocket通訊方式,可以在Web頁中實現與服務器實時通訊,通過頁面動態展示設備數據和圖形[9]。
本文所實現的Web工控系統已運行于某市水利項目,項目由5個PLC控制的泵、閘站組成,利用水利系統內網通訊,實現Web瀏覽器遠程控制泵站水泵啟停和閘門升降,并在查詢系統中顯示實時數據、歷史數據、水位過程線等過程控制信息,數據每隔15 min或1 min內功率變化>10%時,自動存入SQL Server2008數據庫。案例的泵閘遠程控制界面如圖4所示。

圖4 泵閘遠程控制界面Fig.4 Remote control interface of pump and gate
在工業互聯網和移動互聯網的背景下,基于Web的工業控制系統越來越受關注。本文研究的基于OPC技術的Web工業控制系統,有效解決了Web應用的實時數據存儲和設備并發控制問題;而且對傳統工控系統的擴展不影響原系統運行,通過OPC Server與Web平臺的相互協作,實現對工業控制系統的實時控制。未來會將本文所開發的遠程工業控制系統應用于其他領域。
[1]劉宇.基于Android平臺的遠程工業監控系統[J].計算機測量與控制,2014,22(4):1087-1089.
[2] 崔嵩.OPC技術與分布式實時數據庫在SCADA系統中的開發與應用[D].山東:山東大學,2014.
[3]尹菲,郭鳳儀,孫倩,等.復雜工業過程控制中實時數據OPC Server的設計與研究[J].計算機系統應用,2011,20(5):126-129.
[4]王立萍.基于OPC標準的數據存取客戶端應用開發[J].機床與液壓,2015,43(4):171-173.
[5]楊海鵬,戴波.石油化工廠實時數據采集系統的設計[J].江南大學學報:自然科學版,2014,13(6):698-705.
[6]Josiah L Carlson.Redis in Action[M].Manning Publications,2013.
[7]虞海江,馬建剛,葉丹,等.基于發布訂閱模式的數據集成中間件系統設計與實現[J].計算機系統應用,2007(11):12-15.
[8]張舒,李超,赫陽,等.基于訂閱發布的車輛GPS應急監控調度平臺[J].計算機工程與設計,2008,29(2):445-450.
[9]楊建業,耿建平.基于HTML5的實時Web數據監測系統[J].桂林電子科技大學學報,2015,35(2):136-141.