1、 引言
SOA (Service Oriented Architecture) 是分布式企業(yè)級(jí)應(yīng)用架構(gòu)的新一代標(biāo)準(zhǔn),其粗粒度和松耦合等特點(diǎn)恰符合敏捷制造的需求,開發(fā)人員可以集中精力來處理應(yīng)用的業(yè)務(wù)邏輯,可簡化開發(fā)的復(fù)雜性、縮短開發(fā)時(shí)間、降低開發(fā)成本,是面向中小企業(yè)的敏捷制造ASP中管控一體化信息集成的理想技術(shù)。敏捷制造ASP平臺(tái)上制造聯(lián)盟的動(dòng)態(tài)性決定了其應(yīng)用的敏捷性,因此,聯(lián)盟企業(yè)內(nèi)部的大量的遺留系統(tǒng)和非敏捷數(shù)字制造單元需要融入系統(tǒng)管理之中。
本文所介紹的WEB服務(wù)網(wǎng)關(guān)可以封裝傳統(tǒng)的數(shù)控設(shè)備功能接口成WEB服務(wù),使之兼容于平臺(tái)SOA體系架構(gòu)的要求。這樣,通過敏捷制造ASP平臺(tái)將制造單元或者其他制造過程所需資源 (如檢測監(jiān)控儀器等) 共享,使遠(yuǎn)程監(jiān)控、遠(yuǎn)程診斷和遠(yuǎn)程維護(hù)變得非常容易,便于智能化管理和異地協(xié)同制造,可提高制造設(shè)備的生產(chǎn)效率以適應(yīng)敏捷制造快速響應(yīng)變化的需求。本W(wǎng)EB服務(wù)網(wǎng)關(guān)把數(shù)控加工設(shè)備映射為相應(yīng)的制造WEB服務(wù)。以太網(wǎng)上的節(jié)點(diǎn)可以通過SOAP協(xié)議實(shí)時(shí)訪問WEB服務(wù)網(wǎng)關(guān),而WEB服務(wù)網(wǎng)關(guān)把來自生產(chǎn)加工設(shè)備上的信息自動(dòng)地發(fā)布到企業(yè)內(nèi)部網(wǎng)絡(luò)上。
2、 WEB服務(wù)網(wǎng)關(guān)硬件設(shè)計(jì)
在工業(yè)自動(dòng)化控制中, 數(shù)控機(jī)床、傳感器、智能儀表等大多數(shù)設(shè)備只提供RS232 或RS422/ RS485 串行通信接口等現(xiàn)場總線。而在敏捷制造ASP平臺(tái)中將制造設(shè)備看作是制造服務(wù)的執(zhí)行者,所以需要將數(shù)控設(shè)備映射為相應(yīng)的制造WEB服務(wù), 數(shù)控單元WEB服務(wù)網(wǎng)關(guān)可將現(xiàn)場總線設(shè)備連接到互聯(lián)網(wǎng)并發(fā)布為制造WEB服務(wù)。
本服務(wù)網(wǎng)關(guān)設(shè)計(jì)采用嵌入式系統(tǒng)實(shí)現(xiàn)現(xiàn)場總線到網(wǎng)絡(luò)服務(wù)間的協(xié)議轉(zhuǎn)換,計(jì)算能力受限于所采用的MCU,需要精減TCP/IP協(xié)議棧的實(shí)現(xiàn)才可以移植成功。我們選擇的MCU芯片SST89E564.RD是基于51內(nèi)核的,該芯片具有64 KB的內(nèi)部程序FLASH,支持在線調(diào)試和在線下載功能,外部接口豐富,有1個(gè)SPI口,1個(gè)UART口,1路PVM輸出,可以作為外部控制擴(kuò)展口。處理網(wǎng)絡(luò)數(shù)據(jù)包要消耗較多的存諸器空間,我們選擇RAM芯片uPD43256 32K x 8bit作為外部擴(kuò)展存儲(chǔ)器。網(wǎng)絡(luò)接口芯片選用Reltek的8019AS,其10Mb/s 的數(shù)據(jù)流量完全滿足應(yīng)用需求且價(jià)格低廉。X5045集看門狗、電壓監(jiān)控和串行EEPROM三種功能于一體,看門狗和電壓監(jiān)控功能對(duì)系統(tǒng)提供了運(yùn)行時(shí)保護(hù),內(nèi)置的容量為512 x 8個(gè)字節(jié)的串行EEPROM可以用來儲(chǔ)存系統(tǒng)配置信息,如模塊的MAC地址、IP地址、網(wǎng)關(guān)、DNS、遠(yuǎn)端服務(wù)地址等網(wǎng)關(guān)初始化信息。本數(shù)控單元WEB服務(wù)網(wǎng)關(guān)的硬件結(jié)構(gòu)框圖如1所示。

