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