1、 引言
SOA (Service Oriented Architecture) 是分布式企業(yè)級應用架構(gòu)的新一代標準,其粗粒度和松耦合等特點恰符合敏捷制造的需求,開發(fā)人員可以集中精力來處理應用的業(yè)務邏輯,可簡化開發(fā)的復雜性、縮短開發(fā)時間、降低開發(fā)成本,是面向中小企業(yè)的敏捷制造ASP中管控一體化信息集成的理想技術(shù)。敏捷制造ASP平臺上制造聯(lián)盟的動態(tài)性決定了其應用的敏捷性,因此,聯(lián)盟企業(yè)內(nèi)部的大量的遺留系統(tǒng)和非敏捷數(shù)字制造單元需要融入系統(tǒng)管理之中。
本文所介紹的WEB服務網(wǎng)關(guān)可以封裝傳統(tǒng)的數(shù)控設(shè)備功能接口成WEB服務,使之兼容于平臺SOA體系架構(gòu)的要求。這樣,通過敏捷制造ASP平臺將制造單元或者其他制造過程所需資源 (如檢測監(jiān)控儀器等) 共享,使遠程監(jiān)控、遠程診斷和遠程維護變得非常容易,便于智能化管理和異地協(xié)同制造,可提高制造設(shè)備的生產(chǎn)效率以適應敏捷制造快速響應變化的需求。本W(wǎng)EB服務網(wǎng)關(guān)把數(shù)控加工設(shè)備映射為相應的制造WEB服務。以太網(wǎng)上的節(jié)點可以通過SOAP協(xié)議實時訪問WEB服務網(wǎng)關(guān),而WEB服務網(wǎng)關(guān)把來自生產(chǎn)加工設(shè)備上的信息自動地發(fā)布到企業(yè)內(nèi)部網(wǎng)絡(luò)上。
2、 WEB服務網(wǎng)關(guān)硬件設(shè)計
在工業(yè)自動化控制中, 數(shù)控機床、傳感器、智能儀表等大多數(shù)設(shè)備只提供RS232 或RS422/ RS485 串行通信接口等現(xiàn)場總線。而在敏捷制造ASP平臺中將制造設(shè)備看作是制造服務的執(zhí)行者,所以需要將數(shù)控設(shè)備映射為相應的制造WEB服務, 數(shù)控單元WEB服務網(wǎng)關(guān)可將現(xiàn)場總線設(shè)備連接到互聯(lián)網(wǎng)并發(fā)布為制造WEB服務。
本服務網(wǎng)關(guān)設(shè)計采用嵌入式系統(tǒng)實現(xiàn)現(xiàn)場總線到網(wǎng)絡(luò)服務間的協(xié)議轉(zhuǎn)換,計算能力受限于所采用的MCU,需要精減TCP/IP協(xié)議棧的實現(xiàn)才可以移植成功。我們選擇的MCU芯片SST89E564.RD是基于51內(nèi)核的,該芯片具有64 KB的內(nèi)部程序FLASH,支持在線調(diào)試和在線下載功能,外部接口豐富,有1個SPI口,1個UART口,1路PVM輸出,可以作為外部控制擴展口。處理網(wǎng)絡(luò)數(shù)據(jù)包要消耗較多的存諸器空間,我們選擇RAM芯片uPD43256 32K x 8bit作為外部擴展存儲器。網(wǎng)絡(luò)接口芯片選用Reltek的8019AS,其10Mb/s 的數(shù)據(jù)流量完全滿足應用需求且價格低廉。X5045集看門狗、電壓監(jiān)控和串行EEPROM三種功能于一體,看門狗和電壓監(jiān)控功能對系統(tǒng)提供了運行時保護,內(nèi)置的容量為512 x 8個字節(jié)的串行EEPROM可以用來儲存系統(tǒng)配置信息,如模塊的MAC地址、IP地址、網(wǎng)關(guān)、DNS、遠端服務地址等網(wǎng)關(guān)初始化信息。本數(shù)控單元WEB服務網(wǎng)關(guān)的硬件結(jié)構(gòu)框圖如1所示。
3、 WEB服務網(wǎng)關(guān)軟件設(shè)計
TCP/IP協(xié)議簇中的協(xié)議多數(shù)定義都是采用16位或32位的數(shù)據(jù)單元,Linux中的TCP/IP協(xié)議棧實現(xiàn)并不能夠直接運行在8位的MCU中。成功移植TCP/IP協(xié)議的關(guān)鍵是精心裁減TCP/IP協(xié)議、合理分配單片機內(nèi)外部資源和優(yōu)化代碼實現(xiàn)以提高程序執(zhí)行效率。本W(wǎng)EB服務網(wǎng)關(guān)軟件設(shè)計采用模塊化思想,由圖2可知網(wǎng)關(guān)軟件主要分為系統(tǒng)層、協(xié)議層和服務層等幾個功能層次。
系統(tǒng)層的下層負責驅(qū)動外圍設(shè)備,包括網(wǎng)絡(luò)接口芯片RT8019AS, 串口及其他現(xiàn)場總線接口等。其上諸層僅通過本層所定義的設(shè)備接口函數(shù)操縱外設(shè)無須直接對外設(shè)進行讀寫,這樣不僅簡化了對外設(shè)使用還使得系統(tǒng)更具可擴展性。系統(tǒng)層上層為實時任務調(diào)度模塊,負責MCU資源的分配和切換,系統(tǒng)的時鐘源和中斷向量也由這個部分產(chǎn)生。本設(shè)計中,采用實時嵌入式操作系統(tǒng)來保證任務調(diào)度模塊的工作穩(wěn)定、實時、高效。
服務網(wǎng)關(guān)的關(guān)鍵功能是實現(xiàn)數(shù)據(jù)協(xié)議的轉(zhuǎn)換,將收到的現(xiàn)場總線接口的數(shù)據(jù)轉(zhuǎn)換為SOAP包的形式發(fā)送到以太網(wǎng)中。當前所實現(xiàn)的SOAP/HTTP方式中,首先要實現(xiàn)TCP/IP簇內(nèi)相關(guān)的協(xié)議,才能夠處理封裝有SOAP包作為負荷HTTP包的傳送。在嵌入式環(huán)境中系統(tǒng)資源有限,需要精簡TCP/IP協(xié)議簇的完整實現(xiàn) (約80 KB)??蓞⒄?a target="_blank">RFC1122定義的TCP/IP實現(xiàn)的兼容性建議列表,根據(jù)系統(tǒng)資源和應用實際需求決定具體實現(xiàn)何種特性。如放棄對報文分段的支持,不實現(xiàn)滑動窗口協(xié)議僅支持單包發(fā)送,不考慮流量控制和擁塞控制,只支持預配置的WSDL服務描述等。簡化后的協(xié)議包括IP、UDP、TCP、SOAP等核心協(xié)議的關(guān)鍵功能,且盡可能保持協(xié)議功能和機制上的完整性。
網(wǎng)關(guān)內(nèi)嵌軟件流程如圖3所示。制造單元WEB服務網(wǎng)關(guān)上電后,軟件首先進行硬件初始化和完成各種參數(shù)的設(shè)置,然后調(diào)用網(wǎng)絡(luò)守護函數(shù)將收到的SOAP請求作協(xié)議轉(zhuǎn)換后發(fā)送至現(xiàn)場總線接口,或者調(diào)用串口的守護函數(shù)將收到的設(shè)備端現(xiàn)場數(shù)據(jù)轉(zhuǎn)發(fā)至設(shè)定好的服務端點。
4 、SOAP包的壓縮傳輸
簡單對象交換協(xié)議 (SOAP) 是基于XML 的,可以用HTTP、FTP、SMTP等多種協(xié)議進行傳輸。用SOAP 通信所傳輸?shù)膶嶋H上是XML格式的文本, 對于大部分企業(yè)數(shù)據(jù)來說文本格式的數(shù)據(jù)尺寸遠較采用二進制等編碼后的數(shù)據(jù)更為龐大,提高SOAP 消息傳輸效率的一個可行的辦法是對SOAP 消息先行壓縮后再發(fā)送。壓縮后的文本大小一般可以減少至原文本尺寸的20% 左右,亦即意味著傳輸壓縮的文本將會比直接傳送原文少占用80%的空間。這也意味著在網(wǎng)絡(luò)上傳輸只需花費更少的時間, 可使基于SOAP通信進行數(shù)據(jù)交換的應用程序表現(xiàn)出更優(yōu)秀的性能。
一個典型的SOAP 結(jié)構(gòu)包含Header 和Body兩部分內(nèi)容, 結(jié)構(gòu)如圖4所示。在SOAP 中, Header 存在的意義是提供一個靈活的框架, 以滿足應用程序級的附加需求,例如在此提供權(quán)限驗證、事務管理等信息。對于SOAP消息來說它是一個可選的部分,我們要傳遞的信息通常放在SOAP Body 域中。Body域是SOAP封包的主要部分,占據(jù)著絕大部分的空間, 因此要加速SOAP 傳輸,可以從壓縮這一部分著手來減少傳輸?shù)臄?shù)據(jù)量。
我們可以將原內(nèi)容重新編碼形成一個新的壓縮文本字符串, 將其加入到SOAP Message 的附件域中。比如將SOAP Body 域的內(nèi)容壓縮成二進制數(shù)據(jù)后, 再采用 BASE64 將二進制數(shù)據(jù)編碼成MIME (Multipurpose Internet Mail Extensions, 多用途Internet 郵件擴展)文本, 將所得的MIME 文本放入SOAP Message 的Attachment 域中, 再在SOAP Body中加入壓縮標記形成最終的SOAP文本,如圖5所示。
這樣, 在客戶端發(fā)送一個請求到服務端調(diào)用一個服務, 服務端響應經(jīng)過壓縮的數(shù)據(jù)集合, 客戶端檢驗SOAP Header 的COMPRESSED 標志, 如果是YES, 則對SOAP 附件部分進行BASE64 解碼, 然后解壓, 還原成原始的SOAP Message。同理, 對請求也可以進行文本壓縮, 但一般請求的數(shù)據(jù)集合較小, 進行壓縮和解壓縮, 反而會降低效率。實驗表明, 4kb 的數(shù)據(jù)壓縮和解壓過程只需大約10ms, 進行Base64 編碼和解碼需要100ms, 總共需要110ms左右。
5 、總結(jié)
運用上述WEB服務網(wǎng)關(guān)即可把數(shù)控加工設(shè)備映射為相應的制造WEB服務。數(shù)控設(shè)備的集成聯(lián)網(wǎng)管理,可以更加有效地對設(shè)備進行管理和控制,提高生產(chǎn)效率。制造管控一體化系統(tǒng)將數(shù)控生產(chǎn)設(shè)備連接到開放的網(wǎng)絡(luò)環(huán)境中,所有的生產(chǎn)信息、管理信息、加工信息及數(shù)控源程序都可通過網(wǎng)絡(luò)的異地訪問。生產(chǎn)設(shè)備集群組成的設(shè)備網(wǎng)與企業(yè)內(nèi)部網(wǎng)之間以WEB服務網(wǎng)關(guān)為橋梁互相連通,以太網(wǎng)上的節(jié)點可以通過SOAP協(xié)議實時訪問WEB服務網(wǎng)關(guān),而WEB服務網(wǎng)關(guān)把來自生產(chǎn)加工設(shè)備上的信息自動地發(fā)布到企業(yè)內(nèi)部網(wǎng)絡(luò)上,甚至可以通過Internet遠程完成設(shè)備管控,此時需要進一步考慮數(shù)據(jù)的安全性等問題。
創(chuàng)新點:(1) 以嵌入式處理器作為WEB服務網(wǎng)關(guān)的核心部件, 通過該網(wǎng)關(guān)為數(shù)控加工設(shè)備提供了WEB服務接口, 便于實現(xiàn)制造設(shè)備與面向服務制造信息系統(tǒng)的連接;(2) 通過壓縮SOAP包提高了制造設(shè)備網(wǎng)關(guān)服務的實時性能。
-
傳感器
+關(guān)注
關(guān)注
2565文章
53008瀏覽量
767438 -
數(shù)控機床
+關(guān)注
關(guān)注
19文章
830瀏覽量
48072 -
現(xiàn)場總線
+關(guān)注
關(guān)注
3文章
526瀏覽量
39118
發(fā)布評論請先 登錄
基于STM32F的智能家居服務網(wǎng)關(guān)設(shè)計

基于SOA的數(shù)字電視中間件系統(tǒng)的研究與實現(xiàn)
如何跨多個SOA將RFID Web服務集成到EAI應用程序中
怎么利用SOA實現(xiàn)RFID中間件設(shè)計?
微服務網(wǎng)關(guān)gateway的相關(guān)資料推薦
面向數(shù)控設(shè)備的WEB服務網(wǎng)關(guān)
面向數(shù)控設(shè)備的WEB服務網(wǎng)關(guān)
基于SOA與多軟件人的智能交通系統(tǒng)架構(gòu)
面向數(shù)控設(shè)備的WEB服務網(wǎng)關(guān)
基于SOA的電網(wǎng)服務系統(tǒng)設(shè)計

Web服務推薦SOA系統(tǒng)

SOA架構(gòu)和微服務架構(gòu)的主要區(qū)別

Spring Cloud Gateway服務網(wǎng)關(guān)的部署與使用詳細教程
基于Traefik自研的微服務網(wǎng)關(guān)
Spring Cloud :打造可擴展的微服務網(wǎng)關(guān)

評論