3、 WEB服務(wù)網(wǎng)關(guān)軟件設(shè)計(jì)
TCP/IP協(xié)議簇中的協(xié)議多數(shù)定義都是采用16位或32位的數(shù)據(jù)單元,Linux中的TCP/IP協(xié)議棧實(shí)現(xiàn)并不能夠直接運(yùn)行在8位的MCU中。成功移植TCP/IP協(xié)議的關(guān)鍵是精心裁減TCP/IP協(xié)議、合理分配單片機(jī)內(nèi)外部資源和優(yōu)化代碼實(shí)現(xiàn)以提高程序執(zhí)行效率。本W(wǎng)EB服務(wù)網(wǎng)關(guān)軟件設(shè)計(jì)采用模塊化思想,由圖2可知網(wǎng)關(guān)軟件主要分為系統(tǒng)層、協(xié)議層和服務(wù)層等幾個(gè)功能層次。

系統(tǒng)層的下層負(fù)責(zé)驅(qū)動(dòng)外圍設(shè)備,包括網(wǎng)絡(luò)接口芯片RT8019AS, 串口及其他現(xiàn)場總線接口等。其上諸層僅通過本層所定義的設(shè)備接口函數(shù)操縱外設(shè)無須直接對(duì)外設(shè)進(jìn)行讀寫,這樣不僅簡化了對(duì)外設(shè)使用還使得系統(tǒng)更具可擴(kuò)展性。系統(tǒng)層上層為實(shí)時(shí)任務(wù)調(diào)度模塊,負(fù)責(zé)MCU資源的分配和切換,系統(tǒng)的時(shí)鐘源和中斷向量也由這個(gè)部分產(chǎn)生。本設(shè)計(jì)中,采用實(shí)時(shí)嵌入式操作系統(tǒng)來保證任務(wù)調(diào)度模塊的工作穩(wěn)定、實(shí)時(shí)、高效。
服務(wù)網(wǎng)關(guān)的關(guān)鍵功能是實(shí)現(xiàn)數(shù)據(jù)協(xié)議的轉(zhuǎn)換,將收到的現(xiàn)場總線接口的數(shù)據(jù)轉(zhuǎn)換為SOAP包的形式發(fā)送到以太網(wǎng)中。當(dāng)前所實(shí)現(xiàn)的SOAP/HTTP方式中,首先要實(shí)現(xiàn)TCP/IP簇內(nèi)相關(guān)的協(xié)議,才能夠處理封裝有SOAP包作為負(fù)荷HTTP包的傳送。在嵌入式環(huán)境中系統(tǒng)資源有限,需要精簡TCP/IP協(xié)議簇的完整實(shí)現(xiàn) (約80 KB)??蓞⒄?a target="_blank">RFC1122定義的TCP/IP實(shí)現(xiàn)的兼容性建議列表,根據(jù)系統(tǒng)資源和應(yīng)用實(shí)際需求決定具體實(shí)現(xiàn)何種特性。如放棄對(duì)報(bào)文分段的支持,不實(shí)現(xiàn)滑動(dòng)窗口協(xié)議僅支持單包發(fā)送,不考慮流量控制和擁塞控制,只支持預(yù)配置的WSDL服務(wù)描述等。簡化后的協(xié)議包括IP、UDP、TCP、SOAP等核心協(xié)議的關(guān)鍵功能,且盡可能保持協(xié)議功能和機(jī)制上的完整性。
網(wǎng)關(guān)內(nèi)嵌軟件流程如圖3所示。制造單元WEB服務(wù)網(wǎng)關(guān)上電后,軟件首先進(jìn)行硬件初始化和完成各種參數(shù)的設(shè)置,然后調(diào)用網(wǎng)絡(luò)守護(hù)函數(shù)將收到的SOAP請(qǐng)求作協(xié)議轉(zhuǎn)換后發(fā)送至現(xiàn)場總線接口,或者調(diào)用串口的守護(hù)函數(shù)將收到的設(shè)備端現(xiàn)場數(shù)據(jù)轉(zhuǎn)發(fā)至設(shè)定好的服務(wù)端點(diǎn)。

