版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
工業(yè)大數(shù)據(jù)網(wǎng)絡(luò)協(xié)議目錄工業(yè)大數(shù)據(jù)網(wǎng)絡(luò)基礎(chǔ)模型工業(yè)大數(shù)據(jù)網(wǎng)絡(luò)典型協(xié)議0102學(xué)習(xí)目標(biāo)1.熟悉工業(yè)大數(shù)據(jù)網(wǎng)絡(luò)模型2.了解工業(yè)網(wǎng)絡(luò)的發(fā)展與應(yīng)用3.理解典型工業(yè)數(shù)據(jù)采集網(wǎng)絡(luò)的運行機制01工業(yè)大數(shù)據(jù)網(wǎng)絡(luò)基礎(chǔ)模型工業(yè)大數(shù)據(jù)網(wǎng)絡(luò)基礎(chǔ)模型工業(yè)以太網(wǎng)網(wǎng)絡(luò)模型計算機網(wǎng)絡(luò)模型現(xiàn)場總線網(wǎng)絡(luò)模型計算機網(wǎng)絡(luò)模型計算機網(wǎng)絡(luò)普遍采用的網(wǎng)絡(luò)互聯(lián)模型是IOS/OSI模型,它采用分層的結(jié)構(gòu)化技術(shù),把計算機通信網(wǎng)絡(luò)分為七個層次,如圖所示。在IOS/OSI模型下,兩個通信對象同等層之間的通信規(guī)則和約定被稱為“協(xié)議”。計算機網(wǎng)絡(luò)模型分層總結(jié)名稱作用應(yīng)用示例常用編碼方式/協(xié)議應(yīng)用層為具體應(yīng)用程序提供網(wǎng)絡(luò)通信服務(wù)電子郵件、遠(yuǎn)程桌面HTTP協(xié)議、FTP協(xié)議、TFTP協(xié)議、SMTP協(xié)議、DNS協(xié)議、DHCP協(xié)議等表示層規(guī)定數(shù)據(jù)傳輸?shù)恼Z義和語法,解決不同操作系統(tǒng)之間的異構(gòu)通信Windows系統(tǒng)下可以訪問Linux系統(tǒng)遠(yuǎn)程桌面ASCII,MPEG,JPEG等會話層建立、管理和終止表示層與實體之間的通信會話文件斷點續(xù)傳、用戶登錄驗證SQL協(xié)議、NFS協(xié)議、RPC協(xié)議等傳輸層向會話層提供可靠的端到端的網(wǎng)絡(luò)數(shù)據(jù)流服務(wù)端口(socket)TCP協(xié)議、UDP協(xié)議等網(wǎng)絡(luò)層通過IPV4或IPV6等確定通信實體的網(wǎng)絡(luò)位置,在通信實體之間建立連接路由器、防火墻IP協(xié)議,ARP協(xié)議,RARP協(xié)議,因特網(wǎng)報文協(xié)議ICMP、因特網(wǎng)組管理協(xié)議IGMP等數(shù)據(jù)鏈路層在通信實體之間建立數(shù)據(jù)鏈路連接,確定對數(shù)據(jù)流如何進行分包網(wǎng)橋、二層交換機SDLC、HDLC、PPP、STP、幀中繼等物理層將比特流進行編碼轉(zhuǎn)換成相應(yīng)的物理信號,并提供原始比特流的傳輸通道中繼器、集線器、網(wǎng)線、RJ-45標(biāo)準(zhǔn)常用編碼方式:非歸零編碼、曼徹斯特編碼、差分曼徹斯特編碼現(xiàn)場總線網(wǎng)絡(luò)模型現(xiàn)場總線的網(wǎng)絡(luò)建模是以IOS/OSI模型為基礎(chǔ)的。但是工業(yè)控制網(wǎng)絡(luò)與普通計算機網(wǎng)絡(luò)的應(yīng)用場景及需求是有很大不同的。工業(yè)大數(shù)據(jù)有別于一般計算機網(wǎng)絡(luò)數(shù)據(jù)的主要特性如下圖所示數(shù)據(jù)種類實時性要求完整性要求連續(xù)性要求是否高并發(fā)一般大數(shù)據(jù)低低允許數(shù)據(jù)丟失,可恢復(fù)是工業(yè)大數(shù)據(jù)高高不允許數(shù)據(jù)丟失,不可重現(xiàn)否現(xiàn)場總線網(wǎng)絡(luò)模型結(jié)構(gòu)模型的定義現(xiàn)場總線對IOS/OSI參考模型進行了簡化,按照IEC(InternationalElectrotechnicalCommission,國際電工技術(shù)委員會)現(xiàn)場總線的基礎(chǔ)網(wǎng)絡(luò)架構(gòu)包括3層,分別為物理層、數(shù)據(jù)鏈路層和應(yīng)用層(如圖3-2所示)。這樣就舍去從3網(wǎng)絡(luò)層到6表示層,降低由層間操作與信號轉(zhuǎn)換而引起的網(wǎng)絡(luò)接口造價與時間消耗,保證工業(yè)控制系統(tǒng)的實時性與可靠性。由此可見,現(xiàn)場總線是一種具有簡化網(wǎng)絡(luò)結(jié)構(gòu)和開放性的實時系統(tǒng),為制造現(xiàn)場和控制設(shè)備之間提供了一種有效的串行數(shù)據(jù)通信鏈路?,F(xiàn)場總線網(wǎng)絡(luò)模型的實際應(yīng)用建立高爾夫球場顧客問題的決策樹模型:在實際應(yīng)用中,有些現(xiàn)場總線(如美國儀表學(xué)會制定的ISA/SPSO現(xiàn)場總線)結(jié)構(gòu)會增加一層用戶層,如下圖所示。這是因為,雖然現(xiàn)場總線物理層、數(shù)據(jù)鏈路層和應(yīng)用層的功能與IOS/OSI模型基本是一致的,但是現(xiàn)場總線在數(shù)據(jù)通信上是有獨特應(yīng)用需求的。數(shù)據(jù)通信上的獨特需求①IOS/OSI參考模型只支持點對點/端對端的通信模式,不支持多播或廣播,而現(xiàn)場總線中的一個主站需要向多個從站發(fā)送控制命令。②IOS/OSI參考模型不提供周期性通信服務(wù),而工業(yè)控制系統(tǒng)中某些應(yīng)用需要周期性通信。工業(yè)以太網(wǎng)網(wǎng)絡(luò)模型工業(yè)以太網(wǎng)在Ethernet+TCP/IP協(xié)議之上,建立了完整、高效的通信服務(wù)模型,提供廣大工控生產(chǎn)廠商和用戶所能接受的應(yīng)用層、用戶層協(xié)議,從而形成開放的標(biāo)準(zhǔn),成為了智能車間建設(shè)、大數(shù)據(jù)中心可靠運作、以及實現(xiàn)生產(chǎn)過程智能監(jiān)控與管理的關(guān)鍵因素?!,F(xiàn)場總線具備開放性、全數(shù)字化、智能化等特征,但是異構(gòu)現(xiàn)場總線之間互不兼容,不同協(xié)議產(chǎn)品之間無法實現(xiàn)透明的信息交互,難以體現(xiàn)互操作性,存在“自動化”孤島的瓶頸,不支持與互聯(lián)網(wǎng)集成,隨著物聯(lián)網(wǎng)技術(shù)的快速發(fā)展,工業(yè)以太網(wǎng)應(yīng)運而生。工業(yè)以太網(wǎng)是在以太網(wǎng)技術(shù)的基礎(chǔ)上開發(fā)出來的“第二代現(xiàn)場總線”,易實現(xiàn)控制現(xiàn)場數(shù)據(jù)與信息系統(tǒng)的資源共享,支持工業(yè)生產(chǎn)過程的“管控一體化”,已然成為了智能制造的關(guān)鍵支撐技術(shù)。工業(yè)以太網(wǎng)網(wǎng)絡(luò)模型的結(jié)構(gòu)模型工業(yè)以太網(wǎng)的網(wǎng)絡(luò)模型與普通現(xiàn)場總線網(wǎng)絡(luò)模型類似,依然是對原有IOS/OSI參考模型進行“裁剪”,以1物理層、2數(shù)據(jù)鏈路層和7應(yīng)用層為基礎(chǔ),有些工業(yè)以太網(wǎng)協(xié)議還支持用戶層。工業(yè)以太網(wǎng)與普通現(xiàn)場總線協(xié)議最大的不同是,工業(yè)以太網(wǎng)在網(wǎng)絡(luò)層和傳輸層采用了標(biāo)準(zhǔn)的TCP/IP協(xié)議簇(包括UDP、TCP、IP、ICMP等)。從另一個角度來說,普通現(xiàn)場總線協(xié)議只定義物理層、數(shù)據(jù)鏈路層和應(yīng)用層,為了與以太網(wǎng)技術(shù)融合,工業(yè)以太網(wǎng)在數(shù)據(jù)包之前加入了IP地址,并通過TCP/UDP進行數(shù)據(jù)傳輸,如左圖所示。02工業(yè)大數(shù)據(jù)網(wǎng)絡(luò)典型協(xié)議工業(yè)大數(shù)據(jù)典型網(wǎng)絡(luò)協(xié)議工業(yè)大數(shù)據(jù)典型網(wǎng)絡(luò)協(xié)議工業(yè)網(wǎng)絡(luò)協(xié)議綜述OPCUA協(xié)議MT-Connect協(xié)議NC-Link協(xié)議COAP協(xié)議MQTT協(xié)議工業(yè)網(wǎng)絡(luò)協(xié)議綜述截至2018年,國際上已有40多種現(xiàn)場總線,每一種現(xiàn)場總線都有各自的適用范圍和技術(shù)特點。Profibus-DP主要用于分散外設(shè)間的高速數(shù)據(jù)傳輸,適用于加工自動化領(lǐng)域。Profibus-FMS適用于紡織、樓宇自動化、可編程控制器、低壓開關(guān)等DeviceNet主要被廣泛應(yīng)用于現(xiàn)代工廠自動化系統(tǒng)。在工業(yè)以太網(wǎng)與智能制造的發(fā)展推動下,基礎(chǔ)自動化控制網(wǎng)絡(luò)與過程和管理控制系統(tǒng)之間實現(xiàn)了無縫集成,保證從底層現(xiàn)場設(shè)備到頂層生產(chǎn)管理之間高質(zhì)量的數(shù)據(jù)傳輸和數(shù)據(jù)轉(zhuǎn)換?!?……..工業(yè)網(wǎng)絡(luò)協(xié)議級別按照工業(yè)網(wǎng)絡(luò)的應(yīng)用層次,本書將工業(yè)網(wǎng)絡(luò)協(xié)議分為4個級別:單元級、設(shè)備級、車間級和企業(yè)管理級,如下圖所示。當(dāng)然這種劃分方式也不是絕對的,因為工業(yè)現(xiàn)場總線已經(jīng)呈現(xiàn)有互相融合的趨勢,各類總線通過合理搭配形成真正開放的互聯(lián)互通,不斷推動工業(yè)控制系統(tǒng)的變革與發(fā)展。工業(yè)網(wǎng)絡(luò)協(xié)議級別單元級總線以“Ethercat、NCUC-Bus”為代表,主要用于設(shè)備內(nèi)部(如伺服系統(tǒng)內(nèi))的數(shù)據(jù)傳輸,由于高速、高精的通信需求,它對信號實時性要求特別苛刻,甚至要求總線周期在納秒級。設(shè)備級總線以“Modbus、Fieldbus、Fieldnet”為代表,用于自動控制系統(tǒng)與分散的I/O設(shè)備級之間的通信,適用于分布式控制系統(tǒng),如水站、電站等,總線周期一般都低于10ms。車間級總線如OPCUA、MTConnect、NC-Link等,可用于大范圍和復(fù)雜的通訊場景,用來解決車間級通用性通訊任務(wù)。總線周期一般小于100ms,但時間跨度也允許在秒級或分鐘級,支持工業(yè)數(shù)據(jù)采集,建立工業(yè)數(shù)據(jù)向管理網(wǎng)絡(luò)傳輸?shù)耐ǖ?。企業(yè)管理級網(wǎng)絡(luò)將孤立的現(xiàn)場設(shè)備帶進了企業(yè)信息網(wǎng)絡(luò),它以車間級總線為基礎(chǔ)通信層,將現(xiàn)場設(shè)備與企業(yè)管理系統(tǒng)(如ERP、MES等)連接起來,實現(xiàn)工業(yè)自動化生產(chǎn)控制/過程的智能管控。OPCUA協(xié)議1.OPCUA技術(shù)背景在實際應(yīng)用中,工業(yè)生產(chǎn)設(shè)備種類繁多,異構(gòu)工業(yè)設(shè)備之間沒有通用的標(biāo)準(zhǔn)接口,這為現(xiàn)場生產(chǎn)設(shè)備之間的互聯(lián)互通造成了很大的困難,從現(xiàn)場底層的生產(chǎn)數(shù)據(jù)到高層的企業(yè)決策信息無法進行有效集成和整合。因此,設(shè)備供應(yīng)商和軟件開發(fā)商需要一種具有高效性、可靠性、開放性、可互操作性的即插即用的設(shè)備驅(qū)動程序,簡化每個層級之間的數(shù)據(jù)交換,于是OPC應(yīng)運而生!OPC標(biāo)準(zhǔn)以微軟公司的OLE(ObjectLinkingandEmbedding,對象鏈接和嵌入)技術(shù)為基礎(chǔ),向用戶提供具有開放性和互操作性的OLE/COM接口標(biāo)準(zhǔn),避免非標(biāo)準(zhǔn)數(shù)據(jù)接口的復(fù)雜性,使各種工業(yè)設(shè)備和管理層系統(tǒng)/工業(yè)應(yīng)用層之間能夠互相操作,工業(yè)應(yīng)用程序的使用不再依賴特定的開發(fā)語言與環(huán)境。OPC標(biāo)準(zhǔn)OPCUA協(xié)議OPCUA作為新一代OPC技術(shù),其主要優(yōu)勢的簡單總結(jié):1)
跨平臺性,獨立于各種開發(fā)平臺和編程語言;2) 訪問統(tǒng)一性,提供一致、完整的地址空間和服務(wù)模型,通過一個調(diào)用接口為客戶端提供數(shù)據(jù)、報警、事件和歷史數(shù)據(jù),詳見節(jié);3) 安全通訊機制,底層通信技術(shù)集成了由公用秘鑰與私用秘鑰形成的加密功能和標(biāo)記技術(shù),保證了傳輸消息的完整性與安全性;4) 信息授權(quán)訪問機制,集成用戶授權(quán)、簽名、加密傳輸?shù)裙δ埽乐剐畔⒎鞘跈?quán)訪問,以及過程數(shù)據(jù)損壞和誤操作。5) 高可靠性,集成可配置超時、自動錯誤檢查和自動恢復(fù)等機制,可對OPCUA客戶端與服務(wù)器之間的物理連接進行監(jiān)視,及時發(fā)現(xiàn)通信故障,自動處理通信錯誤和失??;6) 冗余性,支持來自不同廠商的軟件應(yīng)用同時被采納并彼此兼容,實現(xiàn)高可用性的通信系統(tǒng)。因此,自O(shè)PCUA技術(shù)誕生以來,越來越多的公司將其作為開放的數(shù)據(jù)標(biāo)準(zhǔn),包括主流的自動化廠商,以及IT界的華為、CISCO、Microsoft等都是OPCUA的支持者,還包括Profibus/Profinet的PI組織、POWERLINK。在2017年9月5日,OPCUA已正式成為國家推薦性標(biāo)準(zhǔn)。OPCUA協(xié)議2OPCUA規(guī)范總覽OPCUA協(xié)議開發(fā)規(guī)范由OPC基金會于2006年8月首次發(fā)布,截至2018年10月,最新版官方正式發(fā)布的OPCUA開發(fā)規(guī)范主要包括13個部分說明,如右圖所示,OPCUA協(xié)議第一部分:概要與概念主要介紹了服務(wù)器和客戶端的基本概念。第二部分:安全模型描述了OPCUA客戶端與服務(wù)器之間的安全交互,包括交互通道安全、消息傳輸安全、數(shù)據(jù)訪問安全等。第三部分:地址空間模型用以描述服務(wù)器地址空間的內(nèi)容和結(jié)構(gòu)。地址空間是整個系統(tǒng)的最基層,系統(tǒng)絕大多數(shù)的功能調(diào)用都需要經(jīng)過該模塊,是OPCUA架構(gòu)的最核心部分。第四部分:服務(wù)說明了OPCUA可提供的所有服務(wù)功能和服務(wù)函數(shù)對系統(tǒng)的功能進行了全面性描述。第五部分:信息模型說明了為OPCUA服務(wù)器定義的標(biāo)準(zhǔn)數(shù)據(jù)類型和它們之間的關(guān)系。第六部分:服務(wù)映射對協(xié)議支持的傳輸映射和數(shù)據(jù)編碼機制進行了說明。第七部分:協(xié)議描述了OPCUA服務(wù)器和客戶端可以實現(xiàn)的行為類別,說明了可用于OPCUA客戶端和服務(wù)器的協(xié)議,這些協(xié)議提供了可用于一致性標(biāo)準(zhǔn)的服務(wù)和功能。OPCUA協(xié)議第八部分:數(shù)據(jù)訪問為過程數(shù)據(jù)定義了變量類型、屬性和狀態(tài)碼等模型,說明了OPCUA系統(tǒng)的數(shù)據(jù)訪問規(guī)則。第九部分:報警與事件定義了使用OPCUA對過程報警與條件通道的支持。第十部分:程序說明了OPCUA對程序訪問的支持。第十一部分:歷史訪問說明了歷史數(shù)據(jù)和歷史事件的訪問方式。第十二部分:查找用以說明客戶端采用何種方式在網(wǎng)絡(luò)中發(fā)現(xiàn)服務(wù)端,以及客戶端如何獲得需要的信息與特定服務(wù)器建立連接。第十三部分:聚合說明了如何從原始數(shù)據(jù)計算樣本值,主要用于實時數(shù)據(jù)和歷史數(shù)據(jù)的處理。第十四部分:訂閱發(fā)布定義了數(shù)據(jù)訪問的發(fā)布訂閱模式,但截至到2018年10月,該部分規(guī)范還處于候選版本,沒有被正式發(fā)布。OPCUA協(xié)議3OPCUA架構(gòu)分析OPCUA系統(tǒng)體系結(jié)構(gòu)采用服務(wù)端/客戶端(C/S)模式,其中OPCUA服務(wù)器負(fù)責(zé)生產(chǎn)過程數(shù)據(jù)的收集,然后通過標(biāo)準(zhǔn)接口為OPCUA客戶端提供數(shù)據(jù)服務(wù),OPCUA客戶端通過標(biāo)準(zhǔn)接口獲取數(shù)據(jù),實現(xiàn)用戶所需的應(yīng)用程序功能。如右圖所示。1.網(wǎng)絡(luò)架構(gòu)OPCUA協(xié)議假定要開發(fā)一套OPC系統(tǒng),OPCUA客戶端和服務(wù)器都要開發(fā)對應(yīng)的應(yīng)用程序,先了解一下OPCUA的服務(wù)器和客戶端的運行和配置方式。2.系統(tǒng)架構(gòu)OPC基金會定義的OPCUA客戶端系統(tǒng)架構(gòu),客戶端應(yīng)用程序是指執(zhí)行客戶端功能的代碼,它通過“客戶端API”向服務(wù)器發(fā)送數(shù)據(jù)請求或從服務(wù)器接收信息。需要說明的是,“客戶端API”是一個內(nèi)部接口,將應(yīng)用程序代碼從通信堆棧中分離出來,通信堆棧負(fù)責(zé)將客戶端的API調(diào)用轉(zhuǎn)換為服務(wù)消息,并通過底層消息體發(fā)送給服務(wù)器。OPCUA協(xié)議OPC基金會定義的OPCUA服務(wù)器系統(tǒng)架構(gòu),服務(wù)器應(yīng)用程序“服務(wù)器API”與客戶端進行交互,同理“服務(wù)器API”也是內(nèi)部接口。OPCUA客戶端與服務(wù)器有兩種交互方式:第一種:客戶端發(fā)送服務(wù)請求,經(jīng)底層通信實體發(fā)送給OPCUA通信棧,并通過服務(wù)器API調(diào)用請求/響應(yīng)服務(wù),然后在地址空間內(nèi)執(zhí)行指定任務(wù)后,向客戶端返回一個響應(yīng),這種交互稱為請求響應(yīng)模式。第二種:客戶端發(fā)送消息發(fā)布請求,經(jīng)底層通信實體發(fā)送給OPCUA通信棧,并通過服務(wù)器API發(fā)送給訂閱,當(dāng)訂閱指定的監(jiān)控項監(jiān)測到數(shù)據(jù)/事件/報警變化時,產(chǎn)生一個消息通知由訂閱轉(zhuǎn)發(fā)給客戶端,這種交互稱為發(fā)布訂閱模式。OPCUA協(xié)議OPCUA客戶端和OPCUA服務(wù)器之間的合法連接稱為“會話”,每個客戶端與服務(wù)器建立一個單獨的請求響應(yīng)對話,每個服務(wù)器可以根據(jù)自身資源或其他約束條件來決定可支持的并發(fā)會話數(shù)量,即可接受的客戶端連接數(shù)量。會話的終止由客戶端或服務(wù)器的指令、或客戶端失效來決定。每個會話是不依賴底層通信協(xié)議的,但是會話的進行是建立在底層通信架構(gòu)的基礎(chǔ)上的,如右圖所示。OPCUA通信架構(gòu)主要包括兩個部分:UA應(yīng)用程序和通信棧,其中通信棧由編碼層、安全信道層和傳輸層構(gòu)成,負(fù)責(zé)向UA應(yīng)用程序(包括服務(wù)器應(yīng)用程序和客戶端應(yīng)用程序)提供一套標(biāo)準(zhǔn)接口(API)。3.通信架構(gòu)OPCUA協(xié)議4OPCUA服務(wù)OPCUA服務(wù)指的是OPCUA服務(wù)器對外的接口,是服務(wù)器信息模型和客戶端信息模型進行數(shù)據(jù)交互的橋梁,即OPCUA客戶端若想訪問服務(wù)器的數(shù)據(jù)必須通過服務(wù)才能實現(xiàn),服務(wù)以“方法”的形式提供給OPCUA客戶端使用。OPCUA協(xié)議規(guī)范在其第四部分對所有服務(wù)進行了介紹與劃分,形成了多個服務(wù)子集,每個服務(wù)子集定義用于訪問服務(wù)器特定功能部分的邏輯組合,解決了傳統(tǒng)OPC規(guī)范在應(yīng)用時服務(wù)重疊的問題。OPCUA服務(wù)規(guī)范定義的服務(wù)子集如右圖所示,包括安全信道服務(wù)集、節(jié)點管理服務(wù)集、方法服務(wù)集、查詢服務(wù)集、會話服務(wù)集、視點服務(wù)集、屬性服務(wù)集和訂閱服務(wù)集等。OPCUA協(xié)議5OPCUA信息模型OPCUA客戶端如何訪問服務(wù)器是通過對象模型描述的,該模型定義了一組標(biāo)準(zhǔn)化節(jié)點類型,代表地址空間內(nèi)的對象、對象屬性、方法、事件以及對象間的關(guān)系。相關(guān)對象模型及其之間的關(guān)系按照特定的規(guī)則進行分組,便形成信息模型。換句話說,信息模型是使用地址空間的概念定義自有的、領(lǐng)域特定的類型和約束,以及明確定義的實例。信息模型是OPCUA技術(shù)的基礎(chǔ),可以定義節(jié)點標(biāo)識(NodeId)、節(jié)點類型、建模規(guī)則等,它還可以通過定義瀏覽名稱和語義定義標(biāo)準(zhǔn)的特性和方法。此外,信息模型也能定義標(biāo)準(zhǔn)視點,以及包含明確數(shù)據(jù)的標(biāo)準(zhǔn)變量。數(shù)據(jù)訪問(DC)歷史數(shù)據(jù)訪問(HDA)報警和事件(A&E)程序本書不詳細(xì)介紹OPCUA如何進行信息建模,只向讀者介紹OPCUA已定義的4種標(biāo)準(zhǔn)信息模型。OPCUA協(xié)議1、數(shù)據(jù)訪問(DC)數(shù)據(jù)訪問信息模型主要定義了模擬和離散變量、工程單位和質(zhì)量代碼的自動化數(shù)據(jù)表示形式,基于該模型,OPCUA規(guī)范在第8部分詳細(xì)說明了如何使用OPCUA進行數(shù)據(jù)訪問。數(shù)據(jù)訪問信息模型定義的標(biāo)準(zhǔn)變量層次結(jié)構(gòu)見右圖。OPCUA協(xié)議2、報警和事件(A&E)OPCUAA&E接口接收事件或報警通知。事件是通知客戶端有一個事件發(fā)生;報警事件通知客戶端過程狀態(tài)的變化,比如水箱的水位值,超過最高水位或低于最低水位就會產(chǎn)生狀態(tài)變化。OPCUA通過A&E接口接收通知的基本原理為:在A&E服務(wù)器中創(chuàng)建OPC事件服務(wù)器(OPCEventServer),然后生成OPC事件訂閱(OPCEventScription)對象接收消息通知。3、歷史數(shù)據(jù)訪問(HDA)4、程序歷史訪問信息模型主要描述了如何找到歷史數(shù)據(jù)的配置信息。OPCUADA接口可訪問數(shù)據(jù)源的歷史信息,OPCUA客戶端連接到HAD服務(wù)器中的OPCHDAServer對象,此對象可提供讀取和更新歷史數(shù)據(jù)的接口和方法。程序是相對于方法而言。方法是由客戶端發(fā)出請求,在服務(wù)器執(zhí)行,并將結(jié)果返回給客戶端,這個過程可在短時間內(nèi)完成,比如電機的啟動、停止等。程序則是用來完成長時間運行、有狀態(tài)的功能。OPCUA協(xié)議6OPCUA地址空間模型1.節(jié)點與引用OPCUA地址空間內(nèi)的內(nèi)容是以一組通過“引用”形式連接起來的節(jié)點來描繪的,如右圖所示。節(jié)點是地址空間的基本單位,代表OPCUA服務(wù)器定義的真實對象,OPCUA客戶端通過使用OPCUA服務(wù)(接口和方法)來訪問節(jié)點。引用定義了節(jié)點與節(jié)點之間的關(guān)聯(lián),如右圖中的箭頭表示兩個節(jié)點間的引用關(guān)系,箭頭方向表示引用方向,箭頭的起點是源節(jié)點,箭頭的末端指向目標(biāo)節(jié)點。OPCUA協(xié)議節(jié)點由屬性描述并由引用進行關(guān)聯(lián)組織,屬性用來描述節(jié)點的數(shù)據(jù)元素,客戶端可通過讀、寫、查詢、訂閱的方式存取屬性值。屬性是節(jié)點類的基本組成部分,比如對于一個監(jiān)控項而言,監(jiān)控對象就是節(jié)點的某個屬性。屬性內(nèi)容包括屬性ID、名稱、描述、數(shù)據(jù)類型、和強制/可選指示器等,其中屬性ID用來唯一標(biāo)識屬性。一個引用關(guān)系由源節(jié)點、引用類型、目標(biāo)節(jié)點的聯(lián)合唯一標(biāo)識,如下圖所示。需要說明的是,每個節(jié)點可以與其他多個節(jié)點形成引用關(guān)系,但是引用的定義是非常嚴(yán)格的,相同的兩個節(jié)點之間不允許提供兩次方向和類型都相同的引用。另外,目標(biāo)節(jié)點可以在與源節(jié)點相同的地址空間里,也可以在不同的地址空間里,OPCUA協(xié)議2.節(jié)點組織OPCUA服務(wù)器可以在它們的地址空間中自由的組織它們選擇的節(jié)點?;诠?jié)點間的引用關(guān)系,OPCUA服務(wù)器將地址空間內(nèi)的許多個節(jié)點組織成分層結(jié)構(gòu)、網(wǎng)狀結(jié)構(gòu)或任何可能的混合結(jié)構(gòu),如下圖就是一種網(wǎng)狀組織結(jié)構(gòu)。OPCUA協(xié)議3.節(jié)點類型OPCUA定義了多種類型節(jié)點,每種節(jié)點類別都具有自身特有的屬性,但是其都繼承于一個基節(jié)點,基節(jié)點定義了它們的共有屬性,見下表所示。序號屬性數(shù)據(jù)類型說明1NodeIdNodeId用于定位OPCUA服務(wù)器中的節(jié)點,并用來對節(jié)點進行唯一標(biāo)識2NodeClassNodeClass定義節(jié)點類型(NodeClass)的枚舉類別,如對象、方法或視點等3BrowseNameQualifiedName用于客戶端瀏覽OPCUA服務(wù)器時的節(jié)點標(biāo)識4DisplayNameLocalizedText用于節(jié)點名稱在用戶界面的可視化顯示5DescriptionLocalizedText可選屬性,描述該節(jié)點的本地化說明6WriteMask
UInt32可選屬性,定義節(jié)點屬性是否可寫7UserWriteMaskUInt32可選屬性,定義連接到OPCUA服務(wù)器的某一個客戶端是否有修改節(jié)點屬性的權(quán)限OPCUA協(xié)議NodeClass是一個枚舉類型,用來標(biāo)記節(jié)點屬于OPCUA規(guī)范定義的哪一種節(jié)點類型,當(dāng)然OPCUA規(guī)范定義范圍之外的是非法的。BrowseName是一個包含命名空間(Namespace)和非本地化字符串的結(jié)構(gòu),服務(wù)器通常為NodeId和BrowseName設(shè)置同一個Namespace,但是BrowseName不能唯一標(biāo)識節(jié)點,一批類似的實例節(jié)點可能具有相同的BrowseName屬性值。DisplayName用來顯示節(jié)點名稱,BrowseName僅用于瀏覽目的,不用于節(jié)點名稱的顯示。WriteMask和UserWriteMask定義了客戶端對節(jié)點屬性的可寫性,由WriteMask定義的可寫屬性集不能小于UserWriteMask定義的可寫屬性集,因為WriteMask定義任何用戶可寫的屬性集,UserWriteMask定義指定用戶的可寫屬性集,可以理解為,UserWriteMask是WriteMask的子集。需要說明的是,基節(jié)點是抽象的節(jié)點類型,不能被實例化。OPCUA從基節(jié)點派生了8種可被實例化的節(jié)點類別,分別為Variable(變量)、VariableType(變量類型)、Object(對象)、ObjectType(對象類型)、View(視點)、DataType(數(shù)據(jù)類型)、ReferenceType(引用類型)和Method(方法)。OPCUA協(xié)議(1)引用類型引用的實質(zhì)是“兩個節(jié)點之間的關(guān)聯(lián)”,用于說明節(jié)點如何連接的不同語義。即引用不是節(jié)點,它沒有任何屬性和特性,不能被直接訪問,只能間接的以瀏覽的方式訪問,OPCUA便使用“引用類型”來說明引用的語義,定義引用屬于哪一種類型。屬性數(shù)據(jù)類型說明屬性數(shù)據(jù)類型說明IsAbtract布爾定義引用類型可否用于引用,或者只用于組織引用類型層次結(jié)構(gòu)Sysmetric布爾指定引用是否對稱,即正反向意思是否相同InverseNameLocalizedText可選屬性,只適用于非對稱引用,指定引用在反方向上的語義注意:一個引用類型的Browsename在一個OPCUA服務(wù)器中必須是唯一的,避免同名的引用類型語義不同而導(dǎo)致混亂。DisplayName必須定義有Browsename的本地化描述,兩者共同確定引用類型的正向語義。OPCUA協(xié)議(2)對象、變量和方法1) 對象節(jié)點類別為對象的節(jié)點用于描述地址空間結(jié)構(gòu),對象除了Browsename(瀏覽名稱)、DisplayName(顯示名稱)等屬性外,不能包含任何數(shù)據(jù),通過使用變量對外提供值。對象主要用于變量、方法或其他對象的分組管理。一個對象可能包含有其他的對象,基于同一個對象可以定義不止一個變量以及不同的方法實現(xiàn)。2) 變量節(jié)點類別為變量的節(jié)點代表一個數(shù)值,數(shù)值的數(shù)據(jù)類型取決于該變量節(jié)點類別。即變量提供真實的值,該值支持讀取、重寫、變化訂閱等客戶端操作,類似于面向?qū)ο缶幊讨械摹癮=1”,a是一個變量,數(shù)值為1。實際上,OPCUA定義了兩種變量:數(shù)據(jù)和特性(Property),它們是數(shù)據(jù)建模的基本因素。3) 方法節(jié)點類別為方法的節(jié)點代表由客戶端調(diào)用并返回結(jié)果的一個服務(wù)器方法,方法的輸入是由客戶端提供的輸入?yún)?shù),輸出參數(shù)是按照客戶端要求返回的結(jié)果。OPCUA協(xié)議節(jié)點類別(NodeClass)屬性數(shù)據(jù)類型說明對象(Object)EventNotifierByte表示對象是否可以用來訂閱事件,以及事件的歷史是否會被訪問或改變變量(Variable)Value由其他屬性決定變量實際值,數(shù)據(jù)類型由ArrayDimensions、ValueRank或DataType決定DataTypeNodeId標(biāo)識地址空間的節(jié)點,該屬性包含一個此類型節(jié)點的NodeId,以此來定義Value屬性的數(shù)據(jù)類型ValueRankInt32標(biāo)識值是否為數(shù)組,以及定義數(shù)組的維度。OPCUA內(nèi)置支持多維數(shù)組,客戶端可以讀取或?qū)懭霐?shù)組的一部分,也可以只訂閱數(shù)組的一部分ArrayDimensionsUInt32[]可選屬性,用來定義數(shù)組大小,只能適用于Value值是一個數(shù)組的情況AccessLevelByte定義Value屬性的當(dāng)前值是否可讀寫,以及Value是否有歷史可用,注意與WriteMask屬性的區(qū)分,WriteMask不包括變量類型的Value屬性,與AccessLevel在信息上不會重復(fù)UserAccessLevelByte定義指定用戶是否有權(quán)限讀寫Value屬性的當(dāng)前值,是否有權(quán)查詢歷史值MinimumSamplingIntervel時間區(qū)間可選屬性,定義服務(wù)器能檢測到Value屬性變化的時間Historizing布爾標(biāo)識目前服務(wù)器是否收集了Value歷史信息。AcessLevel指示是否有歷史可用,Historizing指示服務(wù)器是否收集了歷史信息方法(Method)Executable布爾指示方法在當(dāng)前是否可以被調(diào)用UserExecutable布爾指示方法在當(dāng)前是否可以被指定用戶調(diào)用InputArgumentsArgument[]可選屬性,定義一個方法輸入?yún)?shù)的屬性O(shè)utputArgumentsArgument[]可選屬性,定義一個方法輸出參數(shù)的屬性O(shè)PCUA協(xié)議(3)對象類型類似于面向?qū)ο缶幊?,OPCUA技術(shù)規(guī)范定義的對象都是有類型的,稱為對象類型(ObjectType)。OPCUA對象類型節(jié)點的運行機制:如左圖中定義了兩個對象類型:FolderType和BranchType,對象Branch1引用了BranchType,因此是BranchType類型的。服務(wù)器在創(chuàng)建一個對象時,必須提供對象類型定義,對象的Description和DisplayName可以不指定,使用對象類型的對應(yīng)屬性值填充,比如圖中的對象Branch1的Description屬性值來自對應(yīng)的BranchType的。OPCUA協(xié)議OPCUA對象類型節(jié)點的使用和實現(xiàn):對象類型是一次定義多次使用,即基于同一個對象類型,可以創(chuàng)建多個不同的對象實例。左圖展示了一個對象類型定義的例子,其中MotorType是一個對象類型節(jié)點,基于該節(jié)點創(chuàng)建了對象節(jié)點Motor1,還可以創(chuàng)建Motor2.Motor3等多個對象節(jié)點。MotorType定義了一個狀態(tài)變量Status,一個包含兩個變量的配置對象Configuration,兩個方法Start和Stop,Motor1與MotorType保持相同的結(jié)構(gòu),但是兩者也存在本質(zhì)相異點:對象類型節(jié)點MotorType下定義的變量、對象和方法是實例,但是這些實例不提供真正的實例值,因此這些實例節(jié)點被稱為實例聲明(InstanceDeclarations)。OPCUA協(xié)議(4)變量類型像對象一樣,OPCUA提供的變量也是有類型的,通過變量類型(VariableType)指定,也支持繼承機制。下表列出了變量類型的附加屬性。屬性數(shù)據(jù)類型說明Value由其他屬性決定可選屬性,變量的實際值,數(shù)據(jù)類型由DataType、ValueRank或ArrayDimensions決定DataTypeNodeId定義Value屬性的數(shù)據(jù)類型ValueRankInt32標(biāo)識參數(shù)類型:標(biāo)量、數(shù)組或矩陣等ArrayDimensionsUInt32[]可選屬性,用來定義數(shù)組或矩陣大小,只能適用于Value值是一個數(shù)組的情況。這個數(shù)組的每項定義了值數(shù)組的對應(yīng)維度大小IsAbstract布爾標(biāo)識變量類型是具體的或者抽象的OPCUA協(xié)議(5)數(shù)據(jù)類型在變量和變量類型部分已經(jīng)提到過數(shù)據(jù)類型(DataType),實際上,OPCUA規(guī)定:除了變量和變量類型的Vaule屬性外,所有屬性都有一個數(shù)據(jù)類型,變量和變量類型的Vaule屬性是由變量和變量類型的數(shù)據(jù)類型屬性、ValueRank、ArrayDimensions共同定義的。OPCUA技術(shù)規(guī)范定義的數(shù)據(jù)類型有5種。1)內(nèi)置數(shù)據(jù)類型2)簡單數(shù)據(jù)類型3)枚舉數(shù)據(jù)類型4)結(jié)構(gòu)化數(shù)據(jù)類型5)抽象數(shù)據(jù)類型OPCUA協(xié)議(6)視點視點是用來組織空間地址的關(guān)鍵依據(jù)。它可以從以下兩種方面來理解:1) 視點是地址空間的一個節(jié)點,提供視點內(nèi)容的入口。2) 使用節(jié)點的NodeId作為地址空間瀏覽的過濾參數(shù),通過視點的過濾機制,客戶端可以快速地從龐大的數(shù)據(jù)集中查詢并定位到需要的數(shù)據(jù)節(jié)點。同時,服務(wù)器可以限制客戶端訪問到視點外部節(jié)點的引用。因此,客戶端瀏覽地址空間需要從視點進入,然后把視點當(dāng)作過濾器瀏覽指定范圍的節(jié)點。但是需要注意,視點總是服務(wù)器定義的,也就是說客戶端對視點只能瀏覽和訪問;而且客戶端同時只能瀏覽一個視點,因為視點不能合并。屬性數(shù)據(jù)類型說明ContainsNoLoops布爾指示視點包含的節(jié)點中是不是產(chǎn)生循環(huán)EventNotifierByte標(biāo)識對象是否支持事件訂閱,事件的歷史是否會被訪問或改變OPCUA協(xié)議7OPCUA消息交互1.請求響應(yīng)模式OPCUA服務(wù)器和客戶端之間的交互是基于服務(wù)集的消息傳遞機制實現(xiàn)的。服務(wù)消息可以是二進制格式,也可以是XML文本格式,這便意味著OPCUA不僅僅適于設(shè)備層、自動化層到信息化層的數(shù)據(jù)交換,還可以透過互聯(lián)網(wǎng)實現(xiàn)遠(yuǎn)程的數(shù)據(jù)交換,能滿足自動化工廠所有層面數(shù)據(jù)交換的需要。OPCUA協(xié)議規(guī)范定義了兩種消息服務(wù)框架,即請求響應(yīng)模式和發(fā)布訂閱模式。2.發(fā)布訂閱模式OPCUA協(xié)議1.請求響應(yīng)模式OPCUA請求響應(yīng)模式的消息交互與網(wǎng)絡(luò)服務(wù)交互類似,即每次交互都是由請求消息和響應(yīng)消息構(gòu)成,大致過程如下圖所示??蛻舳藢⒎?wù)請求經(jīng)底層通信實體發(fā)送給OPCUA通信棧,通過OPCUA服務(wù)器API調(diào)用請求/響應(yīng)服務(wù),服務(wù)器接收消息請求并在地址空間內(nèi)執(zhí)行,執(zhí)行完成后向客戶端返回一個響應(yīng)消息。OPCUA協(xié)議2.發(fā)布訂閱模式發(fā)布訂閱是一種新型消息范式。消息的發(fā)送者(稱為發(fā)布者)不會將消息直接發(fā)送給特定的接收者(稱為訂閱者),而是將發(fā)布的消息進行分類標(biāo)記,不需要關(guān)心是否有訂閱者存在,也不需要關(guān)心有哪些訂閱者存在。OPCUA訂閱發(fā)布機制中主要有三個關(guān)鍵服務(wù):發(fā)布服務(wù)、監(jiān)控項服務(wù)和訂閱服務(wù)。發(fā)布服務(wù)是由客戶端通過OPCUA服務(wù)接口(API)調(diào)用的服務(wù),它的主要任務(wù)是周期性地向客戶端發(fā)送通知,包括報警、事件、數(shù)據(jù)變化等。監(jiān)控項是由客戶端在服務(wù)器中創(chuàng)建的實體,用來監(jiān)測地址空間內(nèi)節(jié)點及其他們所對應(yīng)的物理實體。若某一個監(jiān)控項檢測到有數(shù)據(jù)變化或者事件/報警發(fā)生時,便會產(chǎn)生一個通知消息,通過訂閱發(fā)送給客戶端。訂閱是客戶端控制請求發(fā)布的條件,用來由監(jiān)控項向客戶端發(fā)送通知,也就是說,客戶端與服務(wù)器是通過訂閱進行消息交互的。OPCUA協(xié)議(1)訂閱和監(jiān)控項概述訂閱和監(jiān)控項是OPCUA服務(wù)器與客戶端交互的橋梁。與傳統(tǒng)的基于COM/DCOM的OPC采用輪詢查詢進行數(shù)據(jù)訪問的方式不同,OPCUA規(guī)范中規(guī)定消息的發(fā)布是通過訂閱周期性地向客戶端發(fā)送監(jiān)控項消息隊列中的通知消息。OPCUA訂閱與監(jiān)控項在服務(wù)器中的分布如下圖所示。OPCUA協(xié)議(2)監(jiān)控項模型客戶端通過定義監(jiān)控項來訂閱數(shù)據(jù)和事件等,而每個監(jiān)控項都被指定了需要被監(jiān)控的內(nèi)容和發(fā)送通知的訂閱。被監(jiān)控內(nèi)容可以是任意一個節(jié)點的屬性,通知則是描述被監(jiān)控對象發(fā)生變化的數(shù)據(jù)結(jié)構(gòu)和事件等,這些通知被打包成消息通過訂閱發(fā)送給客戶端。下圖中的通知器是可訂閱的對象,訂閱后可從相關(guān)聯(lián)的條件節(jié)點中獲取事件,事件數(shù)據(jù)用于指定要更新的事件的信息。監(jiān)控項有四個主要屬性來定義被監(jiān)控項如何被采樣、評價和報告,在左圖中已有所示意。這四個主要的屬性為:采樣間隔監(jiān)控模型過濾器屬隊列屬性O(shè)PCUA協(xié)議(3) 訂閱模型訂閱用于接收來自監(jiān)控項的通知消息,并將其轉(zhuǎn)發(fā)給客戶端,這也說明了訂閱只能從OPCUA服務(wù)器讀取信息,而不能寫入信息。訂閱實現(xiàn)的過程如右圖所示,過程大致如下:1) 客戶端向服務(wù)器發(fā)出訂閱請求;2) 服務(wù)器接收到訂閱請求后創(chuàng)建訂閱,并通過監(jiān)控項監(jiān)控數(shù)據(jù)變化及事件;3) 監(jiān)控項監(jiān)測到數(shù)據(jù)變化或有事件報警;4) 監(jiān)控項調(diào)用客戶端的服務(wù),通過訂閱將通知消息發(fā)送給客戶端,這種模式也稱為“回調(diào)(Callback)”。MT-Connect協(xié)議目前,大多數(shù)工業(yè)通訊協(xié)議(包括OPCUA)是彼此不兼容的,即異構(gòu)制造設(shè)備間無法直接進行信息交互。而針對異構(gòu)設(shè)備定義專用的數(shù)據(jù)接口來實現(xiàn)單元內(nèi)所有設(shè)備互聯(lián)通信將造成開發(fā)成本增加,因此,美國機械制造技術(shù)協(xié)會(AMT)在2006年提出了機床設(shè)備互聯(lián)互通協(xié)議MTConnect協(xié)議。MTConnect協(xié)議與OPCUA協(xié)議相似,是一種開放、免版稅的設(shè)備互聯(lián)標(biāo)準(zhǔn)和技術(shù),旨在采用互聯(lián)網(wǎng)協(xié)議通過網(wǎng)絡(luò)傳輸數(shù)據(jù),實現(xiàn)數(shù)控系統(tǒng)、設(shè)備和應(yīng)用軟件之間更廣泛的互操作。但兩者存在以下區(qū)別:OPCUA能進行雙向的實時數(shù)據(jù)讀取和寫入MT-Connect只能進行實時數(shù)據(jù)監(jiān)視(讀)MTConnectV1.3.0標(biāo)準(zhǔn)架構(gòu)和協(xié)議概要數(shù)據(jù)模型和設(shè)備信息機床狀態(tài)信息數(shù)據(jù)模型語義模型本書將僅對MT-Connect的關(guān)鍵概念與技術(shù)做出介紹。MT-Connect協(xié)議:標(biāo)準(zhǔn)架構(gòu)MTConnect協(xié)議的應(yīng)用系統(tǒng)由五個基礎(chǔ)的組件組成,如右圖所示。包括:Device(設(shè)備)Adapter(適配器)Agent(代理服務(wù)器)Network(網(wǎng)絡(luò))Application(應(yīng)用程序)等MT-Connect協(xié)議:標(biāo)準(zhǔn)架構(gòu)(1)Device——設(shè)備Device通常是一個刀具,但是也可以是機床設(shè)備、工業(yè)軟件或者數(shù)據(jù)源等。(2)Adapter——適配器Adapter用于建立一個從數(shù)據(jù)源和MT-ConnectDataDefinition之間的連接,實現(xiàn)Agent與不同數(shù)據(jù)協(xié)議設(shè)備之間的數(shù)據(jù)交互,即Adaper負(fù)責(zé)將非MT-Connect標(biāo)準(zhǔn)的設(shè)備數(shù)據(jù)轉(zhuǎn)換成MT-Connect標(biāo)準(zhǔn)。因此Adapter可認(rèn)為是一個翻譯器,即它具備可選屬性,且在以MT-Connect為本地語言的設(shè)備上是不需要的。MT-Connect為開發(fā)者提供Adaper開發(fā)包,Adaper可以嵌入到設(shè)備控制器,也可以以軟件的形式集成到監(jiān)控計算機中。MT-Connect協(xié)議:標(biāo)準(zhǔn)架構(gòu)(3)Agent——代理服務(wù)器Agent是一個收集、組織、存儲來自于Device或Adapter數(shù)據(jù)的軟件,是MTConnect協(xié)議數(shù)據(jù)采集的核心組件。Agent負(fù)責(zé)工業(yè)設(shè)備信息的采集,并響應(yīng)應(yīng)用程序的請求,為其提供所需的數(shù)據(jù)服務(wù)。Agent可以嵌入到設(shè)備控制器內(nèi)部,也可以分布在網(wǎng)絡(luò)中。Agent的數(shù)據(jù)字典在MTConnect標(biāo)準(zhǔn)中進行了定義,源代碼也是開源的,支持多種語言開發(fā)平臺,包括C#、C++、JAVA等,開發(fā)者可通過Agent調(diào)用設(shè)備的API獲取實時數(shù)據(jù),然后以XML數(shù)據(jù)格式提供給應(yīng)用程序的數(shù)據(jù)請求。(4)Network——網(wǎng)絡(luò)Network是數(shù)據(jù)源(Device)和數(shù)據(jù)消費者(Application)之間的物理連接,通常指的是以太網(wǎng)。值得注意的是MT-Connect結(jié)構(gòu)是可變的,可以使用除了Ethernet和網(wǎng)絡(luò)協(xié)議之外的其他網(wǎng)絡(luò)解決辦法。這是唯一在MT-Connect標(biāo)準(zhǔn)里定義的通訊系統(tǒng)的部分。MT-Connect協(xié)議:標(biāo)準(zhǔn)架構(gòu)(5)Application——客戶端應(yīng)用程序Application是實際的MT-Connect數(shù)據(jù)請求者和消費者。通常應(yīng)用程序的功能就是請求、存儲、維持和展示數(shù)據(jù)。MT-Connect應(yīng)用程序開發(fā)獨立于設(shè)備底層協(xié)議,MT-Connect采用XML格式表達(dá)數(shù)據(jù),即Agent發(fā)布的消息是由MT-Connect標(biāo)準(zhǔn)定義的XML數(shù)據(jù)文檔。【綜上所述,MT-Connect系統(tǒng)的數(shù)據(jù)交互流程】Adaper將從工業(yè)設(shè)備采集到數(shù)據(jù)轉(zhuǎn)換為對應(yīng)Agent可識別的數(shù)據(jù)格式;Agent從Adaper獲取數(shù)據(jù),并對數(shù)據(jù)進行封裝,形成MT-Connect標(biāo)準(zhǔn)格式的采集報文;Application向Agent發(fā)起數(shù)據(jù)請求,由Agent向用戶返回相應(yīng)的數(shù)據(jù)信息。MT-Connect是一種只讀協(xié)議,不支持工業(yè)設(shè)備的反向控制。【MT-Connect特性】開放性的標(biāo)準(zhǔn)使客戶在購置設(shè)備時不需再考慮異構(gòu)設(shè)備交互操作性和非兼容性的問題,客戶端應(yīng)用程序開發(fā)者也無需考慮底層數(shù)據(jù)的格式,直接使用Agent提供的統(tǒng)一數(shù)據(jù)訪問接口,程序通用性良好,可移植性高。MT-Connect協(xié)議:設(shè)備描述方法MT-Connect標(biāo)準(zhǔn)采用可擴展標(biāo)記語言(ExtensibleMarkupLanguage,XML)描述設(shè)備數(shù)據(jù),也是MT-Connect協(xié)議可適用于不同類型設(shè)備的描述、監(jiān)控、管理和互操作的關(guān)鍵?!綳ML數(shù)據(jù)】以純文本格式存儲,因此XML提供了一種與硬件和軟件均無關(guān)的數(shù)據(jù)共享方法,允許開發(fā)者創(chuàng)建一個可被不同應(yīng)用程序讀取的數(shù)據(jù)文件。因此,XML可以輕易地描述不同種類工業(yè)設(shè)備/應(yīng)用軟件中的各種類型數(shù)據(jù),實現(xiàn)了MT-Connect標(biāo)準(zhǔn)的統(tǒng)一數(shù)據(jù)接口,支持不同來源的結(jié)構(gòu)化數(shù)據(jù)間的交互,大大減少了數(shù)據(jù)交換的復(fù)雜性?!綳ML文檔】以“元素”為單位組成,元素指出了文檔的邏輯結(jié)構(gòu),并且包含了文檔的信息內(nèi)容。每一個元素至少包括開始標(biāo)簽、結(jié)束標(biāo)簽和CDATA三個部分。CDATA實質(zhì)上是該條元素的內(nèi)容。如<FOO>ACK!</Foo>,“<FOO>”為開始標(biāo)簽,“</Foo>”為結(jié)束標(biāo)簽(ACK!”為該條元素的CDATA“
);XML允許元素自定義屬性,格式為<元素名屬性名=“屬性值”>,如<FOOname=“bob”>ACK!</Foo>。還允許元素嵌套,即單元素可包含多個子元素,但一個元素包含CDATA,則不能嵌套子元素。MT-Connect協(xié)議:設(shè)備描述方法【XML文檔】文檔的首行通常是XML聲明,如:1. <?xmlversion=“1.0”encoding=“UTF-8”?>上述聲明指明了XML的版本號和編碼方式。每個XML文檔必須有且只有一個根元素,MT-Connect支持4種根元素:MT-ConnectDevicesMT-ConnectStreamsMT-ConnectAssetsMT-ConnectError該類文檔提供各個設(shè)備的描述性信息,并指定可使用的數(shù)據(jù)項類型。該類文檔按照時間序列提供設(shè)備及其組件的采樣、事件、條件等信息。該類文檔包含與機床資產(chǎn)相關(guān)的信息,此類信息并非機床的直接組件,并且在其設(shè)備生命周期中可轉(zhuǎn)移給其他設(shè)備,如刀具。該類文檔提供請求處理過程中出現(xiàn)的錯誤信息。MT-Connect協(xié)議:設(shè)備描述方法MT-Connect使用XMLSchema來判斷XML是否符合要求,其根元素必須提供XMLschemaURL和位置,一個標(biāo)準(zhǔn)的XMLschema屬性如下所示(以MT-ConnectStream類報文為例):1.<MTConnectStreamsxmlns:m=“urn::MTConnectStreams:1.1”2.
xmlns:xsi=http:///2001/XMLSchema-instance3.xmlns=“urn::MTConnectStreams:1.1”4.xsi:schemaLocation=“urn::MTConnectStream:1.1”/schema/MTConnectStream.xsd”>從表現(xiàn)形式來看,XML報文包括有兩個部分:Header和Body。其中,Header必須是根元素的第一個子元素,提供與協(xié)議相關(guān)的說明信息,包括createTime、nextSequence、instanceId、sender、buffersize等。表3-10(翻頁)說明了MT-ConnectV1.3.0可提供的所有的Header屬性。MT-Connect協(xié)議:設(shè)備描述方法屬性名稱說明出現(xiàn)率createTime創(chuàng)建時間1nextSequence64位無符號整數(shù),用于指定下一個請求的序號,最大值為2^64-10或1instanceId64位無符號整數(shù),指明是代理服務(wù)器的哪一個調(diào)用命令1TestIndicator可選屬性,用于指明系統(tǒng)正處于測試模式0或1sender代理服務(wù)器的身份識別信息1bufferSize指定代理服務(wù)器可支持的Samples、Events和Condition數(shù)量1firstSequence第一個可使用的采樣或事件的序列號0或1lastSequence最后一個可使用的采樣或事件的序列號0或1version協(xié)議版本號1assetBuffersize代理服務(wù)器可存儲的最大資產(chǎn)數(shù)量1assetCount代理服務(wù)器當(dāng)前的資產(chǎn)總量1表3-10MT-ConnectV1.3.0的Header屬性說明MT-Connect協(xié)議:設(shè)備描述方法不同根元素的Header具備不同屬性,MT-ConnectStreamsHeader格式如下:<HeadercreationTime=“2010-03-13T03:59:11+00:00”sender=“l(fā)ocalhost”instaceId=“1268463594”bufferSize=“131074”version=“1.1”nextSquence=“156”firstSequence=“1”lastSequence=“155”/>XML報文的Body部分是Devices、Streams和Errors的具體信息,并按層次封裝,可讀性強。如下Errors描述報文的Body部分:<Errors><ErrorerrorCode=“OUT_OF_RANGE”>Argumentwasoutofrange</Error><ErrorerrorCode=“INVALID_XPATH”>Badpath</Error></Errors>MT-Connect協(xié)議:設(shè)備描述實現(xiàn)1設(shè)備組件描述MT-ConnectDevices文檔描述設(shè)備的配置信息以及滿足客戶端程序用于發(fā)送的數(shù)據(jù)。設(shè)備本身可以看做是許多組件(Component,如軸、電源、傳感器等)的有機集合,每個固定的組件都有自己的屬性(如名稱、主軸數(shù)、最大轉(zhuǎn)速、最大工作長度等),同時每個組件還可以有子組件。從XML文檔結(jié)構(gòu)上講,Devices元素作為MT-ConnectDevices文檔的核心元素,也是Body部分的第一個元素,它還包含許多的Component(組件),這些Component按照功能邏輯進行組織,MT-Connect協(xié)議標(biāo)準(zhǔn)采用不同的標(biāo)識定義不同的邏輯組件和設(shè)備名稱。在MT-Connect協(xié)議中,Devices元素具有統(tǒng)一的組件類型,可支持所有符合MT-Connect協(xié)議標(biāo)準(zhǔn)的設(shè)備或組件功能定義。這樣通過XML文檔可以描述任意復(fù)雜的設(shè)備,支持一個代理對多個設(shè)備的連接與識別。下圖(翻頁)是MT-Connect標(biāo)準(zhǔn)定義的一種MT-ConnectDevices邏輯架構(gòu)。MT-Connect協(xié)議:設(shè)備描述實現(xiàn)1設(shè)備組件描述MT-ConnectDevices各部分構(gòu)成Component作為Devices元素的重要組成部分,最能體現(xiàn)一個設(shè)備的構(gòu)造特點和功能,是客戶端獲取設(shè)備測量數(shù)據(jù)的保證。MT-Connect協(xié)議:設(shè)備描述實現(xiàn)1設(shè)備組件描述Component元素主要包括四個部分:ComponentDescription、ComponentComponents、ComponentDataItems和ComponentConfiguration,其中Components和DataItems是最主要的兩個元素。ComponentsComponents是一個集合,包含了所有與當(dāng)前設(shè)備相關(guān)的子元素,實質(zhì)上就是由一個或多個Component構(gòu)成的XML元素。目前,MT-Connect協(xié)議標(biāo)準(zhǔn)可提供的組件類型包括軸、控制器、系統(tǒng)等,詳見表3-11(翻頁)。DataltemsDataltems(數(shù)據(jù)項)是從Device、Component或Subcomponent中采集到的一些數(shù)據(jù)信息,比如Sample和Event類反饋的一些數(shù)據(jù),或者Condition類反饋的有關(guān)設(shè)備的運行狀況信息。MT-Connect協(xié)議:設(shè)備描述實現(xiàn)1設(shè)備組件描述Components組件類型功能說明軸(Axes)通過速度和位置對軸進行描述,其中軸位置數(shù)據(jù)以機床坐標(biāo)為參考系控制器(Controller)描述有關(guān)程序執(zhí)行的信息以及設(shè)備當(dāng)前的工作狀態(tài)系統(tǒng)(Systems)用于描述一個設(shè)備所有相關(guān)部件和子部件的工作狀態(tài),與軸類型類似,但是最為復(fù)雜且不易被拆分傳感器(Sensor)提供相關(guān)設(shè)備和組件的測量數(shù)據(jù),該類型組件是獨立運行的執(zhí)行機構(gòu)(Actuator)用于描述將系統(tǒng)控制信號轉(zhuǎn)換成相應(yīng)動作的機構(gòu)。門(Door)門類型用于描述防護門的打開和關(guān)閉狀態(tài)。表3-11MT-Connect協(xié)議標(biāo)準(zhǔn)組件類型及功能說明MT-Connect協(xié)議:設(shè)備描述實現(xiàn)2數(shù)據(jù)流描述數(shù)據(jù)流MT-ConnectStreams用于表示客戶端某個時刻從設(shè)備和其組件中采集到的Samples(采樣值)、Events(事件值)和Condition(條件值)。SamplesEventsCondition某一時刻某一數(shù)據(jù)項的測量值,例如位置、轉(zhuǎn)速等,這個測量值是連續(xù)變化的。一系列邏輯狀態(tài)的改變,如執(zhí)行狀態(tài)、控制模式、G代碼程序名等,它是設(shè)備或組件狀態(tài)的離散變化值,是異步的。提供關(guān)于設(shè)備的運行和工作狀態(tài)數(shù)據(jù)或設(shè)備性能信息,如Normal、Warning、Fault、Unavailable。數(shù)據(jù)流Streams至少包括有一個DeviceStream(設(shè)備數(shù)據(jù)流),而DeviceStream由一個或多個ComponentStream(組件數(shù)據(jù)流)元素構(gòu)成,個數(shù)取決于Samples和Events的數(shù)量。MT-Connect協(xié)議:設(shè)備描述實現(xiàn)2數(shù)據(jù)流描述如圖是MT-ConnectStreams的Schema圖,顯然Samples、Events和Conditon是數(shù)據(jù)流的最底層元素。注:DeviceStream的目的是保存設(shè)備具體信息,這些信息并不需要頻繁地更新。這樣就只需要在DeviceStream中傳輸一些需要的數(shù)據(jù)即可,有利于減小Samples和Events的大小。MT-Connect協(xié)議:設(shè)備描述實現(xiàn)3資產(chǎn)描述MT-Connect協(xié)議中資產(chǎn)(Assets)是有關(guān)于機床加工刀具方面的描述,通過MT-ConnectAssets類XML報文進行定義。資產(chǎn)涉及的內(nèi)容主要是刀具、工裝夾具、固定裝置等,這些是與制造過程緊密相關(guān)的,但是它們并不是設(shè)備本身的組件,因此在不影響設(shè)備功能的情況下是可以去掉的。MT-Connect協(xié)議只關(guān)注與所建模型有關(guān),并且能夠使用MT-Connect協(xié)議進行數(shù)據(jù)傳輸和管理的資產(chǎn)內(nèi)容,這些內(nèi)容主要是刀具類型和刀具參數(shù),包括四個部分:CuttingItemToolItemAdaptiveItemAssemblyItemMT-Connect協(xié)議:設(shè)備描述實現(xiàn)3資產(chǎn)描述當(dāng)然刀具的種類是非常繁雜的,很多刀具的幾何尺寸也非常復(fù)雜,但是MTConnect協(xié)議只提供在加工過程中需要的幾何信息,如果想要獲取其他的信息需要通過添加XSD文件來實現(xiàn)。MT-Connect資產(chǎn)結(jié)構(gòu)圖MT-Connect協(xié)議:設(shè)備描述實現(xiàn)4錯誤描述MT-Connect協(xié)議采用HTTP狀態(tài)碼來標(biāo)識代理對請求的響應(yīng)狀態(tài),目前MT-Connect代理支持以下4種HTTP狀態(tài)碼,見表3-12。HTTP狀態(tài)代理狀態(tài)Error說明2000K請求在代理服務(wù)器中被成功處理400BadRequest請求不能被代理服務(wù)器解析500InternalError在請求處理過程中,代理服務(wù)器產(chǎn)生一個內(nèi)部錯誤501NoImplemented代理服務(wù)器不支持當(dāng)前請求,無法處理表3-12MT-Connect支持的HTTP響應(yīng)代碼如果代理不能處理一個請求,將會返回MTConnectError文檔,該文檔以Error元素定義了所有請求相關(guān)的錯誤類型。每個Error元素包含了一個錯誤代碼(表3-13)和一個完整錯誤Error元素內(nèi)容的文本數(shù)據(jù)(CDATA)。錯誤代碼說明UNAUTHORIZED沒有足夠權(quán)限執(zhí)行請求NO_DEVICE沒有發(fā)現(xiàn)URI中指定的設(shè)備OUT_OF_RANGE序列號超出緩沖區(qū)末尾TOOMANY范圍(count)超出INVALIDURIURI格式不正確INVALID_REQUEST請求不符合指定的請求要求INTERNAL_ERROR代理工作不正常INVALID_XPATH無效的語法UNSUPPORTED代理不支持該功能或請求的類型ASSET_NOT_FOUND找不到指定資產(chǎn)的位置表3-13Error元素的錯誤代理MT-Connect協(xié)議:設(shè)備描述實現(xiàn)4錯誤描述1. HTTP/1.1200Success2. Content-Type:text/xml;charset=UTF-83. Server:Agent4. Date:Sun,23Dec200721:16:56GTM5. 6. <?xmlversion=“1.0”encoding=“UTF-8”?>7. <MTConnectErrorxmlns:m=“urn::MTConnectError:1.1”xmlns:xsi=http:///2001/XMLSchema-instancexmlns=“urn::MTConnectError:1.1”xsi:schemaLocation=“urn::MTConnectError:1.1”http:///schema/MTConnectError.xsd”>8. <Header…/>9. <Errors>10. <ErrorerrorCode=“OUT_OF_RANGE”>Argumentwasoutofrange</Error>11. <ErrorerrorCode=“INVALID_XPATH”>Badpath</Error>12. </Errors>13. </MTConnectError>示例(右)向讀者展示了一種HTTP的錯誤信息MT-Connect協(xié)議:代理機制MT-Connect代理Agent負(fù)責(zé)工業(yè)數(shù)據(jù)的采集,并為應(yīng)用層按需提供數(shù)據(jù)服務(wù)。實質(zhì)上,Agent就是一種支持MT-Connect協(xié)議、基于HTTP協(xié)議和XML文件傳輸實現(xiàn)車間設(shè)備數(shù)據(jù)網(wǎng)絡(luò)傳輸?shù)能浖?wù)。它通過XML報文描述各個設(shè)備的結(jié)構(gòu)與功能,用以識別一個或多個與MT-Connect協(xié)議相兼容的機器設(shè)備。因此,Agent作為應(yīng)用層與設(shè)備層之間的數(shù)據(jù)交互“紐帶”,必須能夠快速響應(yīng)客戶端的數(shù)據(jù)請求,請求格式必須符合MT-Connect協(xié)議規(guī)范。此外,為了更好的實現(xiàn)客戶端對工業(yè)設(shè)備近乎實時性的監(jiān)控要求,Agent還支持客戶端可根據(jù)系統(tǒng)自身需求向其請求并獲取所需的數(shù)據(jù),以減少數(shù)據(jù)的傳輸量和時間。Agent除了采集數(shù)據(jù)之外,最關(guān)鍵的是如何高效保存數(shù)據(jù)。MT-Connect協(xié)議:代理機制1Agent數(shù)據(jù)存儲Agent采用“管道式”定量存儲數(shù)據(jù)。也就是說,Agent只能存儲有限的數(shù)據(jù),比如有限量的事件、樣本和條件,數(shù)據(jù)總量被限定在Agent為自身設(shè)置的存儲閾值內(nèi)。Agent在存儲方式上類似于“數(shù)據(jù)?!保珹gent會提供一條固定長度的單向管道,當(dāng)設(shè)備數(shù)據(jù)有更新時,更新的數(shù)據(jù)便從一端塞入管道內(nèi)部,若管道被裝滿,最初進入管道內(nèi)部的數(shù)據(jù)項將被后面的數(shù)據(jù)項所替代。如圖,假設(shè)Agent設(shè)置的緩存大小為8位,A最先進入管道,隨后B、C、D…相繼被塞入管道,當(dāng)?shù)?個數(shù)據(jù)項H被塞入后,管道便被塞滿,此時,第9個數(shù)據(jù)項I進入到管道的時候,A即被擠出管道。MT-Connect協(xié)議:代理機制1Agent數(shù)據(jù)存儲Agent為每個進入管道的數(shù)據(jù)項分配唯一序列號,序列號按照數(shù)據(jù)項進入順序依次增加。客戶端從代理服務(wù)器獲取信息即通過數(shù)據(jù)的開始序列號(firstSequence)和數(shù)量(count)實現(xiàn)。對于當(dāng)前請求,必須至少提供所請求數(shù)據(jù)項的最后更新值,才會知道該數(shù)據(jù)項是否被更新。因此,如果已經(jīng)從緩沖區(qū)內(nèi)刪除了事件值(Event)、樣本值(Sample)或者條件值(Condition)的數(shù)據(jù)項,Agent也必須保存該數(shù)據(jù)項最后更新的值作為后續(xù)數(shù)據(jù)請求的查詢依據(jù)。如圖,客戶端從序列號15開始查詢,數(shù)據(jù)長度為3,那么下一次查詢的序列號(nextSequence)便是18,最后序列號(lastSequence)是19。如果客戶端請求管道中的最后一個數(shù)據(jù)項,nextSequence的值將是lastSequence+1,只要管道中沒有新的數(shù)據(jù),客戶端請求的數(shù)據(jù)超出了Agent緩存容量,nextSequence的值將保持為lastSequence+1。MT-Connect協(xié)議:代理機制2Agent資產(chǎn)存儲Agent的資產(chǎn)存儲機制與其數(shù)據(jù)存儲十分類似,提供管道式有限的存儲空間,并且緩沖區(qū)內(nèi)數(shù)據(jù)儲存滿后,采用同樣的方式將新數(shù)據(jù)替代舊數(shù)據(jù)。不同的是當(dāng)資產(chǎn)緩沖區(qū)中某一項數(shù)據(jù)更新的時候,該數(shù)據(jù)項將直接從緩存區(qū)中移除,并將新的數(shù)據(jù)項值塞入緩沖區(qū)。如右圖所示,A7的值在緩沖區(qū)時被更新,它便被移到最右端。因此,資產(chǎn)的數(shù)據(jù)項并不能采用序列號的方式作為標(biāo)識,而是采用key/value的方式,其中key是獨立的資產(chǎn)序號(assetId),value通過XML格式進行描述。assetId代表資產(chǎn)的特定編碼,比如對于機床的刀具來說,它必須定義刀具的編號,作為刀具的唯一標(biāo)識,可由任意字符串、數(shù)字號或標(biāo)點符組成。MT-Connect協(xié)議:代理機制2Agent資產(chǎn)存儲MT-Connect協(xié)議標(biāo)準(zhǔn)通過編號實現(xiàn)對資產(chǎn)的查詢,查詢結(jié)果將返回對應(yīng)編號的資產(chǎn)文檔Asset.xml中。表3-14中是幾種本地Agent資產(chǎn)的查詢方式。當(dāng)客戶端有設(shè)備資產(chǎn)添加或修改需求時,通過觸發(fā)資產(chǎn)變更事件(AssetChange)告知Agent新的資產(chǎn)信息,然后客戶端即可通過資產(chǎn)查詢從Agent中獲得最新數(shù)據(jù)。資產(chǎn)變更事件是會即時觸發(fā)的,因為Agent一旦接收到資產(chǎn)變更請求,便會更新全部信息,而不是針對某個指定的獨立的值去改變,這也就意味著許多相關(guān)的值都需要更改。查詢類型查詢地址單個資產(chǎn)url::5000/asset/cc多個資產(chǎn)mi:http://l:5000/asset/cc;g3;g5所有資產(chǎn)url:http://127.0.0.l:5000/assets按類型查詢url::5000/assets?type=CuttingTool表3-14MT-Connect資產(chǎn)查詢NC-Link協(xié)議:概述NC-Link(NumericalcontrolLinks)協(xié)議是中國自主研發(fā)的工業(yè)設(shè)備互聯(lián)互通協(xié)議,由數(shù)控機床互聯(lián)通訊協(xié)議標(biāo)準(zhǔn)聯(lián)盟提出,支持?jǐn)?shù)控機床之間、數(shù)控機床與生產(chǎn)線之間以及數(shù)控機床與企業(yè)信息化軟件(CAX、MES,ERP、CAPP、PDM等)之間的互聯(lián)互通。NC-Link與MT-Connect、OPC-UA都可用于工業(yè)設(shè)備的互聯(lián)互通,在系統(tǒng)和模型定義上有很多相似之處,但是NC-Link可以兼容MT-Connect和OPC-UA協(xié)議,在實現(xiàn)和應(yīng)用上有很多其他互聯(lián)互通協(xié)議不可比擬的優(yōu)勢,見表3-15。
MTConnectOPCUANC-Link說明數(shù)據(jù)表達(dá)方式HTTP+XMLHTTP+SOAPHTTP+JSON+XMLNC-Link所采用的JSON可讀性好,數(shù)據(jù)量小,速度更快數(shù)據(jù)模型有機床模型無機床模型有機床模型定義有機床模型,更適合加工設(shè)備和最終應(yīng)用數(shù)據(jù)基本類型強類型強類型弱類型NC-Link弱類型更適合分布式系統(tǒng),管控系統(tǒng),更適合云服務(wù)和APP擴展應(yīng)用數(shù)據(jù)流向單向雙向雙向雙向是系統(tǒng)必須要求數(shù)據(jù)訂閱無有有數(shù)據(jù)訂閱提供按需獲取數(shù)據(jù)安全無專用OauthNC-Link采用開放式安全標(biāo)準(zhǔn),適用性更廣,安全性更高跨平臺強Windows支持強,其他平臺弱強NC-Link使用基于WebAPI跨平臺更好表3-15NC-Link、MT-Connect和OPCUA對比NC-Link協(xié)議:標(biāo)準(zhǔn)組成NC-Link是面向設(shè)備運行大數(shù)據(jù)采集的M2M(MachinetoMachine)協(xié)議,協(xié)議標(biāo)準(zhǔn)的結(jié)構(gòu)由以下5個部分組成:通用技術(shù)條件在通用技術(shù)條件中,對標(biāo)準(zhǔn)的定位、組成、基礎(chǔ)軟硬件環(huán)境做了整體描述,是標(biāo)準(zhǔn)的基礎(chǔ)部分。機床模型定義在機床模型定義中闡述了機床模型的描述方法,是標(biāo)準(zhǔn)的靈魂。數(shù)據(jù)字典對數(shù)控機床運行大數(shù)據(jù)內(nèi)容進行標(biāo)準(zhǔn)化定義,建立數(shù)據(jù)一致性理解基礎(chǔ)。接口定義對系統(tǒng)各部件互聯(lián)互通方法進行標(biāo)準(zhǔn)化定義,是模型從定義到運用的關(guān)鍵。安全要求在該部分對設(shè)備接入認(rèn)證、數(shù)據(jù)權(quán)限分層兩個方面給出規(guī)范,從而確保設(shè)備安全運行、數(shù)據(jù)防泄密等安全性要求。NC-Link協(xié)議:體系架構(gòu)NC-Link標(biāo)準(zhǔn)的體系結(jié)構(gòu)由代理和適配器組成。適配器負(fù)責(zé)從設(shè)備上采集信息,并把采集的信息傳送到代理。同時,適配器可以從代理器獲取下行的控制信息,并把控制信息傳送給相應(yīng)的設(shè)備。適配器可以和多個設(shè)備相連,一個設(shè)備只能連接一個適配器,每個適配器必須連接一個代理器,且只能連接一個代理器。代理負(fù)責(zé)把適配器上采集的設(shè)備的信息傳送到請求信息的相關(guān)應(yīng)用系統(tǒng),或者接收應(yīng)用系統(tǒng)設(shè)備的控制信息,并把控制信息傳送到與相關(guān)設(shè)備對應(yīng)的適配器上。每個代理器支持多個應(yīng)用系統(tǒng),應(yīng)用系統(tǒng)可以連接多個代理器。NC-Link協(xié)議:體系架構(gòu)NC-Link標(biāo)準(zhǔn)不限定NC與適配器間的連接方式,僅要求適配器可以“適配”數(shù)控系統(tǒng)提供的通訊接口。適配器、代理、應(yīng)用系統(tǒng)之間通過以太網(wǎng)互聯(lián),通訊協(xié)議采用TCP/IP。NC-Link聯(lián)網(wǎng)模型可以兼容多種工控協(xié)議,如MODBUS、OPCUA、MT-Connect、Profibus-DP等,只要提供對應(yīng)的協(xié)議轉(zhuǎn)換模塊,任何工控協(xié)議都可以接入NC-Link網(wǎng)絡(luò)。NC-Link聯(lián)網(wǎng)模型NC-Link協(xié)議:體系架構(gòu)1適配器適配器由與設(shè)備通信的驅(qū)動模塊、數(shù)據(jù)解析模塊和通信模塊組成,如下圖。NC-Link適配器典型架構(gòu)【驅(qū)動模塊】負(fù)責(zé)與設(shè)備通信,從設(shè)備獲取數(shù)據(jù),或把數(shù)據(jù)設(shè)置給設(shè)備,不同廠家不同型號設(shè)備的適配器的驅(qū)動模塊具有差異性?!緮?shù)據(jù)解析模塊】負(fù)責(zé)設(shè)備模型解析與數(shù)據(jù)映射?!緮?shù)據(jù)傳輸模塊】負(fù)責(zé)把驅(qū)動模塊獲取的數(shù)據(jù)以統(tǒng)一格式傳送到代理器;或從代理器獲取對設(shè)備的控制信息,并傳送到驅(qū)動模塊。NC-Link協(xié)議:體系架構(gòu)2
代理代理包括與應(yīng)用系統(tǒng)通信的上層數(shù)據(jù)傳輸模塊和與適配器通信的下層數(shù)據(jù)傳輸模塊。下層數(shù)據(jù)傳輸模塊從適配器獲取到設(shè)備的數(shù)據(jù),或者把上層數(shù)據(jù)傳輸模塊從應(yīng)用系統(tǒng)讀取到的控制信息傳送到適配器。上層數(shù)據(jù)傳輸模塊把下層數(shù)據(jù)傳輸模塊傳來的數(shù)據(jù)發(fā)送到應(yīng)用系統(tǒng),或者從應(yīng)用系統(tǒng)獲取對設(shè)備的控制信息。因此,NC-Link標(biāo)準(zhǔn)定義代理必備組件有三個:客戶端接口、管理層和適配器接口,如下圖。NC-Link代理器架構(gòu)NC-Link協(xié)議:體系架構(gòu)3客戶端客戶端(應(yīng)用系統(tǒng))為數(shù)據(jù)使用方,它與代理連接,按需采集數(shù)據(jù)以實現(xiàn)具體業(yè)務(wù)。客戶端發(fā)出具體指令,通過代理透傳到適配器,由適配器具體處理相應(yīng)請求??蛻舳丝梢蕴砑由矸莺蜋?quán)限信息于指令之上,通過代理的鑒權(quán)系統(tǒng)有甄別地發(fā)往適配器,實現(xiàn)數(shù)控系統(tǒng)遠(yuǎn)程控制。下圖展示了一種客戶端架構(gòu)。NC-Link客戶端架構(gòu)NC-Link協(xié)議:設(shè)備模型1設(shè)備模型概述設(shè)備模型是NC-Link協(xié)議的核心組成部分,規(guī)范了“設(shè)備提供了什么數(shù)據(jù)”、“數(shù)據(jù)以什么格式提供”等關(guān)鍵問題。NC-Link設(shè)備模型由兩部分組成:模式文件模型文件描述設(shè)備模型的JSON模式文件,簡稱Schema文件。該文件是NC-LINK描述設(shè)備模型的基礎(chǔ)文件,在生成機床模型文件時使用,在進行數(shù)據(jù)傳輸時并不依賴該文件。根據(jù)模式文件,將具體的設(shè)備實例化,簡稱模型文件。對每一個設(shè)備都必須生成一個模型文件。模型文件的依據(jù)是模式文件,但不必包含模式文件的全部內(nèi)容。每個設(shè)備的模型文件與該設(shè)備關(guān)聯(lián)的適配器存儲在同一個位置,代理器可以緩存該文件副本。NC-Link標(biāo)準(zhǔn)的模式文件與模型文件關(guān)系圖NC-Link協(xié)議:設(shè)備模型1設(shè)備模型概述NC-Link采用面向?qū)ο蟮姆椒▉砻枋鲈O(shè)備運行過程中交互的信息模型。設(shè)備模型通過根對象、設(shè)備對象、組件對象、數(shù)據(jù)對象描述設(shè)備的組成、配置信息、可采樣的數(shù)據(jù)和數(shù)據(jù)格式等相關(guān)內(nèi)容。如下圖,機床模型文件采用樹狀結(jié)構(gòu)描述了機床構(gòu)成、數(shù)據(jù)、采樣通道等。NC-Link機床模型圖NC-Link協(xié)議:設(shè)備模型2設(shè)備建模方法NC-Link設(shè)備模型使用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 音樂藝術(shù)管理
- 礦山安全生產(chǎn)形勢
- 滬科黔科版《綜合實踐活動》5上競選大隊委員 課件
- 手術(shù)室護理個案護理報告
- 超聲刀安全使用
- 小學(xué)生表揚信集合九篇
- 馬課件教學(xué)課件
- 程序員述職報告(合集15篇)
- 校慶活動策劃書5篇
- 給醫(yī)院的感謝信范文錦集7篇
- 課桌舞課件教學(xué)課件
- GB/T 44685-2024印刷機械油墨干燥及固化裝置能效評價方法
- 2024年廣東省公務(wù)員錄用考試《行測》試題及答案解析
- 產(chǎn)品質(zhì)量檢測服務(wù)行業(yè)營銷策略方案
- 區(qū)塊鏈技術(shù)與應(yīng)用學(xué)習(xí)通超星期末考試答案章節(jié)答案2024年
- 新質(zhì)生產(chǎn)力背景下高質(zhì)量職業(yè)教育教材建設(shè)的創(chuàng)新實踐
- GB/T 22517.2-2024體育場地使用要求及檢驗方法第2部分:游泳場地
- 2024-2030年生命科學(xué)中的工業(yè)自動化行業(yè)市場現(xiàn)狀供需分析及投資評估規(guī)劃分析研究報告
- 三角形的高、中線與角平分線課件
- 在線教育平臺行業(yè)五年發(fā)展洞察及發(fā)展預(yù)測分析報告
- 2023年部編版道德與法治五年級下冊全冊單元復(fù)習(xí)課教案
評論
0/150
提交評論