石春竹,韓慶敏,李末軍
(華北計算機系統(tǒng)工程研究所,北京 100083)
面向服務的物聯(lián)匯聚平臺的研究與開發(fā)
石春竹,韓慶敏,李末軍
(華北計算機系統(tǒng)工程研究所,北京100083)
針對離散制造業(yè)現(xiàn)場設備層與上層應用系統(tǒng)(如ERP,MES,PLM系統(tǒng))之間信息流不順暢、數(shù)據(jù)結構異構、信息中轉次數(shù)多、系統(tǒng)集成復雜度高的問題,提出了一種面向服務的物聯(lián)匯聚平臺,采用OPCUA技術使工業(yè)異構系統(tǒng)互聯(lián),為智能制造體系提供工業(yè)物聯(lián)網(wǎng)平臺系統(tǒng)解決方案。設計了靈活多樣的驅動模塊解決現(xiàn)場設備及系統(tǒng)異構問題,基于OPCUA地址空間的數(shù)據(jù)組態(tài)模塊解決數(shù)據(jù)結構不統(tǒng)一的問題,最終實現(xiàn)數(shù)據(jù)及文件的跨層傳輸,簡化系統(tǒng)集成復雜度。通過OPCUA客戶端程序與Modbus模擬器程序測試,系統(tǒng)運行良好。
SOA;OPCUA;地址空間;通信接口;文件傳輸;ModbusTCP協(xié)議
智能制造已成為當今世界制造業(yè)發(fā)展的新趨勢,融合信息化與自動化,利用新一代信息技術,構建一個基于數(shù)據(jù)自動流動的狀態(tài)感知、實時分析、科學決策、精準執(zhí)行的閉環(huán)賦能體系[1],用來解決生產(chǎn)制造、應用服務過程中的復雜性和不確定性問題,提高資源配置效率,實現(xiàn)資源優(yōu)化才是智能制造的基礎。智能制造的基礎是信息的互聯(lián)互通,而感知和自動控制是數(shù)據(jù)閉環(huán)流程的起點和終點?,F(xiàn)今制造企業(yè)產(chǎn)線現(xiàn)場設備的通信協(xié)議、通信接口及采用的數(shù)據(jù)結構皆為異構結構,生產(chǎn)管理層信息化系統(tǒng)及其以上層次的系統(tǒng)若要采集現(xiàn)場設備上的數(shù)據(jù),就必須對每個設備開發(fā)特定的接口,工作量大,管理復雜。另一方面,制造企業(yè)現(xiàn)有的信息系統(tǒng)層次化分明,信息必須層層傳遞,如采集信息要到達應用層ERP系統(tǒng),就必須要經(jīng)過SCADA、MES系統(tǒng),這使信息中轉次數(shù)多,系統(tǒng)集成復雜度增高。為減少信息中轉次數(shù)、降低系統(tǒng)集成復雜度,未來的信息系統(tǒng)架構趨于扁平化、網(wǎng)狀化,系統(tǒng)間交換的不會再是簡單的數(shù)據(jù)項,而是根據(jù)各行業(yè)信息模型結構化的數(shù)據(jù)。這也是實現(xiàn)系統(tǒng)間點對點自主通信的基礎。
OPC UA技術是實現(xiàn)上述問題的有力工具,其面向對象式的建模功能、面向服務的架構,都能極好地適應未來工業(yè)物聯(lián)的要求[2]。本文設計了一個面向服務的物聯(lián)匯聚平臺,通過OPC UA標準接口實現(xiàn)現(xiàn)場設備到上層應用之間的互聯(lián)互通,平臺可以支持Modbus RTU、Modbus TCP、IEC60870-5-104等標準通信協(xié)議,實現(xiàn)制造現(xiàn)場的互聯(lián)互通。本文主要通過Modbus TCP實現(xiàn)設備與物聯(lián)匯聚平臺的互聯(lián)互通,介紹平臺的設計及實現(xiàn)過程。此平臺能夠利用Modbus TCP協(xié)議從設備上采集數(shù)據(jù),并依據(jù)OPC UA技術將采集到的數(shù)據(jù)組態(tài)為地址空間,統(tǒng)一數(shù)據(jù)結構,提供訪問服務給提供OPC UA客戶端的上層系統(tǒng),實現(xiàn)跨層傳輸信息,且支持文件的采集與下發(fā)。
物聯(lián)匯聚即將傳感器、專用設備、嵌入式終端系統(tǒng)、智能控制系統(tǒng)、通信設施緊密地聯(lián)系在一起,形成一個智能網(wǎng)絡。隨著新一代信息技術與先進制造技術的高速發(fā)展,我國智能制造裝備的發(fā)展深度和廣度日益提升,智能制造對物聯(lián)匯聚的需求越來越多,物聯(lián)匯聚成為實現(xiàn)智能制造的重要支撐[3-6]。
面向服務的架構是一種用于創(chuàng)建應用程序的軟件架構,這種架構將一些松耦合的、黑盒式的組件進行組合,發(fā)布為明確定義的服務,繼而實現(xiàn)業(yè)務流程或服務。
采用面向服務架構的軟件具有以下優(yōu)勢:可重用,且不局限于重用底層組件,還可重用高層的業(yè)務服務,可保證企業(yè)業(yè)務服務的一致性,還能消除冗余,使程序具有可拓展性、一致性和可維護性。SOA使用特定的、行業(yè)認可的標準開發(fā)一些接口,使SOA中各種組件可以實現(xiàn)相互通信[7]。本文用到的OPC UA采用了SOA,為應用程序之間提供了互操作的、平臺獨立的、高性能的、可拓展的、安全和可靠的通信。
3.1總體結構設計
此平臺先利用通信驅動從設備上采集數(shù)據(jù),通過解析協(xié)議得到生數(shù)據(jù),然后將采集得到的數(shù)據(jù)賦值給可組態(tài)的OPC UA地址空間中對應節(jié)點。整個物聯(lián)匯聚平臺作為OPC UA Server為其他OPC UA客戶端提供數(shù)據(jù)訪問服務。系統(tǒng)結構圖如圖1所示。
圖1 系統(tǒng)結構圖
采集程序主模塊負責管理通信通道,可實現(xiàn)通道的建立、維持、終止等,驅動層主要負責各種驅動報文的收發(fā)、解析,采集系統(tǒng)參數(shù)庫主要負責存儲設備參數(shù)、所用通信協(xié)議具體參數(shù)、具體的采集模擬量、數(shù)字量等組態(tài)信息。
地址空間定義了多種支持不同驅動的設備類型,各個設備類型下配置了不同的配置變量和五種典型的采集數(shù)據(jù)類型。地址空間可用設備類型建立設備對象,并使用幾種采集數(shù)據(jù)類型配置具體采集點。
3.2數(shù)據(jù)采集模塊
數(shù)據(jù)采集模塊能從多種不同設備上采集數(shù)據(jù)與文件,并將數(shù)據(jù)與文件下發(fā)到現(xiàn)場設備,實現(xiàn)應用程序與現(xiàn)場設備之間的雙向通信。程序可采集AI、AO、DI、DO、STRING類型的數(shù)據(jù),并能夠對與設備通信的鏈路進行管理,包括建立及斷開鏈路、配置鏈接參數(shù)、診斷鏈路故障等。一個鏈路可以管理多個采集數(shù)據(jù)設備和一個采集文件設備。采集數(shù)據(jù)部分監(jiān)控對象層次關系如圖2所示。
圖2 監(jiān)控對象層次關系圖
3.2.1ModbusTCP通信驅動
(1)Modbus TCP協(xié)議簡介
Modbus TCP是基于以太網(wǎng)TCP/IP的Modbus通用通信協(xié)議,已經(jīng)廣泛應用于當今工業(yè)控制領域,物理層接口是以太網(wǎng)口,采用Master/Slave(主/從)方式通信,提供不同的功能碼區(qū)分不同的功能[8]。功能碼是該協(xié)議的協(xié)議數(shù)據(jù)單元中的元素。本文主要使用了1、5、3、16等功能碼來完成采集數(shù)據(jù)的功能。Modbus請求和響應帶有6個字的前綴,如圖3所示。
圖3 Modbus協(xié)議幀格式
示例“以4的偏移從UI9讀1寄存器”返回5的值如下:
請求:00 00 00 00 00 06 09 03 00 04 00 01
響應:00 00 00 00 00 05 09 03 02 00 05
(2)Modbus TCP協(xié)議在此系統(tǒng)中的應用
Modbus協(xié)議報文格式類設計:
public class ModbusMessage {
static int MAXLENGTH=255;
//最大長度
public byte[] buff = null;
//消息幀
public int length = 0;
//幀長度
//(讀)操作構造函數(shù),參數(shù)分別是功能碼,設備ID,起始地址,讀取數(shù)量
public ModbusMessage (int funCode,int deviceID,int beginAdd,int readCount){…}
//(寫)操作構造函數(shù),參數(shù)分別是功能碼,設備ID,起始地址,線圈或寄存器數(shù)量,需要寫的數(shù)據(jù)
public Message(int funCode, int deviceID, int beginAdd, int countCoilRegister, int[] value){…}}
Modbus協(xié)議收發(fā)報文類設計:
public class SendAndRecieve{
private Socket s = null;
private byte[] sendBuffer = null;
public SendAndRecieve(Socket s,byte[] sendBuffer){…}}
在OPC UA服務器的地址空間中創(chuàng)建OPC UA節(jié)點后,將與Modbus寄存器信息(寄存器類型、地址、長度)建立關聯(lián),之后會等待節(jié)點請求。若為讀寫請求,則依據(jù)節(jié)點對應的Modbus寄存器信息,生成Modbus命令,即通過將參數(shù)傳遞給讀、寫操作構造函數(shù)創(chuàng)建對應的ModbusMessage類的對象。再通過SendAndReceive()方法將報文發(fā)送給設備。隨后,通過SendAndReceive()方法接收設備返回的報文。解析后得到寄存器的當前值,賦值給用戶請求的指定OPC UA節(jié)點。
3.2.2文件傳輸通信驅動
(1)文件傳輸驅動簡介
文件傳輸通信驅動包括兩部分:文件接收及發(fā)送模塊和文件傳輸代理程序。文件傳輸代理程序運行在要傳輸文件的設備上。搭載了文件傳輸代理程序的設備,可與本物聯(lián)匯聚平臺進行文件上傳與下發(fā)。本文中用一臺PC模擬一臺可上傳文件的設備,實際運用時可結合設備開放的接口與本文的物聯(lián)匯聚平臺的文件傳輸接口進行二次開發(fā),以實現(xiàn)文件傳輸功能。
文件傳輸通信驅動可實現(xiàn)采集設備上指定格式的文件,包括文件名稱、大小、最后修改日期。上述屬性可實現(xiàn)訂閱。有傳輸正確性校驗與傳輸失敗報警。采集文件部分還可刷新到能傳輸文件的設備,且可下發(fā)文件到該設備,通過控制設備的是否可接收文件屬性實現(xiàn)。
(2)文件傳輸驅動具體設計
文件類設計:
public class FlieInfor {
String fileName;
int fileSize;
Data lastModifiedTime;
//最后修改時間
String sender;
String receiver;}
文件傳輸機制:此物聯(lián)匯聚平臺將文件下發(fā)到設備時,先從系統(tǒng)參數(shù)庫中獲取該設備是否支持文件下發(fā)的屬性,若該屬性為真,則獲取其IP地址,然后發(fā)送文件,運行在設備上的文件傳輸代理程序啟動接收線程接收文件。從設備上采集文件時,代理程序收到本平臺發(fā)送的采集文件請求后,解析出要采集的文件名稱和服務器IP地址,開啟發(fā)送文件線程,將指定文件發(fā)送到本平臺上。請求文件傳輸消息幀格式如圖4所示。
圖4 文件傳輸消息幀格式
消息幀結構說明如表1所示。
表1 文件傳輸消息幀格式說明
其中,Type可以為1、2、3,分別代表傳輸全部可采集文件信息消息、請求采集具體某文件消息、文件傳輸異常消息。Text處可填寫傳輸異常信息或序列化后的文件類,包括文件名稱、大小最后修改日期。本文所用Formatter類可序列化實體類為字符串,也可將字符串反序列化為實體類,便于傳輸有組織結構的信息。
請求文件后,開始文件傳輸,本系統(tǒng)文件傳輸采用分包傳輸,以降低傳輸過程中丟包現(xiàn)象。文件傳輸過程中兩個重要函數(shù):
public static int SendVarData(Socket s,byte[] data){}//分包發(fā)送文件
public static byte[] ReceiveVarData(Socket s){}//分包接收文件
3.3數(shù)據(jù)處理模塊
3.3.1地址空間
本文研發(fā)的物聯(lián)匯聚平臺通過實現(xiàn)OPC UA服務器來對外提供數(shù)據(jù)訪問服務。OPC UA服務器最重要的部分是地址空間,定義了服務器中數(shù)據(jù)的組織形式。地址空間節(jié)點由NodeManager對象定義、管理。節(jié)點指地址空間中所有元素,包括對象、變量、類型等。
對地址空間進行建模要遵循以下原則:使用面向對象技術,包括類型層次結構和繼承。類型信息對外暴露,并且能夠像訪問實例一樣訪問。全網(wǎng)狀的節(jié)點網(wǎng)絡,允許信息以各種方式連接。組態(tài)總是在服務器端完成[2]。
本文對地址空間進行建模主要用到:OPC UA工具開發(fā)包(SDK),擴展標記語言(eXtensible Markup Language, XML)技術,模型解釋器解析技術。OPC UA SDK是OPC 基金會提供給其會員的,封裝了復雜的底層機制,只向開發(fā)者開放易使用的API,用于開發(fā)OPC UA的客戶端和服務器。本文依據(jù)以下流程組態(tài)地址空間:從特定領域的各種架構圖、信息圖中提取信息,將得到的設備類型、屬性、事件及它們之間的關系歸納到OPC UA的8個標準節(jié)點中去,建立地址空間模型圖,利用UA Modeler建模并導出為XML格式。再利用模型解釋器讀入XML文檔,建立服務器地址空間,完成地址空間組態(tài)[9]。本文依照上述流程將采集到的數(shù)據(jù)組態(tài)成如圖5所示的一個地址空間。
圖5 物聯(lián)匯聚平臺的地址空間組態(tài)
如圖5所示,本文總結出一系列ObjectTypes類型節(jié)點:Modbus協(xié)議驅動設備、鏈路、AI、AO、DI、DO、字符串。這些類型節(jié)點均為自定義的復雜數(shù)據(jù)類型,如Modbus協(xié)議驅動設備類型節(jié)點定義了設備ID、名稱、是否支持文件傳輸?shù)葘傩浴I類型節(jié)點中定義了上限、上上限、報警等屬性。這些類型節(jié)點可在Objects目錄下實例化成具體設備,且可用引用組織。圖中鏈路層次下的設備1是Modbus驅動設備的一個實例,在設備1下可增加多個AI、AO等不同類型的測量點。在收到OPC UA客戶端訪問節(jié)點的請求后,將依據(jù)該節(jié)點中對應寄存器地址屬性,生成Modbus請求數(shù)據(jù)幀,訪問該對應現(xiàn)實設備中寄存器值,收到回復幀解析后,賦值給該節(jié)點的Value屬性。
3.3.2數(shù)據(jù)顯示
數(shù)據(jù)顯示部分以樹形結構顯示地址空間中各節(jié)點,以表格的形式顯示節(jié)點屬性值,如節(jié)點ID、瀏覽名稱等。用戶選中樹結構任意節(jié)點,即可在表格中查看該節(jié)點各種信息。通過此部分,可直觀地看到采集節(jié)點值屬性,方便測試調試。
本文采用Java語言實現(xiàn)此物聯(lián)匯聚平臺,編程工具選用Eclipse,數(shù)據(jù)庫采用MySQL。用Modbus模擬器ModSim32程序模擬一臺支持Modbus TCP的設備。假設此設備能夠測量溫度和壓力,其值分別對應上述模擬器的40001,40002號寄存器數(shù)值。再建立一個地址空間,內有一個Modbus協(xié)議驅動設備類型的壓力測量器設備。該壓力測量器有兩個度量值:壓力和溫度。將地址空間節(jié)點與Modbus寄存器信息(寄存器類型,地址,長度)綁定后,用OPC UA客戶端UaExpert訪問此系統(tǒng),加載出地址空間,訂閱該設備的壓力值、溫度值。通過改變ModSim32模擬器中對應寄存器數(shù)值,可以發(fā)現(xiàn)UaExpert中訂閱的壓力值、溫度值也相應地發(fā)生了變化。
本文研發(fā)的面向服務的開放式物聯(lián)匯聚平臺,實現(xiàn)了智能制造體系中端到端的數(shù)據(jù)通信需求,使現(xiàn)場設備互聯(lián)互通,完成跨平臺、跨防火墻的安全數(shù)據(jù)傳輸。采用面向服務的開發(fā)思想,利用SOA技術,將本物聯(lián)匯聚平臺變?yōu)榭芍赜玫臉I(yè)務服務,減少技術對企業(yè)決策的限制和約束。利用OPC UA技術,統(tǒng)一了數(shù)據(jù)模型,且支持自定義復雜數(shù)據(jù)類型,實現(xiàn)了現(xiàn)場設備互聯(lián)互通的標準化通信要求。
智能制造是信息化與工業(yè)化深度融合的大趨勢,是《中國制造2025》的五大工程之一,是我國制造業(yè)轉型升級的重要戰(zhàn)略,也是我國緊跟世界發(fā)展趨勢、邁入制造強國的關鍵所在。本文研究的物聯(lián)匯聚平臺是智能制造實現(xiàn)的基礎,對打通制造環(huán)節(jié)互聯(lián)互通有重要意義。
[1] 中國電子技術標準化研究院,中國信息物理系統(tǒng)發(fā)展論壇.物理信息系統(tǒng)白皮書2017[R].2017.
[2] WOLFGANG M, STEFAN-HELMUT L, MATTHIAS D. OPC unified architecture[M].北京:機械工業(yè)出版社,2012.
[3] 夏妍娜,趙勝.工業(yè)4.0正在發(fā)生的未來[M].北京:機械工業(yè)出版社,2015.
[4] 徐勇軍,劉禹,王峰.物聯(lián)網(wǎng)關鍵技術[M].北京:電子工業(yè)出版社,2012.
[5] 王潔. 2017年工業(yè)物聯(lián)網(wǎng)的機遇在哪里?[J]. 電子技術應用,2017,43(2):4-5.
[6] 張建中,王偉,宋慶軍,等. 物聯(lián)網(wǎng)在智能電網(wǎng)中的應用[J]. 微型機與應用,2013,32(21):1-3.
[7] HURWITZ J, BLOOR R. Service oriented architecture for DUMMIES[M].北京:人民郵電出版社,2013.
[8] SWALES A.開放型Modbus-TCP規(guī)范(中文版)[S].1991.
[9] 江城.OPC UA信息模型及其應用[D].太原:太原科技大學,2014.
2017-04-27)
石春竹(1991-),女,碩士,工程師,主要研究方向:智能制造、工業(yè)軟件、通信技術等。
韓慶敏(1979-),女,碩士,高級工程師,主要研究方向:工業(yè)軟件、自動化控制系統(tǒng)、智能制造、現(xiàn)場總線等。
李末軍(1981-),女,碩士,工程師,主要研究方向:智能制造、工程管理、自動控制等。
Design and development of a data converging platform of IoTwith service oriented architecture
Shi Chunzhu, Han Qingmin, Li Mojun
(National Computer System Engineering Research Institute of China, Beijing 100083, China)
In view of the problems that devices in the discrete manufacturing industry production line fail to communicate with ERP, MES and PLM conveniently, data structures are heterogeneous, information transits too many times and it’s too difficult to integrate, a service oriented IoT platform for the intelligent manufacturing system is proposed, which uses OPC UA technology to interconnect the industrial heterogeneous system. This paper designs a flexible drive module to solve the problem of the heterogeneity between devices and systems, and a data configuration module based on OPC UA address space to solve the problem that data structure is not uniform, ultimately realizes transferring data and file crossing layers and simplifying the complexity of system integration. Through the OPC UA client and Modbus simulator program test, the system runs well.
SOA; OPC UA; address space; communications interface; file transfer; Modbus TCP protocol
TP311.1
A
10.19358/j.issn.1674- 7720.2017.22.001
石春竹,韓慶敏,李末軍.面向服務的物聯(lián)匯聚平臺的研究與開發(fā)J.微型機與應用,2017,36(22):1-4.