4 、SOAP包的壓縮傳輸
簡單對(duì)象交換協(xié)議 (SOAP) 是基于XML 的,可以用HTTP、FTP、SMTP等多種協(xié)議進(jìn)行傳輸。用SOAP 通信所傳輸?shù)膶?shí)際上是XML格式的文本, 對(duì)于大部分企業(yè)數(shù)據(jù)來說文本格式的數(shù)據(jù)尺寸遠(yuǎn)較采用二進(jìn)制等編碼后的數(shù)據(jù)更為龐大,提高SOAP 消息傳輸效率的一個(gè)可行的辦法是對(duì)SOAP 消息先行壓縮后再發(fā)送。壓縮后的文本大小一般可以減少至原文本尺寸的20% 左右,亦即意味著傳輸壓縮的文本將會(huì)比直接傳送原文少占用80%的空間。這也意味著在網(wǎng)絡(luò)上傳輸只需花費(fèi)更少的時(shí)間, 可使基于SOAP通信進(jìn)行數(shù)據(jù)交換的應(yīng)用程序表現(xiàn)出更優(yōu)秀的性能。
一個(gè)典型的SOAP 結(jié)構(gòu)包含Header 和Body兩部分內(nèi)容, 結(jié)構(gòu)如圖4所示。在SOAP 中, Header 存在的意義是提供一個(gè)靈活的框架, 以滿足應(yīng)用程序級(jí)的附加需求,例如在此提供權(quán)限驗(yàn)證、事務(wù)管理等信息。對(duì)于SOAP消息來說它是一個(gè)可選的部分,我們要傳遞的信息通常放在SOAP Body 域中。Body域是SOAP封包的主要部分,占據(jù)著絕大部分的空間, 因此要加速SOAP 傳輸,可以從壓縮這一部分著手來減少傳輸?shù)臄?shù)據(jù)量。

我們可以將原內(nèi)容重新編碼形成一個(gè)新的壓縮文本字符串, 將其加入到SOAP Message 的附件域中。比如將SOAP Body 域的內(nèi)容壓縮成二進(jìn)制數(shù)據(jù)后, 再采用 BASE64 將二進(jìn)制數(shù)據(jù)編碼成MIME (Multipurpose Internet Mail Extensions, 多用途Internet 郵件擴(kuò)展)文本, 將所得的MIME 文本放入SOAP Message 的Attachment 域中, 再在SOAP Body中加入壓縮標(biāo)記形成最終的SOAP文本,如圖5所示。

這樣, 在客戶端發(fā)送一個(gè)請(qǐng)求到服務(wù)端調(diào)用一個(gè)服務(wù), 服務(wù)端響應(yīng)經(jīng)過壓縮的數(shù)據(jù)集合, 客戶端檢驗(yàn)SOAP Header 的COMPRESSED 標(biāo)志, 如果是YES, 則對(duì)SOAP 附件部分進(jìn)行BASE64 解碼, 然后解壓, 還原成原始的SOAP Message。同理, 對(duì)請(qǐng)求也可以進(jìn)行文本壓縮, 但一般請(qǐng)求的數(shù)據(jù)集合較小, 進(jìn)行壓縮和解壓縮, 反而會(huì)降低效率。實(shí)驗(yàn)表明, 4kb 的數(shù)據(jù)壓縮和解壓過程只需大約10ms, 進(jìn)行Base64 編碼和解碼需要100ms, 總共需要110ms左右。
5 、總結(jié)
運(yùn)用上述WEB服務(wù)網(wǎng)關(guān)即可把數(shù)控加工設(shè)備映射為相應(yīng)的制造WEB服務(wù)。數(shù)控設(shè)備的集成聯(lián)網(wǎng)管理,可以更加有效地對(duì)設(shè)備進(jìn)行管理和控制,提高生產(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ù)網(wǎng)關(guān)為橋梁互相連通,以太網(wǎng)上的節(jié)點(diǎn)可以通過SOAP協(xié)議實(shí)時(shí)訪問WEB服務(wù)網(wǎng)關(guān),而WEB服務(wù)網(wǎng)關(guān)把來自生產(chǎn)加工設(shè)備上的信息自動(dòng)地發(fā)布到企業(yè)內(nèi)部網(wǎng)絡(luò)上,甚至可以通過Internet遠(yuǎn)程完成設(shè)備管控,此時(shí)需要進(jìn)一步考慮數(shù)據(jù)的安全性等問題。
創(chuàng)新點(diǎn):(1) 以嵌入式處理器作為WEB服務(wù)網(wǎng)關(guān)的核心部件, 通過該網(wǎng)關(guān)為數(shù)控加工設(shè)備提供了WEB服務(wù)接口, 便于實(shí)現(xiàn)制造設(shè)備與面向服務(wù)制造信息系統(tǒng)的連接;(2) 通過壓縮SOAP包提高了制造設(shè)備網(wǎng)關(guān)服務(wù)的實(shí)時(shí)性能。
-
傳感器
+關(guān)注
關(guān)注
2577文章
55184瀏覽量
792439 -
數(shù)控機(jī)床
+關(guān)注
關(guān)注
19文章
871瀏覽量
49743 -
現(xiàn)場總線
+關(guān)注
關(guān)注
3文章
529瀏覽量
40031
發(fā)布評(píng)論請(qǐng)先 登錄
基于STM32F的智能家居服務(wù)網(wǎng)關(guān)設(shè)計(jì)
基于SOA的數(shù)字電視中間件系統(tǒng)的研究與實(shí)現(xiàn)
如何跨多個(gè)SOA將RFID Web服務(wù)集成到EAI應(yīng)用程序中
微服務(wù)網(wǎng)關(guān)gateway的相關(guān)資料推薦
面向數(shù)控設(shè)備的WEB服務(wù)網(wǎng)關(guān)
面向數(shù)控設(shè)備的WEB服務(wù)網(wǎng)關(guān)
基于SOA與多軟件人的智能交通系統(tǒng)架構(gòu)
面向數(shù)控設(shè)備的WEB服務(wù)網(wǎng)關(guān)
基于SOA的電網(wǎng)服務(wù)系統(tǒng)設(shè)計(jì)
Web服務(wù)推薦SOA系統(tǒng)
SOA架構(gòu)和微服務(wù)架構(gòu)的主要區(qū)別
Spring Cloud Gateway服務(wù)網(wǎng)關(guān)的部署與使用詳細(xì)教程
基于Traefik自研的微服務(wù)網(wǎng)關(guān)
Spring Cloud :打造可擴(kuò)展的微服務(wù)網(wǎng)關(guān)
兼容SOA體系架構(gòu)的數(shù)控設(shè)備WEB服務(wù)網(wǎng)關(guān)的設(shè)計(jì)
評(píng)論